@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
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RunSubscription = exports.SSEStreamSubscriptionFactory = exports.SSEStreamSubscription = void 0;
|
|
3
|
+
exports.RunSubscription = exports.SSEStreamSubscriptionFactory = exports.SSEStreamSubscription = exports.STREAM_START_HEADER = void 0;
|
|
4
4
|
exports.runShapeStream = runShapeStream;
|
|
5
5
|
const stream_1 = require("eventsource-parser/stream");
|
|
6
6
|
const errors_js_1 = require("../errors.js");
|
|
@@ -10,10 +10,18 @@ const getEnv_js_1 = require("../utils/getEnv.js");
|
|
|
10
10
|
const ioSerialization_js_1 = require("../utils/ioSerialization.js");
|
|
11
11
|
const errors_js_2 = require("./errors.js");
|
|
12
12
|
const stream_js_1 = require("./stream.js");
|
|
13
|
+
/**
|
|
14
|
+
* Request header carrying the start position for a fresh realtime-stream
|
|
15
|
+
* subscription. Value `"latest"` asks the server to start at the current tail
|
|
16
|
+
* (only records appended after connect). Only sent when there is no
|
|
17
|
+
* `Last-Event-ID`. Read by the realtime streams route on the server.
|
|
18
|
+
*/
|
|
19
|
+
exports.STREAM_START_HEADER = "X-Trigger-Stream-Start";
|
|
13
20
|
function runShapeStream(url, options) {
|
|
14
21
|
const abortController = new AbortController();
|
|
15
22
|
const streamFactory = new SSEStreamSubscriptionFactory((0, getEnv_js_1.getEnvVar)("TRIGGER_STREAM_URL", (0, getEnv_js_1.getEnvVar)("TRIGGER_API_URL")) ?? "https://api.trigger.dev", {
|
|
16
23
|
headers: options?.headers,
|
|
24
|
+
resolveHeaders: options?.resolveHeaders,
|
|
17
25
|
signal: abortController.signal,
|
|
18
26
|
});
|
|
19
27
|
// If the user supplied AbortSignal is aborted, we should abort the internal controller
|
|
@@ -43,6 +51,7 @@ class SSEStreamSubscription {
|
|
|
43
51
|
url;
|
|
44
52
|
options;
|
|
45
53
|
lastEventId;
|
|
54
|
+
from;
|
|
46
55
|
retryCount = 0;
|
|
47
56
|
maxRetries;
|
|
48
57
|
retryDelayMs;
|
|
@@ -55,6 +64,12 @@ class SSEStreamSubscription {
|
|
|
55
64
|
internalAbort = null;
|
|
56
65
|
cancelledByConsumer = false;
|
|
57
66
|
completeNotified = false;
|
|
67
|
+
/** Headers for the next attempt. Replaced by `resolveHeaders` after an auth failure. */
|
|
68
|
+
currentHeaders;
|
|
69
|
+
/** A refresh has already been tried on this connection; a second auth failure is terminal. */
|
|
70
|
+
authRefreshed = false;
|
|
71
|
+
/** Headers were just refreshed for the auth error now unwinding; retry once instead of failing. */
|
|
72
|
+
retryAfterAuthRefresh = false;
|
|
58
73
|
/**
|
|
59
74
|
* True when the most recent response carried `X-Session-Settled: true` —
|
|
60
75
|
* the server has no more records coming, so a clean end of the body is
|
|
@@ -64,7 +79,9 @@ class SSEStreamSubscription {
|
|
|
64
79
|
constructor(url, options) {
|
|
65
80
|
this.url = url;
|
|
66
81
|
this.options = options;
|
|
82
|
+
this.currentHeaders = options.headers;
|
|
67
83
|
this.lastEventId = options.lastEventId;
|
|
84
|
+
this.from = options.from ?? "beginning";
|
|
68
85
|
this.maxRetries = options.maxRetries ?? Infinity;
|
|
69
86
|
this.retryDelayMs = options.retryDelayMs ?? 100;
|
|
70
87
|
this.maxRetryDelayMs = options.maxRetryDelayMs ?? 5000;
|
|
@@ -181,10 +198,12 @@ class SSEStreamSubscription {
|
|
|
181
198
|
try {
|
|
182
199
|
const headers = {
|
|
183
200
|
Accept: "text/event-stream",
|
|
184
|
-
...this.
|
|
201
|
+
...this.currentHeaders,
|
|
185
202
|
};
|
|
186
203
|
if (this.lastEventId)
|
|
187
204
|
headers["Last-Event-ID"] = this.lastEventId;
|
|
205
|
+
else if (this.from === "latest")
|
|
206
|
+
headers[exports.STREAM_START_HEADER] = "latest";
|
|
188
207
|
if (this.options.timeoutInSeconds) {
|
|
189
208
|
headers["Timeout-Seconds"] = this.options.timeoutInSeconds.toString();
|
|
190
209
|
}
|
|
@@ -196,11 +215,14 @@ class SSEStreamSubscription {
|
|
|
196
215
|
clearTimeout(fetchTimer);
|
|
197
216
|
if (!response.ok) {
|
|
198
217
|
const error = errors_js_2.ApiError.generate(response.status, {}, "Could not subscribe to stream", Object.fromEntries(response.headers));
|
|
199
|
-
this.options.onError?.(error);
|
|
200
218
|
if (this.nonRetryableStatuses.has(response.status)) {
|
|
219
|
+
this.options.onError?.(error);
|
|
201
220
|
controller.error(error);
|
|
202
221
|
return;
|
|
203
222
|
}
|
|
223
|
+
if (!(await this.refreshHeadersForAuthError(response.status))) {
|
|
224
|
+
this.options.onError?.(error);
|
|
225
|
+
}
|
|
204
226
|
throw error;
|
|
205
227
|
}
|
|
206
228
|
if (!response.body) {
|
|
@@ -278,6 +300,7 @@ class SSEStreamSubscription {
|
|
|
278
300
|
chunkController.enqueue({
|
|
279
301
|
type: "part",
|
|
280
302
|
part: {
|
|
303
|
+
recordId: parsedBody?.id,
|
|
281
304
|
id: record.seq_num.toString(),
|
|
282
305
|
chunk: parsedBody?.data,
|
|
283
306
|
timestamp: record.timestamp,
|
|
@@ -307,6 +330,7 @@ class SSEStreamSubscription {
|
|
|
307
330
|
return;
|
|
308
331
|
}
|
|
309
332
|
armStall(); // any chunk (including server keepalives) resets the silence timer
|
|
333
|
+
this.authRefreshed = false;
|
|
310
334
|
controller.enqueue(value);
|
|
311
335
|
}
|
|
312
336
|
}
|
|
@@ -323,11 +347,16 @@ class SSEStreamSubscription {
|
|
|
323
347
|
return;
|
|
324
348
|
}
|
|
325
349
|
if ((0, errors_js_2.isTriggerRealtimeAuthError)(error)) {
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
350
|
+
if (this.retryAfterAuthRefresh) {
|
|
351
|
+
this.retryAfterAuthRefresh = false;
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
// `onError` was already invoked in the `!response.ok` branch above
|
|
355
|
+
// (where the auth ApiError was originally constructed and thrown).
|
|
356
|
+
// Auth errors are non-retryable: terminate the stream cleanly.
|
|
357
|
+
controller.error(error);
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
331
360
|
}
|
|
332
361
|
cleanupAttempt();
|
|
333
362
|
await this.retryConnection(controller, error);
|
|
@@ -336,6 +365,28 @@ class SSEStreamSubscription {
|
|
|
336
365
|
cleanupAttempt();
|
|
337
366
|
}
|
|
338
367
|
}
|
|
368
|
+
/**
|
|
369
|
+
* Re-resolve the headers after a 401/403 so the retry carries a fresh token.
|
|
370
|
+
* At most once per live connection: if the refreshed token is rejected too,
|
|
371
|
+
* the auth error stays terminal. A refresher that can't mint leaves the
|
|
372
|
+
* rejected token in place so the auth error stays terminal too. Returns true
|
|
373
|
+
* when a retry should follow.
|
|
374
|
+
*/
|
|
375
|
+
async refreshHeadersForAuthError(status) {
|
|
376
|
+
if (status !== 401 && status !== 403)
|
|
377
|
+
return false;
|
|
378
|
+
if (!this.options.resolveHeaders || this.authRefreshed)
|
|
379
|
+
return false;
|
|
380
|
+
this.authRefreshed = true;
|
|
381
|
+
try {
|
|
382
|
+
this.currentHeaders = await this.options.resolveHeaders();
|
|
383
|
+
}
|
|
384
|
+
catch {
|
|
385
|
+
return false;
|
|
386
|
+
}
|
|
387
|
+
this.retryAfterAuthRefresh = true;
|
|
388
|
+
return true;
|
|
389
|
+
}
|
|
339
390
|
async retryConnection(controller, error) {
|
|
340
391
|
if (this.options.signal?.aborted || this.cancelledByConsumer) {
|
|
341
392
|
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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"}
|
|
@@ -39,6 +39,31 @@ vitest_1.vi.setConfig({ testTimeout: 10_000 });
|
|
|
39
39
|
headers: { "Content-Type": "text/event-stream", "X-Stream-Version": "v1" },
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
|
+
/** An accepted connection that dies before delivering a single record. */
|
|
43
|
+
function makeDroppedResponse() {
|
|
44
|
+
const body = new ReadableStream({
|
|
45
|
+
start(controller) {
|
|
46
|
+
controller.error(new Error("connection dropped"));
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
return new Response(body, {
|
|
50
|
+
status: 200,
|
|
51
|
+
headers: { "Content-Type": "text/event-stream", "X-Stream-Version": "v1" },
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/** One delivered record, then the connection dies. */
|
|
55
|
+
function makeChunkThenDropResponse() {
|
|
56
|
+
const body = new ReadableStream({
|
|
57
|
+
start(controller) {
|
|
58
|
+
controller.enqueue(new TextEncoder().encode(`id: 1\ndata: {"hello":1}\n\n`));
|
|
59
|
+
setTimeout(() => controller.error(new Error("connection dropped")), 20);
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
return new Response(body, {
|
|
63
|
+
status: 200,
|
|
64
|
+
headers: { "Content-Type": "text/event-stream", "X-Stream-Version": "v1" },
|
|
65
|
+
});
|
|
66
|
+
}
|
|
42
67
|
// Drain a ReadableStream<SSEStreamPart> until it closes or errors.
|
|
43
68
|
// Returns received chunks plus terminal state.
|
|
44
69
|
async function drain(stream) {
|
|
@@ -370,6 +395,177 @@ vitest_1.vi.setConfig({ testTimeout: 10_000 });
|
|
|
370
395
|
(0, vitest_1.expect)(attempts).toBe(1);
|
|
371
396
|
(0, vitest_1.expect)(result.error).toBeDefined();
|
|
372
397
|
});
|
|
398
|
+
(0, vitest_1.it)("fails the stream on a 401 when no resolveHeaders is supplied", async () => {
|
|
399
|
+
let attempts = 0;
|
|
400
|
+
globalThis.fetch = vitest_1.vi.fn().mockImplementation(async () => {
|
|
401
|
+
attempts++;
|
|
402
|
+
return new Response("unauthorized", { status: 401 });
|
|
403
|
+
});
|
|
404
|
+
const sub = new runStream_js_1.SSEStreamSubscription("http://example.test/sse", {
|
|
405
|
+
headers: { Authorization: "Bearer expired" },
|
|
406
|
+
retryDelayMs: 1,
|
|
407
|
+
maxRetryDelayMs: 5,
|
|
408
|
+
});
|
|
409
|
+
const result = await sub.subscribe().then(drain);
|
|
410
|
+
(0, vitest_1.expect)(attempts).toBe(1);
|
|
411
|
+
(0, vitest_1.expect)(result.error).toBeDefined();
|
|
412
|
+
});
|
|
413
|
+
(0, vitest_1.it)("retries a 401 once with the headers from resolveHeaders", async () => {
|
|
414
|
+
const seenTokens = [];
|
|
415
|
+
globalThis.fetch = vitest_1.vi.fn().mockImplementation(async (_url, init) => {
|
|
416
|
+
const token = new Headers(init.headers).get("Authorization");
|
|
417
|
+
seenTokens.push(token);
|
|
418
|
+
if (token !== "Bearer fresh")
|
|
419
|
+
return new Response("unauthorized", { status: 401 });
|
|
420
|
+
return makeSSEResponse();
|
|
421
|
+
});
|
|
422
|
+
let refreshes = 0;
|
|
423
|
+
const sub = new runStream_js_1.SSEStreamSubscription("http://example.test/sse", {
|
|
424
|
+
headers: { Authorization: "Bearer expired" },
|
|
425
|
+
retryDelayMs: 1,
|
|
426
|
+
maxRetryDelayMs: 5,
|
|
427
|
+
resolveHeaders: async () => {
|
|
428
|
+
refreshes++;
|
|
429
|
+
return { Authorization: "Bearer fresh" };
|
|
430
|
+
},
|
|
431
|
+
});
|
|
432
|
+
const result = await sub.subscribe().then(drain);
|
|
433
|
+
(0, vitest_1.expect)(seenTokens).toEqual(["Bearer expired", "Bearer fresh"]);
|
|
434
|
+
(0, vitest_1.expect)(refreshes).toBe(1);
|
|
435
|
+
(0, vitest_1.expect)(result.error).toBeUndefined();
|
|
436
|
+
(0, vitest_1.expect)(result.chunks).toHaveLength(1);
|
|
437
|
+
});
|
|
438
|
+
(0, vitest_1.it)("fails the stream when the refreshed headers are rejected too", async () => {
|
|
439
|
+
let attempts = 0;
|
|
440
|
+
globalThis.fetch = vitest_1.vi.fn().mockImplementation(async () => {
|
|
441
|
+
attempts++;
|
|
442
|
+
return new Response("unauthorized", { status: 401 });
|
|
443
|
+
});
|
|
444
|
+
let refreshes = 0;
|
|
445
|
+
const sub = new runStream_js_1.SSEStreamSubscription("http://example.test/sse", {
|
|
446
|
+
headers: { Authorization: "Bearer expired" },
|
|
447
|
+
retryDelayMs: 1,
|
|
448
|
+
maxRetryDelayMs: 5,
|
|
449
|
+
resolveHeaders: async () => {
|
|
450
|
+
refreshes++;
|
|
451
|
+
return { Authorization: "Bearer also-expired" };
|
|
452
|
+
},
|
|
453
|
+
});
|
|
454
|
+
const result = await sub.subscribe().then(drain);
|
|
455
|
+
(0, vitest_1.expect)(attempts).toBe(2);
|
|
456
|
+
(0, vitest_1.expect)(refreshes).toBe(1);
|
|
457
|
+
(0, vitest_1.expect)(result.error).toBeDefined();
|
|
458
|
+
});
|
|
459
|
+
(0, vitest_1.it)("retries a 403 once with the headers from resolveHeaders", async () => {
|
|
460
|
+
const seenTokens = [];
|
|
461
|
+
globalThis.fetch = vitest_1.vi.fn().mockImplementation(async (_url, init) => {
|
|
462
|
+
const token = new Headers(init.headers).get("Authorization");
|
|
463
|
+
seenTokens.push(token);
|
|
464
|
+
if (token !== "Bearer fresh")
|
|
465
|
+
return new Response("forbidden", { status: 403 });
|
|
466
|
+
return makeSSEResponse();
|
|
467
|
+
});
|
|
468
|
+
const sub = new runStream_js_1.SSEStreamSubscription("http://example.test/sse", {
|
|
469
|
+
headers: { Authorization: "Bearer expired" },
|
|
470
|
+
retryDelayMs: 1,
|
|
471
|
+
maxRetryDelayMs: 5,
|
|
472
|
+
resolveHeaders: async () => ({ Authorization: "Bearer fresh" }),
|
|
473
|
+
});
|
|
474
|
+
const result = await sub.subscribe().then(drain);
|
|
475
|
+
(0, vitest_1.expect)(seenTokens).toEqual(["Bearer expired", "Bearer fresh"]);
|
|
476
|
+
(0, vitest_1.expect)(result.error).toBeUndefined();
|
|
477
|
+
(0, vitest_1.expect)(result.chunks).toHaveLength(1);
|
|
478
|
+
});
|
|
479
|
+
(0, vitest_1.it)("does not report a 401 that the refresh recovered from", async () => {
|
|
480
|
+
let attempts = 0;
|
|
481
|
+
globalThis.fetch = vitest_1.vi.fn().mockImplementation(async () => {
|
|
482
|
+
attempts++;
|
|
483
|
+
if (attempts === 1)
|
|
484
|
+
return new Response("unauthorized", { status: 401 });
|
|
485
|
+
return makeSSEResponse();
|
|
486
|
+
});
|
|
487
|
+
const errors = [];
|
|
488
|
+
const sub = new runStream_js_1.SSEStreamSubscription("http://example.test/sse", {
|
|
489
|
+
headers: { Authorization: "Bearer expired" },
|
|
490
|
+
retryDelayMs: 1,
|
|
491
|
+
maxRetryDelayMs: 5,
|
|
492
|
+
onError: (e) => errors.push(e),
|
|
493
|
+
resolveHeaders: async () => ({ Authorization: "Bearer fresh" }),
|
|
494
|
+
});
|
|
495
|
+
const result = await sub.subscribe().then(drain);
|
|
496
|
+
(0, vitest_1.expect)(errors).toHaveLength(0);
|
|
497
|
+
(0, vitest_1.expect)(result.error).toBeUndefined();
|
|
498
|
+
});
|
|
499
|
+
(0, vitest_1.it)("terminates on a 401 when the refresher itself throws", async () => {
|
|
500
|
+
let attempts = 0;
|
|
501
|
+
globalThis.fetch = vitest_1.vi.fn().mockImplementation(async () => {
|
|
502
|
+
attempts++;
|
|
503
|
+
return new Response("unauthorized", { status: 401 });
|
|
504
|
+
});
|
|
505
|
+
const errors = [];
|
|
506
|
+
const sub = new runStream_js_1.SSEStreamSubscription("http://example.test/sse", {
|
|
507
|
+
headers: { Authorization: "Bearer expired" },
|
|
508
|
+
retryDelayMs: 1,
|
|
509
|
+
maxRetryDelayMs: 5,
|
|
510
|
+
onError: (e) => errors.push(e),
|
|
511
|
+
resolveHeaders: async () => {
|
|
512
|
+
throw new Error("mint failed");
|
|
513
|
+
},
|
|
514
|
+
});
|
|
515
|
+
const result = await sub.subscribe().then(drain);
|
|
516
|
+
(0, vitest_1.expect)(attempts).toBe(1);
|
|
517
|
+
(0, vitest_1.expect)(errors).toHaveLength(1);
|
|
518
|
+
(0, vitest_1.expect)(result.error).toBeDefined();
|
|
519
|
+
});
|
|
520
|
+
(0, vitest_1.it)("does not re-mint for a connection that is accepted but delivers nothing", async () => {
|
|
521
|
+
let attempts = 0;
|
|
522
|
+
globalThis.fetch = vitest_1.vi.fn().mockImplementation(async () => {
|
|
523
|
+
attempts++;
|
|
524
|
+
if (attempts === 2)
|
|
525
|
+
return makeDroppedResponse();
|
|
526
|
+
return new Response("unauthorized", { status: 401 });
|
|
527
|
+
});
|
|
528
|
+
let refreshes = 0;
|
|
529
|
+
const sub = new runStream_js_1.SSEStreamSubscription("http://example.test/sse", {
|
|
530
|
+
headers: { Authorization: "Bearer expired" },
|
|
531
|
+
retryDelayMs: 1,
|
|
532
|
+
maxRetryDelayMs: 5,
|
|
533
|
+
resolveHeaders: async () => {
|
|
534
|
+
refreshes++;
|
|
535
|
+
return { Authorization: `Bearer fresh-${refreshes}` };
|
|
536
|
+
},
|
|
537
|
+
});
|
|
538
|
+
const result = await sub.subscribe().then(drain);
|
|
539
|
+
(0, vitest_1.expect)(refreshes).toBe(1);
|
|
540
|
+
(0, vitest_1.expect)(attempts).toBe(3);
|
|
541
|
+
(0, vitest_1.expect)(result.error).toBeDefined();
|
|
542
|
+
});
|
|
543
|
+
(0, vitest_1.it)("allows another refresh once a connection has delivered a record", async () => {
|
|
544
|
+
let attempts = 0;
|
|
545
|
+
globalThis.fetch = vitest_1.vi.fn().mockImplementation(async () => {
|
|
546
|
+
attempts++;
|
|
547
|
+
if (attempts === 2)
|
|
548
|
+
return makeChunkThenDropResponse();
|
|
549
|
+
if (attempts === 4)
|
|
550
|
+
return makeSSEResponse();
|
|
551
|
+
return new Response("unauthorized", { status: 401 });
|
|
552
|
+
});
|
|
553
|
+
let refreshes = 0;
|
|
554
|
+
const sub = new runStream_js_1.SSEStreamSubscription("http://example.test/sse", {
|
|
555
|
+
headers: { Authorization: "Bearer expired" },
|
|
556
|
+
retryDelayMs: 1,
|
|
557
|
+
maxRetryDelayMs: 5,
|
|
558
|
+
resolveHeaders: async () => {
|
|
559
|
+
refreshes++;
|
|
560
|
+
return { Authorization: `Bearer fresh-${refreshes}` };
|
|
561
|
+
},
|
|
562
|
+
});
|
|
563
|
+
const result = await sub.subscribe().then(drain);
|
|
564
|
+
(0, vitest_1.expect)(refreshes).toBe(2);
|
|
565
|
+
(0, vitest_1.expect)(attempts).toBe(4);
|
|
566
|
+
(0, vitest_1.expect)(result.error).toBeUndefined();
|
|
567
|
+
(0, vitest_1.expect)(result.chunks).toHaveLength(2);
|
|
568
|
+
});
|
|
373
569
|
(0, vitest_1.it)("retries on 503 (caller-tunable nonRetryableStatuses)", async () => {
|
|
374
570
|
let attempts = 0;
|
|
375
571
|
globalThis.fetch = vitest_1.vi.fn().mockImplementation(async () => {
|
|
@@ -462,6 +658,7 @@ vitest_1.vi.setConfig({ testTimeout: 10_000 });
|
|
|
462
658
|
const sub = new runStream_js_1.SSEStreamSubscription("http://x", { maxRetries: 0 });
|
|
463
659
|
const parts = await sub.subscribe().then(drain);
|
|
464
660
|
(0, vitest_1.expect)(parts).toHaveLength(1);
|
|
661
|
+
(0, vitest_1.expect)(parts[0].recordId).toBe("p1");
|
|
465
662
|
(0, vitest_1.expect)(parts[0].id).toBe("5");
|
|
466
663
|
(0, vitest_1.expect)(parts[0].chunk).toEqual({ type: "text-delta", delta: "hi" });
|
|
467
664
|
(0, vitest_1.expect)(parts[0].headers).toEqual([]);
|
|
@@ -542,4 +739,87 @@ vitest_1.vi.setConfig({ testTimeout: 10_000 });
|
|
|
542
739
|
(0, vitest_1.expect)(parts[1].chunk.delta).toBe("x");
|
|
543
740
|
});
|
|
544
741
|
});
|
|
742
|
+
(0, vitest_1.describe)("SSEStreamSubscription start position (from)", () => {
|
|
743
|
+
const originalFetch = globalThis.fetch;
|
|
744
|
+
(0, vitest_1.afterEach)(() => {
|
|
745
|
+
globalThis.fetch = originalFetch;
|
|
746
|
+
vitest_1.vi.restoreAllMocks();
|
|
747
|
+
});
|
|
748
|
+
async function drainReader(reader) {
|
|
749
|
+
let next = await reader.read();
|
|
750
|
+
while (!next.done) {
|
|
751
|
+
next = await reader.read();
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
function makeClosedSSEResponse(id) {
|
|
755
|
+
const body = new ReadableStream({
|
|
756
|
+
start(controller) {
|
|
757
|
+
controller.enqueue(new TextEncoder().encode(`id: ${id}\ndata: {"hello":1}\n\n`));
|
|
758
|
+
controller.close();
|
|
759
|
+
},
|
|
760
|
+
});
|
|
761
|
+
return new Response(body, {
|
|
762
|
+
status: 200,
|
|
763
|
+
headers: { "Content-Type": "text/event-stream", "X-Stream-Version": "v1" },
|
|
764
|
+
});
|
|
765
|
+
}
|
|
766
|
+
(0, vitest_1.it)('from: "latest" sends the start header and no Last-Event-ID on first connect', async () => {
|
|
767
|
+
const seenHeaders = [];
|
|
768
|
+
globalThis.fetch = vitest_1.vi.fn().mockImplementation(async (_url, init) => {
|
|
769
|
+
seenHeaders.push(init?.headers ?? {});
|
|
770
|
+
return makeClosedSSEResponse("42");
|
|
771
|
+
});
|
|
772
|
+
const sub = new runStream_js_1.SSEStreamSubscription("http://example.test/sse", { from: "latest" });
|
|
773
|
+
await drainReader((await sub.subscribe()).getReader());
|
|
774
|
+
(0, vitest_1.expect)(seenHeaders[0][runStream_js_1.STREAM_START_HEADER]).toBe("latest");
|
|
775
|
+
(0, vitest_1.expect)(seenHeaders[0]["Last-Event-ID"]).toBeUndefined();
|
|
776
|
+
});
|
|
777
|
+
(0, vitest_1.it)('from: "latest" drops the start header and resumes with Last-Event-ID after a record', async () => {
|
|
778
|
+
let attempts = 0;
|
|
779
|
+
const seenHeaders = [];
|
|
780
|
+
globalThis.fetch = vitest_1.vi.fn().mockImplementation(async (_url, init) => {
|
|
781
|
+
attempts++;
|
|
782
|
+
seenHeaders.push(init?.headers ?? {});
|
|
783
|
+
if (attempts === 1) {
|
|
784
|
+
const body = new ReadableStream({
|
|
785
|
+
start(controller) {
|
|
786
|
+
controller.enqueue(new TextEncoder().encode(`id: 7\ndata: {"first":true}\n\n`));
|
|
787
|
+
init?.signal?.addEventListener("abort", () => controller.error(new Error("aborted")));
|
|
788
|
+
},
|
|
789
|
+
});
|
|
790
|
+
return new Response(body, {
|
|
791
|
+
status: 200,
|
|
792
|
+
headers: { "Content-Type": "text/event-stream", "X-Stream-Version": "v1" },
|
|
793
|
+
});
|
|
794
|
+
}
|
|
795
|
+
return makeClosedSSEResponse("8");
|
|
796
|
+
});
|
|
797
|
+
const sub = new runStream_js_1.SSEStreamSubscription("http://example.test/sse", {
|
|
798
|
+
from: "latest",
|
|
799
|
+
retryDelayMs: 1,
|
|
800
|
+
maxRetryDelayMs: 5,
|
|
801
|
+
fetchTimeoutMs: 60_000,
|
|
802
|
+
});
|
|
803
|
+
const reader = (await sub.subscribe()).getReader();
|
|
804
|
+
const first = await reader.read();
|
|
805
|
+
(0, vitest_1.expect)(first.done).toBe(false);
|
|
806
|
+
sub.forceReconnect();
|
|
807
|
+
await drainReader(reader);
|
|
808
|
+
(0, vitest_1.expect)(attempts).toBe(2);
|
|
809
|
+
(0, vitest_1.expect)(seenHeaders[0][runStream_js_1.STREAM_START_HEADER]).toBe("latest");
|
|
810
|
+
(0, vitest_1.expect)(seenHeaders[0]["Last-Event-ID"]).toBeUndefined();
|
|
811
|
+
(0, vitest_1.expect)(seenHeaders[1][runStream_js_1.STREAM_START_HEADER]).toBeUndefined();
|
|
812
|
+
(0, vitest_1.expect)(seenHeaders[1]["Last-Event-ID"]).toBe("7");
|
|
813
|
+
});
|
|
814
|
+
(0, vitest_1.it)("default (no from) never sends the start header", async () => {
|
|
815
|
+
const seenHeaders = [];
|
|
816
|
+
globalThis.fetch = vitest_1.vi.fn().mockImplementation(async (_url, init) => {
|
|
817
|
+
seenHeaders.push(init?.headers ?? {});
|
|
818
|
+
return makeClosedSSEResponse("1");
|
|
819
|
+
});
|
|
820
|
+
const sub = new runStream_js_1.SSEStreamSubscription("http://example.test/sse", {});
|
|
821
|
+
await drainReader((await sub.subscribe()).getReader());
|
|
822
|
+
(0, vitest_1.expect)(seenHeaders[0][runStream_js_1.STREAM_START_HEADER]).toBeUndefined();
|
|
823
|
+
});
|
|
824
|
+
});
|
|
545
825
|
//# sourceMappingURL=runStream.test.js.map
|