osra 0.3.3 → 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 = A();
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 = A();
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,97 +63,105 @@ var e = Object.defineProperty, t = (t, n) => {
54
63
  return !1;
55
64
  }
56
65
  }
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);
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);
58
67
  function ne(e) {
59
- if (!D(e)) throw Error("Transport is not emitable");
68
+ if (!O(e)) throw Error("Transport is not emitable");
60
69
  }
61
- var O = (e) => w(e) || te(e) || d(e) || f(e) || p(e) || m(e) || h(e) || ae(e);
70
+ var k = (e) => T(e) || E(e) || f(e) || p(e) || m(e) || h(e) || g(e) || ie(e);
62
71
  function re(e) {
63
- if (!O(e)) throw Error("Transport is not receiveable");
72
+ if (!k(e)) throw Error("Transport is not receiveable");
64
73
  }
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;
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
- j(t, i) && (r && t.name !== r || e(t, n));
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
- j(t, i) && (r && t.name !== r || e(t, {
85
+ M(t, i) && (r && t.name !== r || e(t, {
77
86
  port: n,
78
87
  sender: a
79
88
  }));
80
89
  };
81
- t.addListener(o), M(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), M(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) => {
91
- j(t.data, i) && (r && t.data.name !== r || e(t.data, {
100
+ M(t.data, i) && (r && t.data.name !== r || e(t.data, {
92
101
  receiveTransport: o,
93
102
  source: t.source
94
103
  }));
95
104
  };
96
- o.addEventListener("message", s), M(a, () => o.removeEventListener("message", s));
97
- }, le = (e, t, n = "*", r = []) => {
98
- let i = k(e) ? e.emit : e;
99
- 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) => ({
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) => ({
106
115
  ...N,
107
- type: de,
116
+ type: pe,
108
117
  ...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) => ({
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) => ({
115
124
  ...N,
116
- type: ge,
125
+ type: ve,
117
126
  ISOString: e.toISOString()
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) => ({
127
+ }), xe = (e, t) => new Date(e.ISOString), Se = /* @__PURE__ */ t({
128
+ box: () => Te,
129
+ isType: () => we,
130
+ revive: () => Ee,
131
+ type: () => Ce
132
+ }), Ce = "headers", we = (e) => e instanceof Headers, Te = (e, t) => ({
124
133
  ...N,
125
- type: xe,
134
+ type: Ce,
126
135
  entries: [...e.entries()]
127
- }), z = (e, t) => new Headers(e.entries), Ce = /* @__PURE__ */ t({
128
- box: () => Ee,
129
- isType: () => Te,
130
- revive: () => De,
131
- type: () => we
132
- }), we = "error", Te = (e) => e instanceof Error, Ee = (e, t) => ({
133
- ...N,
134
- type: we,
135
- message: e.message,
136
- stack: e.stack || e.toString()
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) => ({
136
+ }), Ee = (e, t) => new Headers(e.entries), De = /* @__PURE__ */ t({
137
+ box: () => Ae,
138
+ isType: () => ke,
139
+ revive: () => je,
140
+ type: () => Oe
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) => ({
143
160
  ...N,
144
- type: ke,
145
- typedArrayType: s(e),
161
+ type: Ne,
162
+ typedArrayType: c(e),
146
163
  ...I(e.buffer, t)
147
- }), Me = (e, t) => new (c(e.typedArrayType))(L(e)), B = class extends EventTarget {
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 ie = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : D(e.
184
201
  close() {
185
202
  this._closed || (this._closed = !0, this._queue.length = 0, this._onClose?.());
186
203
  }
187
- }, V = class {
204
+ }, R = class {
188
205
  port1;
189
206
  port2;
190
207
  constructor() {
191
- let e = new B(), t = new B();
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
- }, Ne = /* @__PURE__ */ t({
195
- box: () => W,
196
- createRevivableChannel: () => K,
197
- init: () => Ie,
198
- isType: () => Le,
199
- revive: () => G,
200
- type: () => U
201
- }), H = new FinalizationRegistry((e) => {
202
- e.sendMessage({
203
- type: "message-port-close",
204
- remoteUuid: e.remoteUuid,
205
- portId: e.portId
206
- }), e.cleanup();
207
- }), U = "messagePort", Pe = /* @__PURE__ */ new WeakMap(), Fe = (e) => {
208
- let t = Pe.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
- }, Ie = (e) => {
229
+ }, Ve = (e) => {
212
230
  let t = { portHandlers: /* @__PURE__ */ new Map() };
213
- Pe.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
- }, Le = (e) => e instanceof MessagePort || e instanceof B, W = (e, t, n) => {
217
- let r = e instanceof B;
218
- if (r || E(t.transport)) {
219
- let { portHandlers: n } = Fe(t), i = e, a = globalThis.crypto.randomUUID(), o = !1, s = () => {
220
- o || (o = !0, n.delete(a), H.unregister(i), i.removeEventListener("message", l));
221
- }, 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 H.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 B && (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
- ...N,
250
- type: U,
251
- portId: a,
252
- synthetic: r
253
- };
265
+ data: X(e, t),
266
+ portId: o
267
+ });
254
268
  }
255
- return {
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), {
256
275
  ...N,
257
- type: U,
258
- port: e,
259
- ...n?.autoBox ? { autoBox: !0 } : {}
276
+ type: B,
277
+ portId: o,
278
+ synthetic: r
260
279
  };
261
- }, G = (e, t) => "port" in e ? e.autoBox ? Re(e.port, t) : e.port : ze(e.portId, t, e.synthetic), Re = (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 ie = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : D(e.
268
287
  }, n.start = () => e.start(), n.close = () => {
269
288
  e.removeEventListener("message", r), e.close();
270
289
  }, n;
271
- }, K = (e) => {
272
- if (E(e.transport)) {
273
- let { port1: t, port2: n } = new V();
290
+ }, W = (e) => {
291
+ if (D(e.transport)) {
292
+ let { port1: t, port2: n } = new R();
274
293
  return {
275
294
  localPort: t,
276
- boxedRemote: W(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: Re(t, e),
282
- boxedRemote: W(n, e, { autoBox: !0 })
300
+ localPort: We(t, e),
301
+ boxedRemote: H(n, e, { autoBox: !0 })
283
302
  };
284
- }, ze = (e, t, n) => {
285
- let { portHandlers: r } = Fe(t), { port1: i, port2: a } = n ? new V() : new MessageChannel(), o = new WeakRef(i), s = !1, c = () => {
286
- if (s) return;
287
- s = !0, r.delete(e), a.removeEventListener("message", u), a.close();
288
- let t = o.deref();
289
- t && H.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 H.register(i, {
310
- sendMessage: t.sendMessage,
311
- remoteUuid: t.remoteUuid,
312
- portId: e,
313
- cleanup: c
314
- }, i), i instanceof B && (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
- }, Be = /* @__PURE__ */ t({
322
- box: () => Ge,
323
- isType: () => We,
324
- revive: () => Ke,
325
- type: () => Ve
326
- }), Ve = "promise", He = (e) => e instanceof Promise, Ue = /* @__PURE__ */ new Set(), We = (e) => e instanceof Promise, Ge = (e, t) => {
327
- if (!He(e)) throw TypeError("Expected Promise");
328
- let n = e, { localPort: r, boxedRemote: i } = K(t), a = (e) => {
329
- 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
348
  error: F(e)
337
349
  })), {
338
350
  ...N,
339
- type: Ve,
340
- port: i
351
+ type: qe,
352
+ port: r
341
353
  };
342
- }, Ke = (e, t) => {
343
- let n = G(e.port, t);
344
- return Ue.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(), Ue.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
- }, qe = /* @__PURE__ */ t({
350
- box: () => Ze,
351
- isType: () => Xe,
352
- revive: () => Qe,
353
- type: () => Je
354
- }), Je = "function", Ye = 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
- q.delete(t);
366
- try {
367
- t.close();
368
- } catch {}
369
- }
370
- e.inFlight.clear();
371
- }), q = /* @__PURE__ */ new Set(), Xe = (e) => typeof e == "function", Ze = (e, t) => {
372
- let { localPort: n, boxedRemote: r } = K(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) {
388
- try {
389
- n.postMessage({
390
- __osra_err__: !0,
391
- error: F(e)
392
- });
393
- } catch {}
394
- }
395
- }, (e) => {
396
- try {
397
- n.postMessage({
378
+ n = {
398
379
  __osra_err__: !0,
399
380
  error: F(e)
400
- });
401
- } catch {}
402
- }).finally(() => {
403
- queueMicrotask(() => n.close());
404
- });
381
+ };
382
+ }
383
+ let a = X(n, t);
384
+ r.postMessage(a, $(a)), queueMicrotask(() => {
385
+ try {
386
+ r.close();
387
+ } catch {}
388
+ });
389
+ })();
405
390
  }), n.start(), {
406
391
  ...N,
407
- type: Je,
408
- port: r
392
+ type: et,
393
+ port: H(r, t)
409
394
  };
410
- }, Qe = (e, t) => {
411
- let n = G(e.port, t), r = /* @__PURE__ */ new Set(), i = (...e) => new Promise((i, a) => {
412
- let { localPort: o, boxedRemote: s } = K(t);
413
- q.add(o);
414
- 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(), q.delete(o), r.delete(c);
420
- }, { once: !0 }), o.start();
421
- try {
422
- n.postMessage([s, e]);
423
- } catch (e) {
424
- q.delete(o), r.delete(c);
425
- try {
426
- o.close();
427
- } catch {}
428
- a(e);
429
- }
430
- });
431
- return Ye.register(i, {
432
- port: n,
433
- inFlight: r
434
- }, i), i;
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();
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
416
  ...N,
446
- type: et,
417
+ type: it,
447
418
  port: r
448
419
  };
449
- }, rt = (e, t) => {
450
- let n = G(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,13 +431,13 @@ var ie = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : D(e.
460
431
  n.postMessage({ type: "cancel" }), queueMicrotask(() => n.close());
461
432
  }
462
433
  });
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);
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",
@@ -474,51 +445,51 @@ var ie = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : D(e.
474
445
  }), n.close();
