tokentracker-cli 0.84.7 → 0.84.8
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-DAPsTMsx.js → AchievementBadge-DAAenS6A.js} +1 -1
- package/dashboard/dist/assets/{AchievementsPage-B9oXfXvm.js → AchievementsPage-DJ9GMKxL.js} +2 -2
- package/dashboard/dist/assets/{AchievementsSection-DI_LTZb3.js → AchievementsSection-DtpLrh2Q.js} +1 -1
- package/dashboard/dist/assets/{BadgeDetailModal--WCrJWVa.js → BadgeDetailModal-CkE1DwdN.js} +1 -1
- package/dashboard/dist/assets/{Card-BzbSN3EC.js → Card-Cs2vVMHG.js} +1 -1
- package/dashboard/dist/assets/{ClawdAnimated-Dgxae1At.js → ClawdAnimated-BCSNeob2.js} +1 -1
- package/dashboard/dist/assets/{CommandPalette-BiZBYV5A.js → CommandPalette-CFDTjp76.js} +1 -1
- package/dashboard/dist/assets/{CommunityStatsModal-C6jZx10_.js → CommunityStatsModal-D2oJpI9i.js} +1 -1
- package/dashboard/dist/assets/{ConfirmModal-lD-mHMvO.js → ConfirmModal-D0a_xdwF.js} +1 -1
- package/dashboard/dist/assets/{DashboardPage-DCPNoiRG.js → DashboardPage-CMCqvpkA.js} +1 -1
- package/dashboard/dist/assets/{DevicePage-DiF2IOjJ.js → DevicePage-c9Fk13gJ.js} +1 -1
- package/dashboard/dist/assets/{DialogClose-Crx2EFnI.js → DialogClose-jsfDvF2n.js} +1 -1
- package/dashboard/dist/assets/DialogDescription-Dwxj5h5w.js +1 -0
- package/dashboard/dist/assets/{DialogTitle-amHXttsp.js → DialogTitle-Dt835L7T.js} +1 -1
- package/dashboard/dist/assets/{FadeIn-CIhF_9PP.js → FadeIn-DJssGrj8.js} +1 -1
- package/dashboard/dist/assets/{HeaderGithubStar-D6Ph2GuY.js → HeaderGithubStar-B9MwwA-P.js} +1 -1
- package/dashboard/dist/assets/{HoverTooltip-BS8eO6tj.js → HoverTooltip-DPLMJkai.js} +1 -1
- package/dashboard/dist/assets/{IpCheckPage-Cz1Je6WS.js → IpCheckPage-BXKjxEHe.js} +1 -1
- package/dashboard/dist/assets/{LandingPage-DqeXJfwn.js → LandingPage-BJNMQTec.js} +2 -2
- package/dashboard/dist/assets/{LeaderboardAvatar-D09yLoVA.js → LeaderboardAvatar-BNwbnOa3.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardPage-BetpFetS.js → LeaderboardPage-BOxejyMy.js} +2 -2
- package/dashboard/dist/assets/{LeaderboardProfileModal-UW3KnANZ.js → LeaderboardProfileModal-BEqUZCOD.js} +3 -3
- package/dashboard/dist/assets/{LeaderboardProfilePage-Chd_2AVY.js → LeaderboardProfilePage-CUDV5iyh.js} +1 -1
- package/dashboard/dist/assets/{LimitsPage-uhpNteXJ.js → LimitsPage-ejlJN1vi.js} +1 -1
- package/dashboard/dist/assets/{LocalOnlyNotice-CpFFX8ro.js → LocalOnlyNotice-B3BSeCHd.js} +1 -1
- package/dashboard/dist/assets/{LoginCard-DkZpGnVu.js → LoginCard-2mAb696j.js} +1 -1
- package/dashboard/dist/assets/{LoginModal-CALv6jkD.js → LoginModal-cacKhc6U.js} +1 -1
- package/dashboard/dist/assets/{LoginPage-BZuXHYAT.js → LoginPage-rnBlie8p.js} +1 -1
- package/dashboard/dist/assets/{PetPage-C1LuDyYr.js → PetPage-D3DhuS6O.js} +1 -1
- package/dashboard/dist/assets/{PopoverPopup-CluVhrMr.js → PopoverPopup-CxATX7M9.js} +1 -1
- package/dashboard/dist/assets/{ProviderIcon-D3YKjVKb.js → ProviderIcon-B5b9LkmM.js} +1 -1
- package/dashboard/dist/assets/{ResetPasswordPage-CzN50nX5.js → ResetPasswordPage-BGKmQ_JW.js} +1 -1
- package/dashboard/dist/assets/{SegmentedControl-DFOAcEKU.js → SegmentedControl-BMeYCm2b.js} +1 -1
- package/dashboard/dist/assets/{Select-B3W_ihs_.js → Select-CYHXq8im.js} +1 -1
- package/dashboard/dist/assets/{SelectItemText-FXRtXnFV.js → SelectItemText-DvI4i06h.js} +1 -1
- package/dashboard/dist/assets/{ServiceStatusPage-BItZqH7q.js → ServiceStatusPage-dv26-VvI.js} +1 -1
- package/dashboard/dist/assets/{SessionsPage-DVQU-hTH.js → SessionsPage-DBQruqkO.js} +1 -1
- package/dashboard/dist/assets/{SettingsPage-ByvrwOi6.js → SettingsPage-BWRbQ3Iq.js} +1 -1
- package/dashboard/dist/assets/{SkillsPage-DrGr5Qij.js → SkillsPage-BonhKgAt.js} +1 -1
- package/dashboard/dist/assets/{TokenGalaxy-ClF_n9od.js → TokenGalaxy-BBUD1kpU.js} +1 -1
- package/dashboard/dist/assets/{ToolbarRootContext-B82hGhAf.js → ToolbarRootContext-DPMm8uYz.js} +1 -1
- package/dashboard/dist/assets/{TrendMonitor-DkWm7_1z.js → TrendMonitor-CZVE6gID.js} +1 -1
- package/dashboard/dist/assets/{WidgetsPage-DCY4pyR2.js → WidgetsPage-Bz9cieeZ.js} +1 -1
- package/dashboard/dist/assets/{WrappedPage-yGQ4DLqj.js → WrappedPage-CruMolZd.js} +1 -1
- package/dashboard/dist/assets/{__vite-browser-external-BdRrPLk6.js → __vite-browser-external-C3VH6nS4.js} +2 -2
- package/dashboard/dist/assets/{agent-logos-D5SHGOxB.js → agent-logos-HIeYwIqN.js} +1 -1
- package/dashboard/dist/assets/{arrow-up-right-CbMcAcss.js → arrow-up-right-n7Bi4Tvd.js} +1 -1
- package/dashboard/dist/assets/{check-Dyzh7lTz.js → check-C5Q44G5k.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-DT06ZIKC.js → chevron-right-BsnptUU0.js} +1 -1
- package/dashboard/dist/assets/{copy-B3Kt3Wrf.js → copy-BGuL9uFa.js} +1 -1
- package/dashboard/dist/assets/{download-B3rOytqI.js → download-BljgPwR2.js} +1 -1
- package/dashboard/dist/assets/{external-link-BamTP0Ks.js → external-link-B4Oz8hUe.js} +1 -1
- package/dashboard/dist/assets/{flame-msy2h1ms.js → flame-ChLG_NZE.js} +1 -1
- package/dashboard/dist/assets/{format-tokens-8b1OUM_8.js → format-tokens-DjuNk13Z.js} +1 -1
- package/dashboard/dist/assets/{icons-C2NR2_Tf.js → icons-CkO42M-u.js} +1 -1
- package/dashboard/dist/assets/{index-x3vFJQFt.js → index-CEsvYBWY.js} +1 -1
- package/dashboard/dist/assets/{index-CvTfpiCF.js → index-CGxawuWx.js} +1 -1
- package/dashboard/dist/assets/{index-C8sDJzUY.js → index-D87oE_rV.js} +1 -1
- package/dashboard/dist/assets/{info-C9j23aGq.js → info-et8xtJ4v.js} +1 -1
- package/dashboard/dist/assets/{limits-providers-ySB9Ci5l.js → limits-providers-vO_86yRy.js} +1 -1
- package/dashboard/dist/assets/{link-2-rrcyTT6S.js → link-2-Dge2rBkr.js} +1 -1
- package/dashboard/dist/assets/{loader-circle-x9x9I8Hv.js → loader-circle-Cs3wpqJe.js} +1 -1
- package/dashboard/dist/assets/{maximize-2-7TWFb2k7.js → maximize-2-zn71uZX3.js} +1 -1
- package/dashboard/dist/assets/{provider-display-JbSwpvxU.js → provider-display-CTt6mzLe.js} +1 -1
- package/dashboard/dist/assets/{react-DK5clHtY.js → react-BbHDQe6Q.js} +1 -1
- package/dashboard/dist/assets/{search-DukXRvEV.js → search-3CMhatWb.js} +1 -1
- package/dashboard/dist/assets/{skills-api-BUFJuwiR.js → skills-api-Cm1aiqWL.js} +1 -1
- package/dashboard/dist/assets/{store-BTh7bv09.js → store-DclXV77t.js} +1 -1
- package/dashboard/dist/assets/{terminal-CcUqLtn1.js → terminal-BC7uFcA7.js} +1 -1
- package/dashboard/dist/assets/{trash-2-Bq7hnvNq.js → trash-2-BT8V531F.js} +1 -1
- package/dashboard/dist/assets/{use-community-stats-qTpx6ugG.js → use-community-stats-DJr59SGu.js} +1 -1
- package/dashboard/dist/assets/{use-limits-display-prefs-Di_J4eVv.js → use-limits-display-prefs-DU8OOFVb.js} +1 -1
- package/dashboard/dist/assets/{use-native-settings-CIqpv9Z3.js → use-native-settings-BvSwI4BL.js} +1 -1
- package/dashboard/dist/assets/{use-ordered-list-OwogSXT7.js → use-ordered-list-Cq5AyV2x.js} +1 -1
- package/dashboard/dist/assets/use-reduced-motion-D1_q3aRK.js +1 -0
- package/dashboard/dist/assets/{use-session-efficiency-pref-CjAvMh7u.js → use-session-efficiency-pref-WS8NhXuW.js} +1 -1
- package/dashboard/dist/assets/{use-transform-KZLdt-NZ.js → use-transform-CLYsi8xc.js} +1 -1
- package/dashboard/dist/assets/{use-usage-limits-Tbifa037.js → use-usage-limits-CGoQQDG-.js} +1 -1
- package/dashboard/dist/assets/{useCurrency-D2td-bkn.js → useCurrency-D0GtEoJD.js} +1 -1
- package/dashboard/dist/assets/{useScrollLock-Cvyfyezc.js → useScrollLock-TIUBSeIM.js} +1 -1
- package/dashboard/dist/assets/{useTokenFormat-DYIUS6IH.js → useTokenFormat-B0TBL9La.js} +1 -1
- package/dashboard/dist/assets/{zap-B19mEed5.js → zap-D89769CL.js} +1 -1
- package/dashboard/dist/index.html +1 -1
- package/dashboard/dist/ip-check.html +1 -1
- package/dashboard/dist/leaderboard.html +1 -1
- package/dashboard/dist/share.html +1 -1
- package/package.json +1 -1
- package/src/lib/pricing/seed-snapshot.json +1 -1
- package/src/lib/qoder-limits.js +2 -205
- package/src/lib/usage-limits.js +0 -1
- package/dashboard/dist/assets/DialogDescription-CHsHo924.js +0 -1
- package/dashboard/dist/assets/use-reduced-motion-5QGGPoom.js +0 -1
package/src/lib/qoder-limits.js
CHANGED
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
const cp = require("node:child_process");
|
|
4
3
|
const crypto = require("node:crypto");
|
|
5
4
|
const fs = require("node:fs");
|
|
6
5
|
const net = require("node:net");
|
|
7
6
|
const os = require("node:os");
|
|
8
7
|
const path = require("node:path");
|
|
9
|
-
const { promisify } = require("node:util");
|
|
10
|
-
|
|
11
|
-
const { readSqliteJsonRowsAsync } = require("./sqlite-reader");
|
|
12
|
-
|
|
13
|
-
const execFileAsync = promisify(cp.execFile);
|
|
14
8
|
|
|
15
9
|
const QODER_SITES = {
|
|
16
10
|
international: {
|
|
@@ -50,53 +44,6 @@ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA8iMH5c02LilrsERw9t6Pv5Nc
|
|
|
50
44
|
XcW+ML9FoCI6AOvOzwIDAQAB
|
|
51
45
|
-----END PUBLIC KEY-----`;
|
|
52
46
|
|
|
53
|
-
const MACOS_CHROMIUM_BROWSERS = [
|
|
54
|
-
{
|
|
55
|
-
name: "Google Chrome",
|
|
56
|
-
root: ["Library", "Application Support", "Google", "Chrome"],
|
|
57
|
-
service: "Chrome Safe Storage",
|
|
58
|
-
account: "Chrome",
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
name: "Brave",
|
|
62
|
-
root: ["Library", "Application Support", "BraveSoftware", "Brave-Browser"],
|
|
63
|
-
service: "Brave Safe Storage",
|
|
64
|
-
account: "Brave",
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
name: "Microsoft Edge",
|
|
68
|
-
root: ["Library", "Application Support", "Microsoft Edge"],
|
|
69
|
-
service: "Microsoft Edge Safe Storage",
|
|
70
|
-
account: "Microsoft Edge",
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
name: "Arc",
|
|
74
|
-
root: ["Library", "Application Support", "Arc", "User Data"],
|
|
75
|
-
service: "Arc Safe Storage",
|
|
76
|
-
account: "Arc",
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
name: "Chromium",
|
|
80
|
-
root: ["Library", "Application Support", "Chromium"],
|
|
81
|
-
service: "Chromium Safe Storage",
|
|
82
|
-
account: "Chromium",
|
|
83
|
-
},
|
|
84
|
-
];
|
|
85
|
-
|
|
86
|
-
const CHROMIUM_COOKIE_SQL = `
|
|
87
|
-
SELECT
|
|
88
|
-
host_key,
|
|
89
|
-
name,
|
|
90
|
-
value,
|
|
91
|
-
hex(encrypted_value) AS encrypted_hex
|
|
92
|
-
FROM cookies
|
|
93
|
-
WHERE lower(host_key) IN (
|
|
94
|
-
'.qoder.com', 'qoder.com', 'www.qoder.com',
|
|
95
|
-
'.qoder.com.cn', 'qoder.com.cn', 'www.qoder.com.cn'
|
|
96
|
-
)
|
|
97
|
-
ORDER BY host_key, name
|
|
98
|
-
`;
|
|
99
|
-
|
|
100
47
|
function finiteNumber(value, field) {
|
|
101
48
|
const number = Number(value);
|
|
102
49
|
if (!Number.isFinite(number)) {
|
|
@@ -550,147 +497,6 @@ async function fetchQoderActivity(authStatus, fetchImpl = fetch, options = {}) {
|
|
|
550
497
|
return normalizeQoderActivityResponse(await response.json(), options);
|
|
551
498
|
}
|
|
552
499
|
|
|
553
|
-
function normalizeCookieDomain(hostKey) {
|
|
554
|
-
return String(hostKey || "").trim().toLowerCase().replace(/^\./, "");
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
function decryptChromiumCookie({ encryptedHex, plaintextValue, hostKey, password }) {
|
|
558
|
-
if (typeof plaintextValue === "string" && plaintextValue) return plaintextValue;
|
|
559
|
-
if (!encryptedHex || !password) return null;
|
|
560
|
-
let encrypted;
|
|
561
|
-
try {
|
|
562
|
-
encrypted = Buffer.from(encryptedHex, "hex");
|
|
563
|
-
} catch (_error) {
|
|
564
|
-
return null;
|
|
565
|
-
}
|
|
566
|
-
if (encrypted.length <= 3) return null;
|
|
567
|
-
const version = encrypted.subarray(0, 3).toString("ascii");
|
|
568
|
-
if (version !== "v10" && version !== "v11") return null;
|
|
569
|
-
|
|
570
|
-
try {
|
|
571
|
-
const key = crypto.pbkdf2Sync(password, "saltysalt", 1003, 16, "sha1");
|
|
572
|
-
const decipher = crypto.createDecipheriv(
|
|
573
|
-
"aes-128-cbc",
|
|
574
|
-
key,
|
|
575
|
-
Buffer.alloc(16, 0x20),
|
|
576
|
-
);
|
|
577
|
-
let decrypted = Buffer.concat([
|
|
578
|
-
decipher.update(encrypted.subarray(3)),
|
|
579
|
-
decipher.final(),
|
|
580
|
-
]);
|
|
581
|
-
const hostDigest = crypto.createHash("sha256").update(String(hostKey || "")).digest();
|
|
582
|
-
if (decrypted.length >= hostDigest.length && decrypted.subarray(0, 32).equals(hostDigest)) {
|
|
583
|
-
decrypted = decrypted.subarray(32);
|
|
584
|
-
}
|
|
585
|
-
const value = decrypted.toString("utf8");
|
|
586
|
-
return value || null;
|
|
587
|
-
} catch (_error) {
|
|
588
|
-
return null;
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
async function readMacosSafeStoragePassword({
|
|
593
|
-
service,
|
|
594
|
-
account,
|
|
595
|
-
securityRunner,
|
|
596
|
-
} = {}) {
|
|
597
|
-
const runner = securityRunner || (async (args) => {
|
|
598
|
-
const result = await execFileAsync("/usr/bin/security", args, {
|
|
599
|
-
timeout: 5000,
|
|
600
|
-
maxBuffer: 1024 * 1024,
|
|
601
|
-
});
|
|
602
|
-
return result.stdout;
|
|
603
|
-
});
|
|
604
|
-
try {
|
|
605
|
-
const output = await runner([
|
|
606
|
-
"find-generic-password",
|
|
607
|
-
"-w",
|
|
608
|
-
"-s",
|
|
609
|
-
service,
|
|
610
|
-
"-a",
|
|
611
|
-
account,
|
|
612
|
-
]);
|
|
613
|
-
const password = String(output || "").trim();
|
|
614
|
-
return password || null;
|
|
615
|
-
} catch (_error) {
|
|
616
|
-
return null;
|
|
617
|
-
}
|
|
618
|
-
}
|
|
619
|
-
|
|
620
|
-
function chromiumProfileDirs(browserRoot) {
|
|
621
|
-
if (!fs.existsSync(browserRoot)) return [];
|
|
622
|
-
let entries = [];
|
|
623
|
-
try {
|
|
624
|
-
entries = fs.readdirSync(browserRoot, { withFileTypes: true });
|
|
625
|
-
} catch (_error) {
|
|
626
|
-
return [];
|
|
627
|
-
}
|
|
628
|
-
return entries
|
|
629
|
-
.filter((entry) => entry.isDirectory() && (entry.name === "Default" || /^Profile \d+$/.test(entry.name)))
|
|
630
|
-
.map((entry) => path.join(browserRoot, entry.name))
|
|
631
|
-
.filter((profileDir) => fs.existsSync(path.join(profileDir, "Cookies")));
|
|
632
|
-
}
|
|
633
|
-
|
|
634
|
-
function cookieHeaderFromRows(rows, password, site) {
|
|
635
|
-
const pairs = [];
|
|
636
|
-
for (const row of Array.isArray(rows) ? rows : []) {
|
|
637
|
-
const domain = normalizeCookieDomain(row?.host_key);
|
|
638
|
-
if (!site.domains.has(domain)) continue;
|
|
639
|
-
const name = typeof row?.name === "string" ? row.name.trim() : "";
|
|
640
|
-
if (!name) continue;
|
|
641
|
-
const value = decryptChromiumCookie({
|
|
642
|
-
encryptedHex: row.encrypted_hex,
|
|
643
|
-
plaintextValue: row.value,
|
|
644
|
-
hostKey: row.host_key,
|
|
645
|
-
password,
|
|
646
|
-
});
|
|
647
|
-
if (value) pairs.push(`${name}=${value}`);
|
|
648
|
-
}
|
|
649
|
-
return pairs.length > 0 ? pairs.join("; ") : null;
|
|
650
|
-
}
|
|
651
|
-
|
|
652
|
-
async function importMacosQoderSessions({
|
|
653
|
-
home = os.homedir(),
|
|
654
|
-
platform = process.platform,
|
|
655
|
-
securityRunner,
|
|
656
|
-
sqliteReader = readSqliteJsonRowsAsync,
|
|
657
|
-
} = {}) {
|
|
658
|
-
if (platform !== "darwin") return [];
|
|
659
|
-
const sessions = [];
|
|
660
|
-
for (const browser of MACOS_CHROMIUM_BROWSERS) {
|
|
661
|
-
const browserRoot = path.join(home, ...browser.root);
|
|
662
|
-
const profiles = chromiumProfileDirs(browserRoot);
|
|
663
|
-
if (profiles.length === 0) continue;
|
|
664
|
-
const password = await readMacosSafeStoragePassword({
|
|
665
|
-
service: browser.service,
|
|
666
|
-
account: browser.account,
|
|
667
|
-
securityRunner,
|
|
668
|
-
});
|
|
669
|
-
if (!password) continue;
|
|
670
|
-
for (const profileDir of profiles) {
|
|
671
|
-
let rows;
|
|
672
|
-
try {
|
|
673
|
-
rows = await sqliteReader(path.join(profileDir, "Cookies"), CHROMIUM_COOKIE_SQL, {
|
|
674
|
-
label: `${browser.name} cookies`,
|
|
675
|
-
});
|
|
676
|
-
} catch (_error) {
|
|
677
|
-
continue;
|
|
678
|
-
}
|
|
679
|
-
for (const site of Object.values(QODER_SITES)) {
|
|
680
|
-
const cookieHeader = cookieHeaderFromRows(rows, password, site);
|
|
681
|
-
if (cookieHeader) {
|
|
682
|
-
sessions.push({
|
|
683
|
-
cookieHeader,
|
|
684
|
-
site,
|
|
685
|
-
sourceLabel: `${browser.name} ${path.basename(profileDir)}`,
|
|
686
|
-
});
|
|
687
|
-
}
|
|
688
|
-
}
|
|
689
|
-
}
|
|
690
|
-
}
|
|
691
|
-
return sessions;
|
|
692
|
-
}
|
|
693
|
-
|
|
694
500
|
function qoderRequestHeaders(cookieHeader, site) {
|
|
695
501
|
return {
|
|
696
502
|
Cookie: cookieHeader,
|
|
@@ -834,8 +640,6 @@ async function fetchQoderLimits({
|
|
|
834
640
|
home = os.homedir(),
|
|
835
641
|
env = process.env,
|
|
836
642
|
platform = process.platform,
|
|
837
|
-
securityRunner,
|
|
838
|
-
sqliteReader,
|
|
839
643
|
fetchImpl = fetch,
|
|
840
644
|
rpcRequest = qoderRpcRequest,
|
|
841
645
|
nowMs = Date.now(),
|
|
@@ -884,10 +688,7 @@ async function fetchQoderLimits({
|
|
|
884
688
|
}
|
|
885
689
|
|
|
886
690
|
// Match the Antigravity last-good behavior: once the local service is
|
|
887
|
-
// unavailable, prefer a bounded disk snapshot before
|
|
888
|
-
// slower browser-cookie fallback. On macOS, probing Chromium profiles may
|
|
889
|
-
// involve multiple Keychain reads; letting those run first can consume the
|
|
890
|
-
// provider timeout and make a perfectly valid cache look intermittent.
|
|
691
|
+
// unavailable, prefer a bounded disk snapshot before any provider fallback.
|
|
891
692
|
const cachedLimits = readQoderLimitsCache({ home, nowMs });
|
|
892
693
|
if (cachedLimits) {
|
|
893
694
|
if (activityWindow) cachedLimits.secondary_window = activityWindow;
|
|
@@ -897,7 +698,7 @@ async function fetchQoderLimits({
|
|
|
897
698
|
const manualCookie = typeof env.QODER_COOKIE === "string" ? env.QODER_COOKIE.trim() : "";
|
|
898
699
|
const sessions = manualCookie
|
|
899
700
|
? [{ cookieHeader: manualCookie, site: siteFromEnv(env.QODER_SITE), sourceLabel: "QODER_COOKIE" }]
|
|
900
|
-
:
|
|
701
|
+
: [];
|
|
901
702
|
|
|
902
703
|
let lastError = null;
|
|
903
704
|
for (const session of sessions) {
|
|
@@ -963,13 +764,9 @@ async function fetchQoderLimits({
|
|
|
963
764
|
|
|
964
765
|
module.exports = {
|
|
965
766
|
QODER_SITES,
|
|
966
|
-
CHROMIUM_COOKIE_SQL,
|
|
967
767
|
normalizeQoderUsageResponse,
|
|
968
768
|
normalizeQoderRpcUsage,
|
|
969
769
|
normalizeQoderActivityResponse,
|
|
970
|
-
decryptChromiumCookie,
|
|
971
|
-
cookieHeaderFromRows,
|
|
972
|
-
importMacosQoderSessions,
|
|
973
770
|
qoderRequestHeaders,
|
|
974
771
|
fetchQoderUsage,
|
|
975
772
|
qoderRpcRequest,
|
package/src/lib/usage-limits.js
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as n,A as a}from"./__vite-browser-external-BdRrPLk6.js";import{u as p}from"./DialogTitle-amHXttsp.js";import{u as c}from"./useScrollLock-Cvyfyezc.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{r as o}from"./__vite-browser-external-BdRrPLk6.js";import{h as r,i as t,p as s}from"./react-DK5clHtY.js";function i(){!r.current&&t();const[e]=o.useState(s.current);return e}export{i as u};
|