@fkn/lib 0.9.12 → 0.9.14
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/account.cjs +1 -1
- package/account.js +1 -1
- package/{api-VR2xHGZu.d.ts → api-B6FNNKl0.d.ts} +28 -2
- package/api-D5ioM3pa.cjs +3 -0
- package/api-DAQQBty8.js +189 -0
- package/cloud/dgram.cjs +1 -1
- package/cloud/dgram.js +1 -1
- package/cloud/fetch.cjs +1 -1
- package/cloud/fetch.d.ts +1 -1
- package/cloud/fetch.js +1 -1
- package/cloud/fs.cjs +1 -1
- package/cloud/fs.js +1 -1
- package/cloud/net.cjs +1 -1
- package/cloud/net.d.ts +1 -1
- package/cloud/net.js +1 -1
- package/{cloud-BaC8EVXo.cjs → cloud-C28lGQEP.cjs} +1 -1
- package/{cloud-DRzA41UW.d.ts → cloud-xlvU7_rs.d.ts} +2 -2
- package/{cloud-wPGRsj_K.js → cloud-y88zoTpE.js} +4 -4
- package/cloud.cjs +1 -1
- package/cloud.d.ts +3 -3
- package/cloud.js +4 -4
- package/{dgram-DD5jhrGc.js → dgram-BDXvc69t.js} +1 -1
- package/{dgram-DiG-cmkF.cjs → dgram-C1E6TUWN.cjs} +1 -1
- package/dgram.cjs +1 -1
- package/dgram.d.ts +1 -1
- package/dgram.js +1 -1
- package/dns.cjs +1 -1
- package/dns.js +1 -1
- package/{extension-Rz3Wzcir.cjs → extension-B8fd9lvk.cjs} +1 -1
- package/{extension-Lee_MWOu.js → extension-Cts968cO.js} +2 -2
- package/extension.cjs +1 -1
- package/extension.js +1 -1
- package/fs/promises.cjs +1 -1
- package/fs/promises.js +1 -1
- package/{fs-AKjThx6P.cjs → fs-DKseuFE2.cjs} +1 -1
- package/{fs-Bh4mFJ1g.js → fs-MJ2u5qvV.js} +2 -2
- 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 +14 -15
- package/{net-BhNzd0mR.d.ts → net-1AjTrb23.d.ts} +1 -1
- package/{net-YsE5keqz.js → net-CR3V3Q5W.js} +1 -1
- package/{net-I0124yb1.cjs → net-D3A-Z8RL.cjs} +1 -1
- package/net.cjs +1 -1
- package/net.d.ts +1 -1
- package/net.js +1 -1
- package/package.json +1 -1
- package/packages.cjs +1 -1
- package/packages.js +1 -1
- package/{proxy-CAjDHzfq.d.ts → proxy-BihVUSnB.d.ts} +1 -1
- package/{proxy-DztCCJD1.cjs → proxy-BsimoT14.cjs} +1 -1
- package/{proxy-CoBNxGxJ.js → proxy-BthoIRuv.js} +1 -1
- package/{storage-CWYpO7P2.js → storage-DRhPPtAl.js} +1 -1
- package/{storage-BltnSVAn.cjs → storage-Di1ZseFg.cjs} +1 -1
- package/api-D5EEI8Qp.js +0 -148
- package/api-Rot3njqE.cjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./node-fs-BMR2yCEt.cjs"),n=require("./storage-
|
|
1
|
+
const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./node-fs-BMR2yCEt.cjs"),n=require("./storage-Di1ZseFg.cjs"),r=require("./opfs-CXMESVLc.cjs");var i=e.t({adopt:()=>E,adoptable:()=>D,available:()=>c,list:()=>ie,onConflict:()=>le,pending:()=>te,pendingDeletes:()=>ne,pull:()=>ce,readFile:()=>ae,remove:()=>se,replicating:()=>x,writeFile:()=>oe}),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=`fkn:fs:pending`,u=`fkn:fs:pending-delete`,d=`fkn:fs:adopt-declined`,f=!0,p=new Map,m=e=>{try{let t=localStorage.getItem(e);if(!t)return{};let n=JSON.parse(t);return Array.isArray(n)?Object.fromEntries(n.filter(e=>typeof e==`string`).map(e=>[e,null])):n&&typeof n==`object`?n:{}}catch{return{}}},h=(e,t)=>{try{Object.keys(t).length?localStorage.setItem(e,JSON.stringify(t)):localStorage.removeItem(e)}catch{}},g=()=>m(l),_=e=>{let t=g();e in t||(t[e]=p.get(e)??null,h(l,t))},v=e=>{let t=g();e in t&&(delete t[e],h(l,t))},y=()=>m(u),ee=e=>{let t=y();e in t||(t[e]=p.get(e)??null,h(u,t))},b=e=>{let t=y();e in t&&(delete t[e],h(u,t))},te=()=>Object.keys(g()),ne=()=>Object.keys(y()),x=()=>f,S=null,re=null,C=()=>re??=Promise.resolve().then(()=>require("./api-D5ioM3pa.cjs")).then(e=>e.n).then(e=>e.apiPromise),ie=async()=>{he();let e=await s(),[t,i]=await Promise.all([o().then(e=>e?r.n():[]).catch(()=>[]),e?n.i().then(e=>({ok:!0,entries:e})).catch(()=>({ok:!1,entries:[]})):Promise.resolve({ok:!0,entries:[]})]);f=i.ok,i.ok&&(p=new Map(i.entries.map(e=>[e.path,e.updatedAt])));let a=new Map,c=e=>{let t=Date.parse(e.updatedAt??``);return Number.isFinite(t)?t:0},l=e=>{let t=a.get(e.path);(!t||c(e)>=c(t))&&a.set(e.path,e)};for(let e of t)l(e);for(let e of i.entries)l(e);if(i.ok&&e){me(t,i.entries).catch(()=>{});let e=Object.keys(g()).length||Object.keys(y()).length;e&&!S?S=T(!1).catch(()=>{}).finally(()=>{S=null}):e||k({local:t,remote:i.entries}).catch(()=>{})}return[...a.values()]},ae=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},oe=async(e,t,i)=>{let a=t instanceof Blob?t:new Blob([t],i?.contentType?{type:i.contentType}:void 0);if(await o()){if(await r.o(e,a,i),!await s())return;if(!f){_(e);return}n.u(e,a,i).then(()=>v(e)).catch(t=>{_(e),console.warn(`fs: cloud replicate failed, queued for adopt()`,t)});return}if(await s())return n.u(e,a,i);throw Error(`fs: no storage backend available`)},se=async e=>{let t=[];await o()&&t.push(r.a(e).catch(()=>{}));let i=await s();if(i&&t.push(n.s(e).then(()=>b(e)).catch(t=>{ee(e),console.warn(`fs: cloud delete failed, queued for retry`,t)})),!t.length)throw Error(`fs: no storage backend available`);i&&v(e),await Promise.all(t)},ce=async e=>{let t=await n.o(e);return await o()&&await r.o(e,t),t},w=null,le=e=>(w=e,()=>{w===e&&(w=null)}),ue=async e=>(await C()).cloud.fs.promptConflict({path:e.path,local:e.local,cloud:e.cloud}).catch(()=>null),de=async e=>{if(w)try{return await w(e)}catch{return null}return ue(e)},T=async e=>{let t={uploaded:[],kept:[],resolved:[],unresolved:[],deleted:[],failed:[]};if(!await s())throw Error(`fs: this needs a signed-in account`);if(!await o())return t;let[i,a]=await Promise.all([r.n(),n.i()]),c=new Map(a.map(e=>[e.path,e])),l=g();for(let[e,r]of Object.entries(y())){let a=c.get(e);if(!a){b(e);continue}if(i.some(t=>t.path===e)){b(e);continue}if(a.updatedAt!==r){b(e);continue}try{await n.s(e),b(e),t.deleted.push(e)}catch(n){t.failed.push({path:e,error:n instanceof Error?n.message:String(n)})}}for(let a of i){let i=c.get(a.path),o=a.path in l;if(!o&&(i||!e)){i&&t.kept.push(a.path);continue}if(o&&i&&i.updatedAt!==l[a.path]){let e=await de({path:a.path,local:{size:a.size,updatedAt:a.updatedAt},cloud:{size:i.size,updatedAt:i.updatedAt},readLocal:()=>r.i(a.path),readCloud:()=>n.o(a.path)});if(!e){t.unresolved.push(a.path);continue}try{if(e===`cloud`)await r.o(a.path,await n.o(a.path));else{let t=e===`local`?await r.i(a.path):e.merged;await n.u(a.path,t,a.contentType?{contentType:a.contentType}:void 0),e!==`local`&&await r.o(a.path,t)}v(a.path),t.resolved.push({path:a.path,choice:e===`local`||e===`cloud`?e:`merged`})}catch(e){if(e?.code===`FKN_E2E_LOCKED`)throw e;t.failed.push({path:a.path,error:e instanceof Error?e.message:String(e)})}continue}try{let e=await r.i(a.path);await n.u(a.path,e,a.contentType?{contentType:a.contentType}:void 0),v(a.path),t.uploaded.push(a.path)}catch(e){if(_(a.path),e?.code===`FKN_E2E_LOCKED`)throw e;t.failed.push({path:a.path,error:e instanceof Error?e.message:String(e)})}}return t},E=()=>T(!0),D=async()=>{if(!await s()||!await o())return{paths:[],bytes:0};let[e,t]=await Promise.all([r.n(),n.i()]),i=new Set(t.map(e=>e.path)),a=e.filter(e=>!i.has(e.path));return{paths:a.map(e=>e.path),bytes:a.reduce((e,t)=>e+t.size,0)}},fe=()=>new Set(Object.keys(m(d))),pe=e=>{let t=m(d);for(let n of e)t[n]=null;h(d,t)},O=null,k=e=>O||(O=(async()=>{if(!await s())return;let t=e??(await o()?{local:await r.n(),remote:await n.i()}:null);if(!t)return;let i=new Set(t.remote.map(e=>e.path)),a=fe(),c=t.local.filter(e=>!i.has(e.path)&&!a.has(e.path));if(!c.length)return;let l=await C(),u=c.reduce((e,t)=>e+t.size,0);if(!await l.cloud.fs.promptAdopt({files:c.length,bytes:u}).catch(()=>!1)){pe(c.map(e=>e.path));return}await E()})().catch(()=>{}).finally(()=>{O=null}),O),me=async(e,t)=>{let n=new Set(t.map(e=>e.path)),r=e.filter(e=>!n.has(e.path)),i=await C(),a=async()=>{await E().catch(()=>{});let e=await D().catch(()=>({paths:[],bytes:0}));await i.cloud.fs.setAdoptSource({files:e.paths.length,bytes:e.bytes},a).catch(()=>{})};await i.cloud.fs.setAdoptSource({files:r.length,bytes:r.reduce((e,t)=>e+t.size,0)},a)},A=!1,he=()=>{A||typeof window>`u`||(A=!0,Promise.resolve().then(()=>require("./account.cjs")).then(e=>e.onChange(()=>{k().catch(()=>{})})).catch(()=>{}))},ge=e.t({adopt:()=>q,adoptable:()=>J,appendFile:()=>ye,appendFileSync:()=>F,available:()=>M,default:()=>$,exists:()=>Ee,existsSync:()=>I,flush:()=>G,lstatSync:()=>R,mkdir:()=>Se,mkdirSync:()=>B,mount:()=>Oe,onConflict:()=>Q,pending:()=>Y,pendingDeletes:()=>X,promises:()=>De,pull:()=>K,readFile:()=>W,readFileSync:()=>N,readdir:()=>xe,readdirSync:()=>z,remount:()=>ke,rename:()=>Te,renameSync:()=>U,replicating:()=>Z,rm:()=>Ce,rmSync:()=>V,rmdirSync:()=>_e,stat:()=>be,statSync:()=>L,unlink:()=>we,unlinkSync:()=>H,writeFile:()=>ve,writeFileSync:()=>P}),j=t.t(i,{memfs:!0}),{available:M,readFileSync:N,writeFileSync:P,appendFileSync:F,existsSync:I,statSync:L,lstatSync:R,readdirSync:z,mkdirSync:B,rmSync:V,rmdirSync:_e,unlinkSync:H,renameSync:U,readFile:W,writeFile:ve,appendFile:ye,stat:be,readdir:xe,mkdir:Se,rm:Ce,unlink:we,rename:Te,exists:Ee,promises:De,mount:Oe,flush:G,remount:ke}=j,K=ce,q=E,J=D,Y=te,X=ne,Z=x,Q=le,$={...j,pull:K,adopt:q,adoptable:J,pending:Y,pendingDeletes:X,replicating:Z,onConflict:Q};Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return Se}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return K}});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
|
|
2
2
|
import { t } from "./node-fs-DKfokOlh.js";
|
|
3
|
-
import { i as n, n as r, o as i, s as a, u as o } from "./storage-
|
|
3
|
+
import { i as n, n as r, o as i, s as a, u as o } from "./storage-DRhPPtAl.js";
|
|
4
4
|
import { a as s, i as c, n as l, o as u, t as d } from "./opfs-BibrNGF0.js";
|
|
5
5
|
//#region src/lib/fs/hybrid.ts
|
|
6
6
|
var f = /* @__PURE__ */ e({
|
|
@@ -41,7 +41,7 @@ var f = /* @__PURE__ */ e({
|
|
|
41
41
|
}, E = (e) => {
|
|
42
42
|
let t = T();
|
|
43
43
|
e in t && (delete t[e], x(g, t));
|
|
44
|
-
}, D = () => Object.keys(S()), O = () => Object.keys(T()), k = () => v, A = null, re = null, j = () => re ??= import("./api-
|
|
44
|
+
}, D = () => Object.keys(S()), O = () => Object.keys(T()), k = () => v, A = null, re = null, j = () => re ??= import("./api-DAQQBty8.js").then((e) => e.n).then((e) => e.apiPromise), ie = async () => {
|
|
45
45
|
me();
|
|
46
46
|
let e = await m(), [t, r] = await Promise.all([p().then((e) => e ? l() : []).catch(() => []), e ? n().then((e) => ({
|
|
47
47
|
ok: !0,
|
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-DKseuFE2.cjs");exports.adopt=e.t,exports.adoptable=e.n,exports.appendFile=e.r,exports.appendFileSync=e.i,exports.available=e.a,exports.default=e.l,exports.exists=e.o,exports.existsSync=e.s,exports.flush=e.c,exports.lstatSync=e.d,exports.mkdir=e.f,exports.mkdirSync=e.p,exports.mount=e.m,exports.onConflict=e.h,exports.pending=e.g,exports.pendingDeletes=e._,exports.promises=e.v,exports.pull=e.y,exports.readFile=e.b,exports.readFileSync=e.x,exports.readdir=e.S,exports.readdirSync=e.C,exports.remount=e.w,exports.rename=e.T,exports.renameSync=e.E,exports.replicating=e.D,exports.rm=e.O,exports.rmSync=e.k,exports.rmdirSync=e.A,exports.stat=e.j,exports.statSync=e.M,exports.unlink=e.N,exports.unlinkSync=e.P,exports.writeFile=e.F,exports.writeFileSync=e.I;
|
package/fs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as e, C as t, D as n, E as r, F as i, I as a, M as o, N as s, O as c, P as l, S as u, T as d, _ as f, a as p, b as m, c as h, d as g, f as _, g as v, h as y, i as b, j as x, k as S, l as C, m as w, n as T, o as E, p as D, r as O, s as k, t as A, v as j, w as M, x as N, y as P } from "./fs-
|
|
1
|
+
import { A as e, C as t, D as n, E as r, F as i, I as a, M as o, N as s, O as c, P as l, S as u, T as d, _ as f, a as p, b as m, c as h, d as g, f as _, g as v, h as y, i as b, j as x, k as S, l as C, m as w, n as T, o as E, p as D, r as O, s as k, t as A, v as j, w as M, x as N, y as P } from "./fs-MJ2u5qvV.js";
|
|
2
2
|
export { A as adopt, T as adoptable, O as appendFile, b as appendFileSync, p as available, C as default, E as exists, k as existsSync, h as flush, g as lstatSync, _ as mkdir, D as mkdirSync, w as mount, y as onConflict, v as pending, f as pendingDeletes, j as promises, P as pull, m as readFile, N as readFileSync, u as readdir, t as readdirSync, M as remount, d as rename, r as renameSync, n as replicating, c as rm, S as rmSync, e as rmdirSync, x as stat, o as statSync, s as unlink, l as unlinkSync, i as writeFile, a 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-BIInC43l.cjs"),t=require("./net-
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./net-D3A-Z8RL.cjs");let n=require("buffer"),r=require("stream");var i=e.t({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-1AjTrb23.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 { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
|
|
2
|
-
import { n as t, t as n } from "./net-
|
|
2
|
+
import { n as t, t as n } from "./net-CR3V3Q5W.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("./lib-CQqdCndr.cjs"),t=require("./api-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./lib-CQqdCndr.cjs"),t=require("./api-D5ioM3pa.cjs"),n=require("./cloud-C28lGQEP.cjs"),r=require("./dns.cjs"),i=require("./net-D3A-Z8RL.cjs"),a=require("./dgram-C1E6TUWN.cjs"),o=require("./http.cjs"),s=require("./extension-B8fd9lvk.cjs"),c=require("./desktop.cjs"),l=require("./fs-DKseuFE2.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.N())return t(!0);let n,r=setTimeout(()=>i(e.N()),h),i=e=>{clearTimeout(n),clearTimeout(r),o.disconnect(),document.removeEventListener(`readystatechange`,s),t(e)},a=()=>{clearTimeout(n),n=setTimeout(()=>i(e.N()),g)},o=new MutationObserver(()=>{e.N()&&i(!0)}),s=()=>{document.readyState===`complete`&&!e.N()&&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.r(t):n.i(t),y=`https://fkn.app`,b=async(e,n)=>{if(typeof window>`u`)throw Error(`FKN @fkn/lib: relayWorker must be called from the main thread`);let r=await t.i;if(!r)throw Error(`FKN @fkn/lib: relayWorker found no FKN transport in this realm`);(0,m.relay)(r,e,{key:`fkn-api`,...r.emit instanceof MessagePort?{}:{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),S=async()=>typeof window>`u`?null:(await t.t).relay.prompt().catch(()=>null);exports.ATTACH_FRAME_EVENT_KEY=e.n,exports.FORGEABLE_HEADERS=e.O,exports.LOCATOR_DENIED=e.h,exports.LOCATOR_ERROR=e.u,exports.LOCATOR_UNSUPPORTED=e.m,Object.defineProperty(exports,"account",{enumerable:!0,get:function(){return f.t}}),exports.assertAttachableFrameUrl=e.s,exports.assertFetchableUrl=e.x,exports.assertForgeableHeaders=e.k,exports.assertLockdownApplicable=e.c,exports.assertOneCookieIdentity=e.A,exports.attachFrame=v,exports.attachFramePermission=e.i,exports.box=e.L,Object.defineProperty(exports,"cloud",{enumerable:!0,get:function(){return n.n}}),exports.connect=x,exports.connectButtonUrl=p.t,exports.cookies=e.y,exports.createFrame=e.a,exports.createVideoElementHandle=e.R,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.C,exports.fetchLocalPermission=e.w,exports.fetchPermission=e.T,Object.defineProperty(exports,"fs",{enumerable:!0,get:function(){return l.u}}),exports.gotoPermission=e.o,exports.handleRevivableModules=e.I,exports.hasForgedCookie=e.j,Object.defineProperty(exports,"http",{enumerable:!0,get:function(){return o.t}}),exports.isBlockedFetchUrl=e.E,exports.isBlockedFrameUrl=e.l,exports.isExtensionExposed=e.N,exports.isLocalNetworkUrl=e.D,exports.isLocatorDenied=e.d,exports.isLocatorUnsupported=e.p,exports.isTerminalError=e.f,exports.isType=e.z,exports.modifyRequestHeadersPermission=e.g,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.t,exports.promptInstall=s.i,exports.promptRelay=S,exports.readCookiePermission=e.b,exports.relayWorker=b,exports.removeRequestHeaderRule=e._,exports.revive=e.B,exports.setMissingExtensionHandler=e.P,exports.setRequestHeaderRule=e.v,exports.type=e.V,exports.waitForExtensionExposure=e.F;
|
package/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as account_d_exports } from "./account.js";
|
|
2
2
|
import { S as packages_d_exports } from "./packages-vX-1yfRK.js";
|
|
3
3
|
import { A as LOCATOR_DENIED, B as SelectorPart, C as RemoteVideoElement, D as isType, E as createVideoElementHandle, F as isTerminalError, G as setRequestHeaderRule, H as RequestHeaderRule, I as Executor, J as cookies, K as CookieDetails, L as Gate, M as LOCATOR_UNSUPPORTED, N as isLocatorDenied, O as revive, P as isLocatorUnsupported, Q as assertFetchableUrl, R as GateTools, S as BoxedVideoElement, T as box, U as modifyRequestHeadersPermission, V as HeaderOperation, W as removeRequestHeaderRule, X as FetchInit, Y as readCookiePermission, Z as ProxyFetchRequest, _ as gotoPermission, a as PermissionGrant, at as FORGEABLE_HEADERS, b as isBlockedFrameUrl, c as ATTACH_FRAME_EVENT_KEY, ct as hasForgedCookie, d as Frame, et as fetchCredentialedPermission, f as FrameBackend, g as createFrame, h as attachFramePermission, i as waitForExtensionExposure, it as isLocalNetworkUrl, j as LOCATOR_ERROR, k as type, m as Locator, n as isExtensionExposed, nt as fetchPermission, o as PermissionRequest, ot as assertForgeableHeaders, p as GotoOptions, q as SiteCookie, r as setMissingExtensionHandler, rt as isBlockedFetchUrl, s as permissions, st as assertOneCookieIdentity, tt as fetchLocalPermission, u as AttachFrameOptions, v as assertAttachableFrameUrl, w as VideoElementState, x as handleRevivableModules, y as assertLockdownApplicable, z as OperationRequest } from "./index-DQfP-Uhy.js";
|
|
4
|
-
import { n as cloud_d_exports } from "./cloud-
|
|
4
|
+
import { n as cloud_d_exports } from "./cloud-xlvU7_rs.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-1AjTrb23.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";
|
|
@@ -20,7 +20,7 @@ declare const relayWorker: (worker: Worker, options?: {
|
|
|
20
20
|
unregisterSignal?: AbortSignal;
|
|
21
21
|
originA?: string;
|
|
22
22
|
originB?: string;
|
|
23
|
-
}) => void
|
|
23
|
+
}) => Promise<void>;
|
|
24
24
|
//#endregion
|
|
25
25
|
//#region src/lib/connect.d.ts
|
|
26
26
|
declare const connect: () => Promise<boolean>;
|
package/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { A as e, B as t, C as n, D as r, E as i, F as a, I as o, L as s, N as c, O as ee, P as l, R as u, T as d, V as f, _ as p, a as m, b as h, c as g, d as _, f as v, g as y, h as b, i as x, j as S, k as C, l as w, m as T, n as E, o as D, p as O, r as k, s as A, t as j, u as M, v as N, w as P, x as F, y as I, z as te } from "./lib-BcEnB4iV.js";
|
|
2
|
-
import { i as L, t as R } from "./api-
|
|
3
|
-
import { a as z, i as B, n as V } from "./cloud-
|
|
2
|
+
import { i as L, t as R } from "./api-DAQQBty8.js";
|
|
3
|
+
import { a as z, i as B, n as V } from "./cloud-y88zoTpE.js";
|
|
4
4
|
import { t as H } from "./dns.js";
|
|
5
|
-
import { s as U } from "./net-
|
|
6
|
-
import { i as W } from "./dgram-
|
|
5
|
+
import { s as U } from "./net-CR3V3Q5W.js";
|
|
6
|
+
import { i as W } from "./dgram-BDXvc69t.js";
|
|
7
7
|
import { t as G } from "./http.js";
|
|
8
|
-
import { i as K, n as q, r as J, t as Y } from "./extension-
|
|
8
|
+
import { i as K, n as q, r as J, t as Y } from "./extension-Cts968cO.js";
|
|
9
9
|
import { t as X } from "./desktop.js";
|
|
10
|
-
import { u as Z } from "./fs-
|
|
10
|
+
import { u as Z } from "./fs-MJ2u5qvV.js";
|
|
11
11
|
import { t as Q } from "./opfs.js";
|
|
12
12
|
import { t as ne } from "./packages.js";
|
|
13
13
|
import { t as re } from "./account.js";
|
|
@@ -29,17 +29,16 @@ var oe = 1e4, $ = 150, se = () => new Promise((e) => {
|
|
|
29
29
|
attributes: !0,
|
|
30
30
|
attributeFilter: ["data-fkn-extension"]
|
|
31
31
|
}), document.addEventListener("readystatechange", o), document.readyState === "complete" && i();
|
|
32
|
-
}), ce = async (e) => J() || e.lockdown || !z() || await se() ? k(e) : B(e), le = "https://fkn.app", ue = (e, t) => {
|
|
32
|
+
}), ce = async (e) => J() || e.lockdown || !z() || await se() ? k(e) : B(e), le = "https://fkn.app", ue = async (e, t) => {
|
|
33
33
|
if (typeof window > "u") throw Error("FKN @fkn/lib: relayWorker must be called from the main thread");
|
|
34
|
-
let n = L
|
|
35
|
-
if (!n
|
|
36
|
-
ae({
|
|
37
|
-
receive: window,
|
|
38
|
-
emit: n.contentWindow
|
|
39
|
-
}, e, {
|
|
34
|
+
let n = await L;
|
|
35
|
+
if (!n) throw Error("FKN @fkn/lib: relayWorker found no FKN transport in this realm");
|
|
36
|
+
ae(n, e, {
|
|
40
37
|
key: "fkn-api",
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
...n.emit instanceof MessagePort ? {} : {
|
|
39
|
+
originA: t?.originA ?? le,
|
|
40
|
+
originB: t?.originB ?? "*"
|
|
41
|
+
},
|
|
43
42
|
unregisterSignal: t?.unregisterSignal
|
|
44
43
|
});
|
|
45
44
|
}, de = async () => typeof window > "u" ? !1 : (await R).connect.prompt(location.origin).catch(() => !1), fe = async () => typeof window > "u" ? null : (await R).relay.prompt().catch(() => null);
|
|
@@ -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-B6FNNKl0.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";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
|
|
2
|
-
import { t } from "./api-
|
|
2
|
+
import { t } from "./api-DAQQBty8.js";
|
|
3
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";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-
|
|
1
|
+
const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-D5ioM3pa.cjs"),n=require("./utils-QfNXtEhb.cjs");let r=require("stream"),i=require("events");var a=e.t({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}});
|
package/net.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./utils-QfNXtEhb.cjs"),t=require("./net-
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./utils-QfNXtEhb.cjs"),t=require("./net-D3A-Z8RL.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-1AjTrb23.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
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-
|
|
2
|
+
import { a as r, i, n as a, o, r as s, t as c } from "./net-CR3V3Q5W.js";
|
|
3
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
package/packages.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-D5ioM3pa.cjs");let n=require("osra");var r=e.t({attach:()=>A,connect:()=>w,hide:()=>C,install:()=>f,isVisible:()=>W,list:()=>p,mount:()=>k,onConnect:()=>U,onVisibilityChange:()=>G,pick:()=>d,search:()=>u,show:()=>S,uninstall:()=>m}),i=`fkn-packages-connection`,a=3e4,o=(e,t)=>Object.assign(Error(t),{code:e}),s=async()=>{if(!t.r)throw o(`unavailable`,`packages: no FKN transport in this realm - use relayWorker to bridge workers`);return t.t},c=(e,t,r)=>(0,n.expose)(e??{},{transport:t,key:i,unregisterSignal:r}),l=async(e,t,n={})=>{let{signal:r,closed:i}=n;if(r?.aborted)throw o(`unavailable`,`packages.connect: aborted before connecting`);let s=new AbortController;r&&r.addEventListener(`abort`,()=>s.abort(r.reason),{once:!0});let l=new AbortController,u=new Promise((e,n)=>{let s=setTimeout(()=>n(o(`timeout`,`packages.connect: the package did not complete the connection`)),a);l.signal.addEventListener(`abort`,()=>clearTimeout(s),{once:!0}),t.addEventListener(`message`,e=>{if(e.data?.type===`fkn-packages-nack`){let t=e.data.message;n(o(`unavailable`,typeof t==`string`&&t?t:`packages.connect: the package refused the connection`))}},{signal:l.signal}),t.start(),r&&r.addEventListener(`abort`,()=>n(o(`unavailable`,`packages.connect: aborted before connecting`)),{once:!0,signal:l.signal}),i?.then(()=>n(o(`unavailable`,`packages.connect: the package closed before connecting`)))});try{return await Promise.race([c(e,t,s.signal),u])}catch(e){s.abort(e);try{t.close()}catch{}throw e}finally{l.abort()}},u=async e=>{let t=await(await s()).packages.search(e);if(`error`in t)throw o(t.error,t.message);return t.results},d=async(e,t)=>{let n=await(await s()).packages.pick(e,t);if(`error`in n)throw o(n.error,n.message);return`declined`in n?[]:n.results},f=async(e,t)=>{let n=await(await s()).packages.install(e,t);if(`error`in n)throw o(n.error,n.message);return`declined`in n?null:n.installed},p=async()=>(await(await s()).packages.list()).results,m=async e=>{let t=await(await s()).packages.uninstall(e);if(`error`in t)throw o(t.error,t.message)},h=({x:e,y:t,width:n,height:r})=>({x:Math.round(e),y:Math.round(t),width:Math.round(n),height:Math.round(r)}),g=(e,t)=>{let n=Math.max(e.x,t.x),r=Math.max(e.y,t.y);return{x:n,y:r,width:Math.max(0,Math.min(e.x+e.width,t.x+t.width)-n),height:Math.max(0,Math.min(e.y+e.height,t.y+t.height)-r)}},_=(e,t)=>{let n=t;for(let t=e.parentElement;t;t=t.parentElement){let e=getComputedStyle(t);if(!(e.overflowX===`visible`&&e.overflowY===`visible`)&&(n=g(n,h(t.getBoundingClientRect())),n.width===0||n.height===0))break}return n},v=e=>{let t=getComputedStyle(e),n=[t.borderTopLeftRadius,t.borderTopRightRadius,t.borderBottomRightRadius,t.borderBottomLeftRadius];if(n.some(e=>e.includes(`%`)||e.includes(` `)))return;let r=n.map(e=>{let t=Number.parseFloat(e);return Number.isFinite(t)&&t>0?t:0});return r.some(e=>e>0)?r:void 0},y=(e,t)=>{if(!e)return!1;let n=(e,t)=>e===t||!!e&&!!t&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height;return n(e.rect,t.rect)&&n(e.clip,t.clip)&&((e,t)=>e===t||!!e&&!!t&&e.every((e,n)=>e===t[n]))(e.radius,t.radius)},b=new Map,x=async(e,t)=>{let n=b.get(e);if(n){for(let e of n)t&&e.element!==t||(e.stop(),n.delete(e));if(n.size>0)return;b.delete(e)}let r=await(await s()).packages.hide(e);if(`error`in r)throw o(r.error,r.message)},S=async(e,t)=>{let{element:n,rect:r}=t;if(!n&&!r)throw o(`invalid`,`packages.show: pass an element or a rect`);let i=(await s()).packages,a=()=>{if(!n)return{rect:h(r)};let e=h(n.getBoundingClientRect());return{rect:e,clip:_(n,e),radius:v(n)}},c=!0,l,u=0,d=async t=>{l=t;let n=await i.show(e,t);if(`error`in n)throw c=!1,o(n.error,n.message)};await d(a());let f=()=>{if(!c)return;let e=a();y(l,e)||d(e).catch(()=>{}),u=requestAnimationFrame(f)};n&&(u=requestAnimationFrame(f));let p={element:n,stop:()=>{c=!1,cancelAnimationFrame(u)}},m=b.get(e)??new Set;return m.add(p),b.set(e,m),{hide:()=>{x(e,n).catch(()=>{})},refresh:()=>{if(!c)return;let e=a();y(l,e)||d(e).catch(()=>{})}}},C=async(e,t={})=>x(e,t.element),w=(async(e,t={})=>{let n=await(await s()).packages.connect(e,{protocol:t.protocol});if(`error`in n)throw o(n.error,n.message);let{port:r,closed:i}=n;if(t.raw)return{closed:i,port:r};let a=await l(t.payload,r,{signal:t.signal,closed:i});return t.signal&&t.signal.addEventListener(`abort`,()=>{try{r.postMessage({type:`fkn-packages-disconnect`})}catch{}},{once:!0}),{remote:a,closed:i,port:r}}),T=[`allow-scripts`,`allow-same-origin`],E=e=>{let t=e.getAttribute(`sandbox`);if(t!==null){let e=new Set(t.toLowerCase().split(/\s+/).filter(Boolean)),n=T.filter(t=>!e.has(t));if(n.length)throw o(`invalid`,`packages.mount: the iframe's sandbox attribute must include ${n.join(` and `)}, or the package cannot start`)}if(globalThis.crossOriginIsolated&&!new Set((e.getAttribute(`allow`)??``).toLowerCase().split(`;`).map(e=>e.trim().split(/\s+/)[0]).filter(Boolean)).has(`cross-origin-isolated`))throw o(`invalid`,`packages.mount: this page is cross-origin isolated, so the iframe's allow attribute must include 'cross-origin-isolated' to hand that down to the package`)},D=3e4,O=(e,t)=>new Promise((n,r)=>{let i=e=>{clearTimeout(s),window.removeEventListener(`message`,a),e?r(e):n()},a=n=>{if(n.source!==e.contentWindow||n.origin!==t)return;let r=n.data;if(r?.type===`fkn-packages-ready`)return i();r?.type===`fkn-packages-failed`&&i(o(`unavailable`,typeof r.message==`string`&&r.message?r.message:`packages.mount: the package failed to boot`))},s=setTimeout(()=>i(o(`timeout`,`packages.mount: the package did not register a connection handler`)),D);window.addEventListener(`message`,a)}),k=async(e,t)=>{let{iframe:n}=t;if(!(n instanceof HTMLIFrameElement))throw o(`invalid`,`packages.mount: pass the iframe to load the package into`);if(!n.isConnected)throw o(`invalid`,`packages.mount: the iframe must be in the document before mounting into it`);E(n);let r=await(await s()).packages.frame(e);if(`error`in r)throw o(r.error,r.message);n.src=r.url;let i={done:!1},a=()=>{},c=new Promise(e=>{a=e}),u=()=>{if(!i.done){i.done=!0;try{n.contentWindow?.postMessage({type:`fkn-packages-close`},r.origin)}catch{}n.src=`about:blank`,a()}};try{await O(n,r.origin)}catch(e){throw u(),e}let d=new MessageChannel,f=n.contentWindow;if(!f)throw u(),o(`unavailable`,`packages.mount: the frame was detached before it could connect`);f.postMessage({type:`fkn-packages-port`,from:r.from,protocol:t.protocol,uri:r.uri,name:r.name,version:r.version},r.origin,[d.port2]);try{f.postMessage({type:`fkn-packages-visibility`,visible:!0},r.origin)}catch{}return t.raw?{closed:c,port:d.port1,frame:n,unmount:u}:{remote:await l(t.payload,d.port1,{signal:t.signal,closed:c}),closed:c,port:d.port1,frame:n,unmount:u}},A=(e,t,n)=>l(t,e,{signal:n?.signal}),j=null,M=!1,N=new Set,P=[],F=new Map,I=!1,L=!1,R=e=>{let t=F.get(e);t&&(F.delete(e),t())},z=(e,t)=>{try{e.postMessage({type:`fkn-packages-nack`,message:t})}catch{}try{e.close()}catch{}},B=async(e,t)=>{let{port:n,...r}=e;e.port.addEventListener(`message`,t=>{t.data?.type===`fkn-packages-disconnect`&&R(e.port)});let i;try{i=await t.createPayload(r)}catch(t){throw z(e.port,t instanceof Error?t.message:`the package failed to produce a connection`),t}let a=new Promise(t=>F.set(e.port,t)),o=await c(i,e.port);t.handler?.({...r,remote:o,closed:a,port:e.port})},V=()=>{I||typeof window>`u`||window.parent===window||(I=!0,window.addEventListener(`message`,e=>{if(e.source!==window.parent)return;let t=e.data;if(t?.type===`fkn-packages-port`){let n=e.ports[0];if(!n)return;let r={port:n,from:typeof t.from==`string`?t.from:``,protocol:typeof t.protocol==`string`?t.protocol:null,uri:typeof t.uri==`string`?t.uri:``,name:typeof t.name==`string`?t.name:``,version:typeof t.version==`string`?t.version:``};j?B(r,j).catch(e=>console.warn(`packages.onConnect:`,e)):P.push(r)}if(t?.type===`fkn-packages-close`)for(let e of[...F.keys()])R(e);if(t?.type===`fkn-packages-visibility`){M=t.visible===!0;for(let e of N)try{e(M)}catch{}}}))},H=()=>{L||typeof window>`u`||window.parent===window||(L=!0,window.parent.postMessage({type:`fkn-packages-ready`},`*`))},U=(e,t)=>{if(typeof window>`u`)return{unsubscribe:()=>{}};V();let n={createPayload:e,handler:t};for(j=n,H();P.length&&j===n;)B(P.shift(),n).catch(e=>console.warn(`packages.onConnect:`,e));return{unsubscribe:()=>{j===n&&(j=null)}}},W=()=>M,G=e=>{if(typeof window>`u`)return{unsubscribe:()=>{}};V(),N.add(e);try{e(M)}catch{}return{unsubscribe:()=>{N.delete(e)}}};exports.attach=A,exports.connect=w,exports.hide=C,exports.install=f,exports.isVisible=W,exports.list=p,exports.mount=k,exports.onConnect=U,exports.onVisibilityChange=G,exports.pick=d,exports.search=u,exports.show=S,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return r}}),exports.uninstall=m;
|
package/packages.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./api-
|
|
1
|
+
const e=require("./api-D5ioM3pa.cjs");var t=[`fkn.app`,`fkn.dev`],n=e=>{let n=typeof e==`string`?e:e instanceof URL?e.href:e.url,r;try{r=new URL(n)}catch{return}let i=r.hostname;if(t.some(e=>i===e||i.endsWith(`.${e}`)))throw Error(`fetch refuses FKN platform domains (${i})`)},r=async e=>{if(e!=null)return typeof e==`string`||e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e:new Request(`https://body.invalid/`,{method:`POST`,body:e,duplex:`half`}).arrayBuffer()},i=async e=>{if(e.method===`GET`||e.method===`HEAD`)return;let t=await e.clone().arrayBuffer();return t.byteLength?t:void 0},a=async(t,a)=>{if(n(t),typeof t==`object`&&t&&!(t instanceof URL)&&typeof t.url==`string`){let n=t,o={};n.headers.forEach((e,t)=>{o[t]=e});let s=await r(a?.body===void 0?await i(n):a.body);return e.t.then(e=>e.cloud.fetch(n.url,{...a,method:a?.method??n.method,headers:a?.headers??o,body:s}))}let o=t instanceof URL?t.href:t,s=await r(a?.body);return e.t.then(e=>e.cloud.fetch(o,a?.body===void 0?a:{...a,body:s}))};Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-
|
|
1
|
+
const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-D5ioM3pa.cjs");var n=e.t({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}});
|
package/api-D5EEI8Qp.js
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
|
|
2
|
-
import { expose as t } from "osra";
|
|
3
|
-
//#region src/lib/overlay.ts
|
|
4
|
-
var n = 32, r = typeof CSS < "u" && CSS.supports("clip-path", "path('M0 0H1V1H0Z')"), i = (e) => {
|
|
5
|
-
let t = e.style;
|
|
6
|
-
t.setProperty("display", "block", "important"), t.setProperty("position", "fixed", "important"), t.setProperty("top", "0", "important"), t.setProperty("left", "0", "important"), t.setProperty("width", "100%", "important"), t.setProperty("height", "100%", "important"), t.setProperty("border", "none", "important"), t.setProperty("clip-path", "inset(100%)", "important"), t.setProperty("background", "transparent"), t.setProperty("color-scheme", "normal"), t.setProperty("z-index", "2147483647"), e.setAttribute("title", "FKN");
|
|
7
|
-
}, a = ({ x: e, y: t, width: n, height: r, radius: i }) => {
|
|
8
|
-
if (!i) return `M${e} ${t}h${n}v${r}h${-n}Z`;
|
|
9
|
-
let a = Math.min(n, r) / 2, [o, s, c, l] = i.map((e) => Math.max(0, Math.min(e, a)));
|
|
10
|
-
return `M${e + o} ${t}h${n - o - s}a${s} ${s} 0 0 1 ${s} ${s}v${r - s - c}a${c} ${c} 0 0 1 ${-c} ${c}h${-(n - c - l)}a${l} ${l} 0 0 1 ${-l} ${-l}v${-(r - l - o)}a${o} ${o} 0 0 1 ${o} ${-o}Z`;
|
|
11
|
-
}, o = (e) => {
|
|
12
|
-
if (e.length < 2) return null;
|
|
13
|
-
let t = Math.min(...e.map((e) => e.x)), n = Math.min(...e.map((e) => e.y));
|
|
14
|
-
return {
|
|
15
|
-
x: t,
|
|
16
|
-
y: n,
|
|
17
|
-
width: Math.max(...e.map((e) => e.x + e.width)) - t,
|
|
18
|
-
height: Math.max(...e.map((e) => e.y + e.height)) - n
|
|
19
|
-
};
|
|
20
|
-
}, s = (e, t, n) => t >= e.x && t < e.x + e.width && n >= e.y && n < e.y + e.height, c = 16, l = (e, t, n) => t === 1 ? e * c : t === 2 ? e * n : e, u = (e, t, n) => {
|
|
21
|
-
let r = getComputedStyle(e);
|
|
22
|
-
return n !== 0 && /auto|scroll/.test(r.overflowY) && e.scrollHeight > e.clientHeight ? !0 : t !== 0 && /auto|scroll/.test(r.overflowX) && e.scrollWidth > e.clientWidth;
|
|
23
|
-
}, d = (e, t, n) => {
|
|
24
|
-
for (let r = e; r; r = r.parentElement) if (u(r, t, n)) return r;
|
|
25
|
-
return document.scrollingElement;
|
|
26
|
-
}, f = null, p = null, m = (e) => {
|
|
27
|
-
if (!p || !f || !s(p, e.clientX, e.clientY)) return;
|
|
28
|
-
let t = document.elementFromPoint(e.clientX, e.clientY);
|
|
29
|
-
if (!t || t === f) return;
|
|
30
|
-
let n = l(e.deltaX, e.deltaMode, window.innerWidth), r = l(e.deltaY, e.deltaMode, window.innerHeight), i = d(t, n, r);
|
|
31
|
-
i && (i.scrollBy({
|
|
32
|
-
left: n,
|
|
33
|
-
top: r,
|
|
34
|
-
behavior: "instant"
|
|
35
|
-
}), e.cancelable && e.preventDefault());
|
|
36
|
-
}, h = (e) => {
|
|
37
|
-
let t = p !== null;
|
|
38
|
-
p = e, t !== (e !== null) && (e ? window.addEventListener("wheel", m, {
|
|
39
|
-
capture: !0,
|
|
40
|
-
passive: !1
|
|
41
|
-
}) : window.removeEventListener("wheel", m, { capture: !0 }));
|
|
42
|
-
}, g = (e, { modal: t, rects: n }) => {
|
|
43
|
-
if (!r) {
|
|
44
|
-
let r = t || n.length > 0;
|
|
45
|
-
e.style.setProperty("pointer-events", r ? "auto" : "none", "important"), e.style.setProperty("visibility", r ? "visible" : "hidden", "important");
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
let i = t ? "none" : n.length === 0 ? "inset(100%)" : `path('${n.map(a).join("")}')`, s = i === "none" || CSS.supports("clip-path", i) ? i : "inset(100%)";
|
|
49
|
-
e.style.setProperty("clip-path", s, "important"), h(t || s !== i ? null : o(n));
|
|
50
|
-
}, _ = (e) => {
|
|
51
|
-
if (!(!Array.isArray(e) || e.length !== 4) && e.every((e) => typeof e == "number" && Number.isFinite(e) && e >= 0)) return e.some((e) => e > 0) ? e : void 0;
|
|
52
|
-
}, v = (e) => {
|
|
53
|
-
if (typeof e != "object" || !e) return null;
|
|
54
|
-
let { x: t, y: n, width: r, height: i } = e;
|
|
55
|
-
if (![
|
|
56
|
-
t,
|
|
57
|
-
n,
|
|
58
|
-
r,
|
|
59
|
-
i
|
|
60
|
-
].every((e) => typeof e == "number" && Number.isFinite(e))) return null;
|
|
61
|
-
let a = window.innerWidth, o = window.innerHeight, s = Math.max(0, Math.min(Math.round(t), a)), c = Math.max(0, Math.min(Math.round(n), o)), l = Math.max(s, Math.min(Math.round(t + r), a)), u = Math.max(c, Math.min(Math.round(n + i), o)), d = _(e.radius);
|
|
62
|
-
return {
|
|
63
|
-
x: s,
|
|
64
|
-
y: c,
|
|
65
|
-
width: l - s,
|
|
66
|
-
height: u - c,
|
|
67
|
-
...d ? { radius: d } : {}
|
|
68
|
-
};
|
|
69
|
-
}, y = (e) => {
|
|
70
|
-
if (typeof e != "object" || !e) return null;
|
|
71
|
-
let t = e, r = (Array.isArray(t.rects) ? t.rects.slice(0, n) : []).map(v).filter((e) => e !== null && e.width > 0 && e.height > 0);
|
|
72
|
-
return {
|
|
73
|
-
modal: t.modal === !0,
|
|
74
|
-
rects: r
|
|
75
|
-
};
|
|
76
|
-
}, b = () => f !== null, x = (e) => {
|
|
77
|
-
i(e), g(e, {
|
|
78
|
-
modal: !1,
|
|
79
|
-
rects: []
|
|
80
|
-
}), f = e;
|
|
81
|
-
}, S = (e) => {
|
|
82
|
-
if (!f) return;
|
|
83
|
-
let t = y(e);
|
|
84
|
-
t && g(f, t);
|
|
85
|
-
}, C = "https://fkn.app", w = typeof globalThis < "u" && globalThis.document ? globalThis.document : void 0, T = typeof globalThis < "u" && globalThis.crossOriginIsolated === !0, E = `${C}/api${T ? "?coi=1" : ""}`, D = "fkn-api-port", O = "fkn-api-port-ack", k = 2e3, A = () => {
|
|
86
|
-
if (!w || typeof window > "u" || window.parent === window) return Promise.resolve(void 0);
|
|
87
|
-
let e;
|
|
88
|
-
try {
|
|
89
|
-
e = window.parent;
|
|
90
|
-
} catch {
|
|
91
|
-
return Promise.resolve(void 0);
|
|
92
|
-
}
|
|
93
|
-
let t = new MessageChannel();
|
|
94
|
-
return new Promise((n) => {
|
|
95
|
-
let r = (e) => {
|
|
96
|
-
if (clearTimeout(a), t.port1.removeEventListener("message", i), !e) try {
|
|
97
|
-
t.port1.close();
|
|
98
|
-
} catch {}
|
|
99
|
-
n(e);
|
|
100
|
-
}, i = (e) => {
|
|
101
|
-
e.data?.type === O && r(t.port1);
|
|
102
|
-
}, a = setTimeout(() => r(void 0), k);
|
|
103
|
-
t.port1.addEventListener("message", i), t.port1.start();
|
|
104
|
-
try {
|
|
105
|
-
e.postMessage({ type: D }, C, [t.port2]);
|
|
106
|
-
} catch {
|
|
107
|
-
r(void 0);
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
}, j, M = () => {
|
|
111
|
-
if (j || !w) return j;
|
|
112
|
-
let e = w.querySelector(`iframe[src="${E}"]`);
|
|
113
|
-
if (e) j = e;
|
|
114
|
-
else {
|
|
115
|
-
let e = w.createElement("iframe");
|
|
116
|
-
T && e.setAttribute("allow", "cross-origin-isolated"), e.src = E, w.body.appendChild(e), j = e;
|
|
117
|
-
}
|
|
118
|
-
return x(j), j;
|
|
119
|
-
}, N = (async () => {
|
|
120
|
-
if (!w) return;
|
|
121
|
-
let e = await A();
|
|
122
|
-
if (e) return {
|
|
123
|
-
receive: e,
|
|
124
|
-
emit: e
|
|
125
|
-
};
|
|
126
|
-
let t = M()?.contentWindow;
|
|
127
|
-
return t ? {
|
|
128
|
-
receive: window,
|
|
129
|
-
emit: t
|
|
130
|
-
} : void 0;
|
|
131
|
-
})(), P = () => j, F = /* @__PURE__ */ e({
|
|
132
|
-
apiPromise: () => L,
|
|
133
|
-
hasTransport: () => I
|
|
134
|
-
}), I = typeof window < "u" || typeof self < "u", L = (async () => {
|
|
135
|
-
if (typeof window < "u") return N;
|
|
136
|
-
if (typeof self < "u") return {
|
|
137
|
-
receive: self,
|
|
138
|
-
emit: self
|
|
139
|
-
};
|
|
140
|
-
})().then((e) => e ? t({}, {
|
|
141
|
-
key: "fkn-api",
|
|
142
|
-
transport: e
|
|
143
|
-
}) : new Promise(() => {}));
|
|
144
|
-
L.then((e) => {
|
|
145
|
-
b() && e.overlay.setHost(S);
|
|
146
|
-
}, () => {});
|
|
147
|
-
//#endregion
|
|
148
|
-
export { P as i, F as n, I as r, L as t };
|
package/api-Rot3njqE.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-BIInC43l.cjs");let t=require("osra");var n=32,r=typeof CSS<`u`&&CSS.supports(`clip-path`,`path('M0 0H1V1H0Z')`),i=e=>{let t=e.style;t.setProperty(`display`,`block`,`important`),t.setProperty(`position`,`fixed`,`important`),t.setProperty(`top`,`0`,`important`),t.setProperty(`left`,`0`,`important`),t.setProperty(`width`,`100%`,`important`),t.setProperty(`height`,`100%`,`important`),t.setProperty(`border`,`none`,`important`),t.setProperty(`clip-path`,`inset(100%)`,`important`),t.setProperty(`background`,`transparent`),t.setProperty(`color-scheme`,`normal`),t.setProperty(`z-index`,`2147483647`),e.setAttribute(`title`,`FKN`)},a=({x:e,y:t,width:n,height:r,radius:i})=>{if(!i)return`M${e} ${t}h${n}v${r}h${-n}Z`;let a=Math.min(n,r)/2,[o,s,c,l]=i.map(e=>Math.max(0,Math.min(e,a)));return`M${e+o} ${t}h${n-o-s}a${s} ${s} 0 0 1 ${s} ${s}v${r-s-c}a${c} ${c} 0 0 1 ${-c} ${c}h${-(n-c-l)}a${l} ${l} 0 0 1 ${-l} ${-l}v${-(r-l-o)}a${o} ${o} 0 0 1 ${o} ${-o}Z`},o=e=>{if(e.length<2)return null;let t=Math.min(...e.map(e=>e.x)),n=Math.min(...e.map(e=>e.y));return{x:t,y:n,width:Math.max(...e.map(e=>e.x+e.width))-t,height:Math.max(...e.map(e=>e.y+e.height))-n}},s=(e,t,n)=>t>=e.x&&t<e.x+e.width&&n>=e.y&&n<e.y+e.height,c=16,l=(e,t,n)=>t===1?e*c:t===2?e*n:e,u=(e,t,n)=>{let r=getComputedStyle(e);return n!==0&&/auto|scroll/.test(r.overflowY)&&e.scrollHeight>e.clientHeight?!0:t!==0&&/auto|scroll/.test(r.overflowX)&&e.scrollWidth>e.clientWidth},d=(e,t,n)=>{for(let r=e;r;r=r.parentElement)if(u(r,t,n))return r;return document.scrollingElement},f=null,p=null,m=e=>{if(!p||!f||!s(p,e.clientX,e.clientY))return;let t=document.elementFromPoint(e.clientX,e.clientY);if(!t||t===f)return;let n=l(e.deltaX,e.deltaMode,window.innerWidth),r=l(e.deltaY,e.deltaMode,window.innerHeight),i=d(t,n,r);i&&(i.scrollBy({left:n,top:r,behavior:`instant`}),e.cancelable&&e.preventDefault())},h=e=>{let t=p!==null;p=e,t!==(e!==null)&&(e?window.addEventListener(`wheel`,m,{capture:!0,passive:!1}):window.removeEventListener(`wheel`,m,{capture:!0}))},g=(e,{modal:t,rects:n})=>{if(!r){let r=t||n.length>0;e.style.setProperty(`pointer-events`,r?`auto`:`none`,`important`),e.style.setProperty(`visibility`,r?`visible`:`hidden`,`important`);return}let i=t?`none`:n.length===0?`inset(100%)`:`path('${n.map(a).join(``)}')`,s=i===`none`||CSS.supports(`clip-path`,i)?i:`inset(100%)`;e.style.setProperty(`clip-path`,s,`important`),h(t||s!==i?null:o(n))},_=e=>{if(!(!Array.isArray(e)||e.length!==4)&&e.every(e=>typeof e==`number`&&Number.isFinite(e)&&e>=0))return e.some(e=>e>0)?e:void 0},v=e=>{if(typeof e!=`object`||!e)return null;let{x:t,y:n,width:r,height:i}=e;if(![t,n,r,i].every(e=>typeof e==`number`&&Number.isFinite(e)))return null;let a=window.innerWidth,o=window.innerHeight,s=Math.max(0,Math.min(Math.round(t),a)),c=Math.max(0,Math.min(Math.round(n),o)),l=Math.max(s,Math.min(Math.round(t+r),a)),u=Math.max(c,Math.min(Math.round(n+i),o)),d=_(e.radius);return{x:s,y:c,width:l-s,height:u-c,...d?{radius:d}:{}}},y=e=>{if(typeof e!=`object`||!e)return null;let t=e,r=(Array.isArray(t.rects)?t.rects.slice(0,n):[]).map(v).filter(e=>e!==null&&e.width>0&&e.height>0);return{modal:t.modal===!0,rects:r}},b=()=>f!==null,x=e=>{i(e),g(e,{modal:!1,rects:[]}),f=e},S=e=>{if(!f)return;let t=y(e);t&&g(f,t)},C=`https://fkn.app`,w=typeof globalThis<`u`&&globalThis.document?globalThis.document:void 0,T=typeof globalThis<`u`&&globalThis.crossOriginIsolated===!0,E=`${C}/api${T?`?coi=1`:``}`,D=`fkn-api-port`,O=`fkn-api-port-ack`,k=2e3,A=()=>{if(!w||typeof window>`u`||window.parent===window)return Promise.resolve(void 0);let e;try{e=window.parent}catch{return Promise.resolve(void 0)}let t=new MessageChannel;return new Promise(n=>{let r=e=>{if(clearTimeout(a),t.port1.removeEventListener(`message`,i),!e)try{t.port1.close()}catch{}n(e)},i=e=>{e.data?.type===O&&r(t.port1)},a=setTimeout(()=>r(void 0),k);t.port1.addEventListener(`message`,i),t.port1.start();try{e.postMessage({type:D},C,[t.port2])}catch{r(void 0)}})},j,M=()=>{if(j||!w)return j;let e=w.querySelector(`iframe[src="${E}"]`);if(e)j=e;else{let e=w.createElement(`iframe`);T&&e.setAttribute(`allow`,`cross-origin-isolated`),e.src=E,w.body.appendChild(e),j=e}return x(j),j},N=(async()=>{if(!w)return;let e=await A();if(e)return{receive:e,emit:e};let t=M()?.contentWindow;return t?{receive:window,emit:t}:void 0})(),P=()=>j,F=e.t({apiPromise:()=>L,hasTransport:()=>I}),I=typeof window<`u`||typeof self<`u`,L=(async()=>{if(typeof window<`u`)return N;if(typeof self<`u`)return{receive:self,emit:self}})().then(e=>e?(0,t.expose)({},{key:`fkn-api`,transport:e}):new Promise(()=>{}));L.then(e=>{b()&&e.overlay.setHost(S)},()=>{}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return L}});
|