@fkn/lib 0.9.8 → 0.9.10

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 (61) hide show
  1. package/account.cjs +1 -1
  2. package/account.js +1 -1
  3. package/{api-BU8zNmQI.js → api-B53pjQqI.js} +45 -38
  4. package/{api-BdGpFv2D.d.ts → api-Dn793vCK.d.ts} +6 -3
  5. package/api-dp9SlXVw.cjs +1 -0
  6. package/cloud/dgram.cjs +1 -1
  7. package/cloud/dgram.js +1 -1
  8. package/cloud/fetch.cjs +1 -1
  9. package/cloud/fetch.d.ts +1 -1
  10. package/cloud/fetch.js +1 -1
  11. package/cloud/fs.cjs +1 -1
  12. package/cloud/fs.js +1 -1
  13. package/cloud/net.cjs +1 -1
  14. package/cloud/net.d.ts +1 -1
  15. package/cloud/net.js +1 -1
  16. package/{cloud-DZzkfeQi.cjs → cloud-BeDLKtWQ.cjs} +1 -1
  17. package/{cloud-C002L8iN.d.ts → cloud-DJARSquk.d.ts} +2 -2
  18. package/{cloud-OAvwgd_r.js → cloud-z1HEs2sx.js} +4 -4
  19. package/cloud.cjs +1 -1
  20. package/cloud.d.ts +3 -3
  21. package/cloud.js +4 -4
  22. package/{dgram-ocGNUMpo.cjs → dgram-Bsqy2Smh.cjs} +1 -1
  23. package/{dgram-DNbgOMoK.js → dgram-u3bxngZw.js} +1 -1
  24. package/dgram.cjs +1 -1
  25. package/dgram.d.ts +1 -1
  26. package/dgram.js +1 -1
  27. package/dns.cjs +1 -1
  28. package/dns.js +1 -1
  29. package/{extension-DmKxv-br.cjs → extension-CPtq-Ehy.cjs} +1 -1
  30. package/{extension-DQZmGSuX.js → extension-JM3WFAy9.js} +2 -2
  31. package/extension.cjs +1 -1
  32. package/extension.js +1 -1
  33. package/fs/promises.cjs +1 -1
  34. package/fs/promises.js +1 -1
  35. package/{fs-D-pDr8fW.cjs → fs-D6ebMpHf.cjs} +1 -1
  36. package/{fs-BYMGoFir.js → fs-D95VtxiL.js} +2 -2
  37. package/fs.cjs +1 -1
  38. package/fs.js +1 -1
  39. package/http.cjs +1 -1
  40. package/http.d.ts +1 -1
  41. package/http.js +1 -1
  42. package/index.cjs +1 -1
  43. package/index.d.ts +3 -3
  44. package/index.js +6 -6
  45. package/{net-uN5eXX3L.cjs → net-8e2vCDx-.cjs} +1 -1
  46. package/{net-Bi82weSE.js → net-D4bNkPEp.js} +1 -1
  47. package/{net-BVC0ImHf.d.ts → net-Q7SIsTHJ.d.ts} +1 -1
  48. package/net.cjs +1 -1
  49. package/net.d.ts +1 -1
  50. package/net.js +1 -1
  51. package/package.json +1 -1
  52. package/{packages-DU1D-pr4.d.ts → packages-B03jnjRB.d.ts} +51 -4
  53. package/packages.cjs +1 -1
  54. package/packages.d.ts +2 -2
  55. package/packages.js +192 -87
  56. package/{proxy-CsFzuq-x.d.ts → proxy-DasMm1_q.d.ts} +1 -1
  57. package/{proxy-CMtPeuvd.js → proxy-iMrHM2Ek.js} +1 -1
  58. package/{proxy-DbcJMUcm.cjs → proxy-vg2oj6bT.cjs} +1 -1
  59. package/{storage-BVWaXq8X.js → storage-DctWaXn9.js} +1 -1
  60. package/{storage-DG1Ac1FK.cjs → storage-Dk5EOZtT.cjs} +1 -1
  61. package/api-C9Mh5v0z.cjs +0 -1
