@trigger.dev/core 4.5.12 → 4.5.14
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/commonjs/v3/apiClient/index.d.ts +18 -4
- package/dist/commonjs/v3/apiClient/index.js +37 -2
- package/dist/commonjs/v3/apiClient/index.js.map +1 -1
- package/dist/commonjs/v3/apiClient/refreshAccessToken.d.ts +9 -0
- package/dist/commonjs/v3/apiClient/refreshAccessToken.js +22 -0
- package/dist/commonjs/v3/apiClient/refreshAccessToken.js.map +1 -0
- package/dist/commonjs/v3/apiClient/refreshAccessToken.test.d.ts +1 -0
- package/dist/commonjs/v3/apiClient/refreshAccessToken.test.js +55 -0
- package/dist/commonjs/v3/apiClient/refreshAccessToken.test.js.map +1 -0
- package/dist/commonjs/v3/apiClient/runStream.d.ts +40 -0
- package/dist/commonjs/v3/apiClient/runStream.js +59 -8
- package/dist/commonjs/v3/apiClient/runStream.js.map +1 -1
- package/dist/commonjs/v3/apiClient/runStream.test.js +280 -0
- package/dist/commonjs/v3/apiClient/runStream.test.js.map +1 -1
- package/dist/commonjs/v3/apiClientManager/index.js +3 -2
- package/dist/commonjs/v3/apiClientManager/index.js.map +1 -1
- package/dist/commonjs/v3/apiClientManager/types.d.ts +6 -0
- package/dist/commonjs/v3/index.d.ts +1 -0
- package/dist/commonjs/v3/index.js +1 -0
- package/dist/commonjs/v3/index.js.map +1 -1
- package/dist/commonjs/v3/isomorphic/friendlyId.d.ts +64 -1
- package/dist/commonjs/v3/isomorphic/friendlyId.js +179 -12
- package/dist/commonjs/v3/isomorphic/friendlyId.js.map +1 -1
- package/dist/commonjs/v3/isomorphic/friendlyId.test.js +283 -1
- package/dist/commonjs/v3/isomorphic/friendlyId.test.js.map +1 -1
- package/dist/commonjs/v3/isomorphic/index.d.ts +1 -0
- package/dist/commonjs/v3/isomorphic/index.js +1 -0
- package/dist/commonjs/v3/isomorphic/index.js.map +1 -1
- package/dist/commonjs/v3/isomorphic/runOpsResidency.d.ts +21 -7
- package/dist/commonjs/v3/isomorphic/runOpsResidency.js +23 -7
- package/dist/commonjs/v3/isomorphic/runOpsResidency.js.map +1 -1
- package/dist/commonjs/v3/isomorphic/runOpsResidency.test.js +85 -2
- package/dist/commonjs/v3/isomorphic/runOpsResidency.test.js.map +1 -1
- package/dist/commonjs/v3/isomorphic/waitpointMint.d.ts +9 -0
- package/dist/commonjs/v3/isomorphic/waitpointMint.js +22 -0
- package/dist/commonjs/v3/isomorphic/waitpointMint.js.map +1 -0
- package/dist/commonjs/v3/isomorphic/waitpointMint.test.d.ts +1 -0
- package/dist/commonjs/v3/isomorphic/waitpointMint.test.js +97 -0
- package/dist/commonjs/v3/isomorphic/waitpointMint.test.js.map +1 -0
- package/dist/commonjs/v3/realtimeStreams/types.d.ts +10 -0
- package/dist/commonjs/v3/runEngineWorker/workload/schemas.d.ts +54 -54
- package/dist/commonjs/v3/schemas/api.d.ts +45 -3
- package/dist/commonjs/v3/schemas/api.js +18 -5
- package/dist/commonjs/v3/schemas/api.js.map +1 -1
- package/dist/commonjs/v3/session-streams-api.d.ts +1 -0
- package/dist/commonjs/v3/session-streams-api.js +1 -0
- package/dist/commonjs/v3/session-streams-api.js.map +1 -1
- package/dist/commonjs/v3/sessionStreams/index.d.ts +9 -1
- package/dist/commonjs/v3/sessionStreams/index.js +38 -0
- package/dist/commonjs/v3/sessionStreams/index.js.map +1 -1
- package/dist/commonjs/v3/sessionStreams/manager.d.ts +27 -2
- package/dist/commonjs/v3/sessionStreams/manager.js +202 -108
- package/dist/commonjs/v3/sessionStreams/manager.js.map +1 -1
- package/dist/commonjs/v3/sessionStreams/manager.test.js +253 -0
- package/dist/commonjs/v3/sessionStreams/manager.test.js.map +1 -1
- package/dist/commonjs/v3/sessionStreams/noopManager.d.ts +9 -1
- package/dist/commonjs/v3/sessionStreams/noopManager.js +18 -0
- package/dist/commonjs/v3/sessionStreams/noopManager.js.map +1 -1
- package/dist/commonjs/v3/sessionStreams/router.d.ts +241 -0
- package/dist/commonjs/v3/sessionStreams/router.js +402 -0
- package/dist/commonjs/v3/sessionStreams/router.js.map +1 -0
- package/dist/commonjs/v3/sessionStreams/router.test.d.ts +1 -0
- package/dist/commonjs/v3/sessionStreams/router.test.js +463 -0
- package/dist/commonjs/v3/sessionStreams/router.test.js.map +1 -0
- package/dist/commonjs/v3/sessionStreams/types.d.ts +42 -6
- package/dist/commonjs/v3/sessionStreams/wireProtocol.d.ts +11 -0
- package/dist/commonjs/v3/sessionStreams/wireProtocol.js +12 -1
- package/dist/commonjs/v3/sessionStreams/wireProtocol.js.map +1 -1
- package/dist/commonjs/v3/test/mock-task-context.d.ts +4 -1
- package/dist/commonjs/v3/test/mock-task-context.js +2 -2
- package/dist/commonjs/v3/test/mock-task-context.js.map +1 -1
- package/dist/commonjs/v3/test/session-waitpoint-backend.js +17 -3
- package/dist/commonjs/v3/test/session-waitpoint-backend.js.map +1 -1
- package/dist/commonjs/v3/test/test-session-stream-manager.d.ts +13 -2
- package/dist/commonjs/v3/test/test-session-stream-manager.js +173 -67
- package/dist/commonjs/v3/test/test-session-stream-manager.js.map +1 -1
- package/dist/commonjs/v3/utils/globals.js +5 -1
- package/dist/commonjs/v3/utils/globals.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/v3/apiClient/index.d.ts +18 -4
- package/dist/esm/v3/apiClient/index.js +37 -3
- package/dist/esm/v3/apiClient/index.js.map +1 -1
- package/dist/esm/v3/apiClient/refreshAccessToken.d.ts +9 -0
- package/dist/esm/v3/apiClient/refreshAccessToken.js +19 -0
- package/dist/esm/v3/apiClient/refreshAccessToken.js.map +1 -0
- package/dist/esm/v3/apiClient/refreshAccessToken.test.d.ts +1 -0
- package/dist/esm/v3/apiClient/refreshAccessToken.test.js +53 -0
- package/dist/esm/v3/apiClient/refreshAccessToken.test.js.map +1 -0
- package/dist/esm/v3/apiClient/runStream.d.ts +40 -0
- package/dist/esm/v3/apiClient/runStream.js +58 -7
- package/dist/esm/v3/apiClient/runStream.js.map +1 -1
- package/dist/esm/v3/apiClient/runStream.test.js +281 -1
- package/dist/esm/v3/apiClient/runStream.test.js.map +1 -1
- package/dist/esm/v3/apiClientManager/index.js +3 -2
- package/dist/esm/v3/apiClientManager/index.js.map +1 -1
- package/dist/esm/v3/apiClientManager/types.d.ts +6 -0
- package/dist/esm/v3/index.d.ts +1 -0
- package/dist/esm/v3/index.js +1 -0
- package/dist/esm/v3/index.js.map +1 -1
- package/dist/esm/v3/isomorphic/friendlyId.d.ts +64 -1
- package/dist/esm/v3/isomorphic/friendlyId.js +170 -11
- package/dist/esm/v3/isomorphic/friendlyId.js.map +1 -1
- package/dist/esm/v3/isomorphic/friendlyId.test.js +284 -2
- package/dist/esm/v3/isomorphic/friendlyId.test.js.map +1 -1
- package/dist/esm/v3/isomorphic/index.d.ts +1 -0
- package/dist/esm/v3/isomorphic/index.js +1 -0
- package/dist/esm/v3/isomorphic/index.js.map +1 -1
- package/dist/esm/v3/isomorphic/runOpsResidency.d.ts +21 -7
- package/dist/esm/v3/isomorphic/runOpsResidency.js +23 -8
- package/dist/esm/v3/isomorphic/runOpsResidency.js.map +1 -1
- package/dist/esm/v3/isomorphic/runOpsResidency.test.js +87 -4
- package/dist/esm/v3/isomorphic/runOpsResidency.test.js.map +1 -1
- package/dist/esm/v3/isomorphic/waitpointMint.d.ts +9 -0
- package/dist/esm/v3/isomorphic/waitpointMint.js +18 -0
- package/dist/esm/v3/isomorphic/waitpointMint.js.map +1 -0
- package/dist/esm/v3/isomorphic/waitpointMint.test.d.ts +1 -0
- package/dist/esm/v3/isomorphic/waitpointMint.test.js +95 -0
- package/dist/esm/v3/isomorphic/waitpointMint.test.js.map +1 -0
- package/dist/esm/v3/realtimeStreams/types.d.ts +10 -0
- package/dist/esm/v3/schemas/api.d.ts +45 -3
- package/dist/esm/v3/schemas/api.js +15 -2
- package/dist/esm/v3/schemas/api.js.map +1 -1
- package/dist/esm/v3/session-streams-api.d.ts +1 -0
- package/dist/esm/v3/session-streams-api.js +1 -0
- package/dist/esm/v3/session-streams-api.js.map +1 -1
- package/dist/esm/v3/sessionStreams/index.d.ts +9 -1
- package/dist/esm/v3/sessionStreams/index.js +38 -0
- package/dist/esm/v3/sessionStreams/index.js.map +1 -1
- package/dist/esm/v3/sessionStreams/manager.d.ts +27 -2
- package/dist/esm/v3/sessionStreams/manager.js +202 -108
- package/dist/esm/v3/sessionStreams/manager.js.map +1 -1
- package/dist/esm/v3/sessionStreams/manager.test.js +253 -0
- package/dist/esm/v3/sessionStreams/manager.test.js.map +1 -1
- package/dist/esm/v3/sessionStreams/noopManager.d.ts +9 -1
- package/dist/esm/v3/sessionStreams/noopManager.js +18 -0
- package/dist/esm/v3/sessionStreams/noopManager.js.map +1 -1
- package/dist/esm/v3/sessionStreams/router.d.ts +241 -0
- package/dist/esm/v3/sessionStreams/router.js +398 -0
- package/dist/esm/v3/sessionStreams/router.js.map +1 -0
- package/dist/esm/v3/sessionStreams/router.test.d.ts +1 -0
- package/dist/esm/v3/sessionStreams/router.test.js +461 -0
- package/dist/esm/v3/sessionStreams/router.test.js.map +1 -0
- package/dist/esm/v3/sessionStreams/types.d.ts +42 -6
- package/dist/esm/v3/sessionStreams/wireProtocol.d.ts +11 -0
- package/dist/esm/v3/sessionStreams/wireProtocol.js +11 -0
- package/dist/esm/v3/sessionStreams/wireProtocol.js.map +1 -1
- package/dist/esm/v3/test/mock-task-context.d.ts +4 -1
- package/dist/esm/v3/test/mock-task-context.js +2 -2
- package/dist/esm/v3/test/mock-task-context.js.map +1 -1
- package/dist/esm/v3/test/session-waitpoint-backend.js +17 -3
- package/dist/esm/v3/test/session-waitpoint-backend.js.map +1 -1
- package/dist/esm/v3/test/test-session-stream-manager.d.ts +13 -2
- package/dist/esm/v3/test/test-session-stream-manager.js +173 -67
- package/dist/esm/v3/test/test-session-stream-manager.js.map +1 -1
- package/dist/esm/v3/utils/globals.js +5 -1
- package/dist/esm/v3/utils/globals.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +1 -1
|
@@ -5,6 +5,13 @@ import type { SerializedError } from "../schemas/common.js";
|
|
|
5
5
|
import type { AsyncIterableStream } from "../streams/asyncIterableStream.js";
|
|
6
6
|
import type { AnyRunTypes, AnyTask, InferRunTypes } from "../types/tasks.js";
|
|
7
7
|
import type { ApiClient } from "./index.js";
|
|
8
|
+
/**
|
|
9
|
+
* Request header carrying the start position for a fresh realtime-stream
|
|
10
|
+
* subscription. Value `"latest"` asks the server to start at the current tail
|
|
11
|
+
* (only records appended after connect). Only sent when there is no
|
|
12
|
+
* `Last-Event-ID`. Read by the realtime streams route on the server.
|
|
13
|
+
*/
|
|
14
|
+
export declare const STREAM_START_HEADER = "X-Trigger-Stream-Start";
|
|
8
15
|
export type RunShape<TRunTypes extends AnyRunTypes> = TRunTypes extends AnyRunTypes ? {
|
|
9
16
|
id: string;
|
|
10
17
|
taskIdentifier: TRunTypes["taskIdentifier"];
|
|
@@ -44,6 +51,7 @@ export type RealtimeRunSkipColumns = Array<"startedAt" | "delayUntil" | "queuedA
|
|
|
44
51
|
export type RunStreamCallback<TRunTypes extends AnyRunTypes> = (run: RunShape<TRunTypes>) => void | Promise<void>;
|
|
45
52
|
export type RunShapeStreamOptions = {
|
|
46
53
|
headers?: Record<string, string>;
|
|
54
|
+
resolveHeaders?: () => Promise<Record<string, string>>;
|
|
47
55
|
fetchClient?: typeof fetch;
|
|
48
56
|
closeOnComplete?: boolean;
|
|
49
57
|
signal?: AbortSignal;
|
|
@@ -71,11 +79,25 @@ export type CreateStreamSubscriptionOptions = {
|
|
|
71
79
|
onError?: (error: Error) => void;
|
|
72
80
|
timeoutInSeconds?: number;
|
|
73
81
|
lastEventId?: string;
|
|
82
|
+
/**
|
|
83
|
+
* Where a fresh subscription (no `lastEventId`) starts reading from.
|
|
84
|
+
*
|
|
85
|
+
* - `"beginning"` (default): replay the full stream history, then live-tail.
|
|
86
|
+
* - `"latest"`: skip history and start at the current tail — the subscriber
|
|
87
|
+
* sees only records appended after it connects (a last-value / live view).
|
|
88
|
+
*
|
|
89
|
+
* Ignored once `lastEventId` is set: a reconnect always resumes from the last
|
|
90
|
+
* seen record, so `"latest"` only governs the very first connect.
|
|
91
|
+
*/
|
|
92
|
+
from?: "beginning" | "latest";
|
|
74
93
|
};
|
|
75
94
|
export interface StreamSubscriptionFactory {
|
|
76
95
|
createSubscription(runId: string, streamKey: string, options?: CreateStreamSubscriptionOptions): StreamSubscription;
|
|
77
96
|
}
|
|
78
97
|
export type SSEStreamPart<TChunk = unknown> = {
|
|
98
|
+
/** Stable logical record id from the S2 data envelope (`X-Part-Id` on append). */
|
|
99
|
+
recordId?: string;
|
|
100
|
+
/** S2 sequence number in decimal-string form. */
|
|
79
101
|
id: string;
|
|
80
102
|
chunk: TChunk;
|
|
81
103
|
timestamp: number;
|
|
@@ -93,6 +115,7 @@ export declare class SSEStreamSubscription implements StreamSubscription {
|
|
|
93
115
|
private url;
|
|
94
116
|
private options;
|
|
95
117
|
private lastEventId;
|
|
118
|
+
private from;
|
|
96
119
|
private retryCount;
|
|
97
120
|
private maxRetries;
|
|
98
121
|
private retryDelayMs;
|
|
@@ -105,6 +128,12 @@ export declare class SSEStreamSubscription implements StreamSubscription {
|
|
|
105
128
|
private internalAbort;
|
|
106
129
|
private cancelledByConsumer;
|
|
107
130
|
private completeNotified;
|
|
131
|
+
/** Headers for the next attempt. Replaced by `resolveHeaders` after an auth failure. */
|
|
132
|
+
private currentHeaders;
|
|
133
|
+
/** A refresh has already been tried on this connection; a second auth failure is terminal. */
|
|
134
|
+
private authRefreshed;
|
|
135
|
+
/** Headers were just refreshed for the auth error now unwinding; retry once instead of failing. */
|
|
136
|
+
private retryAfterAuthRefresh;
|
|
108
137
|
/**
|
|
109
138
|
* True when the most recent response carried `X-Session-Settled: true` —
|
|
110
139
|
* the server has no more records coming, so a clean end of the body is
|
|
@@ -118,6 +147,7 @@ export declare class SSEStreamSubscription implements StreamSubscription {
|
|
|
118
147
|
onError?: (error: Error) => void;
|
|
119
148
|
timeoutInSeconds?: number;
|
|
120
149
|
lastEventId?: string;
|
|
150
|
+
from?: "beginning" | "latest";
|
|
121
151
|
maxRetries?: number;
|
|
122
152
|
retryDelayMs?: number;
|
|
123
153
|
maxRetryDelayMs?: number;
|
|
@@ -126,6 +156,7 @@ export declare class SSEStreamSubscription implements StreamSubscription {
|
|
|
126
156
|
stallTimeoutMs?: number;
|
|
127
157
|
nonRetryableStatuses?: readonly number[];
|
|
128
158
|
fetchClient?: typeof fetch;
|
|
159
|
+
resolveHeaders?: () => Promise<Record<string, string>>;
|
|
129
160
|
});
|
|
130
161
|
/**
|
|
131
162
|
* Wake an in-flight retry backoff and reconnect immediately.
|
|
@@ -155,6 +186,14 @@ export declare class SSEStreamSubscription implements StreamSubscription {
|
|
|
155
186
|
*/
|
|
156
187
|
subscribe(): Promise<ReadableStream<SSEStreamPart>>;
|
|
157
188
|
private connectStream;
|
|
189
|
+
/**
|
|
190
|
+
* Re-resolve the headers after a 401/403 so the retry carries a fresh token.
|
|
191
|
+
* At most once per live connection: if the refreshed token is rejected too,
|
|
192
|
+
* the auth error stays terminal. A refresher that can't mint leaves the
|
|
193
|
+
* rejected token in place so the auth error stays terminal too. Returns true
|
|
194
|
+
* when a retry should follow.
|
|
195
|
+
*/
|
|
196
|
+
private refreshHeadersForAuthError;
|
|
158
197
|
private retryConnection;
|
|
159
198
|
}
|
|
160
199
|
export declare class SSEStreamSubscriptionFactory implements StreamSubscriptionFactory {
|
|
@@ -163,6 +202,7 @@ export declare class SSEStreamSubscriptionFactory implements StreamSubscriptionF
|
|
|
163
202
|
constructor(baseUrl: string, options: {
|
|
164
203
|
headers?: Record<string, string>;
|
|
165
204
|
signal?: AbortSignal;
|
|
205
|
+
resolveHeaders?: () => Promise<Record<string, string>>;
|
|
166
206
|
});
|
|
167
207
|
createSubscription(runId: string, streamKey: string, options?: CreateStreamSubscriptionOptions): StreamSubscription;
|
|
168
208
|
}
|
|
@@ -6,10 +6,18 @@ import { getEnvVar } from "../utils/getEnv.js";
|
|
|
6
6
|
import { conditionallyImportAndParsePacket, parsePacket } from "../utils/ioSerialization.js";
|
|
7
7
|
import { ApiError, isTriggerRealtimeAuthError } from "./errors.js";
|
|
8
8
|
import { zodShapeStream } from "./stream.js";
|
|
9
|
+
/**
|
|
10
|
+
* Request header carrying the start position for a fresh realtime-stream
|
|
11
|
+
* subscription. Value `"latest"` asks the server to start at the current tail
|
|
12
|
+
* (only records appended after connect). Only sent when there is no
|
|
13
|
+
* `Last-Event-ID`. Read by the realtime streams route on the server.
|
|
14
|
+
*/
|
|
15
|
+
export const STREAM_START_HEADER = "X-Trigger-Stream-Start";
|
|
9
16
|
export function runShapeStream(url, options) {
|
|
10
17
|
const abortController = new AbortController();
|
|
11
18
|
const streamFactory = new SSEStreamSubscriptionFactory(getEnvVar("TRIGGER_STREAM_URL", getEnvVar("TRIGGER_API_URL")) ?? "https://api.trigger.dev", {
|
|
12
19
|
headers: options?.headers,
|
|
20
|
+
resolveHeaders: options?.resolveHeaders,
|
|
13
21
|
signal: abortController.signal,
|
|
14
22
|
});
|
|
15
23
|
// If the user supplied AbortSignal is aborted, we should abort the internal controller
|
|
@@ -39,6 +47,7 @@ export class SSEStreamSubscription {
|
|
|
39
47
|
url;
|
|
40
48
|
options;
|
|
41
49
|
lastEventId;
|
|
50
|
+
from;
|
|
42
51
|
retryCount = 0;
|
|
43
52
|
maxRetries;
|
|
44
53
|
retryDelayMs;
|
|
@@ -51,6 +60,12 @@ export class SSEStreamSubscription {
|
|
|
51
60
|
internalAbort = null;
|
|
52
61
|
cancelledByConsumer = false;
|
|
53
62
|
completeNotified = false;
|
|
63
|
+
/** Headers for the next attempt. Replaced by `resolveHeaders` after an auth failure. */
|
|
64
|
+
currentHeaders;
|
|
65
|
+
/** A refresh has already been tried on this connection; a second auth failure is terminal. */
|
|
66
|
+
authRefreshed = false;
|
|
67
|
+
/** Headers were just refreshed for the auth error now unwinding; retry once instead of failing. */
|
|
68
|
+
retryAfterAuthRefresh = false;
|
|
54
69
|
/**
|
|
55
70
|
* True when the most recent response carried `X-Session-Settled: true` —
|
|
56
71
|
* the server has no more records coming, so a clean end of the body is
|
|
@@ -60,7 +75,9 @@ export class SSEStreamSubscription {
|
|
|
60
75
|
constructor(url, options) {
|
|
61
76
|
this.url = url;
|
|
62
77
|
this.options = options;
|
|
78
|
+
this.currentHeaders = options.headers;
|
|
63
79
|
this.lastEventId = options.lastEventId;
|
|
80
|
+
this.from = options.from ?? "beginning";
|
|
64
81
|
this.maxRetries = options.maxRetries ?? Infinity;
|
|
65
82
|
this.retryDelayMs = options.retryDelayMs ?? 100;
|
|
66
83
|
this.maxRetryDelayMs = options.maxRetryDelayMs ?? 5000;
|
|
@@ -177,10 +194,12 @@ export class SSEStreamSubscription {
|
|
|
177
194
|
try {
|
|
178
195
|
const headers = {
|
|
179
196
|
Accept: "text/event-stream",
|
|
180
|
-
...this.
|
|
197
|
+
...this.currentHeaders,
|
|
181
198
|
};
|
|
182
199
|
if (this.lastEventId)
|
|
183
200
|
headers["Last-Event-ID"] = this.lastEventId;
|
|
201
|
+
else if (this.from === "latest")
|
|
202
|
+
headers[STREAM_START_HEADER] = "latest";
|
|
184
203
|
if (this.options.timeoutInSeconds) {
|
|
185
204
|
headers["Timeout-Seconds"] = this.options.timeoutInSeconds.toString();
|
|
186
205
|
}
|
|
@@ -192,11 +211,14 @@ export class SSEStreamSubscription {
|
|
|
192
211
|
clearTimeout(fetchTimer);
|
|
193
212
|
if (!response.ok) {
|
|
194
213
|
const error = ApiError.generate(response.status, {}, "Could not subscribe to stream", Object.fromEntries(response.headers));
|
|
195
|
-
this.options.onError?.(error);
|
|
196
214
|
if (this.nonRetryableStatuses.has(response.status)) {
|
|
215
|
+
this.options.onError?.(error);
|
|
197
216
|
controller.error(error);
|
|
198
217
|
return;
|
|
199
218
|
}
|
|
219
|
+
if (!(await this.refreshHeadersForAuthError(response.status))) {
|
|
220
|
+
this.options.onError?.(error);
|
|
221
|
+
}
|
|
200
222
|
throw error;
|
|
201
223
|
}
|
|
202
224
|
if (!response.body) {
|
|
@@ -274,6 +296,7 @@ export class SSEStreamSubscription {
|
|
|
274
296
|
chunkController.enqueue({
|
|
275
297
|
type: "part",
|
|
276
298
|
part: {
|
|
299
|
+
recordId: parsedBody?.id,
|
|
277
300
|
id: record.seq_num.toString(),
|
|
278
301
|
chunk: parsedBody?.data,
|
|
279
302
|
timestamp: record.timestamp,
|
|
@@ -303,6 +326,7 @@ export class SSEStreamSubscription {
|
|
|
303
326
|
return;
|
|
304
327
|
}
|
|
305
328
|
armStall(); // any chunk (including server keepalives) resets the silence timer
|
|
329
|
+
this.authRefreshed = false;
|
|
306
330
|
controller.enqueue(value);
|
|
307
331
|
}
|
|
308
332
|
}
|
|
@@ -319,11 +343,16 @@ export class SSEStreamSubscription {
|
|
|
319
343
|
return;
|
|
320
344
|
}
|
|
321
345
|
if (isTriggerRealtimeAuthError(error)) {
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
346
|
+
if (this.retryAfterAuthRefresh) {
|
|
347
|
+
this.retryAfterAuthRefresh = false;
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
// `onError` was already invoked in the `!response.ok` branch above
|
|
351
|
+
// (where the auth ApiError was originally constructed and thrown).
|
|
352
|
+
// Auth errors are non-retryable: terminate the stream cleanly.
|
|
353
|
+
controller.error(error);
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
327
356
|
}
|
|
328
357
|
cleanupAttempt();
|
|
329
358
|
await this.retryConnection(controller, error);
|
|
@@ -332,6 +361,28 @@ export class SSEStreamSubscription {
|
|
|
332
361
|
cleanupAttempt();
|
|
333
362
|
}
|
|
334
363
|
}
|
|
364
|
+
/**
|
|
365
|
+
* Re-resolve the headers after a 401/403 so the retry carries a fresh token.
|
|
366
|
+
* At most once per live connection: if the refreshed token is rejected too,
|
|
367
|
+
* the auth error stays terminal. A refresher that can't mint leaves the
|
|
368
|
+
* rejected token in place so the auth error stays terminal too. Returns true
|
|
369
|
+
* when a retry should follow.
|
|
370
|
+
*/
|
|
371
|
+
async refreshHeadersForAuthError(status) {
|
|
372
|
+
if (status !== 401 && status !== 403)
|
|
373
|
+
return false;
|
|
374
|
+
if (!this.options.resolveHeaders || this.authRefreshed)
|
|
375
|
+
return false;
|
|
376
|
+
this.authRefreshed = true;
|
|
377
|
+
try {
|
|
378
|
+
this.currentHeaders = await this.options.resolveHeaders();
|
|
379
|
+
}
|
|
380
|
+
catch {
|
|
381
|
+
return false;
|
|
382
|
+
}
|
|
383
|
+
this.retryAfterAuthRefresh = true;
|
|
384
|
+
return true;
|
|
385
|
+
}
|
|
335
386
|
async retryConnection(controller, error) {
|
|
336
387
|
if (this.options.signal?.aborted || this.cancelledByConsumer) {
|
|
337
388
|
this.notifyComplete();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runStream.js","sourceRoot":"","sources":["../../../../src/v3/apiClient/runStream.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runStream.js","sourceRoot":"","sources":["../../../../src/v3/apiClient/runStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
-
import { SSEStreamSubscription } from "./runStream.js";
|
|
2
|
+
import { SSEStreamSubscription, STREAM_START_HEADER } from "./runStream.js";
|
|
3
3
|
vi.setConfig({ testTimeout: 10_000 });
|
|
4
4
|
describe("SSEStreamSubscription retry behavior", () => {
|
|
5
5
|
const originalFetch = globalThis.fetch;
|
|
@@ -37,6 +37,31 @@ describe("SSEStreamSubscription retry behavior", () => {
|
|
|
37
37
|
headers: { "Content-Type": "text/event-stream", "X-Stream-Version": "v1" },
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
+
/** An accepted connection that dies before delivering a single record. */
|
|
41
|
+
function makeDroppedResponse() {
|
|
42
|
+
const body = new ReadableStream({
|
|
43
|
+
start(controller) {
|
|
44
|
+
controller.error(new Error("connection dropped"));
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
return new Response(body, {
|
|
48
|
+
status: 200,
|
|
49
|
+
headers: { "Content-Type": "text/event-stream", "X-Stream-Version": "v1" },
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/** One delivered record, then the connection dies. */
|
|
53
|
+
function makeChunkThenDropResponse() {
|
|
54
|
+
const body = new ReadableStream({
|
|
55
|
+
start(controller) {
|
|
56
|
+
controller.enqueue(new TextEncoder().encode(`id: 1\ndata: {"hello":1}\n\n`));
|
|
57
|
+
setTimeout(() => controller.error(new Error("connection dropped")), 20);
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
return new Response(body, {
|
|
61
|
+
status: 200,
|
|
62
|
+
headers: { "Content-Type": "text/event-stream", "X-Stream-Version": "v1" },
|
|
63
|
+
});
|
|
64
|
+
}
|
|
40
65
|
// Drain a ReadableStream<SSEStreamPart> until it closes or errors.
|
|
41
66
|
// Returns received chunks plus terminal state.
|
|
42
67
|
async function drain(stream) {
|
|
@@ -368,6 +393,177 @@ describe("SSEStreamSubscription retry behavior", () => {
|
|
|
368
393
|
expect(attempts).toBe(1);
|
|
369
394
|
expect(result.error).toBeDefined();
|
|
370
395
|
});
|
|
396
|
+
it("fails the stream on a 401 when no resolveHeaders is supplied", async () => {
|
|
397
|
+
let attempts = 0;
|
|
398
|
+
globalThis.fetch = vi.fn().mockImplementation(async () => {
|
|
399
|
+
attempts++;
|
|
400
|
+
return new Response("unauthorized", { status: 401 });
|
|
401
|
+
});
|
|
402
|
+
const sub = new SSEStreamSubscription("http://example.test/sse", {
|
|
403
|
+
headers: { Authorization: "Bearer expired" },
|
|
404
|
+
retryDelayMs: 1,
|
|
405
|
+
maxRetryDelayMs: 5,
|
|
406
|
+
});
|
|
407
|
+
const result = await sub.subscribe().then(drain);
|
|
408
|
+
expect(attempts).toBe(1);
|
|
409
|
+
expect(result.error).toBeDefined();
|
|
410
|
+
});
|
|
411
|
+
it("retries a 401 once with the headers from resolveHeaders", async () => {
|
|
412
|
+
const seenTokens = [];
|
|
413
|
+
globalThis.fetch = vi.fn().mockImplementation(async (_url, init) => {
|
|
414
|
+
const token = new Headers(init.headers).get("Authorization");
|
|
415
|
+
seenTokens.push(token);
|
|
416
|
+
if (token !== "Bearer fresh")
|
|
417
|
+
return new Response("unauthorized", { status: 401 });
|
|
418
|
+
return makeSSEResponse();
|
|
419
|
+
});
|
|
420
|
+
let refreshes = 0;
|
|
421
|
+
const sub = new SSEStreamSubscription("http://example.test/sse", {
|
|
422
|
+
headers: { Authorization: "Bearer expired" },
|
|
423
|
+
retryDelayMs: 1,
|
|
424
|
+
maxRetryDelayMs: 5,
|
|
425
|
+
resolveHeaders: async () => {
|
|
426
|
+
refreshes++;
|
|
427
|
+
return { Authorization: "Bearer fresh" };
|
|
428
|
+
},
|
|
429
|
+
});
|
|
430
|
+
const result = await sub.subscribe().then(drain);
|
|
431
|
+
expect(seenTokens).toEqual(["Bearer expired", "Bearer fresh"]);
|
|
432
|
+
expect(refreshes).toBe(1);
|
|
433
|
+
expect(result.error).toBeUndefined();
|
|
434
|
+
expect(result.chunks).toHaveLength(1);
|
|
435
|
+
});
|
|
436
|
+
it("fails the stream when the refreshed headers are rejected too", async () => {
|
|
437
|
+
let attempts = 0;
|
|
438
|
+
globalThis.fetch = vi.fn().mockImplementation(async () => {
|
|
439
|
+
attempts++;
|
|
440
|
+
return new Response("unauthorized", { status: 401 });
|
|
441
|
+
});
|
|
442
|
+
let refreshes = 0;
|
|
443
|
+
const sub = new SSEStreamSubscription("http://example.test/sse", {
|
|
444
|
+
headers: { Authorization: "Bearer expired" },
|
|
445
|
+
retryDelayMs: 1,
|
|
446
|
+
maxRetryDelayMs: 5,
|
|
447
|
+
resolveHeaders: async () => {
|
|
448
|
+
refreshes++;
|
|
449
|
+
return { Authorization: "Bearer also-expired" };
|
|
450
|
+
},
|
|
451
|
+
});
|
|
452
|
+
const result = await sub.subscribe().then(drain);
|
|
453
|
+
expect(attempts).toBe(2);
|
|
454
|
+
expect(refreshes).toBe(1);
|
|
455
|
+
expect(result.error).toBeDefined();
|
|
456
|
+
});
|
|
457
|
+
it("retries a 403 once with the headers from resolveHeaders", async () => {
|
|
458
|
+
const seenTokens = [];
|
|
459
|
+
globalThis.fetch = vi.fn().mockImplementation(async (_url, init) => {
|
|
460
|
+
const token = new Headers(init.headers).get("Authorization");
|
|
461
|
+
seenTokens.push(token);
|
|
462
|
+
if (token !== "Bearer fresh")
|
|
463
|
+
return new Response("forbidden", { status: 403 });
|
|
464
|
+
return makeSSEResponse();
|
|
465
|
+
});
|
|
466
|
+
const sub = new SSEStreamSubscription("http://example.test/sse", {
|
|
467
|
+
headers: { Authorization: "Bearer expired" },
|
|
468
|
+
retryDelayMs: 1,
|
|
469
|
+
maxRetryDelayMs: 5,
|
|
470
|
+
resolveHeaders: async () => ({ Authorization: "Bearer fresh" }),
|
|
471
|
+
});
|
|
472
|
+
const result = await sub.subscribe().then(drain);
|
|
473
|
+
expect(seenTokens).toEqual(["Bearer expired", "Bearer fresh"]);
|
|
474
|
+
expect(result.error).toBeUndefined();
|
|
475
|
+
expect(result.chunks).toHaveLength(1);
|
|
476
|
+
});
|
|
477
|
+
it("does not report a 401 that the refresh recovered from", async () => {
|
|
478
|
+
let attempts = 0;
|
|
479
|
+
globalThis.fetch = vi.fn().mockImplementation(async () => {
|
|
480
|
+
attempts++;
|
|
481
|
+
if (attempts === 1)
|
|
482
|
+
return new Response("unauthorized", { status: 401 });
|
|
483
|
+
return makeSSEResponse();
|
|
484
|
+
});
|
|
485
|
+
const errors = [];
|
|
486
|
+
const sub = new SSEStreamSubscription("http://example.test/sse", {
|
|
487
|
+
headers: { Authorization: "Bearer expired" },
|
|
488
|
+
retryDelayMs: 1,
|
|
489
|
+
maxRetryDelayMs: 5,
|
|
490
|
+
onError: (e) => errors.push(e),
|
|
491
|
+
resolveHeaders: async () => ({ Authorization: "Bearer fresh" }),
|
|
492
|
+
});
|
|
493
|
+
const result = await sub.subscribe().then(drain);
|
|
494
|
+
expect(errors).toHaveLength(0);
|
|
495
|
+
expect(result.error).toBeUndefined();
|
|
496
|
+
});
|
|
497
|
+
it("terminates on a 401 when the refresher itself throws", async () => {
|
|
498
|
+
let attempts = 0;
|
|
499
|
+
globalThis.fetch = vi.fn().mockImplementation(async () => {
|
|
500
|
+
attempts++;
|
|
501
|
+
return new Response("unauthorized", { status: 401 });
|
|
502
|
+
});
|
|
503
|
+
const errors = [];
|
|
504
|
+
const sub = new SSEStreamSubscription("http://example.test/sse", {
|
|
505
|
+
headers: { Authorization: "Bearer expired" },
|
|
506
|
+
retryDelayMs: 1,
|
|
507
|
+
maxRetryDelayMs: 5,
|
|
508
|
+
onError: (e) => errors.push(e),
|
|
509
|
+
resolveHeaders: async () => {
|
|
510
|
+
throw new Error("mint failed");
|
|
511
|
+
},
|
|
512
|
+
});
|
|
513
|
+
const result = await sub.subscribe().then(drain);
|
|
514
|
+
expect(attempts).toBe(1);
|
|
515
|
+
expect(errors).toHaveLength(1);
|
|
516
|
+
expect(result.error).toBeDefined();
|
|
517
|
+
});
|
|
518
|
+
it("does not re-mint for a connection that is accepted but delivers nothing", async () => {
|
|
519
|
+
let attempts = 0;
|
|
520
|
+
globalThis.fetch = vi.fn().mockImplementation(async () => {
|
|
521
|
+
attempts++;
|
|
522
|
+
if (attempts === 2)
|
|
523
|
+
return makeDroppedResponse();
|
|
524
|
+
return new Response("unauthorized", { status: 401 });
|
|
525
|
+
});
|
|
526
|
+
let refreshes = 0;
|
|
527
|
+
const sub = new SSEStreamSubscription("http://example.test/sse", {
|
|
528
|
+
headers: { Authorization: "Bearer expired" },
|
|
529
|
+
retryDelayMs: 1,
|
|
530
|
+
maxRetryDelayMs: 5,
|
|
531
|
+
resolveHeaders: async () => {
|
|
532
|
+
refreshes++;
|
|
533
|
+
return { Authorization: `Bearer fresh-${refreshes}` };
|
|
534
|
+
},
|
|
535
|
+
});
|
|
536
|
+
const result = await sub.subscribe().then(drain);
|
|
537
|
+
expect(refreshes).toBe(1);
|
|
538
|
+
expect(attempts).toBe(3);
|
|
539
|
+
expect(result.error).toBeDefined();
|
|
540
|
+
});
|
|
541
|
+
it("allows another refresh once a connection has delivered a record", async () => {
|
|
542
|
+
let attempts = 0;
|
|
543
|
+
globalThis.fetch = vi.fn().mockImplementation(async () => {
|
|
544
|
+
attempts++;
|
|
545
|
+
if (attempts === 2)
|
|
546
|
+
return makeChunkThenDropResponse();
|
|
547
|
+
if (attempts === 4)
|
|
548
|
+
return makeSSEResponse();
|
|
549
|
+
return new Response("unauthorized", { status: 401 });
|
|
550
|
+
});
|
|
551
|
+
let refreshes = 0;
|
|
552
|
+
const sub = new SSEStreamSubscription("http://example.test/sse", {
|
|
553
|
+
headers: { Authorization: "Bearer expired" },
|
|
554
|
+
retryDelayMs: 1,
|
|
555
|
+
maxRetryDelayMs: 5,
|
|
556
|
+
resolveHeaders: async () => {
|
|
557
|
+
refreshes++;
|
|
558
|
+
return { Authorization: `Bearer fresh-${refreshes}` };
|
|
559
|
+
},
|
|
560
|
+
});
|
|
561
|
+
const result = await sub.subscribe().then(drain);
|
|
562
|
+
expect(refreshes).toBe(2);
|
|
563
|
+
expect(attempts).toBe(4);
|
|
564
|
+
expect(result.error).toBeUndefined();
|
|
565
|
+
expect(result.chunks).toHaveLength(2);
|
|
566
|
+
});
|
|
371
567
|
it("retries on 503 (caller-tunable nonRetryableStatuses)", async () => {
|
|
372
568
|
let attempts = 0;
|
|
373
569
|
globalThis.fetch = vi.fn().mockImplementation(async () => {
|
|
@@ -460,6 +656,7 @@ describe("SSEStreamSubscription v2 batch parsing — record kinds", () => {
|
|
|
460
656
|
const sub = new SSEStreamSubscription("http://x", { maxRetries: 0 });
|
|
461
657
|
const parts = await sub.subscribe().then(drain);
|
|
462
658
|
expect(parts).toHaveLength(1);
|
|
659
|
+
expect(parts[0].recordId).toBe("p1");
|
|
463
660
|
expect(parts[0].id).toBe("5");
|
|
464
661
|
expect(parts[0].chunk).toEqual({ type: "text-delta", delta: "hi" });
|
|
465
662
|
expect(parts[0].headers).toEqual([]);
|
|
@@ -540,4 +737,87 @@ describe("SSEStreamSubscription v2 batch parsing — record kinds", () => {
|
|
|
540
737
|
expect(parts[1].chunk.delta).toBe("x");
|
|
541
738
|
});
|
|
542
739
|
});
|
|
740
|
+
describe("SSEStreamSubscription start position (from)", () => {
|
|
741
|
+
const originalFetch = globalThis.fetch;
|
|
742
|
+
afterEach(() => {
|
|
743
|
+
globalThis.fetch = originalFetch;
|
|
744
|
+
vi.restoreAllMocks();
|
|
745
|
+
});
|
|
746
|
+
async function drainReader(reader) {
|
|
747
|
+
let next = await reader.read();
|
|
748
|
+
while (!next.done) {
|
|
749
|
+
next = await reader.read();
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
function makeClosedSSEResponse(id) {
|
|
753
|
+
const body = new ReadableStream({
|
|
754
|
+
start(controller) {
|
|
755
|
+
controller.enqueue(new TextEncoder().encode(`id: ${id}\ndata: {"hello":1}\n\n`));
|
|
756
|
+
controller.close();
|
|
757
|
+
},
|
|
758
|
+
});
|
|
759
|
+
return new Response(body, {
|
|
760
|
+
status: 200,
|
|
761
|
+
headers: { "Content-Type": "text/event-stream", "X-Stream-Version": "v1" },
|
|
762
|
+
});
|
|
763
|
+
}
|
|
764
|
+
it('from: "latest" sends the start header and no Last-Event-ID on first connect', async () => {
|
|
765
|
+
const seenHeaders = [];
|
|
766
|
+
globalThis.fetch = vi.fn().mockImplementation(async (_url, init) => {
|
|
767
|
+
seenHeaders.push(init?.headers ?? {});
|
|
768
|
+
return makeClosedSSEResponse("42");
|
|
769
|
+
});
|
|
770
|
+
const sub = new SSEStreamSubscription("http://example.test/sse", { from: "latest" });
|
|
771
|
+
await drainReader((await sub.subscribe()).getReader());
|
|
772
|
+
expect(seenHeaders[0][STREAM_START_HEADER]).toBe("latest");
|
|
773
|
+
expect(seenHeaders[0]["Last-Event-ID"]).toBeUndefined();
|
|
774
|
+
});
|
|
775
|
+
it('from: "latest" drops the start header and resumes with Last-Event-ID after a record', async () => {
|
|
776
|
+
let attempts = 0;
|
|
777
|
+
const seenHeaders = [];
|
|
778
|
+
globalThis.fetch = vi.fn().mockImplementation(async (_url, init) => {
|
|
779
|
+
attempts++;
|
|
780
|
+
seenHeaders.push(init?.headers ?? {});
|
|
781
|
+
if (attempts === 1) {
|
|
782
|
+
const body = new ReadableStream({
|
|
783
|
+
start(controller) {
|
|
784
|
+
controller.enqueue(new TextEncoder().encode(`id: 7\ndata: {"first":true}\n\n`));
|
|
785
|
+
init?.signal?.addEventListener("abort", () => controller.error(new Error("aborted")));
|
|
786
|
+
},
|
|
787
|
+
});
|
|
788
|
+
return new Response(body, {
|
|
789
|
+
status: 200,
|
|
790
|
+
headers: { "Content-Type": "text/event-stream", "X-Stream-Version": "v1" },
|
|
791
|
+
});
|
|
792
|
+
}
|
|
793
|
+
return makeClosedSSEResponse("8");
|
|
794
|
+
});
|
|
795
|
+
const sub = new SSEStreamSubscription("http://example.test/sse", {
|
|
796
|
+
from: "latest",
|
|
797
|
+
retryDelayMs: 1,
|
|
798
|
+
maxRetryDelayMs: 5,
|
|
799
|
+
fetchTimeoutMs: 60_000,
|
|
800
|
+
});
|
|
801
|
+
const reader = (await sub.subscribe()).getReader();
|
|
802
|
+
const first = await reader.read();
|
|
803
|
+
expect(first.done).toBe(false);
|
|
804
|
+
sub.forceReconnect();
|
|
805
|
+
await drainReader(reader);
|
|
806
|
+
expect(attempts).toBe(2);
|
|
807
|
+
expect(seenHeaders[0][STREAM_START_HEADER]).toBe("latest");
|
|
808
|
+
expect(seenHeaders[0]["Last-Event-ID"]).toBeUndefined();
|
|
809
|
+
expect(seenHeaders[1][STREAM_START_HEADER]).toBeUndefined();
|
|
810
|
+
expect(seenHeaders[1]["Last-Event-ID"]).toBe("7");
|
|
811
|
+
});
|
|
812
|
+
it("default (no from) never sends the start header", async () => {
|
|
813
|
+
const seenHeaders = [];
|
|
814
|
+
globalThis.fetch = vi.fn().mockImplementation(async (_url, init) => {
|
|
815
|
+
seenHeaders.push(init?.headers ?? {});
|
|
816
|
+
return makeClosedSSEResponse("1");
|
|
817
|
+
});
|
|
818
|
+
const sub = new SSEStreamSubscription("http://example.test/sse", {});
|
|
819
|
+
await drainReader((await sub.subscribe()).getReader());
|
|
820
|
+
expect(seenHeaders[0][STREAM_START_HEADER]).toBeUndefined();
|
|
821
|
+
});
|
|
822
|
+
});
|
|
543
823
|
//# sourceMappingURL=runStream.test.js.map
|