@fkn/lib 0.4.8 → 0.5.0
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 -0
- package/account.d.ts +17 -0
- package/account.js +28 -0
- package/api-ByfayMm1.js +67 -0
- package/api-CDb2pv7C.cjs +1 -0
- package/background-Dk_vaVP1.cjs +1 -0
- package/{background-CTsVv_a0.js → background-TtzKw6g0.js} +5 -4
- package/chunk-B6C_zzib.cjs +1 -0
- package/chunk-CPXzm0be.js +11 -0
- package/cloud/dgram.cjs +1 -0
- package/cloud/dgram.d.ts +537 -0
- package/cloud/dgram.js +4 -0
- package/cloud/dns.cjs +1 -0
- package/cloud/dns.d.ts +12 -0
- package/cloud/dns.js +3 -0
- package/cloud/fs/promises.cjs +1 -0
- package/cloud/fs/promises.d.ts +45 -0
- package/cloud/fs/promises.js +8 -0
- package/cloud/fs.cjs +1 -0
- package/cloud/fs.d.ts +75 -0
- package/cloud/fs.js +20 -0
- package/cloud/http.cjs +1 -0
- package/cloud/http.d.ts +767 -0
- package/cloud/http.js +5 -0
- package/cloud/net.cjs +1 -0
- package/cloud/net.d.ts +606 -0
- package/cloud/net.js +4 -0
- package/cloud-BVnscun4.js +33 -0
- package/cloud-DTL2B5pW.cjs +1 -0
- package/cloud.cjs +1 -0
- package/cloud.d.ts +1048 -0
- package/cloud.js +12 -0
- package/desktop.cjs +1 -0
- package/desktop.d.ts +49 -0
- package/desktop.js +51 -0
- package/dgram-5YUb70O2.js +326 -0
- package/dgram-Cdi6Y7zJ.cjs +1 -0
- package/dgram.cjs +1 -0
- package/dgram.d.ts +537 -0
- package/dgram.js +4 -0
- package/dns.cjs +1 -0
- package/dns.d.ts +12 -0
- package/dns.js +6 -0
- package/extension-9Uv_0HdS.cjs +1 -0
- package/extension-Dgz0UTy0.js +245 -0
- package/extension.cjs +1 -0
- package/extension.d.ts +853 -0
- package/extension.js +5 -0
- package/fs/promises.cjs +1 -0
- package/fs/promises.d.ts +46 -0
- package/fs/promises.js +8 -0
- package/fs-B7JumDCn.js +78 -0
- package/fs-DrwvwtqC.cjs +1 -0
- package/fs.cjs +1 -0
- package/fs.d.ts +84 -0
- package/fs.js +5 -0
- package/http.cjs +9 -0
- package/http.d.ts +767 -0
- package/http.js +541 -0
- package/index.cjs +1 -9
- package/index.d.ts +495 -268
- package/index.js +27 -1569
- package/locator-Cf7M3QKN.cjs +53 -0
- package/{locator-Q5m8i40Z.js → locator-DxAsGV_o.js} +331 -337
- package/net-Bl6_W3bd.js +275 -0
- package/net-C5kWnI4C.cjs +1 -0
- package/net.cjs +1 -0
- package/net.d.ts +606 -0
- package/net.js +4 -0
- package/node-fs-Bd_UUx1m.js +361 -0
- package/node-fs-lrlD_zqB.cjs +1 -0
- package/opfs/promises.cjs +1 -0
- package/opfs/promises.d.ts +46 -0
- package/opfs/promises.js +6 -0
- package/opfs-BfcYLPGb.js +55 -0
- package/opfs-Dsi4FkJU.cjs +1 -0
- package/opfs.cjs +1 -0
- package/opfs.d.ts +83 -0
- package/opfs.js +35 -0
- package/package.json +91 -1
- package/proxy-A9UvWUaF.cjs +1 -0
- package/proxy-wiZN4eTR.js +14 -0
- package/storage-BadvHtv0.cjs +1 -0
- package/storage-z0q3iena.js +13 -0
- package/utils-BsNRWMfl.cjs +1 -0
- package/utils-CNydj3OT.js +52 -0
- package/background-BqRFQggD.cjs +0 -1
- package/locator-Cjl21Nkt.cjs +0 -53
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
import { Buffer as e } from "buffer";
|
|
2
|
+
//#region src/lib/fs/content-type.ts
|
|
3
|
+
var t = {
|
|
4
|
+
json: "application/json",
|
|
5
|
+
txt: "text/plain",
|
|
6
|
+
html: "text/html",
|
|
7
|
+
htm: "text/html",
|
|
8
|
+
css: "text/css",
|
|
9
|
+
js: "text/javascript",
|
|
10
|
+
mjs: "text/javascript",
|
|
11
|
+
xml: "application/xml",
|
|
12
|
+
csv: "text/csv",
|
|
13
|
+
md: "text/markdown",
|
|
14
|
+
svg: "image/svg+xml",
|
|
15
|
+
png: "image/png",
|
|
16
|
+
jpg: "image/jpeg",
|
|
17
|
+
jpeg: "image/jpeg",
|
|
18
|
+
gif: "image/gif",
|
|
19
|
+
webp: "image/webp",
|
|
20
|
+
pdf: "application/pdf",
|
|
21
|
+
wasm: "application/wasm"
|
|
22
|
+
}, n = (e, n) => {
|
|
23
|
+
if (n) return n;
|
|
24
|
+
let r = e.split("/").pop() ?? "", i = r.lastIndexOf(".");
|
|
25
|
+
if (!(i <= 0)) return t[r.slice(i + 1).toLowerCase()];
|
|
26
|
+
}, r = (e, t) => ({
|
|
27
|
+
size: e,
|
|
28
|
+
mtimeMs: t,
|
|
29
|
+
mtime: new Date(t),
|
|
30
|
+
atimeMs: t,
|
|
31
|
+
ctimeMs: t,
|
|
32
|
+
mode: 420,
|
|
33
|
+
isFile: () => !0,
|
|
34
|
+
isDirectory: () => !1,
|
|
35
|
+
isSymbolicLink: () => !1
|
|
36
|
+
}), i = (e = 0) => ({
|
|
37
|
+
size: 0,
|
|
38
|
+
mtimeMs: e,
|
|
39
|
+
mtime: new Date(e),
|
|
40
|
+
atimeMs: e,
|
|
41
|
+
ctimeMs: e,
|
|
42
|
+
mode: 493,
|
|
43
|
+
isFile: () => !1,
|
|
44
|
+
isDirectory: () => !0,
|
|
45
|
+
isSymbolicLink: () => !1
|
|
46
|
+
}), a = (e, t, n) => {
|
|
47
|
+
let r = /* @__PURE__ */ Error(`${e}: ${{
|
|
48
|
+
ENOENT: "no such file or directory",
|
|
49
|
+
EEXIST: "file already exists",
|
|
50
|
+
ENOTDIR: "not a directory",
|
|
51
|
+
EISDIR: "illegal operation on a directory",
|
|
52
|
+
ENOTEMPTY: "directory not empty"
|
|
53
|
+
}[e] ?? e}, ${n} '${t}'`);
|
|
54
|
+
return r.code = e, r.path = t, r.syscall = n, r;
|
|
55
|
+
}, o = (e) => {
|
|
56
|
+
let t = [];
|
|
57
|
+
for (let n of e.split("/")) if (!(!n || n === ".")) {
|
|
58
|
+
if (n === "..") {
|
|
59
|
+
t.pop();
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
t.push(n);
|
|
63
|
+
}
|
|
64
|
+
return t.join("/");
|
|
65
|
+
}, 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) => {
|
|
66
|
+
let r = l(n);
|
|
67
|
+
return r ? e.from(t).toString(r) : e.from(t);
|
|
68
|
+
}, p = (t, n) => {
|
|
69
|
+
if (typeof t == "string") return new Uint8Array(e.from(t, l(n) ?? "utf8"));
|
|
70
|
+
if (t instanceof Uint8Array) return t.slice();
|
|
71
|
+
if (t instanceof ArrayBuffer) return new Uint8Array(t).slice();
|
|
72
|
+
if (ArrayBuffer.isView(t)) return new Uint8Array(t.buffer, t.byteOffset, t.byteLength).slice();
|
|
73
|
+
throw TypeError("The \"data\" argument must be of type string, Buffer, TypedArray, or DataView");
|
|
74
|
+
}, m = (e) => {
|
|
75
|
+
let t = new Map([["", {
|
|
76
|
+
kind: "dir",
|
|
77
|
+
mtimeMs: 0
|
|
78
|
+
}]]), c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Set(), u = () => Date.now(), d = (e) => {
|
|
79
|
+
if (!e) return;
|
|
80
|
+
let n = e.split("/"), r = "";
|
|
81
|
+
for (let e of n) {
|
|
82
|
+
r = r ? `${r}/${e}` : e;
|
|
83
|
+
let n = t.get(r);
|
|
84
|
+
if (!n) t.set(r, {
|
|
85
|
+
kind: "dir",
|
|
86
|
+
mtimeMs: u()
|
|
87
|
+
});
|
|
88
|
+
else if (n.kind === "file") throw a("ENOTDIR", r, "mkdir");
|
|
89
|
+
}
|
|
90
|
+
}, f, p = () => f ??= (async () => {
|
|
91
|
+
let n = await e.list().catch(() => []);
|
|
92
|
+
for (let r of n) try {
|
|
93
|
+
let n = o(r.path);
|
|
94
|
+
if (c.has(n)) continue;
|
|
95
|
+
let i = await (await e.readFile(r.path)).arrayBuffer();
|
|
96
|
+
if (c.has(n) || l.has(n)) continue;
|
|
97
|
+
d(s(n));
|
|
98
|
+
let a = Date.parse(r.updatedAt ?? "");
|
|
99
|
+
t.set(n, {
|
|
100
|
+
kind: "file",
|
|
101
|
+
data: new Uint8Array(i),
|
|
102
|
+
mtimeMs: Number.isFinite(a) ? a : u(),
|
|
103
|
+
contentType: r.contentType ?? void 0
|
|
104
|
+
});
|
|
105
|
+
} catch {}
|
|
106
|
+
})(), m = async () => {
|
|
107
|
+
f = void 0, await p();
|
|
108
|
+
}, h = async () => {
|
|
109
|
+
let r = [...c].map(async (r) => {
|
|
110
|
+
let i = t.get(r);
|
|
111
|
+
if (i?.kind !== "file") {
|
|
112
|
+
c.delete(r);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
let a = i.data, o = n(r, i.contentType);
|
|
116
|
+
try {
|
|
117
|
+
await e.writeFile(r, a, o ? { contentType: o } : void 0);
|
|
118
|
+
let n = t.get(r);
|
|
119
|
+
n?.kind === "file" && n.data === a && c.delete(r);
|
|
120
|
+
} catch {}
|
|
121
|
+
}), i = [...l].map(async (t) => {
|
|
122
|
+
try {
|
|
123
|
+
await e.remove(t), l.delete(t);
|
|
124
|
+
} catch {}
|
|
125
|
+
});
|
|
126
|
+
await Promise.all([...r, ...i]);
|
|
127
|
+
}, g, _ = () => {
|
|
128
|
+
g ||= setTimeout(() => {
|
|
129
|
+
g = void 0, h().catch(() => {});
|
|
130
|
+
}, 250);
|
|
131
|
+
};
|
|
132
|
+
typeof addEventListener < "u" && (addEventListener("pagehide", () => {
|
|
133
|
+
h().catch(() => {});
|
|
134
|
+
}), addEventListener("visibilitychange", () => {
|
|
135
|
+
typeof document < "u" && document.visibilityState === "hidden" && h().catch(() => {});
|
|
136
|
+
}));
|
|
137
|
+
let v = (e) => e.kind === "file" ? r(e.data.byteLength, e.mtimeMs) : i(e.mtimeMs), y = (e) => t.has(o(e)), b = (e) => {
|
|
138
|
+
let n = t.get(o(e));
|
|
139
|
+
if (!n) throw a("ENOENT", e, "stat");
|
|
140
|
+
return v(n);
|
|
141
|
+
}, x = (e) => {
|
|
142
|
+
let n = t.get(o(e));
|
|
143
|
+
if (!n) throw a("ENOENT", e, "open");
|
|
144
|
+
if (n.kind === "dir") throw a("EISDIR", e, "read");
|
|
145
|
+
return n.data;
|
|
146
|
+
}, S = (e, t) => {
|
|
147
|
+
let n = new Uint8Array(e.byteLength + t.byteLength);
|
|
148
|
+
return n.set(e, 0), n.set(t, e.byteLength), n;
|
|
149
|
+
}, C = (e, n, r, i) => {
|
|
150
|
+
let f = o(e);
|
|
151
|
+
if (!f) throw a("EISDIR", e, "open");
|
|
152
|
+
let p = t.get(f);
|
|
153
|
+
if (p?.kind === "dir") throw a("EISDIR", e, "open");
|
|
154
|
+
d(s(f));
|
|
155
|
+
let m = r && p?.kind === "file" ? S(p.data, n) : n;
|
|
156
|
+
t.set(f, {
|
|
157
|
+
kind: "file",
|
|
158
|
+
data: m,
|
|
159
|
+
mtimeMs: u(),
|
|
160
|
+
contentType: i ?? (p?.kind === "file" ? p.contentType : void 0)
|
|
161
|
+
}), c.add(f), l.delete(f), _();
|
|
162
|
+
}, w = (e, n) => {
|
|
163
|
+
let r = o(e);
|
|
164
|
+
if (r) {
|
|
165
|
+
if (t.has(r)) {
|
|
166
|
+
if (n) return;
|
|
167
|
+
throw a("EEXIST", e, "mkdir");
|
|
168
|
+
}
|
|
169
|
+
if (!n && !t.has(s(r))) throw a("ENOENT", e, "mkdir");
|
|
170
|
+
d(r);
|
|
171
|
+
}
|
|
172
|
+
}, T = (e) => {
|
|
173
|
+
let n = o(e), r = t.get(n);
|
|
174
|
+
if (!r) throw a("ENOENT", e, "scandir");
|
|
175
|
+
if (r.kind === "file") throw a("ENOTDIR", e, "scandir");
|
|
176
|
+
let i = n ? `${n}/` : "", s = /* @__PURE__ */ new Set();
|
|
177
|
+
for (let e of t.keys()) {
|
|
178
|
+
if (!e || !e.startsWith(i)) continue;
|
|
179
|
+
let t = e.slice(i.length);
|
|
180
|
+
t && s.add(t.split("/")[0]);
|
|
181
|
+
}
|
|
182
|
+
return [...s];
|
|
183
|
+
}, E = (e, n) => {
|
|
184
|
+
let r = o(e);
|
|
185
|
+
if (!t.get(r)) {
|
|
186
|
+
if (n) return;
|
|
187
|
+
throw a("ENOENT", e, "unlink");
|
|
188
|
+
}
|
|
189
|
+
let i = `${r}/`, s = [...t.keys()].filter((e) => e.startsWith(i));
|
|
190
|
+
if (s.length && !n) throw a("ENOTEMPTY", e, "rmdir");
|
|
191
|
+
for (let e of [r, ...s]) {
|
|
192
|
+
let n = t.get(e);
|
|
193
|
+
t.delete(e), n?.kind === "file" && (c.delete(e), l.add(e));
|
|
194
|
+
}
|
|
195
|
+
_();
|
|
196
|
+
};
|
|
197
|
+
return {
|
|
198
|
+
mount: p,
|
|
199
|
+
remount: m,
|
|
200
|
+
flush: h,
|
|
201
|
+
exists: y,
|
|
202
|
+
stat: b,
|
|
203
|
+
readFile: x,
|
|
204
|
+
writeFile: C,
|
|
205
|
+
mkdir: w,
|
|
206
|
+
readdir: T,
|
|
207
|
+
remove: E,
|
|
208
|
+
rename: (e, n) => {
|
|
209
|
+
let r = o(e), i = o(n);
|
|
210
|
+
if (!r) throw a("EBUSY", e, "rename");
|
|
211
|
+
if (i === r || i.startsWith(`${r}/`)) throw a("EINVAL", e, "rename");
|
|
212
|
+
let u = t.get(r);
|
|
213
|
+
if (!u) throw a("ENOENT", e, "rename");
|
|
214
|
+
let f = t.get(i);
|
|
215
|
+
if (f) {
|
|
216
|
+
if (f.kind !== u.kind) throw a(u.kind === "dir" ? "ENOTDIR" : "EISDIR", n, "rename");
|
|
217
|
+
E(i, !0);
|
|
218
|
+
}
|
|
219
|
+
d(s(i));
|
|
220
|
+
let p = `${r}/`, m = [r, ...[...t.keys()].filter((e) => e.startsWith(p))];
|
|
221
|
+
for (let e of m) {
|
|
222
|
+
let n = i + e.slice(r.length), a = t.get(e);
|
|
223
|
+
t.set(n, a), t.delete(e), a.kind === "file" && (c.add(n), l.delete(n), c.delete(e), l.add(e));
|
|
224
|
+
}
|
|
225
|
+
_();
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
}, h = (e, t) => typeof e == "function" ? e : t, g = (e) => typeof e == "function" ? void 0 : e, _ = (e, t) => {
|
|
229
|
+
e.then((e) => t(null, e), (e) => t(e));
|
|
230
|
+
}, v = (e) => {
|
|
231
|
+
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), !!n?.recursive), y = (e, n) => t.remove(c(e), !!n?.recursive), b = (e) => t.remove(c(e), !1), x = (e, n) => t.rename(c(e), c(n)), S = (e, n) => {
|
|
232
|
+
t.mount().finally(() => {
|
|
233
|
+
let t;
|
|
234
|
+
try {
|
|
235
|
+
t = e();
|
|
236
|
+
} catch (e) {
|
|
237
|
+
n(e);
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
n(null, t);
|
|
241
|
+
});
|
|
242
|
+
}, C = (e) => t.mount().then(() => e());
|
|
243
|
+
return {
|
|
244
|
+
available: e.available,
|
|
245
|
+
readFileSync: n,
|
|
246
|
+
writeFileSync: r,
|
|
247
|
+
appendFileSync: i,
|
|
248
|
+
existsSync: o,
|
|
249
|
+
statSync: s,
|
|
250
|
+
lstatSync: s,
|
|
251
|
+
readdirSync: l,
|
|
252
|
+
mkdirSync: _,
|
|
253
|
+
rmSync: v,
|
|
254
|
+
rmdirSync: y,
|
|
255
|
+
unlinkSync: b,
|
|
256
|
+
renameSync: x,
|
|
257
|
+
readFile: (e, n, r) => S(() => f(t.readFile(c(e)), g(n)), h(n, r)),
|
|
258
|
+
writeFile: (e, n, r, i) => S(() => t.writeFile(c(e), p(n, g(r)), !1, u(g(r))), h(r, i)),
|
|
259
|
+
appendFile: (e, n, r, i) => S(() => t.writeFile(c(e), p(n, g(r)), !0, u(g(r))), h(r, i)),
|
|
260
|
+
stat: (e, n) => S(() => t.stat(c(e)), n),
|
|
261
|
+
readdir: (e, n, r) => S(() => t.readdir(c(e)), h(n, r)),
|
|
262
|
+
mkdir: (e, n, r) => S(() => t.mkdir(c(e), d(g(n))), h(n, r)),
|
|
263
|
+
rm: (e, n, r) => S(() => t.remove(c(e), !!g(n)?.recursive), h(n, r)),
|
|
264
|
+
unlink: (e, n) => S(() => t.remove(c(e), !1), n),
|
|
265
|
+
rename: (e, n, r) => S(() => t.rename(c(e), c(n)), r),
|
|
266
|
+
exists: (e, n) => {
|
|
267
|
+
t.mount().finally(() => n(t.exists(c(e))));
|
|
268
|
+
},
|
|
269
|
+
promises: {
|
|
270
|
+
readFile: (e, n) => C(() => f(t.readFile(c(e)), n)),
|
|
271
|
+
writeFile: (e, n, r) => C(() => t.writeFile(c(e), p(n, r), !1, u(r))),
|
|
272
|
+
appendFile: (e, n, r) => C(() => t.writeFile(c(e), p(n, r), !0, u(r))),
|
|
273
|
+
stat: (e) => C(() => t.stat(c(e))),
|
|
274
|
+
lstat: (e) => C(() => t.stat(c(e))),
|
|
275
|
+
readdir: (e) => C(() => t.readdir(c(e))),
|
|
276
|
+
mkdir: (e, n) => C(() => t.mkdir(c(e), d(n))),
|
|
277
|
+
rm: (e, n) => C(() => t.remove(c(e), !!n?.recursive)),
|
|
278
|
+
rmdir: (e, n) => C(() => t.remove(c(e), !!n?.recursive)),
|
|
279
|
+
unlink: (e) => C(() => t.remove(c(e), !1)),
|
|
280
|
+
rename: (e, n) => C(() => t.rename(c(e), c(n))),
|
|
281
|
+
access: (e) => C(() => {
|
|
282
|
+
if (!t.exists(c(e))) throw a("ENOENT", c(e), "access");
|
|
283
|
+
})
|
|
284
|
+
},
|
|
285
|
+
mount: t.mount,
|
|
286
|
+
flush: t.flush,
|
|
287
|
+
remount: t.remount
|
|
288
|
+
};
|
|
289
|
+
}, y = (e) => {
|
|
290
|
+
let t = async (t, n) => {
|
|
291
|
+
let r = await e.readFile(c(t));
|
|
292
|
+
return f(new Uint8Array(await r.arrayBuffer()), n);
|
|
293
|
+
}, s = async (t, r, i) => {
|
|
294
|
+
let a = c(t), o = n(a, u(i));
|
|
295
|
+
await e.writeFile(a, p(r, i), o ? { contentType: o } : void 0);
|
|
296
|
+
}, l = (t) => e.remove(c(t)), d = async (t, n) => {
|
|
297
|
+
let r = o(c(t)), i = o(c(n));
|
|
298
|
+
if (r === i) return;
|
|
299
|
+
let a = await e.readFile(r);
|
|
300
|
+
await e.writeFile(i, a), await e.remove(r);
|
|
301
|
+
}, m = async (t) => {
|
|
302
|
+
let n = o(c(t)), r = n ? `${n}/` : "", i = /* @__PURE__ */ new Set();
|
|
303
|
+
for (let t of await e.list()) {
|
|
304
|
+
let e = o(t.path);
|
|
305
|
+
if (r && !e.startsWith(r)) continue;
|
|
306
|
+
let n = e.slice(r.length);
|
|
307
|
+
n && i.add(n.split("/")[0]);
|
|
308
|
+
}
|
|
309
|
+
return [...i];
|
|
310
|
+
}, v = async (e, t) => {}, y = async (t, n) => {
|
|
311
|
+
let r = o(c(t));
|
|
312
|
+
if (!n?.recursive) {
|
|
313
|
+
await e.remove(c(t));
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
let i = `${r}/`, a = await e.list();
|
|
317
|
+
await Promise.all(a.filter((e) => {
|
|
318
|
+
let t = o(e.path);
|
|
319
|
+
return t === r || t.startsWith(i);
|
|
320
|
+
}).map((t) => e.remove(t.path).catch(() => {})));
|
|
321
|
+
}, b = async (t) => {
|
|
322
|
+
let n = o(c(t)), s = await e.list(), l = s.find((e) => o(e.path) === n);
|
|
323
|
+
if (l) {
|
|
324
|
+
let e = Date.parse(l.updatedAt ?? "");
|
|
325
|
+
return r(l.size, Number.isFinite(e) ? e : 0);
|
|
326
|
+
}
|
|
327
|
+
if (s.some((e) => o(e.path).startsWith(`${n}/`))) return i();
|
|
328
|
+
throw a("ENOENT", c(t), "stat");
|
|
329
|
+
}, x = {
|
|
330
|
+
readFile: t,
|
|
331
|
+
writeFile: s,
|
|
332
|
+
unlink: l,
|
|
333
|
+
rename: d,
|
|
334
|
+
readdir: m,
|
|
335
|
+
mkdir: v,
|
|
336
|
+
rm: y,
|
|
337
|
+
rmdir: y,
|
|
338
|
+
stat: b,
|
|
339
|
+
lstat: b,
|
|
340
|
+
access: async (e) => {
|
|
341
|
+
await b(e);
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
return {
|
|
345
|
+
available: e.available,
|
|
346
|
+
promises: x,
|
|
347
|
+
readFile: (e, n, r) => _(t(e, g(n)), h(n, r)),
|
|
348
|
+
writeFile: (e, t, n, r) => _(s(e, t, g(n)), h(n, r)),
|
|
349
|
+
unlink: (e, t) => _(l(e), t),
|
|
350
|
+
rename: (e, t, n) => _(d(e, t), n),
|
|
351
|
+
readdir: (e, t, n) => _(m(e), h(t, n)),
|
|
352
|
+
mkdir: (e, t, n) => _(v(), h(t, n)),
|
|
353
|
+
rm: (e, t, n) => _(y(e, g(t)), h(t, n)),
|
|
354
|
+
stat: (e, t) => _(b(e), t)
|
|
355
|
+
};
|
|
356
|
+
};
|
|
357
|
+
function b(e, t) {
|
|
358
|
+
return t.memfs ? v(e) : y(e);
|
|
359
|
+
}
|
|
360
|
+
//#endregion
|
|
361
|
+
export { b as t };
|
|
@@ -0,0 +1 @@
|
|
|
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`}[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,n)=>{let r=o(e);if(!t.get(r)){if(n)return;throw a(`ENOENT`,e,`unlink`)}let i=`${r}/`,s=[...t.keys()].filter(e=>e.startsWith(i));if(s.length&&!n)throw a(`ENOTEMPTY`,e,`rmdir`);for(let e of[r,...s]){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,!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),!!n?.recursive),y=(e,n)=>t.remove(c(e),!!n?.recursive),b=e=>t.remove(c(e),!1),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),!!g(n)?.recursive),h(n,r)),unlink:(e,n)=>S(()=>t.remove(c(e),!1),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),!!n?.recursive)),rmdir:(e,n)=>C(()=>t.remove(c(e),!!n?.recursive)),unlink:e=>C(()=>t.remove(c(e),!1)),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}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../node-fs-lrlD_zqB.cjs`);var{readFile:e,writeFile:t,appendFile:n,unlink:r,rename:i,readdir:a,mkdir:o,rm:s,rmdir:c,stat:l,lstat:u,access:d}=require(`../opfs.cjs`).promises;exports.access=d,exports.appendFile=n,exports.lstat=u,exports.mkdir=o,exports.readFile=e,exports.readdir=a,exports.rename=i,exports.rm=s,exports.rmdir=c,exports.stat=l,exports.unlink=r,exports.writeFile=t;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as node_fs from 'node:fs';
|
|
2
|
+
|
|
3
|
+
type ReadOptions = BufferEncoding | {
|
|
4
|
+
encoding?: BufferEncoding | null;
|
|
5
|
+
flag?: string;
|
|
6
|
+
} | null | undefined;
|
|
7
|
+
type WriteOptions = BufferEncoding | {
|
|
8
|
+
encoding?: BufferEncoding | null;
|
|
9
|
+
mode?: number;
|
|
10
|
+
flag?: string;
|
|
11
|
+
contentType?: string;
|
|
12
|
+
} | null | undefined;
|
|
13
|
+
type WriteData = string | Uint8Array | ArrayBuffer | DataView;
|
|
14
|
+
type MakeOptions = {
|
|
15
|
+
recursive?: boolean;
|
|
16
|
+
} | number | null | undefined;
|
|
17
|
+
type Stats = {
|
|
18
|
+
size: number;
|
|
19
|
+
mtimeMs: number;
|
|
20
|
+
mtime: Date;
|
|
21
|
+
atimeMs: number;
|
|
22
|
+
ctimeMs: number;
|
|
23
|
+
mode: number;
|
|
24
|
+
isFile: () => boolean;
|
|
25
|
+
isDirectory: () => boolean;
|
|
26
|
+
isSymbolicLink: () => boolean;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
declare const readFile: (path: node_fs.PathLike, options?: ReadOptions) => Promise<Buffer | string>;
|
|
30
|
+
declare const writeFile: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => Promise<void>;
|
|
31
|
+
declare const appendFile: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => Promise<void>;
|
|
32
|
+
declare const unlink: (path: node_fs.PathLike) => Promise<void>;
|
|
33
|
+
declare const rename: (from: node_fs.PathLike, to: node_fs.PathLike) => Promise<void>;
|
|
34
|
+
declare const readdir: (path: node_fs.PathLike) => Promise<string[]>;
|
|
35
|
+
declare const mkdir: (path: node_fs.PathLike, options?: MakeOptions) => Promise<void>;
|
|
36
|
+
declare const rm: (path: node_fs.PathLike, options?: {
|
|
37
|
+
recursive?: boolean;
|
|
38
|
+
}) => Promise<void>;
|
|
39
|
+
declare const rmdir: (path: node_fs.PathLike, options?: {
|
|
40
|
+
recursive?: boolean;
|
|
41
|
+
}) => Promise<void>;
|
|
42
|
+
declare const stat: (path: node_fs.PathLike) => Promise<Stats>;
|
|
43
|
+
declare const lstat: (path: node_fs.PathLike) => Promise<Stats>;
|
|
44
|
+
declare const access: (path: node_fs.PathLike) => Promise<void>;
|
|
45
|
+
|
|
46
|
+
export { access, appendFile, lstat, mkdir, readFile, readdir, rename, rm, rmdir, stat, unlink, writeFile };
|
package/opfs/promises.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import "../node-fs-Bd_UUx1m.js";
|
|
2
|
+
import { promises as e } from "../opfs.js";
|
|
3
|
+
//#region src/lib/opfs/promises.ts
|
|
4
|
+
var { readFile: t, writeFile: n, appendFile: r, unlink: i, rename: a, readdir: o, mkdir: s, rm: c, rmdir: l, stat: u, lstat: d, access: f } = e;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { f as access, r as appendFile, d as lstat, s as mkdir, t as readFile, o as readdir, a as rename, c as rm, l as rmdir, u as stat, i as unlink, n as writeFile };
|
package/opfs-BfcYLPGb.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { n as e } from "./chunk-CPXzm0be.js";
|
|
2
|
+
//#region src/lib/fs/opfs.ts
|
|
3
|
+
var t = /* @__PURE__ */ e({
|
|
4
|
+
available: () => a,
|
|
5
|
+
list: () => l,
|
|
6
|
+
readFile: () => s,
|
|
7
|
+
remove: () => c,
|
|
8
|
+
writeFile: () => o
|
|
9
|
+
}), n = () => navigator.storage.getDirectory(), r = (e) => {
|
|
10
|
+
let t = e.split("/").filter((e) => e && e !== ".");
|
|
11
|
+
if (t.some((e) => e === "..") || !t.length) throw Error("opfs: invalid path");
|
|
12
|
+
return t;
|
|
13
|
+
}, i = async (e, t) => {
|
|
14
|
+
let r = await n();
|
|
15
|
+
for (let n of e) r = await r.getDirectoryHandle(n, { create: t });
|
|
16
|
+
return r;
|
|
17
|
+
}, a = async () => {
|
|
18
|
+
try {
|
|
19
|
+
return typeof navigator < "u" && !!navigator.storage?.getDirectory && !!await n();
|
|
20
|
+
} catch {
|
|
21
|
+
return !1;
|
|
22
|
+
}
|
|
23
|
+
}, o = async (e, t, n) => {
|
|
24
|
+
let a = r(e), o = a.pop(), s = await (await (await i(a, !0)).getFileHandle(o, { create: !0 })).createWritable({ keepExistingData: !1 });
|
|
25
|
+
try {
|
|
26
|
+
let e = t instanceof Blob ? t : new Blob([t], n?.contentType ? { type: n.contentType } : void 0);
|
|
27
|
+
await s.write(e);
|
|
28
|
+
} finally {
|
|
29
|
+
await s.close();
|
|
30
|
+
}
|
|
31
|
+
}, s = async (e) => {
|
|
32
|
+
let t = r(e), n = t.pop();
|
|
33
|
+
return (await (await i(t, !1)).getFileHandle(n)).getFile();
|
|
34
|
+
}, c = async (e) => {
|
|
35
|
+
let t = r(e), n = t.pop();
|
|
36
|
+
await (await i(t, !1)).removeEntry(n, { recursive: !0 });
|
|
37
|
+
}, l = async () => {
|
|
38
|
+
let e = [], t = async (n, r) => {
|
|
39
|
+
for await (let [i, a] of n.entries()) {
|
|
40
|
+
let n = r ? `${r}/${i}` : i;
|
|
41
|
+
if (a.kind === "file") {
|
|
42
|
+
let t = await a.getFile();
|
|
43
|
+
e.push({
|
|
44
|
+
path: n,
|
|
45
|
+
size: t.size,
|
|
46
|
+
contentType: t.type || null,
|
|
47
|
+
updatedAt: new Date(t.lastModified).toISOString()
|
|
48
|
+
});
|
|
49
|
+
} else await t(a, n);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
return await t(await n(), ""), e;
|
|
53
|
+
};
|
|
54
|
+
//#endregion
|
|
55
|
+
export { c as a, s as i, l as n, o, t as r, a as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=require(`./chunk-B6C_zzib.cjs`).n({available:()=>i,list:()=>c,readFile:()=>o,remove:()=>s,writeFile:()=>a}),t=()=>navigator.storage.getDirectory(),n=e=>{let t=e.split(`/`).filter(e=>e&&e!==`.`);if(t.some(e=>e===`..`)||!t.length)throw Error(`opfs: invalid path`);return t},r=async(e,n)=>{let r=await t();for(let t of e)r=await r.getDirectoryHandle(t,{create:n});return r},i=async()=>{try{return typeof navigator<`u`&&!!navigator.storage?.getDirectory&&!!await t()}catch{return!1}},a=async(e,t,i)=>{let a=n(e),o=a.pop(),s=await(await(await r(a,!0)).getFileHandle(o,{create:!0})).createWritable({keepExistingData:!1});try{let e=t instanceof Blob?t:new Blob([t],i?.contentType?{type:i.contentType}:void 0);await s.write(e)}finally{await s.close()}},o=async e=>{let t=n(e),i=t.pop();return(await(await r(t,!1)).getFileHandle(i)).getFile()},s=async e=>{let t=n(e),i=t.pop();await(await r(t,!1)).removeEntry(i,{recursive:!0})},c=async()=>{let e=[],n=async(t,r)=>{for await(let[i,a]of t.entries()){let t=r?`${r}/${i}`:i;if(a.kind===`file`){let n=await a.getFile();e.push({path:t,size:n.size,contentType:n.type||null,updatedAt:new Date(n.lastModified).toISOString()})}else await n(a,t)}};return await n(await t(),``),e};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
|
package/opfs.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./chunk-B6C_zzib.cjs`),t=require(`./node-fs-lrlD_zqB.cjs`),n=require(`./opfs-Dsi4FkJU.cjs`);var r=e.n({appendFile:()=>y,appendFileSync:()=>s,available:()=>i,exists:()=>E,existsSync:()=>c,flush:()=>k,lstatSync:()=>u,mkdir:()=>S,mkdirSync:()=>f,mount:()=>O,promises:()=>D,readFile:()=>_,readFileSync:()=>a,readdir:()=>x,readdirSync:()=>d,remount:()=>A,rename:()=>T,renameSync:()=>g,rm:()=>C,rmSync:()=>p,rmdirSync:()=>m,stat:()=>b,statSync:()=>l,unlink:()=>w,unlinkSync:()=>h,writeFile:()=>v,writeFileSync:()=>o}),{available:i,readFileSync:a,writeFileSync:o,appendFileSync:s,existsSync:c,statSync:l,lstatSync:u,readdirSync:d,mkdirSync:f,rmSync:p,rmdirSync:m,unlinkSync:h,renameSync:g,readFile:_,writeFile:v,appendFile:y,stat:b,readdir:x,mkdir:S,rm:C,unlink:w,rename:T,exists:E,promises:D,mount:O,flush:k,remount:A}=t.t(n.r,{memfs:!0});exports.appendFile=y,exports.appendFileSync=s,exports.available=i,exports.exists=E,exports.existsSync=c,exports.flush=k,exports.lstatSync=u,exports.mkdir=S,exports.mkdirSync=f,exports.mount=O,exports.promises=D,exports.readFile=_,exports.readFileSync=a,exports.readdir=x,exports.readdirSync=d,exports.remount=A,exports.rename=T,exports.renameSync=g,exports.rm=C,exports.rmSync=p,exports.rmdirSync=m,exports.stat=b,exports.statSync=l,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}}),exports.unlink=w,exports.unlinkSync=h,exports.writeFile=v,exports.writeFileSync=o;
|
package/opfs.d.ts
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import * as node_fs from 'node:fs';
|
|
2
|
+
|
|
3
|
+
type ReadOptions = BufferEncoding | {
|
|
4
|
+
encoding?: BufferEncoding | null;
|
|
5
|
+
flag?: string;
|
|
6
|
+
} | null | undefined;
|
|
7
|
+
type WriteOptions = BufferEncoding | {
|
|
8
|
+
encoding?: BufferEncoding | null;
|
|
9
|
+
mode?: number;
|
|
10
|
+
flag?: string;
|
|
11
|
+
contentType?: string;
|
|
12
|
+
} | null | undefined;
|
|
13
|
+
type WriteData = string | Uint8Array | ArrayBuffer | DataView;
|
|
14
|
+
type MakeOptions = {
|
|
15
|
+
recursive?: boolean;
|
|
16
|
+
} | number | null | undefined;
|
|
17
|
+
type Callback<R> = (error: NodeJS.ErrnoException | null, result?: R) => void;
|
|
18
|
+
type Stats = {
|
|
19
|
+
size: number;
|
|
20
|
+
mtimeMs: number;
|
|
21
|
+
mtime: Date;
|
|
22
|
+
atimeMs: number;
|
|
23
|
+
ctimeMs: number;
|
|
24
|
+
mode: number;
|
|
25
|
+
isFile: () => boolean;
|
|
26
|
+
isDirectory: () => boolean;
|
|
27
|
+
isSymbolicLink: () => boolean;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
declare const available: () => Promise<boolean>;
|
|
31
|
+
declare const readFileSync: (path: node_fs.PathLike, options?: ReadOptions) => Buffer | string;
|
|
32
|
+
declare const writeFileSync: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => void;
|
|
33
|
+
declare const appendFileSync: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => void;
|
|
34
|
+
declare const existsSync: (path: node_fs.PathLike) => boolean;
|
|
35
|
+
declare const statSync: (path: node_fs.PathLike) => Stats;
|
|
36
|
+
declare const lstatSync: (path: node_fs.PathLike) => Stats;
|
|
37
|
+
declare const readdirSync: (path: node_fs.PathLike) => string[];
|
|
38
|
+
declare const mkdirSync: (path: node_fs.PathLike, options?: MakeOptions) => void;
|
|
39
|
+
declare const rmSync: (path: node_fs.PathLike, options?: {
|
|
40
|
+
recursive?: boolean;
|
|
41
|
+
force?: boolean;
|
|
42
|
+
}) => void;
|
|
43
|
+
declare const rmdirSync: (path: node_fs.PathLike, options?: {
|
|
44
|
+
recursive?: boolean;
|
|
45
|
+
}) => void;
|
|
46
|
+
declare const unlinkSync: (path: node_fs.PathLike) => void;
|
|
47
|
+
declare const renameSync: (from: node_fs.PathLike, to: node_fs.PathLike) => void;
|
|
48
|
+
declare const readFile: (path: node_fs.PathLike, a: ReadOptions | Callback<Buffer | string>, b?: Callback<Buffer | string>) => void;
|
|
49
|
+
declare const writeFile: (path: node_fs.PathLike, data: WriteData, a: WriteOptions | Callback<void>, b?: Callback<void>) => void;
|
|
50
|
+
declare const appendFile: (path: node_fs.PathLike, data: WriteData, a: WriteOptions | Callback<void>, b?: Callback<void>) => void;
|
|
51
|
+
declare const stat: (path: node_fs.PathLike, callback: Callback<Stats>) => void;
|
|
52
|
+
declare const readdir: (path: node_fs.PathLike, a: unknown, b?: Callback<string[]>) => void;
|
|
53
|
+
declare const mkdir: (path: node_fs.PathLike, a: MakeOptions | Callback<void>, b?: Callback<void>) => void;
|
|
54
|
+
declare const rm: (path: node_fs.PathLike, a: {
|
|
55
|
+
recursive?: boolean;
|
|
56
|
+
} | Callback<void>, b?: Callback<void>) => void;
|
|
57
|
+
declare const unlink: (path: node_fs.PathLike, callback: Callback<void>) => void;
|
|
58
|
+
declare const rename: (from: node_fs.PathLike, to: node_fs.PathLike, callback: Callback<void>) => void;
|
|
59
|
+
declare const exists: (path: node_fs.PathLike, callback: (exists: boolean) => void) => void;
|
|
60
|
+
declare const promises: {
|
|
61
|
+
readFile: (path: node_fs.PathLike, options?: ReadOptions) => Promise<Buffer | string>;
|
|
62
|
+
writeFile: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => Promise<void>;
|
|
63
|
+
appendFile: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => Promise<void>;
|
|
64
|
+
stat: (path: node_fs.PathLike) => Promise<Stats>;
|
|
65
|
+
lstat: (path: node_fs.PathLike) => Promise<Stats>;
|
|
66
|
+
readdir: (path: node_fs.PathLike) => Promise<string[]>;
|
|
67
|
+
mkdir: (path: node_fs.PathLike, options?: MakeOptions) => Promise<void>;
|
|
68
|
+
rm: (path: node_fs.PathLike, options?: {
|
|
69
|
+
recursive?: boolean;
|
|
70
|
+
}) => Promise<void>;
|
|
71
|
+
rmdir: (path: node_fs.PathLike, options?: {
|
|
72
|
+
recursive?: boolean;
|
|
73
|
+
}) => Promise<void>;
|
|
74
|
+
unlink: (path: node_fs.PathLike) => Promise<void>;
|
|
75
|
+
rename: (from: node_fs.PathLike, to: node_fs.PathLike) => Promise<void>;
|
|
76
|
+
access: (path: node_fs.PathLike) => Promise<void>;
|
|
77
|
+
};
|
|
78
|
+
declare const mount: () => Promise<void>;
|
|
79
|
+
declare const flush: () => Promise<void>;
|
|
80
|
+
declare const remount: () => Promise<void>;
|
|
81
|
+
|
|
82
|
+
export { appendFile, appendFileSync, available, exists, existsSync, flush, lstatSync, mkdir, mkdirSync, mount, promises, readFile, readFileSync, readdir, readdirSync, remount, rename, renameSync, rm, rmSync, rmdirSync, stat, statSync, unlink, unlinkSync, writeFile, writeFileSync };
|
|
83
|
+
export type { Stats };
|
package/opfs.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { n as e } from "./chunk-CPXzm0be.js";
|
|
2
|
+
import { t } from "./node-fs-Bd_UUx1m.js";
|
|
3
|
+
import { r as n } from "./opfs-BfcYLPGb.js";
|
|
4
|
+
//#region src/lib/opfs/index.ts
|
|
5
|
+
var r = /* @__PURE__ */ e({
|
|
6
|
+
appendFile: () => y,
|
|
7
|
+
appendFileSync: () => s,
|
|
8
|
+
available: () => i,
|
|
9
|
+
exists: () => E,
|
|
10
|
+
existsSync: () => c,
|
|
11
|
+
flush: () => k,
|
|
12
|
+
lstatSync: () => u,
|
|
13
|
+
mkdir: () => S,
|
|
14
|
+
mkdirSync: () => f,
|
|
15
|
+
mount: () => O,
|
|
16
|
+
promises: () => D,
|
|
17
|
+
readFile: () => _,
|
|
18
|
+
readFileSync: () => a,
|
|
19
|
+
readdir: () => x,
|
|
20
|
+
readdirSync: () => d,
|
|
21
|
+
remount: () => A,
|
|
22
|
+
rename: () => T,
|
|
23
|
+
renameSync: () => g,
|
|
24
|
+
rm: () => C,
|
|
25
|
+
rmSync: () => p,
|
|
26
|
+
rmdirSync: () => m,
|
|
27
|
+
stat: () => b,
|
|
28
|
+
statSync: () => l,
|
|
29
|
+
unlink: () => w,
|
|
30
|
+
unlinkSync: () => h,
|
|
31
|
+
writeFile: () => v,
|
|
32
|
+
writeFileSync: () => o
|
|
33
|
+
}), { available: i, readFileSync: a, writeFileSync: o, appendFileSync: s, existsSync: c, statSync: l, lstatSync: u, readdirSync: d, mkdirSync: f, rmSync: p, rmdirSync: m, unlinkSync: h, renameSync: g, readFile: _, writeFile: v, appendFile: y, stat: b, readdir: x, mkdir: S, rm: C, unlink: w, rename: T, exists: E, promises: D, mount: O, flush: k, remount: A } = t(n, { memfs: !0 });
|
|
34
|
+
//#endregion
|
|
35
|
+
export { y as appendFile, s as appendFileSync, i as available, E as exists, c as existsSync, k as flush, u as lstatSync, S as mkdir, f as mkdirSync, O as mount, D as promises, _ as readFile, a as readFileSync, x as readdir, d as readdirSync, A as remount, T as rename, g as renameSync, C as rm, p as rmSync, m as rmdirSync, b as stat, l as statSync, r as t, w as unlink, h as unlinkSync, v as writeFile, o as writeFileSync };
|