@fkn/lib 0.5.4 → 0.5.5
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/{background-Dk_vaVP1.cjs → background-CbU8TkWo.cjs} +1 -1
- package/{background-TtzKw6g0.js → background-DvQm1JHR.js} +8 -6
- package/cloud/dgram.cjs +1 -1
- package/cloud/dgram.d.ts +7 -3
- package/cloud/dgram.js +2 -2
- package/cloud/dns.d.ts +1 -1
- package/cloud/fs/promises.cjs +1 -1
- package/cloud/fs/promises.js +1 -1
- package/cloud/fs.cjs +1 -1
- package/cloud/fs.js +1 -1
- package/cloud/http.d.ts +2 -2
- package/cloud/net.d.ts +2 -2
- package/{cloud-BrY9dKwV.cjs → cloud-CWg9zCWm.cjs} +1 -1
- package/{cloud-C-LK4DWa.js → cloud-eLyGYzbA.js} +1 -1
- package/cloud.cjs +1 -1
- package/cloud.d.ts +3 -3
- package/cloud.js +3 -3
- package/connect-button-B_63ldmg.js +7 -0
- package/connect-button-poDZVmq2.cjs +1 -0
- package/dgram-B3WC4VdJ.cjs +1 -0
- package/{dgram-DS5_yPc5.js → dgram-c_Xk7ckJ.js} +27 -19
- package/dgram.cjs +1 -1
- package/dgram.d.ts +2 -2
- package/dgram.js +1 -1
- package/dns.d.ts +1 -1
- package/{extension-Dgz0UTy0.js → extension-BLkZiaAP.js} +65 -57
- package/extension-DAiRg5ny.cjs +1 -0
- package/extension.cjs +1 -1
- package/extension.d.ts +14 -7
- package/extension.js +3 -3
- package/fs/promises.cjs +1 -1
- package/fs/promises.d.ts +2 -0
- package/fs/promises.js +2 -2
- package/{fs-CQ-eWjXw.js → fs-BQs-x3_j.js} +1 -1
- package/{fs-Bc6087fG.cjs → fs-DI1maxcZ.cjs} +1 -1
- package/fs.cjs +1 -1
- package/fs.d.ts +4 -0
- package/fs.js +2 -2
- package/http.d.ts +2 -2
- package/index.cjs +1 -1
- package/index.d.ts +92 -30
- package/index.js +22 -34
- package/{locator-DxAsGV_o.js → locator-9s7jNIA2.js} +1 -1
- package/{locator-Cf7M3QKN.cjs → locator-CHfEe3Jv.cjs} +1 -1
- package/net.d.ts +2 -2
- package/{node-fs-Bd_UUx1m.js → node-fs-CdKPXPtW.js} +39 -16
- package/node-fs-DQn1TGJz.cjs +1 -0
- package/opfs/promises.cjs +1 -1
- package/opfs/promises.d.ts +22 -1
- package/opfs/promises.js +3 -3
- package/opfs.cjs +1 -1
- package/opfs.d.ts +58 -1
- package/opfs.js +31 -30
- package/package.json +6 -1
- package/react.cjs +1 -0
- package/react.d.ts +12 -0
- package/react.js +18 -0
- package/dgram-C5rGcbej.cjs +0 -1
- package/extension-9Uv_0HdS.cjs +0 -1
- package/favicon.svg +0 -5
- package/node-fs-lrlD_zqB.cjs +0 -1
package/opfs.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`./chunk-B6C_zzib.cjs`),t=require(`./node-fs-DQn1TGJz.cjs`),n=require(`./opfs-Dsi4FkJU.cjs`);var r=e.n({appendFile:()=>b,appendFileSync:()=>c,available:()=>a,default:()=>i,exists:()=>D,existsSync:()=>l,flush:()=>A,lstatSync:()=>d,mkdir:()=>C,mkdirSync:()=>p,mount:()=>k,promises:()=>O,readFile:()=>v,readFileSync:()=>o,readdir:()=>S,readdirSync:()=>f,remount:()=>j,rename:()=>E,renameSync:()=>_,rm:()=>w,rmSync:()=>m,rmdirSync:()=>h,stat:()=>x,statSync:()=>u,unlink:()=>T,unlinkSync:()=>g,writeFile:()=>y,writeFileSync:()=>s}),i=t.t(n.r,{memfs:!0}),{available:a,readFileSync:o,writeFileSync:s,appendFileSync:c,existsSync:l,statSync:u,lstatSync:d,readdirSync:f,mkdirSync:p,rmSync:m,rmdirSync:h,unlinkSync:g,renameSync:_,readFile:v,writeFile:y,appendFile:b,stat:x,readdir:S,mkdir:C,rm:w,unlink:T,rename:E,exists:D,promises:O,mount:k,flush:A,remount:j}=i;exports.appendFile=b,exports.appendFileSync=c,exports.available=a,exports.default=i,exports.exists=D,exports.existsSync=l,exports.flush=A,exports.lstatSync=d,exports.mkdir=C,exports.mkdirSync=p,exports.mount=k,exports.promises=O,exports.readFile=v,exports.readFileSync=o,exports.readdir=S,exports.readdirSync=f,exports.remount=j,exports.rename=E,exports.renameSync=_,exports.rm=w,exports.rmSync=m,exports.rmdirSync=h,exports.stat=x,exports.statSync=u,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}}),exports.unlink=T,exports.unlinkSync=g,exports.writeFile=y,exports.writeFileSync=s;
|
package/opfs.d.ts
CHANGED
|
@@ -27,6 +27,61 @@ type Stats = {
|
|
|
27
27
|
isSymbolicLink: () => boolean;
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
+
declare const fs: {
|
|
31
|
+
available: () => Promise<boolean>;
|
|
32
|
+
readFileSync: (path: node_fs.PathLike, options?: ReadOptions) => Buffer | string;
|
|
33
|
+
writeFileSync: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => void;
|
|
34
|
+
appendFileSync: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => void;
|
|
35
|
+
existsSync: (path: node_fs.PathLike) => boolean;
|
|
36
|
+
statSync: (path: node_fs.PathLike) => Stats;
|
|
37
|
+
lstatSync: (path: node_fs.PathLike) => Stats;
|
|
38
|
+
readdirSync: (path: node_fs.PathLike) => string[];
|
|
39
|
+
mkdirSync: (path: node_fs.PathLike, options?: MakeOptions) => void;
|
|
40
|
+
rmSync: (path: node_fs.PathLike, options?: {
|
|
41
|
+
recursive?: boolean;
|
|
42
|
+
force?: boolean;
|
|
43
|
+
}) => void;
|
|
44
|
+
rmdirSync: (path: node_fs.PathLike, options?: {
|
|
45
|
+
recursive?: boolean;
|
|
46
|
+
}) => void;
|
|
47
|
+
unlinkSync: (path: node_fs.PathLike) => void;
|
|
48
|
+
renameSync: (from: node_fs.PathLike, to: node_fs.PathLike) => void;
|
|
49
|
+
readFile: (path: node_fs.PathLike, a: ReadOptions | Callback<Buffer | string>, b?: Callback<Buffer | string>) => void;
|
|
50
|
+
writeFile: (path: node_fs.PathLike, data: WriteData, a: WriteOptions | Callback<void>, b?: Callback<void>) => void;
|
|
51
|
+
appendFile: (path: node_fs.PathLike, data: WriteData, a: WriteOptions | Callback<void>, b?: Callback<void>) => void;
|
|
52
|
+
stat: (path: node_fs.PathLike, callback: Callback<Stats>) => void;
|
|
53
|
+
readdir: (path: node_fs.PathLike, a: unknown, b?: Callback<string[]>) => void;
|
|
54
|
+
mkdir: (path: node_fs.PathLike, a: MakeOptions | Callback<void>, b?: Callback<void>) => void;
|
|
55
|
+
rm: (path: node_fs.PathLike, a: {
|
|
56
|
+
recursive?: boolean;
|
|
57
|
+
force?: boolean;
|
|
58
|
+
} | Callback<void>, b?: Callback<void>) => void;
|
|
59
|
+
unlink: (path: node_fs.PathLike, callback: Callback<void>) => void;
|
|
60
|
+
rename: (from: node_fs.PathLike, to: node_fs.PathLike, callback: Callback<void>) => void;
|
|
61
|
+
exists: (path: node_fs.PathLike, callback: (exists: boolean) => void) => void;
|
|
62
|
+
promises: {
|
|
63
|
+
readFile: (path: node_fs.PathLike, options?: ReadOptions) => Promise<Buffer | string>;
|
|
64
|
+
writeFile: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => Promise<void>;
|
|
65
|
+
appendFile: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => Promise<void>;
|
|
66
|
+
stat: (path: node_fs.PathLike) => Promise<Stats>;
|
|
67
|
+
lstat: (path: node_fs.PathLike) => Promise<Stats>;
|
|
68
|
+
readdir: (path: node_fs.PathLike) => Promise<string[]>;
|
|
69
|
+
mkdir: (path: node_fs.PathLike, options?: MakeOptions) => Promise<void>;
|
|
70
|
+
rm: (path: node_fs.PathLike, options?: {
|
|
71
|
+
recursive?: boolean;
|
|
72
|
+
force?: boolean;
|
|
73
|
+
}) => Promise<void>;
|
|
74
|
+
rmdir: (path: node_fs.PathLike, options?: {
|
|
75
|
+
recursive?: boolean;
|
|
76
|
+
}) => Promise<void>;
|
|
77
|
+
unlink: (path: node_fs.PathLike) => Promise<void>;
|
|
78
|
+
rename: (from: node_fs.PathLike, to: node_fs.PathLike) => Promise<void>;
|
|
79
|
+
access: (path: node_fs.PathLike) => Promise<void>;
|
|
80
|
+
};
|
|
81
|
+
mount: () => Promise<void>;
|
|
82
|
+
flush: () => Promise<void>;
|
|
83
|
+
remount: () => Promise<void>;
|
|
84
|
+
};
|
|
30
85
|
declare const available: () => Promise<boolean>;
|
|
31
86
|
declare const readFileSync: (path: node_fs.PathLike, options?: ReadOptions) => Buffer | string;
|
|
32
87
|
declare const writeFileSync: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => void;
|
|
@@ -53,6 +108,7 @@ declare const readdir: (path: node_fs.PathLike, a: unknown, b?: Callback<string[
|
|
|
53
108
|
declare const mkdir: (path: node_fs.PathLike, a: MakeOptions | Callback<void>, b?: Callback<void>) => void;
|
|
54
109
|
declare const rm: (path: node_fs.PathLike, a: {
|
|
55
110
|
recursive?: boolean;
|
|
111
|
+
force?: boolean;
|
|
56
112
|
} | Callback<void>, b?: Callback<void>) => void;
|
|
57
113
|
declare const unlink: (path: node_fs.PathLike, callback: Callback<void>) => void;
|
|
58
114
|
declare const rename: (from: node_fs.PathLike, to: node_fs.PathLike, callback: Callback<void>) => void;
|
|
@@ -67,6 +123,7 @@ declare const promises: {
|
|
|
67
123
|
mkdir: (path: node_fs.PathLike, options?: MakeOptions) => Promise<void>;
|
|
68
124
|
rm: (path: node_fs.PathLike, options?: {
|
|
69
125
|
recursive?: boolean;
|
|
126
|
+
force?: boolean;
|
|
70
127
|
}) => Promise<void>;
|
|
71
128
|
rmdir: (path: node_fs.PathLike, options?: {
|
|
72
129
|
recursive?: boolean;
|
|
@@ -79,5 +136,5 @@ declare const mount: () => Promise<void>;
|
|
|
79
136
|
declare const flush: () => Promise<void>;
|
|
80
137
|
declare const remount: () => Promise<void>;
|
|
81
138
|
|
|
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 };
|
|
139
|
+
export { appendFile, appendFileSync, available, fs as default, 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
140
|
export type { Stats };
|
package/opfs.js
CHANGED
|
@@ -1,35 +1,36 @@
|
|
|
1
1
|
import { n as e } from "./chunk-CPXzm0be.js";
|
|
2
|
-
import { t } from "./node-fs-
|
|
2
|
+
import { t } from "./node-fs-CdKPXPtW.js";
|
|
3
3
|
import { r as n } from "./opfs-BfcYLPGb.js";
|
|
4
4
|
//#region src/lib/opfs/index.ts
|
|
5
5
|
var r = /* @__PURE__ */ e({
|
|
6
|
-
appendFile: () =>
|
|
7
|
-
appendFileSync: () =>
|
|
8
|
-
available: () =>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
6
|
+
appendFile: () => b,
|
|
7
|
+
appendFileSync: () => c,
|
|
8
|
+
available: () => a,
|
|
9
|
+
default: () => i,
|
|
10
|
+
exists: () => D,
|
|
11
|
+
existsSync: () => l,
|
|
12
|
+
flush: () => A,
|
|
13
|
+
lstatSync: () => d,
|
|
14
|
+
mkdir: () => C,
|
|
15
|
+
mkdirSync: () => p,
|
|
16
|
+
mount: () => k,
|
|
17
|
+
promises: () => O,
|
|
18
|
+
readFile: () => v,
|
|
19
|
+
readFileSync: () => o,
|
|
20
|
+
readdir: () => S,
|
|
21
|
+
readdirSync: () => f,
|
|
22
|
+
remount: () => j,
|
|
23
|
+
rename: () => E,
|
|
24
|
+
renameSync: () => _,
|
|
25
|
+
rm: () => w,
|
|
26
|
+
rmSync: () => m,
|
|
27
|
+
rmdirSync: () => h,
|
|
28
|
+
stat: () => x,
|
|
29
|
+
statSync: () => u,
|
|
30
|
+
unlink: () => T,
|
|
31
|
+
unlinkSync: () => g,
|
|
32
|
+
writeFile: () => y,
|
|
33
|
+
writeFileSync: () => s
|
|
34
|
+
}), i = t(n, { memfs: !0 }), { available: a, readFileSync: o, writeFileSync: s, appendFileSync: c, existsSync: l, statSync: u, lstatSync: d, readdirSync: f, mkdirSync: p, rmSync: m, rmdirSync: h, unlinkSync: g, renameSync: _, readFile: v, writeFile: y, appendFile: b, stat: x, readdir: S, mkdir: C, rm: w, unlink: T, rename: E, exists: D, promises: O, mount: k, flush: A, remount: j } = i;
|
|
34
35
|
//#endregion
|
|
35
|
-
export {
|
|
36
|
+
export { b as appendFile, c as appendFileSync, a as available, i as default, D as exists, l as existsSync, A as flush, d as lstatSync, C as mkdir, p as mkdirSync, k as mount, O as promises, v as readFile, o as readFileSync, S as readdir, f as readdirSync, j as remount, E as rename, _ as renameSync, w as rm, m as rmSync, h as rmdirSync, x as stat, u as statSync, r as t, T as unlink, g as unlinkSync, y as writeFile, s as writeFileSync };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fkn/lib",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.5",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -100,6 +100,11 @@
|
|
|
100
100
|
"import": "./account.js",
|
|
101
101
|
"require": "./account.cjs"
|
|
102
102
|
},
|
|
103
|
+
"./react": {
|
|
104
|
+
"types": "./react.d.ts",
|
|
105
|
+
"import": "./react.js",
|
|
106
|
+
"require": "./react.cjs"
|
|
107
|
+
},
|
|
103
108
|
"./package.json": "./package.json"
|
|
104
109
|
},
|
|
105
110
|
"dependencies": {
|
package/react.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./connect-button-poDZVmq2.cjs`);let t=require(`react`);var n=({className:n,style:r}={})=>(0,t.createElement)(`iframe`,{src:e.t(),title:`Connect your FKN account`,className:n,style:{border:`none`,width:150,height:40,background:`transparent`,colorScheme:`normal`,...r}});exports.ConnectButton=n,exports.connectButtonUrl=e.t;
|
package/react.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CSSProperties, ReactElement } from 'react';
|
|
2
|
+
|
|
3
|
+
declare const connectButtonUrl: (origin?: string) => string;
|
|
4
|
+
|
|
5
|
+
type ConnectButtonProps = {
|
|
6
|
+
className?: string;
|
|
7
|
+
style?: CSSProperties;
|
|
8
|
+
};
|
|
9
|
+
declare const ConnectButton: ({ className, style }?: ConnectButtonProps) => ReactElement;
|
|
10
|
+
|
|
11
|
+
export { ConnectButton, connectButtonUrl };
|
|
12
|
+
export type { ConnectButtonProps };
|
package/react.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { t as e } from "./connect-button-B_63ldmg.js";
|
|
2
|
+
import { createElement as t } from "react";
|
|
3
|
+
//#region src/lib/react.ts
|
|
4
|
+
var n = ({ className: n, style: r } = {}) => t("iframe", {
|
|
5
|
+
src: e(),
|
|
6
|
+
title: "Connect your FKN account",
|
|
7
|
+
className: n,
|
|
8
|
+
style: {
|
|
9
|
+
border: "none",
|
|
10
|
+
width: 150,
|
|
11
|
+
height: 40,
|
|
12
|
+
background: "transparent",
|
|
13
|
+
colorScheme: "normal",
|
|
14
|
+
...r
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
//#endregion
|
|
18
|
+
export { n as ConnectButton, e as connectButtonUrl };
|
package/dgram-C5rGcbej.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-B6C_zzib.cjs`),t=require(`./api-CDb2pv7C.cjs`),n=require(`./utils-BsNRWMfl.cjs`);let r=require(`buffer`),i=require(`events`),a=require(`ip-address`);var o=e.n({Socket:()=>s,createSocket:()=>f,default:()=>p}),s=class extends i.EventEmitter{_type;_localAddress;_remoteAddress;_webVPNUdpSocketPromise;_dataPort;_socketId;_sendQueue=[];_sendQueueBytes=0;_sendFlushScheduled=!1;_peerTailCache=new Map;constructor(e){if(super(e),!e)throw Error(`Missing options`);this._type=e.type}_lastRecvBufferSize=0;_lastSendBufferSize=0;_lastTtl=64;_lastMulticastTtl=1;_lastMulticastLoopback=!0;_setUdpOption(e){if(!this._webVPNUdpSocketPromise){this.emit(`error`,Error(`Cannot set socket option before bind`));return}this._webVPNUdpSocketPromise.then(async t=>{if(t)try{await t.setOption(e)}catch(e){this.emit(`error`,e)}})}_onDataPortBatch(e){let t=new DataView(e),n=0;for(;n+4<=e.byteLength;){let i=t.getUint32(n);n+=4;let a=n+i;if(a>e.byteLength)break;let o=n+4,s=t.getUint8(o);o+=1;let c,l,u;if(s===2){if(!this._remoteAddress){n=a;continue}c=this._remoteAddress.address,l=this._remoteAddress.family,u=this._remoteAddress.port}else{let n=new Uint8Array(e,o,s===0?4:16);if(s===0)l=`IPv4`,c=`${n[0]}.${n[1]}.${n[2]}.${n[3]}`;else{l=`IPv6`;let e=[];for(let t=0;t<16;t+=2)e.push(((n[t]<<8|n[t+1])>>>0).toString(16));c=e.join(`:`)}o+=n.byteLength,u=t.getUint16(o),o+=2}let d=t.getUint32(o);o+=4,this.emit(`message`,r.Buffer.from(e.slice(o,o+d)),{address:c,family:l,port:u,size:d}),n=a}}_peerTail(e,t){if(e===void 0||t===void 0)return c;let n=`${e}|${t}`,r=this._peerTailCache.get(n);if(r)return r;let i=a.Address4.isValid(e)?u(e):d(e),o=new Uint8Array(1+i.byteLength+2);return o[0]=i.byteLength===4?0:1,o.set(i,1),new DataView(o.buffer).setUint16(1+i.byteLength,t),this._peerTailCache.set(n,o),o}_portSend(e,t,n){let r=this._peerTail(t,n),i=new Uint8Array(8+r.byteLength+4+e.byteLength),a=new DataView(i.buffer);a.setUint32(0,i.byteLength-4),a.setUint32(4,this._socketId),i.set(r,8),a.setUint32(8+r.byteLength,e.byteLength),i.set(e,12+r.byteLength),this._sendQueue.push(i),this._sendQueueBytes+=i.byteLength,!this._sendFlushScheduled&&(this._sendFlushScheduled=!0,queueMicrotask(()=>{this._sendFlushScheduled=!1;let e=this._sendQueue,t=this._sendQueueBytes;if(this._sendQueue=[],this._sendQueueBytes=0,!e.length||!this._dataPort)return;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.byteLength;this._dataPort.postMessage(n.buffer,[n.buffer])}))}addMembership(e,t){if(a.Address4.isValid(e)){let n=u(e),r=t&&a.Address4.isValid(t)?u(t):new Uint8Array([0,0,0,0]);this._setUdpOption({type:5,group:n,interface:r})}else if(a.Address6.isValid(e)){let t=d(e);this._setUdpOption({type:7,group:t,ifIndex:0})}else this.emit(`error`,Error(`Invalid multicast address: ${e}`))}address(){if(!this._localAddress)throw Error(`EBADF`);return this._localAddress}bind(...e){let i=n.i(...e),a=this._type===`udp6`?`::`:`0.0.0.0`;return this._webVPNUdpSocketPromise=t.t.then(e=>e.cloud.webvpn.udpSocket({type:this._type,address:i.address??a,port:i.port,dataPort:!0})).then(e=>{if(e.dataPort)this._socketId=e.socketId,this._dataPort=e.dataPort,this._dataPort.onmessage=e=>this._onDataPortBatch(e.data);else{let t=e.dataReadableStream.getReader(),n=async()=>{let{value:e,done:i}=await t.read();i||(this.emit(`message`,r.Buffer.from(e.data),{address:e.address,family:e.family,port:e.port,size:e.size}),n())};n()}return this._localAddress={address:e.localAddress,family:e.localFamily,port:e.localPort},e}).catch(e=>{this.emit(`error`,e)}),this._webVPNUdpSocketPromise.then(e=>{e&&this.emit(`listening`)}),i.callback&&this._webVPNUdpSocketPromise.then(e=>{e&&i.callback.call(this)}),this}close(e){if(!this._webVPNUdpSocketPromise)throw Error(`Socket not bound`);return this._webVPNUdpSocketPromise.then(async t=>{if(!t)throw Error(`Socket not bound`);this._dataPort?.close(),this._dataPort=void 0,await t.close(),e&&e(),this.emit(`close`)}),this}connect(...e){if(!this._webVPNUdpSocketPromise)throw Error(`Socket not bound`);this._webVPNUdpSocketPromise.then(async t=>{if(!t)throw Error(`Socket not bound`);let n=e[0],r=this._type===`udp6`?`::1`:`127.0.0.1`,i=typeof e[1]==`string`?e[1]:r,a=typeof e.at(-1)==`function`?e.at(-1):void 0;await t.connect({remotePort:n,remoteAddress:i}),this._remoteAddress={address:i,family:this._type===`udp6`?`IPv6`:`IPv4`,port:n},a&&a()})}disconnect(){if(!this._webVPNUdpSocketPromise)throw Error(`Socket not bound`);this._webVPNUdpSocketPromise.then(async e=>{if(!e)throw Error(`Socket not bound`);await e.connect({remotePort:0,remoteAddress:this._type===`udp4`?`0.0.0.0`:`::`})})}dropMembership(e,t){if(a.Address4.isValid(e)){let n=u(e),r=t&&a.Address4.isValid(t)?u(t):new Uint8Array([0,0,0,0]);this._setUdpOption({type:6,group:n,interface:r})}else if(a.Address6.isValid(e)){let t=d(e);this._setUdpOption({type:8,group:t,ifIndex:0})}else this.emit(`error`,Error(`Invalid multicast address: ${e}`))}getRecvBufferSize(){return this._lastRecvBufferSize}getSendBufferSize(){return this._lastSendBufferSize}getSendQueueSize(){return 0}getSendQueueCount(){return 0}ref(){return this}remoteAddress(){if(!this._remoteAddress)throw Error(`ERR_SOCKET_DGRAM_NOT_CONNECTED`);return{address:this._remoteAddress.address,family:this._remoteAddress.family,port:this._remoteAddress.port}}send(...e){this._webVPNUdpSocketPromise||this.bind();let t=n.a(...e),r=this._type===`udp6`?`::1`:`127.0.0.1`;if(!this._webVPNUdpSocketPromise)throw Error(`Socket not bound`);this._webVPNUdpSocketPromise.then(e=>{if(!e)throw Error(`Socket not bound`);let n=l(t.message),i=t.callback,o=t.address??r,s=this._remoteAddress!==void 0&&t.address===void 0;if(this._dataPort&&(s||a.Address4.isValid(o)||a.Address6.isValid(o))){this._portSend(n,s?void 0:o,s?void 0:t.port),i?.call(this,null,n.byteLength);return}e.send({...t,address:o,message:n.byteOffset===0&&n.byteLength===n.buffer.byteLength?n.buffer:n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength)}).then(()=>i?.call(this,null,n.byteLength),e=>i?i.call(this,e,0):this.emit(`error`,e))})}setBroadcast(e){this._setUdpOption({type:0,value:e})}setMulticastInterface(e){}setMulticastLoopback(e){return this._setUdpOption({type:3,value:e}),this._setUdpOption({type:4,value:e}),this._lastMulticastLoopback=e,e}setMulticastTTL(e){return this._setUdpOption({type:2,value:e}),this._lastMulticastTtl=e,e}setRecvBufferSize(e){this._setUdpOption({type:10,value:e}),this._lastRecvBufferSize=e}setSendBufferSize(e){this._setUdpOption({type:9,value:e}),this._lastSendBufferSize=e}setTTL(e){return this._setUdpOption({type:1,value:e}),this._lastTtl=e,e}unref(){return this}addSourceSpecificMembership(e,t,n){}dropSourceSpecificMembership(e,t,n){}async[Symbol.asyncDispose](){await new Promise(e=>{this.close(e)})}},c=new Uint8Array([2]),l=e=>{if(typeof e==`string`)return n.s.encode(e);if(e instanceof Uint8Array)return e;if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(Array.isArray(e)){let t=e.map(l),n=new Uint8Array(t.reduce((e,t)=>e+t.byteLength,0)),r=0;for(let e of t)n.set(e,r),r+=e.byteLength;return n}return new Uint8Array(e)},u=e=>{let t=e.split(`.`).map(e=>parseInt(e,10));if(t.length!==4||t.some(e=>Number.isNaN(e)||e<0||e>255))throw Error(`Invalid IPv4 address: ${e}`);return new Uint8Array(t)},d=e=>{let t=new a.Address6(e).getBitsBase16(0,128).match(/.{2}/g);if(!t||t.length!==16)throw Error(`Invalid IPv6 address: ${e}`);return new Uint8Array(t.map(e=>parseInt(e,16)))},f=(e,t)=>{let n=new s(typeof e==`string`?{type:e}:e);return t&&n.on(`message`,t),n},p={Socket:s,createSocket:f};Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
|
package/extension-9Uv_0HdS.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-B6C_zzib.cjs`),t=require(`./locator-Cf7M3QKN.cjs`),n=require(`./api-CDb2pv7C.cjs`),r=require(`./proxy-A9UvWUaF.cjs`),i=require(`./desktop.cjs`);let a=require(`osra`);var o=`FKN_WEB_EXTENSION_MAIN_WORLD_CONTENT_SCRIPT_ENABLED_EVENT_KEY`,s=`fknExtension`,c=(0,a.createTypedEventTarget)();typeof document<`u`&&document.addEventListener(o,()=>{c.dispatchEvent(new CustomEvent(`statuschange`,{detail:{enabled:l()}}))});var l=()=>typeof document>`u`?!1:document.documentElement.dataset[s]===`true`,u=null,d=e=>{u=e},f=150,p=(e=1e3)=>new Promise((t,n)=>{if(l())return t();let r,i=e=>{clearTimeout(r),s.disconnect(),document.removeEventListener(`readystatechange`,c),e()},a=()=>i(async()=>{if(u&&(await u().catch(()=>{}),l()))return t();n(Error(`The FKN WebExtension is not installed, enabled or not exposed on this page.`))}),o=()=>{clearTimeout(r),r=setTimeout(()=>l()?i(t):a(),f)},s=new MutationObserver(()=>{l()&&i(t)}),c=()=>{document.readyState===`complete`&&!l()&&o()};if(r=setTimeout(a,e),s.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-fkn-extension`]}),document.addEventListener(`readystatechange`,c),document.readyState===`complete`)return o();l()&&i(t)}),m,h=new Proxy({},{get:(e,n)=>async(...e)=>{await p(),m??=(0,a.expose)({},{transport:window,revivableModules:t.l});let r=(await m)[n];return r(...e)}}),g={scope:`network.fetch`,category:`network`,severity:0,title:`Fetch data from other sites`,description:`Lets the app download public data from other websites directly, past the usual cross-origin limits.`},_={scope:`network.fetchCredentialed`,category:`network`,severity:3,unsafe:!0,title:`Fetch from other sites, signed in as you`,description:`Lets the app fetch other sites using your logged-in session cookies, so it can read data only you should see.`},v={scope:`network.fetchLocal`,category:`network`,severity:3,unsafe:!0,title:`Access devices on your local network`,description:`Lets the app reach devices and services on your home or work network, which websites normally cannot touch.`},y=e=>{let t=e.match(/^(\d+)\.(\d+)\.\d+\.\d+$/);if(!t)return!1;let[n,r]=[Number(t[1]),Number(t[2])];return n===10||n===127||n===0||n===169&&r===254||n===172&&r>=16&&r<=31||n===192&&r===168},b=e=>{let t;try{t=new URL(e)}catch{return!1}let n=t.hostname.replace(/^\[|\]$/g,``).toLowerCase().replace(/\.$/,``);return n===`localhost`||n.endsWith(`.localhost`)||n.endsWith(`.local`)||n.endsWith(`.internal`)||n.endsWith(`.home.arpa`)?!0:n.includes(`:`)?n===`::`||n===`::1`||n.startsWith(`fc`)||n.startsWith(`fd`)||/^fe[89ab]/.test(n)||n.startsWith(`::ffff:`):y(n)},x=[`fkn.app`,`fkn.dev`],S=e=>{let t;try{t=new URL(e)}catch{return!1}if(t.protocol===`chrome-extension:`||t.protocol===`moz-extension:`)return!0;let n=t.hostname;return x.some(e=>n===e||n.endsWith(`.${e}`))},C=e=>{if(S(e))throw Error(`fetch: refusing to target the extension's own pages or FKN platform domains`)},w=[`origin`,`referer`],T=e=>{if(!e?.headers)return;let t=new Headers(e.headers),n=w.map(e=>{let n=t.get(e);return n===null?void 0:[e,n]}).filter(e=>e!==void 0);return n.length?n:void 0},E=async(e,t)=>{let n=new Request(e,t);C(n.url);let r=n.body?await n.arrayBuffer():null;return h.proxyFetch({url:n.url,method:n.method,headers:[...n.headers],body:r,credentials:t?.credentials===`include`?`include`:`omit`,redirect:n.redirect,unsafeHeaders:T(t),reason:t?.reason,signal:t?.signal??void 0})},D={scope:`network.readCookie`,category:`network`,severity:3,unsafe:!0,title:`Read a site’s cookie`,description:`Lets the app read a named cookie from another site, which can include the login token only that site should see.`},O={get:e=>h.getCookie(e)},k={scope:`network.modifyRequestHeaders`,category:`network`,severity:2,unsafe:!0,title:`Rewrite request headers to other sites`,description:`Lets the app set or remove headers (like Origin and Referer) on this page’s own requests to the listed sites.`},A=e=>h.setRequestHeaderRule(e),j=e=>h.removeRequestHeaderRule({ruleId:e});(()=>{let e={},n=[...t.t.selectorModules,...t.i.selectorModules];for(let t of n)t.render&&!(t.type in e)&&(e[t.type]=t.render);return e})();var M=`FKN_WEB_EXTENSION_ATTACH_FRAME_EVENT_KEY`,N=e=>{if(!e||e===`about:blank`)return!1;let t;try{t=new URL(e,location.href)}catch{return!1}if(t.protocol===`chrome-extension:`||t.protocol===`moz-extension:`)return!0;if(t.protocol===`about:`)return!1;let n=t.hostname;return n===`fkn.app`||n.endsWith(`.fkn.app`)},P=e=>{if(N(e))throw Error(`attachFrame: refusing to target the extension's own pages or fkn.app`)},F={scope:`embed.iframe`,category:`embed`,severity:0,title:`Load another website inside this app`,description:`Lets the app embed external pages directly inside its own view.`},I={scope:`embed.open`,category:`embed`,severity:0,title:`Open a website inside this app`,description:`Lets the app navigate to another site without leaving its window.`},L={scope:`embed.evaluate`,category:`embed`,severity:0,title:`Run app code inside an embedded frame`,description:`Lets the app execute its own code inside a page it embedded, to read back a computed result.`},R=async({iframe:e,domains:n=[],syncCookies:r=!0,lockdown:i=!1})=>{let a=crypto.randomUUID();if(P(e.src),await p(),!e.isConnected)throw Error(`attachFrame: the iframe must be connected to the document before attaching`);e.dispatchEvent(new CustomEvent(M,{detail:a}));let{executeLocator:o,ensureLocatorPermission:s,goto:c,evaluate:l}=await h.attachFrame({marker:a,domains:n,syncCookies:r,lockdown:i}),u=t.r(o,s),d=(e,t={})=>(P(e),c({url:e,...t})),f=((e,t)=>l(e,t)),m=()=>e.src;return{...u,goto:d,evaluate:f,url:m}},z={request:e=>h.requestPermissions(e.map(e=>({key:e.key,scope:e.scope??``,reason:e.reason})))},B=async e=>{if(typeof window>`u`)return!1;if(l())return!0;let t=await n.t,r=null,i=new Promise(e=>{r=()=>{l()&&e(!0)},c.addEventListener(`statuschange`,r)}),a=t.installPrompt.show(e).then(()=>!1),o=await Promise.race([i,a]);return r&&c.removeEventListener(`statuschange`,r),await t.installPrompt.hide().catch(()=>{}),o},V=null;d(()=>(V||=B().then(()=>void 0).finally(()=>{V=null}),V));var H=()=>typeof document<`u`&&l(),U=async(e,t)=>{if(r.n(e),t?.credentials===`include`){if(typeof document>`u`)throw Error(`fetch with credentials needs the FKN extension, which only exists in window realms`);return E(e,t)}return H()?E(e,{...t,credentials:`omit`}):i.available()?i.fetch(e,t):r.t(e,t)},W=e.n({ATTACH_FRAME_EVENT_KEY:()=>M,assertAttachableFrameUrl:()=>P,assertFetchableUrl:()=>C,attachFrame:()=>R,attachFramePermission:()=>F,available:()=>H,box:()=>t.u,cookies:()=>O,createVideoElementHandle:()=>t.d,evaluatePermission:()=>L,events:()=>c,extension:()=>c,fetch:()=>E,fetchCredentialedPermission:()=>_,fetchLocalPermission:()=>v,fetchPermission:()=>g,gotoPermission:()=>I,handleRevivableModules:()=>t.l,isBlockedFetchUrl:()=>S,isBlockedFrameUrl:()=>N,isExtensionExposed:()=>l,isLocalNetworkUrl:()=>b,isType:()=>t.f,modifyRequestHeadersPermission:()=>k,permissions:()=>z,promptInstall:()=>B,readCookiePermission:()=>D,removeRequestHeaderRule:()=>j,revive:()=>t.p,setMissingExtensionHandler:()=>d,setRequestHeaderRule:()=>A,type:()=>t.m,waitForExtensionExposure:()=>p});Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return E}});
|
package/favicon.svg
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -30.9 461.9 461.9">
|
|
2
|
-
<path d="M198.4,0.1L365,288.6H162.3l-31.8,55l331.4-0.2L263.6,0L198.4,0.1z" fill="#f9aa40"/>
|
|
3
|
-
<path d="M198.3,0L0,343.6l32.6,56.5l165.1-285.9l100.7,174.4h66.5L198.3,0z" fill="#4572b5"/>
|
|
4
|
-
<path d="M197.7,114.2l32.6,56.5l-99.8,172.9h331.4l-32.6,56.5H32.6L197.7,114.2z" fill="#51bb8d"/>
|
|
5
|
-
</svg>
|
package/node-fs-lrlD_zqB.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
let e=require(`buffer`);var t={json:`application/json`,txt:`text/plain`,html:`text/html`,htm:`text/html`,css:`text/css`,js:`text/javascript`,mjs:`text/javascript`,xml:`application/xml`,csv:`text/csv`,md:`text/markdown`,svg:`image/svg+xml`,png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,pdf:`application/pdf`,wasm:`application/wasm`},n=(e,n)=>{if(n)return n;let r=e.split(`/`).pop()??``,i=r.lastIndexOf(`.`);if(!(i<=0))return t[r.slice(i+1).toLowerCase()]},r=(e,t)=>({size:e,mtimeMs:t,mtime:new Date(t),atimeMs:t,ctimeMs:t,mode:420,isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1}),i=(e=0)=>({size:0,mtimeMs:e,mtime:new Date(e),atimeMs:e,ctimeMs:e,mode:493,isFile:()=>!1,isDirectory:()=>!0,isSymbolicLink:()=>!1}),a=(e,t,n)=>{let r=Error(`${e}: ${{ENOENT:`no such file or directory`,EEXIST:`file already exists`,ENOTDIR:`not a directory`,EISDIR:`illegal operation on a directory`,ENOTEMPTY:`directory not empty`}[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}});
|