@banou/stub 0.0.18 → 0.0.20
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/build/.well-known/fkn.json +1 -1
- package/build/assets/lib-Preview-B6uZKyhl.js +82 -0
- package/build/assets/lib-account-BuVN6Bsx.js +41 -0
- package/build/assets/lib-account-Cw8yCZtf.js +2 -0
- package/build/assets/lib-api-DLvscoll-DhlBp9Wz.js +312 -0
- package/build/assets/lib-api-DVwR-22s.js +2 -0
- package/build/assets/lib-build-DEOZ3A7n.js +1846 -0
- package/build/assets/lib-compat-D8G4_Lzi.js +860 -0
- package/build/assets/lib-custom-media-element-CnANKrGl.js +217 -0
- package/build/assets/lib-dash.all.min-CDvdorbj.js +27251 -0
- package/build/assets/lib-dist-Dv8d3Kr0.js +7 -0
- package/build/assets/lib-dist-S8Gxnnq-.js +12468 -0
- package/build/assets/lib-dist-T0QlKbbk.js +18578 -0
- package/build/assets/lib-dist-xBHT3Lfz.js +911 -0
- package/build/assets/lib-react-BEg4mBBK.js +112 -0
- package/build/assets/lib-react-C0OCUIWX.js +434 -0
- package/build/assets/lib-react-CAkOlDha.js +367 -0
- package/build/assets/lib-react-CGlZXIjl.js +2187 -0
- package/build/assets/lib-react-CLVoi_ZM.js +334 -0
- package/build/assets/lib-react-DUxKSzCt.js +311 -0
- package/build/assets/lib-react-QvmpnEVK.js +334 -0
- package/build/assets/lib-react-WTnxAo6F.js +202 -0
- package/build/assets/lib-remote-DeY2A2G7.js +416 -0
- package/build/assets/lib-remote-DxEZmpd0.js +2 -0
- package/build/assets/lib-rolldown-runtime-B1bRi_D7.js +27 -0
- package/build/assets/lib-worker-anime-index-Jbe1K3rX.js +1 -0
- package/build/assets/lib-worker-anime-seasons-CVM0BQGM.js +1 -0
- package/build/assets/lib-worker-index-C7ynIZYg.js +1401 -0
- package/build/assets/{main-C8JOinyp.js → main-DejLBzlj.js} +1 -1
- package/build/fkn.json +1 -1
- package/build/index.html +1 -1
- package/build/index.js +40639 -0
- package/fkn.json +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"v":1,"app":"fkn:app:1mv4iei5nrldfysclsmkxnadt4a2y3k6y7rsln6hkawsuep7bo3vq","root":"5Nagknk9CNeVCZoPl1lBbNe6I5JqTW7a7xoN8AXRg3E=","slug":"stub","keys":{"serial":0,"members":["UgFyOKUlOb5rt9YfoqiIofxArQt2evRREFbuRgHYOGE="],"sig":"905Et1WneOyEFktPt2HTN1KGXJtrfpUmCjSOWZHlrU7uDoK9fTBE0Na8LzVXYll/RW6KfUiCCmCbr7vzJG9zCA=="},"key":"UgFyOKUlOb5rt9YfoqiIofxArQt2evRREFbuRgHYOGE=","sources":["npm:@banou/stub","https:anime.fkn.app"],"name":"Stub","issuedAt":
|
|
1
|
+
{"v":1,"app":"fkn:app:1mv4iei5nrldfysclsmkxnadt4a2y3k6y7rsln6hkawsuep7bo3vq","root":"5Nagknk9CNeVCZoPl1lBbNe6I5JqTW7a7xoN8AXRg3E=","slug":"stub","keys":{"serial":0,"members":["UgFyOKUlOb5rt9YfoqiIofxArQt2evRREFbuRgHYOGE="],"sig":"905Et1WneOyEFktPt2HTN1KGXJtrfpUmCjSOWZHlrU7uDoK9fTBE0Na8LzVXYll/RW6KfUiCCmCbr7vzJG9zCA=="},"key":"UgFyOKUlOb5rt9YfoqiIofxArQt2evRREFbuRgHYOGE=","sources":["npm:@banou/stub","https:anime.fkn.app"],"name":"Stub","issuedAt":1789198806,"contents":{"name":"@banou/stub","version":"0.0.20","alg":"sha256","files":{"README.md":"UlRX2sBn1TfnBWbCmOoAbyYQ7jYz5xwO1YmpGLIarsY=","build/_headers":"9W0cSAW6o130D9QJkqnbfXKpsw8+VoNrecvGI5OQgOo=","build/assets/Preview-DG9nqCV0.js":"3+cvqDm13pKNnDk+TJ1HTXmKOT8vWjwpxTJ3auv8+8Q=","build/assets/account-CTqTIqCB.js":"AjSBfjeNQ+FcYGVk9a9fJ/Vx0YJ45I80nthhgTrzL+U=","build/assets/account-DQlY5DdH.js":"ENgHafFlaqZjYh5xGQ/lKU9Zw0N9Ry48ZtXSTq1U6hw=","build/assets/anime-index-Jbe1K3rX.js":"GX18NEu4KqVsycGt40uiW2kcHF1A9hXPt/pVKrzdSSk=","build/assets/anime-seasons-CVM0BQGM.js":"L6fZ6Qpvlqr/dhdK1nl3Pa51iq4tVu8U6xchCJ/pO84=","build/assets/api-D5uFVynV.js":"n3rE18v1StQLBI18V34btzN6ZIStRfStDmeDKAMd0w4=","build/assets/api-DLvscoll-DBsLjsEb.js":"b0WFXmf96Gc26elpg3CpmXsmslQsFrFHg+AQbt9ZErs=","build/assets/build-BuC_lDPE.js":"NtDVx4cXy+y7UAbJEGMemdHW6KLNgaUB4MmdLLjj6tQ=","build/assets/compat-CusyxzKh.js":"+5I6tK7Tkh7rzDqI4gS5czXWVrSMoEn9mcoR0XNARPQ=","build/assets/custom-media-element-BDICDseJ.js":"VxqPGI655ck1Dc27MjjZq37YaVoH88q0bm1uNiqhja0=","build/assets/dash.all.min-Dbg8AB-J.js":"3mGdSbvb2pwLBvRcmPrTAqV3OpNnnWtK+UwUu5RrnrA=","build/assets/dist-BgIerfpp.js":"avkW6ht+66CEzoc7kYEia8612z+kYVKmaSzpVQ2doaU=","build/assets/dist-BrpV89uJ.js":"WE+uQvO9SiNKthOTjJ2s2xYEAoyzDYtGMDfZFjbMyec=","build/assets/dist-D-OKiX-f.js":"Za7c1Ye6kljXM9nodGP611DQL19ryqMqXr8Oj+Nm2c0=","build/assets/dist-D_XB-JLn.js":"8itBeG1brsA5DhPpcO9EUGmREGiVpKttan/T9D856dQ=","build/assets/embed-DBjG5JMH.js":"WXun69H7HszA5CX2+YM8fmgm4jFKRqfWdZVhFyiHnNI=","build/assets/frizbee_wasm_bg-FO8dlm9E.wasm":"EbPVSEfqpLjbbYlJez4oFXWj1pxftV//IJXVMjMkxWY=","build/assets/index-BHgdalnH.js":"6NkwZmIzYcX6EDHD6Iukibs+gQqJg3mlBV+U8EnOIsg=","build/assets/lib-Preview-B6uZKyhl.js":"/PJn6QI2FJK9N5EWww6Gpypk3ISoYtsFFCd/SDx+ebk=","build/assets/lib-account-BuVN6Bsx.js":"ZFyVS6QdFsuDY7Reqvp4bWbs6Gn1d/+PElEmTiQg4OI=","build/assets/lib-account-Cw8yCZtf.js":"msjJ/dqJBZ+QQ80oymUUIN3gzhBFO710R6ESp5pZMJc=","build/assets/lib-api-DLvscoll-DhlBp9Wz.js":"t0BJFW4Tv0XDmsO1BUSNTN4Fy0dHwqmTEHUKoX2O3oc=","build/assets/lib-api-DVwR-22s.js":"n4iDqkVC6V9ekXc0/5il7NRtV/JccFM3e4VwHHyLP+o=","build/assets/lib-build-DEOZ3A7n.js":"7TuJSXjIG2B9kILJ8oDSB75dcG9LgAPquw18EClcJmM=","build/assets/lib-compat-D8G4_Lzi.js":"ESWdQ0T9HzgESnVF4qS7PNzyiOeY2VQloRpM9GZEqQ8=","build/assets/lib-custom-media-element-CnANKrGl.js":"wqDFoH0LLIHJCCzfIDmr5KacoiJqisHy8ED8FyNodRc=","build/assets/lib-dash.all.min-CDvdorbj.js":"T/kxqiAnmcmXCAI0bbf2psI1fZL1m927cEvYpYBsGqs=","build/assets/lib-dist-Dv8d3Kr0.js":"VCULqD+pX8RghiKKPWkVsMJ7wwG3N28kqH2vZaRW1CM=","build/assets/lib-dist-S8Gxnnq-.js":"yOeSHHtiR5qm9f6xV0t4zJjTaSK63VKasFZF+qr6Ibg=","build/assets/lib-dist-T0QlKbbk.js":"6q37b8WlxO4IvMFDua/7ZWtD6rPUZ+aVYUZvIA9EEgI=","build/assets/lib-dist-xBHT3Lfz.js":"Nt6hiBe6W/lfuS45O50HcVZiJbHANzVeux8ChM23ufU=","build/assets/lib-react-BEg4mBBK.js":"/PnRn7/WilmQXGRIK8xMoIubuD2g3b1DjjHjsdd1YzY=","build/assets/lib-react-C0OCUIWX.js":"yWQodUGCXF/yqbDDBtV6UsxRkz3Zlp+dVMzgBnAiyx0=","build/assets/lib-react-CAkOlDha.js":"T9nU2p8Cpw7AH+nJqBcPynK4G53m8msMnaHZmrRspWI=","build/assets/lib-react-CGlZXIjl.js":"kuCUlHOt1NOHsvqVRDcsIyoREeIDxmc2h5YQl9W2GRk=","build/assets/lib-react-CLVoi_ZM.js":"wnSf401uwrbD3ZmAQeoqyekw+aEErWaMEvOSbuQHTnY=","build/assets/lib-react-DUxKSzCt.js":"YDfRxGeKR1R6Womi0C0bSsbAKniwfaQQBQWtzvR57UQ=","build/assets/lib-react-QvmpnEVK.js":"n1cxGbbcFz2VBOTzSPPSJgIU8YvFNJUCCU0pwwBVKSM=","build/assets/lib-react-WTnxAo6F.js":"gLkuZ9bIB8jaqzInci3JxnRDDE565UKWO48BC+ODHQ0=","build/assets/lib-remote-DeY2A2G7.js":"n6kfQ5KZ7/4DCiWrmdWEpwlVCpJSnV9m5DnSt23c6G4=","build/assets/lib-remote-DxEZmpd0.js":"ziC0p/ZycgwBR+TPOPh5Xi79WTU0lxPdlwuhTGiPswE=","build/assets/lib-rolldown-runtime-B1bRi_D7.js":"E0tpx7MZWvgIy/WCYXUIm+rSlt9pGNvmLilLgfHtQeg=","build/assets/lib-worker-anime-index-Jbe1K3rX.js":"GX18NEu4KqVsycGt40uiW2kcHF1A9hXPt/pVKrzdSSk=","build/assets/lib-worker-anime-seasons-CVM0BQGM.js":"L6fZ6Qpvlqr/dhdK1nl3Pa51iq4tVu8U6xchCJ/pO84=","build/assets/lib-worker-index-C7ynIZYg.js":"vpThLUc5+SUkLh0Wd1g4a1na7Jfwuc70z+wUc2ZoBcs=","build/assets/main-DejLBzlj.js":"EAoQRybnzWArzzRZ4e6uehameiu5j/+9YDefA2RKDDk=","build/assets/players-3a7RYKgR.css":"EuPdgWlK6mGFtnOnlqri0xmDiB/N98ZkSuFJJYccMsY=","build/assets/players-BIbP12aF.js":"B6mX2aLyf48JXHug/7i+AYIaN1jAH6IozabjzIoDAgA=","build/assets/preload-helper-D2XUqLHy.js":"2UFG7gTcA2s527CgBByw68V/+RazYjICdV4Ieh5lfUU=","build/assets/react-BDr8Ag8b.js":"GNKxogfbt0QCd/JZyEXE5XyS9r00zd3ejJU8e6rdj24=","build/assets/react-BTju4bmn.js":"iD4mi7ZDj5VS8iaaoEK546qfNTpJZqvG/jBWuQDepr0=","build/assets/react-CLMfdUXR.js":"PhB/jfCSxTtbz3F6DLvfcZroX0ZDbEwReC5bL2oCWAI=","build/assets/react-CjmRCHoG.js":"VKyToeToQn9/j/98dLcfEd1vAdemur8DCNDF5sKaY/Q=","build/assets/react-Cs34a503.js":"oomc6GL1dmI5NTRdvtYnJag8rVpcB+LSflvKr8v+VtU=","build/assets/react-DKSDz1wJ.js":"Jcn3uD7/ZvENK8hPK9xJZvwnRsQ/5WTrD/nKKoVy744=","build/assets/react-bkM_mQGd.js":"JwvGQrraz0qMErrWa9bBmNHGkQwQKHa7IjVxaycZgik=","build/assets/react-kPj0f67l.js":"jAI92jKY45v9n5/qVTZl1lXvKjLRC+EuuNzXIFzSU08=","build/assets/remote-CW2xewp5.js":"DiiTfjp/h/c7x3NHKguTCp1A1m7iZkeobjP6rbIyzOc=","build/assets/remote-DNcNpuT3.js":"Rab/fhj5AZ04E8pJNkb8I42omSwL6G8UmCk6PtF55e8=","build/assets/rolldown-runtime-CNC7AqOf.js":"1KNpIMe6tuyX0L3F0SM2IvKP4BAZjKMrzdgMjLa2Sq4=","build/assets/sacha_bg-CNH7LeJ_.wasm":"smWtrIBF7AJr+ZplWM15OF/LhD/8/qI1IA2fVj6hCHM=","build/embed.html":"b1gJJG+PROZPgxOymK3phjcjSAQozVQnzxTGLTSZqiA=","build/index.html":"GBvG4HMdWBvqjW7su1d+KTfACPBLlnIs/AGUEVkV/Bo=","build/index.js":"eHESI/XElSIYlbdUnS08fANse50HTuKTdCA0YkJ6Yno=","package.json":"WPXUPOK2nPxC9uPCC4WsR/rT0Gt8RQZGVm6Hxh+vWLs="}},"sig":"Vs5axYLmAH/lbJa9Ql9XBEQnxs2tlJ0GCTT2dlbSpAlMobcfj4w05EAdeaGRx0CTE6lw4YBTfxgd2dvgLd0YBQ=="}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { f as e, i as t, x as n, y as r } from "./lib-compat-D8G4_Lzi.js";
|
|
2
|
+
//#region node_modules/react-player/dist/Preview.js
|
|
3
|
+
e();
|
|
4
|
+
var i = "64px", a = {}, o = ({ src: e, light: o, oEmbedUrl: s, onClickPreview: c, playIcon: l, previewTabIndex: u, previewAriaLabel: d }) => {
|
|
5
|
+
let [f, p] = n(null);
|
|
6
|
+
r(() => {
|
|
7
|
+
!e || !o || !s || m({
|
|
8
|
+
src: e,
|
|
9
|
+
light: o,
|
|
10
|
+
oEmbedUrl: s
|
|
11
|
+
});
|
|
12
|
+
}, [
|
|
13
|
+
e,
|
|
14
|
+
o,
|
|
15
|
+
s
|
|
16
|
+
]);
|
|
17
|
+
let m = async ({ src: e, light: n, oEmbedUrl: r }) => {
|
|
18
|
+
if (t.isValidElement(n)) return;
|
|
19
|
+
if (typeof n == "string") {
|
|
20
|
+
p(n);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (a[e]) {
|
|
24
|
+
p(a[e]);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
p(null);
|
|
28
|
+
let i = await (await fetch(r.replace("{url}", e))).json();
|
|
29
|
+
if (i.thumbnail_url) {
|
|
30
|
+
let t = i.thumbnail_url.replace("height=100", "height=480").replace("-d_295x166", "-d_640");
|
|
31
|
+
p(t), a[e] = t;
|
|
32
|
+
}
|
|
33
|
+
}, h = (e) => {
|
|
34
|
+
(e.key === "Enter" || e.key === " ") && c?.(e);
|
|
35
|
+
}, g = (e) => {
|
|
36
|
+
c?.(e);
|
|
37
|
+
}, _ = t.isValidElement(o), v = {
|
|
38
|
+
display: "flex",
|
|
39
|
+
alignItems: "center",
|
|
40
|
+
justifyContent: "center"
|
|
41
|
+
}, y = {
|
|
42
|
+
preview: {
|
|
43
|
+
width: "100%",
|
|
44
|
+
height: "100%",
|
|
45
|
+
backgroundImage: f && !_ ? `url(${f})` : void 0,
|
|
46
|
+
backgroundSize: "cover",
|
|
47
|
+
backgroundPosition: "center",
|
|
48
|
+
cursor: "pointer",
|
|
49
|
+
...v
|
|
50
|
+
},
|
|
51
|
+
shadow: {
|
|
52
|
+
background: "radial-gradient(rgb(0, 0, 0, 0.3), rgba(0, 0, 0, 0) 60%)",
|
|
53
|
+
borderRadius: i,
|
|
54
|
+
width: i,
|
|
55
|
+
height: i,
|
|
56
|
+
position: _ ? "absolute" : void 0,
|
|
57
|
+
...v
|
|
58
|
+
},
|
|
59
|
+
playIcon: {
|
|
60
|
+
borderStyle: "solid",
|
|
61
|
+
borderWidth: "16px 0 16px 26px",
|
|
62
|
+
borderColor: "transparent transparent transparent white",
|
|
63
|
+
marginLeft: "7px"
|
|
64
|
+
}
|
|
65
|
+
}, b = /* @__PURE__ */ t.createElement("div", {
|
|
66
|
+
style: y.shadow,
|
|
67
|
+
className: "react-player__shadow"
|
|
68
|
+
}, /* @__PURE__ */ t.createElement("div", {
|
|
69
|
+
style: y.playIcon,
|
|
70
|
+
className: "react-player__play-icon"
|
|
71
|
+
}));
|
|
72
|
+
return /* @__PURE__ */ t.createElement("div", {
|
|
73
|
+
style: y.preview,
|
|
74
|
+
className: "react-player__preview",
|
|
75
|
+
tabIndex: u,
|
|
76
|
+
onClick: g,
|
|
77
|
+
onKeyPress: h,
|
|
78
|
+
...d ? { "aria-label": d } : {}
|
|
79
|
+
}, _ ? o : null, l || b);
|
|
80
|
+
};
|
|
81
|
+
//#endregion
|
|
82
|
+
export { o as default };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { r as e, s as t, t as n } from "./lib-api-DLvscoll-DhlBp9Wz.js";
|
|
2
|
+
//#region node_modules/@fkn/lib/rolldown-runtime-Dy4uBu1J.js
|
|
3
|
+
var r = Object.defineProperty, i = (e, t) => {
|
|
4
|
+
let n = {};
|
|
5
|
+
for (var i in e) r(n, i, {
|
|
6
|
+
get: e[i],
|
|
7
|
+
enumerable: !0
|
|
8
|
+
});
|
|
9
|
+
return t || r(n, Symbol.toStringTag, { value: "Module" }), n;
|
|
10
|
+
}, a = /* @__PURE__ */ i({
|
|
11
|
+
info: () => c,
|
|
12
|
+
login: () => o,
|
|
13
|
+
logout: () => s,
|
|
14
|
+
onChange: () => p
|
|
15
|
+
}), o = async () => typeof window > "u" ? !1 : (await n).account.login(location.origin).catch(() => !1), s = async () => {
|
|
16
|
+
typeof window > "u" || await (await n).account.logout().catch(() => {});
|
|
17
|
+
}, c = async () => {
|
|
18
|
+
if (typeof window > "u") return null;
|
|
19
|
+
let e = await n.then((e) => e.account.info()).catch(() => null);
|
|
20
|
+
return e ? {
|
|
21
|
+
name: e.name,
|
|
22
|
+
image: e.image,
|
|
23
|
+
premium: e.premium,
|
|
24
|
+
premiumUntil: e.premiumUntil ? Date.parse(e.premiumUntil) : null
|
|
25
|
+
} : null;
|
|
26
|
+
}, l = /* @__PURE__ */ new Set(), u = () => {
|
|
27
|
+
for (let e of [...l]) try {
|
|
28
|
+
e();
|
|
29
|
+
} catch {}
|
|
30
|
+
}, d = 0, f = () => {
|
|
31
|
+
let e = t();
|
|
32
|
+
!e || l.size === 0 || d === e.epoch || (d = e.epoch, Promise.resolve(e.remote.account.onChange(u)).catch(() => {
|
|
33
|
+
d === e.epoch && (d = 0);
|
|
34
|
+
}));
|
|
35
|
+
};
|
|
36
|
+
typeof window < "u" && e(f);
|
|
37
|
+
var p = async (e) => typeof window > "u" ? () => {} : (l.add(e), f(), () => {
|
|
38
|
+
l.delete(e);
|
|
39
|
+
});
|
|
40
|
+
//#endregion
|
|
41
|
+
export { c as a, s as i, p as n, i as o, a as r, o as t };
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
import { a as e } from "./lib-build-DEOZ3A7n.js";
|
|
2
|
+
//#region node_modules/@fkn/lib/api-DLvscoll.js
|
|
3
|
+
var t = 1e4, n = 16, r = (e) => {
|
|
4
|
+
let t;
|
|
5
|
+
try {
|
|
6
|
+
t = e.contentWindow;
|
|
7
|
+
} catch {
|
|
8
|
+
return !0;
|
|
9
|
+
}
|
|
10
|
+
if (!t) return !0;
|
|
11
|
+
try {
|
|
12
|
+
let e = t.location.href;
|
|
13
|
+
return e !== "" && e !== "about:blank";
|
|
14
|
+
} catch {
|
|
15
|
+
return !0;
|
|
16
|
+
}
|
|
17
|
+
}, i = (e, i = t) => new Promise((t) => {
|
|
18
|
+
if (r(e)) return t();
|
|
19
|
+
let a = () => {
|
|
20
|
+
clearInterval(o), clearTimeout(s), e.removeEventListener("load", a), t();
|
|
21
|
+
}, o = setInterval(() => {
|
|
22
|
+
r(e) && a();
|
|
23
|
+
}, n), s = setTimeout(a, i);
|
|
24
|
+
e.addEventListener("load", a);
|
|
25
|
+
}), a = 32, o = 8, s = 120, c = typeof CSS < "u" && CSS.supports("clip-path", "path('M0 0H1V1H0Z')"), l = typeof CSS < "u" && CSS.supports("clip-path", "polygon(nonzero, 0px 0px, 1px 0px, 1px 1px)"), u = (e) => {
|
|
26
|
+
let t = e.style;
|
|
27
|
+
t.setProperty("display", "block", "important"), t.setProperty("position", "fixed", "important"), t.setProperty("top", "0", "important"), t.setProperty("left", "0", "important"), t.setProperty("width", "100%", "important"), t.setProperty("height", "100%", "important"), t.setProperty("border", "none", "important"), t.setProperty("padding", "0", "important"), t.setProperty("box-sizing", "border-box", "important"), t.setProperty("clip-path", "inset(100%)", "important"), t.setProperty("background", "transparent"), t.setProperty("color-scheme", "normal"), t.setProperty("z-index", "2147483647"), e.setAttribute("title", "FKN");
|
|
28
|
+
}, d = ({ x: e, y: t, width: n, height: r, radius: i }) => {
|
|
29
|
+
if (!i) return `M${e} ${t}h${n}v${r}h${-n}Z`;
|
|
30
|
+
let a = Math.min(n, r) / 2, [o, s, c, l] = i.map((e) => Math.max(0, Math.min(e, a)));
|
|
31
|
+
return `M${e + o} ${t}h${n - o - s}a${s} ${s} 0 0 1 ${s} ${s}v${r - s - c}a${c} ${c} 0 0 1 ${-c} ${c}h${-(n - c - l)}a${l} ${l} 0 0 1 ${-l} ${-l}v${-(r - l - o)}a${o} ${o} 0 0 1 ${o} ${-o}Z`;
|
|
32
|
+
}, f = () => c && l, p = ({ x: e, y: t, width: n, height: r }) => [
|
|
33
|
+
[e, t],
|
|
34
|
+
[e + n, t],
|
|
35
|
+
[e + n, t + r],
|
|
36
|
+
[e, t + r],
|
|
37
|
+
[e, t]
|
|
38
|
+
], ee = (e) => {
|
|
39
|
+
let t = e[0];
|
|
40
|
+
if (!t) return [];
|
|
41
|
+
let n = p(t)[0], r = [];
|
|
42
|
+
return e.forEach((t, i) => {
|
|
43
|
+
r.push(...p(t)), i > 0 && i < e.length - 1 && r.push(n);
|
|
44
|
+
}), r;
|
|
45
|
+
}, m = (e) => `polygon(nonzero, ${ee(e).map(([e, t]) => `${e}px ${t}px`).join(", ")})`, h = ({ x: e, y: t, width: n, height: r, radius: i }, a) => {
|
|
46
|
+
let o = `${t}px ${a.width - e - n}px ${a.height - t - r}px ${e}px`;
|
|
47
|
+
return i ? `inset(${o} round ${i.map((e) => `${e}px`).join(" ")})` : `inset(${o})`;
|
|
48
|
+
}, g = (e, t, n) => {
|
|
49
|
+
if (t) return "none";
|
|
50
|
+
if (e.length === 0) return "inset(100%)";
|
|
51
|
+
let r = e.length === 1 ? e[0] : void 0;
|
|
52
|
+
return r ? h(r, n) : l && e.length <= 5 && !e.some((e) => e.radius) ? m(e) : `path('${e.map(d).join("")}')`;
|
|
53
|
+
}, _ = (e) => {
|
|
54
|
+
if (e.length < 2) return null;
|
|
55
|
+
let t = Math.min(...e.map((e) => e.x)), n = Math.min(...e.map((e) => e.y));
|
|
56
|
+
return {
|
|
57
|
+
x: t,
|
|
58
|
+
y: n,
|
|
59
|
+
width: Math.max(...e.map((e) => e.x + e.width)) - t,
|
|
60
|
+
height: Math.max(...e.map((e) => e.y + e.height)) - n
|
|
61
|
+
};
|
|
62
|
+
}, v = (e, t, n) => t >= e.x && t < e.x + e.width && n >= e.y && n < e.y + e.height, te = 16, y = (e, t, n) => t === 1 ? e * te : t === 2 ? e * n : e, ne = (e, t, n) => {
|
|
63
|
+
let r = getComputedStyle(e);
|
|
64
|
+
return n !== 0 && /auto|scroll/.test(r.overflowY) && e.scrollHeight > e.clientHeight ? !0 : t !== 0 && /auto|scroll/.test(r.overflowX) && e.scrollWidth > e.clientWidth;
|
|
65
|
+
}, b = (e, t, n) => {
|
|
66
|
+
for (let r = e; r; r = r.parentElement) if (ne(r, t, n)) return r;
|
|
67
|
+
return document.scrollingElement;
|
|
68
|
+
}, x = null, S = null, C = (e) => ({
|
|
69
|
+
width: e.offsetWidth || window.innerWidth,
|
|
70
|
+
height: e.offsetHeight || window.innerHeight
|
|
71
|
+
}), w = (e) => {
|
|
72
|
+
if (!S || !x || !v(S, e.clientX, e.clientY)) return;
|
|
73
|
+
let t = document.elementFromPoint(e.clientX, e.clientY);
|
|
74
|
+
if (!t || t === x) return;
|
|
75
|
+
let n = y(e.deltaX, e.deltaMode, window.innerWidth), r = y(e.deltaY, e.deltaMode, window.innerHeight), i = b(t, n, r);
|
|
76
|
+
i && (i.scrollBy({
|
|
77
|
+
left: n,
|
|
78
|
+
top: r,
|
|
79
|
+
behavior: "instant"
|
|
80
|
+
}), e.cancelable && e.preventDefault());
|
|
81
|
+
}, T = (e) => {
|
|
82
|
+
let t = S !== null;
|
|
83
|
+
S = e, t !== (e !== null) && (e ? window.addEventListener("wheel", w, {
|
|
84
|
+
capture: !0,
|
|
85
|
+
passive: !1
|
|
86
|
+
}) : window.removeEventListener("wheel", w, { capture: !0 }));
|
|
87
|
+
}, E = 0, re = (e) => {
|
|
88
|
+
if (e === E) return;
|
|
89
|
+
E = e;
|
|
90
|
+
let t = document.documentElement.style;
|
|
91
|
+
e > 0 ? (t.setProperty("margin-top", `${e}px`, "important"), t.setProperty("--fkn-inset-top", `${e}px`)) : (t.removeProperty("margin-top"), t.removeProperty("--fkn-inset-top"));
|
|
92
|
+
}, D = (e, { modal: t, rects: n, inset: r }, i) => {
|
|
93
|
+
if (re(r), !c) {
|
|
94
|
+
let r = t || n.length > 0;
|
|
95
|
+
e.style.setProperty("pointer-events", r ? "auto" : "none", "important"), e.style.setProperty("visibility", r ? "visible" : "hidden", "important");
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
let a = g(n, t, i), o = a === "none" || CSS.supports("clip-path", a) ? a : "inset(100%)";
|
|
99
|
+
e.style.setProperty("clip-path", o, "important"), T(t || o !== a ? null : _(n));
|
|
100
|
+
}, ie = (e) => {
|
|
101
|
+
if (typeof e != "object" || !e) return 0;
|
|
102
|
+
let { top: t } = e;
|
|
103
|
+
return typeof t != "number" || !Number.isFinite(t) || t <= 0 ? 0 : Math.min(Math.round(t), s);
|
|
104
|
+
}, ae = (e) => {
|
|
105
|
+
if (!(!Array.isArray(e) || e.length !== 4) && e.every((e) => typeof e == "number" && Number.isFinite(e) && e >= 0)) return e.some((e) => e > 0) ? e : void 0;
|
|
106
|
+
}, oe = (e, t) => {
|
|
107
|
+
if (typeof e != "object" || !e) return null;
|
|
108
|
+
let { x: n, y: r, width: i, height: a } = e;
|
|
109
|
+
if (![
|
|
110
|
+
n,
|
|
111
|
+
r,
|
|
112
|
+
i,
|
|
113
|
+
a
|
|
114
|
+
].every((e) => typeof e == "number" && Number.isFinite(e))) return null;
|
|
115
|
+
let o = t.width, s = t.height, c = Math.max(0, Math.min(Math.round(n), o)), l = Math.max(0, Math.min(Math.round(r), s)), u = Math.max(c, Math.min(Math.round(n + i), o)), d = Math.max(l, Math.min(Math.round(r + a), s)), f = ae(e.radius);
|
|
116
|
+
return {
|
|
117
|
+
x: c,
|
|
118
|
+
y: l,
|
|
119
|
+
width: u - c,
|
|
120
|
+
height: d - l,
|
|
121
|
+
...f ? { radius: f } : {}
|
|
122
|
+
};
|
|
123
|
+
}, O = {
|
|
124
|
+
"not-rendered": "this page is not painting it at all, so it or an ancestor is display:none, or the frame was moved out of the layout",
|
|
125
|
+
clipped: "it is clipped away or positioned outside the viewport",
|
|
126
|
+
"not-shown": "it is rendered but would not be seen, so either something is drawn over it, or it or an ancestor has opacity below 1, visibility:hidden, or a filter"
|
|
127
|
+
}, se = (e) => Array.isArray(e) ? e.slice(0, o).flatMap((e) => {
|
|
128
|
+
if (typeof e != "object" || !e) return [];
|
|
129
|
+
let { kind: t, cause: n, level: r } = e;
|
|
130
|
+
return typeof t != "string" || t.length > 40 || typeof n != "string" || !(n in O) || r !== "full" && r !== "liveness" ? [] : [{
|
|
131
|
+
kind: t,
|
|
132
|
+
cause: n,
|
|
133
|
+
level: r
|
|
134
|
+
}];
|
|
135
|
+
}) : [], k = /* @__PURE__ */ new Set(), ce = (e) => {
|
|
136
|
+
for (let { kind: t, cause: n, level: r } of e) k.has(t) || (k.add(t), console.error(`[FKN] The FKN ${JSON.stringify(t)} is not visible on this page: ${O[n]}. Nobody using this page can see or answer it.
|
|
137
|
+
@fkn/lib draws its UI inside <iframe title="FKN"> and sets display, position, top, left, width, height, border, padding, box-sizing, clip-path and z-index on that element. Leave those as they are, then check for an ancestor with opacity, visibility, display or a clipping transform, and for an element stacked above it.` + (r === "liveness" ? "\nThis browser reports limited detail, so the cause above is a best guess." : "")));
|
|
138
|
+
}, A = (e, t) => {
|
|
139
|
+
if (typeof e != "object" || !e) return null;
|
|
140
|
+
let n = e, r = (Array.isArray(n.rects) ? n.rects.slice(0, a) : []).map((e) => oe(e, t)).filter((e) => e !== null && e.width > 0 && e.height > 0);
|
|
141
|
+
return {
|
|
142
|
+
modal: n.modal === !0,
|
|
143
|
+
rects: r,
|
|
144
|
+
hidden: se(n.hidden),
|
|
145
|
+
inset: ie(n.inset)
|
|
146
|
+
};
|
|
147
|
+
}, j = () => x !== null, M = null, N = null, P = () => {
|
|
148
|
+
if (!x || M === null) return;
|
|
149
|
+
let e = C(x), t = A(M, e);
|
|
150
|
+
t && D(x, t, e);
|
|
151
|
+
}, F = (e) => {
|
|
152
|
+
typeof ResizeObserver > "u" || (N ??= new ResizeObserver(P), N.disconnect(), N.observe(e));
|
|
153
|
+
}, I = (e) => {
|
|
154
|
+
u(e), D(e, {
|
|
155
|
+
modal: !1,
|
|
156
|
+
rects: [],
|
|
157
|
+
hidden: [],
|
|
158
|
+
inset: 0
|
|
159
|
+
}, C(e)), x = e, F(e);
|
|
160
|
+
}, L = (e) => {
|
|
161
|
+
if (!x) return;
|
|
162
|
+
let t = C(x), n = A(e, t);
|
|
163
|
+
n && (M = e, D(x, n, t), ce(n.hidden));
|
|
164
|
+
}, R = "https://fkn.app", z = typeof globalThis < "u" && globalThis.document ? globalThis.document : void 0, B = typeof globalThis < "u" && globalThis.crossOriginIsolated === !0, V = `${R}/api${B ? "?coi=1" : ""}`, H = "fkn-api-port", U = "fkn-api-port-ack", W = 2e3, le = () => {
|
|
165
|
+
if (!z || typeof window > "u" || window.parent === window) return Promise.resolve(void 0);
|
|
166
|
+
let e;
|
|
167
|
+
try {
|
|
168
|
+
e = window.parent;
|
|
169
|
+
} catch {
|
|
170
|
+
return Promise.resolve(void 0);
|
|
171
|
+
}
|
|
172
|
+
let t = new MessageChannel();
|
|
173
|
+
return new Promise((n) => {
|
|
174
|
+
let r = (e) => {
|
|
175
|
+
if (clearTimeout(a), t.port1.removeEventListener("message", i), !e) try {
|
|
176
|
+
t.port1.close();
|
|
177
|
+
} catch {}
|
|
178
|
+
n(e);
|
|
179
|
+
}, i = (e) => {
|
|
180
|
+
e.data?.type === U && r(t.port1);
|
|
181
|
+
}, a = setTimeout(() => r(void 0), W);
|
|
182
|
+
t.port1.addEventListener("message", i), t.port1.start();
|
|
183
|
+
try {
|
|
184
|
+
e.postMessage({ type: H }, R, [t.port2]);
|
|
185
|
+
} catch {
|
|
186
|
+
r(void 0);
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
}, G, ue = () => {
|
|
190
|
+
if (G || !z) return G;
|
|
191
|
+
let e = z.querySelector(`iframe[src="${V}"]`);
|
|
192
|
+
if (e) G = e;
|
|
193
|
+
else {
|
|
194
|
+
let e = z.createElement("iframe");
|
|
195
|
+
B && e.setAttribute("allow", "cross-origin-isolated"), e.src = V, z.body.appendChild(e), G = e;
|
|
196
|
+
}
|
|
197
|
+
return I(G), G;
|
|
198
|
+
}, K = (async () => {
|
|
199
|
+
if (!z) return;
|
|
200
|
+
let e = await le();
|
|
201
|
+
if (e) return {
|
|
202
|
+
receive: e,
|
|
203
|
+
emit: e
|
|
204
|
+
};
|
|
205
|
+
let t = ue();
|
|
206
|
+
if (!t) return;
|
|
207
|
+
await i(t);
|
|
208
|
+
let n = t.contentWindow;
|
|
209
|
+
return n ? {
|
|
210
|
+
receive: window,
|
|
211
|
+
emit: n
|
|
212
|
+
} : void 0;
|
|
213
|
+
})(), de = (e) => {
|
|
214
|
+
let t, n = () => {}, r = new Promise((e) => {
|
|
215
|
+
n = e;
|
|
216
|
+
}), i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set(), o = 0, s = 0;
|
|
217
|
+
(async () => {
|
|
218
|
+
for await (let r of e) {
|
|
219
|
+
let e = (t?.epoch ?? 0) + 1;
|
|
220
|
+
t = {
|
|
221
|
+
remote: r,
|
|
222
|
+
epoch: e
|
|
223
|
+
}, e === 1 && n(r);
|
|
224
|
+
let o = [...a];
|
|
225
|
+
a.clear();
|
|
226
|
+
let s = /* @__PURE__ */ Error("FKN: the broker was replaced while this call was pending; retry it");
|
|
227
|
+
for (let e of o) try {
|
|
228
|
+
e(s);
|
|
229
|
+
} catch {}
|
|
230
|
+
for (let t of [...i]) try {
|
|
231
|
+
t(r, e);
|
|
232
|
+
} catch {}
|
|
233
|
+
}
|
|
234
|
+
})().catch(() => {});
|
|
235
|
+
let c = async (e, n) => {
|
|
236
|
+
let i = t?.remote ?? await r;
|
|
237
|
+
for (let t of e.slice(0, -1)) i = i[t];
|
|
238
|
+
let c = i[e[e.length - 1] ?? ""];
|
|
239
|
+
o = Date.now(), s += 1;
|
|
240
|
+
let l = () => {}, u = new Promise((e, t) => {
|
|
241
|
+
l = t;
|
|
242
|
+
});
|
|
243
|
+
a.add(l);
|
|
244
|
+
try {
|
|
245
|
+
return await Promise.race([Promise.resolve(c.apply(i, n)), u]);
|
|
246
|
+
} finally {
|
|
247
|
+
--s, a.delete(l), o = Date.now();
|
|
248
|
+
}
|
|
249
|
+
}, l = /* @__PURE__ */ new Map(), u = (e) => {
|
|
250
|
+
let n = e.join("\0"), r = l.get(n);
|
|
251
|
+
if (r) return r;
|
|
252
|
+
let i = new Proxy(function() {}, {
|
|
253
|
+
get: (n, r) => {
|
|
254
|
+
if (typeof r != "string" || r === "then") return;
|
|
255
|
+
let i = t;
|
|
256
|
+
if (i) {
|
|
257
|
+
let t = i.remote;
|
|
258
|
+
for (let n of e) t = t?.[n];
|
|
259
|
+
if (t?.[r] === void 0) return;
|
|
260
|
+
}
|
|
261
|
+
return u([...e, r]);
|
|
262
|
+
},
|
|
263
|
+
apply: (t, n, r) => c(e, r)
|
|
264
|
+
});
|
|
265
|
+
return l.set(n, i), i;
|
|
266
|
+
};
|
|
267
|
+
return {
|
|
268
|
+
facade: u([]),
|
|
269
|
+
first: r.then(() => {}),
|
|
270
|
+
current: () => t,
|
|
271
|
+
onEpoch: (e) => {
|
|
272
|
+
if (i.add(e), t) try {
|
|
273
|
+
e(t.remote, t.epoch);
|
|
274
|
+
} catch {}
|
|
275
|
+
return () => {
|
|
276
|
+
i.delete(e);
|
|
277
|
+
};
|
|
278
|
+
},
|
|
279
|
+
lastCall: () => o,
|
|
280
|
+
inFlight: () => s
|
|
281
|
+
};
|
|
282
|
+
}, fe = typeof window < "u" || typeof self < "u", q = async () => {
|
|
283
|
+
if (typeof window < "u") return K;
|
|
284
|
+
if (typeof self < "u") return {
|
|
285
|
+
receive: self,
|
|
286
|
+
emit: self
|
|
287
|
+
};
|
|
288
|
+
}, J = de({ async *[Symbol.asyncIterator]() {
|
|
289
|
+
let t = await q();
|
|
290
|
+
if (!t) {
|
|
291
|
+
await new Promise(() => {});
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
yield* e({}, {
|
|
295
|
+
key: "fkn-api",
|
|
296
|
+
transport: t
|
|
297
|
+
});
|
|
298
|
+
} }), Y = J.first.then(() => J.facade), X = 8e3, pe = 1e3, Z = !1, Q = class extends Error {
|
|
299
|
+
constructor(e, t) {
|
|
300
|
+
super(`@fkn/lib: no broker connection within ${t}ms, so ${e} could not be requested`), this.name = "BrokerUnreachableError";
|
|
301
|
+
}
|
|
302
|
+
}, me = (e) => {
|
|
303
|
+
let t = Z ? pe : X;
|
|
304
|
+
return Promise.race([Y, new Promise((n, r) => setTimeout(() => {
|
|
305
|
+
Z = !0, r(new Q(e, t));
|
|
306
|
+
}, t))]);
|
|
307
|
+
}, $ = J.onEpoch, he = J.current;
|
|
308
|
+
J.lastCall, J.inFlight, $((e) => {
|
|
309
|
+
j() && e.overlay.setHost(L, { exactClips: f() }).catch(() => {});
|
|
310
|
+
});
|
|
311
|
+
//#endregion
|
|
312
|
+
export { Q as a, me as c, X as i, K as n, fe as o, $ as r, he as s, Y as t };
|