@vymalo/opencode-oauth2 0.11.0 → 0.14.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/dist/cache.d.ts +6 -6
- package/dist/cache.js +100 -104
- package/dist/cache.js.map +1 -1
- package/dist/config.d.ts +107 -107
- package/dist/config.js +173 -182
- package/dist/config.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib.js +1 -0
- package/dist/lib.js.map +1 -1
- package/dist/logging.d.ts +6 -6
- package/dist/logging.js +57 -56
- package/dist/logging.js.map +1 -1
- package/dist/model-discovery.d.ts +3 -3
- package/dist/model-discovery.js +61 -66
- package/dist/model-discovery.js.map +1 -1
- package/dist/model-normalization.js +84 -73
- package/dist/model-normalization.js.map +1 -1
- package/dist/oauth/browser.js +29 -25
- package/dist/oauth/browser.js.map +1 -1
- package/dist/oauth/client.d.ts +46 -46
- package/dist/oauth/client.js +411 -430
- package/dist/oauth/client.js.map +1 -1
- package/dist/oauth/device-code.d.ts +23 -23
- package/dist/oauth/device-code.js +225 -235
- package/dist/oauth/device-code.js.map +1 -1
- package/dist/oauth/discovery.d.ts +5 -5
- package/dist/oauth/discovery.js +34 -34
- package/dist/oauth/discovery.js.map +1 -1
- package/dist/oauth/http-utils.d.ts +27 -27
- package/dist/oauth/http-utils.js +96 -107
- package/dist/oauth/http-utils.js.map +1 -1
- package/dist/oauth/local-callback.d.ts +5 -5
- package/dist/oauth/local-callback.js +76 -74
- package/dist/oauth/local-callback.js.map +1 -1
- package/dist/oauth/pkce.d.ts +2 -2
- package/dist/oauth/pkce.js +9 -5
- package/dist/oauth/pkce.js.map +1 -1
- package/dist/oauth/subject-token.d.ts +15 -15
- package/dist/oauth/subject-token.js +68 -73
- package/dist/oauth/subject-token.js.map +1 -1
- package/dist/opencode.d.ts +15 -15
- package/dist/opencode.js +477 -497
- package/dist/opencode.js.map +1 -1
- package/dist/plugin.d.ts +39 -39
- package/dist/plugin.js +270 -277
- package/dist/plugin.js.map +1 -1
- package/dist/responses-repair.d.ts +12 -35
- package/dist/responses-repair.js +119 -125
- package/dist/responses-repair.js.map +1 -1
- package/dist/scheduler.d.ts +5 -5
- package/dist/scheduler.js +43 -45
- package/dist/scheduler.js.map +1 -1
- package/dist/types.d.ts +25 -25
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
package/dist/oauth/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/oauth/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"mappings":"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","names":[],"sources":["../../src/oauth/client.ts"],"version":3,"file":"client.js","sourceRoot":""}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import type { Logger } from "../logging.js";
|
|
2
2
|
import type { TokenSet } from "../types.js";
|
|
3
3
|
export interface AcquireTokenViaDeviceCodeOptions {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
4
|
+
deviceAuthorizationEndpoint: string;
|
|
5
|
+
tokenEndpoint: string;
|
|
6
|
+
clientId: string;
|
|
7
|
+
clientSecret?: string;
|
|
8
|
+
scopes: string[];
|
|
9
|
+
serverId: string;
|
|
10
|
+
logger: Logger;
|
|
11
|
+
fetchImpl?: typeof fetch;
|
|
12
|
+
timeoutMs: number;
|
|
13
|
+
/**
|
|
14
|
+
* Send PKCE (`code_challenge` on the device-authorization request,
|
|
15
|
+
* `code_verifier` on the token poll). Defaults to `true`. Set `false` only
|
|
16
|
+
* for non-compliant IdPs that reject the extra parameters.
|
|
17
|
+
*/
|
|
18
|
+
pkce?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Sleep function used between polls. Overridable for tests.
|
|
21
|
+
*/
|
|
22
|
+
sleep?: (ms: number) => Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Clock used to measure elapsed time. Overridable for tests.
|
|
25
|
+
*/
|
|
26
|
+
now?: () => number;
|
|
27
27
|
}
|
|
28
28
|
export declare function acquireTokenViaDeviceCode(options: AcquireTokenViaDeviceCodeOptions): Promise<TokenSet>;
|
|
@@ -12,246 +12,236 @@ const ERROR_BODY_PREVIEW_CHARS = 500;
|
|
|
12
12
|
// without bound while we wait for transient conditions to clear.
|
|
13
13
|
const MAX_POLL_INTERVAL_SECONDS = 60;
|
|
14
14
|
function defaultSleep(ms) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
return new Promise((resolve) => {
|
|
16
|
+
setTimeout(resolve, ms);
|
|
17
|
+
});
|
|
18
18
|
}
|
|
19
19
|
async function readResponseBodyPreview(response) {
|
|
20
|
-
|
|
20
|
+
return readResponsePreviewShared(response, ERROR_BODY_PREVIEW_CHARS);
|
|
21
21
|
}
|
|
22
22
|
function parseDeviceAuthorizationResponse(payload) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
verification_uri: verificationUri,
|
|
54
|
-
verification_uri_complete: verificationUriComplete,
|
|
55
|
-
expires_in: expiresIn,
|
|
56
|
-
interval
|
|
57
|
-
};
|
|
23
|
+
if (!payload || typeof payload !== "object") {
|
|
24
|
+
throw new Error("device authorization response is not a JSON object");
|
|
25
|
+
}
|
|
26
|
+
const record = payload;
|
|
27
|
+
const deviceCode = record.device_code;
|
|
28
|
+
const userCode = record.user_code;
|
|
29
|
+
const verificationUri = record.verification_uri;
|
|
30
|
+
const expiresIn = record.expires_in;
|
|
31
|
+
if (typeof deviceCode !== "string" || deviceCode.length === 0) {
|
|
32
|
+
throw new Error("device authorization response is missing device_code");
|
|
33
|
+
}
|
|
34
|
+
if (typeof userCode !== "string" || userCode.length === 0) {
|
|
35
|
+
throw new Error("device authorization response is missing user_code");
|
|
36
|
+
}
|
|
37
|
+
if (typeof verificationUri !== "string" || verificationUri.length === 0) {
|
|
38
|
+
throw new Error("device authorization response is missing verification_uri");
|
|
39
|
+
}
|
|
40
|
+
if (typeof expiresIn !== "number" || !Number.isFinite(expiresIn) || expiresIn <= 0) {
|
|
41
|
+
throw new Error("device authorization response is missing a valid expires_in");
|
|
42
|
+
}
|
|
43
|
+
const verificationUriComplete = typeof record.verification_uri_complete === "string" && record.verification_uri_complete.length > 0 ? record.verification_uri_complete : undefined;
|
|
44
|
+
const interval = typeof record.interval === "number" && Number.isFinite(record.interval) && record.interval > 0 ? Math.ceil(record.interval) : undefined;
|
|
45
|
+
return {
|
|
46
|
+
device_code: deviceCode,
|
|
47
|
+
user_code: userCode,
|
|
48
|
+
verification_uri: verificationUri,
|
|
49
|
+
verification_uri_complete: verificationUriComplete,
|
|
50
|
+
expires_in: expiresIn,
|
|
51
|
+
interval
|
|
52
|
+
};
|
|
58
53
|
}
|
|
59
54
|
export async function acquireTokenViaDeviceCode(options) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
serverId,
|
|
251
|
-
status: pollResponse.status,
|
|
252
|
-
bodyPreview: preview ? scrubSecrets(preview) : undefined
|
|
253
|
-
});
|
|
254
|
-
throw new Error(`device code token poll failed (${pollResponse.status})`);
|
|
255
|
-
}
|
|
55
|
+
const fetchImpl = options.fetchImpl ?? fetch;
|
|
56
|
+
const sleep = options.sleep ?? defaultSleep;
|
|
57
|
+
const now = options.now ?? Date.now;
|
|
58
|
+
const { logger, serverId } = options;
|
|
59
|
+
// PKCE for the device flow (RFC 8628 + RFC 7636). Keycloak enforces this when
|
|
60
|
+
// the client's "Proof Key for Code Exchange Code Challenge Method" is set, and
|
|
61
|
+
// rejects the device-authorization request with
|
|
62
|
+
// `invalid_request: Missing parameter: code_challenge_method` otherwise. On by
|
|
63
|
+
// default — providers that don't require PKCE ignore it — and opt-out via the
|
|
64
|
+
// `pkce` server option for non-compliant IdPs. Mirrors the authorization_code
|
|
65
|
+
// flow.
|
|
66
|
+
const usePkce = options.pkce !== false;
|
|
67
|
+
const pkce = usePkce ? generatePkcePair() : undefined;
|
|
68
|
+
// Step 1: request a device code.
|
|
69
|
+
const deviceAuthBody = new URLSearchParams({
|
|
70
|
+
client_id: options.clientId,
|
|
71
|
+
scope: options.scopes.join(" ")
|
|
72
|
+
});
|
|
73
|
+
if (pkce) {
|
|
74
|
+
deviceAuthBody.set("code_challenge", pkce.challenge);
|
|
75
|
+
deviceAuthBody.set("code_challenge_method", "S256");
|
|
76
|
+
}
|
|
77
|
+
if (options.clientSecret) {
|
|
78
|
+
deviceAuthBody.set("client_secret", options.clientSecret);
|
|
79
|
+
}
|
|
80
|
+
const deviceAuthController = new AbortController();
|
|
81
|
+
const deviceAuthTimeout = setTimeout(() => deviceAuthController.abort(), options.timeoutMs);
|
|
82
|
+
let deviceAuthResponse;
|
|
83
|
+
try {
|
|
84
|
+
deviceAuthResponse = await fetchImpl(options.deviceAuthorizationEndpoint, {
|
|
85
|
+
method: "POST",
|
|
86
|
+
headers: {
|
|
87
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
88
|
+
Accept: "application/json"
|
|
89
|
+
},
|
|
90
|
+
body: deviceAuthBody,
|
|
91
|
+
signal: deviceAuthController.signal
|
|
92
|
+
});
|
|
93
|
+
} finally {
|
|
94
|
+
clearTimeout(deviceAuthTimeout);
|
|
95
|
+
}
|
|
96
|
+
if (!deviceAuthResponse.ok) {
|
|
97
|
+
const preview = await readResponseBodyPreview(deviceAuthResponse);
|
|
98
|
+
// Log the body separately at error-level so the logger's redaction filter
|
|
99
|
+
// can scrub matching keys (e.g. a verbose provider echoing `client_secret`
|
|
100
|
+
// back in the response). Never embed the body in error.message — callers
|
|
101
|
+
// log error.message verbatim, bypassing the redaction filter.
|
|
102
|
+
logger.error("oauth_device_authorization_failed", {
|
|
103
|
+
serverId,
|
|
104
|
+
status: deviceAuthResponse.status,
|
|
105
|
+
bodyPreview: preview ? scrubSecrets(preview) : undefined
|
|
106
|
+
});
|
|
107
|
+
throw new Error(`device authorization request failed (${deviceAuthResponse.status})`);
|
|
108
|
+
}
|
|
109
|
+
const deviceAuthPayload = await deviceAuthResponse.json();
|
|
110
|
+
const deviceAuth = parseDeviceAuthorizationResponse(deviceAuthPayload);
|
|
111
|
+
const verificationUri = deviceAuth.verification_uri_complete ?? deviceAuth.verification_uri;
|
|
112
|
+
// user_code is an ephemeral, single-use code with no value outside the active
|
|
113
|
+
// flow — that is the spec's intent (RFC 8628). Log it so operators can see the
|
|
114
|
+
// active code and forward it to the user if needed.
|
|
115
|
+
logger.info("oauth_device_code_issued", {
|
|
116
|
+
verificationUri,
|
|
117
|
+
userCode: deviceAuth.user_code,
|
|
118
|
+
expiresIn: deviceAuth.expires_in,
|
|
119
|
+
serverId
|
|
120
|
+
});
|
|
121
|
+
// Also surface to stderr so terminal users can see the code regardless of log
|
|
122
|
+
// routing. Mirrors the browser-fallback pattern in client.ts.
|
|
123
|
+
process.stderr.write(`\n[opencode-oauth2] device-code login for ${serverId}:\n visit: ${verificationUri}\n code: ${deviceAuth.user_code}\n (expires in ${deviceAuth.expires_in}s)\n\n`);
|
|
124
|
+
// Step 2: poll the token endpoint.
|
|
125
|
+
let intervalSeconds = deviceAuth.interval ?? DEFAULT_POLL_INTERVAL_SECONDS;
|
|
126
|
+
const deadlineMs = now() + deviceAuth.expires_in * 1e3;
|
|
127
|
+
let consecutiveTransientFailures = 0;
|
|
128
|
+
while (true) {
|
|
129
|
+
const remainingMs = deadlineMs - now();
|
|
130
|
+
if (remainingMs <= 0) {
|
|
131
|
+
throw new Error("device code expired before authorization completed");
|
|
132
|
+
}
|
|
133
|
+
await sleep(Math.min(intervalSeconds * 1e3, remainingMs));
|
|
134
|
+
const pollBody = new URLSearchParams({
|
|
135
|
+
grant_type: DEVICE_CODE_GRANT_TYPE,
|
|
136
|
+
device_code: deviceAuth.device_code,
|
|
137
|
+
client_id: options.clientId
|
|
138
|
+
});
|
|
139
|
+
if (pkce) {
|
|
140
|
+
pollBody.set("code_verifier", pkce.verifier);
|
|
141
|
+
}
|
|
142
|
+
if (options.clientSecret) {
|
|
143
|
+
pollBody.set("client_secret", options.clientSecret);
|
|
144
|
+
}
|
|
145
|
+
const pollController = new AbortController();
|
|
146
|
+
const pollTimeout = setTimeout(() => pollController.abort(), options.timeoutMs);
|
|
147
|
+
let pollResponse;
|
|
148
|
+
try {
|
|
149
|
+
pollResponse = await fetchImpl(options.tokenEndpoint, {
|
|
150
|
+
method: "POST",
|
|
151
|
+
headers: {
|
|
152
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
153
|
+
Accept: "application/json"
|
|
154
|
+
},
|
|
155
|
+
body: pollBody,
|
|
156
|
+
signal: pollController.signal
|
|
157
|
+
});
|
|
158
|
+
// Reset the failure counter on any HTTP response — even a non-2xx one
|
|
159
|
+
// is a sign the network round-trip is working; only thrown exceptions
|
|
160
|
+
// (network errors, timeouts) count as transient failures.
|
|
161
|
+
consecutiveTransientFailures = 0;
|
|
162
|
+
} catch (error) {
|
|
163
|
+
// TypeError from fetch typically means a programming/configuration
|
|
164
|
+
// error (malformed URL, unsupported scheme) that won't resolve on
|
|
165
|
+
// retry. Fail fast on those instead of burning the expires_in window.
|
|
166
|
+
// Everything else (AbortError from timeout, network errors, DNS
|
|
167
|
+
// failures) is treated as transient and triggers backoff per
|
|
168
|
+
// RFC 8628 §3.5.
|
|
169
|
+
if (error instanceof TypeError) {
|
|
170
|
+
logger.error("oauth_device_code_poll_failed", {
|
|
171
|
+
serverId,
|
|
172
|
+
error: error.message
|
|
173
|
+
});
|
|
174
|
+
throw error;
|
|
175
|
+
}
|
|
176
|
+
consecutiveTransientFailures++;
|
|
177
|
+
// Exponential backoff (capped) on transient transport errors. We do
|
|
178
|
+
// NOT hard-stop: VPN flaps, transient DNS/TLS outages, and similar
|
|
179
|
+
// short-lived disruptions are normal during a multi-minute device-code
|
|
180
|
+
// window. The `expires_in` deadline at the top of the loop is the
|
|
181
|
+
// sole termination condition.
|
|
182
|
+
intervalSeconds = Math.min(intervalSeconds + SLOW_DOWN_INCREMENT_SECONDS, MAX_POLL_INTERVAL_SECONDS);
|
|
183
|
+
logger.warn("oauth_device_code_poll_transient_error", {
|
|
184
|
+
serverId,
|
|
185
|
+
error: error instanceof Error ? error.message : String(error),
|
|
186
|
+
consecutiveFailures: consecutiveTransientFailures,
|
|
187
|
+
nextIntervalSeconds: intervalSeconds
|
|
188
|
+
});
|
|
189
|
+
continue;
|
|
190
|
+
} finally {
|
|
191
|
+
clearTimeout(pollTimeout);
|
|
192
|
+
}
|
|
193
|
+
if (pollResponse.ok) {
|
|
194
|
+
const payload = await pollResponse.json();
|
|
195
|
+
const token = toTokenSet(payload, { requireRefreshToken: true });
|
|
196
|
+
logger.info("oauth_device_code_success", {
|
|
197
|
+
serverId,
|
|
198
|
+
hasRefreshToken: true
|
|
199
|
+
});
|
|
200
|
+
return token;
|
|
201
|
+
}
|
|
202
|
+
if (pollResponse.status >= 400 && pollResponse.status < 500) {
|
|
203
|
+
let errorPayload = {};
|
|
204
|
+
const text = await readResponseBodyPreview(pollResponse);
|
|
205
|
+
try {
|
|
206
|
+
if (text.length > 0) {
|
|
207
|
+
errorPayload = JSON.parse(text);
|
|
208
|
+
}
|
|
209
|
+
} catch {}
|
|
210
|
+
const errorCode = errorPayload.error;
|
|
211
|
+
if (errorCode === "authorization_pending") {
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
if (errorCode === "slow_down") {
|
|
215
|
+
intervalSeconds += SLOW_DOWN_INCREMENT_SECONDS;
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
if (errorCode === "expired_token") {
|
|
219
|
+
throw new Error("device code expired before user completed authorization");
|
|
220
|
+
}
|
|
221
|
+
if (errorCode === "access_denied") {
|
|
222
|
+
throw new Error("device code authorization denied by user");
|
|
223
|
+
}
|
|
224
|
+
logger.error("oauth_device_code_poll_failed", {
|
|
225
|
+
serverId,
|
|
226
|
+
status: pollResponse.status,
|
|
227
|
+
errorCode: errorCode || undefined,
|
|
228
|
+
// Body preview goes here, not into the thrown error.message — callers
|
|
229
|
+
// log error.message verbatim and would bypass the logger's redaction.
|
|
230
|
+
// scrubSecrets masks token-shaped substrings the field-name-based
|
|
231
|
+
// logger redaction would otherwise miss.
|
|
232
|
+
bodyPreview: text ? scrubSecrets(text) : undefined
|
|
233
|
+
});
|
|
234
|
+
throw new Error(`device code token poll failed (${pollResponse.status})${errorCode ? `: ${errorCode}` : ""}`);
|
|
235
|
+
}
|
|
236
|
+
// 5xx — surface to caller; do not retry indefinitely on server errors.
|
|
237
|
+
const preview = await readResponseBodyPreview(pollResponse);
|
|
238
|
+
logger.error("oauth_device_code_poll_failed", {
|
|
239
|
+
serverId,
|
|
240
|
+
status: pollResponse.status,
|
|
241
|
+
bodyPreview: preview ? scrubSecrets(preview) : undefined
|
|
242
|
+
});
|
|
243
|
+
throw new Error(`device code token poll failed (${pollResponse.status})`);
|
|
244
|
+
}
|
|
256
245
|
}
|
|
246
|
+
|
|
257
247
|
//# sourceMappingURL=device-code.js.map
|