package/packages.js CHANGED
@@ -1,46 +1,47 @@
1
1
  import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
- import { r as t, t as n } from "./api-BU8zNmQI.js";
2
+ import { r as t, t as n } from "./api-B53pjQqI.js";
3
3
  import { expose as r } from "osra";
4
4
  //#region src/lib/packages.ts
5
5
  var i = /* @__PURE__ */ e({
6
- attach: () => w,
7
- connect: () => C,
8
- hide: () => S,
9
- install: () => m,
10
- isVisible: () => R,
11
- list: () => h,
12
- onConnect: () => L,
13
- onVisibilityChange: () => z,
14
- pick: () => p,
15
- search: () => f,
16
- show: () => x,
17
- uninstall: () => g
18
- }), a = "https://fkn.app", o = "fkn-packages-connection", s = 3e4, c = (e, t) => Object.assign(Error(t), { code: e }), l = async () => {
19
- if (!t) throw c("unavailable", "packages: no FKN transport in this realm - use relayWorker to bridge workers");
6
+ attach: () => k,
7
+ connect: () => T,
8
+ hide: () => w,
9
+ install: () => p,
10
+ isVisible: () => U,
11
+ list: () => m,
12
+ mount: () => O,
13
+ onConnect: () => H,
14
+ onVisibilityChange: () => W,
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");
20
21
  return n;
21
- }, u = (e, t, n) => r(e ?? {}, {
22
+ }, l = (e, t, n) => r(e ?? {}, {
22
23
  transport: t,
23
- key: o,
24
+ key: a,
24
25
  unregisterSignal: n
25
- }), d = async (e, t, n = {}) => {
26
+ }), u = async (e, t, n = {}) => {
26
27
  let { signal: r, closed: i } = n;
27
- if (r?.aborted) throw c("unavailable", "packages.connect: aborted before connecting");
28
+ if (r?.aborted) throw s("unavailable", "packages.connect: aborted before connecting");
28
29
  let a = new AbortController();
29
30
  r && r.addEventListener("abort", () => a.abort(r.reason), { once: !0 });
30
- let o = new AbortController(), l = new Promise((e, n) => {
31
- let a = setTimeout(() => n(c("timeout", "packages.connect: the package did not complete the connection")), s);
32
- o.signal.addEventListener("abort", () => clearTimeout(a), { once: !0 }), t.addEventListener("message", (e) => {
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) => {
33
34
  if (e.data?.type === "fkn-packages-nack") {
34
35
  let t = e.data.message;
35
- n(c("unavailable", typeof t == "string" && t ? t : "packages.connect: the package refused the connection"));
36
+ n(s("unavailable", typeof t == "string" && t ? t : "packages.connect: the package refused the connection"));
36
37
  }
37
- }, { signal: o.signal }), t.start(), r && r.addEventListener("abort", () => n(c("unavailable", "packages.connect: aborted before connecting")), {
38
+ }, { signal: c.signal }), t.start(), r && r.addEventListener("abort", () => n(s("unavailable", "packages.connect: aborted before connecting")), {
38
39
  once: !0,
39
- signal: o.signal
40
- }), i?.then(() => n(c("unavailable", "packages.connect: the package closed before connecting")));
40
+ signal: c.signal
41
+ }), i?.then(() => n(s("unavailable", "packages.connect: the package closed before connecting")));
41
42
  });
42
43
  try {
43
- return await Promise.race([u(e, t, a.signal), l]);
44
+ return await Promise.race([l(e, t, a.signal), u]);
44
45
  } catch (e) {
45
46
  a.abort(e);
46
47
  try {
@@ -48,50 +49,90 @@ var i = /* @__PURE__ */ e({
48
49
  } catch {}
49
50
  throw e;
50
51
  } finally {
51
- o.abort();
52
+ c.abort();
52
53
  }
53
- }, f = async (e) => {
54
- let t = await (await l()).packages.search(e);
55
- if ("error" in t) throw c(t.error, t.message);
54
+ }, d = async (e) => {
55
+ let t = await (await c()).packages.search(e);
56
+ if ("error" in t) throw s(t.error, t.message);
56
57
  return t.results;
57
- }, p = async (e, t) => {
58
- let n = await (await l()).packages.pick(e, t);
59
- if ("error" in n) throw c(n.error, n.message);
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);
60
61
  return "declined" in n ? [] : n.results;
61
- }, m = async (e, t) => {
62
- let n = await (await l()).packages.install(e, t);
63
- if ("error" in n) throw c(n.error, n.message);
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);
64
65
  return "declined" in n ? null : n.installed;
