shadok-ai 0.15.4 → 0.15.5
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/usage.d.ts +2 -1
- package/dist/usage.js +22 -14
- package/dist/usage.js.map +1 -1
- package/package.json +1 -1
package/dist/usage.d.ts
CHANGED
|
@@ -19,5 +19,6 @@ export declare function parseWindow(w: any): Window | null;
|
|
|
19
19
|
* Fetches the current 5-hour and 7-day usage. Cached for 60s and
|
|
20
20
|
* de-duplicated across concurrent callers, so polling is cheap.
|
|
21
21
|
* Returns null if no token is available or the request fails.
|
|
22
|
+
* `readToken` exists for tests only; production callers pass nothing.
|
|
22
23
|
*/
|
|
23
|
-
export declare function getUsage(): Promise<Usage | null>;
|
|
24
|
+
export declare function getUsage(readToken?: () => string | null): Promise<Usage | null>;
|
package/dist/usage.js
CHANGED
|
@@ -87,22 +87,24 @@ const TTL_MS = 60_000;
|
|
|
87
87
|
* Fetches the current 5-hour and 7-day usage. Cached for 60s and
|
|
88
88
|
* de-duplicated across concurrent callers, so polling is cheap.
|
|
89
89
|
* Returns null if no token is available or the request fails.
|
|
90
|
+
* `readToken` exists for tests only; production callers pass nothing.
|
|
90
91
|
*/
|
|
91
|
-
export async function getUsage() {
|
|
92
|
+
export async function getUsage(readToken = readOAuthToken) {
|
|
92
93
|
if (cache && Date.now() - cache.fetchedAt < TTL_MS)
|
|
93
94
|
return cache;
|
|
94
95
|
if (inflight)
|
|
95
96
|
return inflight;
|
|
96
|
-
|
|
97
|
+
// The token is read BEFORE the promise exists, so a token-less call creates
|
|
98
|
+
// no in-flight entry at all. Reading it inside the async IIFE (the previous
|
|
99
|
+
// "fix") re-created the very latch it meant to remove: with no `await` on
|
|
100
|
+
// that path the IIFE settled synchronously, its `finally { inflight = null }`
|
|
101
|
+
// ran first, and only THEN did `inflight = (...)()` store the resolved-null
|
|
102
|
+
// promise — pinning every later call to null for the life of the process.
|
|
103
|
+
const token = readToken();
|
|
104
|
+
if (!token)
|
|
105
|
+
return null;
|
|
106
|
+
const run = (async () => {
|
|
97
107
|
try {
|
|
98
|
-
// Inside the try so `finally` ALWAYS clears `inflight`. A bare
|
|
99
|
-
// `return null` before the try skipped the reset, so a single
|
|
100
|
-
// token-less read (e.g. at boot, before credentials are readable)
|
|
101
|
-
// left `inflight` stuck on a resolved promise — every later call
|
|
102
|
-
// returned it and usage stayed null until the process restarted.
|
|
103
|
-
const token = readOAuthToken();
|
|
104
|
-
if (!token)
|
|
105
|
-
return null;
|
|
106
108
|
const res = await fetch(USAGE_URL, {
|
|
107
109
|
headers: {
|
|
108
110
|
Authorization: `Bearer ${token}`,
|
|
@@ -128,10 +130,16 @@ export async function getUsage() {
|
|
|
128
130
|
catch {
|
|
129
131
|
return cache;
|
|
130
132
|
}
|
|
131
|
-
finally {
|
|
132
|
-
inflight = null;
|
|
133
|
-
}
|
|
134
133
|
})();
|
|
135
|
-
|
|
134
|
+
inflight = run;
|
|
135
|
+
// Cleared from OUTSIDE, after the assignment: `.finally` always runs on a
|
|
136
|
+
// later microtask, so even a body that settles synchronously can no longer
|
|
137
|
+
// clear the guard before it is set. The identity check keeps it from
|
|
138
|
+
// clearing a newer in-flight request.
|
|
139
|
+
void run.finally(() => {
|
|
140
|
+
if (inflight === run)
|
|
141
|
+
inflight = null;
|
|
142
|
+
});
|
|
143
|
+
return run;
|
|
136
144
|
}
|
|
137
145
|
//# sourceMappingURL=usage.js.map
|
package/dist/usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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"}
|