osra 0.2.14 → 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 -718
  7. package/build/index.js +917 -726
  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,729 +1,920 @@
1
- const E = "__OSRA_KEY__", he = "__OSRA_DEFAULT_KEY__", _ = "__OSRA_BOX__", b = {
2
- [_]: "revivable",
3
- type: ""
4
- }, X = (e, t) => e && typeof e == "object" && _ in e && e[_] === "revivable", we = () => {
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
- }, H = (e, t) => Me(e) && e[E] === t, Ue = ({ listener: e, transport: t, remoteName: r, key: n = E, unregisterSignal: a }) => {
37
- const s = (o) => {
38
- if (typeof o == "function")
39
- o(e);
40
- else if (I(o) || R(o) || F(o)) {
41
- const i = (c, y) => {
42
- const p = (l, d) => {
43
- H(l, n) && (r && l.name !== r || e(l, { port: y, sender: d }));
44
- };
45
- c.addListener(p), a && a.addEventListener(
46
- "abort",
47
- () => c.removeListener(p)
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 F(o) ? i(o) : i(o.onMessage);
59
- } else {
60
- const i = (c) => {
61
- H(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
- D(t) ? s(t.receive) : s(t);
70
- }, Te = (e, t, r = "*", n = []) => {
71
- const a = (s) => {
72
- typeof s == "function" ? s(t, n) : w(s) ? s.postMessage(t, r, n) : I(s) ? s.postMessage(t) : x(s) ? s.send(JSON.stringify(t)) : z(s) ? s.port.postMessage(t, n) : s.postMessage(t, n);
73
- };
74
- D(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 x = (e) => e instanceof WebSocket, Q = (e) => globalThis.ServiceWorkerContainer && e instanceof ServiceWorkerContainer, Z = (e) => globalThis.Worker && e instanceof Worker, N = (e) => globalThis.DedicatedWorkerGlobalScope && e instanceof DedicatedWorkerGlobalScope, z = (e) => globalThis.SharedWorker && e instanceof SharedWorker, v = (e) => e instanceof MessagePort, Me = (e) => !!(e && typeof e == "object" && e[E]), _e = (e) => !!(globalThis.SharedArrayBuffer && e instanceof globalThis.SharedArrayBuffer), Pe = (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), I = (e, t = !1) => !!(e && typeof e == "object" && !w(e) && "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" && !w(e) && e.addListener && e.hasListener && e.removeListener), F = (e) => !!(e && typeof e == "object" && !w(e) && e.addListener && e.hasListener && e.removeListener), w = (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
- }, ee = (e) => x(e) || I(e), te = (e) => x(e) || I(e) || R(e) || F(e), j = (e) => "isJson" in e && e.isJson === !0 || ee(e) || te(e), S = (e) => w(e) || ee(e) || Q(e) || Z(e) || N(e) || z(e) || v(e) || re(e), k = (e) => w(e) || te(e) || Q(e) || Z(e) || N(e) || z(e) || v(e) || ne(e), re = (e) => !!(e && typeof e == "object" && !w(e) && "emit" in e && (S(e.emit) || typeof e.emit == "function")), ne = (e) => !!(e && typeof e == "object" && !w(e) && "receive" in e && (k(e.receive) || typeof e.receive == "function")), D = (e) => re(e) || ne(e), U = (e) => {
90
- const t = [], r = (n) => _e(n) ? void 0 : Pe(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
- }, L = (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 ? U(e) : []), a;
100
- }, Be = async () => {
101
- const { port1: e } = new MessageChannel();
102
- return await L(e, !0) instanceof MessagePort;
103
- }, Ce = async () => {
104
- const e = new ArrayBuffer(1);
105
- return await L(e) instanceof ArrayBuffer;
106
- }, Se = async () => {
107
- const e = new ArrayBuffer(1);
108
- return await L(e, !0) instanceof ArrayBuffer;
109
- }, Oe = async () => {
110
- const e = new ReadableStream({
111
- start(r) {
112
- r.enqueue(new Uint8Array(1)), r.close();
113
- }
114
- });
115
- return await L(e, !0) instanceof ReadableStream;
116
- }, Ee = async () => {
117
- const [
118
- e,
119
- t,
120
- r,
121
- n
122
- ] = await Promise.all([
123
- Be().catch(() => !1),
124
- Ce().catch(() => !1),
125
- Se().catch(() => !1),
126
- Oe().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
- }, se = "arrayBuffer", Ie = (e) => e instanceof ArrayBuffer, je = (e, t) => ({
136
- ...b,
137
- type: se,
138
- ...j(t.transport) ? { base64Buffer: new Uint8Array(e).toBase64() } : { arrayBuffer: e }
139
- }), Le = (e, t) => "arrayBuffer" in e ? e.arrayBuffer : Uint8Array.fromBase64(e.base64Buffer).buffer, $e = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
140
- __proto__: null,
141
- box: je,
142
- isType: Ie,
143
- revive: Le,
144
- type: se
145
- }, Symbol.toStringTag, { value: "Module" })), oe = "date", Re = (e) => e instanceof Date, Fe = (e, t) => ({
146
- ...b,
147
- type: oe,
148
- ISOString: e.toISOString()
149
- }), ke = (e, t) => new Date(e.ISOString), We = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
150
- __proto__: null,
151
- box: Fe,
152
- isType: Re,
153
- revive: ke,
154
- type: oe
155
- }, Symbol.toStringTag, { value: "Module" })), ae = "headers", xe = (e) => e instanceof Headers, q = (e, t) => ({
156
- ...b,
157
- type: ae,
158
- entries: [...e.entries()]
159
- }), J = (e, t) => new Headers(e.entries), ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
160
- __proto__: null,
161
- box: q,
162
- isType: xe,
163
- revive: J,
164
- type: ae
165
- }, Symbol.toStringTag, { value: "Module" })), ie = "error", De = (e) => e instanceof Error, qe = (e, t) => ({
166
- ...b,
167
- type: ie,
168
- message: e.message,
169
- stack: e.stack || e.toString()
170
- }), Je = (e, t) => new Error(e.message, { cause: e.stack }), Ve = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
171
- __proto__: null,
172
- box: qe,
173
- isType: De,
174
- revive: Je,
175
- type: ie
176
- }, Symbol.toStringTag, { value: "Module" })), ce = "typedArray", Ke = [
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 ye = (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
- }, de = (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
- }, Ye = (e) => Ke.some((t) => e instanceof t), Ge = (e, t) => ({
200
- ...b,
201
- type: ce,
202
- typedArrayType: ye(e),
203
- ...j(t.transport) ? { base64Buffer: new Uint8Array(e.buffer).toBase64() } : { arrayBuffer: e.buffer }
204
- }), He = (e, t) => {
205
- const r = de(e.typedArrayType), n = "arrayBuffer" in e ? e.arrayBuffer : Uint8Array.fromBase64(e.base64Buffer).buffer;
206
- return new r(n);
207
- }, Xe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
208
- __proto__: null,
209
- box: Ge,
210
- isType: Ye,
211
- revive: He,
212
- type: ce,
213
- typedArrayToType: ye,
214
- typedArrayTypeToTypedArrayConstructor: de
215
- }, Symbol.toStringTag, { value: "Module" })), O = new FinalizationRegistry((e) => {
216
- e.sendMessage({
217
- type: "message-port-close",
218
- remoteUuid: e.remoteUuid,
219
- portId: e.portId
220
- }), e.cleanup();
221
- }), W = "messagePort", Qe = (e) => e instanceof MessagePort, fe = (e) => e !== null && typeof e == "object" && _ in e && e[_] === "revivable", P = (e, t) => {
222
- if (j(t.transport)) {
223
- let n = function({ data: y }) {
224
- t.sendMessage({
225
- type: "message",
226
- remoteUuid: t.remoteUuid,
227
- data: fe(y) ? y : m(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 l = o.deref();
236
- l && (O.unregister(l), l.close()), t.eventTarget.removeEventListener("message", i);
237
- return;
238
- }
239
- if (y.type !== "message" || y.portId !== s) return;
240
- const p = o.deref();
241
- if (!p) {
242
- t.eventTarget.removeEventListener("message", i);
243
- return;
244
- }
245
- p.postMessage(y.data, U(y.data));
246
- };
247
- return O.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
- ...b,
256
- type: W,
257
- portId: s
258
- };
259
- }
260
- return {
261
- ...b,
262
- type: W,
263
- port: e
264
- };
265
- }, B = (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: fe(d) ? d : m(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 && O.unregister(h), l();
279
- }, p = ({ data: d }) => {
280
- if (d.type !== "message" || d.portId !== n) return;
281
- const h = c.deref();
282
- if (!h) {
283
- l();
284
- return;
285
- }
286
- if (t.messagePorts.has(h))
287
- s.postMessage(d.data);
288
- else {
289
- const C = A(d.data, t);
290
- s.postMessage(C, U(C));
291
- }
292
- }, l = () => {
293
- t.eventTarget.removeEventListener("message", y), i.removeEventListener("message", p), 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 O.register(a, {
298
- sendMessage: t.sendMessage,
299
- remoteUuid: t.remoteUuid,
300
- portId: n,
301
- cleanup: l
302
- }, a), s.addEventListener("message", r), s.start(), t.eventTarget.addEventListener("message", y), i.addEventListener("message", p), i.start(), a;
303
- }
304
- return e.port;
305
- }, Ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
306
- __proto__: null,
307
- box: P,
308
- isType: Qe,
309
- revive: B,
310
- type: W
311
- }, Symbol.toStringTag, { value: "Module" })), pe = "promise", Ne = (e) => e instanceof Promise, ve = (e) => e instanceof Promise, et = (e, t) => {
312
- if (!Ne(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 = m(o, t);
317
- n.postMessage(i, U(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
- ...b,
321
- type: pe,
322
- port: P(a, t)
323
- };
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
+ };
324
407
  }, tt = (e, t) => {
325
- const r = B(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
- }, rt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
333
- __proto__: null,
334
- box: et,
335
- isType: ve,
336
- revive: tt,
337
- type: pe
338
- }, Symbol.toStringTag, { value: "Module" })), le = "function", nt = 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
- }), st = (e) => typeof e == "function", ot = (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 = m(c, t);
359
- o.postMessage(y, U(y));
360
- }), r.start(), {
361
- ...b,
362
- type: le,
363
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
364
- port: P(n, t)
365
- };
366
- }, at = (e, t) => {
367
- const r = B(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 = m([c, a], t);
371
- r.postMessage(y, U(y)), t.messagePorts.delete(c), i.addEventListener("message", ({ data: p }) => {
372
- A(p, t).then(s).catch(o).finally(() => {
373
- i.close();
374
- });
375
- }, { once: !0 }), i.start();
376
- });
377
- return nt.register(n, { port: r }, n), n;
378
- }, it = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
379
- __proto__: null,
380
- box: ot,
381
- isType: st,
382
- revive: at,
383
- type: le
384
- }, Symbol.toStringTag, { value: "Module" })), be = "readableStream", ct = (e) => e instanceof ReadableStream, V = (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 = m(i, t);
392
- r.postMessage(c, U(c));
393
- } else
394
- a.cancel(), r.close();
395
- }), r.start(), {
396
- ...b,
397
- type: be,
398
- port: P(n, t)
399
- };
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
+ };
400
446
  }, K = (e, t) => {
401
- const r = B(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(m({ type: "pull" }, t));
412
- });
413
- },
414
- cancel() {
415
- r.postMessage(m({ type: "cancel" }, t)), r.close();
416
- }
417
- });
418
- }, yt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
419
- __proto__: null,
420
- box: V,
421
- isType: ct,
422
- revive: K,
423
- type: be
424
- }, Symbol.toStringTag, { value: "Module" })), ge = "abortSignal", dt = (e) => e instanceof AbortSignal, ft = (e, t) => {
425
- const { port1: r, port2: n } = new MessageChannel();
426
- t.messagePorts.add(n), e.aborted ? r.close() : e.addEventListener("abort", () => {
427
- const s = {
428
- type: "abort",
429
- reason: e.reason
430
- };
431
- r.postMessage(s), r.close();
432
- }, { once: !0 });
433
- const a = P(n, t);
434
- return {
435
- ...b,
436
- type: ge,
437
- aborted: e.aborted,
438
- reason: e.reason,
439
- port: a
440
- };
441
- }, pt = (e, t) => {
442
- const r = new AbortController();
443
- if (e.aborted)
444
- return r.abort(e.reason), r.signal;
445
- const n = B(e.port, t);
446
- return t.messagePorts.add(n), n.start(), n.addEventListener("message", ({ data: a }) => {
447
- const s = a;
448
- s.type === "abort" && (r.abort(s.reason), n.close());
449
- }), r.signal;
450
- }, lt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
451
- __proto__: null,
452
- box: ft,
453
- isType: dt,
454
- revive: pt,
455
- type: ge
456
- }, Symbol.toStringTag, { value: "Module" })), me = "response", bt = (e) => e instanceof Response, gt = (e, t) => ({
457
- ...b,
458
- type: me,
459
- status: e.status,
460
- statusText: e.statusText,
461
- headers: q(e.headers),
462
- body: e.body ? V(e.body, t) : null,
463
- url: e.url,
464
- redirected: e.redirected
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
+ };
479
+ }, lt = (e, t) => {
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
465
500
  }), mt = (e, t) => {
466
- const r = J(e.headers), n = e.body ? K(e.body, t) : null;
467
- return new Response(n, {
468
- status: e.status,
469
- statusText: e.statusText,
470
- headers: r
471
- });
472
- }, ut = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
473
- __proto__: null,
474
- box: gt,
475
- isType: bt,
476
- revive: mt,
477
- type: me
478
- }, Symbol.toStringTag, { value: "Module" })), ue = "request", At = (e) => e instanceof Request, ht = (e, t) => ({
479
- ...b,
480
- type: ue,
481
- method: e.method,
482
- url: e.url,
483
- headers: q(e.headers),
484
- body: e.body ? V(e.body, t) : null,
485
- credentials: e.credentials,
486
- cache: e.cache,
487
- redirect: e.redirect,
488
- referrer: e.referrer,
489
- referrerPolicy: e.referrerPolicy,
490
- integrity: e.integrity,
491
- keepalive: e.keepalive
492
- }), wt = (e, t) => {
493
- const r = J(e.headers), n = e.body ? K(e.body, t) : null;
494
- return new Request(e.url, {
495
- method: e.method,
496
- headers: r,
497
- body: n,
498
- credentials: e.credentials,
499
- cache: e.cache,
500
- redirect: e.redirect,
501
- referrer: e.referrer,
502
- referrerPolicy: e.referrerPolicy,
503
- integrity: e.integrity,
504
- keepalive: e.keepalive,
505
- // @ts-expect-error - duplex is needed for streaming bodies
506
- duplex: "half"
507
- });
508
- }, Ut = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
509
- __proto__: null,
510
- box: ht,
511
- isType: At,
512
- revive: wt,
513
- type: ue
514
- }, Symbol.toStringTag, { value: "Module" })), Tt = [
515
- $e,
516
- We,
517
- ze,
518
- Ve,
519
- Xe,
520
- rt,
521
- it,
522
- Ze,
523
- yt,
524
- lt,
525
- ut,
526
- Ut
527
- ], Bt = (e, t) => {
528
- const r = t.revivableModules.find((n) => n.isType(e));
529
- return r?.isType(e) ? r.box(e, t) : e;
530
- }, Ct = (e, t) => {
531
- const r = t.revivableModules.find((n) => n.isType(e));
532
- return r?.isType(e) ? r.box(e, t) : e;
533
- }, m = (e, t) => {
534
- const r = t.revivableModules.find((n) => n.isType(e));
535
- return r?.isType(e) ? r.box(e, t) : Array.isArray(e) ? e.map((n) => m(n, t)) : e && typeof e == "object" && Object.getPrototypeOf(e) === Object.prototype ? Object.fromEntries(
536
- Object.entries(e).map(([n, a]) => [
537
- n,
538
- m(a, t)
539
- ])
540
- ) : e;
541
- }, St = (e, t) => {
542
- const r = X(e) ? e.type : void 0, n = t.revivableModules.find((a) => a.type === r);
543
- return n ? n.revive(e, t) : e;
544
- }, A = (e, t) => {
545
- if (X(e)) {
546
- const r = t.revivableModules.find((n) => n.type === e.type);
547
- if (r)
548
- return r.revive(e, t);
549
- }
550
- return Array.isArray(e) ? e.map((r) => A(r, t)) : e && typeof e == "object" && Object.getPrototypeOf(e) === Object.prototype ? Object.fromEntries(
551
- Object.entries(e).map(([r, n]) => [
552
- r,
553
- A(n, t)
554
- ])
555
- ) : e;
556
- }, Mt = ({ transport: e, value: t, uuid: r, remoteUuid: n, platformCapabilities: a, eventTarget: s, send: o, close: i }) => {
557
- const c = {
558
- platformCapabilities: a,
559
- transport: e,
560
- remoteUuid: n,
561
- messagePorts: /* @__PURE__ */ new Set(),
562
- messageChannels: we(),
563
- sendMessage: o,
564
- eventTarget: s,
565
- revivableModules: Tt
566
- };
567
- let y;
568
- const p = new Promise((l, d) => {
569
- y = l;
570
- });
571
- return s.addEventListener("message", ({ detail: l }) => {
572
- if (l.type === "init") {
573
- y(l);
574
- return;
575
- } else l.type === "message" && c.messageChannels.getOrAlloc(l.portId).port2?.postMessage(l);
576
- }), o({
577
- type: "init",
578
- remoteUuid: n,
579
- data: m(t, c)
580
- }), {
581
- revivableContext: c,
582
- close: () => {
583
- },
584
- remoteValue: p.then((l) => A(l.data, c))
585
- };
586
- }, _t = ({ value: e, uuid: t, platformCapabilities: r, send: n, close: a }) => ({
587
- close: () => {
588
- },
589
- remoteValueProxy: new Proxy(
590
- new Function(),
591
- {
592
- apply: (s, o, i) => {
593
- },
594
- get: (s, o) => {
595
- }
596
- }
597
- )
598
- });
599
- var Pt = class extends EventTarget {
600
- dispatchTypedEvent(e, t) {
601
- return super.dispatchEvent(t);
602
- }
603
- };
604
- const Ot = async (e, {
605
- transport: t,
606
- name: r,
607
- remoteName: n,
608
- key: a = he,
609
- origin: s = "*",
610
- unregisterSignal: o,
611
- platformCapabilities: i,
612
- transferAll: c,
613
- logger: y
614
- }) => {
615
- const p = {
616
- isJson: "isJson" in t && t.isJson !== void 0 ? t.isJson : j(t),
617
- ...D(t) ? t : {
618
- emit: t,
619
- receive: t
620
- }
621
- }, l = i ?? await Ee(), d = /* @__PURE__ */ new Map();
622
- let h;
623
- const C = new Promise((f) => {
624
- h = f;
625
- });
626
- let u = globalThis.crypto.randomUUID(), Y = !1;
627
- o && o.addEventListener("abort", () => {
628
- Y = !0;
629
- });
630
- const T = (f, M) => {
631
- if (Y) return;
632
- const g = U(M);
633
- Te(
634
- f,
635
- {
636
- [E]: a,
637
- name: r,
638
- uuid: u,
639
- ...M
640
- },
641
- s,
642
- g
643
- );
644
- }, Ae = async (f, M) => {
645
- if (f.uuid !== u) {
646
- if (!S(p))
647
- throw new Error("Unidirectional receiving mode not implemented");
648
- if (f.type === "announce") {
649
- if (!f.remoteUuid) {
650
- T(p, { type: "announce", remoteUuid: f.uuid });
651
- return;
652
- }
653
- if (f.remoteUuid !== u || d.has(f.uuid))
654
- return;
655
- T(p, { type: "announce", remoteUuid: f.uuid });
656
- const g = new Pt(), G = {
657
- type: "bidirectional",
658
- eventTarget: g,
659
- connection: Mt({
660
- transport: p,
661
- value: e,
662
- uuid: u,
663
- remoteUuid: f.uuid,
664
- platformCapabilities: l,
665
- eventTarget: g,
666
- send: ($) => T(p, $),
667
- close: () => void d.delete(f.uuid)
668
- })
669
- };
670
- d.set(f.uuid, G), G.connection.remoteValue.then(
671
- ($) => h($)
672
- );
673
- } else if (f.type === "reject-uuid-taken") {
674
- if (f.remoteUuid !== u) return;
675
- u = globalThis.crypto.randomUUID(), T(p, { type: "announce" });
676
- } else if (f.type === "close") {
677
- if (f.remoteUuid !== u) return;
678
- const g = d.get(f.uuid);
679
- if (!g) {
680
- console.warn(`Connection not found for remoteUuid: ${f.uuid}`);
681
- return;
682
- }
683
- g.connection.close(), d.delete(f.uuid);
684
- } else {
685
- if (f.remoteUuid !== u) return;
686
- const g = d.get(f.uuid);
687
- if (!g) {
688
- console.warn(`Connection not found for remoteUuid: ${f.uuid}`);
689
- return;
690
- }
691
- g.type !== "unidirectional-emitting" && g.eventTarget.dispatchTypedEvent(
692
- "message",
693
- new CustomEvent("message", { detail: f })
694
- );
695
- }
696
- }
697
- };
698
- if (k(p) && Ue({
699
- listener: Ae,
700
- transport: p,
701
- remoteName: n,
702
- key: a,
703
- unregisterSignal: o
704
- }), S(p) && T(p, { type: "announce" }), S(p) && !k(p)) {
705
- const { remoteValueProxy: f } = _t({
706
- value: e,
707
- uuid: u,
708
- platformCapabilities: l,
709
- send: (M) => T(p, M),
710
- close: () => d.delete(u)
711
- });
712
- return f;
713
- }
714
- return C;
715
- };
716
- export {
717
- b as BoxBase,
718
- _ as OSRA_BOX,
719
- he as OSRA_DEFAULT_KEY,
720
- E as OSRA_KEY,
721
- Ct as box,
722
- Tt as defaultRevivableModules,
723
- Ot as expose,
724
- Bt as findModuleForValue,
725
- m as recursiveBox,
726
- A as recursiveRevive,
727
- St as revive
728
- };
729
- //# sourceMappingURL=index.js.map
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