tokentracker-cli 0.5.73 → 0.5.75
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/dashboard/dist/assets/{Card-D_q1XGfK.js → Card-D-EuRzLE.js} +1 -1
- package/dashboard/dist/assets/DashboardPage-DP4h327m.js +12 -0
- package/dashboard/dist/assets/{FadeIn-ClpHby-T.js → FadeIn-Nqb2FeSu.js} +1 -1
- package/dashboard/dist/assets/{IpCheckPage-B5TpHE6G.js → IpCheckPage-DKErP77B.js} +1 -1
- package/dashboard/dist/assets/LeaderboardPage-D_DqH7v4.js +5 -0
- package/dashboard/dist/assets/{LeaderboardProfilePage-C8xexZ08.js → LeaderboardProfilePage-B4U6R6TW.js} +1 -1
- package/dashboard/dist/assets/{LimitsPage-CERWQyIU.js → LimitsPage-WP9IFHnS.js} +1 -1
- package/dashboard/dist/assets/ProviderIcon-CiAX7O9R.js +1 -0
- package/dashboard/dist/assets/SettingsPage-BzWrP1qX.js +1 -0
- package/dashboard/dist/assets/{WidgetsPage-Cmr2tbD7.js → WidgetsPage-BbV32pxZ.js} +1 -1
- package/dashboard/dist/assets/{download-M8e1PJC-.js → download-CXIEU-zL.js} +1 -1
- package/dashboard/dist/assets/{leaderboard-columns-Dcg9r7R2.js → leaderboard-columns-DIsoAppd.js} +1 -1
- package/dashboard/dist/assets/main-DRf20yyJ.css +1 -0
- package/dashboard/dist/assets/{main-D1VdJk4V.js → main-_yO2TZgj.js} +12 -3
- package/dashboard/dist/assets/{use-limits-display-prefs-CSj55sfK.js → use-limits-display-prefs-CogaUGYH.js} +1 -1
- package/dashboard/dist/assets/{use-usage-limits-BuWINUAm.js → use-usage-limits-Didh7hvY.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist/share.html +2 -2
- package/package.json +1 -1
- package/src/commands/serve.js +7 -2
- package/dashboard/dist/assets/DashboardPage-CuBSoNgI.js +0 -12
- package/dashboard/dist/assets/LeaderboardPage-BOrtGeIf.js +0 -5
- package/dashboard/dist/assets/SettingsPage-DUwt4x-H.js +0 -1
- package/dashboard/dist/assets/main-CNzfq4Ln.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as a}from"./main-
|
|
1
|
+
import{r as a}from"./main-_yO2TZgj.js";const d=["claude","codex","cursor","gemini","kiro","copilot","antigravity"],v={claude:"Claude",codex:"Codex",cursor:"Cursor",gemini:"Gemini",kiro:"Kiro",copilot:"GitHub Copilot",antigravity:"Antigravity"},k={claude:"/brand-logos/claude-code.svg",codex:"/brand-logos/codex.svg",cursor:"/brand-logos/cursor.svg",gemini:"/brand-logos/gemini.svg",kiro:"/brand-logos/kiro.svg",copilot:"/brand-logos/copilot.svg",antigravity:"/brand-logos/antigravity.svg"},l="tt.limits.providerOrder",g="tt.limits.providerVisibility";function y(){if(typeof window>"u")return[...d];try{const r=window.localStorage.getItem(l);if(!r)return[...d];const s=JSON.parse(r);if(!Array.isArray(s))return[...d];const n=s.filter(c=>d.includes(c));for(const c of d)n.includes(c)||n.push(c);return n}catch{return[...d]}}function m(){const r=Object.fromEntries(d.map(s=>[s,!0]));if(typeof window>"u")return r;try{const s=window.localStorage.getItem(g);if(!s)return r;const n=JSON.parse(s);if(!n||typeof n!="object")return r;const c={...r};for(const u of d)typeof n[u]=="boolean"&&(c[u]=n[u]);return c}catch{return r}}function C(){const[r,s]=a.useState(y),[n,c]=a.useState(m);a.useEffect(()=>{if(!(typeof window>"u"))try{window.localStorage.setItem(l,JSON.stringify(r))}catch{}},[r]),a.useEffect(()=>{if(!(typeof window>"u"))try{window.localStorage.setItem(g,JSON.stringify(n))}catch{}},[n]),a.useEffect(()=>{if(typeof window>"u")return;const o=t=>{t.key===l&&s(y()),t.key===g&&c(m())};return window.addEventListener("storage",o),()=>window.removeEventListener("storage",o)},[]);const u=a.useCallback(o=>{c(t=>({...t,[o]:!t[o]}))},[]),b=a.useCallback(o=>{s(t=>{const e=t.indexOf(o);if(e<=0)return t;const i=[...t];return[i[e-1],i[e]]=[i[e],i[e-1]],i})},[]),p=a.useCallback(o=>{s(t=>{const e=t.indexOf(o);if(e<0||e>=t.length-1)return t;const i=[...t];return[i[e],i[e+1]]=[i[e+1],i[e]],i})},[]),O=a.useCallback((o,t)=>{o!==t&&s(e=>{const i=e.indexOf(o),w=e.indexOf(t);if(i<0||w<0)return e;const f=[...e],[E]=f.splice(i,1);return f.splice(w,0,E),f})},[]),x=a.useCallback(()=>{s([...d]),c(Object.fromEntries(d.map(o=>[o,!0])))},[]),I=a.useMemo(()=>r.filter(o=>n[o]!==!1),[r,n]);return{order:r,visibility:n,visibleOrdered:I,toggle:u,moveUp:b,moveDown:p,moveToward:O,reset:x}}export{k as L,v as a,C as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,aM as l}from"./main-
|
|
1
|
+
import{r,aM as l}from"./main-_yO2TZgj.js";function y(i){const[o,a]=r.useState(null),[u,s]=r.useState(null),[c,f]=r.useState(!0),n=!!i?.initialRefresh,g=r.useCallback(async()=>{try{const e=await l({refresh:!0});a(e&&typeof e=="object"?e:null),s(null)}catch(e){s(e?.message||String(e))}},[]);return r.useEffect(()=>{let e=!1;return(async()=>{try{const t=await l(n?{refresh:!0}:{});if(e)return;a(t&&typeof t=="object"?t:null),s(null)}catch(t){if(e)return;s(t?.message||String(t))}finally{e||f(!1)}})(),()=>{e=!0}},[n]),{data:o,error:u,isLoading:c,refresh:g}}export{y as u};
|
|
@@ -135,8 +135,8 @@
|
|
|
135
135
|
]
|
|
136
136
|
}
|
|
137
137
|
</script>
|
|
138
|
-
<script type="module" crossorigin src="/assets/main-
|
|
139
|
-
<link rel="stylesheet" crossorigin href="/assets/main-
|
|
138
|
+
<script type="module" crossorigin src="/assets/main-_yO2TZgj.js"></script>
|
|
139
|
+
<link rel="stylesheet" crossorigin href="/assets/main-DRf20yyJ.css">
|
|
140
140
|
</head>
|
|
141
141
|
<body>
|
|
142
142
|
<main class="aeo-seed-content" aria-label="Token Tracker AI-readable summary">
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
"description": "Shareable Token Tracker dashboard snapshot."
|
|
52
52
|
}
|
|
53
53
|
</script>
|
|
54
|
-
<script type="module" crossorigin src="/assets/main-
|
|
55
|
-
<link rel="stylesheet" crossorigin href="/assets/main-
|
|
54
|
+
<script type="module" crossorigin src="/assets/main-_yO2TZgj.js"></script>
|
|
55
|
+
<link rel="stylesheet" crossorigin href="/assets/main-DRf20yyJ.css">
|
|
56
56
|
</head>
|
|
57
57
|
<body>
|
|
58
58
|
<main class="aeo-seed-content" aria-label="Token Tracker share page summary">
|
package/package.json
CHANGED
package/src/commands/serve.js
CHANGED
|
@@ -10,6 +10,11 @@ const { serveStaticFile } = require("../lib/static-server");
|
|
|
10
10
|
const { openInBrowser } = require("../lib/browser-auth");
|
|
11
11
|
|
|
12
12
|
const DEFAULT_PORT = 7680;
|
|
13
|
+
const NPM_PACKAGE_NAME = "tokentracker-cli";
|
|
14
|
+
|
|
15
|
+
function buildPortInUseHint(port) {
|
|
16
|
+
return `Port ${port} is still in use after cleanup. Try: npx ${NPM_PACKAGE_NAME} serve --port ${port + 1}\n`;
|
|
17
|
+
}
|
|
13
18
|
|
|
14
19
|
async function cmdServe(argv) {
|
|
15
20
|
const opts = parseArgs(argv);
|
|
@@ -133,7 +138,7 @@ async function cmdServe(argv) {
|
|
|
133
138
|
|
|
134
139
|
server.on("error", (e) => {
|
|
135
140
|
if (e.code === "EADDRINUSE") {
|
|
136
|
-
process.stderr.write(
|
|
141
|
+
process.stderr.write(buildPortInUseHint(port));
|
|
137
142
|
} else {
|
|
138
143
|
process.stderr.write(`Server error: ${e.message}\n`);
|
|
139
144
|
}
|
|
@@ -221,4 +226,4 @@ function parseArgs(argv) {
|
|
|
221
226
|
return opts;
|
|
222
227
|
}
|
|
223
228
|
|
|
224
|
-
module.exports = { cmdServe };
|
|
229
|
+
module.exports = { cmdServe, buildPortInUseHint, NPM_PACKAGE_NAME };
|