@fkn/lib 0.9.20 → 0.9.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/account.cjs +1 -1
  2. package/account.js +24 -17
  3. package/{api-CyWF0RUj.d.ts → api-B0qRPCcX.d.ts} +8 -0
  4. package/api-BqRjtWm_.js +311 -0
  5. package/api-CKO3Hw-O.cjs +3 -0
  6. package/busy-Bp1E3JPT.js +24 -0
  7. package/busy-Dv8wzE5M.cjs +1 -0
  8. package/cloud/dgram.cjs +1 -1
  9. package/cloud/dgram.js +1 -1
  10. package/cloud/fetch.cjs +1 -1
  11. package/cloud/fetch.d.ts +1 -1
  12. package/cloud/fetch.js +1 -1
  13. package/cloud/fs.cjs +1 -1
  14. package/cloud/fs.js +2 -2
  15. package/cloud/net.cjs +1 -1
  16. package/cloud/net.d.ts +1 -1
  17. package/cloud/net.js +1 -1
  18. package/{cloud-C_1Dt_tR.js → cloud-BB6HUD0A.js} +77 -74
  19. package/{cloud-CQVtRvcI.d.ts → cloud-BTpJn4jy.d.ts} +2 -2
  20. package/cloud-CnS0FeRB.cjs +1 -0
  21. package/cloud.cjs +1 -1
  22. package/cloud.d.ts +3 -3
  23. package/cloud.js +4 -4
  24. package/dgram-9hn582qO.cjs +1 -0
  25. package/{dgram-DlGl_ho1.js → dgram-TB03kqMr.js} +55 -49
  26. package/dgram.cjs +1 -1
  27. package/dgram.d.ts +2 -1
  28. package/dgram.js +1 -1
  29. package/dns.cjs +1 -1
  30. package/dns.js +1 -1
  31. package/{extension-jRuNpBs3.js → extension-D2AMAiIv.js} +2 -2
  32. package/{extension-B3nD2u7c.cjs → extension-Y8xHU5cJ.cjs} +1 -1
  33. package/extension.cjs +1 -1
  34. package/extension.js +1 -1
  35. package/fs/promises.cjs +1 -1
  36. package/fs/promises.js +1 -1
  37. package/fs-BUcpl9k4.cjs +1 -0
  38. package/fs-bpb3Ysdd.js +347 -0
  39. package/fs.cjs +1 -1
  40. package/fs.js +1 -1
  41. package/http.cjs +1 -1
  42. package/http.d.ts +1 -1
  43. package/http.js +1 -1
  44. package/index.cjs +1 -1
  45. package/index.d.ts +9 -15
  46. package/index.js +86 -33
  47. package/net-C2fIMWFr.cjs +1 -0
  48. package/{net-ByL9yG7X.d.ts → net-CnYxw_sB.d.ts} +3 -1
  49. package/{net-BbmQeMpt.js → net-Ct8ywVAk.js} +52 -41
  50. package/net.cjs +1 -1
  51. package/net.d.ts +1 -1
  52. package/net.js +1 -1
  53. package/node-fs-BZCQUmeE.js +404 -0
  54. package/node-fs-DZPGCYWg.cjs +1 -0
  55. package/opfs.cjs +1 -1
  56. package/opfs.js +1 -1
  57. package/package.json +1 -1
  58. package/packages.cjs +1 -1
  59. package/packages.js +165 -149
  60. package/proxy-CWz5JReq.js +75 -0
  61. package/{proxy-RU8sbq68.d.ts → proxy-CuXtzxSQ.d.ts} +1 -1
  62. package/proxy-iuURAidA.cjs +1 -0
  63. package/{storage-C8hBot2f.js → storage-C1nW5Tvh.js} +1 -1
  64. package/{storage-BW-jDLUL.cjs → storage-rXHvV2FU.cjs} +1 -1
  65. package/api-DQ-V4Lls.js +0 -220
  66. package/api-kHMHDGar.cjs +0 -3
  67. package/cloud-C8jfO0iJ.cjs +0 -1
  68. package/dgram-D2Or5f2e.cjs +0 -1
  69. package/fs-BW5mVMmu.js +0 -340
  70. package/fs-DJm0bhjg.cjs +0 -1
  71. package/net-COzDDBnS.cjs +0 -1
  72. package/node-fs-BMR2yCEt.cjs +0 -1
  73. package/node-fs-DKfokOlh.js +0 -401
  74. package/proxy-B0gNjT8-.cjs +0 -1
  75. package/proxy-BpqvCJmA.js +0 -43
