@fkn/lib 0.5.3 → 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/{background-Dk_vaVP1.cjs → background-CbU8TkWo.cjs} +1 -1
  2. package/{background-TtzKw6g0.js → background-DvQm1JHR.js} +8 -6
  3. package/cloud/dgram.cjs +1 -1
  4. package/cloud/dgram.d.ts +7 -3
  5. package/cloud/dgram.js +2 -2
  6. package/cloud/dns.d.ts +1 -1
  7. package/cloud/fs/promises.cjs +1 -1
  8. package/cloud/fs/promises.js +1 -1
  9. package/cloud/fs.cjs +1 -1
  10. package/cloud/fs.js +1 -1
  11. package/cloud/http.d.ts +2 -2
  12. package/cloud/net.d.ts +2 -2
  13. package/{cloud-BrY9dKwV.cjs → cloud-CWg9zCWm.cjs} +1 -1
  14. package/{cloud-C-LK4DWa.js → cloud-eLyGYzbA.js} +1 -1
  15. package/cloud.cjs +1 -1
  16. package/cloud.d.ts +3 -3
  17. package/cloud.js +3 -3
  18. package/connect-button-B_63ldmg.js +7 -0
  19. package/connect-button-poDZVmq2.cjs +1 -0
  20. package/dgram-B3WC4VdJ.cjs +1 -0
  21. package/{dgram-DS5_yPc5.js → dgram-c_Xk7ckJ.js} +27 -19
  22. package/dgram.cjs +1 -1
  23. package/dgram.d.ts +2 -2
  24. package/dgram.js +1 -1
  25. package/dns.d.ts +1 -1
  26. package/{extension-Dgz0UTy0.js → extension-BLkZiaAP.js} +65 -57
  27. package/extension-DAiRg5ny.cjs +1 -0
  28. package/extension.cjs +1 -1
  29. package/extension.d.ts +14 -7
  30. package/extension.js +3 -3
  31. package/fs/promises.cjs +1 -1
  32. package/fs/promises.d.ts +2 -0
  33. package/fs/promises.js +2 -2
  34. package/{fs-CQ-eWjXw.js → fs-BQs-x3_j.js} +1 -1
  35. package/{fs-Bc6087fG.cjs → fs-DI1maxcZ.cjs} +1 -1
  36. package/fs.cjs +1 -1
  37. package/fs.d.ts +4 -0
  38. package/fs.js +2 -2
  39. package/http.d.ts +2 -2
  40. package/index.cjs +1 -1
  41. package/index.d.ts +92 -30
  42. package/index.js +22 -34
  43. package/{locator-DxAsGV_o.js → locator-9s7jNIA2.js} +1 -1
  44. package/{locator-Cf7M3QKN.cjs → locator-CHfEe3Jv.cjs} +1 -1
  45. package/net.d.ts +2 -2
  46. package/{node-fs-Bd_UUx1m.js → node-fs-CdKPXPtW.js} +39 -16
  47. package/node-fs-DQn1TGJz.cjs +1 -0
  48. package/opfs/promises.cjs +1 -1
  49. package/opfs/promises.d.ts +22 -1
  50. package/opfs/promises.js +3 -3
  51. package/opfs.cjs +1 -1
  52. package/opfs.d.ts +58 -1
  53. package/opfs.js +31 -30
  54. package/package.json +6 -1
  55. package/react.cjs +1 -0
  56. package/react.d.ts +12 -0
  57. package/react.js +18 -0
  58. package/dgram-C5rGcbej.cjs +0 -1
  59. package/extension-9Uv_0HdS.cjs +0 -1
  60. package/favicon.svg +0 -5
  61. package/node-fs-lrlD_zqB.cjs +0 -1
