oc-go-usage-display 1.0.2 → 1.1.0
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/README.md +30 -1
- package/bin/lib.js +47 -1
- package/bin/oc-go-usage-display-remove.js +33 -0
- package/bin/oc-go-usage-display-status.js +19 -7
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -133
- package/dist/index.js.map +1 -1
- package/dist/shared.d.ts +28 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +152 -0
- package/dist/shared.js.map +1 -0
- package/dist/tui.d.ts +17 -0
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +26 -124
- package/dist/tui.js.map +1 -1
- package/package.json +4 -2
- package/src/index.ts +34 -148
- package/src/shared.ts +179 -0
- package/src/tui.tsx +42 -137
package/README.md
CHANGED
|
@@ -79,10 +79,32 @@ node ./bin/oc-go-usage-display-init.js # (re-)install
|
|
|
79
79
|
node ./bin/oc-go-usage-display-show.js # show effective config (secrets redacted)
|
|
80
80
|
node ./bin/oc-go-usage-display-status.js # health check (exit 0/1)
|
|
81
81
|
node ./bin/oc-go-usage-display-update.js # re-link (+ git pull when a remote exists)
|
|
82
|
+
node ./bin/oc-go-usage-display-remove.js # uninstall (files + config entries; secrets untouched)
|
|
82
83
|
```
|
|
83
84
|
|
|
84
85
|
After installing the package, the commands are also available as
|
|
85
|
-
`oc-go-usage-display-init|show|status|update`.
|
|
86
|
+
`oc-go-usage-display-init|show|status|update|remove`.
|
|
87
|
+
|
|
88
|
+
## Uninstall
|
|
89
|
+
|
|
90
|
+
```sh
|
|
91
|
+
npx oc-go-usage-display-remove
|
|
92
|
+
npm uninstall oc-go-usage-display
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Or from a checkout: `node ./bin/oc-go-usage-display-remove.js`.
|
|
96
|
+
This removes the plugin files plus the `opencode.jsonc` (server) and
|
|
97
|
+
`tui.json` (TUI) entries (`--config-dir` / `OPENCODE_CONFIG_DIR` supported).
|
|
98
|
+
Secrets are never touched: env vars, `auth.json`, and
|
|
99
|
+
`oc-go-usage-display.json` stay in place — delete them by hand if desired.
|
|
100
|
+
Restart opencode afterwards.
|
|
101
|
+
|
|
102
|
+
Manual file list (global scope):
|
|
103
|
+
|
|
104
|
+
- `~/.config/opencode/plugins/oc-go-usage-display.ts`
|
|
105
|
+
- `~/.config/opencode/plugins/oc-go-usage-display.tsx`
|
|
106
|
+
- server entry (`./plugins/oc-go-usage-display.ts`) in `~/.config/opencode/opencode.jsonc`
|
|
107
|
+
- TUI entry (`./plugins/oc-go-usage-display.tsx`) in `~/.config/opencode/tui.json`
|
|
86
108
|
|
|
87
109
|
## Display toggles
|
|
88
110
|
|
|
@@ -92,6 +114,13 @@ Both surfaces default on and are independent:
|
|
|
92
114
|
["./plugins/oc-go-usage-display.tsx", { "sidebar": true, "statusline": true }]
|
|
93
115
|
```
|
|
94
116
|
|
|
117
|
+

|
|
118
|
+
|
|
119
|
+
Sidebar/statusline toggles are also accessible via opencode commands (ctrl+p) as
|
|
120
|
+
`Go usage: toggle sidebar` / `Go usage: toggle statusline`
|
|
121
|
+
(`opencode-go-usage-display.toggle-sidebar` / `opencode-go-usage-display.toggle-statusline`),
|
|
122
|
+
in addition to the `tui.json` `sidebar` / `statusline` booleans.
|
|
123
|
+
|
|
95
124
|
`OPENCODE_GO_SIDEBAR` / `OPENCODE_GO_STATUSLINE` env vars override when the
|
|
96
125
|
toggles are absent. Restart opencode after changing them.
|
|
97
126
|
|
package/bin/lib.js
CHANGED
|
@@ -224,7 +224,7 @@ export function readTuiSelection(configDir) {
|
|
|
224
224
|
return { found: true, entry: false, sidebar: null, statusline: null };
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
-
function normalizeTuiEntry(entry) {
|
|
227
|
+
export function normalizeTuiEntry(entry) {
|
|
228
228
|
if (typeof entry === "string") return { spec: entry, sidebar: null, statusline: null };
|
|
229
229
|
if (!Array.isArray(entry) || typeof entry[0] !== "string") return null;
|
|
230
230
|
const options = entry.length > 1 && isRecord(entry[1]) ? entry[1] : {};
|
|
@@ -293,3 +293,49 @@ export function secretPresence(configDir) {
|
|
|
293
293
|
filePresent: fs.existsSync(fileConfig),
|
|
294
294
|
};
|
|
295
295
|
}
|
|
296
|
+
|
|
297
|
+
export function removePluginFiles(configDir) {
|
|
298
|
+
const removed = [];
|
|
299
|
+
const kept = [];
|
|
300
|
+
for (const fileName of [SERVER_FILE_NAME, TUI_FILE_NAME]) {
|
|
301
|
+
const target = path.join(configDir, "plugins", fileName);
|
|
302
|
+
const stat = safeLstat(target);
|
|
303
|
+
if (stat === null) continue;
|
|
304
|
+
if (stat.isSymbolicLink() || stat.isFile()) {
|
|
305
|
+
fs.rmSync(target, { force: true });
|
|
306
|
+
removed.push(fileName);
|
|
307
|
+
} else {
|
|
308
|
+
kept.push(fileName);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
return { removed, kept };
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
export function removeServerEntry(configDir) {
|
|
315
|
+
const filePath = path.join(configDir, "opencode.jsonc");
|
|
316
|
+
const { found, value } = readJsonFile(filePath);
|
|
317
|
+
if (!found) return { changed: false, present: false };
|
|
318
|
+
if (!isRecord(value)) fail(`opencode.jsonc is not an object: ${filePath}`);
|
|
319
|
+
const plugins = Array.isArray(value.plugin) ? value.plugin : [];
|
|
320
|
+
if (!plugins.includes(SERVER_PLUGIN_REL)) return { changed: false, present: false };
|
|
321
|
+
value.plugin = plugins.filter((entry) => entry !== SERVER_PLUGIN_REL);
|
|
322
|
+
writeJsonFile(filePath, value);
|
|
323
|
+
return { changed: true, present: false };
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
export function removeTuiEntry(configDir) {
|
|
327
|
+
const filePath = path.join(configDir, "tui.json");
|
|
328
|
+
const { found, value } = readJsonFile(filePath);
|
|
329
|
+
if (!found) return { changed: false, present: false };
|
|
330
|
+
if (!isRecord(value)) fail(`tui.json is not an object: ${filePath}`);
|
|
331
|
+
const plugins = Array.isArray(value.plugin) ? value.plugin : [];
|
|
332
|
+
const next = plugins.filter((entry) => {
|
|
333
|
+
const normalized = normalizeTuiEntry(entry);
|
|
334
|
+
if (normalized === null) return true;
|
|
335
|
+
return normalized.spec !== TUI_PLUGIN_REL;
|
|
336
|
+
});
|
|
337
|
+
if (next.length === plugins.length) return { changed: false, present: false };
|
|
338
|
+
value.plugin = next;
|
|
339
|
+
writeJsonFile(filePath, value);
|
|
340
|
+
return { changed: true, present: false };
|
|
341
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Remove the plugin installation from ~/.config/opencode: deletes the
|
|
3
|
+
// plugins/oc-go-usage-display.{ts,tsx} files (symlink or copy install) and
|
|
4
|
+
// removes the opencode.jsonc (server) + tui.json (TUI) entries.
|
|
5
|
+
// Secrets are never touched: env vars, auth.json, and
|
|
6
|
+
// oc-go-usage-display.json stay in place (delete them by hand if desired).
|
|
7
|
+
// Restart opencode afterwards to pick up the change.
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
fail,
|
|
11
|
+
openCodeDirFromArgv,
|
|
12
|
+
removePluginFiles,
|
|
13
|
+
removeServerEntry,
|
|
14
|
+
removeTuiEntry,
|
|
15
|
+
} from "./lib.js";
|
|
16
|
+
|
|
17
|
+
try {
|
|
18
|
+
const argv = process.argv.slice(2);
|
|
19
|
+
const configDir = openCodeDirFromArgv(argv);
|
|
20
|
+
|
|
21
|
+
const files = removePluginFiles(configDir);
|
|
22
|
+
const server = removeServerEntry(configDir);
|
|
23
|
+
const tui = removeTuiEntry(configDir);
|
|
24
|
+
|
|
25
|
+
for (const fileName of files.removed) console.log(`removed plugin file: ${fileName}`);
|
|
26
|
+
for (const fileName of files.kept) console.log(`kept non-file entry (left alone): ${fileName}`);
|
|
27
|
+
console.log(`server entry: ${server.changed ? "removed" : "already absent"}`);
|
|
28
|
+
console.log(`tui entry: ${tui.changed ? "removed" : "already absent"}`);
|
|
29
|
+
console.log(`uninstalled from ${configDir} (restart opencode to pick up the change)`);
|
|
30
|
+
} catch (error) {
|
|
31
|
+
if (error instanceof Error) fail(error.message);
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// Check the installation. Exit 0 when healthy, 1 with reasons otherwise.
|
|
3
|
-
// Verifies:
|
|
3
|
+
// Verifies: plugin files point at this repo (symlinks verified by target,
|
|
4
|
+
// plain-file copy installs accepted with a note), config entries exist,
|
|
5
|
+
// toggles set.
|
|
4
6
|
|
|
5
7
|
import * as path from "node:path";
|
|
6
8
|
import {
|
|
@@ -25,16 +27,25 @@ try {
|
|
|
25
27
|
const expectedTui = path.join(repoDir, "src", "tui.tsx");
|
|
26
28
|
const serverLink = describeLink(path.join(configDir, "plugins", SERVER_FILE_NAME));
|
|
27
29
|
const tuiLink = describeLink(path.join(configDir, "plugins", TUI_FILE_NAME));
|
|
30
|
+
const notes = [];
|
|
28
31
|
|
|
29
|
-
if (serverLink.state
|
|
32
|
+
if (serverLink.state === "symlink") {
|
|
33
|
+
if (path.resolve(configDir, "plugins", serverLink.detail) !== expectedServer) {
|
|
34
|
+
problems.push(`server symlink points at ${serverLink.detail}, expected ${expectedServer}`);
|
|
35
|
+
}
|
|
36
|
+
} else if (serverLink.state === "file") {
|
|
37
|
+
notes.push("server plugin is a copy install (file, not a symlink)");
|
|
38
|
+
} else {
|
|
30
39
|
problems.push(`server plugin is ${serverLink.state}, expected symlink -> ${expectedServer}`);
|
|
31
|
-
} else if (path.resolve(configDir, "plugins", serverLink.detail) !== expectedServer) {
|
|
32
|
-
problems.push(`server symlink points at ${serverLink.detail}, expected ${expectedServer}`);
|
|
33
40
|
}
|
|
34
|
-
if (tuiLink.state
|
|
41
|
+
if (tuiLink.state === "symlink") {
|
|
42
|
+
if (path.resolve(configDir, "plugins", tuiLink.detail ?? "") !== expectedTui) {
|
|
43
|
+
problems.push(`tui symlink points at ${tuiLink.detail}, expected ${expectedTui}`);
|
|
44
|
+
}
|
|
45
|
+
} else if (tuiLink.state === "file") {
|
|
46
|
+
notes.push("tui plugin is a copy install (file, not a symlink)");
|
|
47
|
+
} else {
|
|
35
48
|
problems.push(`tui plugin is ${tuiLink.state}, expected symlink -> ${expectedTui}`);
|
|
36
|
-
} else if (path.resolve(configDir, "plugins", tuiLink.detail ?? "") !== expectedTui) {
|
|
37
|
-
problems.push(`tui symlink points at ${tuiLink.detail}, expected ${expectedTui}`);
|
|
38
49
|
}
|
|
39
50
|
|
|
40
51
|
const opencodeJson = readJsonFile(path.join(configDir, "opencode.jsonc"));
|
|
@@ -56,6 +67,7 @@ try {
|
|
|
56
67
|
for (const problem of problems) console.error(`FAIL: ${problem}`);
|
|
57
68
|
process.exitCode = 1;
|
|
58
69
|
} else {
|
|
70
|
+
for (const note of notes) console.log(`NOTE: ${note}`);
|
|
59
71
|
console.log(`OK: installed from ${repoDir} (sidebar=${tui.sidebar} statusline=${tui.statusline})`);
|
|
60
72
|
}
|
|
61
73
|
} catch (error) {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { formatResetDuration } from "./shared.js";
|
|
2
|
+
import type { UsageSnapshot } from "./shared.js";
|
|
3
|
+
export { formatResetDuration };
|
|
4
|
+
export declare function formatCompactLine(snapshot: UsageSnapshot): string;
|
|
1
5
|
declare const _default: () => Promise<{
|
|
2
6
|
tool: {
|
|
3
7
|
go_usage: {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmCA,OAAO,EAIL,mBAAmB,EAOpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,mBAAmB,EAAE,CAAC;AA4B/B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAcjE;;;;;;;;;;AAsVD,wBAiBoB"}
|
package/dist/index.js
CHANGED
|
@@ -30,61 +30,24 @@
|
|
|
30
30
|
// Snapshots are cached 60s in memory + on disk.
|
|
31
31
|
import { tool } from "@opencode-ai/plugin";
|
|
32
32
|
import * as fs from "node:fs";
|
|
33
|
-
import * as os from "node:os";
|
|
34
33
|
import * as path from "node:path";
|
|
34
|
+
import { CONFIG_DIR, extractSnapshotFromApiPayload, extractWindow, formatResetDuration, isRecord, mockSnapshot, readAuthJsonApiKey, toFiniteNumber, toNonEmptyString, unavailableSnapshot, } from "./shared.js";
|
|
35
|
+
// Re-exported so `dist/index.js` keeps the helper surface used by tests.
|
|
36
|
+
export { formatResetDuration };
|
|
35
37
|
// ---------------------------------------------------------------------------
|
|
36
38
|
// Constants
|
|
37
39
|
// ---------------------------------------------------------------------------
|
|
38
40
|
const API_USAGE_URL = "https://opencode.ai/zen/go/v1/usage";
|
|
39
41
|
const CACHE_TTL_MS = 60_000;
|
|
40
42
|
const FETCH_TIMEOUT_MS = 10_000;
|
|
41
|
-
const CONFIG_DIR = path.join(os.homedir(), ".config", "opencode");
|
|
42
43
|
const FILE_CONFIG_PATH = path.join(CONFIG_DIR, "oc-go-usage-display.json");
|
|
43
44
|
const DISK_CACHE_PATH = path.join(CONFIG_DIR, "oc-go-usage-display-cache.json");
|
|
44
|
-
function dataShareAuthPath() {
|
|
45
|
-
const xdgDataHome = toNonEmptyString(process.env.XDG_DATA_HOME);
|
|
46
|
-
if (xdgDataHome)
|
|
47
|
-
return path.join(xdgDataHome, "opencode", "auth.json");
|
|
48
|
-
return path.join(os.homedir(), ".local", "share", "opencode", "auth.json");
|
|
49
|
-
}
|
|
50
|
-
function authJsonPaths() {
|
|
51
|
-
return [dataShareAuthPath(), path.join(CONFIG_DIR, "auth.json")];
|
|
52
|
-
}
|
|
53
|
-
// ---------------------------------------------------------------------------
|
|
54
|
-
// Small pure helpers
|
|
55
|
-
// ---------------------------------------------------------------------------
|
|
56
|
-
function isRecord(value) {
|
|
57
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
58
|
-
}
|
|
59
|
-
function toFiniteNumber(value) {
|
|
60
|
-
if (typeof value !== "number" || !Number.isFinite(value))
|
|
61
|
-
return null;
|
|
62
|
-
return value;
|
|
63
|
-
}
|
|
64
|
-
function toNonEmptyString(value) {
|
|
65
|
-
if (typeof value !== "string")
|
|
66
|
-
return null;
|
|
67
|
-
const trimmed = value.trim();
|
|
68
|
-
return trimmed.length > 0 ? trimmed : null;
|
|
69
|
-
}
|
|
70
|
-
function formatResetDuration(totalSec) {
|
|
71
|
-
if (totalSec === null || !Number.isFinite(totalSec) || totalSec < 0)
|
|
72
|
-
return null;
|
|
73
|
-
const sec = Math.floor(totalSec);
|
|
74
|
-
const hours = Math.floor(sec / 3600);
|
|
75
|
-
const minutes = Math.floor((sec % 3600) / 60);
|
|
76
|
-
if (hours > 0)
|
|
77
|
-
return `${hours}h${minutes}m`;
|
|
78
|
-
if (minutes > 0)
|
|
79
|
-
return `${minutes}m`;
|
|
80
|
-
return `${sec}s`;
|
|
81
|
-
}
|
|
82
45
|
function formatWindow(window) {
|
|
83
46
|
if (!window)
|
|
84
47
|
return "n/a";
|
|
85
48
|
return `${window.percent}%`;
|
|
86
49
|
}
|
|
87
|
-
function formatCompactLine(snapshot) {
|
|
50
|
+
export function formatCompactLine(snapshot) {
|
|
88
51
|
if (snapshot.apiUnavailable || (!snapshot.rolling && !snapshot.weekly && !snapshot.monthly)) {
|
|
89
52
|
const reason = snapshot.apiError ?? "unknown error";
|
|
90
53
|
return `Go n/a (${reason})`;
|
|
@@ -122,35 +85,6 @@ function readFileConfig() {
|
|
|
122
85
|
authCookie: toNonEmptyString(parsed.authCookie),
|
|
123
86
|
};
|
|
124
87
|
}
|
|
125
|
-
function readAuthJsonApiKey() {
|
|
126
|
-
for (const authPath of authJsonPaths()) {
|
|
127
|
-
let raw;
|
|
128
|
-
try {
|
|
129
|
-
raw = fs.readFileSync(authPath, "utf8");
|
|
130
|
-
}
|
|
131
|
-
catch {
|
|
132
|
-
continue;
|
|
133
|
-
}
|
|
134
|
-
let parsed;
|
|
135
|
-
try {
|
|
136
|
-
parsed = JSON.parse(raw);
|
|
137
|
-
}
|
|
138
|
-
catch {
|
|
139
|
-
continue;
|
|
140
|
-
}
|
|
141
|
-
if (!isRecord(parsed))
|
|
142
|
-
continue;
|
|
143
|
-
const goEntry = parsed["opencode-go"];
|
|
144
|
-
const fallbackEntry = parsed["opencode"];
|
|
145
|
-
const goKey = isRecord(goEntry) ? toNonEmptyString(goEntry.key) : null;
|
|
146
|
-
if (goKey)
|
|
147
|
-
return goKey;
|
|
148
|
-
const fallbackKey = isRecord(fallbackEntry) ? toNonEmptyString(fallbackEntry.key) : null;
|
|
149
|
-
if (fallbackKey)
|
|
150
|
-
return fallbackKey;
|
|
151
|
-
}
|
|
152
|
-
return null;
|
|
153
|
-
}
|
|
154
88
|
function resolveCredentials() {
|
|
155
89
|
if (process.env.OPENCODE_GO_MOCK === "1")
|
|
156
90
|
return { kind: "mock" };
|
|
@@ -199,6 +133,15 @@ function readDiskCache(now) {
|
|
|
199
133
|
const snapshot = parsed.snapshot;
|
|
200
134
|
if (!("rolling" in snapshot && "weekly" in snapshot && "monthly" in snapshot))
|
|
201
135
|
return null;
|
|
136
|
+
// Validate cached windows instead of blindly trusting the shape; a corrupt
|
|
137
|
+
// entry is dropped so the next fetch repopulates the cache.
|
|
138
|
+
for (const key of ["rolling", "weekly", "monthly"]) {
|
|
139
|
+
const cachedWindow = snapshot[key];
|
|
140
|
+
if (cachedWindow === null)
|
|
141
|
+
continue;
|
|
142
|
+
if (extractWindow(cachedWindow) === null)
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
202
145
|
return snapshot;
|
|
203
146
|
}
|
|
204
147
|
function writeDiskCache(snapshot) {
|
|
@@ -213,17 +156,6 @@ function writeDiskCache(snapshot) {
|
|
|
213
156
|
// ---------------------------------------------------------------------------
|
|
214
157
|
// Fetch helpers
|
|
215
158
|
// ---------------------------------------------------------------------------
|
|
216
|
-
function unavailableSnapshot(error, source = "unavailable") {
|
|
217
|
-
return {
|
|
218
|
-
rolling: null,
|
|
219
|
-
weekly: null,
|
|
220
|
-
monthly: null,
|
|
221
|
-
source,
|
|
222
|
-
fetchedAt: Date.now(),
|
|
223
|
-
apiUnavailable: true,
|
|
224
|
-
apiError: error,
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
159
|
async function fetchWithTimeout(url, init) {
|
|
228
160
|
const controller = new AbortController();
|
|
229
161
|
const timer = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
|
|
@@ -234,48 +166,8 @@ async function fetchWithTimeout(url, init) {
|
|
|
234
166
|
clearTimeout(timer);
|
|
235
167
|
}
|
|
236
168
|
}
|
|
237
|
-
// --- API-key path: tolerant JSON parsing (shape may
|
|
238
|
-
|
|
239
|
-
if (!isRecord(candidate))
|
|
240
|
-
return null;
|
|
241
|
-
const percent = toFiniteNumber(candidate.percent ??
|
|
242
|
-
candidate.usagePercent ??
|
|
243
|
-
candidate.usedPercent ??
|
|
244
|
-
candidate.value ??
|
|
245
|
-
candidate.usage);
|
|
246
|
-
if (percent === null)
|
|
247
|
-
return null;
|
|
248
|
-
const resetInSec = toFiniteNumber(candidate.resetInSec ?? candidate.resetInSeconds ?? null);
|
|
249
|
-
const status = toNonEmptyString(candidate.status);
|
|
250
|
-
const resetText = toNonEmptyString(candidate.resetText ?? candidate.reset ?? null);
|
|
251
|
-
return { percent: Math.round(percent), resetInSec, status, resetText };
|
|
252
|
-
}
|
|
253
|
-
function extractSnapshotFromApiPayload(payload) {
|
|
254
|
-
if (!isRecord(payload))
|
|
255
|
-
return null;
|
|
256
|
-
const containers = [payload];
|
|
257
|
-
for (const key of ["usage", "data", "go"]) {
|
|
258
|
-
if (isRecord(payload[key]))
|
|
259
|
-
containers.push(payload[key]);
|
|
260
|
-
}
|
|
261
|
-
for (const container of containers) {
|
|
262
|
-
if (!isRecord(container))
|
|
263
|
-
continue;
|
|
264
|
-
const rolling = extractWindow(container.rolling ?? container.rollingUsage ?? container["5h"]);
|
|
265
|
-
const weekly = extractWindow(container.weekly ?? container.weeklyUsage ?? container["7d"]);
|
|
266
|
-
const monthly = extractWindow(container.monthly ?? container.monthlyUsage ?? container["30d"]);
|
|
267
|
-
if (rolling || weekly || monthly) {
|
|
268
|
-
return {
|
|
269
|
-
rolling,
|
|
270
|
-
weekly,
|
|
271
|
-
monthly,
|
|
272
|
-
source: "api",
|
|
273
|
-
fetchedAt: Date.now(),
|
|
274
|
-
};
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
return null;
|
|
278
|
-
}
|
|
169
|
+
// --- API-key path: tolerant JSON parsing lives in `./shared.js` (shape may
|
|
170
|
+
// evolve); scrape helpers below stay server-local. ---
|
|
279
171
|
async function fetchViaApiKey(apiKey) {
|
|
280
172
|
let response;
|
|
281
173
|
try {
|
|
@@ -428,7 +320,7 @@ async function fetchViaCookie(workspaceId, authCookie) {
|
|
|
428
320
|
redirect: "follow",
|
|
429
321
|
headers: {
|
|
430
322
|
Cookie: `auth=${authCookie}`,
|
|
431
|
-
"User-Agent": "oc-go-usage-display-plugin
|
|
323
|
+
"User-Agent": "oc-go-usage-display-plugin",
|
|
432
324
|
Accept: "text/html,application/xhtml+xml",
|
|
433
325
|
},
|
|
434
326
|
});
|
|
@@ -463,20 +355,18 @@ async function fetchViaCookie(workspaceId, authCookie) {
|
|
|
463
355
|
fetchedAt: Date.now(),
|
|
464
356
|
};
|
|
465
357
|
}
|
|
466
|
-
function mockSnapshot() {
|
|
467
|
-
return {
|
|
468
|
-
rolling: { percent: 42, resetInSec: 7543, status: "active", resetText: null },
|
|
469
|
-
weekly: { percent: 15, resetInSec: null, status: "active", resetText: null },
|
|
470
|
-
monthly: { percent: 61, resetInSec: null, status: "active", resetText: null },
|
|
471
|
-
source: "mock",
|
|
472
|
-
fetchedAt: Date.now(),
|
|
473
|
-
};
|
|
474
|
-
}
|
|
475
358
|
// ---------------------------------------------------------------------------
|
|
476
359
|
// Snapshot entry point (cached, never throws, never logs secrets)
|
|
477
360
|
// ---------------------------------------------------------------------------
|
|
478
361
|
async function getUsageSnapshot() {
|
|
479
362
|
const now = Date.now();
|
|
363
|
+
// Mock bypasses cache for determinism: a stale disk/memory entry must
|
|
364
|
+
// never shadow the deterministic mock snapshot during tests.
|
|
365
|
+
if (process.env.OPENCODE_GO_MOCK === "1") {
|
|
366
|
+
const snapshot = mockSnapshot();
|
|
367
|
+
memoryCache = { at: now, snapshot };
|
|
368
|
+
return snapshot;
|
|
369
|
+
}
|
|
480
370
|
if (memoryCache && isFresh(memoryCache.at, now))
|
|
481
371
|
return memoryCache.snapshot;
|
|
482
372
|
const diskCached = readDiskCache(now);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,EAAE;AACF,+DAA+D;AAC/D,qEAAqE;AACrE,mDAAmD;AACnD,EAAE;AACF,sEAAsE;AACtE,0BAA0B;AAC1B,EAAE;AACF,2DAA2D;AAC3D,0EAA0E;AAC1E,mDAAmD;AACnD,8BAA8B;AAC9B,EAAE;AACF,qDAAqD;AACrD,+EAA+E;AAC/E,6EAA6E;AAC7E,mEAAmE;AACnE,+EAA+E;AAC/E,2EAA2E;AAC3E,kFAAkF;AAClF,4EAA4E;AAC5E,kFAAkF;AAClF,oEAAoE;AACpE,mDAAmD;AACnD,uDAAuD;AACvD,iFAAiF;AACjF,sEAAsE;AACtE,+EAA+E;AAC/E,gDAAgD;AAGhD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,aAAa,GAAG,qCAAqC,CAAC;AAC5D,MAAM,YAAY,GAAG,MAAM,CAAC;AAC5B,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAClE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;AAC3E,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gCAAgC,CAAC,CAAC;AAEhF,SAAS,iBAAiB;IACxB,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAChE,IAAI,WAAW;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACxE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AACnE,CAAC;AA6BD,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAuB;IAClD,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACjF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,GAAG,KAAK,IAAI,OAAO,GAAG,CAAC;IAC7C,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,GAAG,OAAO,GAAG,CAAC;IACtC,OAAO,GAAG,GAAG,GAAG,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,MAA0B;IAC9C,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC;AAC9B,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAuB;IAChD,IAAI,QAAQ,CAAC,cAAc,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5F,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,IAAI,eAAe,CAAC;QACpD,OAAO,WAAW,MAAM,GAAG,CAAC;IAC9B,CAAC;IACD,MAAM,YAAY,GAChB,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC;QACzD,QAAQ,CAAC,OAAO,EAAE,SAAS;QAC3B,IAAI,CAAC;IACP,MAAM,WAAW,GACf,QAAQ,CAAC,OAAO,KAAK,IAAI;QACvB,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,WAAW,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACzF,OAAO,MAAM,WAAW,SAAS,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC3G,CAAC;AAED,8EAA8E;AAC9E,iEAAiE;AACjE,8EAA8E;AAE9E,SAAS,cAAc;IACrB,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACtE,OAAO;QACL,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC;QACjD,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB;IACzB,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,EAAE,CAAC;QACvC,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,SAAS;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzF,IAAI,WAAW;YAAE,OAAO,WAAW,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAElE,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjE,IAAI,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAE9C,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;IACzC,IAAI,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAEhE,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC;IACrG,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC;IAClG,IAAI,WAAW,IAAI,UAAU;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IAElF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E,IAAI,WAAW,GAAmD,IAAI,CAAC;AAEvE,SAAS,OAAO,CAAC,EAAU,EAAE,GAAW;IACtC,OAAO,GAAG,GAAG,EAAE,GAAG,YAAY,CAAC;AACjC,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,CAAC,CAAC,SAAS,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3F,OAAO,QAAyB,CAAC;AACnC,CAAC;AAED,SAAS,cAAc,CAAC,QAAuB;IAC7C,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,EAAE,CAAC,aAAa,CACd,eAAe,EACf,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,EAC5C,MAAM,CACP,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,SAAS,mBAAmB,CAAC,KAAa,EAAE,SAAkC,aAAa;IACzF,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,IAAI;QACb,MAAM;QACN,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE,KAAK;KAChB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,IAAiB;IAC5D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACrE,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,iEAAiE;AAEjE,SAAS,aAAa,CAAC,SAAkB;IACvC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,OAAO,GAAG,cAAc,CAC5B,SAAS,CAAC,OAAO;QACf,SAAS,CAAC,YAAY;QACtB,SAAS,CAAC,WAAW;QACrB,SAAS,CAAC,KAAK;QACf,SAAS,CAAC,KAAK,CAClB,CAAC;IACF,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;IACnF,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACzE,CAAC;AAED,SAAS,6BAA6B,CAAC,OAAgB;IACrD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,UAAU,GAAc,CAAC,OAAO,CAAC,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,SAAS;QACnC,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9F,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3F,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/F,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACjC,OAAO;gBACL,OAAO;gBACP,MAAM;gBACN,OAAO;gBACP,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAc;IAC1C,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,gBAAgB,CAAC,aAAa,EAAE;YAC/C,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,EAAE;gBACjC,MAAM,EAAE,kBAAkB;aAC3B;SACF,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvD,OAAO,mBAAmB,CAAC,4BAA4B,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,mBAAmB,CAAC,0BAA0B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,mBAAmB,CAAC,+BAA+B,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,6BAA6B,CAAC,OAAO,CAAC,IAAI,mBAAmB,CAAC,+BAA+B,CAAC,CAAC;AACxG,CAAC;AAED,2EAA2E;AAE3E,MAAM,UAAU,GAAqD;IACnE,OAAO,EAAE,cAAc;IACvB,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE,cAAc;CACxB,CAAC;AACF,MAAM,SAAS,GAA4C,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC5F,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAErD,SAAS,WAAW,CAAC,QAAgB,EAAE,IAAY;IACjD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;QACvB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;IACjD,CAAC;IACD,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,IAAI,KAAK,aAAa,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAAE,OAAO,KAAK,CAAC;IACjE,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,GAAW;IAClD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACrD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,KAAK,IAAI,CAAC,CAAC;aAC3B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACzB,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,KAAa;IACjD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/E,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,KAAa;IACjD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,MAAM,GAAmE,EAAE,CAAC;IAClF,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,IAAwC,CAAC;QACxD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACrD,IAAI,OAAO,KAAK,IAAI;YAAE,SAAS;QAC/B,MAAM,CAAC,MAAM,CAAC,GAAG;YACf,OAAO;YACP,UAAU,EAAE,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC;YAC9C,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC;YACtC,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,OAAO,GAAG,GAAG;SAChB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;IACV,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,MAAM,GAAmE,EAAE,CAAC;IAClF,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC7D,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QAChD,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM;YAAE,MAAM;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QACvH,MAAM,UAAU,GACd,0DAA0D,CAAC,IAAI,CAAC,OAAO,CAAC;YACxE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU;YAAE,SAAS;QAC1B,MAAM,UAAU,GAAG,8CAA8C,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChF,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG;YACvB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC3C,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;SAC7D,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACpD,OAAO,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,WAAmB,EAAE,UAAkB;IACnE,MAAM,YAAY,GAAG,iCAAiC,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC;IAC3F,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,gBAAgB,CAAC,YAAY,EAAE;YAC9C,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE;gBACP,MAAM,EAAE,QAAQ,UAAU,EAAE;gBAC5B,YAAY,EAAE,gCAAgC;gBAC9C,MAAM,EAAE,iCAAiC;aAC1C;SACF,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO,mBAAmB,CAAC,qCAAqC,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,mBAAmB,CAAC,0BAA0B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAO,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;QACtF,OAAO,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;QAC/B,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,OAAO;QACL,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE;QAC7E,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE;QAC5E,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE;QAC7E,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,kEAAkE;AAClE,8EAA8E;AAE9E,KAAK,UAAU,gBAAgB;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC,QAAQ,CAAC;IAC7E,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,UAAU,EAAE,CAAC;QACf,WAAW,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QAChD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;IACzC,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;QAChC,WAAW,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,mBAAmB,CAAC,0CAA0C,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,QAAQ,GACZ,WAAW,CAAC,IAAI,KAAK,QAAQ;QAC3B,CAAC,CAAC,MAAM,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC;QAC1C,CAAC,CAAC,MAAM,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5E,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC7B,WAAW,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;QACpC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,eAAe,CAAC,KAAK,IAAI,EAAE;IACzB,OAAO;QACL,IAAI,EAAE;YACJ,QAAQ,EAAE,IAAI,CAAC;gBACb,WAAW,EACT,mGAAmG;gBACrG,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,KAAK,IAAI,EAAE;oBAClB,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CACnD,mBAAmB,CAAC,gBAAgB,CAAC,CACtC,CAAC;oBACF,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBACzC,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBACzD,CAAC;aACF,CAAC;SACH;KACF,CAAC;AACJ,CAAC,CAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/shared.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare const CONFIG_DIR: string;
|
|
2
|
+
export declare function dataShareAuthPath(): string;
|
|
3
|
+
export declare function authJsonPaths(): string[];
|
|
4
|
+
export type UsageWindow = {
|
|
5
|
+
percent: number;
|
|
6
|
+
resetInSec: number | null;
|
|
7
|
+
status: string | null;
|
|
8
|
+
resetText: string | null;
|
|
9
|
+
};
|
|
10
|
+
export type UsageSnapshot = {
|
|
11
|
+
rolling: UsageWindow | null;
|
|
12
|
+
weekly: UsageWindow | null;
|
|
13
|
+
monthly: UsageWindow | null;
|
|
14
|
+
source: "api" | "scrape" | "mock" | "unavailable";
|
|
15
|
+
fetchedAt: number;
|
|
16
|
+
apiUnavailable?: boolean;
|
|
17
|
+
apiError?: string;
|
|
18
|
+
};
|
|
19
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
20
|
+
export declare function toFiniteNumber(value: unknown): number | null;
|
|
21
|
+
export declare function toNonEmptyString(value: unknown): string | null;
|
|
22
|
+
export declare function formatResetDuration(totalSec: number | null): string | null;
|
|
23
|
+
export declare function readAuthJsonApiKey(): string | null;
|
|
24
|
+
export declare function extractWindow(candidate: unknown): UsageWindow | null;
|
|
25
|
+
export declare function extractSnapshotFromApiPayload(payload: unknown): UsageSnapshot | null;
|
|
26
|
+
export declare function mockSnapshot(): UsageSnapshot;
|
|
27
|
+
export declare function unavailableSnapshot(error: string, source?: UsageSnapshot["source"]): UsageSnapshot;
|
|
28
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,UAAU,QAAiD,CAAC;AAEzE,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAMD,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,aAAa,CAAC;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAMF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAG5D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAI9D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAQ1E;AAMD,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAuBlD;AAMD,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAcpE;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAsBpF;AAMD,wBAAgB,YAAY,IAAI,aAAa,CAQ5C;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,aAAa,CAAC,QAAQ,CAAiB,GAC9C,aAAa,CAUf"}
|