65
- }, h = async () => (await (await l()).packages.list()).results, g = async (e) => {
66
- let t = await (await l()).packages.uninstall(e);
67
- if ("error" in t) throw c(t.error, t.message);
68
- }, _ = (e, t) => !!e && e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height, v = ({ x: e, y: t, width: n, height: r }) => ({
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 }) => ({
69
70
  x: Math.round(e),
70
71
  y: Math.round(t),
71
72
  width: Math.round(n),
72
73
  height: Math.round(r)
73
- }), y = /* @__PURE__ */ new Map(), b = async (e, t) => {
74
- let n = y.get(e);
74
+ }), _ = (e, t) => {
75
+ let n = Math.max(e.x, t.x), r = Math.max(e.y, t.y);
76
+ return {
77
+ x: n,
78
+ y: r,
79
+ width: Math.max(0, Math.min(e.x + e.width, t.x + t.width) - n),
80
+ height: Math.max(0, Math.min(e.y + e.height, t.y + t.height) - r)
81
+ };
82
+ }, v = (e, t) => {
83
+ let n = t;
84
+ for (let t = e.parentElement; t; t = t.parentElement) {
85
+ 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
+ }
88
+ return n;
89
+ }, y = (e) => {
90
+ let t = getComputedStyle(e), n = [
91
+ t.borderTopLeftRadius,
92
+ t.borderTopRightRadius,
93
+ t.borderBottomRightRadius,
94
+ t.borderBottomLeftRadius
95
+ ];
96
+ if (n.some((e) => e.includes("%") || e.includes(" "))) return;
97
+ let r = n.map((e) => {
98
+ let t = Number.parseFloat(e);
99
+ return Number.isFinite(t) && t > 0 ? t : 0;
100
+ });
101
+ return r.some((e) => e > 0) ? r : void 0;
102
+ }, b = (e, t) => {
103
+ if (!e) return !1;
104
+ 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
+ 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);
75
108
  if (n) {
76
109
  for (let e of n) t && e.element !== t || (e.stop(), n.delete(e));
77
110
  if (n.size > 0) return;
78
- y.delete(e);
111
+ x.delete(e);
79
112
  }
80
- let r = await (await l()).packages.hide(e);
81
- if ("error" in r) throw c(r.error, r.message);
82
- }, x = async (e, t) => {
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) => {
83
116
  let { element: n, rect: r } = t;
84
- if (!n && !r) throw c("invalid", "packages.show: pass an element or a rect");
85
- let i = (await l()).packages, a = () => v(n ? n.getBoundingClientRect() : r), o = !0, s, u = 0, d = async (t) => {
86
- s = 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());
121
+ return {
122
+ rect: e,
123
+ clip: v(n, e),
124
+ radius: y(n)
125
+ };
126
+ }, o = !0, l, u = 0, d = async (t) => {
127
+ l = t;
87
128
  let n = await i.show(e, t);
88
- if ("error" in n) throw o = !1, c(n.error, n.message);
129
+ if ("error" in n) throw o = !1, s(n.error, n.message);
89
130
  };
90
131
  await d(a());
91
132
  let f = () => {
92
133
  if (!o) return;
93
134
  let e = a();
94
- _(s, e) || d(e).catch(() => {}), u = requestAnimationFrame(f);
135
+ b(l, e) || d(e).catch(() => {}), u = requestAnimationFrame(f);
95
136
  };
96
137
  n && (u = requestAnimationFrame(f));
