@fkn/lib 0.5.4 → 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{background-Dk_vaVP1.cjs → background-CbU8TkWo.cjs} +1 -1
- package/{background-TtzKw6g0.js → background-DvQm1JHR.js} +8 -6
- package/cloud/dgram.cjs +1 -1
- package/cloud/dgram.d.ts +7 -3
- package/cloud/dgram.js +2 -2
- package/cloud/dns.d.ts +1 -1
- package/cloud/fs/promises.cjs +1 -1
- package/cloud/fs/promises.js +1 -1
- package/cloud/fs.cjs +1 -1
- package/cloud/fs.js +1 -1
- package/cloud/http.d.ts +2 -2
- package/cloud/net.d.ts +2 -2
- package/{cloud-BrY9dKwV.cjs → cloud-CWg9zCWm.cjs} +1 -1
- package/{cloud-C-LK4DWa.js → cloud-eLyGYzbA.js} +1 -1
- package/cloud.cjs +1 -1
- package/cloud.d.ts +3 -3
- package/cloud.js +3 -3
- package/connect-button-B_63ldmg.js +7 -0
- package/connect-button-poDZVmq2.cjs +1 -0
- package/dgram-B3WC4VdJ.cjs +1 -0
- package/{dgram-DS5_yPc5.js → dgram-c_Xk7ckJ.js} +27 -19
- package/dgram.cjs +1 -1
- package/dgram.d.ts +2 -2
- package/dgram.js +1 -1
- package/dns.d.ts +1 -1
- package/{extension-Dgz0UTy0.js → extension-BLkZiaAP.js} +65 -57
- package/extension-DAiRg5ny.cjs +1 -0
- package/extension.cjs +1 -1
- package/extension.d.ts +14 -7
- package/extension.js +3 -3
- package/fs/promises.cjs +1 -1
- package/fs/promises.d.ts +2 -0
- package/fs/promises.js +2 -2
- package/{fs-CQ-eWjXw.js → fs-BQs-x3_j.js} +1 -1
- package/{fs-Bc6087fG.cjs → fs-DI1maxcZ.cjs} +1 -1
- package/fs.cjs +1 -1
- package/fs.d.ts +4 -0
- package/fs.js +2 -2
- package/http.d.ts +2 -2
- package/index.cjs +1 -1
- package/index.d.ts +92 -30
- package/index.js +22 -34
- package/{locator-DxAsGV_o.js → locator-9s7jNIA2.js} +1 -1
- package/{locator-Cf7M3QKN.cjs → locator-CHfEe3Jv.cjs} +1 -1
- package/net.d.ts +2 -2
- package/{node-fs-Bd_UUx1m.js → node-fs-CdKPXPtW.js} +39 -16
- package/node-fs-DQn1TGJz.cjs +1 -0
- package/opfs/promises.cjs +1 -1
- package/opfs/promises.d.ts +22 -1
- package/opfs/promises.js +3 -3
- package/opfs.cjs +1 -1
- package/opfs.d.ts +58 -1
- package/opfs.js +31 -30
- package/package.json +6 -1
- package/react.cjs +1 -0
- package/react.d.ts +12 -0
- package/react.js +18 -0
- package/dgram-C5rGcbej.cjs +0 -1
- package/extension-9Uv_0HdS.cjs +0 -1
- package/favicon.svg +0 -5
- package/node-fs-lrlD_zqB.cjs +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as e } from "./chunk-CPXzm0be.js";
|
|
2
|
-
import { d as t, f as n, i as r, l as i, m as a, p as o, r as s, t as c, u as l } from "./locator-
|
|
2
|
+
import { d as t, f as n, i as r, l as i, m as a, p as o, r as s, t as c, u as l } from "./locator-9s7jNIA2.js";
|
|
3
3
|
import { t as u } from "./api-ByfayMm1.js";
|
|
4
4
|
import { n as d, t as f } from "./proxy-wiZN4eTR.js";
|
|
5
5
|
import { available as p, fetch as m } from "./desktop.js";
|
|
@@ -11,7 +11,7 @@ typeof document < "u" && document.addEventListener(_, () => {
|
|
|
11
11
|
});
|
|
12
12
|
var b = () => typeof document > "u" ? !1 : document.documentElement.dataset[v] === "true", x = null, S = (e) => {
|
|
13
13
|
x = e;
|
|
14
|
-
},
|
|
14
|
+
}, ee = 150, C = (e = 1e3) => new Promise((t, n) => {
|
|
15
15
|
if (b()) return t();
|
|
16
16
|
let r, i = (e) => {
|
|
17
17
|
clearTimeout(r), s.disconnect(), document.removeEventListener("readystatechange", c), e();
|
|
@@ -19,7 +19,7 @@ var b = () => typeof document > "u" ? !1 : document.documentElement.dataset[v] =
|
|
|
19
19
|
if (x && (await x().catch(() => {}), b())) return t();
|
|
20
20
|
n(/* @__PURE__ */ Error("The FKN WebExtension is not installed, enabled or not exposed on this page."));
|
|
21
21
|
}), o = () => {
|
|
22
|
-
clearTimeout(r), r = setTimeout(() => b() ? i(t) : a(),
|
|
22
|
+
clearTimeout(r), r = setTimeout(() => b() ? i(t) : a(), ee);
|
|
23
23
|
}, s = new MutationObserver(() => {
|
|
24
24
|
b() && i(t);
|
|
25
25
|
}), c = () => {
|
|
@@ -30,39 +30,39 @@ var b = () => typeof document > "u" ? !1 : document.documentElement.dataset[v] =
|
|
|
30
30
|
attributeFilter: ["data-fkn-extension"]
|
|
31
31
|
}), document.addEventListener("readystatechange", c), document.readyState === "complete") return o();
|
|
32
32
|
b() && i(t);
|
|
33
|
-
}),
|
|
34
|
-
await
|
|
33
|
+
}), w, T = new Proxy({}, { get: (e, t) => async (...e) => {
|
|
34
|
+
await C(), w ??= g({}, {
|
|
35
35
|
transport: window,
|
|
36
36
|
revivableModules: i
|
|
37
37
|
});
|
|
38
|
-
let n = (await
|
|
38
|
+
let n = (await w)[t];
|
|
39
39
|
return n(...e);
|
|
40
|
-
} }),
|
|
40
|
+
} }), E = {
|
|
41
41
|
scope: "network.fetch",
|
|
42
42
|
category: "network",
|
|
43
43
|
severity: 0,
|
|
44
44
|
title: "Fetch data from other sites",
|
|
45
45
|
description: "Lets the app download public data from other websites directly, past the usual cross-origin limits."
|
|
46
|
-
},
|
|
46
|
+
}, D = {
|
|
47
47
|
scope: "network.fetchCredentialed",
|
|
48
48
|
category: "network",
|
|
49
49
|
severity: 3,
|
|
50
50
|
unsafe: !0,
|
|
51
51
|
title: "Fetch from other sites, signed in as you",
|
|
52
52
|
description: "Lets the app fetch other sites using your logged-in session cookies, so it can read data only you should see."
|
|
53
|
-
},
|
|
53
|
+
}, O = {
|
|
54
54
|
scope: "network.fetchLocal",
|
|
55
55
|
category: "network",
|
|
56
56
|
severity: 3,
|
|
57
57
|
unsafe: !0,
|
|
58
58
|
title: "Access devices on your local network",
|
|
59
59
|
description: "Lets the app reach devices and services on your home or work network, which websites normally cannot touch."
|
|
60
|
-
},
|
|
60
|
+
}, k = (e) => {
|
|
61
61
|
let t = e.match(/^(\d+)\.(\d+)\.\d+\.\d+$/);
|
|
62
62
|
if (!t) return !1;
|
|
63
63
|
let [n, r] = [Number(t[1]), Number(t[2])];
|
|
64
64
|
return n === 10 || n === 127 || n === 0 || n === 169 && r === 254 || n === 172 && r >= 16 && r <= 31 || n === 192 && r === 168;
|
|
65
|
-
},
|
|
65
|
+
}, A = (e) => {
|
|
66
66
|
let t;
|
|
67
67
|
try {
|
|
68
68
|
t = new URL(e);
|
|
@@ -70,8 +70,8 @@ var b = () => typeof document > "u" ? !1 : document.documentElement.dataset[v] =
|
|
|
70
70
|
return !1;
|
|
71
71
|
}
|
|
72
72
|
let n = t.hostname.replace(/^\[|\]$/g, "").toLowerCase().replace(/\.$/, "");
|
|
73
|
-
return n === "localhost" || n.endsWith(".localhost") || n.endsWith(".local") || n.endsWith(".internal") || n.endsWith(".home.arpa") ? !0 : n.includes(":") ? n === "::" || n === "::1" || n.startsWith("fc") || n.startsWith("fd") || /^fe[89ab]/.test(n) || n.startsWith("::ffff:") :
|
|
74
|
-
},
|
|
73
|
+
return n === "localhost" || n.endsWith(".localhost") || n.endsWith(".local") || n.endsWith(".internal") || n.endsWith(".home.arpa") ? !0 : n.includes(":") ? n === "::" || n === "::1" || n.startsWith("fc") || n.startsWith("fd") || /^fe[89ab]/.test(n) || n.startsWith("::ffff:") : k(n);
|
|
74
|
+
}, j = ["fkn.app", "fkn.dev"], M = (e) => {
|
|
75
75
|
let t;
|
|
76
76
|
try {
|
|
77
77
|
t = new URL(e);
|
|
@@ -80,46 +80,46 @@ var b = () => typeof document > "u" ? !1 : document.documentElement.dataset[v] =
|
|
|
80
80
|
}
|
|
81
81
|
if (t.protocol === "chrome-extension:" || t.protocol === "moz-extension:") return !0;
|
|
82
82
|
let n = t.hostname;
|
|
83
|
-
return
|
|
84
|
-
},
|
|
85
|
-
if (
|
|
86
|
-
},
|
|
83
|
+
return j.some((e) => n === e || n.endsWith(`.${e}`));
|
|
84
|
+
}, N = (e) => {
|
|
85
|
+
if (M(e)) throw Error("fetch: refusing to target the extension's own pages or FKN platform domains");
|
|
86
|
+
}, P = ["origin", "referer"], F = (e) => {
|
|
87
87
|
if (!e?.headers) return;
|
|
88
|
-
let t = new Headers(e.headers), n =
|
|
88
|
+
let t = new Headers(e.headers), n = P.map((e) => {
|
|
89
89
|
let n = t.get(e);
|
|
90
90
|
return n === null ? void 0 : [e, n];
|
|
91
91
|
}).filter((e) => e !== void 0);
|
|
92
92
|
return n.length ? n : void 0;
|
|
93
|
-
},
|
|
93
|
+
}, I = async (e, t) => {
|
|
94
94
|
let n = new Request(e, t);
|
|
95
|
-
|
|
95
|
+
N(n.url);
|
|
96
96
|
let r = n.body ? await n.arrayBuffer() : null;
|
|
97
|
-
return
|
|
97
|
+
return T.proxyFetch({
|
|
98
98
|
url: n.url,
|
|
99
99
|
method: n.method,
|
|
100
100
|
headers: [...n.headers],
|
|
101
101
|
body: r,
|
|
102
102
|
credentials: t?.credentials === "include" ? "include" : "omit",
|
|
103
103
|
redirect: n.redirect,
|
|
104
|
-
unsafeHeaders:
|
|
104
|
+
unsafeHeaders: F(t),
|
|
105
105
|
reason: t?.reason,
|
|
106
106
|
signal: t?.signal ?? void 0
|
|
107
107
|
});
|
|
108
|
-
},
|
|
108
|
+
}, L = {
|
|
109
109
|
scope: "network.readCookie",
|
|
110
110
|
category: "network",
|
|
111
111
|
severity: 3,
|
|
112
112
|
unsafe: !0,
|
|
113
113
|
title: "Read a site’s cookie",
|
|
114
114
|
description: "Lets the app read a named cookie from another site, which can include the login token only that site should see."
|
|
115
|
-
},
|
|
115
|
+
}, R = { get: (e) => T.getCookie(e) }, z = {
|
|
116
116
|
scope: "network.modifyRequestHeaders",
|
|
117
117
|
category: "network",
|
|
118
118
|
severity: 2,
|
|
119
119
|
unsafe: !0,
|
|
120
120
|
title: "Rewrite request headers to other sites",
|
|
121
121
|
description: "Lets the app set or remove headers (like Origin and Referer) on this page’s own requests to the listed sites."
|
|
122
|
-
},
|
|
122
|
+
}, B = (e) => T.setRequestHeaderRule(e), V = (e) => T.removeRequestHeaderRule({ ruleId: e });
|
|
123
123
|
(() => {
|
|
124
124
|
let e = {}, t = [...c.selectorModules, ...r.selectorModules];
|
|
125
125
|
for (let n of t) n.render && !(n.type in e) && (e[n.type] = n.render);
|
|
@@ -127,7 +127,7 @@ var b = () => typeof document > "u" ? !1 : document.documentElement.dataset[v] =
|
|
|
127
127
|
})();
|
|
128
128
|
//#endregion
|
|
129
129
|
//#region node_modules/@mfkn/web-extension/lib/lib/frame.js
|
|
130
|
-
var
|
|
130
|
+
var H = "FKN_WEB_EXTENSION_ATTACH_FRAME_EVENT_KEY", U = (e) => {
|
|
131
131
|
if (!e || e === "about:blank") return !1;
|
|
132
132
|
let t;
|
|
133
133
|
try {
|
|
@@ -139,8 +139,10 @@ var U = "FKN_WEB_EXTENSION_ATTACH_FRAME_EVENT_KEY", W = (e) => {
|
|
|
139
139
|
if (t.protocol === "about:") return !1;
|
|
140
140
|
let n = t.hostname;
|
|
141
141
|
return n === "fkn.app" || n.endsWith(".fkn.app");
|
|
142
|
-
},
|
|
143
|
-
if (
|
|
142
|
+
}, W = (e) => {
|
|
143
|
+
if (U(e)) throw Error("attachFrame: refusing to target the extension's own pages or fkn.app");
|
|
144
|
+
}, G = ({ src: e, domains: t, lockdown: n }) => {
|
|
145
|
+
if (!(!n || t.length) && e && e !== "about:blank") throw Error("attachFrame: lockdown needs domains when the frame already has a src; pass domains or load it via goto");
|
|
144
146
|
}, K = {
|
|
145
147
|
scope: "embed.iframe",
|
|
146
148
|
category: "embed",
|
|
@@ -156,19 +158,24 @@ var U = "FKN_WEB_EXTENSION_ATTACH_FRAME_EVENT_KEY", W = (e) => {
|
|
|
156
158
|
}, J = {
|
|
157
159
|
scope: "embed.evaluate",
|
|
158
160
|
category: "embed",
|
|
159
|
-
severity:
|
|
160
|
-
|
|
161
|
-
|
|
161
|
+
severity: 3,
|
|
162
|
+
unsafe: !0,
|
|
163
|
+
title: "Run app code inside an embedded site",
|
|
164
|
+
description: "Lets the app run its own code inside a page it embedded, where it can read and act on that site with your logged-in session."
|
|
162
165
|
}, Y = async ({ iframe: e, domains: t = [], syncCookies: n = !0, lockdown: r = !1 }) => {
|
|
163
166
|
let i = crypto.randomUUID();
|
|
164
|
-
if (
|
|
165
|
-
|
|
166
|
-
|
|
167
|
+
if (W(e.src), G({
|
|
168
|
+
src: e.src,
|
|
169
|
+
domains: t,
|
|
170
|
+
lockdown: r
|
|
171
|
+
}), await C(), !e.isConnected) throw Error("attachFrame: the iframe must be connected to the document before attaching");
|
|
172
|
+
e.dispatchEvent(new CustomEvent(H, { detail: i }));
|
|
173
|
+
let { executeLocator: a, ensureLocatorPermission: o, goto: c, evaluate: l } = await T.attachFrame({
|
|
167
174
|
marker: i,
|
|
168
175
|
domains: t,
|
|
169
176
|
syncCookies: n,
|
|
170
177
|
lockdown: r
|
|
171
|
-
}), u = s(a, o), d = (e, t = {}) => (
|
|
178
|
+
}), u = s(a, o), d = (e, t = {}) => (W(e), c({
|
|
172
179
|
url: e,
|
|
173
180
|
...t
|
|
174
181
|
})), f = ((e, t) => l(e, t)), p = () => e.src;
|
|
@@ -178,7 +185,7 @@ var U = "FKN_WEB_EXTENSION_ATTACH_FRAME_EVENT_KEY", W = (e) => {
|
|
|
178
185
|
evaluate: f,
|
|
179
186
|
url: p
|
|
180
187
|
};
|
|
181
|
-
}, X = { request: (e) =>
|
|
188
|
+
}, X = { request: (e) => T.requestPermissions(e.map((e) => ({
|
|
182
189
|
key: e.key,
|
|
183
190
|
scope: e.scope ?? "",
|
|
184
191
|
reason: e.reason
|
|
@@ -197,49 +204,50 @@ S(() => (Q ||= Z().then(() => void 0).finally(() => {
|
|
|
197
204
|
}), Q));
|
|
198
205
|
//#endregion
|
|
199
206
|
//#region src/lib/auto.ts
|
|
200
|
-
var $ = () => typeof document < "u" && b(),
|
|
207
|
+
var $ = () => typeof document < "u" && b(), te = async (e, t) => {
|
|
201
208
|
if (d(e), t?.credentials === "include") {
|
|
202
209
|
if (typeof document > "u") throw Error("fetch with credentials needs the FKN extension, which only exists in window realms");
|
|
203
|
-
return
|
|
210
|
+
return I(e, t);
|
|
204
211
|
}
|
|
205
|
-
return $() ?
|
|
212
|
+
return $() ? I(e, {
|
|
206
213
|
...t,
|
|
207
214
|
credentials: "omit"
|
|
208
215
|
}) : p() ? m(e, t) : f(e, t);
|
|
209
|
-
},
|
|
210
|
-
ATTACH_FRAME_EVENT_KEY: () =>
|
|
211
|
-
assertAttachableFrameUrl: () =>
|
|
212
|
-
assertFetchableUrl: () =>
|
|
216
|
+
}, ne = /* @__PURE__ */ e({
|
|
217
|
+
ATTACH_FRAME_EVENT_KEY: () => H,
|
|
218
|
+
assertAttachableFrameUrl: () => W,
|
|
219
|
+
assertFetchableUrl: () => N,
|
|
220
|
+
assertLockdownApplicable: () => G,
|
|
213
221
|
attachFrame: () => Y,
|
|
214
222
|
attachFramePermission: () => K,
|
|
215
223
|
available: () => $,
|
|
216
224
|
box: () => l,
|
|
217
|
-
cookies: () =>
|
|
225
|
+
cookies: () => R,
|
|
218
226
|
createVideoElementHandle: () => t,
|
|
219
227
|
evaluatePermission: () => J,
|
|
220
228
|
events: () => y,
|
|
221
229
|
extension: () => y,
|
|
222
|
-
fetch: () =>
|
|
223
|
-
fetchCredentialedPermission: () =>
|
|
224
|
-
fetchLocalPermission: () =>
|
|
225
|
-
fetchPermission: () =>
|
|
230
|
+
fetch: () => I,
|
|
231
|
+
fetchCredentialedPermission: () => D,
|
|
232
|
+
fetchLocalPermission: () => O,
|
|
233
|
+
fetchPermission: () => E,
|
|
226
234
|
gotoPermission: () => q,
|
|
227
235
|
handleRevivableModules: () => i,
|
|
228
|
-
isBlockedFetchUrl: () =>
|
|
229
|
-
isBlockedFrameUrl: () =>
|
|
236
|
+
isBlockedFetchUrl: () => M,
|
|
237
|
+
isBlockedFrameUrl: () => U,
|
|
230
238
|
isExtensionExposed: () => b,
|
|
231
|
-
isLocalNetworkUrl: () =>
|
|
239
|
+
isLocalNetworkUrl: () => A,
|
|
232
240
|
isType: () => n,
|
|
233
|
-
modifyRequestHeadersPermission: () =>
|
|
241
|
+
modifyRequestHeadersPermission: () => z,
|
|
234
242
|
permissions: () => X,
|
|
235
243
|
promptInstall: () => Z,
|
|
236
|
-
readCookiePermission: () =>
|
|
237
|
-
removeRequestHeaderRule: () =>
|
|
244
|
+
readCookiePermission: () => L,
|
|
245
|
+
removeRequestHeaderRule: () => V,
|
|
238
246
|
revive: () => o,
|
|
239
247
|
setMissingExtensionHandler: () => S,
|
|
240
|
-
setRequestHeaderRule: () =>
|
|
248
|
+
setRequestHeaderRule: () => B,
|
|
241
249
|
type: () => a,
|
|
242
|
-
waitForExtensionExposure: () =>
|
|
250
|
+
waitForExtensionExposure: () => C
|
|
243
251
|
});
|
|
244
252
|
//#endregion
|
|
245
|
-
export {
|
|
253
|
+
export { E as C, b as D, y as E, S as O, O as S, A as T, R as _, X as a, I as b, G as c, J as d, q as f, B as g, V as h, Z as i, C as k, Y as l, z as m, te as n, H as o, U as p, $ as r, W as s, ne as t, K as u, L as v, M as w, D as x, N as y };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./chunk-B6C_zzib.cjs`),t=require(`./locator-CHfEe3Jv.cjs`),n=require(`./api-CDb2pv7C.cjs`),r=require(`./proxy-A9UvWUaF.cjs`),i=require(`./desktop.cjs`);let a=require(`osra`);var o=`FKN_WEB_EXTENSION_MAIN_WORLD_CONTENT_SCRIPT_ENABLED_EVENT_KEY`,s=`fknExtension`,c=(0,a.createTypedEventTarget)();typeof document<`u`&&document.addEventListener(o,()=>{c.dispatchEvent(new CustomEvent(`statuschange`,{detail:{enabled:l()}}))});var l=()=>typeof document>`u`?!1:document.documentElement.dataset[s]===`true`,u=null,d=e=>{u=e},f=150,p=(e=1e3)=>new Promise((t,n)=>{if(l())return t();let r,i=e=>{clearTimeout(r),s.disconnect(),document.removeEventListener(`readystatechange`,c),e()},a=()=>i(async()=>{if(u&&(await u().catch(()=>{}),l()))return t();n(Error(`The FKN WebExtension is not installed, enabled or not exposed on this page.`))}),o=()=>{clearTimeout(r),r=setTimeout(()=>l()?i(t):a(),f)},s=new MutationObserver(()=>{l()&&i(t)}),c=()=>{document.readyState===`complete`&&!l()&&o()};if(r=setTimeout(a,e),s.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-fkn-extension`]}),document.addEventListener(`readystatechange`,c),document.readyState===`complete`)return o();l()&&i(t)}),m,h=new Proxy({},{get:(e,n)=>async(...e)=>{await p(),m??=(0,a.expose)({},{transport:window,revivableModules:t.l});let r=(await m)[n];return r(...e)}}),g={scope:`network.fetch`,category:`network`,severity:0,title:`Fetch data from other sites`,description:`Lets the app download public data from other websites directly, past the usual cross-origin limits.`},_={scope:`network.fetchCredentialed`,category:`network`,severity:3,unsafe:!0,title:`Fetch from other sites, signed in as you`,description:`Lets the app fetch other sites using your logged-in session cookies, so it can read data only you should see.`},v={scope:`network.fetchLocal`,category:`network`,severity:3,unsafe:!0,title:`Access devices on your local network`,description:`Lets the app reach devices and services on your home or work network, which websites normally cannot touch.`},y=e=>{let t=e.match(/^(\d+)\.(\d+)\.\d+\.\d+$/);if(!t)return!1;let[n,r]=[Number(t[1]),Number(t[2])];return n===10||n===127||n===0||n===169&&r===254||n===172&&r>=16&&r<=31||n===192&&r===168},b=e=>{let t;try{t=new URL(e)}catch{return!1}let n=t.hostname.replace(/^\[|\]$/g,``).toLowerCase().replace(/\.$/,``);return n===`localhost`||n.endsWith(`.localhost`)||n.endsWith(`.local`)||n.endsWith(`.internal`)||n.endsWith(`.home.arpa`)?!0:n.includes(`:`)?n===`::`||n===`::1`||n.startsWith(`fc`)||n.startsWith(`fd`)||/^fe[89ab]/.test(n)||n.startsWith(`::ffff:`):y(n)},x=[`fkn.app`,`fkn.dev`],S=e=>{let t;try{t=new URL(e)}catch{return!1}if(t.protocol===`chrome-extension:`||t.protocol===`moz-extension:`)return!0;let n=t.hostname;return x.some(e=>n===e||n.endsWith(`.${e}`))},C=e=>{if(S(e))throw Error(`fetch: refusing to target the extension's own pages or FKN platform domains`)},w=[`origin`,`referer`],T=e=>{if(!e?.headers)return;let t=new Headers(e.headers),n=w.map(e=>{let n=t.get(e);return n===null?void 0:[e,n]}).filter(e=>e!==void 0);return n.length?n:void 0},E=async(e,t)=>{let n=new Request(e,t);C(n.url);let r=n.body?await n.arrayBuffer():null;return h.proxyFetch({url:n.url,method:n.method,headers:[...n.headers],body:r,credentials:t?.credentials===`include`?`include`:`omit`,redirect:n.redirect,unsafeHeaders:T(t),reason:t?.reason,signal:t?.signal??void 0})},D={scope:`network.readCookie`,category:`network`,severity:3,unsafe:!0,title:`Read a site’s cookie`,description:`Lets the app read a named cookie from another site, which can include the login token only that site should see.`},O={get:e=>h.getCookie(e)},k={scope:`network.modifyRequestHeaders`,category:`network`,severity:2,unsafe:!0,title:`Rewrite request headers to other sites`,description:`Lets the app set or remove headers (like Origin and Referer) on this page’s own requests to the listed sites.`},A=e=>h.setRequestHeaderRule(e),j=e=>h.removeRequestHeaderRule({ruleId:e});(()=>{let e={},n=[...t.t.selectorModules,...t.i.selectorModules];for(let t of n)t.render&&!(t.type in e)&&(e[t.type]=t.render);return e})();var M=`FKN_WEB_EXTENSION_ATTACH_FRAME_EVENT_KEY`,N=e=>{if(!e||e===`about:blank`)return!1;let t;try{t=new URL(e,location.href)}catch{return!1}if(t.protocol===`chrome-extension:`||t.protocol===`moz-extension:`)return!0;if(t.protocol===`about:`)return!1;let n=t.hostname;return n===`fkn.app`||n.endsWith(`.fkn.app`)},P=e=>{if(N(e))throw Error(`attachFrame: refusing to target the extension's own pages or fkn.app`)},F=({src:e,domains:t,lockdown:n})=>{if(!(!n||t.length)&&e&&e!==`about:blank`)throw Error(`attachFrame: lockdown needs domains when the frame already has a src; pass domains or load it via goto`)},I={scope:`embed.iframe`,category:`embed`,severity:0,title:`Load another website inside this app`,description:`Lets the app embed external pages directly inside its own view.`},L={scope:`embed.open`,category:`embed`,severity:0,title:`Open a website inside this app`,description:`Lets the app navigate to another site without leaving its window.`},R={scope:`embed.evaluate`,category:`embed`,severity:3,unsafe:!0,title:`Run app code inside an embedded site`,description:`Lets the app run its own code inside a page it embedded, where it can read and act on that site with your logged-in session.`},z=async({iframe:e,domains:n=[],syncCookies:r=!0,lockdown:i=!1})=>{let a=crypto.randomUUID();if(P(e.src),F({src:e.src,domains:n,lockdown:i}),await p(),!e.isConnected)throw Error(`attachFrame: the iframe must be connected to the document before attaching`);e.dispatchEvent(new CustomEvent(M,{detail:a}));let{executeLocator:o,ensureLocatorPermission:s,goto:c,evaluate:l}=await h.attachFrame({marker:a,domains:n,syncCookies:r,lockdown:i}),u=t.r(o,s),d=(e,t={})=>(P(e),c({url:e,...t})),f=((e,t)=>l(e,t)),m=()=>e.src;return{...u,goto:d,evaluate:f,url:m}},B={request:e=>h.requestPermissions(e.map(e=>({key:e.key,scope:e.scope??``,reason:e.reason})))},V=async e=>{if(typeof window>`u`)return!1;if(l())return!0;let t=await n.t,r=null,i=new Promise(e=>{r=()=>{l()&&e(!0)},c.addEventListener(`statuschange`,r)}),a=t.installPrompt.show(e).then(()=>!1),o=await Promise.race([i,a]);return r&&c.removeEventListener(`statuschange`,r),await t.installPrompt.hide().catch(()=>{}),o},H=null;d(()=>(H||=V().then(()=>void 0).finally(()=>{H=null}),H));var U=()=>typeof document<`u`&&l(),W=async(e,t)=>{if(r.n(e),t?.credentials===`include`){if(typeof document>`u`)throw Error(`fetch with credentials needs the FKN extension, which only exists in window realms`);return E(e,t)}return U()?E(e,{...t,credentials:`omit`}):i.available()?i.fetch(e,t):r.t(e,t)},G=e.n({ATTACH_FRAME_EVENT_KEY:()=>M,assertAttachableFrameUrl:()=>P,assertFetchableUrl:()=>C,assertLockdownApplicable:()=>F,attachFrame:()=>z,attachFramePermission:()=>I,available:()=>U,box:()=>t.u,cookies:()=>O,createVideoElementHandle:()=>t.d,evaluatePermission:()=>R,events:()=>c,extension:()=>c,fetch:()=>E,fetchCredentialedPermission:()=>_,fetchLocalPermission:()=>v,fetchPermission:()=>g,gotoPermission:()=>L,handleRevivableModules:()=>t.l,isBlockedFetchUrl:()=>S,isBlockedFrameUrl:()=>N,isExtensionExposed:()=>l,isLocalNetworkUrl:()=>b,isType:()=>t.f,modifyRequestHeadersPermission:()=>k,permissions:()=>B,promptInstall:()=>V,readCookiePermission:()=>D,removeRequestHeaderRule:()=>j,revive:()=>t.p,setMissingExtensionHandler:()=>d,setRequestHeaderRule:()=>A,type:()=>t.m,waitForExtensionExposure:()=>p});Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return C}});
|
package/extension.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./locator-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./locator-CHfEe3Jv.cjs`),t=require(`./extension-DAiRg5ny.cjs`);require(`./api-CDb2pv7C.cjs`),require(`./proxy-A9UvWUaF.cjs`),exports.ATTACH_FRAME_EVENT_KEY=t.o,exports.assertAttachableFrameUrl=t.s,exports.assertFetchableUrl=t.y,exports.assertLockdownApplicable=t.c,exports.attachFrame=t.l,exports.attachFramePermission=t.u,exports.available=t.r,exports.box=e.u,exports.cookies=t._,exports.createVideoElementHandle=e.d,exports.evaluatePermission=t.d,exports.events=t.E,exports.extension=t.E,exports.fetch=t.b,exports.fetchCredentialedPermission=t.x,exports.fetchLocalPermission=t.S,exports.fetchPermission=t.C,exports.gotoPermission=t.f,exports.handleRevivableModules=e.l,exports.isBlockedFetchUrl=t.w,exports.isBlockedFrameUrl=t.p,exports.isExtensionExposed=t.D,exports.isLocalNetworkUrl=t.T,exports.isType=e.f,exports.modifyRequestHeadersPermission=t.m,exports.permissions=t.a,exports.promptInstall=t.i,exports.readCookiePermission=t.v,exports.removeRequestHeaderRule=t.h,exports.revive=e.p,exports.setMissingExtensionHandler=t.O,exports.setRequestHeaderRule=t.g,exports.type=e.m,exports.waitForExtensionExposure=t.k;
|
package/extension.d.ts
CHANGED
|
@@ -552,6 +552,11 @@ type LocatorChain<L extends LocatorKindModule, Self> = {
|
|
|
552
552
|
declare const ATTACH_FRAME_EVENT_KEY = "FKN_WEB_EXTENSION_ATTACH_FRAME_EVENT_KEY";
|
|
553
553
|
declare const isBlockedFrameUrl: (raw: string) => boolean;
|
|
554
554
|
declare const assertAttachableFrameUrl: (raw: string) => void;
|
|
555
|
+
declare const assertLockdownApplicable: ({ src, domains, lockdown }: {
|
|
556
|
+
src: string;
|
|
557
|
+
domains: string[];
|
|
558
|
+
lockdown: boolean;
|
|
559
|
+
}) => void;
|
|
555
560
|
declare const attachFramePermission: {
|
|
556
561
|
readonly scope: 'embed.iframe';
|
|
557
562
|
readonly category: 'embed';
|
|
@@ -569,9 +574,10 @@ declare const gotoPermission: {
|
|
|
569
574
|
declare const evaluatePermission: {
|
|
570
575
|
readonly scope: 'embed.evaluate';
|
|
571
576
|
readonly category: 'embed';
|
|
572
|
-
readonly severity:
|
|
573
|
-
readonly
|
|
574
|
-
readonly
|
|
577
|
+
readonly severity: 3;
|
|
578
|
+
readonly unsafe: true;
|
|
579
|
+
readonly title: 'Run app code inside an embedded site';
|
|
580
|
+
readonly description: 'Lets the app run its own code inside a page it embedded, where it can read and act on that site with your logged-in session.';
|
|
575
581
|
};
|
|
576
582
|
type GotoOptions = {
|
|
577
583
|
waitUntil?: 'documentstart' | 'load';
|
|
@@ -672,9 +678,10 @@ declare const PERMISSIONS: readonly [{
|
|
|
672
678
|
}, {
|
|
673
679
|
readonly scope: 'embed.evaluate';
|
|
674
680
|
readonly category: 'embed';
|
|
675
|
-
readonly severity:
|
|
676
|
-
readonly
|
|
677
|
-
readonly
|
|
681
|
+
readonly severity: 3;
|
|
682
|
+
readonly unsafe: true;
|
|
683
|
+
readonly title: 'Run app code inside an embedded site';
|
|
684
|
+
readonly description: 'Lets the app run its own code inside a page it embedded, where it can read and act on that site with your logged-in session.';
|
|
678
685
|
}, {
|
|
679
686
|
readonly scope: 'network.fetch';
|
|
680
687
|
readonly category: 'network';
|
|
@@ -848,5 +855,5 @@ declare const promptInstall: (reason?: string) => Promise<boolean>;
|
|
|
848
855
|
|
|
849
856
|
declare const isExtensionAvailable: () => boolean;
|
|
850
857
|
|
|
851
|
-
export { ATTACH_FRAME_EVENT_KEY, assertAttachableFrameUrl, assertFetchableUrl, attachFrame, attachFramePermission, isExtensionAvailable as available, box, cookies, createVideoElementHandle, evaluatePermission, extension as events, extension, fetch, fetchCredentialedPermission, fetchLocalPermission, fetchPermission, gotoPermission, handleRevivableModules, isBlockedFetchUrl, isBlockedFrameUrl, isExtensionExposed, isLocalNetworkUrl, isType, modifyRequestHeadersPermission, permissions, promptInstall, readCookiePermission, removeRequestHeaderRule, revive, setMissingExtensionHandler, setRequestHeaderRule, type, waitForExtensionExposure };
|
|
858
|
+
export { ATTACH_FRAME_EVENT_KEY, assertAttachableFrameUrl, assertFetchableUrl, assertLockdownApplicable, attachFrame, attachFramePermission, isExtensionAvailable as available, box, cookies, createVideoElementHandle, evaluatePermission, extension as events, extension, fetch, fetchCredentialedPermission, fetchLocalPermission, fetchPermission, gotoPermission, handleRevivableModules, isBlockedFetchUrl, isBlockedFrameUrl, isExtensionExposed, isLocalNetworkUrl, isType, modifyRequestHeadersPermission, permissions, promptInstall, readCookiePermission, removeRequestHeaderRule, revive, setMissingExtensionHandler, setRequestHeaderRule, type, waitForExtensionExposure };
|
|
852
859
|
export type { AttachFrameOptions, BoxedVideoElement, CookieDetails, FetchInit, Frame, GotoOptions, HeaderOperation, PermissionGrant, PermissionRequest, ProxyFetchRequest, RemoteVideoElement, RequestHeaderRule, SiteCookie, VideoElementState };
|
package/extension.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as e, f as t, l as n, m as r, p as i, u as a } from "./locator-
|
|
2
|
-
import { C as o, D as s, E as c, O as l, S as u, T as d, _ as f, a as p, b as m, c as h, d as g, f as _, g as v, h as y, i as b,
|
|
1
|
+
import { d as e, f as t, l as n, m as r, p as i, u as a } from "./locator-9s7jNIA2.js";
|
|
2
|
+
import { C as o, D as s, E as c, O as l, S as u, T as d, _ as f, a as p, b as m, c as h, d as g, f as _, g as v, h as y, i as b, k as x, l as S, m as C, o as w, p as T, r as E, s as D, u as O, v as k, w as A, x as j, y as M } from "./extension-BLkZiaAP.js";
|
|
3
3
|
import "./api-ByfayMm1.js";
|
|
4
4
|
import "./proxy-wiZN4eTR.js";
|
|
5
|
-
export {
|
|
5
|
+
export { w as ATTACH_FRAME_EVENT_KEY, D as assertAttachableFrameUrl, M as assertFetchableUrl, h as assertLockdownApplicable, S as attachFrame, O as attachFramePermission, E as available, a as box, f as cookies, e as createVideoElementHandle, g as evaluatePermission, c as events, c as extension, m as fetch, j as fetchCredentialedPermission, u as fetchLocalPermission, o as fetchPermission, _ as gotoPermission, n as handleRevivableModules, A as isBlockedFetchUrl, T as isBlockedFrameUrl, s as isExtensionExposed, d as isLocalNetworkUrl, t as isType, C as modifyRequestHeadersPermission, p as permissions, b as promptInstall, k as readCookiePermission, y as removeRequestHeaderRule, i as revive, l as setMissingExtensionHandler, v as setRequestHeaderRule, r as type, x as waitForExtensionExposure };
|
package/fs/promises.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../api-CDb2pv7C.cjs`),require(`../node-fs-
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../api-CDb2pv7C.cjs`),require(`../node-fs-DQn1TGJz.cjs`),require(`../storage-C2-_-bTO.cjs`);const e=require(`../fs-DI1maxcZ.cjs`);var{readFile:t,writeFile:n,appendFile:r,unlink:i,rename:a,readdir:o,mkdir:s,rm:c,rmdir:l,stat:u,lstat:d,access:f}=e.p,p=e.p;exports.access=f,exports.appendFile=r,exports.default=p,exports.lstat=d,exports.mkdir=s,exports.readFile=t,exports.readdir=o,exports.rename=a,exports.rm=c,exports.rmdir=l,exports.stat=u,exports.unlink=i,exports.writeFile=n;
|
package/fs/promises.d.ts
CHANGED
|
@@ -36,6 +36,7 @@ declare const promises: {
|
|
|
36
36
|
mkdir: (path: node_fs.PathLike, options?: MakeOptions) => Promise<void>;
|
|
37
37
|
rm: (path: node_fs.PathLike, options?: {
|
|
38
38
|
recursive?: boolean;
|
|
39
|
+
force?: boolean;
|
|
39
40
|
}) => Promise<void>;
|
|
40
41
|
rmdir: (path: node_fs.PathLike, options?: {
|
|
41
42
|
recursive?: boolean;
|
|
@@ -54,6 +55,7 @@ declare const readdir: (path: node_fs.PathLike) => Promise<string[]>;
|
|
|
54
55
|
declare const mkdir: (path: node_fs.PathLike, options?: MakeOptions) => Promise<void>;
|
|
55
56
|
declare const rm: (path: node_fs.PathLike, options?: {
|
|
56
57
|
recursive?: boolean;
|
|
58
|
+
force?: boolean;
|
|
57
59
|
}) => Promise<void>;
|
|
58
60
|
declare const rmdir: (path: node_fs.PathLike, options?: {
|
|
59
61
|
recursive?: boolean;
|
package/fs/promises.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../api-ByfayMm1.js";
|
|
2
|
-
import "../node-fs-
|
|
2
|
+
import "../node-fs-CdKPXPtW.js";
|
|
3
3
|
import "../storage-BcJfnkm3.js";
|
|
4
|
-
import { p as e } from "../fs-
|
|
4
|
+
import { p as e } from "../fs-BQs-x3_j.js";
|
|
5
5
|
//#region src/lib/fs/promises.ts
|
|
6
6
|
var { readFile: t, writeFile: n, appendFile: r, unlink: i, rename: a, readdir: o, mkdir: s, rm: c, rmdir: l, stat: u, lstat: d, access: f } = e, p = e;
|
|
7
7
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as e } from "./chunk-CPXzm0be.js";
|
|
2
|
-
import { t } from "./node-fs-
|
|
2
|
+
import { t } from "./node-fs-CdKPXPtW.js";
|
|
3
3
|
import { a as n, i as r, n as i, s as a, t as o } from "./storage-BcJfnkm3.js";
|
|
4
4
|
import { a as s, i as c, n as l, o as u, t as d } from "./opfs-BfcYLPGb.js";
|
|
5
5
|
//#region src/lib/fs/hybrid.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./chunk-B6C_zzib.cjs`),t=require(`./node-fs-
|
|
1
|
+
const e=require(`./chunk-B6C_zzib.cjs`),t=require(`./node-fs-DQn1TGJz.cjs`),n=require(`./storage-C2-_-bTO.cjs`),r=require(`./opfs-Dsi4FkJU.cjs`);var i=e.n({available:()=>c,list:()=>l,pull:()=>p,readFile:()=>u,remove:()=>f,writeFile:()=>d}),a,o=async()=>await(a??=r.t().catch(()=>!1))?!0:(a=void 0,!1),s=()=>n.t().catch(()=>!1),c=async()=>await o()||await s(),l=async()=>{let[e,t]=await Promise.all([o().then(e=>e?r.n():[]).catch(()=>[]),s().then(e=>e?n.n():[]).catch(()=>[])]),i=new Map,a=e=>{let t=Date.parse(e.updatedAt??``);return Number.isFinite(t)?t:0},c=e=>{let t=i.get(e.path);(!t||a(e)>=a(t))&&i.set(e.path,e)};for(let t of e)c(t);for(let e of t)c(e);return[...i.values()]},u=async e=>{if(await o())try{return await r.i(e)}catch(e){if(e?.name!==`NotFoundError`)throw e}let t=await n.i(e);return await o()&&r.o(e,t).catch(()=>{}),t},d=async(e,t,i)=>{let a=t instanceof Blob?t:new Blob([t],i?.contentType?{type:i.contentType}:void 0);if(await o()){await r.o(e,a,i),await s()&&n.s(e,a,i).catch(e=>console.warn(`fs: cloud replicate failed`,e));return}if(await s())return n.s(e,a,i);throw Error(`fs: no storage backend available`)},f=async e=>{let t=[];if(await o()&&t.push(r.a(e).catch(()=>{})),await s()&&t.push(n.a(e).catch(()=>{})),!t.length)throw Error(`fs: no storage backend available`);await Promise.all(t)},p=async e=>{let t=await n.i(e);return await o()&&await r.o(e,t),t},m=e.n({appendFile:()=>j,appendFileSync:()=>y,available:()=>g,default:()=>W,exists:()=>R,existsSync:()=>b,flush:()=>V,lstatSync:()=>S,mkdir:()=>P,mkdirSync:()=>w,mount:()=>B,promises:()=>z,pull:()=>U,readFile:()=>k,readFileSync:()=>_,readdir:()=>N,readdirSync:()=>C,remount:()=>H,rename:()=>L,renameSync:()=>O,rm:()=>F,rmSync:()=>T,rmdirSync:()=>E,stat:()=>M,statSync:()=>x,unlink:()=>I,unlinkSync:()=>D,writeFile:()=>A,writeFileSync:()=>v}),h=t.t(i,{memfs:!0}),{available:g,readFileSync:_,writeFileSync:v,appendFileSync:y,existsSync:b,statSync:x,lstatSync:S,readdirSync:C,mkdirSync:w,rmSync:T,rmdirSync:E,unlinkSync:D,renameSync:O,readFile:k,writeFile:A,appendFile:j,stat:M,readdir:N,mkdir:P,rm:F,unlink:I,rename:L,exists:R,promises:z,mount:B,flush:V,remount:H}=h,U=p,W={...h,pull:U};Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return H}});
|
package/fs.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`./api-CDb2pv7C.cjs`),require(`./node-fs-
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`./api-CDb2pv7C.cjs`),require(`./node-fs-DQn1TGJz.cjs`),require(`./storage-C2-_-bTO.cjs`);const e=require(`./fs-DI1maxcZ.cjs`);exports.appendFile=e.t,exports.appendFileSync=e.n,exports.available=e.r,exports.default=e.s,exports.exists=e.i,exports.existsSync=e.a,exports.flush=e.o,exports.lstatSync=e.l,exports.mkdir=e.u,exports.mkdirSync=e.d,exports.mount=e.f,exports.promises=e.p,exports.pull=e.m,exports.readFile=e.h,exports.readFileSync=e.g,exports.readdir=e._,exports.readdirSync=e.v,exports.remount=e.y,exports.rename=e.b,exports.renameSync=e.x,exports.rm=e.S,exports.rmSync=e.C,exports.rmdirSync=e.w,exports.stat=e.T,exports.statSync=e.E,exports.unlink=e.D,exports.unlinkSync=e.O,exports.writeFile=e.k,exports.writeFileSync=e.A;
|
package/fs.d.ts
CHANGED
|
@@ -53,6 +53,7 @@ declare const readdir: (path: node_fs.PathLike, a: unknown, b?: Callback<string[
|
|
|
53
53
|
declare const mkdir: (path: node_fs.PathLike, a: MakeOptions | Callback<void>, b?: Callback<void>) => void;
|
|
54
54
|
declare const rm: (path: node_fs.PathLike, a: {
|
|
55
55
|
recursive?: boolean;
|
|
56
|
+
force?: boolean;
|
|
56
57
|
} | Callback<void>, b?: Callback<void>) => void;
|
|
57
58
|
declare const unlink: (path: node_fs.PathLike, callback: Callback<void>) => void;
|
|
58
59
|
declare const rename: (from: node_fs.PathLike, to: node_fs.PathLike, callback: Callback<void>) => void;
|
|
@@ -67,6 +68,7 @@ declare const promises: {
|
|
|
67
68
|
mkdir: (path: node_fs.PathLike, options?: MakeOptions) => Promise<void>;
|
|
68
69
|
rm: (path: node_fs.PathLike, options?: {
|
|
69
70
|
recursive?: boolean;
|
|
71
|
+
force?: boolean;
|
|
70
72
|
}) => Promise<void>;
|
|
71
73
|
rmdir: (path: node_fs.PathLike, options?: {
|
|
72
74
|
recursive?: boolean;
|
|
@@ -107,6 +109,7 @@ declare const _default: {
|
|
|
107
109
|
mkdir: (path: node_fs.PathLike, a: MakeOptions | Callback<void>, b?: Callback<void>) => void;
|
|
108
110
|
rm: (path: node_fs.PathLike, a: {
|
|
109
111
|
recursive?: boolean;
|
|
112
|
+
force?: boolean;
|
|
110
113
|
} | Callback<void>, b?: Callback<void>) => void;
|
|
111
114
|
unlink: (path: node_fs.PathLike, callback: Callback<void>) => void;
|
|
112
115
|
rename: (from: node_fs.PathLike, to: node_fs.PathLike, callback: Callback<void>) => void;
|
|
@@ -121,6 +124,7 @@ declare const _default: {
|
|
|
121
124
|
mkdir: (path: node_fs.PathLike, options?: MakeOptions) => Promise<void>;
|
|
122
125
|
rm: (path: node_fs.PathLike, options?: {
|
|
123
126
|
recursive?: boolean;
|
|
127
|
+
force?: boolean;
|
|
124
128
|
}) => Promise<void>;
|
|
125
129
|
rmdir: (path: node_fs.PathLike, options?: {
|
|
126
130
|
recursive?: boolean;
|
package/fs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./api-ByfayMm1.js";
|
|
2
|
-
import "./node-fs-
|
|
2
|
+
import "./node-fs-CdKPXPtW.js";
|
|
3
3
|
import "./storage-BcJfnkm3.js";
|
|
4
|
-
import { A as e, C as t, D as n, E as r, O as i, S as a, T as o, _ as s, a as c, b as l, d as u, f as d, g as f, h as p, i as m, k as h, l as g, m as _, n as v, o as y, p as b, r as x, s as S, t as C, u as w, v as T, w as E, x as D, y as O } from "./fs-
|
|
4
|
+
import { A as e, C as t, D as n, E as r, O as i, S as a, T as o, _ as s, a as c, b as l, d as u, f as d, g as f, h as p, i as m, k as h, l as g, m as _, n as v, o as y, p as b, r as x, s as S, t as C, u as w, v as T, w as E, x as D, y as O } from "./fs-BQs-x3_j.js";
|
|
5
5
|
export { C as appendFile, v as appendFileSync, x as available, S as default, m as exists, c as existsSync, y as flush, g as lstatSync, w as mkdir, u as mkdirSync, d as mount, b as promises, _ as pull, p as readFile, f as readFileSync, s as readdir, T as readdirSync, O as remount, l as rename, D as renameSync, a as rm, t as rmSync, E as rmdirSync, o as stat, r as statSync, n as unlink, i as unlinkSync, h as writeFile, e as writeFileSync };
|
package/http.d.ts
CHANGED
|
@@ -284,7 +284,7 @@ declare const resolvers: {
|
|
|
284
284
|
readonly dns: {
|
|
285
285
|
readonly lookup: <T extends boolean = false>(hostname: string, options?: {
|
|
286
286
|
all?: T;
|
|
287
|
-
family
|
|
287
|
+
family?: 0 | 4 | 6;
|
|
288
288
|
}) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
|
|
289
289
|
};
|
|
290
290
|
readonly fs: {
|
|
@@ -443,7 +443,7 @@ declare const resolvers: {
|
|
|
443
443
|
}>;
|
|
444
444
|
readonly dnsLookup: <T extends boolean = false>(hostname: string, options?: {
|
|
445
445
|
all?: T;
|
|
446
|
-
family
|
|
446
|
+
family?: 0 | 4 | 6;
|
|
447
447
|
}) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
|
|
448
448
|
readonly setOverlayHost: (push: (state: {
|
|
449
449
|
modal: boolean;
|
package/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./locator-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./locator-CHfEe3Jv.cjs`),t=require(`./extension-DAiRg5ny.cjs`),n=require(`./api-CDb2pv7C.cjs`);require(`./proxy-A9UvWUaF.cjs`);const r=require(`./cloud-CWg9zCWm.cjs`),i=require(`./dns.cjs`);require(`./node-fs-DQn1TGJz.cjs`),require(`./storage-C2-_-bTO.cjs`),require(`./utils-BsNRWMfl.cjs`);const a=require(`./net-C5kWnI4C.cjs`),o=require(`./dgram-B3WC4VdJ.cjs`),s=require(`./http.cjs`),c=require(`./desktop.cjs`),l=require(`./fs-DI1maxcZ.cjs`),u=require(`./opfs.cjs`),d=require(`./account.cjs`),f=require(`./connect-button-poDZVmq2.cjs`);let p=require(`osra`);var m=`https://fkn.app`,h=(e,t)=>{if(typeof window>`u`)throw Error(`FKN @fkn/lib: relayWorker must be called from the main thread`);if(!n.r?.contentWindow)throw Error(`FKN @fkn/lib: relayWorker called before the FKN iframe was injected`);(0,p.relay)({receive:window,emit:n.r.contentWindow},e,{key:`fkn-api`,originA:t?.originA??m,originB:t?.originB??`*`,unregisterSignal:t?.unregisterSignal})},g=async()=>typeof window>`u`?!1:(await n.t).connect.prompt(location.origin).catch(()=>!1);exports.ATTACH_FRAME_EVENT_KEY=t.o,Object.defineProperty(exports,`account`,{enumerable:!0,get:function(){return d.t}}),exports.assertAttachableFrameUrl=t.s,exports.assertFetchableUrl=t.y,exports.assertLockdownApplicable=t.c,exports.attachFrame=t.l,exports.attachFramePermission=t.u,exports.box=e.u,Object.defineProperty(exports,`cloud`,{enumerable:!0,get:function(){return r.n}}),exports.connect=g,exports.connectButtonUrl=f.t,exports.cookies=t._,exports.createVideoElementHandle=e.d,Object.defineProperty(exports,`desktop`,{enumerable:!0,get:function(){return c.t}}),Object.defineProperty(exports,`dgram`,{enumerable:!0,get:function(){return o.i}}),Object.defineProperty(exports,`dns`,{enumerable:!0,get:function(){return i.t}}),exports.evaluatePermission=t.d,Object.defineProperty(exports,`extension`,{enumerable:!0,get:function(){return t.t}}),exports.fetch=t.n,exports.fetchCredentialedPermission=t.x,exports.fetchLocalPermission=t.S,exports.fetchPermission=t.C,Object.defineProperty(exports,`fs`,{enumerable:!0,get:function(){return l.c}}),exports.gotoPermission=t.f,exports.handleRevivableModules=e.l,Object.defineProperty(exports,`http`,{enumerable:!0,get:function(){return s.t}}),exports.isBlockedFetchUrl=t.w,exports.isBlockedFrameUrl=t.p,exports.isExtensionExposed=t.D,exports.isLocalNetworkUrl=t.T,exports.isType=e.f,exports.modifyRequestHeadersPermission=t.m,Object.defineProperty(exports,`net`,{enumerable:!0,get:function(){return a.s}}),Object.defineProperty(exports,`opfs`,{enumerable:!0,get:function(){return u.t}}),exports.permissions=t.a,exports.promptInstall=t.i,exports.readCookiePermission=t.v,exports.relayWorker=h,exports.removeRequestHeaderRule=t.h,exports.revive=e.p,exports.setMissingExtensionHandler=t.O,exports.setRequestHeaderRule=t.g,exports.type=e.m,exports.waitForExtensionExposure=t.k;
|