@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.
Files changed (192) hide show
  1. package/account.cjs +1 -1
  2. package/account.js +2 -2
  3. package/api/account.d.ts +7 -0
  4. package/api/broker-bridge.d.ts +12 -0
  5. package/api/connect-store.d.ts +9 -0
  6. package/api/connect.d.ts +2 -0
  7. package/api/data-plane.d.ts +28 -0
  8. package/api/dns/index.d.ts +1 -0
  9. package/api/dns/lookup.d.ts +8 -0
  10. package/api/index.d.ts +78 -0
  11. package/api/install-prompt.d.ts +2 -0
  12. package/api/local-net/index.d.ts +43 -0
  13. package/api/overlay-mount.d.ts +2 -0
  14. package/api/overlay.d.ts +17 -0
  15. package/api/packages/host.d.ts +12 -0
  16. package/api/packages/identity.d.ts +1 -0
  17. package/api/packages/index.d.ts +34 -0
  18. package/api/packages/picker.d.ts +28 -0
  19. package/api/packages/registry.d.ts +20 -0
  20. package/api/packages/store.d.ts +6 -0
  21. package/api/packages/types.d.ts +56 -0
  22. package/api/preconnect.d.ts +1 -0
  23. package/api/proxy/index.d.ts +1 -0
  24. package/api/proxy/proxy-fetch.d.ts +5 -0
  25. package/api/quota.d.ts +10 -0
  26. package/api/rate-token.d.ts +3 -0
  27. package/api/session-limit.d.ts +1 -0
  28. package/api/storage.d.ts +20 -0
  29. package/api/toast.d.ts +1 -0
  30. package/api/token-source.d.ts +4 -0
  31. package/api/ui-events.d.ts +8 -0
  32. package/api/ui-host.d.ts +2 -0
  33. package/api/webvpn/index.d.ts +3 -0
  34. package/api/webvpn/packets/metadata.d.ts +31 -0
  35. package/api/webvpn/packets/tcp-listener.d.ts +39 -0
  36. package/api/webvpn/packets/tcp.d.ts +88 -0
  37. package/api/webvpn/packets/udp.d.ts +183 -0
  38. package/api/webvpn/packets/utils.d.ts +24 -0
  39. package/api/webvpn/tcp-listener.d.ts +11 -0
  40. package/api/webvpn/tcp.d.ts +33 -0
  41. package/api/webvpn/udp.d.ts +33 -0
  42. package/api/webvpn/utils.d.ts +26 -0
  43. package/api/webvpn/webtransport.d.ts +62 -0
  44. package/api/worker/client.d.ts +3 -0
  45. package/api/worker/protocol.d.ts +15 -0
  46. package/{api-CDb2pv7C.cjs → api-DD5v1qP9.cjs} +1 -1
  47. package/{background-TtzKw6g0.js → background-BVBbBOmL.js} +41 -66
  48. package/background-B_VgpARk.cjs +1 -0
  49. package/cloud/dgram.cjs +1 -1
  50. package/cloud/dgram.js +2 -4
  51. package/cloud/dns.cjs +1 -1
  52. package/cloud/dns.js +0 -1
  53. package/cloud/fs/promises.cjs +1 -1
  54. package/cloud/fs/promises.js +0 -3
  55. package/cloud/fs.cjs +1 -1
  56. package/cloud/fs.js +3 -4
  57. package/cloud/http.cjs +1 -1
  58. package/cloud/http.js +0 -3
  59. package/cloud/net.cjs +1 -1
  60. package/cloud/net.js +2 -3
  61. package/cloud-5o7yJHeX.cjs +1 -0
  62. package/cloud-BFyf2uC7.js +112 -0
  63. package/cloud.cjs +1 -1
  64. package/cloud.js +8 -12
  65. package/connect-button-BBEjXzB3.cjs +1 -0
  66. package/connect-button-Ds9KpXHe.js +7 -0
  67. package/desktop.cjs +1 -1
  68. package/desktop.js +1 -1
  69. package/dgram-CE43gJq9.cjs +1 -0
  70. package/{dgram-DS5_yPc5.js → dgram-wtjARbt0.js} +30 -22
  71. package/dgram.cjs +1 -1
  72. package/dgram.js +1 -3
  73. package/dns.cjs +1 -1
  74. package/dns.js +2 -2
  75. package/extension-CPj10qwa.js +67 -0
  76. package/extension-D-NUXxzF.cjs +1 -0
  77. package/extension.cjs +1 -1
  78. package/extension.js +3 -5
  79. package/fs/promises.cjs +1 -1
  80. package/fs/promises.js +1 -4
  81. package/fs-BfmfMBiw.cjs +1 -0
  82. package/{fs-CQ-eWjXw.js → fs-D6nNf1mR.js} +4 -4
  83. package/fs.cjs +1 -1
  84. package/fs.js +1 -4
  85. package/http.cjs +2 -2
  86. package/http.js +7 -7
  87. package/index.cjs +1 -1
  88. package/index.js +23 -38
  89. package/{account.d.ts → lib/account.d.ts} +5 -8
  90. package/lib/api.d.ts +300 -0
  91. package/lib/auto.d.ts +5 -0
  92. package/lib/cloud/dgram.d.ts +2 -0
  93. package/lib/cloud/dns.d.ts +1 -0
  94. package/lib/cloud/frame.d.ts +3 -0
  95. package/lib/cloud/fs-promises.d.ts +5 -0
  96. package/lib/cloud/fs.d.ts +22 -0
  97. package/lib/cloud/http.d.ts +2 -0
  98. package/lib/cloud/net.d.ts +2 -0
  99. package/lib/cloud.d.ts +10 -0
  100. package/lib/connect-button.d.ts +1 -0
  101. package/lib/connect.d.ts +1 -0
  102. package/{desktop.d.ts → lib/desktop.d.ts} +6 -8
  103. package/lib/dns.d.ts +6 -0
  104. package/lib/dom.d.ts +2 -0
  105. package/lib/extension-prompt.d.ts +1 -0
  106. package/lib/extension.d.ts +4 -0
  107. package/lib/fkn-target.d.ts +1 -0
  108. package/lib/frame.d.ts +2 -0
  109. package/lib/fs/content-type.d.ts +1 -0
  110. package/lib/fs/hybrid.d.ts +10 -0
  111. package/lib/fs/index.d.ts +87 -0
  112. package/lib/fs/opfs.d.ts +8 -0
  113. package/lib/fs/promises.d.ts +8 -0
  114. package/lib/fs/types.d.ts +16 -0
  115. package/lib/index.d.ts +18 -0
  116. package/lib/node-fs/index.d.ts +95 -0
  117. package/lib/node-fs/shared.d.ts +39 -0
  118. package/lib/node-fs/store.d.ts +21 -0
  119. package/lib/opfs/index.d.ts +84 -0
  120. package/lib/opfs/promises.d.ts +8 -0
  121. package/lib/overlay.d.ts +14 -0
  122. package/lib/packages.d.ts +69 -0
  123. package/lib/proxy.d.ts +5 -0
  124. package/lib/quota.d.ts +20 -0
  125. package/lib/react.d.ts +7 -0
  126. package/lib/relay.d.ts +5 -0
  127. package/lib/storage.d.ts +22 -0
  128. package/lib/webvpn/dgram.d.ts +86 -0
  129. package/lib/webvpn/http.d.ts +180 -0
  130. package/lib/webvpn/index.d.ts +1 -0
  131. package/lib/webvpn/net.d.ts +132 -0
  132. package/lib/webvpn/utils.d.ts +32 -0
  133. package/net-CpuAhaQC.cjs +1 -0
  134. package/{net-Bl6_W3bd.js → net-DKMWPXb_.js} +3 -3
  135. package/net.cjs +1 -1
  136. package/net.js +2 -3
  137. package/node-fs-C0eKnboT.cjs +1 -0
  138. package/{node-fs-Bd_UUx1m.js → node-fs-Dbf93qP7.js} +40 -17
  139. package/opfs/promises.cjs +1 -1
  140. package/opfs/promises.js +2 -3
  141. package/{opfs-BfcYLPGb.js → opfs-7_GmzQ93.js} +1 -1
  142. package/opfs-uClkgnb5.cjs +1 -0
  143. package/opfs.cjs +1 -1
  144. package/opfs.js +33 -32
  145. package/package.json +31 -21
  146. package/packages.cjs +1 -0
  147. package/packages.js +150 -0
  148. package/{locator-DxAsGV_o.js → proxy-C8SG1Beo.js} +542 -344
  149. package/proxy-bPaU3-Cz.cjs +53 -0
  150. package/react.cjs +1 -0
  151. package/react.js +18 -0
  152. package/{chunk-CPXzm0be.js → rolldown-runtime-DF993M8W.js} +1 -1
  153. package/rolldown-runtime-Doa5O59j.cjs +1 -0
  154. package/sandbox.d.ts +7 -0
  155. package/storage-OkwsFLN1.cjs +1 -0
  156. package/{storage-BcJfnkm3.js → storage-TmeyhZGt.js} +2 -2
  157. package/{utils-BsNRWMfl.cjs → utils-CoimMjf9.cjs} +1 -1
  158. package/background-Dk_vaVP1.cjs +0 -1
  159. package/chunk-B6C_zzib.cjs +0 -1
  160. package/cloud/dgram.d.ts +0 -537
  161. package/cloud/dns.d.ts +0 -12
  162. package/cloud/fs/promises.d.ts +0 -45
  163. package/cloud/fs.d.ts +0 -75
  164. package/cloud/http.d.ts +0 -767
  165. package/cloud/net.d.ts +0 -606
  166. package/cloud-BrY9dKwV.cjs +0 -1
  167. package/cloud-C-LK4DWa.js +0 -33
  168. package/cloud.d.ts +0 -1053
  169. package/dgram-C5rGcbej.cjs +0 -1
  170. package/dgram.d.ts +0 -541
  171. package/dns.d.ts +0 -12
  172. package/extension-9Uv_0HdS.cjs +0 -1
  173. package/extension-Dgz0UTy0.js +0 -245
  174. package/extension.d.ts +0 -852
  175. package/favicon.svg +0 -5
  176. package/fs/promises.d.ts +0 -65
  177. package/fs-Bc6087fG.cjs +0 -1
  178. package/fs.d.ts +0 -138
  179. package/http.d.ts +0 -767
  180. package/index.d.ts +0 -2254
  181. package/locator-Cf7M3QKN.cjs +0 -53
  182. package/net-C5kWnI4C.cjs +0 -1
  183. package/net.d.ts +0 -606
  184. package/node-fs-lrlD_zqB.cjs +0 -1
  185. package/opfs/promises.d.ts +0 -46
  186. package/opfs-Dsi4FkJU.cjs +0 -1
  187. package/opfs.d.ts +0 -83
  188. package/proxy-A9UvWUaF.cjs +0 -1
  189. package/proxy-wiZN4eTR.js +0 -14
  190. package/storage-C2-_-bTO.cjs +0 -1
  191. /package/{api-ByfayMm1.js → api--bnCFd4w.js} +0 -0
  192. /package/{utils-CNydj3OT.js → utils-DPtyxGQu.js} +0 -0
