@fkn/lib 0.6.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/{api-BYUraih6.d.ts → api-CI4d96Ty.d.ts} +156 -24
  2. package/{background-B_VgpARk.cjs → background-Bu7dBd_Z.cjs} +1 -1
  3. package/{background-BVBbBOmL.js → background-DLnt6fYS.js} +5 -5
  4. package/cloud/dgram.cjs +1 -1
  5. package/cloud/dgram.js +1 -1
  6. package/cloud/fs.cjs +1 -1
  7. package/cloud/fs.d.ts +2 -2
  8. package/cloud/fs.js +18 -15
  9. package/cloud/net.cjs +1 -1
  10. package/cloud/net.d.ts +1 -1
  11. package/cloud/net.js +3 -3
  12. package/{cloud-gklfa4ZN.d.ts → cloud-BxPdeAuj.d.ts} +4 -4
  13. package/cloud-DevROE3T.cjs +1 -0
  14. package/{cloud-BFyf2uC7.js → cloud-Pibu_mY3.js} +32 -18
  15. package/cloud.cjs +1 -1
  16. package/cloud.d.ts +3 -3
  17. package/cloud.js +4 -4
  18. package/desktop.d.ts +6 -0
  19. package/{dgram-wtjARbt0.js → dgram-CKRbKVzG.js} +140 -86
  20. package/dgram-DcvdNkg6.cjs +1 -0
  21. package/dgram.cjs +1 -1
  22. package/dgram.d.ts +16 -1
  23. package/dgram.js +1 -1
  24. package/{extension-CPj10qwa.js → extension-4ib5y95s.js} +1 -1
  25. package/{extension-D-NUXxzF.cjs → extension-DVHdBvOz.cjs} +1 -1
  26. package/extension.cjs +1 -1
  27. package/extension.js +2 -2
  28. package/fs/promises.cjs +1 -1
  29. package/fs/promises.js +1 -1
  30. package/{fs-D6nNf1mR.js → fs-7E0-tE2x.js} +11 -11
  31. package/{fs-K7ROdxDx.d.ts → fs-BEfsbriO.d.ts} +14 -2
  32. package/{fs-BfmfMBiw.cjs → fs-BN4hkppN.cjs} +1 -1
  33. package/fs.cjs +1 -1
  34. package/fs.js +1 -1
  35. package/http.cjs +1 -1
  36. package/http.d.ts +1 -1
  37. package/http.js +1 -1
  38. package/index.cjs +1 -1
  39. package/index.d.ts +3 -3
  40. package/index.js +6 -6
  41. package/{net-DKMWPXb_.js → net-BFYMbE4N.js} +49 -26
  42. package/net-BPpdNdpy.cjs +1 -0
  43. package/{net-BDW1AVX1.d.ts → net-Cx8lDWau.d.ts} +13 -4
  44. package/net.cjs +1 -1
  45. package/net.d.ts +1 -1
  46. package/net.js +3 -3
  47. package/package.json +1 -1
  48. package/{packages-D36R2vBv.d.ts → packages-CErlrrLB.d.ts} +2 -2
  49. package/packages.d.ts +2 -2
  50. package/{proxy-C8SG1Beo.js → proxy-Cusnx9Ex.js} +1 -1
  51. package/{proxy-bPaU3-Cz.cjs → proxy-Du95zAKk.cjs} +1 -1
  52. package/storage-DMETg6sP.js +30 -0
  53. package/storage-ezLkqmQR.cjs +1 -0
  54. package/{utils-DPtyxGQu.js → utils-DVlbuXmW.js} +6 -4
  55. package/utils-QfNXtEhb.cjs +1 -0
  56. package/cloud-5o7yJHeX.cjs +0 -1
  57. package/dgram-CE43gJq9.cjs +0 -1
  58. package/net-CpuAhaQC.cjs +0 -1
  59. package/storage-OkwsFLN1.cjs +0 -1
  60. package/storage-TmeyhZGt.js +0 -19
  61. package/utils-CoimMjf9.cjs +0 -1
@@ -6,6 +6,7 @@ type FileEntry = {
6
6
  size: number;
7
7
  contentType: string | null;
8
8
  updatedAt: string;
9
+ encryption: string | null;
9
10
  };
