@fkn/lib 0.9.20 → 0.9.22
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/account.cjs +1 -1
- package/account.js +24 -17
- package/{api-CyWF0RUj.d.ts → api-B0qRPCcX.d.ts} +8 -0
- package/api-BqRjtWm_.js +311 -0
- package/api-CKO3Hw-O.cjs +3 -0
- package/busy-Bp1E3JPT.js +24 -0
- package/busy-Dv8wzE5M.cjs +1 -0
- package/cloud/dgram.cjs +1 -1
- package/cloud/dgram.js +1 -1
- package/cloud/fetch.cjs +1 -1
- package/cloud/fetch.d.ts +1 -1
- package/cloud/fetch.js +1 -1
- package/cloud/fs.cjs +1 -1
- package/cloud/fs.js +2 -2
- package/cloud/net.cjs +1 -1
- package/cloud/net.d.ts +1 -1
- package/cloud/net.js +1 -1
- package/{cloud-C_1Dt_tR.js → cloud-BB6HUD0A.js} +77 -74
- package/{cloud-CQVtRvcI.d.ts → cloud-BTpJn4jy.d.ts} +2 -2
- package/cloud-CnS0FeRB.cjs +1 -0
- package/cloud.cjs +1 -1
- package/cloud.d.ts +3 -3
- package/cloud.js +4 -4
- package/dgram-9hn582qO.cjs +1 -0
- package/{dgram-DlGl_ho1.js → dgram-TB03kqMr.js} +55 -49
- package/dgram.cjs +1 -1
- package/dgram.d.ts +2 -1
- package/dgram.js +1 -1
- package/dns.cjs +1 -1
- package/dns.js +1 -1
- package/{extension-jRuNpBs3.js → extension-D2AMAiIv.js} +2 -2
- package/{extension-B3nD2u7c.cjs → extension-Y8xHU5cJ.cjs} +1 -1
- package/extension.cjs +1 -1
- package/extension.js +1 -1
- package/fs/promises.cjs +1 -1
- package/fs/promises.js +1 -1
- package/fs-BUcpl9k4.cjs +1 -0
- package/fs-bpb3Ysdd.js +347 -0
- package/fs.cjs +1 -1
- package/fs.js +1 -1
- package/http.cjs +1 -1
- package/http.d.ts +1 -1
- package/http.js +1 -1
- package/index.cjs +1 -1
- package/index.d.ts +9 -15
- package/index.js +86 -33
- package/net-C2fIMWFr.cjs +1 -0
- package/{net-ByL9yG7X.d.ts → net-CnYxw_sB.d.ts} +3 -1
- package/{net-BbmQeMpt.js → net-Ct8ywVAk.js} +52 -41
- package/net.cjs +1 -1
- package/net.d.ts +1 -1
- package/net.js +1 -1
- package/node-fs-BZCQUmeE.js +404 -0
- package/node-fs-DZPGCYWg.cjs +1 -0
- package/opfs.cjs +1 -1
- package/opfs.js +1 -1
- package/package.json +1 -1
- package/packages.cjs +1 -1
- package/packages.js +165 -149
- package/proxy-CWz5JReq.js +75 -0
- package/{proxy-RU8sbq68.d.ts → proxy-CuXtzxSQ.d.ts} +1 -1
- package/proxy-iuURAidA.cjs +1 -0
- package/{storage-C8hBot2f.js → storage-C1nW5Tvh.js} +1 -1
- package/{storage-BW-jDLUL.cjs → storage-rXHvV2FU.cjs} +1 -1
- package/api-DQ-V4Lls.js +0 -220
- package/api-kHMHDGar.cjs +0 -3
- package/cloud-C8jfO0iJ.cjs +0 -1
- package/dgram-D2Or5f2e.cjs +0 -1
- package/fs-BW5mVMmu.js +0 -340
- package/fs-DJm0bhjg.cjs +0 -1
- package/net-COzDDBnS.cjs +0 -1
- package/node-fs-BMR2yCEt.cjs +0 -1
- package/node-fs-DKfokOlh.js +0 -401
- package/proxy-B0gNjT8-.cjs +0 -1
- package/proxy-BpqvCJmA.js +0 -43
package/api-DQ-V4Lls.js
DELETED
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
|
|
2
|
-
import { expose as t } from "osra";
|
|
3
|
-
//#region src/lib/frame-ready.ts
|
|
4
|
-
var n = 1e4, r = 16, i = (e) => {
|
|
5
|
-
let t;
|
|
6
|
-
try {
|
|
7
|
-
t = e.contentWindow;
|
|
8
|
-
} catch {
|
|
9
|
-
return !0;
|
|
10
|
-
}
|
|
11
|
-
if (!t) return !0;
|
|
12
|
-
try {
|
|
13
|
-
let e = t.location.href;
|
|
14
|
-
return e !== "" && e !== "about:blank";
|
|
15
|
-
} catch {
|
|
16
|
-
return !0;
|
|
17
|
-
}
|
|
18
|
-
}, a = (e, t = n) => new Promise((n) => {
|
|
19
|
-
if (i(e)) return n();
|
|
20
|
-
let a = () => {
|
|
21
|
-
clearInterval(o), clearTimeout(s), e.removeEventListener("load", a), n();
|
|
22
|
-
}, o = setInterval(() => {
|
|
23
|
-
i(e) && a();
|
|
24
|
-
}, r), s = setTimeout(a, t);
|
|
25
|
-
e.addEventListener("load", a);
|
|
26
|
-
}), o = 32, s = 8, c = typeof CSS < "u" && CSS.supports("clip-path", "path('M0 0H1V1H0Z')"), l = typeof CSS < "u" && CSS.supports("clip-path", "polygon(nonzero, 0px 0px, 1px 0px, 1px 1px)"), u = (e) => {
|
|
27
|
-
let t = e.style;
|
|
28
|
-
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("padding", "0", "important"), t.setProperty("box-sizing", "border-box", "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");
|
|
29
|
-
}, d = ({ x: e, y: t, width: n, height: r, radius: i }) => {
|
|
30
|
-
if (!i) return `M${e} ${t}h${n}v${r}h${-n}Z`;
|
|
31
|
-
let a = Math.min(n, r) / 2, [o, s, c, l] = i.map((e) => Math.max(0, Math.min(e, a)));
|
|
32
|
-
return `M${e + o} ${t}h${n - o - s}a${s} ${s} 0 0 1 ${s} ${s}v${r - s - c}a${c} ${c} 0 0 1 ${-c} ${c}h${-(n - c - l)}a${l} ${l} 0 0 1 ${-l} ${-l}v${-(r - l - o)}a${o} ${o} 0 0 1 ${o} ${-o}Z`;
|
|
33
|
-
}, f = () => c && l, p = ({ x: e, y: t, width: n, height: r }) => [
|
|
34
|
-
[e, t],
|
|
35
|
-
[e + n, t],
|
|
36
|
-
[e + n, t + r],
|
|
37
|
-
[e, t + r],
|
|
38
|
-
[e, t]
|
|
39
|
-
], m = (e) => {
|
|
40
|
-
let t = e[0];
|
|
41
|
-
if (!t) return [];
|
|
42
|
-
let n = p(t)[0], r = [];
|
|
43
|
-
return e.forEach((t, i) => {
|
|
44
|
-
r.push(...p(t)), i > 0 && i < e.length - 1 && r.push(n);
|
|
45
|
-
}), r;
|
|
46
|
-
}, h = (e) => `polygon(nonzero, ${m(e).map(([e, t]) => `${e}px ${t}px`).join(", ")})`, g = ({ x: e, y: t, width: n, height: r, radius: i }, a) => {
|
|
47
|
-
let o = `${t}px ${a.width - e - n}px ${a.height - t - r}px ${e}px`;
|
|
48
|
-
return i ? `inset(${o} round ${i.map((e) => `${e}px`).join(" ")})` : `inset(${o})`;
|
|
49
|
-
}, _ = (e, t, n) => {
|
|
50
|
-
if (t) return "none";
|
|
51
|
-
if (e.length === 0) return "inset(100%)";
|
|
52
|
-
let r = e.length === 1 ? e[0] : void 0;
|
|
53
|
-
return r ? g(r, n) : l && e.length <= 5 && !e.some((e) => e.radius) ? h(e) : `path('${e.map(d).join("")}')`;
|
|
54
|
-
}, v = (e) => {
|
|
55
|
-
if (e.length < 2) return null;
|
|
56
|
-
let t = Math.min(...e.map((e) => e.x)), n = Math.min(...e.map((e) => e.y));
|
|
57
|
-
return {
|
|
58
|
-
x: t,
|
|
59
|
-
y: n,
|
|
60
|
-
width: Math.max(...e.map((e) => e.x + e.width)) - t,
|
|
61
|
-
height: Math.max(...e.map((e) => e.y + e.height)) - n
|
|
62
|
-
};
|
|
63
|
-
}, y = (e, t, n) => t >= e.x && t < e.x + e.width && n >= e.y && n < e.y + e.height, ee = 16, b = (e, t, n) => t === 1 ? e * ee : t === 2 ? e * n : e, x = (e, t, n) => {
|
|
64
|
-
let r = getComputedStyle(e);
|
|
65
|
-
return n !== 0 && /auto|scroll/.test(r.overflowY) && e.scrollHeight > e.clientHeight ? !0 : t !== 0 && /auto|scroll/.test(r.overflowX) && e.scrollWidth > e.clientWidth;
|
|
66
|
-
}, S = (e, t, n) => {
|
|
67
|
-
for (let r = e; r; r = r.parentElement) if (x(r, t, n)) return r;
|
|
68
|
-
return document.scrollingElement;
|
|
69
|
-
}, C = null, w = null, T = (e) => ({
|
|
70
|
-
width: e.offsetWidth || window.innerWidth,
|
|
71
|
-
height: e.offsetHeight || window.innerHeight
|
|
72
|
-
}), E = (e) => {
|
|
73
|
-
if (!w || !C || !y(w, e.clientX, e.clientY)) return;
|
|
74
|
-
let t = document.elementFromPoint(e.clientX, e.clientY);
|
|
75
|
-
if (!t || t === C) return;
|
|
76
|
-
let n = b(e.deltaX, e.deltaMode, window.innerWidth), r = b(e.deltaY, e.deltaMode, window.innerHeight), i = S(t, n, r);
|
|
77
|
-
i && (i.scrollBy({
|
|
78
|
-
left: n,
|
|
79
|
-
top: r,
|
|
80
|
-
behavior: "instant"
|
|
81
|
-
}), e.cancelable && e.preventDefault());
|
|
82
|
-
}, D = (e) => {
|
|
83
|
-
let t = w !== null;
|
|
84
|
-
w = e, t !== (e !== null) && (e ? window.addEventListener("wheel", E, {
|
|
85
|
-
capture: !0,
|
|
86
|
-
passive: !1
|
|
87
|
-
}) : window.removeEventListener("wheel", E, { capture: !0 }));
|
|
88
|
-
}, O = (e, { modal: t, rects: n }, r) => {
|
|
89
|
-
if (!c) {
|
|
90
|
-
let r = t || n.length > 0;
|
|
91
|
-
e.style.setProperty("pointer-events", r ? "auto" : "none", "important"), e.style.setProperty("visibility", r ? "visible" : "hidden", "important");
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
let i = _(n, t, r), a = i === "none" || CSS.supports("clip-path", i) ? i : "inset(100%)";
|
|
95
|
-
e.style.setProperty("clip-path", a, "important"), D(t || a !== i ? null : v(n));
|
|
96
|
-
}, k = (e) => {
|
|
97
|
-
if (!(!Array.isArray(e) || e.length !== 4) && e.every((e) => typeof e == "number" && Number.isFinite(e) && e >= 0)) return e.some((e) => e > 0) ? e : void 0;
|
|
98
|
-
}, te = (e, t) => {
|
|
99
|
-
if (typeof e != "object" || !e) return null;
|
|
100
|
-
let { x: n, y: r, width: i, height: a } = e;
|
|
101
|
-
if (![
|
|
102
|
-
n,
|
|
103
|
-
r,
|
|
104
|
-
i,
|
|
105
|
-
a
|
|
106
|
-
].every((e) => typeof e == "number" && Number.isFinite(e))) return null;
|
|
107
|
-
let o = t.width, s = t.height, c = Math.max(0, Math.min(Math.round(n), o)), l = Math.max(0, Math.min(Math.round(r), s)), u = Math.max(c, Math.min(Math.round(n + i), o)), d = Math.max(l, Math.min(Math.round(r + a), s)), f = k(e.radius);
|
|
108
|
-
return {
|
|
109
|
-
x: c,
|
|
110
|
-
y: l,
|
|
111
|
-
width: u - c,
|
|
112
|
-
height: d - l,
|
|
113
|
-
...f ? { radius: f } : {}
|
|
114
|
-
};
|
|
115
|
-
}, A = {
|
|
116
|
-
"not-rendered": "this page is not painting it at all, so it or an ancestor is display:none, or the frame was moved out of the layout",
|
|
117
|
-
clipped: "it is clipped away or positioned outside the viewport",
|
|
118
|
-
"not-shown": "it is rendered but would not be seen, so either something is drawn over it, or it or an ancestor has opacity below 1, visibility:hidden, or a filter"
|
|
119
|
-
}, ne = (e) => Array.isArray(e) ? e.slice(0, s).flatMap((e) => {
|
|
120
|
-
if (typeof e != "object" || !e) return [];
|
|
121
|
-
let { kind: t, cause: n, level: r } = e;
|
|
122
|
-
return typeof t != "string" || t.length > 40 || typeof n != "string" || !(n in A) || r !== "full" && r !== "liveness" ? [] : [{
|
|
123
|
-
kind: t,
|
|
124
|
-
cause: n,
|
|
125
|
-
level: r
|
|
126
|
-
}];
|
|
127
|
-
}) : [], j = /* @__PURE__ */ new Set(), M = (e) => {
|
|
128
|
-
for (let { kind: t, cause: n, level: r } of e) j.has(t) || (j.add(t), console.error(`[FKN] The FKN ${JSON.stringify(t)} is not visible on this page: ${A[n]}. Nobody using this page can see or answer it.
|
|
129
|
-
@fkn/lib draws its UI inside <iframe title="FKN"> and sets display, position, top, left, width, height, border, padding, box-sizing, clip-path and z-index on that element. Leave those as they are, then check for an ancestor with opacity, visibility, display or a clipping transform, and for an element stacked above it.` + (r === "liveness" ? "\nThis browser reports limited detail, so the cause above is a best guess." : "")));
|
|
130
|
-
}, N = (e, t) => {
|
|
131
|
-
if (typeof e != "object" || !e) return null;
|
|
132
|
-
let n = e, r = (Array.isArray(n.rects) ? n.rects.slice(0, o) : []).map((e) => te(e, t)).filter((e) => e !== null && e.width > 0 && e.height > 0);
|
|
133
|
-
return {
|
|
134
|
-
modal: n.modal === !0,
|
|
135
|
-
rects: r,
|
|
136
|
-
hidden: ne(n.hidden)
|
|
137
|
-
};
|
|
138
|
-
}, P = () => C !== null, F = null, I = null, L = () => {
|
|
139
|
-
if (!C || F === null) return;
|
|
140
|
-
let e = T(C), t = N(F, e);
|
|
141
|
-
t && O(C, t, e);
|
|
142
|
-
}, R = (e) => {
|
|
143
|
-
typeof ResizeObserver > "u" || (I ??= new ResizeObserver(L), I.disconnect(), I.observe(e));
|
|
144
|
-
}, z = (e) => {
|
|
145
|
-
u(e), O(e, {
|
|
146
|
-
modal: !1,
|
|
147
|
-
rects: [],
|
|
148
|
-
hidden: []
|
|
149
|
-
}, T(e)), C = e, R(e);
|
|
150
|
-
}, B = (e) => {
|
|
151
|
-
if (!C) return;
|
|
152
|
-
let t = T(C), n = N(e, t);
|
|
153
|
-
n && (F = e, O(C, n, t), M(n.hidden));
|
|
154
|
-
}, V = "https://fkn.app", H = typeof globalThis < "u" && globalThis.document ? globalThis.document : void 0, U = typeof globalThis < "u" && globalThis.crossOriginIsolated === !0, W = `${V}/api${U ? "?coi=1" : ""}`, G = "fkn-api-port", K = "fkn-api-port-ack", q = 2e3, J = () => {
|
|
155
|
-
if (!H || typeof window > "u" || window.parent === window) return Promise.resolve(void 0);
|
|
156
|
-
let e;
|
|
157
|
-
try {
|
|
158
|
-
e = window.parent;
|
|
159
|
-
} catch {
|
|
160
|
-
return Promise.resolve(void 0);
|
|
161
|
-
}
|
|
162
|
-
let t = new MessageChannel();
|
|
163
|
-
return new Promise((n) => {
|
|
164
|
-
let r = (e) => {
|
|
165
|
-
if (clearTimeout(a), t.port1.removeEventListener("message", i), !e) try {
|
|
166
|
-
t.port1.close();
|
|
167
|
-
} catch {}
|
|
168
|
-
n(e);
|
|
169
|
-
}, i = (e) => {
|
|
170
|
-
e.data?.type === K && r(t.port1);
|
|
171
|
-
}, a = setTimeout(() => r(void 0), q);
|
|
172
|
-
t.port1.addEventListener("message", i), t.port1.start();
|
|
173
|
-
try {
|
|
174
|
-
e.postMessage({ type: G }, V, [t.port2]);
|
|
175
|
-
} catch {
|
|
176
|
-
r(void 0);
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
}, Y, X = () => {
|
|
180
|
-
if (Y || !H) return Y;
|
|
181
|
-
let e = H.querySelector(`iframe[src="${W}"]`);
|
|
182
|
-
if (e) Y = e;
|
|
183
|
-
else {
|
|
184
|
-
let e = H.createElement("iframe");
|
|
185
|
-
U && e.setAttribute("allow", "cross-origin-isolated"), e.src = W, H.body.appendChild(e), Y = e;
|
|
186
|
-
}
|
|
187
|
-
return z(Y), Y;
|
|
188
|
-
}, Z = (async () => {
|
|
189
|
-
if (!H) return;
|
|
190
|
-
let e = await J();
|
|
191
|
-
if (e) return {
|
|
192
|
-
receive: e,
|
|
193
|
-
emit: e
|
|
194
|
-
};
|
|
195
|
-
let t = X();
|
|
196
|
-
if (!t) return;
|
|
197
|
-
await a(t);
|
|
198
|
-
let n = t.contentWindow;
|
|
199
|
-
return n ? {
|
|
200
|
-
receive: window,
|
|
201
|
-
emit: n
|
|
202
|
-
} : void 0;
|
|
203
|
-
})(), re = /* @__PURE__ */ e({
|
|
204
|
-
apiPromise: () => $,
|
|
205
|
-
hasTransport: () => Q
|
|
206
|
-
}), Q = typeof window < "u" || typeof self < "u", $ = (async () => {
|
|
207
|
-
if (typeof window < "u") return Z;
|
|
208
|
-
if (typeof self < "u") return {
|
|
209
|
-
receive: self,
|
|
210
|
-
emit: self
|
|
211
|
-
};
|
|
212
|
-
})().then((e) => e ? t({}, {
|
|
213
|
-
key: "fkn-api",
|
|
214
|
-
transport: e
|
|
215
|
-
}) : new Promise(() => {}));
|
|
216
|
-
$.then((e) => {
|
|
217
|
-
P() && e.overlay.setHost(B, { exactClips: f() });
|
|
218
|
-
}, () => {});
|
|
219
|
-
//#endregion
|
|
220
|
-
export { Z as i, re as n, Q as r, $ as t };
|
package/api-kHMHDGar.cjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-BIInC43l.cjs");let t=require("osra");var n=1e4,r=16,i=e=>{let t;try{t=e.contentWindow}catch{return!0}if(!t)return!0;try{let e=t.location.href;return e!==``&&e!==`about:blank`}catch{return!0}},a=(e,t=n)=>new Promise(n=>{if(i(e))return n();let a=()=>{clearInterval(o),clearTimeout(s),e.removeEventListener(`load`,a),n()},o=setInterval(()=>{i(e)&&a()},r),s=setTimeout(a,t);e.addEventListener(`load`,a)}),o=32,s=8,c=typeof CSS<`u`&&CSS.supports(`clip-path`,`path('M0 0H1V1H0Z')`),l=typeof CSS<`u`&&CSS.supports(`clip-path`,`polygon(nonzero, 0px 0px, 1px 0px, 1px 1px)`),u=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(`padding`,`0`,`important`),t.setProperty(`box-sizing`,`border-box`,`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`)},d=({x:e,y:t,width:n,height:r,radius:i})=>{if(!i)return`M${e} ${t}h${n}v${r}h${-n}Z`;let a=Math.min(n,r)/2,[o,s,c,l]=i.map(e=>Math.max(0,Math.min(e,a)));return`M${e+o} ${t}h${n-o-s}a${s} ${s} 0 0 1 ${s} ${s}v${r-s-c}a${c} ${c} 0 0 1 ${-c} ${c}h${-(n-c-l)}a${l} ${l} 0 0 1 ${-l} ${-l}v${-(r-l-o)}a${o} ${o} 0 0 1 ${o} ${-o}Z`},f=()=>c&&l,p=({x:e,y:t,width:n,height:r})=>[[e,t],[e+n,t],[e+n,t+r],[e,t+r],[e,t]],m=e=>{let t=e[0];if(!t)return[];let n=p(t)[0],r=[];return e.forEach((t,i)=>{r.push(...p(t)),i>0&&i<e.length-1&&r.push(n)}),r},h=e=>`polygon(nonzero, ${m(e).map(([e,t])=>`${e}px ${t}px`).join(`, `)})`,g=({x:e,y:t,width:n,height:r,radius:i},a)=>{let o=`${t}px ${a.width-e-n}px ${a.height-t-r}px ${e}px`;return i?`inset(${o} round ${i.map(e=>`${e}px`).join(` `)})`:`inset(${o})`},_=(e,t,n)=>{if(t)return`none`;if(e.length===0)return`inset(100%)`;let r=e.length===1?e[0]:void 0;return r?g(r,n):l&&e.length<=5&&!e.some(e=>e.radius)?h(e):`path('${e.map(d).join(``)}')`},v=e=>{if(e.length<2)return null;let t=Math.min(...e.map(e=>e.x)),n=Math.min(...e.map(e=>e.y));return{x:t,y:n,width:Math.max(...e.map(e=>e.x+e.width))-t,height:Math.max(...e.map(e=>e.y+e.height))-n}},y=(e,t,n)=>t>=e.x&&t<e.x+e.width&&n>=e.y&&n<e.y+e.height,ee=16,b=(e,t,n)=>t===1?e*ee:t===2?e*n:e,x=(e,t,n)=>{let r=getComputedStyle(e);return n!==0&&/auto|scroll/.test(r.overflowY)&&e.scrollHeight>e.clientHeight?!0:t!==0&&/auto|scroll/.test(r.overflowX)&&e.scrollWidth>e.clientWidth},S=(e,t,n)=>{for(let r=e;r;r=r.parentElement)if(x(r,t,n))return r;return document.scrollingElement},C=null,w=null,T=e=>({width:e.offsetWidth||window.innerWidth,height:e.offsetHeight||window.innerHeight}),E=e=>{if(!w||!C||!y(w,e.clientX,e.clientY))return;let t=document.elementFromPoint(e.clientX,e.clientY);if(!t||t===C)return;let n=b(e.deltaX,e.deltaMode,window.innerWidth),r=b(e.deltaY,e.deltaMode,window.innerHeight),i=S(t,n,r);i&&(i.scrollBy({left:n,top:r,behavior:`instant`}),e.cancelable&&e.preventDefault())},D=e=>{let t=w!==null;w=e,t!==(e!==null)&&(e?window.addEventListener(`wheel`,E,{capture:!0,passive:!1}):window.removeEventListener(`wheel`,E,{capture:!0}))},O=(e,{modal:t,rects:n},r)=>{if(!c){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=_(n,t,r),a=i===`none`||CSS.supports(`clip-path`,i)?i:`inset(100%)`;e.style.setProperty(`clip-path`,a,`important`),D(t||a!==i?null:v(n))},k=e=>{if(!(!Array.isArray(e)||e.length!==4)&&e.every(e=>typeof e==`number`&&Number.isFinite(e)&&e>=0))return e.some(e=>e>0)?e:void 0},te=(e,t)=>{if(typeof e!=`object`||!e)return null;let{x:n,y:r,width:i,height:a}=e;if(![n,r,i,a].every(e=>typeof e==`number`&&Number.isFinite(e)))return null;let o=t.width,s=t.height,c=Math.max(0,Math.min(Math.round(n),o)),l=Math.max(0,Math.min(Math.round(r),s)),u=Math.max(c,Math.min(Math.round(n+i),o)),d=Math.max(l,Math.min(Math.round(r+a),s)),f=k(e.radius);return{x:c,y:l,width:u-c,height:d-l,...f?{radius:f}:{}}},A={"not-rendered":`this page is not painting it at all, so it or an ancestor is display:none, or the frame was moved out of the layout`,clipped:`it is clipped away or positioned outside the viewport`,"not-shown":`it is rendered but would not be seen, so either something is drawn over it, or it or an ancestor has opacity below 1, visibility:hidden, or a filter`},ne=e=>Array.isArray(e)?e.slice(0,s).flatMap(e=>{if(typeof e!=`object`||!e)return[];let{kind:t,cause:n,level:r}=e;return typeof t!=`string`||t.length>40||typeof n!=`string`||!(n in A)||r!==`full`&&r!==`liveness`?[]:[{kind:t,cause:n,level:r}]}):[],j=new Set,M=e=>{for(let{kind:t,cause:n,level:r}of e)j.has(t)||(j.add(t),console.error(`[FKN] The FKN ${JSON.stringify(t)} is not visible on this page: ${A[n]}. Nobody using this page can see or answer it.
|
|
2
|
-
@fkn/lib draws its UI inside <iframe title="FKN"> and sets display, position, top, left, width, height, border, padding, box-sizing, clip-path and z-index on that element. Leave those as they are, then check for an ancestor with opacity, visibility, display or a clipping transform, and for an element stacked above it.`+(r===`liveness`?`
|
|
3
|
-
This browser reports limited detail, so the cause above is a best guess.`:``)))},N=(e,t)=>{if(typeof e!=`object`||!e)return null;let n=e,r=(Array.isArray(n.rects)?n.rects.slice(0,o):[]).map(e=>te(e,t)).filter(e=>e!==null&&e.width>0&&e.height>0);return{modal:n.modal===!0,rects:r,hidden:ne(n.hidden)}},P=()=>C!==null,F=null,I=null,L=()=>{if(!C||F===null)return;let e=T(C),t=N(F,e);t&&O(C,t,e)},R=e=>{typeof ResizeObserver>`u`||(I??=new ResizeObserver(L),I.disconnect(),I.observe(e))},z=e=>{u(e),O(e,{modal:!1,rects:[],hidden:[]},T(e)),C=e,R(e)},B=e=>{if(!C)return;let t=T(C),n=N(e,t);n&&(F=e,O(C,n,t),M(n.hidden))},V=`https://fkn.app`,H=typeof globalThis<`u`&&globalThis.document?globalThis.document:void 0,U=typeof globalThis<`u`&&globalThis.crossOriginIsolated===!0,W=`${V}/api${U?`?coi=1`:``}`,G=`fkn-api-port`,K=`fkn-api-port-ack`,q=2e3,J=()=>{if(!H||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===K&&r(t.port1)},a=setTimeout(()=>r(void 0),q);t.port1.addEventListener(`message`,i),t.port1.start();try{e.postMessage({type:G},V,[t.port2])}catch{r(void 0)}})},Y,X=()=>{if(Y||!H)return Y;let e=H.querySelector(`iframe[src="${W}"]`);if(e)Y=e;else{let e=H.createElement(`iframe`);U&&e.setAttribute(`allow`,`cross-origin-isolated`),e.src=W,H.body.appendChild(e),Y=e}return z(Y),Y},Z=(async()=>{if(!H)return;let e=await J();if(e)return{receive:e,emit:e};let t=X();if(!t)return;await a(t);let n=t.contentWindow;return n?{receive:window,emit:n}:void 0})(),re=e.t({apiPromise:()=>$,hasTransport:()=>Q}),Q=typeof window<`u`||typeof self<`u`,$=(async()=>{if(typeof window<`u`)return Z;if(typeof self<`u`)return{receive:self,emit:self}})().then(e=>e?(0,t.expose)({},{key:`fkn-api`,transport:e}):new Promise(()=>{}));$.then(e=>{P()&&e.overlay.setHost(B,{exactClips:f()})},()=>{}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}});
|
package/cloud-C8jfO0iJ.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./lib-DbiVHPXE.cjs"),n=require("./api-kHMHDGar.cjs"),r=require("./proxy-B0gNjT8-.cjs"),i=require("./dns.cjs"),a=require("./cloud/fs.cjs"),o=require("./net-COzDDBnS.cjs"),s=require("./dgram-D2Or5f2e.cjs"),c=require("./http.cjs");let l=require("osra");var u={scope:`frame.fetchRead`,category:`network`,severity:3,unsafe:!0,title:`Read your account data on this site`,description:`Lets the app read pages and data from this site as you, using the session in the frame.`},d={scope:`frame.fetchWrite`,category:`network`,severity:3,unsafe:!0,title:`Change your account data on this site`,description:`Lets the app send changes to this site as you, using the session in the frame.`},f=new Set([`GET`,`HEAD`,`OPTIONS`]),p=(e,t)=>f.has((t?.method??`GET`).toUpperCase())?u:d,m=e=>{let t=[];for(let n of e){let e=n.trim().toLowerCase();!e||e.length>253||/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/.test(e)&&(t.includes(e)||t.push(e))}return t},h=(e,t)=>{if(!e.session)return{kind:`refuse`,reason:`frame.fetch on the cloud backend needs its own session: attach with syncCookies: false`};if(typeof t!=`string`)return{kind:`refuse`,reason:`frame.fetch: url must be a string`};let n;try{n=new URL(t)}catch{return{kind:`refuse`,reason:`frame.fetch on the cloud backend needs an absolute url`}}if(n.protocol!==`https:`&&n.protocol!==`http:`)return{kind:`refuse`,reason:`frame.fetch: only http(s) urls are supported`};if(!(e.declaredHosts.includes(n.hostname)||e.approvedOrigins.has(n.origin)))return{kind:`refuse`,reason:`frame.fetch: the target is outside the origins this attachment declared`};let r=e.declaredHosts.length?e.declaredHosts:[n.hostname];return{kind:`consent`,targetHost:n.hostname,promptHosts:r}},g=e=>e,_=`autoplay; fullscreen; encrypted-media; picture-in-picture; clipboard-read; clipboard-write`,v=2e4,y=65e3,b=3e4,x=5e3,S=new Set([]),C=()=>`https://fkn.app`,w=e=>!e||e===`about:blank`,T=e=>e?``:`incognito-${crypto.randomUUID()}`,E=({target:e,session:t,domains:n})=>{let r=new URL(`/attach-frame`,C());return e&&r.searchParams.set(`url`,e),t&&r.searchParams.set(`session`,t),n.length&&r.searchParams.set(`domains`,n.join(`,`)),r.href},D=(e,t,n)=>{let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(n)),t)});return Promise.race([e,i]).finally(()=>clearTimeout(r))},O=(e,t)=>{let n=()=>{a(),t()},r=e.parentNode,i=new MutationObserver(()=>{(!e.isConnected||e.parentNode!==r)&&(a(),t())}),a=()=>{window.removeEventListener(`pagehide`,n),i.disconnect()};window.addEventListener(`pagehide`,n,{once:!0}),r&&i.observe(r,{childList:!0}),e.isConnected||(a(),t())},k=()=>Object.assign(Error(`cloud.attachFrame: the attached iframe left the document or was reloaded; attach a fresh iframe`),{name:t.m}),A=(e,t)=>{let n=[...e.split(`;`),...t.split(`;`)].map(e=>e.trim()).filter(Boolean);return[...new Set(n)].join(`; `)},j=[300,1200,4e3],M=e=>{let t=()=>{if(!e.isConnected)return;let t=e.style.height,n=e.getBoundingClientRect();n.height&&(e.style.height=`${n.height-1}px`,setTimeout(()=>{e.style.height=t},50))};t();for(let e of j)setTimeout(t,e)},N=e=>{let t=e.getAttribute(`sandbox`);if(t===null)return;let n=new Set(t.toLowerCase().split(/\s+/).filter(Boolean)),r=[`allow-scripts`,`allow-same-origin`].filter(e=>!n.has(e));if(r.length)throw Error(`cloud.attachFrame: the iframe's sandbox attribute must include ${r.join(` and `)} for the render proxy to load`)},P=async({iframe:e,domains:r=[],syncCookies:i=!0,lockdown:a=!1})=>{if(typeof window>`u`)throw Error(`cloud.attachFrame needs a window realm`);if(a)throw Error(`cloud.attachFrame does not support lockdown; use the extension backend for a sealed frame`);if(!e.isConnected)throw Error(`cloud.attachFrame: the iframe must be connected to the document before attaching`);N(e);let o=e.getAttribute(`src`)??``,s=(()=>{if(w(o))return null;try{return new URL(e.src||o,location.href)}catch{throw Error(`cloud.attachFrame: the iframe src is not a valid URL: ${o}`)}})();if(s){let e=new URL(`/attach-frame`,C());if(s.origin===e.origin&&s.pathname===e.pathname)throw Error(`cloud.attachFrame: this iframe is already attached; navigate with the Frame returned by that attach or use a fresh iframe`)}let c=s?.href??``;c&&t.s(c);let u=c,d=T(i),f=m(r),j=new Set;try{j.add(new URL(c).origin)}catch{}let P=new AbortController,F=e.referrerPolicy,I=e.allow;if(e.referrerPolicy=`origin`,e.allow=A(_,e.allow),e.src=E({target:c,session:d,domains:f}),!e.contentWindow)throw Error(`cloud.attachFrame: the iframe window is not available`);try{let r=await D((0,l.expose)({},{key:`fkn-attach-frame`,origin:C(),transport:{receive:window,emit:e.contentWindow},unregisterSignal:P.signal,revivableModules:g(t.R)}),v,`cloud.attachFrame: timed out connecting to the render proxy page`);await D(r.ready(),y,`cloud.attachFrame: the render proxy never became ready`),c&&M(e),O(e,()=>P.abort());let i=e.contentWindow,a=()=>{if(!(!P.signal.aborted&&e.isConnected&&e.contentWindow===i))throw P.abort(),k()};return t.a({executor:{execute:(e,n,i)=>S.has(n)?Promise.reject(t.f(n,`cloud`)):(a(),r.executeLocator(e,n,i)),highlight:async()=>{}},gate:async e=>{if(e.operation!==`fetch`)return;let r=h({session:d,declaredHosts:f,approvedOrigins:j},e.args[0]);if(r.kind===`refuse`)throw t._(r.reason,`fetch`);if(!await(await n.t).frameConsent.ensure({scope:p(e.args[0],e.args[1]).scope,hosts:r.promptHosts}))throw t._(`frame.fetch: the user did not grant this`,`fetch`)},goto:async(t,n={})=>{let i=new URL(t,location.href).href;a();let{timeoutMs:o}=n;await D(r.goto(i,n),(o??b)+x,`cloud.attachFrame: the render proxy did not answer goto; the frame may have been detached or its page reloaded`),u=i;try{j.add(new URL(i).origin)}catch{}M(e)},url:()=>u})}catch(t){throw P.abort(),e.referrerPolicy=F,e.allow=I,e.src=c||`about:blank`,t}},F=()=>typeof window<`u`&&!0,I=async()=>{let e=await n.t.then(e=>e.cloud.quota());return{premium:e.premium,overQuota:e.overQuota,throttled:e.overQuota&&!e.premium,usedBytes:e.usedBytes,limitBytes:e.limitBytes,remainingBytes:e.remaining,bytesPerSecond:e.bytesPerSecond,bitsPerSecond:e.bytesPerSecond*8}},L=e.t({attachFrame:()=>P,available:()=>R,dgram:()=>s.i,dns:()=>i.t,fetch:()=>r.t,fs:()=>a.t,http:()=>c.t,net:()=>o.s,quota:()=>I}),R=()=>n.r;Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return R}});
|
package/dgram-D2Or5f2e.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-kHMHDGar.cjs"),n=require("./utils-QfNXtEhb.cjs");let r=require("buffer"),i=require("events"),a=require("ip-address");var o=e.t({Socket:()=>s,createSocket:()=>p,default:()=>m}),s=class extends i.EventEmitter{_type;_localAddress;_remoteAddress;_connectedLocally;_connectGeneration=0;_destroyed=!1;_webVPNUdpSocketPromise;_dataPort;_socketId;_sendQueue=[];_sendQueueBytes=0;_sendFlushScheduled=!1;_peerTailCache=new Map;constructor(e){if(super(e),!e)throw Error(`Missing options`);this._type=e.type,e.connection&&this.__webvpn_udp_socket_init__(e.connection)}_lastRecvBufferSize=0;_lastSendBufferSize=0;_lastTtl=64;_lastMulticastTtl=1;_lastMulticastLoopback=!0;_setUdpOption(e){if(!this._webVPNUdpSocketPromise){this.emit(`error`,Error(`Cannot set socket option before bind`));return}this._webVPNUdpSocketPromise.then(async t=>{if(t)try{await t.setOption(e)}catch(e){this.emit(`error`,e)}})}_dataPortAcks=!1;_dataPortConsumedBytes=0;_dataPortAckedBytes=0;_ackDataPortBatch(e){if(!this._dataPortAcks||!this._dataPort||(this._dataPortConsumedBytes+=e,this._dataPortAckedBytes!==0&&this._dataPortConsumedBytes-this._dataPortAckedBytes<524288))return;this._dataPortAckedBytes=this._dataPortConsumedBytes;let t={type:n.n,consumedBytes:this._dataPortConsumedBytes};this._dataPort.postMessage(t)}_onTransportClosed(e){this._destroyed||(this._destroyed=!0,this._dataPort?.close(),this._dataPort=void 0,this.listenerCount(`error`)>0&&this.emit(`error`,Error(e||`WebVPN session closed`)),this.emit(`close`))}_onDataPortBatch(e){let t=new DataView(e),n=!1,i,a=0;for(;a+4<=e.byteLength;){let o=t.getUint32(a);a+=4;let s=a+o;if(s>e.byteLength)break;let c=a+4,l=t.getUint8(c);c+=1;let u,f,p;if(l===2){if(!this._remoteAddress){a=s;continue}u=this._remoteAddress.address,f=this._remoteAddress.family,p=this._remoteAddress.port}else{let n=new Uint8Array(e,c,l===0?4:16);l===0?(f=`IPv4`,u=`${n[0]}.${n[1]}.${n[2]}.${n[3]}`):(f=`IPv6`,u=d(n)),c+=n.byteLength,p=t.getUint16(c),c+=2}let m=t.getUint32(c);c+=4;try{this.emit(`message`,r.Buffer.from(e.slice(c,c+m)),{address:u,family:f,port:p,size:m})}catch(e){n||(n=!0,i=e)}a=s}if(n)throw i}_peerTail(e,t){if(e===void 0||t===void 0)return c;let n=`${e}|${t}`,r=this._peerTailCache.get(n);if(r)return r;let i=a.Address4.isValid(e)?u(e):f(e),o=new Uint8Array(1+i.byteLength+2);return o[0]=i.byteLength===4?0:1,o.set(i,1),new DataView(o.buffer).setUint16(1+i.byteLength,t),this._peerTailCache.size>=4096&&this._peerTailCache.clear(),this._peerTailCache.set(n,o),o}_portSend(e,t,n){let r=this._peerTail(t,n),i=new Uint8Array(8+r.byteLength+4+e.byteLength),a=new DataView(i.buffer);a.setUint32(0,i.byteLength-4),a.setUint32(4,this._socketId),i.set(r,8),a.setUint32(8+r.byteLength,e.byteLength),i.set(e,12+r.byteLength),this._sendQueue.push(i),this._sendQueueBytes+=i.byteLength,!this._sendFlushScheduled&&(this._sendFlushScheduled=!0,queueMicrotask(()=>{this._sendFlushScheduled=!1;let e=this._sendQueue,t=this._sendQueueBytes;if(this._sendQueue=[],this._sendQueueBytes=0,!e.length||!this._dataPort)return;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.byteLength;this._dataPort.postMessage(n.buffer,[n.buffer])}))}addMembership(e,t){if(a.Address4.isValid(e)){let n=u(e),r=t&&a.Address4.isValid(t)?u(t):new Uint8Array([0,0,0,0]);this._setUdpOption({type:5,group:n,interface:r})}else if(a.Address6.isValid(e)){let t=f(e);this._setUdpOption({type:7,group:t,ifIndex:0})}else this.emit(`error`,Error(`Invalid multicast address: ${e}`))}address(){if(!this._localAddress)throw Error(`EBADF`);return this._localAddress}bind(...e){let r=n.o(...e),i=this._type===`udp6`?`::`:`0.0.0.0`,a=this.__webvpn_udp_socket_init__(t.t.then(e=>e.cloud.webvpn.udpSocket({type:this._type,address:r.address??i,port:r.port,dataPort:!0})));return r.callback&&a.then(e=>{e&&r.callback.call(this)}),this}__webvpn_udp_socket_init__(e,t){return t&&(this._localAddress={address:t.localAddress,family:t.localFamily,port:t.localPort}),this._webVPNUdpSocketPromise=e.then(e=>{if(e.dataPort)this._socketId=e.socketId,this._dataPort=e.dataPort,this._dataPortAcks=e.dataPortAcks===!0,this._dataPort.onmessage=e=>{try{this._onDataPortBatch(e.data)}finally{this._ackDataPortBatch(e.data.byteLength)}};else{let t=e.dataReadableStream.getReader();(async()=>{for(;;){let{value:e,done:n}=await t.read();if(n)return;this.emit(`message`,r.Buffer.from(e.data),{address:e.address,family:e.family,port:e.port,size:e.size})}})().catch(e=>this._onTransportClosed(e instanceof Error?e.message:void 0))}return e.closed?.then(e=>this._onTransportClosed(e?.reason)).catch(()=>{}),this._localAddress={address:e.localAddress,family:e.localFamily,port:e.localPort},e}).catch(e=>{this.emit(`error`,e)}),this._webVPNUdpSocketPromise.then(e=>{e&&this.emit(`listening`)}),this._webVPNUdpSocketPromise}close(e){if(!this._webVPNUdpSocketPromise)throw Error(`Socket not bound`);return this._webVPNUdpSocketPromise.then(async t=>{if(!t)throw Error(`Socket not bound`);let n=this._destroyed;this._destroyed=!0,this._dataPort?.close(),this._dataPort=void 0;try{await t.close()}finally{try{e&&e()}finally{n||this.emit(`close`)}}}).catch(()=>{}),this}connect(...e){if(!this._webVPNUdpSocketPromise)throw Error(`Socket not bound`);this._webVPNUdpSocketPromise.then(async t=>{if(!t)throw Error(`Socket not bound`);let n=e[0],r=this._type===`udp6`?`::1`:`127.0.0.1`,i=typeof e[1]==`string`?e[1]:r,a=typeof e.at(-1)==`function`?e.at(-1):void 0,o=await t.connect({remotePort:n,remoteAddress:i});this._connectedLocally=o?.local===!0,this._remoteAddress=o?.address?{address:o.address,family:o.family,port:o.port}:{address:i,family:this._type===`udp6`?`IPv6`:`IPv4`,port:n},this._connectGeneration+=1,a&&a()}).catch(e=>{this.emit(`error`,e)})}disconnect(){if(!this._webVPNUdpSocketPromise)throw Error(`Socket not bound`);if(!this._remoteAddress)throw Error(`ERR_SOCKET_DGRAM_NOT_CONNECTED`);let e=this._remoteAddress,t=this._connectedLocally,n=this._connectGeneration;this._remoteAddress=void 0,this._connectedLocally=void 0,this._webVPNUdpSocketPromise.then(e=>e?.disconnect?.()).catch(r=>{this._connectGeneration===n&&(this._remoteAddress=e,this._connectedLocally=t),this.emit(`error`,r)})}dropMembership(e,t){if(a.Address4.isValid(e)){let n=u(e),r=t&&a.Address4.isValid(t)?u(t):new Uint8Array([0,0,0,0]);this._setUdpOption({type:6,group:n,interface:r})}else if(a.Address6.isValid(e)){let t=f(e);this._setUdpOption({type:8,group:t,ifIndex:0})}else this.emit(`error`,Error(`Invalid multicast address: ${e}`))}getRecvBufferSize(){return this._lastRecvBufferSize}getSendBufferSize(){return this._lastSendBufferSize}getSendQueueSize(){return 0}getSendQueueCount(){return 0}ref(){return this}remoteAddress(){if(!this._remoteAddress)throw Error(`ERR_SOCKET_DGRAM_NOT_CONNECTED`);return{address:this._remoteAddress.address,family:this._remoteAddress.family,port:this._remoteAddress.port}}send(...e){this._webVPNUdpSocketPromise||this.bind();let t=n.s(...e),r=l(t.message),i=r;if(t.hasRange){let{offset:e,length:n}=t;if(!Number.isInteger(e)||e<0||e>r.byteLength)throw Object.assign(RangeError(`"offset" is outside of buffer bounds`),{code:`ERR_BUFFER_OUT_OF_BOUNDS`});if(!Number.isInteger(n)||n<0||n>r.byteLength-e)throw Object.assign(RangeError(`"length" is outside of buffer bounds`),{code:`ERR_BUFFER_OUT_OF_BOUNDS`});i=r.subarray(e,e+n)}let o=this._type===`udp6`?`::1`:`127.0.0.1`;if(!this._webVPNUdpSocketPromise)throw Error(`Socket not bound`);this._webVPNUdpSocketPromise.then(e=>{if(!e)throw Error(`Socket not bound`);let n=t.callback,r=t.address??o,s=this._remoteAddress!==void 0&&t.address===void 0;if(this._dataPort&&(s||a.Address4.isValid(r)||a.Address6.isValid(r))){this._portSend(i,s?void 0:r,s?void 0:t.port),n?.call(this,null,i.byteLength);return}e.send({port:t.port,address:r,message:i.byteOffset===0&&i.byteLength===i.buffer.byteLength?i.buffer:i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)}).then(()=>n?.call(this,null,i.byteLength),e=>n?n.call(this,e,0):this.emit(`error`,e))})}setBroadcast(e){this._setUdpOption({type:0,value:e})}setMulticastInterface(e){}setMulticastLoopback(e){return this._setUdpOption({type:3,value:e}),this._setUdpOption({type:4,value:e}),this._lastMulticastLoopback=e,e}setMulticastTTL(e){return this._setUdpOption({type:2,value:e}),this._lastMulticastTtl=e,e}setRecvBufferSize(e){this._setUdpOption({type:10,value:e}),this._lastRecvBufferSize=e}setSendBufferSize(e){this._setUdpOption({type:9,value:e}),this._lastSendBufferSize=e}setTTL(e){return this._setUdpOption({type:1,value:e}),this._lastTtl=e,e}unref(){return this}addSourceSpecificMembership(e,t,n){}dropSourceSpecificMembership(e,t,n){}async[Symbol.asyncDispose](){await new Promise(e=>{this.close(e)})}},c=new Uint8Array([2]),l=e=>{if(typeof e==`string`)return n.l.encode(e);if(e instanceof Uint8Array)return e;if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(Array.isArray(e)){let t=e.map(l),n=new Uint8Array(t.reduce((e,t)=>e+t.byteLength,0)),r=0;for(let e of t)n.set(e,r),r+=e.byteLength;return n}return new Uint8Array(e)},u=e=>{let t=e.split(`.`).map(e=>parseInt(e,10));if(t.length!==4||t.some(e=>Number.isNaN(e)||e<0||e>255))throw Error(`Invalid IPv4 address: ${e}`);return new Uint8Array(t)},d=e=>{let t=[];for(let n=0;n<16;n+=2)t.push(e[n]<<8|e[n+1]);let n=-1,r=1;for(let e=0;e<8;){if(t[e]!==0){e++;continue}let i=e;for(;i<8&&t[i]===0;)i++;i-e>r&&(n=e,r=i-e),e=i}return n===-1?t.map(e=>e.toString(16)).join(`:`):`${t.slice(0,n).map(e=>e.toString(16)).join(`:`)}::${t.slice(n+r).map(e=>e.toString(16)).join(`:`)}`},f=e=>{let t=new a.Address6(e).getBitsBase16(0,128).match(/.{2}/g);if(!t||t.length!==16)throw Error(`Invalid IPv6 address: ${e}`);return new Uint8Array(t.map(e=>parseInt(e,16)))},p=(e,t)=>{let n=new s(typeof e==`string`?{type:e}:e);return t&&n.on(`message`,t),n},m={Socket:s,createSocket:p};Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return s}});
|
package/fs-BW5mVMmu.js
DELETED
|
@@ -1,340 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
|
|
2
|
-
import { t } from "./node-fs-DKfokOlh.js";
|
|
3
|
-
import { c as n, f as r, l as i, o as a, r as o } from "./storage-C8hBot2f.js";
|
|
4
|
-
import { a as s, i as c, n as l, o as u, t as d } from "./opfs-BibrNGF0.js";
|
|
5
|
-
//#region src/lib/fs/hybrid.ts
|
|
6
|
-
var ee = /* @__PURE__ */ e({
|
|
7
|
-
adopt: () => V,
|
|
8
|
-
adoptable: () => H,
|
|
9
|
-
available: () => te,
|
|
10
|
-
list: () => oe,
|
|
11
|
-
onConflict: () => z,
|
|
12
|
-
pending: () => O,
|
|
13
|
-
pendingDeletes: () => k,
|
|
14
|
-
pull: () => ue,
|
|
15
|
-
readFile: () => se,
|
|
16
|
-
remove: () => le,
|
|
17
|
-
replicating: () => re,
|
|
18
|
-
writeFile: () => ce
|
|
19
|
-
}), f, p = async () => await (f ??= d().catch(() => !1)) ? !0 : (f = void 0, !1), m = () => o().catch(() => "unknown"), h = async () => await m() === "connected", te = async () => await p() || await h(), g = "fkn:fs:pending", _ = "fkn:fs:pending-delete", v = "fkn:fs:adopt-declined", y = !0, b = /* @__PURE__ */ new Map(), x = (e) => {
|
|
20
|
-
try {
|
|
21
|
-
let t = localStorage.getItem(e);
|
|
22
|
-
if (!t) return {};
|
|
23
|
-
let n = JSON.parse(t);
|
|
24
|
-
return Array.isArray(n) ? Object.fromEntries(n.filter((e) => typeof e == "string").map((e) => [e, null])) : n && typeof n == "object" ? n : {};
|
|
25
|
-
} catch {
|
|
26
|
-
return {};
|
|
27
|
-
}
|
|
28
|
-
}, S = (e, t) => {
|
|
29
|
-
try {
|
|
30
|
-
Object.keys(t).length ? localStorage.setItem(e, JSON.stringify(t)) : localStorage.removeItem(e);
|
|
31
|
-
} catch {}
|
|
32
|
-
}, C = () => x(g), w = (e, t) => {
|
|
33
|
-
let n = C();
|
|
34
|
-
e in n || (n[e] = t === void 0 ? b.get(e) ?? null : t, S(g, n));
|
|
35
|
-
}, T = (e) => {
|
|
36
|
-
let t = C();
|
|
37
|
-
e in t && (delete t[e], S(g, t), j() || (N = M));
|
|
38
|
-
}, E = () => x(_), ne = (e) => {
|
|
39
|
-
let t = E();
|
|
40
|
-
e in t || (t[e] = b.get(e) ?? null, S(_, t));
|
|
41
|
-
}, D = (e) => {
|
|
42
|
-
let t = E();
|
|
43
|
-
e in t && (delete t[e], S(_, t), j() || (N = M));
|
|
44
|
-
}, O = () => Object.keys(C()), k = () => Object.keys(E()), re = () => y, A = null, j = () => Object.keys(C()).length > 0 || Object.keys(E()).length > 0, M = 6e4, ie = 10 * 6e4, N = M, P = null, F = () => {
|
|
45
|
-
P || typeof window > "u" || !j() || (P = setTimeout(() => {
|
|
46
|
-
P = null, I();
|
|
47
|
-
}, N), N = Math.min(N * 2, ie));
|
|
48
|
-
}, I = () => {
|
|
49
|
-
A || !j() || (A = B(!1).then((e) => {
|
|
50
|
-
if (!j()) {
|
|
51
|
-
N = M;
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
e.failed.length && F();
|
|
55
|
-
}).catch(() => {
|
|
56
|
-
F();
|
|
57
|
-
}).finally(() => {
|
|
58
|
-
A = null;
|
|
59
|
-
}));
|
|
60
|
-
}, ae = null, L = () => ae ??= import("./api-DQ-V4Lls.js").then((e) => e.n).then((e) => e.apiPromise), oe = async () => {
|
|
61
|
-
G();
|
|
62
|
-
let e = await m(), t = e === "connected", [n, r] = await Promise.all([p().then((e) => e ? l() : []).catch(() => []), t ? a().then((e) => ({
|
|
63
|
-
ok: !0,
|
|
64
|
-
entries: e
|
|
65
|
-
})).catch(() => ({
|
|
66
|
-
ok: !1,
|
|
67
|
-
entries: []
|
|
68
|
-
})) : Promise.resolve({
|
|
69
|
-
ok: e === "disconnected",
|
|
70
|
-
entries: []
|
|
71
|
-
})]);
|
|
72
|
-
e !== "unknown" && (y = r.ok), r.ok && e !== "unknown" && (b = new Map(r.entries.map((e) => [e.path, e.updatedAt])));
|
|
73
|
-
let i = /* @__PURE__ */ new Map(), o = (e) => {
|
|
74
|
-
let t = Date.parse(e.updatedAt ?? "");
|
|
75
|
-
return Number.isFinite(t) ? t : 0;
|
|
76
|
-
}, s = (e) => {
|
|
77
|
-
let t = i.get(e.path);
|
|
78
|
-
(!t || o(e) >= o(t)) && i.set(e.path, e);
|
|
79
|
-
};
|
|
80
|
-
for (let e of n) s(e);
|
|
81
|
-
for (let e of r.entries) s(e);
|
|
82
|
-
return r.ok && t && (he(n, r.entries).catch(() => {}), j() ? I() : W({
|
|
83
|
-
local: n,
|
|
84
|
-
remote: r.entries
|
|
85
|
-
}).catch(() => {})), [...i.values()];
|
|
86
|
-
}, se = async (e) => {
|
|
87
|
-
if (await p()) try {
|
|
88
|
-
return await c(e);
|
|
89
|
-
} catch (e) {
|
|
90
|
-
if (e?.name !== "NotFoundError") throw e;
|
|
91
|
-
}
|
|
92
|
-
let t = await n(e);
|
|
93
|
-
return await p() && u(e, t).catch(() => {}), t;
|
|
94
|
-
}, ce = async (e, t, n) => {
|
|
95
|
-
let i = t instanceof Blob ? t : new Blob([t], n?.contentType ? { type: n.contentType } : void 0);
|
|
96
|
-
if (await p()) {
|
|
97
|
-
await u(e, i, n), G();
|
|
98
|
-
let t = b.get(e) ?? null, a = await m();
|
|
99
|
-
if (a === "disconnected") return;
|
|
100
|
-
if (a === "unknown" || !y) {
|
|
101
|
-
w(e, t), F();
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
r(e, i, n).then(() => T(e)).catch((n) => {
|
|
105
|
-
w(e, t), F(), console.warn("fs: cloud replicate failed, queued for adopt()", n);
|
|
106
|
-
});
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
let a = await m();
|
|
110
|
-
if (a === "connected") return r(e, i, n);
|
|
111
|
-
throw Error(a === "unknown" ? "fs: cloud unreachable" : "fs: no storage backend available");
|
|
112
|
-
}, le = async (e) => {
|
|
113
|
-
G();
|
|
114
|
-
let t = [];
|
|
115
|
-
await p() && t.push(s(e).catch(() => {}));
|
|
116
|
-
let n = await m();
|
|
117
|
-
if (n === "connected" ? t.push(i(e).then(() => D(e)).catch((t) => {
|
|
118
|
-
ne(e), F(), console.warn("fs: cloud delete failed, queued for retry", t);
|
|
119
|
-
})) : n === "unknown" && t.length && b.has(e) && (ne(e), F()), !t.length) throw Error(n === "unknown" ? "fs: cloud unreachable" : "fs: no storage backend available");
|
|
120
|
-
T(e), await Promise.all(t);
|
|
121
|
-
}, ue = async (e) => {
|
|
122
|
-
let t = await n(e);
|
|
123
|
-
return await p() && await u(e, t), t;
|
|
124
|
-
}, R = null, z = (e) => (R = e, () => {
|
|
125
|
-
R === e && (R = null);
|
|
126
|
-
}), de = async (e) => (await L()).cloud.fs.promptConflict({
|
|
127
|
-
path: e.path,
|
|
128
|
-
local: e.local,
|
|
129
|
-
cloud: e.cloud
|
|
130
|
-
}).catch(() => null), fe = async (e) => {
|
|
131
|
-
if (R) try {
|
|
132
|
-
return await R(e);
|
|
133
|
-
} catch {
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
|
-
return de(e);
|
|
137
|
-
}, B = async (e) => {
|
|
138
|
-
let t = {
|
|
139
|
-
uploaded: [],
|
|
140
|
-
kept: [],
|
|
141
|
-
resolved: [],
|
|
142
|
-
unresolved: [],
|
|
143
|
-
deleted: [],
|
|
144
|
-
failed: []
|
|
145
|
-
}, o = await m();
|
|
146
|
-
if (o === "unknown") throw Error("fs: cloud unreachable");
|
|
147
|
-
if (o !== "connected") throw Error("fs: this needs a signed-in account");
|
|
148
|
-
let s = await p(), [d, ee] = await Promise.all([s ? l() : Promise.resolve([]), a()]), f = new Map(ee.map((e) => [e.path, e])), h = C();
|
|
149
|
-
if (s) for (let e of Object.keys(h)) d.some((t) => t.path === e) || T(e);
|
|
150
|
-
for (let [e, n] of Object.entries(E())) {
|
|
151
|
-
let r = f.get(e);
|
|
152
|
-
if (!r) {
|
|
153
|
-
D(e);
|
|
154
|
-
continue;
|
|
155
|
-
}
|
|
156
|
-
if (d.some((t) => t.path === e)) {
|
|
157
|
-
D(e);
|
|
158
|
-
continue;
|
|
159
|
-
}
|
|
160
|
-
if (r.updatedAt !== n) {
|
|
161
|
-
D(e);
|
|
162
|
-
continue;
|
|
163
|
-
}
|
|
164
|
-
try {
|
|
165
|
-
await i(e), D(e), t.deleted.push(e);
|
|
166
|
-
} catch (n) {
|
|
167
|
-
t.failed.push({
|
|
168
|
-
path: e,
|
|
169
|
-
error: n instanceof Error ? n.message : String(n)
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
for (let i of d) {
|
|
174
|
-
let a = f.get(i.path), o = i.path in h;
|
|
175
|
-
if (!o && (a || !e)) {
|
|
176
|
-
a && t.kept.push(i.path);
|
|
177
|
-
continue;
|
|
178
|
-
}
|
|
179
|
-
if (o && a && a.updatedAt !== h[i.path]) {
|
|
180
|
-
let e = await fe({
|
|
181
|
-
path: i.path,
|
|
182
|
-
local: {
|
|
183
|
-
size: i.size,
|
|
184
|
-
updatedAt: i.updatedAt
|
|
185
|
-
},
|
|
186
|
-
cloud: {
|
|
187
|
-
size: a.size,
|
|
188
|
-
updatedAt: a.updatedAt
|
|
189
|
-
},
|
|
190
|
-
readLocal: () => c(i.path),
|
|
191
|
-
readCloud: () => n(i.path)
|
|
192
|
-
});
|
|
193
|
-
if (!e) {
|
|
194
|
-
t.unresolved.push(i.path);
|
|
195
|
-
continue;
|
|
196
|
-
}
|
|
197
|
-
try {
|
|
198
|
-
if (e === "cloud") await u(i.path, await n(i.path));
|
|
199
|
-
else {
|
|
200
|
-
let t = e === "local" ? await c(i.path) : e.merged;
|
|
201
|
-
await r(i.path, t, i.contentType ? { contentType: i.contentType } : void 0), e !== "local" && await u(i.path, t);
|
|
202
|
-
}
|
|
203
|
-
T(i.path), t.resolved.push({
|
|
204
|
-
path: i.path,
|
|
205
|
-
choice: e === "local" || e === "cloud" ? e : "merged"
|
|
206
|
-
});
|
|
207
|
-
} catch (e) {
|
|
208
|
-
if (e?.code === "FKN_E2E_LOCKED") throw e;
|
|
209
|
-
t.failed.push({
|
|
210
|
-
path: i.path,
|
|
211
|
-
error: e instanceof Error ? e.message : String(e)
|
|
212
|
-
});
|
|
213
|
-
}
|
|
214
|
-
continue;
|
|
215
|
-
}
|
|
216
|
-
try {
|
|
217
|
-
let e = await c(i.path);
|
|
218
|
-
await r(i.path, e, i.contentType ? { contentType: i.contentType } : void 0), T(i.path), t.uploaded.push(i.path);
|
|
219
|
-
} catch (e) {
|
|
220
|
-
if (w(i.path), e?.code === "FKN_E2E_LOCKED") throw e;
|
|
221
|
-
t.failed.push({
|
|
222
|
-
path: i.path,
|
|
223
|
-
error: e instanceof Error ? e.message : String(e)
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
return t;
|
|
228
|
-
}, V = async () => {
|
|
229
|
-
for (; A;) await A;
|
|
230
|
-
let e = B(!0);
|
|
231
|
-
A = e.then(() => {}, () => {});
|
|
232
|
-
try {
|
|
233
|
-
return await e;
|
|
234
|
-
} finally {
|
|
235
|
-
A = null;
|
|
236
|
-
}
|
|
237
|
-
}, H = async () => {
|
|
238
|
-
if (!await h() || !await p()) return {
|
|
239
|
-
paths: [],
|
|
240
|
-
bytes: 0
|
|
241
|
-
};
|
|
242
|
-
let [e, t] = await Promise.all([l(), a()]), n = new Set(t.map((e) => e.path)), r = e.filter((e) => !n.has(e.path));
|
|
243
|
-
return {
|
|
244
|
-
paths: r.map((e) => e.path),
|
|
245
|
-
bytes: r.reduce((e, t) => e + t.size, 0)
|
|
246
|
-
};
|
|
247
|
-
}, pe = () => new Set(Object.keys(x(v))), me = (e) => {
|
|
248
|
-
let t = x(v);
|
|
249
|
-
for (let n of e) t[n] = null;
|
|
250
|
-
S(v, t);
|
|
251
|
-
}, U = null, W = (e) => U || (U = (async () => {
|
|
252
|
-
if (!await h()) return;
|
|
253
|
-
let t = e ?? (await p() ? {
|
|
254
|
-
local: await l(),
|
|
255
|
-
remote: await a()
|
|
256
|
-
} : null);
|
|
257
|
-
if (!t) return;
|
|
258
|
-
let n = new Set(t.remote.map((e) => e.path)), r = pe(), i = t.local.filter((e) => !n.has(e.path) && !r.has(e.path));
|
|
259
|
-
if (!i.length) return;
|
|
260
|
-
let o = await L(), s = i.reduce((e, t) => e + t.size, 0);
|
|
261
|
-
if (!await o.cloud.fs.promptAdopt({
|
|
262
|
-
files: i.length,
|
|
263
|
-
bytes: s
|
|
264
|
-
}).catch(() => !1)) {
|
|
265
|
-
me(i.map((e) => e.path));
|
|
266
|
-
return;
|
|
267
|
-
}
|
|
268
|
-
await V();
|
|
269
|
-
})().catch(() => {}).finally(() => {
|
|
270
|
-
U = null;
|
|
271
|
-
}), U), he = async (e, t) => {
|
|
272
|
-
let n = new Set(t.map((e) => e.path)), r = e.filter((e) => !n.has(e.path)), i = await L(), a = async () => {
|
|
273
|
-
await V().catch(() => {});
|
|
274
|
-
let e = await H().catch(() => ({
|
|
275
|
-
paths: [],
|
|
276
|
-
bytes: 0
|
|
277
|
-
}));
|
|
278
|
-
await i.cloud.fs.setAdoptSource({
|
|
279
|
-
files: e.paths.length,
|
|
280
|
-
bytes: e.bytes
|
|
281
|
-
}, a).catch(() => {});
|
|
282
|
-
};
|
|
283
|
-
await i.cloud.fs.setAdoptSource({
|
|
284
|
-
files: r.length,
|
|
285
|
-
bytes: r.reduce((e, t) => e + t.size, 0)
|
|
286
|
-
}, a);
|
|
287
|
-
}, ge = !1, G = () => {
|
|
288
|
-
ge || typeof window > "u" || (ge = !0, window.addEventListener("online", () => {
|
|
289
|
-
I();
|
|
290
|
-
}), import("./account.js").then((e) => e.onChange(() => {
|
|
291
|
-
W().catch(() => {}), I();
|
|
292
|
-
})).catch(() => {}));
|
|
293
|
-
}, _e = /* @__PURE__ */ e({
|
|
294
|
-
adopt: () => J,
|
|
295
|
-
adoptable: () => Y,
|
|
296
|
-
appendFile: () => Pe,
|
|
297
|
-
appendFileSync: () => Se,
|
|
298
|
-
available: () => ye,
|
|
299
|
-
default: () => Ge,
|
|
300
|
-
exists: () => Ve,
|
|
301
|
-
existsSync: () => Ce,
|
|
302
|
-
flush: () => Ue,
|
|
303
|
-
lstatSync: () => Te,
|
|
304
|
-
mkdir: () => Le,
|
|
305
|
-
mkdirSync: () => De,
|
|
306
|
-
mount: () => He,
|
|
307
|
-
onConflict: () => $,
|
|
308
|
-
pending: () => X,
|
|
309
|
-
pendingDeletes: () => Z,
|
|
310
|
-
promises: () => K,
|
|
311
|
-
pull: () => q,
|
|
312
|
-
readFile: () => Me,
|
|
313
|
-
readFileSync: () => be,
|
|
314
|
-
readdir: () => Ie,
|
|
315
|
-
readdirSync: () => Ee,
|
|
316
|
-
remount: () => We,
|
|
317
|
-
rename: () => Be,
|
|
318
|
-
renameSync: () => je,
|
|
319
|
-
replicating: () => Q,
|
|
320
|
-
rm: () => Re,
|
|
321
|
-
rmSync: () => Oe,
|
|
322
|
-
rmdirSync: () => ke,
|
|
323
|
-
stat: () => Fe,
|
|
324
|
-
statSync: () => we,
|
|
325
|
-
unlink: () => ze,
|
|
326
|
-
unlinkSync: () => Ae,
|
|
327
|
-
writeFile: () => Ne,
|
|
328
|
-
writeFileSync: () => xe
|
|
329
|
-
}), ve = t(ee, { memfs: !0 }), { available: ye, readFileSync: be, writeFileSync: xe, appendFileSync: Se, existsSync: Ce, statSync: we, lstatSync: Te, readdirSync: Ee, mkdirSync: De, rmSync: Oe, rmdirSync: ke, unlinkSync: Ae, renameSync: je, readFile: Me, writeFile: Ne, appendFile: Pe, stat: Fe, readdir: Ie, mkdir: Le, rm: Re, unlink: ze, rename: Be, exists: Ve, promises: K, mount: He, flush: Ue, remount: We } = ve, q = ue, J = V, Y = H, X = O, Z = k, Q = re, $ = z, Ge = {
|
|
330
|
-
...ve,
|
|
331
|
-
pull: q,
|
|
332
|
-
adopt: J,
|
|
333
|
-
adoptable: Y,
|
|
334
|
-
pending: X,
|
|
335
|
-
pendingDeletes: Z,
|
|
336
|
-
replicating: Q,
|
|
337
|
-
onConflict: $
|
|
338
|
-
};
|
|
339
|
-
//#endregion
|
|
340
|
-
export { ke as A, Ee as C, Q as D, je as E, Ne as F, xe as I, we as M, ze as N, Re as O, Ae as P, Ie as S, Be as T, Z as _, ye as a, Me as b, Ue as c, Te as d, Le as f, X as g, $ as h, Se as i, Fe as j, Oe as k, Ge as l, He as m, Y as n, Ve as o, De as p, Pe as r, Ce as s, J as t, _e as u, K as v, We as w, be as x, q as y };
|
package/fs-DJm0bhjg.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./node-fs-BMR2yCEt.cjs"),n=require("./storage-BW-jDLUL.cjs"),r=require("./opfs-CXMESVLc.cjs");var i=e.t({adopt:()=>F,adoptable:()=>I,available:()=>l,list:()=>re,onConflict:()=>ce,pending:()=>C,pendingDeletes:()=>w,pull:()=>se,readFile:()=>ie,remove:()=>oe,replicating:()=>ee,writeFile:()=>ae}),a,o=async()=>await(a??=r.t().catch(()=>!1))?!0:(a=void 0,!1),s=()=>n.r().catch(()=>`unknown`),c=async()=>await s()===`connected`,l=async()=>await o()||await c(),u=`fkn:fs:pending`,d=`fkn:fs:pending-delete`,f=`fkn:fs:adopt-declined`,p=!0,m=new Map,h=e=>{try{let t=localStorage.getItem(e);if(!t)return{};let n=JSON.parse(t);return Array.isArray(n)?Object.fromEntries(n.filter(e=>typeof e==`string`).map(e=>[e,null])):n&&typeof n==`object`?n:{}}catch{return{}}},g=(e,t)=>{try{Object.keys(t).length?localStorage.setItem(e,JSON.stringify(t)):localStorage.removeItem(e)}catch{}},_=()=>h(u),v=(e,t)=>{let n=_();e in n||(n[e]=t===void 0?m.get(e)??null:t,g(u,n))},y=e=>{let t=_();e in t&&(delete t[e],g(u,t),E()||(O=D))},b=()=>h(d),x=e=>{let t=b();e in t||(t[e]=m.get(e)??null,g(d,t))},S=e=>{let t=b();e in t&&(delete t[e],g(d,t),E()||(O=D))},C=()=>Object.keys(_()),w=()=>Object.keys(b()),ee=()=>p,T=null,E=()=>Object.keys(_()).length>0||Object.keys(b()).length>0,D=6e4,te=10*6e4,O=D,k=null,A=()=>{k||typeof window>`u`||!E()||(k=setTimeout(()=>{k=null,j()},O),O=Math.min(O*2,te))},j=()=>{T||!E()||(T=P(!1).then(e=>{if(!E()){O=D;return}e.failed.length&&A()}).catch(()=>{A()}).finally(()=>{T=null}))},ne=null,M=()=>ne??=Promise.resolve().then(()=>require("./api-kHMHDGar.cjs")).then(e=>e.n).then(e=>e.apiPromise),re=async()=>{B();let e=await s(),t=e===`connected`,[i,a]=await Promise.all([o().then(e=>e?r.n():[]).catch(()=>[]),t?n.o().then(e=>({ok:!0,entries:e})).catch(()=>({ok:!1,entries:[]})):Promise.resolve({ok:e===`disconnected`,entries:[]})]);e!==`unknown`&&(p=a.ok),a.ok&&e!==`unknown`&&(m=new Map(a.entries.map(e=>[e.path,e.updatedAt])));let c=new Map,l=e=>{let t=Date.parse(e.updatedAt??``);return Number.isFinite(t)?t:0},u=e=>{let t=c.get(e.path);(!t||l(e)>=l(t))&&c.set(e.path,e)};for(let e of i)u(e);for(let e of a.entries)u(e);return a.ok&&t&&(pe(i,a.entries).catch(()=>{}),E()?j():R({local:i,remote:a.entries}).catch(()=>{})),[...c.values()]},ie=async e=>{if(await o())try{return await r.i(e)}catch(e){if(e?.name!==`NotFoundError`)throw e}let t=await n.c(e);return await o()&&r.o(e,t).catch(()=>{}),t},ae=async(e,t,i)=>{let a=t instanceof Blob?t:new Blob([t],i?.contentType?{type:i.contentType}:void 0);if(await o()){await r.o(e,a,i),B();let t=m.get(e)??null,o=await s();if(o===`disconnected`)return;if(o===`unknown`||!p){v(e,t),A();return}n.f(e,a,i).then(()=>y(e)).catch(n=>{v(e,t),A(),console.warn(`fs: cloud replicate failed, queued for adopt()`,n)});return}let c=await s();if(c===`connected`)return n.f(e,a,i);throw Error(c===`unknown`?`fs: cloud unreachable`:`fs: no storage backend available`)},oe=async e=>{B();let t=[];await o()&&t.push(r.a(e).catch(()=>{}));let i=await s();if(i===`connected`?t.push(n.l(e).then(()=>S(e)).catch(t=>{x(e),A(),console.warn(`fs: cloud delete failed, queued for retry`,t)})):i===`unknown`&&t.length&&m.has(e)&&(x(e),A()),!t.length)throw Error(i===`unknown`?`fs: cloud unreachable`:`fs: no storage backend available`);y(e),await Promise.all(t)},se=async e=>{let t=await n.c(e);return await o()&&await r.o(e,t),t},N=null,ce=e=>(N=e,()=>{N===e&&(N=null)}),le=async e=>(await M()).cloud.fs.promptConflict({path:e.path,local:e.local,cloud:e.cloud}).catch(()=>null),ue=async e=>{if(N)try{return await N(e)}catch{return null}return le(e)},P=async e=>{let t={uploaded:[],kept:[],resolved:[],unresolved:[],deleted:[],failed:[]},i=await s();if(i===`unknown`)throw Error(`fs: cloud unreachable`);if(i!==`connected`)throw Error(`fs: this needs a signed-in account`);let a=await o(),[c,l]=await Promise.all([a?r.n():Promise.resolve([]),n.o()]),u=new Map(l.map(e=>[e.path,e])),d=_();if(a)for(let e of Object.keys(d))c.some(t=>t.path===e)||y(e);for(let[e,r]of Object.entries(b())){let i=u.get(e);if(!i){S(e);continue}if(c.some(t=>t.path===e)){S(e);continue}if(i.updatedAt!==r){S(e);continue}try{await n.l(e),S(e),t.deleted.push(e)}catch(n){t.failed.push({path:e,error:n instanceof Error?n.message:String(n)})}}for(let i of c){let a=u.get(i.path),o=i.path in d;if(!o&&(a||!e)){a&&t.kept.push(i.path);continue}if(o&&a&&a.updatedAt!==d[i.path]){let e=await ue({path:i.path,local:{size:i.size,updatedAt:i.updatedAt},cloud:{size:a.size,updatedAt:a.updatedAt},readLocal:()=>r.i(i.path),readCloud:()=>n.c(i.path)});if(!e){t.unresolved.push(i.path);continue}try{if(e===`cloud`)await r.o(i.path,await n.c(i.path));else{let t=e===`local`?await r.i(i.path):e.merged;await n.f(i.path,t,i.contentType?{contentType:i.contentType}:void 0),e!==`local`&&await r.o(i.path,t)}y(i.path),t.resolved.push({path:i.path,choice:e===`local`||e===`cloud`?e:`merged`})}catch(e){if(e?.code===`FKN_E2E_LOCKED`)throw e;t.failed.push({path:i.path,error:e instanceof Error?e.message:String(e)})}continue}try{let e=await r.i(i.path);await n.f(i.path,e,i.contentType?{contentType:i.contentType}:void 0),y(i.path),t.uploaded.push(i.path)}catch(e){if(v(i.path),e?.code===`FKN_E2E_LOCKED`)throw e;t.failed.push({path:i.path,error:e instanceof Error?e.message:String(e)})}}return t},F=async()=>{for(;T;)await T;let e=P(!0);T=e.then(()=>{},()=>{});try{return await e}finally{T=null}},I=async()=>{if(!await c()||!await o())return{paths:[],bytes:0};let[e,t]=await Promise.all([r.n(),n.o()]),i=new Set(t.map(e=>e.path)),a=e.filter(e=>!i.has(e.path));return{paths:a.map(e=>e.path),bytes:a.reduce((e,t)=>e+t.size,0)}},de=()=>new Set(Object.keys(h(f))),fe=e=>{let t=h(f);for(let n of e)t[n]=null;g(f,t)},L=null,R=e=>L||(L=(async()=>{if(!await c())return;let t=e??(await o()?{local:await r.n(),remote:await n.o()}:null);if(!t)return;let i=new Set(t.remote.map(e=>e.path)),a=de(),s=t.local.filter(e=>!i.has(e.path)&&!a.has(e.path));if(!s.length)return;let l=await M(),u=s.reduce((e,t)=>e+t.size,0);if(!await l.cloud.fs.promptAdopt({files:s.length,bytes:u}).catch(()=>!1)){fe(s.map(e=>e.path));return}await F()})().catch(()=>{}).finally(()=>{L=null}),L),pe=async(e,t)=>{let n=new Set(t.map(e=>e.path)),r=e.filter(e=>!n.has(e.path)),i=await M(),a=async()=>{await F().catch(()=>{});let e=await I().catch(()=>({paths:[],bytes:0}));await i.cloud.fs.setAdoptSource({files:e.paths.length,bytes:e.bytes},a).catch(()=>{})};await i.cloud.fs.setAdoptSource({files:r.length,bytes:r.reduce((e,t)=>e+t.size,0)},a)},z=!1,B=()=>{z||typeof window>`u`||(z=!0,window.addEventListener(`online`,()=>{j()}),Promise.resolve().then(()=>require("./account.cjs")).then(e=>e.onChange(()=>{R().catch(()=>{}),j()})).catch(()=>{}))},me=e.t({adopt:()=>J,adoptable:()=>Y,appendFile:()=>Ee,appendFileSync:()=>G,available:()=>H,default:()=>Le,exists:()=>Ne,existsSync:()=>he,flush:()=>Fe,lstatSync:()=>_e,mkdir:()=>ke,mkdirSync:()=>ye,mount:()=>K,onConflict:()=>$,pending:()=>X,pendingDeletes:()=>Z,promises:()=>Pe,pull:()=>q,readFile:()=>we,readFileSync:()=>U,readdir:()=>Oe,readdirSync:()=>ve,remount:()=>Ie,rename:()=>Me,renameSync:()=>Ce,replicating:()=>Q,rm:()=>Ae,rmSync:()=>be,rmdirSync:()=>xe,stat:()=>De,statSync:()=>ge,unlink:()=>je,unlinkSync:()=>Se,writeFile:()=>Te,writeFileSync:()=>W}),V=t.t(i,{memfs:!0}),{available:H,readFileSync:U,writeFileSync:W,appendFileSync:G,existsSync:he,statSync:ge,lstatSync:_e,readdirSync:ve,mkdirSync:ye,rmSync:be,rmdirSync:xe,unlinkSync:Se,renameSync:Ce,readFile:we,writeFile:Te,appendFile:Ee,stat:De,readdir:Oe,mkdir:ke,rm:Ae,unlink:je,rename:Me,exists:Ne,promises:Pe,mount:K,flush:Fe,remount:Ie}=V,q=se,J=F,Y=I,X=C,Z=w,Q=ee,$=ce,Le={...V,pull:q,adopt:J,adoptable:Y,pending:X,pendingDeletes:Z,replicating:Q,onConflict:$};Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return Se}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return q}});
|
package/net-COzDDBnS.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-kHMHDGar.cjs"),n=require("./utils-QfNXtEhb.cjs");let r=require("stream"),i=require("events");var a=e.t({Server:()=>s,Socket:()=>o,_default:()=>d,connect:()=>c,createConnection:()=>l,createServer:()=>u,default:()=>d,isIP:()=>n.r,isIPv4:()=>n.i,isIPv6:()=>n.a}),o=class extends r.Stream.Duplex{_localAddress;_remoteAddress;_webVPNTcpSocketPromise;constructor(e){if(e?.fd!==void 0)throw Error(`FKN WebVPN does not support file descriptors`);super(e),e?.connection&&this.__webvpn_tcp_socket_init__(e.connection)}__webvpn_tcp_socket_init__(e,t){if(t&&(this._localAddress={address:t.localAddress,family:t.localFamily,port:t.localPort},this._remoteAddress={address:t.remoteAddress,family:t.remoteFamily,port:t.remotePort}),this._webVPNTcpSocketPromise=e.then(e=>{let t=e.dataReadableStream.getReader(),n=e.dataWritableStream.getWriter();return this._localAddress={address:e.localAddress,family:e.localFamily,port:e.localPort},this._remoteAddress={address:e.remoteAddress,family:e.remoteFamily,port:e.remotePort},{...e,reader:t,writer:n}}).catch(e=>{this.emit(`error`,e)}),!this._webVPNTcpSocketPromise)throw Error(`Socket not connected`);return this._webVPNTcpSocketPromise.then(e=>{e&&this.emit(`connect`)}),this._webVPNTcpSocketPromise}_read(e){if(!this._webVPNTcpSocketPromise)throw Error(`Socket not connected`);this._webVPNTcpSocketPromise.then(e=>{if(!e){this.push(null);return}e.reader.read().then(({value:e,done:t})=>{if(t){this.push(null);return}this._restartTimeoutTimer(),this.push(e)}).catch(e=>{this.destroy(e)})})}_write(e,t,n){if(!this._webVPNTcpSocketPromise){n(Error(`Socket not connected`));return}this._webVPNTcpSocketPromise.then(async t=>{if(!t)throw Error(`Socket not connected`);await t.writer.ready,await t.writer.write(e),this._restartTimeoutTimer(),n()}).catch(n)}connect(...e){let r=n.c(...e),i=this.__webvpn_tcp_socket_init__(t.t.then(e=>e.cloud.webvpn.tcpSocket({remoteAddress:r.host??`localhost`,remotePort:r.port})));return r.callback&&i.then(e=>{e&&r.callback.call(this)}),this}_final(e){if(!this._webVPNTcpSocketPromise){e();return}this._webVPNTcpSocketPromise.then(async e=>{e&&await e.writer.close()}).then(()=>e(),t=>e(t))}_destroy(e,t){if(this._timeoutTimer&&clearTimeout(this._timeoutTimer),!this._webVPNTcpSocketPromise){t(e);return}this._webVPNTcpSocketPromise.then(async e=>{e&&await(this._resetRequested?e.resetAndDestroy():e.destroy())}).then(()=>t(e),()=>t(e))}destroySoon(){if(this.writableFinished){this.destroy();return}this.once(`finish`,()=>this.destroy()),this.end()}_resetRequested=!1;resetAndDestroy(){return this._resetRequested=!0,this.destroy(),this}_timeoutMs;_timeoutTimer;_restartTimeoutTimer(){this._timeoutTimer&&clearTimeout(this._timeoutTimer),this._timeoutMs&&(this._timeoutTimer=setTimeout(()=>this.emit(`timeout`),this._timeoutMs))}setTimeout(e,t){return t&&this.on(`timeout`,t),this._timeoutMs=e,this._restartTimeoutTimer(),this}setNoDelay(e){let t=e??!0;return this._setTcpOption({type:0,value:t}),this}setKeepAlive(e,t){let n=e??!1,r=t!==void 0&&t>0?Math.max(1,Math.round(t/1e3)):0;return this._setTcpOption({type:2,enabled:n,initialDelaySeconds:r}),this}setSendBufferSize(e){return this._setTcpOption({type:3,value:e}),this}setRecvBufferSize(e){return this._setTcpOption({type:4,value:e}),this}_typeOfService;getTypeOfService(){return this._typeOfService??0}setTypeOfService(e){return this._typeOfService=e,this}_setTcpOption(e){if(!this._webVPNTcpSocketPromise){this.emit(`error`,Error(`Cannot set socket option before connect`));return}this._webVPNTcpSocketPromise.then(async t=>{if(t)try{await t.setOption(e)}catch(e){this.emit(`error`,e)}})}write(e,t,...n){return super.write(e,t,...n)}address(){return this._localAddress??{}}unref(){return this}ref(){return this}autoSelectFamilyAttemptedAddresses;bufferSize;bytesRead;bytesWritten;connecting;pending;get localAddress(){if(!this._localAddress)throw Error(`Socket is not connected`);return this._localAddress.address}get localPort(){if(!this._localAddress)throw Error(`Socket is not connected`);return this._localAddress.port}get localFamily(){if(!this._localAddress)throw Error(`Socket is not connected`);return this._localAddress.family}readyState;get remoteAddress(){if(!this._remoteAddress)throw Error(`Socket is not connected`);return this._remoteAddress.address}get remotePort(){if(!this._remoteAddress)throw Error(`Socket is not connected`);return this._remoteAddress.port}get remoteFamily(){if(!this._remoteAddress)throw Error(`Socket is not connected`);return this._remoteAddress.family}timeout},s=class extends i.EventEmitter{_localAddress;_webVPNTcpSocketListenerPromise;constructor(e,t){super(e),t&&this.on(`connection`,t),e?.connection&&this.__webvpn_tcp_socket_listener_init__(e.connection)}__webvpn_tcp_socket_listener_init__(e){return this._webVPNTcpSocketListenerPromise=e.then(e=>(this._localAddress={address:e.localAddress,family:e.localFamily,port:e.localPort},e)).catch(e=>{this.emit(`error`,e)}),this._webVPNTcpSocketListenerPromise.then(e=>{e&&this.emit(`listening`)}),this._webVPNTcpSocketListenerPromise}listen(...e){let r=n.c(...e);this._closeEmitted=!1;let i=e=>{let t=new o;t.__webvpn_tcp_socket_init__(Promise.resolve(e),e),this.emit(`connection`,t)},a=e=>{this._localAddress=void 0;try{e&&this.listenerCount(`error`)>0&&this.emit(`error`,e)}finally{this._emitClose()}},s=e=>t.t.then(t=>t.cloud.webvpn.tcpSocketListener({localAddress:e,localPort:r.port,onConnection:i,onClose:a})),c=r.host?s(r.host):s(`::`).catch(()=>s(`0.0.0.0`)),l=this.__webvpn_tcp_socket_listener_init__(c);return r.callback&&l.then(e=>{e&&r.callback.call(this)}),this}_closeEmitted=!1;_emitClose(){this._closeEmitted||(this._closeEmitted=!0,this.emit(`close`))}close(e){return this._webVPNTcpSocketListenerPromise&&this._webVPNTcpSocketListenerPromise.then(async t=>{if(t)try{await t.close(),this._localAddress=void 0,this._emitClose(),e&&e()}catch(t){this._localAddress=void 0,this._emitClose(),e&&e(t)}}),this}address(){return this._localAddress??null}getConnections(e){throw Error(`Method not implemented.`)}ref(){return this}unref(){return this}maxConnections;connections;listening;async[Symbol.asyncDispose](){}},c=(e,t)=>new o().connect(e,t),l=(e,t)=>new o().connect(e,t),u=(e,t)=>{typeof e==`function`&&(t=e,e=void 0);let n=new s(e);return t&&n.on(`connection`,t),n},d={Socket:o,Server:s,connect:c,createConnection:l,createServer:u,isIP:n.r,isIPv4:n.i,isIPv6:n.a};Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return s}});
|