@@ -1 +1 @@
1
- const e=require(`./chunk-B6C_zzib.cjs`),t=require(`./locator-Cf7M3QKN.cjs`);let n=require(`osra`);var r=e.t(((e,t)=>{(function(n,r){if(typeof define==`function`&&define.amd)define(`webextension-polyfill`,[`module`],r);else if(e!==void 0)r(t);else{var i={exports:{}};r(i),n.browser=i.exports}})(typeof globalThis<`u`?globalThis:typeof self<`u`?self:e,function(e){"use strict";if(!(globalThis.chrome&&globalThis.chrome.runtime&&globalThis.chrome.runtime.id))throw Error(`This script should only be loaded in a browser extension.`);globalThis.browser&&globalThis.browser.runtime&&globalThis.browser.runtime.id?e.exports=globalThis.browser:e.exports=(e=>{let t={alarms:{clear:{minArgs:0,maxArgs:1},clearAll:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getAll:{minArgs:0,maxArgs:0}},bookmarks:{create:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},getChildren:{minArgs:1,maxArgs:1},getRecent:{minArgs:1,maxArgs:1},getSubTree:{minArgs:1,maxArgs:1},getTree:{minArgs:0,maxArgs:0},move:{minArgs:2,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeTree:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}},browserAction:{disable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},enable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},getBadgeBackgroundColor:{minArgs:1,maxArgs:1},getBadgeText:{minArgs:1,maxArgs:1},getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},openPopup:{minArgs:0,maxArgs:0},setBadgeBackgroundColor:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setBadgeText:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},browsingData:{remove:{minArgs:2,maxArgs:2},removeCache:{minArgs:1,maxArgs:1},removeCookies:{minArgs:1,maxArgs:1},removeDownloads:{minArgs:1,maxArgs:1},removeFormData:{minArgs:1,maxArgs:1},removeHistory:{minArgs:1,maxArgs:1},removeLocalStorage:{minArgs:1,maxArgs:1},removePasswords:{minArgs:1,maxArgs:1},removePluginData:{minArgs:1,maxArgs:1},settings:{minArgs:0,maxArgs:0}},commands:{getAll:{minArgs:0,maxArgs:0}},contextMenus:{remove:{minArgs:1,maxArgs:1},removeAll:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},cookies:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:1,maxArgs:1},getAllCookieStores:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},devtools:{inspectedWindow:{eval:{minArgs:1,maxArgs:2,singleCallbackArg:!1}},panels:{create:{minArgs:3,maxArgs:3,singleCallbackArg:!0},elements:{createSidebarPane:{minArgs:1,maxArgs:1}}}},downloads:{cancel:{minArgs:1,maxArgs:1},download:{minArgs:1,maxArgs:1},erase:{minArgs:1,maxArgs:1},getFileIcon:{minArgs:1,maxArgs:2},open:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},pause:{minArgs:1,maxArgs:1},removeFile:{minArgs:1,maxArgs:1},resume:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},extension:{isAllowedFileSchemeAccess:{minArgs:0,maxArgs:0},isAllowedIncognitoAccess:{minArgs:0,maxArgs:0}},history:{addUrl:{minArgs:1,maxArgs:1},deleteAll:{minArgs:0,maxArgs:0},deleteRange:{minArgs:1,maxArgs:1},deleteUrl:{minArgs:1,maxArgs:1},getVisits:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1}},i18n:{detectLanguage:{minArgs:1,maxArgs:1},getAcceptLanguages:{minArgs:0,maxArgs:0}},identity:{launchWebAuthFlow:{minArgs:1,maxArgs:1}},idle:{queryState:{minArgs:1,maxArgs:1}},management:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},getSelf:{minArgs:0,maxArgs:0},setEnabled:{minArgs:2,maxArgs:2},uninstallSelf:{minArgs:0,maxArgs:1}},notifications:{clear:{minArgs:1,maxArgs:1},create:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:0},getPermissionLevel:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},pageAction:{getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},hide:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},permissions:{contains:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},request:{minArgs:1,maxArgs:1}},runtime:{getBackgroundPage:{minArgs:0,maxArgs:0},getPlatformInfo:{minArgs:0,maxArgs:0},openOptionsPage:{minArgs:0,maxArgs:0},requestUpdateCheck:{minArgs:0,maxArgs:0},sendMessage:{minArgs:1,maxArgs:3},sendNativeMessage:{minArgs:2,maxArgs:2},setUninstallURL:{minArgs:1,maxArgs:1}},sessions:{getDevices:{minArgs:0,maxArgs:1},getRecentlyClosed:{minArgs:0,maxArgs:1},restore:{minArgs:0,maxArgs:1}},storage:{local:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},managed:{get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1}},sync:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}}},tabs:{captureVisibleTab:{minArgs:0,maxArgs:2},create:{minArgs:1,maxArgs:1},detectLanguage:{minArgs:0,maxArgs:1},discard:{minArgs:0,maxArgs:1},duplicate:{minArgs:1,maxArgs:1},executeScript:{minArgs:1,maxArgs:2},get:{minArgs:1,maxArgs:1},getCurrent:{minArgs:0,maxArgs:0},getZoom:{minArgs:0,maxArgs:1},getZoomSettings:{minArgs:0,maxArgs:1},goBack:{minArgs:0,maxArgs:1},goForward:{minArgs:0,maxArgs:1},highlight:{minArgs:1,maxArgs:1},insertCSS:{minArgs:1,maxArgs:2},move:{minArgs:2,maxArgs:2},query:{minArgs:1,maxArgs:1},reload:{minArgs:0,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeCSS:{minArgs:1,maxArgs:2},sendMessage:{minArgs:2,maxArgs:3},setZoom:{minArgs:1,maxArgs:2},setZoomSettings:{minArgs:1,maxArgs:2},update:{minArgs:1,maxArgs:2}},topSites:{get:{minArgs:0,maxArgs:0}},webNavigation:{getAllFrames:{minArgs:1,maxArgs:1},getFrame:{minArgs:1,maxArgs:1}},webRequest:{handlerBehaviorChanged:{minArgs:0,maxArgs:0}},windows:{create:{minArgs:0,maxArgs:1},get:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:1},getCurrent:{minArgs:0,maxArgs:1},getLastFocused:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}}};if(Object.keys(t).length===0)throw Error(`api-metadata.json has not been included in browser-polyfill`);class n extends WeakMap{constructor(e,t=void 0){super(t),this.createItem=e}get(e){return this.has(e)||this.set(e,this.createItem(e)),super.get(e)}}let r=e=>e&&typeof e==`object`&&typeof e.then==`function`,i=(t,n)=>(...r)=>{e.runtime.lastError?t.reject(Error(e.runtime.lastError.message)):n.singleCallbackArg||r.length<=1&&n.singleCallbackArg!==!1?t.resolve(r[0]):t.resolve(r)},a=e=>e==1?`argument`:`arguments`,o=(e,t)=>function(n,...r){if(r.length<t.minArgs)throw Error(`Expected at least ${t.minArgs} ${a(t.minArgs)} for ${e}(), got ${r.length}`);if(r.length>t.maxArgs)throw Error(`Expected at most ${t.maxArgs} ${a(t.maxArgs)} for ${e}(), got ${r.length}`);return new Promise((a,o)=>{if(t.fallbackToNoCallback)try{n[e](...r,i({resolve:a,reject:o},t))}catch(i){console.warn(`${e} API method doesn't seem to support the callback parameter, falling back to call it without a callback: `,i),n[e](...r),t.fallbackToNoCallback=!1,t.noCallback=!0,a()}else t.noCallback?(n[e](...r),a()):n[e](...r,i({resolve:a,reject:o},t))})},s=(e,t,n)=>new Proxy(t,{apply(t,r,i){return n.call(r,e,...i)}}),c=Function.call.bind(Object.prototype.hasOwnProperty),l=(e,t={},n={})=>{let r=Object.create(null);return new Proxy(Object.create(e),{has(t,n){return n in e||n in r},get(i,a,u){if(a in r)return r[a];if(!(a in e))return;let d=e[a];if(typeof d==`function`)if(typeof t[a]==`function`)d=s(e,e[a],t[a]);else if(c(n,a)){let t=o(a,n[a]);d=s(e,e[a],t)}else d=d.bind(e);else if(typeof d==`object`&&d&&(c(t,a)||c(n,a)))d=l(d,t[a],n[a]);else if(c(n,`*`))d=l(d,t[a],n[`*`]);else return Object.defineProperty(r,a,{configurable:!0,enumerable:!0,get(){return e[a]},set(t){e[a]=t}}),d;return r[a]=d,d},set(t,n,i,a){return n in r?r[n]=i:e[n]=i,!0},defineProperty(e,t,n){return Reflect.defineProperty(r,t,n)},deleteProperty(e,t){return Reflect.deleteProperty(r,t)}})},u=e=>({addListener(t,n,...r){t.addListener(e.get(n),...r)},hasListener(t,n){return t.hasListener(e.get(n))},removeListener(t,n){t.removeListener(e.get(n))}}),d=new n(e=>typeof e==`function`?function(t){e(l(t,{},{getContent:{minArgs:0,maxArgs:0}}))}:e),f=new n(e=>typeof e==`function`?function(t,n,i){let a=!1,o,s=new Promise(e=>{o=function(t){a=!0,e(t)}}),c;try{c=e(t,n,o)}catch(e){c=Promise.reject(e)}let l=c!==!0&&r(c);return c!==!0&&!l&&!a?!1:((e=>{e.then(e=>{i(e)},e=>{let t;t=e&&(e instanceof Error||typeof e.message==`string`)?e.message:`An unexpected error occurred`,i({__mozWebExtensionPolyfillReject__:!0,message:t})}).catch(e=>{console.error(`Failed to send onMessage rejected reply`,e)})})(l?c:s),!0)}:e),p=({reject:t,resolve:n},r)=>{e.runtime.lastError?e.runtime.lastError.message===`The message port closed before a response was received.`?n():t(Error(e.runtime.lastError.message)):r&&r.__mozWebExtensionPolyfillReject__?t(Error(r.message)):n(r)},m=(e,t,n,...r)=>{if(r.length<t.minArgs)throw Error(`Expected at least ${t.minArgs} ${a(t.minArgs)} for ${e}(), got ${r.length}`);if(r.length>t.maxArgs)throw Error(`Expected at most ${t.maxArgs} ${a(t.maxArgs)} for ${e}(), got ${r.length}`);return new Promise((e,t)=>{let i=p.bind(null,{resolve:e,reject:t});r.push(i),n.sendMessage(...r)})},h={devtools:{network:{onRequestFinished:u(d)}},runtime:{onMessage:u(f),onMessageExternal:u(f),sendMessage:m.bind(null,`sendMessage`,{minArgs:1,maxArgs:3})},tabs:{sendMessage:m.bind(null,`sendMessage`,{minArgs:2,maxArgs:3})}},g={clear:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}};return t.privacy={network:{"*":g},services:{"*":g},websites:{"*":g}},l(e,h,t)})(chrome)})}))(),i=`FKN_WEB_EXTENSION_BACKGROUND_COMMUNICATION_OSRA_KEY`,a=`FKN_WEB_EXTENSION_CONTENT_SCRIPT_PEER_OSRA_KEY`,o=`FKN_WEB_EXTENSION_CONTENT_SCRIPT_RELAY_ENVELOPE_KEY`,s=e=>t.c(e)&&e.FKN_WEB_EXTENSION_CONTENT_SCRIPT_RELAY_ENVELOPE_KEY===!0&&typeof e.from==`string`&&t.c(e.message),c=new Map,l=e=>{let i=c.get(e);if(i)return i;let{promise:s,resolve:l}=Promise.withResolvers(),{promise:u,resolve:d}=Promise.withResolvers(),f={resolvers:(0,n.expose)(N,{key:a,revivableModules:t.l,transport:{isJson:!0,receive:e=>l(e),emit:t=>{r.runtime.sendMessage({[o]:!0,target:e,message:t}).catch(()=>{})}}}),listener:s,stale:u,markStale:d};return c.set(e,f),f};r.runtime.onMessage.addListener((e,t)=>{s(e)&&(0,n.checkOsraMessageKey)(e.message,`FKN_WEB_EXTENSION_CONTENT_SCRIPT_PEER_OSRA_KEY`)&&l(e.from).listener.then(n=>n(e.message,{sender:t}))}),t.s(e=>{let t=c.get(e);t&&(t.markStale(),c.delete(e))});var u=async e=>{let t=l(e);return{resolvers:await Promise.race([t.resolvers,t.stale.then(()=>{throw Error(`peer ${e} became stale before connect completed`)})]),stale:t.stale}},d=[`position: fixed`,`border: 2px solid oklch(63% 0.24 25)`,`border-radius: 4px`,`background: oklch(63% 0.24 25 / 0.12)`,`box-shadow: 0 0 0 2px oklch(63% 0.24 25 / 0.5), 0 0 0 100vmax oklch(0% 0 0 / 0.5)`,`z-index: 2147483647`,`pointer-events: none`,`box-sizing: border-box`],f=(e,t)=>{let n=t.getBoundingClientRect();e.setAttribute(`style`,[...d,`left: ${n.left}px`,`top: ${n.top}px`,`width: ${n.width}px`,`height: ${n.height}px`].map(e=>`${e} !important`).join(`; `))},p=e=>{let t=e.getBoundingClientRect();return{clientX:t.left+t.width/2,clientY:t.top+t.height/2}},m=0,h=e=>{m^=1;let{clientX:t,clientY:n}=p(e),r={bubbles:!0,cancelable:!0,composed:!0,clientX:t+m,clientY:n};e.dispatchEvent(new PointerEvent(`pointermove`,{...r,pointerType:`mouse`,pointerId:1,isPrimary:!0})),e.dispatchEvent(new MouseEvent(`mousemove`,r))},g=[[PointerEvent,`pointerover`,!0],[PointerEvent,`pointerenter`,!1],[MouseEvent,`mouseover`,!0],[MouseEvent,`mouseenter`,!1]],_=[[PointerEvent,`pointerout`,!0],[PointerEvent,`pointerleave`,!1],[MouseEvent,`mouseout`,!0],[MouseEvent,`mouseleave`,!1]],v=(e,t)=>t.forEach(([t,n,r])=>e.dispatchEvent(new t(n,{bubbles:r,cancelable:!0,composed:!0,...p(e)}))),y=e=>{v(e,g),h(e)},b=e=>v(e,_),x=null,S=e=>{C();try{e.scrollIntoView({block:`center`,inline:`center`})}catch{}let t=document.createElement(`div`);(document.body??document.documentElement).appendChild(t),y(e);let n=requestAnimationFrame(function r(){f(t,e),n=requestAnimationFrame(r)}),r=window.setInterval(()=>h(e),300);x={stop:()=>{cancelAnimationFrame(n),clearInterval(r),b(e),t.remove()}}},C=()=>{x?.stop(),x=null},w={[t.n]:t.t,[t.a]:t.i},T=e=>{let t=w[e.locatorType];if(!t)throw Error(`Unknown locator kind: "${e.locatorType}"`);let n=t.selectorModules.find(t=>t.type===e.type);if(!n)throw Error(`Unknown selector: "${e.locatorType}.${e.type}"`);return n},E=e=>e.reduce((e,t)=>T(t).resolve({elements:e},...t.args),[document.documentElement]),D=e=>{for(let t=0;t<e.length;t++){let n=T(e[t]);if(n.resolvePeer)return{module:n,index:t}}return null},O=async(e,n,r)=>{let i=D(e);if(i){let t=await i.module.resolvePeer({parts:e,selfIndex:i.index,resolveLocal:E}),{resolvers:a,stale:o}=await u(t),s=e.slice(i.index+1);return Promise.race([a.executeLocator(s,n,r),o.then(()=>{throw Error(`peer ${t} became stale during call, retrying`)})])}if(n===`__fkn_highlight`){if(r[0]?.on){let n=E(e)[0];n&&(t.o(!0),S(n))}else C(),t.o(!1);return}let a=[...t.t.operationModules,...t.i.operationModules].find(e=>e.type===n);if(!a)throw Error(`Unknown operation: "${n}"`);return a.resolve({elements:E(e)},...r)},k=`FKN_EVALUATE`,A,j=()=>(A??=new Promise((e,t)=>{let n=t=>{let r=t.data;!r||r.channel!==k||r.kind!==`ready`||(window.removeEventListener(`message`,n),e())};window.addEventListener(`message`,n);let r=document.createElement(`script`);r.src=chrome.runtime.getURL(`main-world-bridge.js`),r.onload=()=>r.remove(),(document.documentElement??document.head??document.body).appendChild(r),setTimeout(()=>t(Error(`evaluate: main-world bridge did not become ready`)),5e3)}),A),M=0,N={contentScriptDummy:()=>{},executeLocator:O,evaluate:async({code:e,arg:t})=>{await j();let n=`${++M}`;return new Promise((r,i)=>{let a=e=>{let t=e.data;!t||t.channel!==k||t.kind!==`result`||t.id!==n||(window.removeEventListener(`message`,a),t.error?i(Error(String(t.error))):r(t.result))};window.addEventListener(`message`,a),window.postMessage({channel:k,kind:`call`,id:n,code:e,arg:t},`*`)})}},P=(0,n.expose)(N,{key:i,transport:{isJson:!0,receive:r.runtime.onMessage,emit:r.runtime}});exports.backgroundResolvers=P;
1
+ const e=require(`./chunk-B6C_zzib.cjs`),t=require(`./locator-CHfEe3Jv.cjs`);let n=require(`osra`);var r=e.t(((e,t)=>{(function(n,r){if(typeof define==`function`&&define.amd)define(`webextension-polyfill`,[`module`],r);else if(e!==void 0)r(t);else{var i={exports:{}};r(i),n.browser=i.exports}})(typeof globalThis<`u`?globalThis:typeof self<`u`?self:e,function(e){"use strict";if(!(globalThis.chrome&&globalThis.chrome.runtime&&globalThis.chrome.runtime.id))throw Error(`This script should only be loaded in a browser extension.`);globalThis.browser&&globalThis.browser.runtime&&globalThis.browser.runtime.id?e.exports=globalThis.browser:e.exports=(e=>{let t={alarms:{clear:{minArgs:0,maxArgs:1},clearAll:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getAll:{minArgs:0,maxArgs:0}},bookmarks:{create:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},getChildren:{minArgs:1,maxArgs:1},getRecent:{minArgs:1,maxArgs:1},getSubTree:{minArgs:1,maxArgs:1},getTree:{minArgs:0,maxArgs:0},move:{minArgs:2,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeTree:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}},browserAction:{disable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},enable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},getBadgeBackgroundColor:{minArgs:1,maxArgs:1},getBadgeText:{minArgs:1,maxArgs:1},getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},openPopup:{minArgs:0,maxArgs:0},setBadgeBackgroundColor:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setBadgeText:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},browsingData:{remove:{minArgs:2,maxArgs:2},removeCache:{minArgs:1,maxArgs:1},removeCookies:{minArgs:1,maxArgs:1},removeDownloads:{minArgs:1,maxArgs:1},removeFormData:{minArgs:1,maxArgs:1},removeHistory:{minArgs:1,maxArgs:1},removeLocalStorage:{minArgs:1,maxArgs:1},removePasswords:{minArgs:1,maxArgs:1},removePluginData:{minArgs:1,maxArgs:1},settings:{minArgs:0,maxArgs:0}},commands:{getAll:{minArgs:0,maxArgs:0}},contextMenus:{remove:{minArgs:1,maxArgs:1},removeAll:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},cookies:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:1,maxArgs:1},getAllCookieStores:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},devtools:{inspectedWindow:{eval:{minArgs:1,maxArgs:2,singleCallbackArg:!1}},panels:{create:{minArgs:3,maxArgs:3,singleCallbackArg:!0},elements:{createSidebarPane:{minArgs:1,maxArgs:1}}}},downloads:{cancel:{minArgs:1,maxArgs:1},download:{minArgs:1,maxArgs:1},erase:{minArgs:1,maxArgs:1},getFileIcon:{minArgs:1,maxArgs:2},open:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},pause:{minArgs:1,maxArgs:1},removeFile:{minArgs:1,maxArgs:1},resume:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},extension:{isAllowedFileSchemeAccess:{minArgs:0,maxArgs:0},isAllowedIncognitoAccess:{minArgs:0,maxArgs:0}},history:{addUrl:{minArgs:1,maxArgs:1},deleteAll:{minArgs:0,maxArgs:0},deleteRange:{minArgs:1,maxArgs:1},deleteUrl:{minArgs:1,maxArgs:1},getVisits:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1}},i18n:{detectLanguage:{minArgs:1,maxArgs:1},getAcceptLanguages:{minArgs:0,maxArgs:0}},identity:{launchWebAuthFlow:{minArgs:1,maxArgs:1}},idle:{queryState:{minArgs:1,maxArgs:1}},management:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},getSelf:{minArgs:0,maxArgs:0},setEnabled:{minArgs:2,maxArgs:2},uninstallSelf:{minArgs:0,maxArgs:1}},notifications:{clear:{minArgs:1,maxArgs:1},create:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:0},getPermissionLevel:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},pageAction:{getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},hide:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},permissions:{contains:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},request:{minArgs:1,maxArgs:1}},runtime:{getBackgroundPage:{minArgs:0,maxArgs:0},getPlatformInfo:{minArgs:0,maxArgs:0},openOptionsPage:{minArgs:0,maxArgs:0},requestUpdateCheck:{minArgs:0,maxArgs:0},sendMessage:{minArgs:1,maxArgs:3},sendNativeMessage:{minArgs:2,maxArgs:2},setUninstallURL:{minArgs:1,maxArgs:1}},sessions:{getDevices:{minArgs:0,maxArgs:1},getRecentlyClosed:{minArgs:0,maxArgs:1},restore:{minArgs:0,maxArgs:1}},storage:{local:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},managed:{get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1}},sync:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}}},tabs:{captureVisibleTab:{minArgs:0,maxArgs:2},create:{minArgs:1,maxArgs:1},detectLanguage:{minArgs:0,maxArgs:1},discard:{minArgs:0,maxArgs:1},duplicate:{minArgs:1,maxArgs:1},executeScript:{minArgs:1,maxArgs:2},get:{minArgs:1,maxArgs:1},getCurrent:{minArgs:0,maxArgs:0},getZoom:{minArgs:0,maxArgs:1},getZoomSettings:{minArgs:0,maxArgs:1},goBack:{minArgs:0,maxArgs:1},goForward:{minArgs:0,maxArgs:1},highlight:{minArgs:1,maxArgs:1},insertCSS:{minArgs:1,maxArgs:2},move:{minArgs:2,maxArgs:2},query:{minArgs:1,maxArgs:1},reload:{minArgs:0,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeCSS:{minArgs:1,maxArgs:2},sendMessage:{minArgs:2,maxArgs:3},setZoom:{minArgs:1,maxArgs:2},setZoomSettings:{minArgs:1,maxArgs:2},update:{minArgs:1,maxArgs:2}},topSites:{get:{minArgs:0,maxArgs:0}},webNavigation:{getAllFrames:{minArgs:1,maxArgs:1},getFrame:{minArgs:1,maxArgs:1}},webRequest:{handlerBehaviorChanged:{minArgs:0,maxArgs:0}},windows:{create:{minArgs:0,maxArgs:1},get:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:1},getCurrent:{minArgs:0,maxArgs:1},getLastFocused:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}}};if(Object.keys(t).length===0)throw Error(`api-metadata.json has not been included in browser-polyfill`);class n extends WeakMap{constructor(e,t=void 0){super(t),this.createItem=e}get(e){return this.has(e)||this.set(e,this.createItem(e)),super.get(e)}}let r=e=>e&&typeof e==`object`&&typeof e.then==`function`,i=(t,n)=>(...r)=>{e.runtime.lastError?t.reject(Error(e.runtime.lastError.message)):n.singleCallbackArg||r.length<=1&&n.singleCallbackArg!==!1?t.resolve(r[0]):t.resolve(r)},a=e=>e==1?`argument`:`arguments`,o=(e,t)=>function(n,...r){if(r.length<t.minArgs)throw Error(`Expected at least ${t.minArgs} ${a(t.minArgs)} for ${e}(), got ${r.length}`);if(r.length>t.maxArgs)throw Error(`Expected at most ${t.maxArgs} ${a(t.maxArgs)} for ${e}(), got ${r.length}`);return new Promise((a,o)=>{if(t.fallbackToNoCallback)try{n[e](...r,i({resolve:a,reject:o},t))}catch(i){console.warn(`${e} API method doesn't seem to support the callback parameter, falling back to call it without a callback: `,i),n[e](...r),t.fallbackToNoCallback=!1,t.noCallback=!0,a()}else t.noCallback?(n[e](...r),a()):n[e](...r,i({resolve:a,reject:o},t))})},s=(e,t,n)=>new Proxy(t,{apply(t,r,i){return n.call(r,e,...i)}}),c=Function.call.bind(Object.prototype.hasOwnProperty),l=(e,t={},n={})=>{let r=Object.create(null);return new Proxy(Object.create(e),{has(t,n){return n in e||n in r},get(i,a,u){if(a in r)return r[a];if(!(a in e))return;let d=e[a];if(typeof d==`function`)if(typeof t[a]==`function`)d=s(e,e[a],t[a]);else if(c(n,a)){let t=o(a,n[a]);d=s(e,e[a],t)}else d=d.bind(e);else if(typeof d==`object`&&d&&(c(t,a)||c(n,a)))d=l(d,t[a],n[a]);else if(c(n,`*`))d=l(d,t[a],n[`*`]);else return Object.defineProperty(r,a,{configurable:!0,enumerable:!0,get(){return e[a]},set(t){e[a]=t}}),d;return r[a]=d,d},set(t,n,i,a){return n in r?r[n]=i:e[n]=i,!0},defineProperty(e,t,n){return Reflect.defineProperty(r,t,n)},deleteProperty(e,t){return Reflect.deleteProperty(r,t)}})},u=e=>({addListener(t,n,...r){t.addListener(e.get(n),...r)},hasListener(t,n){return t.hasListener(e.get(n))},removeListener(t,n){t.removeListener(e.get(n))}}),d=new n(e=>typeof e==`function`?function(t){e(l(t,{},{getContent:{minArgs:0,maxArgs:0}}))}:e),f=new n(e=>typeof e==`function`?function(t,n,i){let a=!1,o,s=new Promise(e=>{o=function(t){a=!0,e(t)}}),c;try{c=e(t,n,o)}catch(e){c=Promise.reject(e)}let l=c!==!0&&r(c);return c!==!0&&!l&&!a?!1:((e=>{e.then(e=>{i(e)},e=>{let t;t=e&&(e instanceof Error||typeof e.message==`string`)?e.message:`An unexpected error occurred`,i({__mozWebExtensionPolyfillReject__:!0,message:t})}).catch(e=>{console.error(`Failed to send onMessage rejected reply`,e)})})(l?c:s),!0)}:e),p=({reject:t,resolve:n},r)=>{e.runtime.lastError?e.runtime.lastError.message===`The message port closed before a response was received.`?n():t(Error(e.runtime.lastError.message)):r&&r.__mozWebExtensionPolyfillReject__?t(Error(r.message)):n(r)},m=(e,t,n,...r)=>{if(r.length<t.minArgs)throw Error(`Expected at least ${t.minArgs} ${a(t.minArgs)} for ${e}(), got ${r.length}`);if(r.length>t.maxArgs)throw Error(`Expected at most ${t.maxArgs} ${a(t.maxArgs)} for ${e}(), got ${r.length}`);return new Promise((e,t)=>{let i=p.bind(null,{resolve:e,reject:t});r.push(i),n.sendMessage(...r)})},h={devtools:{network:{onRequestFinished:u(d)}},runtime:{onMessage:u(f),onMessageExternal:u(f),sendMessage:m.bind(null,`sendMessage`,{minArgs:1,maxArgs:3})},tabs:{sendMessage:m.bind(null,`sendMessage`,{minArgs:2,maxArgs:3})}},g={clear:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}};return t.privacy={network:{"*":g},services:{"*":g},websites:{"*":g}},l(e,h,t)})(chrome)})}))(),i=`FKN_WEB_EXTENSION_BACKGROUND_COMMUNICATION_OSRA_KEY`,a=`FKN_WEB_EXTENSION_CONTENT_SCRIPT_PEER_OSRA_KEY`,o=`FKN_WEB_EXTENSION_CONTENT_SCRIPT_RELAY_ENVELOPE_KEY`,s=e=>t.c(e)&&e.FKN_WEB_EXTENSION_CONTENT_SCRIPT_RELAY_ENVELOPE_KEY===!0&&typeof e.from==`string`&&t.c(e.message),c=new Map,l=e=>{let i=c.get(e);if(i)return i;let{promise:s,resolve:l}=Promise.withResolvers(),{promise:u,resolve:d}=Promise.withResolvers(),f={resolvers:(0,n.expose)(N,{key:a,revivableModules:t.l,transport:{isJson:!0,receive:e=>l(e),emit:t=>{r.runtime.sendMessage({[o]:!0,target:e,message:t}).catch(()=>{})}}}),listener:s,stale:u,markStale:d};return c.set(e,f),f};r.runtime.onMessage.addListener((e,t)=>{s(e)&&(0,n.checkOsraMessageKey)(e.message,`FKN_WEB_EXTENSION_CONTENT_SCRIPT_PEER_OSRA_KEY`)&&l(e.from).listener.then(n=>n(e.message,{sender:t}))}),t.s(e=>{let t=c.get(e);t&&(t.markStale(),c.delete(e))});var u=async e=>{let t=l(e);return{resolvers:await Promise.race([t.resolvers,t.stale.then(()=>{throw Error(`peer ${e} became stale before connect completed`)})]),stale:t.stale}},d=[`position: fixed`,`border: 2px solid oklch(63% 0.24 25)`,`border-radius: 4px`,`background: oklch(63% 0.24 25 / 0.12)`,`box-shadow: 0 0 0 2px oklch(63% 0.24 25 / 0.5), 0 0 0 100vmax oklch(0% 0 0 / 0.5)`,`z-index: 2147483647`,`pointer-events: none`,`box-sizing: border-box`],f=(e,t)=>{let n=t.getBoundingClientRect();e.setAttribute(`style`,[...d,`left: ${n.left}px`,`top: ${n.top}px`,`width: ${n.width}px`,`height: ${n.height}px`].map(e=>`${e} !important`).join(`; `))},p=e=>{let t=e.getBoundingClientRect();return{clientX:t.left+t.width/2,clientY:t.top+t.height/2}},m=0,h=e=>{m^=1;let{clientX:t,clientY:n}=p(e),r={bubbles:!0,cancelable:!0,composed:!0,clientX:t+m,clientY:n};e.dispatchEvent(new PointerEvent(`pointermove`,{...r,pointerType:`mouse`,pointerId:1,isPrimary:!0})),e.dispatchEvent(new MouseEvent(`mousemove`,r))},g=[[PointerEvent,`pointerover`,!0],[PointerEvent,`pointerenter`,!1],[MouseEvent,`mouseover`,!0],[MouseEvent,`mouseenter`,!1]],_=[[PointerEvent,`pointerout`,!0],[PointerEvent,`pointerleave`,!1],[MouseEvent,`mouseout`,!0],[MouseEvent,`mouseleave`,!1]],v=(e,t)=>t.forEach(([t,n,r])=>e.dispatchEvent(new t(n,{bubbles:r,cancelable:!0,composed:!0,...p(e)}))),y=e=>{v(e,g),h(e)},b=e=>v(e,_),x=null,S=e=>{C();try{e.scrollIntoView({block:`center`,inline:`center`})}catch{}let t=document.createElement(`div`);(document.body??document.documentElement).appendChild(t),y(e);let n=requestAnimationFrame(function r(){f(t,e),n=requestAnimationFrame(r)}),r=window.setInterval(()=>h(e),300);x={stop:()=>{cancelAnimationFrame(n),clearInterval(r),b(e),t.remove()}}},C=()=>{x?.stop(),x=null},w={[t.n]:t.t,[t.a]:t.i},T=e=>{let t=w[e.locatorType];if(!t)throw Error(`Unknown locator kind: "${e.locatorType}"`);let n=t.selectorModules.find(t=>t.type===e.type);if(!n)throw Error(`Unknown selector: "${e.locatorType}.${e.type}"`);return n},E=e=>e.reduce((e,t)=>T(t).resolve({elements:e},...t.args),[document.documentElement]),D=e=>{for(let t=0;t<e.length;t++){let n=T(e[t]);if(n.resolvePeer)return{module:n,index:t}}return null},O=async(e,n,r)=>{let i=D(e);if(i){let t=await i.module.resolvePeer({parts:e,selfIndex:i.index,resolveLocal:E}),{resolvers:a,stale:o}=await u(t),s=e.slice(i.index+1);return Promise.race([a.executeLocator(s,n,r),o.then(()=>{throw Error(`peer ${t} became stale during call, retrying`)})])}if(n===`__fkn_highlight`){if(r[0]?.on){let n=E(e)[0];n&&(t.o(!0),S(n))}else C(),t.o(!1);return}let a=[...t.t.operationModules,...t.i.operationModules].find(e=>e.type===n);if(!a)throw Error(`Unknown operation: "${n}"`);return a.resolve({elements:E(e)},...r)},k=`FKN_EVALUATE`,A,j=()=>(A??=new Promise((e,t)=>{let n=t=>{let i=t.data;!i||i.channel!==k||i.kind!==`ready`||(clearTimeout(r),window.removeEventListener(`message`,n),e())},r=setTimeout(()=>{window.removeEventListener(`message`,n),A=void 0,t(Error(`evaluate: main-world bridge did not become ready`))},5e3);window.addEventListener(`message`,n);let i=document.createElement(`script`);i.src=chrome.runtime.getURL(`main-world-bridge.js`),i.onload=()=>i.remove(),(document.documentElement??document.head??document.body).appendChild(i)}),A),M=0,N={contentScriptDummy:()=>{},executeLocator:O,evaluate:async({code:e,arg:t})=>{await j();let n=`${++M}`;return new Promise((r,i)=>{let a=e=>{let t=e.data;!t||t.channel!==k||t.kind!==`result`||t.id!==n||(window.removeEventListener(`message`,a),t.error?i(Error(String(t.error))):r(t.result))};window.addEventListener(`message`,a),window.postMessage({channel:k,kind:`call`,id:n,code:e,arg:t},`*`)})}},P=(0,n.expose)(N,{key:i,transport:{isJson:!0,receive:r.runtime.onMessage,emit:r.runtime}});exports.backgroundResolvers=P;
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./chunk-CPXzm0be.js";
2
- import { a as t, c as n, i as r, l as i, n as a, o, s, t as c } from "./locator-DxAsGV_o.js";
2
+ import { a as t, c as n, i as r, l as i, n as a, o, s, t as c } from "./locator-9s7jNIA2.js";
3
3
  import { checkOsraMessageKey as l, expose as u } from "osra";