10
11
  type StorageQuota = {
11
12
  usedBytes: number;
@@ -14,9 +15,20 @@ type StorageQuota = {
14
15
  objects: number;
15
16
  maxObjects: number;
16
17
  };
18
+ type EncryptionStatus = {
19
+ accountEnabled: boolean;
20
+ appMode: string;
21
+ unlocked: boolean;
22
+ };
23
+ declare class StorageLockedError extends Error {
24
+ code: string;
25
+ constructor();
26
+ }
17
27
  declare const quota: () => Promise<StorageQuota>;
28
+ declare const encryption: () => Promise<EncryptionStatus>;
29
+ declare const unlock: () => Promise<boolean>;
18
30
  declare namespace fs_d_exports {
19
- export { FileEntry, Stats, StorageQuota, available, mkdir, promises, quota, readFile, readdir, rename, rm, stat, unlink, writeFile };
31
+ export { EncryptionStatus, FileEntry, Stats, StorageLockedError, StorageQuota, available, encryption, mkdir, promises, quota, readFile, readdir, rename, rm, stat, unlink, unlock, writeFile };
20
32
  }
21
33
  declare const available: () => Promise<boolean>, readFile: (path: import("node:fs").PathLike, a: ReadOptions | Callback<Buffer | string>, b?: Callback<Buffer | string>) => void, writeFile: (path: import("node:fs").PathLike, data: WriteData, a: WriteOptions | Callback<void>, b?: Callback<void>) => void, unlink: (path: import("node:fs").PathLike, callback: Callback<void>) => void, rename: (from: import("node:fs").PathLike, to: import("node:fs").PathLike, callback: Callback<void>) => void, readdir: (path: import("node:fs").PathLike, a: unknown, b?: Callback<string[]>) => void, mkdir: (path: import("node:fs").PathLike, a: MakeOptions | Callback<void>, b?: Callback<void>) => void, rm: (path: import("node:fs").PathLike, a: {
22
34
  recursive?: boolean;
@@ -38,4 +50,4 @@ declare const available: () => Promise<boolean>, readFile: (path: import("node:f
38
50
  access: (path: import("node:fs").PathLike) => Promise<void>;
39
51
  };
40
52
  //#endregion
41
- export { readFile as a, rm as c, writeFile as d, FileEntry as f, promises as i, stat as l, quota as m, fs_d_exports as n, readdir as o, StorageQuota as p, mkdir as r, rename as s, available as t, unlink as u };
53
+ export { quota as _, readFile as a, rm as c, writeFile as d, EncryptionStatus as f, encryption as g, StorageQuota as h, promises as i, stat as l, StorageLockedError as m, fs_d_exports as n, readdir as o, FileEntry as p, mkdir as r, rename as s, available as t, unlink as u, unlock as v };
@@ -1 +1 @@
1
- const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./node-fs-C0eKnboT.cjs"),n=require("./storage-OkwsFLN1.cjs"),r=require("./opfs-uClkgnb5.cjs");var i=e.n({available:()=>c,list:()=>l,pull:()=>p,readFile:()=>u,remove:()=>f,writeFile:()=>d}),a,o=async()=>await(a??=r.t().catch(()=>!1))?!0:(a=void 0,!1),s=()=>n.t().catch(()=>!1),c=async()=>await o()||await s(),l=async()=>{let[e,t]=await Promise.all([o().then(e=>e?r.n():[]).catch(()=>[]),s().then(e=>e?n.n():[]).catch(()=>[])]),i=new Map,a=e=>{let t=Date.parse(e.updatedAt??``);return Number.isFinite(t)?t:0},c=e=>{let t=i.get(e.path);(!t||a(e)>=a(t))&&i.set(e.path,e)};for(let t of e)c(t);for(let e of t)c(e);return[...i.values()]},u=async e=>{if(await o())try{return await r.i(e)}catch(e){if(e?.name!==`NotFoundError`)throw e}let t=await n.i(e);return await o()&&r.o(e,t).catch(()=>{}),t},d=async(e,t,i)=>{let a=t instanceof Blob?t:new Blob([t],i?.contentType?{type:i.contentType}:void 0);if(await o()){await r.o(e,a,i),await s()&&n.s(e,a,i).catch(e=>console.warn(`fs: cloud replicate failed`,e));return}if(await s())return n.s(e,a,i);throw Error(`fs: no storage backend available`)},f=async e=>{let t=[];if(await o()&&t.push(r.a(e).catch(()=>{})),await s()&&t.push(n.a(e).catch(()=>{})),!t.length)throw Error(`fs: no storage backend available`);await Promise.all(t)},p=async e=>{let t=await n.i(e);return await o()&&await r.o(e,t),t},m=e.n({appendFile:()=>j,appendFileSync:()=>y,available:()=>g,default:()=>W,exists:()=>R,existsSync:()=>b,flush:()=>V,lstatSync:()=>S,mkdir:()=>P,mkdirSync:()=>w,mount:()=>B,promises:()=>z,pull:()=>U,readFile:()=>k,readFileSync:()=>_,readdir:()=>N,readdirSync:()=>C,remount:()=>H,rename:()=>L,renameSync:()=>O,rm:()=>F,rmSync:()=>T,rmdirSync:()=>E,stat:()=>M,statSync:()=>x,unlink:()=>I,unlinkSync:()=>D,writeFile:()=>A,writeFileSync:()=>v}),h=t.t(i,{memfs:!0}),{available:g,readFileSync:_,writeFileSync:v,appendFileSync:y,existsSync:b,statSync:x,lstatSync:S,readdirSync:C,mkdirSync:w,rmSync:T,rmdirSync:E,unlinkSync:D,renameSync:O,readFile:k,writeFile:A,appendFile:j,stat:M,readdir:N,mkdir:P,rm:F,unlink:I,rename:L,exists:R,promises:z,mount:B,flush:V,remount:H}=h,U=p,W={...h,pull:U};Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return H}});
1
+ const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./node-fs-C0eKnboT.cjs"),n=require("./storage-ezLkqmQR.cjs"),r=require("./opfs-uClkgnb5.cjs");var i=e.n({available:()=>c,list:()=>l,pull:()=>p,readFile:()=>u,remove:()=>f,writeFile:()=>d}),a,o=async()=>await(a??=r.t().catch(()=>!1))?!0:(a=void 0,!1),s=()=>n.n().catch(()=>!1),c=async()=>await o()||await s(),l=async()=>{let[e,t]=await Promise.all([o().then(e=>e?r.n():[]).catch(()=>[]),s().then(e=>e?n.i():[]).catch(()=>[])]),i=new Map,a=e=>{let t=Date.parse(e.updatedAt??``);return Number.isFinite(t)?t:0},c=e=>{let t=i.get(e.path);(!t||a(e)>=a(t))&&i.set(e.path,e)};for(let t of e)c(t);for(let e of t)c(e);return[...i.values()]},u=async e=>{if(await o())try{return await r.i(e)}catch(e){if(e?.name!==`NotFoundError`)throw e}let t=await n.o(e);return await o()&&r.o(e,t).catch(()=>{}),t},d=async(e,t,i)=>{let a=t instanceof Blob?t:new Blob([t],i?.contentType?{type:i.contentType}:void 0);if(await o()){await r.o(e,a,i),await s()&&n.u(e,a,i).catch(e=>console.warn(`fs: cloud replicate failed`,e));return}if(await s())return n.u(e,a,i);throw Error(`fs: no storage backend available`)},f=async e=>{let t=[];if(await o()&&t.push(r.a(e).catch(()=>{})),await s()&&t.push(n.s(e).catch(()=>{})),!t.length)throw Error(`fs: no storage backend available`);await Promise.all(t)},p=async e=>{let t=await n.o(e);return await o()&&await r.o(e,t),t},m=e.n({appendFile:()=>j,appendFileSync:()=>y,available:()=>g,default:()=>W,exists:()=>R,existsSync:()=>b,flush:()=>V,lstatSync:()=>S,mkdir:()=>P,mkdirSync:()=>w,mount:()=>B,promises:()=>z,pull:()=>U,readFile:()=>k,readFileSync:()=>_,readdir:()=>N,readdirSync:()=>C,remount:()=>H,rename:()=>L,renameSync:()=>O,rm:()=>F,rmSync:()=>T,rmdirSync:()=>E,stat:()=>M,statSync:()=>x,unlink:()=>I,unlinkSync:()=>D,writeFile:()=>A,writeFileSync:()=>v}),h=t.t(i,{memfs:!0}),{available:g,readFileSync:_,writeFileSync:v,appendFileSync:y,existsSync:b,statSync:x,lstatSync:S,readdirSync:C,mkdirSync:w,rmSync:T,rmdirSync:E,unlinkSync:D,renameSync:O,readFile:k,writeFile:A,appendFile:j,stat:M,readdir:N,mkdir:P,rm:F,unlink:I,rename:L,exists:R,promises:z,mount:B,flush:V,remount:H}=h,U=p,W={...h,pull:U};Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return H}});
package/fs.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./fs-BfmfMBiw.cjs");exports.appendFile=e.t,exports.appendFileSync=e.n,exports.available=e.r,exports.default=e.s,exports.exists=e.i,exports.existsSync=e.a,exports.flush=e.o,exports.lstatSync=e.l,exports.mkdir=e.u,exports.mkdirSync=e.d,exports.mount=e.f,exports.promises=e.p,exports.pull=e.m,exports.readFile=e.h,exports.readFileSync=e.g,exports.readdir=e._,exports.readdirSync=e.v,exports.remount=e.y,exports.rename=e.b,exports.renameSync=e.x,exports.rm=e.S,exports.rmSync=e.C,exports.rmdirSync=e.w,exports.stat=e.T,exports.statSync=e.E,exports.unlink=e.D,exports.unlinkSync=e.O,exports.writeFile=e.k,exports.writeFileSync=e.A;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./fs-BN4hkppN.cjs");exports.appendFile=e.t,exports.appendFileSync=e.n,exports.available=e.r,exports.default=e.s,exports.exists=e.i,exports.existsSync=e.a,exports.flush=e.o,exports.lstatSync=e.l,exports.mkdir=e.u,exports.mkdirSync=e.d,exports.mount=e.f,exports.promises=e.p,exports.pull=e.m,exports.readFile=e.h,exports.readFileSync=e.g,exports.readdir=e._,exports.readdirSync=e.v,exports.remount=e.y,exports.rename=e.b,exports.renameSync=e.x,exports.rm=e.S,exports.rmSync=e.C,exports.rmdirSync=e.w,exports.stat=e.T,exports.statSync=e.E,exports.unlink=e.D,exports.unlinkSync=e.O,exports.writeFile=e.k,exports.writeFileSync=e.A;
package/fs.js CHANGED
@@ -1,2 +1,2 @@
1
- import { A as e, C as t, D as n, E as r, O as i, S as a, T as o, _ as s, a as c, b as l, d as u, f as d, g as f, h as p, i as m, k as h, l as g, m as _, n as v, o as y, p as b, r as x, s as S, t as C, u as w, v as T, w as E, x as D, y as O } from "./fs-D6nNf1mR.js";
1
+ import { A as e, C as t, D as n, E as r, O as i, S as a, T as o, _ as s, a as c, b as l, d as u, f as d, g as f, h as p, i as m, k as h, l as g, m as _, n as v, o as y, p as b, r as x, s as S, t as C, u as w, v as T, w as E, x as D, y as O } from "./fs-7E0-tE2x.js";
2
2
  export { C as appendFile, v as appendFileSync, x as available, S as default, m as exists, c as existsSync, y as flush, g as lstatSync, w as mkdir, u as mkdirSync, d as mount, b as promises, _ as pull, p as readFile, f as readFileSync, s as readdir, T as readdirSync, O as remount, l as rename, D as renameSync, a as rm, t as rmSync, E as rmdirSync, o as stat, r as statSync, n as unlink, i as unlinkSync, h as writeFile, e as writeFileSync };
package/http.cjs CHANGED
@@ -1,4 +1,4 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./net-CpuAhaQC.cjs");let n=require("buffer"),r=require("stream");var i=e.n({Agent:()=>T,ClientRequest:()=>S,HTTPParser:()=>g,IncomingMessage:()=>v,METHODS:()=>o,STATUS_CODES:()=>s,Server:()=>w,ServerResponse:()=>b,_default:()=>A,createServer:()=>k,default:()=>A,get:()=>O,globalAgent:()=>E,request:()=>D}),a=new TextDecoder(`latin1`),o=`ACL.BIND.CHECKOUT.CONNECT.COPY.DELETE.GET.HEAD.LINK.LOCK.M-SEARCH.MERGE.MKACTIVITY.MKCALENDAR.MKCOL.MOVE.NOTIFY.OPTIONS.PATCH.POST.PROPFIND.PROPPATCH.PURGE.PUT.REBIND.REPORT.SEARCH.SOURCE.SUBSCRIBE.TRACE.UNBIND.UNLINK.UNLOCK.UNSUBSCRIBE`.split(`.`),s={100:`Continue`,101:`Switching Protocols`,102:`Processing`,103:`Early Hints`,200:`OK`,201:`Created`,202:`Accepted`,203:`Non-Authoritative Information`,204:`No Content`,205:`Reset Content`,206:`Partial Content`,207:`Multi-Status`,208:`Already Reported`,226:`IM Used`,300:`Multiple Choices`,301:`Moved Permanently`,302:`Found`,303:`See Other`,304:`Not Modified`,305:`Use Proxy`,307:`Temporary Redirect`,308:`Permanent Redirect`,400:`Bad Request`,401:`Unauthorized`,402:`Payment Required`,403:`Forbidden`,404:`Not Found`,405:`Method Not Allowed`,406:`Not Acceptable`,407:`Proxy Authentication Required`,408:`Request Timeout`,409:`Conflict`,410:`Gone`,411:`Length Required`,412:`Precondition Failed`,413:`Payload Too Large`,414:`URI Too Long`,415:`Unsupported Media Type`,416:`Range Not Satisfiable`,417:`Expectation Failed`,418:`I'm a Teapot`,421:`Misdirected Request`,422:`Unprocessable Entity`,423:`Locked`,424:`Failed Dependency`,425:`Too Early`,426:`Upgrade Required`,428:`Precondition Required`,429:`Too Many Requests`,431:`Request Header Fields Too Large`,451:`Unavailable For Legal Reasons`,500:`Internal Server Error`,501:`Not Implemented`,502:`Bad Gateway`,503:`Service Unavailable`,504:`Gateway Timeout`,505:`HTTP Version Not Supported`,506:`Variant Also Negotiates`,507:`Insufficient Storage`,508:`Loop Detected`,509:`Bandwidth Limit Exceeded`,510:`Not Extended`,511:`Network Authentication Required`},c=new Set([`content-type`,`content-length`,`user-agent`,`referer`,`host`,`authorization`,`proxy-authorization`,`if-modified-since`,`if-unmodified-since`,`from`,`location`,`max-forwards`,`retry-after`,`etag`,`last-modified`,`server`,`age`,`expires`]),l=13,u=10,d=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,f=(e,t)=>(e.code=t,e),p=(e,t)=>{if(e.length===0)return t;if(t.length===0)return e;let n=new Uint8Array(e.length+t.length);return n.set(e,0),n.set(t,e.length),n},m=(e,t)=>{for(let n=t;n+1<e.length;n++)if(e[n]===l&&e[n+1]===u)return n;return-1},h=e=>{for(let t=0;t+3<e.length;t++)if(e[t]===l&&e[t+1]===u&&e[t+2]===l&&e[t+3]===u)return t;return-1},g=class{mode;handlers;buf=new Uint8Array;state=`HEAD`;framing=`none`;bodyRemaining=0;chunkState=`size`;skipBody=!1;constructor(e,t){this.mode=e,this.handlers=t}execute(e){this.buf=p(this.buf,e);let t=!0;for(;t;)if(t=!1,this.state===`HEAD`){let e=h(this.buf);if(e===-1)return;let n=this.buf.subarray(0,e);this.buf=this.buf.subarray(e+4);let r=this.parseHead(n);this.handlers.onHeaders(r),this.setupBody(r),this.framing===`none`?(this.handlers.onComplete(),this.reset(),t=this.buf.length>0):(this.state=`BODY`,t=!0)}else this.consumeBody()&&(this.handlers.onComplete(),this.reset(),t=this.buf.length>0)}finish(){this.state===`BODY`&&this.framing===`eof`&&(this.handlers.onComplete(),this.reset())}reset(){this.state=`HEAD`,this.framing=`none`,this.bodyRemaining=0,this.chunkState=`size`,this.skipBody=!1}parseHead(e){let t=a.decode(e).split(`\r
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./net-BPpdNdpy.cjs");let n=require("buffer"),r=require("stream");var i=e.n({Agent:()=>T,ClientRequest:()=>S,HTTPParser:()=>g,IncomingMessage:()=>v,METHODS:()=>o,STATUS_CODES:()=>s,Server:()=>w,ServerResponse:()=>b,_default:()=>A,createServer:()=>k,default:()=>A,get:()=>O,globalAgent:()=>E,request:()=>D}),a=new TextDecoder(`latin1`),o=`ACL.BIND.CHECKOUT.CONNECT.COPY.DELETE.GET.HEAD.LINK.LOCK.M-SEARCH.MERGE.MKACTIVITY.MKCALENDAR.MKCOL.MOVE.NOTIFY.OPTIONS.PATCH.POST.PROPFIND.PROPPATCH.PURGE.PUT.REBIND.REPORT.SEARCH.SOURCE.SUBSCRIBE.TRACE.UNBIND.UNLINK.UNLOCK.UNSUBSCRIBE`.split(`.`),s={100:`Continue`,101:`Switching Protocols`,102:`Processing`,103:`Early Hints`,200:`OK`,201:`Created`,202:`Accepted`,203:`Non-Authoritative Information`,204:`No Content`,205:`Reset Content`,206:`Partial Content`,207:`Multi-Status`,208:`Already Reported`,226:`IM Used`,300:`Multiple Choices`,301:`Moved Permanently`,302:`Found`,303:`See Other`,304:`Not Modified`,305:`Use Proxy`,307:`Temporary Redirect`,308:`Permanent Redirect`,400:`Bad Request`,401:`Unauthorized`,402:`Payment Required`,403:`Forbidden`,404:`Not Found`,405:`Method Not Allowed`,406:`Not Acceptable`,407:`Proxy Authentication Required`,408:`Request Timeout`,409:`Conflict`,410:`Gone`,411:`Length Required`,412:`Precondition Failed`,413:`Payload Too Large`,414:`URI Too Long`,415:`Unsupported Media Type`,416:`Range Not Satisfiable`,417:`Expectation Failed`,418:`I'm a Teapot`,421:`Misdirected Request`,422:`Unprocessable Entity`,423:`Locked`,424:`Failed Dependency`,425:`Too Early`,426:`Upgrade Required`,428:`Precondition Required`,429:`Too Many Requests`,431:`Request Header Fields Too Large`,451:`Unavailable For Legal Reasons`,500:`Internal Server Error`,501:`Not Implemented`,502:`Bad Gateway`,503:`Service Unavailable`,504:`Gateway Timeout`,505:`HTTP Version Not Supported`,506:`Variant Also Negotiates`,507:`Insufficient Storage`,508:`Loop Detected`,509:`Bandwidth Limit Exceeded`,510:`Not Extended`,511:`Network Authentication Required`},c=new Set([`content-type`,`content-length`,`user-agent`,`referer`,`host`,`authorization`,`proxy-authorization`,`if-modified-since`,`if-unmodified-since`,`from`,`location`,`max-forwards`,`retry-after`,`etag`,`last-modified`,`server`,`age`,`expires`]),l=13,u=10,d=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,f=(e,t)=>(e.code=t,e),p=(e,t)=>{if(e.length===0)return t;if(t.length===0)return e;let n=new Uint8Array(e.length+t.length);return n.set(e,0),n.set(t,e.length),n},m=(e,t)=>{for(let n=t;n+1<e.length;n++)if(e[n]===l&&e[n+1]===u)return n;return-1},h=e=>{for(let t=0;t+3<e.length;t++)if(e[t]===l&&e[t+1]===u&&e[t+2]===l&&e[t+3]===u)return t;return-1},g=class{mode;handlers;buf=new Uint8Array;state=`HEAD`;framing=`none`;bodyRemaining=0;chunkState=`size`;skipBody=!1;constructor(e,t){this.mode=e,this.handlers=t}execute(e){this.buf=p(this.buf,e);let t=!0;for(;t;)if(t=!1,this.state===`HEAD`){let e=h(this.buf);if(e===-1)return;let n=this.buf.subarray(0,e);this.buf=this.buf.subarray(e+4);let r=this.parseHead(n);this.handlers.onHeaders(r),this.setupBody(r),this.framing===`none`?(this.handlers.onComplete(),this.reset(),t=this.buf.length>0):(this.state=`BODY`,t=!0)}else this.consumeBody()&&(this.handlers.onComplete(),this.reset(),t=this.buf.length>0)}finish(){this.state===`BODY`&&this.framing===`eof`&&(this.handlers.onComplete(),this.reset())}reset(){this.state=`HEAD`,this.framing=`none`,this.bodyRemaining=0,this.chunkState=`size`,this.skipBody=!1}parseHead(e){let t=a.decode(e).split(`\r
2
2
  `),n=t.shift()??``,r=[];for(let e of t)(e.startsWith(` `)||e.startsWith(` `))&&r.length>0?r[r.length-1]+=` `+e.trim():r.push(e);let i=[],o={};for(let e of r){if(!e)continue;let t=e.indexOf(`:`);if(t===-1)continue;let n=e.slice(0,t).trim(),r=e.slice(t+1).trim();i.push(n,r),this.addHeader(o,n,r)}let s={httpVersionMajor:1,httpVersionMinor:1,httpVersion:`1.1`,headers:o,rawHeaders:i};if(this.mode===`request`){let[e,t,r]=n.split(` `);s.method=(e??`GET`).toUpperCase(),s.url=t??`/`,this.applyVersion(s,r)}else{let e=n.indexOf(` `),t=n.slice(0,e),r=n.slice(e+1),i=r.indexOf(` `),a=i===-1?r:r.slice(0,i);s.statusCode=parseInt(a,10)||0,s.statusMessage=i===-1?``:r.slice(i+1),this.applyVersion(s,t)}return s}applyVersion(e,t){let n=/HTTP\/(\d)\.(\d)/i.exec(t??``);n&&(e.httpVersionMajor=parseInt(n[1],10),e.httpVersionMinor=parseInt(n[2],10),e.httpVersion=`${e.httpVersionMajor}.${e.httpVersionMinor}`)}addHeader(e,t,n){let r=t.toLowerCase();if(r===`set-cookie`){let t=e[`set-cookie`];Array.isArray(t)?t.push(n):e[`set-cookie`]=[n];return}let i=e[r];i===void 0?e[r]=n:c.has(r)||(e[r]=`${i}, ${n}`)}setupBody(e){if(this.skipBody){this.framing=`none`;return}let t=e.headers[`transfer-encoding`];if(typeof t==`string`&&t.toLowerCase().includes(`chunked`)){this.framing=`chunked`,this.chunkState=`size`;return}let n=e.headers[`content-length`];if(typeof n==`string`&&n!==``){let e=parseInt(n,10);e>0?(this.framing=`length`,this.bodyRemaining=e):this.framing=`none`;return}if(this.mode===`response`){let t=e.statusCode??0;t>=100&&t<200||t===204||t===304?this.framing=`none`:this.framing=`eof`}else this.framing=`none`}consumeBody(){if(this.framing===`length`){if(this.buf.length===0)return!1;let e=Math.min(this.bodyRemaining,this.buf.length);return this.handlers.onBody(this.buf.subarray(0,e)),this.buf=this.buf.subarray(e),this.bodyRemaining-=e,this.bodyRemaining===0}return this.framing===`eof`?(this.buf.length>0&&(this.handlers.onBody(this.buf),this.buf=new Uint8Array),!1):this.framing===`chunked`?this.consumeChunked():!0}consumeChunked(){for(;;)if(this.chunkState===`size`){let e=m(this.buf,0);if(e===-1)return!1;let t=a.decode(this.buf.subarray(0,e)),n=parseInt(t.split(`;`)[0].trim(),16);if(this.buf=this.buf.subarray(e+2),Number.isNaN(n))return!0;n===0?this.chunkState=`trailer`:(this.bodyRemaining=n,this.chunkState=`data`)}else if(this.chunkState===`data`){if(this.buf.length===0)return!1;let e=Math.min(this.bodyRemaining,this.buf.length);this.handlers.onBody(this.buf.subarray(0,e)),this.buf=this.buf.subarray(e),this.bodyRemaining-=e,this.bodyRemaining===0&&(this.chunkState=`dataCRLF`)}else if(this.chunkState===`dataCRLF`){if(this.buf.length<2)return!1;this.buf=this.buf.subarray(2),this.chunkState=`size`}else{let e=m(this.buf,0);if(e===-1)return!1;let t=e===0;if(this.buf=this.buf.subarray(e+2),t)return!0}}},_=(e,t)=>n.Buffer.isBuffer(e)?e:typeof e==`string`?n.Buffer.from(e,t??`utf8`):e instanceof Uint8Array?n.Buffer.from(e):e instanceof ArrayBuffer?n.Buffer.from(new Uint8Array(e)):n.Buffer.from(String(e)),v=class extends r.Stream.Readable{httpVersion=`1.1`;httpVersionMajor=1;httpVersionMinor=1;headers={};rawHeaders=[];trailers={};rawTrailers=[];method;url;statusCode;statusMessage;complete=!1;socket;constructor(e){super(),this.socket=e}get connection(){return this.socket}_applyHead(e){this.httpVersion=e.httpVersion,this.httpVersionMajor=e.httpVersionMajor,this.httpVersionMinor=e.httpVersionMinor,this.headers=e.headers,this.rawHeaders=e.rawHeaders,this.method=e.method,this.url=e.url,this.statusCode=e.statusCode,this.statusMessage=e.statusMessage}_read(){}setTimeout(e,t){return this.socket.setTimeout(e,t),this}},y=class extends r.Stream.Writable{_headerStore=new Map;headersSent=!1;chunkedEncoding=!1;finished=!1;_bodyWritten=!1;setHeader(e,t){if(this.headersSent)throw f(Error(`Cannot set headers after they are sent to the client`),`ERR_HTTP_HEADERS_SENT`);if(typeof e!=`string`||!d.test(e))throw f(TypeError(`Header name must be a valid HTTP token [${JSON.stringify(String(e))}]`),`ERR_INVALID_HTTP_TOKEN`);if(t===void 0)throw f(TypeError(`Invalid value "undefined" for header "${e}"`),`ERR_HTTP_INVALID_HEADER_VALUE`);return this._headerStore.set(e.toLowerCase(),[e,Array.isArray(t)?[...t]:t]),this}getHeader(e){return this._headerStore.get(e.toLowerCase())?.[1]}getHeaderNames(){return[...this._headerStore.values()].map(([e])=>e)}getHeaders(){let e={};for(let[t,n]of this._headerStore.values())e[t]=n;return e}hasHeader(e){return this._headerStore.has(e.toLowerCase())}removeHeader(e){if(this.headersSent)throw Error(`Cannot remove headers after they are sent to the client`);this._headerStore.delete(e.toLowerCase())}_storeHeader(e){let t=this.hasHeader(`content-length`),n=this.getHeader(`transfer-encoding`);typeof n==`string`&&n.toLowerCase().includes(`chunked`)?this.chunkedEncoding=!0:!t&&this._shouldSendBody()&&(this.chunkedEncoding=!0,this.setHeader(`Transfer-Encoding`,`chunked`));let r=e+`\r
3
3
  `;for(let[e,t]of this._headerStore.values())if(Array.isArray(t))for(let n of t)r+=`${e}: ${n}\r\n`;else r+=`${e}: ${t}\r\n`;return r+=`\r
4
4
  `,r}_writeToSocket(e,t){if(!this.socket){t(Error(`Socket is not available`));return}this.socket.write(e,t)}write(e,t,n){return this._bodyWritten=!0,super.write(e,t,n)}_write(e,t,r){let i=_(e),a=[];if(this.headersSent||=(this._implicitHeader(),a.push(n.Buffer.from(this._headBlock,`latin1`)),!0),this.chunkedEncoding?i.length>0&&(a.push(n.Buffer.from(`${i.length.toString(16)}\r\n`,`latin1`)),a.push(i),a.push(n.Buffer.from(`\r
package/http.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { n as Socket, t as Server$1 } from "./net-BDW1AVX1.js";
1
+ import { n as Socket, t as Server$1 } from "./net-Cx8lDWau.js";
2
2
  import { Buffer } from "buffer";
3
3
  import { Stream } from "stream";
4
4
  import { IncomingHttpHeaders, OutgoingHttpHeaders, RequestOptions } from "http";
package/http.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { n as e } from "./rolldown-runtime-DF993M8W.js";
2
- import { n as t, t as n } from "./net-DKMWPXb_.js";
2
+ import { n as t, t as n } from "./net-BFYMbE4N.js";
3
3
  import { Buffer as r } from "buffer";
4
4
  import { Stream as i } from "stream";
5
5
  //#region src/lib/webvpn/http.ts
package/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./proxy-bPaU3-Cz.cjs"),t=require("./api-DD5v1qP9.cjs"),n=require("./cloud-5o7yJHeX.cjs"),r=require("./dns.cjs"),i=require("./net-CpuAhaQC.cjs"),a=require("./dgram-CE43gJq9.cjs"),o=require("./http.cjs"),s=require("./extension-D-NUXxzF.cjs"),c=require("./desktop.cjs"),l=require("./fs-BfmfMBiw.cjs"),u=require("./opfs.cjs"),d=require("./packages.cjs"),f=require("./account.cjs"),p=require("./connect-button-BBEjXzB3.cjs");let m=require("osra");var h=t=>s.r()||t.syncCookies!==!1?e.a(t):n.i(t),g=`https://fkn.app`,_=(e,n)=>{if(typeof window>`u`)throw Error(`FKN @fkn/lib: relayWorker must be called from the main thread`);if(!t.r?.contentWindow)throw Error(`FKN @fkn/lib: relayWorker called before the FKN iframe was injected`);(0,m.relay)({receive:window,emit:t.r.contentWindow},e,{key:`fkn-api`,originA:n?.originA??g,originB:n?.originB??`*`,unregisterSignal:n?.unregisterSignal})},v=async()=>typeof window>`u`?!1:(await t.t).connect.prompt(location.origin).catch(()=>!1);exports.ATTACH_FRAME_EVENT_KEY=e.i,Object.defineProperty(exports,"account",{enumerable:!0,get:function(){return f.t}}),exports.assertAttachableFrameUrl=e.l,exports.assertFetchableUrl=e.E,exports.assertLockdownApplicable=e.u,exports.attachFrame=h,exports.attachFramePermission=e.o,exports.box=e.R,Object.defineProperty(exports,"cloud",{enumerable:!0,get:function(){return n.n}}),exports.connect=v,exports.connectButtonUrl=p.t,exports.cookies=e.w,exports.createFrame=e.s,exports.createVideoElementHandle=e.z,Object.defineProperty(exports,"desktop",{enumerable:!0,get:function(){return c.t}}),Object.defineProperty(exports,"dgram",{enumerable:!0,get:function(){return a.i}}),Object.defineProperty(exports,"dns",{enumerable:!0,get:function(){return r.t}}),Object.defineProperty(exports,"extension",{enumerable:!0,get:function(){return s.t}}),exports.fetch=s.n,exports.fetchCredentialedPermission=e.O,exports.fetchLocalPermission=e.k,exports.fetchPermission=e.A,Object.defineProperty(exports,"fs",{enumerable:!0,get:function(){return l.c}}),exports.gotoPermission=e.c,exports.handleRevivableModules=e.L,Object.defineProperty(exports,"http",{enumerable:!0,get:function(){return o.t}}),exports.isBlockedFetchUrl=e.j,exports.isBlockedFrameUrl=e.d,exports.isExtensionExposed=e.P,exports.isLocalNetworkUrl=e.M,exports.isType=e.B,exports.modifyRequestHeadersPermission=e.x,Object.defineProperty(exports,"net",{enumerable:!0,get:function(){return i.s}}),Object.defineProperty(exports,"opfs",{enumerable:!0,get:function(){return u.t}}),Object.defineProperty(exports,"packages",{enumerable:!0,get:function(){return d.t}}),exports.permissions=e.r,exports.promptInstall=s.i,exports.readCookiePermission=e.T,exports.relayWorker=_,exports.removeRequestHeaderRule=e.S,exports.revive=e.V,exports.setMissingExtensionHandler=e.F,exports.setRequestHeaderRule=e.C,exports.type=e.H,exports.waitForExtensionExposure=e.I;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./proxy-Du95zAKk.cjs"),t=require("./api-DD5v1qP9.cjs"),n=require("./cloud-DevROE3T.cjs"),r=require("./dns.cjs"),i=require("./net-BPpdNdpy.cjs"),a=require("./dgram-DcvdNkg6.cjs"),o=require("./http.cjs"),s=require("./extension-DVHdBvOz.cjs"),c=require("./desktop.cjs"),l=require("./fs-BN4hkppN.cjs"),u=require("./opfs.cjs"),d=require("./packages.cjs"),f=require("./account.cjs"),p=require("./connect-button-BBEjXzB3.cjs");let m=require("osra");var h=t=>s.r()||t.syncCookies!==!1?e.a(t):n.i(t),g=`https://fkn.app`,_=(e,n)=>{if(typeof window>`u`)throw Error(`FKN @fkn/lib: relayWorker must be called from the main thread`);if(!t.r?.contentWindow)throw Error(`FKN @fkn/lib: relayWorker called before the FKN iframe was injected`);(0,m.relay)({receive:window,emit:t.r.contentWindow},e,{key:`fkn-api`,originA:n?.originA??g,originB:n?.originB??`*`,unregisterSignal:n?.unregisterSignal})},v=async()=>typeof window>`u`?!1:(await t.t).connect.prompt(location.origin).catch(()=>!1);exports.ATTACH_FRAME_EVENT_KEY=e.i,Object.defineProperty(exports,"account",{enumerable:!0,get:function(){return f.t}}),exports.assertAttachableFrameUrl=e.l,exports.assertFetchableUrl=e.E,exports.assertLockdownApplicable=e.u,exports.attachFrame=h,exports.attachFramePermission=e.o,exports.box=e.R,Object.defineProperty(exports,"cloud",{enumerable:!0,get:function(){return n.n}}),exports.connect=v,exports.connectButtonUrl=p.t,exports.cookies=e.w,exports.createFrame=e.s,exports.createVideoElementHandle=e.z,Object.defineProperty(exports,"desktop",{enumerable:!0,get:function(){return c.t}}),Object.defineProperty(exports,"dgram",{enumerable:!0,get:function(){return a.i}}),Object.defineProperty(exports,"dns",{enumerable:!0,get:function(){return r.t}}),Object.defineProperty(exports,"extension",{enumerable:!0,get:function(){return s.t}}),exports.fetch=s.n,exports.fetchCredentialedPermission=e.O,exports.fetchLocalPermission=e.k,exports.fetchPermission=e.A,Object.defineProperty(exports,"fs",{enumerable:!0,get:function(){return l.c}}),exports.gotoPermission=e.c,exports.handleRevivableModules=e.L,Object.defineProperty(exports,"http",{enumerable:!0,get:function(){return o.t}}),exports.isBlockedFetchUrl=e.j,exports.isBlockedFrameUrl=e.d,exports.isExtensionExposed=e.P,exports.isLocalNetworkUrl=e.M,exports.isType=e.B,exports.modifyRequestHeadersPermission=e.x,Object.defineProperty(exports,"net",{enumerable:!0,get:function(){return i.s}}),Object.defineProperty(exports,"opfs",{enumerable:!0,get:function(){return u.t}}),Object.defineProperty(exports,"packages",{enumerable:!0,get:function(){return d.t}}),exports.permissions=e.r,exports.promptInstall=s.i,exports.readCookiePermission=e.T,exports.relayWorker=_,exports.removeRequestHeaderRule=e.S,exports.revive=e.V,exports.setMissingExtensionHandler=e.F,exports.setRequestHeaderRule=e.C,exports.type=e.H,exports.waitForExtensionExposure=e.I;
package/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { t as account_d_exports } from "./account.js";
2
- import { p as packages_d_exports } from "./packages-D36R2vBv.js";
3
- import { n as cloud_d_exports } from "./cloud-gklfa4ZN.js";
2
+ import { m as packages_d_exports } from "./packages-CErlrrLB.js";
3
+ import { n as cloud_d_exports } from "./cloud-BxPdeAuj.js";
4
4
  import { A as RequestHeaderRule, B as assertFetchableUrl, C as attachFramePermission, D as assertLockdownApplicable, E as assertAttachableFrameUrl, F as SiteCookie, G as isBlockedFetchUrl, H as fetchCredentialedPermission, I as cookies, K as isLocalNetworkUrl, L as readCookiePermission, M as removeRequestHeaderRule, N as setRequestHeaderRule, O as isBlockedFrameUrl, P as CookieDetails, R as FetchInit, S as GotoOptions, T as gotoPermission, U as fetchLocalPermission, W as fetchPermission, _ as ATTACH_FRAME_EVENT_KEY, a as handleRevivableModules, b as Frame, c as VideoElementState, d as isType, f as revive, g as permissions, h as PermissionRequest, i as waitForExtensionExposure, j as modifyRequestHeadersPermission, k as HeaderOperation, l as box, m as PermissionGrant, n as isExtensionExposed, o as BoxedVideoElement, p as type, r as setMissingExtensionHandler, s as RemoteVideoElement, u as createVideoElementHandle, w as createFrame, x as FrameBackend, y as AttachFrameOptions, z as ProxyFetchRequest } from "./index-BJztAQIP.js";
5
5
  import { t as dns_d_exports } from "./dns.js";
6
- import { s as net_d_exports } from "./net-BDW1AVX1.js";
6
+ import { s as net_d_exports } from "./net-Cx8lDWau.js";
7
7
  import { t as dgram_d_exports } from "./dgram.js";
8
8
  import { t as http_d_exports } from "./http.js";
9
9
  import { t as desktop_d_exports } from "./desktop.js";
package/index.js CHANGED
@@ -1,13 +1,13 @@
1
- import { A as e, B as t, C as n, E as r, F as i, H as a, I as o, L as s, M as c, O as l, P as u, R as d, S as f, T as p, V as m, a as h, c as g, d as _, i as v, j as y, k as b, l as x, o as S, r as C, s as w, u as T, w as E, x as D, z as O } from "./proxy-C8SG1Beo.js";
1
+ import { A as e, B as t, C as n, E as r, F as i, H as a, I as o, L as s, M as c, O as l, P as u, R as d, S as f, T as p, V as m, a as h, c as g, d as _, i as v, j as y, k as b, l as x, o as S, r as C, s as w, u as T, w as E, x as D, z as O } from "./proxy-Cusnx9Ex.js";
2
2
  import { r as k, t as A } from "./api--bnCFd4w.js";
3
- import { i as j, n as M } from "./cloud-BFyf2uC7.js";
3
+ import { i as j, n as M } from "./cloud-Pibu_mY3.js";
4
4
  import { t as N } from "./dns.js";
5
- import { s as P } from "./net-DKMWPXb_.js";
6
- import { i as F } from "./dgram-wtjARbt0.js";
5
+ import { s as P } from "./net-BFYMbE4N.js";
6
+ import { i as F } from "./dgram-CKRbKVzG.js";
7
7
  import { t as I } from "./http.js";
8
- import { i as L, n as R, r as z, t as B } from "./extension-CPj10qwa.js";
8
+ import { i as L, n as R, r as z, t as B } from "./extension-4ib5y95s.js";
9
9
  import { t as V } from "./desktop.js";
10
- import { c as H } from "./fs-D6nNf1mR.js";
10
+ import { c as H } from "./fs-7E0-tE2x.js";
11
11
  import { t as U } from "./opfs.js";
12
12
  import { t as W } from "./packages.js";
13
13
  import { t as G } from "./account.js";
@@ -1,6 +1,6 @@
1
1
  import { n as e } from "./rolldown-runtime-DF993M8W.js";
2
2
  import { t } from "./api--bnCFd4w.js";
3
- import { n, o as r, r as i, t as a } from "./utils-DPtyxGQu.js";
3
+ import { a as n, c as r, i, r as a } from "./utils-DVlbuXmW.js";
4
4
  import { Stream as o } from "stream";
5
5
  import { EventEmitter as s } from "events";
6
6
  //#region src/lib/webvpn/net.ts
@@ -13,8 +13,8 @@ var c = /* @__PURE__ */ e({
13
13
  createServer: () => p,
14
14
  default: () => m,
15
15
  isIP: () => a,
16
- isIPv4: () => n,
17
- isIPv6: () => i
16
+ isIPv4: () => i,
17
+ isIPv6: () => n
18
18
  }), l = class extends o.Duplex {
19
19
  _localAddress;
20
20
  _remoteAddress;
@@ -83,25 +83,34 @@ var c = /* @__PURE__ */ e({
83
83
  e && n.callback.call(this);
84
84
  }), this;
85
85
  }
86
- _end(...e) {
87
- return this._webVPNTcpSocketPromise ? (e.length !== 0 && this.write(e[0], e[1], e[2]), this._webVPNTcpSocketPromise.then(async (e) => {
88
- e && await e.end();
89
- }), this) : this;
86
+ _final(e) {
87
+ if (!this._webVPNTcpSocketPromise) {
88
+ e();
89
+ return;
90
+ }
91
+ this._webVPNTcpSocketPromise.then(async (e) => {
92
+ e && await e.writer.close();
93
+ }).then(() => e(), (t) => e(t));
90
94
  }
91
- _destroy(e) {
92
- return this._timeoutTimer && clearTimeout(this._timeoutTimer), this._webVPNTcpSocketPromise && this._webVPNTcpSocketPromise.then(async (e) => {
93
- e && await e.destroy();
94
- }), this;
95
+ _destroy(e, t) {
96
+ if (this._timeoutTimer && clearTimeout(this._timeoutTimer), !this._webVPNTcpSocketPromise) {
97
+ t(e);
98
+ return;
99
+ }
100
+ this._webVPNTcpSocketPromise.then(async (e) => {
101
+ e && await (this._resetRequested ? e.resetAndDestroy() : e.destroy());
102
+ }).then(() => t(e), () => t(e));
95
103
  }
96
104
  destroySoon() {
97
- this._webVPNTcpSocketPromise && this._webVPNTcpSocketPromise.then(async (e) => {
98
- e && await e.destroySoon();
99
- });
105
+ if (this.writableFinished) {
106
+ this.destroy();
107
+ return;
108
+ }
109
+ this.once("finish", () => this.destroy()), this.end();
100
110
  }
111
+ _resetRequested = !1;
101
112
  resetAndDestroy() {
102
- return this._webVPNTcpSocketPromise && this._webVPNTcpSocketPromise.then(async (e) => {
103
- e && await e.resetAndDestroy();
104
- }), this;
113
+ return this._resetRequested = !0, this.destroy(), this;
105
114
  }
106
115
  _timeoutMs;
107
116
  _timeoutTimer;
@@ -220,24 +229,38 @@ var c = /* @__PURE__ */ e({
220
229
  }), this._webVPNTcpSocketListenerPromise;
221
230
  }
222
231
  listen(...e) {
223
- let n = r(...e), i = (e) => {
232
+ let n = r(...e);
233
+ this._closeEmitted = !1;
234
+ let i = (e) => {
224
235
  let t = new l({ connection: Promise.resolve(e) });
225
236
  this.emit("connection", t);
226
- }, a = (e) => t.then((t) => t.cloud.webvpn.tcpSocketListener({
237
+ }, a = (e) => {
238
+ this._localAddress = void 0;
239
+ try {
240
+ e && this.listenerCount("error") > 0 && this.emit("error", e);
241
+ } finally {
242
+ this._emitClose();
243
+ }
244
+ }, o = (e) => t.then((t) => t.cloud.webvpn.tcpSocketListener({
227
245
  localAddress: e,
228
246
  localPort: n.port,
229
- onConnection: i
230
- })), o = n.host ? a(n.host) : a("::").catch(() => a("0.0.0.0")), s = this.__webvpn_tcp_socket_listener_init__(o);
231
- return n.callback && s.then((e) => {
247
+ onConnection: i,
248
+ onClose: a
249
+ })), s = n.host ? o(n.host) : o("::").catch(() => o("0.0.0.0")), c = this.__webvpn_tcp_socket_listener_init__(s);
250
+ return n.callback && c.then((e) => {
232
251
  e && n.callback.call(this);
233
252
  }), this;
234
253
  }
254
+ _closeEmitted = !1;
255
+ _emitClose() {
256
+ this._closeEmitted || (this._closeEmitted = !0, this.emit("close"));
257
+ }
235
258
  close(e) {
236
259
  return this._webVPNTcpSocketListenerPromise && this._webVPNTcpSocketListenerPromise.then(async (t) => {
237
260
  if (t) try {
238
- await t.close(), this._localAddress = void 0, this.emit("close"), e && e();
261
+ await t.close(), this._localAddress = void 0, this._emitClose(), e && e();
239
262
  } catch (t) {
240
- this._localAddress = void 0, this.emit("close"), e && e(t);
263
+ this._localAddress = void 0, this._emitClose(), e && e(t);
241
264
  }
242
265
  }), this;
243
266
  }
@@ -268,8 +291,8 @@ var c = /* @__PURE__ */ e({
268
291
  createConnection: f,
269
292
  createServer: p,
270
293
  isIP: a,
271
- isIPv4: n,
272
- isIPv6: i
294
+ isIPv4: i,
295
+ isIPv6: n
273
296
  };
274
297
  //#endregion
275
298
  export { f as a, d as i, l as n, p as o, m as r, c as s, u as t };
@@ -0,0 +1 @@
1
+ const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./api-DD5v1qP9.cjs"),n=require("./utils-QfNXtEhb.cjs");let r=require("stream"),i=require("events");var a=e.n({Server:()=>s,Socket:()=>o,_default:()=>d,connect:()=>c,createConnection:()=>l,createServer:()=>u,default:()=>d,isIP:()=>n.r,isIPv4:()=>n.i,isIPv6:()=>n.a}),o=class extends r.Stream.Duplex{_localAddress;_remoteAddress;_webVPNTcpSocketPromise;constructor(e){if(e?.fd!==void 0)throw Error(`FKN WebVPN does not support file descriptors`);super(e),e?.connection&&this.__webvpn_tcp_socket_init__(e.connection)}__webvpn_tcp_socket_init__(e){if(this._webVPNTcpSocketPromise=e.then(e=>{let t=e.dataReadableStream.getReader(),n=e.dataWritableStream.getWriter();return this._localAddress={address:e.localAddress,family:e.localFamily,port:e.localPort},this._remoteAddress={address:e.remoteAddress,family:e.remoteFamily,port:e.remotePort},{...e,reader:t,writer:n}}).catch(e=>{this.emit(`error`,e)}),!this._webVPNTcpSocketPromise)throw Error(`Socket not connected`);return this._webVPNTcpSocketPromise.then(e=>{e&&this.emit(`connect`)}),this._webVPNTcpSocketPromise}_read(e){if(!this._webVPNTcpSocketPromise)throw Error(`Socket not connected`);this._webVPNTcpSocketPromise.then(e=>{if(!e){this.push(null);return}e.reader.read().then(({value:e,done:t})=>{if(t){this.push(null);return}this._restartTimeoutTimer(),this.push(e)}).catch(e=>{this.destroy(e)})})}_write(e,t,n){if(!this._webVPNTcpSocketPromise){n(Error(`Socket not connected`));return}this._webVPNTcpSocketPromise.then(async t=>{if(!t)throw Error(`Socket not connected`);await t.writer.ready,await t.writer.write(e),this._restartTimeoutTimer(),n()}).catch(n)}connect(...e){let r=n.c(...e),i=this.__webvpn_tcp_socket_init__(t.t.then(e=>e.cloud.webvpn.tcpSocket({remoteAddress:r.host??`localhost`,remotePort:r.port})));return r.callback&&i.then(e=>{e&&r.callback.call(this)}),this}_final(e){if(!this._webVPNTcpSocketPromise){e();return}this._webVPNTcpSocketPromise.then(async e=>{e&&await e.writer.close()}).then(()=>e(),t=>e(t))}_destroy(e,t){if(this._timeoutTimer&&clearTimeout(this._timeoutTimer),!this._webVPNTcpSocketPromise){t(e);return}this._webVPNTcpSocketPromise.then(async e=>{e&&await(this._resetRequested?e.resetAndDestroy():e.destroy())}).then(()=>t(e),()=>t(e))}destroySoon(){if(this.writableFinished){this.destroy();return}this.once(`finish`,()=>this.destroy()),this.end()}_resetRequested=!1;resetAndDestroy(){return this._resetRequested=!0,this.destroy(),this}_timeoutMs;_timeoutTimer;_restartTimeoutTimer(){this._timeoutTimer&&clearTimeout(this._timeoutTimer),this._timeoutMs&&(this._timeoutTimer=setTimeout(()=>this.emit(`timeout`),this._timeoutMs))}setTimeout(e,t){return t&&this.on(`timeout`,t),this._timeoutMs=e,this._restartTimeoutTimer(),this}setNoDelay(e){let t=e??!0;return this._setTcpOption({type:0,value:t}),this}setKeepAlive(e,t){let n=e??!1,r=t!==void 0&&t>0?Math.max(1,Math.round(t/1e3)):0;return this._setTcpOption({type:2,enabled:n,initialDelaySeconds:r}),this}setSendBufferSize(e){return this._setTcpOption({type:3,value:e}),this}setRecvBufferSize(e){return this._setTcpOption({type:4,value:e}),this}_typeOfService;getTypeOfService(){return this._typeOfService??0}setTypeOfService(e){return this._typeOfService=e,this}_setTcpOption(e){if(!this._webVPNTcpSocketPromise){this.emit(`error`,Error(`Cannot set socket option before connect`));return}this._webVPNTcpSocketPromise.then(async t=>{if(t)try{await t.setOption(e)}catch(e){this.emit(`error`,e)}})}write(e,t,...n){return super.write(e,t,...n)}address(){return this._localAddress??{}}unref(){return this}ref(){return this}autoSelectFamilyAttemptedAddresses;bufferSize;bytesRead;bytesWritten;connecting;pending;get localAddress(){if(!this._localAddress)throw Error(`Socket is not connected`);return this._localAddress.address}get localPort(){if(!this._localAddress)throw Error(`Socket is not connected`);return this._localAddress.port}get localFamily(){if(!this._localAddress)throw Error(`Socket is not connected`);return this._localAddress.family}readyState;get remoteAddress(){if(!this._remoteAddress)throw Error(`Socket is not connected`);return this._remoteAddress.address}get remotePort(){if(!this._remoteAddress)throw Error(`Socket is not connected`);return this._remoteAddress.port}get remoteFamily(){if(!this._remoteAddress)throw Error(`Socket is not connected`);return this._remoteAddress.family}timeout},s=class extends i.EventEmitter{_localAddress;_webVPNTcpSocketListenerPromise;constructor(e,t){super(e),t&&this.on(`connection`,t),e?.connection&&this.__webvpn_tcp_socket_listener_init__(e.connection)}__webvpn_tcp_socket_listener_init__(e){return this._webVPNTcpSocketListenerPromise=e.then(e=>(this._localAddress={address:e.localAddress,family:e.localFamily,port:e.localPort},e)).catch(e=>{this.emit(`error`,e)}),this._webVPNTcpSocketListenerPromise.then(e=>{e&&this.emit(`listening`)}),this._webVPNTcpSocketListenerPromise}listen(...e){let r=n.c(...e);this._closeEmitted=!1;let i=e=>{let t=new o({connection:Promise.resolve(e)});this.emit(`connection`,t)},a=e=>{this._localAddress=void 0;try{e&&this.listenerCount(`error`)>0&&this.emit(`error`,e)}finally{this._emitClose()}},s=e=>t.t.then(t=>t.cloud.webvpn.tcpSocketListener({localAddress:e,localPort:r.port,onConnection:i,onClose:a})),c=r.host?s(r.host):s(`::`).catch(()=>s(`0.0.0.0`)),l=this.__webvpn_tcp_socket_listener_init__(c);return r.callback&&l.then(e=>{e&&r.callback.call(this)}),this}_closeEmitted=!1;_emitClose(){this._closeEmitted||(this._closeEmitted=!0,this.emit(`close`))}close(e){return this._webVPNTcpSocketListenerPromise&&this._webVPNTcpSocketListenerPromise.then(async t=>{if(t)try{await t.close(),this._localAddress=void 0,this._emitClose(),e&&e()}catch(t){this._localAddress=void 0,this._emitClose(),e&&e(t)}}),this}address(){return this._localAddress??null}getConnections(e){throw Error(`Method not implemented.`)}ref(){return this}unref(){return this}maxConnections;connections;listening;async[Symbol.asyncDispose](){}},c=(e,t)=>new o().connect(e,t),l=(e,t)=>new o().connect(e,t),u=(e,t)=>{typeof e==`function`&&(t=e,e=void 0);let n=new s(e);return t&&n.on(`connection`,t),n},d={Socket:o,Server:s,connect:c,createConnection:l,createServer:u,isIP:n.r,isIPv4:n.i,isIPv6:n.a};Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return s}});
@@ -1,4 +1,4 @@
1
- import { i as TcpSocketOption, r as LocalTcpSocket, t as Resolvers } from "./api-BYUraih6.js";
1
+ import { i as TcpSocketOption, r as LocalTcpSocket, t as Resolvers } from "./api-CI4d96Ty.js";
2
2
  import { AddressInfo, ListenOptions, Server, ServerOpts, Socket, SocketConnectOpts, SocketConstructorOpts } from "net";
3
3
  import { DuplexOptions, Stream } from "stream";
4
4
  import { EventEmitter } from "events";
@@ -44,10 +44,10 @@ declare class Socket$2 extends Stream.Duplex implements Socket {
44
44
  connect(port: number, connectionListener?: (() => void) | undefined): this;
45
45
  connect(path: string, connectionListener?: (() => void) | undefined): this;
46
46
  connect(port: unknown, host?: unknown, connectionListener?: unknown): this;
47
- _end(chunk: any, cb?: () => void): this;
48
- _end(chunk: any, encoding?: BufferEncoding, cb?: () => void): this;
49
- _destroy(error?: Error | null | undefined): this;
47
+ _final(callback: (error?: Error | null) => void): void;
48
+ _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
50
49
  destroySoon(): void;
50
+ _resetRequested: boolean;
51
51
  resetAndDestroy(): this;
52
52
  _timeoutMs?: number;
53
53
  _timeoutTimer?: ReturnType<typeof setTimeout>;
@@ -103,6 +103,10 @@ declare class Server$1 extends EventEmitter implements Server {
103
103
  localPort: number;
104
104
  close: () => Promise<void>;
105
105
  } | undefined>;
106
+ /**
107
+ * Starts a TCP listener through WebVPN. Port and host forms are supported.
108
+ * IPC paths and existing Node handles are not supported and reject at runtime.
109
+ */
106
110
  listen(port?: number | undefined, hostname?: string | undefined, backlog?: number | undefined, listeningListener?: (() => void) | undefined): this;
107
111
  listen(port?: number | undefined, hostname?: string | undefined, listeningListener?: (() => void) | undefined): this;
108
112
  listen(port?: number | undefined, backlog?: number | undefined, listeningListener?: (() => void) | undefined): this;
@@ -113,10 +117,15 @@ declare class Server$1 extends EventEmitter implements Server {
113
117
  listen(handle: any, backlog?: number | undefined, listeningListener?: (() => void) | undefined): this;
114
118
  listen(handle: any, listeningListener?: (() => void) | undefined): this;
115
119
  listen(port?: unknown, hostname?: unknown, backlog?: unknown, listeningListener?: unknown): this;
120
+ _closeEmitted: boolean;
121
+ _emitClose(): void;
116
122
  close(callback?: ((err?: Error | undefined) => void) | undefined): this;
117
123
  address(): string | AddressInfo | null;
124
+ /** Not implemented by the browser transport. This method throws. */
118
125
  getConnections(cb: (error: Error | null, count: number) => void): this;
126
+ /** No-op in a browser, which has no Node process-liveness handle. */
119
127
  ref(): this;
128
+ /** No-op in a browser, which has no Node process-liveness handle. */
120
129
  unref(): this;
121
130
  maxConnections: number;
122
131
  connections: number;
package/net.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./utils-CoimMjf9.cjs"),t=require("./net-CpuAhaQC.cjs");exports.Server=t.t,exports.Socket=t.n,exports._default=t.r,exports.default=t.r,exports.connect=t.i,exports.createConnection=t.a,exports.createServer=t.o,exports.isIP=e.t,exports.isIPv4=e.n,exports.isIPv6=e.r;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./utils-QfNXtEhb.cjs"),t=require("./net-BPpdNdpy.cjs");exports.Server=t.t,exports.Socket=t.n,exports._default=t.r,exports.default=t.r,exports.connect=t.i,exports.createConnection=t.a,exports.createServer=t.o,exports.isIP=e.r,exports.isIPv4=e.i,exports.isIPv6=e.a;
package/net.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as createConnection, c as isIP, i as connect, l as isIPv4, n as Socket, o as createServer, r as _default, t as Server, u as isIPv6 } from "./net-BDW1AVX1.js";
1
+ import { a as createConnection, c as isIP, i as connect, l as isIPv4, n as Socket, o as createServer, r as _default, t as Server, u as isIPv6 } from "./net-Cx8lDWau.js";
2
2
  export { Server, Socket, _default, _default as default, connect, createConnection, createServer, isIP, isIPv4, isIPv6 };
package/net.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as e, r as t, t as n } from "./utils-DPtyxGQu.js";
2
- import { a as r, i, n as a, o, r as s, t as c } from "./net-DKMWPXb_.js";
3
- export { c as Server, a as Socket, s as _default, s as default, i as connect, r as createConnection, o as createServer, n as isIP, e as isIPv4, t as isIPv6 };
1
+ import { a as e, i as t, r as n } from "./utils-DVlbuXmW.js";
2
+ import { a as r, i, n as a, o, r as s, t as c } from "./net-BFYMbE4N.js";
3
+ export { c as Server, a as Socket, s as _default, s as default, i as connect, r as createConnection, o as createServer, n as isIP, t as isIPv4, e as isIPv6 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fkn/lib",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "type": "module",
@@ -46,7 +46,7 @@ type PackagesFail = {
46
46
  message: string;
47
47
  };
48
48
  declare namespace packages_d_exports {
49
- export { AppConnectOptions, ConnectOptions, ConnectPayload, IncomingConnection, IncomingConnectionInfo, InstallOptions, InstalledPackage, PackageConnection, PackageQuery, PackageResult, PackagesError, PackagesErrorCode, PickOptions, RawPackageConnection, attach, connect, install, list, onConnect, pick, search, uninstall };
49
+ export { AppConnectOptions, Connect, ConnectOptions, ConnectPayload, IncomingConnection, IncomingConnectionInfo, InstallOptions, InstalledPackage, PackageConnection, PackageQuery, PackageResult, PackagesError, PackagesErrorCode, PickOptions, RawPackageConnection, attach, connect, install, list, onConnect, pick, search, uninstall };
50
50
  }
51
51
  type PackagesError = Error & {
52
52
  code: PackagesErrorCode;
@@ -105,4 +105,4 @@ declare const onConnect: <T = unknown>(createPayload: ConnectPayload, handler?:
105
105
  unsubscribe: () => void;
106
106
  };
107
107
  //#endregion
108
- export { PackagesFail as C, PackagesErrorCode as S, ConnectOptions as _, PackageConnection as a, PackageQuery as b, attach as c, list as d, onConnect as f, uninstall as g, search as h, IncomingConnectionInfo as i, connect as l, pick as m, ConnectPayload as n, PackagesError as o, packages_d_exports as p, IncomingConnection as r, RawPackageConnection as s, AppConnectOptions as t, install as u, InstallOptions as v, PickOptions as w, PackageResult as x, InstalledPackage as y };
108
+ export { PackagesErrorCode as C, PackageResult as S, PickOptions as T, uninstall as _, IncomingConnectionInfo as a, InstalledPackage as b, RawPackageConnection as c, install as d, list as f, search as g, pick as h, IncomingConnection as i, attach as l, packages_d_exports as m, Connect as n, PackageConnection as o, onConnect as p, ConnectPayload as r, PackagesError as s, AppConnectOptions as t, connect as u, ConnectOptions as v, PackagesFail as w, PackageQuery as x, InstallOptions as y };
package/packages.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { S as PackagesErrorCode, _ as ConnectOptions, a as PackageConnection, b as PackageQuery, c as attach, d as list, f as onConnect, g as uninstall, h as search, i as IncomingConnectionInfo, l as connect, m as pick, n as ConnectPayload, o as PackagesError, r as IncomingConnection, s as RawPackageConnection, t as AppConnectOptions, u as install, v as InstallOptions, w as PickOptions, x as PackageResult, y as InstalledPackage } from "./packages-D36R2vBv.js";
2
- export { AppConnectOptions, type ConnectOptions, ConnectPayload, IncomingConnection, IncomingConnectionInfo, type InstallOptions, type InstalledPackage, PackageConnection, type PackageQuery, type PackageResult, PackagesError, type PackagesErrorCode, type PickOptions, RawPackageConnection, attach, connect, install, list, onConnect, pick, search, uninstall };
1
+ import { C as PackagesErrorCode, S as PackageResult, T as PickOptions, _ as uninstall, a as IncomingConnectionInfo, b as InstalledPackage, c as RawPackageConnection, d as install, f as list, g as search, h as pick, i as IncomingConnection, l as attach, n as Connect, o as PackageConnection, p as onConnect, r as ConnectPayload, s as PackagesError, t as AppConnectOptions, u as connect, v as ConnectOptions, x as PackageQuery, y as InstallOptions } from "./packages-CErlrrLB.js";
2
+ export { AppConnectOptions, Connect, type ConnectOptions, ConnectPayload, IncomingConnection, IncomingConnectionInfo, type InstallOptions, type InstalledPackage, PackageConnection, type PackageQuery, type PackageResult, PackagesError, type PackagesErrorCode, type PickOptions, RawPackageConnection, attach, connect, install, list, onConnect, pick, search, uninstall };
@@ -437,7 +437,7 @@ var Re = (e) => {
437
437
  }), We = "owner", Ge = (e) => {
438
438
  throw Error("owner: must be processed by the executor as an upward pivot");
439
439
  }, Ke = async () => {
440
- let { backgroundResolvers: e } = await import("./background-BVBbBOmL.js"), t = await (await e).getParentFrameId();
440
+ let { backgroundResolvers: e } = await import("./background-DLnt6fYS.js"), t = await (await e).getParentFrameId();
441
441
  if (!t) throw Error("owner: already at top frame");
442
442
  return t;
443
443
  }, qe = () => ({
@@ -1,4 +1,4 @@
1
- const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./api-DD5v1qP9.cjs");let n=require("osra");var r=(e,t)=>{let n=new EventTarget,r=new Map,i=EventTarget.prototype.addEventListener.bind(n),a=EventTarget.prototype.removeEventListener.bind(n);return Object.defineProperty(n,"addEventListener",{configurable:!0,value:(a,o,s)=>{if(o!==null){if(!r.has(a)){let i=r=>{n.dispatchEvent(new CustomEvent(a,{detail:t(r,e),bubbles:r.bubbles,cancelable:r.cancelable,composed:r.composed}))};e.addEventListener(a,i),r.set(a,i)}i(a,o,s)}}}),Object.defineProperty(n,"removeEventListener",{configurable:!0,value:(t,n,i)=>{if(n===null)return;a(t,n,i);let o=r.get(t);o&&(e.removeEventListener(t,o),r.delete(t))}}),n},i=e=>typeof e==`boolean`?+!!e:+!!e?.capture,a=e=>{let t=new WeakMap;return{addEventListener:(n,r,a)=>{if(r===null)return;let o=`${n}|${i(a)}`,s=t.get(r);if(s||(s=new Map,t.set(r,s)),s.has(o))return;let c=typeof a==`object`&&!!a&&!!a.once,l=t=>{c&&s.delete(o);let i=e.unenrich(t,n);typeof r==`function`?r.call(e.target,i):r.handleEvent(i)};s.set(o,l),e.remoteEvents.addEventListener(n,l,a)},removeEventListener:(n,r,a)=>{if(r===null)return;let o=`${n}|${i(a)}`,s=t.get(r),c=s?.get(o);c&&(e.remoteEvents.removeEventListener(n,c,a),s.delete(o))},dispatchEvent:t=>e.remoteEvents.dispatchEvent(t)}},o=e.n({box:()=>w,createVideoElementHandle:()=>S,isType:()=>C,revive:()=>T,type:()=>s}),s=`videoElement`,c=[`currentTime`,`volume`,`muted`,`playbackRate`,`src`,`loop`,`autoplay`,`preload`,`poster`,`disableRemotePlayback`],l=[`duration`,`paused`,`ended`,`seeking`,`readyState`,`currentSrc`],u=[`buffered`,`seekable`],d=Symbol.for(`fkn.remoteVideoElement`),f=Symbol.for(`fkn.remoteVideoElement.state`),p=Symbol.for(`fkn.remoteVideoElement.controller`),m=e=>e?Array.from({length:e.length},(t,n)=>[e.start(n),e.end(n)]):[],h=e=>{let t={};for(let n of[...c,...l])t[n]=e[n];for(let n of u)t[n]=m(e[n]);return t.error=e.error?{code:e.error.code,message:e.error.message}:null,t},g=e=>{let t=t=>{if(!Number.isInteger(t)||t<0||t>=e.length)throw new DOMException(`Index or size is negative or greater than the allowed amount`,`IndexSizeError`)};return{get length(){return e.length},start(n){return t(n),e[n][0]},end(n){return t(n),e[n][1]}}},_=e=>e?{code:e.code,message:e.message,MEDIA_ERR_ABORTED:1,MEDIA_ERR_NETWORK:2,MEDIA_ERR_DECODE:3,MEDIA_ERR_SRC_NOT_SUPPORTED:4}:null,v=e=>r(e,(e,t)=>({originalDetail:e instanceof CustomEvent?e.detail:null,snapshot:h(t)})),y=async(e,t)=>{switch(t){case`play`:return await e.play(),null;case`pause`:return e.pause(),null;case`load`:return e.load(),null;case`requestPictureInPicture`:if(typeof e.requestPictureInPicture!=`function`)throw Error(`requestPictureInPicture is not supported in this environment`);return await e.requestPictureInPicture(),null;case`exitPictureInPicture`:{let t=e.ownerDocument;if(typeof t?.exitPictureInPicture!=`function`)throw Error(`exitPictureInPicture is not supported in this environment`);return await t.exitPictureInPicture(),null}default:throw Error(`videoElement: unknown method "${t}"`)}},b=e=>({call:async t=>y(e,t),set:async(t,n)=>{try{e[t]=n}catch{}return h(e)},events:v(e)}),x=(e,t)=>{let n=new EventTarget;Object.defineProperty(n,d,{value:!0}),Object.defineProperty(n,f,{value:e}),Object.defineProperty(n,p,{value:t});let r=a({target:n,remoteEvents:t.events,unenrich:(t,n)=>{if(!(t instanceof CustomEvent))return t;let r=t.detail;if(!r||!(`snapshot`in r))return t;Object.assign(e,r.snapshot);let i={bubbles:t.bubbles,cancelable:t.cancelable,composed:t.composed};return r.originalDetail===null?new Event(n,i):new CustomEvent(n,{...i,detail:r.originalDetail})}}),i={addEventListener:{configurable:!0,value:r.addEventListener},removeEventListener:{configurable:!0,value:r.removeEventListener},dispatchEvent:{configurable:!0,value:r.dispatchEvent},error:{configurable:!0,enumerable:!0,get(){return _(e.error)}},play:{configurable:!0,value:()=>t.call(`play`,[])},pause:{configurable:!0,value:()=>{t.call(`pause`,[]).catch(()=>{})}},load:{configurable:!0,value:()=>{t.call(`load`,[]).catch(()=>{})}},requestPictureInPicture:{configurable:!0,value:()=>t.call(`requestPictureInPicture`,[])},exitPictureInPicture:{configurable:!0,value:()=>t.call(`exitPictureInPicture`,[])},HAVE_FUTURE_DATA:{enumerable:!0,value:3},HAVE_ENOUGH_DATA:{enumerable:!0,value:4}};for(let n of c)i[n]={configurable:!0,enumerable:!0,get(){return e[n]},set(r){e[n]=r,t.set(n,r).then(t=>{Object.assign(e,t)},()=>{})}};for(let t of l)i[t]={configurable:!0,enumerable:!0,get(){return e[t]}};for(let t of u)i[t]={configurable:!0,enumerable:!0,get(){return g(e[t])}};return Object.defineProperties(n,i),n},S=e=>x(h(e),b(e)),C=e=>typeof e==`object`&&!!e&&e[d]===!0,w=(e,t)=>{let r=e;return{...n.BoxBase,type:s,initialState:r[f],controller:(0,n.recursiveBox)(r[p],t)}},T=(e,t)=>{let r=(0,n.recursiveRevive)(e.controller,t);return x({...e.initialState},r)},E=e=>[o,...e],ee=`FKN_WEB_EXTENSION_MAIN_WORLD_CONTENT_SCRIPT_ENABLED_EVENT_KEY`,te=`fknExtension`,D=(0,n.createTypedEventTarget)();typeof document<`u`&&document.addEventListener(ee,()=>{D.dispatchEvent(new CustomEvent(`statuschange`,{detail:{enabled:O()}}))});var O=()=>typeof document>`u`?!1:document.documentElement.dataset[te]===`true`,k=null,ne=e=>{k=e},re=150,A=(e=1e3)=>new Promise((t,n)=>{if(O())return t();let r,i=e=>{clearTimeout(r),s.disconnect(),document.removeEventListener(`readystatechange`,c),e()},a=()=>i(async()=>{if(k&&(await k().catch(()=>{}),O()))return t();n(Error(`The FKN WebExtension is not installed, enabled or not exposed on this page.`))}),o=()=>{clearTimeout(r),r=setTimeout(()=>O()?i(t):a(),re)},s=new MutationObserver(()=>{O()&&i(t)}),c=()=>{document.readyState===`complete`&&!O()&&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();O()&&i(t)}),j,M=new Proxy({},{get:(e,t)=>async(...e)=>{await A(),j??=(0,n.expose)({},{transport:window,revivableModules:E});let r=(await j)[t];return r(...e)}}),ie={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.`},ae={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.`},oe={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.`},se=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},ce=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:`):se(n)},le=[`fkn.app`,`fkn.dev`],ue=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 le.some(e=>n===e||n.endsWith(`.${e}`))},de=e=>{if(ue(e))throw Error(`fetch: refusing to target the extension's own pages or FKN platform domains`)},fe=[`origin`,`referer`],pe=e=>{if(!e?.headers)return;let t=new Headers(e.headers),n=fe.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},me=async(e,t)=>{let n=new Request(e,t);de(n.url);let r=n.body?await n.arrayBuffer():null;return M.proxyFetch({url:n.url,method:n.method,headers:[...n.headers],body:r,credentials:t?.credentials===`include`?`include`:`omit`,redirect:n.redirect,unsafeHeaders:pe(t),reason:t?.reason,signal:t?.signal??void 0})},he={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.`},ge={get:e=>M.getCookie(e)},_e={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.`},ve=e=>M.setRequestHeaderRule(e),ye=e=>M.removeRequestHeaderRule({ruleId:e}),N=e=>typeof e==`object`&&!!e,be=`PermissionDeniedError`,xe=e=>e instanceof Error?e.name===be:N(e)&&e.name===`PermissionDeniedError`,P=`LocatorUnsupportedError`,Se=(e,t)=>Object.assign(Error(`Locator operation not supported${t?` on the ${t} backend`:``}: ${e}`),{name:P,operation:e,backend:t}),Ce=e=>e instanceof Error?e.name===P:typeof e==`object`&&!!e&&e.name===`LocatorUnsupportedError`,we=3e4,Te=50,Ee=e=>{let t=e[e.length-1];return typeof t==`object`&&t?t:void 0},De=e=>{let t=Ee(e)?.timeout;return typeof t==`number`?t:we},Oe=async(e,t,n,r,i)=>{i&&await i(t,n,r);let a=e,o=De(r),s=Date.now()+o,c=Error(`Locator timeout (${o}ms): ${n}`),{promise:l,reject:u}=Promise.withResolvers(),d=setTimeout(()=>u(c),o),f=c;try{for(;Date.now()<s;)try{return await Promise.race([a(t,n,r),l])}catch(e){if(e===c)break;if(xe(e)||Ce(e))throw e;f=e;let t=s-Date.now();if(t<=0)break;await new Promise(e=>setTimeout(e,Math.min(Te,t)))}}finally{clearTimeout(d)}throw f},F=e.n({render:()=>je,resolve:()=>Ae,type:()=>ke}),ke=`locator`,Ae=(e,t)=>e.elements.flatMap(e=>[...e.querySelectorAll(t)]),je=e=>({fragment:typeof e==`string`?e:`?`,separator:`descend`}),Me=`FKN_WEB_EXTENSION_FRAME_ANNOUNCE_REQUEST_KEY`,Ne=typeof chrome<`u`&&!!chrome.runtime?.id,Pe=e=>N(e)&&e.FKN_WEB_EXTENSION_FRAME_ANNOUNCE_KEY===!0&&typeof e.frameId==`string`,I=new WeakMap,L=new WeakMap,R=new Set,Fe=e=>(R.add(e),()=>R.delete(e));typeof window<`u`&&Ne&&window.addEventListener(`message`,e=>{if(!Pe(e.data))return;e.stopImmediatePropagation();let t=e.source;if(!t||typeof t!=`object`)return;let n=t,r=I.get(n),i=e.data.frameId;if(I.set(n,i),r)for(let e of R)e(r);let a=L.get(n);if(a){L.delete(n);for(let e of a)e(i)}},{capture:!0});var Ie=e=>{let t=e.contentWindow;if(!t)return Promise.reject(Error(`frameLocator: <iframe> has no contentWindow`));let n=I.get(t);return n?Promise.resolve(n):new Promise(e=>{let n=L.get(t)??[];n.push(e),L.set(t,n),t.postMessage({[Me]:!0},`*`)})},z=e.n({render:()=>Be,resolve:()=>Re,resolvePeer:()=>ze,type:()=>Le}),Le=`frameLocator`,Re=(e,t)=>e.elements.flatMap(e=>[...e.querySelectorAll(t)]).filter(e=>e instanceof HTMLIFrameElement),ze=async({parts:e,selfIndex:t,resolveLocal:n})=>{let r=n(e.slice(0,t+1))[0];if(!r)throw Error(`frameLocator: no <iframe> matched`);if(!(r instanceof HTMLIFrameElement))throw Error(`frameLocator: expected <iframe>, got <${r.tagName.toLowerCase()}>`);return Ie(r)},Be=e=>({fragment:typeof e==`string`?e:`?`,separator:`frame-down`}),Ve=e.n({render:()=>Ge,resolve:()=>Ue,resolvePeer:()=>We,type:()=>He}),He=`owner`,Ue=e=>{throw Error(`owner: must be processed by the executor as an upward pivot`)},We=async()=>{let{backgroundResolvers:e}=await Promise.resolve().then(()=>require("./background-B_VgpARk.cjs")),t=await(await e).getParentFrameId();if(!t)throw Error(`owner: already at top frame`);return t},Ge=()=>({fragment:``,separator:`frame-up`}),Ke=class extends Error{reason;filename;line;column;source;constructor(e,t,n,r,i){super(`${e}:${n}:${r}: ${t}`),this.reason=t,this.filename=e,this.line=n,this.column=r,this.source=i}},qe=class{start;end;source;constructor(e,t,n){this.start=e,this.end=t,this.source=n}},B;(function(e){e.stylesheet=`stylesheet`,e.rule=`rule`,e.declaration=`declaration`,e.comment=`comment`,e.atRule=`at-rule`,e.container=`container`,e.charset=`charset`,e.counterStyle=`counter-style`,e.document=`document`,e.customMedia=`custom-media`,e.fontFace=`font-face`,e.fontFeatureValues=`font-feature-values`,e.host=`host`,e.import=`import`,e.keyframes=`keyframes`,e.keyframe=`keyframe`,e.layer=`layer`,e.media=`media`,e.namespace=`namespace`,e.page=`page`,e.pageMarginBox=`page-margin-box`,e.positionTry=`position-try`,e.property=`property`,e.scope=`scope`,e.startingStyle=`starting-style`,e.supports=`supports`,e.viewTransition=`view-transition`})(B||={});var V=(e,t,n)=>{let r=n,i=1e4;do{let n=t.map(t=>e.indexOf(t,r));n.push(e.indexOf(`\\`,r));let a=n.filter(e=>e!==-1);if(a.length===0)return-1;let o=Math.min(...a);if(e[o]!==`\\`)return o;r=o+2,i--}while(i>0);throw Error(`Too many escaping`)},H=(e,t,n)=>{let r=n,i=1e4;do{let n=t.map(t=>e.indexOf(t,r));n.push(e.indexOf(`(`,r)),n.push(e.indexOf(`"`,r)),n.push(e.indexOf(`'`,r)),n.push(e.indexOf(`\\`,r));let a=n.filter(e=>e!==-1);if(a.length===0)return-1;let o=Math.min(...a);switch(e[o]){case`\\`:r=o+2;break;case`(`:{let t=H(e,[`)`],o+1);if(t===-1)return-1;r=t+1}break;case`"`:{let t=V(e,[`"`],o+1);if(t===-1)return-1;r=t+1}break;case`'`:{let t=V(e,[`'`],o+1);if(t===-1)return-1;r=t+1}break;default:return o}i--}while(i>0);throw Error(`Too many escaping`)},U=/\/\*[^]*?(?:\*\/|$)/g;function W(e){return e?e.trim():``}function G(e,t){let n=e&&typeof e.type==`string`,r=n?e:t;for(let t in e){let n=e[t];Array.isArray(n)?n.forEach(e=>{G(e,r)}):n&&typeof n==`object`&&G(n,r)}return n&&Object.defineProperty(e,"parent",{configurable:!0,writable:!0,enumerable:!1,value:t||null}),e}var Je=class{level=0;indentation=` `;compress=!1;constructor(e){typeof e?.indent==`string`&&(this.indentation=e?.indent),e?.compress&&(this.compress=!0)}emit(e,t){return e}indent(e){return this.level=this.level||1,e?(this.level+=e,``):Array(this.level).join(this.indentation)}visit(e){switch(e.type){case B.stylesheet:return this.stylesheet(e);case B.rule:return this.rule(e);case B.declaration:return this.declaration(e);case B.comment:return this.comment(e);case B.container:return this.container(e);case B.charset:return this.charset(e);case B.counterStyle:return this.counterStyle(e);case B.document:return this.document(e);case B.customMedia:return this.customMedia(e);case B.fontFace:return this.fontFace(e);case B.fontFeatureValues:return this.fontFeatureValues(e);case B.host:return this.host(e);case B.import:return this.import(e);case B.keyframes:return this.keyframes(e);case B.keyframe:return this.keyframe(e);case B.layer:return this.layer(e);case B.media:return this.media(e);case B.namespace:return this.namespace(e);case B.page:return this.page(e);case B.pageMarginBox:return this.pageMarginBox(e);case B.positionTry:return this.positionTry(e);case B.property:return this.property(e);case B.scope:return this.scope(e);case B.startingStyle:return this.startingStyle(e);case B.supports:return this.supports(e);case B.viewTransition:return this.viewTransition(e);case B.atRule:return this.genericAtRule(e)}}mapVisit(e,t){let n=``;t||=``;for(let r=0,i=e.length;r<i;r++)n+=this.visit(e[r]),t&&r<i-1&&(n+=this.emit(t));return n}compile(e){return this.compress?e.stylesheet.rules.map(this.visit,this).join(``):this.stylesheet(e)}stylesheet(e){return this.mapVisit(e.stylesheet.rules,`
1
+ const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./api-DD5v1qP9.cjs");let n=require("osra");var r=(e,t)=>{let n=new EventTarget,r=new Map,i=EventTarget.prototype.addEventListener.bind(n),a=EventTarget.prototype.removeEventListener.bind(n);return Object.defineProperty(n,"addEventListener",{configurable:!0,value:(a,o,s)=>{if(o!==null){if(!r.has(a)){let i=r=>{n.dispatchEvent(new CustomEvent(a,{detail:t(r,e),bubbles:r.bubbles,cancelable:r.cancelable,composed:r.composed}))};e.addEventListener(a,i),r.set(a,i)}i(a,o,s)}}}),Object.defineProperty(n,"removeEventListener",{configurable:!0,value:(t,n,i)=>{if(n===null)return;a(t,n,i);let o=r.get(t);o&&(e.removeEventListener(t,o),r.delete(t))}}),n},i=e=>typeof e==`boolean`?+!!e:+!!e?.capture,a=e=>{let t=new WeakMap;return{addEventListener:(n,r,a)=>{if(r===null)return;let o=`${n}|${i(a)}`,s=t.get(r);if(s||(s=new Map,t.set(r,s)),s.has(o))return;let c=typeof a==`object`&&!!a&&!!a.once,l=t=>{c&&s.delete(o);let i=e.unenrich(t,n);typeof r==`function`?r.call(e.target,i):r.handleEvent(i)};s.set(o,l),e.remoteEvents.addEventListener(n,l,a)},removeEventListener:(n,r,a)=>{if(r===null)return;let o=`${n}|${i(a)}`,s=t.get(r),c=s?.get(o);c&&(e.remoteEvents.removeEventListener(n,c,a),s.delete(o))},dispatchEvent:t=>e.remoteEvents.dispatchEvent(t)}},o=e.n({box:()=>w,createVideoElementHandle:()=>S,isType:()=>C,revive:()=>T,type:()=>s}),s=`videoElement`,c=[`currentTime`,`volume`,`muted`,`playbackRate`,`src`,`loop`,`autoplay`,`preload`,`poster`,`disableRemotePlayback`],l=[`duration`,`paused`,`ended`,`seeking`,`readyState`,`currentSrc`],u=[`buffered`,`seekable`],d=Symbol.for(`fkn.remoteVideoElement`),f=Symbol.for(`fkn.remoteVideoElement.state`),p=Symbol.for(`fkn.remoteVideoElement.controller`),m=e=>e?Array.from({length:e.length},(t,n)=>[e.start(n),e.end(n)]):[],h=e=>{let t={};for(let n of[...c,...l])t[n]=e[n];for(let n of u)t[n]=m(e[n]);return t.error=e.error?{code:e.error.code,message:e.error.message}:null,t},g=e=>{let t=t=>{if(!Number.isInteger(t)||t<0||t>=e.length)throw new DOMException(`Index or size is negative or greater than the allowed amount`,`IndexSizeError`)};return{get length(){return e.length},start(n){return t(n),e[n][0]},end(n){return t(n),e[n][1]}}},_=e=>e?{code:e.code,message:e.message,MEDIA_ERR_ABORTED:1,MEDIA_ERR_NETWORK:2,MEDIA_ERR_DECODE:3,MEDIA_ERR_SRC_NOT_SUPPORTED:4}:null,v=e=>r(e,(e,t)=>({originalDetail:e instanceof CustomEvent?e.detail:null,snapshot:h(t)})),y=async(e,t)=>{switch(t){case`play`:return await e.play(),null;case`pause`:return e.pause(),null;case`load`:return e.load(),null;case`requestPictureInPicture`:if(typeof e.requestPictureInPicture!=`function`)throw Error(`requestPictureInPicture is not supported in this environment`);return await e.requestPictureInPicture(),null;case`exitPictureInPicture`:{let t=e.ownerDocument;if(typeof t?.exitPictureInPicture!=`function`)throw Error(`exitPictureInPicture is not supported in this environment`);return await t.exitPictureInPicture(),null}default:throw Error(`videoElement: unknown method "${t}"`)}},b=e=>({call:async t=>y(e,t),set:async(t,n)=>{try{e[t]=n}catch{}return h(e)},events:v(e)}),x=(e,t)=>{let n=new EventTarget;Object.defineProperty(n,d,{value:!0}),Object.defineProperty(n,f,{value:e}),Object.defineProperty(n,p,{value:t});let r=a({target:n,remoteEvents:t.events,unenrich:(t,n)=>{if(!(t instanceof CustomEvent))return t;let r=t.detail;if(!r||!(`snapshot`in r))return t;Object.assign(e,r.snapshot);let i={bubbles:t.bubbles,cancelable:t.cancelable,composed:t.composed};return r.originalDetail===null?new Event(n,i):new CustomEvent(n,{...i,detail:r.originalDetail})}}),i={addEventListener:{configurable:!0,value:r.addEventListener},removeEventListener:{configurable:!0,value:r.removeEventListener},dispatchEvent:{configurable:!0,value:r.dispatchEvent},error:{configurable:!0,enumerable:!0,get(){return _(e.error)}},play:{configurable:!0,value:()=>t.call(`play`,[])},pause:{configurable:!0,value:()=>{t.call(`pause`,[]).catch(()=>{})}},load:{configurable:!0,value:()=>{t.call(`load`,[]).catch(()=>{})}},requestPictureInPicture:{configurable:!0,value:()=>t.call(`requestPictureInPicture`,[])},exitPictureInPicture:{configurable:!0,value:()=>t.call(`exitPictureInPicture`,[])},HAVE_FUTURE_DATA:{enumerable:!0,value:3},HAVE_ENOUGH_DATA:{enumerable:!0,value:4}};for(let n of c)i[n]={configurable:!0,enumerable:!0,get(){return e[n]},set(r){e[n]=r,t.set(n,r).then(t=>{Object.assign(e,t)},()=>{})}};for(let t of l)i[t]={configurable:!0,enumerable:!0,get(){return e[t]}};for(let t of u)i[t]={configurable:!0,enumerable:!0,get(){return g(e[t])}};return Object.defineProperties(n,i),n},S=e=>x(h(e),b(e)),C=e=>typeof e==`object`&&!!e&&e[d]===!0,w=(e,t)=>{let r=e;return{...n.BoxBase,type:s,initialState:r[f],controller:(0,n.recursiveBox)(r[p],t)}},T=(e,t)=>{let r=(0,n.recursiveRevive)(e.controller,t);return x({...e.initialState},r)},E=e=>[o,...e],ee=`FKN_WEB_EXTENSION_MAIN_WORLD_CONTENT_SCRIPT_ENABLED_EVENT_KEY`,te=`fknExtension`,D=(0,n.createTypedEventTarget)();typeof document<`u`&&document.addEventListener(ee,()=>{D.dispatchEvent(new CustomEvent(`statuschange`,{detail:{enabled:O()}}))});var O=()=>typeof document>`u`?!1:document.documentElement.dataset[te]===`true`,k=null,ne=e=>{k=e},re=150,A=(e=1e3)=>new Promise((t,n)=>{if(O())return t();let r,i=e=>{clearTimeout(r),s.disconnect(),document.removeEventListener(`readystatechange`,c),e()},a=()=>i(async()=>{if(k&&(await k().catch(()=>{}),O()))return t();n(Error(`The FKN WebExtension is not installed, enabled or not exposed on this page.`))}),o=()=>{clearTimeout(r),r=setTimeout(()=>O()?i(t):a(),re)},s=new MutationObserver(()=>{O()&&i(t)}),c=()=>{document.readyState===`complete`&&!O()&&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();O()&&i(t)}),j,M=new Proxy({},{get:(e,t)=>async(...e)=>{await A(),j??=(0,n.expose)({},{transport:window,revivableModules:E});let r=(await j)[t];return r(...e)}}),ie={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.`},ae={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.`},oe={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.`},se=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},ce=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:`):se(n)},le=[`fkn.app`,`fkn.dev`],ue=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 le.some(e=>n===e||n.endsWith(`.${e}`))},de=e=>{if(ue(e))throw Error(`fetch: refusing to target the extension's own pages or FKN platform domains`)},fe=[`origin`,`referer`],pe=e=>{if(!e?.headers)return;let t=new Headers(e.headers),n=fe.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},me=async(e,t)=>{let n=new Request(e,t);de(n.url);let r=n.body?await n.arrayBuffer():null;return M.proxyFetch({url:n.url,method:n.method,headers:[...n.headers],body:r,credentials:t?.credentials===`include`?`include`:`omit`,redirect:n.redirect,unsafeHeaders:pe(t),reason:t?.reason,signal:t?.signal??void 0})},he={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.`},ge={get:e=>M.getCookie(e)},_e={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.`},ve=e=>M.setRequestHeaderRule(e),ye=e=>M.removeRequestHeaderRule({ruleId:e}),N=e=>typeof e==`object`&&!!e,be=`PermissionDeniedError`,xe=e=>e instanceof Error?e.name===be:N(e)&&e.name===`PermissionDeniedError`,P=`LocatorUnsupportedError`,Se=(e,t)=>Object.assign(Error(`Locator operation not supported${t?` on the ${t} backend`:``}: ${e}`),{name:P,operation:e,backend:t}),Ce=e=>e instanceof Error?e.name===P:typeof e==`object`&&!!e&&e.name===`LocatorUnsupportedError`,we=3e4,Te=50,Ee=e=>{let t=e[e.length-1];return typeof t==`object`&&t?t:void 0},De=e=>{let t=Ee(e)?.timeout;return typeof t==`number`?t:we},Oe=async(e,t,n,r,i)=>{i&&await i(t,n,r);let a=e,o=De(r),s=Date.now()+o,c=Error(`Locator timeout (${o}ms): ${n}`),{promise:l,reject:u}=Promise.withResolvers(),d=setTimeout(()=>u(c),o),f=c;try{for(;Date.now()<s;)try{return await Promise.race([a(t,n,r),l])}catch(e){if(e===c)break;if(xe(e)||Ce(e))throw e;f=e;let t=s-Date.now();if(t<=0)break;await new Promise(e=>setTimeout(e,Math.min(Te,t)))}}finally{clearTimeout(d)}throw f},F=e.n({render:()=>je,resolve:()=>Ae,type:()=>ke}),ke=`locator`,Ae=(e,t)=>e.elements.flatMap(e=>[...e.querySelectorAll(t)]),je=e=>({fragment:typeof e==`string`?e:`?`,separator:`descend`}),Me=`FKN_WEB_EXTENSION_FRAME_ANNOUNCE_REQUEST_KEY`,Ne=typeof chrome<`u`&&!!chrome.runtime?.id,Pe=e=>N(e)&&e.FKN_WEB_EXTENSION_FRAME_ANNOUNCE_KEY===!0&&typeof e.frameId==`string`,I=new WeakMap,L=new WeakMap,R=new Set,Fe=e=>(R.add(e),()=>R.delete(e));typeof window<`u`&&Ne&&window.addEventListener(`message`,e=>{if(!Pe(e.data))return;e.stopImmediatePropagation();let t=e.source;if(!t||typeof t!=`object`)return;let n=t,r=I.get(n),i=e.data.frameId;if(I.set(n,i),r)for(let e of R)e(r);let a=L.get(n);if(a){L.delete(n);for(let e of a)e(i)}},{capture:!0});var Ie=e=>{let t=e.contentWindow;if(!t)return Promise.reject(Error(`frameLocator: <iframe> has no contentWindow`));let n=I.get(t);return n?Promise.resolve(n):new Promise(e=>{let n=L.get(t)??[];n.push(e),L.set(t,n),t.postMessage({[Me]:!0},`*`)})},z=e.n({render:()=>Be,resolve:()=>Re,resolvePeer:()=>ze,type:()=>Le}),Le=`frameLocator`,Re=(e,t)=>e.elements.flatMap(e=>[...e.querySelectorAll(t)]).filter(e=>e instanceof HTMLIFrameElement),ze=async({parts:e,selfIndex:t,resolveLocal:n})=>{let r=n(e.slice(0,t+1))[0];if(!r)throw Error(`frameLocator: no <iframe> matched`);if(!(r instanceof HTMLIFrameElement))throw Error(`frameLocator: expected <iframe>, got <${r.tagName.toLowerCase()}>`);return Ie(r)},Be=e=>({fragment:typeof e==`string`?e:`?`,separator:`frame-down`}),Ve=e.n({render:()=>Ge,resolve:()=>Ue,resolvePeer:()=>We,type:()=>He}),He=`owner`,Ue=e=>{throw Error(`owner: must be processed by the executor as an upward pivot`)},We=async()=>{let{backgroundResolvers:e}=await Promise.resolve().then(()=>require("./background-Bu7dBd_Z.cjs")),t=await(await e).getParentFrameId();if(!t)throw Error(`owner: already at top frame`);return t},Ge=()=>({fragment:``,separator:`frame-up`}),Ke=class extends Error{reason;filename;line;column;source;constructor(e,t,n,r,i){super(`${e}:${n}:${r}: ${t}`),this.reason=t,this.filename=e,this.line=n,this.column=r,this.source=i}},qe=class{start;end;source;constructor(e,t,n){this.start=e,this.end=t,this.source=n}},B;(function(e){e.stylesheet=`stylesheet`,e.rule=`rule`,e.declaration=`declaration`,e.comment=`comment`,e.atRule=`at-rule`,e.container=`container`,e.charset=`charset`,e.counterStyle=`counter-style`,e.document=`document`,e.customMedia=`custom-media`,e.fontFace=`font-face`,e.fontFeatureValues=`font-feature-values`,e.host=`host`,e.import=`import`,e.keyframes=`keyframes`,e.keyframe=`keyframe`,e.layer=`layer`,e.media=`media`,e.namespace=`namespace`,e.page=`page`,e.pageMarginBox=`page-margin-box`,e.positionTry=`position-try`,e.property=`property`,e.scope=`scope`,e.startingStyle=`starting-style`,e.supports=`supports`,e.viewTransition=`view-transition`})(B||={});var V=(e,t,n)=>{let r=n,i=1e4;do{let n=t.map(t=>e.indexOf(t,r));n.push(e.indexOf(`\\`,r));let a=n.filter(e=>e!==-1);if(a.length===0)return-1;let o=Math.min(...a);if(e[o]!==`\\`)return o;r=o+2,i--}while(i>0);throw Error(`Too many escaping`)},H=(e,t,n)=>{let r=n,i=1e4;do{let n=t.map(t=>e.indexOf(t,r));n.push(e.indexOf(`(`,r)),n.push(e.indexOf(`"`,r)),n.push(e.indexOf(`'`,r)),n.push(e.indexOf(`\\`,r));let a=n.filter(e=>e!==-1);if(a.length===0)return-1;let o=Math.min(...a);switch(e[o]){case`\\`:r=o+2;break;case`(`:{let t=H(e,[`)`],o+1);if(t===-1)return-1;r=t+1}break;case`"`:{let t=V(e,[`"`],o+1);if(t===-1)return-1;r=t+1}break;case`'`:{let t=V(e,[`'`],o+1);if(t===-1)return-1;r=t+1}break;default:return o}i--}while(i>0);throw Error(`Too many escaping`)},U=/\/\*[^]*?(?:\*\/|$)/g;function W(e){return e?e.trim():``}function G(e,t){let n=e&&typeof e.type==`string`,r=n?e:t;for(let t in e){let n=e[t];Array.isArray(n)?n.forEach(e=>{G(e,r)}):n&&typeof n==`object`&&G(n,r)}return n&&Object.defineProperty(e,"parent",{configurable:!0,writable:!0,enumerable:!1,value:t||null}),e}var Je=class{level=0;indentation=` `;compress=!1;constructor(e){typeof e?.indent==`string`&&(this.indentation=e?.indent),e?.compress&&(this.compress=!0)}emit(e,t){return e}indent(e){return this.level=this.level||1,e?(this.level+=e,``):Array(this.level).join(this.indentation)}visit(e){switch(e.type){case B.stylesheet:return this.stylesheet(e);case B.rule:return this.rule(e);case B.declaration:return this.declaration(e);case B.comment:return this.comment(e);case B.container:return this.container(e);case B.charset:return this.charset(e);case B.counterStyle:return this.counterStyle(e);case B.document:return this.document(e);case B.customMedia:return this.customMedia(e);case B.fontFace:return this.fontFace(e);case B.fontFeatureValues:return this.fontFeatureValues(e);case B.host:return this.host(e);case B.import:return this.import(e);case B.keyframes:return this.keyframes(e);case B.keyframe:return this.keyframe(e);case B.layer:return this.layer(e);case B.media:return this.media(e);case B.namespace:return this.namespace(e);case B.page:return this.page(e);case B.pageMarginBox:return this.pageMarginBox(e);case B.positionTry:return this.positionTry(e);case B.property:return this.property(e);case B.scope:return this.scope(e);case B.startingStyle:return this.startingStyle(e);case B.supports:return this.supports(e);case B.viewTransition:return this.viewTransition(e);case B.atRule:return this.genericAtRule(e)}}mapVisit(e,t){let n=``;t||=``;for(let r=0,i=e.length;r<i;r++)n+=this.visit(e[r]),t&&r<i-1&&(n+=this.emit(t));return n}compile(e){return this.compress?e.stylesheet.rules.map(this.visit,this).join(``):this.stylesheet(e)}stylesheet(e){return this.mapVisit(e.stylesheet.rules,`
2
2
 
3
3
  `)}comment(e){return this.compress?this.emit(``,e.position):this.emit(`${this.indent()}/*${e.comment}*/`,e.position)}container(e){return this.compress?this.emit(`@container ${e.container}`,e.position)+this.emit(`{`)+this.mapVisit(e.rules)+this.emit(`}`):this.emit(`${this.indent()}@container ${e.container}`,e.position)+this.emit(` {\n${this.indent(1)}`)+this.mapVisit(e.rules,`
4
4
 
@@ -0,0 +1,30 @@
1
+ import { n as e } from "./rolldown-runtime-DF993M8W.js";
2
+ import { t } from "./api--bnCFd4w.js";
3
+ //#endregion
4
+ //#region src/lib/storage.ts
5
+ var n = /* @__PURE__ */ e({
6
+ StorageLockedError: () => r,
7
+ available: () => a,
8
+ encryption: () => d,
9
+ list: () => o,
10
+ quota: () => s,
11
+ readFile: () => c,
12
+ remove: () => u,
13
+ unlock: () => f,
14
+ writeFile: () => l
15
+ }), r = class extends Error {
16
+ code = "FKN_E2E_LOCKED";
17
+ constructor() {
18
+ super("storage locked: this app stores encrypted data, unlock it from the FKN card or unlock()");
19
+ }
20
+ }, i = (e) => {
21
+ throw e instanceof Error && e.message.startsWith("fkn:e2e-locked") ? new r() : e;
22
+ }, a = () => t.then((e) => e.cloud.fs.available()).catch(() => !1), o = () => t.then((e) => e.cloud.fs.list()), s = () => t.then((e) => e.cloud.fs.quota()), c = async (e) => {
23
+ let n = await (await t).cloud.fs.readFile(e).catch(i);
24
+ return new Blob([n]);
25
+ }, l = async (e, n, r) => {
26
+ let a = await t, o = n instanceof Blob ? new Uint8Array(await n.arrayBuffer()) : n;
27
+ await a.cloud.fs.writeFile(e, o, r?.contentType ?? null).catch(i);
28
+ }, u = (e) => t.then((t) => t.cloud.fs.remove(e)).then(() => void 0), d = () => t.then((e) => e.cloud.fs.encryption()), f = () => t.then((e) => e.cloud.fs.unlock());
29
+ //#endregion
30
+ export { s as a, n as c, o as i, f as l, a as n, c as o, d as r, u as s, r as t, l as u };
@@ -0,0 +1 @@
1
+ const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./api-DD5v1qP9.cjs");var n=e.n({StorageLockedError:()=>r,available:()=>a,encryption:()=>d,list:()=>o,quota:()=>s,readFile:()=>c,remove:()=>u,unlock:()=>f,writeFile:()=>l}),r=class extends Error{code=`FKN_E2E_LOCKED`;constructor(){super(`storage locked: this app stores encrypted data, unlock it from the FKN card or unlock()`)}},i=e=>{throw e instanceof Error&&e.message.startsWith(`fkn:e2e-locked`)?new r:e},a=()=>t.t.then(e=>e.cloud.fs.available()).catch(()=>!1),o=()=>t.t.then(e=>e.cloud.fs.list()),s=()=>t.t.then(e=>e.cloud.fs.quota()),c=async e=>{let n=await(await t.t).cloud.fs.readFile(e).catch(i);return new Blob([n])},l=async(e,n,r)=>{let a=await t.t,o=n instanceof Blob?new Uint8Array(await n.arrayBuffer()):n;await a.cloud.fs.writeFile(e,o,r?.contentType??null).catch(i)},u=e=>t.t.then(t=>t.cloud.fs.remove(e)).then(()=>void 0),d=()=>t.t.then(e=>e.cloud.fs.encryption()),f=()=>t.t.then(e=>e.cloud.fs.unlock());Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return l}});
@@ -2,7 +2,7 @@ import { Address4 as e, Address6 as t } from "ip-address";
2
2
  //#region src/lib/webvpn/utils.ts
3
3
  var n = new TextEncoder();
4
4
  new TextDecoder();
5
- var r = (t) => e.isValid(t), i = (e) => t.isValid(e), a = (e) => r(e) ? 4 : i(e) ? 6 : 0, o = (...e) => {
5
+ var r = "webvpn-udp-port-ack", i = 512 * 1024, a = (t) => e.isValid(t), o = (e) => t.isValid(e), s = (e) => a(e) ? 4 : o(e) ? 6 : 0, c = (...e) => {
6
6
  if (typeof e[0] == "string") throw Error("FKN WebVPN does not support IPC connections");
7
7
  let t = typeof e.at(-1) == "function" ? e.at(-1) : void 0;
8
8
  return e[0] && typeof e[0] == "object" ? {
@@ -13,7 +13,7 @@ var r = (t) => e.isValid(t), i = (e) => t.isValid(e), a = (e) => r(e) ? 4 : i(e)
13
13
  host: typeof e[1] == "string" ? e[1] : void 0,
14
14
  callback: t
15
15
  };
16
- }, s = (...e) => {
16
+ }, l = (...e) => {
17
17
  let t = typeof e.at(-1) == "function" ? e.at(-1) : void 0, n = e[0] ?? 0, r = typeof e[1] == "string" ? e[1] : void 0;
18
18
  return typeof e[0] == "object" ? {
19
19
  ...e[0],
@@ -25,10 +25,11 @@ var r = (t) => e.isValid(t), i = (e) => t.isValid(e), a = (e) => r(e) ? 4 : i(e)
25
25
  port: n,
26
26
  callback: t
27
27
  };
28
- }, c = (...e) => {
28
+ }, u = (...e) => {
29
29
  let t = typeof e.at(-1) == "function" ? e.at(-1) : void 0, n = e[0];
30
30
  if (typeof e[2] == "number") return {
31
31
  message: n,
32
+ hasRange: !0,
32
33
  offset: e[1],
33
34
  length: e[2],
34
35
  port: typeof e[3] == "number" ? e[3] : 0,
@@ -39,6 +40,7 @@ var r = (t) => e.isValid(t), i = (e) => t.isValid(e), a = (e) => r(e) ? 4 : i(e)
39
40
  let r = typeof e[1] == "number" ? e[1] : 0, i = typeof e[2] == "string" ? e[2] : void 0;
40
41
  return {
41
42
  message: n,
43
+ hasRange: !1,
42
44
  offset: 0,
43
45
  length: n.length,
44
46
  port: r,
@@ -49,4 +51,4 @@ var r = (t) => e.isValid(t), i = (e) => t.isValid(e), a = (e) => r(e) ? 4 : i(e)
49
51
  };
50
52
  new TextEncoder(), new TextDecoder();
51
53
  //#endregion
52
- export { c as a, s as i, r as n, o, i as r, n as s, a as t };
54
+ export { o as a, c, a as i, n as l, r as n, l as o, s as r, u as s, i as t };
@@ -0,0 +1 @@
1
+ let e=require("ip-address");var t=new TextEncoder;new TextDecoder;var n=`webvpn-udp-port-ack`,r=512*1024,i=t=>e.Address4.isValid(t),a=t=>e.Address6.isValid(t),o=e=>i(e)?4:a(e)?6:0,s=(...e)=>{if(typeof e[0]==`string`)throw Error(`FKN WebVPN does not support IPC connections`);let t=typeof e.at(-1)==`function`?e.at(-1):void 0;return e[0]&&typeof e[0]==`object`?{...e[0],callback:t}:{port:e[0]??0,host:typeof e[1]==`string`?e[1]:void 0,callback:t}},c=(...e)=>{let t=typeof e.at(-1)==`function`?e.at(-1):void 0,n=e[0]??0,r=typeof e[1]==`string`?e[1]:void 0;return typeof e[0]==`object`?{...e[0],address:e[0].address??r,port:e[0].port??n,callback:t}:{address:r,port:n,callback:t}},l=(...e)=>{let t=typeof e.at(-1)==`function`?e.at(-1):void 0,n=e[0];if(typeof e[2]==`number`)return{message:n,hasRange:!0,offset:e[1],length:e[2],port:typeof e[3]==`number`?e[3]:0,address:typeof e[4]==`string`?e[4]:void 0,callback:t};{let r=typeof e[1]==`number`?e[1]:0,i=typeof e[2]==`string`?e[2]:void 0;return{message:n,hasRange:!1,offset:0,length:n.length,port:r,address:i,callback:t}}};new TextEncoder,new TextDecoder,Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return r}});