@fkn/lib 0.6.2 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{api-B0jZnr_N.d.ts → api-CI4d96Ty.d.ts} +142 -40
- package/{background-B_VgpARk.cjs → background-Bu7dBd_Z.cjs} +1 -1
- package/{background-BVBbBOmL.js → background-DLnt6fYS.js} +5 -5
- package/cloud/dgram.cjs +1 -1
- package/cloud/dgram.js +1 -1
- package/cloud/fs.cjs +1 -1
- package/cloud/fs.d.ts +2 -2
- package/cloud/fs.js +18 -15
- package/cloud/net.cjs +1 -1
- package/cloud/net.d.ts +1 -1
- package/cloud/net.js +3 -3
- package/{cloud-jJi2d0cs.d.ts → cloud-BxPdeAuj.d.ts} +4 -4
- package/{cloud-B4KIFGwa.cjs → cloud-CIO9w9MV.cjs} +1 -1
- package/{cloud-Dsb33tl6.js → cloud-D2s-dPZy.js} +11 -11
- package/cloud.cjs +1 -1
- package/cloud.d.ts +3 -3
- package/cloud.js +4 -4
- package/desktop.d.ts +6 -0
- package/{dgram-wtjARbt0.js → dgram-CKRbKVzG.js} +140 -86
- package/dgram-DcvdNkg6.cjs +1 -0
- package/dgram.cjs +1 -1
- package/dgram.d.ts +16 -1
- package/dgram.js +1 -1
- package/{extension-CPj10qwa.js → extension-4ib5y95s.js} +1 -1
- package/{extension-D-NUXxzF.cjs → extension-DVHdBvOz.cjs} +1 -1
- package/extension.cjs +1 -1
- package/extension.js +2 -2
- package/fs/promises.cjs +1 -1
- package/fs/promises.js +1 -1
- package/{fs-D6nNf1mR.js → fs-7E0-tE2x.js} +11 -11
- package/{fs-K7ROdxDx.d.ts → fs-BEfsbriO.d.ts} +14 -2
- package/{fs-BfmfMBiw.cjs → fs-BN4hkppN.cjs} +1 -1
- package/fs.cjs +1 -1
- package/fs.js +1 -1
- package/http.cjs +1 -1
- package/http.d.ts +1 -1
- package/http.js +1 -1
- package/index.cjs +1 -1
- package/index.d.ts +3 -3
- package/index.js +26 -11
- package/{net-DKMWPXb_.js → net-BFYMbE4N.js} +49 -26
- package/net-BPpdNdpy.cjs +1 -0
- package/{net-5SVFcuzM.d.ts → net-Cx8lDWau.d.ts} +13 -4
- package/net.cjs +1 -1
- package/net.d.ts +1 -1
- package/net.js +3 -3
- package/package.json +1 -1
- package/{packages-D36R2vBv.d.ts → packages-CErlrrLB.d.ts} +2 -2
- package/packages.d.ts +2 -2
- package/{proxy-C8SG1Beo.js → proxy-Cusnx9Ex.js} +1 -1
- package/{proxy-bPaU3-Cz.cjs → proxy-Du95zAKk.cjs} +1 -1
- package/storage-DMETg6sP.js +30 -0
- package/storage-ezLkqmQR.cjs +1 -0
- package/{utils-DPtyxGQu.js → utils-DVlbuXmW.js} +6 -4
- package/utils-QfNXtEhb.cjs +1 -0
- package/dgram-CE43gJq9.cjs +0 -1
- package/net-CpuAhaQC.cjs +0 -1
- package/storage-OkwsFLN1.cjs +0 -1
- package/storage-TmeyhZGt.js +0 -19
- package/utils-CoimMjf9.cjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./node-fs-C0eKnboT.cjs"),n=require("./storage-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./proxy-Du95zAKk.cjs"),t=require("./api-DD5v1qP9.cjs"),n=require("./cloud-CIO9w9MV.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=1e4,g=150,_=()=>new Promise(t=>{if(e.P())return t(!0);let n,r=setTimeout(()=>i(e.P()),h),i=e=>{clearTimeout(n),clearTimeout(r),o.disconnect(),document.removeEventListener(`readystatechange`,s),t(e)},a=()=>{clearTimeout(n),n=setTimeout(()=>i(e.P()),g)},o=new MutationObserver(()=>{e.P()&&i(!0)}),s=()=>{document.readyState===`complete`&&!e.P()&&a()};o.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-fkn-extension`]}),document.addEventListener(`readystatechange`,s),document.readyState===`complete`&&a()}),v=async t=>s.r()||t.lockdown||!n.a()||await _()?e.a(t):n.i(t),y=`https://fkn.app`,b=(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??y,originB:n?.originB??`*`,unregisterSignal:n?.unregisterSignal})},x=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=v,exports.attachFramePermission=e.o,exports.box=e.R,Object.defineProperty(exports,"cloud",{enumerable:!0,get:function(){return n.n}}),exports.connect=x,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=b,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 {
|
|
3
|
-
import { n as cloud_d_exports } from "./cloud-
|
|
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-
|
|
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,20 +1,35 @@
|
|
|
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-
|
|
2
|
-
import { r as k, t as
|
|
3
|
-
import { i as j, n as M } from "./cloud-
|
|
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
|
+
import { r as k, t as ee } from "./api--bnCFd4w.js";
|
|
3
|
+
import { a as A, i as j, n as M } from "./cloud-D2s-dPZy.js";
|
|
4
4
|
import { t as N } from "./dns.js";
|
|
5
|
-
import { s as P } from "./net-
|
|
6
|
-
import { i as F } from "./dgram-
|
|
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-
|
|
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-
|
|
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";
|
|
14
14
|
import { t as K } from "./connect-button-Ds9KpXHe.js";
|
|
15
15
|
import { relay as q } from "osra";
|
|
16
16
|
//#region src/lib/frame.ts
|
|
17
|
-
var J =
|
|
17
|
+
var J = 1e4, Y = 150, X = () => new Promise((e) => {
|
|
18
|
+
if (u()) return e(!0);
|
|
19
|
+
let t, n = setTimeout(() => r(u()), J), r = (r) => {
|
|
20
|
+
clearTimeout(t), clearTimeout(n), a.disconnect(), document.removeEventListener("readystatechange", o), e(r);
|
|
21
|
+
}, i = () => {
|
|
22
|
+
clearTimeout(t), t = setTimeout(() => r(u()), Y);
|
|
23
|
+
}, a = new MutationObserver(() => {
|
|
24
|
+
u() && r(!0);
|
|
25
|
+
}), o = () => {
|
|
26
|
+
document.readyState === "complete" && !u() && i();
|
|
27
|
+
};
|
|
28
|
+
a.observe(document.documentElement, {
|
|
29
|
+
attributes: !0,
|
|
30
|
+
attributeFilter: ["data-fkn-extension"]
|
|
31
|
+
}), document.addEventListener("readystatechange", o), document.readyState === "complete" && i();
|
|
32
|
+
}), Z = async (e) => z() || e.lockdown || !A() || await X() ? h(e) : j(e), Q = "https://fkn.app", $ = (e, t) => {
|
|
18
33
|
if (typeof window > "u") throw Error("FKN @fkn/lib: relayWorker must be called from the main thread");
|
|
19
34
|
if (!k?.contentWindow) throw Error("FKN @fkn/lib: relayWorker called before the FKN iframe was injected");
|
|
20
35
|
q({
|
|
@@ -22,10 +37,10 @@ var J = (e) => z() || e.syncCookies !== !1 ? h(e) : j(e), Y = "https://fkn.app",
|
|
|
22
37
|
emit: k.contentWindow
|
|
23
38
|
}, e, {
|
|
24
39
|
key: "fkn-api",
|
|
25
|
-
originA: t?.originA ??
|
|
40
|
+
originA: t?.originA ?? Q,
|
|
26
41
|
originB: t?.originB ?? "*",
|
|
27
42
|
unregisterSignal: t?.unregisterSignal
|
|
28
43
|
});
|
|
29
|
-
},
|
|
44
|
+
}, te = async () => typeof window > "u" ? !1 : (await ee).connect.prompt(location.origin).catch(() => !1);
|
|
30
45
|
//#endregion
|
|
31
|
-
export { v as ATTACH_FRAME_EVENT_KEY, G as account, x as assertAttachableFrameUrl, r as assertFetchableUrl, T as assertLockdownApplicable,
|
|
46
|
+
export { v as ATTACH_FRAME_EVENT_KEY, G as account, x as assertAttachableFrameUrl, r as assertFetchableUrl, T as assertLockdownApplicable, Z as attachFrame, S as attachFramePermission, d as box, M as cloud, te as connect, K as connectButtonUrl, E as cookies, w as createFrame, O as createVideoElementHandle, V as desktop, F as dgram, N as dns, B as extension, R as fetch, l as fetchCredentialedPermission, b as fetchLocalPermission, e as fetchPermission, H as fs, g as gotoPermission, s as handleRevivableModules, I as http, y as isBlockedFetchUrl, _ as isBlockedFrameUrl, u as isExtensionExposed, c as isLocalNetworkUrl, t as isType, D as modifyRequestHeadersPermission, P as net, U as opfs, W as packages, C as permissions, L as promptInstall, p as readCookiePermission, $ as relayWorker, f as removeRequestHeaderRule, m as revive, i as setMissingExtensionHandler, n as setRequestHeaderRule, a as type, o as waitForExtensionExposure };
|
|
@@ -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,
|
|
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: () =>
|
|
17
|
-
isIPv6: () =>
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
e
|
|
89
|
-
|
|
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
|
-
|
|
93
|
-
e
|
|
94
|
-
|
|
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
|
-
|
|
98
|
-
|
|
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.
|
|
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)
|
|
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) =>
|
|
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
|
-
|
|
231
|
-
|
|
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.
|
|
261
|
+
await t.close(), this._localAddress = void 0, this._emitClose(), e && e();
|
|
239
262
|
} catch (t) {
|
|
240
|
-
this._localAddress = void 0, this.
|
|
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:
|
|
272
|
-
isIPv6:
|
|
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 };
|
package/net-BPpdNdpy.cjs
ADDED
|
@@ -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-
|
|
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
|
-
|
|
48
|
-
|
|
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-
|
|
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-
|
|
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 {
|
|
2
|
-
import { a as r, i, n as a, o, r as s, t as c } from "./net-
|
|
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,
|
|
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
|
@@ -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 {
|
|
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 {
|
|
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-
|
|
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),
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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 {
|
|
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 };
|