@fkn/lib 0.9.20 → 0.9.21

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 (75) hide show
  1. package/account.cjs +1 -1
  2. package/account.js +24 -17
  3. package/{api-CyWF0RUj.d.ts → api-B0qRPCcX.d.ts} +8 -0
  4. package/api-BqRjtWm_.js +311 -0
  5. package/api-CKO3Hw-O.cjs +3 -0
  6. package/busy-Bp1E3JPT.js +24 -0
  7. package/busy-Dv8wzE5M.cjs +1 -0
  8. package/cloud/dgram.cjs +1 -1
  9. package/cloud/dgram.js +1 -1
  10. package/cloud/fetch.cjs +1 -1
  11. package/cloud/fetch.d.ts +1 -1
  12. package/cloud/fetch.js +1 -1
  13. package/cloud/fs.cjs +1 -1
  14. package/cloud/fs.js +2 -2
  15. package/cloud/net.cjs +1 -1
  16. package/cloud/net.d.ts +1 -1
  17. package/cloud/net.js +1 -1
  18. package/cloud-BCQTex58.cjs +1 -0
  19. package/{cloud-CQVtRvcI.d.ts → cloud-BTpJn4jy.d.ts} +2 -2
  20. package/{cloud-C_1Dt_tR.js → cloud-BlR1He17.js} +77 -74
  21. package/cloud.cjs +1 -1
  22. package/cloud.d.ts +3 -3
  23. package/cloud.js +4 -4
  24. package/dgram-9hn582qO.cjs +1 -0
  25. package/{dgram-DlGl_ho1.js → dgram-TB03kqMr.js} +55 -49
  26. package/dgram.cjs +1 -1
  27. package/dgram.d.ts +2 -1
  28. package/dgram.js +1 -1
  29. package/dns.cjs +1 -1
  30. package/dns.js +1 -1
  31. package/{extension-jRuNpBs3.js → extension-BI2NxGtC.js} +2 -2
  32. package/{extension-B3nD2u7c.cjs → extension-rFQQpEqJ.cjs} +1 -1
  33. package/extension.cjs +1 -1
  34. package/extension.js +1 -1
  35. package/fs/promises.cjs +1 -1
  36. package/fs/promises.js +1 -1
  37. package/fs-BUcpl9k4.cjs +1 -0
  38. package/fs-bpb3Ysdd.js +347 -0
  39. package/fs.cjs +1 -1
  40. package/fs.js +1 -1
  41. package/http.cjs +1 -1
  42. package/http.d.ts +1 -1
  43. package/http.js +1 -1
  44. package/index.cjs +1 -1
  45. package/index.d.ts +9 -15
  46. package/index.js +86 -33
  47. package/net-C2fIMWFr.cjs +1 -0
  48. package/{net-ByL9yG7X.d.ts → net-CnYxw_sB.d.ts} +3 -1
  49. package/{net-BbmQeMpt.js → net-Ct8ywVAk.js} +52 -41
  50. package/net.cjs +1 -1
  51. package/net.d.ts +1 -1
  52. package/net.js +1 -1
  53. package/node-fs-BZCQUmeE.js +404 -0
  54. package/node-fs-DZPGCYWg.cjs +1 -0
  55. package/opfs.cjs +1 -1
  56. package/opfs.js +1 -1
  57. package/package.json +1 -1
  58. package/packages.cjs +1 -1
  59. package/packages.js +165 -149
  60. package/proxy--aljNHvG.js +69 -0
  61. package/{proxy-RU8sbq68.d.ts → proxy-CuXtzxSQ.d.ts} +1 -1
  62. package/proxy-oHfEx1cn.cjs +1 -0
  63. package/{storage-C8hBot2f.js → storage-C1nW5Tvh.js} +1 -1
  64. package/{storage-BW-jDLUL.cjs → storage-rXHvV2FU.cjs} +1 -1
  65. package/api-DQ-V4Lls.js +0 -220
  66. package/api-kHMHDGar.cjs +0 -3
  67. package/cloud-C8jfO0iJ.cjs +0 -1
  68. package/dgram-D2Or5f2e.cjs +0 -1
  69. package/fs-BW5mVMmu.js +0 -340
  70. package/fs-DJm0bhjg.cjs +0 -1
  71. package/net-COzDDBnS.cjs +0 -1
  72. package/node-fs-BMR2yCEt.cjs +0 -1
  73. package/node-fs-DKfokOlh.js +0 -401
  74. package/proxy-B0gNjT8-.cjs +0 -1
  75. package/proxy-BpqvCJmA.js +0 -43
package/packages.js CHANGED
@@ -1,47 +1,48 @@
1
1
  import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
- import { r as t, t as n } from "./api-DQ-V4Lls.js";
3
- import { expose as r } from "osra";
2
+ import { a as t, o as n, r, s as i } from "./api-BqRjtWm_.js";
3
+ import { r as a, t as o } from "./busy-Bp1E3JPT.js";
4
+ import { expose as s } from "osra";
4
5
  //#region src/lib/packages.ts
