@fkn/lib 0.7.2 → 0.9.1
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 +1 -1
- package/api-BwrS6P0x.cjs +1 -0
- package/api-CAZo3BT0.js +73 -0
- package/{api-CI4d96Ty.d.ts → api-CLpsJzJy.d.ts} +23 -2
- package/{background-Bgznrosz.cjs → background-DMESyLZ6.cjs} +1 -1
- package/{background-EwGRMga_.js → background-DxYR_JMs.js} +1 -1
- package/cloud/dgram.cjs +1 -1
- package/cloud/dgram.js +1 -1
- package/cloud/fs/promises.d.ts +1 -1
- package/cloud/fs.cjs +1 -1
- package/cloud/fs.d.ts +2 -2
- 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-BxPdeAuj.d.ts → cloud-7C3sOMF_.d.ts} +3 -3
- package/{cloud-Gs4fvw2S.cjs → cloud-BcpPsNs3.cjs} +1 -1
- package/{cloud-C-QB3sIK.js → cloud-DArHoBaw.js} +4 -4
- package/cloud.cjs +1 -1
- package/cloud.d.ts +3 -3
- package/cloud.js +4 -4
- package/{dgram-CKRbKVzG.js → dgram-C1yYxLEI.js} +1 -1
- package/{dgram-DcvdNkg6.cjs → dgram-pCNllfov.cjs} +1 -1
- package/dgram.cjs +1 -1
- package/dgram.d.ts +1 -1
- package/dgram.js +1 -1
- package/dns.cjs +1 -1
- package/dns.js +1 -1
- package/{extension-BeARgX1g.cjs → extension-CjJNj5Yl.cjs} +1 -1
- package/{extension-CgXBc_iM.js → extension-Qs02HPzR.js} +2 -2
- package/extension.cjs +1 -1
- package/extension.js +2 -2
- package/fs/promises.cjs +1 -1
- package/fs/promises.d.ts +2 -2
- package/fs/promises.js +1 -1
- package/fs-B8Rc1zRI.cjs +1 -0
- package/fs-CvCcDnzN.js +260 -0
- package/{fs-BEfsbriO.d.ts → fs-DTmSCXwa.d.ts} +3 -3
- package/fs.cjs +1 -1
- package/fs.d.ts +3 -92
- package/fs.js +2 -2
- package/http.cjs +1 -1
- package/http.d.ts +1 -1
- package/http.js +1 -1
- package/index-Bt2VAVEC.d.ts +136 -0
- package/{index-C6ZoDJg8.d.ts → index-CJ0vHTcS.d.ts} +5 -2
- package/index.cjs +1 -1
- package/index.d.ts +7 -4
- package/index.js +10 -10
- package/{net-Cx8lDWau.d.ts → net--o3_puH-.d.ts} +1 -1
- package/{net-BPpdNdpy.cjs → net-BOyLJ3mh.cjs} +1 -1
- package/{net-BFYMbE4N.js → net-VAkfxAvn.js} +1 -1
- package/net.cjs +1 -1
- package/net.d.ts +1 -1
- package/net.js +1 -1
- package/node-fs-BMR2yCEt.cjs +1 -0
- package/{node-fs-Dbf93qP7.js → node-fs-DKfokOlh.js} +99 -82
- package/opfs/promises.d.ts +1 -1
- package/opfs.cjs +1 -1
- package/opfs.d.ts +1 -1
- package/opfs.js +1 -1
- package/package.json +1 -1
- package/packages.cjs +1 -1
- package/packages.js +1 -1
- package/{proxy-CuuSsVoC.js → proxy-B3rliZN8.js} +2 -2
- package/{proxy-Bo-8GoRU.cjs → proxy-g2yknq7C.cjs} +1 -1
- package/{storage-ezLkqmQR.cjs → storage-C1BT8jwJ.cjs} +1 -1
- package/{storage-DMETg6sP.js → storage-InqJHrkf.js} +1 -1
- package/api--bnCFd4w.js +0 -67
- package/api-DD5v1qP9.cjs +0 -1
- package/fs-7E0-tE2x.js +0 -82
- package/fs-BN4hkppN.cjs +0 -1
- package/node-fs-C0eKnboT.cjs +0 -1
package/api--bnCFd4w.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { expose as e } from "osra";
|
|
2
|
-
//#region src/lib/overlay.ts
|
|
3
|
-
var t = 32, n = typeof CSS < "u" && CSS.supports("clip-path", "path('M0 0H1V1H0Z')"), r = (e) => {
|
|
4
|
-
let t = e.style;
|
|
5
|
-
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");
|
|
6
|
-
}, i = ({ x: e, y: t, width: n, height: r }) => `M${e} ${t}h${n}v${r}h${-n}Z`, a = (e, { modal: t, rects: r }) => {
|
|
7
|
-
if (!n) {
|
|
8
|
-
let n = t || r.length > 0;
|
|
9
|
-
e.style.setProperty("pointer-events", n ? "auto" : "none", "important"), e.style.setProperty("visibility", n ? "visible" : "hidden", "important");
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
let a = t ? "none" : r.length === 0 ? "inset(100%)" : `path('${r.map(i).join("")}')`, o = a === "none" || CSS.supports("clip-path", a) ? a : "inset(100%)";
|
|
13
|
-
e.style.setProperty("clip-path", o, "important");
|
|
14
|
-
}, o = (e) => {
|
|
15
|
-
if (typeof e != "object" || !e) return null;
|
|
16
|
-
let { x: t, y: n, width: r, height: i } = e;
|
|
17
|
-
if (![
|
|
18
|
-
t,
|
|
19
|
-
n,
|
|
20
|
-
r,
|
|
21
|
-
i
|
|
22
|
-
].every((e) => typeof e == "number" && Number.isFinite(e))) return null;
|
|
23
|
-
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));
|
|
24
|
-
return {
|
|
25
|
-
x: s,
|
|
26
|
-
y: c,
|
|
27
|
-
width: l - s,
|
|
28
|
-
height: u - c
|
|
29
|
-
};
|
|
30
|
-
}, s = (e) => {
|
|
31
|
-
if (typeof e != "object" || !e) return null;
|
|
32
|
-
let n = e, r = (Array.isArray(n.rects) ? n.rects.slice(0, t) : []).map(o).filter((e) => e !== null && e.width > 0 && e.height > 0);
|
|
33
|
-
return {
|
|
34
|
-
modal: n.modal === !0,
|
|
35
|
-
rects: r
|
|
36
|
-
};
|
|
37
|
-
}, c = null, l = () => c !== null, u = (e) => {
|
|
38
|
-
r(e), a(e, {
|
|
39
|
-
modal: !1,
|
|
40
|
-
rects: []
|
|
41
|
-
}), c = e;
|
|
42
|
-
}, d = (e) => {
|
|
43
|
-
if (!c) return;
|
|
44
|
-
let t = s(e);
|
|
45
|
-
t && a(c, t);
|
|
46
|
-
}, f = "https://fkn.app", p = typeof globalThis < "u" && globalThis.document ? globalThis.document : void 0, m = p?.querySelector(`iframe[src="${f}/api"]`) ?? null, h = p?.createElement("iframe") ?? null;
|
|
47
|
-
!m && h && p && (h.src = `${f}/api`, p.body.appendChild(h));
|
|
48
|
-
var g = m ?? h, _ = g?.contentWindow ?? null;
|
|
49
|
-
g && p && u(g);
|
|
50
|
-
var v = (() => {
|
|
51
|
-
if (typeof window < "u") return _ ? {
|
|
52
|
-
receive: window,
|
|
53
|
-
emit: _
|
|
54
|
-
} : void 0;
|
|
55
|
-
if (typeof self < "u") return {
|
|
56
|
-
receive: self,
|
|
57
|
-
emit: self
|
|
58
|
-
};
|
|
59
|
-
})(), y = v !== void 0, b = v ? e({}, {
|
|
60
|
-
key: "fkn-api",
|
|
61
|
-
transport: v
|
|
62
|
-
}) : new Promise(() => {});
|
|
63
|
-
b.then((e) => {
|
|
64
|
-
l() && e.overlay.setHost(d);
|
|
65
|
-
}, () => {});
|
|
66
|
-
//#endregion
|
|
67
|
-
export { y as n, g as r, b as t };
|
package/api-DD5v1qP9.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
let e=require("osra");var t=32,n=typeof CSS<`u`&&CSS.supports(`clip-path`,`path('M0 0H1V1H0Z')`),r=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`)},i=({x:e,y:t,width:n,height:r})=>`M${e} ${t}h${n}v${r}h${-n}Z`,a=(e,{modal:t,rects:r})=>{if(!n){let n=t||r.length>0;e.style.setProperty(`pointer-events`,n?`auto`:`none`,`important`),e.style.setProperty(`visibility`,n?`visible`:`hidden`,`important`);return}let a=t?`none`:r.length===0?`inset(100%)`:`path('${r.map(i).join(``)}')`,o=a===`none`||CSS.supports(`clip-path`,a)?a:`inset(100%)`;e.style.setProperty(`clip-path`,o,`important`)},o=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}},s=e=>{if(typeof e!=`object`||!e)return null;let n=e,r=(Array.isArray(n.rects)?n.rects.slice(0,t):[]).map(o).filter(e=>e!==null&&e.width>0&&e.height>0);return{modal:n.modal===!0,rects:r}},c=null,l=()=>c!==null,u=e=>{r(e),a(e,{modal:!1,rects:[]}),c=e},d=e=>{if(!c)return;let t=s(e);t&&a(c,t)},f=`https://fkn.app`,p=typeof globalThis<`u`&&globalThis.document?globalThis.document:void 0,m=p?.querySelector(`iframe[src="${f}/api"]`)??null,h=p?.createElement(`iframe`)??null;!m&&h&&p&&(h.src=`${f}/api`,p.body.appendChild(h));var g=m??h,_=g?.contentWindow??null;g&&p&&u(g);var v=(()=>{if(typeof window<`u`)return _?{receive:window,emit:_}:void 0;if(typeof self<`u`)return{receive:self,emit:self}})(),y=v!==void 0,b=v?(0,e.expose)({},{key:`fkn-api`,transport:v}):new Promise(()=>{});b.then(e=>{l()&&e.overlay.setHost(d)},()=>{}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return b}});
|
package/fs-7E0-tE2x.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { n as e } from "./rolldown-runtime-DF993M8W.js";
|
|
2
|
-
import { t } from "./node-fs-Dbf93qP7.js";
|
|
3
|
-
import { i as n, n as r, o as i, s as a, u as o } from "./storage-DMETg6sP.js";
|
|
4
|
-
import { a as s, i as c, n as l, o as u, t as d } from "./opfs-7_GmzQ93.js";
|
|
5
|
-
//#region src/lib/fs/hybrid.ts
|
|
6
|
-
var f = /* @__PURE__ */ e({
|
|
7
|
-
available: () => g,
|
|
8
|
-
list: () => _,
|
|
9
|
-
pull: () => x,
|
|
10
|
-
readFile: () => v,
|
|
11
|
-
remove: () => b,
|
|
12
|
-
writeFile: () => y
|
|
13
|
-
}), p, m = async () => await (p ??= d().catch(() => !1)) ? !0 : (p = void 0, !1), h = () => r().catch(() => !1), g = async () => await m() || await h(), _ = async () => {
|
|
14
|
-
let [e, t] = await Promise.all([m().then((e) => e ? l() : []).catch(() => []), h().then((e) => e ? n() : []).catch(() => [])]), r = /* @__PURE__ */ new Map(), i = (e) => {
|
|
15
|
-
let t = Date.parse(e.updatedAt ?? "");
|
|
16
|
-
return Number.isFinite(t) ? t : 0;
|
|
17
|
-
}, a = (e) => {
|
|
18
|
-
let t = r.get(e.path);
|
|
19
|
-
(!t || i(e) >= i(t)) && r.set(e.path, e);
|
|
20
|
-
};
|
|
21
|
-
for (let t of e) a(t);
|
|
22
|
-
for (let e of t) a(e);
|
|
23
|
-
return [...r.values()];
|
|
24
|
-
}, v = async (e) => {
|
|
25
|
-
if (await m()) try {
|
|
26
|
-
return await c(e);
|
|
27
|
-
} catch (e) {
|
|
28
|
-
if (e?.name !== "NotFoundError") throw e;
|
|
29
|
-
}
|
|
30
|
-
let t = await i(e);
|
|
31
|
-
return await m() && u(e, t).catch(() => {}), t;
|
|
32
|
-
}, y = async (e, t, n) => {
|
|
33
|
-
let r = t instanceof Blob ? t : new Blob([t], n?.contentType ? { type: n.contentType } : void 0);
|
|
34
|
-
if (await m()) {
|
|
35
|
-
await u(e, r, n), await h() && o(e, r, n).catch((e) => console.warn("fs: cloud replicate failed", e));
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
if (await h()) return o(e, r, n);
|
|
39
|
-
throw Error("fs: no storage backend available");
|
|
40
|
-
}, b = async (e) => {
|
|
41
|
-
let t = [];
|
|
42
|
-
if (await m() && t.push(s(e).catch(() => {})), await h() && t.push(a(e).catch(() => {})), !t.length) throw Error("fs: no storage backend available");
|
|
43
|
-
await Promise.all(t);
|
|
44
|
-
}, x = async (e) => {
|
|
45
|
-
let t = await i(e);
|
|
46
|
-
return await m() && await u(e, t), t;
|
|
47
|
-
}, S = /* @__PURE__ */ e({
|
|
48
|
-
appendFile: () => z,
|
|
49
|
-
appendFileSync: () => D,
|
|
50
|
-
available: () => w,
|
|
51
|
-
default: () => Q,
|
|
52
|
-
exists: () => K,
|
|
53
|
-
existsSync: () => O,
|
|
54
|
-
flush: () => Y,
|
|
55
|
-
lstatSync: () => A,
|
|
56
|
-
mkdir: () => H,
|
|
57
|
-
mkdirSync: () => M,
|
|
58
|
-
mount: () => J,
|
|
59
|
-
promises: () => q,
|
|
60
|
-
pull: () => Z,
|
|
61
|
-
readFile: () => L,
|
|
62
|
-
readFileSync: () => T,
|
|
63
|
-
readdir: () => V,
|
|
64
|
-
readdirSync: () => j,
|
|
65
|
-
remount: () => X,
|
|
66
|
-
rename: () => G,
|
|
67
|
-
renameSync: () => I,
|
|
68
|
-
rm: () => U,
|
|
69
|
-
rmSync: () => N,
|
|
70
|
-
rmdirSync: () => P,
|
|
71
|
-
stat: () => B,
|
|
72
|
-
statSync: () => k,
|
|
73
|
-
unlink: () => W,
|
|
74
|
-
unlinkSync: () => F,
|
|
75
|
-
writeFile: () => R,
|
|
76
|
-
writeFileSync: () => E
|
|
77
|
-
}), C = t(f, { memfs: !0 }), { available: w, readFileSync: T, writeFileSync: E, appendFileSync: D, existsSync: O, statSync: k, lstatSync: A, readdirSync: j, mkdirSync: M, rmSync: N, rmdirSync: P, unlinkSync: F, renameSync: I, readFile: L, writeFile: R, appendFile: z, stat: B, readdir: V, mkdir: H, rm: U, unlink: W, rename: G, exists: K, promises: q, mount: J, flush: Y, remount: X } = C, Z = x, Q = {
|
|
78
|
-
...C,
|
|
79
|
-
pull: Z
|
|
80
|
-
};
|
|
81
|
-
//#endregion
|
|
82
|
-
export { E as A, N as C, W as D, k as E, F as O, U as S, B as T, V as _, O as a, G as b, S as c, M as d, J as f, T as g, L as h, K as i, R as k, A as l, Z as m, D as n, Y as o, q as p, w as r, Q as s, z as t, H as u, j as v, P as w, I as x, X as y };
|
package/fs-BN4hkppN.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./node-fs-C0eKnboT.cjs"),n=require("./storage-ezLkqmQR.cjs"),r=require("./opfs-uClkgnb5.cjs");var i=e.n({available:()=>c,list:()=>l,pull:()=>p,readFile:()=>u,remove:()=>f,writeFile:()=>d}),a,o=async()=>await(a??=r.t().catch(()=>!1))?!0:(a=void 0,!1),s=()=>n.n().catch(()=>!1),c=async()=>await o()||await s(),l=async()=>{let[e,t]=await Promise.all([o().then(e=>e?r.n():[]).catch(()=>[]),s().then(e=>e?n.i():[]).catch(()=>[])]),i=new Map,a=e=>{let t=Date.parse(e.updatedAt??``);return Number.isFinite(t)?t:0},c=e=>{let t=i.get(e.path);(!t||a(e)>=a(t))&&i.set(e.path,e)};for(let t of e)c(t);for(let e of t)c(e);return[...i.values()]},u=async e=>{if(await o())try{return await r.i(e)}catch(e){if(e?.name!==`NotFoundError`)throw e}let t=await n.o(e);return await o()&&r.o(e,t).catch(()=>{}),t},d=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),await s()&&n.u(e,a,i).catch(e=>console.warn(`fs: cloud replicate failed`,e));return}if(await s())return n.u(e,a,i);throw Error(`fs: no storage backend available`)},f=async e=>{let t=[];if(await o()&&t.push(r.a(e).catch(()=>{})),await s()&&t.push(n.s(e).catch(()=>{})),!t.length)throw Error(`fs: no storage backend available`);await Promise.all(t)},p=async e=>{let t=await n.o(e);return await o()&&await r.o(e,t),t},m=e.n({appendFile:()=>j,appendFileSync:()=>y,available:()=>g,default:()=>W,exists:()=>R,existsSync:()=>b,flush:()=>V,lstatSync:()=>S,mkdir:()=>P,mkdirSync:()=>w,mount:()=>B,promises:()=>z,pull:()=>U,readFile:()=>k,readFileSync:()=>_,readdir:()=>N,readdirSync:()=>C,remount:()=>H,rename:()=>L,renameSync:()=>O,rm:()=>F,rmSync:()=>T,rmdirSync:()=>E,stat:()=>M,statSync:()=>x,unlink:()=>I,unlinkSync:()=>D,writeFile:()=>A,writeFileSync:()=>v}),h=t.t(i,{memfs:!0}),{available:g,readFileSync:_,writeFileSync:v,appendFileSync:y,existsSync:b,statSync:x,lstatSync:S,readdirSync:C,mkdirSync:w,rmSync:T,rmdirSync:E,unlinkSync:D,renameSync:O,readFile:k,writeFile:A,appendFile:j,stat:M,readdir:N,mkdir:P,rm:F,unlink:I,rename:L,exists:R,promises:z,mount:B,flush:V,remount:H}=h,U=p,W={...h,pull:U};Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return H}});
|
package/node-fs-C0eKnboT.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
let e=require("buffer");var t={json:`application/json`,txt:`text/plain`,html:`text/html`,htm:`text/html`,css:`text/css`,js:`text/javascript`,mjs:`text/javascript`,xml:`application/xml`,csv:`text/csv`,md:`text/markdown`,svg:`image/svg+xml`,png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,pdf:`application/pdf`,wasm:`application/wasm`},n=(e,n)=>{if(n)return n;let r=e.split(`/`).pop()??``,i=r.lastIndexOf(`.`);if(!(i<=0))return t[r.slice(i+1).toLowerCase()]},r=(e,t)=>({size:e,mtimeMs:t,mtime:new Date(t),atimeMs:t,ctimeMs:t,mode:420,isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1}),i=(e=0)=>({size:0,mtimeMs:e,mtime:new Date(e),atimeMs:e,ctimeMs:e,mode:493,isFile:()=>!1,isDirectory:()=>!0,isSymbolicLink:()=>!1}),a=(e,t,n)=>{let r=Error(`${e}: ${{ENOENT:`no such file or directory`,EEXIST:`file already exists`,ENOTDIR:`not a directory`,EISDIR:`illegal operation on a directory`,ENOTEMPTY:`directory not empty`,ERR_FS_EISDIR:`is a directory`}[e]??e}, ${n} '${t}'`);return r.code=e,r.path=t,r.syscall=n,r},o=e=>{let t=[];for(let n of e.split(`/`))if(!(!n||n===`.`)){if(n===`..`){t.pop();continue}t.push(n)}return t.join(`/`)},s=e=>e.split(`/`).slice(0,-1).join(`/`),c=e=>typeof e==`string`?e:e instanceof URL?decodeURIComponent(e.pathname):e.toString(),l=e=>typeof e==`string`?e:e?.encoding??void 0,u=e=>typeof e==`object`?e?.contentType:void 0,d=e=>typeof e==`object`&&!!e?.recursive,f=(t,n)=>{let r=l(n);return r?e.Buffer.from(t).toString(r):e.Buffer.from(t)},p=(t,n)=>{if(typeof t==`string`)return new Uint8Array(e.Buffer.from(t,l(n)??`utf8`));if(t instanceof Uint8Array)return t.slice();if(t instanceof ArrayBuffer)return new Uint8Array(t).slice();if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength).slice();throw TypeError(`The "data" argument must be of type string, Buffer, TypedArray, or DataView`)},m=e=>{let t=new Map([[``,{kind:`dir`,mtimeMs:0}]]),c=new Set,l=new Set,u=()=>Date.now(),d=e=>{if(!e)return;let n=e.split(`/`),r=``;for(let e of n){r=r?`${r}/${e}`:e;let n=t.get(r);if(!n)t.set(r,{kind:`dir`,mtimeMs:u()});else if(n.kind===`file`)throw a(`ENOTDIR`,r,`mkdir`)}},f,p=()=>f??=(async()=>{let n=await e.list().catch(()=>[]);for(let r of n)try{let n=o(r.path);if(c.has(n))continue;let i=await(await e.readFile(r.path)).arrayBuffer();if(c.has(n)||l.has(n))continue;d(s(n));let a=Date.parse(r.updatedAt??``);t.set(n,{kind:`file`,data:new Uint8Array(i),mtimeMs:Number.isFinite(a)?a:u(),contentType:r.contentType??void 0})}catch{}})(),m=async()=>{f=void 0,await p()},h=async()=>{let r=[...c].map(async r=>{let i=t.get(r);if(i?.kind!==`file`){c.delete(r);return}let a=i.data,o=n(r,i.contentType);try{await e.writeFile(r,a,o?{contentType:o}:void 0);let n=t.get(r);n?.kind===`file`&&n.data===a&&c.delete(r)}catch{}}),i=[...l].map(async t=>{try{await e.remove(t),l.delete(t)}catch{}});await Promise.all([...r,...i])},g,_=()=>{g||=setTimeout(()=>{g=void 0,h().catch(()=>{})},250)};typeof addEventListener<`u`&&(addEventListener(`pagehide`,()=>{h().catch(()=>{})}),addEventListener(`visibilitychange`,()=>{typeof document<`u`&&document.visibilityState===`hidden`&&h().catch(()=>{})}));let v=e=>e.kind===`file`?r(e.data.byteLength,e.mtimeMs):i(e.mtimeMs),y=e=>t.has(o(e)),b=e=>{let n=t.get(o(e));if(!n)throw a(`ENOENT`,e,`stat`);return v(n)},x=e=>{let n=t.get(o(e));if(!n)throw a(`ENOENT`,e,`open`);if(n.kind===`dir`)throw a(`EISDIR`,e,`read`);return n.data},S=(e,t)=>{let n=new Uint8Array(e.byteLength+t.byteLength);return n.set(e,0),n.set(t,e.byteLength),n},C=(e,n,r,i)=>{let f=o(e);if(!f)throw a(`EISDIR`,e,`open`);let p=t.get(f);if(p?.kind===`dir`)throw a(`EISDIR`,e,`open`);d(s(f));let m=r&&p?.kind===`file`?S(p.data,n):n;t.set(f,{kind:`file`,data:m,mtimeMs:u(),contentType:i??(p?.kind===`file`?p.contentType:void 0)}),c.add(f),l.delete(f),_()},w=(e,n)=>{let r=o(e);if(r){if(t.has(r)){if(n)return;throw a(`EEXIST`,e,`mkdir`)}if(!n&&!t.has(s(r)))throw a(`ENOENT`,e,`mkdir`);d(r)}},T=e=>{let n=o(e),r=t.get(n);if(!r)throw a(`ENOENT`,e,`scandir`);if(r.kind===`file`)throw a(`ENOTDIR`,e,`scandir`);let i=n?`${n}/`:``,s=new Set;for(let e of t.keys()){if(!e||!e.startsWith(i))continue;let t=e.slice(i.length);t&&s.add(t.split(`/`)[0])}return[...s]},E=(e,{op:n,recursive:r,force:i})=>{let s=o(e),u=t.get(s);if(!u){if(i||n===`rmdir`&&r)return;throw a(`ENOENT`,e,n===`rmdir`?`rmdir`:`unlink`)}if(n===`unlink`&&u.kind===`dir`)throw a(`EISDIR`,e,`unlink`);if(n===`rmdir`&&u.kind===`file`)throw a(`ENOTDIR`,e,`rmdir`);if(n===`rm`&&u.kind===`dir`&&!r)throw a(`ERR_FS_EISDIR`,e,`rm`);let d=`${s}/`,f=[...t.keys()].filter(e=>e.startsWith(d));if(f.length&&!r)throw a(`ENOTEMPTY`,e,`rmdir`);for(let e of[s,...f]){let n=t.get(e);t.delete(e),n?.kind===`file`&&(c.delete(e),l.add(e))}_()};return{mount:p,remount:m,flush:h,exists:y,stat:b,readFile:x,writeFile:C,mkdir:w,readdir:T,remove:E,rename:(e,n)=>{let r=o(e),i=o(n);if(!r)throw a(`EBUSY`,e,`rename`);if(i===r||i.startsWith(`${r}/`))throw a(`EINVAL`,e,`rename`);let u=t.get(r);if(!u)throw a(`ENOENT`,e,`rename`);let f=t.get(i);if(f){if(f.kind!==u.kind)throw a(u.kind===`dir`?`ENOTDIR`:`EISDIR`,n,`rename`);E(i,{op:`rm`,recursive:!0,force:!0})}d(s(i));let p=`${r}/`,m=[r,...[...t.keys()].filter(e=>e.startsWith(p))];for(let e of m){let n=i+e.slice(r.length),a=t.get(e);t.set(n,a),t.delete(e),a.kind===`file`&&(c.add(n),l.delete(n),c.delete(e),l.add(e))}_()}}},h=(e,t)=>typeof e==`function`?e:t,g=e=>typeof e==`function`?void 0:e,_=(e,t)=>{e.then(e=>t(null,e),e=>t(e))},v=e=>{let t=m(e),n=(e,n)=>f(t.readFile(c(e)),n),r=(e,n,r)=>t.writeFile(c(e),p(n,r),!1,u(r)),i=(e,n,r)=>t.writeFile(c(e),p(n,r),!0,u(r)),o=e=>t.exists(c(e)),s=e=>t.stat(c(e)),l=e=>t.readdir(c(e)),_=(e,n)=>t.mkdir(c(e),d(n)),v=(e,n)=>t.remove(c(e),{op:`rm`,...n}),y=(e,n)=>t.remove(c(e),{op:`rmdir`,...n}),b=e=>t.remove(c(e),{op:`unlink`}),x=(e,n)=>t.rename(c(e),c(n)),S=(e,n)=>{t.mount().finally(()=>{let t;try{t=e()}catch(e){n(e);return}n(null,t)})},C=e=>t.mount().then(()=>e());return{available:e.available,readFileSync:n,writeFileSync:r,appendFileSync:i,existsSync:o,statSync:s,lstatSync:s,readdirSync:l,mkdirSync:_,rmSync:v,rmdirSync:y,unlinkSync:b,renameSync:x,readFile:(e,n,r)=>S(()=>f(t.readFile(c(e)),g(n)),h(n,r)),writeFile:(e,n,r,i)=>S(()=>t.writeFile(c(e),p(n,g(r)),!1,u(g(r))),h(r,i)),appendFile:(e,n,r,i)=>S(()=>t.writeFile(c(e),p(n,g(r)),!0,u(g(r))),h(r,i)),stat:(e,n)=>S(()=>t.stat(c(e)),n),readdir:(e,n,r)=>S(()=>t.readdir(c(e)),h(n,r)),mkdir:(e,n,r)=>S(()=>t.mkdir(c(e),d(g(n))),h(n,r)),rm:(e,n,r)=>S(()=>t.remove(c(e),{op:`rm`,...g(n)}),h(n,r)),unlink:(e,n)=>S(()=>t.remove(c(e),{op:`unlink`}),n),rename:(e,n,r)=>S(()=>t.rename(c(e),c(n)),r),exists:(e,n)=>{t.mount().finally(()=>n(t.exists(c(e))))},promises:{readFile:(e,n)=>C(()=>f(t.readFile(c(e)),n)),writeFile:(e,n,r)=>C(()=>t.writeFile(c(e),p(n,r),!1,u(r))),appendFile:(e,n,r)=>C(()=>t.writeFile(c(e),p(n,r),!0,u(r))),stat:e=>C(()=>t.stat(c(e))),lstat:e=>C(()=>t.stat(c(e))),readdir:e=>C(()=>t.readdir(c(e))),mkdir:(e,n)=>C(()=>t.mkdir(c(e),d(n))),rm:(e,n)=>C(()=>t.remove(c(e),{op:`rm`,...n})),rmdir:(e,n)=>C(()=>t.remove(c(e),{op:`rmdir`,...n})),unlink:e=>C(()=>t.remove(c(e),{op:`unlink`})),rename:(e,n)=>C(()=>t.rename(c(e),c(n))),access:e=>C(()=>{if(!t.exists(c(e)))throw a(`ENOENT`,c(e),`access`)})},mount:t.mount,flush:t.flush,remount:t.remount}},y=e=>{let t=async(t,n)=>{let r=await e.readFile(c(t));return f(new Uint8Array(await r.arrayBuffer()),n)},s=async(t,r,i)=>{let a=c(t),o=n(a,u(i));await e.writeFile(a,p(r,i),o?{contentType:o}:void 0)},l=t=>e.remove(c(t)),d=async(t,n)=>{let r=o(c(t)),i=o(c(n));if(r===i)return;let a=await e.readFile(r);await e.writeFile(i,a),await e.remove(r)},m=async t=>{let n=o(c(t)),r=n?`${n}/`:``,i=new Set;for(let t of await e.list()){let e=o(t.path);if(r&&!e.startsWith(r))continue;let n=e.slice(r.length);n&&i.add(n.split(`/`)[0])}return[...i]},v=async(e,t)=>{},y=async(t,n)=>{let r=o(c(t));if(!n?.recursive){await e.remove(c(t));return}let i=`${r}/`,a=await e.list();await Promise.all(a.filter(e=>{let t=o(e.path);return t===r||t.startsWith(i)}).map(t=>e.remove(t.path).catch(()=>{})))},b=async t=>{let n=o(c(t)),s=await e.list(),l=s.find(e=>o(e.path)===n);if(l){let e=Date.parse(l.updatedAt??``);return r(l.size,Number.isFinite(e)?e:0)}if(s.some(e=>o(e.path).startsWith(`${n}/`)))return i();throw a(`ENOENT`,c(t),`stat`)},x={readFile:t,writeFile:s,unlink:l,rename:d,readdir:m,mkdir:v,rm:y,rmdir:y,stat:b,lstat:b,access:async e=>{await b(e)}};return{available:e.available,promises:x,readFile:(e,n,r)=>_(t(e,g(n)),h(n,r)),writeFile:(e,t,n,r)=>_(s(e,t,g(n)),h(n,r)),unlink:(e,t)=>_(l(e),t),rename:(e,t,n)=>_(d(e,t),n),readdir:(e,t,n)=>_(m(e),h(t,n)),mkdir:(e,t,n)=>_(v(),h(t,n)),rm:(e,t,n)=>_(y(e,g(t)),h(t,n)),stat:(e,t)=>_(b(e),t)}};function b(e,t){return t.memfs?v(e):y(e)}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return b}});
|