@juliantanx/aiusage 1.5.2 → 1.5.3
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/README.md +3 -3
- package/dist/index.js +1037 -305
- package/dist/web/_app/immutable/assets/7.CahA9iix.css +1 -0
- package/dist/web/_app/immutable/assets/_page.CahA9iix.css +1 -0
- package/dist/web/_app/immutable/chunks/{ToolSelector.DTPGX4zP.js → ToolSelector.0iI1cXVj.js} +2 -2
- package/dist/web/_app/immutable/chunks/api.DVLAklIn.js +1 -0
- package/dist/web/_app/immutable/chunks/entry.DhBBmiYe.js +3 -0
- package/dist/web/_app/immutable/chunks/i18n.DApJIXOT.js +1 -0
- package/dist/web/_app/immutable/chunks/{index.66Vu9Sio.js → index.BfJlbjrK.js} +1 -1
- package/dist/web/_app/immutable/chunks/{stores.CK2Vof2m.js → stores.CSRSkpU3.js} +1 -1
- package/dist/web/_app/immutable/entry/{app.BzFxp-0D.js → app.C_5glR-X.js} +2 -2
- package/dist/web/_app/immutable/entry/start.B0qYhR-d.js +1 -0
- package/dist/web/_app/immutable/nodes/{0.5419U2xS.js → 0.DJfx41KV.js} +2 -2
- package/dist/web/_app/immutable/nodes/{1.C4em9nwH.js → 1.BLZj3WNW.js} +1 -1
- package/dist/web/_app/immutable/nodes/{10.DGXLHPeN.js → 10.CnTuhaua.js} +1 -1
- package/dist/web/_app/immutable/nodes/{11.SDWfdWaC.js → 11.Bu1W8Jx8.js} +1 -1
- package/dist/web/_app/immutable/nodes/12.BCT8Dv1G.js +1 -0
- package/dist/web/_app/immutable/nodes/{13.9M-J-sT0.js → 13.Cu-n0wZ9.js} +1 -1
- package/dist/web/_app/immutable/nodes/{14.F_F2PTIe.js → 14.u96Ucsue.js} +1 -1
- package/dist/web/_app/immutable/nodes/{15.B0ylahpi.js → 15.CMhy_NGl.js} +1 -1
- package/dist/web/_app/immutable/nodes/{2.oTDdkLn9.js → 2.JQynNxpe.js} +1 -1
- package/dist/web/_app/immutable/nodes/{3.Oyghjrgn.js → 3.Chtgl9hh.js} +1 -1
- package/dist/web/_app/immutable/nodes/{4.DiPBEiKy.js → 4.BIau4H47.js} +1 -1
- package/dist/web/_app/immutable/nodes/{5.CtE-oF5k.js → 5.DtYG5yJy.js} +1 -1
- package/dist/web/_app/immutable/nodes/{6.tVPvf7jD.js → 6.B-ud4zCO.js} +1 -1
- package/dist/web/_app/immutable/nodes/7.7Fm6yzqA.js +9 -0
- package/dist/web/_app/immutable/nodes/{8.DJsWN3X2.js → 8.Chp3dlzK.js} +1 -1
- package/dist/web/_app/immutable/nodes/{9.30YXO0yd.js → 9.PMJrdCxq.js} +1 -1
- package/dist/web/_app/version.json +1 -1
- package/dist/web/index.html +7 -7
- package/package.json +3 -3
- package/dist/web/_app/immutable/assets/7.oxd6PqWk.css +0 -1
- package/dist/web/_app/immutable/assets/_page.oxd6PqWk.css +0 -1
- package/dist/web/_app/immutable/chunks/api.DC92Gfvo.js +0 -1
- package/dist/web/_app/immutable/chunks/entry.Cxpjn2cB.js +0 -3
- package/dist/web/_app/immutable/chunks/i18n.yxU9Ieh-.js +0 -1
- package/dist/web/_app/immutable/entry/start.C2M6huNJ.js +0 -1
- package/dist/web/_app/immutable/nodes/12.B5loVhie.js +0 -1
- package/dist/web/_app/immutable/nodes/7.CAfC8ItM.js +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as he,c as L}from"../chunks/scheduler.DsWd5xup.js";import{S as ue,i as _e,d as i,k as Q,l as W,m as X,s as R,a as y,b as c,n as Y,o as D,p as pe,g as S,c as g,e as E,f as V,q as Z,r as ae,j as A,h as k,t as N,u as x,v as me,x as se}from"../chunks/index.
|
|
1
|
+
import{s as he,c as L}from"../chunks/scheduler.DsWd5xup.js";import{S as ue,i as _e,d as i,k as Q,l as W,m as X,s as R,a as y,b as c,n as Y,o as D,p as pe,g as S,c as g,e as E,f as V,q as Z,r as ae,j as A,h as k,t as N,u as x,v as me,x as se}from"../chunks/index.BfJlbjrK.js";import{w as de,e as ne}from"../chunks/api.DVLAklIn.js";import{b as oe,f as re,s as ve,a as ge,d as Ee}from"../chunks/stores.BSI_cVy6.js";import{t as ke}from"../chunks/i18n.DApJIXOT.js";import{D as we,a as be,T as De}from"../chunks/ToolSelector.0iI1cXVj.js";function ce(n,e,a){const t=n.slice();return t[8]=e[a],t[10]=a,t}function Pe(n){let e,a=ne(n[0].projects),t=[];for(let l=0;l<a.length;l+=1)t[l]=fe(ce(n,a,l));return{c(){e=k("div");for(let l=0;l<t.length;l+=1)t[l].c();this.h()},l(l){e=g(l,"DIV",{class:!0});var o=E(e);for(let r=0;r<t.length;r+=1)t[r].l(o);o.forEach(i),this.h()},h(){D(e,"class","ranking svelte-13wlcic")},m(l,o){y(l,e,o);for(let r=0;r<t.length;r+=1)t[r]&&t[r].m(e,null)},p(l,o){if(o&1){a=ne(l[0].projects);let r;for(r=0;r<a.length;r+=1){const f=ce(l,a,r);t[r]?t[r].p(f,o):(t[r]=fe(f),t[r].c(),t[r].m(e,null))}for(;r<t.length;r+=1)t[r].d(1);t.length=a.length}},d(l){l&&i(e),me(t,l)}}}function je(n){let e,a,t=n[3]("projects.noData")+"",l,o,r,f=n[3]("projects.noDataHint")+"",m;return{c(){e=k("div"),a=k("h2"),l=N(t),o=A(),r=k("p"),m=N(f),this.h()},l(h){e=g(h,"DIV",{class:!0});var d=E(e);a=g(d,"H2",{});var u=E(a);l=V(u,t),u.forEach(i),o=S(d),r=g(d,"P",{});var w=E(r);m=V(w,f),w.forEach(i),d.forEach(i),this.h()},h(){D(e,"class","state-msg")},m(h,d){y(h,e,d),c(e,a),c(a,l),c(e,o),c(e,r),c(r,m)},p(h,d){d&8&&t!==(t=h[3]("projects.noData")+"")&&R(l,t),d&8&&f!==(f=h[3]("projects.noDataHint")+"")&&R(m,f)},d(h){h&&i(e)}}}function Ie(n){let e,a;return{c(){e=k("div"),a=N(n[1]),this.h()},l(t){e=g(t,"DIV",{class:!0});var l=E(e);a=V(l,n[1]),l.forEach(i),this.h()},h(){D(e,"class","state-msg error")},m(t,l){y(t,e,l),c(e,a)},p(t,l){l&2&&R(a,t[1])},d(t){t&&i(e)}}}function Se(n){let e,a=n[3]("common.loading")+"",t;return{c(){e=k("div"),t=N(a),this.h()},l(l){e=g(l,"DIV",{class:!0});var o=E(e);t=V(o,a),o.forEach(i),this.h()},h(){D(e,"class","state-msg")},m(l,o){y(l,e,o),c(e,t)},p(l,o){o&8&&a!==(a=l[3]("common.loading")+"")&&R(t,a)},d(l){l&&i(e)}}}function ie(n){let e,a=n[8].fullPath+"",t;return{c(){e=k("span"),t=N(a),this.h()},l(l){e=g(l,"SPAN",{class:!0});var o=E(e);t=V(o,a),o.forEach(i),this.h()},h(){D(e,"class","path svelte-13wlcic")},m(l,o){y(l,e,o),c(e,t)},p(l,o){o&1&&a!==(a=l[8].fullPath+"")&&R(t,a)},d(l){l&&i(e)}}}function fe(n){let e,a,t,l=n[10]+1+"",o,r,f,m=n[8].name+"",h,d,u,w,j,H,F,q,$=oe(n[8].tokens)+"",U,C,I,B=re(n[8].cost)+"",z,P,s,v=n[8].percentage.toFixed(1)+"",T,G,J,_=n[8].fullPath&&n[8].fullPath!==n[8].name&&ie(n);return{c(){e=k("div"),a=k("span"),t=N("#"),o=N(l),r=A(),f=k("span"),h=N(m),d=A(),_&&_.c(),w=A(),j=k("div"),H=k("div"),F=A(),q=k("span"),U=N($),C=A(),I=k("span"),z=N(B),P=A(),s=k("span"),T=N(v),G=N("%"),J=A(),this.h()},l(b){e=g(b,"DIV",{class:!0});var p=E(e);a=g(p,"SPAN",{class:!0});var M=E(a);t=V(M,"#"),o=V(M,l),M.forEach(i),r=S(p),f=g(p,"SPAN",{class:!0,title:!0});var K=E(f);h=V(K,m),d=S(K),_&&_.l(K),K.forEach(i),w=S(p),j=g(p,"DIV",{class:!0});var ee=E(j);H=g(ee,"DIV",{class:!0,style:!0}),E(H).forEach(i),ee.forEach(i),F=S(p),q=g(p,"SPAN",{class:!0});var te=E(q);U=V(te,$),te.forEach(i),C=S(p),I=g(p,"SPAN",{class:!0});var le=E(I);z=V(le,B),le.forEach(i),P=S(p),s=g(p,"SPAN",{class:!0});var O=E(s);T=V(O,v),G=V(O,"%"),O.forEach(i),J=S(p),p.forEach(i),this.h()},h(){D(a,"class","rank mono svelte-13wlcic"),D(f,"class","name mono svelte-13wlcic"),D(f,"title",u=n[8].fullPath||n[8].name),D(H,"class","bar svelte-13wlcic"),se(H,"width",n[8].percentage+"%"),D(j,"class","bar-container svelte-13wlcic"),D(q,"class","tokens mono svelte-13wlcic"),D(I,"class","cost mono accent svelte-13wlcic"),D(s,"class","pct mono svelte-13wlcic"),D(e,"class","row animate-row svelte-13wlcic")},m(b,p){y(b,e,p),c(e,a),c(a,t),c(a,o),c(e,r),c(e,f),c(f,h),c(f,d),_&&_.m(f,null),c(e,w),c(e,j),c(j,H),c(e,F),c(e,q),c(q,U),c(e,C),c(e,I),c(I,z),c(e,P),c(e,s),c(s,T),c(s,G),c(e,J)},p(b,p){p&1&&m!==(m=b[8].name+"")&&R(h,m),b[8].fullPath&&b[8].fullPath!==b[8].name?_?_.p(b,p):(_=ie(b),_.c(),_.m(f,null)):_&&(_.d(1),_=null),p&1&&u!==(u=b[8].fullPath||b[8].name)&&D(f,"title",u),p&1&&se(H,"width",b[8].percentage+"%"),p&1&&$!==($=oe(b[8].tokens)+"")&&R(U,$),p&1&&B!==(B=re(b[8].cost)+"")&&R(z,B),p&1&&v!==(v=b[8].percentage.toFixed(1)+"")&&R(T,v)},d(b){b&&i(e),_&&_.d()}}}function Ve(n){let e,a,t,l,o=n[3]("projects.title")+"",r,f,m,h=n[3]("projects.desc")+"",d,u,w,j,H,F,q,$,U,C,I;document.title=e=n[3]("projects.title")+" — AIUsage",j=new we({}),F=new be({}),$=new De({});function B(s,v){var T;return s[2]?Se:s[1]?Ie:(T=s[0])!=null&&T.projects.length?Pe:je}let z=B(n),P=z(n);return{c(){a=A(),t=k("div"),l=k("h1"),r=N(o),f=A(),m=k("p"),d=N(h),u=A(),w=k("div"),x(j.$$.fragment),H=A(),x(F.$$.fragment),q=A(),x($.$$.fragment),U=A(),P.c(),C=ae(),this.h()},l(s){pe("svelte-11fw4x1",document.head).forEach(i),a=S(s),t=g(s,"DIV",{class:!0});var T=E(t);l=g(T,"H1",{});var G=E(l);r=V(G,o),G.forEach(i),f=S(T),m=g(T,"P",{});var J=E(m);d=V(J,h),J.forEach(i),T.forEach(i),u=S(s),w=g(s,"DIV",{class:!0});var _=E(w);Z(j.$$.fragment,_),H=S(_),Z(F.$$.fragment,_),q=S(_),Z($.$$.fragment,_),_.forEach(i),U=S(s),P.l(s),C=ae(),this.h()},h(){D(t,"class","page-header"),D(w,"class","filter-bar")},m(s,v){y(s,a,v),y(s,t,v),c(t,l),c(l,r),c(t,f),c(t,m),c(m,d),y(s,u,v),y(s,w,v),Y(j,w,null),c(w,H),Y(F,w,null),c(w,q),Y($,w,null),y(s,U,v),P.m(s,v),y(s,C,v),I=!0},p(s,[v]){(!I||v&8)&&e!==(e=s[3]("projects.title")+" — AIUsage")&&(document.title=e),(!I||v&8)&&o!==(o=s[3]("projects.title")+"")&&R(r,o),(!I||v&8)&&h!==(h=s[3]("projects.desc")+"")&&R(d,h),z===(z=B(s))&&P?P.p(s,v):(P.d(1),P=z(s),P&&(P.c(),P.m(C.parentNode,C)))},i(s){I||(X(j.$$.fragment,s),X(F.$$.fragment,s),X($.$$.fragment,s),I=!0)},o(s){W(j.$$.fragment,s),W(F.$$.fragment,s),W($.$$.fragment,s),I=!1},d(s){s&&(i(a),i(t),i(u),i(w),i(U),i(C)),Q(j),Q(F),Q($),P.d(s)}}}function Ae(n,e,a){let t,l,o,r;L(n,ve,u=>a(4,t=u)),L(n,ge,u=>a(5,l=u)),L(n,Ee,u=>a(6,o=u)),L(n,ke,u=>a(3,r=u));let f=null,m=null,h=!0;async function d(){a(2,h=!0),a(1,m=null);try{a(0,f=await de({...o,device:l,tool:t}))}catch(u){a(1,m=u instanceof Error?u.message:"Failed to load data"),a(0,f=null)}finally{a(2,h=!1)}}return n.$$.update=()=>{n.$$.dirty&112&&d()},[f,m,h,r,t,l,o]}class Re extends ue{constructor(e){super(),_e(this,e,Ae,Ve,he,{})}}export{Re as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as ve,n as ee,c as he,o as _e}from"../chunks/scheduler.DsWd5xup.js";import{S as pe,i as me,d,s as M,z as te,a as N,b as c,w as be,o as E,p as ke,g as P,c as h,e as b,f as C,C as B,r as G,j as w,h as _,t as S,x as O}from"../chunks/index.66Vu9Sio.js";import{p as ge,e as Q,h as J,i as X}from"../chunks/api.DC92Gfvo.js";import{t as Ee}from"../chunks/i18n.yxU9Ieh-.js";function le(u,e,t){const a=u.slice();return a[13]=e[t],a}function se(u,e,t){const a=u.slice();return a[13]=e[t],a}function ae(u,e,t){const a=u.slice();a[18]=e[t];const i=Math.min(Math.round(a[18].utilization),100);a[19]=i;const l=Me(a[18].resetsAt);return a[20]=l,a}function qe(u){let e,t,a=u[5].length>0&&ie(u),i=u[4].length>0&&fe(u);return{c(){a&&a.c(),e=w(),i&&i.c(),t=G()},l(l){a&&a.l(l),e=P(l),i&&i.l(l),t=G()},m(l,s){a&&a.m(l,s),N(l,e,s),i&&i.m(l,s),N(l,t,s)},p(l,s){l[5].length>0?a?a.p(l,s):(a=ie(l),a.c(),a.m(e.parentNode,e)):a&&(a.d(1),a=null),l[4].length>0?i?i.p(l,s):(i=fe(l),i.c(),i.m(t.parentNode,t)):i&&(i.d(1),i=null)},d(l){l&&(d(e),d(t)),a&&a.d(l),i&&i.d(l)}}}function De(u){let e,t,a=u[6]("common.noData")+"",i;return{c(){e=_("div"),t=_("p"),i=S(a),this.h()},l(l){e=h(l,"DIV",{class:!0});var s=b(e);t=h(s,"P",{});var o=b(t);i=C(o,a),o.forEach(d),s.forEach(d),this.h()},h(){E(e,"class","state-msg")},m(l,s){N(l,e,s),c(e,t),c(t,i)},p(l,s){s&64&&a!==(a=l[6]("common.noData")+"")&&M(i,a)},d(l){l&&d(e)}}}function Ie(u){let e,t,a;return{c(){e=_("div"),t=_("p"),a=S(u[2]),this.h()},l(i){e=h(i,"DIV",{class:!0});var l=b(e);t=h(l,"P",{});var s=b(t);a=C(s,u[2]),s.forEach(d),l.forEach(d),this.h()},h(){E(e,"class","state-msg error")},m(i,l){N(i,e,l),c(e,t),c(t,a)},p(i,l){l&4&&M(a,i[2])},d(i){i&&d(e)}}}function Ve(u){let e,t,a=u[6]("common.loading")+"",i;return{c(){e=_("div"),t=_("p"),i=S(a),this.h()},l(l){e=h(l,"DIV",{class:!0});var s=b(e);t=h(s,"P",{});var o=b(t);i=C(o,a),o.forEach(d),s.forEach(d),this.h()},h(){E(e,"class","state-msg")},m(l,s){N(l,e,s),c(e,t),c(t,i)},p(l,s){s&64&&a!==(a=l[6]("common.loading")+"")&&M(i,a)},d(l){l&&d(e)}}}function ie(u){let e,t=[],a=new Map,i=Q(u[5]);const l=s=>s[13].tool;for(let s=0;s<i.length;s+=1){let o=se(u,i,s),r=l(o);a.set(r,t[s]=ue(r,o))}return{c(){e=_("div");for(let s=0;s<t.length;s+=1)t[s].c();this.h()},l(s){e=h(s,"DIV",{class:!0});var o=b(e);for(let r=0;r<t.length;r+=1)t[r].l(o);o.forEach(d),this.h()},h(){E(e,"class","quota-grid svelte-1ipbcl2")},m(s,o){N(s,e,o);for(let r=0;r<t.length;r+=1)t[r]&&t[r].m(e,null)},p(s,o){o&1888&&(i=Q(s[5]),t=J(t,o,l,1,s,i,a,e,X,ue,null,se))},d(s){s&&d(e);for(let o=0;o<t.length;o+=1)t[o].d()}}}function ye(u){let e,t=[],a=new Map,i=Q(u[13].tiers);const l=s=>s[18].name;for(let s=0;s<i.length;s+=1){let o=ae(u,i,s),r=l(o);a.set(r,t[s]=oe(r,o))}return{c(){e=_("div");for(let s=0;s<t.length;s+=1)t[s].c();this.h()},l(s){e=h(s,"DIV",{class:!0});var o=b(e);for(let r=0;r<t.length;r+=1)t[r].l(o);o.forEach(d),this.h()},h(){E(e,"class","tiers svelte-1ipbcl2")},m(s,o){N(s,e,o);for(let r=0;r<t.length;r+=1)t[r]&&t[r].m(e,null)},p(s,o){o&288&&(i=Q(s[13].tiers),t=J(t,o,l,1,s,i,a,e,X,oe,null,ae))},d(s){s&&d(e);for(let o=0;o<t.length;o+=1)t[o].d()}}}function Ce(u){let e,t,a="○",i,l,s=u[6]("quotas.noTiers")+"",o;return{c(){e=_("div"),t=_("span"),t.textContent=a,i=w(),l=_("div"),o=S(s),this.h()},l(r){e=h(r,"DIV",{class:!0});var p=b(e);t=h(p,"SPAN",{class:!0,"data-svelte-h":!0}),B(t)!=="svelte-1iupoui"&&(t.textContent=a),i=P(p),l=h(p,"DIV",{class:!0});var n=b(l);o=C(n,s),n.forEach(d),p.forEach(d),this.h()},h(){E(t,"class","status-icon svelte-1ipbcl2"),E(l,"class","status-title svelte-1ipbcl2"),E(e,"class","status-msg status-neutral svelte-1ipbcl2")},m(r,p){N(r,e,p),c(e,t),c(e,i),c(e,l),c(l,o)},p(r,p){p&64&&s!==(s=r[6]("quotas.noTiers")+"")&&M(o,s)},d(r){r&&d(e)}}}function Se(u){let e,t,a="✕",i,l,s,o=u[6]("quotas.queryFailed")+"",r,p,n=u[13].error&&re(u);return{c(){e=_("div"),t=_("span"),t.textContent=a,i=w(),l=_("div"),s=_("div"),r=S(o),p=w(),n&&n.c(),this.h()},l(f){e=h(f,"DIV",{class:!0});var v=b(e);t=h(v,"SPAN",{class:!0,"data-svelte-h":!0}),B(t)!=="svelte-1cay5lc"&&(t.textContent=a),i=P(v),l=h(v,"DIV",{});var m=b(l);s=h(m,"DIV",{class:!0});var k=b(s);r=C(k,o),k.forEach(d),p=P(m),n&&n.l(m),m.forEach(d),v.forEach(d),this.h()},h(){E(t,"class","status-icon svelte-1ipbcl2"),E(s,"class","status-title svelte-1ipbcl2"),E(e,"class","status-msg status-error svelte-1ipbcl2")},m(f,v){N(f,e,v),c(e,t),c(e,i),c(e,l),c(l,s),c(s,r),c(l,p),n&&n.m(l,null)},p(f,v){v&64&&o!==(o=f[6]("quotas.queryFailed")+"")&&M(r,o),f[13].error?n?n.p(f,v):(n=re(f),n.c(),n.m(l,null)):n&&(n.d(1),n=null)},d(f){f&&d(e),n&&n.d()}}}function Ae(u){let e,t,a="✕",i,l,s,o=u[6]("quotas.queryFailed")+"",r,p,n=u[13].credentialMessage&&ce(u);return{c(){e=_("div"),t=_("span"),t.textContent=a,i=w(),l=_("div"),s=_("div"),r=S(o),p=w(),n&&n.c(),this.h()},l(f){e=h(f,"DIV",{class:!0});var v=b(e);t=h(v,"SPAN",{class:!0,"data-svelte-h":!0}),B(t)!=="svelte-1cay5lc"&&(t.textContent=a),i=P(v),l=h(v,"DIV",{});var m=b(l);s=h(m,"DIV",{class:!0});var k=b(s);r=C(k,o),k.forEach(d),p=P(m),n&&n.l(m),m.forEach(d),v.forEach(d),this.h()},h(){E(t,"class","status-icon svelte-1ipbcl2"),E(s,"class","status-title svelte-1ipbcl2"),E(e,"class","status-msg status-error svelte-1ipbcl2")},m(f,v){N(f,e,v),c(e,t),c(e,i),c(e,l),c(l,s),c(s,r),c(l,p),n&&n.m(l,null)},p(f,v){v&64&&o!==(o=f[6]("quotas.queryFailed")+"")&&M(r,o),f[13].credentialMessage?n?n.p(f,v):(n=ce(f),n.c(),n.m(l,null)):n&&(n.d(1),n=null)},d(f){f&&d(e),n&&n.d()}}}function Pe(u){let e,t,a="⚠",i,l,s,o=u[6]("quotas.expired")+"",r,p,n,f=u[6]("quotas.expiredHint")+"",v;return{c(){e=_("div"),t=_("span"),t.textContent=a,i=w(),l=_("div"),s=_("div"),r=S(o),p=w(),n=_("div"),v=S(f),this.h()},l(m){e=h(m,"DIV",{class:!0});var k=b(e);t=h(k,"SPAN",{class:!0,"data-svelte-h":!0}),B(t)!=="svelte-ksyvhl"&&(t.textContent=a),i=P(k),l=h(k,"DIV",{});var V=b(l);s=h(V,"DIV",{class:!0});var I=b(s);r=C(I,o),I.forEach(d),p=P(V),n=h(V,"DIV",{class:!0});var A=b(n);v=C(A,f),A.forEach(d),V.forEach(d),k.forEach(d),this.h()},h(){E(t,"class","status-icon svelte-1ipbcl2"),E(s,"class","status-title svelte-1ipbcl2"),E(n,"class","status-hint svelte-1ipbcl2"),E(e,"class","status-msg status-warn svelte-1ipbcl2")},m(m,k){N(m,e,k),c(e,t),c(e,i),c(e,l),c(l,s),c(s,r),c(l,p),c(l,n),c(n,v)},p(m,k){k&64&&o!==(o=m[6]("quotas.expired")+"")&&M(r,o),k&64&&f!==(f=m[6]("quotas.expiredHint")+"")&&M(v,f)},d(m){m&&d(e)}}}function ne(u){let e,t,a=u[20]+"",i;return{c(){e=_("span"),t=S("↻ "),i=S(a),this.h()},l(l){e=h(l,"SPAN",{class:!0});var s=b(e);t=C(s,"↻ "),i=C(s,a),s.forEach(d),this.h()},h(){E(e,"class","tier-reset svelte-1ipbcl2")},m(l,s){N(l,e,s),c(e,t),c(e,i)},p(l,s){s&32&&a!==(a=l[20]+"")&&M(i,a)},d(l){l&&d(e)}}}function oe(u,e){let t,a,i,l=e[8](e[18].name)+"",s,o,r,p,n,f,v,m,k=e[19]+"",V,I,A,g=e[20]&&ne(e);return{key:u,first:null,c(){t=_("div"),a=_("div"),i=_("span"),s=S(l),o=w(),g&&g.c(),r=w(),p=_("div"),n=_("div"),f=_("div"),v=w(),m=_("span"),V=S(k),I=S("%"),A=w(),this.h()},l(q){t=h(q,"DIV",{class:!0});var D=b(t);a=h(D,"DIV",{class:!0});var L=b(a);i=h(L,"SPAN",{class:!0});var z=b(i);s=C(z,l),z.forEach(d),o=P(L),g&&g.l(L),L.forEach(d),r=P(D),p=h(D,"DIV",{class:!0});var H=b(p);n=h(H,"DIV",{class:!0});var j=b(n);f=h(j,"DIV",{class:!0,style:!0}),b(f).forEach(d),j.forEach(d),v=P(H),m=h(H,"SPAN",{class:!0,style:!0});var F=b(m);V=C(F,k),I=C(F,"%"),F.forEach(d),H.forEach(d),A=P(D),D.forEach(d),this.h()},h(){E(i,"class","tier-name svelte-1ipbcl2"),E(a,"class","tier-label svelte-1ipbcl2"),E(f,"class","tier-fill svelte-1ipbcl2"),O(f,"width",e[19]+"%"),O(f,"background",R(e[18].utilization)),E(n,"class","tier-bar svelte-1ipbcl2"),E(m,"class","tier-pct svelte-1ipbcl2"),O(m,"color",R(e[18].utilization)),E(p,"class","tier-bar-wrap svelte-1ipbcl2"),E(t,"class","tier-row svelte-1ipbcl2"),this.first=t},m(q,D){N(q,t,D),c(t,a),c(a,i),c(i,s),c(a,o),g&&g.m(a,null),c(t,r),c(t,p),c(p,n),c(n,f),c(p,v),c(p,m),c(m,V),c(m,I),c(t,A)},p(q,D){e=q,D&32&&l!==(l=e[8](e[18].name)+"")&&M(s,l),e[20]?g?g.p(e,D):(g=ne(e),g.c(),g.m(a,null)):g&&(g.d(1),g=null),D&32&&O(f,"width",e[19]+"%"),D&32&&O(f,"background",R(e[18].utilization)),D&32&&k!==(k=e[19]+"")&&M(V,k),D&32&&O(m,"color",R(e[18].utilization))},d(q){q&&d(t),g&&g.d()}}}function re(u){let e,t=u[13].error+"",a;return{c(){e=_("div"),a=S(t),this.h()},l(i){e=h(i,"DIV",{class:!0});var l=b(e);a=C(l,t),l.forEach(d),this.h()},h(){E(e,"class","status-hint svelte-1ipbcl2")},m(i,l){N(i,e,l),c(e,a)},p(i,l){l&32&&t!==(t=i[13].error+"")&&M(a,t)},d(i){i&&d(e)}}}function ce(u){let e,t=u[13].credentialMessage+"",a;return{c(){e=_("div"),a=S(t),this.h()},l(i){e=h(i,"DIV",{class:!0});var l=b(e);a=C(l,t),l.forEach(d),this.h()},h(){E(e,"class","status-hint svelte-1ipbcl2")},m(i,l){N(i,e,l),c(e,a)},p(i,l){l&32&&t!==(t=i[13].credentialMessage+"")&&M(a,t)},d(i){i&&d(e)}}}function ue(u,e){let t,a,i,l=e[9](e[13].tool)+"",s,o,r,p=e[6]("quotas.lastUpdated")+"",n,f,v=e[10](e[13].queriedAt)+"",m,k,V;function I(q,D){return q[13].credentialStatus==="expired"&&!q[13].success?Pe:q[13].credentialStatus==="parse_error"?Ae:q[13].success?q[13].tiers.length===0?Ce:ye:Se}let A=I(e),g=A(e);return{key:u,first:null,c(){t=_("div"),a=_("div"),i=_("span"),s=S(l),o=w(),r=_("span"),n=S(p),f=S(": "),m=S(v),k=w(),g.c(),V=w(),this.h()},l(q){t=h(q,"DIV",{class:!0});var D=b(t);a=h(D,"DIV",{class:!0});var L=b(a);i=h(L,"SPAN",{class:!0});var z=b(i);s=C(z,l),z.forEach(d),o=P(L),r=h(L,"SPAN",{class:!0});var H=b(r);n=C(H,p),f=C(H,": "),m=C(H,v),H.forEach(d),L.forEach(d),k=P(D),g.l(D),V=P(D),D.forEach(d),this.h()},h(){E(i,"class","tool-name svelte-1ipbcl2"),E(r,"class","query-time svelte-1ipbcl2"),E(a,"class","card-header svelte-1ipbcl2"),E(t,"class","quota-card card svelte-1ipbcl2"),this.first=t},m(q,D){N(q,t,D),c(t,a),c(a,i),c(i,s),c(a,o),c(a,r),c(r,n),c(r,f),c(r,m),c(t,k),g.m(t,null),c(t,V)},p(q,D){e=q,D&32&&l!==(l=e[9](e[13].tool)+"")&&M(s,l),D&64&&p!==(p=e[6]("quotas.lastUpdated")+"")&&M(n,p),D&32&&v!==(v=e[10](e[13].queriedAt)+"")&&M(m,v),A===(A=I(e))&&g?g.p(e,D):(g.d(1),g=A(e),g&&(g.c(),g.m(t,V)))},d(q){q&&d(t),g.d()}}}function fe(u){let e,t=u[6]("common.noData")+"",a,i,l,s=[],o=new Map,r=Q(u[4]);const p=n=>n[13].tool;for(let n=0;n<r.length;n+=1){let f=le(u,r,n),v=p(f);o.set(v,s[n]=de(v,f))}return{c(){e=_("div"),a=S(t),i=w(),l=_("div");for(let n=0;n<s.length;n+=1)s[n].c();this.h()},l(n){e=h(n,"DIV",{class:!0,style:!0});var f=b(e);a=C(f,t),f.forEach(d),i=P(n),l=h(n,"DIV",{class:!0});var v=b(l);for(let m=0;m<s.length;m+=1)s[m].l(v);v.forEach(d),this.h()},h(){E(e,"class","section-title"),O(e,"margin-top",u[5].length>0?"2rem":"0"),E(l,"class","inactive-list svelte-1ipbcl2")},m(n,f){N(n,e,f),c(e,a),N(n,i,f),N(n,l,f);for(let v=0;v<s.length;v+=1)s[v]&&s[v].m(l,null)},p(n,f){f&64&&t!==(t=n[6]("common.noData")+"")&&M(a,t),f&32&&O(e,"margin-top",n[5].length>0?"2rem":"0"),f&592&&(r=Q(n[4]),s=J(s,f,p,1,n,r,o,l,X,de,null,le))},d(n){n&&(d(e),d(i),d(l));for(let f=0;f<s.length;f+=1)s[f].d()}}}function de(u,e){let t,a,i=e[9](e[13].tool)+"",l,s,o,r,p="○",n,f,v=e[6]("quotas.noCredentials")+"",m,k,V=e[6]("quotas.noCredentialsHint")+"",I,A;return{key:u,first:null,c(){t=_("div"),a=_("span"),l=S(i),s=w(),o=_("div"),r=_("span"),r.textContent=p,n=w(),f=_("span"),m=S(v),k=S(" — "),I=S(V),A=w(),this.h()},l(g){t=h(g,"DIV",{class:!0});var q=b(t);a=h(q,"SPAN",{class:!0});var D=b(a);l=C(D,i),D.forEach(d),s=P(q),o=h(q,"DIV",{class:!0});var L=b(o);r=h(L,"SPAN",{class:!0,"data-svelte-h":!0}),B(r)!=="svelte-1s95f73"&&(r.textContent=p),n=P(L),f=h(L,"SPAN",{});var z=b(f);m=C(z,v),k=C(z," — "),I=C(z,V),z.forEach(d),L.forEach(d),A=P(q),q.forEach(d),this.h()},h(){E(a,"class","tool-name svelte-1ipbcl2"),E(r,"class","hint-icon svelte-1ipbcl2"),E(o,"class","inactive-hint svelte-1ipbcl2"),E(t,"class","inactive-card card svelte-1ipbcl2"),this.first=t},m(g,q){N(g,t,q),c(t,a),c(a,l),c(t,s),c(t,o),c(o,r),c(o,n),c(o,f),c(f,m),c(f,k),c(f,I),c(t,A)},p(g,q){e=g,q&16&&i!==(i=e[9](e[13].tool)+"")&&M(l,i),q&64&&v!==(v=e[6]("quotas.noCredentials")+"")&&M(m,v),q&64&&V!==(V=e[6]("quotas.noCredentialsHint")+"")&&M(I,V)},d(g){g&&d(t)}}}function we(u){let e,t,a,i,l,s,o=u[6]("quotas.title")+"",r,p,n,f=u[6]("quotas.desc")+"",v,m,k,V,I="↻",A,g=(u[3]?u[6]("quotas.refreshing"):u[6]("quotas.refresh"))+"",q,D,L,z,H;document.title=e=u[6]("quotas.title")+" — AIUsage";function j(y,T){return y[3]&&!y[0]?Ve:y[2]?Ie:y[1].length===0?De:qe}let F=j(u),U=F(u);return{c(){t=w(),a=_("div"),i=_("div"),l=_("div"),s=_("h1"),r=S(o),p=w(),n=_("p"),v=S(f),m=w(),k=_("button"),V=_("span"),V.textContent=I,A=w(),q=S(g),D=w(),U.c(),L=G(),this.h()},l(y){ke("svelte-fabgfq",document.head).forEach(d),t=P(y),a=h(y,"DIV",{class:!0});var Z=b(a);i=h(Z,"DIV",{class:!0});var K=b(i);l=h(K,"DIV",{});var W=b(l);s=h(W,"H1",{});var $=b(s);r=C($,o),$.forEach(d),p=P(W),n=h(W,"P",{});var x=b(n);v=C(x,f),x.forEach(d),W.forEach(d),m=P(K),k=h(K,"BUTTON",{class:!0});var Y=b(k);V=h(Y,"SPAN",{class:!0,"data-svelte-h":!0}),B(V)!=="svelte-otut42"&&(V.textContent=I),A=P(Y),q=C(Y,g),Y.forEach(d),K.forEach(d),Z.forEach(d),D=P(y),U.l(y),L=G(),this.h()},h(){E(V,"class","refresh-icon svelte-1ipbcl2"),te(V,"spinning",u[3]),E(k,"class","refresh-btn svelte-1ipbcl2"),k.disabled=u[3],E(i,"class","page-header-row svelte-1ipbcl2"),E(a,"class","page-header")},m(y,T){N(y,t,T),N(y,a,T),c(a,i),c(i,l),c(l,s),c(s,r),c(l,p),c(l,n),c(n,v),c(i,m),c(i,k),c(k,V),c(k,A),c(k,q),N(y,D,T),U.m(y,T),N(y,L,T),z||(H=be(k,"click",u[7]),z=!0)},p(y,[T]){T&64&&e!==(e=y[6]("quotas.title")+" — AIUsage")&&(document.title=e),T&64&&o!==(o=y[6]("quotas.title")+"")&&M(r,o),T&64&&f!==(f=y[6]("quotas.desc")+"")&&M(v,f),T&8&&te(V,"spinning",y[3]),T&72&&g!==(g=(y[3]?y[6]("quotas.refreshing"):y[6]("quotas.refresh"))+"")&&M(q,g),T&8&&(k.disabled=y[3]),F===(F=j(y))&&U?U.p(y,T):(U.d(1),U=F(y),U&&(U.c(),U.m(L.parentNode,L)))},i:ee,o:ee,d(y){y&&(d(t),d(a),d(D),d(L)),U.d(y),z=!1,H()}}}function Ne(u){return u.split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ").replace(/^Five Hour/i,"5h").replace(/^Seven Day/i,"7d").replace(/^Weekly Limit/i,"Weekly")}function R(u){return u>=90?"var(--rose)":u>=70?"oklch(0.7 0.15 60)":"var(--green)"}function Me(u){if(!u)return null;const e=new Date(u).getTime()-Date.now();if(e<=0)return null;const t=Math.floor(e/(1e3*60*60)),a=Math.floor(e%(1e3*60*60)/(1e3*60));return t>24?`${Math.floor(t/24)}d ${t%24}h`:t>0?`${t}h ${a}m`:`${a}m`}function Le(u,e,t){let a,i,l,s;he(u,Ee,I=>t(6,s=I));let o=null,r=null,p=!0;const n={five_hour:"quotas.fiveHour",seven_day:"quotas.sevenDay",seven_day_opus:"quotas.sevenDayOpus",seven_day_sonnet:"quotas.sevenDaySonnet",seven_day_omelette:"quotas.sevenDayOmelette",weekly_limit:"quotas.weeklyLimit"},f={"claude-code":"quotas.toolLabels.claude-code",codex:"quotas.toolLabels.codex"};async function v(){t(3,p=!0),t(2,r=null);try{t(0,o=await ge())}catch(I){t(2,r=I instanceof Error?I.message:"Failed to load quota data"),t(0,o=null)}finally{t(3,p=!1)}}_e(v);function m(I){const A=n[I];return A?s(A):Ne(I)}function k(I){const A=f[I];return A?s(A):I}function V(I){return I?new Date(I).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"}):s("quotas.never")}return u.$$.update=()=>{u.$$.dirty&1&&t(1,a=(o==null?void 0:o.quotas)??[]),u.$$.dirty&2&&t(5,i=a.filter(I=>I.credentialStatus!=="not_found")),u.$$.dirty&2&&t(4,l=a.filter(I=>I.credentialStatus==="not_found"))},[o,a,r,p,l,i,s,v,m,k,V]}class Fe extends pe{constructor(e){super(),me(this,e,Le,we,ve,{})}}export{Fe as component};
|
|
1
|
+
import{s as ve,n as ee,c as he,o as _e}from"../chunks/scheduler.DsWd5xup.js";import{S as pe,i as me,d,s as M,z as te,a as N,b as c,w as be,o as E,p as ke,g as P,c as h,e as b,f as C,C as B,r as G,j as w,h as _,t as S,x as O}from"../chunks/index.BfJlbjrK.js";import{x as ge,e as Q,h as J,i as X}from"../chunks/api.DVLAklIn.js";import{t as Ee}from"../chunks/i18n.DApJIXOT.js";function le(u,e,t){const a=u.slice();return a[13]=e[t],a}function se(u,e,t){const a=u.slice();return a[13]=e[t],a}function ae(u,e,t){const a=u.slice();a[18]=e[t];const i=Math.min(Math.round(a[18].utilization),100);a[19]=i;const l=Me(a[18].resetsAt);return a[20]=l,a}function qe(u){let e,t,a=u[5].length>0&&ie(u),i=u[4].length>0&&fe(u);return{c(){a&&a.c(),e=w(),i&&i.c(),t=G()},l(l){a&&a.l(l),e=P(l),i&&i.l(l),t=G()},m(l,s){a&&a.m(l,s),N(l,e,s),i&&i.m(l,s),N(l,t,s)},p(l,s){l[5].length>0?a?a.p(l,s):(a=ie(l),a.c(),a.m(e.parentNode,e)):a&&(a.d(1),a=null),l[4].length>0?i?i.p(l,s):(i=fe(l),i.c(),i.m(t.parentNode,t)):i&&(i.d(1),i=null)},d(l){l&&(d(e),d(t)),a&&a.d(l),i&&i.d(l)}}}function De(u){let e,t,a=u[6]("common.noData")+"",i;return{c(){e=_("div"),t=_("p"),i=S(a),this.h()},l(l){e=h(l,"DIV",{class:!0});var s=b(e);t=h(s,"P",{});var o=b(t);i=C(o,a),o.forEach(d),s.forEach(d),this.h()},h(){E(e,"class","state-msg")},m(l,s){N(l,e,s),c(e,t),c(t,i)},p(l,s){s&64&&a!==(a=l[6]("common.noData")+"")&&M(i,a)},d(l){l&&d(e)}}}function Ie(u){let e,t,a;return{c(){e=_("div"),t=_("p"),a=S(u[2]),this.h()},l(i){e=h(i,"DIV",{class:!0});var l=b(e);t=h(l,"P",{});var s=b(t);a=C(s,u[2]),s.forEach(d),l.forEach(d),this.h()},h(){E(e,"class","state-msg error")},m(i,l){N(i,e,l),c(e,t),c(t,a)},p(i,l){l&4&&M(a,i[2])},d(i){i&&d(e)}}}function Ve(u){let e,t,a=u[6]("common.loading")+"",i;return{c(){e=_("div"),t=_("p"),i=S(a),this.h()},l(l){e=h(l,"DIV",{class:!0});var s=b(e);t=h(s,"P",{});var o=b(t);i=C(o,a),o.forEach(d),s.forEach(d),this.h()},h(){E(e,"class","state-msg")},m(l,s){N(l,e,s),c(e,t),c(t,i)},p(l,s){s&64&&a!==(a=l[6]("common.loading")+"")&&M(i,a)},d(l){l&&d(e)}}}function ie(u){let e,t=[],a=new Map,i=Q(u[5]);const l=s=>s[13].tool;for(let s=0;s<i.length;s+=1){let o=se(u,i,s),r=l(o);a.set(r,t[s]=ue(r,o))}return{c(){e=_("div");for(let s=0;s<t.length;s+=1)t[s].c();this.h()},l(s){e=h(s,"DIV",{class:!0});var o=b(e);for(let r=0;r<t.length;r+=1)t[r].l(o);o.forEach(d),this.h()},h(){E(e,"class","quota-grid svelte-1ipbcl2")},m(s,o){N(s,e,o);for(let r=0;r<t.length;r+=1)t[r]&&t[r].m(e,null)},p(s,o){o&1888&&(i=Q(s[5]),t=J(t,o,l,1,s,i,a,e,X,ue,null,se))},d(s){s&&d(e);for(let o=0;o<t.length;o+=1)t[o].d()}}}function ye(u){let e,t=[],a=new Map,i=Q(u[13].tiers);const l=s=>s[18].name;for(let s=0;s<i.length;s+=1){let o=ae(u,i,s),r=l(o);a.set(r,t[s]=oe(r,o))}return{c(){e=_("div");for(let s=0;s<t.length;s+=1)t[s].c();this.h()},l(s){e=h(s,"DIV",{class:!0});var o=b(e);for(let r=0;r<t.length;r+=1)t[r].l(o);o.forEach(d),this.h()},h(){E(e,"class","tiers svelte-1ipbcl2")},m(s,o){N(s,e,o);for(let r=0;r<t.length;r+=1)t[r]&&t[r].m(e,null)},p(s,o){o&288&&(i=Q(s[13].tiers),t=J(t,o,l,1,s,i,a,e,X,oe,null,ae))},d(s){s&&d(e);for(let o=0;o<t.length;o+=1)t[o].d()}}}function Ce(u){let e,t,a="○",i,l,s=u[6]("quotas.noTiers")+"",o;return{c(){e=_("div"),t=_("span"),t.textContent=a,i=w(),l=_("div"),o=S(s),this.h()},l(r){e=h(r,"DIV",{class:!0});var p=b(e);t=h(p,"SPAN",{class:!0,"data-svelte-h":!0}),B(t)!=="svelte-1iupoui"&&(t.textContent=a),i=P(p),l=h(p,"DIV",{class:!0});var n=b(l);o=C(n,s),n.forEach(d),p.forEach(d),this.h()},h(){E(t,"class","status-icon svelte-1ipbcl2"),E(l,"class","status-title svelte-1ipbcl2"),E(e,"class","status-msg status-neutral svelte-1ipbcl2")},m(r,p){N(r,e,p),c(e,t),c(e,i),c(e,l),c(l,o)},p(r,p){p&64&&s!==(s=r[6]("quotas.noTiers")+"")&&M(o,s)},d(r){r&&d(e)}}}function Se(u){let e,t,a="✕",i,l,s,o=u[6]("quotas.queryFailed")+"",r,p,n=u[13].error&&re(u);return{c(){e=_("div"),t=_("span"),t.textContent=a,i=w(),l=_("div"),s=_("div"),r=S(o),p=w(),n&&n.c(),this.h()},l(f){e=h(f,"DIV",{class:!0});var v=b(e);t=h(v,"SPAN",{class:!0,"data-svelte-h":!0}),B(t)!=="svelte-1cay5lc"&&(t.textContent=a),i=P(v),l=h(v,"DIV",{});var m=b(l);s=h(m,"DIV",{class:!0});var k=b(s);r=C(k,o),k.forEach(d),p=P(m),n&&n.l(m),m.forEach(d),v.forEach(d),this.h()},h(){E(t,"class","status-icon svelte-1ipbcl2"),E(s,"class","status-title svelte-1ipbcl2"),E(e,"class","status-msg status-error svelte-1ipbcl2")},m(f,v){N(f,e,v),c(e,t),c(e,i),c(e,l),c(l,s),c(s,r),c(l,p),n&&n.m(l,null)},p(f,v){v&64&&o!==(o=f[6]("quotas.queryFailed")+"")&&M(r,o),f[13].error?n?n.p(f,v):(n=re(f),n.c(),n.m(l,null)):n&&(n.d(1),n=null)},d(f){f&&d(e),n&&n.d()}}}function Ae(u){let e,t,a="✕",i,l,s,o=u[6]("quotas.queryFailed")+"",r,p,n=u[13].credentialMessage&&ce(u);return{c(){e=_("div"),t=_("span"),t.textContent=a,i=w(),l=_("div"),s=_("div"),r=S(o),p=w(),n&&n.c(),this.h()},l(f){e=h(f,"DIV",{class:!0});var v=b(e);t=h(v,"SPAN",{class:!0,"data-svelte-h":!0}),B(t)!=="svelte-1cay5lc"&&(t.textContent=a),i=P(v),l=h(v,"DIV",{});var m=b(l);s=h(m,"DIV",{class:!0});var k=b(s);r=C(k,o),k.forEach(d),p=P(m),n&&n.l(m),m.forEach(d),v.forEach(d),this.h()},h(){E(t,"class","status-icon svelte-1ipbcl2"),E(s,"class","status-title svelte-1ipbcl2"),E(e,"class","status-msg status-error svelte-1ipbcl2")},m(f,v){N(f,e,v),c(e,t),c(e,i),c(e,l),c(l,s),c(s,r),c(l,p),n&&n.m(l,null)},p(f,v){v&64&&o!==(o=f[6]("quotas.queryFailed")+"")&&M(r,o),f[13].credentialMessage?n?n.p(f,v):(n=ce(f),n.c(),n.m(l,null)):n&&(n.d(1),n=null)},d(f){f&&d(e),n&&n.d()}}}function Pe(u){let e,t,a="⚠",i,l,s,o=u[6]("quotas.expired")+"",r,p,n,f=u[6]("quotas.expiredHint")+"",v;return{c(){e=_("div"),t=_("span"),t.textContent=a,i=w(),l=_("div"),s=_("div"),r=S(o),p=w(),n=_("div"),v=S(f),this.h()},l(m){e=h(m,"DIV",{class:!0});var k=b(e);t=h(k,"SPAN",{class:!0,"data-svelte-h":!0}),B(t)!=="svelte-ksyvhl"&&(t.textContent=a),i=P(k),l=h(k,"DIV",{});var V=b(l);s=h(V,"DIV",{class:!0});var I=b(s);r=C(I,o),I.forEach(d),p=P(V),n=h(V,"DIV",{class:!0});var A=b(n);v=C(A,f),A.forEach(d),V.forEach(d),k.forEach(d),this.h()},h(){E(t,"class","status-icon svelte-1ipbcl2"),E(s,"class","status-title svelte-1ipbcl2"),E(n,"class","status-hint svelte-1ipbcl2"),E(e,"class","status-msg status-warn svelte-1ipbcl2")},m(m,k){N(m,e,k),c(e,t),c(e,i),c(e,l),c(l,s),c(s,r),c(l,p),c(l,n),c(n,v)},p(m,k){k&64&&o!==(o=m[6]("quotas.expired")+"")&&M(r,o),k&64&&f!==(f=m[6]("quotas.expiredHint")+"")&&M(v,f)},d(m){m&&d(e)}}}function ne(u){let e,t,a=u[20]+"",i;return{c(){e=_("span"),t=S("↻ "),i=S(a),this.h()},l(l){e=h(l,"SPAN",{class:!0});var s=b(e);t=C(s,"↻ "),i=C(s,a),s.forEach(d),this.h()},h(){E(e,"class","tier-reset svelte-1ipbcl2")},m(l,s){N(l,e,s),c(e,t),c(e,i)},p(l,s){s&32&&a!==(a=l[20]+"")&&M(i,a)},d(l){l&&d(e)}}}function oe(u,e){let t,a,i,l=e[8](e[18].name)+"",s,o,r,p,n,f,v,m,k=e[19]+"",V,I,A,g=e[20]&&ne(e);return{key:u,first:null,c(){t=_("div"),a=_("div"),i=_("span"),s=S(l),o=w(),g&&g.c(),r=w(),p=_("div"),n=_("div"),f=_("div"),v=w(),m=_("span"),V=S(k),I=S("%"),A=w(),this.h()},l(q){t=h(q,"DIV",{class:!0});var D=b(t);a=h(D,"DIV",{class:!0});var L=b(a);i=h(L,"SPAN",{class:!0});var z=b(i);s=C(z,l),z.forEach(d),o=P(L),g&&g.l(L),L.forEach(d),r=P(D),p=h(D,"DIV",{class:!0});var H=b(p);n=h(H,"DIV",{class:!0});var j=b(n);f=h(j,"DIV",{class:!0,style:!0}),b(f).forEach(d),j.forEach(d),v=P(H),m=h(H,"SPAN",{class:!0,style:!0});var F=b(m);V=C(F,k),I=C(F,"%"),F.forEach(d),H.forEach(d),A=P(D),D.forEach(d),this.h()},h(){E(i,"class","tier-name svelte-1ipbcl2"),E(a,"class","tier-label svelte-1ipbcl2"),E(f,"class","tier-fill svelte-1ipbcl2"),O(f,"width",e[19]+"%"),O(f,"background",R(e[18].utilization)),E(n,"class","tier-bar svelte-1ipbcl2"),E(m,"class","tier-pct svelte-1ipbcl2"),O(m,"color",R(e[18].utilization)),E(p,"class","tier-bar-wrap svelte-1ipbcl2"),E(t,"class","tier-row svelte-1ipbcl2"),this.first=t},m(q,D){N(q,t,D),c(t,a),c(a,i),c(i,s),c(a,o),g&&g.m(a,null),c(t,r),c(t,p),c(p,n),c(n,f),c(p,v),c(p,m),c(m,V),c(m,I),c(t,A)},p(q,D){e=q,D&32&&l!==(l=e[8](e[18].name)+"")&&M(s,l),e[20]?g?g.p(e,D):(g=ne(e),g.c(),g.m(a,null)):g&&(g.d(1),g=null),D&32&&O(f,"width",e[19]+"%"),D&32&&O(f,"background",R(e[18].utilization)),D&32&&k!==(k=e[19]+"")&&M(V,k),D&32&&O(m,"color",R(e[18].utilization))},d(q){q&&d(t),g&&g.d()}}}function re(u){let e,t=u[13].error+"",a;return{c(){e=_("div"),a=S(t),this.h()},l(i){e=h(i,"DIV",{class:!0});var l=b(e);a=C(l,t),l.forEach(d),this.h()},h(){E(e,"class","status-hint svelte-1ipbcl2")},m(i,l){N(i,e,l),c(e,a)},p(i,l){l&32&&t!==(t=i[13].error+"")&&M(a,t)},d(i){i&&d(e)}}}function ce(u){let e,t=u[13].credentialMessage+"",a;return{c(){e=_("div"),a=S(t),this.h()},l(i){e=h(i,"DIV",{class:!0});var l=b(e);a=C(l,t),l.forEach(d),this.h()},h(){E(e,"class","status-hint svelte-1ipbcl2")},m(i,l){N(i,e,l),c(e,a)},p(i,l){l&32&&t!==(t=i[13].credentialMessage+"")&&M(a,t)},d(i){i&&d(e)}}}function ue(u,e){let t,a,i,l=e[9](e[13].tool)+"",s,o,r,p=e[6]("quotas.lastUpdated")+"",n,f,v=e[10](e[13].queriedAt)+"",m,k,V;function I(q,D){return q[13].credentialStatus==="expired"&&!q[13].success?Pe:q[13].credentialStatus==="parse_error"?Ae:q[13].success?q[13].tiers.length===0?Ce:ye:Se}let A=I(e),g=A(e);return{key:u,first:null,c(){t=_("div"),a=_("div"),i=_("span"),s=S(l),o=w(),r=_("span"),n=S(p),f=S(": "),m=S(v),k=w(),g.c(),V=w(),this.h()},l(q){t=h(q,"DIV",{class:!0});var D=b(t);a=h(D,"DIV",{class:!0});var L=b(a);i=h(L,"SPAN",{class:!0});var z=b(i);s=C(z,l),z.forEach(d),o=P(L),r=h(L,"SPAN",{class:!0});var H=b(r);n=C(H,p),f=C(H,": "),m=C(H,v),H.forEach(d),L.forEach(d),k=P(D),g.l(D),V=P(D),D.forEach(d),this.h()},h(){E(i,"class","tool-name svelte-1ipbcl2"),E(r,"class","query-time svelte-1ipbcl2"),E(a,"class","card-header svelte-1ipbcl2"),E(t,"class","quota-card card svelte-1ipbcl2"),this.first=t},m(q,D){N(q,t,D),c(t,a),c(a,i),c(i,s),c(a,o),c(a,r),c(r,n),c(r,f),c(r,m),c(t,k),g.m(t,null),c(t,V)},p(q,D){e=q,D&32&&l!==(l=e[9](e[13].tool)+"")&&M(s,l),D&64&&p!==(p=e[6]("quotas.lastUpdated")+"")&&M(n,p),D&32&&v!==(v=e[10](e[13].queriedAt)+"")&&M(m,v),A===(A=I(e))&&g?g.p(e,D):(g.d(1),g=A(e),g&&(g.c(),g.m(t,V)))},d(q){q&&d(t),g.d()}}}function fe(u){let e,t=u[6]("common.noData")+"",a,i,l,s=[],o=new Map,r=Q(u[4]);const p=n=>n[13].tool;for(let n=0;n<r.length;n+=1){let f=le(u,r,n),v=p(f);o.set(v,s[n]=de(v,f))}return{c(){e=_("div"),a=S(t),i=w(),l=_("div");for(let n=0;n<s.length;n+=1)s[n].c();this.h()},l(n){e=h(n,"DIV",{class:!0,style:!0});var f=b(e);a=C(f,t),f.forEach(d),i=P(n),l=h(n,"DIV",{class:!0});var v=b(l);for(let m=0;m<s.length;m+=1)s[m].l(v);v.forEach(d),this.h()},h(){E(e,"class","section-title"),O(e,"margin-top",u[5].length>0?"2rem":"0"),E(l,"class","inactive-list svelte-1ipbcl2")},m(n,f){N(n,e,f),c(e,a),N(n,i,f),N(n,l,f);for(let v=0;v<s.length;v+=1)s[v]&&s[v].m(l,null)},p(n,f){f&64&&t!==(t=n[6]("common.noData")+"")&&M(a,t),f&32&&O(e,"margin-top",n[5].length>0?"2rem":"0"),f&592&&(r=Q(n[4]),s=J(s,f,p,1,n,r,o,l,X,de,null,le))},d(n){n&&(d(e),d(i),d(l));for(let f=0;f<s.length;f+=1)s[f].d()}}}function de(u,e){let t,a,i=e[9](e[13].tool)+"",l,s,o,r,p="○",n,f,v=e[6]("quotas.noCredentials")+"",m,k,V=e[6]("quotas.noCredentialsHint")+"",I,A;return{key:u,first:null,c(){t=_("div"),a=_("span"),l=S(i),s=w(),o=_("div"),r=_("span"),r.textContent=p,n=w(),f=_("span"),m=S(v),k=S(" — "),I=S(V),A=w(),this.h()},l(g){t=h(g,"DIV",{class:!0});var q=b(t);a=h(q,"SPAN",{class:!0});var D=b(a);l=C(D,i),D.forEach(d),s=P(q),o=h(q,"DIV",{class:!0});var L=b(o);r=h(L,"SPAN",{class:!0,"data-svelte-h":!0}),B(r)!=="svelte-1s95f73"&&(r.textContent=p),n=P(L),f=h(L,"SPAN",{});var z=b(f);m=C(z,v),k=C(z," — "),I=C(z,V),z.forEach(d),L.forEach(d),A=P(q),q.forEach(d),this.h()},h(){E(a,"class","tool-name svelte-1ipbcl2"),E(r,"class","hint-icon svelte-1ipbcl2"),E(o,"class","inactive-hint svelte-1ipbcl2"),E(t,"class","inactive-card card svelte-1ipbcl2"),this.first=t},m(g,q){N(g,t,q),c(t,a),c(a,l),c(t,s),c(t,o),c(o,r),c(o,n),c(o,f),c(f,m),c(f,k),c(f,I),c(t,A)},p(g,q){e=g,q&16&&i!==(i=e[9](e[13].tool)+"")&&M(l,i),q&64&&v!==(v=e[6]("quotas.noCredentials")+"")&&M(m,v),q&64&&V!==(V=e[6]("quotas.noCredentialsHint")+"")&&M(I,V)},d(g){g&&d(t)}}}function we(u){let e,t,a,i,l,s,o=u[6]("quotas.title")+"",r,p,n,f=u[6]("quotas.desc")+"",v,m,k,V,I="↻",A,g=(u[3]?u[6]("quotas.refreshing"):u[6]("quotas.refresh"))+"",q,D,L,z,H;document.title=e=u[6]("quotas.title")+" — AIUsage";function j(y,T){return y[3]&&!y[0]?Ve:y[2]?Ie:y[1].length===0?De:qe}let F=j(u),U=F(u);return{c(){t=w(),a=_("div"),i=_("div"),l=_("div"),s=_("h1"),r=S(o),p=w(),n=_("p"),v=S(f),m=w(),k=_("button"),V=_("span"),V.textContent=I,A=w(),q=S(g),D=w(),U.c(),L=G(),this.h()},l(y){ke("svelte-fabgfq",document.head).forEach(d),t=P(y),a=h(y,"DIV",{class:!0});var Z=b(a);i=h(Z,"DIV",{class:!0});var K=b(i);l=h(K,"DIV",{});var W=b(l);s=h(W,"H1",{});var $=b(s);r=C($,o),$.forEach(d),p=P(W),n=h(W,"P",{});var x=b(n);v=C(x,f),x.forEach(d),W.forEach(d),m=P(K),k=h(K,"BUTTON",{class:!0});var Y=b(k);V=h(Y,"SPAN",{class:!0,"data-svelte-h":!0}),B(V)!=="svelte-otut42"&&(V.textContent=I),A=P(Y),q=C(Y,g),Y.forEach(d),K.forEach(d),Z.forEach(d),D=P(y),U.l(y),L=G(),this.h()},h(){E(V,"class","refresh-icon svelte-1ipbcl2"),te(V,"spinning",u[3]),E(k,"class","refresh-btn svelte-1ipbcl2"),k.disabled=u[3],E(i,"class","page-header-row svelte-1ipbcl2"),E(a,"class","page-header")},m(y,T){N(y,t,T),N(y,a,T),c(a,i),c(i,l),c(l,s),c(s,r),c(l,p),c(l,n),c(n,v),c(i,m),c(i,k),c(k,V),c(k,A),c(k,q),N(y,D,T),U.m(y,T),N(y,L,T),z||(H=be(k,"click",u[7]),z=!0)},p(y,[T]){T&64&&e!==(e=y[6]("quotas.title")+" — AIUsage")&&(document.title=e),T&64&&o!==(o=y[6]("quotas.title")+"")&&M(r,o),T&64&&f!==(f=y[6]("quotas.desc")+"")&&M(v,f),T&8&&te(V,"spinning",y[3]),T&72&&g!==(g=(y[3]?y[6]("quotas.refreshing"):y[6]("quotas.refresh"))+"")&&M(q,g),T&8&&(k.disabled=y[3]),F===(F=j(y))&&U?U.p(y,T):(U.d(1),U=F(y),U&&(U.c(),U.m(L.parentNode,L)))},i:ee,o:ee,d(y){y&&(d(t),d(a),d(D),d(L)),U.d(y),z=!1,H()}}}function Ne(u){return u.split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ").replace(/^Five Hour/i,"5h").replace(/^Seven Day/i,"7d").replace(/^Weekly Limit/i,"Weekly")}function R(u){return u>=90?"var(--rose)":u>=70?"oklch(0.7 0.15 60)":"var(--green)"}function Me(u){if(!u)return null;const e=new Date(u).getTime()-Date.now();if(e<=0)return null;const t=Math.floor(e/(1e3*60*60)),a=Math.floor(e%(1e3*60*60)/(1e3*60));return t>24?`${Math.floor(t/24)}d ${t%24}h`:t>0?`${t}h ${a}m`:`${a}m`}function Le(u,e,t){let a,i,l,s;he(u,Ee,I=>t(6,s=I));let o=null,r=null,p=!0;const n={five_hour:"quotas.fiveHour",seven_day:"quotas.sevenDay",seven_day_opus:"quotas.sevenDayOpus",seven_day_sonnet:"quotas.sevenDaySonnet",seven_day_omelette:"quotas.sevenDayOmelette",weekly_limit:"quotas.weeklyLimit"},f={"claude-code":"quotas.toolLabels.claude-code",codex:"quotas.toolLabels.codex"};async function v(){t(3,p=!0),t(2,r=null);try{t(0,o=await ge())}catch(I){t(2,r=I instanceof Error?I.message:"Failed to load quota data"),t(0,o=null)}finally{t(3,p=!1)}}_e(v);function m(I){const A=n[I];return A?s(A):Ne(I)}function k(I){const A=f[I];return A?s(A):I}function V(I){return I?new Date(I).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"}):s("quotas.never")}return u.$$.update=()=>{u.$$.dirty&1&&t(1,a=(o==null?void 0:o.quotas)??[]),u.$$.dirty&2&&t(5,i=a.filter(I=>I.credentialStatus!=="not_found")),u.$$.dirty&2&&t(4,l=a.filter(I=>I.credentialStatus==="not_found"))},[o,a,r,p,l,i,s,v,m,k,V]}class Fe extends pe{constructor(e){super(),me(this,e,Le,we,ve,{})}}export{Fe as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"1781033150474"}
|
package/dist/web/index.html
CHANGED
|
@@ -19,26 +19,26 @@
|
|
|
19
19
|
})();
|
|
20
20
|
</script>
|
|
21
21
|
|
|
22
|
-
<link rel="modulepreload" href="/_app/immutable/entry/start.
|
|
23
|
-
<link rel="modulepreload" href="/_app/immutable/chunks/entry.
|
|
22
|
+
<link rel="modulepreload" href="/_app/immutable/entry/start.B0qYhR-d.js">
|
|
23
|
+
<link rel="modulepreload" href="/_app/immutable/chunks/entry.DhBBmiYe.js">
|
|
24
24
|
<link rel="modulepreload" href="/_app/immutable/chunks/scheduler.DsWd5xup.js">
|
|
25
25
|
<link rel="modulepreload" href="/_app/immutable/chunks/index.m3oCcA6N.js">
|
|
26
|
-
<link rel="modulepreload" href="/_app/immutable/entry/app.
|
|
27
|
-
<link rel="modulepreload" href="/_app/immutable/chunks/index.
|
|
26
|
+
<link rel="modulepreload" href="/_app/immutable/entry/app.C_5glR-X.js">
|
|
27
|
+
<link rel="modulepreload" href="/_app/immutable/chunks/index.BfJlbjrK.js">
|
|
28
28
|
</head>
|
|
29
29
|
<body data-sveltekit-preload-data="hover">
|
|
30
30
|
<div style="display: contents">
|
|
31
31
|
<script>
|
|
32
32
|
{
|
|
33
|
-
|
|
33
|
+
__sveltekit_16j729l = {
|
|
34
34
|
base: ""
|
|
35
35
|
};
|
|
36
36
|
|
|
37
37
|
const element = document.currentScript.parentElement;
|
|
38
38
|
|
|
39
39
|
Promise.all([
|
|
40
|
-
import("/_app/immutable/entry/start.
|
|
41
|
-
import("/_app/immutable/entry/app.
|
|
40
|
+
import("/_app/immutable/entry/start.B0qYhR-d.js"),
|
|
41
|
+
import("/_app/immutable/entry/app.C_5glR-X.js")
|
|
42
42
|
]).then(([kit, app]) => {
|
|
43
43
|
kit.start(app, element);
|
|
44
44
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juliantanx/aiusage",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Track and analyze AI coding assistant usage across Claude Code, Codex, and more",
|
|
6
6
|
"keywords": [
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"tsx": "^4.0.0",
|
|
55
55
|
"typescript": "^5.7.0",
|
|
56
56
|
"vitest": "^3.0.0",
|
|
57
|
-
"@aiusage/core": "1.5.
|
|
58
|
-
"@aiusage/web": "1.5.
|
|
57
|
+
"@aiusage/core": "1.5.3",
|
|
58
|
+
"@aiusage/web": "1.5.3"
|
|
59
59
|
},
|
|
60
60
|
"scripts": {
|
|
61
61
|
"build": "tsup && node scripts/copy-web.js",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.header-row.svelte-nswk45.svelte-nswk45{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.page-title.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:1.1rem;font-weight:700;color:var(--text)}.header-right.svelte-nswk45.svelte-nswk45{display:flex;align-items:center;gap:.75rem}.toast.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:.75rem;font-weight:600}.toast.updating.svelte-nswk45.svelte-nswk45{color:var(--text-muted)}.toast.done.svelte-nswk45.svelte-nswk45{color:var(--accent)}.currency-toggle.svelte-nswk45.svelte-nswk45{display:flex;border:1px solid var(--border-subtle);border-radius:4px;overflow:hidden}.toggle-btn.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:.75rem;font-weight:600;padding:.25rem .6rem;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.toggle-btn.active.svelte-nswk45.svelte-nswk45{background:var(--accent-dim);color:var(--accent)}.toggle-btn.svelte-nswk45.svelte-nswk45:not(.active):hover{color:var(--text)}.grid.svelte-nswk45.svelte-nswk45{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.75rem}.card.svelte-nswk45.svelte-nswk45{background:var(--surface);border-radius:8px;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.6rem;transition:background .2s;animation:svelte-nswk45-fadeIn .2s ease both}.card.no-price.svelte-nswk45.svelte-nswk45{opacity:.45}@keyframes svelte-nswk45-fadeIn{0%{opacity:0}to{opacity:1}}.card-head.svelte-nswk45.svelte-nswk45{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.model-name.svelte-nswk45.svelte-nswk45{font-size:.8rem;font-weight:600;color:var(--text);word-break:break-all;line-height:1.4}.card-btns.svelte-nswk45.svelte-nswk45{display:flex;gap:.35rem;flex-shrink:0}.price-row.svelte-nswk45.svelte-nswk45{display:flex;align-items:baseline;gap:.35rem}.price-row.secondary.svelte-nswk45.svelte-nswk45{gap:1rem;border-top:1px solid var(--border-subtle);padding-top:.5rem}.price-block.svelte-nswk45.svelte-nswk45{display:flex;flex-direction:column;gap:.05rem}.price-block.primary.svelte-nswk45.svelte-nswk45{flex:1}.slash.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:.85rem;color:var(--text-muted);padding:0 .15rem;align-self:flex-end;margin-bottom:.1rem}.price-label.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:.75rem;font-weight:550;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.price-val.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:1.1rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.price-val.sm.svelte-nswk45.svelte-nswk45{font-size:.8rem;font-weight:600;color:var(--text-secondary)}.card-footer.svelte-nswk45.svelte-nswk45{display:flex;align-items:center;gap:.5rem}.badge.svelte-nswk45.svelte-nswk45{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-family:var(--mono);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.badge.default.svelte-nswk45.svelte-nswk45{background:var(--accent-dim);color:var(--accent)}.badge.override.svelte-nswk45.svelte-nswk45{background:var(--badge-override-bg);color:var(--badge-override-fg)}.badge.matched.svelte-nswk45.svelte-nswk45{background:var(--badge-matched-bg);color:var(--badge-matched-fg);max-width:100%;overflow:hidden;text-overflow:ellipsis}.badge.no-price.svelte-nswk45.svelte-nswk45{background:var(--badge-noprice-bg);color:var(--badge-noprice-fg)}.badge.cny.svelte-nswk45.svelte-nswk45{background:var(--purple-dim);color:var(--purple)}.btn-sm.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:.75rem;font-weight:600;padding:.2rem .55rem;border:1px solid var(--border-subtle);border-radius:4px;background:var(--raised);color:var(--text);cursor:pointer;transition:border-color .2s,color .2s}.btn-sm.svelte-nswk45.svelte-nswk45:hover,.btn-sm.save.svelte-nswk45.svelte-nswk45{border-color:var(--accent);color:var(--accent)}.btn-sm.reset.svelte-nswk45.svelte-nswk45{border-color:#f87171;color:#f87171}.edit-fields.svelte-nswk45.svelte-nswk45{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.edit-fields.svelte-nswk45 label.svelte-nswk45{display:flex;flex-direction:column;gap:.2rem;font-family:var(--mono);font-size:.75rem;font-weight:550;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.edit-input.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:.75rem;width:100%;padding:.3rem .4rem;border:1px solid var(--border-subtle);border-radius:6px;background:var(--raised);color:var(--text);text-align:right;height:32px}.edit-input.svelte-nswk45.svelte-nswk45:focus{outline:none;border-color:var(--accent)}.edit-btns.svelte-nswk45.svelte-nswk45{display:flex;gap:.5rem}.state-msg.svelte-nswk45.svelte-nswk45{color:var(--text-muted);padding:2rem;text-align:center}.state-msg.error.svelte-nswk45.svelte-nswk45{color:var(--rose)}.mono.svelte-nswk45.svelte-nswk45{font-weight:500}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.header-row.svelte-nswk45.svelte-nswk45{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.page-title.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:1.1rem;font-weight:700;color:var(--text)}.header-right.svelte-nswk45.svelte-nswk45{display:flex;align-items:center;gap:.75rem}.toast.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:.75rem;font-weight:600}.toast.updating.svelte-nswk45.svelte-nswk45{color:var(--text-muted)}.toast.done.svelte-nswk45.svelte-nswk45{color:var(--accent)}.currency-toggle.svelte-nswk45.svelte-nswk45{display:flex;border:1px solid var(--border-subtle);border-radius:4px;overflow:hidden}.toggle-btn.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:.75rem;font-weight:600;padding:.25rem .6rem;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.toggle-btn.active.svelte-nswk45.svelte-nswk45{background:var(--accent-dim);color:var(--accent)}.toggle-btn.svelte-nswk45.svelte-nswk45:not(.active):hover{color:var(--text)}.grid.svelte-nswk45.svelte-nswk45{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.75rem}.card.svelte-nswk45.svelte-nswk45{background:var(--surface);border-radius:8px;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.6rem;transition:background .2s;animation:svelte-nswk45-fadeIn .2s ease both}.card.no-price.svelte-nswk45.svelte-nswk45{opacity:.45}@keyframes svelte-nswk45-fadeIn{0%{opacity:0}to{opacity:1}}.card-head.svelte-nswk45.svelte-nswk45{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.model-name.svelte-nswk45.svelte-nswk45{font-size:.8rem;font-weight:600;color:var(--text);word-break:break-all;line-height:1.4}.card-btns.svelte-nswk45.svelte-nswk45{display:flex;gap:.35rem;flex-shrink:0}.price-row.svelte-nswk45.svelte-nswk45{display:flex;align-items:baseline;gap:.35rem}.price-row.secondary.svelte-nswk45.svelte-nswk45{gap:1rem;border-top:1px solid var(--border-subtle);padding-top:.5rem}.price-block.svelte-nswk45.svelte-nswk45{display:flex;flex-direction:column;gap:.05rem}.price-block.primary.svelte-nswk45.svelte-nswk45{flex:1}.slash.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:.85rem;color:var(--text-muted);padding:0 .15rem;align-self:flex-end;margin-bottom:.1rem}.price-label.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:.75rem;font-weight:550;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.price-val.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:1.1rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.price-val.sm.svelte-nswk45.svelte-nswk45{font-size:.8rem;font-weight:600;color:var(--text-secondary)}.card-footer.svelte-nswk45.svelte-nswk45{display:flex;align-items:center;gap:.5rem}.badge.svelte-nswk45.svelte-nswk45{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-family:var(--mono);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.badge.default.svelte-nswk45.svelte-nswk45{background:var(--accent-dim);color:var(--accent)}.badge.override.svelte-nswk45.svelte-nswk45{background:var(--badge-override-bg);color:var(--badge-override-fg)}.badge.matched.svelte-nswk45.svelte-nswk45{background:var(--badge-matched-bg);color:var(--badge-matched-fg);max-width:100%;overflow:hidden;text-overflow:ellipsis}.badge.no-price.svelte-nswk45.svelte-nswk45{background:var(--badge-noprice-bg);color:var(--badge-noprice-fg)}.badge.cny.svelte-nswk45.svelte-nswk45{background:var(--purple-dim);color:var(--purple)}.btn-sm.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:.75rem;font-weight:600;padding:.2rem .55rem;border:1px solid var(--border-subtle);border-radius:4px;background:var(--raised);color:var(--text);cursor:pointer;transition:border-color .2s,color .2s}.btn-sm.svelte-nswk45.svelte-nswk45:hover,.btn-sm.save.svelte-nswk45.svelte-nswk45{border-color:var(--accent);color:var(--accent)}.btn-sm.reset.svelte-nswk45.svelte-nswk45{border-color:#f87171;color:#f87171}.edit-fields.svelte-nswk45.svelte-nswk45{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.edit-fields.svelte-nswk45 label.svelte-nswk45{display:flex;flex-direction:column;gap:.2rem;font-family:var(--mono);font-size:.75rem;font-weight:550;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.edit-input.svelte-nswk45.svelte-nswk45{font-family:var(--mono);font-size:.75rem;width:100%;padding:.3rem .4rem;border:1px solid var(--border-subtle);border-radius:6px;background:var(--raised);color:var(--text);text-align:right;height:32px}.edit-input.svelte-nswk45.svelte-nswk45:focus{outline:none;border-color:var(--accent)}.edit-btns.svelte-nswk45.svelte-nswk45{display:flex;gap:.5rem}.state-msg.svelte-nswk45.svelte-nswk45{color:var(--text-muted);padding:2rem;text-align:center}.state-msg.error.svelte-nswk45.svelte-nswk45{color:var(--rose)}.mono.svelte-nswk45.svelte-nswk45{font-weight:500}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{m as D}from"./index.66Vu9Sio.js";import{r as H}from"./scheduler.DsWd5xup.js";function q(e){return(e==null?void 0:e.length)!==void 0?e:Array.from(e)}function M(e,t){e.d(1),t.delete(e.key)}function N(e,t,n,s,c,a,i,d,k,I,P,O){let p=e.length,g=a.length,w=p;const S={};for(;w--;)S[e[w].key]=w;const l=[],j=new Map,E=new Map,b=[];for(w=g;w--;){const r=O(c,a,w),f=n(r);let h=i.get(f);h?b.push(()=>h.p(r,t)):(h=I(f,r),h.c()),j.set(f,l[w]=h),f in S&&E.set(f,Math.abs(w-S[f]))}const $=new Set,C=new Set;function A(r){D(r,1),r.m(d,P),i.set(r.key,r),P=r.first,g--}for(;p&&g;){const r=l[g-1],f=e[p-1],h=r.key,m=f.key;r===f?(P=r.first,p--,g--):j.has(m)?!i.has(h)||$.has(h)?A(r):C.has(m)?p--:E.get(h)>E.get(m)?(C.add(h),A(r)):($.add(m),p--):(k(f,i),p--)}for(;p--;){const r=e[p];j.has(r.key)||k(r,i)}for(;g;)A(l[g-1]);return H(b),l}function u(e,t){const n=new URLSearchParams;for(const[c,a]of Object.entries(t))a&&n.set(c,a);const s=n.toString();return s?`${e}?${s}`:e}const T=new Map,y=new Map;async function o(e,{signal:t,swr:n=!1}={}){const s=()=>t?fetch(e,{signal:t}):fetch(e);if(n&&T.has(e)){const a=T.get(e);if(Date.now()-a.fetchedAt>5e3&&!y.has(e)){const i=s().then(d=>d.ok?d.json():null).then(d=>{d&&T.set(e,{data:d,fetchedAt:Date.now()})}).catch(()=>{}).finally(()=>y.delete(e));y.set(e,i)}return a.data}if(y.has(e))return y.get(e);const c=s().then(async a=>{var i;if(!a.ok){const d=await a.json().catch(()=>({error:{message:"API error"}}));throw new Error(((i=d.error)==null?void 0:i.message)||`HTTP ${a.status}`)}return a.json()}).then(a=>(n&&T.set(e,{data:a,fetchedAt:Date.now()}),a)).finally(()=>y.delete(e));return y.set(e,c),c}async function R(e,{signal:t,swr:n=!0}={}){return o(u("/api/summary",e),{signal:t,swr:n})}async function x(e){return o(u("/api/tokens",e))}async function J(e){return o(u("/api/cost",e))}async function z(e){return o(u("/api/models",e))}async function F(e){return o(u("/api/tool-calls",{...e,toolType:e.toolType||void 0}))}async function B(e){var t,n;return o(u("/api/sessions",{...e,page:(t=e.page)==null?void 0:t.toString(),pageSize:(n=e.pageSize)==null?void 0:n.toString()}))}async function G(e,t={}){return o(u(`/api/sessions/${encodeURIComponent(e)}`,t))}async function K(e){return o(u("/api/projects",e))}async function Q(){return o("/api/refresh")}async function V(){return o("/api/pricing")}async function _(e,t){var s;const n=await fetch("/api/pricing",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:e,...t})});if(!n.ok){const c=await n.json().catch(()=>({error:{message:"API error"}}));throw new Error(((s=c.error)==null?void 0:s.message)||`HTTP ${n.status}`)}return n.json()}async function W(e){var n;const t=await fetch(`/api/pricing?model=${encodeURIComponent(e)}`,{method:"DELETE"});if(!t.ok){const s=await t.json().catch(()=>({error:{message:"API error"}}));throw new Error(((n=s.error)==null?void 0:n.message)||`HTTP ${t.status}`)}return t.json()}async function X(){var t;const e=await fetch("/api/sync",{method:"POST"});if(!e.ok){const n=await e.json().catch(()=>({error:{message:"API error"}}));throw new Error(((t=n.error)==null?void 0:t.message)||`HTTP ${e.status}`)}return e.json()}async function Y(){return o("/api/sync")}async function Z(){return o("/api/config")}async function ee(e){var n;const t=await fetch("/api/config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const s=await t.json().catch(()=>({error:{message:"API error"}}));throw new Error(((n=s.error)==null?void 0:n.message)||`HTTP ${t.status}`)}return t.json()}async function te(e){return o(u("/api/tools",e))}async function ne(){return o("/api/detected-tools")}async function se(e){var c;const t=new FormData;t.append("file",e);const n=await fetch("/api/import/kelivo",{method:"POST",body:t}),s=await n.json().catch(()=>null);if(!n.ok)throw new Error(((c=s==null?void 0:s.error)==null?void 0:c.message)||`HTTP ${n.status}`);return s}async function re(){return o("/api/quotas")}async function oe(){return o("/api/auth/status")}async function ae(e){var n;const t=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:e})});if(!t.ok){const s=await t.json().catch(()=>({error:{message:"API error"}}));throw new Error(((n=s.error)==null?void 0:n.message)||`HTTP ${t.status}`)}return t.json()}async function ce(){return o("/api/leaderboard/auth/status")}async function ie(){var t;const e=await fetch("/api/leaderboard/auth/start",{method:"POST"});if(!e.ok){const n=await e.json().catch(()=>({error:{message:"API error"}}));throw new Error(((t=n.error)==null?void 0:t.message)||`HTTP ${e.status}`)}return e.json()}async function fe(e){var s;const t=await fetch("/api/leaderboard/auth/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({device_request_id:e})}),n=await t.json().catch(()=>null);if(t.status===202||n!=null&&n.pending)return n||{pending:!0};if(!t.ok)throw new Error(((s=n==null?void 0:n.error)==null?void 0:s.message)||`HTTP ${t.status}`);return n}async function he(){var t;const e=await fetch("/api/leaderboard/auth/logout",{method:"POST"});if(!e.ok){const n=await e.json().catch(()=>({error:{message:"API error"}}));throw new Error(((t=n.error)==null?void 0:t.message)||`HTTP ${e.status}`)}return e.json()}async function ue(){var t;const e=await fetch("/api/leaderboard/upload",{method:"POST"});if(!e.ok){const n=await e.json().catch(()=>({error:{message:"API error"}}));throw new Error(((t=n.error)==null?void 0:t.message)||`HTTP ${e.status}`)}return e.json()}async function de(){var t;const e=await fetch("/api/exchange-rate/refresh",{method:"POST"});if(!e.ok){const n=await e.json().catch(()=>({error:{message:"API error"}}));throw new Error(((t=n.error)==null?void 0:t.message)||`HTTP ${e.status}`)}return e.json()}async function pe(e){return o(u("/api/config/credential",{ref:e}))}const v="aiusage:settings-updated";function we(e){typeof window>"u"||window.dispatchEvent(new CustomEvent(v,{detail:e}))}export{we as A,de as B,se as C,pe as D,te as E,oe as F,ae as G,v as S,Z as a,ce as b,ee as c,fe as d,q as e,J as f,z as g,N as h,M as i,R as j,V as k,he as l,_ as m,W as n,K as o,re as p,B as q,Q as r,ie as s,G as t,ue as u,x as v,F as w,ne as x,Y as y,X as z};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var mt=Object.defineProperty;var wt=(e,n,t)=>n in e?mt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var P=(e,n,t)=>wt(e,typeof n!="symbol"?n+"":n,t);import{o as je,t as yt}from"./scheduler.DsWd5xup.js";import{w as ye}from"./index.m3oCcA6N.js";new URL("sveltekit-internal://");function _t(e,n){return e==="/"||n==="ignore"?e:n==="never"?e.endsWith("/")?e.slice(0,-1):e:n==="always"&&!e.endsWith("/")?e+"/":e}function vt(e){return e.split("%25").map(decodeURI).join("%25")}function bt(e){for(const n in e)e[n]=decodeURIComponent(e[n]);return e}function ue({href:e}){return e.split("#")[0]}function At(e,n,t,r=!1){const a=new URL(e);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(o,c){if(c==="get"||c==="getAll"||c==="has")return f=>(t(f),o[c](f));n();const i=Reflect.get(o,c);return typeof i=="function"?i.bind(o):i}}),enumerable:!0,configurable:!0});const s=["href","pathname","search","toString","toJSON"];r&&s.push("hash");for(const o of s)Object.defineProperty(a,o,{get(){return n(),e[o]},enumerable:!0,configurable:!0});return a}const kt="/__data.json",Et=".html__data.json";function St(e){return e.endsWith(".html")?e.replace(/\.html$/,Et):e.replace(/\/$/,"")+kt}function Rt(...e){let n=5381;for(const t of e)if(typeof t=="string"){let r=t.length;for(;r;)n=n*33^t.charCodeAt(--r)}else if(ArrayBuffer.isView(t)){const r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);let a=r.length;for(;a;)n=n*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(n>>>0).toString(36)}function It(e){const n=atob(e),t=new Uint8Array(n.length);for(let r=0;r<n.length;r++)t[r]=n.charCodeAt(r);return t.buffer}const He=window.fetch;window.fetch=(e,n)=>((e instanceof Request?e.method:(n==null?void 0:n.method)||"GET")!=="GET"&&M.delete(_e(e)),He(e,n));const M=new Map;function Ut(e,n){const t=_e(e,n),r=document.querySelector(t);if(r!=null&&r.textContent){let{body:a,...s}=JSON.parse(r.textContent);const o=r.getAttribute("data-ttl");return o&&M.set(t,{body:a,init:s,ttl:1e3*Number(o)}),r.getAttribute("data-b64")!==null&&(a=It(a)),Promise.resolve(new Response(a,s))}return window.fetch(e,n)}function Tt(e,n,t){if(M.size>0){const r=_e(e,t),a=M.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(t==null?void 0:t.cache))return new Response(a.body,a.init);M.delete(r)}}return window.fetch(n,t)}function _e(e,n){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(n!=null&&n.headers||n!=null&&n.body){const a=[];n.headers&&a.push([...new Headers(n.headers)].join(",")),n.body&&(typeof n.body=="string"||ArrayBuffer.isView(n.body))&&a.push(n.body),r+=`[data-hash="${Rt(...a)}"]`}return r}const Lt=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Pt(e){const n=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${jt(e).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return n.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/(.*))?";const s=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(s)return n.push({name:s[1],matcher:s[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const o=r.split(/\[(.+?)\](?!\])/);return"/"+o.map((i,f)=>{if(f%2){if(i.startsWith("x+"))return de(String.fromCharCode(parseInt(i.slice(2),16)));if(i.startsWith("u+"))return de(String.fromCharCode(...i.slice(2).split("-").map(l=>parseInt(l,16))));const h=Lt.exec(i),[,u,g,p,d]=h;return n.push({name:p,matcher:d,optional:!!u,rest:!!g,chained:g?f===1&&o[0]==="":!1}),g?"(.*?)":u?"([^/]*)?":"([^/]+?)"}return de(i)}).join("")}).join("")}/?$`),params:n}}function Ot(e){return!/^\([^)]+\)$/.test(e)}function jt(e){return e.slice(1).split("/").filter(Ot)}function Nt(e,n,t){const r={},a=e.slice(1),s=a.filter(c=>c!==void 0);let o=0;for(let c=0;c<n.length;c+=1){const i=n[c];let f=a[c-o];if(i.chained&&i.rest&&o&&(f=a.slice(c-o,c+1).filter(h=>h).join("/"),o=0),f===void 0){i.rest&&(r[i.name]="");continue}if(!i.matcher||t[i.matcher](f)){r[i.name]=f;const h=n[c+1],u=a[c+1];h&&!h.rest&&h.optional&&u&&i.chained&&(o=0),!h&&!u&&Object.keys(r).length===s.length&&(o=0);continue}if(i.optional&&i.chained){o++;continue}return}if(!o)return r}function de(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function $t({nodes:e,server_loads:n,dictionary:t,matchers:r}){const a=new Set(n);return Object.entries(t).map(([c,[i,f,h]])=>{const{pattern:u,params:g}=Pt(c),p={id:c,exec:d=>{const l=u.exec(d);if(l)return Nt(l,g,r)},errors:[1,...h||[]].map(d=>e[d]),layouts:[0,...f||[]].map(o),leaf:s(i)};return p.errors.length=p.layouts.length=Math.max(p.errors.length,p.layouts.length),p});function s(c){const i=c<0;return i&&(c=~c),[i,e[c]]}function o(c){return c===void 0?c:[a.has(c),e[c]]}}function Ke(e,n=JSON.parse){try{return n(sessionStorage[e])}catch{}}function Ne(e,n,t=JSON.stringify){const r=t(n);try{sessionStorage[e]=r}catch{}}var Me;const L=((Me=globalThis.__sveltekit_a24kl5)==null?void 0:Me.base)??"";var qe;const xt=((qe=globalThis.__sveltekit_a24kl5)==null?void 0:qe.assets)??L,Ct="1780909986858",We="sveltekit:snapshot",Ye="sveltekit:scroll",Je="sveltekit:states",Dt="sveltekit:pageurl",C="sveltekit:history",H="sveltekit:navigation",z={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},J=location.origin;function ze(e){if(e instanceof URL)return e;let n=document.baseURI;if(!n){const t=document.getElementsByTagName("base");n=t.length?t[0].href:document.URL}return new URL(e,n)}function ve(){return{x:pageXOffset,y:pageYOffset}}function x(e,n){return e.getAttribute(`data-sveltekit-${n}`)}const $e={...z,"":z.hover};function Xe(e){let n=e.assignedSlot??e.parentNode;return(n==null?void 0:n.nodeType)===11&&(n=n.host),n}function Ze(e,n){for(;e&&e!==n;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=Xe(e)}}function ge(e,n,t){let r;try{r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI)}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,s=!r||!!a||oe(r,n,t)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),o=(r==null?void 0:r.origin)===J&&e.hasAttribute("download");return{url:r,external:s,target:a,download:o}}function X(e){let n=null,t=null,r=null,a=null,s=null,o=null,c=e;for(;c&&c!==document.documentElement;)r===null&&(r=x(c,"preload-code")),a===null&&(a=x(c,"preload-data")),n===null&&(n=x(c,"keepfocus")),t===null&&(t=x(c,"noscroll")),s===null&&(s=x(c,"reload")),o===null&&(o=x(c,"replacestate")),c=Xe(c);function i(f){switch(f){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:$e[r??"off"],preload_data:$e[a??"off"],keepfocus:i(n),noscroll:i(t),reload:i(s),replace_state:i(o)}}function xe(e){const n=ye(e);let t=!0;function r(){t=!0,n.update(o=>o)}function a(o){t=!1,n.set(o)}function s(o){let c;return n.subscribe(i=>{(c===void 0||t&&i!==c)&&o(c=i)})}return{notify:r,set:a,subscribe:s}}const Qe={v:()=>{}};function Bt(){const{set:e,subscribe:n}=ye(!1);let t;async function r(){clearTimeout(t);try{const a=await fetch(`${xt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const o=(await a.json()).version!==Ct;return o&&(e(!0),Qe.v(),clearTimeout(t)),o}catch{return!1}}return{subscribe:n,check:r}}function oe(e,n,t){return e.origin!==J||!e.pathname.startsWith(n)?!0:t?!(e.pathname===n+"/"||e.protocol==="file:"&&e.pathname.replace(/\/[^/]+\.html?$/,"")===n):!1}function Ft(e){return Uint8Array.fromBase64(e).buffer}function Vt(e){return Uint8Array.from(Buffer.from(e,"base64")).buffer}function Mt(e){const n=atob(e),t=n.length,r=new Uint8Array(t);for(let a=0;a<t;a++)r[a]=n.charCodeAt(a);return r.buffer}const qt=typeof Uint8Array.fromBase64=="function";var Ge;const Gt=typeof process=="object"&&((Ge=process.versions)==null?void 0:Ge.node)!==void 0,Ht=qt?Ft:Gt?Vt:Mt,Kt=-1,Wt=-2,Yt=-3,Jt=-4,zt=-5,Xt=-6,Zt=-7;function Qt(e,n){if(typeof e=="number")return s(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const t=e,r=Array(t.length);let a=null;function s(o,c=!1){if(o===Kt)return;if(o===Yt)return NaN;if(o===Jt)return 1/0;if(o===zt)return-1/0;if(o===Xt)return-0;if(c||typeof o!="number")throw new Error("Invalid input");if(o in r)return r[o];const i=t[o];if(!i||typeof i!="object")r[o]=i;else if(Array.isArray(i))if(typeof i[0]=="string"){const f=i[0],h=n&&Object.hasOwn(n,f)?n[f]:void 0;if(h){let u=i[1];if(typeof u!="number"&&(u=t.push(i[1])-1),a??(a=new Set),a.has(u))throw new Error("Invalid circular reference");return a.add(u),r[o]=h(s(u)),a.delete(u),r[o]}switch(f){case"Date":r[o]=new Date(i[1]);break;case"Set":const u=new Set;r[o]=u;for(let d=1;d<i.length;d+=1)u.add(s(i[d]));break;case"Map":const g=new Map;r[o]=g;for(let d=1;d<i.length;d+=2)g.set(s(i[d]),s(i[d+1]));break;case"RegExp":r[o]=new RegExp(i[1],i[2]);break;case"Object":{const d=i[1];if(typeof t[d]=="object"&&t[d][0]!=="BigInt")throw new Error("Invalid input");r[o]=Object(s(d));break}case"BigInt":r[o]=BigInt(i[1]);break;case"null":const p=Object.create(null);r[o]=p;for(let d=1;d<i.length;d+=2){if(i[d]==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");p[i[d]]=s(i[d+1])}break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Float16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":case"DataView":{if(t[i[1]][0]!=="ArrayBuffer")throw new Error("Invalid data");const d=globalThis[f],l=s(i[1]);r[o]=i[2]!==void 0?new d(l,i[2],i[3]):new d(l);break}case"ArrayBuffer":{const d=i[1];if(typeof d!="string")throw new Error("Invalid ArrayBuffer encoding");const l=Ht(d);r[o]=l;break}case"Temporal.Duration":case"Temporal.Instant":case"Temporal.PlainDate":case"Temporal.PlainTime":case"Temporal.PlainDateTime":case"Temporal.PlainMonthDay":case"Temporal.PlainYearMonth":case"Temporal.ZonedDateTime":{const d=f.slice(9);r[o]=Temporal[d].from(i[1]);break}case"URL":{const d=new URL(i[1]);r[o]=d;break}case"URLSearchParams":{const d=new URLSearchParams(i[1]);r[o]=d;break}default:throw new Error(`Unknown type ${f}`)}}else if(i[0]===Zt){const f=i[1];if(!Number.isInteger(f)||f<0)throw new Error("Invalid input");const h=new Array(f);r[o]=h;for(let u=2;u<i.length;u+=2){const g=i[u];if(!Number.isInteger(g)||g<0||g>=f)throw new Error("Invalid input");h[g]=s(i[u+1])}}else{const f=new Array(i.length);r[o]=f;for(let h=0;h<i.length;h+=1){const u=i[h];u!==Wt&&(f[h]=s(u))}}else{const f={};r[o]=f;for(const h of Object.keys(i)){if(h==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");const u=i[h];f[h]=s(u)}}return r[o]}return s(0)}const et=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...et];const en=new Set([...et]);[...en];function tn(e){return e.filter(n=>n!=null)}class se{constructor(n,t){this.status=n,typeof t=="string"?this.body={message:t}:t?this.body=t:this.body={message:`Error: ${n}`}}toString(){return JSON.stringify(this.body)}}class be{constructor(n,t){this.status=n,this.location=t}}class Ae extends Error{constructor(n,t,r){super(r),this.status=n,this.text=t}}const nn="x-sveltekit-invalidated",rn="x-sveltekit-trailing-slash";function Z(e){return e instanceof se||e instanceof Ae?e.status:500}function an(e){return e instanceof Ae?e.text:"Internal Error"}let I,K,he;const on=je.toString().includes("$$")||/function \w+\(\) \{\}/.test(je.toString());on?(I={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},K={current:null},he={current:!1}):(I=new class{constructor(){P(this,"data",$state.raw({}));P(this,"form",$state.raw(null));P(this,"error",$state.raw(null));P(this,"params",$state.raw({}));P(this,"route",$state.raw({id:null}));P(this,"state",$state.raw({}));P(this,"status",$state.raw(-1));P(this,"url",$state.raw(new URL("https://example.com")))}},K=new class{constructor(){P(this,"current",$state.raw(null))}},he=new class{constructor(){P(this,"current",$state.raw(!1))}},Qe.v=()=>he.current=!0);function sn(e){Object.assign(I,e)}const cn=new Set(["icon","shortcut icon","apple-touch-icon"]),$=Ke(Ye)??{},W=Ke(We)??{},j={url:xe({}),page:xe({}),navigating:ye(null),updated:Bt()};function ke(e){$[e]=ve()}function ln(e,n){let t=e+1;for(;$[t];)delete $[t],t+=1;for(t=n+1;W[t];)delete W[t],t+=1}function B(e){return location.href=e.href,new Promise(()=>{})}async function tt(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(L||"/");e&&await e.update()}}function Ce(){}let ie,me,Q,O,we,A;const nt=[],ee=[];let U=null;const rt=new Set,fn=new Set,q=new Set;let y={branch:[],error:null,url:null},Ee=!1,te=!1,De=!0,Y=!1,F=!1,at=!1,Se=!1,ot,R,T,ne;const G=new Set;async function Rn(e,n,t){var a,s,o,c;document.URL!==location.href&&(location.href=location.href),A=e,await((s=(a=e.hooks).init)==null?void 0:s.call(a)),ie=$t(e),O=document.documentElement,we=n,me=e.nodes[0],Q=e.nodes[1],me(),Q(),R=(o=history.state)==null?void 0:o[C],T=(c=history.state)==null?void 0:c[H],R||(R=T=Date.now(),history.replaceState({...history.state,[C]:R,[H]:T},""));const r=$[R];r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y)),t?await yn(we,t):mn(location.href,{replaceState:!0}),wn()}function un(){nt.length=0,Se=!1}function st(e){ee.some(n=>n==null?void 0:n.snapshot)&&(W[e]=ee.map(n=>{var t;return(t=n==null?void 0:n.snapshot)==null?void 0:t.capture()}))}function it(e){var n;(n=W[e])==null||n.forEach((t,r)=>{var a,s;(s=(a=ee[r])==null?void 0:a.snapshot)==null||s.restore(t)})}function Be(){ke(R),Ne(Ye,$),st(T),Ne(We,W)}async function Re(e,n,t,r){return V({type:"goto",url:ze(e),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:t,nav_token:r,accept:()=>{n.invalidateAll&&(Se=!0)}})}async function dn(e){if(e.id!==(U==null?void 0:U.id)){const n={};G.add(n),U={id:e.id,token:n,promise:lt({...e,preload:n}).then(t=>(G.delete(n),t.type==="loaded"&&t.state.error&&(U=null),t))}}return U.promise}async function pe(e){const n=ie.find(t=>t.exec(ft(e)));n&&await Promise.all([...n.layouts,n.leaf].map(t=>t==null?void 0:t[1]()))}function ct(e,n,t){var s;y=e.state;const r=document.querySelector("style[data-sveltekit]");r&&r.remove(),Object.assign(I,e.props.page),ot=new A.root({target:n,props:{...e.props,stores:j,components:ee},hydrate:t,sync:!1}),it(T);const a={from:null,to:{params:y.params,route:{id:((s=y.route)==null?void 0:s.id)??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};q.forEach(o=>o(a)),te=!0}function re({url:e,params:n,branch:t,status:r,error:a,route:s,form:o}){let c="never";if(L&&(e.pathname===L||e.pathname===L+"/"))c="always";else for(const p of t)(p==null?void 0:p.slash)!==void 0&&(c=p.slash);e.pathname=_t(e.pathname,c),e.search=e.search;const i={type:"loaded",state:{url:e,params:n,branch:t,error:a,route:s},props:{constructors:tn(t).map(p=>p.node.component),page:Le(I)}};o!==void 0&&(i.props.form=o);let f={},h=!I,u=0;for(let p=0;p<Math.max(t.length,y.branch.length);p+=1){const d=t[p],l=y.branch[p];(d==null?void 0:d.data)!==(l==null?void 0:l.data)&&(h=!0),d&&(f={...f,...d.data},h&&(i.props[`data_${u}`]=f),u+=1)}return(!y.url||e.href!==y.url.href||y.error!==a||o!==void 0&&o!==I.form||h)&&(i.props.page={error:a,params:n,route:{id:(s==null?void 0:s.id)??null},state:{},status:r,url:new URL(e),form:o??null,data:h?f:I.data}),i}async function Ie({loader:e,parent:n,url:t,params:r,route:a,server_data_node:s}){var h,u,g;let o=null,c=!0;const i={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},f=await e();if((h=f.universal)!=null&&h.load){let p=function(...l){for(const m of l){const{href:b}=new URL(m,t);i.dependencies.add(b)}};const d={route:new Proxy(a,{get:(l,m)=>(c&&(i.route=!0),l[m])}),params:new Proxy(r,{get:(l,m)=>(c&&i.params.add(m),l[m])}),data:(s==null?void 0:s.data)??null,url:At(t,()=>{c&&(i.url=!0)},l=>{c&&i.search_params.add(l)},A.hash),async fetch(l,m){let b;l instanceof Request?(b=l.url,m={body:l.method==="GET"||l.method==="HEAD"?void 0:await l.blob(),cache:l.cache,credentials:l.credentials,headers:[...l.headers].length?l.headers:void 0,integrity:l.integrity,keepalive:l.keepalive,method:l.method,mode:l.mode,redirect:l.redirect,referrer:l.referrer,referrerPolicy:l.referrerPolicy,signal:l.signal,...m}):b=l;const E=new URL(b,t);return c&&p(E.href),E.origin===t.origin&&(b=E.href.slice(t.origin.length)),te?Tt(b,E.href,m):Ut(b,m)},setHeaders:()=>{},depends:p,parent(){return c&&(i.parent=!0),n()},untrack(l){c=!1;try{return l()}finally{c=!0}}};o=await f.universal.load.call(null,d)??null}return{node:f,loader:e,server:s,universal:(u=f.universal)!=null&&u.load?{type:"data",data:o,uses:i}:null,data:o??(s==null?void 0:s.data)??null,slash:((g=f.universal)==null?void 0:g.trailingSlash)??(s==null?void 0:s.slash)}}function Fe(e,n,t,r,a,s){if(Se)return!0;if(!a)return!1;if(a.parent&&e||a.route&&n||a.url&&t)return!0;for(const o of a.search_params)if(r.has(o))return!0;for(const o of a.params)if(s[o]!==y.params[o])return!0;for(const o of a.dependencies)if(nt.some(c=>c(new URL(o))))return!0;return!1}function Ue(e,n){return(e==null?void 0:e.type)==="data"?e:(e==null?void 0:e.type)==="skip"?n??null:null}function hn(e,n){if(!e)return new Set(n.searchParams.keys());const t=new Set([...e.searchParams.keys(),...n.searchParams.keys()]);for(const r of t){const a=e.searchParams.getAll(r),s=n.searchParams.getAll(r);a.every(o=>s.includes(o))&&s.every(o=>a.includes(o))&&t.delete(r)}return t}function Ve({error:e,url:n,route:t,params:r}){return{type:"loaded",state:{error:e,url:n,route:t,params:r,branch:[]},props:{page:Le(I),constructors:[]}}}async function lt({id:e,invalidating:n,url:t,params:r,route:a,preload:s}){if((U==null?void 0:U.id)===e)return G.delete(U.token),U.promise;const{errors:o,layouts:c,leaf:i}=a,f=[...c,i];o.forEach(w=>w==null?void 0:w().catch(()=>{})),f.forEach(w=>w==null?void 0:w[1]().catch(()=>{}));let h=null;const u=y.url?e!==ae(y.url):!1,g=y.route?a.id!==y.route.id:!1,p=hn(y.url,t);let d=!1;const l=f.map((w,_)=>{var N;const k=y.branch[_],S=!!(w!=null&&w[0])&&((k==null?void 0:k.loader)!==w[1]||Fe(d,g,u,p,(N=k.server)==null?void 0:N.uses,r));return S&&(d=!0),S});if(l.some(Boolean)){try{h=await ht(t,l)}catch(w){const _=await D(w,{url:t,params:r,route:{id:e}});return G.has(s)?Ve({error:_,url:t,params:r,route:a}):ce({status:Z(w),error:_,url:t,route:a})}if(h.type==="redirect")return h}const m=h==null?void 0:h.nodes;let b=!1;const E=f.map(async(w,_)=>{var le;if(!w)return;const k=y.branch[_],S=m==null?void 0:m[_];if((!S||S.type==="skip")&&w[1]===(k==null?void 0:k.loader)&&!Fe(b,g,u,p,(le=k.universal)==null?void 0:le.uses,r))return k;if(b=!0,(S==null?void 0:S.type)==="error")throw S;return Ie({loader:w[1],url:t,params:r,route:a,parent:async()=>{var Oe;const Pe={};for(let fe=0;fe<_;fe+=1)Object.assign(Pe,(Oe=await E[fe])==null?void 0:Oe.data);return Pe},server_data_node:Ue(S===void 0&&w[0]?{type:"skip"}:S??null,w[0]?k==null?void 0:k.server:void 0)})});for(const w of E)w.catch(()=>{});const v=[];for(let w=0;w<f.length;w+=1)if(f[w])try{v.push(await E[w])}catch(_){if(_ instanceof be)return{type:"redirect",location:_.location};if(G.has(s))return Ve({error:await D(_,{params:r,url:t,route:{id:a.id}}),url:t,params:r,route:a});let k=Z(_),S;if(m!=null&&m.includes(_))k=_.status??k,S=_.error;else if(_ instanceof se)S=_.body;else{if(await j.updated.check())return await tt(),await B(t);S=await D(_,{params:r,url:t,route:{id:a.id}})}const N=await pn(w,v,o);return N?re({url:t,params:r,branch:v.slice(0,N.idx).concat(N.node),status:k,error:S,route:a}):await dt(t,{id:a.id},S,k)}else v.push(void 0);return re({url:t,params:r,branch:v,status:200,error:null,route:a,form:n?void 0:null})}async function pn(e,n,t){for(;e--;)if(t[e]){let r=e;for(;!n[r];)r-=1;try{return{idx:r+1,node:{node:await t[e](),loader:t[e],data:{},server:null,universal:null}}}catch{continue}}}async function ce({status:e,error:n,url:t,route:r}){const a={};let s=null;if(A.server_loads[0]===0)try{const c=await ht(t,[!0]);if(c.type!=="data"||c.nodes[0]&&c.nodes[0].type!=="data")throw 0;s=c.nodes[0]??null}catch{(t.origin!==J||t.pathname!==location.pathname||Ee)&&await B(t)}try{const c=await Ie({loader:me,url:t,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:Ue(s)}),i={node:await Q(),loader:Q,universal:null,server:null,data:null};return re({url:t,params:a,branch:[c,i],status:e,error:n,route:null})}catch(c){if(c instanceof be)return Re(new URL(c.location,location.href),{},0);throw c}}function Te(e,n){if(!e||oe(e,L,A.hash))return;let t;try{if(t=A.hooks.reroute({url:new URL(e)})??e,typeof t=="string"){const a=new URL(e);A.hash?a.hash=t:a.pathname=t,t=a}}catch{return}const r=ft(t);for(const a of ie){const s=a.exec(r);if(s)return{id:ae(e),invalidating:n,route:a,params:bt(s),url:e}}}function ft(e){return vt(A.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(L.length))||"/"}function ae(e){return(A.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function ut({url:e,type:n,intent:t,delta:r}){let a=!1;const s=gt(y,t,e,n);r!==void 0&&(s.navigation.delta=r);const o={...s.navigation,cancel:()=>{a=!0,s.reject(new Error("navigation cancelled"))}};return Y||rt.forEach(c=>c(o)),a?null:s}async function V({type:e,url:n,popped:t,keepfocus:r,noscroll:a,replace_state:s,state:o={},redirect_count:c=0,nav_token:i={},accept:f=Ce,block:h=Ce}){const u=Te(n,!1),g=ut({url:n,type:e,delta:t==null?void 0:t.delta,intent:u});if(!g){h();return}const p=R,d=T;f(),Y=!0,te&&j.navigating.set(K.current=g.navigation),ne=i;let l=u&&await lt(u);if(!l){if(oe(n,L,A.hash))return await B(n);l=await dt(n,{id:null},await D(new Ae(404,"Not Found",`Not found: ${n.pathname}`),{url:n,params:{},route:{id:null}}),404)}if(n=(u==null?void 0:u.url)||n,ne!==i)return g.reject(new Error("navigation aborted")),!1;if(l.type==="redirect")if(c>=20)l=await ce({status:500,error:await D(new Error("Redirect loop"),{url:n,params:{},route:{id:null}}),url:n,route:{id:null}});else return Re(new URL(l.location,n).href,{},c+1,i),!1;else l.props.page.status>=400&&await j.updated.check()&&(await tt(),await B(n));if(un(),ke(p),st(d),l.props.page.url.pathname!==n.pathname&&(n.pathname=l.props.page.url.pathname),o=t?t.state:o,!t){const v=s?0:1,w={[C]:R+=v,[H]:T+=v,[Je]:o};(s?history.replaceState:history.pushState).call(history,w,"",n),s||ln(R,T)}if(U=null,l.props.page.state=o,te){y=l.state,l.props.page&&(l.props.page.url=n);const v=(await Promise.all(Array.from(fn,w=>w(g.navigation)))).filter(w=>typeof w=="function");if(v.length>0){let w=function(){v.forEach(_=>{q.delete(_)})};v.push(w),v.forEach(_=>{q.add(_)})}ot.$set(l.props),sn(l.props.page),at=!0}else ct(l,we,!1);const{activeElement:m}=document;await yt();const b=t?t.scroll:a?ve():null;if(De){const v=n.hash&&document.getElementById(decodeURIComponent(A.hash?n.hash.split("#")[2]??"":n.hash.slice(1)));b?scrollTo(b.x,b.y):v?v.scrollIntoView():scrollTo(0,0)}const E=document.activeElement!==m&&document.activeElement!==document.body;!r&&!E&&_n(),De=!0,l.props.page&&Object.assign(I,l.props.page),Y=!1,e==="popstate"&&it(T),g.fulfil(void 0),q.forEach(v=>v(g.navigation)),j.navigating.set(K.current=null)}async function dt(e,n,t,r){return e.origin===J&&e.pathname===location.pathname&&!Ee?await ce({status:r,error:t,url:e,route:n}):await B(e)}function gn(){let e;O.addEventListener("mousemove",s=>{const o=s.target;clearTimeout(e),e=setTimeout(()=>{r(o,2)},20)});function n(s){s.defaultPrevented||r(s.composedPath()[0],1)}O.addEventListener("mousedown",n),O.addEventListener("touchstart",n,{passive:!0});const t=new IntersectionObserver(s=>{for(const o of s)o.isIntersecting&&(pe(new URL(o.target.href)),t.unobserve(o.target))},{threshold:0});function r(s,o){const c=Ze(s,O);if(!c)return;const{url:i,external:f,download:h}=ge(c,L,A.hash);if(f||h)return;const u=X(c),g=i&&ae(y.url)===ae(i);if(!u.reload&&!g)if(o<=u.preload_data){const p=Te(i,!1);p&&dn(p)}else o<=u.preload_code&&pe(i)}function a(){t.disconnect();for(const s of O.querySelectorAll("a")){const{url:o,external:c,download:i}=ge(s,L,A.hash);if(c||i)continue;const f=X(s);f.reload||(f.preload_code===z.viewport&&t.observe(s),f.preload_code===z.eager&&pe(o))}}q.add(a),a()}function D(e,n){if(e instanceof se)return e.body;const t=Z(e),r=an(e);return A.hooks.handleError({error:e,event:n,status:t,message:r})??{message:r}}function mn(e,n={}){return e=new URL(ze(e)),e.origin!==J?Promise.reject(new Error("goto: invalid URL")):Re(e,n,0)}function wn(){var n;history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let r=!1;if(Be(),!Y){const a=gt(y,void 0,null,"leave"),s={...a.navigation,cancel:()=>{r=!0,a.reject(new Error("navigation cancelled"))}};rt.forEach(o=>o(s))}r?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Be()}),(n=navigator.connection)!=null&&n.saveData||gn(),O.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const r=Ze(t.composedPath()[0],O);if(!r)return;const{url:a,external:s,target:o,download:c}=ge(r,L,A.hash);if(!a)return;if(o==="_parent"||o==="_top"){if(window.parent!==window)return}else if(o&&o!=="_self")return;const i=X(r);if(!(r instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||c)return;const[h,u]=(A.hash?a.hash.replace(/^#/,""):a.href).split("#"),g=h===ue(location);if(s||i.reload&&(!g||!u)){ut({url:a,type:"link"})?Y=!0:t.preventDefault();return}if(u!==void 0&&g){const[,p]=y.url.href.split("#");if(p===u){if(t.preventDefault(),u===""||u==="top"&&r.ownerDocument.getElementById("top")===null)window.scrollTo({top:0});else{const d=r.ownerDocument.getElementById(decodeURIComponent(u));d&&(d.scrollIntoView(),d.focus())}return}if(F=!0,ke(R),e(a),!i.replace_state)return;F=!1}t.preventDefault(),await new Promise(p=>{requestAnimationFrame(()=>{setTimeout(p,0)}),setTimeout(p,100)}),V({type:"link",url:a,keepfocus:i.keepfocus,noscroll:i.noscroll,replace_state:i.replace_state??a.href===location.href})}),O.addEventListener("submit",t=>{if(t.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(t.target),a=t.submitter;if(((a==null?void 0:a.formTarget)||r.target)==="_blank"||((a==null?void 0:a.formMethod)||r.method)!=="get")return;const c=new URL((a==null?void 0:a.hasAttribute("formaction"))&&(a==null?void 0:a.formAction)||r.action);if(oe(c,L,!1))return;const i=t.target,f=X(i);if(f.reload)return;t.preventDefault(),t.stopPropagation();const h=new FormData(i),u=a==null?void 0:a.getAttribute("name");u&&h.append(u,(a==null?void 0:a.getAttribute("value"))??""),c.search=new URLSearchParams(h).toString(),V({type:"form",url:c,keepfocus:f.keepfocus,noscroll:f.noscroll,replace_state:f.replace_state??c.href===location.href})}),addEventListener("popstate",async t=>{var r;if((r=t.state)!=null&&r[C]){const a=t.state[C];if(ne={},a===R)return;const s=$[a],o=t.state[Je]??{},c=new URL(t.state[Dt]??location.href),i=t.state[H],f=y.url?ue(location)===ue(y.url):!1;if(i===T&&(at||f)){o!==I.state&&(I.state=o),e(c),$[R]=ve(),s&&scrollTo(s.x,s.y),R=a;return}const u=a-R;await V({type:"popstate",url:c,popped:{state:o,scroll:s,delta:u},accept:()=>{R=a,T=i},block:()=>{history.go(-u)},nav_token:ne})}else if(!F){const a=new URL(location.href);e(a)}}),addEventListener("hashchange",()=>{F?(F=!1,history.replaceState({...history.state,[C]:++R,[H]:T},"",location.href)):A.hash&&y.url.hash===location.hash&&V({type:"goto",url:y.url})});for(const t of document.querySelectorAll("link"))cn.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&j.navigating.set(K.current=null)});function e(t){y.url=I.url=t,j.page.set(Le(I)),j.page.notify()}}async function yn(e,{status:n=200,error:t,node_ids:r,params:a,route:s,data:o,form:c}){Ee=!0;const i=new URL(location.href);({params:a={},route:s={id:null}}=Te(i,!1)||{});let f,h=!0;try{const u=r.map(async(d,l)=>{const m=o[l];return m!=null&&m.uses&&(m.uses=pt(m.uses)),Ie({loader:A.nodes[d],url:i,params:a,route:s,parent:async()=>{const b={};for(let E=0;E<l;E+=1)Object.assign(b,(await u[E]).data);return b},server_data_node:Ue(m)})}),g=await Promise.all(u),p=ie.find(({id:d})=>d===s.id);if(p){const d=p.layouts;for(let l=0;l<d.length;l++)d[l]||g.splice(l,0,void 0)}f=re({url:i,params:a,branch:g,status:n,error:t,form:c,route:p??null})}catch(u){if(u instanceof be){await B(new URL(u.location,location.href));return}f=await ce({status:Z(u),error:await D(u,{url:i,params:a,route:s}),url:i,route:s}),e.textContent="",h=!1}f.props.page&&(f.props.page.state={}),ct(f,e,h)}async function ht(e,n){var a;const t=new URL(e);t.pathname=St(e.pathname),e.pathname.endsWith("/")&&t.searchParams.append(rn,"1"),t.searchParams.append(nn,n.map(s=>s?"1":"0").join(""));const r=await He(t.href);if(!r.ok){let s;throw(a=r.headers.get("content-type"))!=null&&a.includes("application/json")?s=await r.json():r.status===404?s="Not Found":r.status===500&&(s="Internal Error"),new se(r.status,s)}return new Promise(async s=>{var u;const o=new Map,c=r.body.getReader(),i=new TextDecoder;function f(g){return Qt(g,{...A.decoders,Promise:p=>new Promise((d,l)=>{o.set(p,{fulfil:d,reject:l})})})}let h="";for(;;){const{done:g,value:p}=await c.read();if(g&&!h)break;for(h+=!p&&h?`
|
|
2
|
-
`:i.decode(p,{stream:!0});;){const d=h.indexOf(`
|
|
3
|
-
`);if(d===-1)break;const l=JSON.parse(h.slice(0,d));if(h=h.slice(d+1),l.type==="redirect")return s(l);if(l.type==="data")(u=l.nodes)==null||u.forEach(m=>{(m==null?void 0:m.type)==="data"&&(m.uses=pt(m.uses),m.data=f(m.data))}),s(l);else if(l.type==="chunk"){const{id:m,data:b,error:E}=l,v=o.get(m);o.delete(m),E?v.reject(f(E)):v.fulfil(f(b))}}}})}function pt(e){return{dependencies:new Set((e==null?void 0:e.dependencies)??[]),params:new Set((e==null?void 0:e.params)??[]),parent:!!(e!=null&&e.parent),route:!!(e!=null&&e.route),url:!!(e!=null&&e.url),search_params:new Set((e==null?void 0:e.search_params)??[])}}function _n(){const e=document.querySelector("[autofocus]");if(e)e.focus();else{const n=document.body,t=n.getAttribute("tabindex");n.tabIndex=-1,n.focus({preventScroll:!0,focusVisible:!1}),t!==null?n.setAttribute("tabindex",t):n.removeAttribute("tabindex");const r=getSelection();if(r&&r.type!=="None"){const a=[];for(let s=0;s<r.rangeCount;s+=1)a.push(r.getRangeAt(s));setTimeout(()=>{if(r.rangeCount===a.length){for(let s=0;s<r.rangeCount;s+=1){const o=a[s],c=r.getRangeAt(s);if(o.commonAncestorContainer!==c.commonAncestorContainer||o.startContainer!==c.startContainer||o.endContainer!==c.endContainer||o.startOffset!==c.startOffset||o.endOffset!==c.endOffset)return}r.removeAllRanges()}})}}}function gt(e,n,t,r){var i,f;let a,s;const o=new Promise((h,u)=>{a=h,s=u});return o.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:((i=e.route)==null?void 0:i.id)??null},url:e.url},to:t&&{params:(n==null?void 0:n.params)??null,route:{id:((f=n==null?void 0:n.route)==null?void 0:f.id)??null},url:t},willUnload:!n,type:r,complete:o},fulfil:a,reject:s}}function Le(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}export{Rn as a,j as s};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{w as r,d}from"./index.m3oCcA6N.js";const n={en:{nav:{home:"Home",overview:"Overview",tokens:"Tokens",cost:"Cost",models:"Models",toolCalls:"Tool Calls",projects:"Projects",sessions:"Sessions",quotas:"Quotas",leaderboard:"Leaderboard",pricing:"Pricing",support:"Support",settings:"Settings",docs:"Docs",collapse:"Collapse",expand:"Expand",group:{overview:"Overview",analytics:"Analytics",activity:"Activity",system:"System"}},common:{loading:"Loading...",error:"Error",noData:"No data available",noDataHint:"Start using AI tools to see statistics here.",apply:"Apply",all:"All",previous:"Previous",next:"Next",page:"Page",of:"of"},range:{today:"Today",week:"This Week",month:"This Month",last30:"Last 30d",allTime:"All Time",from:"From",to:"To",pickMonth:"Month..."},overview:{title:"Overview",desc:"Aggregated token, cost and session stats across all AI tools.",totalTokens:"Total Tokens",totalCost:"Total Cost",activeDays:"Active Days",totalSessions:"Sessions",inputTokens:"Input",outputTokens:"Output",cacheRead:"Cache Read",cacheWrite:"Cache Write",byTool:"By AI Assistant",byProject:"By Project",topToolCalls:"Top Tool Calls",tool:"Tool",tokens:"Tokens",cost:"Cost",noToolData:"No data",noToolCalls:"No tool calls recorded",topMcpServers:"MCP Servers",noMcpCalls:"No MCP calls recorded",tabAll:"All",tabMcp:"MCP Servers"},tokens:{title:"Tokens",desc:"Daily token usage breakdown by type.",chartTitle:"Token Usage by Day",input:"Input",output:"Output",cacheRead:"Cache Read",cacheWrite:"Cache Write",thinking:"Thinking",date:"Date",total:"Total",modeBreakdown:"Breakdown",modeTotal:"Total",noData:"No token data",noDataHint:"No token usage recorded for this period."},projects:{title:"Projects",desc:"Token usage and cost ranked by project directory.",project:"Project",sessions:"Sessions",tokens:"Tokens",cost:"Cost",share:"Share",noData:"No project data",noDataHint:"No project usage recorded for this period."},cost:{title:"Cost",desc:"Daily spending trends and cost breakdown by tool and model.",totalCost:"Total Cost",chartTitle:"Cost by Day",byTool:"By AI Assistant",byModel:"By Model",noData:"No cost data",noDataHint:"No costs recorded for this period."},models:{title:"Models",desc:"Usage ranking across all AI models.",chartTitle:"Model Ranking",modeTokens:"Tokens",modeCost:"Cost",model:"Model",provider:"Provider",calls:"Calls",tokens:"Tokens",input:"Input",output:"Output",cacheRead:"Cache Read",cacheWrite:"Cache Write",thinking:"Thinking",total:"Total",cost:"Cost",share:"Share",noData:"No model data",noDataHint:"No model usage recorded for this period."},toolCalls:{title:"Tool Calls",desc:"Most frequently invoked tools by AI assistants.",noData:"No tool call data",noDataHint:"No tool calls recorded for this period.",typeAll:"All",typeBuiltin:"Built-in",typeMcp:"MCP",typeSkill:"Skill",badgeMcp:"mcp",badgeSkill:"skill",noToolCallData:"Tool call data is not available in this tool's data source."},sessions:{title:"Sessions",desc:"Per-session log with token and cost details.",assistant:"AI Assistant",time:"Time",tool:"Tool",model:"Model",input:"Input",output:"Output",cost:"Cost",duration:"Duration",toolCalls:"Tools",noData:"No sessions",noDataHint:"No sessions recorded for this period.",detail:{back:"← Sessions",title:"Session Detail",meta:{duration:"Duration",tokens:"Tokens",cost:"Cost",apiCalls:"API Calls",toolCalls:"Tool Calls",model:"Model",path:"Path",input:"Input",output:"Output",cacheRead:"Cache Read",cacheWrite:"Cache Write",thinking:"Thinking",totalTokens:"Total",sessionId:"Session"},gap:"gap",noToolCalls:"No tool calls",record:"API Call",toolCall:"Tool"}},theme:{system:"System",dark:"Dark",light:"Light"},pricing:{title:"Pricing",model:"Model",input:"Input",output:"Output",cacheRead:"Cache Read",cacheWrite:"Cache Write",thinking:"Thinking",status:"Status",actions:"Actions",edit:"Edit",save:"Save",cancel:"Cancel",reset:"Reset",recalc:"Recalculate Costs",recalcDone:"Recalculated",costsUpdating:"Updating costs...",costsUpdated:"Costs updated",default:"Default",override:"Custom",matched:"Matched by prefix",noPrice:"No pricing",perMillion:"/ 1M tokens"},sync:{trigger:"Sync",syncing:"Syncing...",started:"Sync started",inProgress:"Sync already running",complete:"Synced",failed:"Sync failed",notConfigured:"Not configured",lastSync:"Last sync",never:"Never",phase:{pulling:"Pulling",merging:"Merging",uploading:"Uploading",finalizing:"Finalizing"}},device:{allDevices:"All Devices",loading:"Loading..."},tool:{allTools:"All tools"},settings:{title:"Settings",save:"Save",saved:"Saved",general:"General",dataSources:"Data Sources",manualImports:"Manual Imports",manualImportsHint:"Import usage data from tools that export backup files instead of live local logs.",detectedTools:"Detected Tools",detectedToolsHint:"Auto-detected AI tools on this system. Override paths via AIUSAGE_*_PATH environment variables.",notConfigured:"Not configured",neverImported:"Not imported",lastImported:"Last imported",importBackup:"Import Backup",imported:"Imported",added:"Added",records:"records",kelivoInvalidFile:"Choose a Kelivo .zip backup or chats.json",kelivoImportFailed:"Import failed",toolFound:"Found",toolNotFound:"Not found",toolEmpty:"Empty",toolFiles:"files",sync:"Multi-device Sync",syncBackendCloudDesc:"Encrypted, fast, automatic. Sync usage data across all your devices with zero configuration.",syncCloudSetup:"Setup required",syncCloudStep1:"Bind your GitHub account",syncCloudStep2:"Star the repository",syncCloudReady:"Cloud Sync is ready",syncStarRequired:"Star the repository to activate Cloud Sync.",syncGithubBindingRequired:"Bind your GitHub account first.",syncBackendGithubDesc:"Keep usage data in sync across your devices via a private GitHub repository. Requires a personal access token.",syncBackendS3Desc:"Keep usage data in sync across your devices via S3-compatible storage (AWS S3, MinIO, R2, etc.).",syncBackendNoneDesc:"Select a backend to enable multi-device sync.",device:"Device Alias",deviceHint:"Optional alias; hostname is used if blank",weekStart:"Week Starts On",weekStartSunday:"Sunday",weekStartMonday:"Monday (ISO)",refreshInterval:"Refresh Interval (ms)",retentionDays:"Local Data Retention (days)",retentionHint:"Days to keep local data (0 or empty = keep forever)",retentionPlaceholder:"Forever",syncBackend:"Backend",syncBackendNone:"Disabled",cloudLoggedIn:"Device authorized. Ready to sync.",cloudNotLoggedIn:'Not logged in. Run "aiusage login" in the terminal first.',syncRepo:"Repository (owner/repo)",syncBucket:"Bucket",syncPrefix:"S3 Object Prefix",syncEndpoint:"Endpoint",syncRegion:"Region",syncCredentialRef:"Credential Key Name",syncCredentialValue:"Credential Value",syncStatus:"Status",syncLastSync:"Last Sync",syncNextSync:"Next Sync",syncStatusLabel:"Status",syncPulled:"Pulled records",syncUploaded:"Uploaded records",syncCountHint:"Shows usage records processed in the latest sync.",syncError:"Error",syncDuration:"Duration",syncNow:"Sync Now",syncNever:"Never",syncUnsavedHint:"Please save your sync settings before syncing.",autoSync:"Auto sync",syncFrequency:"Every",syncMinutes:"min",syncHour:"hour",syncHours:"hours",credentialSet:"Set — leave empty to keep",credentialNotSet:"Not set",credentialStoredAs:"Stored as",syncRepoRequired:"Repository is required for GitHub sync.",syncRepoInvalid:"Repository must use the owner/repo format.",syncGithubTokenRequired:"GitHub token is required for GitHub sync.",syncBucketRequired:"Bucket is required for S3 sync.",syncS3AccessKeyRequired:"Access Key ID is required for S3 sync.",syncS3SecretKeyRequired:"Secret Access Key is required for S3 sync.",showCredential:"Show",hideCredential:"Hide",currency:"Currency",displayCurrency:"Display Currency",exchangeRate:"Exchange Rate",exchangeRateHint:"Leave empty to use auto-fetched rate",refreshRate:"Refresh",rateLastUpdated:"Last updated"},home:{counterLabel:"AI Tokens Consumed",cfgTitle:"Display Config",timeRange:"Time Range",numFormat:"Number Format",numExact:"Exact",numExactEx:"1,234,567",numShort:"Short",numShortEx:"1.234M",nextRefresh:"next refresh in",seconds:"s",refreshing:"refreshing…",manualMode:"manual mode",refreshNow:"↺ now",refreshBtn:"↺ refresh",refreshInfo:"Refresh interval set in",input:"Input",output:"Output",cache:"Cache",quotaWarning:"Quota Warning",quotaWarningDesc:"quota used",quotaWarningLink:"View Quotas"},quotas:{title:"Quotas",desc:"Official subscription quota usage for each AI tool.",refresh:"Refresh",refreshing:"Refreshing...",lastUpdated:"Updated",never:"Never",noCredentials:"No credentials found",noCredentialsHint:"Log in with the AI tool's CLI to enable quota tracking.",expired:"Credentials expired",expiredHint:"Re-login with the CLI to refresh your credentials.",queryFailed:"Query failed",noTiers:"No quota data available",fiveHour:"5h Window",sevenDay:"7d Window",sevenDayOpus:"7d Opus",sevenDaySonnet:"7d Sonnet",sevenDayOmelette:"7d Design",weeklyLimit:"Weekly",resetsIn:"resets in {time}",toolLabels:{"claude-code":"Claude Code",codex:"Codex (OpenAI)"}},leaderboard:{title:"Leaderboard",desc:"Manage leaderboard sign-in and uploads. Public rankings live on the site.",publicView:"Public view",privacyTitle:"Uploaded data",account:"Account",device:"Device",authorizedDevice:"Authorized device",authorizedAt:"Authorized",uploadStatus:"Upload status",noUploads:"No uploads yet",noUploadTime:"No upload time yet",nextUpload:"Next upload",afterFirstUpload:"After the first upload",autoUploadOff:"Off",enableAutoUploadHint:"Enable auto upload to schedule it",openLeaderboard:"Open public leaderboard",period:"Period",showing:"Showing",periodStart:"Period start",user:"User",updated:"Updated",loadMore:"Load more",loadingMore:"Loading...",noEntries:"No public entries yet.",openSite:"Open Leaderboard",authTitle:"Upload account",loggedIn:"CLI and web are signed in",notLoggedIn:"Not authorized",webLoginHint:"Authorize in the browser. The local CLI will use the same credentials.",loginInWeb:"Sign in on this device",authorizing:"Authorizing...",uploadInWeb:"Upload data",uploading:"Uploading...",autoUpload:"Auto upload",autoUploadHint:"The local server periodically parses and uploads aggregate totals.",autoUploadRequiresLogin:"Sign in on this device before enabling auto upload.",uploadEvery:"Frequency",autoUploadIntervals:{daily:"Daily",weekly:"Weekly",monthly:"Monthly"},uploadLimits:"Limits",uploadLimitsSummary:"At most one scheduled upload per interval. Each run submits aggregate totals only.",uploadResult:"Upload result",uploadResultHint:"Accepted / flagged / rejected",uploadSuccess:"Upload successful",logout:"Log out locally",verifyCode:"Verification code",openVerify:"Open authorization page",lastUpload:"Latest upload",privacy:"Uploads include aggregate token totals only. Prompts, completions, source code, file paths, model breakdowns, project data, and local cost estimates stay out of the leaderboard payload.",periods:{daily:"Daily",weekly:"Weekly",monthly:"Monthly",yearly:"Yearly",all_time:"All time"}},auth:{locked:"Dashboard locked",lockedHint:"Enter the dashboard password to view this page.",unlock:"Unlock",unlocking:"Unlocking...",unlockDashboard:"Unlock dashboard",unlockHint:"Enter the dashboard password to show navigation and protected pages.",password:"Password",backHome:"Back to public home",checking:"Checking access...",loginFailed:"Login failed"},support:{title:"Service & Support",desc:"Stable contact channels for product questions, support, and community discussion.",personal:"Direct contact",community:"Community",wechat:"WeChat",wechatHint:"Scan the QR code and include your request in the note. Use it for product questions, feedback, or community group access.",qrExpand:"Click to enlarge QR code",qrScanHint:"Scan with WeChat to add",email:"Email",discord:"Discord",discordHint:"Join the community for discussion and support.",telegram:"Telegram",telegramHint:"Updates and community discussion.",open:"Open"}},zh:{nav:{home:"首页",overview:"概览",tokens:"Token",cost:"费用",models:"模型",toolCalls:"工具调用",projects:"项目",sessions:"会话",quotas:"配额",leaderboard:"排行榜",pricing:"定价",support:"服务与支持",settings:"设置",docs:"文档",collapse:"收起",expand:"展开",group:{overview:"概览",analytics:"统计",activity:"活动",system:"系统"}},common:{loading:"加载中...",error:"错误",noData:"暂无数据",noDataHint:"开始使用 AI 工具后,统计数据将显示在此处。",apply:"应用",all:"全部",previous:"上一页",next:"下一页",page:"第",of:"页,共"},range:{today:"今天",week:"本周",month:"本月",last30:"近 30 天",allTime:"全部",from:"开始",to:"结束",pickMonth:"选择月份..."},overview:{title:"概览",desc:"所有 AI 工具的 Token、费用和会话聚合统计。",totalTokens:"总 Token",totalCost:"总费用",activeDays:"活跃天数",totalSessions:"会话数",inputTokens:"输入",outputTokens:"输出",cacheRead:"缓存读取",cacheWrite:"缓存写入",byTool:"按 AI 助手",byProject:"按项目",topToolCalls:"常用工具",tool:"工具",tokens:"Token",cost:"费用",noToolData:"暂无数据",noToolCalls:"暂无工具调用记录",topMcpServers:"MCP 服务器",noMcpCalls:"暂无 MCP 调用记录",tabAll:"全部",tabMcp:"MCP 服务器"},tokens:{title:"Token",desc:"按类型分类的每日 Token 用量趋势。",chartTitle:"每日 Token 用量",input:"输入",output:"输出",cacheRead:"缓存读取",cacheWrite:"缓存写入",thinking:"思考",date:"日期",total:"合计",modeBreakdown:"分类",modeTotal:"总量",noData:"暂无 Token 数据",noDataHint:"当前时间段内无 Token 使用记录。"},projects:{title:"项目",desc:"按项目目录排列的 Token 用量和费用排名。",project:"项目",sessions:"会话",tokens:"Token",cost:"费用",share:"占比",noData:"暂无项目数据",noDataHint:"当前时间段内无项目使用记录。"},cost:{title:"费用",desc:"每日费用趋势及按工具、模型的费用分布。",totalCost:"总费用",chartTitle:"每日费用",byTool:"按 AI 助手",byModel:"按模型",noData:"暂无费用数据",noDataHint:"当前时间段内无费用记录。"},models:{title:"模型",desc:"各 AI 模型的用量排名。",chartTitle:"模型排名",modeTokens:"Token",modeCost:"费用",model:"模型",provider:"提供商",calls:"调用次数",tokens:"Token",input:"输入",output:"输出",cacheRead:"缓存读取",cacheWrite:"缓存写入",thinking:"思考",total:"合计",cost:"费用",share:"占比",noData:"暂无模型数据",noDataHint:"当前时间段内无模型使用记录。"},toolCalls:{title:"工具调用",desc:"AI 助手最常调用的工具排名。",noData:"暂无工具调用数据",noDataHint:"当前时间段内无工具调用记录。",typeAll:"全部",typeBuiltin:"内置",typeMcp:"MCP",typeSkill:"Skill",badgeMcp:"mcp",badgeSkill:"skill",noToolCallData:"该工具的数据源中不包含工具调用记录。"},sessions:{title:"会话",desc:"每条会话的 Token 用量和费用详细记录。",assistant:"AI 助手",time:"时间",tool:"工具",model:"模型",input:"输入",output:"输出",cost:"费用",duration:"时长",toolCalls:"工具调用",noData:"暂无会话",noDataHint:"当前时间段内无会话记录。",detail:{back:"← 会话列表",title:"会话详情",meta:{duration:"时长",tokens:"Token",cost:"费用",apiCalls:"API 调用",toolCalls:"工具调用",model:"模型",path:"路径",input:"输入",output:"输出",cacheRead:"缓存读取",cacheWrite:"缓存写入",thinking:"思考",totalTokens:"合计",sessionId:"会话"},gap:"间隔",noToolCalls:"无工具调用",record:"API 调用",toolCall:"工具"}},theme:{system:"跟随系统",dark:"深色",light:"浅色"},pricing:{title:"定价管理",model:"模型",input:"输入",output:"输出",cacheRead:"缓存读取",cacheWrite:"缓存写入",thinking:"思考",status:"状态",actions:"操作",edit:"编辑",save:"保存",cancel:"取消",reset:"重置",recalc:"重新计算费用",recalcDone:"已重新计算",costsUpdating:"费用更新中...",costsUpdated:"费用已自动更新",default:"默认",override:"自定义",matched:"前缀匹配",noPrice:"无定价",perMillion:"/ 1M tokens"},sync:{trigger:"同步",syncing:"同步中...",started:"已开始同步",inProgress:"同步已在进行中",complete:"已同步",failed:"同步失败",notConfigured:"未配置",lastSync:"上次同步",never:"从未",phase:{pulling:"拉取中",merging:"合并中",uploading:"上传中",finalizing:"完成中"}},device:{allDevices:"全部设备",loading:"加载中..."},tool:{allTools:"全部工具"},settings:{title:"设置",save:"保存",saved:"已保存",general:"通用",dataSources:"数据源",manualImports:"手动导入",manualImportsHint:"导入通过备份文件导出的工具用量数据,而不是实时读取本地日志。",detectedTools:"已检测工具",detectedToolsHint:"系统上自动检测到的 AI 工具。可通过 AIUSAGE_*_PATH 环境变量覆盖路径。",notConfigured:"未配置",neverImported:"未导入",lastImported:"上次导入",importBackup:"导入备份",imported:"已导入",added:"新增",records:"条记录",kelivoInvalidFile:"请选择 Kelivo .zip 备份或 chats.json",kelivoImportFailed:"导入失败",toolFound:"已检测",toolNotFound:"未检测到",toolEmpty:"空",toolFiles:"个文件",sync:"多设备同步",syncBackendCloudDesc:"加密传输、极速同步、自动化。零配置跨设备同步用量数据。",syncCloudSetup:"需要完成以下设置",syncCloudStep1:"绑定 GitHub 账号",syncCloudStep2:"Star 仓库",syncCloudReady:"Cloud Sync 已就绪",syncStarRequired:"请先 Star 仓库以激活 Cloud Sync。",syncGithubBindingRequired:"请先绑定 GitHub 账号。",syncBackendGithubDesc:"通过私有 GitHub 仓库在多台设备之间同步用量数据。需要个人访问令牌。",syncBackendS3Desc:"通过 S3 兼容存储(AWS S3、MinIO、R2 等)在多台设备之间同步用量数据。",syncBackendNoneDesc:"选择同步后端以启用多设备同步。",device:"设备别名",deviceHint:"可选别名;留空则使用主机名",weekStart:"每周起始日",weekStartSunday:"周日",weekStartMonday:"周一(ISO)",refreshInterval:"刷新间隔(ms)",retentionDays:"本地数据保留天数",retentionHint:"0 或留空表示永久保留本地数据",retentionPlaceholder:"永久",syncBackend:"后端类型",syncBackendNone:"已禁用",cloudLoggedIn:"设备已授权,可以同步。",cloudNotLoggedIn:'未登录。请先在终端运行 "aiusage login"。',syncRepo:"仓库(owner/repo)",syncBucket:"存储桶",syncPrefix:"S3 对象前缀",syncEndpoint:"Endpoint",syncRegion:"Region",syncCredentialRef:"凭据引用名",syncCredentialValue:"凭据值",syncStatus:"状态",syncLastSync:"上次同步",syncNextSync:"下次同步",syncStatusLabel:"状态",syncPulled:"拉取记录",syncUploaded:"上传记录",syncCountHint:"显示最近一次同步处理的用量记录数。",syncError:"错误",syncDuration:"耗时",syncNow:"立即同步",syncNever:"从未",syncUnsavedHint:"请先保存同步配置,再点击立即同步。",autoSync:"自动同步",syncFrequency:"每隔",syncMinutes:"分钟",syncHour:"小时",syncHours:"小时",credentialSet:"已设置,留空则不修改",credentialNotSet:"未设置",credentialStoredAs:"存储为",syncRepoRequired:"GitHub 同步需要填写仓库。",syncRepoInvalid:"仓库必须使用 owner/repo 格式。",syncGithubTokenRequired:"GitHub 同步需要填写 GitHub Token。",syncBucketRequired:"S3 同步需要填写存储桶。",syncS3AccessKeyRequired:"S3 同步需要填写 Access Key ID。",syncS3SecretKeyRequired:"S3 同步需要填写 Secret Access Key。",showCredential:"显示",hideCredential:"隐藏",currency:"货币",displayCurrency:"显示货币",exchangeRate:"汇率",exchangeRateHint:"留空使用自动获取的汇率",refreshRate:"刷新",rateLastUpdated:"上次更新"},home:{counterLabel:"AI Token 消耗",cfgTitle:"显示配置",timeRange:"时间范围",numFormat:"数字格式",numExact:"精确",numExactEx:"1,234,567",numShort:"简短",numShortEx:"1.234M",nextRefresh:"下次刷新",seconds:"s",refreshing:"刷新中…",manualMode:"手动模式",refreshNow:"↺ 立即",refreshBtn:"↺ 刷新",refreshInfo:"刷新间隔在",input:"输入",output:"输出",cache:"缓存",quotaWarning:"配额警告",quotaWarningDesc:"配额已使用",quotaWarningLink:"查看配额"},quotas:{title:"配额",desc:"各 AI 工具的官方订阅配额使用情况。",refresh:"刷新",refreshing:"刷新中...",lastUpdated:"更新于",never:"从未",noCredentials:"未找到凭据",noCredentialsHint:"请先用 AI 工具的 CLI 登录,以启用配额追踪。",expired:"凭据已过期",expiredHint:"请重新使用 CLI 登录以刷新凭据。",queryFailed:"查询失败",noTiers:"暂无配额数据",fiveHour:"5 小时窗口",sevenDay:"7 天窗口",sevenDayOpus:"7 天 Opus",sevenDaySonnet:"7 天 Sonnet",sevenDayOmelette:"7 天 Design",weeklyLimit:"每周限额",resetsIn:"{time} 后重置",toolLabels:{"claude-code":"Claude Code",codex:"Codex(OpenAI)"}},leaderboard:{title:"排行榜",desc:"管理排行榜登录与上传。公开排名在官网查看。",publicView:"公开浏览",privacyTitle:"上传内容",account:"账号",device:"设备",authorizedDevice:"已授权设备",authorizedAt:"授权时间",uploadStatus:"上传状态",noUploads:"暂无上传记录",noUploadTime:"暂无上传时间",nextUpload:"下次上传",afterFirstUpload:"首次上传后计算",autoUploadOff:"未开启",enableAutoUploadHint:"开启自动上传后会按频率执行",openLeaderboard:"打开公开排行榜",period:"周期",showing:"已显示",periodStart:"周期开始",user:"用户",updated:"更新",loadMore:"加载更多",loadingMore:"加载中...",noEntries:"暂无公开数据。",openSite:"打开排行榜",authTitle:"上传账号",loggedIn:"CLI 与界面已登录",notLoggedIn:"未授权",webLoginHint:"可直接在浏览器授权,本地 CLI 会使用同一份凭证。",loginInWeb:"在本机登录",authorizing:"授权中...",uploadInWeb:"上传数据",uploading:"上传中...",autoUpload:"自动上传",autoUploadHint:"本地服务会定时解析并上传聚合总量。",autoUploadRequiresLogin:"请先在本机登录后再开启自动上传。",uploadEvery:"频率",autoUploadIntervals:{daily:"每天",weekly:"每周",monthly:"每月"},uploadLimits:"上传限制",uploadLimitsSummary:"每个频率周期最多自动上传一次。每次只提交聚合总量。",uploadResult:"上传结果",uploadResultHint:"已接受 / 待审核 / 已拒绝",uploadSuccess:"上传成功",logout:"退出本机登录",verifyCode:"验证码",openVerify:"打开授权页面",lastUpload:"最近上传",privacy:"上传内容仅包含聚合 Token 总量。prompt、completion、源码、文件路径、模型分布、项目数据和本地费用估算不会进入排行榜 payload。",periods:{daily:"今日",weekly:"本周",monthly:"本月",yearly:"今年",all_time:"累计"}},auth:{locked:"仪表盘已锁定",lockedHint:"请输入仪表盘密码以查看此页面。",unlock:"解锁",unlocking:"解锁中...",unlockDashboard:"解锁仪表盘",unlockHint:"请输入仪表盘密码以显示导航和受保护的页面。",password:"密码",backHome:"返回公开首页",checking:"正在检查访问权限...",loginFailed:"登录失败"},support:{title:"服务与支持",desc:"产品问题、使用支持和社区交流的稳定联系方式。",personal:"直接联系",community:"社区",wechat:"微信",wechatHint:"扫码添加时请备注来意,可咨询使用问题、反馈建议或加入交流群。",qrExpand:"点击放大二维码",qrScanHint:"使用微信扫码添加",email:"邮件",discord:"Discord",discordHint:"加入社区,交流使用心得、获取帮助。",telegram:"Telegram",telegramHint:"获取更新通知,参与讨论。",open:"打开"}}};function c(){return typeof window>"u"?"en":localStorage.getItem("aiusage-lang")||"en"}const s=r(c());function p(){s.update(o=>{const t=o==="en"?"zh":"en";return typeof window<"u"&&localStorage.setItem("aiusage-lang",t),t})}const y=d(s,o=>{const t=n[o]||n.en;return a=>{const i=a.split(".");let e=t;for(const l of i)e=e==null?void 0:e[l];return e||a}});export{p as a,s as l,y as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as t}from"../chunks/entry.Cxpjn2cB.js";export{t as start};
|