audit-tools 0.30.1 → 0.30.2
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/shared/quota/claudeOAuthQuotaSource.d.ts +35 -2
- package/dist/shared/quota/claudeOAuthQuotaSource.d.ts.map +1 -1
- package/dist/shared/quota/claudeOAuthQuotaSource.js +153 -17
- package/dist/shared/quota/claudeOAuthQuotaSource.js.map +1 -1
- package/dist/shared/quota/httpQuotaSource.d.ts +7 -3
- package/dist/shared/quota/httpQuotaSource.d.ts.map +1 -1
- package/dist/shared/quota/httpQuotaSource.js.map +1 -1
- package/package.json +1 -1
|
@@ -27,16 +27,49 @@ export interface ClaudeOAuthQuotaSourceOptions extends HttpQuotaSourceOptions {
|
|
|
27
27
|
credentialsPath?: string;
|
|
28
28
|
/** Override the provider-name gate (mainly for tests). */
|
|
29
29
|
claudeProviderNames?: Iterable<string>;
|
|
30
|
+
/**
|
|
31
|
+
* Supplies the docs-blessed `CLAUDE_CODE_OAUTH_TOKEN` handoff. Defaults to
|
|
32
|
+
* reading `process.env.CLAUDE_CODE_OAUTH_TOKEN` at probe time; injectable for
|
|
33
|
+
* tests. A non-empty return short-circuits the credential file entirely.
|
|
34
|
+
*/
|
|
35
|
+
readEnvToken?: () => string | null | undefined;
|
|
36
|
+
/** Override the OAuth client id (refresh grant). Defaults to Claude Code's public client. */
|
|
37
|
+
oauthClientId?: string;
|
|
38
|
+
/** Override the token endpoint (refresh grant). */
|
|
39
|
+
oauthTokenEndpoint?: string;
|
|
30
40
|
}
|
|
31
41
|
export declare class ClaudeOAuthQuotaSource extends BaseHttpQuotaSource {
|
|
32
42
|
readonly name = "claude-oauth";
|
|
33
43
|
private readonly credentialsPath;
|
|
34
44
|
private readonly providerNames;
|
|
45
|
+
private readonly readEnvToken;
|
|
46
|
+
private readonly oauthClientId;
|
|
47
|
+
private readonly oauthTokenEndpoint;
|
|
35
48
|
constructor(options?: ClaudeOAuthQuotaSourceOptions);
|
|
36
49
|
protected handlesProvider(provider: string): boolean;
|
|
37
50
|
protected fetchSnapshot(_provider: string, model: string | null, nowMs: number): Promise<QuotaUsageSnapshot | null>;
|
|
38
|
-
/**
|
|
39
|
-
|
|
51
|
+
/**
|
|
52
|
+
* Resolve an access token via the documented chain (env handoff → CLI file
|
|
53
|
+
* with refresh-on-expiry). `forceRefresh` skips the still-valid fast path and
|
|
54
|
+
* always runs the refresh grant (used to recover from a 401).
|
|
55
|
+
*/
|
|
56
|
+
private resolveAccessToken;
|
|
57
|
+
/** Parse the `claudeAiOauth` block from the credential file, or null. */
|
|
58
|
+
private readOAuthBlock;
|
|
59
|
+
/**
|
|
60
|
+
* Run the refresh grant and persist the ROTATED credential under a file lock.
|
|
61
|
+
* Double-checked: after the lock is held the file is re-read, so if a
|
|
62
|
+
* concurrent probe already refreshed (token now valid, and we are not forcing)
|
|
63
|
+
* that fresh token is used instead of rotating again — a second rotation would
|
|
64
|
+
* invalidate the first refresh token and brick the credential.
|
|
65
|
+
*/
|
|
66
|
+
private refreshAndPersist;
|
|
67
|
+
/** POST the refresh-token grant; null on any non-200/network/parse failure. */
|
|
68
|
+
private runRefreshGrant;
|
|
69
|
+
/** Full credential object (preserves sibling fields like organizationUuid), or null. */
|
|
70
|
+
private readFullCredentials;
|
|
71
|
+
/** Atomic temp-then-rename write so a crash mid-write never truncates the credential. */
|
|
72
|
+
private writeCredentialsAtomic;
|
|
40
73
|
}
|
|
41
74
|
/**
|
|
42
75
|
* Reusable Claude `/usage` probe (no creds-file read, no guard) — used by the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeOAuthQuotaSource.d.ts","sourceRoot":"","sources":["../../../src/shared/quota/claudeOAuthQuotaSource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"claudeOAuthQuotaSource.d.ts","sourceRoot":"","sources":["../../../src/shared/quota/claudeOAuthQuotaSource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EACL,mBAAmB,EAGnB,qBAAqB,EAErB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAoC9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,yDAAyD;AACzD,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE;YAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CACxF;AACD,iFAAiF;AACjF,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AACD,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;CACnC;AA0BD,MAAM,WAAW,6BAA8B,SAAQ,sBAAsB;IAC3E,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,6FAA6F;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;gBAEhC,OAAO,GAAE,6BAAkC;IAWvD,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;cAIpC,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAoBrC;;;;OAIG;YACW,kBAAkB;IA6BhC,yEAAyE;IACzE,OAAO,CAAC,cAAc;IActB;;;;;;OAMG;YACW,iBAAiB;IAmC/B,+EAA+E;YACjE,eAAe;IAa7B,wFAAwF;IACxF,OAAO,CAAC,mBAAmB;IAc3B,yFAAyF;IACzF,OAAO,CAAC,sBAAsB;CAK/B;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACpD,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAYpC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,KAAK,EAAE,MAAM,GACZ,kBAAkB,GAAG,IAAI,CAe3B"}
|
|
@@ -1,41 +1,106 @@
|
|
|
1
|
-
import { readFileSync } from "node:fs";
|
|
1
|
+
import { readFileSync, writeFileSync, renameSync } from "node:fs";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
|
+
import { withFileLock } from "./fileLock.js";
|
|
4
5
|
import { BaseHttpQuotaSource, fetchJsonOrNull, clampFraction, parseProviderModelKey, } from "./httpQuotaSource.js";
|
|
5
6
|
/**
|
|
6
|
-
* Proactive Claude-subscription quota source —
|
|
7
|
-
*
|
|
8
|
-
* endpoint (the only proactive
|
|
9
|
-
* mapping the most-constraining
|
|
10
|
-
* cross-cutting cache/guard/degrade
|
|
7
|
+
* Proactive Claude-subscription quota source — resolves a Claude OAuth access
|
|
8
|
+
* token (see {@link resolveAccessToken}) and queries the undocumented
|
|
9
|
+
* `api.anthropic.com/api/oauth/usage` endpoint (the only proactive
|
|
10
|
+
* remaining-quota signal Claude Code exposes), mapping the most-constraining
|
|
11
|
+
* window to a {@link QuotaUsageSnapshot}. The cross-cutting cache/guard/degrade
|
|
12
|
+
* behavior lives in {@link BaseHttpQuotaSource}.
|
|
13
|
+
*
|
|
14
|
+
* Credential resolution (first hit wins; see
|
|
15
|
+
* docs/quota-claude-credential-resolution.md):
|
|
16
|
+
* 1. `CLAUDE_CODE_OAUTH_TOKEN` — the only docs-blessed subprocess handoff
|
|
17
|
+
* (`claude setup-token`). Used as-is, NO file is read or written. This is
|
|
18
|
+
* what lets a non-CLI host (e.g. the Claude Desktop app, whose own token
|
|
19
|
+
* lives in an OS-encrypted store we must not decrypt) still get a proactive
|
|
20
|
+
* account-level reading.
|
|
21
|
+
* 2. `~/.claude/.credentials.json` (the CLI credential) with REFRESH-ON-EXPIRY:
|
|
22
|
+
* when the access token is missing/expired (or `/usage` 401s) but a refresh
|
|
23
|
+
* token is present, the refresh grant is run and the ROTATED credential is
|
|
24
|
+
* persisted atomically under {@link withFileLock} (double-checked: the file
|
|
25
|
+
* is re-read after the lock is acquired, so concurrent probes never
|
|
26
|
+
* double-rotate and invalidate each other's refresh token).
|
|
27
|
+
* 3. Otherwise degrade to null — the {@link CompositeQuotaSource} falls through
|
|
28
|
+
* to the reactive host-session source.
|
|
11
29
|
*/
|
|
12
30
|
const CLAUDE_PROVIDER_NAMES = new Set(["claude-code", "claude"]);
|
|
13
31
|
const USAGE_ENDPOINT = "https://api.anthropic.com/api/oauth/usage";
|
|
14
32
|
const OAUTH_BETA_HEADER = "oauth-2025-04-20";
|
|
15
33
|
const DEFAULT_USER_AGENT = "claude-cli (external, cli)";
|
|
34
|
+
/** Claude Code's public OAuth client id + token endpoint (refresh grant). */
|
|
35
|
+
const OAUTH_CLIENT_ID = "9d1c250a-e61b-44d9-88ed-5944d1962f5e";
|
|
36
|
+
const OAUTH_TOKEN_ENDPOINT = "https://console.anthropic.com/v1/oauth/token";
|
|
16
37
|
// Re-exported for back-compat (tests + index import these from here).
|
|
17
38
|
export { parseProviderModelKey };
|
|
18
39
|
export class ClaudeOAuthQuotaSource extends BaseHttpQuotaSource {
|
|
19
40
|
name = "claude-oauth";
|
|
20
41
|
credentialsPath;
|
|
21
42
|
providerNames;
|
|
43
|
+
readEnvToken;
|
|
44
|
+
oauthClientId;
|
|
45
|
+
oauthTokenEndpoint;
|
|
22
46
|
constructor(options = {}) {
|
|
23
47
|
super(options, DEFAULT_USER_AGENT);
|
|
24
48
|
this.credentialsPath =
|
|
25
49
|
options.credentialsPath ?? path.join(homedir(), ".claude", ".credentials.json");
|
|
26
50
|
this.providerNames = new Set(options.claudeProviderNames ?? CLAUDE_PROVIDER_NAMES);
|
|
51
|
+
this.readEnvToken =
|
|
52
|
+
options.readEnvToken ?? (() => process.env.CLAUDE_CODE_OAUTH_TOKEN);
|
|
53
|
+
this.oauthClientId = options.oauthClientId ?? OAUTH_CLIENT_ID;
|
|
54
|
+
this.oauthTokenEndpoint = options.oauthTokenEndpoint ?? OAUTH_TOKEN_ENDPOINT;
|
|
27
55
|
}
|
|
28
56
|
handlesProvider(provider) {
|
|
29
57
|
return this.providerNames.has(provider);
|
|
30
58
|
}
|
|
31
59
|
async fetchSnapshot(_provider, model, nowMs) {
|
|
32
|
-
const
|
|
33
|
-
if (!
|
|
60
|
+
const resolved = await this.resolveAccessToken(nowMs, false);
|
|
61
|
+
if (!resolved)
|
|
34
62
|
return null;
|
|
35
|
-
|
|
63
|
+
const snap = await fetchClaudeUsage({ accessToken: resolved.accessToken, model }, this.fetchContext());
|
|
64
|
+
if (snap)
|
|
65
|
+
return snap;
|
|
66
|
+
// A null here means a non-200 (commonly 401: token revoked/expired between
|
|
67
|
+
// resolution and use). For a FILE-origin token we can recover by forcing one
|
|
68
|
+
// refresh and retrying; an env token is operator-owned and not ours to rotate.
|
|
69
|
+
if (resolved.origin !== "file")
|
|
70
|
+
return null;
|
|
71
|
+
const refreshed = await this.resolveAccessToken(nowMs, true);
|
|
72
|
+
if (!refreshed || refreshed.accessToken === resolved.accessToken)
|
|
73
|
+
return null;
|
|
74
|
+
return fetchClaudeUsage({ accessToken: refreshed.accessToken, model }, this.fetchContext());
|
|
36
75
|
}
|
|
37
|
-
/**
|
|
38
|
-
|
|
76
|
+
/**
|
|
77
|
+
* Resolve an access token via the documented chain (env handoff → CLI file
|
|
78
|
+
* with refresh-on-expiry). `forceRefresh` skips the still-valid fast path and
|
|
79
|
+
* always runs the refresh grant (used to recover from a 401).
|
|
80
|
+
*/
|
|
81
|
+
async resolveAccessToken(nowMs, forceRefresh) {
|
|
82
|
+
const envToken = this.readEnvToken();
|
|
83
|
+
if (typeof envToken === "string" && envToken.trim() !== "") {
|
|
84
|
+
return { accessToken: envToken.trim(), origin: "env" };
|
|
85
|
+
}
|
|
86
|
+
const oauth = this.readOAuthBlock();
|
|
87
|
+
if (!oauth)
|
|
88
|
+
return null;
|
|
89
|
+
const valid = typeof oauth.accessToken === "string" &&
|
|
90
|
+
oauth.accessToken !== "" &&
|
|
91
|
+
!(typeof oauth.expiresAt === "number" && nowMs >= oauth.expiresAt);
|
|
92
|
+
if (valid && !forceRefresh) {
|
|
93
|
+
return { accessToken: oauth.accessToken, origin: "file" };
|
|
94
|
+
}
|
|
95
|
+
// Expired/missing/forced and no refresh token → degrade (nothing to refresh).
|
|
96
|
+
if (typeof oauth.refreshToken !== "string" || oauth.refreshToken === "") {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
const refreshed = await this.refreshAndPersist(nowMs, forceRefresh);
|
|
100
|
+
return refreshed ? { accessToken: refreshed, origin: "file" } : null;
|
|
101
|
+
}
|
|
102
|
+
/** Parse the `claudeAiOauth` block from the credential file, or null. */
|
|
103
|
+
readOAuthBlock() {
|
|
39
104
|
let raw;
|
|
40
105
|
try {
|
|
41
106
|
raw = readFileSync(this.credentialsPath, "utf8");
|
|
@@ -43,19 +108,90 @@ export class ClaudeOAuthQuotaSource extends BaseHttpQuotaSource {
|
|
|
43
108
|
catch {
|
|
44
109
|
return null; // missing file (e.g. creds in an OS keychain) → degrade
|
|
45
110
|
}
|
|
46
|
-
let parsed;
|
|
47
111
|
try {
|
|
48
|
-
|
|
112
|
+
return JSON.parse(raw).claudeAiOauth ?? null;
|
|
49
113
|
}
|
|
50
114
|
catch {
|
|
51
115
|
return null;
|
|
52
116
|
}
|
|
53
|
-
|
|
54
|
-
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Run the refresh grant and persist the ROTATED credential under a file lock.
|
|
120
|
+
* Double-checked: after the lock is held the file is re-read, so if a
|
|
121
|
+
* concurrent probe already refreshed (token now valid, and we are not forcing)
|
|
122
|
+
* that fresh token is used instead of rotating again — a second rotation would
|
|
123
|
+
* invalidate the first refresh token and brick the credential.
|
|
124
|
+
*/
|
|
125
|
+
async refreshAndPersist(nowMs, forceRefresh) {
|
|
126
|
+
const lockPath = `${this.credentialsPath}.lock`;
|
|
127
|
+
try {
|
|
128
|
+
return await withFileLock(lockPath, async () => {
|
|
129
|
+
const oauth = this.readOAuthBlock();
|
|
130
|
+
if (!oauth)
|
|
131
|
+
return null;
|
|
132
|
+
const stillValid = typeof oauth.accessToken === "string" &&
|
|
133
|
+
oauth.accessToken !== "" &&
|
|
134
|
+
!(typeof oauth.expiresAt === "number" && nowMs >= oauth.expiresAt);
|
|
135
|
+
if (stillValid && !forceRefresh)
|
|
136
|
+
return oauth.accessToken;
|
|
137
|
+
if (typeof oauth.refreshToken !== "string" || oauth.refreshToken === "")
|
|
138
|
+
return null;
|
|
139
|
+
const grant = await this.runRefreshGrant(oauth.refreshToken);
|
|
140
|
+
if (!grant?.access_token || !grant.refresh_token || typeof grant.expires_in !== "number") {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
const next = {
|
|
144
|
+
...(this.readFullCredentials() ?? {}),
|
|
145
|
+
};
|
|
146
|
+
next.claudeAiOauth = {
|
|
147
|
+
...(next.claudeAiOauth ?? {}),
|
|
148
|
+
accessToken: grant.access_token,
|
|
149
|
+
refreshToken: grant.refresh_token,
|
|
150
|
+
expiresAt: nowMs + grant.expires_in * 1000,
|
|
151
|
+
scopes: grant.scope ? grant.scope.split(" ") : next.claudeAiOauth?.scopes,
|
|
152
|
+
};
|
|
153
|
+
this.writeCredentialsAtomic(next);
|
|
154
|
+
return grant.access_token;
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
return null; // lock timeout / IO failure → degrade, never throw out of a probe
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/** POST the refresh-token grant; null on any non-200/network/parse failure. */
|
|
162
|
+
async runRefreshGrant(refreshToken) {
|
|
163
|
+
const body = await fetchJsonOrNull(this.fetchImpl, this.oauthTokenEndpoint, {
|
|
164
|
+
method: "POST",
|
|
165
|
+
headers: { "Content-Type": "application/json" },
|
|
166
|
+
body: JSON.stringify({
|
|
167
|
+
grant_type: "refresh_token",
|
|
168
|
+
refresh_token: refreshToken,
|
|
169
|
+
client_id: this.oauthClientId,
|
|
170
|
+
}),
|
|
171
|
+
});
|
|
172
|
+
return body == null ? null : body;
|
|
173
|
+
}
|
|
174
|
+
/** Full credential object (preserves sibling fields like organizationUuid), or null. */
|
|
175
|
+
readFullCredentials() {
|
|
176
|
+
let raw;
|
|
177
|
+
try {
|
|
178
|
+
raw = readFileSync(this.credentialsPath, "utf8");
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
55
181
|
return null;
|
|
56
|
-
|
|
182
|
+
}
|
|
183
|
+
try {
|
|
184
|
+
return JSON.parse(raw);
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
57
187
|
return null;
|
|
58
|
-
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/** Atomic temp-then-rename write so a crash mid-write never truncates the credential. */
|
|
191
|
+
writeCredentialsAtomic(creds) {
|
|
192
|
+
const tmp = `${this.credentialsPath}.tmp`;
|
|
193
|
+
writeFileSync(tmp, JSON.stringify(creds, null, 2));
|
|
194
|
+
renameSync(tmp, this.credentialsPath);
|
|
59
195
|
}
|
|
60
196
|
}
|
|
61
197
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeOAuthQuotaSource.js","sourceRoot":"","sources":["../../../src/shared/quota/claudeOAuthQuotaSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"claudeOAuthQuotaSource.js","sourceRoot":"","sources":["../../../src/shared/quota/claudeOAuthQuotaSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,13 @@ import type { QuotaProbeResult, QuotaSource, QuotaUsageSnapshot } from "./quotaS
|
|
|
14
14
|
* `fetchSnapshot`, yields `null` so the {@link CompositeQuotaSource} falls
|
|
15
15
|
* through to the next source.
|
|
16
16
|
*
|
|
17
|
-
* Token refresh is
|
|
18
|
-
*
|
|
19
|
-
*
|
|
17
|
+
* Token refresh is the subclass's call, not this base's: most sources degrade on
|
|
18
|
+
* expiry/401 (the host owns their credential). The Claude source is the
|
|
19
|
+
* exception — it refreshes its CLI credential and persists the rotated token
|
|
20
|
+
* under a file lock (double-checked), because that file is otherwise abandoned
|
|
21
|
+
* once the access token expires. Any source that refreshes MUST do so atomically
|
|
22
|
+
* under a lock so a rotated refresh token is never lost — see
|
|
23
|
+
* {@link ClaudeOAuthQuotaSource}.
|
|
20
24
|
*/
|
|
21
25
|
export interface FetchResponseLike {
|
|
22
26
|
ok: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpQuotaSource.d.ts","sourceRoot":"","sources":["../../../src/shared/quota/httpQuotaSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE1F
|
|
1
|
+
{"version":3,"file":"httpQuotaSource.d.ts","sourceRoot":"","sources":["../../../src/shared/quota/httpQuotaSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpQuotaSource.js","sourceRoot":"","sources":["../../../src/shared/quota/httpQuotaSource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"httpQuotaSource.js","sourceRoot":"","sources":["../../../src/shared/quota/httpQuotaSource.ts"],"names":[],"mappings":"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"}
|