@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.
Files changed (34) hide show
  1. package/build/.well-known/fkn.json +1 -1
  2. package/build/assets/lib-Preview-B6uZKyhl.js +82 -0
  3. package/build/assets/lib-account-BuVN6Bsx.js +41 -0
  4. package/build/assets/lib-account-Cw8yCZtf.js +2 -0
  5. package/build/assets/lib-api-DLvscoll-DhlBp9Wz.js +312 -0
  6. package/build/assets/lib-api-DVwR-22s.js +2 -0
  7. package/build/assets/lib-build-DEOZ3A7n.js +1846 -0
  8. package/build/assets/lib-compat-D8G4_Lzi.js +860 -0
  9. package/build/assets/lib-custom-media-element-CnANKrGl.js +217 -0
  10. package/build/assets/lib-dash.all.min-CDvdorbj.js +27251 -0
  11. package/build/assets/lib-dist-Dv8d3Kr0.js +7 -0
  12. package/build/assets/lib-dist-S8Gxnnq-.js +12468 -0
  13. package/build/assets/lib-dist-T0QlKbbk.js +18578 -0
  14. package/build/assets/lib-dist-xBHT3Lfz.js +911 -0
  15. package/build/assets/lib-react-BEg4mBBK.js +112 -0
  16. package/build/assets/lib-react-C0OCUIWX.js +434 -0
  17. package/build/assets/lib-react-CAkOlDha.js +367 -0
  18. package/build/assets/lib-react-CGlZXIjl.js +2187 -0
  19. package/build/assets/lib-react-CLVoi_ZM.js +334 -0
  20. package/build/assets/lib-react-DUxKSzCt.js +311 -0
  21. package/build/assets/lib-react-QvmpnEVK.js +334 -0
  22. package/build/assets/lib-react-WTnxAo6F.js +202 -0
  23. package/build/assets/lib-remote-DeY2A2G7.js +416 -0
  24. package/build/assets/lib-remote-DxEZmpd0.js +2 -0
  25. package/build/assets/lib-rolldown-runtime-B1bRi_D7.js +27 -0
  26. package/build/assets/lib-worker-anime-index-Jbe1K3rX.js +1 -0
  27. package/build/assets/lib-worker-anime-seasons-CVM0BQGM.js +1 -0
  28. package/build/assets/lib-worker-index-C7ynIZYg.js +1401 -0
  29. package/build/assets/{main-C8JOinyp.js → main-DejLBzlj.js} +1 -1
  30. package/build/fkn.json +1 -1
  31. package/build/index.html +1 -1
  32. package/build/index.js +40639 -0
  33. package/fkn.json +1 -1
  34. 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":1789103478,"sig":"h1S5hox220GHipgcG3zMH4TyB+MFFe4PqMMtHiHpVW/E3r0wUb734FeNpQGygkWCIXw1sQoooDWgLTmyf3wQDg=="}
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,2 @@
1
+ import { n as e } from "./lib-account-BuVN6Bsx.js";
2
+ export { e as onChange };
@@ -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 };
@@ -0,0 +1,2 @@
1
+ import { r as e, t } from "./lib-api-DLvscoll-DhlBp9Wz.js";
2
+ export { t as apiPromise, e as onApiEpoch };