@outfoxx/sunday 2.0.0-beta.2 → 2.0.0-beta.4
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 +42 -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 +107 -44
- package/build/fetch-event-source.js.map +1 -1
- package/build/fetch-oauth-token-provider.d.ts +43 -0
- package/build/fetch-oauth-token-provider.js +193 -0
- package/build/fetch-oauth-token-provider.js.map +1 -0
- package/build/fetch-transport.d.ts +5 -0
- package/build/fetch-transport.js +45 -8
- package/build/fetch-transport.js.map +1 -1
- package/build/index.d.ts +7 -0
- package/build/index.js +7 -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/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/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/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 +3 -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/package.json +1 -1
package/README.md
CHANGED
|
@@ -37,3 +37,45 @@ Package Name:
|
|
|
37
37
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
38
38
|
See the License for the specific language governing permissions and
|
|
39
39
|
limitations under the License.
|
|
40
|
+
|
|
41
|
+
## Profiled credentials
|
|
42
|
+
|
|
43
|
+
Generated request specifications select `SecurityBinding` entries. Register application providers with
|
|
44
|
+
one shared `TokenManager` and pass it as `new FetchTransport(baseUrl, {tokenManager})`. Client secrets,
|
|
45
|
+
authorization codes, token storage, and interactive login remain application bindings.
|
|
46
|
+
|
|
47
|
+
`FetchOAuthTokenProvider` exchanges `clientCredentials` and application-authorized `authorizationCode`
|
|
48
|
+
grants and rotates refresh tokens. Configure `identity`, `clientId`, and explicit client authentication
|
|
49
|
+
(`client_secret_basic`, `client_secret_post`, or public-client `none`). An interactive application supplies
|
|
50
|
+
a fresh `grantIdentity` and an `authorization(request, signal)` callback returning
|
|
51
|
+
`{code, redirectUri, codeVerifier}` after its S256 PKCE browser flow has verified state, issuer, and redirect
|
|
52
|
+
URI. Codes are consumed once even when exchange fails or is canceled. Discovery requires a separately
|
|
53
|
+
configured `issuer`; acquisition endpoint overrides cannot change it. Other authentication methods use
|
|
54
|
+
an application `TokenProvider`. Token endpoints require HTTPS except for loopback development URLs.
|
|
55
|
+
|
|
56
|
+
External and static providers implement `configure` and `acquire`, optionally `refresh`. A `TokenSet`
|
|
57
|
+
contains `accessToken`, optional `expiresAt` in Unix milliseconds, and optional `refreshToken`. A returned
|
|
58
|
+
refresh token replaces the previous one; omission retains it. Expired interactive sessions without refresh
|
|
59
|
+
capability and invalid interactive refresh grants require fresh application authorization.
|
|
60
|
+
|
|
61
|
+
Cache keys include provider/client identity, grant identity, profile, flow, resolved endpoints, scopes,
|
|
62
|
+
audience, and resource. Change provider identity with credential configuration and grant identity with
|
|
63
|
+
session/grant inputs. The manager defaults to 30 seconds of expiry skew, coalesces concurrent renewal,
|
|
64
|
+
and accepts application-owned `TokenStore` storage. Canceling one waiter preserves others; canceling the
|
|
65
|
+
last signals acquisition cancellation. Once persistence starts, saving a rotated token finishes even if
|
|
66
|
+
callers cancel. A provider result arriving after cancellation cannot start persistence; if an identity
|
|
67
|
+
server already consumed that refresh token despite cancellation, interactive clients must authorize again.
|
|
68
|
+
|
|
69
|
+
The transport attaches complete AND credential sets and checks them on every execution. Bodyless
|
|
70
|
+
GET/HEAD/OPTIONS requests may recover one explicit bearer `invalid_token` challenge; POST, streamed bodies,
|
|
71
|
+
and 403 responses are never automatically replayed. Managed credential requests use manual redirect
|
|
72
|
+
handling, and query credentials are redacted from response diagnostics. Providers never receive secrets
|
|
73
|
+
from generated metadata, and provider failures use safe runtime diagnostics.
|
|
74
|
+
|
|
75
|
+
Credentials are isolated by logical security scheme as well as provider and acquisition inputs.
|
|
76
|
+
Discovery metadata is fetched and verified on each acquisition or renewal. Temporary provider outages
|
|
77
|
+
allow event connections to reconnect; a rejected refresh grant triggers fresh client credentials only
|
|
78
|
+
for the client-credentials flow. Interactive sessions require fresh application authorization.
|
|
79
|
+
Built-in OAuth providers retain at most 1,024 consumed authorization-code hashes per provider instance.
|
|
80
|
+
After this limit, create a provider for a newly authorized application session; old hashes are never
|
|
81
|
+
evicted to allow code reuse. Refresh exchanges do not consume this history.
|
package/build/event-parser.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-parser.js","sourceRoot":"","sources":["../src/event-parser.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;
|
|
1
|
+
{"version":3,"file":"event-parser.js","sourceRoot":"","sources":["../src/event-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,10 @@ export interface FetchEventSource {
|
|
|
6
6
|
}
|
|
7
7
|
export declare class FetchEventSource extends EventTarget implements ExtEventSource {
|
|
8
8
|
private static readonly LAST_EVENT_ID_HEADER;
|
|
9
|
-
private static readonly
|
|
10
|
-
private static readonly
|
|
11
|
-
private static readonly
|
|
9
|
+
private static readonly RETRY_TIME_DEFAULT;
|
|
10
|
+
private static readonly RETRY_MAX_MULTIPLIER_DEFAULT;
|
|
11
|
+
private static readonly KEEPALIVE_TIMEOUT_MULTIPLIER;
|
|
12
|
+
private static readonly KEEPALIVE_TIMEOUT_MINIMUM;
|
|
12
13
|
private static readonly EVENT_TIMEOUT_CHECK_INTERVAL_DEFAULT;
|
|
13
14
|
readonly CONNECTING = 0;
|
|
14
15
|
readonly OPEN = 1;
|
|
@@ -21,25 +22,29 @@ export declare class FetchEventSource extends EventTarget implements ExtEventSou
|
|
|
21
22
|
onopen: ((this: EventSource, ev: Event) => unknown) | null;
|
|
22
23
|
get retryTime(): number;
|
|
23
24
|
private readonly adapter;
|
|
25
|
+
private readonly fetchRequest;
|
|
24
26
|
private readonly signal?;
|
|
25
27
|
private connectionAbortController?;
|
|
26
28
|
private connectionReader?;
|
|
27
29
|
private externalAbortSignal?;
|
|
28
30
|
private externalAbortHandler?;
|
|
29
31
|
private internalRetryTime;
|
|
32
|
+
private internalRetryMax?;
|
|
30
33
|
private retryAttempt;
|
|
31
|
-
private connectionAttemptTime;
|
|
32
34
|
private connectionOrigin?;
|
|
33
35
|
private reconnectTimeoutHandle?;
|
|
34
36
|
private lastEventId?;
|
|
35
37
|
private readonly logger?;
|
|
36
|
-
private
|
|
38
|
+
private eventTimeout?;
|
|
39
|
+
private readonly eventTimeoutConfigured;
|
|
37
40
|
private readonly eventTimeoutCheckInterval;
|
|
38
41
|
private eventTimeoutCheckHandle?;
|
|
39
42
|
private lastEventReceivedTime;
|
|
40
43
|
private readonly eventParser;
|
|
41
44
|
constructor(url: string, eventSourceInit?: EventSourceInit & {
|
|
42
45
|
adapter?: (url: string, requestInit: RequestInit) => Promise<Request>;
|
|
46
|
+
/** Executes one connection using a subscription-owned authentication recovery budget. */
|
|
47
|
+
fetch?: (request: Request, signal: AbortSignal) => Promise<Response>;
|
|
43
48
|
signal?: AbortSignal;
|
|
44
49
|
eventTimeout?: number;
|
|
45
50
|
eventTimeoutCheckInterval?: number;
|
|
@@ -56,11 +61,15 @@ export declare class FetchEventSource extends EventTarget implements ExtEventSou
|
|
|
56
61
|
private receivedHeaders;
|
|
57
62
|
private receivedData;
|
|
58
63
|
private receivedError;
|
|
64
|
+
private receivedFatalError;
|
|
59
65
|
private receivedComplete;
|
|
60
66
|
private scheduleReconnect;
|
|
61
67
|
private static calculateRetryTime;
|
|
62
68
|
private clearReconnect;
|
|
63
69
|
private readonly dispatchParsedEvent;
|
|
70
|
+
private static parseMilliseconds;
|
|
64
71
|
fireErrorEvent(error: unknown): void;
|
|
65
72
|
private abortConnection;
|
|
73
|
+
private startExternalAbortListener;
|
|
74
|
+
private stopExternalAbortListener;
|
|
66
75
|
}
|
|
@@ -11,6 +11,7 @@
|
|
|
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 { AuthorizationRequiredError, TokenProviderError } from './token-provider.js';
|
|
14
15
|
import { EventParser } from './event-parser.js';
|
|
15
16
|
import { validate } from './fetch.js';
|
|
16
17
|
import { levelLogger, LogLevel } from './logger.js';
|
|
@@ -18,9 +19,10 @@ import { MediaType } from './media-type.js';
|
|
|
18
19
|
import { unknownSet } from './util/unknowns.js';
|
|
19
20
|
export class FetchEventSource extends EventTarget {
|
|
20
21
|
static LAST_EVENT_ID_HEADER = 'Last-Event-ID';
|
|
21
|
-
static
|
|
22
|
-
static
|
|
23
|
-
static
|
|
22
|
+
static RETRY_TIME_DEFAULT = 500;
|
|
23
|
+
static RETRY_MAX_MULTIPLIER_DEFAULT = 30;
|
|
24
|
+
static KEEPALIVE_TIMEOUT_MULTIPLIER = 3;
|
|
25
|
+
static KEEPALIVE_TIMEOUT_MINIMUM = 1000;
|
|
24
26
|
static EVENT_TIMEOUT_CHECK_INTERVAL_DEFAULT = 2 * 1000;
|
|
25
27
|
CONNECTING = 0;
|
|
26
28
|
OPEN = 1;
|
|
@@ -35,19 +37,21 @@ export class FetchEventSource extends EventTarget {
|
|
|
35
37
|
return this.internalRetryTime;
|
|
36
38
|
}
|
|
37
39
|
adapter;
|
|
40
|
+
fetchRequest;
|
|
38
41
|
signal;
|
|
39
42
|
connectionAbortController;
|
|
40
43
|
connectionReader;
|
|
41
44
|
externalAbortSignal;
|
|
42
45
|
externalAbortHandler;
|
|
43
|
-
internalRetryTime =
|
|
46
|
+
internalRetryTime = FetchEventSource.RETRY_TIME_DEFAULT;
|
|
47
|
+
internalRetryMax;
|
|
44
48
|
retryAttempt = 0;
|
|
45
|
-
connectionAttemptTime;
|
|
46
49
|
connectionOrigin;
|
|
47
50
|
reconnectTimeoutHandle;
|
|
48
51
|
lastEventId;
|
|
49
52
|
logger;
|
|
50
53
|
eventTimeout;
|
|
54
|
+
eventTimeoutConfigured;
|
|
51
55
|
eventTimeoutCheckInterval;
|
|
52
56
|
eventTimeoutCheckHandle;
|
|
53
57
|
lastEventReceivedTime = 0;
|
|
@@ -58,9 +62,10 @@ export class FetchEventSource extends EventTarget {
|
|
|
58
62
|
this.adapter =
|
|
59
63
|
eventSourceInit?.adapter ??
|
|
60
64
|
((_url, requestInit) => Promise.resolve(new Request(_url, requestInit)));
|
|
65
|
+
this.fetchRequest = eventSourceInit?.fetch ?? ((request, signal) => fetch(request, { signal }));
|
|
61
66
|
this.signal = eventSourceInit?.signal;
|
|
62
|
-
this.eventTimeout =
|
|
63
|
-
|
|
67
|
+
this.eventTimeout = eventSourceInit?.eventTimeout;
|
|
68
|
+
this.eventTimeoutConfigured = eventSourceInit?.eventTimeout !== undefined;
|
|
64
69
|
this.eventTimeoutCheckInterval =
|
|
65
70
|
eventSourceInit?.eventTimeoutCheckInterval ??
|
|
66
71
|
FetchEventSource.EVENT_TIMEOUT_CHECK_INTERVAL_DEFAULT;
|
|
@@ -74,6 +79,11 @@ export class FetchEventSource extends EventTarget {
|
|
|
74
79
|
this.logger?.trace?.('skipping connect', { state: this.readyState });
|
|
75
80
|
return;
|
|
76
81
|
}
|
|
82
|
+
if (this.signal?.aborted) {
|
|
83
|
+
this.logger?.trace?.('skipping connect with aborted signal');
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
this.startExternalAbortListener();
|
|
77
87
|
this.internalConnect();
|
|
78
88
|
}
|
|
79
89
|
internalConnect() {
|
|
@@ -88,27 +98,23 @@ export class FetchEventSource extends EventTarget {
|
|
|
88
98
|
this.abortConnection();
|
|
89
99
|
const connectionAbortController = new AbortController();
|
|
90
100
|
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
101
|
const requestInit = {
|
|
100
102
|
headers,
|
|
101
103
|
cache: 'no-store',
|
|
102
104
|
redirect: 'follow',
|
|
103
105
|
signal: connectionAbortController.signal,
|
|
104
106
|
};
|
|
105
|
-
this.connectionAttemptTime = Date.now();
|
|
106
107
|
void this.adapter(this.url, requestInit)
|
|
107
108
|
.then(async (request) => {
|
|
108
|
-
const response = await
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
const response = await this.fetchRequest(request, connectionAbortController.signal);
|
|
110
|
+
let validatedResponse;
|
|
111
|
+
try {
|
|
112
|
+
validatedResponse = await validate(response, true, undefined, this.logger);
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
this.receivedFatalError(error);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
112
118
|
this.receivedHeaders(validatedResponse);
|
|
113
119
|
const body = validatedResponse.body;
|
|
114
120
|
if (!body) {
|
|
@@ -127,7 +133,12 @@ export class FetchEventSource extends EventTarget {
|
|
|
127
133
|
this.receivedComplete();
|
|
128
134
|
})
|
|
129
135
|
.catch((error) => {
|
|
130
|
-
|
|
136
|
+
if ((error instanceof TokenProviderError && error.reason !== 'temporary') || error instanceof AuthorizationRequiredError) {
|
|
137
|
+
this.receivedFatalError(error);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
this.receivedError(error);
|
|
141
|
+
}
|
|
131
142
|
})
|
|
132
143
|
.finally(() => {
|
|
133
144
|
if (this.connectionReader) {
|
|
@@ -151,6 +162,7 @@ export class FetchEventSource extends EventTarget {
|
|
|
151
162
|
this.logger?.debug?.('closing');
|
|
152
163
|
this.readyState = this.CLOSED;
|
|
153
164
|
this.internalClose();
|
|
165
|
+
this.stopExternalAbortListener();
|
|
154
166
|
}
|
|
155
167
|
internalClose() {
|
|
156
168
|
this.abortConnection();
|
|
@@ -170,7 +182,7 @@ export class FetchEventSource extends EventTarget {
|
|
|
170
182
|
}
|
|
171
183
|
this.updateLastEventReceived(lastEventReceivedTime);
|
|
172
184
|
this.logger?.trace?.('starting event timeout checks');
|
|
173
|
-
this.eventTimeoutCheckHandle = setInterval(() => this.checkEventTimeout(), this.eventTimeoutCheckInterval);
|
|
185
|
+
this.eventTimeoutCheckHandle = setInterval(() => this.checkEventTimeout(), Math.min(this.eventTimeoutCheckInterval, this.eventTimeout));
|
|
174
186
|
}
|
|
175
187
|
stopEventTimeoutCheck() {
|
|
176
188
|
if (this.eventTimeoutCheckHandle) {
|
|
@@ -211,6 +223,9 @@ export class FetchEventSource extends EventTarget {
|
|
|
211
223
|
this.connectionOrigin = response.url;
|
|
212
224
|
this.retryAttempt = 0;
|
|
213
225
|
this.readyState = this.OPEN;
|
|
226
|
+
if (!this.eventTimeoutConfigured) {
|
|
227
|
+
this.eventTimeout = undefined;
|
|
228
|
+
}
|
|
214
229
|
// Start event timeout check, treating this connection
|
|
215
230
|
// as the last time we received an event
|
|
216
231
|
this.startEventTimeoutCheck(Date.now());
|
|
@@ -249,6 +264,16 @@ export class FetchEventSource extends EventTarget {
|
|
|
249
264
|
this.scheduleReconnect();
|
|
250
265
|
}
|
|
251
266
|
}
|
|
267
|
+
receivedFatalError(error) {
|
|
268
|
+
if (this.readyState === this.CLOSED) {
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
this.logger?.debug?.('received fatal error', { error });
|
|
272
|
+
this.readyState = this.CLOSED;
|
|
273
|
+
this.internalClose();
|
|
274
|
+
this.stopExternalAbortListener();
|
|
275
|
+
this.fireErrorEvent(error);
|
|
276
|
+
}
|
|
252
277
|
receivedComplete() {
|
|
253
278
|
if (this.readyState == this.CLOSED) {
|
|
254
279
|
return;
|
|
@@ -261,28 +286,15 @@ export class FetchEventSource extends EventTarget {
|
|
|
261
286
|
//
|
|
262
287
|
scheduleReconnect() {
|
|
263
288
|
this.internalClose();
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
: 0;
|
|
267
|
-
const retryDelay = FetchEventSource.calculateRetryTime(this.retryAttempt, this.retryTime, lastConnectionTime);
|
|
289
|
+
const retryDelay = FetchEventSource.calculateRetryTime(this.retryAttempt, this.retryTime, Math.max(this.retryTime, this.internalRetryMax ??
|
|
290
|
+
this.retryTime * FetchEventSource.RETRY_MAX_MULTIPLIER_DEFAULT));
|
|
268
291
|
this.retryAttempt++;
|
|
269
292
|
this.readyState = this.CONNECTING;
|
|
270
293
|
this.logger?.debug?.('scheduling reconnect', { retryDelay });
|
|
271
294
|
this.reconnectTimeoutHandle = setTimeout(() => this.internalConnect(), retryDelay);
|
|
272
295
|
}
|
|
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;
|
|
296
|
+
static calculateRetryTime(retryAttempt, retryTime, retryMax) {
|
|
297
|
+
return Math.min(retryTime * Math.pow(2, retryAttempt), retryMax);
|
|
286
298
|
}
|
|
287
299
|
clearReconnect() {
|
|
288
300
|
if (this.reconnectTimeoutHandle) {
|
|
@@ -295,9 +307,9 @@ export class FetchEventSource extends EventTarget {
|
|
|
295
307
|
//
|
|
296
308
|
dispatchParsedEvent = (eventInfo) => {
|
|
297
309
|
this.updateLastEventReceived();
|
|
298
|
-
if (eventInfo.retry) {
|
|
299
|
-
const retryTime =
|
|
300
|
-
if (
|
|
310
|
+
if (eventInfo.retry != null) {
|
|
311
|
+
const retryTime = FetchEventSource.parseMilliseconds(eventInfo.retry);
|
|
312
|
+
if (retryTime != null) {
|
|
301
313
|
this.logger?.debug?.('updating retry timeout', { retryTime });
|
|
302
314
|
this.internalRetryTime = retryTime;
|
|
303
315
|
}
|
|
@@ -307,6 +319,37 @@ export class FetchEventSource extends EventTarget {
|
|
|
307
319
|
});
|
|
308
320
|
}
|
|
309
321
|
}
|
|
322
|
+
if (eventInfo['retry-max'] != null) {
|
|
323
|
+
const retryMax = FetchEventSource.parseMilliseconds(eventInfo['retry-max']);
|
|
324
|
+
if (retryMax != null && retryMax > 0) {
|
|
325
|
+
this.logger?.debug?.('updating maximum retry timeout', { retryMax });
|
|
326
|
+
this.internalRetryMax = retryMax;
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
this.logger?.warn?.('ignoring invalid maximum retry timeout event', {
|
|
330
|
+
eventInfo,
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
if (eventInfo.keepalive != null) {
|
|
335
|
+
const keepalive = FetchEventSource.parseMilliseconds(eventInfo.keepalive);
|
|
336
|
+
const keepaliveTimeout = keepalive == null || keepalive === 0
|
|
337
|
+
? undefined
|
|
338
|
+
: Math.max(keepalive * FetchEventSource.KEEPALIVE_TIMEOUT_MULTIPLIER, FetchEventSource.KEEPALIVE_TIMEOUT_MINIMUM);
|
|
339
|
+
if (keepaliveTimeout != null && Number.isSafeInteger(keepaliveTimeout)) {
|
|
340
|
+
this.logger?.debug?.('updating keepalive timeout', {
|
|
341
|
+
keepalive,
|
|
342
|
+
eventTimeout: keepaliveTimeout,
|
|
343
|
+
});
|
|
344
|
+
if (!this.eventTimeoutConfigured) {
|
|
345
|
+
this.eventTimeout = keepaliveTimeout;
|
|
346
|
+
this.startEventTimeoutCheck(this.lastEventReceivedTime);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
this.logger?.warn?.('ignoring invalid keepalive event', { eventInfo });
|
|
351
|
+
}
|
|
352
|
+
}
|
|
310
353
|
// skip empty events
|
|
311
354
|
if (eventInfo.id == null &&
|
|
312
355
|
eventInfo.event == null &&
|
|
@@ -334,6 +377,13 @@ export class FetchEventSource extends EventTarget {
|
|
|
334
377
|
this.onmessage?.(event);
|
|
335
378
|
this.dispatchEvent(event);
|
|
336
379
|
};
|
|
380
|
+
static parseMilliseconds(value) {
|
|
381
|
+
if (!/^\d+$/.test(value)) {
|
|
382
|
+
return undefined;
|
|
383
|
+
}
|
|
384
|
+
const milliseconds = Number.parseInt(value, 10);
|
|
385
|
+
return Number.isSafeInteger(milliseconds) ? milliseconds : undefined;
|
|
386
|
+
}
|
|
337
387
|
fireErrorEvent(error) {
|
|
338
388
|
const event = new Event('error');
|
|
339
389
|
unknownSet(event, 'error', error);
|
|
@@ -345,8 +395,7 @@ export class FetchEventSource extends EventTarget {
|
|
|
345
395
|
}
|
|
346
396
|
this.connectionAbortController = undefined;
|
|
347
397
|
if (this.connectionReader) {
|
|
348
|
-
void this.connectionReader.cancel()
|
|
349
|
-
.catch(() => this.logger?.warn?.('failed to cancel connection reader'));
|
|
398
|
+
void this.connectionReader.cancel().catch((error) => this.logger?.warn?.('failed to cancel connection reader', { error }));
|
|
350
399
|
try {
|
|
351
400
|
this.connectionReader.releaseLock();
|
|
352
401
|
}
|
|
@@ -355,6 +404,20 @@ export class FetchEventSource extends EventTarget {
|
|
|
355
404
|
}
|
|
356
405
|
}
|
|
357
406
|
this.connectionReader = undefined;
|
|
407
|
+
}
|
|
408
|
+
startExternalAbortListener() {
|
|
409
|
+
const externalSignal = this.signal;
|
|
410
|
+
if (!(externalSignal instanceof AbortSignal)) {
|
|
411
|
+
return;
|
|
412
|
+
}
|
|
413
|
+
this.stopExternalAbortListener();
|
|
414
|
+
this.externalAbortSignal = externalSignal;
|
|
415
|
+
this.externalAbortHandler = () => this.close();
|
|
416
|
+
externalSignal.addEventListener('abort', this.externalAbortHandler, {
|
|
417
|
+
once: true,
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
stopExternalAbortListener() {
|
|
358
421
|
if (this.externalAbortSignal && this.externalAbortHandler) {
|
|
359
422
|
this.externalAbortSignal.removeEventListener('abort', this.externalAbortHandler);
|
|
360
423
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-event-source.js","sourceRoot":"","sources":["../src/fetch-event-source.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAa,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAU,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkBhD,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IACvC,MAAM,CAAU,oBAAoB,GAAG,eAAe,CAAC;IACvD,MAAM,CAAU,yBAAyB,GAAG,EAAE,CAAC;IAC/C,MAAM,CAAU,cAAc,GAAG,GAAG,CAAC;IACrC,MAAM,CAAU,qBAAqB,GAAG,GAAG,GAAG,IAAI,CAAC;IACnD,MAAM,CAAU,oCAAoC,GAAG,CAAC,GAAG,IAAI,CAAC;IAE/D,UAAU,GAAG,CAAC,CAAC;IACf,IAAI,GAAG,CAAC,CAAC;IACT,MAAM,GAAG,CAAC,CAAC;IAEpB,UAAU,GAAW,IAAI,CAAC,MAAM,CAAC;IACjC,GAAG,CAAS;IACZ,eAAe,GAAG,KAAK,CAAC;IACxB,OAAO,GAAuD,IAAI,CAAC;IACnE,SAAS,GAA8D,IAAI,CAAC;IAC5E,MAAM,GAAuD,IAAI,CAAC;IAElE,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAEgB,OAAO,CAGF;IACL,MAAM,CAAe;IAC9B,yBAAyB,CAAmB;IAC5C,gBAAgB,CAA2C;IAC3D,mBAAmB,CAAe;IAClC,oBAAoB,CAAc;IAClC,iBAAiB,GAAG,GAAG,CAAC;IACxB,YAAY,GAAG,CAAC,CAAC;IACjB,qBAAqB,CAAqB;IAC1C,gBAAgB,CAAU;IAC1B,sBAAsB,CAAiC;IACvD,WAAW,CAAU;IACZ,MAAM,CAAU;IAChB,YAAY,CAAU;IACtB,yBAAyB,CAAS;IAC3C,uBAAuB,CAAkC;IACzD,qBAAqB,GAAG,CAAC,CAAC;IACjB,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEjD,YACE,GAAW,EACX,eAMC;QAED,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO;YACV,eAAe,EAAE,OAAO;gBACxB,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,eAAe,EAAE,MAAM,CAAC;QACtC,IAAI,CAAC,YAAY;YACf,eAAe,EAAE,YAAY,IAAI,gBAAgB,CAAC,qBAAqB,CAAC;QAC1E,IAAI,CAAC,yBAAyB;YAC5B,eAAe,EAAE,yBAAyB;gBAC1C,gBAAgB,CAAC,oCAAoC,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,EAAE;IACF,UAAU;IACV,EAAE;IAEF,OAAO;QACL,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACzE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC;QAEnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAElC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE;SACzC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,MAAM,yBAAyB,GAAG,IAAI,eAAe,EAAE,CAAC;QACxD,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;QAE3D,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QACnC,IAAI,cAAc,YAAY,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,mBAAmB,GAAG,cAAc,CAAC;YAC1C,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE;gBAC/B,IAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,CAAC;YAC1C,CAAC,CAAC;YACF,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,WAAW,GAAgB;YAC/B,OAAO;YACP,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,yBAAyB,CAAC,MAAM;SACzC,CAAC;QAEF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAExC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC;aACrC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACtB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;gBACpC,MAAM,EAAE,yBAAyB,CAAC,MAAM;aACzC,CAAC,CAAC;YAEH,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAEjF,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;YAExC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;YAE/B,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAChB,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;YAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;gBACtC,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;YACD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,EAAE;IACF,QAAQ;IACR,EAAE;IAEF,KAAK;QACH,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC;QAEhC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAE9B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,EAAE;IACF,gBAAgB;IAChB,EAAE;IAEM,uBAAuB,CAAC,OAAe,IAAI,CAAC,GAAG,EAAE;QACvD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;IACpC,CAAC;IAEO,sBAAsB,CAAC,qBAA6B;QAC1D,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,+BAA+B,CAAC,CAAC;QAEtD,IAAI,CAAC,uBAAuB,GAAG,WAAW,CACxC,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAC9B,IAAI,CAAC,yBAAyB,CAC/B,CAAC;IACJ,CAAC;IAEO,qBAAqB;QAC3B,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,+BAA+B,CAAC,CAAC;YAEtD,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAC3C,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,wBAAwB,CAAC,CAAC;QAE/C,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACxD,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,uBAAuB,EAAE;gBAC5C,OAAO;aACR,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;YAE/C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,EAAE;IACF,sBAAsB;IACtB,EAAE;IAEM,eAAe,CAAC,QAAkB;QACxC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,wCAAwC,EAAE;gBAC7D,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;YAE/C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;QAE9B,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;QAE5B,sDAAsD;QACtD,wCAAwC;QACxC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAExC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEO,YAAY,CAAC,MAAiD;QACpE,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,oCAAoC,EAAE;gBACzD,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;YAE/C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAChB,MAAM,YAAY,WAAW;YAC3B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAEpF,MAAM,WAAW,GACf,YAAY,YAAY,WAAW;YACjC,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;QAE3D,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;QAE1E,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClE,CAAC;IAEO,aAAa,CAAC,KAAc;QAClC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,mBAAmB,CAAC,CAAC;QAE1C,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,EAAE;IACF,eAAe;IACf,EAAE;IAEM,iBAAiB;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB;YACnD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,qBAAqB;YACzC,CAAC,CAAC,CAAC,CAAC;QAEN,MAAM,UAAU,GAAG,gBAAgB,CAAC,kBAAkB,CACpD,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,SAAS,EACd,kBAAkB,CACnB,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAElC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAE7D,IAAI,CAAC,sBAAsB,GAAG,UAAU,CACtC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,EAC5B,UAAU,CACX,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAC/B,YAAoB,EACpB,SAAiB,EACjB,eAAuB;QAEvB,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAC9B,YAAY,EACZ,IAAI,CAAC,yBAAyB,CAC/B,CAAC;QAEF,wBAAwB;QACxB,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;QAE5E,yDAAyD;QACzD,0CAA0C;QAC1C,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,UAAU,IAAI,eAAe,CAAC;YAE9B,2CAA2C;YAC3C,kCAAkC;YAClC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAC1C,CAAC;IAED,EAAE;IACF,iBAAiB;IACjB,EAAE;IAEe,mBAAmB,GAAG,CAAC,SAAoB,EAAE,EAAE;QAC9D,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAEvD,IAAI,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gBAE9D,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,sCAAsC,EAAE;oBAC1D,SAAS;iBACV,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,IACE,SAAS,CAAC,EAAE,IAAI,IAAI;YACpB,SAAS,CAAC,KAAK,IAAI,IAAI;YACvB,SAAS,CAAC,IAAI,IAAI,IAAI,EACtB,CAAC;YACD,oBAAoB;YACpB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,sBAAsB,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,4CAA4C;QAC5C,IAAI,SAAS,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YACzB,sCAAsC;YACtC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CACjB,8DAA8D,CAC/D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,IAAI,SAAS,EAAE;YAC3D,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,gBAAgB;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,cAAc,CAAC,KAAc;QAC3B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAEO,eAAe;QACrB,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACnC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC;QAE3C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;iBACzB,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,oCAAoC,CAAC,CAAC,CAAC;YACjF,IAAI,CAAC;gBACH,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAElC,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1D,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAC1C,OAAO,EACP,IAAI,CAAC,oBAAoB,CAC1B,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;IACxC,CAAC"}
|
|
1
|
+
{"version":3,"file":"fetch-event-source.js","sourceRoot":"","sources":["../src/fetch-event-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { SecurityBinding, SecurityEndpoints } from './security-binding.js';
|
|
2
|
+
import { TokenConfiguration, TokenProvider, TokenRequest, TokenSet } from './token-provider.js';
|
|
3
|
+
/** Fresh application-authorized S256 PKCE grant, consumed once even if exchange fails or is canceled. */
|
|
4
|
+
export interface AuthorizationGrant {
|
|
5
|
+
readonly code: string;
|
|
6
|
+
readonly redirectUri: string;
|
|
7
|
+
readonly codeVerifier: string;
|
|
8
|
+
}
|
|
9
|
+
/** Application-owned OAuth configuration; secrets and session grants never appear in generated metadata. */
|
|
10
|
+
export interface OAuthProviderOptions {
|
|
11
|
+
readonly identity: string;
|
|
12
|
+
readonly clientId: string;
|
|
13
|
+
readonly clientSecret?: string;
|
|
14
|
+
readonly authentication?: 'none' | 'client_secret_basic' | 'client_secret_post';
|
|
15
|
+
readonly grantIdentity?: string;
|
|
16
|
+
/** The application verifies state, issuer, and redirect URI before supplying an authorization result. */
|
|
17
|
+
readonly authorization?: (request: TokenRequest, signal: AbortSignal) => Promise<AuthorizationGrant>;
|
|
18
|
+
readonly endpoints?: SecurityEndpoints;
|
|
19
|
+
/** Expected discovery issuer; endpoint overrides never change this separate trust value. */
|
|
20
|
+
readonly issuer?: string;
|
|
21
|
+
readonly fetch?: typeof fetch;
|
|
22
|
+
readonly now?: () => number;
|
|
23
|
+
}
|
|
24
|
+
/** Client-credentials, application-authorized PKCE, and refresh exchange without cookies or automatic redirects. */
|
|
25
|
+
export declare class FetchOAuthTokenProvider implements TokenProvider {
|
|
26
|
+
readonly identity: string;
|
|
27
|
+
private readonly options;
|
|
28
|
+
private readonly authentication;
|
|
29
|
+
private readonly consumedCodes;
|
|
30
|
+
private readonly fetch;
|
|
31
|
+
private readonly now;
|
|
32
|
+
constructor(options: OAuthProviderOptions);
|
|
33
|
+
/** Selects the application client and fresh session without changing the generated profile. */
|
|
34
|
+
configure(_binding: SecurityBinding): TokenConfiguration;
|
|
35
|
+
/** Acquires a client token or exchanges one application-authorized PKCE grant. */
|
|
36
|
+
acquire(request: TokenRequest, signal: AbortSignal): Promise<TokenSet>;
|
|
37
|
+
/** Rotates refresh credentials without using an authorization code again. */
|
|
38
|
+
refresh(request: TokenRequest, refreshToken: string, signal: AbortSignal): Promise<TokenSet>;
|
|
39
|
+
private resolveEndpoints;
|
|
40
|
+
private fetchResponse;
|
|
41
|
+
private exchange;
|
|
42
|
+
private parseTokens;
|
|
43
|
+
}
|