@@ -1,5 +1,5 @@
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";
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) => n(e) && e.FKN_WEB_EXTENSION_CONTENT_SCRIPT_RELAY_ENVELOPE_KEY === !0 && typeof e.from == "string" && n(e.message), g = /* @__PURE__ */ new Map(), _ = (e) => {
832
- let t = g.get(e);
833
- if (t) return t;
834
- let { promise: n, resolve: r } = Promise.withResolvers(), { promise: a, resolve: o } = Promise.withResolvers(), s = {
835
- resolvers: u(V, {
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: i,
837
+ revivableModules: t,
838
838
  transport: {
839
839
  isJson: !0,
840
- receive: (e) => r(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: n,
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
- }), s((e) => {
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
- [a]: c,
978
- [t]: r
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 = async (e, t, n) => {
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: I,
1027
- evaluate: async ({ code: e, arg: t }) => {
1028
- await z();
1029
- let n = `${++B}`;
1030
- return new Promise((r, i) => {
1031
- let a = (e) => {
1032
- let t = e.data;
1033
- !t || t.channel !== L || t.kind !== "result" || t.id !== n || (window.removeEventListener("message", a), t.error ? i(Error(String(t.error))) : r(t.result));
1034
- };
1035
- window.addEventListener("message", a), window.postMessage({
1036
- channel: L,
1037
- kind: "call",
1038
- id: n,
1039
- code: e,
1040
- arg: t
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
- }, H = u(V, {
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 { H as backgroundResolvers };
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.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`}});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 "../api-ByfayMm1.js";
2
- import "../utils-CNydj3OT.js";
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`}),require(`../api-CDb2pv7C.cjs`);const e=require(`../dns.cjs`);exports.lookup=e.lookup;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../dns.cjs");exports.lookup=e.lookup;
package/cloud/dns.js CHANGED
@@ -1,3 +1,2 @@
1
- import "../api-ByfayMm1.js";
2
1
  import { lookup as e } from "../dns.js";
3
2
  export { e as 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`});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,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(`../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("../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 "../chunk-CPXzm0be.js";
2
- import "../api-ByfayMm1.js";
3
- import { t } from "../node-fs-Bd_UUx1m.js";
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`}}),require(`../api-CDb2pv7C.cjs`),require(`../utils-BsNRWMfl.cjs`),require(`../net-C5kWnI4C.cjs`);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;
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`}}),require(`../api-CDb2pv7C.cjs`);const e=require(`../utils-BsNRWMfl.cjs`),t=require(`../net-C5kWnI4C.cjs`);exports.Server=t.t,exports.Socket=t.n,exports._default=t.r,exports.default=t.r,exports.connect=t.i,exports.createConnection=t.a,exports.createServer=t.o,exports.isIP=e.t,exports.isIPv4=e.n,exports.isIPv6=e.r;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../utils-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 "../api-ByfayMm1.js";
2
- import { n as e, r as t, t as n } from "../utils-CNydj3OT.js";
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`}),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`});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 "./api-ByfayMm1.js";
2
- import { t as e } from "./proxy-wiZN4eTR.js";
3
- import { r as t, t as n } from "./cloud-C-LK4DWa.js";
4
- import { t as r } from "./dns.js";
5
- import "./node-fs-Bd_UUx1m.js";
6
- import "./storage-BcJfnkm3.js";
7
- import { t as i } from "./cloud/fs.js";
8
- import "./utils-CNydj3OT.js";
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(`./chunk-B6C_zzib.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}});
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
@@ -1,4 +1,4 @@
1
- import { n as e } from "./chunk-CPXzm0be.js";
1
+ import { n as e } from "./rolldown-runtime-DF993M8W.js";
2
2
  //#region src/lib/desktop.ts
3
3
  var t = /* @__PURE__ */ e({
4
4
  available: () => n,
@@ -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 "./chunk-CPXzm0be.js";
2
- import { t } from "./api-ByfayMm1.js";
3
- import { a as n, i as r, s as i } from "./utils-CNydj3OT.js";
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: () => 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`}});const e=require("./dgram-CE43gJq9.cjs");exports.Socket=e.t,exports.createSocket=e.n,exports.default=e.r;
package/dgram.js CHANGED
@@ -1,4 +1,2 @@
1
- import "./api-ByfayMm1.js";
2
- import "./utils-CNydj3OT.js";
3
- import { n as e, r as t, t as n } from "./dgram-DS5_yPc5.js";
1
+ import { n as e, r as t, t as n } from "./dgram-wtjARbt0.js";
4
2
  export { n as Socket, e as createSocket, t as default };
package/dns.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./chunk-B6C_zzib.cjs`),t=require(`./api-CDb2pv7C.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}});
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 "./chunk-CPXzm0be.js";
2
- import { t } from "./api-ByfayMm1.js";
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