5
- var i = /* @__PURE__ */ e({
6
- attach: () => j,
7
- connect: () => T,
8
- hide: () => w,
9
- install: () => p,
10
- isVisible: () => G,
11
- list: () => m,
12
- mount: () => A,
13
- onConnect: () => W,
14
- onVisibilityChange: () => K,
15
- pick: () => f,
16
- search: () => d,
17
- show: () => C,
18
- uninstall: () => h
19
- }), a = "fkn-packages-connection", o = 3e4, s = (e, t) => Object.assign(Error(t), { code: e }), c = async () => {
20
- if (!t) throw s("unavailable", "packages: no FKN transport in this realm - use relayWorker to bridge workers");
21
- return n;
22
- }, l = (e, t, n) => r(e ?? {}, {
6
+ var c = /* @__PURE__ */ e({
7
+ attach: () => F,
8
+ connect: () => k,
9
+ hide: () => O,
10
+ install: () => _,
11
+ isVisible: () => Y,
12
+ list: () => v,
13
+ mount: () => P,
14
+ onConnect: () => J,
15
+ onVisibilityChange: () => X,
16
+ pick: () => g,
17
+ search: () => h,
18
+ show: () => D,
19
+ uninstall: () => y
20
+ }), l = "fkn-packages-connection", u = 3e4, d = (e, t) => Object.assign(Error(t), { code: e }), f = async () => {
21
+ if (!n) throw d("unavailable", "packages: no FKN transport in this realm - use relayWorker to bridge workers");
22
+ return r;
23
+ }, p = (e, t, n) => s(e ?? {}, {
23
24
  transport: t,
24
- key: a,
25
+ key: l,
25
26
  unregisterSignal: n
26
- }), u = async (e, t, n = {}) => {
27
+ }), m = async (e, t, n = {}) => {
27
28
  let { signal: r, closed: i } = n;
28
- if (r?.aborted) throw s("unavailable", "packages.connect: aborted before connecting");
29
+ if (r?.aborted) throw d("unavailable", "packages.connect: aborted before connecting");
29
30
  let a = new AbortController();
30
31
  r && r.addEventListener("abort", () => a.abort(r.reason), { once: !0 });
31
- let c = new AbortController(), u = new Promise((e, n) => {
32
- let a = setTimeout(() => n(s("timeout", "packages.connect: the package did not complete the connection")), o);
33
- c.signal.addEventListener("abort", () => clearTimeout(a), { once: !0 }), t.addEventListener("message", (e) => {
32
+ let o = new AbortController(), s = new Promise((e, n) => {
33
+ let a = setTimeout(() => n(d("timeout", "packages.connect: the package did not complete the connection")), u);
34
+ o.signal.addEventListener("abort", () => clearTimeout(a), { once: !0 }), t.addEventListener("message", (e) => {
34
35
  if (e.data?.type === "fkn-packages-nack") {
35
36
  let t = e.data.message;
36
- n(s("unavailable", typeof t == "string" && t ? t : "packages.connect: the package refused the connection"));
37
+ n(d("unavailable", typeof t == "string" && t ? t : "packages.connect: the package refused the connection"));
37
38
  }
38
- }, { signal: c.signal }), t.start(), r && r.addEventListener("abort", () => n(s("unavailable", "packages.connect: aborted before connecting")), {
39
+ }, { signal: o.signal }), t.start(), r && r.addEventListener("abort", () => n(d("unavailable", "packages.connect: aborted before connecting")), {
39
40
  once: !0,
40
- signal: c.signal
41
- }), i?.then(() => n(s("unavailable", "packages.connect: the package closed before connecting")));
41
+ signal: o.signal
42
+ }), i?.then(() => n(d("unavailable", "packages.connect: the package closed before connecting")));
42
43
  });
43
44
  try {
44
- return await Promise.race([l(e, t, a.signal), u]);
45
+ return await Promise.race([p(e, t, a.signal), s]);
45
46
  } catch (e) {
46
47
  a.abort(e);
47
48
  try {
@@ -49,29 +50,29 @@ var i = /* @__PURE__ */ e({
49
50
  } catch {}
50
51
  throw e;
51
52
  } finally {
52
- c.abort();
53
+ o.abort();
53
54
  }
54
- }, d = async (e) => {
55
- let t = await (await c()).packages.search(e);
56
- if ("error" in t) throw s(t.error, t.message);
55
+ }, h = async (e) => {
56
+ let t = await (await f()).packages.search(e);
57
+ if ("error" in t) throw d(t.error, t.message);
57
58
  return t.results;
58
- }, f = async (e, t) => {
59
- let n = await (await c()).packages.pick(e, t);
60
- if ("error" in n) throw s(n.error, n.message);
59
+ }, g = async (e, t) => {
60
+ let n = await (await f()).packages.pick(e, t);
61
+ if ("error" in n) throw d(n.error, n.message);
61
62
  return "declined" in n ? [] : n.results;
62
- }, p = async (e, t) => {
63
- let n = await (await c()).packages.install(e, t);
64
- if ("error" in n) throw s(n.error, n.message);
63
+ }, _ = async (e, t) => {
64
+ let n = await (await f()).packages.install(e, t);
65
+ if ("error" in n) throw d(n.error, n.message);
65
66
  return "declined" in n ? null : n.installed;
66
- }, m = async () => (await (await c()).packages.list()).results, h = async (e) => {
67
- let t = await (await c()).packages.uninstall(e);
68
- if ("error" in t) throw s(t.error, t.message);
69
- }, g = ({ x: e, y: t, width: n, height: r }) => ({
67
+ }, v = async () => (await (await f()).packages.list()).results, y = async (e) => {
68
+ let t = await (await f()).packages.uninstall(e);
69
+ if ("error" in t) throw d(t.error, t.message);
70
+ }, b = ({ x: e, y: t, width: n, height: r }) => ({
70
71
  x: Math.round(e),
71
72
  y: Math.round(t),
72
73
  width: Math.round(n),
73
74
  height: Math.round(r)
74
- }), _ = (e, t) => {
75
+ }), x = (e, t) => {
75
76
  let n = Math.max(e.x, t.x), r = Math.max(e.y, t.y);
76
77
  return {
77
78
  x: n,
@@ -79,14 +80,14 @@ var i = /* @__PURE__ */ e({
79
80
  width: Math.max(0, Math.min(e.x + e.width, t.x + t.width) - n),
80
81
  height: Math.max(0, Math.min(e.y + e.height, t.y + t.height) - r)
81
82
  };
82
- }, v = (e, t) => {
83
+ }, S = (e, t) => {
83
84
  let n = t;
84
85
  for (let t = e.parentElement; t; t = t.parentElement) {
85
86
  let e = getComputedStyle(t);
86
- if (!(e.overflowX === "visible" && e.overflowY === "visible") && (n = _(n, g(t.getBoundingClientRect())), n.width === 0 || n.height === 0)) break;
87
+ if (!(e.overflowX === "visible" && e.overflowY === "visible") && (n = x(n, b(t.getBoundingClientRect())), n.width === 0 || n.height === 0)) break;
87
88
  }
88
89
  return n;
89
- }, y = (e) => {
90
+ }, C = (e) => {
90
91
  let t = getComputedStyle(e), n = [
91
92
  t.borderTopLeftRadius,
92
93
  t.borderTopRightRadius,
@@ -99,109 +100,119 @@ var i = /* @__PURE__ */ e({
99
100
  return Number.isFinite(t) && t > 0 ? t : 0;
100
101
  });
101
102
  return r.some((e) => e > 0) ? r : void 0;
102
- }, b = (e, t) => {
103
+ }, w = (e, t) => {
103
104
  if (!e) return !1;
104
105
  let n = (e, t) => e === t || !!e && !!t && e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height;
105
106
  return n(e.rect, t.rect) && n(e.clip, t.clip) && ((e, t) => e === t || !!e && !!t && e.every((e, n) => e === t[n]))(e.radius, t.radius);
106
- }, x = /* @__PURE__ */ new Map(), S = async (e, t) => {
107
- let n = x.get(e);
107
+ }, T = /* @__PURE__ */ new Map();
108
+ a("package view", () => T.size > 0);
109
+ var E = async (e, t) => {
110
+ let n = T.get(e);
108
111
  if (n) {
109
112
  for (let e of n) t && e.element !== t || (e.stop(), n.delete(e));
110
113
  if (n.size > 0) return;
111
- x.delete(e);
114
+ T.delete(e);
112
115
  }
113
- let r = await (await c()).packages.hide(e);
114
- if ("error" in r) throw s(r.error, r.message);
115
- }, C = async (e, t) => {
116
+ let r = await (await f()).packages.hide(e);
117
+ if ("error" in r) throw d(r.error, r.message);
118
+ }, D = async (e, t) => {
116
119
  let { element: n, rect: r } = t;
117
- if (!n && !r) throw s("invalid", "packages.show: pass an element or a rect");
118
- let i = (await c()).packages, a = () => {
119
- if (!n) return { rect: g(r) };
120
- let e = g(n.getBoundingClientRect());
120
+ if (!n && !r) throw d("invalid", "packages.show: pass an element or a rect");
121
+ let i = (await f()).packages, a = () => {
122
+ if (!n) return { rect: b(r) };
123
+ let e = b(n.getBoundingClientRect());
121
124
  return {
122
125
  rect: e,
123
- clip: v(n, e),
124
- radius: y(n)
126
+ clip: S(n, e),
127
+ radius: C(n)
125
128
  };
126
- }, o = !0, l, u = 0, d = async (t) => {
127
- l = t;
129
+ }, o = !0, s, c = 0, l = async (t) => {
130
+ s = t;
128
131
  let n = await i.show(e, t);
129
- if ("error" in n) throw o = !1, s(n.error, n.message);
132
+ if ("error" in n) throw o = !1, d(n.error, n.message);
130
133
  };
131
- await d(a());
132
- let f = () => {
134
+ await l(a());
135
+ let u = () => {
133
136
  if (!o) return;
134
137
  let e = a();
135
- b(l, e) || d(e).catch(() => {}), u = requestAnimationFrame(f);
138
+ w(s, e) || l(e).catch(() => {}), c = requestAnimationFrame(u);
136
139
  };
137
- n && (u = requestAnimationFrame(f));
140
+ n && (c = requestAnimationFrame(u));
138
141
  let p = {
139
142
  element: n,
140
143
  stop: () => {
141
- o = !1, cancelAnimationFrame(u);
144
+ o = !1, cancelAnimationFrame(c);
142
145
  }
143
- }, m = x.get(e) ?? /* @__PURE__ */ new Set();
144
- return m.add(p), x.set(e, m), {
146
+ }, m = T.get(e) ?? /* @__PURE__ */ new Set();
147
+ return m.add(p), T.set(e, m), {
145
148
  hide: () => {
146
- S(e, n).catch(() => {});
149
+ E(e, n).catch(() => {});
147
150
  },
148
151
  refresh: () => {
149
152
  if (!o) return;
150
153
  let e = a();
151
- b(l, e) || d(e).catch(() => {});
154
+ w(s, e) || l(e).catch(() => {});
152
155
  }
153
156
  };
154
- }, w = async (e, t = {}) => S(e, t.element), T = (async (e, t = {}) => {
155
- let n = await (await c()).packages.connect(e, { protocol: t.protocol });
156
- if ("error" in n) throw s(n.error, n.message);
157
- let { port: r, closed: i } = n;
158
- if (t.raw) return {
159
- closed: i,
160
- port: r
157
+ }, O = async (e, t = {}) => E(e, t.element), k = (async (e, n = {}) => {
158
+ let r = await (await f()).packages.connect(e, { protocol: n.protocol });
159
+ if ("error" in r) throw d(r.error, r.message);
160
+ let a = o("package connection"), s = t()?.epoch ?? 0, c = i((e, t) => {
161
+ t !== s && (a(), c());
162
+ });
163
+ Promise.resolve(r.closed).then(() => {
164
+ a(), c();
165
+ }, () => {
166
+ a(), c();
167
+ });
168
+ let { port: l, closed: u } = r;
169
+ if (n.raw) return {
170
+ closed: u,
171
+ port: l
161
172
  };
162
- let a = await u(t.payload, r, {
163
- signal: t.signal,
164
- closed: i
173
+ let p = await m(n.payload, l, {
174
+ signal: n.signal,
175
+ closed: u
165
176
  });
166
- return t.signal && t.signal.addEventListener("abort", () => {
177
+ return n.signal && n.signal.addEventListener("abort", () => {
167
178
  try {
168
- r.postMessage({ type: "fkn-packages-disconnect" });
179
+ l.postMessage({ type: "fkn-packages-disconnect" });
169
180
  } catch {}
170
181
  }, { once: !0 }), {
171
- remote: a,
172
- closed: i,
173
- port: r
182
+ remote: p,
183
+ closed: u,
184
+ port: l
174
185
  };
175
- }), E = ["allow-scripts", "allow-same-origin"], D = (e) => {
186
+ }), A = ["allow-scripts", "allow-same-origin"], j = (e) => {
176
187
  let t = e.getAttribute("sandbox");
177
188
  if (t !== null) {
178
- let e = new Set(t.toLowerCase().split(/\s+/).filter(Boolean)), n = E.filter((t) => !e.has(t));
179
- if (n.length) throw s("invalid", `packages.mount: the iframe's sandbox attribute must include ${n.join(" and ")}, or the package cannot start`);
189
+ let e = new Set(t.toLowerCase().split(/\s+/).filter(Boolean)), n = A.filter((t) => !e.has(t));
190
+ if (n.length) throw d("invalid", `packages.mount: the iframe's sandbox attribute must include ${n.join(" and ")}, or the package cannot start`);
180
191
  }
181
- if (globalThis.crossOriginIsolated && !new Set((e.getAttribute("allow") ?? "").toLowerCase().split(";").map((e) => e.trim().split(/\s+/)[0]).filter(Boolean)).has("cross-origin-isolated")) throw s("invalid", "packages.mount: this page is cross-origin isolated, so the iframe's allow attribute must include 'cross-origin-isolated' to hand that down to the package");
182
- }, O = 3e4, k = (e, t) => new Promise((n, r) => {
192
+ if (globalThis.crossOriginIsolated && !new Set((e.getAttribute("allow") ?? "").toLowerCase().split(";").map((e) => e.trim().split(/\s+/)[0]).filter(Boolean)).has("cross-origin-isolated")) throw d("invalid", "packages.mount: this page is cross-origin isolated, so the iframe's allow attribute must include 'cross-origin-isolated' to hand that down to the package");
193
+ }, M = 3e4, N = (e, t) => new Promise((n, r) => {
183
194
  let i = (e) => {
184
195
  clearTimeout(o), window.removeEventListener("message", a), e ? r(e) : n();
185
196
  }, a = (n) => {
186
197
  if (n.source !== e.contentWindow || n.origin !== t) return;
187
198
  let r = n.data;
188
199
  if (r?.type === "fkn-packages-ready") return i();
189
- r?.type === "fkn-packages-failed" && i(s("unavailable", typeof r.message == "string" && r.message ? r.message : "packages.mount: the package failed to boot"));
190
- }, o = setTimeout(() => i(s("timeout", "packages.mount: the package did not register a connection handler")), O);
200
+ r?.type === "fkn-packages-failed" && i(d("unavailable", typeof r.message == "string" && r.message ? r.message : "packages.mount: the package failed to boot"));
201
+ }, o = setTimeout(() => i(d("timeout", "packages.mount: the package did not register a connection handler")), M);
191
202
  window.addEventListener("message", a);
192
- }), A = async (e, t) => {
203
+ }), P = async (e, t) => {
193
204
  let { iframe: n } = t;
194
- if (!(n instanceof HTMLIFrameElement)) throw s("invalid", "packages.mount: pass the iframe to load the package into");
195
- if (!n.isConnected) throw s("invalid", "packages.mount: the iframe must be in the document before mounting into it");
196
- D(n);
197
- let r = await (await c()).packages.frame(e);
198
- if ("error" in r) throw s(r.error, r.message);
205
+ if (!(n instanceof HTMLIFrameElement)) throw d("invalid", "packages.mount: pass the iframe to load the package into");
206
+ if (!n.isConnected) throw d("invalid", "packages.mount: the iframe must be in the document before mounting into it");
207
+ j(n);
208
+ let r = await (await f()).packages.frame(e);
209
+ if ("error" in r) throw d(r.error, r.message);
199
210
  n.src = r.url;
200
- let i = { done: !1 }, a = () => {}, o = new Promise((e) => {
211
+ let i = { done: !1 }, a = () => {}, s = new Promise((e) => {
201
212
  a = e;
202
- }), l = () => {
213
+ }), c = o("mounted package"), l = () => {
203
214
  if (!i.done) {
204
- i.done = !0;
215
+ i.done = !0, c();
205
216
  try {
206
217
  n.contentWindow?.postMessage({ type: "fkn-packages-close" }, r.origin);
207
218
  } catch {}
@@ -209,45 +220,50 @@ var i = /* @__PURE__ */ e({
209
220
  }
210
221
  };
211
222
  try {
212
- await k(n, r.origin);
223
+ await N(n, r.origin);
213
224
  } catch (e) {
214
225
  throw l(), e;
215
226
  }
216
- let d = new MessageChannel(), f = n.contentWindow;
217
- if (!f) throw l(), s("unavailable", "packages.mount: the frame was detached before it could connect");
218
- f.postMessage({
227
+ let u = new MessageChannel(), p = n.contentWindow;
228
+ if (!p) throw l(), d("unavailable", "packages.mount: the frame was detached before it could connect");
229
+ p.postMessage({
219
230
  type: "fkn-packages-port",
220
231
  from: r.from,
221
232
  protocol: t.protocol,
222
233
  uri: r.uri,
223
234
  name: r.name,
224
235
  version: r.version
225
- }, r.origin, [d.port2]);
236
+ }, r.origin, [u.port2]);
226
237
  try {
227
- f.postMessage({
238
+ p.postMessage({
228
239
  type: "fkn-packages-visibility",
229
240
  visible: !0
230
241
  }, r.origin);
231
242
  } catch {}
232
- return t.raw ? {
233
- closed: o,
234
- port: d.port1,
235
- frame: n,
236
- unmount: l
237
- } : {
238
- remote: await u(t.payload, d.port1, {
239
- signal: t.signal,
240
- closed: o
241
- }),
242
- closed: o,
243
- port: d.port1,
243
+ if (t.raw) return {
244
+ closed: s,
245
+ port: u.port1,
244
246
  frame: n,
245
247
  unmount: l
246
248
  };
247
- }, j = (e, t, n) => u(t, e, { signal: n?.signal }), M = null, N = !1, P = /* @__PURE__ */ new Set(), F = [], I = /* @__PURE__ */ new Map(), L = !1, R = !1, z = (e) => {
248
- let t = I.get(e);
249
- t && (I.delete(e), t());
250
- }, B = (e, t) => {
249
+ try {
250
+ return {
251
+ remote: await m(t.payload, u.port1, {
252
+ signal: t.signal,
253
+ closed: s
254
+ }),
255
+ closed: s,
256
+ port: u.port1,
257
+ frame: n,
258
+ unmount: l
259
+ };
260
+ } catch (e) {
261
+ throw l(), e;
262
+ }
263
+ }, F = (e, t, n) => m(t, e, { signal: n?.signal }), I = null, L = !1, R = /* @__PURE__ */ new Set(), z = [], B = /* @__PURE__ */ new Map(), V = !1, H = !1, U = (e) => {
264
+ let t = B.get(e);
265
+ t && (B.delete(e), t());
266
+ }, W = (e, t) => {
251
267
  try {
252
268
  e.postMessage({
253
269
  type: "fkn-packages-nack",
@@ -257,26 +273,26 @@ var i = /* @__PURE__ */ e({
257
273
  try {
258
274
  e.close();
259
275
  } catch {}
260
- }, V = async (e, t) => {
276
+ }, G = async (e, t) => {
261
277
  let { port: n, ...r } = e;
262
278
  e.port.addEventListener("message", (t) => {
263
- t.data?.type === "fkn-packages-disconnect" && z(e.port);
279
+ t.data?.type === "fkn-packages-disconnect" && U(e.port);
264
280
  });
265
281
  let i;
266
282
  try {
267
283
  i = await t.createPayload(r);
268
284
  } catch (t) {
269
- throw B(e.port, t instanceof Error ? t.message : "the package failed to produce a connection"), t;
285
+ throw W(e.port, t instanceof Error ? t.message : "the package failed to produce a connection"), t;
270
286
  }
271
- let a = new Promise((t) => I.set(e.port, t)), o = await l(i, e.port);
287
+ let a = new Promise((t) => B.set(e.port, t)), o = await p(i, e.port);
272
288
  t.handler?.({
273
289
  ...r,
274
290
  remote: o,
275
291
  closed: a,
276
292
  port: e.port
277
293
  });
278
- }, H = () => {
279
- L || typeof window > "u" || window.parent === window || (L = !0, window.addEventListener("message", (e) => {
294
+ }, K = () => {
295
+ V || typeof window > "u" || window.parent === window || (V = !0, window.addEventListener("message", (e) => {
280
296
  if (e.source !== window.parent) return;
281
297
  let t = e.data;
282
298
  if (t?.type === "fkn-packages-port") {
@@ -290,38 +306,38 @@ var i = /* @__PURE__ */ e({
290
306
  name: typeof t.name == "string" ? t.name : "",
291
307
  version: typeof t.version == "string" ? t.version : ""
292
308
  };
293
- M ? V(r, M).catch((e) => console.warn("packages.onConnect:", e)) : F.push(r);
309
+ I ? G(r, I).catch((e) => console.warn("packages.onConnect:", e)) : z.push(r);
294
310
  }
295
- if (t?.type === "fkn-packages-close") for (let e of [...I.keys()]) z(e);
311
+ if (t?.type === "fkn-packages-close") for (let e of [...B.keys()]) U(e);
296
312
  if (t?.type === "fkn-packages-visibility") {
297
- N = t.visible === !0;
298
- for (let e of P) try {
299
- e(N);
313
+ L = t.visible === !0;
314
+ for (let e of R) try {
315
+ e(L);
300
316
  } catch {}
301
317
  }
302
318
  }));
303
- }, U = () => {
304
- R || typeof window > "u" || window.parent === window || (R = !0, window.parent.postMessage({ type: "fkn-packages-ready" }, "*"));
305
- }, W = (e, t) => {
319
+ }, q = () => {
320
+ H || typeof window > "u" || window.parent === window || (H = !0, window.parent.postMessage({ type: "fkn-packages-ready" }, "*"));
321
+ }, J = (e, t) => {
306
322
  if (typeof window > "u") return { unsubscribe: () => {} };
307
- H();
323
+ K();
308
324
  let n = {
309
325
  createPayload: e,
310
326
  handler: t
311
327
  };
312
- for (M = n, U(); F.length && M === n;) V(F.shift(), n).catch((e) => console.warn("packages.onConnect:", e));
328
+ for (I = n, q(); z.length && I === n;) G(z.shift(), n).catch((e) => console.warn("packages.onConnect:", e));
313
329
  return { unsubscribe: () => {
314
- M === n && (M = null);
330
+ I === n && (I = null);
315
331
  } };
316
- }, G = () => N, K = (e) => {
332
+ }, Y = () => L, X = (e) => {
317
333
  if (typeof window > "u") return { unsubscribe: () => {} };
318
- H(), P.add(e);
334
+ K(), R.add(e);
319
335
  try {
320
- e(N);
336
+ e(L);
321
337
  } catch {}
322
338
  return { unsubscribe: () => {
323
- P.delete(e);
339
+ R.delete(e);
324
340
  } };
325
341
  };
326
342
  //#endregion
327
- export { j as attach, T as connect, w as hide, p as install, G as isVisible, m as list, A as mount, W as onConnect, K as onVisibilityChange, f as pick, d as search, C as show, i as t, h as uninstall };
343
+ export { F as attach, k as connect, O as hide, _ as install, Y as isVisible, v as list, P as mount, J as onConnect, X as onVisibilityChange, g as pick, h as search, D as show, c as t, y as uninstall };
@@ -0,0 +1,69 @@
1
+ import { r as e } from "./api-BqRjtWm_.js";
2
+ import { t } from "./busy-Bp1E3JPT.js";
3
+ //#region src/lib/fkn-target.ts
4
+ var n = ["fkn.app", "fkn.dev"], r = (e) => {
5
+ let t = typeof e == "string" ? e : e instanceof URL ? e.href : e.url, r;
6
+ try {
7
+ r = new URL(t);
8
+ } catch {
9
+ return;
10
+ }
11
+ let i = r.hostname;
12
+ if (n.some((e) => i === e || i.endsWith(`.${e}`))) throw Error(`fetch refuses FKN platform domains (${i})`);
13
+ }, i = typeof FinalizationRegistry > "u" ? void 0 : new FinalizationRegistry((e) => e()), a = (e) => {
14
+ let n = e.body;
15
+ if (!n) return e;
16
+ let r = t("streamed response"), a = n.getReader(), o = new ReadableStream({
17
+ pull: async (e) => {
18
+ try {
19
+ let { done: t, value: n } = await a.read();
20
+ if (t) {
21
+ r(), e.close();
22
+ return;
23
+ }
24
+ e.enqueue(n);
25
+ } catch (t) {
26
+ r(), e.error(t);
27
+ }
28
+ },
29
+ cancel: async (e) => {
30
+ r(), await a.cancel(e).catch(() => {});
31
+ }
32
+ }), s = new Response(o, {
33
+ status: e.status,
34
+ statusText: e.statusText,
35
+ headers: e.headers
36
+ });
37
+ return i?.register(s, r), s;
38
+ }, o = async (e) => {
39
+ if (e != null) return typeof e == "string" || e instanceof ArrayBuffer || ArrayBuffer.isView(e) ? e : new Request("https://body.invalid/", {
40
+ method: "POST",
41
+ body: e,
42
+ duplex: "half"
43
+ }).arrayBuffer();
44
+ }, s = async (e) => {
45
+ if (e.method === "GET" || e.method === "HEAD") return;
46
+ let t = await e.clone().arrayBuffer();
47
+ return t.byteLength ? t : void 0;
48
+ }, c = async (t, n) => {
49
+ if (r(t), typeof t == "object" && t && !(t instanceof URL) && typeof t.url == "string") {
50
+ let r = t, i = {};
51
+ r.headers.forEach((e, t) => {
52
+ i[t] = e;
53
+ });
54
+ let c = await o(n?.body === void 0 ? await s(r) : n.body);
55
+ return e.then((e) => e.cloud.fetch(r.url, {
56
+ ...n,
57
+ method: n?.method ?? r.method,
58
+ headers: n?.headers ?? i,
59
+ body: c
60
+ })).then(a);
61
+ }
62
+ let i = t instanceof URL ? t.href : t, c = await o(n?.body);
63
+ return e.then((e) => e.cloud.fetch(i, n?.body === void 0 ? n : {
64
+ ...n,
65
+ body: c
66
+ })).then(a);
67
+ };
68
+ //#endregion
69
+ export { r as n, c as t };
@@ -1,4 +1,4 @@
1
- import { t as Resolvers } from "./api-CyWF0RUj.js";
1
+ import { t as Resolvers } from "./api-B0qRPCcX.js";
2
2
 
3
3
  //#region src/lib/proxy.d.ts
4
4
  type ProxyFetch = Resolvers['cloud']['fetch'];
@@ -0,0 +1 @@
1
+ const e=require("./api-CKO3Hw-O.cjs"),t=require("./busy-Dv8wzE5M.cjs");var n=[`fkn.app`,`fkn.dev`],r=e=>{let t=typeof e==`string`?e:e instanceof URL?e.href:e.url,r;try{r=new URL(t)}catch{return}let i=r.hostname;if(n.some(e=>i===e||i.endsWith(`.${e}`)))throw Error(`fetch refuses FKN platform domains (${i})`)},i=typeof FinalizationRegistry>`u`?void 0:new FinalizationRegistry(e=>e()),a=e=>{let n=e.body;if(!n)return e;let r=t.t(`streamed response`),a=n.getReader(),o=new ReadableStream({pull:async e=>{try{let{done:t,value:n}=await a.read();if(t){r(),e.close();return}e.enqueue(n)}catch(t){r(),e.error(t)}},cancel:async e=>{r(),await a.cancel(e).catch(()=>{})}}),s=new Response(o,{status:e.status,statusText:e.statusText,headers:e.headers});return i?.register(s,r),s},o=async e=>{if(e!=null)return typeof e==`string`||e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e:new Request(`https://body.invalid/`,{method:`POST`,body:e,duplex:`half`}).arrayBuffer()},s=async e=>{if(e.method===`GET`||e.method===`HEAD`)return;let t=await e.clone().arrayBuffer();return t.byteLength?t:void 0},c=async(t,n)=>{if(r(t),typeof t==`object`&&t&&!(t instanceof URL)&&typeof t.url==`string`){let r=t,i={};r.headers.forEach((e,t)=>{i[t]=e});let c=await o(n?.body===void 0?await s(r):n.body);return e.r.then(e=>e.cloud.fetch(r.url,{...n,method:n?.method??r.method,headers:n?.headers??i,body:c})).then(a)}let i=t instanceof URL?t.href:t,c=await o(n?.body);return e.r.then(e=>e.cloud.fetch(i,n?.body===void 0?n:{...n,body:c})).then(a)};Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return c}});
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
- import { t } from "./api-DQ-V4Lls.js";
2
+ import { r as t } from "./api-BqRjtWm_.js";
3
3
  //#endregion
4
4
  //#region src/api/storage.ts
5
5
  var n = "FKN_STORAGE_NOT_FOUND", r = /* @__PURE__ */ e({
@@ -1 +1 @@
1
- const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-kHMHDGar.cjs");var n=`FKN_STORAGE_NOT_FOUND`,r=e.t({StorageLockedError:()=>i,StorageNotFoundError:()=>a,availability:()=>p,available:()=>c,encryption:()=>y,isNotFound:()=>o,list:()=>m,quota:()=>h,readFile:()=>g,remove:()=>v,unlock:()=>b,writeFile:()=>_}),i=class extends Error{code=`FKN_E2E_LOCKED`;constructor(){super(`storage locked: this account stores encrypted data, unlock it from the FKN card or unlock()`)}},a=class extends Error{code=n;constructor(e=`storage: no object at that path`){super(e)}},o=e=>e?.code===n,s=e=>{throw e instanceof Error&&e.message.startsWith(`fkn:e2e-locked`)?new i:o(e)||e instanceof Error&&(/^not found$/i.test(e.message)||/\(404\)$/.test(e.message))?new a(e.message):e},c=()=>t.t.then(e=>e.cloud.fs.available()).catch(()=>!1),l=8e3,u=1e3,d=!1,f=async()=>{let e=(await t.t).cloud.fs;return typeof e.availability==`function`?e.availability():await e.available()?`connected`:`disconnected`},p=async()=>{let e=d?u:l,t=await new Promise(t=>{let n=setTimeout(()=>t(`timeout`),e);f().then(e=>{clearTimeout(n),t(e)},()=>{clearTimeout(n),t(`unknown`)})});return t===`timeout`?(d=!0,`unknown`):(d=!1,t)},m=()=>t.t.then(e=>e.cloud.fs.list()),h=()=>t.t.then(e=>e.cloud.fs.quota()),g=async e=>{let n=await(await t.t).cloud.fs.readFile(e).catch(s);return new Blob([n])},_=async(e,n,r)=>{let i=await t.t,a=n instanceof Blob?new Uint8Array(await n.arrayBuffer()):n;await i.cloud.fs.writeFile(e,a,r?.contentType??null).catch(s)},v=e=>t.t.then(t=>t.cloud.fs.remove(e)).then(()=>void 0),y=()=>t.t.then(e=>e.cloud.fs.encryption()),b=()=>t.t.then(e=>e.cloud.fs.unlock());Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return r}});
1
+ const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-CKO3Hw-O.cjs");var n=`FKN_STORAGE_NOT_FOUND`,r=e.t({StorageLockedError:()=>i,StorageNotFoundError:()=>a,availability:()=>p,available:()=>c,encryption:()=>y,isNotFound:()=>o,list:()=>m,quota:()=>h,readFile:()=>g,remove:()=>v,unlock:()=>b,writeFile:()=>_}),i=class extends Error{code=`FKN_E2E_LOCKED`;constructor(){super(`storage locked: this account stores encrypted data, unlock it from the FKN card or unlock()`)}},a=class extends Error{code=n;constructor(e=`storage: no object at that path`){super(e)}},o=e=>e?.code===n,s=e=>{throw e instanceof Error&&e.message.startsWith(`fkn:e2e-locked`)?new i:o(e)||e instanceof Error&&(/^not found$/i.test(e.message)||/\(404\)$/.test(e.message))?new a(e.message):e},c=()=>t.r.then(e=>e.cloud.fs.available()).catch(()=>!1),l=8e3,u=1e3,d=!1,f=async()=>{let e=(await t.r).cloud.fs;return typeof e.availability==`function`?e.availability():await e.available()?`connected`:`disconnected`},p=async()=>{let e=d?u:l,t=await new Promise(t=>{let n=setTimeout(()=>t(`timeout`),e);f().then(e=>{clearTimeout(n),t(e)},()=>{clearTimeout(n),t(`unknown`)})});return t===`timeout`?(d=!0,`unknown`):(d=!1,t)},m=()=>t.r.then(e=>e.cloud.fs.list()),h=()=>t.r.then(e=>e.cloud.fs.quota()),g=async e=>{let n=await(await t.r).cloud.fs.readFile(e).catch(s);return new Blob([n])},_=async(e,n,r)=>{let i=await t.r,a=n instanceof Blob?new Uint8Array(await n.arrayBuffer()):n;await i.cloud.fs.writeFile(e,a,r?.contentType??null).catch(s)},v=e=>t.r.then(t=>t.cloud.fs.remove(e)).then(()=>void 0),y=()=>t.r.then(e=>e.cloud.fs.encryption()),b=()=>t.r.then(e=>e.cloud.fs.unlock());Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return r}});