4
4
  //#endregion
5
5
  //#region node_modules/@mfkn/web-extension/lib/background/constants.js
@@ -1015,12 +1015,14 @@ var v = async (e) => {
1015
1015
  return a.resolve({ elements: P(e) }, ...n);
1016
1016
  }, L = "FKN_EVALUATE", R, z = () => (R ??= new Promise((e, t) => {
1017
1017
  let n = (t) => {
1018
- let r = t.data;
1019
- !r || r.channel !== L || r.kind !== "ready" || (window.removeEventListener("message", n), e());
1020
- };
1018
+ let i = t.data;
1019
+ !i || i.channel !== L || i.kind !== "ready" || (clearTimeout(r), window.removeEventListener("message", n), e());
1020
+ }, r = setTimeout(() => {
1021
+ window.removeEventListener("message", n), R = void 0, t(/* @__PURE__ */ Error("evaluate: main-world bridge did not become ready"));
1022
+ }, 5e3);
1021
1023
  window.addEventListener("message", n);
1022
- let r = document.createElement("script");
1023
- r.src = chrome.runtime.getURL("main-world-bridge.js"), r.onload = () => r.remove(), (document.documentElement ?? document.head ?? document.body).appendChild(r), setTimeout(() => t(/* @__PURE__ */ Error("evaluate: main-world bridge did not become ready")), 5e3);
1024
+ let i = document.createElement("script");
1025
+ i.src = chrome.runtime.getURL("main-world-bridge.js"), i.onload = () => i.remove(), (document.documentElement ?? document.head ?? document.body).appendChild(i);
1024
1026
  }), R), B = 0, V = {
1025
1027
  contentScriptDummy: () => {},
1026
1028
  executeLocator: I,
package/cloud/dgram.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../api-CDb2pv7C.cjs`),require(`../utils-BsNRWMfl.cjs`);const e=require(`../dgram-C5rGcbej.cjs`);exports.Socket=e.t,exports.createSocket=e.n;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../api-CDb2pv7C.cjs`),require(`../utils-BsNRWMfl.cjs`);const e=require(`../dgram-B3WC4VdJ.cjs`);exports.Socket=e.t,exports.createSocket=e.n,exports.default=e.r;
package/cloud/dgram.d.ts CHANGED
@@ -283,7 +283,7 @@ declare const resolvers: {
283
283
  readonly dns: {
284
284
  readonly lookup: <T extends boolean = false>(hostname: string, options?: {
285
285
  all?: T;
286
- family: 0 | 4 | 6;
286
+ family?: 0 | 4 | 6;
287
287
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
288
288
  };
289
289
  readonly fs: {
@@ -442,7 +442,7 @@ declare const resolvers: {
442
442
  }>;
443
443
  readonly dnsLookup: <T extends boolean = false>(hostname: string, options?: {
444
444
  all?: T;
445
- family: 0 | 4 | 6;
445
+ family?: 0 | 4 | 6;
446
446
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
447
447
  readonly setOverlayHost: (push: (state: {
448
448
  modal: boolean;
@@ -533,5 +533,9 @@ declare class Socket extends EventEmitter implements Socket$1 {
533
533
  [Symbol.asyncDispose](): Promise<void>;
534
534
  }
535
535
  declare const createSocket: (options: SocketType | SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void) => Socket;
536
+ declare const _default: {
537
+ Socket: typeof Socket;
538
+ createSocket: (options: SocketType | SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void) => Socket;
539
+ };
536
540
 
537
- export { Socket, createSocket };
541
+ export { Socket, createSocket, _default as default };
package/cloud/dgram.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import "../api-ByfayMm1.js";
2
2
  import "../utils-CNydj3OT.js";
3
- import { n as e, t } from "../dgram-DS5_yPc5.js";
4
- export { t as Socket, e as createSocket };
3
+ import { n as e, r as t, t as n } from "../dgram-c_Xk7ckJ.js";
4
+ export { n as Socket, e as createSocket, t as default };
package/cloud/dns.d.ts CHANGED
@@ -5,7 +5,7 @@ type AddressLookupResult = {
5
5
 
6
6
  declare const lookup: <T extends boolean = false>(hostname: string, options?: {
7
7
  all?: T;
8
- family: 0 | 4 | 6;
8
+ family?: 0 | 4 | 6;
9
9
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
10
10
 
11
11
  export { lookup };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../api-CDb2pv7C.cjs`),require(`../../node-fs-lrlD_zqB.cjs`),require(`../../storage-C2-_-bTO.cjs`);var{readFile:e,writeFile:t,unlink:n,rename:r,readdir:i,mkdir:a,rm:o,rmdir:s,stat:c,lstat:l,access:u}=require(`../fs.cjs`).promises;exports.access=u,exports.lstat=l,exports.mkdir=a,exports.readFile=e,exports.readdir=i,exports.rename=r,exports.rm=o,exports.rmdir=s,exports.stat=c,exports.unlink=n,exports.writeFile=t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../api-CDb2pv7C.cjs`),require(`../../node-fs-DQn1TGJz.cjs`),require(`../../storage-C2-_-bTO.cjs`);var{readFile:e,writeFile:t,unlink:n,rename:r,readdir:i,mkdir:a,rm:o,rmdir:s,stat:c,lstat:l,access:u}=require(`../fs.cjs`).promises;exports.access=u,exports.lstat=l,exports.mkdir=a,exports.readFile=e,exports.readdir=i,exports.rename=r,exports.rm=o,exports.rmdir=s,exports.stat=c,exports.unlink=n,exports.writeFile=t;
@@ -1,5 +1,5 @@
1
1
  import "../../api-ByfayMm1.js";
2
- import "../../node-fs-Bd_UUx1m.js";
2
+ import "../../node-fs-CdKPXPtW.js";
3
3
  import "../../storage-BcJfnkm3.js";
4
4
  import { promises as e } from "../fs.js";
5
5
  //#region src/lib/cloud/fs-promises.ts
package/cloud/fs.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../chunk-B6C_zzib.cjs`);require(`../api-CDb2pv7C.cjs`);const t=require(`../node-fs-lrlD_zqB.cjs`),n=require(`../storage-C2-_-bTO.cjs`);var r=e.n({available:()=>i,mkdir:()=>u,promises:()=>p,quota:()=>n.r,readFile:()=>a,readdir:()=>l,rename:()=>c,rm:()=>d,stat:()=>f,unlink:()=>s,writeFile:()=>o}),{available:i,readFile:a,writeFile:o,unlink:s,rename:c,readdir:l,mkdir:u,rm:d,stat:f,promises:p}=t.t(n.o,{memfs:!1});exports.available=i,exports.mkdir=u,exports.promises=p,exports.quota=n.r,exports.readFile=a,exports.readdir=l,exports.rename=c,exports.rm=d,exports.stat=f,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}}),exports.unlink=s,exports.writeFile=o;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../chunk-B6C_zzib.cjs`);require(`../api-CDb2pv7C.cjs`);const t=require(`../node-fs-DQn1TGJz.cjs`),n=require(`../storage-C2-_-bTO.cjs`);var r=e.n({available:()=>i,mkdir:()=>u,promises:()=>p,quota:()=>n.r,readFile:()=>a,readdir:()=>l,rename:()=>c,rm:()=>d,stat:()=>f,unlink:()=>s,writeFile:()=>o}),{available:i,readFile:a,writeFile:o,unlink:s,rename:c,readdir:l,mkdir:u,rm:d,stat:f,promises:p}=t.t(n.o,{memfs:!1});exports.available=i,exports.mkdir=u,exports.promises=p,exports.quota=n.r,exports.readFile=a,exports.readdir=l,exports.rename=c,exports.rm=d,exports.stat=f,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}}),exports.unlink=s,exports.writeFile=o;
package/cloud/fs.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { n as e } from "../chunk-CPXzm0be.js";
2
2
  import "../api-ByfayMm1.js";
3
- import { t } from "../node-fs-Bd_UUx1m.js";
3
+ import { t } from "../node-fs-CdKPXPtW.js";
4
4
  import { o as n, r } from "../storage-BcJfnkm3.js";
5
5
  //#region src/lib/cloud/fs.ts
6
6
  var i = /* @__PURE__ */ e({
package/cloud/http.d.ts CHANGED
@@ -284,7 +284,7 @@ declare const resolvers: {
284
284
  readonly dns: {
285
285
  readonly lookup: <T extends boolean = false>(hostname: string, options?: {
286
286
  all?: T;
287
- family: 0 | 4 | 6;
287
+ family?: 0 | 4 | 6;
288
288
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
289
289
  };
290
290
  readonly fs: {
@@ -443,7 +443,7 @@ declare const resolvers: {
443
443
  }>;
444
444
  readonly dnsLookup: <T extends boolean = false>(hostname: string, options?: {
445
445
  all?: T;
446
- family: 0 | 4 | 6;
446
+ family?: 0 | 4 | 6;
447
447
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
448
448
  readonly setOverlayHost: (push: (state: {
449
449
  modal: boolean;
package/cloud/net.d.ts CHANGED
@@ -282,7 +282,7 @@ declare const resolvers: {
282
282
  readonly dns: {
283
283
  readonly lookup: <T extends boolean = false>(hostname: string, options?: {
284
284
  all?: T;
285
- family: 0 | 4 | 6;
285
+ family?: 0 | 4 | 6;
286
286
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
287
287
  };
288
288
  readonly fs: {
@@ -441,7 +441,7 @@ declare const resolvers: {
441
441
  }>;
442
442
  readonly dnsLookup: <T extends boolean = false>(hostname: string, options?: {
443
443
  all?: T;
444
- family: 0 | 4 | 6;
444
+ family?: 0 | 4 | 6;
445
445
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
446
446
  readonly setOverlayHost: (push: (state: {
447
447
  modal: boolean;
@@ -1 +1 @@
1
- const e=require(`./chunk-B6C_zzib.cjs`),t=require(`./api-CDb2pv7C.cjs`),n=require(`./proxy-A9UvWUaF.cjs`),r=require(`./dns.cjs`),i=require(`./cloud/fs.cjs`),a=require(`./net-C5kWnI4C.cjs`),o=require(`./dgram-C5rGcbej.cjs`),s=require(`./http.cjs`);var c=async()=>{let e=await t.t.then(e=>e.cloud.quota());return{premium:e.premium,overQuota:e.overQuota,throttled:e.overQuota&&!e.premium,usedBytes:e.usedBytes,limitBytes:e.limitBytes,remainingBytes:e.remaining,bytesPerSecond:e.bytesPerSecond,bitsPerSecond:e.bytesPerSecond*8}},l=e.n({available:()=>u,dgram:()=>o.i,dns:()=>r.t,fetch:()=>n.t,fs:()=>i.t,http:()=>s.t,net:()=>a.s,quota:()=>c}),u=()=>t.n;Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}});
1
+ const e=require(`./chunk-B6C_zzib.cjs`),t=require(`./api-CDb2pv7C.cjs`),n=require(`./proxy-A9UvWUaF.cjs`),r=require(`./dns.cjs`),i=require(`./cloud/fs.cjs`),a=require(`./net-C5kWnI4C.cjs`),o=require(`./dgram-B3WC4VdJ.cjs`),s=require(`./http.cjs`);var c=async()=>{let e=await t.t.then(e=>e.cloud.quota());return{premium:e.premium,overQuota:e.overQuota,throttled:e.overQuota&&!e.premium,usedBytes:e.usedBytes,limitBytes:e.limitBytes,remainingBytes:e.remaining,bytesPerSecond:e.bytesPerSecond,bitsPerSecond:e.bytesPerSecond*8}},l=e.n({available:()=>u,dgram:()=>o.i,dns:()=>r.t,fetch:()=>n.t,fs:()=>i.t,http:()=>s.t,net:()=>a.s,quota:()=>c}),u=()=>t.n;Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}});
@@ -4,7 +4,7 @@ import { t as r } from "./proxy-wiZN4eTR.js";
4
4
  import { t as i } from "./dns.js";
5
5
  import { t as a } from "./cloud/fs.js";
6
6
  import { s as o } from "./net-Bl6_W3bd.js";
7
- import { i as s } from "./dgram-DS5_yPc5.js";
7
+ import { i as s } from "./dgram-c_Xk7ckJ.js";
8
8
  import { t as c } from "./http.js";
9
9
  //#region src/lib/quota.ts
10
10
  var l = async () => {
package/cloud.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./api-CDb2pv7C.cjs`);const e=require(`./proxy-A9UvWUaF.cjs`),t=require(`./cloud-BrY9dKwV.cjs`),n=require(`./dns.cjs`);require(`./node-fs-lrlD_zqB.cjs`),require(`./storage-C2-_-bTO.cjs`);const r=require(`./cloud/fs.cjs`);require(`./utils-BsNRWMfl.cjs`);const i=require(`./net-C5kWnI4C.cjs`),a=require(`./dgram-C5rGcbej.cjs`),o=require(`./http.cjs`);exports.available=t.t,Object.defineProperty(exports,`dgram`,{enumerable:!0,get:function(){return a.i}}),Object.defineProperty(exports,`dns`,{enumerable:!0,get:function(){return n.t}}),exports.fetch=e.t,Object.defineProperty(exports,`fs`,{enumerable:!0,get:function(){return r.t}}),Object.defineProperty(exports,`http`,{enumerable:!0,get:function(){return o.t}}),Object.defineProperty(exports,`net`,{enumerable:!0,get:function(){return i.s}}),exports.quota=t.r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./api-CDb2pv7C.cjs`);const e=require(`./proxy-A9UvWUaF.cjs`),t=require(`./cloud-CWg9zCWm.cjs`),n=require(`./dns.cjs`);require(`./node-fs-DQn1TGJz.cjs`),require(`./storage-C2-_-bTO.cjs`);const r=require(`./cloud/fs.cjs`);require(`./utils-BsNRWMfl.cjs`);const i=require(`./net-C5kWnI4C.cjs`),a=require(`./dgram-B3WC4VdJ.cjs`),o=require(`./http.cjs`);exports.available=t.t,Object.defineProperty(exports,`dgram`,{enumerable:!0,get:function(){return a.i}}),Object.defineProperty(exports,`dns`,{enumerable:!0,get:function(){return n.t}}),exports.fetch=e.t,Object.defineProperty(exports,`fs`,{enumerable:!0,get:function(){return r.t}}),Object.defineProperty(exports,`http`,{enumerable:!0,get:function(){return o.t}}),Object.defineProperty(exports,`net`,{enumerable:!0,get:function(){return i.s}}),exports.quota=t.r;
package/cloud.d.ts CHANGED
@@ -286,7 +286,7 @@ declare const resolvers: {
286
286
  readonly dns: {
287
287
  readonly lookup: <T extends boolean = false>(hostname: string, options?: {
288
288
  all?: T;
289
- family: 0 | 4 | 6;
289
+ family?: 0 | 4 | 6;
290
290
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
291
291
  };
292
292
  readonly fs: {
@@ -445,7 +445,7 @@ declare const resolvers: {
445
445
  }>;
446
446
  readonly dnsLookup: <T extends boolean = false>(hostname: string, options?: {
447
447
  all?: T;
448
- family: 0 | 4 | 6;
448
+ family?: 0 | 4 | 6;
449
449
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
450
450
  readonly setOverlayHost: (push: (state: {
451
451
  modal: boolean;
@@ -488,7 +488,7 @@ declare const quota$1: () => Promise<QuotaStatus>;
488
488
 
489
489
  declare const lookup: <T extends boolean = false>(hostname: string, options?: {
490
490
  all?: T;
491
- family: 0 | 4 | 6;
491
+ family?: 0 | 4 | 6;
492
492
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
493
493
 
494
494
  type dns_AddressLookupResult = AddressLookupResult;
package/cloud.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import "./api-ByfayMm1.js";
2
2
  import { t as e } from "./proxy-wiZN4eTR.js";
3
- import { r as t, t as n } from "./cloud-C-LK4DWa.js";
3
+ import { r as t, t as n } from "./cloud-eLyGYzbA.js";
4
4
  import { t as r } from "./dns.js";
5
- import "./node-fs-Bd_UUx1m.js";
5
+ import "./node-fs-CdKPXPtW.js";
6
6
  import "./storage-BcJfnkm3.js";
7
7
  import { t as i } from "./cloud/fs.js";
8
8
  import "./utils-CNydj3OT.js";
9
9
  import { s as a } from "./net-Bl6_W3bd.js";
10
- import { i as o } from "./dgram-DS5_yPc5.js";
10
+ import { i as o } from "./dgram-c_Xk7ckJ.js";
11
11
  import { t as s } from "./http.js";
12
12
  export { n as available, o as dgram, r as dns, e as fetch, i as fs, s as http, a as net, t as quota };
@@ -0,0 +1,7 @@
1
+ //#region src/lib/connect-button.ts
2
+ var e = "https://fkn.app", t = (t) => {
3
+ let n = t ?? (typeof location < "u" ? location.origin : void 0);
4
+ return n ? `${e}/connect-button?origin=${encodeURIComponent(n)}` : `${e}/connect-button`;
5
+ };
6
+ //#endregion
7
+ export { t };
@@ -0,0 +1 @@
1
+ var e=`https://fkn.app`,t=t=>{let n=t??(typeof location<`u`?location.origin:void 0);return n?`${e}/connect-button?origin=${encodeURIComponent(n)}`:`${e}/connect-button`};Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
@@ -0,0 +1 @@
1
+ const e=require(`./chunk-B6C_zzib.cjs`),t=require(`./api-CDb2pv7C.cjs`),n=require(`./utils-BsNRWMfl.cjs`);let r=require(`buffer`),i=require(`events`),a=require(`ip-address`);var o=e.n({Socket:()=>s,createSocket:()=>p,default:()=>m}),s=class extends i.EventEmitter{_type;_localAddress;_remoteAddress;_webVPNUdpSocketPromise;_dataPort;_socketId;_sendQueue=[];_sendQueueBytes=0;_sendFlushScheduled=!1;_peerTailCache=new Map;constructor(e){if(super(e),!e)throw Error(`Missing options`);this._type=e.type}_lastRecvBufferSize=0;_lastSendBufferSize=0;_lastTtl=64;_lastMulticastTtl=1;_lastMulticastLoopback=!0;_setUdpOption(e){if(!this._webVPNUdpSocketPromise){this.emit(`error`,Error(`Cannot set socket option before bind`));return}this._webVPNUdpSocketPromise.then(async t=>{if(t)try{await t.setOption(e)}catch(e){this.emit(`error`,e)}})}_onDataPortBatch(e){let t=new DataView(e),n=0;for(;n+4<=e.byteLength;){let i=t.getUint32(n);n+=4;let a=n+i;if(a>e.byteLength)break;let o=n+4,s=t.getUint8(o);o+=1;let c,l,u;if(s===2){if(!this._remoteAddress){n=a;continue}c=this._remoteAddress.address,l=this._remoteAddress.family,u=this._remoteAddress.port}else{let n=new Uint8Array(e,o,s===0?4:16);s===0?(l=`IPv4`,c=`${n[0]}.${n[1]}.${n[2]}.${n[3]}`):(l=`IPv6`,c=d(n)),o+=n.byteLength,u=t.getUint16(o),o+=2}let f=t.getUint32(o);o+=4,this.emit(`message`,r.Buffer.from(e.slice(o,o+f)),{address:c,family:l,port:u,size:f}),n=a}}_peerTail(e,t){if(e===void 0||t===void 0)return c;let n=`${e}|${t}`,r=this._peerTailCache.get(n);if(r)return r;let i=a.Address4.isValid(e)?u(e):f(e),o=new Uint8Array(1+i.byteLength+2);return o[0]=i.byteLength===4?0:1,o.set(i,1),new DataView(o.buffer).setUint16(1+i.byteLength,t),this._peerTailCache.size>=4096&&this._peerTailCache.clear(),this._peerTailCache.set(n,o),o}_portSend(e,t,n){let r=this._peerTail(t,n),i=new Uint8Array(8+r.byteLength+4+e.byteLength),a=new DataView(i.buffer);a.setUint32(0,i.byteLength-4),a.setUint32(4,this._socketId),i.set(r,8),a.setUint32(8+r.byteLength,e.byteLength),i.set(e,12+r.byteLength),this._sendQueue.push(i),this._sendQueueBytes+=i.byteLength,!this._sendFlushScheduled&&(this._sendFlushScheduled=!0,queueMicrotask(()=>{this._sendFlushScheduled=!1;let e=this._sendQueue,t=this._sendQueueBytes;if(this._sendQueue=[],this._sendQueueBytes=0,!e.length||!this._dataPort)return;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.byteLength;this._dataPort.postMessage(n.buffer,[n.buffer])}))}addMembership(e,t){if(a.Address4.isValid(e)){let n=u(e),r=t&&a.Address4.isValid(t)?u(t):new Uint8Array([0,0,0,0]);this._setUdpOption({type:5,group:n,interface:r})}else if(a.Address6.isValid(e)){let t=f(e);this._setUdpOption({type:7,group:t,ifIndex:0})}else this.emit(`error`,Error(`Invalid multicast address: ${e}`))}address(){if(!this._localAddress)throw Error(`EBADF`);return this._localAddress}bind(...e){let i=n.i(...e),a=this._type===`udp6`?`::`:`0.0.0.0`;return this._webVPNUdpSocketPromise=t.t.then(e=>e.cloud.webvpn.udpSocket({type:this._type,address:i.address??a,port:i.port,dataPort:!0})).then(e=>{if(e.dataPort)this._socketId=e.socketId,this._dataPort=e.dataPort,this._dataPort.onmessage=e=>this._onDataPortBatch(e.data);else{let t=e.dataReadableStream.getReader(),n=async()=>{let{value:e,done:i}=await t.read();i||(this.emit(`message`,r.Buffer.from(e.data),{address:e.address,family:e.family,port:e.port,size:e.size}),n())};n()}return this._localAddress={address:e.localAddress,family:e.localFamily,port:e.localPort},e}).catch(e=>{this.emit(`error`,e)}),this._webVPNUdpSocketPromise.then(e=>{e&&this.emit(`listening`)}),i.callback&&this._webVPNUdpSocketPromise.then(e=>{e&&i.callback.call(this)}),this}close(e){if(!this._webVPNUdpSocketPromise)throw Error(`Socket not bound`);return this._webVPNUdpSocketPromise.then(async t=>{if(!t)throw Error(`Socket not bound`);this._dataPort?.close(),this._dataPort=void 0,await t.close(),e&&e(),this.emit(`close`)}),this}connect(...e){if(!this._webVPNUdpSocketPromise)throw Error(`Socket not bound`);this._webVPNUdpSocketPromise.then(async t=>{if(!t)throw Error(`Socket not bound`);let n=e[0],r=this._type===`udp6`?`::1`:`127.0.0.1`,i=typeof e[1]==`string`?e[1]:r,a=typeof e.at(-1)==`function`?e.at(-1):void 0;await t.connect({remotePort:n,remoteAddress:i}),this._remoteAddress={address:i,family:this._type===`udp6`?`IPv6`:`IPv4`,port:n},a&&a()})}disconnect(){if(!this._webVPNUdpSocketPromise)throw Error(`Socket not bound`);if(!this._remoteAddress)throw Error(`ERR_SOCKET_DGRAM_NOT_CONNECTED`);this._remoteAddress=void 0,this._webVPNUdpSocketPromise.then(async e=>{if(!e)throw Error(`Socket not bound`);await e.connect({remotePort:0,remoteAddress:this._type===`udp4`?`0.0.0.0`:`::`})})}dropMembership(e,t){if(a.Address4.isValid(e)){let n=u(e),r=t&&a.Address4.isValid(t)?u(t):new Uint8Array([0,0,0,0]);this._setUdpOption({type:6,group:n,interface:r})}else if(a.Address6.isValid(e)){let t=f(e);this._setUdpOption({type:8,group:t,ifIndex:0})}else this.emit(`error`,Error(`Invalid multicast address: ${e}`))}getRecvBufferSize(){return this._lastRecvBufferSize}getSendBufferSize(){return this._lastSendBufferSize}getSendQueueSize(){return 0}getSendQueueCount(){return 0}ref(){return this}remoteAddress(){if(!this._remoteAddress)throw Error(`ERR_SOCKET_DGRAM_NOT_CONNECTED`);return{address:this._remoteAddress.address,family:this._remoteAddress.family,port:this._remoteAddress.port}}send(...e){this._webVPNUdpSocketPromise||this.bind();let t=n.a(...e),r=this._type===`udp6`?`::1`:`127.0.0.1`;if(!this._webVPNUdpSocketPromise)throw Error(`Socket not bound`);this._webVPNUdpSocketPromise.then(e=>{if(!e)throw Error(`Socket not bound`);let n=l(t.message),i=t.callback,o=t.address??r,s=this._remoteAddress!==void 0&&t.address===void 0;if(this._dataPort&&(s||a.Address4.isValid(o)||a.Address6.isValid(o))){this._portSend(n,s?void 0:o,s?void 0:t.port),i?.call(this,null,n.byteLength);return}e.send({...t,address:o,message:n.byteOffset===0&&n.byteLength===n.buffer.byteLength?n.buffer:n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength)}).then(()=>i?.call(this,null,n.byteLength),e=>i?i.call(this,e,0):this.emit(`error`,e))})}setBroadcast(e){this._setUdpOption({type:0,value:e})}setMulticastInterface(e){}setMulticastLoopback(e){return this._setUdpOption({type:3,value:e}),this._setUdpOption({type:4,value:e}),this._lastMulticastLoopback=e,e}setMulticastTTL(e){return this._setUdpOption({type:2,value:e}),this._lastMulticastTtl=e,e}setRecvBufferSize(e){this._setUdpOption({type:10,value:e}),this._lastRecvBufferSize=e}setSendBufferSize(e){this._setUdpOption({type:9,value:e}),this._lastSendBufferSize=e}setTTL(e){return this._setUdpOption({type:1,value:e}),this._lastTtl=e,e}unref(){return this}addSourceSpecificMembership(e,t,n){}dropSourceSpecificMembership(e,t,n){}async[Symbol.asyncDispose](){await new Promise(e=>{this.close(e)})}},c=new Uint8Array([2]),l=e=>{if(typeof e==`string`)return n.s.encode(e);if(e instanceof Uint8Array)return e;if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(Array.isArray(e)){let t=e.map(l),n=new Uint8Array(t.reduce((e,t)=>e+t.byteLength,0)),r=0;for(let e of t)n.set(e,r),r+=e.byteLength;return n}return new Uint8Array(e)},u=e=>{let t=e.split(`.`).map(e=>parseInt(e,10));if(t.length!==4||t.some(e=>Number.isNaN(e)||e<0||e>255))throw Error(`Invalid IPv4 address: ${e}`);return new Uint8Array(t)},d=e=>{let t=[];for(let n=0;n<16;n+=2)t.push(e[n]<<8|e[n+1]);let n=-1,r=1;for(let e=0;e<8;){if(t[e]!==0){e++;continue}let i=e;for(;i<8&&t[i]===0;)i++;i-e>r&&(n=e,r=i-e),e=i}return n===-1?t.map(e=>e.toString(16)).join(`:`):`${t.slice(0,n).map(e=>e.toString(16)).join(`:`)}::${t.slice(n+r).map(e=>e.toString(16)).join(`:`)}`},f=e=>{let t=new a.Address6(e).getBitsBase16(0,128).match(/.{2}/g);if(!t||t.length!==16)throw Error(`Invalid IPv6 address: ${e}`);return new Uint8Array(t.map(e=>parseInt(e,16)))},p=(e,t)=>{let n=new s(typeof e==`string`?{type:e}:e);return t&&n.on(`message`,t),n},m={Socket:s,createSocket:p};Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
@@ -7,8 +7,8 @@ import { Address4 as s, Address6 as c } from "ip-address";
7
7
  //#region src/lib/webvpn/dgram.ts
8
8
  var l = /* @__PURE__ */ e({
9
9
  Socket: () => u,
10
- createSocket: () => h,
11
- default: () => g
10
+ createSocket: () => g,
11
+ default: () => _
12
12
  }), u = class extends o {
13
13
  _type;
14
14
  _localAddress;
@@ -60,14 +60,7 @@ var l = /* @__PURE__ */ e({
60
60
  c = this._remoteAddress.address, l = this._remoteAddress.family, u = this._remoteAddress.port;
61
61
  } else {
62
62
  let n = new Uint8Array(e, o, s === 0 ? 4 : 16);
63
- if (s === 0) l = "IPv4", c = `${n[0]}.${n[1]}.${n[2]}.${n[3]}`;
64
- else {
65
- l = "IPv6";
66
- let e = [];
67
- for (let t = 0; t < 16; t += 2) e.push(((n[t] << 8 | n[t + 1]) >>> 0).toString(16));
68
- c = e.join(":");
69
- }
70
- o += n.byteLength, u = t.getUint16(o), o += 2;
63
+ s === 0 ? (l = "IPv4", c = `${n[0]}.${n[1]}.${n[2]}.${n[3]}`) : (l = "IPv6", c = m(n)), o += n.byteLength, u = t.getUint16(o), o += 2;
71
64
  }
72
65
  let d = t.getUint32(o);
73
66
  o += 4, this.emit("message", a.from(e.slice(o, o + d)), {
@@ -82,8 +75,8 @@ var l = /* @__PURE__ */ e({
82
75
  if (e === void 0 || t === void 0) return d;
83
76
  let n = `${e}|${t}`, r = this._peerTailCache.get(n);
84
77
  if (r) return r;
85
- let i = s.isValid(e) ? p(e) : m(e), a = new Uint8Array(1 + i.byteLength + 2);
86
- return a[0] = i.byteLength === 4 ? 0 : 1, a.set(i, 1), new DataView(a.buffer).setUint16(1 + i.byteLength, t), this._peerTailCache.set(n, a), a;
78
+ let i = s.isValid(e) ? p(e) : h(e), a = new Uint8Array(1 + i.byteLength + 2);
79
+ return a[0] = i.byteLength === 4 ? 0 : 1, a.set(i, 1), new DataView(a.buffer).setUint16(1 + i.byteLength, t), this._peerTailCache.size >= 4096 && this._peerTailCache.clear(), this._peerTailCache.set(n, a), a;
87
80
  }
88
81
  _portSend(e, t, n) {
89
82
  let r = this._peerTail(t, n), i = new Uint8Array(8 + r.byteLength + 4 + e.byteLength), a = new DataView(i.buffer);
@@ -110,7 +103,7 @@ var l = /* @__PURE__ */ e({
110
103
  interface: r
111
104
  });
112
105
  } else if (c.isValid(e)) {
113
- let t = m(e);
106
+ let t = h(e);
114
107
  this._setUdpOption({
115
108
  type: 7,
116
109
  group: t,
@@ -180,7 +173,8 @@ var l = /* @__PURE__ */ e({
180
173
  }
181
174
  disconnect() {
182
175
  if (!this._webVPNUdpSocketPromise) throw Error("Socket not bound");
183
- this._webVPNUdpSocketPromise.then(async (e) => {
176
+ if (!this._remoteAddress) throw Error("ERR_SOCKET_DGRAM_NOT_CONNECTED");
177
+ this._remoteAddress = void 0, this._webVPNUdpSocketPromise.then(async (e) => {
184
178
  if (!e) throw Error("Socket not bound");
185
179
  await e.connect({
186
180
  remotePort: 0,
@@ -202,7 +196,7 @@ var l = /* @__PURE__ */ e({
202
196
  interface: r
203
197
  });
204
198
  } else if (c.isValid(e)) {
205
- let t = m(e);
199
+ let t = h(e);
206
200
  this._setUdpOption({
207
201
  type: 8,
208
202
  group: t,
@@ -316,15 +310,29 @@ var l = /* @__PURE__ */ e({
316
310
  if (t.length !== 4 || t.some((e) => Number.isNaN(e) || e < 0 || e > 255)) throw Error(`Invalid IPv4 address: ${e}`);
317
311
  return new Uint8Array(t);
318
312
  }, m = (e) => {
313
+ let t = [];
314
+ for (let n = 0; n < 16; n += 2) t.push(e[n] << 8 | e[n + 1]);
315
+ let n = -1, r = 1;
316
+ for (let e = 0; e < 8;) {
317
+ if (t[e] !== 0) {
318
+ e++;
319
+ continue;
320
+ }
321
+ let i = e;
322
+ for (; i < 8 && t[i] === 0;) i++;
323
+ i - e > r && (n = e, r = i - e), e = i;
324
+ }
325
+ return n === -1 ? t.map((e) => e.toString(16)).join(":") : `${t.slice(0, n).map((e) => e.toString(16)).join(":")}::${t.slice(n + r).map((e) => e.toString(16)).join(":")}`;
326
+ }, h = (e) => {
319
327
  let t = new c(e).getBitsBase16(0, 128).match(/.{2}/g);
320
328
  if (!t || t.length !== 16) throw Error(`Invalid IPv6 address: ${e}`);
321
329
  return new Uint8Array(t.map((e) => parseInt(e, 16)));
322
- }, h = (e, t) => {
330
+ }, g = (e, t) => {
323
331
  let n = new u(typeof e == "string" ? { type: e } : e);
324
332
  return t && n.on("message", t), n;
325
- }, g = {
333
+ }, _ = {
326
334
  Socket: u,
327
- createSocket: h
335
+ createSocket: g
328
336
  };
329
337
  //#endregion
330
- export { l as i, h as n, g as r, u as t };
338
+ export { l as i, g as n, _ as r, u as t };
package/dgram.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`./api-CDb2pv7C.cjs`),require(`./utils-BsNRWMfl.cjs`);const e=require(`./dgram-C5rGcbej.cjs`);exports.Socket=e.t,exports.createSocket=e.n,exports.default=e.r;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`./api-CDb2pv7C.cjs`),require(`./utils-BsNRWMfl.cjs`);const e=require(`./dgram-B3WC4VdJ.cjs`);exports.Socket=e.t,exports.createSocket=e.n,exports.default=e.r;
package/dgram.d.ts CHANGED
@@ -283,7 +283,7 @@ declare const resolvers: {
283
283
  readonly dns: {
284
284
  readonly lookup: <T extends boolean = false>(hostname: string, options?: {
285
285
  all?: T;
286
- family: 0 | 4 | 6;
286
+ family?: 0 | 4 | 6;
287
287
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
288
288
  };
289
289
  readonly fs: {
@@ -442,7 +442,7 @@ declare const resolvers: {
442
442
  }>;
443
443
  readonly dnsLookup: <T extends boolean = false>(hostname: string, options?: {
444
444
  all?: T;
445
- family: 0 | 4 | 6;
445
+ family?: 0 | 4 | 6;
446
446
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
447
447
  readonly setOverlayHost: (push: (state: {
448
448
  modal: boolean;
package/dgram.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import "./api-ByfayMm1.js";
2
2
  import "./utils-CNydj3OT.js";
3
- import { n as e, r as t, t as n } from "./dgram-DS5_yPc5.js";
3
+ import { n as e, r as t, t as n } from "./dgram-c_Xk7ckJ.js";
4
4
  export { n as Socket, e as createSocket, t as default };
package/dns.d.ts CHANGED
@@ -5,7 +5,7 @@ type AddressLookupResult = {
5
5
 
6
6
  declare const lookup: <T extends boolean = false>(hostname: string, options?: {
7
7
  all?: T;
8
- family: 0 | 4 | 6;
8
+ family?: 0 | 4 | 6;
9
9
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
10
10
 
11
11
  export { lookup };