UNPKG

@lastfm-viewer/solid

Version:

A solidjs component to view recent scrobbles for a last.fm user

1,796 lines 87.3 kB
var un = Object.defineProperty; var fn = (e, t, n) => t in e ? un(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n; var H = (e, t, n) => fn(e, typeof t != "symbol" ? t + "" : t, n); import "./index.css"; const dn = !1, hn = (e, t) => e === t, G = Symbol("solid-proxy"), Qe = Symbol("solid-track"), _e = { equals: hn }; let Tt = jt; const B = 1, Ie = 2, Ot = { owned: null, cleanups: null, context: null, owner: null }, De = {}; var w = null; let we = null, gn = null, x = null, O = null, U = null, Re = 0; function Ve(e, t) { const n = x, r = w, s = e.length === 0, o = r, i = s ? Ot : { owned: null, cleanups: null, context: o ? o.context : null, owner: o }, c = s ? e : () => e(() => R(() => le(i))); w = i, x = null; try { return D(c, !0); } finally { x = n, w = r; } } function z(e, t) { t = t ? Object.assign({}, _e, t) : _e; const n = { value: e, observers: null, observerSlots: null, comparator: t.equals || void 0 }, r = (s) => (typeof s == "function" && (s = s(n.value)), Mt(n, s)); return [Rt.bind(n), r]; } function it(e, t, n) { const r = je(e, t, !0, B); Z(r); } function S(e, t, n) { const r = je(e, t, !1, B); Z(r); } function pn(e, t, n) { Tt = xn; const r = je(e, t, !1, B); r.user = !0, U ? U.push(r) : Z(r); } function M(e, t, n) { n = n ? Object.assign({}, _e, n) : _e; const r = je(e, t, !0, 0); return r.observers = null, r.observerSlots = null, r.comparator = n.equals || void 0, Z(r), Rt.bind(r); } function yn(e) { return e && typeof e == "object" && "then" in e; } function mn(e, t, n) { let r, s, o; r = !0, s = e, o = {}; let i = null, c = De, l = !1, a = "initialValue" in o, f = typeof r == "function" && M(r); const u = /* @__PURE__ */ new Set(), [d, h] = (o.storage || z)(o.initialValue), [g, y] = z(void 0), [p, P] = z(void 0, { equals: !1 }), [$, v] = z(a ? "ready" : "unresolved"); function m(A, k, j, L) { return i === A && (i = null, L !== void 0 && (a = !0), (A === c || k === c) && o.onHydrated && queueMicrotask(() => o.onHydrated(L, { value: k })), c = De, N(k, j)), k; } function N(A, k) { D(() => { k === void 0 && h(() => A), v(k !== void 0 ? "errored" : a ? "ready" : "unresolved"), y(k); for (const j of u.keys()) j.decrement(); u.clear(); }, !1); } function b() { const A = An, k = d(), j = g(); if (j !== void 0 && !i) throw j; return x && !x.user && A && it(() => { p(), i && (A.resolved && we || u.has(A) || (A.increment(), u.add(A))); }), k; } function E(A = !0) { if (A !== !1 && l) return; l = !1; const k = f ? f() : r; if (k == null || k === !1) { m(i, R(d)); return; } let j; const L = c !== De ? c : R(() => { try { return s(k, { value: d(), refetching: A }); } catch (te) { j = te; } }); if (j !== void 0) { m(i, void 0, ve(j), k); return; } else if (!yn(L)) return m(i, L, void 0, k), L; return i = L, "v" in L ? (L.s === 1 ? m(i, L.v, void 0, k) : m(i, void 0, ve(L.v), k), L) : (l = !0, queueMicrotask(() => l = !1), D(() => { v(a ? "refreshing" : "pending"), P(); }, !1), L.then((te) => m(L, te, void 0, k), (te) => m(L, void 0, ve(te), k))); } Object.defineProperties(b, { state: { get: () => $() }, error: { get: () => g() }, loading: { get() { const A = $(); return A === "pending" || A === "refreshing"; } }, latest: { get() { if (!a) return b(); const A = g(); if (A && !i) throw A; return d(); } } }); let q = w; return f ? it(() => (q = w, E(!1))) : E(!1), [b, { refetch: (A) => vn(q, () => E(A)), mutate: h }]; } function bn(e) { return D(e, !1); } function R(e) { if (x === null) return e(); const t = x; x = null; try { return e(); } finally { x = t; } } function Nt(e) { return w === null || (w.cleanups === null ? w.cleanups = [e] : w.cleanups.push(e)), e; } function ze() { return x; } function wn() { return w; } function vn(e, t) { const n = w, r = x; w = e, x = null; try { return D(t, !0); } catch (s) { nt(s); } finally { w = n, x = r; } } const [zs, Ks] = /* @__PURE__ */ z(!1); function kn(e, t) { const n = Symbol("context"); return { id: n, Provider: $n(n), defaultValue: e }; } function Me(e) { let t; return w && w.context && (t = w.context[e.id]) !== void 0 ? t : e.defaultValue; } function Lt(e) { const t = M(e), n = M(() => Ke(t())); return n.toArray = () => { const r = n(); return Array.isArray(r) ? r : r != null ? [r] : []; }, n; } let An; function Rt() { if (this.sources && this.state) if (this.state === B) Z(this); else { const e = O; O = null, D(() => $e(this), !1), O = e; } if (x) { const e = this.observers ? this.observers.length : 0; x.sources ? (x.sources.push(this), x.sourceSlots.push(e)) : (x.sources = [this], x.sourceSlots = [e]), this.observers ? (this.observers.push(x), this.observerSlots.push(x.sources.length - 1)) : (this.observers = [x], this.observerSlots = [x.sources.length - 1]); } return this.value; } function Mt(e, t, n) { let r = e.value; return (!e.comparator || !e.comparator(r, t)) && (e.value = t, e.observers && e.observers.length && D(() => { for (let s = 0; s < e.observers.length; s += 1) { const o = e.observers[s], i = we && we.running; i && we.disposed.has(o), (i ? !o.tState : !o.state) && (o.pure ? O.push(o) : U.push(o), o.observers && Ft(o)), i || (o.state = B); } if (O.length > 1e6) throw O = [], new Error(); }, !1)), t; } function Z(e) { if (!e.fn) return; le(e); const t = Re; _n(e, e.value, t); } function _n(e, t, n) { let r; const s = w, o = x; x = w = e; try { r = e.fn(t); } catch (i) { return e.pure && (e.state = B, e.owned && e.owned.forEach(le), e.owned = null), e.updatedAt = n + 1, nt(i); } finally { x = o, w = s; } (!e.updatedAt || e.updatedAt <= n) && (e.updatedAt != null && "observers" in e ? Mt(e, r) : e.value = r, e.updatedAt = n); } function je(e, t, n, r = B, s) { const o = { fn: e, state: r, updatedAt: null, owned: null, sources: null, sourceSlots: null, cleanups: null, value: t, owner: w, context: w ? w.context : null, pure: n }; return w === null || w !== Ot && (w.owned ? w.owned.push(o) : w.owned = [o]), o; } function xe(e) { if (e.state === 0) return; if (e.state === Ie) return $e(e); if (e.suspense && R(e.suspense.inFallback)) return e.suspense.effects.push(e); const t = [e]; for (; (e = e.owner) && (!e.updatedAt || e.updatedAt < Re); ) e.state && t.push(e); for (let n = t.length - 1; n >= 0; n--) if (e = t[n], e.state === B) Z(e); else if (e.state === Ie) { const r = O; O = null, D(() => $e(e, t[0]), !1), O = r; } } function D(e, t) { if (O) return e(); let n = !1; t || (O = []), U ? n = !0 : U = [], Re++; try { const r = e(); return In(n), r; } catch (r) { n || (U = null), O = null, nt(r); } } function In(e) { if (O && (jt(O), O = null), e) return; const t = U; U = null, t.length && D(() => Tt(t), !1); } function jt(e) { for (let t = 0; t < e.length; t++) xe(e[t]); } function xn(e) { let t, n = 0; for (t = 0; t < e.length; t++) { const r = e[t]; r.user ? e[n++] = r : xe(r); } for (t = 0; t < n; t++) xe(e[t]); } function $e(e, t) { e.state = 0; for (let n = 0; n < e.sources.length; n += 1) { const r = e.sources[n]; if (r.sources) { const s = r.state; s === B ? r !== t && (!r.updatedAt || r.updatedAt < Re) && xe(r) : s === Ie && $e(r, t); } } } function Ft(e) { for (let t = 0; t < e.observers.length; t += 1) { const n = e.observers[t]; n.state || (n.state = Ie, n.pure ? O.push(n) : U.push(n), n.observers && Ft(n)); } } function le(e) { let t; if (e.sources) for (; e.sources.length; ) { const n = e.sources.pop(), r = e.sourceSlots.pop(), s = n.observers; if (s && s.length) { const o = s.pop(), i = n.observerSlots.pop(); r < s.length && (o.sourceSlots[i] = r, s[r] = o, n.observerSlots[r] = i); } } if (e.tOwned) { for (t = e.tOwned.length - 1; t >= 0; t--) le(e.tOwned[t]); delete e.tOwned; } if (e.owned) { for (t = e.owned.length - 1; t >= 0; t--) le(e.owned[t]); e.owned = null; } if (e.cleanups) { for (t = e.cleanups.length - 1; t >= 0; t--) e.cleanups[t](); e.cleanups = null; } e.state = 0; } function ve(e) { return e instanceof Error ? e : new Error(typeof e == "string" ? e : "Unknown error", { cause: e }); } function nt(e, t = w) { throw ve(e); } function Ke(e) { if (typeof e == "function" && !e.length) return Ke(e()); if (Array.isArray(e)) { const t = []; for (let n = 0; n < e.length; n++) { const r = Ke(e[n]); Array.isArray(r) ? t.push.apply(t, r) : t.push(r); } return t; } return e; } function $n(e, t) { return function(r) { let s; return S(() => s = R(() => (w.context = { ...w.context, [e]: r.value }, Lt(() => r.children))), void 0), s; }; } const Cn = Symbol("fallback"); function ct(e) { for (let t = 0; t < e.length; t++) e[t](); } function Sn(e, t, n = {}) { let r = [], s = [], o = [], i = 0, c = t.length > 1 ? [] : null; return Nt(() => ct(o)), () => { let l = e() || [], a = l.length, f, u; return l[Qe], R(() => { let h, g, y, p, P, $, v, m, N; if (a === 0) i !== 0 && (ct(o), o = [], r = [], s = [], i = 0, c && (c = [])), n.fallback && (r = [Cn], s[0] = Ve((b) => (o[0] = b, n.fallback())), i = 1); else if (i === 0) { for (s = new Array(a), u = 0; u < a; u++) r[u] = l[u], s[u] = Ve(d); i = a; } else { for (y = new Array(a), p = new Array(a), c && (P = new Array(a)), $ = 0, v = Math.min(i, a); $ < v && r[$] === l[$]; $++) ; for (v = i - 1, m = a - 1; v >= $ && m >= $ && r[v] === l[m]; v--, m--) y[m] = s[v], p[m] = o[v], c && (P[m] = c[v]); for (h = /* @__PURE__ */ new Map(), g = new Array(m + 1), u = m; u >= $; u--) N = l[u], f = h.get(N), g[u] = f === void 0 ? -1 : f, h.set(N, u); for (f = $; f <= v; f++) N = r[f], u = h.get(N), u !== void 0 && u !== -1 ? (y[u] = s[f], p[u] = o[f], c && (P[u] = c[f]), u = g[u], h.set(N, u)) : o[f](); for (u = $; u < a; u++) u in y ? (s[u] = y[u], o[u] = p[u], c && (c[u] = P[u], c[u](u))) : s[u] = Ve(d); s = s.slice(0, i = a), r = l.slice(0); } return s; }); function d(h) { if (o[u] = h, c) { const [g, y] = z(u); return c[u] = y, t(l[u], g); } return t(l[u]); } }; } function _(e, t) { return R(() => e(t || {})); } const Ut = (e) => `Stale read from <${e}>.`; function Pn(e) { const t = "fallback" in e && { fallback: () => e.fallback }; return M(Sn(() => e.each, e.children, t || void 0)); } function Ce(e) { const t = e.keyed, n = M(() => e.when, void 0, void 0), r = t ? n : M(n, void 0, { equals: (s, o) => !s == !o }); return M(() => { const s = r(); if (s) { const o = e.children; return typeof o == "function" && o.length > 0 ? R(() => o(t ? s : () => { if (!R(r)) throw Ut("Show"); return n(); })) : o; } return e.fallback; }, void 0, void 0); } function En(e) { const t = Lt(() => e.children), n = M(() => { const r = t(), s = Array.isArray(r) ? r : [r]; let o = () => { }; for (let i = 0; i < s.length; i++) { const c = i, l = s[i], a = o, f = M(() => a() ? void 0 : l.when, void 0, void 0), u = l.keyed ? f : M(f, void 0, { equals: (d, h) => !d == !h }); o = () => a() || (u() ? [c, f, l] : void 0); } return o; }); return M(() => { const r = n()(); if (!r) return e.fallback; const [s, o, i] = r, c = i.children; return typeof c == "function" && c.length > 0 ? R(() => c(i.keyed ? o() : () => { var a; if (((a = R(n)()) == null ? void 0 : a[0]) !== s) throw Ut("Match"); return o(); })) : c; }, void 0, void 0); } function lt(e) { return e; } const Tn = ["allowfullscreen", "async", "autofocus", "autoplay", "checked", "controls", "default", "disabled", "formnovalidate", "hidden", "indeterminate", "inert", "ismap", "loop", "multiple", "muted", "nomodule", "novalidate", "open", "playsinline", "readonly", "required", "reversed", "seamless", "selected"], On = /* @__PURE__ */ new Set(["className", "value", "readOnly", "noValidate", "formNoValidate", "isMap", "noModule", "playsInline", ...Tn]), Nn = /* @__PURE__ */ new Set(["innerHTML", "textContent", "innerText", "children"]), Ln = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(null), { className: "class", htmlFor: "for" }), Rn = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(null), { class: "className", novalidate: { $: "noValidate", FORM: 1 }, formnovalidate: { $: "formNoValidate", BUTTON: 1, INPUT: 1 }, ismap: { $: "isMap", IMG: 1 }, nomodule: { $: "noModule", SCRIPT: 1 }, playsinline: { $: "playsInline", VIDEO: 1 }, readonly: { $: "readOnly", INPUT: 1, TEXTAREA: 1 } }); function Mn(e, t) { const n = Rn[e]; return typeof n == "object" ? n[t] ? n.$ : void 0 : n; } const jn = /* @__PURE__ */ new Set(["beforeinput", "click", "dblclick", "contextmenu", "focusin", "focusout", "input", "keydown", "keyup", "mousedown", "mousemove", "mouseout", "mouseover", "mouseup", "pointerdown", "pointermove", "pointerout", "pointerover", "pointerup", "touchend", "touchmove", "touchstart"]), ie = (e) => M(() => e()); function Fn(e, t, n) { let r = n.length, s = t.length, o = r, i = 0, c = 0, l = t[s - 1].nextSibling, a = null; for (; i < s || c < o; ) { if (t[i] === n[c]) { i++, c++; continue; } for (; t[s - 1] === n[o - 1]; ) s--, o--; if (s === i) { const f = o < r ? c ? n[c - 1].nextSibling : n[o - c] : l; for (; c < o; ) e.insertBefore(n[c++], f); } else if (o === c) for (; i < s; ) (!a || !a.has(t[i])) && t[i].remove(), i++; else if (t[i] === n[o - 1] && n[c] === t[s - 1]) { const f = t[--s].nextSibling; e.insertBefore(n[c++], t[i++].nextSibling), e.insertBefore(n[--o], f), t[s] = n[o]; } else { if (!a) { a = /* @__PURE__ */ new Map(); let u = c; for (; u < o; ) a.set(n[u], u++); } const f = a.get(t[i]); if (f != null) if (c < f && f < o) { let u = i, d = 1, h; for (; ++u < s && u < o && !((h = a.get(t[u])) == null || h !== f + d); ) d++; if (d > f - c) { const g = t[i]; for (; c < f; ) e.insertBefore(n[c++], g); } else e.replaceChild(n[c++], t[i++]); } else i++; else t[i++].remove(); } } } const at = "_$DX_DELEGATE"; function C(e, t, n, r) { let s; const o = () => { const c = r ? document.createElementNS("http://www.w3.org/1998/Math/MathML", "template") : document.createElement("template"); return c.innerHTML = e, n ? c.content.firstChild.firstChild : r ? c.firstChild : c.content.firstChild; }, i = t ? () => R(() => document.importNode(s || (s = o()), !0)) : () => (s || (s = o())).cloneNode(!0); return i.cloneNode = i, i; } function Un(e, t = window.document) { const n = t[at] || (t[at] = /* @__PURE__ */ new Set()); for (let r = 0, s = e.length; r < s; r++) { const o = e[r]; n.has(o) || (n.add(o), t.addEventListener(o, Gn)); } } function T(e, t, n) { n == null ? e.removeAttribute(t) : e.setAttribute(t, n); } function Dn(e, t, n) { n ? e.setAttribute(t, "") : e.removeAttribute(t); } function Dt(e, t) { t == null ? e.removeAttribute("class") : e.className = t; } function Vn(e, t, n, r) { if (r) Array.isArray(n) ? (e[`$$${t}`] = n[0], e[`$$${t}Data`] = n[1]) : e[`$$${t}`] = n; else if (Array.isArray(n)) { const s = n[0]; e.addEventListener(t, n[0] = (o) => s.call(e, n[1], o)); } else e.addEventListener(t, n, typeof n != "function" && n); } function Bn(e, t, n = {}) { const r = Object.keys(t || {}), s = Object.keys(n); let o, i; for (o = 0, i = s.length; o < i; o++) { const c = s[o]; !c || c === "undefined" || t[c] || (ut(e, c, !1), delete n[c]); } for (o = 0, i = r.length; o < i; o++) { const c = r[o], l = !!t[c]; !c || c === "undefined" || n[c] === l || !l || (ut(e, c, !0), n[c] = l); } return n; } function qn(e, t, n) { if (!t) return n ? T(e, "style") : t; const r = e.style; if (typeof t == "string") return r.cssText = t; typeof n == "string" && (r.cssText = n = void 0), n || (n = {}), t || (t = {}); let s, o; for (o in n) t[o] == null && r.removeProperty(o), delete n[o]; for (o in t) s = t[o], s !== n[o] && (r.setProperty(o, s), n[o] = s); return n; } function Hn(e, t = {}, n, r) { const s = {}; return S(() => s.children = ae(e, t.children, s.children)), S(() => typeof t.ref == "function" && Qn(t.ref, e)), S(() => zn(e, t, n, !0, s, !0)), s; } function Qn(e, t, n) { return R(() => e(t, n)); } function I(e, t, n, r) { if (n !== void 0 && !r && (r = []), typeof t != "function") return ae(e, t, r, n); S((s) => ae(e, t(), s, n), r); } function zn(e, t, n, r, s = {}, o = !1) { t || (t = {}); for (const i in s) if (!(i in t)) { if (i === "children") continue; s[i] = ft(e, i, null, s[i], n, o, t); } for (const i in t) { if (i === "children") continue; const c = t[i]; s[i] = ft(e, i, c, s[i], n, o, t); } } function Kn(e) { return e.toLowerCase().replace(/-([a-z])/g, (t, n) => n.toUpperCase()); } function ut(e, t, n) { const r = t.trim().split(/\s+/); for (let s = 0, o = r.length; s < o; s++) e.classList.toggle(r[s], n); } function ft(e, t, n, r, s, o, i) { let c, l, a, f, u; if (t === "style") return qn(e, n, r); if (t === "classList") return Bn(e, n, r); if (n === r) return r; if (t === "ref") o || n(e); else if (t.slice(0, 3) === "on:") { const d = t.slice(3); r && e.removeEventListener(d, r, typeof r != "function" && r), n && e.addEventListener(d, n, typeof n != "function" && n); } else if (t.slice(0, 10) === "oncapture:") { const d = t.slice(10); r && e.removeEventListener(d, r, !0), n && e.addEventListener(d, n, !0); } else if (t.slice(0, 2) === "on") { const d = t.slice(2).toLowerCase(), h = jn.has(d); if (!h && r) { const g = Array.isArray(r) ? r[0] : r; e.removeEventListener(d, g); } (h || n) && (Vn(e, d, n, h), h && Un([d])); } else t.slice(0, 5) === "attr:" ? T(e, t.slice(5), n) : t.slice(0, 5) === "bool:" ? Dn(e, t.slice(5), n) : (u = t.slice(0, 5) === "prop:") || (a = Nn.has(t)) || (f = Mn(t, e.tagName)) || (l = On.has(t)) || (c = e.nodeName.includes("-") || "is" in i) ? (u && (t = t.slice(5), l = !0), t === "class" || t === "className" ? Dt(e, n) : c && !l && !a ? e[Kn(t)] = n : e[f || t] = n) : T(e, Ln[t] || t, n); return n; } function Gn(e) { let t = e.target; const n = `$$${e.type}`, r = e.target, s = e.currentTarget, o = (l) => Object.defineProperty(e, "target", { configurable: !0, value: l }), i = () => { const l = t[n]; if (l && !t.disabled) { const a = t[`${n}Data`]; if (a !== void 0 ? l.call(t, a, e) : l.call(t, e), e.cancelBubble) return; } return t.host && typeof t.host != "string" && !t.host._$host && t.contains(e.target) && o(t.host), !0; }, c = () => { for (; i() && (t = t._$host || t.parentNode || t.host); ) ; }; if (Object.defineProperty(e, "currentTarget", { configurable: !0, get() { return t || document; } }), e.composedPath) { const l = e.composedPath(); o(l[0]); for (let a = 0; a < l.length - 2 && (t = l[a], !!i()); a++) { if (t._$host) { t = t._$host, c(); break; } if (t.parentNode === s) break; } } else c(); o(r); } function ae(e, t, n, r, s) { for (; typeof n == "function"; ) n = n(); if (t === n) return n; const o = typeof t, i = r !== void 0; if (e = i && n[0] && n[0].parentNode || e, o === "string" || o === "number") { if (o === "number" && (t = t.toString(), t === n)) return n; if (i) { let c = n[0]; c && c.nodeType === 3 ? c.data !== t && (c.data = t) : c = document.createTextNode(t), n = W(e, n, r, c); } else n !== "" && typeof n == "string" ? n = e.firstChild.data = t : n = e.textContent = t; } else if (t == null || o === "boolean") n = W(e, n, r); else { if (o === "function") return S(() => { let c = t(); for (; typeof c == "function"; ) c = c(); n = ae(e, c, n, r); }), () => n; if (Array.isArray(t)) { const c = [], l = n && Array.isArray(n); if (Ge(c, t, n, s)) return S(() => n = ae(e, c, n, r, !0)), () => n; if (c.length === 0) { if (n = W(e, n, r), i) return n; } else l ? n.length === 0 ? dt(e, c, r) : Fn(e, n, c) : (n && W(e), dt(e, c)); n = c; } else if (t.nodeType) { if (Array.isArray(n)) { if (i) return n = W(e, n, r, t); W(e, n, null, t); } else n == null || n === "" || !e.firstChild ? e.appendChild(t) : e.replaceChild(t, e.firstChild); n = t; } } return n; } function Ge(e, t, n, r) { let s = !1; for (let o = 0, i = t.length; o < i; o++) { let c = t[o], l = n && n[e.length], a; if (!(c == null || c === !0 || c === !1)) if ((a = typeof c) == "object" && c.nodeType) e.push(c); else if (Array.isArray(c)) s = Ge(e, c, l) || s; else if (a === "function") if (r) { for (; typeof c == "function"; ) c = c(); s = Ge(e, Array.isArray(c) ? c : [c], Array.isArray(l) ? l : [l]) || s; } else e.push(c), s = !0; else { const f = String(c); l && l.nodeType === 3 && l.data === f ? e.push(l) : e.push(document.createTextNode(f)); } } return s; } function dt(e, t, n = null) { for (let r = 0, s = t.length; r < s; r++) e.insertBefore(t[r], n); } function W(e, t, n, r) { if (n === void 0) return e.textContent = ""; const s = r || document.createTextNode(""); if (t.length) { let o = !1; for (let i = t.length - 1; i >= 0; i--) { const c = t[i]; if (s !== c) { const l = c.parentNode === e; !o && !i ? l ? e.replaceChild(s, c) : e.insertBefore(s, n) : l && c.remove(); } else o = !0; } } else e.insertBefore(s, n); return [s]; } const We = Symbol("store-raw"), Y = Symbol("store-node"), F = Symbol("store-has"), Vt = Symbol("store-self"); function Bt(e) { let t = e[G]; if (!t && (Object.defineProperty(e, G, { value: t = new Proxy(e, Xn) }), !Array.isArray(e))) { const n = Object.keys(e), r = Object.getOwnPropertyDescriptors(e); for (let s = 0, o = n.length; s < o; s++) { const i = n[s]; r[i].get && Object.defineProperty(e, i, { enumerable: r[i].enumerable, get: r[i].get.bind(t) }); } } return t; } function Se(e) { let t; return e != null && typeof e == "object" && (e[G] || !(t = Object.getPrototypeOf(e)) || t === Object.prototype || Array.isArray(e)); } function ue(e, t = /* @__PURE__ */ new Set()) { let n, r, s, o; if (n = e != null && e[We]) return n; if (!Se(e) || t.has(e)) return e; if (Array.isArray(e)) { Object.isFrozen(e) ? e = e.slice(0) : t.add(e); for (let i = 0, c = e.length; i < c; i++) s = e[i], (r = ue(s, t)) !== s && (e[i] = r); } else { Object.isFrozen(e) ? e = Object.assign({}, e) : t.add(e); const i = Object.keys(e), c = Object.getOwnPropertyDescriptors(e); for (let l = 0, a = i.length; l < a; l++) o = i[l], !c[o].get && (s = e[o], (r = ue(s, t)) !== s && (e[o] = r)); } return e; } function Pe(e, t) { let n = e[t]; return n || Object.defineProperty(e, t, { value: n = /* @__PURE__ */ Object.create(null) }), n; } function fe(e, t, n) { if (e[t]) return e[t]; const [r, s] = z(n, { equals: !1, internal: !0 }); return r.$ = s, e[t] = r; } function Wn(e, t) { const n = Reflect.getOwnPropertyDescriptor(e, t); return !n || n.get || !n.configurable || t === G || t === Y || (delete n.value, delete n.writable, n.get = () => e[G][t]), n; } function qt(e) { ze() && fe(Pe(e, Y), Vt)(); } function Jn(e) { return qt(e), Reflect.ownKeys(e); } const Xn = { get(e, t, n) { if (t === We) return e; if (t === G) return n; if (t === Qe) return qt(e), n; const r = Pe(e, Y), s = r[t]; let o = s ? s() : e[t]; if (t === Y || t === F || t === "__proto__") return o; if (!s) { const i = Object.getOwnPropertyDescriptor(e, t); ze() && (typeof o != "function" || e.hasOwnProperty(t)) && !(i && i.get) && (o = fe(r, t, o)()); } return Se(o) ? Bt(o) : o; }, has(e, t) { return t === We || t === G || t === Qe || t === Y || t === F || t === "__proto__" ? !0 : (ze() && fe(Pe(e, F), t)(), t in e); }, set() { return !0; }, deleteProperty() { return !0; }, ownKeys: Jn, getOwnPropertyDescriptor: Wn }; function Ee(e, t, n, r = !1) { if (!r && e[t] === n) return; const s = e[t], o = e.length; n === void 0 ? (delete e[t], e[F] && e[F][t] && s !== void 0 && e[F][t].$()) : (e[t] = n, e[F] && e[F][t] && s === void 0 && e[F][t].$()); let i = Pe(e, Y), c; if ((c = fe(i, t, s)) && c.$(() => n), Array.isArray(e) && e.length !== o) { for (let l = e.length; l < o; l++) (c = i[l]) && c.$(); (c = fe(i, "length", o)) && c.$(e.length); } (c = i[Vt]) && c.$(); } function Ht(e, t) { const n = Object.keys(t); for (let r = 0; r < n.length; r += 1) { const s = n[r]; Ee(e, s, t[s]); } } function Yn(e, t) { if (typeof t == "function" && (t = t(e)), t = ue(t), Array.isArray(t)) { if (e === t) return; let n = 0, r = t.length; for (; n < r; n++) { const s = t[n]; e[n] !== s && Ee(e, n, s); } Ee(e, "length", r); } else Ht(e, t); } function oe(e, t, n = []) { let r, s = e; if (t.length > 1) { r = t.shift(); const i = typeof r, c = Array.isArray(e); if (Array.isArray(r)) { for (let l = 0; l < r.length; l++) oe(e, [r[l]].concat(t), n); return; } else if (c && i === "function") { for (let l = 0; l < e.length; l++) r(e[l], l) && oe(e, [l].concat(t), n); return; } else if (c && i === "object") { const { from: l = 0, to: a = e.length - 1, by: f = 1 } = r; for (let u = l; u <= a; u += f) oe(e, [u].concat(t), n); return; } else if (t.length > 1) { oe(e[r], t, [r].concat(n)); return; } s = e[r], n = [r].concat(n); } let o = t[0]; typeof o == "function" && (o = o(s, n), o === s) || r === void 0 && o == null || (o = ue(o), r === void 0 || Se(s) && Se(o) && !Array.isArray(o) ? Ht(s, o) : Ee(e, r, o)); } function Zn(...[e, t]) { const n = ue(e || {}), r = Array.isArray(n), s = Bt(n); function o(...i) { bn(() => { r && i.length === 1 ? Yn(n, i[0]) : oe(n, i); }); } return [s, o]; } const er = (e) => Math.floor(e / 1e3 / 60), tr = (e) => Math.floor(e / 1e3 % 60).toLocaleString(void 0, { minimumIntegerDigits: 2 }), nr = async (e) => new Promise((t) => setTimeout(t, e)); function rr(e, t, n) { e = e / 255, t = t / 255, n = n / 255; const r = Math.max(e, t, n), s = Math.min(e, t, n); let o = (r + s) / 2, i = 0, c = 0; if (r == s) i = 0, c = 0; else { const l = r - s; switch (c = l / (1 - Math.abs(2 * o - 1)), r) { case e: i = (t - n) / l, i = (t - n) / l % 6, i = (t - n) / l + (t < n ? 6 : 0); break; case t: i = (n - e) / l + 2; break; case n: i = (e - t) / l + 4; break; } } return i = Math.round(i * 60), c = Math.round(c * 100), o = Math.round(o * 100), [i, c, o]; } function sr(e, t, n, r, s) { return r + (e - t) * (s - r) / (n - t); } var or = (e) => typeof e == "string" ? e : e.src, ir = ({ amount: e = 3, format: t = "array", group: n = 20, sample: r = 10 } = {}) => ({ amount: e, format: t, group: n, sample: r }), cr = (e, t) => { var n = e.map((r) => { var s = Array.isArray(r) ? r : r.split(",").map(Number); return t.format === "hex" ? lr(s) : s; }); return t.amount === 1 || n.length === 1 ? n[0] : n; }, lr = (e) => "#" + e.map((t) => { var n = t.toString(16); return n.length === 1 ? "0" + n : n; }).join(""), ar = (e) => new Promise((t, n) => { var r = document.createElement("canvas"), s = r.getContext("2d"), o = new Image(); o.onload = () => { r.height = o.height, r.width = o.width, s.drawImage(o, 0, 0); var i = s.getImageData(0, 0, o.width, o.height).data; t(i); }, o.onerror = () => n(Error("Image loading failed.")), o.crossOrigin = "", o.src = e; }), ur = (e, t) => { for (var n = 4 * t.sample, r = e.length / n, s = { r: 0, g: 0, b: 0 }, o = 0; o < e.length; o += n) s.r += e[o], s.g += e[o + 1], s.b += e[o + 2]; return cr([[Math.round(s.r / r), Math.round(s.g / r), Math.round(s.b / r)]], t); }, fr = (e, t, n) => new Promise((r, s) => ar(or(t)).then((o) => r(e(o, ir(n)))).catch((o) => s(o))), dr = (e, t) => fr(ur, e, t); class Q extends Error { constructor(t, n) { super(t), this.code = n, this.name = "LastFMError"; } } class Te extends Error { constructor(t, n) { super(t), this.code = n, this.name = "MusicBrainzError"; } } class ht extends Error { constructor(t, n) { super(t), this.code = n, this.name = "CoverArtError"; } } class ee extends Error { constructor(t, n, r) { super(t), this.status = n, this.code = r, this.name = "APIError"; } } async function ge(e) { if (!e.ok) { const t = await e.json(); throw new ee(t.error, e.status); } return e.json(); } const pe = "https://lastfm-viewer-api.cloudflare-untying955.workers.dev/api/lastfm", hr = async (e, t, n) => { try { const r = `${pe}/mb-releases?track=${encodeURIComponent(e)}&artist=${encodeURIComponent(t)}${n ? `&album=${encodeURIComponent(n)}` : ""}`, s = await fetch(r); return await ge(s); } catch (r) { throw r instanceof ee ? new Te(r.message, r.code) : new Te( "Failed to fetch MusicBrainz releases", "MB_FETCH_ERROR" ); } }, gr = async (e) => { try { const t = await fetch(`${pe}/mb-release/${e}`); return await ge(t); } catch (t) { throw t instanceof ee ? new Te(t.message, t.code) : new Te( "Failed to fetch MusicBrainz release info", "MB_INFO_ERROR" ); } }, pr = async (e) => { try { const t = await fetch(`${pe}/cover-art/${e}`); return await ge(t); } catch (t) { throw t instanceof ee ? new ht(t.message, t.code) : new ht("Failed to fetch cover art", "COVER_ART_ERROR"); } }, yr = async (e, t = 5) => { try { const n = await fetch( `${pe}/user-tracks/${e}?limit=${t}` ); return await ge(n); } catch (n) { throw n instanceof ee ? new Q(n.message, n.code) : new Q( "Failed to fetch user tracks", "USER_TRACKS_ERROR" ); } }, mr = async (e, t) => { try { const n = `${pe}/track-info?track=${encodeURIComponent(e)}&artist=${encodeURIComponent(t)}`, r = await fetch(n), s = await ge(r); if (!(s.track.album && s.track.album.image[3]["#text"])) throw new Q( "No Last.fm album for this track", "NO_ALBUM_ERROR" ); return s; } catch (n) { throw n instanceof Q ? n : n instanceof ee ? new Q(n.message, n.code) : new Q("Failed to fetch track info", "TRACK_INFO_ERROR"); } }, J = /* @__PURE__ */ new Map(), br = async (e) => { var t, n, r, s; try { const o = await yr(e, 5), i = o.recenttracks.track[0]; if (!i) throw new Q( "No recent tracks found for this user", "NO_RECENT_TRACKS_ERROR" ); const c = i.name, l = J.get(`${e}-${c}`); if (l) return l; const a = i.artist["#text"], f = i && "@attr" in i && ((t = i["@attr"]) == null ? void 0 : t.nowplaying) === "true", u = o.recenttracks.track; try { const d = await mr(c, a), h = (n = d.track.album) == null ? void 0 : n.title, g = parseInt(d.track.duration), y = (r = d.track.album) == null ? void 0 : r.image[3]["#text"], p = await ne(y), P = { trackName: c, artistName: a, albumTitle: h, imageUrl: y, colors: p, nowplaying: f, pastTracks: u, duration: g }; return J.set(`${e}-${c}`, P), P; } catch (d) { d instanceof Q && d.code === "NO_ALBUM_ERROR" ? console.warn("LastFM track info fetch failed:", d.message) : console.error("LastFM track info fetch failed:", d); try { const h = await hr( c, a ); if (!h) { const y = { trackName: c, artistName: a, albumTitle: void 0, imageUrl: void 0, colors: await ne(void 0), nowplaying: f, pastTracks: u, duration: 0 }; return J.set(`${e}-${c}`, y), y; } for (const y of h) { try { const p = await gr(y.id); if (p["cover-art-archive"].front || p["cover-art-archive"].artwork || p["cover-art-archive"].back) { const $ = await pr(y.id); if (!((s = $[0]) != null && s.thumbnails[250])) continue; const v = $[0].thumbnails[250], m = await ne(v), N = { trackName: c, artistName: a, albumTitle: y.title, imageUrl: v, colors: m, nowplaying: f, pastTracks: u, duration: 0 }; return J.set(`${e}-${c}`, N), N; } } catch (p) { console.warn( `Failed to fetch cover art for release ${y.id}:`, p ); continue; } await nr(1e3); } const g = { trackName: c, artistName: a, albumTitle: void 0, imageUrl: void 0, colors: await ne(void 0), nowplaying: f, pastTracks: u, duration: 0 }; return J.set(`${e}-${c}`, g), g; } catch (h) { console.error("MusicBrainz fallback failed:", h); const g = { trackName: c, artistName: a, albumTitle: void 0, imageUrl: void 0, colors: await ne(void 0), nowplaying: f, pastTracks: u, duration: 0 }; return J.set(`${e}-${c}`, g), g; } } } catch (o) { return console.error("Failed to fetch latest track:", o), o instanceof Error ? o : new Error("Unknown error occurred"); } }, ne = async (e) => { let t = { primary: "var(--default-primary)", secondary: "var(--default-secondary)", accent: "var(--default-accent)", coverShadowColor: "var(--default-cover-shadow-color)" }; if (!e) return t; const n = await dr(e, { amount: 1, sample: 50 }), r = rr(n[0], n[1], n[2]), s = r[0], o = r[1], i = sr(r[2], 0, 100, 0, 30), c = 100 - i, l = i * 1.8, a = `hsl(${s}, ${o}%, ${i}%)`, f = `hsl(${s}, ${o}%, ${c}%)`, u = `hsl(${s}, ${o}%, ${l}%)`, d = `hsla(${s}, ${o}%, ${c}%, 0.5)`; return t = { primary: a, secondary: f, accent: u, coverShadowColor: d }, t; }, wr = ({ user: e, updateInterval: t }) => { const [n, { refetch: r }] = mn(i), [s, o] = Zn({ track: { trackName: "", artistName: "", albumTitle: "", imageUrl: void 0, nowplaying: !1, colors: { primary: "", secondary: "", accent: "", coverShadowColor: "" }, pastTracks: [], duration: 0 }, colors: void 0, loading: !0, message: void 0 }); async function i(c, { value: l }) { const a = await br(e), f = a instanceof Error ? "" : a.trackName, u = l && !(l instanceof Error) ? l.trackName : "", d = c && f == u; return a instanceof Error ? o((h) => ({ ...h, message: a.message, loading: n.loading, track: a })) : d || o((h) => ({ ...h, colors: a.colors, track: a, loading: !1 })), a; } return pn(() => { let c; const a = t ? Math.max(t, 2e3) : void 0; t && t < 2e3 && console.warn("updateInterval is too low. Using minimum allowed value of 2000ms to prevent rate limiting."), a && (c = setInterval(() => { r(); }, a)), Nt(() => { c && clearInterval(c); }); }), s; }; /** * (c) Iconify * * For the full copyright and license information, please view the license.txt * files at https://github.com/iconify/iconify * * Licensed under MIT. * * @license MIT * @version 2.3.0 */ const Qt = Object.freeze( { left: 0, top: 0, width: 16, height: 16 } ), Oe = Object.freeze({ rotate: 0, vFlip: !1, hFlip: !1 }), ye = Object.freeze({ ...Qt, ...Oe }), Je = Object.freeze({ ...ye, body: "", hidden: !1 }), vr = Object.freeze({ width: null, height: null }), zt = Object.freeze({ // Dimensions ...vr, // Transformations ...Oe }); function kr(e, t = 0) { const n = e.replace(/^-?[0-9.]*/, ""); function r(s) { for (; s < 0; ) s += 4; return s % 4; } if (n === "") { const s = parseInt(e); return isNaN(s) ? 0 : r(s); } else if (n !== e) { let s = 0; switch (n) { case "%": s = 25; break; case "deg": s = 90; } if (s) { let o = parseFloat(e.slice(0, e.length - n.length)); return isNaN(o) ? 0 : (o = o / s, o % 1 === 0 ? r(o) : 0); } } return t; } const Ar = /[\s,]+/; function _r(e, t) { t.split(Ar).forEach((n) => { switch (n.trim()) { case "horizontal": e.hFlip = !0; break; case "vertical": e.vFlip = !0; break; } }); } const Kt = { ...zt, preserveAspectRatio: "" }; function gt(e) { const t = { ...Kt }, n = (r, s) => e.getAttribute(r) || s; return t.width = n("width", null), t.height = n("height", null), t.rotate = kr(n("rotate", "")), _r(t, n("flip", "")), t.preserveAspectRatio = n("preserveAspectRatio", n("preserveaspectratio", "")), t; } function Ir(e, t) { for (const n in Kt) if (e[n] !== t[n]) return !0; return !1; } const Gt = /^[a-z0-9]+(-[a-z0-9]+)*$/, me = (e, t, n, r = "") => { const s = e.split(":"); if (e.slice(0, 1) === "@") { if (s.length < 2 || s.length > 3) return null; r = s.shift().slice(1); } if (s.length > 3 || !s.length) return null; if (s.length > 1) { const c = s.pop(), l = s.pop(), a = { // Allow provider without '@': "provider:prefix:name" provider: s.length > 0 ? s[0] : r, prefix: l, name: c }; return t && !ke(a) ? null : a; } const o = s[0], i = o.split("-"); if (i.length > 1) { const c = { provider: r, prefix: i.shift(), name: i.join("-") }; return t && !ke(c) ? null : c; } if (n && r === "") { const c = { provider: r, prefix: "", name: o }; return t && !ke(c, n) ? null : c; } return null; }, ke = (e, t) => e ? !!// Check prefix: cannot be empty, unless allowSimpleName is enabled // Check name: cannot be empty ((t && e.prefix === "" || e.prefix) && e.name) : !1; function xr(e, t) { const n = {}; !e.hFlip != !t.hFlip && (n.hFlip = !0), !e.vFlip != !t.vFlip && (n.vFlip = !0); const r = ((e.rotate || 0) + (t.rotate || 0)) % 4; return r && (n.rotate = r), n; } function pt(e, t) { const n = xr(e, t); for (const r in Je) r in Oe ? r in e && !(r in n) && (n[r] = Oe[r]) : r in t ? n[r] = t[r] : r in e && (n[r] = e[r]); return n; } function $r(e, t) { const n = e.icons, r = e.aliases || /* @__PURE__ */ Object.create(null), s = /* @__PURE__ */ Object.create(null); function o(i) { if (n[i]) return s[i] = []; if (!(i in s)) { s[i] = null; const c = r[i] && r[i].parent, l = c && o(c); l && (s[i] = [c].concat(l)); } return s[i]; } return Object.keys(n).concat(Object.keys(r)).forEach(o), s; } function Cr(e, t, n) { const r = e.icons, s = e.aliases || /* @__PURE__ */ Object.create(null); let o = {}; function i(c) { o = pt( r[c] || s[c], o ); } return i(t), n.forEach(i), pt(e, o); } function Wt(e, t) { const n = []; if (typeof e != "object" || typeof e.icons != "object") return n; e.not_found instanceof Array && e.not_found.forEach((s) => { t(s, null), n.push(s); }); const r = $r(e); for (const s in r) { const o = r[s]; o && (t(s, Cr(e, s, o)), n.push(s)); } return n; } const Sr = { provider: "", aliases: {}, not_found: {}, ...Qt }; function Be(e, t) { for (const n in t) if (n in e && typeof e[n] != typeof t[n]) return !1; return !0; } function Jt(e) { if (typeof e != "object" || e === null) return null; const t = e; if (typeof t.prefix != "string" || !e.icons || typeof e.icons != "object" || !Be(e, Sr)) return null; const n = t.icons; for (const s in n) { const o = n[s]; if ( // Name cannot be empty !s || // Must have body typeof o.body != "string" || // Check other props !Be( o, Je ) ) return null; } const r = t.aliases || /* @__PURE__ */ Object.create(null); for (const s in r) { const o = r[s], i = o.parent; if ( // Name cannot be empty !s || // Parent must be set and point to existing icon typeof i != "string" || !n[i] && !r[i] || // Check other props !Be( o, Je ) ) return null; } return t; } const Ne = /* @__PURE__ */ Object.create(null); function Pr(e, t) { return { provider: e, prefix: t, icons: /* @__PURE__ */ Object.create(null), missing: /* @__PURE__ */ new Set() }; } function V(e, t) { const n = Ne[e] || (Ne[e] = /* @__PURE__ */ Object.create(null)); return n[t] || (n[t] = Pr(e, t)); } function Xt(e, t) { return Jt(t) ? Wt(t, (n, r) => { r ? e.icons[n] = r : e.missing.add(n); }) : []; } function Er(e, t, n) { try { if (typeof n.body == "string") return e.icons[t] = { ...n }, !0; } catch { } return !1; } function Tr(e, t) { let n = []; return (typeof e == "string" ? [e] : Object.keys(Ne)).forEach((s) => { (typeof s == "string" && typeof t == "string" ? [t] : Object.keys(Ne[s] || {})).forEach((i) => { const c = V(s, i); n = n.concat( Object.keys(c.icons).map( (l) => (s !== "" ? "@" + s + ":" : "") + i + ":" + l ) ); }); }), n; } let de = !1; function Yt(e) { return typeof e == "boolean" && (de = e), de; } function he(e) { const t = typeof e == "string" ? me(e, !0, de) : e; if (t) { const n = V(t.provider, t.prefix), r = t.name; return n.icons[r] || (n.missing.has(r) ? null : void 0); } } function Zt(e, t) { const n = me(e, !0, de); if (!n) return !1; const r = V(n.provider, n.prefix); return t ? Er(r, n.name, t) : (r.missing.add(n.name), !0); } function yt(e, t) { if (typeof e != "object") return !1; if (typeof t != "string" && (t = e.provider || ""), de && !t && !e.prefix) { let s = !1; return Jt(e) && (e.prefix = "", Wt(e, (o, i) => { Zt(o, i) && (s = !0); })), s; } const n = e.prefix; if (!ke({ prefix: n, name: "a" })) return !1; const r = V(t, n); return !!Xt(r, e); } function mt(e) { return !!he(e); } function Or(e) { const t = he(e); return t && { ...ye, ...t }; } function Nr(e) { const t = { loaded: [], missing: [], pending: [] }, n = /* @__PURE__ */ Object.create(null); e.sort((s, o) => s.provider !== o.provider ? s.provider.localeCompare(o.provider) : s.prefix !== o.prefix ? s.prefix.localeCompare(o.prefix) : s.name.localeCompare(o.name)); let r = { provider: "", prefix: "", name: "" }; return e.forEach((s) => { if (r.name === s.name && r.prefix === s.prefix && r.provider === s.provider) return; r = s; const o = s.provider, i = s.prefix, c = s.name, l = n[o] || (n[o] = /* @__PURE__ */ Object.create(null)), a = l[i] || (l[i] = V(o, i)); let f; c in a.icons ? f = t.loaded : i === "" || a.missing.has(c) ? f = t.missing : f = t.pending; const u = { provider: o, prefix: i, name: c }; f.push(u); }), t; } function en(e, t) { e.forEach((n) => { const r = n.loaderCallbacks; r && (n.loaderCallbacks = r.filter((s) => s.id !== t)); }); } function Lr(e) { e.pendingCallbacksFlag || (e.pendingCallbacksFlag = !0, setTimeout(() => { e.pendingCallbacksFlag = !1; const t = e.loaderCallbacks ? e.loaderCallbacks.slice(0) : []; if (!t.length) return; let n = !1; const r = e.provider, s = e.prefix; t.forEach((o) => { const i = o.icons, c = i.pending.length; i.pending = i.pending.filter((l) => { if (l.prefix !== s) return !0; const a = l.name; if (e.icons[a]) i.loaded.push({ provider: r, prefix: s, name: a }); else if (e.missing.has(a)) i.missing.push({ provider: r, prefix: s, name: a }); else return n = !0, !0; return !1; }), i.pending.length !== c && (n || en([e], o.id), o.callback( i.loaded.slice(0), i.missing.slice(0), i.pending.slice(0), o.abort )); }); })); } let Rr = 0; function Mr(e, t, n) { const r = Rr++, s = en.bind(null, n, r); if (!t.pending.length) return s; const o = { id: r, icons: t, callback: e, abort: s }; return n.forEach((i) => { (i.loaderCallbacks || (i.loaderCallbacks = [])).push(o); }), s; } const Xe = /* @__PURE__ */ Object.create(null); function bt(e, t) { Xe[e] = t; } function Ye(e) { return Xe[e] || Xe[""]; } function jr(e, t = !0, n = !1) { const r = []; return e.forEach((s) => { const o = typeof s == "string" ? me(s, t, n) : s; o && r.push(o); }), r; } var Fr = { resources: [], index: 0, timeout: 2e3, rotate: 750, random: !1, dataAfterTimeout: !1 }; function Ur(e, t, n, r) { const s = e.resources.length, o = e.random ? Math.floor(Math.random() * s) : e.index; let i; if (e.random) { let b = e.resources.slice(0); for (i = []; b.length > 1; ) { const E = Math.floor(Math.random() * b.length); i.push(b[E]), b = b.slice(0, E).concat(b.slice(E + 1)); } i = i.concat(b); } else i = e.resources.slice(o).concat(e.resources.slice(0, o)); const c = Date.now(); let l = "pending", a = 0, f, u = null, d = [], h = []; typeof r == "function" && h.push(r); function g() { u && (clearTimeout(u), u = null); } function y() { l === "pending" && (l = "aborted"), g(), d.forEach((b) => { b.status === "pending" && (b.status = "aborted"); }), d = []; } function p(b, E) { E && (h = []), typeof b == "function" && h.push(b); } function P() { return { startTime: c, payload: t, status: l, queriesSent: a, queriesPending: d.length, subscribe: p, abort: y }; } function $() { l = "failed", h.forEach((b) => { b(void 0, f); }); } function v() { d.forEach((b) => { b.status === "pending" && (b.status = "aborted"); }), d = []; } function m(b, E, q) { const A = E !== "success"; switch (d = d.filter((k) => k !== b), l) { case "pending": break; case "failed": if (A || !e.dataAfterTimeout) return; break; default: return; } if (E === "abort") { f = q, $(); return; } if (A) { f = q, d.length || (i.length ? N() : $()); return; } if (g(), v(), !e.random) { const k = e.resources.indexOf(b.resource); k !== -1 && k !== e.index && (e.index = k); } l = "completed", h.forEach((k) => { k(q); }); } function N() { if (l !== "pending") return; g(); const b = i.shift(); if (b === void 0) { if (d.length) { u = setTimeout(() => { g(), l === "pending" && (v(), $()); }, e.timeout); return; } $(); return; } const E = { status: "pending", resource: b, callback: (q, A) => { m(E, q, A); } }; d.push(E), a++, u = setTimeout(N, e.rotate), n(b, t, E.callback); } return setTimeout(N), P; } function tn(e) { const t = { ...Fr, ...e }; let n = []; function r() { n = n.filter((c) => c().status === "pending"); } function s(c, l, a) { const f = Ur( t, c, l, (u, d) => { r(), a && a(u, d); } ); return n.push(f), f; } function o(c) { return n.find((l) => c(l)) || null; } return { query: s, find: o, setIndex: (c) => { t.index = c; }, getIndex: () => t.index, cleanup: r }; } function rt(e) { let t; if (typeof e.resources == "string") t = [e.resources]; else if (t = e.resources, !(t instanceof Array) || !t.length) return null; return { // API hosts resources: t, // R