@fkn/lib 0.5.4 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/account.cjs +1 -1
- package/account.js +2 -2
- package/api/account.d.ts +7 -0
- package/api/broker-bridge.d.ts +12 -0
- package/api/connect-store.d.ts +9 -0
- package/api/connect.d.ts +2 -0
- package/api/data-plane.d.ts +28 -0
- package/api/dns/index.d.ts +1 -0
- package/api/dns/lookup.d.ts +8 -0
- package/api/index.d.ts +78 -0
- package/api/install-prompt.d.ts +2 -0
- package/api/local-net/index.d.ts +43 -0
- package/api/overlay-mount.d.ts +2 -0
- package/api/overlay.d.ts +17 -0
- package/api/packages/host.d.ts +12 -0
- package/api/packages/identity.d.ts +1 -0
- package/api/packages/index.d.ts +34 -0
- package/api/packages/picker.d.ts +28 -0
- package/api/packages/registry.d.ts +20 -0
- package/api/packages/store.d.ts +6 -0
- package/api/packages/types.d.ts +56 -0
- package/api/preconnect.d.ts +1 -0
- package/api/proxy/index.d.ts +1 -0
- package/api/proxy/proxy-fetch.d.ts +5 -0
- package/api/quota.d.ts +10 -0
- package/api/rate-token.d.ts +3 -0
- package/api/session-limit.d.ts +1 -0
- package/api/storage.d.ts +20 -0
- package/api/toast.d.ts +1 -0
- package/api/token-source.d.ts +4 -0
- package/api/ui-events.d.ts +8 -0
- package/api/ui-host.d.ts +2 -0
- package/api/webvpn/index.d.ts +3 -0
- package/api/webvpn/packets/metadata.d.ts +31 -0
- package/api/webvpn/packets/tcp-listener.d.ts +39 -0
- package/api/webvpn/packets/tcp.d.ts +88 -0
- package/api/webvpn/packets/udp.d.ts +183 -0
- package/api/webvpn/packets/utils.d.ts +24 -0
- package/api/webvpn/tcp-listener.d.ts +11 -0
- package/api/webvpn/tcp.d.ts +33 -0
- package/api/webvpn/udp.d.ts +33 -0
- package/api/webvpn/utils.d.ts +26 -0
- package/api/webvpn/webtransport.d.ts +62 -0
- package/api/worker/client.d.ts +3 -0
- package/api/worker/protocol.d.ts +15 -0
- package/{api-CDb2pv7C.cjs → api-DD5v1qP9.cjs} +1 -1
- package/{background-TtzKw6g0.js → background-BVBbBOmL.js} +41 -66
- package/background-B_VgpARk.cjs +1 -0
- package/cloud/dgram.cjs +1 -1
- package/cloud/dgram.js +2 -4
- package/cloud/dns.cjs +1 -1
- package/cloud/dns.js +0 -1
- package/cloud/fs/promises.cjs +1 -1
- package/cloud/fs/promises.js +0 -3
- package/cloud/fs.cjs +1 -1
- package/cloud/fs.js +3 -4
- package/cloud/http.cjs +1 -1
- package/cloud/http.js +0 -3
- package/cloud/net.cjs +1 -1
- package/cloud/net.js +2 -3
- package/cloud-5o7yJHeX.cjs +1 -0
- package/cloud-BFyf2uC7.js +112 -0
- package/cloud.cjs +1 -1
- package/cloud.js +8 -12
- package/connect-button-BBEjXzB3.cjs +1 -0
- package/connect-button-Ds9KpXHe.js +7 -0
- package/desktop.cjs +1 -1
- package/desktop.js +1 -1
- package/dgram-CE43gJq9.cjs +1 -0
- package/{dgram-DS5_yPc5.js → dgram-wtjARbt0.js} +30 -22
- package/dgram.cjs +1 -1
- package/dgram.js +1 -3
- package/dns.cjs +1 -1
- package/dns.js +2 -2
- package/extension-CPj10qwa.js +67 -0
- package/extension-D-NUXxzF.cjs +1 -0
- package/extension.cjs +1 -1
- package/extension.js +3 -5
- package/fs/promises.cjs +1 -1
- package/fs/promises.js +1 -4
- package/fs-BfmfMBiw.cjs +1 -0
- package/{fs-CQ-eWjXw.js → fs-D6nNf1mR.js} +4 -4
- package/fs.cjs +1 -1
- package/fs.js +1 -4
- package/http.cjs +2 -2
- package/http.js +7 -7
- package/index.cjs +1 -1
- package/index.js +23 -38
- package/{account.d.ts → lib/account.d.ts} +5 -8
- package/lib/api.d.ts +300 -0
- package/lib/auto.d.ts +5 -0
- package/lib/cloud/dgram.d.ts +2 -0
- package/lib/cloud/dns.d.ts +1 -0
- package/lib/cloud/frame.d.ts +3 -0
- package/lib/cloud/fs-promises.d.ts +5 -0
- package/lib/cloud/fs.d.ts +22 -0
- package/lib/cloud/http.d.ts +2 -0
- package/lib/cloud/net.d.ts +2 -0
- package/lib/cloud.d.ts +10 -0
- package/lib/connect-button.d.ts +1 -0
- package/lib/connect.d.ts +1 -0
- package/{desktop.d.ts → lib/desktop.d.ts} +6 -8
- package/lib/dns.d.ts +6 -0
- package/lib/dom.d.ts +2 -0
- package/lib/extension-prompt.d.ts +1 -0
- package/lib/extension.d.ts +4 -0
- package/lib/fkn-target.d.ts +1 -0
- package/lib/frame.d.ts +2 -0
- package/lib/fs/content-type.d.ts +1 -0
- package/lib/fs/hybrid.d.ts +10 -0
- package/lib/fs/index.d.ts +87 -0
- package/lib/fs/opfs.d.ts +8 -0
- package/lib/fs/promises.d.ts +8 -0
- package/lib/fs/types.d.ts +16 -0
- package/lib/index.d.ts +18 -0
- package/lib/node-fs/index.d.ts +95 -0
- package/lib/node-fs/shared.d.ts +39 -0
- package/lib/node-fs/store.d.ts +21 -0
- package/lib/opfs/index.d.ts +84 -0
- package/lib/opfs/promises.d.ts +8 -0
- package/lib/overlay.d.ts +14 -0
- package/lib/packages.d.ts +69 -0
- package/lib/proxy.d.ts +5 -0
- package/lib/quota.d.ts +20 -0
- package/lib/react.d.ts +7 -0
- package/lib/relay.d.ts +5 -0
- package/lib/storage.d.ts +22 -0
- package/lib/webvpn/dgram.d.ts +86 -0
- package/lib/webvpn/http.d.ts +180 -0
- package/lib/webvpn/index.d.ts +1 -0
- package/lib/webvpn/net.d.ts +132 -0
- package/lib/webvpn/utils.d.ts +32 -0
- package/net-CpuAhaQC.cjs +1 -0
- package/{net-Bl6_W3bd.js → net-DKMWPXb_.js} +3 -3
- package/net.cjs +1 -1
- package/net.js +2 -3
- package/node-fs-C0eKnboT.cjs +1 -0
- package/{node-fs-Bd_UUx1m.js → node-fs-Dbf93qP7.js} +40 -17
- package/opfs/promises.cjs +1 -1
- package/opfs/promises.js +2 -3
- package/{opfs-BfcYLPGb.js → opfs-7_GmzQ93.js} +1 -1
- package/opfs-uClkgnb5.cjs +1 -0
- package/opfs.cjs +1 -1
- package/opfs.js +33 -32
- package/package.json +31 -21
- package/packages.cjs +1 -0
- package/packages.js +150 -0
- package/{locator-DxAsGV_o.js → proxy-C8SG1Beo.js} +542 -344
- package/proxy-bPaU3-Cz.cjs +53 -0
- package/react.cjs +1 -0
- package/react.js +18 -0
- package/{chunk-CPXzm0be.js → rolldown-runtime-DF993M8W.js} +1 -1
- package/rolldown-runtime-Doa5O59j.cjs +1 -0
- package/sandbox.d.ts +7 -0
- package/storage-OkwsFLN1.cjs +1 -0
- package/{storage-BcJfnkm3.js → storage-TmeyhZGt.js} +2 -2
- package/{utils-BsNRWMfl.cjs → utils-CoimMjf9.cjs} +1 -1
- package/background-Dk_vaVP1.cjs +0 -1
- package/chunk-B6C_zzib.cjs +0 -1
- package/cloud/dgram.d.ts +0 -537
- package/cloud/dns.d.ts +0 -12
- package/cloud/fs/promises.d.ts +0 -45
- package/cloud/fs.d.ts +0 -75
- package/cloud/http.d.ts +0 -767
- package/cloud/net.d.ts +0 -606
- package/cloud-BrY9dKwV.cjs +0 -1
- package/cloud-C-LK4DWa.js +0 -33
- package/cloud.d.ts +0 -1053
- package/dgram-C5rGcbej.cjs +0 -1
- package/dgram.d.ts +0 -541
- package/dns.d.ts +0 -12
- package/extension-9Uv_0HdS.cjs +0 -1
- package/extension-Dgz0UTy0.js +0 -245
- package/extension.d.ts +0 -852
- package/favicon.svg +0 -5
- package/fs/promises.d.ts +0 -65
- package/fs-Bc6087fG.cjs +0 -1
- package/fs.d.ts +0 -138
- package/http.d.ts +0 -767
- package/index.d.ts +0 -2254
- package/locator-Cf7M3QKN.cjs +0 -53
- package/net-C5kWnI4C.cjs +0 -1
- package/net.d.ts +0 -606
- package/node-fs-lrlD_zqB.cjs +0 -1
- package/opfs/promises.d.ts +0 -46
- package/opfs-Dsi4FkJU.cjs +0 -1
- package/opfs.d.ts +0 -83
- package/proxy-A9UvWUaF.cjs +0 -1
- package/proxy-wiZN4eTR.js +0 -14
- package/storage-C2-_-bTO.cjs +0 -1
- /package/{api-ByfayMm1.js → api--bnCFd4w.js} +0 -0
- /package/{utils-CNydj3OT.js → utils-DPtyxGQu.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as e } from "./
|
|
2
|
-
import {
|
|
1
|
+
import { t as e } from "./rolldown-runtime-DF993M8W.js";
|
|
2
|
+
import { L as t, _ as n, b as r, f as i, g as a, h as o, m as s, p as c } from "./proxy-C8SG1Beo.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
|
|
@@ -703,8 +703,7 @@ var d = (/* @__PURE__ */ e(((e, t) => {
|
|
|
703
703
|
}, s = (e, t, n) => new Proxy(t, { apply(t, r, i) {
|
|
704
704
|
return n.call(r, e, ...i);
|
|
705
705
|
} }), c = Function.call.bind(Object.prototype.hasOwnProperty), l = (e, t = {}, n = {}) => {
|
|
706
|
-
let r = Object.create(null)
|
|
707
|
-
return new Proxy(Object.create(e), {
|
|
706
|
+
let r = Object.create(null), i = {
|
|
708
707
|
has(t, n) {
|
|
709
708
|
return n in e || n in r;
|
|
710
709
|
},
|
|
@@ -740,7 +739,8 @@ var d = (/* @__PURE__ */ e(((e, t) => {
|
|
|
740
739
|
deleteProperty(e, t) {
|
|
741
740
|
return Reflect.deleteProperty(r, t);
|
|
742
741
|
}
|
|
743
|
-
});
|
|
742
|
+
}, a = Object.create(e);
|
|
743
|
+
return new Proxy(a, i);
|
|
744
744
|
}, u = (e) => ({
|
|
745
745
|
addListener(t, n, ...r) {
|
|
746
746
|
t.addListener(e.get(n), ...r);
|
|
@@ -828,16 +828,16 @@ var d = (/* @__PURE__ */ e(((e, t) => {
|
|
|
828
828
|
}, l(e, h, t);
|
|
829
829
|
})(chrome);
|
|
830
830
|
});
|
|
831
|
-
})))(), f = "FKN_WEB_EXTENSION_BACKGROUND_COMMUNICATION_OSRA_KEY", p = "FKN_WEB_EXTENSION_CONTENT_SCRIPT_PEER_OSRA_KEY", m = "FKN_WEB_EXTENSION_CONTENT_SCRIPT_RELAY_ENVELOPE_KEY", h = (e) =>
|
|
832
|
-
let
|
|
833
|
-
if (
|
|
834
|
-
let { promise:
|
|
835
|
-
resolvers: u(
|
|
831
|
+
})))(), f = "FKN_WEB_EXTENSION_BACKGROUND_COMMUNICATION_OSRA_KEY", p = "FKN_WEB_EXTENSION_CONTENT_SCRIPT_PEER_OSRA_KEY", m = "FKN_WEB_EXTENSION_CONTENT_SCRIPT_RELAY_ENVELOPE_KEY", h = (e) => r(e) && e.FKN_WEB_EXTENSION_CONTENT_SCRIPT_RELAY_ENVELOPE_KEY === !0 && typeof e.from == "string" && r(e.message), g = /* @__PURE__ */ new Map(), _ = (e) => {
|
|
832
|
+
let n = g.get(e);
|
|
833
|
+
if (n) return n;
|
|
834
|
+
let { promise: r, resolve: i } = Promise.withResolvers(), { promise: a, resolve: o } = Promise.withResolvers(), s = {
|
|
835
|
+
resolvers: u(I, {
|
|
836
836
|
key: p,
|
|
837
|
-
revivableModules:
|
|
837
|
+
revivableModules: t,
|
|
838
838
|
transport: {
|
|
839
839
|
isJson: !0,
|
|
840
|
-
receive: (e) =>
|
|
840
|
+
receive: (e) => i(e),
|
|
841
841
|
emit: (t) => {
|
|
842
842
|
d.runtime.sendMessage({
|
|
843
843
|
[m]: !0,
|
|
@@ -847,7 +847,7 @@ var d = (/* @__PURE__ */ e(((e, t) => {
|
|
|
847
847
|
}
|
|
848
848
|
}
|
|
849
849
|
}),
|
|
850
|
-
listener:
|
|
850
|
+
listener: r,
|
|
851
851
|
stale: a,
|
|
852
852
|
markStale: o
|
|
853
853
|
};
|
|
@@ -855,7 +855,7 @@ var d = (/* @__PURE__ */ e(((e, t) => {
|
|
|
855
855
|
};
|
|
856
856
|
d.runtime.onMessage.addListener((e, t) => {
|
|
857
857
|
h(e) && l(e.message, "FKN_WEB_EXTENSION_CONTENT_SCRIPT_PEER_OSRA_KEY") && _(e.from).listener.then((n) => n(e.message, { sender: t }));
|
|
858
|
-
}),
|
|
858
|
+
}), n((e) => {
|
|
859
859
|
let t = g.get(e);
|
|
860
860
|
t && (t.markStale(), g.delete(e));
|
|
861
861
|
});
|
|
@@ -974,8 +974,8 @@ var v = async (e) => {
|
|
|
974
974
|
}, j = () => {
|
|
975
975
|
k?.stop(), k = null;
|
|
976
976
|
}, M = {
|
|
977
|
-
[
|
|
978
|
-
[
|
|
977
|
+
[c]: i,
|
|
978
|
+
[o]: s
|
|
979
979
|
}, N = (e) => {
|
|
980
980
|
let t = M[e.locatorType];
|
|
981
981
|
if (!t) throw Error(`Unknown locator kind: "${e.locatorType}"`);
|
|
@@ -991,57 +991,32 @@ var v = async (e) => {
|
|
|
991
991
|
};
|
|
992
992
|
}
|
|
993
993
|
return null;
|
|
994
|
-
}, I =
|
|
995
|
-
let i = F(e);
|
|
996
|
-
if (i) {
|
|
997
|
-
let r = await i.module.resolvePeer({
|
|
998
|
-
parts: e,
|
|
999
|
-
selfIndex: i.index,
|
|
1000
|
-
resolveLocal: P
|
|
1001
|
-
}), { resolvers: a, stale: o } = await v(r), s = e.slice(i.index + 1);
|
|
1002
|
-
return Promise.race([a.executeLocator(s, t, n), o.then(() => {
|
|
1003
|
-
throw Error(`peer ${r} became stale during call, retrying`);
|
|
1004
|
-
})]);
|
|
1005
|
-
}
|
|
1006
|
-
if (t === "__fkn_highlight") {
|
|
1007
|
-
if (n[0]?.on) {
|
|
1008
|
-
let t = P(e)[0];
|
|
1009
|
-
t && (o(!0), A(t));
|
|
1010
|
-
} else j(), o(!1);
|
|
1011
|
-
return;
|
|
1012
|
-
}
|
|
1013
|
-
let a = [...c.operationModules, ...r.operationModules].find((e) => e.type === t);
|
|
1014
|
-
if (!a) throw Error(`Unknown operation: "${t}"`);
|
|
1015
|
-
return a.resolve({ elements: P(e) }, ...n);
|
|
1016
|
-
}, L = "FKN_EVALUATE", R, z = () => (R ??= new Promise((e, t) => {
|
|
1017
|
-
let n = (t) => {
|
|
1018
|
-
let r = t.data;
|
|
1019
|
-
!r || r.channel !== L || r.kind !== "ready" || (window.removeEventListener("message", n), e());
|
|
1020
|
-
};
|
|
1021
|
-
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
|
-
}), R), B = 0, V = {
|
|
994
|
+
}, I = {
|
|
1025
995
|
contentScriptDummy: () => {},
|
|
1026
|
-
executeLocator:
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
996
|
+
executeLocator: async (e, t, n) => {
|
|
997
|
+
let r = F(e);
|
|
998
|
+
if (r) {
|
|
999
|
+
let i = await r.module.resolvePeer({
|
|
1000
|
+
parts: e,
|
|
1001
|
+
selfIndex: r.index,
|
|
1002
|
+
resolveLocal: P
|
|
1003
|
+
}), { resolvers: a, stale: o } = await v(i), s = e.slice(r.index + 1);
|
|
1004
|
+
return Promise.race([a.executeLocator(s, t, n), o.then(() => {
|
|
1005
|
+
throw Error(`peer ${i} became stale during call, retrying`);
|
|
1006
|
+
})]);
|
|
1007
|
+
}
|
|
1008
|
+
if (t === "__fkn_highlight") {
|
|
1009
|
+
if (n[0]?.on) {
|
|
1010
|
+
let t = P(e)[0];
|
|
1011
|
+
t && (a(!0), A(t));
|
|
1012
|
+
} else j(), a(!1);
|
|
1013
|
+
return;
|
|
1014
|
+
}
|
|
1015
|
+
let o = [...i.operationModules, ...s.operationModules].find((e) => e.type === t);
|
|
1016
|
+
if (!o) throw Error(`Unknown operation: "${t}"`);
|
|
1017
|
+
return o.resolve({ elements: P(e) }, ...n);
|
|
1043
1018
|
}
|
|
1044
|
-
},
|
|
1019
|
+
}, L = u(I, {
|
|
1045
1020
|
key: f,
|
|
1046
1021
|
transport: {
|
|
1047
1022
|
isJson: !0,
|
|
@@ -1050,4 +1025,4 @@ var v = async (e) => {
|
|
|
1050
1025
|
}
|
|
1051
1026
|
});
|
|
1052
1027
|
//#endregion
|
|
1053
|
-
export {
|
|
1028
|
+
export { L as backgroundResolvers };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./proxy-bPaU3-Cz.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),i={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)}},a=Object.create(e);return new Proxy(a,i)},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.b(e)&&e.FKN_WEB_EXTENSION_CONTENT_SCRIPT_RELAY_ENVELOPE_KEY===!0&&typeof e.from==`string`&&t.b(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)(O,{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._(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.p]:t.f,[t.h]:t.m},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={contentScriptDummy:()=>{},executeLocator: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.g(!0),S(n))}else C(),t.g(!1);return}let a=[...t.f.operationModules,...t.m.operationModules].find(e=>e.type===n);if(!a)throw Error(`Unknown operation: "${n}"`);return a.resolve({elements:E(e)},...r)}},k=(0,n.expose)(O,{key:i,transport:{isJson:!0,receive:r.runtime.onMessage,emit:r.runtime}});exports.backgroundResolvers=k;
|
package/cloud/dgram.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../dgram-CE43gJq9.cjs");exports.Socket=e.t,exports.createSocket=e.n,exports.default=e.r;
|
package/cloud/dgram.js
CHANGED
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
|
|
3
|
-
import { n as e, t } from "../dgram-DS5_yPc5.js";
|
|
4
|
-
export { t as Socket, e as createSocket };
|
|
1
|
+
import { n as e, r as t, t as n } from "../dgram-wtjARbt0.js";
|
|
2
|
+
export { n as Socket, e as createSocket, t as default };
|
package/cloud/dns.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`})
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../dns.cjs");exports.lookup=e.lookup;
|
package/cloud/dns.js
CHANGED
package/cloud/fs/promises.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`})
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});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;
|
package/cloud/fs/promises.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import "../../api-ByfayMm1.js";
|
|
2
|
-
import "../../node-fs-Bd_UUx1m.js";
|
|
3
|
-
import "../../storage-BcJfnkm3.js";
|
|
4
1
|
import { promises as e } from "../fs.js";
|
|
5
2
|
//#region src/lib/cloud/fs-promises.ts
|
|
6
3
|
var { readFile: t, writeFile: n, unlink: r, rename: i, readdir: a, mkdir: o, rm: s, rmdir: c, stat: l, lstat: u, access: d } = e;
|
package/cloud/fs.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../rolldown-runtime-Doa5O59j.cjs"),t=require("../node-fs-C0eKnboT.cjs"),n=require("../storage-OkwsFLN1.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,7 +1,6 @@
|
|
|
1
|
-
import { n as e } from "../
|
|
2
|
-
import "../
|
|
3
|
-
import {
|
|
4
|
-
import { o as n, r } from "../storage-BcJfnkm3.js";
|
|
1
|
+
import { n as e } from "../rolldown-runtime-DF993M8W.js";
|
|
2
|
+
import { t } from "../node-fs-Dbf93qP7.js";
|
|
3
|
+
import { o as n, r } from "../storage-TmeyhZGt.js";
|
|
5
4
|
//#region src/lib/cloud/fs.ts
|
|
6
5
|
var i = /* @__PURE__ */ e({
|
|
7
6
|
available: () => a,
|
package/cloud/http.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}})
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../http.cjs");exports.Agent=e.Agent,exports.ClientRequest=e.ClientRequest,exports.HTTPParser=e.HTTPParser,exports.IncomingMessage=e.IncomingMessage,exports.METHODS=e.METHODS,exports.STATUS_CODES=e.STATUS_CODES,exports.Server=e.Server,exports.ServerResponse=e.ServerResponse,exports._default=e._default,exports.default=e._default,exports.createServer=e.createServer,exports.get=e.get,exports.globalAgent=e.globalAgent,exports.request=e.request;
|
package/cloud/http.js
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
import "../api-ByfayMm1.js";
|
|
2
|
-
import "../utils-CNydj3OT.js";
|
|
3
|
-
import "../net-Bl6_W3bd.js";
|
|
4
1
|
import { Agent as e, ClientRequest as t, HTTPParser as n, IncomingMessage as r, METHODS as i, STATUS_CODES as a, Server as o, ServerResponse as s, _default as c, createServer as l, get as u, globalAgent as d, request as f } from "../http.js";
|
|
5
2
|
export { e as Agent, t as ClientRequest, n as HTTPParser, r as IncomingMessage, i as METHODS, a as STATUS_CODES, o as Server, s as ServerResponse, c as _default, c as default, l as createServer, u as get, d as globalAgent, f as request };
|
package/cloud/net.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}})
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../utils-CoimMjf9.cjs"),t=require("../net-CpuAhaQC.cjs");exports.Server=t.t,exports.Socket=t.n,exports._default=t.r,exports.default=t.r,exports.connect=t.i,exports.createConnection=t.a,exports.createServer=t.o,exports.isIP=e.t,exports.isIPv4=e.n,exports.isIPv6=e.r;
|
package/cloud/net.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
import { n as
|
|
3
|
-
import { a as r, i, n as a, o, r as s, t as c } from "../net-Bl6_W3bd.js";
|
|
1
|
+
import { n as e, r as t, t as n } from "../utils-DPtyxGQu.js";
|
|
2
|
+
import { a as r, i, n as a, o, r as s, t as c } from "../net-DKMWPXb_.js";
|
|
4
3
|
export { c as Server, a as Socket, s as _default, s as default, i as connect, r as createConnection, o as createServer, n as isIP, e as isIPv4, t as isIPv6 };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./proxy-bPaU3-Cz.cjs"),n=require("./api-DD5v1qP9.cjs"),r=require("./dns.cjs"),i=require("./cloud/fs.cjs"),a=require("./net-CpuAhaQC.cjs"),o=require("./dgram-CE43gJq9.cjs"),s=require("./http.cjs");let c=require("osra");var l=`autoplay; fullscreen; encrypted-media; picture-in-picture; clipboard-read; clipboard-write`,u=2e4,d=65e3,f=3e4,p=5e3,m=new Set([`videoElement`]),h=()=>`https://fkn.app`,g=e=>!e||e===`about:blank`,_=e=>e?``:`incognito-${crypto.randomUUID()}`,v=({target:e,session:t})=>{let n=new URL(`/attach-frame`,h());return e&&n.searchParams.set(`url`,e),t&&n.searchParams.set(`session`,t),n.href},y=(e,t,n)=>{let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(n)),t)});return Promise.race([e,i]).finally(()=>clearTimeout(r))},b=(e,t)=>{let n=()=>{a(),t()},r=e.parentNode,i=new MutationObserver(()=>{(!e.isConnected||e.parentNode!==r)&&(a(),t())}),a=()=>{window.removeEventListener(`pagehide`,n),i.disconnect()};window.addEventListener(`pagehide`,n,{once:!0}),r&&i.observe(r,{childList:!0}),e.isConnected||(a(),t())},x=()=>Object.assign(Error(`cloud.attachFrame: the attached iframe left the document or was reloaded; attach a fresh iframe`),{name:t.v}),S=(e,t)=>{let n=[...e.split(`;`),...t.split(`;`)].map(e=>e.trim()).filter(Boolean);return[...new Set(n)].join(`; `)},C=e=>{let t=e.getAttribute(`sandbox`);if(t===null)return;let n=new Set(t.toLowerCase().split(/\s+/).filter(Boolean)),r=[`allow-scripts`,`allow-same-origin`].filter(e=>!n.has(e));if(r.length)throw Error(`cloud.attachFrame: the iframe's sandbox attribute must include ${r.join(` and `)} for the render proxy to load`)},w=async({iframe:e,domains:n=[],syncCookies:r=!0,lockdown:i=!1})=>{if(typeof window>`u`)throw Error(`cloud.attachFrame needs a window realm`);if(i)throw Error(`cloud.attachFrame does not support lockdown; use the extension backend for a sealed frame`);if(!e.isConnected)throw Error(`cloud.attachFrame: the iframe must be connected to the document before attaching`);C(e);let a=e.getAttribute(`src`)??``,o=(()=>{if(g(a))return null;try{return new URL(e.src||a,location.href)}catch{throw Error(`cloud.attachFrame: the iframe src is not a valid URL: ${a}`)}})();if(o){let e=new URL(`/attach-frame`,h());if(o.origin===e.origin&&o.pathname===e.pathname)throw Error(`cloud.attachFrame: this iframe is already attached; navigate with the Frame returned by that attach or use a fresh iframe`)}let s=o?.href??``;s&&t.l(s);let w=s,T=_(r),E=new AbortController;if(e.referrerPolicy=`origin`,e.allow=S(l,e.allow),e.src=v({target:s,session:T}),!e.contentWindow)throw Error(`cloud.attachFrame: the iframe window is not available`);try{let n=await y((0,c.expose)({},{key:`fkn-attach-frame`,origin:h(),transport:{receive:window,emit:e.contentWindow},unregisterSignal:E.signal}),u,`cloud.attachFrame: timed out connecting to the render proxy page`);await y(n.ready(),d,`cloud.attachFrame: the render proxy never became ready`),b(e,()=>E.abort());let r=e.contentWindow,i=()=>{if(!(!E.signal.aborted&&e.isConnected&&e.contentWindow===r))throw E.abort(),x()};return t.s({executeLocator:(e,r,a)=>m.has(r)?Promise.reject(t.y(r,`cloud`)):(i(),n.executeLocator(e,r,a)),ensurePermission:async()=>{},goto:async(e,t={})=>{let r=new URL(e,location.href).href;i();let{timeoutMs:a}=t;await y(n.goto(r,t),(a??f)+p,`cloud.attachFrame: the render proxy did not answer goto; the frame may have been detached or its page reloaded`),w=r},url:()=>w})}catch(t){throw E.abort(),e.src=s||`about:blank`,t}},T=async()=>{let e=await n.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}},E=e.n({attachFrame:()=>w,available:()=>D,dgram:()=>o.i,dns:()=>r.t,fetch:()=>t.t,fs:()=>i.t,http:()=>s.t,net:()=>a.s,quota:()=>T}),D=()=>n.n;Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return D}});
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { n as e } from "./rolldown-runtime-DF993M8W.js";
|
|
2
|
+
import { l as t, s as n, t as r, v as i, y as a } from "./proxy-C8SG1Beo.js";
|
|
3
|
+
import { n as o, t as s } from "./api--bnCFd4w.js";
|
|
4
|
+
import { t as c } from "./dns.js";
|
|
5
|
+
import { t as l } from "./cloud/fs.js";
|
|
6
|
+
import { s as u } from "./net-DKMWPXb_.js";
|
|
7
|
+
import { i as d } from "./dgram-wtjARbt0.js";
|
|
8
|
+
import { t as f } from "./http.js";
|
|
9
|
+
import { expose as p } from "osra";
|
|
10
|
+
//#region src/lib/cloud/frame.ts
|
|
11
|
+
var m = "autoplay; fullscreen; encrypted-media; picture-in-picture; clipboard-read; clipboard-write", h = 2e4, g = 65e3, _ = 3e4, v = 5e3, y = /* @__PURE__ */ new Set(["videoElement"]), b = () => "https://fkn.app", x = (e) => !e || e === "about:blank", S = (e) => e ? "" : `incognito-${crypto.randomUUID()}`, C = ({ target: e, session: t }) => {
|
|
12
|
+
let n = new URL("/attach-frame", b());
|
|
13
|
+
return e && n.searchParams.set("url", e), t && n.searchParams.set("session", t), n.href;
|
|
14
|
+
}, w = (e, t, n) => {
|
|
15
|
+
let r, i = new Promise((e, i) => {
|
|
16
|
+
r = setTimeout(() => i(Error(n)), t);
|
|
17
|
+
});
|
|
18
|
+
return Promise.race([e, i]).finally(() => clearTimeout(r));
|
|
19
|
+
}, T = (e, t) => {
|
|
20
|
+
let n = () => {
|
|
21
|
+
a(), t();
|
|
22
|
+
}, r = e.parentNode, i = new MutationObserver(() => {
|
|
23
|
+
(!e.isConnected || e.parentNode !== r) && (a(), t());
|
|
24
|
+
}), a = () => {
|
|
25
|
+
window.removeEventListener("pagehide", n), i.disconnect();
|
|
26
|
+
};
|
|
27
|
+
window.addEventListener("pagehide", n, { once: !0 }), r && i.observe(r, { childList: !0 }), e.isConnected || (a(), t());
|
|
28
|
+
}, E = () => Object.assign(/* @__PURE__ */ Error("cloud.attachFrame: the attached iframe left the document or was reloaded; attach a fresh iframe"), { name: i }), D = (e, t) => {
|
|
29
|
+
let n = [...e.split(";"), ...t.split(";")].map((e) => e.trim()).filter(Boolean);
|
|
30
|
+
return [...new Set(n)].join("; ");
|
|
31
|
+
}, O = (e) => {
|
|
32
|
+
let t = e.getAttribute("sandbox");
|
|
33
|
+
if (t === null) return;
|
|
34
|
+
let n = new Set(t.toLowerCase().split(/\s+/).filter(Boolean)), r = ["allow-scripts", "allow-same-origin"].filter((e) => !n.has(e));
|
|
35
|
+
if (r.length) throw Error(`cloud.attachFrame: the iframe's sandbox attribute must include ${r.join(" and ")} for the render proxy to load`);
|
|
36
|
+
}, k = async ({ iframe: e, domains: r = [], syncCookies: i = !0, lockdown: o = !1 }) => {
|
|
37
|
+
if (typeof window > "u") throw Error("cloud.attachFrame needs a window realm");
|
|
38
|
+
if (o) throw Error("cloud.attachFrame does not support lockdown; use the extension backend for a sealed frame");
|
|
39
|
+
if (!e.isConnected) throw Error("cloud.attachFrame: the iframe must be connected to the document before attaching");
|
|
40
|
+
O(e);
|
|
41
|
+
let s = e.getAttribute("src") ?? "", c = (() => {
|
|
42
|
+
if (x(s)) return null;
|
|
43
|
+
try {
|
|
44
|
+
return new URL(e.src || s, location.href);
|
|
45
|
+
} catch {
|
|
46
|
+
throw Error(`cloud.attachFrame: the iframe src is not a valid URL: ${s}`);
|
|
47
|
+
}
|
|
48
|
+
})();
|
|
49
|
+
if (c) {
|
|
50
|
+
let e = new URL("/attach-frame", b());
|
|
51
|
+
if (c.origin === e.origin && c.pathname === e.pathname) throw Error("cloud.attachFrame: this iframe is already attached; navigate with the Frame returned by that attach or use a fresh iframe");
|
|
52
|
+
}
|
|
53
|
+
let l = c?.href ?? "";
|
|
54
|
+
l && t(l);
|
|
55
|
+
let u = l, d = S(i), f = new AbortController();
|
|
56
|
+
if (e.referrerPolicy = "origin", e.allow = D(m, e.allow), e.src = C({
|
|
57
|
+
target: l,
|
|
58
|
+
session: d
|
|
59
|
+
}), !e.contentWindow) throw Error("cloud.attachFrame: the iframe window is not available");
|
|
60
|
+
try {
|
|
61
|
+
let t = await w(p({}, {
|
|
62
|
+
key: "fkn-attach-frame",
|
|
63
|
+
origin: b(),
|
|
64
|
+
transport: {
|
|
65
|
+
receive: window,
|
|
66
|
+
emit: e.contentWindow
|
|
67
|
+
},
|
|
68
|
+
unregisterSignal: f.signal
|
|
69
|
+
}), h, "cloud.attachFrame: timed out connecting to the render proxy page");
|
|
70
|
+
await w(t.ready(), g, "cloud.attachFrame: the render proxy never became ready"), T(e, () => f.abort());
|
|
71
|
+
let r = e.contentWindow, i = () => {
|
|
72
|
+
if (!(!f.signal.aborted && e.isConnected && e.contentWindow === r)) throw f.abort(), E();
|
|
73
|
+
};
|
|
74
|
+
return n({
|
|
75
|
+
executeLocator: (e, n, r) => y.has(n) ? Promise.reject(a(n, "cloud")) : (i(), t.executeLocator(e, n, r)),
|
|
76
|
+
ensurePermission: async () => {},
|
|
77
|
+
goto: async (e, n = {}) => {
|
|
78
|
+
let r = new URL(e, location.href).href;
|
|
79
|
+
i();
|
|
80
|
+
let { timeoutMs: a } = n;
|
|
81
|
+
await w(t.goto(r, n), (a ?? _) + v, "cloud.attachFrame: the render proxy did not answer goto; the frame may have been detached or its page reloaded"), u = r;
|
|
82
|
+
},
|
|
83
|
+
url: () => u
|
|
84
|
+
});
|
|
85
|
+
} catch (t) {
|
|
86
|
+
throw f.abort(), e.src = l || "about:blank", t;
|
|
87
|
+
}
|
|
88
|
+
}, A = async () => {
|
|
89
|
+
let e = await s.then((e) => e.cloud.quota());
|
|
90
|
+
return {
|
|
91
|
+
premium: e.premium,
|
|
92
|
+
overQuota: e.overQuota,
|
|
93
|
+
throttled: e.overQuota && !e.premium,
|
|
94
|
+
usedBytes: e.usedBytes,
|
|
95
|
+
limitBytes: e.limitBytes,
|
|
96
|
+
remainingBytes: e.remaining,
|
|
97
|
+
bytesPerSecond: e.bytesPerSecond,
|
|
98
|
+
bitsPerSecond: e.bytesPerSecond * 8
|
|
99
|
+
};
|
|
100
|
+
}, j = /* @__PURE__ */ e({
|
|
101
|
+
attachFrame: () => k,
|
|
102
|
+
available: () => M,
|
|
103
|
+
dgram: () => d,
|
|
104
|
+
dns: () => c,
|
|
105
|
+
fetch: () => r,
|
|
106
|
+
fs: () => l,
|
|
107
|
+
http: () => f,
|
|
108
|
+
net: () => u,
|
|
109
|
+
quota: () => A
|
|
110
|
+
}), M = () => o;
|
|
111
|
+
//#endregion
|
|
112
|
+
export { k as i, j as n, A as r, M as t };
|
package/cloud.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`})
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./proxy-bPaU3-Cz.cjs"),t=require("./cloud-5o7yJHeX.cjs"),n=require("./dns.cjs"),r=require("./cloud/fs.cjs"),i=require("./net-CpuAhaQC.cjs"),a=require("./dgram-CE43gJq9.cjs"),o=require("./http.cjs");exports.attachFrame=t.i,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.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import { t as
|
|
3
|
-
import {
|
|
4
|
-
import { t as
|
|
5
|
-
import "./
|
|
6
|
-
import "./
|
|
7
|
-
import { t as
|
|
8
|
-
|
|
9
|
-
import { s as a } from "./net-Bl6_W3bd.js";
|
|
10
|
-
import { i as o } from "./dgram-DS5_yPc5.js";
|
|
11
|
-
import { t as s } from "./http.js";
|
|
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 };
|
|
1
|
+
import { t as e } from "./proxy-C8SG1Beo.js";
|
|
2
|
+
import { i as t, r as n, t as r } from "./cloud-BFyf2uC7.js";
|
|
3
|
+
import { t as i } from "./dns.js";
|
|
4
|
+
import { t as a } from "./cloud/fs.js";
|
|
5
|
+
import { s as o } from "./net-DKMWPXb_.js";
|
|
6
|
+
import { i as s } from "./dgram-wtjARbt0.js";
|
|
7
|
+
import { t as c } from "./http.js";
|
|
8
|
+
export { t as attachFrame, r as available, s as dgram, i as dns, e as fetch, a as fs, c as http, o as net, n as quota };
|
|
@@ -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,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 };
|
package/desktop.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=require("./rolldown-runtime-Doa5O59j.cjs").n({available:()=>t,dgram:()=>o,dns:()=>i,fetch:()=>r,fs:()=>s,net:()=>a}),t=()=>!1,n=e=>(...t)=>{throw Error(`The FKN desktop app is not connected, desktop.${e} is unavailable`)},r=n(`fetch`),i={lookup:n(`dns.lookup`)},a={connect:n(`net.connect`),createConnection:n(`net.createConnection`),createServer:n(`net.createServer`)},o={createSocket:n(`dgram.createSocket`)},s={available:async()=>!1,readFile:n(`fs.readFile`),readFileSync:n(`fs.readFileSync`),writeFile:n(`fs.writeFile`),writeFileSync:n(`fs.writeFileSync`),appendFile:n(`fs.appendFile`),appendFileSync:n(`fs.appendFileSync`),existsSync:n(`fs.existsSync`),stat:n(`fs.stat`),statSync:n(`fs.statSync`),readdir:n(`fs.readdir`),readdirSync:n(`fs.readdirSync`),mkdir:n(`fs.mkdir`),mkdirSync:n(`fs.mkdirSync`),rm:n(`fs.rm`),rmSync:n(`fs.rmSync`),unlink:n(`fs.unlink`),unlinkSync:n(`fs.unlinkSync`),rename:n(`fs.rename`),renameSync:n(`fs.renameSync`),mount:n(`fs.mount`),flush:n(`fs.flush`),promises:{readFile:n(`fs.promises.readFile`),writeFile:n(`fs.promises.writeFile`),unlink:n(`fs.promises.unlink`),rename:n(`fs.promises.rename`),readdir:n(`fs.promises.readdir`),mkdir:n(`fs.promises.mkdir`),rm:n(`fs.promises.rm`),stat:n(`fs.promises.stat`)}};exports.available=t,exports.dgram=o,exports.dns=i,exports.fetch=r,exports.fs=s,exports.net=a,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return e}});
|
package/desktop.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./api-DD5v1qP9.cjs"),n=require("./utils-CoimMjf9.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}});
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { n as e } from "./
|
|
2
|
-
import { t } from "./api
|
|
3
|
-
import { a as n, i as r, s as i } from "./utils-
|
|
1
|
+
import { n as e } from "./rolldown-runtime-DF993M8W.js";
|
|
2
|
+
import { t } from "./api--bnCFd4w.js";
|
|
3
|
+
import { a as n, i as r, s as i } from "./utils-DPtyxGQu.js";
|
|
4
4
|
import { Buffer as a } from "buffer";
|
|
5
5
|
import { EventEmitter as o } from "events";
|
|
6
6
|
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: () =>
|
|
11
|
-
default: () =>
|
|
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
|
-
|
|
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) :
|
|
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 =
|
|
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.
|
|
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 =
|
|
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
|
-
},
|
|
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
|
-
},
|
|
333
|
+
}, _ = {
|
|
326
334
|
Socket: u,
|
|
327
|
-
createSocket:
|
|
335
|
+
createSocket: g
|
|
328
336
|
};
|
|
329
337
|
//#endregion
|
|
330
|
-
export { l as i,
|
|
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`}})
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./dgram-CE43gJq9.cjs");exports.Socket=e.t,exports.createSocket=e.n,exports.default=e.r;
|
package/dgram.js
CHANGED
package/dns.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./api-DD5v1qP9.cjs");var n=e.n({lookup:()=>r}),r=(e,n)=>t.t.then(t=>t.cloud.dns.lookup(e,n));exports.lookup=r,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return n}});
|
package/dns.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as e } from "./
|
|
2
|
-
import { t } from "./api
|
|
1
|
+
import { n as e } from "./rolldown-runtime-DF993M8W.js";
|
|
2
|
+
import { t } from "./api--bnCFd4w.js";
|
|
3
3
|
//#region src/lib/dns.ts
|
|
4
4
|
var n = /* @__PURE__ */ e({ lookup: () => r }), r = (e, n) => t.then((t) => t.cloud.dns.lookup(e, n));
|
|
5
5
|
//#endregion
|