@fkn/lib 0.4.9 → 0.5.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.
Files changed (88) hide show
  1. package/account.cjs +1 -0
  2. package/account.d.ts +17 -0
  3. package/account.js +28 -0
  4. package/api-ByfayMm1.js +67 -0
  5. package/api-CDb2pv7C.cjs +1 -0
  6. package/background-Dk_vaVP1.cjs +1 -0
  7. package/{background-CTsVv_a0.js → background-TtzKw6g0.js} +5 -4
  8. package/chunk-B6C_zzib.cjs +1 -0
  9. package/chunk-CPXzm0be.js +11 -0
  10. package/cloud/dgram.cjs +1 -0
  11. package/cloud/dgram.d.ts +537 -0
  12. package/cloud/dgram.js +4 -0
  13. package/cloud/dns.cjs +1 -0
  14. package/cloud/dns.d.ts +12 -0
  15. package/cloud/dns.js +3 -0
  16. package/cloud/fs/promises.cjs +1 -0
  17. package/cloud/fs/promises.d.ts +45 -0
  18. package/cloud/fs/promises.js +8 -0
  19. package/cloud/fs.cjs +1 -0
  20. package/cloud/fs.d.ts +75 -0
  21. package/cloud/fs.js +20 -0
  22. package/cloud/http.cjs +1 -0
  23. package/cloud/http.d.ts +767 -0
  24. package/cloud/http.js +5 -0
  25. package/cloud/net.cjs +1 -0
  26. package/cloud/net.d.ts +606 -0
  27. package/cloud/net.js +4 -0
  28. package/cloud-BrY9dKwV.cjs +1 -0
  29. package/cloud-C-LK4DWa.js +33 -0
  30. package/cloud.cjs +1 -0
  31. package/cloud.d.ts +1053 -0
  32. package/cloud.js +12 -0
  33. package/desktop.cjs +1 -0
  34. package/desktop.d.ts +49 -0
  35. package/desktop.js +51 -0
  36. package/dgram-C5rGcbej.cjs +1 -0
  37. package/dgram-DS5_yPc5.js +330 -0
  38. package/dgram.cjs +1 -0
  39. package/dgram.d.ts +541 -0
  40. package/dgram.js +4 -0
  41. package/dns.cjs +1 -0
  42. package/dns.d.ts +12 -0
  43. package/dns.js +6 -0
  44. package/extension-9Uv_0HdS.cjs +1 -0
  45. package/extension-Dgz0UTy0.js +245 -0
  46. package/extension.cjs +1 -0
  47. package/extension.d.ts +853 -0
  48. package/extension.js +5 -0
  49. package/fs/promises.cjs +1 -0
  50. package/fs/promises.d.ts +65 -0
  51. package/fs/promises.js +8 -0
  52. package/fs-BiS_UsCn.js +82 -0
  53. package/fs-CmgWrokB.cjs +1 -0
  54. package/fs.cjs +1 -0
  55. package/fs.d.ts +138 -0
  56. package/fs.js +5 -0
  57. package/http.cjs +9 -0
  58. package/http.d.ts +767 -0
  59. package/http.js +541 -0
  60. package/index.cjs +1 -9
  61. package/index.d.ts +261 -146
  62. package/index.js +27 -1879
  63. package/locator-Cf7M3QKN.cjs +53 -0
  64. package/{locator-Q5m8i40Z.js → locator-DxAsGV_o.js} +331 -337
  65. package/net-Bl6_W3bd.js +275 -0
  66. package/net-C5kWnI4C.cjs +1 -0
  67. package/net.cjs +1 -0
  68. package/net.d.ts +606 -0
  69. package/net.js +4 -0
  70. package/node-fs-Bd_UUx1m.js +361 -0
  71. package/node-fs-lrlD_zqB.cjs +1 -0
  72. package/opfs/promises.cjs +1 -0
  73. package/opfs/promises.d.ts +46 -0
  74. package/opfs/promises.js +6 -0
  75. package/opfs-BfcYLPGb.js +55 -0
  76. package/opfs-Dsi4FkJU.cjs +1 -0
  77. package/opfs.cjs +1 -0
  78. package/opfs.d.ts +83 -0
  79. package/opfs.js +35 -0
  80. package/package.json +91 -1
  81. package/proxy-A9UvWUaF.cjs +1 -0
  82. package/proxy-wiZN4eTR.js +14 -0
  83. package/storage-BadvHtv0.cjs +1 -0
  84. package/storage-z0q3iena.js +13 -0
  85. package/utils-BsNRWMfl.cjs +1 -0
  86. package/utils-CNydj3OT.js +52 -0
  87. package/background-BqRFQggD.cjs +0 -1
  88. 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 };
@@ -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 };
@@ -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 };