usage-board 0.0.1 → 0.0.2

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/dist/index.mjs CHANGED
@@ -9812,7 +9812,7 @@ function getFirstUserMessage(data) {
9812
9812
  //#endregion
9813
9813
  //#region package.json
9814
9814
  var name = "usage-board";
9815
- var version = "0.0.1";
9815
+ var version = "0.0.2";
9816
9816
  //#endregion
9817
9817
  //#region src/data-loader.ts
9818
9818
  async function resolveTokensConsumption(config) {
@@ -9869,7 +9869,7 @@ async function createHostServer(_options) {
9869
9869
  return fileMap.get(id);
9870
9870
  };
9871
9871
  app.get("/api/payload.json", async (event) => {
9872
- event.headers.set("content-type", "application/json");
9872
+ event.res.headers.set("content-type", "application/json");
9873
9873
  return await ws.getData();
9874
9874
  });
9875
9875
  app.get("/**", async (event) => {
@@ -9894,19 +9894,28 @@ async function createHostServer(_options) {
9894
9894
  //#endregion
9895
9895
  //#region src/index.ts
9896
9896
  const cli = cac(name);
9897
+ function resolveUrl(host, port) {
9898
+ return `http://${host === "0.0.0.0" || host === "::" ? "localhost" : host.includes(":") ? `[${host}]` : host}:${port}`;
9899
+ }
9897
9900
  cli.command("", "Start tokens usage analysis").option("--host <host>", "Host", { default: "127.0.0.1" }).option("--port <port>", "Port", { default: 7777 }).option("--open", "Open browser", { default: true }).action(async (options) => {
9898
9901
  const config = resolveConfig(options);
9899
9902
  const port = await getPort({
9900
9903
  host: config.host,
9901
- port: config.port
9904
+ port: config.port,
9905
+ portRange: [7777, 9e3]
9902
9906
  });
9903
9907
  (await createHostServer({
9904
9908
  ...config,
9905
9909
  port
9906
9910
  })).listen(port, config.host, async () => {
9907
- if (config.open) {
9908
- await open$1(`http://${config.host}:${port}`);
9909
- console.log(`Usage board is running at http://${config.host}:${port}`);
9911
+ const url = resolveUrl(config.host, port);
9912
+ console.log(`Usage board is running at ${url}`);
9913
+ if (config.open) try {
9914
+ await open$1(url);
9915
+ } catch (error) {
9916
+ const message = error instanceof Error ? error.message : String(error);
9917
+ console.warn(`Unable to open the browser automatically: ${message}`);
9918
+ console.warn(`Open ${url} manually.`);
9910
9919
  }
9911
9920
  });
9912
9921
  });
package/dist/nitro.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "date": "2026-04-17T07:57:51.820Z",
2
+ "date": "2026-04-17T08:31:18.797Z",
3
3
  "preset": "static",
4
4
  "framework": {
5
5
  "name": "nuxt",
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Tokens Usage Analysis</title><link rel="stylesheet" href="/_nuxt/entry.DrzELaFO.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DRIVB4-c.js"><script type="module" src="/_nuxt/DRIVB4-c.js" crossorigin></script><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><link rel="icon" href="/favicon.ico" sizes="any"><link rel="icon" type="image/svg+xml" href="/logo.svg"><script id="unhead:payload" type="application/json">{"title":"Tokens Usage Analysis"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{appVersion:"0.0.1"},app:{baseURL:"/",buildId:"ee1b1668-0818-4b73-b349-b813232bb364",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1776412671784,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Tokens Usage Analysis</title><link rel="stylesheet" href="/_nuxt/entry.DrzELaFO.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DRIVB4-c.js"><script type="module" src="/_nuxt/DRIVB4-c.js" crossorigin></script><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><link rel="icon" href="/favicon.ico" sizes="any"><link rel="icon" type="image/svg+xml" href="/logo.svg"><script id="unhead:payload" type="application/json">{"title":"Tokens Usage Analysis"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{appVersion:"0.0.2"},app:{baseURL:"/",buildId:"1dd71c56-40de-4e8e-9a95-0f4dceec1121",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1776414678771,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Tokens Usage Analysis</title><link rel="stylesheet" href="/_nuxt/entry.DrzELaFO.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DRIVB4-c.js"><script type="module" src="/_nuxt/DRIVB4-c.js" crossorigin></script><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><link rel="icon" href="/favicon.ico" sizes="any"><link rel="icon" type="image/svg+xml" href="/logo.svg"><script id="unhead:payload" type="application/json">{"title":"Tokens Usage Analysis"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{appVersion:"0.0.1"},app:{baseURL:"/",buildId:"ee1b1668-0818-4b73-b349-b813232bb364",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1776412671784,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Tokens Usage Analysis</title><link rel="stylesheet" href="/_nuxt/entry.DrzELaFO.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DRIVB4-c.js"><script type="module" src="/_nuxt/DRIVB4-c.js" crossorigin></script><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><link rel="icon" href="/favicon.ico" sizes="any"><link rel="icon" type="image/svg+xml" href="/logo.svg"><script id="unhead:payload" type="application/json">{"title":"Tokens Usage Analysis"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{appVersion:"0.0.2"},app:{baseURL:"/",buildId:"1dd71c56-40de-4e8e-9a95-0f4dceec1121",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1776414678771,false]</script></body></html>
@@ -1 +1 @@
1
- {"id":"ee1b1668-0818-4b73-b349-b813232bb364","timestamp":1776412664176}
1
+ {"id":"1dd71c56-40de-4e8e-9a95-0f4dceec1121","timestamp":1776414670126}
@@ -0,0 +1 @@
1
+ {"id":"1dd71c56-40de-4e8e-9a95-0f4dceec1121","timestamp":1776414670126,"prerendered":[]}
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Tokens Usage Analysis</title><link rel="stylesheet" href="/_nuxt/entry.DrzELaFO.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DRIVB4-c.js"><script type="module" src="/_nuxt/DRIVB4-c.js" crossorigin></script><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><link rel="icon" href="/favicon.ico" sizes="any"><link rel="icon" type="image/svg+xml" href="/logo.svg"><script id="unhead:payload" type="application/json">{"title":"Tokens Usage Analysis"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{appVersion:"0.0.1"},app:{baseURL:"/",buildId:"ee1b1668-0818-4b73-b349-b813232bb364",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1776412671783,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Tokens Usage Analysis</title><link rel="stylesheet" href="/_nuxt/entry.DrzELaFO.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DRIVB4-c.js"><script type="module" src="/_nuxt/DRIVB4-c.js" crossorigin></script><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><link rel="icon" href="/favicon.ico" sizes="any"><link rel="icon" type="image/svg+xml" href="/logo.svg"><script id="unhead:payload" type="application/json">{"title":"Tokens Usage Analysis"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{appVersion:"0.0.2"},app:{baseURL:"/",buildId:"1dd71c56-40de-4e8e-9a95-0f4dceec1121",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1776414678770,false]</script></body></html>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "usage-board",
3
3
  "type": "module",
4
- "version": "0.0.1",
4
+ "version": "0.0.2",
5
5
  "packageManager": "pnpm@10.33.0",
6
6
  "description": "An all-in-one dashboard to quickly analyze token usage from local json files",
7
7
  "license": "MIT",
@@ -31,7 +31,6 @@
31
31
  "dev": "nuxt dev",
32
32
  "generate": "nuxt generate",
33
33
  "preview": "nuxt preview",
34
- "postinstall": "nuxt prepare",
35
34
  "typecheck": "nuxt typecheck",
36
35
  "lint": "eslint .",
37
36
  "lint:fix": "eslint --fix",
@@ -41,27 +40,8 @@
41
40
  "prepublishOnly": "pnpm build"
42
41
  },
43
42
  "dependencies": {
44
- "@tailwindcss/vite": "^4.2.2",
45
- "@tanstack/vue-table": "^8.21.3",
46
- "@unovis/ts": "^1.6.4",
47
- "@unovis/vue": "^1.6.4",
48
- "@vee-validate/zod": "^4.15.1",
49
- "@vueuse/core": "^14.2.1",
50
43
  "cac": "^7.0.0",
51
- "class-variance-authority": "^0.7.1",
52
- "clsx": "^2.1.1",
53
- "embla-carousel-vue": "^8.6.0",
54
- "glob": "^13.0.6",
55
- "lucide-vue-next": "^0.545.0",
56
- "reka-ui": "^2.9.5",
57
- "tailwindcss": "^4.2.2",
58
- "vaul-vue": "^0.4.1",
59
- "vee-validate": "^4.15.1",
60
- "vue": "^3.5.26",
61
- "vue-input-otp": "^0.3.2",
62
- "vue-router": "^4.6.4",
63
- "vue-sonner": "^2.0.9",
64
- "zod": "3.25.76"
44
+ "glob": "^13.0.6"
65
45
  },
66
46
  "devDependencies": {
67
47
  "@antfu/eslint-config": "^8.2.0",
@@ -70,31 +50,51 @@
70
50
  "@iconify-json/ri": "^1.2.10",
71
51
  "@iconify-json/solar": "^1.2.5",
72
52
  "@iconify-json/svg-spinners": "^1.2.4",
53
+ "@internationalized/date": "^3.12.1",
73
54
  "@lonewolfyx/utils": "^0.0.2",
74
55
  "@nuxt/content": "^3.12.0",
75
56
  "@nuxt/eslint": "^1.15.2",
76
57
  "@nuxt/icon": "^2.2.1",
58
+ "@tailwindcss/vite": "^4.2.2",
59
+ "@tanstack/vue-table": "^8.21.3",
77
60
  "@types/node": "^25.6.0",
78
61
  "@types/ws": "^8.18.1",
62
+ "@unovis/ts": "^1.6.4",
63
+ "@unovis/vue": "^1.6.4",
64
+ "@vee-validate/zod": "^4.15.1",
65
+ "@vueuse/core": "^14.2.1",
79
66
  "@vueuse/nuxt": "^14.2.1",
80
67
  "chokidar": "^5.0.0",
68
+ "class-variance-authority": "^0.7.1",
69
+ "clsx": "^2.1.1",
70
+ "embla-carousel-vue": "^8.6.0",
81
71
  "eslint": "^10.2.0",
82
72
  "get-port-please": "^3.2.0",
83
73
  "h3": "2.0.1-rc.20",
84
74
  "lint-staged": "^16.4.0",
75
+ "lucide-vue-next": "^0.545.0",
85
76
  "nuxt": "^4.4.2",
86
77
  "open": "^11.0.0",
87
78
  "path-type": "^6.0.0",
88
79
  "picocolors": "^1.1.1",
80
+ "reka-ui": "^2.9.5",
89
81
  "shadcn-nuxt": "^2.6.2",
90
82
  "simple-git-hooks": "^2.13.1",
91
83
  "tailwind-merge": "^3.5.0",
84
+ "tailwindcss": "^4.2.2",
92
85
  "ts-node": "^10.9.2",
93
86
  "tsdown": "^0.21.8",
94
87
  "tw-animate-css": "^1.4.0",
95
88
  "typescript": "^6.0.2",
89
+ "vaul-vue": "^0.4.1",
90
+ "vee-validate": "^4.15.1",
96
91
  "vitest": "^4.1.4",
97
- "ws": "^8.20.0"
92
+ "vue": "^3.5.26",
93
+ "vue-input-otp": "^0.3.2",
94
+ "vue-router": "^4.6.4",
95
+ "vue-sonner": "^2.0.9",
96
+ "ws": "^8.20.0",
97
+ "zod": "3.25.76"
98
98
  },
99
99
  "simple-git-hooks": {
100
100
  "pre-commit": "npx lint-staged",
@@ -1 +0,0 @@
1
- {"id":"ee1b1668-0818-4b73-b349-b813232bb364","timestamp":1776412664176,"prerendered":[]}