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.
- package/dashboard/dist/assets/{AchievementBadge-wAEfjNCA.js → AchievementBadge-BgLKRfg6.js} +1 -1
- package/dashboard/dist/assets/{AchievementsPage-Dv5LhNzL.js → AchievementsPage-DAZPKi69.js} +2 -2
- package/dashboard/dist/assets/{AchievementsSection-a3gkS8tD.js → AchievementsSection-Bpck20e3.js} +1 -1
- package/dashboard/dist/assets/{BadgeDetailModal-BNItadFZ.js → BadgeDetailModal-Di0rpmTQ.js} +1 -1
- package/dashboard/dist/assets/{Card-CmemgZ8c.js → Card-CiVg1n9y.js} +1 -1
- package/dashboard/dist/assets/{ClawdAnimated-CaZ4BpsR.js → ClawdAnimated-Dhw6SxU-.js} +1 -1
- package/dashboard/dist/assets/{CommunityStatsModal-C3gojIs4.js → CommunityStatsModal-DosBW4lR.js} +1 -1
- package/dashboard/dist/assets/{ConfirmModal-DZGC1wxW.js → ConfirmModal-DD1Ri-dh.js} +1 -1
- package/dashboard/dist/assets/{Controls-BMAZOGJA.js → Controls-BQxSK041.js} +1 -1
- package/dashboard/dist/assets/{DashboardPage-Sv3L7w2P.js → DashboardPage-B7F7CLG5.js} +1 -1
- package/dashboard/dist/assets/{DevicePage-VfvDSVAL.js → DevicePage-BgByRtlZ.js} +1 -1
- package/dashboard/dist/assets/{DialogClose-RhHDM3jn.js → DialogClose-DigAXf6w.js} +1 -1
- package/dashboard/dist/assets/DialogDescription-CS0HEX8l.js +1 -0
- package/dashboard/dist/assets/{DialogTitle-DwbiXVxh.js → DialogTitle-Du1uOZMr.js} +1 -1
- package/dashboard/dist/assets/{FadeIn-CQCtW5QX.js → FadeIn-Da6jgqZ_.js} +1 -1
- package/dashboard/dist/assets/{HeaderGithubStar-BR8zEIU9.js → HeaderGithubStar-Cqqy7vB7.js} +1 -1
- package/dashboard/dist/assets/{IpCheckPage-rKHYtujQ.js → IpCheckPage-DkTAw_dO.js} +1 -1
- package/dashboard/dist/assets/{LandingPage-x6KqrhSL.js → LandingPage-Dvb9s-kJ.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardAvatar-BUoLYT1K.js → LeaderboardAvatar-Ch7SLsZ_.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardPage-bCcorBNY.js → LeaderboardPage-BbPfFFuF.js} +2 -2
- package/dashboard/dist/assets/{LeaderboardProfileModal-DM84x71o.js → LeaderboardProfileModal-PFZaQLMG.js} +3 -3
- package/dashboard/dist/assets/{LeaderboardProfilePage-DO3bP3yS.js → LeaderboardProfilePage-DRautoWL.js} +1 -1
- package/dashboard/dist/assets/{LimitsPage-CGDnKTon.js → LimitsPage-Bwc3XCCg.js} +1 -1
- package/dashboard/dist/assets/{LocalOnlyNotice-DbXdLROj.js → LocalOnlyNotice-DftNXQsE.js} +1 -1
- package/dashboard/dist/assets/{LoginPage-DIRdoCb2.js → LoginPage-CffpNmm-.js} +1 -1
- package/dashboard/dist/assets/{PetPage-CIevZPBl.js → PetPage-C_lq7mMA.js} +1 -1
- package/dashboard/dist/assets/{PopoverPopup-BRphdEUz.js → PopoverPopup-B7L6V9OS.js} +1 -1
- package/dashboard/dist/assets/{ResetPasswordPage-BJQBIphH.js → ResetPasswordPage-P-VatRkZ.js} +1 -1
- package/dashboard/dist/assets/{Select-gHY4N9ZP.js → Select-NpNBO_zW.js} +1 -1
- package/dashboard/dist/assets/{SelectItemText-CLpcRYRB.js → SelectItemText-DEqB9ndy.js} +1 -1
- package/dashboard/dist/assets/{SettingsPage-D7ux0u6V.js → SettingsPage-uCZ0OdF3.js} +1 -1
- package/dashboard/dist/assets/{SkillsPage-DRCrdltk.js → SkillsPage-Dy_sojV5.js} +1 -1
- package/dashboard/dist/assets/{WidgetsPage-CmifV9Qh.js → WidgetsPage-CzbeMPoq.js} +1 -1
- package/dashboard/dist/assets/{WrappedPage-VKP5hIAs.js → WrappedPage-C9sMo5ha.js} +1 -1
- package/dashboard/dist/assets/{agent-logos---afteTI.js → agent-logos-D95HrgpM.js} +1 -1
- package/dashboard/dist/assets/{arrow-up-right-DAyZEmy0.js → arrow-up-right-jaA_F8VA.js} +1 -1
- package/dashboard/dist/assets/check-ShRr2Grp.js +1 -0
- package/dashboard/dist/assets/{copy-BQ4dDdQO.js → copy-BUsG8Dxq.js} +1 -1
- package/dashboard/dist/assets/{download-C0OHvtFX.js → download-B89jns_I.js} +1 -1
- package/dashboard/dist/assets/{flame-Bk2l5Mqz.js → flame-DYJfKTkq.js} +1 -1
- package/dashboard/dist/assets/{format-tokens-BuWmqFvA.js → format-tokens-Ck4iJNuB.js} +1 -1
- package/dashboard/dist/assets/{info-CvbVDSUt.js → info-DgaOnN42.js} +1 -1
- package/dashboard/dist/assets/{link-2-DEoNTwlC.js → link-2-l6SkcxP3.js} +1 -1
- package/dashboard/dist/assets/{loader-circle-5YZxGR3t.js → loader-circle-BTZ18vzb.js} +1 -1
- package/dashboard/dist/assets/{main-hXifO_Tp.js → main-BVPlyJJu.js} +2 -2
- package/dashboard/dist/assets/{provider-display-BZrfO0vc.js → provider-display-DuQlae7O.js} +1 -1
- package/dashboard/dist/assets/{trash-2-CmXAeMGC.js → trash-2-DDKBUuG2.js} +1 -1
- package/dashboard/dist/assets/{use-community-stats-sX5H9fnG.js → use-community-stats-KM2l89gG.js} +1 -1
- package/dashboard/dist/assets/{use-limits-display-prefs-B_gzE53D.js → use-limits-display-prefs-1RM6rjBg.js} +1 -1
- package/dashboard/dist/assets/{use-native-settings-BkIj-y5n.js → use-native-settings-S7AyC9Ou.js} +1 -1
- package/dashboard/dist/assets/{use-ordered-list-BQHfDz38.js → use-ordered-list-B3ExZ03c.js} +1 -1
- package/dashboard/dist/assets/{use-quality-per-dollar-pref-B8clb2IP.js → use-quality-per-dollar-pref-oapCFOoT.js} +1 -1
- package/dashboard/dist/assets/{use-transform-Bu6AKPnc.js → use-transform-Cd2VlHK0.js} +1 -1
- package/dashboard/dist/assets/{use-usage-limits-BXOTiyCG.js → use-usage-limits-BMwpdXJP.js} +1 -1
- package/dashboard/dist/assets/{useCurrency-yQkSTo4P.js → useCurrency-BA2GiiJp.js} +1 -1
- package/dashboard/dist/assets/{useScrollLock-DP7SL29Q.js → useScrollLock-CBHwgGF7.js} +1 -1
- package/dashboard/dist/assets/{zap-C122AVXf.js → zap-C3aLlz8b.js} +1 -1
- package/dashboard/dist/index.html +1 -1
- package/dashboard/dist/share.html +1 -1
- package/package.json +1 -1
- package/src/commands/init.js +4 -6
- package/src/commands/serve.js +3 -0
- package/src/lib/pricing/seed-snapshot.json +1 -1
- package/src/lib/star-cta.js +73 -0
- package/dashboard/dist/assets/DialogDescription-ozWESnQP.js +0 -1
- 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};
|