tokentracker-cli 0.79.6 → 0.79.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dashboard/dist/assets/{AchievementBadge-wAEfjNCA.js → AchievementBadge-BgLKRfg6.js} +1 -1
  2. package/dashboard/dist/assets/{AchievementsPage-Dv5LhNzL.js → AchievementsPage-DAZPKi69.js} +2 -2
  3. package/dashboard/dist/assets/{AchievementsSection-a3gkS8tD.js → AchievementsSection-Bpck20e3.js} +1 -1
  4. package/dashboard/dist/assets/{BadgeDetailModal-BNItadFZ.js → BadgeDetailModal-Di0rpmTQ.js} +1 -1
  5. package/dashboard/dist/assets/{Card-CmemgZ8c.js → Card-CiVg1n9y.js} +1 -1
  6. package/dashboard/dist/assets/{ClawdAnimated-CaZ4BpsR.js → ClawdAnimated-Dhw6SxU-.js} +1 -1
  7. package/dashboard/dist/assets/{CommunityStatsModal-C3gojIs4.js → CommunityStatsModal-DosBW4lR.js} +1 -1
  8. package/dashboard/dist/assets/{ConfirmModal-DZGC1wxW.js → ConfirmModal-DD1Ri-dh.js} +1 -1
  9. package/dashboard/dist/assets/{Controls-BMAZOGJA.js → Controls-BQxSK041.js} +1 -1
  10. package/dashboard/dist/assets/{DashboardPage-Sv3L7w2P.js → DashboardPage-B7F7CLG5.js} +1 -1
  11. package/dashboard/dist/assets/{DevicePage-VfvDSVAL.js → DevicePage-BgByRtlZ.js} +1 -1
  12. package/dashboard/dist/assets/{DialogClose-RhHDM3jn.js → DialogClose-DigAXf6w.js} +1 -1
  13. package/dashboard/dist/assets/DialogDescription-CS0HEX8l.js +1 -0
  14. package/dashboard/dist/assets/{DialogTitle-DwbiXVxh.js → DialogTitle-Du1uOZMr.js} +1 -1
  15. package/dashboard/dist/assets/{FadeIn-CQCtW5QX.js → FadeIn-Da6jgqZ_.js} +1 -1
  16. package/dashboard/dist/assets/{HeaderGithubStar-BR8zEIU9.js → HeaderGithubStar-Cqqy7vB7.js} +1 -1
  17. package/dashboard/dist/assets/{IpCheckPage-rKHYtujQ.js → IpCheckPage-DkTAw_dO.js} +1 -1
  18. package/dashboard/dist/assets/{LandingPage-x6KqrhSL.js → LandingPage-Dvb9s-kJ.js} +1 -1
  19. package/dashboard/dist/assets/{LeaderboardAvatar-BUoLYT1K.js → LeaderboardAvatar-Ch7SLsZ_.js} +1 -1
  20. package/dashboard/dist/assets/{LeaderboardPage-bCcorBNY.js → LeaderboardPage-BbPfFFuF.js} +2 -2
  21. package/dashboard/dist/assets/{LeaderboardProfileModal-DM84x71o.js → LeaderboardProfileModal-PFZaQLMG.js} +3 -3
  22. package/dashboard/dist/assets/{LeaderboardProfilePage-DO3bP3yS.js → LeaderboardProfilePage-DRautoWL.js} +1 -1
  23. package/dashboard/dist/assets/{LimitsPage-CGDnKTon.js → LimitsPage-Bwc3XCCg.js} +1 -1
  24. package/dashboard/dist/assets/{LocalOnlyNotice-DbXdLROj.js → LocalOnlyNotice-DftNXQsE.js} +1 -1
  25. package/dashboard/dist/assets/{LoginPage-DIRdoCb2.js → LoginPage-CffpNmm-.js} +1 -1
  26. package/dashboard/dist/assets/{PetPage-CIevZPBl.js → PetPage-C_lq7mMA.js} +1 -1
  27. package/dashboard/dist/assets/{PopoverPopup-BRphdEUz.js → PopoverPopup-B7L6V9OS.js} +1 -1
  28. package/dashboard/dist/assets/{ResetPasswordPage-BJQBIphH.js → ResetPasswordPage-P-VatRkZ.js} +1 -1
  29. package/dashboard/dist/assets/{Select-gHY4N9ZP.js → Select-NpNBO_zW.js} +1 -1
  30. package/dashboard/dist/assets/{SelectItemText-CLpcRYRB.js → SelectItemText-DEqB9ndy.js} +1 -1
  31. package/dashboard/dist/assets/{SettingsPage-D7ux0u6V.js → SettingsPage-uCZ0OdF3.js} +1 -1
  32. package/dashboard/dist/assets/{SkillsPage-DRCrdltk.js → SkillsPage-Dy_sojV5.js} +1 -1
  33. package/dashboard/dist/assets/{WidgetsPage-CmifV9Qh.js → WidgetsPage-CzbeMPoq.js} +1 -1
  34. package/dashboard/dist/assets/{WrappedPage-VKP5hIAs.js → WrappedPage-C9sMo5ha.js} +1 -1
  35. package/dashboard/dist/assets/{agent-logos---afteTI.js → agent-logos-D95HrgpM.js} +1 -1
  36. package/dashboard/dist/assets/{arrow-up-right-DAyZEmy0.js → arrow-up-right-jaA_F8VA.js} +1 -1
  37. package/dashboard/dist/assets/check-ShRr2Grp.js +1 -0
  38. package/dashboard/dist/assets/{copy-BQ4dDdQO.js → copy-BUsG8Dxq.js} +1 -1
  39. package/dashboard/dist/assets/{download-C0OHvtFX.js → download-B89jns_I.js} +1 -1
  40. package/dashboard/dist/assets/{flame-Bk2l5Mqz.js → flame-DYJfKTkq.js} +1 -1
  41. package/dashboard/dist/assets/{format-tokens-BuWmqFvA.js → format-tokens-Ck4iJNuB.js} +1 -1
  42. package/dashboard/dist/assets/{info-CvbVDSUt.js → info-DgaOnN42.js} +1 -1
  43. package/dashboard/dist/assets/{link-2-DEoNTwlC.js → link-2-l6SkcxP3.js} +1 -1
  44. package/dashboard/dist/assets/{loader-circle-5YZxGR3t.js → loader-circle-BTZ18vzb.js} +1 -1
  45. package/dashboard/dist/assets/{main-hXifO_Tp.js → main-BVPlyJJu.js} +2 -2
  46. package/dashboard/dist/assets/{provider-display-BZrfO0vc.js → provider-display-DuQlae7O.js} +1 -1
  47. package/dashboard/dist/assets/{trash-2-CmXAeMGC.js → trash-2-DDKBUuG2.js} +1 -1
  48. package/dashboard/dist/assets/{use-community-stats-sX5H9fnG.js → use-community-stats-KM2l89gG.js} +1 -1
  49. package/dashboard/dist/assets/{use-limits-display-prefs-B_gzE53D.js → use-limits-display-prefs-1RM6rjBg.js} +1 -1
  50. package/dashboard/dist/assets/{use-native-settings-BkIj-y5n.js → use-native-settings-S7AyC9Ou.js} +1 -1
  51. package/dashboard/dist/assets/{use-ordered-list-BQHfDz38.js → use-ordered-list-B3ExZ03c.js} +1 -1
  52. package/dashboard/dist/assets/{use-quality-per-dollar-pref-B8clb2IP.js → use-quality-per-dollar-pref-oapCFOoT.js} +1 -1
  53. package/dashboard/dist/assets/{use-transform-Bu6AKPnc.js → use-transform-Cd2VlHK0.js} +1 -1
  54. package/dashboard/dist/assets/{use-usage-limits-BXOTiyCG.js → use-usage-limits-BMwpdXJP.js} +1 -1
  55. package/dashboard/dist/assets/{useCurrency-yQkSTo4P.js → useCurrency-BA2GiiJp.js} +1 -1
  56. package/dashboard/dist/assets/{useScrollLock-DP7SL29Q.js → useScrollLock-CBHwgGF7.js} +1 -1
  57. package/dashboard/dist/assets/{zap-C122AVXf.js → zap-C3aLlz8b.js} +1 -1
  58. package/dashboard/dist/index.html +1 -1
  59. package/dashboard/dist/share.html +1 -1
  60. package/package.json +1 -1
  61. package/src/commands/init.js +4 -6
  62. package/src/commands/serve.js +3 -0
  63. package/src/lib/pricing/seed-snapshot.json +1 -1
  64. package/src/lib/star-cta.js +73 -0
  65. package/dashboard/dist/assets/DialogDescription-ozWESnQP.js +0 -1
  66. package/dashboard/dist/assets/check-C__WkABK.js +0 -1
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ const path = require("node:path");
4
+
5
+ const pkg = require("../../package.json");
6
+ const { readJson, writeJson } = require("./fs");
7
+
8
+ const STAR_CTA_URL = "https://github.com/mm7894215/TokenTracker";
9
+ const STAR_CTA_STATE_FILE = "star-cta.json";
10
+
11
+ function isTruthyFlag(value) {
12
+ if (typeof value !== "string") return false;
13
+ const normalized = value.trim().toLowerCase();
14
+ return normalized === "1" || normalized === "true" || normalized === "yes";
15
+ }
16
+
17
+ function isInteractiveCli({ stdout = process.stdout, env = process.env } = {}) {
18
+ if (!stdout?.isTTY) return false;
19
+ if (env?.NODE_TEST_CONTEXT !== undefined) return false;
20
+ if (isTruthyFlag(env?.CI)) return false;
21
+ if (isTruthyFlag(env?.TOKENTRACKER_NO_STAR_PROMPT)) return false;
22
+
23
+ const shell = String(env?.TOKENTRACKER_APP_SHELL || "").trim().toLowerCase();
24
+ if (shell && shell !== "cli") return false;
25
+ return true;
26
+ }
27
+
28
+ async function maybeShowStarCta({
29
+ trackerDir,
30
+ stdout = process.stdout,
31
+ env = process.env,
32
+ nowMs = Date.now(),
33
+ version = pkg.version,
34
+ readJsonFn = readJson,
35
+ writeJsonFn = writeJson,
36
+ } = {}) {
37
+ if (!trackerDir) return { shown: false, reason: "no-tracker-dir" };
38
+ if (!isInteractiveCli({ stdout, env })) {
39
+ return { shown: false, reason: "non-interactive" };
40
+ }
41
+
42
+ const statePath = path.join(trackerDir, STAR_CTA_STATE_FILE);
43
+ const state = await readJsonFn(statePath);
44
+ if (state?.shown_at) return { shown: false, reason: "already-shown" };
45
+
46
+ try {
47
+ await writeJsonFn(statePath, {
48
+ shown_at: new Date(nowMs).toISOString(),
49
+ version: String(version || "").slice(0, 32),
50
+ });
51
+ } catch (_error) {
52
+ // Do not print a prompt that we cannot remember; otherwise a read-only
53
+ // install would show it on every launch.
54
+ return { shown: false, reason: "state-write-failed" };
55
+ }
56
+
57
+ stdout.write(
58
+ [
59
+ " ⭐ If TokenTracker helps you understand where your tokens go,",
60
+ " a GitHub Star helps more developers find it:",
61
+ ` ${STAR_CTA_URL}`,
62
+ "",
63
+ ].join("\n"),
64
+ );
65
+ return { shown: true, reason: "shown" };
66
+ }
67
+
68
+ module.exports = {
69
+ STAR_CTA_URL,
70
+ STAR_CTA_STATE_FILE,
71
+ isInteractiveCli,
72
+ maybeShowStarCta,
73
+ };
@@ -1 +0,0 @@
1
- import{r as n,b7 as a}from"./main-hXifO_Tp.js";import{u as p}from"./DialogTitle-DwbiXVxh.js";import{u as c}from"./useScrollLock-DP7SL29Q.js";const x=n.forwardRef(function(e,r){const{render:l,className:u,style:m,id:s,...t}=e,{store:i}=p(),o=c(s);return i.useSyncedValueWithCleanup("descriptionElementId",o),a("p",e,{ref:r,props:[{id:o},t]})});export{x as D};
@@ -1 +0,0 @@
1
- import{c}from"./main-hXifO_Tp.js";const e=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],t=c("check",e);export{t as C};