@fkn/lib 0.5.5 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/account.cjs +1 -1
- package/account.d.ts +9 -11
- package/account.js +2 -2
- package/api-BYUraih6.d.ts +524 -0
- package/{api-CDb2pv7C.cjs → api-DD5v1qP9.cjs} +1 -1
- package/{background-DvQm1JHR.js → background-BVBbBOmL.js} +41 -68
- package/background-B_VgpARk.cjs +1 -0
- package/cloud/dgram.cjs +1 -1
- package/cloud/dgram.d.ts +2 -541
- package/cloud/dgram.js +1 -3
- package/cloud/dns.cjs +1 -1
- package/cloud/dns.d.ts +3 -12
- package/cloud/dns.js +0 -1
- package/cloud/fs/promises.cjs +1 -1
- package/cloud/fs/promises.d.ts +7 -43
- package/cloud/fs/promises.js +0 -3
- package/cloud/fs.cjs +1 -1
- package/cloud/fs.d.ts +3 -75
- package/cloud/fs.js +3 -4
- package/cloud/http.cjs +1 -1
- package/cloud/http.d.ts +2 -767
- package/cloud/http.js +0 -3
- package/cloud/net.cjs +1 -1
- package/cloud/net.d.ts +2 -606
- package/cloud/net.js +2 -3
- package/cloud-5o7yJHeX.cjs +1 -0
- package/cloud-BFyf2uC7.js +112 -0
- package/cloud-gklfa4ZN.d.ts +41 -0
- package/cloud.cjs +1 -1
- package/cloud.d.ts +7 -1053
- package/cloud.js +8 -12
- package/{connect-button-poDZVmq2.cjs → connect-button-BBEjXzB3.cjs} +1 -1
- package/connect-button-D8KXSL6s.d.ts +4 -0
- package/desktop.cjs +1 -1
- package/desktop.d.ts +37 -34
- package/desktop.js +1 -1
- package/dgram-CE43gJq9.cjs +1 -0
- package/{dgram-c_Xk7ckJ.js → dgram-wtjARbt0.js} +3 -3
- package/dgram.cjs +1 -1
- package/dgram.d.ts +83 -533
- package/dgram.js +1 -3
- package/dns.cjs +1 -1
- package/dns.d.ts +9 -9
- package/dns.js +2 -2
- package/extension-3pxUYwrA.d.ts +16 -0
- package/extension-CPj10qwa.js +67 -0
- package/extension-D-NUXxzF.cjs +1 -0
- package/extension.cjs +1 -1
- package/extension.d.ts +3 -859
- package/extension.js +3 -5
- package/fs/promises.cjs +1 -1
- package/fs/promises.d.ts +8 -63
- package/fs/promises.js +1 -4
- package/fs-BfmfMBiw.cjs +1 -0
- package/{fs-BQs-x3_j.js → fs-D6nNf1mR.js} +4 -4
- package/fs-K7ROdxDx.d.ts +41 -0
- package/fs.cjs +1 -1
- package/fs.d.ts +81 -131
- package/fs.js +1 -4
- package/http.cjs +2 -2
- package/http.d.ts +152 -733
- package/http.js +7 -7
- package/index-BJztAQIP.d.ts +721 -0
- package/index-C6ZoDJg8.d.ts +31 -0
- package/index.cjs +1 -1
- package/index.d.ts +25 -2313
- package/index.js +23 -26
- package/lookup-BtwWaCZJ.d.ts +7 -0
- package/net-BDW1AVX1.d.ts +140 -0
- package/net-CpuAhaQC.cjs +1 -0
- package/{net-Bl6_W3bd.js → net-DKMWPXb_.js} +3 -3
- package/net.cjs +1 -1
- package/net.d.ts +2 -606
- package/net.js +2 -3
- package/{node-fs-DQn1TGJz.cjs → node-fs-C0eKnboT.cjs} +1 -1
- package/{node-fs-CdKPXPtW.js → node-fs-Dbf93qP7.js} +1 -1
- package/opfs/promises.cjs +1 -1
- package/opfs/promises.d.ts +8 -63
- package/opfs/promises.js +0 -1
- package/{opfs-BfcYLPGb.js → opfs-7_GmzQ93.js} +1 -1
- package/opfs-uClkgnb5.cjs +1 -0
- package/opfs.cjs +1 -1
- package/opfs.d.ts +80 -130
- package/opfs.js +3 -3
- package/package.json +6 -1
- package/packages-D36R2vBv.d.ts +108 -0
- package/packages.cjs +1 -0
- package/packages.d.ts +2 -0
- package/packages.js +150 -0
- package/{locator-9s7jNIA2.js → proxy-C8SG1Beo.js} +542 -344
- package/proxy-bPaU3-Cz.cjs +53 -0
- package/react.cjs +1 -1
- package/react.d.ts +11 -9
- package/react.js +1 -1
- package/{chunk-CPXzm0be.js → rolldown-runtime-DF993M8W.js} +1 -1
- package/rolldown-runtime-Doa5O59j.cjs +1 -0
- package/storage-OkwsFLN1.cjs +1 -0
- package/{storage-BcJfnkm3.js → storage-TmeyhZGt.js} +2 -2
- package/{utils-BsNRWMfl.cjs → utils-CoimMjf9.cjs} +1 -1
- package/background-CbU8TkWo.cjs +0 -1
- package/chunk-B6C_zzib.cjs +0 -1
- package/cloud-CWg9zCWm.cjs +0 -1
- package/cloud-eLyGYzbA.js +0 -33
- package/dgram-B3WC4VdJ.cjs +0 -1
- package/extension-BLkZiaAP.js +0 -253
- package/extension-DAiRg5ny.cjs +0 -1
- package/fs-DI1maxcZ.cjs +0 -1
- package/locator-CHfEe3Jv.cjs +0 -53
- package/net-C5kWnI4C.cjs +0 -1
- package/opfs-Dsi4FkJU.cjs +0 -1
- package/proxy-A9UvWUaF.cjs +0 -1
- package/proxy-wiZN4eTR.js +0 -14
- package/storage-C2-_-bTO.cjs +0 -1
- /package/{api-ByfayMm1.js → api--bnCFd4w.js} +0 -0
- /package/{connect-button-B_63ldmg.js → connect-button-Ds9KpXHe.js} +0 -0
- /package/{utils-CNydj3OT.js → utils-DPtyxGQu.js} +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { n as e } from "./
|
|
2
|
-
import {
|
|
1
|
+
import { n as e } from "./rolldown-runtime-DF993M8W.js";
|
|
2
|
+
import { t } from "./api--bnCFd4w.js";
|
|
3
|
+
import { BoxBase as n, createTypedEventTarget as r, expose as i, recursiveBox as a, recursiveRevive as o } from "osra";
|
|
3
4
|
//#region node_modules/@mfkn/web-extension/lib/lib/revivables/event-proxy.js
|
|
4
|
-
var
|
|
5
|
+
var s = (e, t) => {
|
|
5
6
|
let n = new EventTarget(), r = /* @__PURE__ */ new Map(), i = EventTarget.prototype.addEventListener.bind(n), a = EventTarget.prototype.removeEventListener.bind(n);
|
|
6
7
|
return Object.defineProperty(n, "addEventListener", {
|
|
7
8
|
configurable: !0,
|
|
@@ -30,34 +31,34 @@ var i = (e, t) => {
|
|
|
30
31
|
o && (e.removeEventListener(t, o), r.delete(t));
|
|
31
32
|
}
|
|
32
33
|
}), n;
|
|
33
|
-
},
|
|
34
|
+
}, c = (e) => typeof e == "boolean" ? +!!e : +!!e?.capture, l = (e) => {
|
|
34
35
|
let t = /* @__PURE__ */ new WeakMap();
|
|
35
36
|
return {
|
|
36
37
|
addEventListener: (n, r, i) => {
|
|
37
38
|
if (r === null) return;
|
|
38
|
-
let
|
|
39
|
-
if (
|
|
40
|
-
let
|
|
41
|
-
|
|
39
|
+
let a = `${n}|${c(i)}`, o = t.get(r);
|
|
40
|
+
if (o || (o = /* @__PURE__ */ new Map(), t.set(r, o)), o.has(a)) return;
|
|
41
|
+
let s = typeof i == "object" && !!i && !!i.once, l = (t) => {
|
|
42
|
+
s && o.delete(a);
|
|
42
43
|
let i = e.unenrich(t, n);
|
|
43
44
|
typeof r == "function" ? r.call(e.target, i) : r.handleEvent(i);
|
|
44
45
|
};
|
|
45
|
-
|
|
46
|
+
o.set(a, l), e.remoteEvents.addEventListener(n, l, i);
|
|
46
47
|
},
|
|
47
48
|
removeEventListener: (n, r, i) => {
|
|
48
49
|
if (r === null) return;
|
|
49
|
-
let
|
|
50
|
-
|
|
50
|
+
let a = `${n}|${c(i)}`, o = t.get(r), s = o?.get(a);
|
|
51
|
+
s && (e.remoteEvents.removeEventListener(n, s, i), o.delete(a));
|
|
51
52
|
},
|
|
52
53
|
dispatchEvent: (t) => e.remoteEvents.dispatchEvent(t)
|
|
53
54
|
};
|
|
54
|
-
},
|
|
55
|
+
}, u = /* @__PURE__ */ e({
|
|
55
56
|
box: () => T,
|
|
56
57
|
createVideoElementHandle: () => C,
|
|
57
58
|
isType: () => w,
|
|
58
59
|
revive: () => E,
|
|
59
|
-
type: () =>
|
|
60
|
-
}),
|
|
60
|
+
type: () => d
|
|
61
|
+
}), d = "videoElement", f = [
|
|
61
62
|
"currentTime",
|
|
62
63
|
"volume",
|
|
63
64
|
"muted",
|
|
@@ -68,22 +69,22 @@ var i = (e, t) => {
|
|
|
68
69
|
"preload",
|
|
69
70
|
"poster",
|
|
70
71
|
"disableRemotePlayback"
|
|
71
|
-
],
|
|
72
|
+
], p = [
|
|
72
73
|
"duration",
|
|
73
74
|
"paused",
|
|
74
75
|
"ended",
|
|
75
76
|
"seeking",
|
|
76
77
|
"readyState",
|
|
77
78
|
"currentSrc"
|
|
78
|
-
],
|
|
79
|
+
], m = ["buffered", "seekable"], h = Symbol.for("fkn.remoteVideoElement"), g = Symbol.for("fkn.remoteVideoElement.state"), _ = Symbol.for("fkn.remoteVideoElement.controller"), v = (e) => e ? Array.from({ length: e.length }, (t, n) => [e.start(n), e.end(n)]) : [], y = (e) => {
|
|
79
80
|
let t = {};
|
|
80
|
-
for (let n of [...
|
|
81
|
-
for (let n of
|
|
81
|
+
for (let n of [...f, ...p]) t[n] = e[n];
|
|
82
|
+
for (let n of m) t[n] = v(e[n]);
|
|
82
83
|
return t.error = e.error ? {
|
|
83
84
|
code: e.error.code,
|
|
84
85
|
message: e.error.message
|
|
85
86
|
} : null, t;
|
|
86
|
-
},
|
|
87
|
+
}, ee = (e) => {
|
|
87
88
|
let t = (t) => {
|
|
88
89
|
if (!Number.isInteger(t) || t < 0 || t >= e.length) throw new DOMException("Index or size is negative or greater than the allowed amount", "IndexSizeError");
|
|
89
90
|
};
|
|
@@ -98,16 +99,16 @@ var i = (e, t) => {
|
|
|
98
99
|
return t(n), e[n][1];
|
|
99
100
|
}
|
|
100
101
|
};
|
|
101
|
-
},
|
|
102
|
+
}, te = (e) => e ? {
|
|
102
103
|
code: e.code,
|
|
103
104
|
message: e.message,
|
|
104
105
|
MEDIA_ERR_ABORTED: 1,
|
|
105
106
|
MEDIA_ERR_NETWORK: 2,
|
|
106
107
|
MEDIA_ERR_DECODE: 3,
|
|
107
108
|
MEDIA_ERR_SRC_NOT_SUPPORTED: 4
|
|
108
|
-
} : null,
|
|
109
|
+
} : null, ne = (e) => s(e, (e, t) => ({
|
|
109
110
|
originalDetail: e instanceof CustomEvent ? e.detail : null,
|
|
110
|
-
snapshot:
|
|
111
|
+
snapshot: y(t)
|
|
111
112
|
})), b = async (e, t) => {
|
|
112
113
|
switch (t) {
|
|
113
114
|
case "play": return await e.play(), null;
|
|
@@ -129,13 +130,13 @@ var i = (e, t) => {
|
|
|
129
130
|
try {
|
|
130
131
|
e[t] = n;
|
|
131
132
|
} catch {}
|
|
132
|
-
return
|
|
133
|
+
return y(e);
|
|
133
134
|
},
|
|
134
|
-
events:
|
|
135
|
+
events: ne(e)
|
|
135
136
|
}), S = (e, t) => {
|
|
136
137
|
let n = new EventTarget();
|
|
137
|
-
Object.defineProperty(n,
|
|
138
|
-
let r =
|
|
138
|
+
Object.defineProperty(n, h, { value: !0 }), Object.defineProperty(n, g, { value: e }), Object.defineProperty(n, _, { value: t });
|
|
139
|
+
let r = l({
|
|
139
140
|
target: n,
|
|
140
141
|
remoteEvents: t.events,
|
|
141
142
|
unenrich: (t, n) => {
|
|
@@ -170,7 +171,7 @@ var i = (e, t) => {
|
|
|
170
171
|
configurable: !0,
|
|
171
172
|
enumerable: !0,
|
|
172
173
|
get() {
|
|
173
|
-
return
|
|
174
|
+
return te(e.error);
|
|
174
175
|
}
|
|
175
176
|
},
|
|
176
177
|
play: {
|
|
@@ -206,7 +207,7 @@ var i = (e, t) => {
|
|
|
206
207
|
value: 4
|
|
207
208
|
}
|
|
208
209
|
};
|
|
209
|
-
for (let n of
|
|
210
|
+
for (let n of f) i[n] = {
|
|
210
211
|
configurable: !0,
|
|
211
212
|
enumerable: !0,
|
|
212
213
|
get() {
|
|
@@ -218,113 +219,231 @@ var i = (e, t) => {
|
|
|
218
219
|
}, () => {});
|
|
219
220
|
}
|
|
220
221
|
};
|
|
221
|
-
for (let t of
|
|
222
|
+
for (let t of p) i[t] = {
|
|
222
223
|
configurable: !0,
|
|
223
224
|
enumerable: !0,
|
|
224
225
|
get() {
|
|
225
226
|
return e[t];
|
|
226
227
|
}
|
|
227
228
|
};
|
|
228
|
-
for (let t of
|
|
229
|
+
for (let t of m) i[t] = {
|
|
229
230
|
configurable: !0,
|
|
230
231
|
enumerable: !0,
|
|
231
232
|
get() {
|
|
232
|
-
return
|
|
233
|
+
return ee(e[t]);
|
|
233
234
|
}
|
|
234
235
|
};
|
|
235
236
|
return Object.defineProperties(n, i), n;
|
|
236
|
-
}, C = (e) => S(
|
|
237
|
-
let
|
|
237
|
+
}, C = (e) => S(y(e), x(e)), w = (e) => typeof e == "object" && !!e && e[h] === !0, T = (e, t) => {
|
|
238
|
+
let r = e;
|
|
238
239
|
return {
|
|
239
|
-
...
|
|
240
|
-
type:
|
|
241
|
-
initialState:
|
|
242
|
-
controller:
|
|
240
|
+
...n,
|
|
241
|
+
type: d,
|
|
242
|
+
initialState: r[g],
|
|
243
|
+
controller: a(r[_], t)
|
|
243
244
|
};
|
|
244
245
|
}, E = (e, t) => {
|
|
245
|
-
let n =
|
|
246
|
+
let n = o(e.controller, t);
|
|
246
247
|
return S({ ...e.initialState }, n);
|
|
247
|
-
},
|
|
248
|
+
}, D = (e) => [u, ...e], re = "FKN_WEB_EXTENSION_MAIN_WORLD_CONTENT_SCRIPT_ENABLED_EVENT_KEY", ie = "fknExtension", O = r();
|
|
249
|
+
typeof document < "u" && document.addEventListener(re, () => {
|
|
250
|
+
O.dispatchEvent(new CustomEvent("statuschange", { detail: { enabled: k() } }));
|
|
251
|
+
});
|
|
252
|
+
var k = () => typeof document > "u" ? !1 : document.documentElement.dataset[ie] === "true", A = null, ae = (e) => {
|
|
253
|
+
A = e;
|
|
254
|
+
}, oe = 150, j = (e = 1e3) => new Promise((t, n) => {
|
|
255
|
+
if (k()) return t();
|
|
256
|
+
let r, i = (e) => {
|
|
257
|
+
clearTimeout(r), s.disconnect(), document.removeEventListener("readystatechange", c), e();
|
|
258
|
+
}, a = () => i(async () => {
|
|
259
|
+
if (A && (await A().catch(() => {}), k())) return t();
|
|
260
|
+
n(/* @__PURE__ */ Error("The FKN WebExtension is not installed, enabled or not exposed on this page."));
|
|
261
|
+
}), o = () => {
|
|
262
|
+
clearTimeout(r), r = setTimeout(() => k() ? i(t) : a(), oe);
|
|
263
|
+
}, s = new MutationObserver(() => {
|
|
264
|
+
k() && i(t);
|
|
265
|
+
}), c = () => {
|
|
266
|
+
document.readyState === "complete" && !k() && o();
|
|
267
|
+
};
|
|
268
|
+
if (r = setTimeout(a, e), s.observe(document.documentElement, {
|
|
269
|
+
attributes: !0,
|
|
270
|
+
attributeFilter: ["data-fkn-extension"]
|
|
271
|
+
}), document.addEventListener("readystatechange", c), document.readyState === "complete") return o();
|
|
272
|
+
k() && i(t);
|
|
273
|
+
}), se, M = new Proxy({}, { get: (e, t) => async (...e) => {
|
|
274
|
+
await j(), se ??= i({}, {
|
|
275
|
+
transport: window,
|
|
276
|
+
revivableModules: D
|
|
277
|
+
});
|
|
278
|
+
let n = (await se)[t];
|
|
279
|
+
return n(...e);
|
|
280
|
+
} }), ce = {
|
|
281
|
+
scope: "network.fetch",
|
|
282
|
+
category: "network",
|
|
283
|
+
severity: 0,
|
|
284
|
+
title: "Fetch data from other sites",
|
|
285
|
+
description: "Lets the app download public data from other websites directly, past the usual cross-origin limits."
|
|
286
|
+
}, le = {
|
|
287
|
+
scope: "network.fetchCredentialed",
|
|
288
|
+
category: "network",
|
|
289
|
+
severity: 3,
|
|
290
|
+
unsafe: !0,
|
|
291
|
+
title: "Fetch from other sites, signed in as you",
|
|
292
|
+
description: "Lets the app fetch other sites using your logged-in session cookies, so it can read data only you should see."
|
|
293
|
+
}, ue = {
|
|
294
|
+
scope: "network.fetchLocal",
|
|
295
|
+
category: "network",
|
|
296
|
+
severity: 3,
|
|
297
|
+
unsafe: !0,
|
|
298
|
+
title: "Access devices on your local network",
|
|
299
|
+
description: "Lets the app reach devices and services on your home or work network, which websites normally cannot touch."
|
|
300
|
+
}, de = (e) => {
|
|
301
|
+
let t = e.match(/^(\d+)\.(\d+)\.\d+\.\d+$/);
|
|
302
|
+
if (!t) return !1;
|
|
303
|
+
let [n, r] = [Number(t[1]), Number(t[2])];
|
|
304
|
+
return n === 10 || n === 127 || n === 0 || n === 169 && r === 254 || n === 172 && r >= 16 && r <= 31 || n === 192 && r === 168;
|
|
305
|
+
}, fe = (e) => {
|
|
306
|
+
let t;
|
|
307
|
+
try {
|
|
308
|
+
t = new URL(e);
|
|
309
|
+
} catch {
|
|
310
|
+
return !1;
|
|
311
|
+
}
|
|
312
|
+
let n = t.hostname.replace(/^\[|\]$/g, "").toLowerCase().replace(/\.$/, "");
|
|
313
|
+
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:") : de(n);
|
|
314
|
+
}, pe = ["fkn.app", "fkn.dev"], N = (e) => {
|
|
315
|
+
let t;
|
|
316
|
+
try {
|
|
317
|
+
t = new URL(e);
|
|
318
|
+
} catch {
|
|
319
|
+
return !1;
|
|
320
|
+
}
|
|
321
|
+
if (t.protocol === "chrome-extension:" || t.protocol === "moz-extension:") return !0;
|
|
322
|
+
let n = t.hostname;
|
|
323
|
+
return pe.some((e) => n === e || n.endsWith(`.${e}`));
|
|
324
|
+
}, P = (e) => {
|
|
325
|
+
if (N(e)) throw Error("fetch: refusing to target the extension's own pages or FKN platform domains");
|
|
326
|
+
}, me = ["origin", "referer"], he = (e) => {
|
|
327
|
+
if (!e?.headers) return;
|
|
328
|
+
let t = new Headers(e.headers), n = me.map((e) => {
|
|
329
|
+
let n = t.get(e);
|
|
330
|
+
return n === null ? void 0 : [e, n];
|
|
331
|
+
}).filter((e) => e !== void 0);
|
|
332
|
+
return n.length ? n : void 0;
|
|
333
|
+
}, ge = async (e, t) => {
|
|
334
|
+
let n = new Request(e, t);
|
|
335
|
+
P(n.url);
|
|
336
|
+
let r = n.body ? await n.arrayBuffer() : null;
|
|
337
|
+
return M.proxyFetch({
|
|
338
|
+
url: n.url,
|
|
339
|
+
method: n.method,
|
|
340
|
+
headers: [...n.headers],
|
|
341
|
+
body: r,
|
|
342
|
+
credentials: t?.credentials === "include" ? "include" : "omit",
|
|
343
|
+
redirect: n.redirect,
|
|
344
|
+
unsafeHeaders: he(t),
|
|
345
|
+
reason: t?.reason,
|
|
346
|
+
signal: t?.signal ?? void 0
|
|
347
|
+
});
|
|
348
|
+
}, _e = {
|
|
349
|
+
scope: "network.readCookie",
|
|
350
|
+
category: "network",
|
|
351
|
+
severity: 3,
|
|
352
|
+
unsafe: !0,
|
|
353
|
+
title: "Read a site’s cookie",
|
|
354
|
+
description: "Lets the app read a named cookie from another site, which can include the login token only that site should see."
|
|
355
|
+
}, ve = { get: (e) => M.getCookie(e) }, ye = {
|
|
356
|
+
scope: "network.modifyRequestHeaders",
|
|
357
|
+
category: "network",
|
|
358
|
+
severity: 2,
|
|
359
|
+
unsafe: !0,
|
|
360
|
+
title: "Rewrite request headers to other sites",
|
|
361
|
+
description: "Lets the app set or remove headers (like Origin and Referer) on this page’s own requests to the listed sites."
|
|
362
|
+
}, be = (e) => M.setRequestHeaderRule(e), xe = (e) => M.removeRequestHeaderRule({ ruleId: e }), F = (e) => typeof e == "object" && !!e, Se = "PermissionDeniedError", Ce = (e) => e instanceof Error ? e.name === Se : F(e) && e.name === "PermissionDeniedError", I = "LocatorUnsupportedError", we = (e, t) => Object.assign(/* @__PURE__ */ Error(`Locator operation not supported${t ? ` on the ${t} backend` : ""}: ${e}`), {
|
|
363
|
+
name: I,
|
|
364
|
+
operation: e,
|
|
365
|
+
backend: t
|
|
366
|
+
}), Te = (e) => e instanceof Error ? e.name === I : typeof e == "object" && !!e && e.name === "LocatorUnsupportedError", Ee = 3e4, De = 50, Oe = (e) => {
|
|
248
367
|
let t = e[e.length - 1];
|
|
249
368
|
return typeof t == "object" && t ? t : void 0;
|
|
250
|
-
},
|
|
251
|
-
let t =
|
|
252
|
-
return typeof t == "number" ? t :
|
|
253
|
-
},
|
|
369
|
+
}, ke = (e) => {
|
|
370
|
+
let t = Oe(e)?.timeout;
|
|
371
|
+
return typeof t == "number" ? t : Ee;
|
|
372
|
+
}, Ae = async (e, t, n, r, i) => {
|
|
254
373
|
i && await i(t, n, r);
|
|
255
|
-
let a = e, o =
|
|
374
|
+
let a = e, o = ke(r), s = Date.now() + o, c = /* @__PURE__ */ Error(`Locator timeout (${o}ms): ${n}`), { promise: l, reject: u } = Promise.withResolvers(), d = setTimeout(() => u(c), o), f = c;
|
|
256
375
|
try {
|
|
257
376
|
for (; Date.now() < s;) try {
|
|
258
377
|
return await Promise.race([a(t, n, r), l]);
|
|
259
378
|
} catch (e) {
|
|
260
379
|
if (e === c) break;
|
|
261
|
-
if (
|
|
380
|
+
if (Ce(e) || Te(e)) throw e;
|
|
262
381
|
f = e;
|
|
263
382
|
let t = s - Date.now();
|
|
264
383
|
if (t <= 0) break;
|
|
265
|
-
await new Promise((e) => setTimeout(e, Math.min(
|
|
384
|
+
await new Promise((e) => setTimeout(e, Math.min(De, t)));
|
|
266
385
|
}
|
|
267
386
|
} finally {
|
|
268
387
|
clearTimeout(d);
|
|
269
388
|
}
|
|
270
389
|
throw f;
|
|
271
|
-
},
|
|
272
|
-
render: () =>
|
|
273
|
-
resolve: () =>
|
|
274
|
-
type: () =>
|
|
275
|
-
}),
|
|
390
|
+
}, L = /* @__PURE__ */ e({
|
|
391
|
+
render: () => Ne,
|
|
392
|
+
resolve: () => Me,
|
|
393
|
+
type: () => je
|
|
394
|
+
}), je = "locator", Me = (e, t) => e.elements.flatMap((e) => [...e.querySelectorAll(t)]), Ne = (e) => ({
|
|
276
395
|
fragment: typeof e == "string" ? e : "?",
|
|
277
396
|
separator: "descend"
|
|
278
|
-
}),
|
|
279
|
-
typeof window < "u" &&
|
|
280
|
-
if (!
|
|
397
|
+
}), Pe = "FKN_WEB_EXTENSION_FRAME_ANNOUNCE_REQUEST_KEY", Fe = typeof chrome < "u" && !!chrome.runtime?.id, Ie = (e) => F(e) && e.FKN_WEB_EXTENSION_FRAME_ANNOUNCE_KEY === !0 && typeof e.frameId == "string", R = /* @__PURE__ */ new WeakMap(), z = /* @__PURE__ */ new WeakMap(), B = /* @__PURE__ */ new Set(), Le = (e) => (B.add(e), () => B.delete(e));
|
|
398
|
+
typeof window < "u" && Fe && window.addEventListener("message", (e) => {
|
|
399
|
+
if (!Ie(e.data)) return;
|
|
281
400
|
e.stopImmediatePropagation();
|
|
282
401
|
let t = e.source;
|
|
283
402
|
if (!t || typeof t != "object") return;
|
|
284
|
-
let n = t, r =
|
|
285
|
-
if (
|
|
286
|
-
let a =
|
|
403
|
+
let n = t, r = R.get(n), i = e.data.frameId;
|
|
404
|
+
if (R.set(n, i), r) for (let e of B) e(r);
|
|
405
|
+
let a = z.get(n);
|
|
287
406
|
if (a) {
|
|
288
|
-
|
|
407
|
+
z.delete(n);
|
|
289
408
|
for (let e of a) e(i);
|
|
290
409
|
}
|
|
291
410
|
}, { capture: !0 });
|
|
292
|
-
var
|
|
411
|
+
var Re = (e) => {
|
|
293
412
|
let t = e.contentWindow;
|
|
294
413
|
if (!t) return Promise.reject(/* @__PURE__ */ Error("frameLocator: <iframe> has no contentWindow"));
|
|
295
|
-
let n =
|
|
414
|
+
let n = R.get(t);
|
|
296
415
|
return n ? Promise.resolve(n) : new Promise((e) => {
|
|
297
|
-
let n =
|
|
298
|
-
n.push(e),
|
|
416
|
+
let n = z.get(t) ?? [];
|
|
417
|
+
n.push(e), z.set(t, n), t.postMessage({ [Pe]: !0 }, "*");
|
|
299
418
|
});
|
|
300
|
-
},
|
|
301
|
-
render: () =>
|
|
302
|
-
resolve: () =>
|
|
303
|
-
resolvePeer: () =>
|
|
304
|
-
type: () =>
|
|
305
|
-
}),
|
|
419
|
+
}, V = /* @__PURE__ */ e({
|
|
420
|
+
render: () => He,
|
|
421
|
+
resolve: () => Be,
|
|
422
|
+
resolvePeer: () => Ve,
|
|
423
|
+
type: () => ze
|
|
424
|
+
}), ze = "frameLocator", Be = (e, t) => e.elements.flatMap((e) => [...e.querySelectorAll(t)]).filter((e) => e instanceof HTMLIFrameElement), Ve = async ({ parts: e, selfIndex: t, resolveLocal: n }) => {
|
|
306
425
|
let r = n(e.slice(0, t + 1))[0];
|
|
307
426
|
if (!r) throw Error("frameLocator: no <iframe> matched");
|
|
308
427
|
if (!(r instanceof HTMLIFrameElement)) throw Error(`frameLocator: expected <iframe>, got <${r.tagName.toLowerCase()}>`);
|
|
309
|
-
return
|
|
310
|
-
},
|
|
428
|
+
return Re(r);
|
|
429
|
+
}, He = (e) => ({
|
|
311
430
|
fragment: typeof e == "string" ? e : "?",
|
|
312
431
|
separator: "frame-down"
|
|
313
|
-
}),
|
|
314
|
-
render: () =>
|
|
315
|
-
resolve: () =>
|
|
316
|
-
resolvePeer: () =>
|
|
317
|
-
type: () =>
|
|
318
|
-
}),
|
|
432
|
+
}), Ue = /* @__PURE__ */ e({
|
|
433
|
+
render: () => qe,
|
|
434
|
+
resolve: () => Ge,
|
|
435
|
+
resolvePeer: () => Ke,
|
|
436
|
+
type: () => We
|
|
437
|
+
}), We = "owner", Ge = (e) => {
|
|
319
438
|
throw Error("owner: must be processed by the executor as an upward pivot");
|
|
320
|
-
},
|
|
321
|
-
let { backgroundResolvers: e } = await import("./background-
|
|
439
|
+
}, Ke = async () => {
|
|
440
|
+
let { backgroundResolvers: e } = await import("./background-BVBbBOmL.js"), t = await (await e).getParentFrameId();
|
|
322
441
|
if (!t) throw Error("owner: already at top frame");
|
|
323
442
|
return t;
|
|
324
|
-
},
|
|
443
|
+
}, qe = () => ({
|
|
325
444
|
fragment: "",
|
|
326
445
|
separator: "frame-up"
|
|
327
|
-
}),
|
|
446
|
+
}), Je = class extends Error {
|
|
328
447
|
reason;
|
|
329
448
|
filename;
|
|
330
449
|
line;
|
|
@@ -333,18 +452,18 @@ var ge = (e) => {
|
|
|
333
452
|
constructor(e, t, n, r, i) {
|
|
334
453
|
super(`${e}:${n}:${r}: ${t}`), this.reason = t, this.filename = e, this.line = n, this.column = r, this.source = i;
|
|
335
454
|
}
|
|
336
|
-
},
|
|
455
|
+
}, Ye = class {
|
|
337
456
|
start;
|
|
338
457
|
end;
|
|
339
458
|
source;
|
|
340
459
|
constructor(e, t, n) {
|
|
341
460
|
this.start = e, this.end = t, this.source = n;
|
|
342
461
|
}
|
|
343
|
-
},
|
|
462
|
+
}, H;
|
|
344
463
|
(function(e) {
|
|
345
464
|
e.stylesheet = "stylesheet", e.rule = "rule", e.declaration = "declaration", e.comment = "comment", e.atRule = "at-rule", e.container = "container", e.charset = "charset", e.counterStyle = "counter-style", e.document = "document", e.customMedia = "custom-media", e.fontFace = "font-face", e.fontFeatureValues = "font-feature-values", e.host = "host", e.import = "import", e.keyframes = "keyframes", e.keyframe = "keyframe", e.layer = "layer", e.media = "media", e.namespace = "namespace", e.page = "page", e.pageMarginBox = "page-margin-box", e.positionTry = "position-try", e.property = "property", e.scope = "scope", e.startingStyle = "starting-style", e.supports = "supports", e.viewTransition = "view-transition";
|
|
346
|
-
})(
|
|
347
|
-
var
|
|
465
|
+
})(H ||= {});
|
|
466
|
+
var U = (e, t, n) => {
|
|
348
467
|
let r = n, i = 1e4;
|
|
349
468
|
do {
|
|
350
469
|
let n = t.map((t) => e.indexOf(t, r));
|
|
@@ -356,7 +475,7 @@ var N = (e, t, n) => {
|
|
|
356
475
|
r = o + 2, i--;
|
|
357
476
|
} while (i > 0);
|
|
358
477
|
throw Error("Too many escaping");
|
|
359
|
-
},
|
|
478
|
+
}, W = (e, t, n) => {
|
|
360
479
|
let r = n, i = 1e4;
|
|
361
480
|
do {
|
|
362
481
|
let n = t.map((t) => e.indexOf(t, r));
|
|
@@ -370,21 +489,21 @@ var N = (e, t, n) => {
|
|
|
370
489
|
break;
|
|
371
490
|
case "(":
|
|
372
491
|
{
|
|
373
|
-
let t =
|
|
492
|
+
let t = W(e, [")"], o + 1);
|
|
374
493
|
if (t === -1) return -1;
|
|
375
494
|
r = t + 1;
|
|
376
495
|
}
|
|
377
496
|
break;
|
|
378
497
|
case "\"":
|
|
379
498
|
{
|
|
380
|
-
let t =
|
|
499
|
+
let t = U(e, ["\""], o + 1);
|
|
381
500
|
if (t === -1) return -1;
|
|
382
501
|
r = t + 1;
|
|
383
502
|
}
|
|
384
503
|
break;
|
|
385
504
|
case "'":
|
|
386
505
|
{
|
|
387
|
-
let t =
|
|
506
|
+
let t = U(e, ["'"], o + 1);
|
|
388
507
|
if (t === -1) return -1;
|
|
389
508
|
r = t + 1;
|
|
390
509
|
}
|
|
@@ -394,17 +513,17 @@ var N = (e, t, n) => {
|
|
|
394
513
|
i--;
|
|
395
514
|
} while (i > 0);
|
|
396
515
|
throw Error("Too many escaping");
|
|
397
|
-
},
|
|
398
|
-
function
|
|
516
|
+
}, G = /\/\*[^]*?(?:\*\/|$)/g;
|
|
517
|
+
function K(e) {
|
|
399
518
|
return e ? e.trim() : "";
|
|
400
519
|
}
|
|
401
|
-
function
|
|
520
|
+
function q(e, t) {
|
|
402
521
|
let n = e && typeof e.type == "string", r = n ? e : t;
|
|
403
522
|
for (let t in e) {
|
|
404
523
|
let n = e[t];
|
|
405
524
|
Array.isArray(n) ? n.forEach((e) => {
|
|
406
|
-
|
|
407
|
-
}) : n && typeof n == "object" &&
|
|
525
|
+
q(e, r);
|
|
526
|
+
}) : n && typeof n == "object" && q(n, r);
|
|
408
527
|
}
|
|
409
528
|
return n && Object.defineProperty(e, "parent", {
|
|
410
529
|
configurable: !0,
|
|
@@ -413,7 +532,7 @@ function L(e, t) {
|
|
|
413
532
|
value: t || null
|
|
414
533
|
}), e;
|
|
415
534
|
}
|
|
416
|
-
var
|
|
535
|
+
var Xe = class {
|
|
417
536
|
level = 0;
|
|
418
537
|
indentation = " ";
|
|
419
538
|
compress = !1;
|
|
@@ -428,33 +547,33 @@ var Oe = class {
|
|
|
428
547
|
}
|
|
429
548
|
visit(e) {
|
|
430
549
|
switch (e.type) {
|
|
431
|
-
case
|
|
432
|
-
case
|
|
433
|
-
case
|
|
434
|
-
case
|
|
435
|
-
case
|
|
436
|
-
case
|
|
437
|
-
case
|
|
438
|
-
case
|
|
439
|
-
case
|
|
440
|
-
case
|
|
441
|
-
case
|
|
442
|
-
case
|
|
443
|
-
case
|
|
444
|
-
case
|
|
445
|
-
case
|
|
446
|
-
case
|
|
447
|
-
case
|
|
448
|
-
case
|
|
449
|
-
case
|
|
450
|
-
case
|
|
451
|
-
case
|
|
452
|
-
case
|
|
453
|
-
case
|
|
454
|
-
case
|
|
455
|
-
case
|
|
456
|
-
case
|
|
457
|
-
case
|
|
550
|
+
case H.stylesheet: return this.stylesheet(e);
|
|
551
|
+
case H.rule: return this.rule(e);
|
|
552
|
+
case H.declaration: return this.declaration(e);
|
|
553
|
+
case H.comment: return this.comment(e);
|
|
554
|
+
case H.container: return this.container(e);
|
|
555
|
+
case H.charset: return this.charset(e);
|
|
556
|
+
case H.counterStyle: return this.counterStyle(e);
|
|
557
|
+
case H.document: return this.document(e);
|
|
558
|
+
case H.customMedia: return this.customMedia(e);
|
|
559
|
+
case H.fontFace: return this.fontFace(e);
|
|
560
|
+
case H.fontFeatureValues: return this.fontFeatureValues(e);
|
|
561
|
+
case H.host: return this.host(e);
|
|
562
|
+
case H.import: return this.import(e);
|
|
563
|
+
case H.keyframes: return this.keyframes(e);
|
|
564
|
+
case H.keyframe: return this.keyframe(e);
|
|
565
|
+
case H.layer: return this.layer(e);
|
|
566
|
+
case H.media: return this.media(e);
|
|
567
|
+
case H.namespace: return this.namespace(e);
|
|
568
|
+
case H.page: return this.page(e);
|
|
569
|
+
case H.pageMarginBox: return this.pageMarginBox(e);
|
|
570
|
+
case H.positionTry: return this.positionTry(e);
|
|
571
|
+
case H.property: return this.property(e);
|
|
572
|
+
case H.scope: return this.scope(e);
|
|
573
|
+
case H.startingStyle: return this.startingStyle(e);
|
|
574
|
+
case H.supports: return this.supports(e);
|
|
575
|
+
case H.viewTransition: return this.viewTransition(e);
|
|
576
|
+
case H.atRule: return this.genericAtRule(e);
|
|
458
577
|
}
|
|
459
578
|
}
|
|
460
579
|
mapVisit(e, t) {
|
|
@@ -550,7 +669,7 @@ var Oe = class {
|
|
|
550
669
|
let t = e.prelude ? ` ${e.prelude}` : "";
|
|
551
670
|
if (this.compress) return this.emit(`@${e.name}${t}`, e.position) + (e.rules ? this.emit("{") + this.mapVisit(e.rules) + this.emit("}") : ";");
|
|
552
671
|
if (!e.rules) return this.emit(`${this.indent()}@${e.name}${t};`, e.position);
|
|
553
|
-
let n = e.rules.some((e) => e.type !==
|
|
672
|
+
let n = e.rules.some((e) => e.type !== H.declaration && e.type !== H.comment), r = n ? "\n\n" : "\n";
|
|
554
673
|
return this.emit(`${this.indent()}@${e.name}${t}`, e.position) + this.emit(n ? ` {\n${this.indent(1)}` : " {\n") + this.emit(n ? "" : this.indent(1)) + this.mapVisit(e.rules, r) + this.emit(n ? `\n${this.indent(-1)}${this.indent()}}` : `${this.indent(-1)}\n${this.indent()}}`);
|
|
555
674
|
}
|
|
556
675
|
rule(e) {
|
|
@@ -563,7 +682,7 @@ var Oe = class {
|
|
|
563
682
|
declaration(e) {
|
|
564
683
|
return this.compress ? this.emit(`${e.property}:${e.value}`, e.position) + this.emit(";") : e.property === "grid-template-areas" ? this.emit(this.indent()) + this.emit(e.property + ": " + e.value.split("\n").join("\n".padEnd(22) + this.indent()), e.position) + this.emit(";") : this.emit(this.indent()) + this.emit(`${e.property}: ${e.value}`, e.position) + this.emit(";");
|
|
565
684
|
}
|
|
566
|
-
},
|
|
685
|
+
}, Ze = (e, t) => {
|
|
567
686
|
t ||= {};
|
|
568
687
|
let n = 1, r = 1;
|
|
569
688
|
function i() {
|
|
@@ -571,14 +690,14 @@ var Oe = class {
|
|
|
571
690
|
line: n,
|
|
572
691
|
column: r
|
|
573
692
|
};
|
|
574
|
-
return (i) => (i.position = new
|
|
693
|
+
return (i) => (i.position = new Ye(e, {
|
|
575
694
|
line: n,
|
|
576
695
|
column: r
|
|
577
696
|
}, t?.source || ""), u(), i);
|
|
578
697
|
}
|
|
579
698
|
let a = [];
|
|
580
699
|
function o(i) {
|
|
581
|
-
let o = new
|
|
700
|
+
let o = new Je(t?.source || "", i, n, r, e);
|
|
582
701
|
if (!t?.silent) throw o;
|
|
583
702
|
a.push(o);
|
|
584
703
|
}
|
|
@@ -614,36 +733,36 @@ var Oe = class {
|
|
|
614
733
|
if (e.charAt(0) !== "/" || e.charAt(1) !== "*") return;
|
|
615
734
|
let n = /^\/\*[^]*?\*\//.exec(e);
|
|
616
735
|
return n ? (l(n), t({
|
|
617
|
-
type:
|
|
736
|
+
type: H.comment,
|
|
618
737
|
comment: n[0].slice(2, -2)
|
|
619
738
|
})) : o("End of comment missing");
|
|
620
739
|
}
|
|
621
740
|
function p() {
|
|
622
|
-
let t =
|
|
741
|
+
let t = W(e, ["{"]);
|
|
623
742
|
if (t === -1 || t === 0) return;
|
|
624
743
|
let n = e.substring(0, t);
|
|
625
744
|
return l([n]), ((e, t) => {
|
|
626
745
|
let n = [], r = 0;
|
|
627
746
|
for (; r < e.length;) {
|
|
628
|
-
let i =
|
|
747
|
+
let i = W(e, t, r);
|
|
629
748
|
if (i === -1) return n.push(e.substring(r)), n;
|
|
630
749
|
n.push(e.substring(r, i)), r = i + 1;
|
|
631
750
|
}
|
|
632
751
|
return n;
|
|
633
|
-
})(
|
|
752
|
+
})(K(n).replace(G, ""), [","]).map((e) => K(e));
|
|
634
753
|
}
|
|
635
754
|
function m() {
|
|
636
755
|
let t = i(), n = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/.exec(e);
|
|
637
756
|
if (!n) return;
|
|
638
757
|
l(n);
|
|
639
|
-
let r =
|
|
758
|
+
let r = K(n[0]), a = /^:\s*/.exec(e);
|
|
640
759
|
if (!a) return o("property missing ':'");
|
|
641
760
|
l(a);
|
|
642
|
-
let s = "", c =
|
|
643
|
-
c !== -1 && (s = e.substring(0, c), l([s]), s =
|
|
761
|
+
let s = "", c = W(e, [";", "}"]);
|
|
762
|
+
c !== -1 && (s = e.substring(0, c), l([s]), s = K(s).replace(G, ""));
|
|
644
763
|
let u = t({
|
|
645
|
-
type:
|
|
646
|
-
property: r.replace(
|
|
764
|
+
type: H.declaration,
|
|
765
|
+
property: r.replace(G, ""),
|
|
647
766
|
value: s
|
|
648
767
|
}), d = /^[;\s]*/.exec(e);
|
|
649
768
|
return d && l(d), u;
|
|
@@ -662,9 +781,9 @@ var Oe = class {
|
|
|
662
781
|
return c() ? n : o("missing '}'");
|
|
663
782
|
}
|
|
664
783
|
function g() {
|
|
665
|
-
let t =
|
|
784
|
+
let t = W(e, ["{"]);
|
|
666
785
|
if (t === -1) return !1;
|
|
667
|
-
let n =
|
|
786
|
+
let n = W(e, [";"]), r = W(e, ["}"]);
|
|
668
787
|
return !(n !== -1 && n < t) && !(r !== -1 && r < t);
|
|
669
788
|
}
|
|
670
789
|
function _() {
|
|
@@ -672,14 +791,14 @@ var Oe = class {
|
|
|
672
791
|
if (!s()) return o("missing '{'");
|
|
673
792
|
for (d(n); e.length && e.charAt(0) !== "}";) {
|
|
674
793
|
if (e.charAt(0) === "@") {
|
|
675
|
-
let e =
|
|
794
|
+
let e = S();
|
|
676
795
|
if (e) {
|
|
677
796
|
n.push(e), d(n);
|
|
678
797
|
continue;
|
|
679
798
|
}
|
|
680
799
|
}
|
|
681
800
|
if (g()) {
|
|
682
|
-
let e =
|
|
801
|
+
let e = C();
|
|
683
802
|
if (e) {
|
|
684
803
|
n.push(e), d(n);
|
|
685
804
|
continue;
|
|
@@ -704,14 +823,14 @@ var Oe = class {
|
|
|
704
823
|
let n = [];
|
|
705
824
|
for (u(), d(n); e.length && e.charAt(0) !== "}";) {
|
|
706
825
|
if (e.charAt(0) === "@") {
|
|
707
|
-
let e =
|
|
826
|
+
let e = S();
|
|
708
827
|
if (e) {
|
|
709
828
|
n.push(e), d(n);
|
|
710
829
|
continue;
|
|
711
830
|
}
|
|
712
831
|
}
|
|
713
832
|
if (g()) {
|
|
714
|
-
let e =
|
|
833
|
+
let e = C();
|
|
715
834
|
if (e) {
|
|
716
835
|
n.push(e), d(n);
|
|
717
836
|
continue;
|
|
@@ -741,12 +860,12 @@ var Oe = class {
|
|
|
741
860
|
i && l(i), r = /^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/.exec(e);
|
|
742
861
|
}
|
|
743
862
|
if (t.length) return n({
|
|
744
|
-
type:
|
|
863
|
+
type: H.keyframe,
|
|
745
864
|
values: t,
|
|
746
865
|
declarations: h() || []
|
|
747
866
|
});
|
|
748
867
|
}
|
|
749
|
-
let
|
|
868
|
+
let ee = RegExp(`^@(${[
|
|
750
869
|
"top-left-corner",
|
|
751
870
|
"top-left",
|
|
752
871
|
"top-center",
|
|
@@ -763,8 +882,8 @@ var Oe = class {
|
|
|
763
882
|
"right-top",
|
|
764
883
|
"right-middle",
|
|
765
884
|
"right-bottom"
|
|
766
|
-
].join("|")})(?![\\w-])\\s*`),
|
|
767
|
-
function
|
|
885
|
+
].join("|")})(?![\\w-])\\s*`), te = x("import"), ne = x("charset"), b = x("namespace");
|
|
886
|
+
function x(t) {
|
|
768
887
|
let n = RegExp("^@" + t + "\\s*((?::?[^;'\"]|\"(?:\\\\\"|[^\"])*?\"|'(?:\\\\'|[^'])*?')+)(?:;|$)");
|
|
769
888
|
return () => {
|
|
770
889
|
let r = i(), a = n.exec(e);
|
|
@@ -773,7 +892,7 @@ var Oe = class {
|
|
|
773
892
|
return s[t] = o[1].trim(), r(s);
|
|
774
893
|
};
|
|
775
894
|
}
|
|
776
|
-
function
|
|
895
|
+
function S() {
|
|
777
896
|
if (e[0] === "@") return function() {
|
|
778
897
|
let t = i(), n = /^@([-\w]+)?keyframes\s*/.exec(e);
|
|
779
898
|
if (!n) return;
|
|
@@ -784,7 +903,7 @@ var Oe = class {
|
|
|
784
903
|
let f = d(), p = y();
|
|
785
904
|
for (; p;) f.push(p), f = f.concat(d()), p = y();
|
|
786
905
|
return c() ? t({
|
|
787
|
-
type:
|
|
906
|
+
type: H.keyframes,
|
|
788
907
|
name: u,
|
|
789
908
|
vendor: r,
|
|
790
909
|
keyframes: f
|
|
@@ -792,11 +911,11 @@ var Oe = class {
|
|
|
792
911
|
}() || function() {
|
|
793
912
|
let t = i(), n = /^@media *([^{]+)/.exec(e);
|
|
794
913
|
if (!n) return;
|
|
795
|
-
let r =
|
|
914
|
+
let r = K(l(n)[1]);
|
|
796
915
|
if (!s()) return o("@media missing '{'");
|
|
797
916
|
let a = v();
|
|
798
917
|
return c() ? t({
|
|
799
|
-
type:
|
|
918
|
+
type: H.media,
|
|
800
919
|
media: r,
|
|
801
920
|
rules: a
|
|
802
921
|
}) : o("@media missing '}'");
|
|
@@ -805,29 +924,29 @@ var Oe = class {
|
|
|
805
924
|
if (!n) return;
|
|
806
925
|
let r = l(n);
|
|
807
926
|
return t({
|
|
808
|
-
type:
|
|
809
|
-
name:
|
|
810
|
-
media:
|
|
927
|
+
type: H.customMedia,
|
|
928
|
+
name: K(r[1]),
|
|
929
|
+
media: K(r[2])
|
|
811
930
|
});
|
|
812
931
|
}() || function() {
|
|
813
932
|
let t = i(), n = /^@supports *([^{]+)/.exec(e);
|
|
814
933
|
if (!n) return;
|
|
815
|
-
let r =
|
|
934
|
+
let r = K(l(n)[1]);
|
|
816
935
|
if (!s()) return o("@supports missing '{'");
|
|
817
936
|
let a = v();
|
|
818
937
|
return c() ? t({
|
|
819
|
-
type:
|
|
938
|
+
type: H.supports,
|
|
820
939
|
supports: r,
|
|
821
940
|
rules: a
|
|
822
941
|
}) : o("@supports missing '}'");
|
|
823
|
-
}() ||
|
|
942
|
+
}() || te() || ne() || b() || function() {
|
|
824
943
|
let t = i(), n = /^@([-\w]+)?document *([^{]+)/.exec(e);
|
|
825
944
|
if (!n) return;
|
|
826
|
-
let r = l(n), a =
|
|
945
|
+
let r = l(n), a = K(r[1]), u = K(r[2]);
|
|
827
946
|
if (!s()) return o("@document missing '{'");
|
|
828
947
|
let d = v();
|
|
829
948
|
return c() ? t({
|
|
830
|
-
type:
|
|
949
|
+
type: H.document,
|
|
831
950
|
document: u,
|
|
832
951
|
vendor: a,
|
|
833
952
|
rules: d
|
|
@@ -841,7 +960,7 @@ var Oe = class {
|
|
|
841
960
|
let a = [];
|
|
842
961
|
for (d(a); e.length && e.charAt(0) !== "}";) {
|
|
843
962
|
if (e.charAt(0) === "@") {
|
|
844
|
-
let e =
|
|
963
|
+
let e = S();
|
|
845
964
|
if (e) {
|
|
846
965
|
a.push(e), d(a);
|
|
847
966
|
continue;
|
|
@@ -852,7 +971,7 @@ var Oe = class {
|
|
|
852
971
|
a.push(t), d(a);
|
|
853
972
|
}
|
|
854
973
|
return c() ? t({
|
|
855
|
-
type:
|
|
974
|
+
type: H.page,
|
|
856
975
|
selectors: r,
|
|
857
976
|
declarations: a
|
|
858
977
|
}) : o("@page missing '}'");
|
|
@@ -862,7 +981,7 @@ var Oe = class {
|
|
|
862
981
|
if (l(n), !s()) return o("@host missing '{'");
|
|
863
982
|
let r = v();
|
|
864
983
|
return c() ? t({
|
|
865
|
-
type:
|
|
984
|
+
type: H.host,
|
|
866
985
|
rules: r
|
|
867
986
|
}) : o("@host missing '}'");
|
|
868
987
|
}() || function() {
|
|
@@ -872,28 +991,28 @@ var Oe = class {
|
|
|
872
991
|
let r = d(), a = m();
|
|
873
992
|
for (; a;) r.push(a), r = r.concat(d()), a = m();
|
|
874
993
|
return c() ? t({
|
|
875
|
-
type:
|
|
994
|
+
type: H.fontFace,
|
|
876
995
|
declarations: r
|
|
877
996
|
}) : o("@font-face missing '}'");
|
|
878
997
|
}() || function() {
|
|
879
998
|
let t = i(), n = /^@font-feature-values\s+([^{]+)/.exec(e);
|
|
880
999
|
if (!n) return;
|
|
881
|
-
let r =
|
|
1000
|
+
let r = K(l(n)[1]);
|
|
882
1001
|
if (!s()) return o("@font-feature-values missing '{'");
|
|
883
1002
|
let a = v();
|
|
884
1003
|
return c() ? t({
|
|
885
|
-
type:
|
|
1004
|
+
type: H.fontFeatureValues,
|
|
886
1005
|
fontFamily: r,
|
|
887
1006
|
rules: a
|
|
888
1007
|
}) : o("@font-feature-values missing '}'");
|
|
889
1008
|
}() || function() {
|
|
890
1009
|
let t = i(), n = /^@container *([^{]+)/.exec(e);
|
|
891
1010
|
if (!n) return;
|
|
892
|
-
let r =
|
|
1011
|
+
let r = K(l(n)[1]);
|
|
893
1012
|
if (!s()) return o("@container missing '{'");
|
|
894
1013
|
let a = v();
|
|
895
1014
|
return c() ? t({
|
|
896
|
-
type:
|
|
1015
|
+
type: H.container,
|
|
897
1016
|
container: r,
|
|
898
1017
|
rules: a
|
|
899
1018
|
}) : o("@container missing '}'");
|
|
@@ -903,23 +1022,23 @@ var Oe = class {
|
|
|
903
1022
|
if (l(n), !s()) return o("@starting-style missing '{'");
|
|
904
1023
|
let r = v();
|
|
905
1024
|
return c() ? t({
|
|
906
|
-
type:
|
|
1025
|
+
type: H.startingStyle,
|
|
907
1026
|
rules: r
|
|
908
1027
|
}) : o("@starting-style missing '}'");
|
|
909
1028
|
}() || function() {
|
|
910
1029
|
let t = i(), n = /^@layer *([^{;@]+)/.exec(e);
|
|
911
1030
|
if (!n) return;
|
|
912
|
-
let r =
|
|
1031
|
+
let r = K(l(n)[1]);
|
|
913
1032
|
if (!s()) {
|
|
914
1033
|
let n = /^[;\s]*/.exec(e);
|
|
915
1034
|
return n && l(n), t({
|
|
916
|
-
type:
|
|
1035
|
+
type: H.layer,
|
|
917
1036
|
layer: r
|
|
918
1037
|
});
|
|
919
1038
|
}
|
|
920
1039
|
let a = v();
|
|
921
1040
|
return c() ? t({
|
|
922
|
-
type:
|
|
1041
|
+
type: H.layer,
|
|
923
1042
|
layer: r,
|
|
924
1043
|
rules: a
|
|
925
1044
|
}) : o("@layer missing '}'");
|
|
@@ -931,7 +1050,7 @@ var Oe = class {
|
|
|
931
1050
|
let a = d(), u = m();
|
|
932
1051
|
for (; u;) a.push(u), a = a.concat(d()), u = m();
|
|
933
1052
|
return c() ? t({
|
|
934
|
-
type:
|
|
1053
|
+
type: H.property,
|
|
935
1054
|
name: r,
|
|
936
1055
|
declarations: a
|
|
937
1056
|
}) : o("@property missing '}'");
|
|
@@ -943,18 +1062,18 @@ var Oe = class {
|
|
|
943
1062
|
let a = d(), u = m();
|
|
944
1063
|
for (; u;) a.push(u), a = a.concat(d()), u = m();
|
|
945
1064
|
return c() ? t({
|
|
946
|
-
type:
|
|
1065
|
+
type: H.counterStyle,
|
|
947
1066
|
name: r,
|
|
948
1067
|
declarations: a
|
|
949
1068
|
}) : o("@counter-style missing '}'");
|
|
950
1069
|
}() || function() {
|
|
951
1070
|
let t = i(), n = /^@scope\s*([^{]*)/.exec(e);
|
|
952
1071
|
if (!n) return;
|
|
953
|
-
let r =
|
|
1072
|
+
let r = K(l(n)[1]);
|
|
954
1073
|
if (!s()) return o("@scope missing '{'");
|
|
955
1074
|
let a = v();
|
|
956
1075
|
return c() ? t({
|
|
957
|
-
type:
|
|
1076
|
+
type: H.scope,
|
|
958
1077
|
scope: r,
|
|
959
1078
|
rules: a
|
|
960
1079
|
}) : o("@scope missing '}'");
|
|
@@ -965,7 +1084,7 @@ var Oe = class {
|
|
|
965
1084
|
let r = d(), a = m();
|
|
966
1085
|
for (; a;) r.push(a), r = r.concat(d()), a = m();
|
|
967
1086
|
return c() ? t({
|
|
968
|
-
type:
|
|
1087
|
+
type: H.viewTransition,
|
|
969
1088
|
declarations: r
|
|
970
1089
|
}) : o("@view-transition missing '}'");
|
|
971
1090
|
}() || function() {
|
|
@@ -976,30 +1095,30 @@ var Oe = class {
|
|
|
976
1095
|
let a = d(), u = m();
|
|
977
1096
|
for (; u;) a.push(u), a = a.concat(d()), u = m();
|
|
978
1097
|
return c() ? t({
|
|
979
|
-
type:
|
|
1098
|
+
type: H.positionTry,
|
|
980
1099
|
name: r,
|
|
981
1100
|
declarations: a
|
|
982
1101
|
}) : o("@position-try missing '}'");
|
|
983
1102
|
}() || function() {
|
|
984
|
-
let t = i(), n =
|
|
1103
|
+
let t = i(), n = ee.exec(e);
|
|
985
1104
|
if (!n) return;
|
|
986
1105
|
let r = l(n)[1];
|
|
987
1106
|
if (!s()) return o(`@${r} missing '{'`);
|
|
988
1107
|
let a = d(), u = m();
|
|
989
1108
|
for (; u;) a.push(u), a = a.concat(d()), u = m();
|
|
990
1109
|
return c() ? t({
|
|
991
|
-
type:
|
|
1110
|
+
type: H.pageMarginBox,
|
|
992
1111
|
name: r,
|
|
993
1112
|
declarations: a
|
|
994
1113
|
}) : o(`@${r} missing '}'`);
|
|
995
1114
|
}() || function() {
|
|
996
1115
|
let t = i(), n = /^@([-\w]+)\s*/.exec(e);
|
|
997
1116
|
if (!n) return;
|
|
998
|
-
let r = l(n)[1], a = "", u =
|
|
999
|
-
if (u !== -1 && u > 0 && (a =
|
|
1117
|
+
let r = l(n)[1], a = "", u = W(e, ["{", ";"]);
|
|
1118
|
+
if (u !== -1 && u > 0 && (a = K(e.substring(0, u)), l([e.substring(0, u)])), s()) {
|
|
1000
1119
|
let e = v();
|
|
1001
1120
|
return c() ? t({
|
|
1002
|
-
type:
|
|
1121
|
+
type: H.atRule,
|
|
1003
1122
|
name: r,
|
|
1004
1123
|
prelude: a,
|
|
1005
1124
|
rules: e
|
|
@@ -1007,21 +1126,21 @@ var Oe = class {
|
|
|
1007
1126
|
}
|
|
1008
1127
|
let d = /^[;\s]*/.exec(e);
|
|
1009
1128
|
return d && l(d), t({
|
|
1010
|
-
type:
|
|
1129
|
+
type: H.atRule,
|
|
1011
1130
|
name: r,
|
|
1012
1131
|
prelude: a
|
|
1013
1132
|
});
|
|
1014
1133
|
}();
|
|
1015
1134
|
}
|
|
1016
|
-
function
|
|
1135
|
+
function C() {
|
|
1017
1136
|
let e = i(), t = p();
|
|
1018
1137
|
return t ? (d(), e({
|
|
1019
|
-
type:
|
|
1138
|
+
type: H.rule,
|
|
1020
1139
|
selectors: t,
|
|
1021
1140
|
declarations: _() || []
|
|
1022
1141
|
})) : o("selector missing");
|
|
1023
1142
|
}
|
|
1024
|
-
return
|
|
1143
|
+
return q(function() {
|
|
1025
1144
|
let n = function() {
|
|
1026
1145
|
let n, r = [];
|
|
1027
1146
|
for (u(), d(r); e.length;) {
|
|
@@ -1032,7 +1151,7 @@ var Oe = class {
|
|
|
1032
1151
|
}
|
|
1033
1152
|
break;
|
|
1034
1153
|
}
|
|
1035
|
-
if (n =
|
|
1154
|
+
if (n = S() || C(), !n) {
|
|
1036
1155
|
if (t?.silent) {
|
|
1037
1156
|
l([e.charAt(0)]), u(), d(r);
|
|
1038
1157
|
continue;
|
|
@@ -1044,7 +1163,7 @@ var Oe = class {
|
|
|
1044
1163
|
return r;
|
|
1045
1164
|
}();
|
|
1046
1165
|
return {
|
|
1047
|
-
type:
|
|
1166
|
+
type: H.stylesheet,
|
|
1048
1167
|
stylesheet: {
|
|
1049
1168
|
source: t?.source,
|
|
1050
1169
|
rules: n,
|
|
@@ -1052,79 +1171,79 @@ var Oe = class {
|
|
|
1052
1171
|
}
|
|
1053
1172
|
};
|
|
1054
1173
|
}());
|
|
1055
|
-
},
|
|
1056
|
-
appearPermission: () =>
|
|
1057
|
-
appearUnsafePermission: () =>
|
|
1058
|
-
permission: () =>
|
|
1059
|
-
resolve: () =>
|
|
1060
|
-
setInjectedStylesDisabled: () =>
|
|
1061
|
-
type: () =>
|
|
1062
|
-
}),
|
|
1174
|
+
}, Qe = (e, t) => new Xe(t || {}).compile(e), $e = /* @__PURE__ */ e({
|
|
1175
|
+
appearPermission: () => tt,
|
|
1176
|
+
appearUnsafePermission: () => nt,
|
|
1177
|
+
permission: () => rt,
|
|
1178
|
+
resolve: () => ft,
|
|
1179
|
+
setInjectedStylesDisabled: () => dt,
|
|
1180
|
+
type: () => et
|
|
1181
|
+
}), et = "addStyleTag", tt = {
|
|
1063
1182
|
scope: "media.appear",
|
|
1064
1183
|
category: "media",
|
|
1065
1184
|
severity: 0,
|
|
1066
1185
|
title: "Change page appearance",
|
|
1067
1186
|
description: "Lets the app restyle parts of the page (safely filtered)."
|
|
1068
|
-
},
|
|
1187
|
+
}, nt = {
|
|
1069
1188
|
scope: "media.appearU",
|
|
1070
1189
|
category: "media",
|
|
1071
1190
|
severity: 2,
|
|
1072
1191
|
unsafe: !0,
|
|
1073
1192
|
title: "Change page appearance (unsafe)",
|
|
1074
1193
|
description: "Lets the app restyle the page WITHOUT safety filtering. Could be used to leak data over the network."
|
|
1075
|
-
},
|
|
1194
|
+
}, rt = (e) => e?.noSanitize ? nt : tt, it = /(?:^|[^\w-])(?:url|image|image-set|cross-fade|paint|element|expression)\s*\(/i, at = (e) => e.replace(/\\([0-9a-fA-F]{1,6})\s?/g, (e, t) => String.fromCodePoint(Number.parseInt(t, 16))).replace(/\\(.)/g, "$1"), ot = (e) => !it.test(at(e.value)), J = (e) => {
|
|
1076
1195
|
let t = [];
|
|
1077
1196
|
for (let n of e) switch (n.type) {
|
|
1078
|
-
case
|
|
1079
|
-
case
|
|
1080
|
-
case
|
|
1081
|
-
case
|
|
1082
|
-
case
|
|
1083
|
-
case
|
|
1084
|
-
case
|
|
1085
|
-
case
|
|
1197
|
+
case H.import:
|
|
1198
|
+
case H.fontFace:
|
|
1199
|
+
case H.namespace:
|
|
1200
|
+
case H.charset:
|
|
1201
|
+
case H.document:
|
|
1202
|
+
case H.comment: continue;
|
|
1203
|
+
case H.rule:
|
|
1204
|
+
case H.page:
|
|
1086
1205
|
t.push({
|
|
1087
1206
|
...n,
|
|
1088
|
-
declarations: n.declarations.filter((e) => e.type !==
|
|
1207
|
+
declarations: n.declarations.filter((e) => e.type !== H.declaration || ot(e))
|
|
1089
1208
|
});
|
|
1090
1209
|
continue;
|
|
1091
|
-
case
|
|
1092
|
-
case
|
|
1093
|
-
case
|
|
1094
|
-
case
|
|
1095
|
-
case
|
|
1210
|
+
case H.media:
|
|
1211
|
+
case H.supports:
|
|
1212
|
+
case H.container:
|
|
1213
|
+
case H.host:
|
|
1214
|
+
case H.startingStyle:
|
|
1096
1215
|
t.push({
|
|
1097
1216
|
...n,
|
|
1098
|
-
rules:
|
|
1217
|
+
rules: J(n.rules)
|
|
1099
1218
|
});
|
|
1100
1219
|
continue;
|
|
1101
|
-
case
|
|
1220
|
+
case H.layer:
|
|
1102
1221
|
t.push({
|
|
1103
1222
|
...n,
|
|
1104
|
-
rules: n.rules ?
|
|
1223
|
+
rules: n.rules ? J(n.rules) : void 0
|
|
1105
1224
|
});
|
|
1106
1225
|
continue;
|
|
1107
|
-
case
|
|
1226
|
+
case H.keyframes:
|
|
1108
1227
|
t.push({
|
|
1109
1228
|
...n,
|
|
1110
|
-
keyframes: n.keyframes.map((e) => e.type ===
|
|
1229
|
+
keyframes: n.keyframes.map((e) => e.type === H.keyframe ? {
|
|
1111
1230
|
...e,
|
|
1112
|
-
declarations: e.declarations.filter((e) => e.type !==
|
|
1231
|
+
declarations: e.declarations.filter((e) => e.type !== H.declaration || ot(e))
|
|
1113
1232
|
} : e)
|
|
1114
1233
|
});
|
|
1115
1234
|
continue;
|
|
1116
1235
|
default: continue;
|
|
1117
1236
|
}
|
|
1118
1237
|
return t;
|
|
1119
|
-
},
|
|
1238
|
+
}, st = (e) => {
|
|
1120
1239
|
let t;
|
|
1121
1240
|
try {
|
|
1122
|
-
t =
|
|
1241
|
+
t = Ze(e, { silent: !0 });
|
|
1123
1242
|
} catch {
|
|
1124
1243
|
return "";
|
|
1125
1244
|
}
|
|
1126
|
-
return t.stylesheet.rules =
|
|
1127
|
-
},
|
|
1245
|
+
return t.stylesheet.rules = J(t.stylesheet.rules), Qe(t);
|
|
1246
|
+
}, ct = (e) => {
|
|
1128
1247
|
let t = () => {
|
|
1129
1248
|
e.parentNode || (document.head ?? document.documentElement).appendChild(e);
|
|
1130
1249
|
};
|
|
@@ -1139,37 +1258,37 @@ var Oe = class {
|
|
|
1139
1258
|
childList: !0,
|
|
1140
1259
|
subtree: !0
|
|
1141
1260
|
}), window.addEventListener("load", () => n.disconnect(), { once: !0 });
|
|
1142
|
-
},
|
|
1143
|
-
|
|
1144
|
-
for (let t of
|
|
1145
|
-
},
|
|
1261
|
+
}, lt = /* @__PURE__ */ new Set(), ut = !1, dt = (e) => {
|
|
1262
|
+
ut = e;
|
|
1263
|
+
for (let t of lt) t.disabled = e;
|
|
1264
|
+
}, ft = async (e, t) => {
|
|
1146
1265
|
let n = document.createElement("style");
|
|
1147
|
-
n.textContent = t.noSanitize ? t.content :
|
|
1266
|
+
n.textContent = t.noSanitize ? t.content : st(t.content);
|
|
1148
1267
|
try {
|
|
1149
|
-
|
|
1268
|
+
ct(n);
|
|
1150
1269
|
} catch (e) {
|
|
1151
1270
|
console.error(e);
|
|
1152
1271
|
}
|
|
1153
|
-
|
|
1154
|
-
},
|
|
1272
|
+
lt.add(n), ut && (n.disabled = !0);
|
|
1273
|
+
}, Y = "frameLocator", X = [
|
|
1155
1274
|
{
|
|
1156
|
-
...
|
|
1275
|
+
...L,
|
|
1157
1276
|
nextLocatorType: "locator"
|
|
1158
1277
|
},
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
],
|
|
1162
|
-
type:
|
|
1163
|
-
selectorModules:
|
|
1164
|
-
operationModules:
|
|
1165
|
-
},
|
|
1166
|
-
ownType:
|
|
1167
|
-
selectorModules:
|
|
1168
|
-
operationModules:
|
|
1278
|
+
V,
|
|
1279
|
+
Ue
|
|
1280
|
+
], pt = [$e], mt = {
|
|
1281
|
+
type: Y,
|
|
1282
|
+
selectorModules: X,
|
|
1283
|
+
operationModules: pt
|
|
1284
|
+
}, ht = gt({
|
|
1285
|
+
ownType: Y,
|
|
1286
|
+
selectorModules: X,
|
|
1287
|
+
operationModules: pt
|
|
1169
1288
|
});
|
|
1170
1289
|
//#endregion
|
|
1171
1290
|
//#region node_modules/@mfkn/web-extension/lib/content-script/resolvers/locators/factory.js
|
|
1172
|
-
function
|
|
1291
|
+
function gt(e) {
|
|
1173
1292
|
return (t, n, r = []) => ({
|
|
1174
1293
|
...Object.fromEntries(e.selectorModules.map((i) => [i.type, (...a) => {
|
|
1175
1294
|
let o = [...r, {
|
|
@@ -1177,55 +1296,55 @@ function Y(e) {
|
|
|
1177
1296
|
type: i.type,
|
|
1178
1297
|
args: a
|
|
1179
1298
|
}];
|
|
1180
|
-
return (i.nextLocatorType ?? e.ownType) === "locator" ?
|
|
1299
|
+
return (i.nextLocatorType ?? e.ownType) === "locator" ? Tn(t, n, o) : ht(t, n, o);
|
|
1181
1300
|
}])),
|
|
1182
|
-
...Object.fromEntries(e.operationModules.map(({ type: e }) => [e, (...i) =>
|
|
1301
|
+
...Object.fromEntries(e.operationModules.map(({ type: e }) => [e, (...i) => Ae(t, r, e, i, n)])),
|
|
1183
1302
|
ensure: (e, t = {}) => n ? n(r, e, [t]) : Promise.resolve()
|
|
1184
1303
|
});
|
|
1185
1304
|
}
|
|
1186
1305
|
//#endregion
|
|
1187
1306
|
//#region node_modules/@mfkn/web-extension/lib/content-script/resolvers/locators/selectors/get-by-role.js
|
|
1188
|
-
var
|
|
1189
|
-
render: () =>
|
|
1190
|
-
resolve: () =>
|
|
1191
|
-
type: () =>
|
|
1192
|
-
}),
|
|
1193
|
-
render: () =>
|
|
1194
|
-
resolve: () =>
|
|
1195
|
-
type: () =>
|
|
1196
|
-
}),
|
|
1197
|
-
render: () =>
|
|
1198
|
-
resolve: () =>
|
|
1199
|
-
type: () =>
|
|
1200
|
-
}),
|
|
1201
|
-
render: () =>
|
|
1202
|
-
resolve: () =>
|
|
1203
|
-
type: () =>
|
|
1204
|
-
}),
|
|
1205
|
-
render: () =>
|
|
1206
|
-
resolve: () =>
|
|
1307
|
+
var _t = /* @__PURE__ */ e({
|
|
1308
|
+
render: () => bt,
|
|
1309
|
+
resolve: () => yt,
|
|
1310
|
+
type: () => vt
|
|
1311
|
+
}), vt = "getByRole", yt = (e, t) => e.elements.flatMap((e) => [...e.querySelectorAll(`[role="${CSS.escape(t)}"]`)]), bt = (e) => ({ fragment: typeof e == "string" ? `[role="${e.replaceAll("\"", "\\\"")}"]` : "[role]" }), xt = /* @__PURE__ */ e({
|
|
1312
|
+
render: () => wt,
|
|
1313
|
+
resolve: () => Ct,
|
|
1314
|
+
type: () => St
|
|
1315
|
+
}), St = "getByText", Ct = (e, t) => e.elements.flatMap((e) => [e, ...e.querySelectorAll("*")]).filter((e) => e.textContent?.includes(t)), wt = (e) => ({ fragment: typeof e == "string" ? `:has-text("${e.replaceAll("\"", "\\\"")}")` : ":has-text(...)" }), Tt = /* @__PURE__ */ e({
|
|
1316
|
+
render: () => Ot,
|
|
1317
|
+
resolve: () => Dt,
|
|
1318
|
+
type: () => Et
|
|
1319
|
+
}), Et = "getByTestId", Dt = (e, t) => e.elements.flatMap((e) => [...e.querySelectorAll(`[data-testid="${CSS.escape(t)}"]`)]), Ot = (e) => ({ fragment: typeof e == "string" ? `[data-testid="${e.replaceAll("\"", "\\\"")}"]` : "[data-testid]" }), kt = /* @__PURE__ */ e({
|
|
1320
|
+
render: () => Mt,
|
|
1321
|
+
resolve: () => jt,
|
|
1322
|
+
type: () => At
|
|
1323
|
+
}), At = "first", jt = (e) => e.elements.slice(0, 1), Mt = () => ({ fragment: ":first" }), Nt = /* @__PURE__ */ e({
|
|
1324
|
+
render: () => Ft,
|
|
1325
|
+
resolve: () => Pt,
|
|
1207
1326
|
type: () => "nth"
|
|
1208
|
-
}),
|
|
1327
|
+
}), Pt = (e, t) => {
|
|
1209
1328
|
let n = e.elements.at(t);
|
|
1210
1329
|
return n ? [n] : [];
|
|
1211
|
-
},
|
|
1330
|
+
}, Ft = (e) => ({ fragment: typeof e == "number" ? `:nth(${e})` : ":nth(?)" }), It = (e) => {
|
|
1212
1331
|
let t = Error(e);
|
|
1213
1332
|
return t.name = "LocatorError", t;
|
|
1214
1333
|
}, Z = (e) => {
|
|
1215
|
-
if (e.length === 0) throw
|
|
1216
|
-
if (e.length > 1) throw
|
|
1334
|
+
if (e.length === 0) throw It("No elements found");
|
|
1335
|
+
if (e.length > 1) throw It(`Strict mode violation: locator resolved to ${e.length} elements`);
|
|
1217
1336
|
return e[0];
|
|
1218
|
-
},
|
|
1219
|
-
permission: () =>
|
|
1220
|
-
resolve: () =>
|
|
1221
|
-
type: () =>
|
|
1222
|
-
}),
|
|
1337
|
+
}, Lt = /* @__PURE__ */ e({
|
|
1338
|
+
permission: () => zt,
|
|
1339
|
+
resolve: () => Bt,
|
|
1340
|
+
type: () => Rt
|
|
1341
|
+
}), Rt = "click", zt = {
|
|
1223
1342
|
scope: "act.click",
|
|
1224
1343
|
category: "act",
|
|
1225
1344
|
severity: 3,
|
|
1226
1345
|
title: "Click on the page",
|
|
1227
1346
|
description: "Lets the app press buttons or links for you."
|
|
1228
|
-
},
|
|
1347
|
+
}, Bt = (e, t = {}) => {
|
|
1229
1348
|
let n = Z(e.elements), r = n.getBoundingClientRect(), i = t.position?.x ?? .5, a = t.position?.y ?? .5, o = {
|
|
1230
1349
|
bubbles: !0,
|
|
1231
1350
|
cancelable: !0,
|
|
@@ -1250,21 +1369,21 @@ var Be = /* @__PURE__ */ e({
|
|
|
1250
1369
|
...s,
|
|
1251
1370
|
buttons: 0
|
|
1252
1371
|
})), n.dispatchEvent(new MouseEvent("mouseup", l)), n.dispatchEvent(new MouseEvent("click", l));
|
|
1253
|
-
},
|
|
1254
|
-
permission: () =>
|
|
1255
|
-
resolve: () =>
|
|
1256
|
-
type: () =>
|
|
1257
|
-
}),
|
|
1372
|
+
}, Vt = /* @__PURE__ */ e({
|
|
1373
|
+
permission: () => Ut,
|
|
1374
|
+
resolve: () => Kt,
|
|
1375
|
+
type: () => Ht
|
|
1376
|
+
}), Ht = "fill", Ut = {
|
|
1258
1377
|
scope: "act.type",
|
|
1259
1378
|
category: "act",
|
|
1260
1379
|
severity: 1,
|
|
1261
1380
|
title: "Type into a text field",
|
|
1262
1381
|
description: "Lets the app fill in form fields on your behalf."
|
|
1263
|
-
},
|
|
1382
|
+
}, Wt = (e, t) => {
|
|
1264
1383
|
e._valueTracker?.setValue("");
|
|
1265
1384
|
let n = e instanceof HTMLTextAreaElement ? HTMLTextAreaElement.prototype : HTMLInputElement.prototype, r = Object.getOwnPropertyDescriptor(n, "value")?.set;
|
|
1266
1385
|
r ? r.call(e, t) : e.value = t;
|
|
1267
|
-
},
|
|
1386
|
+
}, Gt = (e, t) => {
|
|
1268
1387
|
if (e.type !== "range") return null;
|
|
1269
1388
|
let n = Number(e.min || 0), r = Number(e.max || 100);
|
|
1270
1389
|
if (!Number.isFinite(n) || !Number.isFinite(r) || r <= n) return null;
|
|
@@ -1302,15 +1421,15 @@ var Be = /* @__PURE__ */ e({
|
|
|
1302
1421
|
buttons: 0
|
|
1303
1422
|
}
|
|
1304
1423
|
};
|
|
1305
|
-
},
|
|
1424
|
+
}, Kt = (e, t, n = {}) => {
|
|
1306
1425
|
let r = Z(e.elements);
|
|
1307
1426
|
if (r instanceof HTMLInputElement || r instanceof HTMLTextAreaElement) {
|
|
1308
|
-
let e = r instanceof HTMLInputElement ?
|
|
1427
|
+
let e = r instanceof HTMLInputElement ? Gt(r, t) : null;
|
|
1309
1428
|
if (e) {
|
|
1310
|
-
r.dispatchEvent(new PointerEvent("pointerdown", e.pointerDown)), r.dispatchEvent(new MouseEvent("mousedown", e.mouseDown)),
|
|
1429
|
+
r.dispatchEvent(new PointerEvent("pointerdown", e.pointerDown)), r.dispatchEvent(new MouseEvent("mousedown", e.mouseDown)), Wt(r, t), r.dispatchEvent(new Event("input", { bubbles: !0 })), r.dispatchEvent(new PointerEvent("pointerup", e.pointerUp)), r.dispatchEvent(new MouseEvent("mouseup", e.mouseUp)), r.dispatchEvent(new Event("change", { bubbles: !0 }));
|
|
1311
1430
|
return;
|
|
1312
1431
|
}
|
|
1313
|
-
|
|
1432
|
+
Wt(r, t), r.dispatchEvent(new Event("input", { bubbles: !0 })), r.dispatchEvent(new Event("change", { bubbles: !0 }));
|
|
1314
1433
|
return;
|
|
1315
1434
|
}
|
|
1316
1435
|
if (r instanceof HTMLElement && r.isContentEditable) {
|
|
@@ -1318,17 +1437,17 @@ var Be = /* @__PURE__ */ e({
|
|
|
1318
1437
|
return;
|
|
1319
1438
|
}
|
|
1320
1439
|
throw Error(`fill: element <${r.tagName.toLowerCase()}> is not fillable`);
|
|
1321
|
-
},
|
|
1322
|
-
permission: () =>
|
|
1323
|
-
resolve: () =>
|
|
1324
|
-
type: () =>
|
|
1325
|
-
}),
|
|
1440
|
+
}, qt = /* @__PURE__ */ e({
|
|
1441
|
+
permission: () => Yt,
|
|
1442
|
+
resolve: () => Xt,
|
|
1443
|
+
type: () => Jt
|
|
1444
|
+
}), Jt = "hover", Yt = {
|
|
1326
1445
|
scope: "act.hover",
|
|
1327
1446
|
category: "act",
|
|
1328
1447
|
severity: 1,
|
|
1329
1448
|
title: "Hover over the page",
|
|
1330
1449
|
description: "Lets the app point at things to reveal menus or tooltips."
|
|
1331
|
-
},
|
|
1450
|
+
}, Xt = (e, t = {}) => {
|
|
1332
1451
|
let n = Z(e.elements), r = n.getBoundingClientRect(), i = {
|
|
1333
1452
|
bubbles: !0,
|
|
1334
1453
|
cancelable: !0,
|
|
@@ -1348,106 +1467,185 @@ var Be = /* @__PURE__ */ e({
|
|
|
1348
1467
|
...i,
|
|
1349
1468
|
bubbles: !1
|
|
1350
1469
|
})), n.dispatchEvent(new MouseEvent("mouseover", i)), n.dispatchEvent(new PointerEvent("pointermove", a)), n.dispatchEvent(new MouseEvent("mousemove", i));
|
|
1351
|
-
},
|
|
1352
|
-
permission: () =>
|
|
1353
|
-
resolve: () =>
|
|
1354
|
-
type: () =>
|
|
1355
|
-
}),
|
|
1470
|
+
}, Zt = /* @__PURE__ */ e({
|
|
1471
|
+
permission: () => $t,
|
|
1472
|
+
resolve: () => en,
|
|
1473
|
+
type: () => Qt
|
|
1474
|
+
}), Qt = "textContent", $t = {
|
|
1356
1475
|
scope: "read.text",
|
|
1357
1476
|
category: "read",
|
|
1358
1477
|
severity: 1,
|
|
1359
1478
|
title: "Read text from the page",
|
|
1360
1479
|
description: "Lets the app see the text shown on this page."
|
|
1361
|
-
},
|
|
1362
|
-
permission: () =>
|
|
1363
|
-
resolve: () =>
|
|
1364
|
-
type: () =>
|
|
1365
|
-
}),
|
|
1480
|
+
}, en = (e, t = {}) => Z(e.elements).textContent, tn = /* @__PURE__ */ e({
|
|
1481
|
+
permission: () => rn,
|
|
1482
|
+
resolve: () => an,
|
|
1483
|
+
type: () => nn
|
|
1484
|
+
}), nn = "isVisible", rn = {
|
|
1366
1485
|
scope: "read.visible",
|
|
1367
1486
|
category: "read",
|
|
1368
1487
|
severity: 0,
|
|
1369
1488
|
title: "See what’s visible on the page",
|
|
1370
1489
|
description: "Lets the app check which elements are currently on screen."
|
|
1371
|
-
},
|
|
1490
|
+
}, an = (e, t = {}) => {
|
|
1372
1491
|
let n = Z(e.elements);
|
|
1373
1492
|
if (!(n instanceof HTMLElement)) return !0;
|
|
1374
1493
|
let r = n.ownerDocument.defaultView?.getComputedStyle(n);
|
|
1375
1494
|
if (r?.display === "none" || r?.visibility === "hidden") return !1;
|
|
1376
1495
|
let i = n.getBoundingClientRect();
|
|
1377
1496
|
return i.width > 0 && i.height > 0;
|
|
1378
|
-
},
|
|
1379
|
-
permission: () =>
|
|
1380
|
-
resolve: () =>
|
|
1381
|
-
type: () =>
|
|
1382
|
-
}),
|
|
1497
|
+
}, on = /* @__PURE__ */ e({
|
|
1498
|
+
permission: () => cn,
|
|
1499
|
+
resolve: () => ln,
|
|
1500
|
+
type: () => sn
|
|
1501
|
+
}), sn = "count", cn = {
|
|
1383
1502
|
scope: "read.count",
|
|
1384
1503
|
category: "read",
|
|
1385
1504
|
severity: 0,
|
|
1386
1505
|
title: "Count items on the page",
|
|
1387
1506
|
description: "Lets the app count how many matching elements are present."
|
|
1388
|
-
},
|
|
1389
|
-
permission: () =>
|
|
1390
|
-
resolve: () =>
|
|
1391
|
-
type: () =>
|
|
1392
|
-
}),
|
|
1507
|
+
}, ln = (e, t = {}) => e.elements.length, un = /* @__PURE__ */ e({
|
|
1508
|
+
permission: () => fn,
|
|
1509
|
+
resolve: () => pn,
|
|
1510
|
+
type: () => dn
|
|
1511
|
+
}), dn = "exists", fn = {
|
|
1393
1512
|
scope: "read.check",
|
|
1394
1513
|
category: "read",
|
|
1395
1514
|
severity: 0,
|
|
1396
1515
|
title: "Check if something is on the page",
|
|
1397
1516
|
description: "Lets the app test whether a specific element exists."
|
|
1398
|
-
},
|
|
1399
|
-
permission: () =>
|
|
1400
|
-
resolve: () =>
|
|
1401
|
-
type: () =>
|
|
1402
|
-
}),
|
|
1517
|
+
}, pn = (e, t = {}) => e.elements.length > 0, mn = /* @__PURE__ */ e({
|
|
1518
|
+
permission: () => gn,
|
|
1519
|
+
resolve: () => _n,
|
|
1520
|
+
type: () => hn
|
|
1521
|
+
}), hn = "getAttribute", gn = {
|
|
1403
1522
|
scope: "read.info",
|
|
1404
1523
|
category: "read",
|
|
1405
1524
|
severity: 1,
|
|
1406
1525
|
title: "Read info from the page",
|
|
1407
1526
|
description: "Lets the app read the href value from a part of the page."
|
|
1408
|
-
},
|
|
1409
|
-
permission: () =>
|
|
1410
|
-
resolve: () =>
|
|
1411
|
-
type: () =>
|
|
1412
|
-
}),
|
|
1527
|
+
}, _n = (e, t, n = {}) => Z(e.elements).getAttribute(t), vn = /* @__PURE__ */ e({
|
|
1528
|
+
permission: () => bn,
|
|
1529
|
+
resolve: () => xn,
|
|
1530
|
+
type: () => yn
|
|
1531
|
+
}), yn = "videoElement", bn = {
|
|
1413
1532
|
scope: "media.video",
|
|
1414
1533
|
category: "media",
|
|
1415
1534
|
severity: 0,
|
|
1416
1535
|
title: "Control video playback",
|
|
1417
1536
|
description: "Lets the app play, pause, seek, and read the video on the page."
|
|
1418
|
-
},
|
|
1537
|
+
}, xn = (e, t = {}) => {
|
|
1419
1538
|
let n = Z(e.elements);
|
|
1420
1539
|
if (!(n instanceof HTMLVideoElement)) throw Error(`videoElement: expected <video>, got <${n.tagName.toLowerCase()}>`);
|
|
1421
1540
|
return C(n);
|
|
1422
|
-
}, Q = "locator",
|
|
1423
|
-
|
|
1541
|
+
}, Q = "locator", Sn = [
|
|
1542
|
+
L,
|
|
1424
1543
|
{
|
|
1425
|
-
...
|
|
1544
|
+
...V,
|
|
1426
1545
|
nextLocatorType: "frameLocator"
|
|
1427
1546
|
},
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
],
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
],
|
|
1547
|
+
_t,
|
|
1548
|
+
xt,
|
|
1549
|
+
Tt,
|
|
1550
|
+
kt,
|
|
1551
|
+
Nt
|
|
1552
|
+
], Cn = [
|
|
1553
|
+
Lt,
|
|
1554
|
+
Vt,
|
|
1555
|
+
qt,
|
|
1556
|
+
Zt,
|
|
1557
|
+
tn,
|
|
1558
|
+
on,
|
|
1559
|
+
un,
|
|
1560
|
+
mn,
|
|
1561
|
+
vn
|
|
1562
|
+
], wn = {
|
|
1444
1563
|
type: Q,
|
|
1445
|
-
selectorModules:
|
|
1446
|
-
operationModules:
|
|
1447
|
-
},
|
|
1564
|
+
selectorModules: Sn,
|
|
1565
|
+
operationModules: Cn
|
|
1566
|
+
}, Tn = gt({
|
|
1448
1567
|
ownType: Q,
|
|
1449
|
-
selectorModules:
|
|
1450
|
-
operationModules:
|
|
1568
|
+
selectorModules: Sn,
|
|
1569
|
+
operationModules: Cn
|
|
1451
1570
|
});
|
|
1571
|
+
(() => {
|
|
1572
|
+
let e = {}, t = [...wn.selectorModules, ...mt.selectorModules];
|
|
1573
|
+
for (let n of t) n.render && !(n.type in e) && (e[n.type] = n.render);
|
|
1574
|
+
return e;
|
|
1575
|
+
})();
|
|
1576
|
+
//#endregion
|
|
1577
|
+
//#region node_modules/@mfkn/web-extension/lib/lib/frame-url.js
|
|
1578
|
+
var En = (e) => {
|
|
1579
|
+
if (!e || e === "about:blank") return !1;
|
|
1580
|
+
let t;
|
|
1581
|
+
try {
|
|
1582
|
+
t = new URL(e, location.href);
|
|
1583
|
+
} catch {
|
|
1584
|
+
return !1;
|
|
1585
|
+
}
|
|
1586
|
+
if (t.protocol === "chrome-extension:" || t.protocol === "moz-extension:") return !0;
|
|
1587
|
+
if (t.protocol === "about:") return !1;
|
|
1588
|
+
let n = t.hostname, r = (e) => n === e || n.endsWith(`.${e}`);
|
|
1589
|
+
return r("fkn.app") || r("fkn.dev") || r("sdbx.app");
|
|
1590
|
+
}, $ = (e) => {
|
|
1591
|
+
if (En(e)) throw Error("attachFrame: refusing to target the extension's own pages or an FKN platform origin");
|
|
1592
|
+
}, Dn = ({ src: e, domains: t, lockdown: n }) => {
|
|
1593
|
+
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");
|
|
1594
|
+
}, On = {
|
|
1595
|
+
scope: "embed.iframe",
|
|
1596
|
+
category: "embed",
|
|
1597
|
+
severity: 0,
|
|
1598
|
+
title: "Load another website inside this app",
|
|
1599
|
+
description: "Lets the app embed external pages directly inside its own view."
|
|
1600
|
+
}, kn = {
|
|
1601
|
+
scope: "embed.open",
|
|
1602
|
+
category: "embed",
|
|
1603
|
+
severity: 0,
|
|
1604
|
+
title: "Open a website inside this app",
|
|
1605
|
+
description: "Lets the app navigate to another site without leaving its window."
|
|
1606
|
+
}, An = (e) => {
|
|
1607
|
+
let t = ht(e.executeLocator, e.ensurePermission), n = (t, n = {}) => ($(t), e.goto(t, n)), r = () => e.url();
|
|
1608
|
+
return {
|
|
1609
|
+
...t,
|
|
1610
|
+
goto: n,
|
|
1611
|
+
url: r
|
|
1612
|
+
};
|
|
1613
|
+
}, jn = "FKN_WEB_EXTENSION_ATTACH_FRAME_EVENT_KEY", Mn = async ({ iframe: e, domains: t = [], syncCookies: n = !0, lockdown: r = !1 }) => {
|
|
1614
|
+
let i = crypto.randomUUID();
|
|
1615
|
+
if ($(e.src), Dn({
|
|
1616
|
+
src: e.src,
|
|
1617
|
+
domains: t,
|
|
1618
|
+
lockdown: r
|
|
1619
|
+
}), await j(), !e.isConnected) throw Error("attachFrame: the iframe must be connected to the document before attaching");
|
|
1620
|
+
e.dispatchEvent(new CustomEvent(jn, { detail: i }));
|
|
1621
|
+
let { executeLocator: a, ensureLocatorPermission: o, goto: s } = await M.attachFrame({
|
|
1622
|
+
marker: i,
|
|
1623
|
+
domains: t,
|
|
1624
|
+
syncCookies: n,
|
|
1625
|
+
lockdown: r
|
|
1626
|
+
});
|
|
1627
|
+
return An({
|
|
1628
|
+
executeLocator: a,
|
|
1629
|
+
ensurePermission: o,
|
|
1630
|
+
goto: (e, t = {}) => s({
|
|
1631
|
+
url: e,
|
|
1632
|
+
...t
|
|
1633
|
+
}),
|
|
1634
|
+
url: () => e.src
|
|
1635
|
+
});
|
|
1636
|
+
}, Nn = { request: (e) => M.requestPermissions(e.map((e) => ({
|
|
1637
|
+
key: e.key,
|
|
1638
|
+
scope: e.scope ?? "",
|
|
1639
|
+
reason: e.reason
|
|
1640
|
+
}))) }, Pn = ["fkn.app", "fkn.dev"], Fn = (e) => {
|
|
1641
|
+
let t = typeof e == "string" ? e : e instanceof URL ? e.href : e.url, n;
|
|
1642
|
+
try {
|
|
1643
|
+
n = new URL(t);
|
|
1644
|
+
} catch {
|
|
1645
|
+
return;
|
|
1646
|
+
}
|
|
1647
|
+
let r = n.hostname;
|
|
1648
|
+
if (Pn.some((e) => r === e || r.endsWith(`.${e}`))) throw Error(`fetch refuses FKN platform domains (${r})`);
|
|
1649
|
+
}, In = (e, n) => (Fn(e), t.then((t) => t.cloud.fetch(e, n)));
|
|
1452
1650
|
//#endregion
|
|
1453
|
-
export {
|
|
1651
|
+
export { ce as A, w as B, be as C, ge as D, P as E, ae as F, d as H, j as I, D as L, fe as M, O as N, le as O, k as P, T as R, xe as S, _e as T, E as V, Le as _, Mn as a, F as b, kn as c, En as d, wn as f, dt as g, Y as h, jn as i, N as j, ue as k, $ as l, mt as m, Fn as n, On as o, Q as p, Nn as r, An as s, In as t, Dn as u, I as v, ve as w, ye as x, we as y, C as z };
|