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