97
138
  let p = {
@@ -99,26 +140,26 @@ var i = /* @__PURE__ */ e({
99
140
  stop: () => {
100
141
  o = !1, cancelAnimationFrame(u);
101
142
  }
102
- }, m = y.get(e) ?? /* @__PURE__ */ new Set();
103
- return m.add(p), y.set(e, m), {
143
+ }, m = x.get(e) ?? /* @__PURE__ */ new Set();
144
+ return m.add(p), x.set(e, m), {
104
145
  hide: () => {
105
- b(e, n).catch(() => {});
146
+ S(e, n).catch(() => {});
106
147
  },
107
148
  refresh: () => {
108
149
  if (!o) return;
109
150
  let e = a();
110
- _(s, e) || d(e).catch(() => {});
151
+ b(l, e) || d(e).catch(() => {});
111
152
  }
112
153
  };
113
- }, S = async (e, t = {}) => b(e, t.element), C = (async (e, t = {}) => {
114
- let n = await (await l()).packages.connect(e, { protocol: t.protocol });
115
- if ("error" in n) throw c(n.error, n.message);
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);
116
157
  let { port: r, closed: i } = n;
117
158
  if (t.raw) return {
118
159
  closed: i,
119
160
  port: r
120
161
  };
121
- let a = await d(t.payload, r, {
162
+ let a = await u(t.payload, r, {
122
163
  signal: t.signal,
123
164
  closed: i
124
165
  });
@@ -131,10 +172,74 @@ var i = /* @__PURE__ */ e({
131
172
  closed: i,
132
173
  port: r
133
174
  };
134
- }), w = (e, t, n) => d(t, e, { signal: n?.signal }), T = null, E = !1, D = /* @__PURE__ */ new Set(), O = [], k = /* @__PURE__ */ new Map(), A = !1, j = !1, M = (e) => {
135
- let t = k.get(e);
136
- t && (k.delete(e), t());
137
- }, N = (e, t) => {
175
+ }), E = 3e4, D = (e, t) => new Promise((n, r) => {
176
+ let i = (e) => {
177
+ clearTimeout(o), window.removeEventListener("message", a), e ? r(e) : n();
178
+ }, a = (n) => {
179
+ if (n.source !== e.contentWindow || n.origin !== t) return;
180
+ let r = n.data;
181
+ if (r?.type === "fkn-packages-ready") return i();
182
+ r?.type === "fkn-packages-failed" && i(s("unavailable", typeof r.message == "string" && r.message ? r.message : "packages.mount: the package failed to boot"));
183
+ }, o = setTimeout(() => i(s("timeout", "packages.mount: the package did not register a connection handler")), E);
184
+ window.addEventListener("message", a);
185
+ }), O = async (e, t) => {
186
+ let { element: n } = t;
187
+ if (!n) throw s("invalid", "packages.mount: pass an element to mount into");
188
+ let r = await (await c()).packages.frame(e);
189
+ if ("error" in r) throw s(r.error, r.message);
190
+ let i = document.createElement("iframe");
191
+ i.setAttribute("sandbox", "allow-scripts allow-same-origin"), i.setAttribute("allow", "cross-origin-isolated"), i.style.border = "none", i.style.width = "100%", i.style.height = "100%", i.src = r.url, n.append(i);
192
+ let a = { done: !1 }, o = () => {}, l = new Promise((e) => {
193
+ o = e;
194
+ }), d = () => {
195
+ if (!a.done) {
196
+ a.done = !0;
197
+ try {
198
+ i.contentWindow?.postMessage({ type: "fkn-packages-close" }, r.origin);
199
+ } catch {}
200
+ i.remove(), o();
201
+ }
202
+ };
203
+ try {
204
+ await D(i, r.origin);
205
+ } catch (e) {
206
+ throw d(), e;
207
+ }
208
+ let f = new MessageChannel(), p = i.contentWindow;
209
+ if (!p) throw d(), s("unavailable", "packages.mount: the frame was detached before it could connect");
210
+ p.postMessage({
211
+ type: "fkn-packages-port",
212
+ from: r.from,
213
+ protocol: t.protocol,
214
+ uri: r.uri,
215
+ name: r.name,
216
+ version: r.version
217
+ }, r.origin, [f.port2]);
218
+ try {
219
+ p.postMessage({
220
+ type: "fkn-packages-visibility",
221
+ visible: !0
222
+ }, r.origin);
223
+ } catch {}
224
+ return t.raw ? {
225
+ closed: l,
226
+ port: f.port1,
227
+ frame: i,
228
+ unmount: d
229
+ } : {
230
+ remote: await u(t.payload, f.port1, {
231
+ signal: t.signal,
232
+ closed: l
233
+ }),
234
+ closed: l,
235
+ port: f.port1,
236
+ frame: i,
237
+ unmount: d
238
+ };
239
+ }, k = (e, t, n) => u(t, e, { signal: n?.signal }), A = null, j = !1, M = /* @__PURE__ */ new Set(), N = [], P = /* @__PURE__ */ new Map(), F = !1, I = !1, L = (e) => {
240
+ let t = P.get(e);
241
+ t && (P.delete(e), t());
242
+ }, R = (e, t) => {
138
243
  try {
139
244
  e.postMessage({
140
245
  type: "fkn-packages-nack",
@@ -144,27 +249,27 @@ var i = /* @__PURE__ */ e({
144
249
  try {
145
250
  e.close();
146
251
  } catch {}
147
- }, P = async (e, t) => {
252
+ }, z = async (e, t) => {
148
253
  let { port: n, ...r } = e;
149
254
  e.port.addEventListener("message", (t) => {
150
- t.data?.type === "fkn-packages-disconnect" && M(e.port);
255
+ t.data?.type === "fkn-packages-disconnect" && L(e.port);
151
256
  });
152
257
  let i;
153
258
  try {
154
259
  i = await t.createPayload(r);
155
260
  } catch (t) {
156
- throw N(e.port, t instanceof Error ? t.message : "the package failed to produce a connection"), t;
261
+ throw R(e.port, t instanceof Error ? t.message : "the package failed to produce a connection"), t;
157
262
  }
158
- let a = new Promise((t) => k.set(e.port, t)), o = await u(i, e.port);
263
+ let a = new Promise((t) => P.set(e.port, t)), o = await l(i, e.port);
159
264
  t.handler?.({
160
265
  ...r,
161
266
  remote: o,
162
267
  closed: a,
163
268
  port: e.port
164
269
  });
165
- }, F = () => {
166
- A || typeof window > "u" || window.parent === window || (A = !0, window.addEventListener("message", (e) => {
167
- if (e.source !== window.parent || e.origin !== a) return;
270
+ }, B = () => {
271
+ F || typeof window > "u" || window.parent === window || (F = !0, window.addEventListener("message", (e) => {
272
+ if (e.source !== window.parent) return;
168
273
  let t = e.data;
169
274
  if (t?.type === "fkn-packages-port") {
170
275
  let n = e.ports[0];
@@ -177,38 +282,38 @@ var i = /* @__PURE__ */ e({
177
282
  name: typeof t.name == "string" ? t.name : "",
178
283
  version: typeof t.version == "string" ? t.version : ""
179
284
  };
180
- T ? P(r, T).catch((e) => console.warn("packages.onConnect:", e)) : O.push(r);
285
+ A ? z(r, A).catch((e) => console.warn("packages.onConnect:", e)) : N.push(r);
181
286
  }
182
- if (t?.type === "fkn-packages-close") for (let e of [...k.keys()]) M(e);
287
+ if (t?.type === "fkn-packages-close") for (let e of [...P.keys()]) L(e);
183
288
  if (t?.type === "fkn-packages-visibility") {
184
- E = t.visible === !0;
185
- for (let e of D) try {
186
- e(E);
289
+ j = t.visible === !0;
290
+ for (let e of M) try {
291
+ e(j);
187
292
  } catch {}
188
293
  }
189
294
  }));
190
- }, I = () => {
191
- j || typeof window > "u" || window.parent === window || (j = !0, window.parent.postMessage({ type: "fkn-packages-ready" }, a));
192
- }, L = (e, t) => {
295
+ }, V = () => {
296
+ I || typeof window > "u" || window.parent === window || (I = !0, window.parent.postMessage({ type: "fkn-packages-ready" }, "*"));
297
+ }, H = (e, t) => {
193
298
  if (typeof window > "u") return { unsubscribe: () => {} };
194
- F();
299
+ B();
195
300
  let n = {
196
301
  createPayload: e,
197
302
  handler: t
198
303
  };
199
- for (T = n, I(); O.length && T === n;) P(O.shift(), n).catch((e) => console.warn("packages.onConnect:", e));
304
+ for (A = n, V(); N.length && A === n;) z(N.shift(), n).catch((e) => console.warn("packages.onConnect:", e));
200
305
  return { unsubscribe: () => {
201
- T === n && (T = null);
306
+ A === n && (A = null);
202
307
  } };
203
- }, R = () => E, z = (e) => {
308
+ }, U = () => j, W = (e) => {
204
309
  if (typeof window > "u") return { unsubscribe: () => {} };
205
- F(), D.add(e);
310
+ B(), M.add(e);
206
311
  try {
207
- e(E);
312
+ e(j);
208
313
  } catch {}
209
314
  return { unsubscribe: () => {
210
- D.delete(e);
315
+ M.delete(e);
211
316
  } };
212
317
  };
213
318
  //#endregion
214
- export { w as attach, C as connect, S as hide, m as install, R as isVisible, h as list, L as onConnect, z as onVisibilityChange, p as pick, f as search, x as show, i as t, g as uninstall };
319
+ export { k as attach, T as connect, w as hide, p as install, U as isVisible, m as list, O as mount, H as onConnect, W as onVisibilityChange, f as pick, d as search, C as show, i as t, h as uninstall };
@@ -1,4 +1,4 @@
1
- import { t as Resolvers } from "./api-BdGpFv2D.js";
1
+ import { t as Resolvers } from "./api-Dn793vCK.js";
2
2
 
3
3
  //#region src/lib/proxy.d.ts
4
4
  type ProxyFetch = Resolvers['cloud']['fetch'];
@@ -1,4 +1,4 @@
1
- import { t as e } from "./api-BU8zNmQI.js";
1
+ import { t as e } from "./api-B53pjQqI.js";
2
2
  //#region src/lib/fkn-target.ts
3
3
  var t = ["fkn.app", "fkn.dev"], n = (e) => {
4
4
  let n = typeof e == "string" ? e : e instanceof URL ? e.href : e.url, r;
@@ -1 +1 @@
1
- const e=require("./api-C9Mh5v0z.cjs");var t=[`fkn.app`,`fkn.dev`],n=e=>{let n=typeof e==`string`?e:e instanceof URL?e.href:e.url,r;try{r=new URL(n)}catch{return}let i=r.hostname;if(t.some(e=>i===e||i.endsWith(`.${e}`)))throw Error(`fetch refuses FKN platform domains (${i})`)},r=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()},i=async e=>{if(e.method===`GET`||e.method===`HEAD`)return;let t=await e.clone().arrayBuffer();return t.byteLength?t:void 0},a=async(t,a)=>{if(n(t),typeof t==`object`&&t&&!(t instanceof URL)&&typeof t.url==`string`){let n=t,o={};n.headers.forEach((e,t)=>{o[t]=e});let s=await r(a?.body===void 0?await i(n):a.body);return e.t.then(e=>e.cloud.fetch(n.url,{...a,method:a?.method??n.method,headers:a?.headers??o,body:s}))}let o=t instanceof URL?t.href:t,s=await r(a?.body);return e.t.then(e=>e.cloud.fetch(o,a?.body===void 0?a:{...a,body:s}))};Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
1
+ const e=require("./api-dp9SlXVw.cjs");var t=[`fkn.app`,`fkn.dev`],n=e=>{let n=typeof e==`string`?e:e instanceof URL?e.href:e.url,r;try{r=new URL(n)}catch{return}let i=r.hostname;if(t.some(e=>i===e||i.endsWith(`.${e}`)))throw Error(`fetch refuses FKN platform domains (${i})`)},r=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()},i=async e=>{if(e.method===`GET`||e.method===`HEAD`)return;let t=await e.clone().arrayBuffer();return t.byteLength?t:void 0},a=async(t,a)=>{if(n(t),typeof t==`object`&&t&&!(t instanceof URL)&&typeof t.url==`string`){let n=t,o={};n.headers.forEach((e,t)=>{o[t]=e});let s=await r(a?.body===void 0?await i(n):a.body);return e.t.then(e=>e.cloud.fetch(n.url,{...a,method:a?.method??n.method,headers:a?.headers??o,body:s}))}let o=t instanceof URL?t.href:t,s=await r(a?.body);return e.t.then(e=>e.cloud.fetch(o,a?.body===void 0?a:{...a,body:s}))};Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
- import { t } from "./api-BU8zNmQI.js";
2
+ import { t } from "./api-B53pjQqI.js";
3
3
  //#endregion
4
4
  //#region src/lib/storage.ts
5
5
  var n = /* @__PURE__ */ e({
@@ -1 +1 @@
1
- const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-C9Mh5v0z.cjs");var n=e.t({StorageLockedError:()=>r,available:()=>a,encryption:()=>d,list:()=>o,quota:()=>s,readFile:()=>c,remove:()=>u,unlock:()=>f,writeFile:()=>l}),r=class extends Error{code=`FKN_E2E_LOCKED`;constructor(){super(`storage locked: this app stores encrypted data, unlock it from the FKN card or unlock()`)}},i=e=>{throw e instanceof Error&&e.message.startsWith(`fkn:e2e-locked`)?new r:e},a=()=>t.t.then(e=>e.cloud.fs.available()).catch(()=>!1),o=()=>t.t.then(e=>e.cloud.fs.list()),s=()=>t.t.then(e=>e.cloud.fs.quota()),c=async e=>{let n=await(await t.t).cloud.fs.readFile(e).catch(i);return new Blob([n])},l=async(e,n,r)=>{let a=await t.t,o=n instanceof Blob?new Uint8Array(await n.arrayBuffer()):n;await a.cloud.fs.writeFile(e,o,r?.contentType??null).catch(i)},u=e=>t.t.then(t=>t.cloud.fs.remove(e)).then(()=>void 0),d=()=>t.t.then(e=>e.cloud.fs.encryption()),f=()=>t.t.then(e=>e.cloud.fs.unlock());Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return l}});
1
+ const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-dp9SlXVw.cjs");var n=e.t({StorageLockedError:()=>r,available:()=>a,encryption:()=>d,list:()=>o,quota:()=>s,readFile:()=>c,remove:()=>u,unlock:()=>f,writeFile:()=>l}),r=class extends Error{code=`FKN_E2E_LOCKED`;constructor(){super(`storage locked: this app stores encrypted data, unlock it from the FKN card or unlock()`)}},i=e=>{throw e instanceof Error&&e.message.startsWith(`fkn:e2e-locked`)?new r:e},a=()=>t.t.then(e=>e.cloud.fs.available()).catch(()=>!1),o=()=>t.t.then(e=>e.cloud.fs.list()),s=()=>t.t.then(e=>e.cloud.fs.quota()),c=async e=>{let n=await(await t.t).cloud.fs.readFile(e).catch(i);return new Blob([n])},l=async(e,n,r)=>{let a=await t.t,o=n instanceof Blob?new Uint8Array(await n.arrayBuffer()):n;await a.cloud.fs.writeFile(e,o,r?.contentType??null).catch(i)},u=e=>t.t.then(t=>t.cloud.fs.remove(e)).then(()=>void 0),d=()=>t.t.then(e=>e.cloud.fs.encryption()),f=()=>t.t.then(e=>e.cloud.fs.unlock());Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return l}});
package/api-C9Mh5v0z.cjs DELETED
@@ -1 +0,0 @@
1
- const e=require("./rolldown-runtime-BIInC43l.cjs");let t=require("osra");var n=32,r=typeof CSS<`u`&&CSS.supports(`clip-path`,`path('M0 0H1V1H0Z')`),i=e=>{let t=e.style;t.setProperty(`display`,`block`,`important`),t.setProperty(`position`,`fixed`,`important`),t.setProperty(`top`,`0`,`important`),t.setProperty(`left`,`0`,`important`),t.setProperty(`width`,`100%`,`important`),t.setProperty(`height`,`100%`,`important`),t.setProperty(`border`,`none`,`important`),t.setProperty(`clip-path`,`inset(100%)`,`important`),t.setProperty(`background`,`transparent`),t.setProperty(`color-scheme`,`normal`),t.setProperty(`z-index`,`2147483647`),e.setAttribute(`title`,`FKN`)},a=({x:e,y:t,width:n,height:r})=>`M${e} ${t}h${n}v${r}h${-n}Z`,o=(e,{modal:t,rects:n})=>{if(!r){let r=t||n.length>0;e.style.setProperty(`pointer-events`,r?`auto`:`none`,`important`),e.style.setProperty(`visibility`,r?`visible`:`hidden`,`important`);return}let i=t?`none`:n.length===0?`inset(100%)`:`path('${n.map(a).join(``)}')`,o=i===`none`||CSS.supports(`clip-path`,i)?i:`inset(100%)`;e.style.setProperty(`clip-path`,o,`important`)},s=e=>{if(typeof e!=`object`||!e)return null;let{x:t,y:n,width:r,height:i}=e;if(![t,n,r,i].every(e=>typeof e==`number`&&Number.isFinite(e)))return null;let a=window.innerWidth,o=window.innerHeight,s=Math.max(0,Math.min(Math.round(t),a)),c=Math.max(0,Math.min(Math.round(n),o)),l=Math.max(s,Math.min(Math.round(t+r),a)),u=Math.max(c,Math.min(Math.round(n+i),o));return{x:s,y:c,width:l-s,height:u-c}},c=e=>{if(typeof e!=`object`||!e)return null;let t=e,r=(Array.isArray(t.rects)?t.rects.slice(0,n):[]).map(s).filter(e=>e!==null&&e.width>0&&e.height>0);return{modal:t.modal===!0,rects:r}},l=null,u=()=>l!==null,d=e=>{i(e),o(e,{modal:!1,rects:[]}),l=e},f=e=>{if(!l)return;let t=c(e);t&&o(l,t)},p=`https://fkn.app`,m=typeof globalThis<`u`&&globalThis.document?globalThis.document:void 0,h=typeof globalThis<`u`&&globalThis.crossOriginIsolated===!0,g=`${p}/api${h?`?coi=1`:``}`,_=`fkn-api-port`,v=`fkn-api-port-ack`,y=2e3,b=()=>{if(!m||typeof window>`u`||window.parent===window)return Promise.resolve(void 0);let e;try{e=window.parent}catch{return Promise.resolve(void 0)}let t=new MessageChannel;return new Promise(n=>{let r=e=>{if(clearTimeout(a),t.port1.removeEventListener(`message`,i),!e)try{t.port1.close()}catch{}n(e)},i=e=>{e.data?.type===v&&r(t.port1)},a=setTimeout(()=>r(void 0),y);t.port1.addEventListener(`message`,i),t.port1.start();try{e.postMessage({type:_},p,[t.port2])}catch{r(void 0)}})},x,S=()=>{if(x||!m)return x;let e=m.querySelector(`iframe[src="${g}"]`);if(e)x=e;else{let e=m.createElement(`iframe`);h&&e.setAttribute(`allow`,`cross-origin-isolated`),e.src=g,m.body.appendChild(e),x=e}return d(x),x},C=(async()=>{if(!m)return;let e=await b();if(e)return{receive:e,emit:e};let t=S()?.contentWindow;return t?{receive:window,emit:t}:void 0})(),w=()=>x,T=e.t({apiPromise:()=>D,hasTransport:()=>E}),E=typeof window<`u`||typeof self<`u`,D=(async()=>{if(typeof window<`u`)return C;if(typeof self<`u`)return{receive:self,emit:self}})().then(e=>e?(0,t.expose)({},{key:`fkn-api`,transport:e}):new Promise(()=>{}));D.then(e=>{u()&&e.overlay.setHost(f)},()=>{}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return D}});