@outfoxx/sunday 2.0.0-beta.1 → 2.0.0-beta.10
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 +64 -0
- package/build/client-settings.d.ts +22 -0
- package/build/client-settings.js +147 -0
- package/build/client-settings.js.map +1 -0
- package/build/credentials.d.ts +58 -0
- package/build/credentials.js +51 -0
- package/build/credentials.js.map +1 -0
- package/build/event-parser.d.ts +2 -0
- package/build/event-parser.js.map +1 -1
- package/build/fetch-event-source.d.ts +14 -5
- package/build/fetch-event-source.js +109 -44
- package/build/fetch-event-source.js.map +1 -1
- package/build/fetch-oauth-token-provider.d.ts +28 -0
- package/build/fetch-oauth-token-provider.js +171 -0
- package/build/fetch-oauth-token-provider.js.map +1 -0
- package/build/fetch-transport.d.ts +8 -0
- package/build/fetch-transport.js +84 -15
- package/build/fetch-transport.js.map +1 -1
- package/build/fetch.js +3 -2
- package/build/fetch.js.map +1 -1
- package/build/index.d.ts +11 -0
- package/build/index.js +11 -0
- package/build/index.js.map +1 -1
- package/build/media-type-codecs/cbor-encoder.d.ts +2 -2
- package/build/media-type-codecs/cbor-encoder.js +2 -2
- package/build/media-type-codecs/cbor-encoder.js.map +1 -1
- package/build/media-type-codecs/json-encoder.d.ts +3 -3
- package/build/media-type-codecs/json-encoder.js +4 -4
- package/build/media-type-codecs/json-encoder.js.map +1 -1
- package/build/media-type-codecs/media-type-encoder.d.ts +3 -3
- package/build/media-type-codecs/media-type-encoder.js.map +1 -1
- package/build/media-type-codecs/www-form-url-encoder.d.ts +2 -2
- package/build/media-type-codecs/www-form-url-encoder.js +2 -2
- package/build/media-type-codecs/www-form-url-encoder.js.map +1 -1
- package/build/model-construction.d.ts +5 -0
- package/build/model-construction.js +40 -0
- package/build/model-construction.js.map +1 -0
- package/build/model-schema.d.ts +9 -0
- package/build/model-schema.js +131 -0
- package/build/model-schema.js.map +1 -0
- package/build/oauth-wire.d.ts +33 -0
- package/build/oauth-wire.js +143 -0
- package/build/oauth-wire.js.map +1 -0
- package/build/operation.d.ts +11 -1
- package/build/operation.js +3 -0
- package/build/operation.js.map +1 -1
- package/build/problem.js +2 -1
- package/build/problem.js.map +1 -1
- package/build/request-security.d.ts +16 -0
- package/build/request-security.js +167 -0
- package/build/request-security.js.map +1 -0
- package/build/request-validation-error.d.ts +4 -0
- package/build/request-validation-error.js +21 -0
- package/build/request-validation-error.js.map +1 -0
- package/build/schema-builtins.js +11 -21
- package/build/schema-builtins.js.map +1 -1
- package/build/schema-runtime.d.ts +8 -1
- package/build/schema-runtime.js +12 -3
- package/build/schema-runtime.js.map +1 -1
- package/build/security-binding.d.ts +22 -0
- package/build/security-binding.js +15 -0
- package/build/security-binding.js.map +1 -0
- package/build/streaming-body.d.ts +21 -0
- package/build/streaming-body.js +65 -0
- package/build/streaming-body.js.map +1 -0
- package/build/token-manager.d.ts +33 -0
- package/build/token-manager.js +199 -0
- package/build/token-manager.js.map +1 -0
- package/build/token-provider.d.ts +44 -0
- package/build/token-provider.js +31 -0
- package/build/token-provider.js.map +1 -0
- package/build/transport.d.ts +5 -0
- package/build/unknown-variant.d.ts +12 -0
- package/build/unknown-variant.js +45 -0
- package/build/unknown-variant.js.map +1 -0
- package/build/url-template.d.ts +3 -0
- package/build/url-template.js +30 -2
- package/build/url-template.js.map +1 -1
- package/build/util/base64.d.ts +4 -0
- package/build/util/base64.js +46 -0
- package/build/util/base64.js.map +1 -0
- package/package.json +6 -2
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
|
+
import { RequestValidationError } from './request-validation-error.js';
|
|
15
|
+
import { AuthorizationRequiredError, TokenProviderError } from './token-provider.js';
|
|
14
16
|
import { EventParser } from './event-parser.js';
|
|
15
17
|
import { validate } from './fetch.js';
|
|
16
18
|
import { levelLogger, LogLevel } from './logger.js';
|
|
@@ -18,9 +20,10 @@ import { MediaType } from './media-type.js';
|
|
|
18
20
|
import { unknownSet } from './util/unknowns.js';
|
|
19
21
|
export class FetchEventSource extends EventTarget {
|
|
20
22
|
static LAST_EVENT_ID_HEADER = 'Last-Event-ID';
|
|
21
|
-
static
|
|
22
|
-
static
|
|
23
|
-
static
|
|
23
|
+
static RETRY_TIME_DEFAULT = 500;
|
|
24
|
+
static RETRY_MAX_MULTIPLIER_DEFAULT = 30;
|
|
25
|
+
static KEEPALIVE_TIMEOUT_MULTIPLIER = 3;
|
|
26
|
+
static KEEPALIVE_TIMEOUT_MINIMUM = 1000;
|
|
24
27
|
static EVENT_TIMEOUT_CHECK_INTERVAL_DEFAULT = 2 * 1000;
|
|
25
28
|
CONNECTING = 0;
|
|
26
29
|
OPEN = 1;
|
|
@@ -35,19 +38,21 @@ export class FetchEventSource extends EventTarget {
|
|
|
35
38
|
return this.internalRetryTime;
|
|
36
39
|
}
|
|
37
40
|
adapter;
|
|
41
|
+
fetchRequest;
|
|
38
42
|
signal;
|
|
39
43
|
connectionAbortController;
|
|
40
44
|
connectionReader;
|
|
41
45
|
externalAbortSignal;
|
|
42
46
|
externalAbortHandler;
|
|
43
|
-
internalRetryTime =
|
|
47
|
+
internalRetryTime = FetchEventSource.RETRY_TIME_DEFAULT;
|
|
48
|
+
internalRetryMax;
|
|
44
49
|
retryAttempt = 0;
|
|
45
|
-
connectionAttemptTime;
|
|
46
50
|
connectionOrigin;
|
|
47
51
|
reconnectTimeoutHandle;
|
|
48
52
|
lastEventId;
|
|
49
53
|
logger;
|
|
50
54
|
eventTimeout;
|
|
55
|
+
eventTimeoutConfigured;
|
|
51
56
|
eventTimeoutCheckInterval;
|
|
52
57
|
eventTimeoutCheckHandle;
|
|
53
58
|
lastEventReceivedTime = 0;
|
|
@@ -58,9 +63,10 @@ export class FetchEventSource extends EventTarget {
|
|
|
58
63
|
this.adapter =
|
|
59
64
|
eventSourceInit?.adapter ??
|
|
60
65
|
((_url, requestInit) => Promise.resolve(new Request(_url, requestInit)));
|
|
66
|
+
this.fetchRequest = eventSourceInit?.fetch ?? ((request, signal) => fetch(request, { signal }));
|
|
61
67
|
this.signal = eventSourceInit?.signal;
|
|
62
|
-
this.eventTimeout =
|
|
63
|
-
|
|
68
|
+
this.eventTimeout = eventSourceInit?.eventTimeout;
|
|
69
|
+
this.eventTimeoutConfigured = eventSourceInit?.eventTimeout !== undefined;
|
|
64
70
|
this.eventTimeoutCheckInterval =
|
|
65
71
|
eventSourceInit?.eventTimeoutCheckInterval ??
|
|
66
72
|
FetchEventSource.EVENT_TIMEOUT_CHECK_INTERVAL_DEFAULT;
|
|
@@ -74,6 +80,11 @@ export class FetchEventSource extends EventTarget {
|
|
|
74
80
|
this.logger?.trace?.('skipping connect', { state: this.readyState });
|
|
75
81
|
return;
|
|
76
82
|
}
|
|
83
|
+
if (this.signal?.aborted) {
|
|
84
|
+
this.logger?.trace?.('skipping connect with aborted signal');
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.startExternalAbortListener();
|
|
77
88
|
this.internalConnect();
|
|
78
89
|
}
|
|
79
90
|
internalConnect() {
|
|
@@ -88,27 +99,23 @@ export class FetchEventSource extends EventTarget {
|
|
|
88
99
|
this.abortConnection();
|
|
89
100
|
const connectionAbortController = new AbortController();
|
|
90
101
|
this.connectionAbortController = connectionAbortController;
|
|
91
|
-
const externalSignal = this.signal;
|
|
92
|
-
if (externalSignal instanceof AbortSignal) {
|
|
93
|
-
this.externalAbortSignal = externalSignal;
|
|
94
|
-
this.externalAbortHandler = () => {
|
|
95
|
-
this.connectionAbortController?.abort();
|
|
96
|
-
};
|
|
97
|
-
externalSignal.addEventListener('abort', this.externalAbortHandler);
|
|
98
|
-
}
|
|
99
102
|
const requestInit = {
|
|
100
103
|
headers,
|
|
101
104
|
cache: 'no-store',
|
|
102
105
|
redirect: 'follow',
|
|
103
106
|
signal: connectionAbortController.signal,
|
|
104
107
|
};
|
|
105
|
-
this.connectionAttemptTime = Date.now();
|
|
106
108
|
void this.adapter(this.url, requestInit)
|
|
107
109
|
.then(async (request) => {
|
|
108
|
-
const response = await
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
const response = await this.fetchRequest(request, connectionAbortController.signal);
|
|
111
|
+
let validatedResponse;
|
|
112
|
+
try {
|
|
113
|
+
validatedResponse = await validate(response, true, undefined, this.logger);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
this.receivedFatalError(error);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
112
119
|
this.receivedHeaders(validatedResponse);
|
|
113
120
|
const body = validatedResponse.body;
|
|
114
121
|
if (!body) {
|
|
@@ -127,7 +134,12 @@ export class FetchEventSource extends EventTarget {
|
|
|
127
134
|
this.receivedComplete();
|
|
128
135
|
})
|
|
129
136
|
.catch((error) => {
|
|
130
|
-
|
|
137
|
+
if (error instanceof RequestValidationError || (error instanceof TokenProviderError && error.reason !== 'temporary') || error instanceof AuthorizationRequiredError) {
|
|
138
|
+
this.receivedFatalError(error);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
this.receivedError(error);
|
|
142
|
+
}
|
|
131
143
|
})
|
|
132
144
|
.finally(() => {
|
|
133
145
|
if (this.connectionReader) {
|
|
@@ -151,6 +163,7 @@ export class FetchEventSource extends EventTarget {
|
|
|
151
163
|
this.logger?.debug?.('closing');
|
|
152
164
|
this.readyState = this.CLOSED;
|
|
153
165
|
this.internalClose();
|
|
166
|
+
this.stopExternalAbortListener();
|
|
154
167
|
}
|
|
155
168
|
internalClose() {
|
|
156
169
|
this.abortConnection();
|
|
@@ -170,7 +183,7 @@ export class FetchEventSource extends EventTarget {
|
|
|
170
183
|
}
|
|
171
184
|
this.updateLastEventReceived(lastEventReceivedTime);
|
|
172
185
|
this.logger?.trace?.('starting event timeout checks');
|
|
173
|
-
this.eventTimeoutCheckHandle = setInterval(() => this.checkEventTimeout(), this.eventTimeoutCheckInterval);
|
|
186
|
+
this.eventTimeoutCheckHandle = setInterval(() => this.checkEventTimeout(), Math.min(this.eventTimeoutCheckInterval, this.eventTimeout));
|
|
174
187
|
}
|
|
175
188
|
stopEventTimeoutCheck() {
|
|
176
189
|
if (this.eventTimeoutCheckHandle) {
|
|
@@ -211,6 +224,9 @@ export class FetchEventSource extends EventTarget {
|
|
|
211
224
|
this.connectionOrigin = response.url;
|
|
212
225
|
this.retryAttempt = 0;
|
|
213
226
|
this.readyState = this.OPEN;
|
|
227
|
+
if (!this.eventTimeoutConfigured) {
|
|
228
|
+
this.eventTimeout = undefined;
|
|
229
|
+
}
|
|
214
230
|
// Start event timeout check, treating this connection
|
|
215
231
|
// as the last time we received an event
|
|
216
232
|
this.startEventTimeoutCheck(Date.now());
|
|
@@ -249,6 +265,16 @@ export class FetchEventSource extends EventTarget {
|
|
|
249
265
|
this.scheduleReconnect();
|
|
250
266
|
}
|
|
251
267
|
}
|
|
268
|
+
receivedFatalError(error) {
|
|
269
|
+
if (this.readyState === this.CLOSED) {
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
this.logger?.debug?.('received fatal error', { error });
|
|
273
|
+
this.readyState = this.CLOSED;
|
|
274
|
+
this.internalClose();
|
|
275
|
+
this.stopExternalAbortListener();
|
|
276
|
+
this.fireErrorEvent(error);
|
|
277
|
+
}
|
|
252
278
|
receivedComplete() {
|
|
253
279
|
if (this.readyState == this.CLOSED) {
|
|
254
280
|
return;
|
|
@@ -260,29 +286,17 @@ export class FetchEventSource extends EventTarget {
|
|
|
260
286
|
// Reconnection
|
|
261
287
|
//
|
|
262
288
|
scheduleReconnect() {
|
|
289
|
+
this.clearReconnect();
|
|
263
290
|
this.internalClose();
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
: 0;
|
|
267
|
-
const retryDelay = FetchEventSource.calculateRetryTime(this.retryAttempt, this.retryTime, lastConnectionTime);
|
|
291
|
+
const retryDelay = FetchEventSource.calculateRetryTime(this.retryAttempt, this.retryTime, Math.max(this.retryTime, this.internalRetryMax ??
|
|
292
|
+
this.retryTime * FetchEventSource.RETRY_MAX_MULTIPLIER_DEFAULT));
|
|
268
293
|
this.retryAttempt++;
|
|
269
294
|
this.readyState = this.CONNECTING;
|
|
270
295
|
this.logger?.debug?.('scheduling reconnect', { retryDelay });
|
|
271
296
|
this.reconnectTimeoutHandle = setTimeout(() => this.internalConnect(), retryDelay);
|
|
272
297
|
}
|
|
273
|
-
static calculateRetryTime(retryAttempt, retryTime,
|
|
274
|
-
|
|
275
|
-
// calculate total delay
|
|
276
|
-
let retryDelay = Math.pow(retryMultiplier, this.RETRY_EXPONENT) * retryTime;
|
|
277
|
-
// Adjust delay by the amount of time the last connection
|
|
278
|
-
// cycle took, except on the first attempt
|
|
279
|
-
if (retryAttempt > 0) {
|
|
280
|
-
retryDelay -= lastConnectTime;
|
|
281
|
-
// Ensure the delay is at least as large as
|
|
282
|
-
// the minimum retry time interval
|
|
283
|
-
retryDelay = Math.max(retryDelay, retryTime);
|
|
284
|
-
}
|
|
285
|
-
return retryDelay;
|
|
298
|
+
static calculateRetryTime(retryAttempt, retryTime, retryMax) {
|
|
299
|
+
return Math.min(retryTime * Math.pow(2, retryAttempt), retryMax);
|
|
286
300
|
}
|
|
287
301
|
clearReconnect() {
|
|
288
302
|
if (this.reconnectTimeoutHandle) {
|
|
@@ -295,9 +309,9 @@ export class FetchEventSource extends EventTarget {
|
|
|
295
309
|
//
|
|
296
310
|
dispatchParsedEvent = (eventInfo) => {
|
|
297
311
|
this.updateLastEventReceived();
|
|
298
|
-
if (eventInfo.retry) {
|
|
299
|
-
const retryTime =
|
|
300
|
-
if (
|
|
312
|
+
if (eventInfo.retry != null) {
|
|
313
|
+
const retryTime = FetchEventSource.parseMilliseconds(eventInfo.retry);
|
|
314
|
+
if (retryTime != null) {
|
|
301
315
|
this.logger?.debug?.('updating retry timeout', { retryTime });
|
|
302
316
|
this.internalRetryTime = retryTime;
|
|
303
317
|
}
|
|
@@ -307,6 +321,37 @@ export class FetchEventSource extends EventTarget {
|
|
|
307
321
|
});
|
|
308
322
|
}
|
|
309
323
|
}
|
|
324
|
+
if (eventInfo['retry-max'] != null) {
|
|
325
|
+
const retryMax = FetchEventSource.parseMilliseconds(eventInfo['retry-max']);
|
|
326
|
+
if (retryMax != null && retryMax > 0) {
|
|
327
|
+
this.logger?.debug?.('updating maximum retry timeout', { retryMax });
|
|
328
|
+
this.internalRetryMax = retryMax;
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
this.logger?.warn?.('ignoring invalid maximum retry timeout event', {
|
|
332
|
+
eventInfo,
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
if (eventInfo.keepalive != null) {
|
|
337
|
+
const keepalive = FetchEventSource.parseMilliseconds(eventInfo.keepalive);
|
|
338
|
+
const keepaliveTimeout = keepalive == null || keepalive === 0
|
|
339
|
+
? undefined
|
|
340
|
+
: Math.max(keepalive * FetchEventSource.KEEPALIVE_TIMEOUT_MULTIPLIER, FetchEventSource.KEEPALIVE_TIMEOUT_MINIMUM);
|
|
341
|
+
if (keepaliveTimeout != null && Number.isSafeInteger(keepaliveTimeout)) {
|
|
342
|
+
this.logger?.debug?.('updating keepalive timeout', {
|
|
343
|
+
keepalive,
|
|
344
|
+
eventTimeout: keepaliveTimeout,
|
|
345
|
+
});
|
|
346
|
+
if (!this.eventTimeoutConfigured) {
|
|
347
|
+
this.eventTimeout = keepaliveTimeout;
|
|
348
|
+
this.startEventTimeoutCheck(this.lastEventReceivedTime);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
this.logger?.warn?.('ignoring invalid keepalive event', { eventInfo });
|
|
353
|
+
}
|
|
354
|
+
}
|
|
310
355
|
// skip empty events
|
|
311
356
|
if (eventInfo.id == null &&
|
|
312
357
|
eventInfo.event == null &&
|
|
@@ -334,6 +379,13 @@ export class FetchEventSource extends EventTarget {
|
|
|
334
379
|
this.onmessage?.(event);
|
|
335
380
|
this.dispatchEvent(event);
|
|
336
381
|
};
|
|
382
|
+
static parseMilliseconds(value) {
|
|
383
|
+
if (!/^\d+$/.test(value)) {
|
|
384
|
+
return undefined;
|
|
385
|
+
}
|
|
386
|
+
const milliseconds = Number.parseInt(value, 10);
|
|
387
|
+
return Number.isSafeInteger(milliseconds) ? milliseconds : undefined;
|
|
388
|
+
}
|
|
337
389
|
fireErrorEvent(error) {
|
|
338
390
|
const event = new Event('error');
|
|
339
391
|
unknownSet(event, 'error', error);
|
|
@@ -345,8 +397,7 @@ export class FetchEventSource extends EventTarget {
|
|
|
345
397
|
}
|
|
346
398
|
this.connectionAbortController = undefined;
|
|
347
399
|
if (this.connectionReader) {
|
|
348
|
-
void this.connectionReader.cancel()
|
|
349
|
-
.catch(() => this.logger?.warn?.('failed to cancel connection reader'));
|
|
400
|
+
void this.connectionReader.cancel().catch((error) => this.logger?.warn?.('failed to cancel connection reader', { error }));
|
|
350
401
|
try {
|
|
351
402
|
this.connectionReader.releaseLock();
|
|
352
403
|
}
|
|
@@ -355,6 +406,20 @@ export class FetchEventSource extends EventTarget {
|
|
|
355
406
|
}
|
|
356
407
|
}
|
|
357
408
|
this.connectionReader = undefined;
|
|
409
|
+
}
|
|
410
|
+
startExternalAbortListener() {
|
|
411
|
+
const externalSignal = this.signal;
|
|
412
|
+
if (!(externalSignal instanceof AbortSignal)) {
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
415
|
+
this.stopExternalAbortListener();
|
|
416
|
+
this.externalAbortSignal = externalSignal;
|
|
417
|
+
this.externalAbortHandler = () => this.close();
|
|
418
|
+
externalSignal.addEventListener('abort', this.externalAbortHandler, {
|
|
419
|
+
once: true,
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
stopExternalAbortListener() {
|
|
358
423
|
if (this.externalAbortSignal && this.externalAbortHandler) {
|
|
359
424
|
this.externalAbortSignal.removeEventListener('abort', this.externalAbortHandler);
|
|
360
425
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-event-source.js","sourceRoot":"","sources":["../src/fetch-event-source.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fetch-event-source.js","sourceRoot":"","sources":["../src/fetch-event-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SecurityBinding } from './security-binding.js';
|
|
2
|
+
import { TokenConfiguration, TokenProvider, TokenRequest, TokenSet } from './token-provider.js';
|
|
3
|
+
import { OAuthCredentialOptions } from './credentials.js';
|
|
4
|
+
export type { AuthorizationGrant } from './credentials.js';
|
|
5
|
+
/** Fetch-specific OAuth exchange options. */
|
|
6
|
+
export interface OAuthProviderOptions extends OAuthCredentialOptions {
|
|
7
|
+
readonly fetch?: typeof fetch;
|
|
8
|
+
readonly now?: () => number;
|
|
9
|
+
}
|
|
10
|
+
/** Client-credentials, application-authorized PKCE, and refresh exchange without cookies or automatic redirects. */
|
|
11
|
+
export declare class FetchOAuthTokenProvider implements TokenProvider {
|
|
12
|
+
readonly identity: string;
|
|
13
|
+
private readonly options;
|
|
14
|
+
private readonly authentication;
|
|
15
|
+
private readonly consumedCodes;
|
|
16
|
+
private readonly fetch;
|
|
17
|
+
private readonly now;
|
|
18
|
+
constructor(options: OAuthProviderOptions);
|
|
19
|
+
/** Selects the application client and fresh session without changing the generated profile. */
|
|
20
|
+
configure(_binding: SecurityBinding): TokenConfiguration;
|
|
21
|
+
/** Acquires a client token or exchanges one application-authorized PKCE grant. */
|
|
22
|
+
acquire(request: TokenRequest, signal: AbortSignal): Promise<TokenSet>;
|
|
23
|
+
/** Rotates refresh credentials without using an authorization code again. */
|
|
24
|
+
refresh(request: TokenRequest, refreshToken: string, signal: AbortSignal): Promise<TokenSet>;
|
|
25
|
+
private resolveEndpoints;
|
|
26
|
+
private fetchResponse;
|
|
27
|
+
private exchange;
|
|
28
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
// Copyright 2020 Outfox, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import * as oauth from 'oauth4webapi';
|
|
15
|
+
import { AuthorizationRequiredError, TokenProviderError, } from './token-provider.js';
|
|
16
|
+
import { DiscoveryMetadata, TokenSuccessResponse, TokenErrorResponse, endpoint } from './oauth-wire.js';
|
|
17
|
+
/** Client-credentials, application-authorized PKCE, and refresh exchange without cookies or automatic redirects. */
|
|
18
|
+
export class FetchOAuthTokenProvider {
|
|
19
|
+
identity;
|
|
20
|
+
options;
|
|
21
|
+
authentication;
|
|
22
|
+
consumedCodes = new Set();
|
|
23
|
+
fetch;
|
|
24
|
+
now;
|
|
25
|
+
constructor(options) {
|
|
26
|
+
this.authentication = options.authentication ?? 'none';
|
|
27
|
+
if (!['none', 'client_secret_basic', 'client_secret_post'].includes(this.authentication))
|
|
28
|
+
throw new TypeError('Unsupported OAuth client authentication; use an application TokenProvider');
|
|
29
|
+
if (!options.identity.trim() || !options.clientId.trim())
|
|
30
|
+
throw new TypeError('OAuth provider and client identities must not be blank');
|
|
31
|
+
if ((this.authentication === 'none') !== (options.clientSecret === undefined) || options.clientSecret === '') {
|
|
32
|
+
throw new TypeError('Client secrets require an explicit OAuth client authentication method');
|
|
33
|
+
}
|
|
34
|
+
this.identity = options.identity;
|
|
35
|
+
this.options = Object.freeze({ ...options, endpoints: options.endpoints && Object.freeze({ ...options.endpoints }) });
|
|
36
|
+
this.fetch = options.fetch ?? globalThis.fetch;
|
|
37
|
+
this.now = options.now ?? Date.now;
|
|
38
|
+
}
|
|
39
|
+
/** Selects the application client and fresh session without changing the generated profile. */
|
|
40
|
+
configure(_binding) {
|
|
41
|
+
return { clientIdentity: this.options.clientId, grantIdentity: this.options.grantIdentity, endpoints: this.options.endpoints };
|
|
42
|
+
}
|
|
43
|
+
/** Acquires a client token or exchanges one application-authorized PKCE grant. */
|
|
44
|
+
async acquire(request, signal) {
|
|
45
|
+
try {
|
|
46
|
+
request = await this.resolveEndpoints(request, signal);
|
|
47
|
+
let form;
|
|
48
|
+
if (request.flow === 'clientCredentials') {
|
|
49
|
+
if (this.authentication === 'none')
|
|
50
|
+
throw new TokenProviderError();
|
|
51
|
+
form = new URLSearchParams({ grant_type: 'client_credentials' });
|
|
52
|
+
}
|
|
53
|
+
else if (request.flow === 'authorizationCode') {
|
|
54
|
+
if (!this.options.authorization || this.consumedCodes.size >= 1024)
|
|
55
|
+
throw new AuthorizationRequiredError();
|
|
56
|
+
const grant = await this.options.authorization(request, signal);
|
|
57
|
+
if (!grant.code || !grant.redirectUri || !/^[A-Za-z0-9._~-]{43,128}$/.test(grant.codeVerifier))
|
|
58
|
+
throw new AuthorizationRequiredError();
|
|
59
|
+
const digest = new Uint8Array(await crypto.subtle.digest('SHA-256', new TextEncoder().encode(grant.code)));
|
|
60
|
+
const codeKey = Array.from(digest, byte => byte.toString(16).padStart(2, '0')).join('');
|
|
61
|
+
if (this.consumedCodes.size >= 1024 || this.consumedCodes.has(codeKey))
|
|
62
|
+
throw new AuthorizationRequiredError();
|
|
63
|
+
this.consumedCodes.add(codeKey);
|
|
64
|
+
form = new URLSearchParams({ grant_type: 'authorization_code', code: grant.code, redirect_uri: grant.redirectUri, code_verifier: grant.codeVerifier });
|
|
65
|
+
}
|
|
66
|
+
else
|
|
67
|
+
throw new TokenProviderError();
|
|
68
|
+
return await this.exchange(request, request.tokenUrl, form, signal);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
signal.throwIfAborted();
|
|
72
|
+
if (error instanceof AuthorizationRequiredError || error instanceof TokenProviderError)
|
|
73
|
+
throw error;
|
|
74
|
+
throw new TokenProviderError();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** Rotates refresh credentials without using an authorization code again. */
|
|
78
|
+
async refresh(request, refreshToken, signal) {
|
|
79
|
+
try {
|
|
80
|
+
request = await this.resolveEndpoints(request, signal);
|
|
81
|
+
return await this.exchange(request, request.refreshUrl ?? request.tokenUrl, new URLSearchParams({ grant_type: 'refresh_token', refresh_token: refreshToken }), signal);
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
signal.throwIfAborted();
|
|
85
|
+
if (error instanceof AuthorizationRequiredError || error instanceof TokenProviderError)
|
|
86
|
+
throw error;
|
|
87
|
+
throw new TokenProviderError();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async resolveEndpoints(request, signal) {
|
|
91
|
+
if (!request.discoveryUrl)
|
|
92
|
+
return request;
|
|
93
|
+
if (!this.options.issuer)
|
|
94
|
+
throw new TokenProviderError();
|
|
95
|
+
const response = await this.fetchResponse(endpoint(request.discoveryUrl), {
|
|
96
|
+
headers: { Accept: 'application/json' }, credentials: 'omit', redirect: 'manual', signal,
|
|
97
|
+
});
|
|
98
|
+
if (response.status !== 200)
|
|
99
|
+
throw new TokenProviderError();
|
|
100
|
+
const metadata = DiscoveryMetadata.parse(await response.text());
|
|
101
|
+
if (metadata.issuer !== this.options.issuer)
|
|
102
|
+
throw new TokenProviderError();
|
|
103
|
+
const publicCode = this.authentication === 'none' && request.flow === 'authorizationCode';
|
|
104
|
+
if (!publicCode && !(metadata.methods ?? ['client_secret_basic']).includes(this.authentication))
|
|
105
|
+
throw new TokenProviderError();
|
|
106
|
+
const tokenUrl = request.tokenUrl ?? metadata.tokenUrl;
|
|
107
|
+
const authorizationUrl = request.authorizationUrl ?? metadata.authorizationUrl;
|
|
108
|
+
endpoint(tokenUrl);
|
|
109
|
+
if (authorizationUrl !== undefined)
|
|
110
|
+
endpoint(authorizationUrl);
|
|
111
|
+
else if (request.flow === 'authorizationCode')
|
|
112
|
+
throw new TokenProviderError();
|
|
113
|
+
if (request.refreshUrl !== undefined)
|
|
114
|
+
endpoint(request.refreshUrl);
|
|
115
|
+
return { ...request, tokenUrl, authorizationUrl };
|
|
116
|
+
}
|
|
117
|
+
async fetchResponse(url, init) {
|
|
118
|
+
let response;
|
|
119
|
+
try {
|
|
120
|
+
response = await this.fetch(url, init);
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
init.signal?.throwIfAborted();
|
|
124
|
+
throw new TokenProviderError('temporary');
|
|
125
|
+
}
|
|
126
|
+
if (response.status === 408 || response.status === 429 || response.status >= 500 && response.status <= 599) {
|
|
127
|
+
await response.body?.cancel();
|
|
128
|
+
throw new TokenProviderError('temporary');
|
|
129
|
+
}
|
|
130
|
+
return response;
|
|
131
|
+
}
|
|
132
|
+
async exchange(request, tokenUrl, form, signal) {
|
|
133
|
+
if (request.scopes.length)
|
|
134
|
+
form.set('scope', request.scopes.join(' '));
|
|
135
|
+
if (request.audience !== undefined)
|
|
136
|
+
form.set('audience', request.audience);
|
|
137
|
+
if (request.resource !== undefined)
|
|
138
|
+
form.set('resource', request.resource);
|
|
139
|
+
const url = endpoint(tokenUrl);
|
|
140
|
+
let authentication = oauth.None();
|
|
141
|
+
if (this.authentication === 'client_secret_basic')
|
|
142
|
+
authentication = oauth.ClientSecretBasic(this.options.clientSecret);
|
|
143
|
+
else if (this.authentication === 'client_secret_post')
|
|
144
|
+
authentication = oauth.ClientSecretPost(this.options.clientSecret);
|
|
145
|
+
const grantType = form.get('grant_type');
|
|
146
|
+
form.delete('grant_type');
|
|
147
|
+
const response = await oauth.genericTokenEndpointRequest({ issuer: new URL(url).origin, token_endpoint: url }, { client_id: this.options.clientId }, authentication, grantType, form, {
|
|
148
|
+
signal,
|
|
149
|
+
// Intentionally deprecated upstream to discourage non-TLS use; endpoint() has already
|
|
150
|
+
// restricted HTTP to loopback. This is required for the supported local-provider policy.
|
|
151
|
+
[oauth.allowInsecureRequests]: new URL(url).protocol === 'http:',
|
|
152
|
+
[oauth.customFetch]: (input, init) => this.fetchResponse(String(input), {
|
|
153
|
+
...init, credentials: 'omit', redirect: 'manual', signal,
|
|
154
|
+
}),
|
|
155
|
+
});
|
|
156
|
+
const body = await response.text();
|
|
157
|
+
if (response.status !== 200) {
|
|
158
|
+
const code = TokenErrorResponse.parse(body).code;
|
|
159
|
+
if (code === 'invalid_grant') {
|
|
160
|
+
if (request.flow === 'authorizationCode')
|
|
161
|
+
throw new AuthorizationRequiredError();
|
|
162
|
+
throw new TokenProviderError('invalidGrant');
|
|
163
|
+
}
|
|
164
|
+
if (code === 'temporarily_unavailable' || code === 'server_error')
|
|
165
|
+
throw new TokenProviderError('temporary');
|
|
166
|
+
throw new TokenProviderError();
|
|
167
|
+
}
|
|
168
|
+
return (await TokenSuccessResponse.parse(body)).tokens(request.scopes, this.now());
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=fetch-oauth-token-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-oauth-token-provider.js","sourceRoot":"","sources":["../src/fetch-oauth-token-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TokenManager } from './token-manager.js';
|
|
1
2
|
import { SchemaLike } from './schema-runtime.js';
|
|
2
3
|
import { Logger } from './logger.js';
|
|
3
4
|
import { TextMediaTypeDecoder } from './media-type-codecs/media-type-decoder.js';
|
|
@@ -7,22 +8,29 @@ import { Problem } from './problem.js';
|
|
|
7
8
|
import { ExtEventSource, RequestAdapter, Transport, RequestSpec } from './transport.js';
|
|
8
9
|
import { OperationResponse } from './operation-response.js';
|
|
9
10
|
import { URLTemplate } from './url-template.js';
|
|
11
|
+
import { ClientSettings } from './client-settings.js';
|
|
10
12
|
export declare class FetchTransport implements Transport {
|
|
11
13
|
baseUrl: URLTemplate;
|
|
12
14
|
adapter?: RequestAdapter;
|
|
15
|
+
tokenManager?: TokenManager;
|
|
16
|
+
private readonly authorizedRequests;
|
|
13
17
|
mediaTypeEncoders: MediaTypeEncoders;
|
|
14
18
|
mediaTypeDecoders: MediaTypeDecoders;
|
|
15
19
|
problemTypes: Map<string, SchemaLike<Problem>>;
|
|
16
20
|
logger?: Logger;
|
|
17
21
|
constructor(baseUrl: string | URLTemplate, options?: {
|
|
18
22
|
adapter?: RequestAdapter;
|
|
23
|
+
tokenManager?: TokenManager;
|
|
19
24
|
mediaTypeEncoders?: MediaTypeEncoders;
|
|
20
25
|
mediaTypeDecoders?: MediaTypeDecoders;
|
|
21
26
|
logger?: Logger;
|
|
22
27
|
});
|
|
28
|
+
/** Builds a transport from generated settings while retaining application transport options. */
|
|
29
|
+
static fromSettings(settings: ClientSettings, options?: ConstructorParameters<typeof FetchTransport>[1]): FetchTransport;
|
|
23
30
|
registerProblem(type: URL | string, problemType: SchemaLike<Problem>): void;
|
|
24
31
|
transportRequest(requestSpec: RequestSpec<unknown>): Promise<Request>;
|
|
25
32
|
transportResponse(request: Request | RequestSpec<unknown>, dataExpected?: boolean): Promise<Response>;
|
|
33
|
+
private sendAuthorized;
|
|
26
34
|
response<B, R>(requestSpec: RequestSpec<B>, resultType: SchemaLike<R>): Promise<OperationResponse<R>>;
|
|
27
35
|
response<B>(requestSpec: RequestSpec<B>): Promise<OperationResponse<void>>;
|
|
28
36
|
result<B, R>(requestSpec: RequestSpec<B>, resultType: SchemaLike<R>): Promise<R>;
|