@@ -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=new Set,d=()=>Date.now(),f=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:d()});else if(n.kind===`file`)throw a(`ENOTDIR`,r,`mkdir`)}},p,m=0,h=async()=>{let n=await e.list().catch(()=>[]),r=new Set,i=!1;for(let a of n){let n=o(a.path);if(r.add(n),!l.has(n)&&!(c.has(n)&&!u.has(n)))try{let r=await(await e.readFile(a.path)).arrayBuffer();if(l.has(n)||c.has(n)&&!u.has(n))continue;f(s(n));let i=Date.parse(a.updatedAt??``);t.set(n,{kind:`file`,data:new Uint8Array(r),mtimeMs:Number.isFinite(i)?i:d(),contentType:a.contentType??void 0}),u.delete(n),c.delete(n)}catch{i=!0,u.add(n)}}for(let e of u)r.has(e)||u.delete(e);m=i?Date.now():0},g=()=>(p&&(m===0||Date.now()-m<5e3)||(p=h()),p),_=async()=>{p=void 0,m=0,await g()},v=async()=>{let r=[...c].map(async r=>{if(u.has(r))return;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])},y,b=()=>{y||=setTimeout(()=>{y=void 0,v().catch(()=>{})},250)};typeof addEventListener<`u`&&(addEventListener(`pagehide`,()=>{v().catch(()=>{})}),addEventListener(`visibilitychange`,()=>{typeof document<`u`&&document.visibilityState===`hidden`&&v().catch(()=>{})}));let x=e=>e.kind===`file`?r(e.data.byteLength,e.mtimeMs):i(e.mtimeMs),S=e=>Object.assign(Error(`storage: ${e} exists but could not be read, retry once its scope is available`),{code:`FKN_E2E_LOCKED`}),C=e=>{let n=o(e);return t.has(n)||u.has(n)},w=e=>{let n=o(e),r=t.get(n);if(!r)throw u.has(n)?S(e):a(`ENOENT`,e,`stat`);return x(r)},T=e=>{let n=o(e),r=t.get(n);if(!r)throw u.has(n)?S(e):a(`ENOENT`,e,`open`);if(r.kind===`dir`)throw a(`EISDIR`,e,`read`);return r.data},E=(e,t)=>{let n=new Uint8Array(e.byteLength+t.byteLength);return n.set(e,0),n.set(t,e.byteLength),n},D=(e,n,r,i)=>{let p=o(e);if(!p)throw a(`EISDIR`,e,`open`);if(u.has(p))throw S(e);let m=t.get(p);if(m?.kind===`dir`)throw a(`EISDIR`,e,`open`);f(s(p));let h=r&&m?.kind===`file`?E(m.data,n):n;t.set(p,{kind:`file`,data:h,mtimeMs:d(),contentType:i??(m?.kind===`file`?m.contentType:void 0)}),c.add(p),l.delete(p),b()},O=(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`);f(r)}},k=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(),...u]){if(!e||!e.startsWith(i))continue;let t=e.slice(i.length);t&&s.add(t.split(`/`)[0])}return[...s]},A=(e,{op:n,recursive:r,force:i})=>{let s=o(e),d=t.get(s);if(!d&&u.has(s)){if(n===`rmdir`)throw a(`ENOTDIR`,e,`rmdir`);u.delete(s),c.delete(s),l.add(s),b();return}if(!d){if(i||n===`rmdir`&&r)return;throw a(`ENOENT`,e,n===`rmdir`?`rmdir`:`unlink`)}if(n===`unlink`&&d.kind===`dir`)throw a(`EISDIR`,e,`unlink`);if(n===`rmdir`&&d.kind===`file`)throw a(`ENOTDIR`,e,`rmdir`);if(n===`rm`&&d.kind===`dir`&&!r)throw a(`ERR_FS_EISDIR`,e,`rm`);let f=`${s}/`,p=[...t.keys()].filter(e=>e.startsWith(f));if(p.length&&!r)throw a(`ENOTEMPTY`,e,`rmdir`);for(let e of[s,...p]){let n=t.get(e);t.delete(e),n?.kind===`file`&&(c.delete(e),l.add(e))}b()};return{mount:g,remount:_,flush:v,exists:C,stat:w,readFile:T,writeFile:D,mkdir:O,readdir:k,remove:A,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`);if(u.has(r))throw S(e);if(u.has(i))throw S(n);let d=t.get(r);if(!d)throw a(`ENOENT`,e,`rename`);let p=t.get(i);if(p){if(p.kind!==d.kind)throw a(d.kind===`dir`?`ENOTDIR`:`EISDIR`,n,`rename`);A(i,{op:`rm`,recursive:!0,force:!0})}f(s(i));let m=`${r}/`,h=[r,...[...t.keys()].filter(e=>e.startsWith(m))];for(let e of h){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))}b()}}},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}});
@@ -1,401 +0,0 @@
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
- ERR_FS_EISDIR: "is a directory"
54
- }[e] ?? e}, ${n} '${t}'`);
55
- return r.code = e, r.path = t, r.syscall = n, r;
56
- }, o = (e) => {
57
- let t = [];
58
- for (let n of e.split("/")) if (!(!n || n === ".")) {
59
- if (n === "..") {
60
- t.pop();
61
- continue;
62
- }
63
- t.push(n);
64
- }
65
- return t.join("/");
66
- }, 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) => {
67
- let r = l(n);
68
- return r ? e.from(t).toString(r) : e.from(t);
69
- }, p = (t, n) => {
70
- if (typeof t == "string") return new Uint8Array(e.from(t, l(n) ?? "utf8"));
71
- if (t instanceof Uint8Array) return t.slice();
72
- if (t instanceof ArrayBuffer) return new Uint8Array(t).slice();
73
- if (ArrayBuffer.isView(t)) return new Uint8Array(t.buffer, t.byteOffset, t.byteLength).slice();
74
- throw TypeError("The \"data\" argument must be of type string, Buffer, TypedArray, or DataView");
75
- }, m = (e) => {
76
- let t = /* @__PURE__ */ new Map([["", {
77
- kind: "dir",
78
- mtimeMs: 0
79
- }]]), c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Set(), d = () => Date.now(), f = (e) => {
80
- if (!e) return;
81
- let n = e.split("/"), r = "";
82
- for (let e of n) {
83
- r = r ? `${r}/${e}` : e;
84
- let n = t.get(r);
85
- if (!n) t.set(r, {
86
- kind: "dir",
87
- mtimeMs: d()
88
- });
89
- else if (n.kind === "file") throw a("ENOTDIR", r, "mkdir");
90
- }
91
- }, p, m = 0, h = async () => {
92
- let n = await e.list().catch(() => []), r = /* @__PURE__ */ new Set(), i = !1;
93
- for (let a of n) {
94
- let n = o(a.path);
95
- if (r.add(n), !l.has(n) && !(c.has(n) && !u.has(n))) try {
96
- let r = await (await e.readFile(a.path)).arrayBuffer();
97
- if (l.has(n) || c.has(n) && !u.has(n)) continue;
98
- f(s(n));
99
- let i = Date.parse(a.updatedAt ?? "");
100
- t.set(n, {
101
- kind: "file",
102
- data: new Uint8Array(r),
103
- mtimeMs: Number.isFinite(i) ? i : d(),
104
- contentType: a.contentType ?? void 0
105
- }), u.delete(n), c.delete(n);
106
- } catch {
107
- i = !0, u.add(n);
108
- }
109
- }
110
- for (let e of u) r.has(e) || u.delete(e);
111
- m = i ? Date.now() : 0;
112
- }, g = () => (p && (m === 0 || Date.now() - m < 5e3) || (p = h()), p), _ = async () => {
113
- p = void 0, m = 0, await g();
114
- }, v = async () => {
115
- let r = [...c].map(async (r) => {
116
- if (u.has(r)) return;
117
- let i = t.get(r);
118
- if (i?.kind !== "file") {
119
- c.delete(r);
120
- return;
121
- }
122
- let a = i.data, o = n(r, i.contentType);
123
- try {
124
- await e.writeFile(r, a, o ? { contentType: o } : void 0);
125
- let n = t.get(r);
126
- n?.kind === "file" && n.data === a && c.delete(r);
127
- } catch {}
128
- }), i = [...l].map(async (t) => {
129
- try {
130
- await e.remove(t), l.delete(t);
131
- } catch {}
132
- });
133
- await Promise.all([...r, ...i]);
134
- }, y, b = () => {
135
- y ||= setTimeout(() => {
136
- y = void 0, v().catch(() => {});
137
- }, 250);
138
- };
139
- typeof addEventListener < "u" && (addEventListener("pagehide", () => {
140
- v().catch(() => {});
141
- }), addEventListener("visibilitychange", () => {
142
- typeof document < "u" && document.visibilityState === "hidden" && v().catch(() => {});
143
- }));
144
- let x = (e) => e.kind === "file" ? r(e.data.byteLength, e.mtimeMs) : i(e.mtimeMs), S = (e) => Object.assign(/* @__PURE__ */ Error(`storage: ${e} exists but could not be read, retry once its scope is available`), { code: "FKN_E2E_LOCKED" }), C = (e) => {
145
- let n = o(e);
146
- return t.has(n) || u.has(n);
147
- }, w = (e) => {
148
- let n = o(e), r = t.get(n);
149
- if (!r) throw u.has(n) ? S(e) : a("ENOENT", e, "stat");
150
- return x(r);
151
- }, T = (e) => {
152
- let n = o(e), r = t.get(n);
153
- if (!r) throw u.has(n) ? S(e) : a("ENOENT", e, "open");
154
- if (r.kind === "dir") throw a("EISDIR", e, "read");
155
- return r.data;
156
- }, E = (e, t) => {
157
- let n = new Uint8Array(e.byteLength + t.byteLength);
158
- return n.set(e, 0), n.set(t, e.byteLength), n;
159
- }, D = (e, n, r, i) => {
160
- let p = o(e);
161
- if (!p) throw a("EISDIR", e, "open");
162
- if (u.has(p)) throw S(e);
163
- let m = t.get(p);
164
- if (m?.kind === "dir") throw a("EISDIR", e, "open");
165
- f(s(p));
166
- let h = r && m?.kind === "file" ? E(m.data, n) : n;
167
- t.set(p, {
168
- kind: "file",
169
- data: h,
170
- mtimeMs: d(),
171
- contentType: i ?? (m?.kind === "file" ? m.contentType : void 0)
172
- }), c.add(p), l.delete(p), b();
173
- }, O = (e, n) => {
174
- let r = o(e);
175
- if (r) {
176
- if (t.has(r)) {
177
- if (n) return;
178
- throw a("EEXIST", e, "mkdir");
179
- }
180
- if (!n && !t.has(s(r))) throw a("ENOENT", e, "mkdir");
181
- f(r);
182
- }
183
- }, k = (e) => {
184
- let n = o(e), r = t.get(n);
185
- if (!r) throw a("ENOENT", e, "scandir");
186
- if (r.kind === "file") throw a("ENOTDIR", e, "scandir");
187
- let i = n ? `${n}/` : "", s = /* @__PURE__ */ new Set();
188
- for (let e of [...t.keys(), ...u]) {
189
- if (!e || !e.startsWith(i)) continue;
190
- let t = e.slice(i.length);
191
- t && s.add(t.split("/")[0]);
192
- }
193
- return [...s];
194
- }, A = (e, { op: n, recursive: r, force: i }) => {
195
- let s = o(e), d = t.get(s);
196
- if (!d && u.has(s)) {
197
- if (n === "rmdir") throw a("ENOTDIR", e, "rmdir");
198
- u.delete(s), c.delete(s), l.add(s), b();
199
- return;
200
- }
201
- if (!d) {
202
- if (i || n === "rmdir" && r) return;
203
- throw a("ENOENT", e, n === "rmdir" ? "rmdir" : "unlink");
204
- }
205
- if (n === "unlink" && d.kind === "dir") throw a("EISDIR", e, "unlink");
206
- if (n === "rmdir" && d.kind === "file") throw a("ENOTDIR", e, "rmdir");
207
- if (n === "rm" && d.kind === "dir" && !r) throw a("ERR_FS_EISDIR", e, "rm");
208
- let f = `${s}/`, p = [...t.keys()].filter((e) => e.startsWith(f));
209
- if (p.length && !r) throw a("ENOTEMPTY", e, "rmdir");
210
- for (let e of [s, ...p]) {
211
- let n = t.get(e);
212
- t.delete(e), n?.kind === "file" && (c.delete(e), l.add(e));
213
- }
214
- b();
215
- };
216
- return {
217
- mount: g,
218
- remount: _,
219
- flush: v,
220
- exists: C,
221
- stat: w,
222
- readFile: T,
223
- writeFile: D,
224
- mkdir: O,
225
- readdir: k,
226
- remove: A,
227
- rename: (e, n) => {
228
- let r = o(e), i = o(n);
229
- if (!r) throw a("EBUSY", e, "rename");
230
- if (i === r || i.startsWith(`${r}/`)) throw a("EINVAL", e, "rename");
231
- if (u.has(r)) throw S(e);
232
- if (u.has(i)) throw S(n);
233
- let d = t.get(r);
234
- if (!d) throw a("ENOENT", e, "rename");
235
- let p = t.get(i);
236
- if (p) {
237
- if (p.kind !== d.kind) throw a(d.kind === "dir" ? "ENOTDIR" : "EISDIR", n, "rename");
238
- A(i, {
239
- op: "rm",
240
- recursive: !0,
241
- force: !0
242
- });
243
- }
244
- f(s(i));
245
- let m = `${r}/`, h = [r, ...[...t.keys()].filter((e) => e.startsWith(m))];
246
- for (let e of h) {
247
- let n = i + e.slice(r.length), a = t.get(e);
248
- t.set(n, a), t.delete(e), a.kind === "file" && (c.add(n), l.delete(n), c.delete(e), l.add(e));
249
- }
250
- b();
251
- }
252
- };
253
- }, h = (e, t) => typeof e == "function" ? e : t, g = (e) => typeof e == "function" ? void 0 : e, _ = (e, t) => {
254
- e.then((e) => t(null, e), (e) => t(e));
255
- }, v = (e) => {
256
- 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), {
257
- op: "rm",
258
- ...n
259
- }), y = (e, n) => t.remove(c(e), {
260
- op: "rmdir",
261
- ...n
262
- }), b = (e) => t.remove(c(e), { op: "unlink" }), x = (e, n) => t.rename(c(e), c(n)), S = (e, n) => {
263
- t.mount().finally(() => {
264
- let t;
265
- try {
266
- t = e();
267
- } catch (e) {
268
- n(e);
269
- return;
270
- }
271
- n(null, t);
272
- });
273
- }, C = (e) => t.mount().then(() => e());
274
- return {
275
- available: e.available,
276
- readFileSync: n,
277
- writeFileSync: r,
278
- appendFileSync: i,
279
- existsSync: o,
280
- statSync: s,
281
- lstatSync: s,
282
- readdirSync: l,
283
- mkdirSync: _,
284
- rmSync: v,
285
- rmdirSync: y,
286
- unlinkSync: b,
287
- renameSync: x,
288
- readFile: (e, n, r) => S(() => f(t.readFile(c(e)), g(n)), h(n, r)),
289
- writeFile: (e, n, r, i) => S(() => t.writeFile(c(e), p(n, g(r)), !1, u(g(r))), h(r, i)),
290
- appendFile: (e, n, r, i) => S(() => t.writeFile(c(e), p(n, g(r)), !0, u(g(r))), h(r, i)),
291
- stat: (e, n) => S(() => t.stat(c(e)), n),
292
- readdir: (e, n, r) => S(() => t.readdir(c(e)), h(n, r)),
293
- mkdir: (e, n, r) => S(() => t.mkdir(c(e), d(g(n))), h(n, r)),
294
- rm: (e, n, r) => S(() => t.remove(c(e), {
295
- op: "rm",
296
- ...g(n)
297
- }), h(n, r)),
298
- unlink: (e, n) => S(() => t.remove(c(e), { op: "unlink" }), n),
299
- rename: (e, n, r) => S(() => t.rename(c(e), c(n)), r),
300
- exists: (e, n) => {
301
- t.mount().finally(() => n(t.exists(c(e))));
302
- },
303
- promises: {
304
- readFile: (e, n) => C(() => f(t.readFile(c(e)), n)),
305
- writeFile: (e, n, r) => C(() => t.writeFile(c(e), p(n, r), !1, u(r))),
306
- appendFile: (e, n, r) => C(() => t.writeFile(c(e), p(n, r), !0, u(r))),
307
- stat: (e) => C(() => t.stat(c(e))),
308
- lstat: (e) => C(() => t.stat(c(e))),
309
- readdir: (e) => C(() => t.readdir(c(e))),
310
- mkdir: (e, n) => C(() => t.mkdir(c(e), d(n))),
311
- rm: (e, n) => C(() => t.remove(c(e), {
312
- op: "rm",
313
- ...n
314
- })),
315
- rmdir: (e, n) => C(() => t.remove(c(e), {
316
- op: "rmdir",
317
- ...n
318
- })),
319
- unlink: (e) => C(() => t.remove(c(e), { op: "unlink" })),
320
- rename: (e, n) => C(() => t.rename(c(e), c(n))),
321
- access: (e) => C(() => {
322
- if (!t.exists(c(e))) throw a("ENOENT", c(e), "access");
323
- })
324
- },
325
- mount: t.mount,
326
- flush: t.flush,
327
- remount: t.remount
328
- };
329
- }, y = (e) => {
330
- let t = async (t, n) => {
331
- let r = await e.readFile(c(t));
332
- return f(new Uint8Array(await r.arrayBuffer()), n);
333
- }, s = async (t, r, i) => {
334
- let a = c(t), o = n(a, u(i));
335
- await e.writeFile(a, p(r, i), o ? { contentType: o } : void 0);
336
- }, l = (t) => e.remove(c(t)), d = async (t, n) => {
337
- let r = o(c(t)), i = o(c(n));
338
- if (r === i) return;
339
- let a = await e.readFile(r);
340
- await e.writeFile(i, a), await e.remove(r);
341
- }, m = async (t) => {
342
- let n = o(c(t)), r = n ? `${n}/` : "", i = /* @__PURE__ */ new Set();
343
- for (let t of await e.list()) {
344
- let e = o(t.path);
345
- if (r && !e.startsWith(r)) continue;
346
- let n = e.slice(r.length);
347
- n && i.add(n.split("/")[0]);
348
- }
349
- return [...i];
350
- }, v = async (e, t) => {}, y = async (t, n) => {
351
- let r = o(c(t));
352
- if (!n?.recursive) {
353
- await e.remove(c(t));
354
- return;
355
- }
356
- let i = `${r}/`, a = await e.list();
357
- await Promise.all(a.filter((e) => {
358
- let t = o(e.path);
359
- return t === r || t.startsWith(i);
360
- }).map((t) => e.remove(t.path).catch(() => {})));
361
- }, b = async (t) => {
362
- let n = o(c(t)), s = await e.list(), l = s.find((e) => o(e.path) === n);
363
- if (l) {
364
- let e = Date.parse(l.updatedAt ?? "");
365
- return r(l.size, Number.isFinite(e) ? e : 0);
366
- }
367
- if (s.some((e) => o(e.path).startsWith(`${n}/`))) return i();
368
- throw a("ENOENT", c(t), "stat");
369
- }, x = {
370
- readFile: t,
371
- writeFile: s,
372
- unlink: l,
373
- rename: d,
374
- readdir: m,
375
- mkdir: v,
376
- rm: y,
377
- rmdir: y,
378
- stat: b,
379
- lstat: b,
380
- access: async (e) => {
381
- await b(e);
382
- }
383
- };
384
- return {
385
- available: e.available,
386
- promises: x,
387
- readFile: (e, n, r) => _(t(e, g(n)), h(n, r)),
388
- writeFile: (e, t, n, r) => _(s(e, t, g(n)), h(n, r)),
389
- unlink: (e, t) => _(l(e), t),
390
- rename: (e, t, n) => _(d(e, t), n),
391
- readdir: (e, t, n) => _(m(e), h(t, n)),
392
- mkdir: (e, t, n) => _(v(), h(t, n)),
393
- rm: (e, t, n) => _(y(e, g(t)), h(t, n)),
394
- stat: (e, t) => _(b(e), t)
395
- };
396
- };
397
- function b(e, t) {
398
- return t.memfs ? v(e) : y(e);
399
- }
400
- //#endregion
401
- export { b as t };
@@ -1 +0,0 @@
1
- const e=require("./api-kHMHDGar.cjs");var t=[`fkn.app`,`fkn.dev`],n=e=>{let n=typeof e==`string`?e:e instanceof URL?e.href:e.url,r;try{r=new URL(n)}catch{return}let i=r.hostname;if(t.some(e=>i===e||i.endsWith(`.${e}`)))throw Error(`fetch refuses FKN platform domains (${i})`)},r=async e=>{if(e!=null)return typeof e==`string`||e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e:new Request(`https://body.invalid/`,{method:`POST`,body:e,duplex:`half`}).arrayBuffer()},i=async e=>{if(e.method===`GET`||e.method===`HEAD`)return;let t=await e.clone().arrayBuffer();return t.byteLength?t:void 0},a=async(t,a)=>{if(n(t),typeof t==`object`&&t&&!(t instanceof URL)&&typeof t.url==`string`){let n=t,o={};n.headers.forEach((e,t)=>{o[t]=e});let s=await r(a?.body===void 0?await i(n):a.body);return e.t.then(e=>e.cloud.fetch(n.url,{...a,method:a?.method??n.method,headers:a?.headers??o,body:s}))}let o=t instanceof URL?t.href:t,s=await r(a?.body);return e.t.then(e=>e.cloud.fetch(o,a?.body===void 0?a:{...a,body:s}))};Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
package/proxy-BpqvCJmA.js DELETED
@@ -1,43 +0,0 @@
1
- import { t as e } from "./api-DQ-V4Lls.js";
2
- //#region src/lib/fkn-target.ts
3
- var t = ["fkn.app", "fkn.dev"], n = (e) => {
4
- let n = typeof e == "string" ? e : e instanceof URL ? e.href : e.url, r;
5
- try {
6
- r = new URL(n);
7
- } catch {
8
- return;
9
- }
10
- let i = r.hostname;
11
- if (t.some((e) => i === e || i.endsWith(`.${e}`))) throw Error(`fetch refuses FKN platform domains (${i})`);
12
- }, r = async (e) => {
13
- if (e != null) return typeof e == "string" || e instanceof ArrayBuffer || ArrayBuffer.isView(e) ? e : new Request("https://body.invalid/", {
14
- method: "POST",
15
- body: e,
16
- duplex: "half"
17
- }).arrayBuffer();
18
- }, i = async (e) => {
19
- if (e.method === "GET" || e.method === "HEAD") return;
20
- let t = await e.clone().arrayBuffer();
21
- return t.byteLength ? t : void 0;
22
- }, a = async (t, a) => {
23
- if (n(t), typeof t == "object" && t && !(t instanceof URL) && typeof t.url == "string") {
24
- let n = t, o = {};
25
- n.headers.forEach((e, t) => {
26
- o[t] = e;
27
- });
28
- let s = await r(a?.body === void 0 ? await i(n) : a.body);
29
- return e.then((e) => e.cloud.fetch(n.url, {
30
- ...a,
31
- method: a?.method ?? n.method,
32
- headers: a?.headers ?? o,
33
- body: s
34
- }));
35
- }
36
- let o = t instanceof URL ? t.href : t, s = await r(a?.body);
37
- return e.then((e) => e.cloud.fetch(o, a?.body === void 0 ? a : {
38
- ...a,
39
- body: s
40
- }));
41
- };
42
- //#endregion
43
- export { n, a as t };