475
446
  }, { once: !0 }), {
476
447
  ...N,
477
- type: at,
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
- }, ct = (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 = G(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
- }, 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) => ({
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) => ({
495
466
  ...N,
496
- type: ut,
467
+ type: pt,
497
468
  status: e.status,
498
469
  statusText: e.statusText,
499
- headers: R(e.headers, t),
500
- body: e.body ? nt(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
- }), pt = (e, t) => {
504
- let n = z(e.headers, t), r = e.body ? rt(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
- }, 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) => ({
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) => ({
516
487
  ...N,
517
- type: ht,
488
+ type: vt,
518
489
  method: e.method,
519
490
  url: e.url,
520
- headers: R(e.headers, t),
521
- body: e.body ? nt(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 ie = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : D(e.
526
497
  referrerPolicy: e.referrerPolicy,
527
498
  integrity: e.integrity,
528
499
  keepalive: e.keepalive
529
- }), vt = (e, t) => {
530
- let n = z(e.headers, t), r = e.body ? rt(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,23 +512,28 @@ var ie = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : D(e.
541
512
  keepalive: e.keepalive,
542
513
  duplex: "half"
543
514
  });
544
- }, yt = /* @__PURE__ */ t({
545
- box: () => kt,
546
- identity: () => wt,
547
- isType: () => Ot,
548
- revive: () => At,
515
+ }, St = /* @__PURE__ */ t({
516
+ box: () => Pt,
517
+ boxByReference: () => Ft,
518
+ identity: () => Y,
519
+ isType: () => Mt,
520
+ revive: () => It,
549
521
  type: () => J
550
- }), J = "identity", bt = Symbol.for("osra.identity"), Y = (e) => e !== null && (typeof e == "object" || typeof e == "function"), xt = (e) => Y(e) && bt in e && e[bt] === !0, St = /* @__PURE__ */ new WeakMap(), Ct = (e) => {
551
- if (xt(e)) return e;
552
- let t = St.get(e);
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
- [bt]: !0,
531
+ [Ct]: !0,
556
532
  value: e
557
533
  };
558
- return St.set(e, n), n;
559
- }, wt = (e) => Y(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
538
  let n = /* @__PURE__ */ new WeakMap(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new WeakMap(), o = {
563
539
  sendIds: n,
@@ -576,52 +552,75 @@ var ie = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : D(e.
576
552
  revivedToId: a,
577
553
  listenerInstalled: !1
578
554
  };
579
- return Tt.set(e, o), Dt(e, o), o;
580
- }, Dt = (e, t) => {
555
+ return kt.set(e, o), jt(e, o), o;
556
+ }, jt = (e, t) => {
581
557
  t.listenerInstalled || (t.listenerInstalled = !0, e.eventTarget.addEventListener("message", ({ detail: e }) => {
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
- }
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);
586
561
  }));
587
- }, Ot = (e) => xt(e), kt = (e, t) => {
588
- let n = Et(t), r = e.value, i = Y(r) ? r : void 0;
589
- if (i !== void 0) {
590
- let e = n.sendIds.get(i);
591
- if (e !== void 0) return {
592
- ...N,
593
- type: J,
594
- id: e
595
- };
596
- let t = n.revivedToId.get(i);
597
- if (t !== void 0) return {
598
- ...N,
599
- type: J,
600
- id: t
601
- };
602
- }
603
- let a = globalThis.crypto.randomUUID(), o = X(r, t);
604
- return i !== void 0 && (n.sendIds.set(i, a), n.idToSent.set(a, new WeakRef(i)), n.sendRegistry.register(i, a)), {
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
+ } : {
605
592
  ...N,
606
593
  type: J,
607
594
  id: a,
608
- 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
609
608
  };
610
- }, At = (e, t) => {
611
- 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);
612
611
  if (r !== void 0) return r;
613
612
  let i = n.idToSent.get(e.id)?.deref();
614
613
  if (i !== void 0) return i;
615
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`);
616
615
  let a = Z(e.inner, t);
617
- return n.receiveCache.set(e.id, a), Y(a) && n.revivedToId.set(a, e.id), a;
618
- }, jt = /* @__PURE__ */ t({
619
- box: () => zt,
620
- isType: () => Rt,
621
- revive: () => Bt,
622
- transfer: () => Lt,
623
- type: () => Mt
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, [
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, [
625
624
  globalThis.ArrayBuffer,
626
625
  globalThis.MessagePort,
627
626
  globalThis.ReadableStream,
@@ -629,180 +628,248 @@ var ie = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : D(e.
629
628
  globalThis.TransformStream,
630
629
  globalThis.ImageBitmap,
631
630
  globalThis.OffscreenCanvas
632
- ]) : !1, Lt = (e) => It(e) ? {
633
- [Nt]: !0,
631
+ ]) : !1, Ut = (e) => Ht(e) ? {
632
+ [zt]: !0,
634
633
  value: e
635
- } : e, Rt = (e) => Ft(e), zt = (e, t) => {
636
- let n = e.value, r = X(n, t);
637
- return {
638
- ...N,
639
- type: Mt,
640
- inner: r,
641
- degraded: E(t.transport)
642
- };
643
- }, Bt = (e, t) => Z(e.inner, t), Vt = /* @__PURE__ */ t({
644
- box: () => Ut,
645
- isType: () => Ht,
646
- 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,
647
643
  type: () => "map"
648
- }), Ht = (e) => e instanceof Map, Ut = (e, t) => ({
644
+ }), Jt = (e) => e instanceof Map, Yt = (e, t) => ({
649
645
  ...N,
650
646
  type: "map",
651
647
  entries: Array.from(e, ([e, n]) => [X(e, t), X(n, t)])
652
- }), Wt = (e, t) => new Map(e.entries.map(([e, n]) => [Z(e, t), Z(n, t)])), Gt = /* @__PURE__ */ t({
653
- box: () => qt,
654
- isType: () => Kt,
655
- 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,
656
652
  type: () => "set"
657
- }), Kt = (e) => e instanceof Set, qt = (e, t) => ({
653
+ }), Qt = (e) => e instanceof Set, $t = (e, t) => ({
658
654
  ...N,
659
655
  type: "set",
660
656
  values: Array.from(e, (e) => X(e, t))
661
- }), Jt = (e, t) => new Set(e.values.map((e) => Z(e, t))), Yt = /* @__PURE__ */ t({
662
- box: () => Qt,
663
- isType: () => Zt,
664
- revive: () => $t,
665
- type: () => Xt
666
- }), Xt = "bigint", Zt = (e) => typeof e == "bigint", Qt = (e, t) => ({
667
- ...N,
668
- type: Xt,
669
- value: e.toString()
670
- }), $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({
671
658
  box: () => an,
672
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,
673
669
  revive: () => dn,
674
- type: () => tn
675
- }), tn = "eventTarget", nn = new FinalizationRegistry((e) => {
676
- try {
677
- e.port.postMessage({ kind: "close" });
678
- } catch {}
679
- }), rn = (e) => e instanceof EventTarget, an = (e, t) => {
680
- let { localPort: n, boxedRemote: r } = K(t), i = /* @__PURE__ */ new Map(), a = () => {
681
- for (let [t, n] of i) e.removeEventListener(t, n);
682
- i.clear(), n.removeEventListener("message", o), n.close();
683
- }, o = ({ data: t }) => {
684
- if (t.kind === "close") {
685
- a();
686
- return;
687
- }
688
- if (t.kind === "subscribe") {
689
- if (i.has(t.eventType)) return;
690
- let r = (e) => {
691
- let r = {
692
- kind: "event",
693
- eventType: t.eventType,
694
- bubbles: e.bubbles,
695
- cancelable: e.cancelable,
696
- composed: e.composed
697
- };
698
- e instanceof CustomEvent && (r.detail = e.detail), n.postMessage(r);
699
- };
700
- e.addEventListener(t.eventType, r), i.set(t.eventType, r);
701
- return;
702
- }
703
- if (t.kind === "unsubscribe") {
704
- let n = i.get(t.eventType);
705
- if (!n) return;
706
- e.removeEventListener(t.eventType, n), i.delete(t.eventType);
707
- }
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
708
684
  };
709
- return n.addEventListener("message", o), n.start(), {
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 = {
710
745
  ...N,
711
- type: tn,
712
- port: r
746
+ type: Dn,
747
+ description: e.description
713
748
  };
714
- }, on = (e) => typeof e == "boolean" ? e : !!e?.capture, sn = (e) => typeof e == "object" && !!e && !!e.once, cn = (e, t, n, r) => {
715
- let i = e.get(t);
716
- if (!i) return !1;
717
- let a = i.get(n);
718
- return !a || !a.delete(r) || (a.size === 0 && i.delete(n), i.size > 0) ? !1 : (e.delete(t), !0);
719
- }, ln = (e, t) => {
720
- e.addEventListener("message", ({ data: e }) => {
721
- if (e.kind !== "event") return;
722
- let n = t.deref();
723
- if (!n) return;
724
- let r = {
725
- bubbles: e.bubbles,
726
- cancelable: e.cancelable,
727
- composed: e.composed
728
- }, i = "detail" in e ? new CustomEvent(e.eventType, {
729
- ...r,
730
- detail: e.detail
731
- }) : new Event(e.eventType, r);
732
- n.dispatchEvent(i);
733
- });
734
- }, un = (e, t, n) => {
735
- let r = EventTarget.prototype.addEventListener.bind(e), i = EventTarget.prototype.removeEventListener.bind(e);
736
- Object.defineProperty(e, "addEventListener", { value: (e, i, a) => {
737
- if (i === null) return;
738
- let o = on(a), s = sn(a), c = n.get(e), l = !c;
739
- c || (c = /* @__PURE__ */ new Map(), n.set(e, c));
740
- let u = c.get(i);
741
- if (u || (u = /* @__PURE__ */ new Map(), c.set(i, u)), u.has(o)) return;
742
- let d = s ? (r) => {
743
- cn(n, e, i, o) && t.postMessage({
744
- kind: "unsubscribe",
745
- eventType: e
746
- }), typeof i == "function" ? i(r) : i.handleEvent(r);
747
- } : i;
748
- u.set(o, d), l && t.postMessage({
749
- kind: "subscribe",
750
- eventType: e
751
- }), r(e, d, a);
752
- } }), Object.defineProperty(e, "removeEventListener", { value: (e, r, a) => {
753
- if (r === null) return;
754
- let o = on(a), s = n.get(e)?.get(r)?.get(o);
755
- s && (i(e, s, a), cn(n, e, r, o) && t.postMessage({
756
- kind: "unsubscribe",
757
- eventType: e
758
- }));
759
- } });
760
- }, dn = (e, t) => {
761
- let n = G(e.port, t);
762
- n.start();
763
- let r = new EventTarget(), i = /* @__PURE__ */ new Map();
764
- return ln(n, new WeakRef(r)), un(r, n, i), nn.register(r, { port: n }, r), r;
765
- }, fn = [
766
- jt,
767
- yt,
768
- ue,
769
- he,
770
- be,
771
- Ce,
772
- Oe,
773
- Be,
774
- qe,
775
- Ne,
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,
816
+ Se,
817
+ De,
818
+ Me,
819
+ bn,
820
+ Ke,
776
821
  $e,
777
- it,
778
- lt,
779
- mt,
780
- Vt,
781
- Gt,
782
- Yt,
783
- en
784
- ], 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) => {
785
- let n = pn(e, t.revivableModules);
822
+ Re,
823
+ rt,
824
+ st,
825
+ ft,
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);
786
853
  return n ? n.box(e, t) : e;
787
854
  }, X = (e, t) => {
788
855
  if (P(e)) return e;
789
- let n = pn(e, t.revivableModules);
790
- return n ? n.box(e, t) : gn(e, (e) => X(e, t));
791
- }, vn = (e, t) => {
856
+ let n = zn(e, t.revivableModules);
857
+ return n ? n.box(e, t) : Hn(e, (e) => X(e, t));
858
+ }, Wn = (e, t) => {
792
859
  if (!P(e)) return e;
793
- let n = mn(e, t.revivableModules);
860
+ let n = Bn(e, t.revivableModules);
794
861
  return n ? n.revive(e, t) : e;
795
862
  }, Z = (e, t) => {
796
863
  if (P(e)) {
797
- let n = mn(e, t.revivableModules);
864
+ let n = Bn(e, t.revivableModules);
798
865
  if (n) return n.revive(e, t);
799
866
  }
800
- return gn(e, (e) => Z(e, t));
801
- }, yn = /* @__PURE__ */ t({
802
- init: () => xn,
867
+ return Hn(e, (e) => Z(e, t));
868
+ }, Gn = /* @__PURE__ */ t({
869
+ init: () => qn,
803
870
  startBidirectionalConnection: () => Q,
804
- type: () => bn
805
- }), 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 }) => {
806
873
  let o = {
807
874
  transport: e,
808
875
  remoteUuid: n,
@@ -822,8 +889,8 @@ var ie = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : D(e.
822
889
  revivableContext: o,
823
890
  remoteValue: s.then((e) => Z(e, o))
824
891
  };
825
- }, xn = (e) => {
826
- if (D(e.transport) && O(e.transport)) {
892
+ }, qn = (e) => {
893
+ if (O(e.transport) && k(e.transport)) {
827
894
  if (e.protocolEventTarget.addEventListener("message", ({ detail: t }) => {
828
895
  if (t.type === "announce") {
829
896
  if (!t.remoteUuid) {
@@ -879,24 +946,30 @@ var ie = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : D(e.
879
946
  }
880
947
  e.sendMessage({ type: "announce" });
881
948
  }
882
- }, Sn = () => new EventTarget(), Cn = (e) => _(e, [
949
+ }, Jn = () => new EventTarget(), Yn = (e) => v(e, [
883
950
  globalThis.MessagePort,
884
951
  globalThis.ReadableStream,
885
952
  globalThis.WritableStream,
886
953
  globalThis.TransformStream,
887
- globalThis.OffscreenCanvas
888
- ]), wn = (e) => P(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) => {
889
962
  let t = [], n = /* @__PURE__ */ new WeakSet(), r = (e, i) => {
890
- if (!(!e || typeof e != "object") && !n.has(e) && (n.add(e), !v(e))) {
891
- if (wn(e)) {
963
+ if (!(!e || typeof e != "object") && !n.has(e) && (n.add(e), !y(e))) {
964
+ if (Xn(e)) {
892
965
  r(e.inner, i || !e.degraded);
893
966
  return;
894
967
  }
895
- if (Cn(e)) {
968
+ if (Yn(e)) {
896
969
  t.push(e);
897
970
  return;
898
971
  }
899
- if (y(e)) {
972
+ if (b(e)) {
900
973
  i && t.push(e);
901
974
  return;
902
975
  }
@@ -910,23 +983,23 @@ var ie = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : D(e.
910
983
  }
911
984
  };
912
985
  return r(e, !1), t;
913
- }, Tn = (e) => ({
914
- isJson: "isJson" in e && e.isJson !== void 0 ? e.isJson : E(e),
915
- ...k(e) ? e : {
986
+ }, Zn = (e) => ({
987
+ isJson: "isJson" in e && e.isJson !== void 0 ? e.isJson : D(e),
988
+ ...j(e) ? e : {
916
989
  emit: e,
917
990
  receive: e
918
991
  }
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 }) => {
920
- let f = Tn(t), p = En(l), m = /* @__PURE__ */ new Map(), { promise: h, resolve: g } = Promise.withResolvers(), _ = u ?? globalThis.crypto.randomUUID(), v = (e) => {
921
- if (c?.aborted || !D(f)) return;
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) => {
994
+ if (c?.aborted || !O(f)) return;
922
995
  let t = {
923
996
  [n]: o,
924
997
  name: i,
925
998
  uuid: _,
926
999
  ...e
927
1000
  };
928
- le(f, t, s, $(t));
929
- }, y = Sn(), b = {
1001
+ ue(f, t, s, $(t));
1002
+ }, y = Jn(), b = {
930
1003
  transport: f,
931
1004
  value: e,
932
1005
  revivableModules: p,
@@ -936,9 +1009,9 @@ var ie = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : D(e.
936
1009
  sendMessage: v,
937
1010
  protocolEventTarget: y,
938
1011
  resolveRemoteValue: g,
939
- createConnectionEventTarget: Sn
1012
+ createConnectionEventTarget: Jn
940
1013
  };
941
- O(f) && ce({
1014
+ k(f) && le({
942
1015
  listener: (e, t) => {
943
1016
  e.uuid !== _ && y.dispatchEvent(new CustomEvent("message", { detail: e }));
944
1017
  },
@@ -947,10 +1020,10 @@ var ie = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : D(e.
947
1020
  key: o,
948
1021
  unregisterSignal: c
949
1022
  });
950
- for (let e of Dn) e.init(b);
1023
+ for (let e of $n) e.init(b);
951
1024
  return h;
952
- }, kn = async (e, t) => On(e, t);
1025
+ }, tr = async (e, t) => er(e, t);
953
1026
  //#endregion
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 };
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 };
955
1028
 
956
1029
  //# sourceMappingURL=index.js.map