osra 0.6.3 → 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -6,7 +6,7 @@ var e = Object.defineProperty, t = (t, n) => {
6
6
  enumerable: !0
7
7
  });
8
8
  return n || e(r, Symbol.toStringTag, { value: "Module" }), r;
9
- }, n = "__OSRA_KEY__", r = "__OSRA_DEFAULT_KEY__", i = "__OSRA_BOX__", a = () => globalThis.browser ?? globalThis.chrome, o = () => a()?.runtime, s = (e, t) => ne(e) && e.__OSRA_KEY__ === t, c = (e, t) => {
9
+ }, n = "__OSRA_KEY__", r = "__OSRA_DEFAULT_KEY__", i = "__OSRA_BOX__", a = () => globalThis.browser ?? globalThis.chrome, o = () => a()?.runtime, s = (e, t) => re(e) && e.__OSRA_KEY__ === t, c = (e, t) => {
10
10
  if (e) {
11
11
  if (e.aborted) {
12
12
  t();
@@ -24,7 +24,7 @@ var e = Object.defineProperty, t = (t, n) => {
24
24
  typeof t == "function" && c(o, t);
25
25
  return;
26
26
  }
27
- if (C(l) || w(l) || T(l) || E(l)) {
27
+ if (T(l) || E(l) || se(l) || ce(l)) {
28
28
  let t = (t, r) => {
29
29
  let a = (t, a) => {
30
30
  s(t, i) && (n && t.name !== n || e(t, {
@@ -34,14 +34,14 @@ var e = Object.defineProperty, t = (t, n) => {
34
34
  };
35
35
  t.addListener(a), c(o, () => t.removeListener(a));
36
36
  };
37
- if (C(l)) t(l.onMessage);
38
- else if (T(l)) {
37
+ if (T(l)) t(l.onMessage);
38
+ else if (se(l)) {
39
39
  let e = (e) => t(e.onMessage, e);
40
40
  l.addListener(e), c(o, () => l.removeListener(e));
41
- } else E(l) ? t(l) : t(l.onMessage);
41
+ } else ce(l) ? t(l) : t(l.onMessage);
42
42
  return;
43
43
  }
44
- let u = b(l) ? l.port : l, d = a !== "*" && D(l), f = (t) => {
44
+ let u = x(l) ? l.port : l, d = a !== "*" && D(l), f = (t) => {
45
45
  let r = t.data;
46
46
  if (typeof r == "string") try {
47
47
  r = JSON.parse(r);
@@ -55,19 +55,26 @@ var e = Object.defineProperty, t = (t, n) => {
55
55
  }));
56
56
  };
57
57
  u.addEventListener("message", f), u instanceof MessagePort && u.start(), c(o, () => u.removeEventListener("message", f));
58
- }, u = (e, t, n = "*", r = []) => {
58
+ }, u = /* @__PURE__ */ new WeakSet(), d = (e) => String(e?.message ?? e).includes("disconnected port"), f = (e, t, n = "*", r = []) => {
59
59
  let i = j(e) ? e.emit : e;
60
60
  if (typeof i == "function") i(t, r);
61
61
  else if (D(i)) i.postMessage(t, n, r);
62
- else if (w(i)) i.postMessage(t);
63
- else if (C(i)) i.sendMessage(t)?.catch?.((e) => {
62
+ else if (E(i)) {
63
+ if (u.has(i)) return;
64
+ try {
65
+ i.postMessage(t);
66
+ } catch (e) {
67
+ if (!d(e)) throw e;
68
+ u.add(i);
69
+ }
70
+ } else if (T(i)) i.sendMessage(t)?.catch?.((e) => {
64
71
  if (!String(e?.message).includes("Receiving end does not exist")) throw e;
65
72
  });
66
- else if (g(i)) {
73
+ else if (_(i)) {
67
74
  let e = JSON.stringify(t);
68
75
  i.readyState === WebSocket.CONNECTING ? i.addEventListener("open", () => i.send(e), { once: !0 }) : i.send(e);
69
- } else b(i) ? i.port.postMessage(t, r) : i.postMessage(t, r);
70
- }, d = globalThis.Float16Array, f = {
76
+ } else x(i) ? i.port.postMessage(t, r) : i.postMessage(t, r);
77
+ }, p = globalThis.Float16Array, m = {
71
78
  Int8Array,
72
79
  Uint8Array,
73
80
  Uint8ClampedArray,
@@ -75,27 +82,27 @@ var e = Object.defineProperty, t = (t, n) => {
75
82
  Uint16Array,
76
83
  Int32Array,
77
84
  Uint32Array,
78
- Float16Array: d,
85
+ Float16Array: p,
79
86
  Float32Array,
80
87
  Float64Array,
81
88
  BigInt64Array,
82
89
  BigUint64Array
83
- }, p = Object.values(f), m = (e) => {
90
+ }, ee = Object.values(m), h = (e) => {
84
91
  let t = e.constructor.name;
85
- if (t in f) return t;
86
- for (let [t, n] of Object.entries(f)) if (n && e instanceof n) return t;
92
+ if (t in m) return t;
93
+ for (let [t, n] of Object.entries(m)) if (n && e instanceof n) return t;
87
94
  throw Error("Unknown typed array type");
88
- }, ee = (e) => {
89
- let t = f[e];
95
+ }, te = (e) => {
96
+ let t = m[e];
90
97
  if (!t) throw Error("Unknown typed array type");
91
98
  return t;
92
- }, h = (e) => p.some((t) => !!t && e instanceof t), g = (e) => e instanceof WebSocket, te = (e) => !!globalThis.ServiceWorkerContainer && e instanceof ServiceWorkerContainer, _ = (e) => !!globalThis.ServiceWorker && e instanceof ServiceWorker, v = (e) => !!globalThis.Worker && e instanceof Worker, y = (e) => {
99
+ }, g = (e) => ee.some((t) => !!t && e instanceof t), _ = (e) => e instanceof WebSocket, v = (e) => !!globalThis.ServiceWorkerContainer && e instanceof ServiceWorkerContainer, y = (e) => !!globalThis.ServiceWorker && e instanceof ServiceWorker, ne = (e) => !!globalThis.Worker && e instanceof Worker, b = (e) => {
93
100
  let t = globalThis.DedicatedWorkerGlobalScope;
94
101
  return !!t && e instanceof t;
95
- }, b = (e) => !!globalThis.SharedWorker && e instanceof SharedWorker, x = (e) => e instanceof MessagePort, ne = (e) => !!e && typeof e == "object" && "__OSRA_KEY__" in e && !!e.__OSRA_KEY__, S = (e, t) => {
102
+ }, x = (e) => !!globalThis.SharedWorker && e instanceof SharedWorker, S = (e) => e instanceof MessagePort, re = (e) => !!e && typeof e == "object" && "__OSRA_KEY__" in e && !!e.__OSRA_KEY__, C = (e, t) => {
96
103
  for (let n of t) if (n && e instanceof n) return !0;
97
104
  return !1;
98
- }, re = (e) => S(e, [globalThis.SharedArrayBuffer]), ie = re, ae = (e) => S(e, [
105
+ }, w = (e) => C(e, [globalThis.SharedArrayBuffer]), ie = w, ae = (e) => C(e, [
99
106
  globalThis.ArrayBuffer,
100
107
  globalThis.MessagePort,
101
108
  globalThis.ReadableStream,
@@ -111,13 +118,13 @@ var e = Object.defineProperty, t = (t, n) => {
111
118
  globalThis.RTCDataChannel,
112
119
  globalThis.WebTransportReceiveStream,
113
120
  globalThis.WebTransportSendStream
114
- ]), C = (e) => {
121
+ ]), T = (e) => {
115
122
  let t = o();
116
123
  return t ? e === t : !1;
117
- }, w = (e, t = !1) => !e || typeof e != "object" || D(e) || !("name" in e) || !("disconnect" in e) || !("postMessage" in e) ? !1 : t ? "sender" in e && "onMessage" in e && "onDisconnect" in e : !0, oe = (e) => !!e && typeof e == "object" && !D(e) && "addListener" in e && "hasListener" in e && "removeListener" in e, T = (e) => {
124
+ }, E = (e, t = !1) => !e || typeof e != "object" || D(e) || !("name" in e) || !("disconnect" in e) || !("postMessage" in e) ? !1 : t ? "sender" in e && "onMessage" in e && "onDisconnect" in e : !0, oe = (e) => !!e && typeof e == "object" && !D(e) && "addListener" in e && "hasListener" in e && "removeListener" in e, se = (e) => {
118
125
  let t = o();
119
126
  return t ? e === t.onConnect || e === t.onConnectExternal : !1;
120
- }, E = (e) => oe(e), D = (e) => {
127
+ }, ce = (e) => oe(e), D = (e) => {
121
128
  if (!e || typeof e != "object") return !1;
122
129
  try {
123
130
  return "window" in e && e.window === e;
@@ -128,51 +135,51 @@ var e = Object.defineProperty, t = (t, n) => {
128
135
  return !1;
129
136
  }
130
137
  }
131
- }, se = (e) => g(e) || w(e) || C(e), ce = (e) => g(e) || w(e) || T(e) || E(e) || C(e), O = (e) => !!e && typeof e == "object" && !D(e) && "isJson" in e && e.isJson === !0 || se(e) || ce(e), k = (e) => D(e) || se(e) || _(e) || v(e) || y(e) || b(e) || x(e) || fe(e);
132
- function le(e) {
138
+ }, le = (e) => _(e) || E(e) || T(e), ue = (e) => _(e) || E(e) || se(e) || ce(e) || T(e), O = (e) => !!e && typeof e == "object" && !D(e) && "isJson" in e && e.isJson === !0 || le(e) || ue(e), k = (e) => D(e) || le(e) || y(e) || ne(e) || b(e) || x(e) || S(e) || me(e);
139
+ function de(e) {
133
140
  if (!k(e)) throw Error("Transport is not emitable");
134
141
  }
135
- var A = (e) => D(e) || ce(e) || te(e) || v(e) || y(e) || b(e) || x(e) || pe(e);
136
- function ue(e) {
142
+ var A = (e) => D(e) || ue(e) || v(e) || ne(e) || b(e) || x(e) || S(e) || he(e);
143
+ function fe(e) {
137
144
  if (!A(e)) throw Error("Transport is not receiveable");
138
145
  }
139
- var de = (e) => {
146
+ var pe = (e) => {
140
147
  if (!e || typeof e != "object" || D(e)) return !1;
141
148
  let t = Object.getPrototypeOf(e);
142
149
  return t === Object.prototype || t === null;
143
- }, fe = (e) => !de(e) || !("emit" in e) ? !1 : k(e.emit) || typeof e.emit == "function", pe = (e) => !de(e) || !("receive" in e) ? !1 : A(e.receive) || typeof e.receive == "function", j = (e) => fe(e) || pe(e), me = (e) => k(e) || A(e) || j(e) || O(e), M = { [i]: "revivable" }, N = (e) => !!e && typeof e == "object" && "__OSRA_BOX__" in e && e.__OSRA_BOX__ === "revivable", he = (e, t) => O(t.transport) ? { base64Buffer: new Uint8Array(e).toBase64() } : { arrayBuffer: e }, ge = (e) => "arrayBuffer" in e ? e.arrayBuffer : Uint8Array.fromBase64(e.base64Buffer).buffer, _e = /* @__PURE__ */ t({
144
- box: () => be,
145
- isType: () => ye,
146
- revive: () => xe,
147
- type: () => ve
148
- }), ve = "arrayBuffer", ye = (e) => e instanceof ArrayBuffer, be = (e, t) => ({
150
+ }, me = (e) => !pe(e) || !("emit" in e) ? !1 : k(e.emit) || typeof e.emit == "function", he = (e) => !pe(e) || !("receive" in e) ? !1 : A(e.receive) || typeof e.receive == "function", j = (e) => me(e) || he(e), ge = (e) => k(e) || A(e) || j(e) || O(e), M = { [i]: "revivable" }, N = (e) => !!e && typeof e == "object" && "__OSRA_BOX__" in e && e.__OSRA_BOX__ === "revivable", _e = (e, t) => O(t.transport) ? { base64Buffer: new Uint8Array(e).toBase64() } : { arrayBuffer: e }, ve = (e) => "arrayBuffer" in e ? e.arrayBuffer : Uint8Array.fromBase64(e.base64Buffer).buffer, ye = /* @__PURE__ */ t({
151
+ box: () => Se,
152
+ isType: () => xe,
153
+ revive: () => Ce,
154
+ type: () => be
155
+ }), be = "arrayBuffer", xe = (e) => e instanceof ArrayBuffer, Se = (e, t) => ({
149
156
  ...M,
150
- type: ve,
151
- ...he(e, t)
152
- }), xe = (e, t) => ge(e), Se = /* @__PURE__ */ t({
153
- box: () => Te,
154
- isType: () => we,
155
- revive: () => Ee,
156
- type: () => Ce
157
- }), Ce = "date", we = (e) => e instanceof Date, Te = (e, t) => ({
157
+ type: be,
158
+ ..._e(e, t)
159
+ }), Ce = (e, t) => ve(e), we = /* @__PURE__ */ t({
160
+ box: () => De,
161
+ isType: () => Ee,
162
+ revive: () => Oe,
163
+ type: () => Te
164
+ }), Te = "date", Ee = (e) => e instanceof Date, De = (e, t) => ({
158
165
  ...M,
159
- type: Ce,
166
+ type: Te,
160
167
  ISOString: e.toISOString()
161
- }), Ee = (e, t) => new Date(e.ISOString), De = /* @__PURE__ */ t({
162
- box: () => Ae,
163
- isType: () => ke,
164
- revive: () => je,
165
- type: () => Oe
166
- }), Oe = "headers", ke = (e) => e instanceof Headers, Ae = (e, t) => ({
168
+ }), Oe = (e, t) => new Date(e.ISOString), ke = /* @__PURE__ */ t({
169
+ box: () => Me,
170
+ isType: () => je,
171
+ revive: () => Ne,
172
+ type: () => Ae
173
+ }), Ae = "headers", je = (e) => e instanceof Headers, Me = (e, t) => ({
167
174
  ...M,
168
- type: Oe,
175
+ type: Ae,
169
176
  entries: [...e.entries()]
170
- }), je = (e, t) => new Headers(e.entries), Me = /* @__PURE__ */ t({
171
- box: () => Ie,
172
- isType: () => Fe,
173
- revive: () => Le,
174
- type: () => Ne
175
- }), Ne = "error", Pe = {
177
+ }), Ne = (e, t) => new Headers(e.entries), Pe = /* @__PURE__ */ t({
178
+ box: () => Re,
179
+ isType: () => Le,
180
+ revive: () => ze,
181
+ type: () => Fe
182
+ }), Fe = "error", Ie = {
176
183
  Error,
177
184
  TypeError,
178
185
  RangeError,
@@ -180,20 +187,20 @@ var de = (e) => {
180
187
  ReferenceError,
181
188
  EvalError,
182
189
  URIError
183
- }, Fe = (e) => e instanceof Error, Ie = (e, t) => {
190
+ }, Le = (e) => e instanceof Error, Re = (e, t) => {
184
191
  let n = "cause" in e && e.cause !== void 0, r = typeof AggregateError < "u" && e instanceof AggregateError, i = typeof DOMException < "u" && e instanceof DOMException;
185
192
  return {
186
193
  ...M,
187
- type: Ne,
194
+ type: Fe,
188
195
  name: e.name,
189
196
  message: e.message,
190
197
  stack: e.stack || e.toString(),
191
- ...n ? { cause: X(e.cause, t) } : {},
192
- ...r ? { errors: X(e.errors, t) } : {},
198
+ ...n ? { cause: Q(e.cause, t) } : {},
199
+ ...r ? { errors: Q(e.errors, t) } : {},
193
200
  ...i ? { isDOMException: !0 } : {}
194
201
  };
195
- }, Le = (e, t) => {
196
- let n = e.cause === void 0 ? void 0 : Z(e.cause, t), r = n === void 0 ? void 0 : { cause: n };
202
+ }, ze = (e, t) => {
203
+ let n = e.cause === void 0 ? void 0 : $(e.cause, t), r = n === void 0 ? void 0 : { cause: n };
197
204
  if (e.isDOMException && typeof DOMException < "u") {
198
205
  let t = new DOMException(e.message, e.name);
199
206
  if (e.stack) try {
@@ -205,32 +212,32 @@ var de = (e) => {
205
212
  return t;
206
213
  }
207
214
  let i;
208
- if (e.errors !== void 0 && typeof AggregateError < "u") i = AggregateError(Z(e.errors, t), e.message, r);
215
+ if (e.errors !== void 0 && typeof AggregateError < "u") i = AggregateError($(e.errors, t), e.message, r);
209
216
  else {
210
- let t = Pe[e.name] ?? Error;
217
+ let t = Ie[e.name] ?? Error;
211
218
  i = r === void 0 ? new t(e.message) : new t(e.message, r);
212
219
  }
213
220
  return e.name && i.name !== e.name && (i.name = e.name), e.stack && (i.stack = e.stack), i;
214
- }, Re = /* @__PURE__ */ t({
215
- box: () => Ve,
216
- isType: () => Be,
217
- revive: () => He,
218
- type: () => ze
219
- }), ze = "typedArray", Be = h, Ve = (e, t) => {
221
+ }, Be = /* @__PURE__ */ t({
222
+ box: () => Ue,
223
+ isType: () => He,
224
+ revive: () => We,
225
+ type: () => Ve
226
+ }), Ve = "typedArray", He = g, Ue = (e, t) => {
220
227
  let n = e.byteOffset === 0 && e.byteLength === e.buffer.byteLength ? e.buffer : e.buffer.slice(e.byteOffset, e.byteOffset + e.byteLength);
221
228
  return {
222
229
  ...M,
223
- type: ze,
224
- typedArrayType: m(e),
225
- ...he(n, t)
230
+ type: Ve,
231
+ typedArrayType: h(e),
232
+ ..._e(n, t)
226
233
  };
227
- }, He = (e, t) => new (ee(e.typedArrayType))(ge(e)), P = /* @__PURE__ */ new WeakMap(), Ue = /* @__PURE__ */ new WeakSet(), F = (e, t) => {
228
- if (Ue.has(e)) return t(), () => {};
234
+ }, We = (e, t) => new (te(e.typedArrayType))(ve(e)), P = /* @__PURE__ */ new WeakMap(), F = /* @__PURE__ */ new WeakSet(), I = (e, t) => {
235
+ if (F.has(e)) return t(), () => {};
229
236
  let n = P.get(e);
230
237
  return n || P.set(e, n = /* @__PURE__ */ new Set()), n.add(t), () => n.delete(t);
231
- }, We = (e) => {
232
- if (Ue.has(e)) return;
233
- Ue.add(e);
238
+ }, L = (e) => F.has(e), R = (e) => {
239
+ if (F.has(e)) return;
240
+ F.add(e);
234
241
  let t = P.get(e);
235
242
  if (t) {
236
243
  P.delete(e);
@@ -244,7 +251,7 @@ var de = (e) => {
244
251
  revive: () => et,
245
252
  transfer: () => Ze,
246
253
  type: () => Ke
247
- }), Ke = "transfer", qe = Symbol.for("osra.transfer"), Je = (e) => typeof e == "object" && !!e, Ye = (e) => Je(e) && qe in e && e[qe] === !0, Xe = (e) => Je(e) ? ArrayBuffer.isView(e) ? !0 : S(e, [
254
+ }), Ke = "transfer", qe = Symbol.for("osra.transfer"), Je = (e) => typeof e == "object" && !!e, Ye = (e) => Je(e) && qe in e && e[qe] === !0, Xe = (e) => Je(e) ? ArrayBuffer.isView(e) ? !0 : C(e, [
248
255
  globalThis.ArrayBuffer,
249
256
  globalThis.MessagePort,
250
257
  globalThis.ReadableStream,
@@ -260,9 +267,9 @@ var de = (e) => {
260
267
  } : e, Qe = (e) => Ye(e), $e = (e, t) => ({
261
268
  ...M,
262
269
  type: Ke,
263
- inner: X(e.value, t),
270
+ inner: Q(e.value, t),
264
271
  degraded: O(t.transport)
265
- }), et = (e, t) => Z(e.inner, t), tt = (e) => S(e, [
272
+ }), et = (e, t) => $(e.inner, t), tt = (e) => C(e, [
266
273
  globalThis.MessagePort,
267
274
  globalThis.ReadableStream,
268
275
  globalThis.WritableStream,
@@ -274,9 +281,9 @@ var de = (e) => {
274
281
  globalThis.RTCDataChannel,
275
282
  globalThis.WebTransportReceiveStream,
276
283
  globalThis.WebTransportSendStream
277
- ]), nt = (e) => N(e) && e.type === "transfer", I = (e) => {
284
+ ]), nt = (e) => N(e) && e.type === "transfer", z = (e) => {
278
285
  let t = [], n = /* @__PURE__ */ new WeakSet(), r = (e, i) => {
279
- if (!(!e || typeof e != "object") && !n.has(e) && (n.add(e), !re(e))) {
286
+ if (!(!e || typeof e != "object") && !n.has(e) && (n.add(e), !w(e))) {
280
287
  if (nt(e)) {
281
288
  r(e.inner, i || !e.degraded);
282
289
  return;
@@ -299,7 +306,7 @@ var de = (e) => {
299
306
  }
300
307
  };
301
308
  return r(e, !1), t;
302
- }, L = class {
309
+ }, B = class {
303
310
  _listeners = /* @__PURE__ */ new Map();
304
311
  addEventListener(e, t, n) {
305
312
  if (!t) return;
@@ -350,28 +357,28 @@ var de = (e) => {
350
357
  e._closed || e.dispatchEvent(new Event("close"));
351
358
  });
352
359
  }
353
- }, R = class {
360
+ }, V = class {
354
361
  port1;
355
362
  port2;
356
363
  constructor() {
357
- let e = new L(), t = new L();
364
+ let e = new B(), t = new B();
358
365
  e._peer = t, t._peer = e, this.port1 = e, this.port2 = t;
359
366
  }
360
367
  }, rt = new FinalizationRegistry((e) => {
361
368
  try {
362
369
  e();
363
370
  } catch {}
364
- }), z = (e, t) => {
371
+ }), H = (e, t) => {
365
372
  let n = {};
366
373
  return rt.register(e, t, n), () => rt.unregister(n);
367
374
  }, it = /* @__PURE__ */ t({
368
- box: () => U,
369
- createRevivableChannel: () => G,
375
+ box: () => K,
376
+ createRevivableChannel: () => J,
370
377
  init: () => mt,
371
378
  isType: () => ht,
372
- revive: () => W,
379
+ revive: () => q,
373
380
  type: () => at
374
- }), at = "messagePort", ot = 2048, st = 128, ct = 1024, lt = /* @__PURE__ */ new WeakMap(), B = (e) => {
381
+ }), at = "messagePort", ot = 2048, st = 128, ct = 1024, lt = /* @__PURE__ */ new WeakMap(), U = (e) => {
375
382
  let t = lt.get(e);
376
383
  if (!t) throw Error("osra message-port: connection state missing; did init() run?");
377
384
  return t;
@@ -382,7 +389,7 @@ var de = (e) => {
382
389
  buffer: /* @__PURE__ */ new Map(),
383
390
  outSeq: 0
384
391
  }, e.ports.set(t, n), e.pendingPorts++), n;
385
- }, V = (e, t) => {
392
+ }, W = (e, t) => {
386
393
  let n = e.ports.get(t);
387
394
  if (n && !n.handler && e.pendingPorts--, e.ports.delete(t), e.tombstones.size >= st) {
388
395
  let t = e.tombstones.values().next().value;
@@ -391,8 +398,8 @@ var de = (e) => {
391
398
  e.tombstones.add(t);
392
399
  }, dt = (e) => {
393
400
  if (e.handler) for (let t = e.buffer.get(e.nextSeq); t !== void 0; t = e.buffer.get(e.nextSeq)) e.buffer.delete(e.nextSeq), e.nextSeq++, e.handler(t);
394
- }, ft = (e, t) => ut(B(e), t).outSeq++, pt = (e, t, n) => {
395
- let r = B(e);
401
+ }, ft = (e, t) => ut(U(e), t).outSeq++, pt = (e, t, n) => {
402
+ let r = U(e);
396
403
  if (r.tombstones.has(t)) {
397
404
  setTimeout(() => n({
398
405
  type: "message-port-close",
@@ -422,7 +429,7 @@ var de = (e) => {
422
429
  }
423
430
  if (!(n.seq < r.nextSeq)) {
424
431
  if (r.buffer.size >= ot && !(n.seq === r.nextSeq && r.handler)) {
425
- r.buffer.clear(), V(t, n.portId), r.handler?.({
432
+ r.buffer.clear(), W(t, n.portId), r.handler?.({
426
433
  type: "message-port-close",
427
434
  remoteUuid: e.remoteUuid,
428
435
  portId: n.portId
@@ -431,7 +438,7 @@ var de = (e) => {
431
438
  }
432
439
  r.buffer.set(n.seq, n), dt(r);
433
440
  }
434
- }), F(e, () => {
441
+ }), I(e, () => {
435
442
  for (let [n, r] of [...t.ports]) r.handler?.({
436
443
  type: "message-port-close",
437
444
  remoteUuid: e.remoteUuid,
@@ -439,9 +446,9 @@ var de = (e) => {
439
446
  });
440
447
  t.ports.clear(), t.tombstones.clear(), t.pendingPorts = 0;
441
448
  });
442
- }, ht = (e) => e instanceof MessagePort || e instanceof L, H = (e, t) => {
449
+ }, ht = (e) => e instanceof MessagePort || e instanceof B, G = (e, t) => {
443
450
  try {
444
- let n = B(e).ports.get(t);
451
+ let n = U(e).ports.get(t);
445
452
  e.sendMessage({
446
453
  type: "message-port-close",
447
454
  remoteUuid: e.remoteUuid,
@@ -450,81 +457,81 @@ var de = (e) => {
450
457
  });
451
458
  } catch {}
452
459
  }, gt = (e, t, n) => {
453
- n ? e.postMessage(t) : e.postMessage(t, I(t));
460
+ n ? e.postMessage(t) : e.postMessage(t, z(t));
454
461
  }, _t = (e, t, n) => () => {
455
462
  let r = e.deref();
456
- r && H(r, n);
463
+ r && G(r, n);
457
464
  let i = t.deref();
458
- i && V(i, n);
459
- }, U = (e, t, n) => {
460
- let r = e instanceof L;
465
+ i && W(i, n);
466
+ }, K = (e, t, n) => {
467
+ let r = e instanceof B;
461
468
  if (!r && !O(t.transport)) return {
462
469
  ...M,
463
470
  type: at,
464
471
  port: e,
465
472
  ...n?.autoBox ? { autoBox: !0 } : {}
466
473
  };
467
- let i = B(t), a = e, o = globalThis.crypto.randomUUID(), s = new WeakRef(a), c = new WeakRef(t), l = new WeakRef(i), u = !1, d = () => {
474
+ let i = U(t), a = e, o = globalThis.crypto.randomUUID(), s = new WeakRef(a), c = new WeakRef(t), l = new WeakRef(i), u = !1, d = () => {
468
475
  if (u) return;
469
476
  u = !0;
470
477
  let e = l.deref();
471
- e && V(e, o), m?.();
478
+ e && W(e, o), m?.();
472
479
  let t = s.deref();
473
- t?.removeEventListener("message", p), t instanceof L && (t._onClose = void 0);
480
+ t?.removeEventListener("message", p), t instanceof B && (t._onClose = void 0);
474
481
  }, f = (e) => {
475
482
  if (e.type === "message-port-close") {
476
483
  d(), a.dispatchEvent(new Event("close")), a.close();
477
484
  return;
478
485
  }
479
- gt(a, Z(e.data, t), !1);
486
+ gt(a, $(e.data, t), !1);
480
487
  };
481
488
  function p({ data: e }) {
482
489
  t.sendMessage({
483
490
  type: "message",
484
491
  remoteUuid: t.remoteUuid,
485
- data: X(e, t),
492
+ data: Q(e, t),
486
493
  portId: o,
487
494
  seq: ft(t, o)
488
495
  });
489
496
  }
490
- let m = z(a, _t(c, l, o));
491
- return a.addEventListener("message", p), a.start(), a instanceof L && (a._onClose = () => {
492
- u || (H(t, o), d());
497
+ let m = H(a, _t(c, l, o));
498
+ return a.addEventListener("message", p), a.start(), a instanceof B && (a._onClose = () => {
499
+ u || (G(t, o), d());
493
500
  }), pt(t, o, f), {
494
501
  ...M,
495
502
  type: at,
496
503
  portId: o,
497
504
  synthetic: r
498
505
  };
499
- }, W = (e, t) => "port" in e ? e.autoBox ? vt(e.port, t) : e.port : yt(e.portId, t, e.synthetic), vt = (e, t) => {
506
+ }, q = (e, t) => "port" in e ? e.autoBox ? vt(e.port, t) : e.port : yt(e.portId, t, e.synthetic), vt = (e, t) => {
500
507
  let n = new EventTarget(), r = ({ data: e }) => {
501
- n.dispatchEvent(new MessageEvent("message", { data: Z(e, t) }));
508
+ n.dispatchEvent(new MessageEvent("message", { data: $(e, t) }));
502
509
  }, i = () => {
503
510
  n.dispatchEvent(new Event("close"));
504
511
  };
505
512
  return e.addEventListener("message", r), e.addEventListener("close", i), n.postMessage = (n, r) => {
506
- let i = X(n, t), a = I(i), o = Array.isArray(r) ? r : [];
513
+ let i = Q(n, t), a = z(i), o = Array.isArray(r) ? r : [];
507
514
  e.postMessage(i, o.length ? [...a, ...o] : a);
508
515
  }, n.start = () => e.start(), n.close = () => {
509
516
  e.removeEventListener("message", r), e.removeEventListener("close", i), e.close();
510
517
  }, n;
511
- }, G = (e) => {
518
+ }, J = (e) => {
512
519
  if (O(e.transport)) {
513
- let { port1: t, port2: n } = new R();
520
+ let { port1: t, port2: n } = new V();
514
521
  return {
515
522
  localPort: t,
516
- boxedRemote: U(n, e)
523
+ boxedRemote: K(n, e)
517
524
  };
518
525
  }
519
526
  let { port1: t, port2: n } = new MessageChannel();
520
527
  return {
521
528
  localPort: vt(t, e),
522
- boxedRemote: U(n, e, { autoBox: !0 })
529
+ boxedRemote: K(n, e, { autoBox: !0 })
523
530
  };
524
531
  }, yt = (e, t, n) => {
525
- let r = B(t), { port1: i, port2: a } = n ? new R() : new MessageChannel(), o = new WeakRef(i), s = new WeakRef(a), c = !1, l = () => {
532
+ let r = U(t), { port1: i, port2: a } = n ? new V() : new MessageChannel(), o = new WeakRef(i), s = new WeakRef(a), c = !1, l = () => {
526
533
  if (c) return;
527
- c = !0, V(r, e);
534
+ c = !0, W(r, e);
528
535
  let t = s.deref();
529
536
  t?.removeEventListener("message", d), t?.close(), f?.();
530
537
  }, u = (e) => {
@@ -539,20 +546,20 @@ var de = (e) => {
539
546
  return;
540
547
  }
541
548
  let r = s.deref();
542
- r && gt(r, Z(e.data, t), n);
549
+ r && gt(r, $(e.data, t), n);
543
550
  }, d = ({ data: n }) => {
544
551
  t.sendMessage({
545
552
  type: "message",
546
553
  remoteUuid: t.remoteUuid,
547
- data: X(n, t),
554
+ data: Q(n, t),
548
555
  portId: e,
549
556
  seq: ft(t, e)
550
557
  });
551
- }, f = z(i, () => {
552
- H(t, e), l();
558
+ }, f = H(i, () => {
559
+ G(t, e), l();
553
560
  });
554
- return i instanceof L && (i._onClose = () => {
555
- c || (H(t, e), l());
561
+ return i instanceof B && (i._onClose = () => {
562
+ c || (G(t, e), l());
556
563
  }), a.addEventListener("message", d), a.start(), pt(t, e, u), i;
557
564
  }, bt = /* @__PURE__ */ t({
558
565
  box: () => Tt,
@@ -561,7 +568,7 @@ var de = (e) => {
561
568
  type: () => xt
562
569
  }), xt = "promise", St = (e) => e instanceof Promise, Ct = /* @__PURE__ */ new Set(), wt = (e) => e instanceof Promise, Tt = (e, t) => {
563
570
  if (!St(e)) throw TypeError("Expected Promise");
564
- let { localPort: n, boxedRemote: r } = G(t), i = (e) => {
571
+ let { localPort: n, boxedRemote: r } = J(t), i = (e) => {
565
572
  n.postMessage(e), n.close();
566
573
  };
567
574
  return e.then((e) => i({
@@ -576,26 +583,32 @@ var de = (e) => {
576
583
  port: r
577
584
  };
578
585
  }, Et = (e, t) => {
579
- let n = W(e.port, t);
586
+ let n = q(e.port, t);
580
587
  Ct.add(n);
581
588
  let r = "portId" in e.port;
582
589
  return new Promise((e, i) => {
583
- let a = () => {
584
- n.close(), Ct.delete(n), o();
585
- }, o = r ? F(t, () => {
586
- i(/* @__PURE__ */ Error("osra: connection closed")), a();
587
- }) : () => {};
588
- n.addEventListener("message", ({ data: t }) => {
589
- t.type === "resolve" ? e(t.data) : i(t.error), a();
590
+ let a, o = () => {
591
+ n.close(), Ct.delete(n), a?.();
592
+ };
593
+ if (r && L(t)) {
594
+ i(/* @__PURE__ */ Error("osra: connection closed")), o();
595
+ return;
596
+ }
597
+ a = r ? I(t, () => {
598
+ i(/* @__PURE__ */ Error("osra: connection closed")), o();
599
+ }) : void 0, n.addEventListener("message", ({ data: t }) => {
600
+ t.type === "resolve" ? e(t.data) : i(t.error), o();
590
601
  }, { once: !0 }), n.start();
591
602
  });
592
603
  }, Dt = /* @__PURE__ */ t({
593
- box: () => K,
594
- isType: () => At,
595
- revive: () => q,
604
+ box: () => Y,
605
+ isType: () => jt,
606
+ revive: () => X,
596
607
  type: () => Ot
597
- }), Ot = "function", kt = /* @__PURE__ */ new Set(), At = (e) => typeof e == "function", K = (e, t) => {
598
- let { port1: n, port2: r } = new R();
608
+ }), Ot = "function", kt = /* @__PURE__ */ new Set(), At = (e) => {
609
+ e instanceof ReadableStream ? e.locked || e.cancel(/* @__PURE__ */ Error("osra: connection closed")).catch(() => {}) : typeof WritableStream < "u" && e instanceof WritableStream && (e.locked || e.abort(/* @__PURE__ */ Error("osra: connection closed")).catch(() => {}));
610
+ }, jt = (e) => typeof e == "function", Y = (e, t) => {
611
+ let { port1: n, port2: r } = new V();
599
612
  return n.addEventListener("message", ({ data: n }) => {
600
613
  let [r, i] = n;
601
614
  (async () => {
@@ -611,17 +624,24 @@ var de = (e) => {
611
624
  error: e
612
625
  };
613
626
  }
627
+ if (L(t)) {
628
+ n.type === "return" && At(n.value);
629
+ try {
630
+ r.close();
631
+ } catch {}
632
+ return;
633
+ }
614
634
  let a = (() => {
615
635
  try {
616
- return X(n, t);
636
+ return Q(n, t);
617
637
  } catch (e) {
618
- return X({
638
+ return Q({
619
639
  type: "throw",
620
640
  error: e
621
641
  }, t);
622
642
  }
623
643
  })();
624
- r.postMessage(a, I(a)), queueMicrotask(() => {
644
+ r.postMessage(a, z(a)), queueMicrotask(() => {
625
645
  try {
626
646
  r.close();
627
647
  } catch {}
@@ -630,33 +650,37 @@ var de = (e) => {
630
650
  }), n.start(), {
631
651
  ...M,
632
652
  type: Ot,
633
- port: U(r, t)
653
+ port: K(r, t)
634
654
  };
635
- }, q = (e, t) => {
636
- let n = W(e.port, t);
655
+ }, X = (e, t) => {
656
+ let n = q(e.port, t);
637
657
  return ((...e) => new Promise((r, i) => {
638
- let { port1: a, port2: o } = new R();
658
+ if (L(t)) {
659
+ i(/* @__PURE__ */ Error("osra: connection closed"));
660
+ return;
661
+ }
662
+ let { port1: a, port2: o } = new V();
639
663
  kt.add(a);
640
- let s = () => {
641
- a.close(), kt.delete(a), c();
642
- }, c = F(t, () => {
643
- i(/* @__PURE__ */ Error("osra: connection closed")), s();
644
- });
645
- a.addEventListener("message", ({ data: e }) => {
664
+ let s, c = () => {
665
+ a.close(), kt.delete(a), s?.();
666
+ };
667
+ s = I(t, () => {
668
+ i(/* @__PURE__ */ Error("osra: connection closed")), c();
669
+ }), a.addEventListener("message", ({ data: e }) => {
646
670
  let t = e;
647
- t.type === "return" ? r(t.value) : i(t.error), s();
671
+ t.type === "return" ? r(t.value) : i(t.error), c();
648
672
  }, { once: !0 }), a.start();
649
- let l = X([o, e], t);
650
- n.postMessage(l, I(l));
673
+ let l = Q([o, e], t);
674
+ n.postMessage(l, z(l));
651
675
  }));
652
- }, jt = /* @__PURE__ */ t({
676
+ }, Mt = /* @__PURE__ */ t({
653
677
  MAX_CREDIT_WINDOW: () => 64,
654
- box: () => Lt,
655
- isType: () => Nt,
656
- revive: () => Vt,
657
- type: () => Mt
658
- }), Mt = "readableStream", Nt = (e) => e instanceof ReadableStream, Pt = 2, Ft = 8, It = 4 * 1024 * 1024, Lt = (e, t) => {
659
- let { localPort: n, boxedRemote: r } = G(t), i = e.getReader(), a = 0, o = !1, s = !1, c = (e) => {
678
+ box: () => Rt,
679
+ isType: () => Pt,
680
+ revive: () => Ht,
681
+ type: () => Nt
682
+ }), Nt = "readableStream", Pt = (e) => e instanceof ReadableStream, Ft = 2, It = 8, Lt = 4 * 1024 * 1024, Rt = (e, t) => {
683
+ let { localPort: n, boxedRemote: r } = J(t), i = e.getReader(), a = 0, o = !1, s = !1, c = (e) => {
660
684
  s = !0;
661
685
  try {
662
686
  n.postMessage(e);
@@ -703,12 +727,12 @@ var de = (e) => {
703
727
  s || (s = !0, i.cancel(/* @__PURE__ */ Error("osra: connection closed")).catch(() => {}));
704
728
  }, { once: !0 }), n.start(), {
705
729
  ...M,
706
- type: Mt,
730
+ type: Nt,
707
731
  credit: !0,
708
732
  port: r
709
733
  };
710
- }, Rt = (e) => ArrayBuffer.isView(e) || e instanceof ArrayBuffer ? e.byteLength : typeof e == "string" ? e.length * 2 : typeof Blob < "u" && e instanceof Blob ? e.size : void 0, zt = (e) => {
711
- let t = !1, n = 0, r, i = [], a = !1, o = !1, s, c, l = () => r === void 0 ? Ft : Math.max(Pt, Math.min(64, Math.floor(It / r))), u = () => {
734
+ }, zt = (e) => ArrayBuffer.isView(e) || e instanceof ArrayBuffer ? e.byteLength : typeof e == "string" ? e.length * 2 : typeof Blob < "u" && e instanceof Blob ? e.size : void 0, Bt = (e) => {
735
+ let t = !1, n = 0, r, i = [], a = !1, o = !1, s, c, l = () => r === void 0 ? It : Math.max(Ft, Math.min(64, Math.floor(Lt / r))), u = () => {
712
736
  let t = l(), r = n + i.length;
713
737
  if (r > t / 2) return;
714
738
  let a = t - r;
@@ -734,7 +758,7 @@ var de = (e) => {
734
758
  return;
735
759
  }
736
760
  n--;
737
- let a = Rt(o.value);
761
+ let a = zt(o.value);
738
762
  if (a !== void 0 && (r = r === void 0 ? a : r * .875 + a * .125), c) {
739
763
  let e = c;
740
764
  c = void 0, e.controller.enqueue(o.value), e.resolve();
@@ -780,7 +804,7 @@ var de = (e) => {
780
804
  }), queueMicrotask(() => e.close());
781
805
  }
782
806
  });
783
- }, Bt = (e) => {
807
+ }, Vt = (e) => {
784
808
  let t = !1;
785
809
  return new ReadableStream({
786
810
  start: (n) => {
@@ -809,16 +833,16 @@ var de = (e) => {
809
833
  }), queueMicrotask(() => e.close());
810
834
  }
811
835
  });
812
- }, Vt = (e, t) => {
813
- let n = W(e.port, t);
814
- return n.start(), e.credit ? zt(n) : Bt(n);
815
- }, Ht = /* @__PURE__ */ t({
816
- box: () => Gt,
817
- isType: () => Wt,
818
- revive: () => Kt,
819
- type: () => Ut
820
- }), Ut = "writableStream", Wt = (e) => e instanceof WritableStream, Gt = (e, t) => {
821
- let { localPort: n, boxedRemote: r } = G(t), i = e.getWriter(), a = !1, o = (e, t) => e.then(() => n.postMessage({ type: "ack" })).catch((e) => n.postMessage({
836
+ }, Ht = (e, t) => {
837
+ let n = q(e.port, t);
838
+ return n.start(), e.credit ? Bt(n) : Vt(n);
839
+ }, Ut = /* @__PURE__ */ t({
840
+ box: () => Kt,
841
+ isType: () => Gt,
842
+ revive: () => qt,
843
+ type: () => Wt
844
+ }), Wt = "writableStream", Gt = (e) => e instanceof WritableStream, Kt = (e, t) => {
845
+ let { localPort: n, boxedRemote: r } = J(t), i = e.getWriter(), a = !1, o = (e, t) => e.then(() => n.postMessage({ type: "ack" })).catch((e) => n.postMessage({
822
846
  type: "err",
823
847
  error: e?.message ?? String(e)
824
848
  })).then(() => {
@@ -830,11 +854,11 @@ var de = (e) => {
830
854
  a || (a = !0, i.abort(/* @__PURE__ */ Error("osra: connection closed")).catch(() => {}));
831
855
  }, { once: !0 }), n.start(), {
832
856
  ...M,
833
- type: Ut,
857
+ type: Wt,
834
858
  port: r
835
859
  };
836
- }, Kt = (e, t) => {
837
- let n = W(e.port, t);
860
+ }, qt = (e, t) => {
861
+ let n = q(e.port, t);
838
862
  n.start();
839
863
  let r = /* @__PURE__ */ new Set(), i = !1;
840
864
  n.addEventListener("close", () => {
@@ -869,57 +893,57 @@ var de = (e) => {
869
893
  reason: e
870
894
  })
871
895
  });
872
- }, qt = /* @__PURE__ */ t({
873
- box: () => Zt,
874
- isType: () => Yt,
875
- revive: () => Qt,
876
- type: () => Jt
877
- }), Jt = "abortSignal", Yt = (e) => e instanceof AbortSignal, Xt = /* @__PURE__ */ new WeakMap(), Zt = (e, t) => {
896
+ }, Jt = /* @__PURE__ */ t({
897
+ box: () => Qt,
898
+ isType: () => Xt,
899
+ revive: () => $t,
900
+ type: () => Yt
901
+ }), Yt = "abortSignal", Xt = (e) => e instanceof AbortSignal, Zt = /* @__PURE__ */ new WeakMap(), Qt = (e, t) => {
878
902
  if (e.aborted) return {
879
903
  ...M,
880
- type: Jt,
904
+ type: Yt,
881
905
  aborted: !0,
882
- reason: X(e.reason, t)
906
+ reason: Q(e.reason, t)
883
907
  };
884
- let { localPort: n, boxedRemote: r } = G(t), i = () => {
908
+ let { localPort: n, boxedRemote: r } = J(t), i = () => {
885
909
  n.postMessage({
886
910
  type: "abort",
887
911
  reason: e.reason
888
912
  }), n.close(), a();
889
- }, a = F(t, () => {
913
+ }, a = I(t, () => {
890
914
  e.removeEventListener("abort", i), n.close();
891
915
  });
892
916
  return e.addEventListener("abort", i, { once: !0 }), {
893
917
  ...M,
894
- type: Jt,
918
+ type: Yt,
895
919
  aborted: !1,
896
920
  reason: void 0,
897
921
  port: r
898
922
  };
899
- }, Qt = (e, t) => {
923
+ }, $t = (e, t) => {
900
924
  let n = new AbortController();
901
- if (e.aborted || e.port === void 0) return n.abort(Z(e.reason, t)), n.signal;
902
- let r = W(e.port, t);
903
- return Xt.set(n.signal, r), r.start(), r.addEventListener("message", ({ data: e }) => {
904
- e.type === "abort" && (n.abort(Z(e.reason, t)), Xt.delete(n.signal), r.close());
925
+ if (e.aborted || e.port === void 0) return n.abort($(e.reason, t)), n.signal;
926
+ let r = q(e.port, t);
927
+ return Zt.set(n.signal, r), r.start(), r.addEventListener("message", ({ data: e }) => {
928
+ e.type === "abort" && (n.abort($(e.reason, t)), Zt.delete(n.signal), r.close());
905
929
  }), n.signal;
906
- }, $t = /* @__PURE__ */ t({
907
- box: () => nn,
908
- isType: () => tn,
909
- revive: () => rn,
910
- type: () => en
911
- }), en = "response", tn = (e) => e instanceof Response, nn = (e, t) => ({
930
+ }, en = /* @__PURE__ */ t({
931
+ box: () => rn,
932
+ isType: () => nn,
933
+ revive: () => an,
934
+ type: () => tn
935
+ }), tn = "response", nn = (e) => e instanceof Response, rn = (e, t) => ({
912
936
  ...M,
913
- type: en,
937
+ type: tn,
914
938
  status: e.status,
915
939
  statusText: e.statusText,
916
- headers: Ae(e.headers, t),
917
- body: e.body ? Lt(e.body, t) : null,
940
+ headers: Me(e.headers, t),
941
+ body: e.body ? Rt(e.body, t) : null,
918
942
  url: e.url,
919
943
  redirected: e.redirected
920
- }), rn = (e, t) => {
944
+ }), an = (e, t) => {
921
945
  if (e.status === 0) return Response.error();
922
- let n = je(e.headers, t), r = e.body ? Vt(e.body, t) : null, i = e.status === 101 || e.status === 204 || e.status === 205 || e.status === 304;
946
+ let n = Ne(e.headers, t), r = e.body ? Ht(e.body, t) : null, i = e.status === 101 || e.status === 204 || e.status === 205 || e.status === 304;
923
947
  r && i && r.cancel().catch(() => {});
924
948
  let a = new Response(i ? null : r, {
925
949
  status: e.status,
@@ -933,18 +957,18 @@ var de = (e) => {
933
957
  value: !0,
934
958
  configurable: !0
935
959
  }), a;
936
- }, an = /* @__PURE__ */ t({
937
- box: () => cn,
938
- isType: () => sn,
939
- revive: () => ln,
940
- type: () => on
941
- }), on = "request", sn = (e) => e instanceof Request, cn = (e, t) => ({
960
+ }, on = /* @__PURE__ */ t({
961
+ box: () => ln,
962
+ isType: () => cn,
963
+ revive: () => un,
964
+ type: () => sn
965
+ }), sn = "request", cn = (e) => e instanceof Request, ln = (e, t) => ({
942
966
  ...M,
943
- type: on,
967
+ type: sn,
944
968
  method: e.method,
945
969
  url: e.url,
946
- headers: Ae(e.headers, t),
947
- body: e.body ? Lt(e.body, t) : null,
970
+ headers: Me(e.headers, t),
971
+ body: e.body ? Rt(e.body, t) : null,
948
972
  credentials: e.credentials,
949
973
  cache: e.cache,
950
974
  mode: e.mode,
@@ -953,9 +977,9 @@ var de = (e) => {
953
977
  referrerPolicy: e.referrerPolicy,
954
978
  integrity: e.integrity,
955
979
  keepalive: e.keepalive,
956
- signal: Zt(e.signal, t)
957
- }), ln = (e, t) => {
958
- let n = je(e.headers, t), r = {
980
+ signal: Qt(e.signal, t)
981
+ }), un = (e, t) => {
982
+ let n = Ne(e.headers, t), r = {
959
983
  method: e.method,
960
984
  headers: n,
961
985
  credentials: e.credentials,
@@ -965,31 +989,31 @@ var de = (e) => {
965
989
  referrerPolicy: e.referrerPolicy,
966
990
  integrity: e.integrity,
967
991
  keepalive: e.keepalive,
968
- signal: Qt(e.signal, t)
992
+ signal: $t(e.signal, t)
969
993
  };
970
- return e.mode !== "navigate" && (r.mode = e.mode), e.body && (r.body = Vt(e.body, t), r.duplex = "half"), new Request(e.url, r);
971
- }, un = /* @__PURE__ */ t({
972
- box: () => Sn,
973
- boxByReference: () => Cn,
974
- identity: () => Y,
975
- isType: () => bn,
976
- revive: () => wn,
977
- type: () => J
978
- }), J = "identity", dn = Symbol.for("osra.identity"), fn = (e) => e !== null && (typeof e == "object" || typeof e == "function"), pn = (e) => {
994
+ return e.mode !== "navigate" && (r.mode = e.mode), e.body && (r.body = Ht(e.body, t), r.duplex = "half"), new Request(e.url, r);
995
+ }, dn = /* @__PURE__ */ t({
996
+ box: () => wn,
997
+ boxByReference: () => Tn,
998
+ identity: () => vn,
999
+ isType: () => Sn,
1000
+ revive: () => En,
1001
+ type: () => Z
1002
+ }), Z = "identity", fn = Symbol.for("osra.identity"), pn = (e) => e !== null && (typeof e == "object" || typeof e == "function"), mn = (e) => {
979
1003
  if (e === null) return !1;
980
1004
  let t = typeof e;
981
1005
  return t === "object" || t === "function" ? !0 : t === "symbol" ? Symbol.keyFor(e) === void 0 : !1;
982
- }, mn = (e) => fn(e) && dn in e && e[dn] === !0, hn = /* @__PURE__ */ new WeakMap(), gn = (e) => {
983
- if (mn(e)) return e;
984
- let t = hn.get(e);
1006
+ }, hn = (e) => pn(e) && fn in e && e[fn] === !0, gn = /* @__PURE__ */ new WeakMap(), _n = (e) => {
1007
+ if (hn(e)) return e;
1008
+ let t = gn.get(e);
985
1009
  if (t) return t;
986
1010
  let n = {
987
- [dn]: !0,
1011
+ [fn]: !0,
988
1012
  value: e
989
1013
  };
990
- return hn.set(e, n), n;
991
- }, Y = (e) => fn(e) ? gn(e) : e, _n = /* @__PURE__ */ new WeakMap(), vn = (e) => {
992
- let t = _n.get(e);
1014
+ return gn.set(e, n), n;
1015
+ }, vn = (e) => pn(e) ? _n(e) : e, yn = /* @__PURE__ */ new WeakMap(), bn = (e) => {
1016
+ let t = yn.get(e);
993
1017
  if (t) return t;
994
1018
  let n = /* @__PURE__ */ new WeakMap(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new WeakMap(), o = {
995
1019
  sendIds: n,
@@ -1008,16 +1032,16 @@ var de = (e) => {
1008
1032
  revivedToId: a,
1009
1033
  listenerInstalled: !1
1010
1034
  };
1011
- return _n.set(e, o), yn(e, o), F(e, () => {
1035
+ return yn.set(e, o), xn(e, o), I(e, () => {
1012
1036
  o.receiveCache.clear(), o.idToSent.clear();
1013
1037
  }), o;
1014
- }, yn = (e, t) => {
1038
+ }, xn = (e, t) => {
1015
1039
  t.listenerInstalled || (t.listenerInstalled = !0, e.eventTarget.addEventListener("message", ({ detail: e }) => {
1016
1040
  if (e?.type !== "identity-dispose") return;
1017
1041
  let n = t.receiveCache.get(e.id);
1018
- t.receiveCache.delete(e.id), n !== void 0 && pn(n) && t.revivedToId.delete(n);
1042
+ t.receiveCache.delete(e.id), n !== void 0 && mn(n) && t.revivedToId.delete(n);
1019
1043
  }));
1020
- }, bn = (e) => mn(e), xn = (e, t) => {
1044
+ }, Sn = (e) => hn(e), Cn = (e, t) => {
1021
1045
  let n = t.sendIds.get(e);
1022
1046
  if (n !== void 0) return {
1023
1047
  id: n,
@@ -1033,86 +1057,86 @@ var de = (e) => {
1033
1057
  id: i,
1034
1058
  isExisting: !1
1035
1059
  };
1036
- }, Sn = (e, t) => {
1037
- let n = vn(t), r = e.value, i = X(r, t);
1038
- if (!pn(r)) return {
1060
+ }, wn = (e, t) => {
1061
+ let n = bn(t), r = e.value, i = Q(r, t);
1062
+ if (!mn(r)) return {
1039
1063
  ...M,
1040
- type: J,
1064
+ type: Z,
1041
1065
  id: globalThis.crypto.randomUUID(),
1042
1066
  inner: i
1043
1067
  };
1044
- let { id: a, isExisting: o } = xn(r, n);
1068
+ let { id: a, isExisting: o } = Cn(r, n);
1045
1069
  return o ? {
1046
1070
  ...M,
1047
- type: J,
1071
+ type: Z,
1048
1072
  id: a
1049
1073
  } : {
1050
1074
  ...M,
1051
- type: J,
1075
+ type: Z,
1052
1076
  id: a,
1053
1077
  inner: i
1054
1078
  };
1055
- }, Cn = (e, t, n) => {
1056
- let { id: r, isExisting: i } = xn(e, vn(n));
1079
+ }, Tn = (e, t, n) => {
1080
+ let { id: r, isExisting: i } = Cn(e, bn(n));
1057
1081
  return i ? {
1058
1082
  ...M,
1059
- type: J,
1083
+ type: Z,
1060
1084
  id: r
1061
1085
  } : {
1062
1086
  ...M,
1063
- type: J,
1087
+ type: Z,
1064
1088
  id: r,
1065
1089
  inner: t
1066
1090
  };
1067
- }, wn = (e, t) => {
1068
- let n = vn(t), r = n.receiveCache.get(e.id);
1091
+ }, En = (e, t) => {
1092
+ let n = bn(t), r = n.receiveCache.get(e.id);
1069
1093
  if (r !== void 0) return r;
1070
1094
  let i = n.idToSent.get(e.id)?.deref();
1071
1095
  if (i !== void 0) return i;
1072
1096
  if (!("inner" in e) || e.inner === void 0) throw Error(`osra identity: received id=${e.id} with no inner payload and no cached value`);
1073
- let a = Z(e.inner, t);
1074
- return n.receiveCache.set(e.id, a), pn(a) && n.revivedToId.set(a, e.id), a;
1075
- }, Tn = /* @__PURE__ */ t({
1076
- box: () => Dn,
1077
- isType: () => En,
1078
- revive: () => On,
1097
+ let a = $(e.inner, t);
1098
+ return n.receiveCache.set(e.id, a), mn(a) && n.revivedToId.set(a, e.id), a;
1099
+ }, Dn = /* @__PURE__ */ t({
1100
+ box: () => kn,
1101
+ isType: () => On,
1102
+ revive: () => An,
1079
1103
  type: () => "map"
1080
- }), En = (e) => e instanceof Map, Dn = (e, t) => ({
1104
+ }), On = (e) => e instanceof Map, kn = (e, t) => ({
1081
1105
  ...M,
1082
1106
  type: "map",
1083
- entries: Array.from(e, ([e, n]) => [X(e, t), X(n, t)])
1084
- }), On = (e, t) => new Map(e.entries.map(([e, n]) => [Z(e, t), Z(n, t)])), kn = /* @__PURE__ */ t({
1085
- box: () => jn,
1086
- isType: () => An,
1087
- revive: () => Mn,
1107
+ entries: Array.from(e, ([e, n]) => [Q(e, t), Q(n, t)])
1108
+ }), An = (e, t) => new Map(e.entries.map(([e, n]) => [$(e, t), $(n, t)])), jn = /* @__PURE__ */ t({
1109
+ box: () => Nn,
1110
+ isType: () => Mn,
1111
+ revive: () => Pn,
1088
1112
  type: () => "set"
1089
- }), An = (e) => e instanceof Set, jn = (e, t) => ({
1113
+ }), Mn = (e) => e instanceof Set, Nn = (e, t) => ({
1090
1114
  ...M,
1091
1115
  type: "set",
1092
- values: Array.from(e, (e) => X(e, t))
1093
- }), Mn = (e, t) => new Set(e.values.map((e) => Z(e, t))), Nn = /* @__PURE__ */ t({
1094
- box: () => In,
1095
- isType: () => Fn,
1096
- revive: () => Ln,
1097
- type: () => Pn
1098
- }), Pn = "bigint", Fn = (e) => typeof e == "bigint", In = (e, t) => ({
1116
+ values: Array.from(e, (e) => Q(e, t))
1117
+ }), Pn = (e, t) => new Set(e.values.map((e) => $(e, t))), Fn = /* @__PURE__ */ t({
1118
+ box: () => Rn,
1119
+ isType: () => Ln,
1120
+ revive: () => zn,
1121
+ type: () => In
1122
+ }), In = "bigint", Ln = (e) => typeof e == "bigint", Rn = (e, t) => ({
1099
1123
  ...M,
1100
- type: Pn,
1124
+ type: In,
1101
1125
  value: e.toString()
1102
- }), Ln = (e, t) => BigInt(e.value), Rn = /* @__PURE__ */ t({
1103
- box: () => Vn,
1104
- isType: () => Bn,
1105
- revive: () => Hn,
1106
- type: () => zn
1107
- }), zn = "event", Bn = (e) => e instanceof Event, Vn = (e, t) => ({
1126
+ }), zn = (e, t) => BigInt(e.value), Bn = /* @__PURE__ */ t({
1127
+ box: () => Un,
1128
+ isType: () => Hn,
1129
+ revive: () => Wn,
1130
+ type: () => Vn
1131
+ }), Vn = "event", Hn = (e) => e instanceof Event, Un = (e, t) => ({
1108
1132
  ...M,
1109
- type: zn,
1133
+ type: Vn,
1110
1134
  eventType: e.type,
1111
1135
  bubbles: e.bubbles,
1112
1136
  cancelable: e.cancelable,
1113
1137
  composed: e.composed,
1114
- ...e instanceof CustomEvent ? { detail: X(e.detail, t) } : {}
1115
- }), Hn = (e, t) => {
1138
+ ...e instanceof CustomEvent ? { detail: Q(e.detail, t) } : {}
1139
+ }), Wn = (e, t) => {
1116
1140
  let n = {
1117
1141
  bubbles: e.bubbles,
1118
1142
  cancelable: e.cancelable,
@@ -1120,102 +1144,102 @@ var de = (e) => {
1120
1144
  };
1121
1145
  return "detail" in e ? new CustomEvent(e.eventType, {
1122
1146
  ...n,
1123
- detail: Z(e.detail, t)
1147
+ detail: $(e.detail, t)
1124
1148
  }) : new Event(e.eventType, n);
1125
- }, Un = /* @__PURE__ */ t({
1126
- box: () => Kn,
1127
- isType: () => Gn,
1128
- revive: () => Xn,
1129
- type: () => Wn
1130
- }), Wn = "eventTarget", Gn = (e) => e instanceof EventTarget, Kn = (e, t) => {
1149
+ }, Gn = /* @__PURE__ */ t({
1150
+ box: () => Jn,
1151
+ isType: () => qn,
1152
+ revive: () => Qn,
1153
+ type: () => Kn
1154
+ }), Kn = "eventTarget", qn = (e) => e instanceof EventTarget, Jn = (e, t) => {
1131
1155
  let n = [], r = (e) => typeof e == "boolean" ? e : !!e?.capture;
1132
1156
  return {
1133
1157
  ...M,
1134
- type: Wn,
1135
- addListener: K((t, i, a) => {
1158
+ type: Kn,
1159
+ addListener: Y((t, i, a) => {
1136
1160
  n.push({
1137
1161
  eventType: t,
1138
1162
  listener: i,
1139
1163
  capture: r(a)
1140
1164
  }), e.addEventListener(t, i, a);
1141
1165
  }, t),
1142
- removeListener: K((t, i, a) => {
1166
+ removeListener: Y((t, i, a) => {
1143
1167
  let o = r(a), s = n.findIndex((e) => e.eventType === t && e.listener === i && e.capture === o);
1144
1168
  s !== -1 && n.splice(s, 1), e.removeEventListener(t, i, a);
1145
1169
  }, t),
1146
- removeAllListeners: K(() => {
1170
+ removeAllListeners: Y(() => {
1147
1171
  for (let { eventType: t, listener: r, capture: i } of n.splice(0)) e.removeEventListener(t, r, { capture: i });
1148
1172
  }, t)
1149
1173
  };
1150
- }, qn = /* @__PURE__ */ new WeakMap(), Jn = (e) => {
1174
+ }, Yn = /* @__PURE__ */ new WeakMap(), Xn = (e) => {
1151
1175
  if (typeof e == "function") return e;
1152
- let t = qn.get(e);
1153
- return t || qn.set(e, t = (t) => e.handleEvent(t)), t;
1154
- }, Yn = (e, t, n, r) => e.find((e) => e.eventType === t && e.listener === n && e.capture === r), Xn = (e, t) => {
1155
- let n = q(e.addListener, t), r = q(e.removeListener, t), i = q(e.removeAllListeners, t), a = new EventTarget(), o = [], s = (e) => {
1176
+ let t = Yn.get(e);
1177
+ return t || Yn.set(e, t = (t) => e.handleEvent(t)), t;
1178
+ }, Zn = (e, t, n, r) => e.find((e) => e.eventType === t && e.listener === n && e.capture === r), Qn = (e, t) => {
1179
+ let n = X(e.addListener, t), r = X(e.removeListener, t), i = X(e.removeAllListeners, t), a = new EventTarget(), o = [], s = (e) => {
1156
1180
  let t = o.indexOf(e);
1157
1181
  t !== -1 && o.splice(t, 1);
1158
1182
  };
1159
1183
  return Object.defineProperty(a, "addEventListener", { value: (e, t, r) => {
1160
1184
  if (t === null) return;
1161
- let i = Jn(t), a = typeof r == "boolean" ? r : !!r?.capture;
1162
- if (Yn(o, e, i, a)) return;
1185
+ let i = Xn(t), a = typeof r == "boolean" ? r : !!r?.capture;
1186
+ if (Zn(o, e, i, a)) return;
1163
1187
  let c = typeof r == "object" && r?.once ? (e) => (s(l), i(e)) : i, l = {
1164
1188
  eventType: e,
1165
1189
  listener: i,
1166
1190
  capture: a,
1167
1191
  wire: c
1168
1192
  };
1169
- o.push(l), (typeof r == "object" ? r?.signal : void 0)?.addEventListener("abort", () => s(l), { once: !0 }), n(e, Y(c), r).catch(() => {});
1193
+ o.push(l), (typeof r == "object" ? r?.signal : void 0)?.addEventListener("abort", () => s(l), { once: !0 }), n(e, vn(c), r).catch(() => {});
1170
1194
  } }), Object.defineProperty(a, "removeEventListener", { value: (e, t, n) => {
1171
1195
  if (t === null) return;
1172
- let i = Jn(t), a = typeof n == "boolean" ? n : !!n?.capture, c = Yn(o, e, i, a);
1173
- c && (s(c), r(e, Y(c.wire), { capture: a }).catch(() => {}));
1174
- } }), z(a, () => {
1196
+ let i = Xn(t), a = typeof n == "boolean" ? n : !!n?.capture, c = Zn(o, e, i, a);
1197
+ c && (s(c), r(e, vn(c.wire), { capture: a }).catch(() => {}));
1198
+ } }), H(a, () => {
1175
1199
  i().catch(() => {});
1176
1200
  }), a;
1177
- }, Zn = /* @__PURE__ */ t({
1178
- box: () => er,
1179
- isType: () => $n,
1180
- revive: () => tr,
1181
- type: () => Qn
1182
- }), Qn = "symbol", $n = (e) => typeof e == "symbol", er = (e, t) => {
1201
+ }, $n = /* @__PURE__ */ t({
1202
+ box: () => nr,
1203
+ isType: () => tr,
1204
+ revive: () => rr,
1205
+ type: () => er
1206
+ }), er = "symbol", tr = (e) => typeof e == "symbol", nr = (e, t) => {
1183
1207
  let n = Symbol.keyFor(e);
1184
- return n === void 0 ? Cn(e, {
1208
+ return n === void 0 ? Tn(e, {
1185
1209
  ...M,
1186
- type: Qn,
1210
+ type: er,
1187
1211
  description: e.description
1188
1212
  }, t) : {
1189
1213
  ...M,
1190
- type: Qn,
1214
+ type: er,
1191
1215
  registryKey: n
1192
1216
  };
1193
- }, tr = (e, t) => "registryKey" in e ? Symbol.for(e.registryKey) : Symbol(e.description), nr = /* @__PURE__ */ t({
1194
- box: () => ar,
1195
- isType: () => ir,
1196
- revive: () => or,
1197
- type: () => rr
1198
- }), rr = "asyncIterator", ir = (e) => !e || typeof e != "object" || typeof ReadableStream < "u" && e instanceof ReadableStream ? !1 : typeof e[Symbol.asyncIterator] == "function", ar = (e, t) => {
1217
+ }, rr = (e, t) => "registryKey" in e ? Symbol.for(e.registryKey) : Symbol(e.description), ir = /* @__PURE__ */ t({
1218
+ box: () => sr,
1219
+ isType: () => or,
1220
+ revive: () => cr,
1221
+ type: () => ar
1222
+ }), ar = "asyncIterator", or = (e) => !e || typeof e != "object" || typeof ReadableStream < "u" && e instanceof ReadableStream ? !1 : typeof e[Symbol.asyncIterator] == "function", sr = (e, t) => {
1199
1223
  let n = e[Symbol.asyncIterator]();
1200
1224
  return {
1201
1225
  ...M,
1202
- type: rr,
1203
- next: K(((e) => n.next(e)), t),
1204
- return: K(((e) => n.return?.(e) ?? Promise.resolve({
1226
+ type: ar,
1227
+ next: Y(((e) => n.next(e)), t),
1228
+ return: Y(((e) => n.return?.(e) ?? Promise.resolve({
1205
1229
  done: !0,
1206
1230
  value: e
1207
1231
  })), t),
1208
- throw: K(((e) => n.throw?.(e) ?? Promise.reject(e)), t)
1232
+ throw: Y(((e) => n.throw?.(e) ?? Promise.reject(e)), t)
1209
1233
  };
1210
- }, or = (e, t) => {
1211
- let n = q(e.next, t), r = q(e.return, t), i = q(e.throw, t), a = {
1234
+ }, cr = (e, t) => {
1235
+ let n = X(e.next, t), r = X(e.return, t), i = X(e.throw, t), a = {
1212
1236
  next: (...e) => n(...e),
1213
1237
  return: (e) => r(e),
1214
1238
  throw: (e) => i(e),
1215
1239
  [Symbol.asyncIterator]: () => a
1216
1240
  };
1217
1241
  return a;
1218
- }, sr = [
1242
+ }, lr = [
1219
1243
  globalThis.File,
1220
1244
  globalThis.FileList,
1221
1245
  globalThis.RegExp,
@@ -1235,7 +1259,7 @@ var de = (e) => {
1235
1259
  globalThis.FileSystemFileHandle,
1236
1260
  globalThis.FileSystemDirectoryHandle,
1237
1261
  globalThis.RTCCertificate
1238
- ], cr = [
1262
+ ], ur = [
1239
1263
  globalThis.CropTarget,
1240
1264
  globalThis.EncodedAudioChunk,
1241
1265
  globalThis.EncodedVideoChunk,
@@ -1246,66 +1270,67 @@ var de = (e) => {
1246
1270
  globalThis.RTCEncodedAudioFrame,
1247
1271
  globalThis.RTCEncodedVideoFrame,
1248
1272
  globalThis.WebTransportError
1249
- ], lr = {
1273
+ ], dr = {
1250
1274
  type: "clonable",
1251
1275
  capableOnly: !0,
1252
- isType: (e) => S(e, sr) || S(e, cr),
1276
+ isType: (e) => C(e, lr) || C(e, ur),
1253
1277
  box: (e, t) => e,
1254
1278
  revive: (e, t) => e
1255
- }, ur = [
1279
+ }, fr = [
1256
1280
  globalThis.ImageBitmap,
1257
1281
  globalThis.OffscreenCanvas,
1258
1282
  globalThis.WritableStream,
1259
1283
  globalThis.TransformStream,
1260
1284
  globalThis.MediaStreamTrack,
1261
1285
  globalThis.RTCDataChannel
1262
- ], dr = [
1286
+ ], pr = [
1263
1287
  globalThis.AudioData,
1264
1288
  globalThis.VideoFrame,
1265
1289
  globalThis.MediaSourceHandle,
1266
1290
  globalThis.MIDIAccess,
1267
1291
  globalThis.WebTransportReceiveStream,
1268
1292
  globalThis.WebTransportSendStream
1269
- ], fr = {
1293
+ ], mr = {
1270
1294
  type: "transferable",
1271
1295
  capableOnly: !0,
1272
- isType: (e) => S(e, ur) || S(e, dr),
1296
+ isType: (e) => C(e, fr) || C(e, pr),
1273
1297
  box: (e, t) => e,
1274
1298
  revive: (e, t) => e
1275
- }, pr = {
1276
- type: "blobGuard",
1277
- isType: ((e) => typeof Blob < "u" && e instanceof Blob),
1299
+ }, hr = {
1300
+ type: "blob",
1301
+ capableOnly: !0,
1302
+ isType: (e) => typeof Blob < "u" && e instanceof Blob,
1278
1303
  box: (e, t) => {
1279
- if (O(t.transport)) throw TypeError("osra: Blob support was removed in 0.6.0, send an ArrayBuffer or Uint8Array instead");
1304
+ if (O(t.transport)) throw TypeError("osra: Blob is only supported on structured-clone transports, send an ArrayBuffer or Uint8Array instead");
1280
1305
  return e;
1281
1306
  },
1282
1307
  revive: (e, t) => e
1283
- }, mr = (e) => {
1308
+ }, gr = (e) => {
1284
1309
  if (typeof e != "object" || !e) return !1;
1285
1310
  let t = Object.getPrototypeOf(e);
1286
1311
  return t === Object.prototype || t === null;
1287
- }, hr = [
1312
+ }, _r = [
1288
1313
  Ge,
1289
- un,
1290
- _e,
1291
- Se,
1292
- De,
1293
- Me,
1294
- Re,
1314
+ dn,
1315
+ ye,
1316
+ we,
1317
+ ke,
1318
+ Pe,
1319
+ Be,
1295
1320
  bt,
1296
1321
  Dt,
1297
1322
  it,
1298
- jt,
1299
- Ht,
1300
- qt,
1301
- $t,
1302
- an,
1303
- Tn,
1304
- kn,
1305
- Nn,
1306
- Zn,
1307
- Rn,
1308
- nr,
1323
+ Mt,
1324
+ Ut,
1325
+ Jt,
1326
+ en,
1327
+ on,
1328
+ Dn,
1329
+ jn,
1330
+ Fn,
1331
+ $n,
1332
+ Bn,
1333
+ ir,
1309
1334
  {
1310
1335
  type: "nonFiniteNumber",
1311
1336
  isType: (e) => typeof e == "number" && !Number.isFinite(e),
@@ -1325,14 +1350,14 @@ var de = (e) => {
1325
1350
  } : e,
1326
1351
  revive: (e, t) => void 0
1327
1352
  },
1328
- lr,
1329
- fr,
1330
- pr,
1331
- Un,
1353
+ dr,
1354
+ mr,
1355
+ hr,
1356
+ Gn,
1332
1357
  {
1333
1358
  type: "unclonable",
1334
1359
  isType: (e) => {
1335
- if (typeof e != "object" || !e || Array.isArray(e) || mr(e)) return !1;
1360
+ if (typeof e != "object" || !e || Array.isArray(e) || gr(e)) return !1;
1336
1361
  try {
1337
1362
  return structuredClone(e), !1;
1338
1363
  } catch {
@@ -1345,39 +1370,39 @@ var de = (e) => {
1345
1370
  }),
1346
1371
  revive: (e, t) => ({})
1347
1372
  }
1348
- ], gr = (e, t) => t.find((t) => t.isType(e)), _r = (e, t) => t.find((t) => t.type === e.type), vr = (e) => !!e && typeof e == "object" && Object.getPrototypeOf(e) === Object.prototype, yr = (e, t) => Array.isArray(e) ? e.map((e) => t(e)) : vr(e) ? Object.fromEntries(Object.entries(e).map(([e, n]) => [e, t(n)])) : e, br = /* @__PURE__ */ new WeakSet(), xr = /* @__PURE__ */ new WeakSet(), Sr = (e) => e !== null && (typeof e == "object" || typeof e == "function"), X = (e, t) => {
1373
+ ], vr = (e, t) => t.find((t) => t.isType(e)), yr = (e, t) => t.find((t) => t.type === e.type), br = (e) => !!e && typeof e == "object" && Object.getPrototypeOf(e) === Object.prototype, xr = (e, t) => Array.isArray(e) ? e.map((e) => t(e)) : br(e) ? Object.fromEntries(Object.entries(e).map(([e, n]) => [e, t(n)])) : e, Sr = /* @__PURE__ */ new WeakSet(), Cr = /* @__PURE__ */ new WeakSet(), wr = (e) => e !== null && (typeof e == "object" || typeof e == "function"), Q = (e, t) => {
1349
1374
  if (N(e)) return e;
1350
- let n = Sr(e);
1375
+ let n = wr(e);
1351
1376
  if (n) {
1352
- if (br.has(e)) throw TypeError("osra: cannot serialize a circular structure - break the cycle or send the container by reference");
1353
- br.add(e);
1377
+ if (Sr.has(e)) throw TypeError("osra: cannot serialize a circular structure - break the cycle or send the container by reference");
1378
+ Sr.add(e);
1354
1379
  }
1355
1380
  try {
1356
- let n = gr(e, t.revivableModules);
1357
- return n ? n.box(e, t) : yr(e, (e) => X(e, t));
1381
+ let n = vr(e, t.revivableModules);
1382
+ return n ? n.box(e, t) : xr(e, (e) => Q(e, t));
1358
1383
  } finally {
1359
- n && br.delete(e);
1384
+ n && Sr.delete(e);
1360
1385
  }
1361
- }, Z = (e, t) => {
1362
- let n = Sr(e);
1386
+ }, $ = (e, t) => {
1387
+ let n = wr(e);
1363
1388
  if (n) {
1364
- if (xr.has(e)) throw TypeError("osra: cannot revive a circular structure");
1365
- xr.add(e);
1389
+ if (Cr.has(e)) throw TypeError("osra: cannot revive a circular structure");
1390
+ Cr.add(e);
1366
1391
  }
1367
1392
  try {
1368
1393
  if (N(e)) {
1369
- let n = _r(e, t.revivableModules);
1394
+ let n = yr(e, t.revivableModules);
1370
1395
  if (n) return n.revive(e, t);
1371
1396
  }
1372
- return yr(e, (e) => Z(e, t));
1397
+ return xr(e, (e) => $(e, t));
1373
1398
  } finally {
1374
- n && xr.delete(e);
1399
+ n && Cr.delete(e);
1375
1400
  }
1376
- }, Cr = /* @__PURE__ */ t({
1377
- init: () => Tr,
1378
- startBidirectionalConnection: () => Q,
1379
- type: () => wr
1380
- }), wr = "bidirectional", Q = ({ transport: e, value: t, remoteUuid: n, eventTarget: r, send: i, revivableModules: a }) => {
1401
+ }, Tr = /* @__PURE__ */ t({
1402
+ init: () => Or,
1403
+ startBidirectionalConnection: () => Dr,
1404
+ type: () => Er
1405
+ }), Er = "bidirectional", Dr = ({ transport: e, value: t, remoteUuid: n, eventTarget: r, send: i, revivableModules: a }) => {
1381
1406
  let o = {
1382
1407
  transport: e,
1383
1408
  remoteUuid: n,
@@ -1392,14 +1417,14 @@ var de = (e) => {
1392
1417
  }), i({
1393
1418
  type: "init",
1394
1419
  remoteUuid: n,
1395
- data: X(t, o)
1420
+ data: Q(t, o)
1396
1421
  }), {
1397
1422
  revivableContext: o,
1398
- remoteValue: s.then((e) => Z(e, o))
1423
+ remoteValue: s.then((e) => $(e, o))
1399
1424
  };
1400
- }, Tr = (e) => {
1425
+ }, Or = (e) => {
1401
1426
  if (!(k(e.transport) && A(e.transport))) return;
1402
- if (e.protocolEventTarget.addEventListener("message", ({ detail: t }) => {
1427
+ if (e.protocolEventTarget.addEventListener("message", ({ detail: { message: t, peer: n } }) => {
1403
1428
  if (t.type === "announce") {
1404
1429
  if (!t.remoteUuid) {
1405
1430
  e.sendMessage({
@@ -1413,59 +1438,85 @@ var de = (e) => {
1413
1438
  type: "announce",
1414
1439
  remoteUuid: t.uuid
1415
1440
  });
1416
- let n = e.createConnectionEventTarget(), r;
1441
+ let r = e.createConnectionEventTarget(), i = {
1442
+ ...n(),
1443
+ abort: () => e.abortConnection(t.uuid)
1444
+ }, a;
1417
1445
  try {
1418
- r = Q({
1446
+ let n = e.valueFor(i);
1447
+ if (e.claimPendingAbort(t.uuid)) {
1448
+ e.sendMessage({
1449
+ type: "close",
1450
+ remoteUuid: t.uuid
1451
+ });
1452
+ return;
1453
+ }
1454
+ a = Dr({
1419
1455
  transport: e.transport,
1420
- value: e.value,
1456
+ value: n,
1421
1457
  remoteUuid: t.uuid,
1422
- eventTarget: n,
1458
+ eventTarget: r,
1423
1459
  send: (t) => e.sendMessage(t),
1424
1460
  revivableModules: e.revivableModules
1425
1461
  });
1426
- } catch (t) {
1427
- e.rejectRemoteValue(t);
1462
+ } catch (n) {
1463
+ e.sendMessage({
1464
+ type: "close",
1465
+ remoteUuid: t.uuid
1466
+ }), e.rejectRemoteValue(n);
1428
1467
  return;
1429
1468
  }
1430
- let i = {
1469
+ let o = {
1431
1470
  type: "bidirectional",
1432
- eventTarget: n,
1433
- connection: r
1471
+ eventTarget: r,
1472
+ connection: a
1434
1473
  };
1435
- e.connectionContexts.set(t.uuid, i), i.connection.remoteValue.then((t) => e.resolveRemoteValue(t), (t) => e.rejectRemoteValue(t));
1474
+ e.connectionContexts.set(t.uuid, o), o.connection.remoteValue.then((t) => e.addConnection(i, t), (t) => e.rejectRemoteValue(t));
1436
1475
  return;
1437
1476
  }
1438
1477
  if (t.type === "close") {
1439
1478
  if (t.remoteUuid !== e.getUuid()) return;
1440
1479
  let n = e.connectionContexts.get(t.uuid);
1441
1480
  if (!n) return;
1442
- e.connectionContexts.delete(t.uuid), We(n.connection.revivableContext), e.rejectRemoteValue(/* @__PURE__ */ Error("osra: peer closed the connection"));
1481
+ e.connectionContexts.delete(t.uuid), R(n.connection.revivableContext), e.rejectRemoteValue(/* @__PURE__ */ Error("osra: peer closed the connection"));
1443
1482
  return;
1444
1483
  }
1445
1484
  if (t.remoteUuid !== e.getUuid()) return;
1446
- let n = e.connectionContexts.get(t.uuid);
1447
- n && n.eventTarget.dispatchEvent(new CustomEvent("message", { detail: t }));
1485
+ let r = e.connectionContexts.get(t.uuid);
1486
+ r && r.eventTarget.dispatchEvent(new CustomEvent("message", { detail: t }));
1448
1487
  }), e.presetRemoteUuid !== void 0) {
1449
- let t = e.createConnectionEventTarget(), n;
1488
+ let t = e.presetRemoteUuid, n = e.createConnectionEventTarget(), r, i;
1450
1489
  try {
1451
- n = Q({
1490
+ i = { abort: () => e.abortConnection(t) };
1491
+ let a = e.valueFor(i);
1492
+ if (e.claimPendingAbort(t)) {
1493
+ e.sendMessage({
1494
+ type: "close",
1495
+ remoteUuid: t
1496
+ });
1497
+ return;
1498
+ }
1499
+ r = Dr({
1452
1500
  transport: e.transport,
1453
- value: e.value,
1501
+ value: a,
1454
1502
  remoteUuid: e.presetRemoteUuid,
1455
- eventTarget: t,
1503
+ eventTarget: n,
1456
1504
  send: (t) => e.sendMessage(t),
1457
1505
  revivableModules: e.revivableModules
1458
1506
  });
1459
- } catch (t) {
1460
- e.rejectRemoteValue(t);
1507
+ } catch (n) {
1508
+ e.sendMessage({
1509
+ type: "close",
1510
+ remoteUuid: t
1511
+ }), e.rejectRemoteValue(n);
1461
1512
  return;
1462
1513
  }
1463
- let r = {
1514
+ let a = {
1464
1515
  type: "bidirectional",
1465
- eventTarget: t,
1466
- connection: n
1516
+ eventTarget: n,
1517
+ connection: r
1467
1518
  };
1468
- e.connectionContexts.set(e.presetRemoteUuid, r), r.connection.remoteValue.then((t) => e.resolveRemoteValue(t), (t) => e.rejectRemoteValue(t));
1519
+ e.connectionContexts.set(e.presetRemoteUuid, a), a.connection.remoteValue.then((t) => e.addConnection(i, t), (t) => e.rejectRemoteValue(t));
1469
1520
  return;
1470
1521
  }
1471
1522
  let t = 50, n, r = () => {
@@ -1477,77 +1528,189 @@ var de = (e) => {
1477
1528
  }
1478
1529
  };
1479
1530
  e.unregisterSignal?.addEventListener("abort", () => clearTimeout(n), { once: !0 }), r();
1480
- }, Er = () => new EventTarget(), $ = (e) => {
1531
+ }, kr = () => new EventTarget(), Ar = (e) => {
1481
1532
  let t = j(e), n = t ? e.emit : e, r = t ? e.receive : e;
1482
1533
  return {
1483
1534
  isJson: t && "isJson" in e && e.isJson !== void 0 ? e.isJson : n !== void 0 && O(n) || r !== void 0 && O(r),
1484
1535
  ...n === void 0 ? {} : { emit: n },
1485
1536
  ...r === void 0 ? {} : { receive: r }
1486
1537
  };
1487
- }, Dr = (e) => e ? e(hr) : hr, Or = (e, t, { key: n = r, origin: i = "*", originA: a = i, originB: o = i, nameA: s, nameB: c, unregisterSignal: d } = {}) => {
1488
- let f = $(e), p = $(t), m = (e, t, r, i, a) => {
1538
+ }, jr = (e) => e ? e(_r) : _r, Mr = 32, Nr = () => {
1539
+ let e = [], t = /* @__PURE__ */ new Set(), n = !1, r = () => ({
1540
+ value: void 0,
1541
+ done: !0
1542
+ });
1543
+ return {
1544
+ push: (r) => {
1545
+ if (!n) {
1546
+ if (t.size === 0) {
1547
+ e.push(r), e.length > Mr && e.shift();
1548
+ return;
1549
+ }
1550
+ for (let e of t) {
1551
+ let t = e.wake;
1552
+ if (t) {
1553
+ e.wake = void 0, t({
1554
+ value: r,
1555
+ done: !1
1556
+ });
1557
+ continue;
1558
+ }
1559
+ e.buffered.push(r);
1560
+ }
1561
+ }
1562
+ },
1563
+ close: () => {
1564
+ n = !0;
1565
+ for (let e of t) {
1566
+ let t = e.wake;
1567
+ e.wake = void 0, t?.(r());
1568
+ }
1569
+ },
1570
+ iterate: () => {
1571
+ let i = { buffered: [...e] };
1572
+ t.add(i);
1573
+ let a = !1;
1574
+ return {
1575
+ [Symbol.asyncIterator]() {
1576
+ return this;
1577
+ },
1578
+ next: () => {
1579
+ if (a) return Promise.resolve(r());
1580
+ let e = i.buffered.shift();
1581
+ return e ? Promise.resolve({
1582
+ value: e,
1583
+ done: !1
1584
+ }) : n ? Promise.resolve(r()) : new Promise((e) => {
1585
+ i.wake = e;
1586
+ });
1587
+ },
1588
+ return: () => {
1589
+ a = !0, t.delete(i);
1590
+ let e = i.wake;
1591
+ return i.wake = void 0, e?.(r()), Promise.resolve(r());
1592
+ }
1593
+ };
1594
+ }
1595
+ };
1596
+ }, Pr = (e, t, n) => {
1597
+ let r = e.then(n);
1598
+ r.catch(() => {});
1599
+ let i = () => {
1600
+ let e = t.iterate();
1601
+ return {
1602
+ [Symbol.asyncIterator]() {
1603
+ return this;
1604
+ },
1605
+ next: () => e.next().then((e) => e.done ? {
1606
+ value: void 0,
1607
+ done: !0
1608
+ } : {
1609
+ value: n(e.value),
1610
+ done: !1
1611
+ }),
1612
+ return: () => e.return?.() ?? Promise.resolve({
1613
+ value: void 0,
1614
+ done: !0
1615
+ })
1616
+ };
1617
+ };
1618
+ return Object.assign(r, { [Symbol.asyncIterator]: i });
1619
+ }, Fr = Symbol.for("osra.context"), Ir = (e) => ({ [Fr]: e }), Lr = (e) => typeof e == "object" && !!e && Fr in e, Rr = (e, t, { key: n = r, origin: i = "*", originA: a = i, originB: o = i, nameA: s, nameB: c, unregisterSignal: u } = {}) => {
1620
+ let d = Ar(e), p = Ar(t), m = (e, t, r, i, a) => {
1489
1621
  !A(e) || !k(t) || l({
1490
1622
  transport: e,
1491
1623
  key: n,
1492
1624
  remoteName: a,
1493
1625
  origin: r,
1494
- unregisterSignal: d,
1626
+ unregisterSignal: u,
1495
1627
  listener: (e) => {
1496
- u(t, e, i, I(e));
1628
+ f(t, e, i, z(e));
1497
1629
  }
1498
1630
  });
1499
1631
  };
1500
- m(f, p, a, o, s), m(p, f, o, a, c);
1501
- }, kr = [Cr], Ar = (e, { transport: t, name: i, remoteName: a, key: o = r, origin: s = "*", unregisterSignal: c, revivableModules: d, uuid: f, remoteUuid: p }) => {
1502
- let m = $(t);
1503
- if (!(k(m) && A(m))) throw Error("osra: transport must be able to both emit and receive to establish a connection; pass a bidirectional platform transport or a custom { emit, receive } pair");
1504
- let ee = Dr(d), h = /* @__PURE__ */ new Map(), { promise: g, resolve: te, reject: _ } = Promise.withResolvers();
1505
- g.catch(() => {});
1506
- let v = f ?? globalThis.crypto.randomUUID(), y = (e, t = s) => {
1632
+ m(d, p, a, o, s), m(p, d, o, a, c);
1633
+ }, zr = [Tr], Br = (e, { transport: t, name: i, remoteName: a, key: o = r, origin: s = "*", unregisterSignal: c, revivableModules: u, uuid: d, remoteUuid: p, connection: m = ({ value: e }) => e }) => {
1634
+ let ee = m, h = Ar(t);
1635
+ if (!(k(h) && A(h))) {
1636
+ let e = Nr();
1637
+ e.close();
1638
+ let t = Promise.reject(/* @__PURE__ */ Error("osra: transport must be able to both emit and receive to establish a connection; pass a bidirectional platform transport or a custom { emit, receive } pair"));
1639
+ return t.catch(() => {}), Pr(t, e, ee);
1640
+ }
1641
+ let te = jr(u), g = /* @__PURE__ */ new Map(), _ = /* @__PURE__ */ new Set(), v = Nr(), { promise: y, resolve: ne, reject: b } = Promise.withResolvers();
1642
+ y.catch(() => {});
1643
+ let x = d ?? globalThis.crypto.randomUUID(), S = (e, t = s) => {
1507
1644
  let r = {
1508
1645
  [n]: o,
1509
1646
  name: i,
1510
- uuid: v,
1647
+ uuid: x,
1511
1648
  ...e
1512
1649
  };
1513
- u(m, r, t, I(r));
1514
- }, b = (e, t) => {
1515
- c?.aborted || y(e, t);
1516
- }, x = Er(), ne = {
1517
- transport: m,
1518
- value: e,
1519
- revivableModules: ee,
1520
- connectionContexts: h,
1521
- getUuid: () => v,
1650
+ f(h, r, t, z(r));
1651
+ }, re = (e, t) => {
1652
+ c?.aborted || S(e, t);
1653
+ }, C = kr(), w = {
1654
+ transport: h,
1655
+ valueFor: (t) => Lr(e) ? e[Fr](t) : e,
1656
+ revivableModules: te,
1657
+ connectionContexts: g,
1658
+ getUuid: () => x,
1522
1659
  presetRemoteUuid: p,
1523
- sendMessage: b,
1524
- protocolEventTarget: x,
1525
- resolveRemoteValue: te,
1526
- rejectRemoteValue: _,
1527
- createConnectionEventTarget: Er,
1660
+ sendMessage: re,
1661
+ protocolEventTarget: C,
1662
+ rejectRemoteValue: b,
1663
+ abortConnection: (e) => {
1664
+ let t = g.get(e);
1665
+ if (!t) {
1666
+ _.add(e);
1667
+ return;
1668
+ }
1669
+ g.delete(e), S({
1670
+ type: "close",
1671
+ remoteUuid: e
1672
+ }), R(t.connection.revivableContext), b(/* @__PURE__ */ Error("osra: connection aborted"));
1673
+ },
1674
+ claimPendingAbort: (e) => _.delete(e),
1675
+ addConnection: (e, t) => {
1676
+ let n = {
1677
+ value: t,
1678
+ context: e
1679
+ };
1680
+ ne(n), v.push(n);
1681
+ },
1682
+ createConnectionEventTarget: kr,
1528
1683
  unregisterSignal: c
1529
1684
  };
1530
1685
  if (l({
1531
1686
  listener: (e, t) => {
1532
- e.uuid !== v && x.dispatchEvent(new CustomEvent("message", { detail: e }));
1687
+ e.uuid !== x && C.dispatchEvent(new CustomEvent("message", { detail: {
1688
+ message: e,
1689
+ peer: () => ({
1690
+ ...t.origin ? { origin: t.origin } : {},
1691
+ ...t.source ? { source: t.source } : {},
1692
+ ...t.port ? { port: t.port } : {},
1693
+ ...t.sender ? { sender: t.sender } : {}
1694
+ })
1695
+ } }));
1533
1696
  },
1534
- transport: m,
1697
+ transport: h,
1535
1698
  remoteName: a,
1536
1699
  key: o,
1537
1700
  origin: s,
1538
1701
  unregisterSignal: c
1539
- }), c?.aborted) return _(c.reason), g;
1702
+ }), c?.aborted) return b(c.reason), v.close(), Pr(y, v, ee);
1540
1703
  c?.addEventListener("abort", () => {
1541
- for (let [e, t] of h) y({
1704
+ for (let [e, t] of g) S({
1542
1705
  type: "close",
1543
1706
  remoteUuid: e
1544
- }), We(t.connection.revivableContext);
1545
- h.clear(), _(c.reason);
1707
+ }), R(t.connection.revivableContext);
1708
+ g.clear(), v.close(), b(c.reason);
1546
1709
  }, { once: !0 });
1547
- for (let e of kr) e.init(ne);
1548
- return g;
1549
- }, jr = async (e, t) => Ar(e, t);
1710
+ for (let e of zr) e.init(w);
1711
+ return Pr(y, v, ee);
1712
+ }, Vr = (e, t) => Br(e, t);
1550
1713
  //#endregion
1551
- export { M as BoxBase, R as EventChannel, L as EventPort, i as OSRA_BOX, r as OSRA_DEFAULT_KEY, n as OSRA_KEY, le as assertEmitTransport, ue as assertReceiveTransport, he as boxBuffer, s as checkOsraMessageKey, kr as connections, Er as createTypedEventTarget, hr as defaultRevivableModules, jr as expose, I as getTransferableObjects, a as getWebExtensionGlobal, o as getWebExtensionRuntime, Y as identity, Tr as init, S as instanceOfAny, ie as isClonable, fe as isCustomEmitTransport, pe as isCustomReceiveTransport, j as isCustomTransport, y as isDedicatedWorker, se as isEmitJsonOnlyTransport, k as isEmitTransport, O as isJsonOnlyTransport, ne as isOsraMessage, ce as isReceiveJsonOnlyTransport, A as isReceiveTransport, N as isRevivableBox, _ as isServiceWorker, te as isServiceWorkerContainer, re as isSharedArrayBuffer, b as isSharedWorker, ae as isTransferable, me as isTransport, h as isTypedArray, T as isWebExtensionOnConnect, E as isWebExtensionOnMessage, w as isWebExtensionPort, C as isWebExtensionRuntime, g as isWebSocket, D as isWindow, v as isWorker, Dr as mergeRevivableModules, $ as normalizeTransport, F as onTeardown, X as recursiveBox, Z as recursiveRevive, l as registerOsraMessageListener, Or as relay, ge as reviveBuffer, We as runTeardown, u as sendOsraMessage, Q as startBidirectionalConnection, Ar as startConnections, z as trackGc, Ze as transfer, wr as type, m as typedArrayToType, ee as typedArrayTypeToTypedArrayConstructor };
1714
+ export { M as BoxBase, Fr as CONTEXT, V as EventChannel, B as EventPort, i as OSRA_BOX, r as OSRA_DEFAULT_KEY, n as OSRA_KEY, Pr as asExposed, de as assertEmitTransport, fe as assertReceiveTransport, _e as boxBuffer, s as checkOsraMessageKey, zr as connections, Ir as context, Nr as createConnectionQueue, kr as createTypedEventTarget, _r as defaultRevivableModules, Vr as expose, z as getTransferableObjects, a as getWebExtensionGlobal, o as getWebExtensionRuntime, vn as identity, Or as init, C as instanceOfAny, ie as isClonable, Lr as isContextual, me as isCustomEmitTransport, he as isCustomReceiveTransport, j as isCustomTransport, b as isDedicatedWorker, le as isEmitJsonOnlyTransport, k as isEmitTransport, O as isJsonOnlyTransport, re as isOsraMessage, ue as isReceiveJsonOnlyTransport, A as isReceiveTransport, N as isRevivableBox, y as isServiceWorker, v as isServiceWorkerContainer, w as isSharedArrayBuffer, x as isSharedWorker, L as isTornDown, ae as isTransferable, ge as isTransport, g as isTypedArray, se as isWebExtensionOnConnect, ce as isWebExtensionOnMessage, E as isWebExtensionPort, T as isWebExtensionRuntime, _ as isWebSocket, D as isWindow, ne as isWorker, jr as mergeRevivableModules, Ar as normalizeTransport, I as onTeardown, Q as recursiveBox, $ as recursiveRevive, l as registerOsraMessageListener, Rr as relay, ve as reviveBuffer, R as runTeardown, f as sendOsraMessage, Dr as startBidirectionalConnection, Br as startConnections, H as trackGc, Ze as transfer, Er as type, h as typedArrayToType, te as typedArrayTypeToTypedArrayConstructor };
1552
1715
 
1553
1716
  //# sourceMappingURL=index.js.map