@trigger.dev/core 0.0.0-prerelease-20260220162801 → 0.0.0-prerelease-20260304181730
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 +10 -1
- package/dist/commonjs/v3/apiClient/index.js +18 -1
- package/dist/commonjs/v3/apiClient/index.js.map +1 -1
- package/dist/commonjs/v3/errors.js +3 -0
- package/dist/commonjs/v3/errors.js.map +1 -1
- package/dist/commonjs/v3/index.d.ts +2 -0
- package/dist/commonjs/v3/index.js +2 -0
- package/dist/commonjs/v3/index.js.map +1 -1
- package/dist/commonjs/v3/input-streams-api.d.ts +3 -0
- package/dist/commonjs/v3/input-streams-api.js +23 -0
- package/dist/commonjs/v3/input-streams-api.js.map +1 -0
- package/dist/commonjs/v3/inputStreams/index.d.ts +23 -0
- package/dist/commonjs/v3/inputStreams/index.js +61 -0
- package/dist/commonjs/v3/inputStreams/index.js.map +1 -0
- package/dist/commonjs/v3/inputStreams/manager.d.ts +33 -0
- package/dist/commonjs/v3/inputStreams/manager.js +325 -0
- package/dist/commonjs/v3/inputStreams/manager.js.map +1 -0
- package/dist/commonjs/v3/inputStreams/noopManager.d.ts +18 -0
- package/dist/commonjs/v3/inputStreams/noopManager.js +30 -0
- package/dist/commonjs/v3/inputStreams/noopManager.js.map +1 -0
- package/dist/commonjs/v3/inputStreams/types.d.ts +84 -0
- package/dist/commonjs/v3/inputStreams/types.js +31 -0
- package/dist/commonjs/v3/inputStreams/types.js.map +1 -0
- package/dist/commonjs/v3/realtimeStreams/streamInstance.js +3 -0
- package/dist/commonjs/v3/realtimeStreams/streamInstance.js.map +1 -1
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.d.ts +3 -2
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.js +18 -8
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.js.map +1 -1
- package/dist/commonjs/v3/realtimeStreams/types.d.ts +101 -0
- package/dist/commonjs/v3/realtimeStreams/types.js +4 -0
- package/dist/commonjs/v3/realtimeStreams/types.js.map +1 -1
- package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.d.ts +7 -7
- package/dist/commonjs/v3/runEngineWorker/workload/schemas.d.ts +7 -7
- package/dist/commonjs/v3/schemas/api.d.ts +52 -5
- package/dist/commonjs/v3/schemas/api.js +21 -1
- package/dist/commonjs/v3/schemas/api.js.map +1 -1
- package/dist/commonjs/v3/schemas/common.d.ts +24 -24
- package/dist/commonjs/v3/schemas/common.js +3 -0
- package/dist/commonjs/v3/schemas/common.js.map +1 -1
- package/dist/commonjs/v3/schemas/messages.d.ts +116 -116
- package/dist/commonjs/v3/schemas/webhooks.d.ts +344 -16
- package/dist/commonjs/v3/schemas/webhooks.js +20 -0
- package/dist/commonjs/v3/schemas/webhooks.js.map +1 -1
- package/dist/commonjs/v3/utils/globals.d.ts +2 -0
- package/dist/commonjs/v3/utils/globals.js.map +1 -1
- package/dist/commonjs/v3/waitpoints/index.d.ts +8 -0
- package/dist/commonjs/v3/waitpoints/index.js +27 -0
- package/dist/commonjs/v3/waitpoints/index.js.map +1 -0
- package/dist/commonjs/v3/workers/index.d.ts +1 -0
- package/dist/commonjs/v3/workers/index.js +3 -1
- package/dist/commonjs/v3/workers/index.js.map +1 -1
- package/dist/commonjs/v3/workers/taskExecutor.js +1 -0
- package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/v3/apiClient/index.d.ts +10 -1
- package/dist/esm/v3/apiClient/index.js +19 -2
- package/dist/esm/v3/apiClient/index.js.map +1 -1
- package/dist/esm/v3/errors.js +3 -0
- package/dist/esm/v3/errors.js.map +1 -1
- package/dist/esm/v3/index.d.ts +2 -0
- package/dist/esm/v3/index.js +2 -0
- package/dist/esm/v3/index.js.map +1 -1
- package/dist/esm/v3/input-streams-api.d.ts +3 -0
- package/dist/esm/v3/input-streams-api.js +6 -0
- package/dist/esm/v3/input-streams-api.js.map +1 -0
- package/dist/esm/v3/inputStreams/index.d.ts +23 -0
- package/dist/esm/v3/inputStreams/index.js +57 -0
- package/dist/esm/v3/inputStreams/index.js.map +1 -0
- package/dist/esm/v3/inputStreams/manager.d.ts +33 -0
- package/dist/esm/v3/inputStreams/manager.js +321 -0
- package/dist/esm/v3/inputStreams/manager.js.map +1 -0
- package/dist/esm/v3/inputStreams/noopManager.d.ts +18 -0
- package/dist/esm/v3/inputStreams/noopManager.js +26 -0
- package/dist/esm/v3/inputStreams/noopManager.js.map +1 -0
- package/dist/esm/v3/inputStreams/types.d.ts +84 -0
- package/dist/esm/v3/inputStreams/types.js +26 -0
- package/dist/esm/v3/inputStreams/types.js.map +1 -0
- package/dist/esm/v3/realtimeStreams/streamInstance.js +3 -0
- package/dist/esm/v3/realtimeStreams/streamInstance.js.map +1 -1
- package/dist/esm/v3/realtimeStreams/streamsWriterV2.d.ts +3 -2
- package/dist/esm/v3/realtimeStreams/streamsWriterV2.js +18 -8
- package/dist/esm/v3/realtimeStreams/streamsWriterV2.js.map +1 -1
- package/dist/esm/v3/realtimeStreams/types.d.ts +101 -0
- package/dist/esm/v3/realtimeStreams/types.js +1 -1
- package/dist/esm/v3/realtimeStreams/types.js.map +1 -1
- package/dist/esm/v3/runEngineWorker/supervisor/schemas.d.ts +7 -7
- package/dist/esm/v3/runEngineWorker/workload/schemas.d.ts +7 -7
- package/dist/esm/v3/schemas/api.d.ts +52 -5
- package/dist/esm/v3/schemas/api.js +20 -0
- package/dist/esm/v3/schemas/api.js.map +1 -1
- package/dist/esm/v3/schemas/common.d.ts +24 -24
- package/dist/esm/v3/schemas/common.js +3 -0
- package/dist/esm/v3/schemas/common.js.map +1 -1
- package/dist/esm/v3/schemas/messages.d.ts +116 -116
- package/dist/esm/v3/schemas/webhooks.d.ts +344 -16
- package/dist/esm/v3/schemas/webhooks.js +20 -0
- package/dist/esm/v3/schemas/webhooks.js.map +1 -1
- package/dist/esm/v3/utils/globals.d.ts +2 -0
- package/dist/esm/v3/utils/globals.js.map +1 -1
- package/dist/esm/v3/waitpoints/index.d.ts +8 -0
- package/dist/esm/v3/waitpoints/index.js +22 -0
- package/dist/esm/v3/waitpoints/index.js.map +1 -0
- package/dist/esm/v3/workers/index.d.ts +1 -0
- package/dist/esm/v3/workers/index.js +1 -0
- package/dist/esm/v3/workers/index.js.map +1 -1
- package/dist/esm/v3/workers/taskExecutor.js +2 -1
- package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StandardInputStreamManager = void 0;
|
|
4
|
+
const types_js_1 = require("./types.js");
|
|
5
|
+
class StandardInputStreamManager {
|
|
6
|
+
apiClient;
|
|
7
|
+
baseUrl;
|
|
8
|
+
debug;
|
|
9
|
+
handlers = new Map();
|
|
10
|
+
onceWaiters = new Map();
|
|
11
|
+
buffer = new Map();
|
|
12
|
+
tails = new Map();
|
|
13
|
+
seqNums = new Map();
|
|
14
|
+
currentRunId = null;
|
|
15
|
+
streamsVersion;
|
|
16
|
+
constructor(apiClient, baseUrl, debug = false) {
|
|
17
|
+
this.apiClient = apiClient;
|
|
18
|
+
this.baseUrl = baseUrl;
|
|
19
|
+
this.debug = debug;
|
|
20
|
+
}
|
|
21
|
+
lastSeqNum(streamId) {
|
|
22
|
+
return this.seqNums.get(streamId);
|
|
23
|
+
}
|
|
24
|
+
setLastSeqNum(streamId, seqNum) {
|
|
25
|
+
const current = this.seqNums.get(streamId);
|
|
26
|
+
// Only advance forward, never backward
|
|
27
|
+
if (current === undefined || seqNum > current) {
|
|
28
|
+
this.seqNums.set(streamId, seqNum);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
shiftBuffer(streamId) {
|
|
32
|
+
const buffered = this.buffer.get(streamId);
|
|
33
|
+
if (buffered && buffered.length > 0) {
|
|
34
|
+
buffered.shift();
|
|
35
|
+
if (buffered.length === 0) {
|
|
36
|
+
this.buffer.delete(streamId);
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
setRunId(runId, streamsVersion) {
|
|
43
|
+
this.currentRunId = runId;
|
|
44
|
+
this.streamsVersion = streamsVersion;
|
|
45
|
+
}
|
|
46
|
+
on(streamId, handler) {
|
|
47
|
+
this.#requireV2Streams();
|
|
48
|
+
let handlerSet = this.handlers.get(streamId);
|
|
49
|
+
if (!handlerSet) {
|
|
50
|
+
handlerSet = new Set();
|
|
51
|
+
this.handlers.set(streamId, handlerSet);
|
|
52
|
+
}
|
|
53
|
+
handlerSet.add(handler);
|
|
54
|
+
// Lazily connect a tail for this stream
|
|
55
|
+
this.#ensureStreamTailConnected(streamId);
|
|
56
|
+
// Flush any buffered data for this stream
|
|
57
|
+
const buffered = this.buffer.get(streamId);
|
|
58
|
+
if (buffered && buffered.length > 0) {
|
|
59
|
+
for (const data of buffered) {
|
|
60
|
+
this.#invokeHandler(handler, data);
|
|
61
|
+
}
|
|
62
|
+
this.buffer.delete(streamId);
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
off: () => {
|
|
66
|
+
handlerSet?.delete(handler);
|
|
67
|
+
if (handlerSet?.size === 0) {
|
|
68
|
+
this.handlers.delete(streamId);
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
once(streamId, options) {
|
|
74
|
+
this.#requireV2Streams();
|
|
75
|
+
// Lazily connect a tail for this stream
|
|
76
|
+
this.#ensureStreamTailConnected(streamId);
|
|
77
|
+
// Check buffer first
|
|
78
|
+
const buffered = this.buffer.get(streamId);
|
|
79
|
+
if (buffered && buffered.length > 0) {
|
|
80
|
+
const data = buffered.shift();
|
|
81
|
+
if (buffered.length === 0) {
|
|
82
|
+
this.buffer.delete(streamId);
|
|
83
|
+
}
|
|
84
|
+
return new types_js_1.InputStreamOncePromise((resolve) => {
|
|
85
|
+
resolve({ ok: true, output: data });
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return new types_js_1.InputStreamOncePromise((resolve, reject) => {
|
|
89
|
+
const waiter = { resolve, reject };
|
|
90
|
+
// Handle abort signal
|
|
91
|
+
if (options?.signal) {
|
|
92
|
+
if (options.signal.aborted) {
|
|
93
|
+
reject(new Error("Aborted"));
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
options.signal.addEventListener("abort", () => {
|
|
97
|
+
if (waiter.timeoutHandle) {
|
|
98
|
+
clearTimeout(waiter.timeoutHandle);
|
|
99
|
+
}
|
|
100
|
+
this.#removeOnceWaiter(streamId, waiter);
|
|
101
|
+
reject(new Error("Aborted"));
|
|
102
|
+
}, { once: true });
|
|
103
|
+
}
|
|
104
|
+
// Handle timeout — resolve with error result instead of rejecting
|
|
105
|
+
if (options?.timeoutMs) {
|
|
106
|
+
waiter.timeoutHandle = setTimeout(() => {
|
|
107
|
+
this.#removeOnceWaiter(streamId, waiter);
|
|
108
|
+
resolve({
|
|
109
|
+
ok: false,
|
|
110
|
+
error: new types_js_1.InputStreamTimeoutError(streamId, options.timeoutMs),
|
|
111
|
+
});
|
|
112
|
+
}, options.timeoutMs);
|
|
113
|
+
}
|
|
114
|
+
let waiters = this.onceWaiters.get(streamId);
|
|
115
|
+
if (!waiters) {
|
|
116
|
+
waiters = [];
|
|
117
|
+
this.onceWaiters.set(streamId, waiters);
|
|
118
|
+
}
|
|
119
|
+
waiters.push(waiter);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
peek(streamId) {
|
|
123
|
+
const buffered = this.buffer.get(streamId);
|
|
124
|
+
if (buffered && buffered.length > 0) {
|
|
125
|
+
return buffered[0];
|
|
126
|
+
}
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
clearHandlers() {
|
|
130
|
+
this.handlers.clear();
|
|
131
|
+
// Abort tails that no longer have any once waiters either
|
|
132
|
+
for (const [streamId, tail] of this.tails) {
|
|
133
|
+
const hasWaiters = this.onceWaiters.has(streamId) && this.onceWaiters.get(streamId).length > 0;
|
|
134
|
+
if (!hasWaiters) {
|
|
135
|
+
tail.abortController.abort();
|
|
136
|
+
this.tails.delete(streamId);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
disconnectStream(streamId) {
|
|
141
|
+
const tail = this.tails.get(streamId);
|
|
142
|
+
if (tail) {
|
|
143
|
+
tail.abortController.abort();
|
|
144
|
+
this.tails.delete(streamId);
|
|
145
|
+
}
|
|
146
|
+
this.buffer.delete(streamId);
|
|
147
|
+
}
|
|
148
|
+
connectTail(runId, _fromSeq) {
|
|
149
|
+
// No-op: tails are now created per-stream lazily
|
|
150
|
+
}
|
|
151
|
+
disconnect() {
|
|
152
|
+
for (const [, tail] of this.tails) {
|
|
153
|
+
tail.abortController.abort();
|
|
154
|
+
}
|
|
155
|
+
this.tails.clear();
|
|
156
|
+
}
|
|
157
|
+
reset() {
|
|
158
|
+
this.disconnect();
|
|
159
|
+
this.currentRunId = null;
|
|
160
|
+
this.streamsVersion = undefined;
|
|
161
|
+
this.seqNums.clear();
|
|
162
|
+
this.handlers.clear();
|
|
163
|
+
// Reject all pending once waiters
|
|
164
|
+
for (const [, waiters] of this.onceWaiters) {
|
|
165
|
+
for (const waiter of waiters) {
|
|
166
|
+
if (waiter.timeoutHandle) {
|
|
167
|
+
clearTimeout(waiter.timeoutHandle);
|
|
168
|
+
}
|
|
169
|
+
waiter.reject(new Error("Input stream manager reset"));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
this.onceWaiters.clear();
|
|
173
|
+
this.buffer.clear();
|
|
174
|
+
}
|
|
175
|
+
#requireV2Streams() {
|
|
176
|
+
if (this.currentRunId && this.streamsVersion !== "v2") {
|
|
177
|
+
throw new Error("Input streams require v2 realtime streams. Enable them with: { future: { v2RealtimeStreams: true } }");
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
#ensureStreamTailConnected(streamId) {
|
|
181
|
+
if (!this.tails.has(streamId) && this.currentRunId) {
|
|
182
|
+
const abortController = new AbortController();
|
|
183
|
+
const promise = this.#runTail(this.currentRunId, streamId, abortController.signal)
|
|
184
|
+
.catch((error) => {
|
|
185
|
+
if (this.debug) {
|
|
186
|
+
console.error(`[InputStreamManager] Tail error for "${streamId}":`, error);
|
|
187
|
+
}
|
|
188
|
+
})
|
|
189
|
+
.finally(() => {
|
|
190
|
+
this.tails.delete(streamId);
|
|
191
|
+
// Auto-reconnect if there are still active handlers or waiters
|
|
192
|
+
const hasHandlers = this.handlers.has(streamId) && this.handlers.get(streamId).size > 0;
|
|
193
|
+
const hasWaiters = this.onceWaiters.has(streamId) && this.onceWaiters.get(streamId).length > 0;
|
|
194
|
+
if (hasHandlers || hasWaiters) {
|
|
195
|
+
this.#ensureStreamTailConnected(streamId);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
this.tails.set(streamId, { abortController, promise });
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
async #runTail(runId, streamId, signal) {
|
|
202
|
+
try {
|
|
203
|
+
const lastSeq = this.seqNums.get(streamId);
|
|
204
|
+
const stream = await this.apiClient.fetchStream(runId, `input/${streamId}`, {
|
|
205
|
+
signal,
|
|
206
|
+
baseUrl: this.baseUrl,
|
|
207
|
+
// Max allowed by the SSE endpoint is 600s; the tail will reconnect on close
|
|
208
|
+
timeoutInSeconds: 600,
|
|
209
|
+
// Resume from last seen sequence number to avoid replaying history on reconnect
|
|
210
|
+
lastEventId: lastSeq !== undefined ? String(lastSeq) : undefined,
|
|
211
|
+
onPart: (part) => {
|
|
212
|
+
const seqNum = parseInt(part.id, 10);
|
|
213
|
+
if (Number.isFinite(seqNum)) {
|
|
214
|
+
this.seqNums.set(streamId, seqNum);
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
onComplete: () => {
|
|
218
|
+
if (this.debug) {
|
|
219
|
+
console.log(`[InputStreamManager] Tail stream completed for "${streamId}"`);
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
onError: (error) => {
|
|
223
|
+
if (this.debug) {
|
|
224
|
+
console.error(`[InputStreamManager] Tail stream error for "${streamId}":`, error);
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
});
|
|
228
|
+
for await (const record of stream) {
|
|
229
|
+
if (signal.aborted)
|
|
230
|
+
break;
|
|
231
|
+
// S2 SSE returns record bodies as JSON strings; parse if needed
|
|
232
|
+
let data;
|
|
233
|
+
if (typeof record === "string") {
|
|
234
|
+
try {
|
|
235
|
+
data = JSON.parse(record);
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
data = record;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
data = record;
|
|
243
|
+
}
|
|
244
|
+
this.#dispatch(streamId, data);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
catch (error) {
|
|
248
|
+
// AbortError is expected when disconnecting
|
|
249
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
throw error;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
#dispatch(streamId, data) {
|
|
256
|
+
// First try to resolve a once waiter
|
|
257
|
+
const waiters = this.onceWaiters.get(streamId);
|
|
258
|
+
if (waiters && waiters.length > 0) {
|
|
259
|
+
const waiter = waiters.shift();
|
|
260
|
+
if (waiters.length === 0) {
|
|
261
|
+
this.onceWaiters.delete(streamId);
|
|
262
|
+
}
|
|
263
|
+
if (waiter.timeoutHandle) {
|
|
264
|
+
clearTimeout(waiter.timeoutHandle);
|
|
265
|
+
}
|
|
266
|
+
waiter.resolve({ ok: true, output: data });
|
|
267
|
+
// Also invoke persistent handlers
|
|
268
|
+
this.#invokeHandlers(streamId, data);
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
// Invoke persistent handlers
|
|
272
|
+
const handlers = this.handlers.get(streamId);
|
|
273
|
+
if (handlers && handlers.size > 0) {
|
|
274
|
+
this.#invokeHandlers(streamId, data);
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
// No handlers, buffer the data
|
|
278
|
+
let buffered = this.buffer.get(streamId);
|
|
279
|
+
if (!buffered) {
|
|
280
|
+
buffered = [];
|
|
281
|
+
this.buffer.set(streamId, buffered);
|
|
282
|
+
}
|
|
283
|
+
buffered.push(data);
|
|
284
|
+
}
|
|
285
|
+
#invokeHandlers(streamId, data) {
|
|
286
|
+
const handlers = this.handlers.get(streamId);
|
|
287
|
+
if (!handlers)
|
|
288
|
+
return;
|
|
289
|
+
for (const handler of handlers) {
|
|
290
|
+
this.#invokeHandler(handler, data);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
#invokeHandler(handler, data) {
|
|
294
|
+
try {
|
|
295
|
+
const result = handler(data);
|
|
296
|
+
// If the handler returns a promise, catch errors silently
|
|
297
|
+
if (result && typeof result === "object" && "catch" in result) {
|
|
298
|
+
result.catch((error) => {
|
|
299
|
+
if (this.debug) {
|
|
300
|
+
console.error("[InputStreamManager] Handler error:", error);
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
catch (error) {
|
|
306
|
+
if (this.debug) {
|
|
307
|
+
console.error("[InputStreamManager] Handler error:", error);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
#removeOnceWaiter(streamId, waiter) {
|
|
312
|
+
const waiters = this.onceWaiters.get(streamId);
|
|
313
|
+
if (!waiters)
|
|
314
|
+
return;
|
|
315
|
+
const index = waiters.indexOf(waiter);
|
|
316
|
+
if (index !== -1) {
|
|
317
|
+
waiters.splice(index, 1);
|
|
318
|
+
}
|
|
319
|
+
if (waiters.length === 0) {
|
|
320
|
+
this.onceWaiters.delete(streamId);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
exports.StandardInputStreamManager = StandardInputStreamManager;
|
|
325
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/v3/inputStreams/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InputStreamManager, InputStreamOncePromise } from "./types.js";
|
|
2
|
+
import { InputStreamOnceOptions } from "../realtimeStreams/types.js";
|
|
3
|
+
export declare class NoopInputStreamManager implements InputStreamManager {
|
|
4
|
+
setRunId(_runId: string, _streamsVersion?: string): void;
|
|
5
|
+
on(_streamId: string, _handler: (data: unknown) => void | Promise<void>): {
|
|
6
|
+
off: () => void;
|
|
7
|
+
};
|
|
8
|
+
once(_streamId: string, _options?: InputStreamOnceOptions): InputStreamOncePromise<unknown>;
|
|
9
|
+
peek(_streamId: string): unknown | undefined;
|
|
10
|
+
lastSeqNum(_streamId: string): number | undefined;
|
|
11
|
+
setLastSeqNum(_streamId: string, _seqNum: number): void;
|
|
12
|
+
shiftBuffer(_streamId: string): boolean;
|
|
13
|
+
disconnectStream(_streamId: string): void;
|
|
14
|
+
clearHandlers(): void;
|
|
15
|
+
reset(): void;
|
|
16
|
+
disconnect(): void;
|
|
17
|
+
connectTail(_runId: string, _fromSeq?: number): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NoopInputStreamManager = void 0;
|
|
4
|
+
const types_js_1 = require("./types.js");
|
|
5
|
+
class NoopInputStreamManager {
|
|
6
|
+
setRunId(_runId, _streamsVersion) { }
|
|
7
|
+
on(_streamId, _handler) {
|
|
8
|
+
return { off: () => { } };
|
|
9
|
+
}
|
|
10
|
+
once(_streamId, _options) {
|
|
11
|
+
return new types_js_1.InputStreamOncePromise(() => {
|
|
12
|
+
// Never resolves in noop mode
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
peek(_streamId) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
lastSeqNum(_streamId) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
setLastSeqNum(_streamId, _seqNum) { }
|
|
22
|
+
shiftBuffer(_streamId) { return false; }
|
|
23
|
+
disconnectStream(_streamId) { }
|
|
24
|
+
clearHandlers() { }
|
|
25
|
+
reset() { }
|
|
26
|
+
disconnect() { }
|
|
27
|
+
connectTail(_runId, _fromSeq) { }
|
|
28
|
+
}
|
|
29
|
+
exports.NoopInputStreamManager = NoopInputStreamManager;
|
|
30
|
+
//# sourceMappingURL=noopManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noopManager.js","sourceRoot":"","sources":["../../../../src/v3/inputStreams/noopManager.ts"],"names":[],"mappings":";;;AAAA,yCAAwE;AAGxE,MAAa,sBAAsB;IACjC,QAAQ,CAAC,MAAc,EAAE,eAAwB,IAAS,CAAC;IAE3D,EAAE,CAAC,SAAiB,EAAE,QAAiD;QACrE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,SAAiB,EAAE,QAAiC;QACvD,OAAO,IAAI,iCAAsB,CAAC,GAAG,EAAE;YACrC,8BAA8B;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,SAAiB;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,SAAiB;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,OAAe,IAAS,CAAC;IAE1D,WAAW,CAAC,SAAiB,IAAa,OAAO,KAAK,CAAC,CAAC,CAAC;IAEzD,gBAAgB,CAAC,SAAiB,IAAS,CAAC;IAE5C,aAAa,KAAU,CAAC;IACxB,KAAK,KAAU,CAAC;IAChB,UAAU,KAAU,CAAC;IACrB,WAAW,CAAC,MAAc,EAAE,QAAiB,IAAS,CAAC;CACxD;AA/BD,wDA+BC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { InputStreamOnceOptions } from "../realtimeStreams/types.js";
|
|
2
|
+
export declare class InputStreamTimeoutError extends Error {
|
|
3
|
+
readonly streamId: string;
|
|
4
|
+
readonly timeoutMs: number;
|
|
5
|
+
constructor(streamId: string, timeoutMs: number);
|
|
6
|
+
}
|
|
7
|
+
export type InputStreamOnceResult<TData> = {
|
|
8
|
+
ok: true;
|
|
9
|
+
output: TData;
|
|
10
|
+
} | {
|
|
11
|
+
ok: false;
|
|
12
|
+
error: InputStreamTimeoutError;
|
|
13
|
+
};
|
|
14
|
+
export declare class InputStreamOncePromise<TData> extends Promise<InputStreamOnceResult<TData>> {
|
|
15
|
+
constructor(executor: (resolve: (value: InputStreamOnceResult<TData> | PromiseLike<InputStreamOnceResult<TData>>) => void, reject: (reason?: any) => void) => void);
|
|
16
|
+
unwrap(): Promise<TData>;
|
|
17
|
+
}
|
|
18
|
+
export interface InputStreamManager {
|
|
19
|
+
/**
|
|
20
|
+
* Set the current run ID and streams version. The tail connection will be
|
|
21
|
+
* established lazily when `on()` or `once()` is first called, but only
|
|
22
|
+
* for v2 (S2-backed) realtime streams.
|
|
23
|
+
*/
|
|
24
|
+
setRunId(runId: string, streamsVersion?: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Register a handler that fires every time data arrives on the given input stream.
|
|
27
|
+
* Handlers are automatically cleaned up when the task run completes.
|
|
28
|
+
* Returns `{ off }` for early unsubscription if needed.
|
|
29
|
+
*/
|
|
30
|
+
on(streamId: string, handler: (data: unknown) => void | Promise<void>): {
|
|
31
|
+
off: () => void;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Wait for the next piece of data on the given input stream.
|
|
35
|
+
* Returns a result object `{ ok, output }` or `{ ok, error }`.
|
|
36
|
+
* Chain `.unwrap()` to get the data directly or throw on timeout.
|
|
37
|
+
*/
|
|
38
|
+
once(streamId: string, options?: InputStreamOnceOptions): InputStreamOncePromise<unknown>;
|
|
39
|
+
/**
|
|
40
|
+
* Non-blocking peek at the most recent data on the given input stream.
|
|
41
|
+
*/
|
|
42
|
+
peek(streamId: string): unknown | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* The last S2 sequence number seen for the given input stream.
|
|
45
|
+
* Used by `.wait()` to tell the server where to check for existing data.
|
|
46
|
+
*/
|
|
47
|
+
lastSeqNum(streamId: string): number | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Advance the last-seen S2 sequence number for the given input stream.
|
|
50
|
+
* Used after `.wait()` resumes to prevent the SSE tail from replaying
|
|
51
|
+
* the record that was consumed via the waitpoint path.
|
|
52
|
+
*/
|
|
53
|
+
setLastSeqNum(streamId: string, seqNum: number): void;
|
|
54
|
+
/**
|
|
55
|
+
* Remove and discard the first buffered item for the given input stream.
|
|
56
|
+
* Used after `.wait()` resumes to remove the duplicate that the SSE tail
|
|
57
|
+
* buffered while the waitpoint was being completed via a separate path.
|
|
58
|
+
* Returns true if an item was removed, false if the buffer was empty.
|
|
59
|
+
*/
|
|
60
|
+
shiftBuffer(streamId: string): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Disconnect the SSE tail and clear the buffer for a specific input stream.
|
|
63
|
+
* Used before suspending via `.wait()` so the tail doesn't buffer duplicates
|
|
64
|
+
* of data that will be delivered through the waitpoint path.
|
|
65
|
+
*/
|
|
66
|
+
disconnectStream(streamId: string): void;
|
|
67
|
+
/**
|
|
68
|
+
* Clear all persistent `.on()` handlers and abort tails that have no remaining once waiters.
|
|
69
|
+
* Called automatically when a task run completes.
|
|
70
|
+
*/
|
|
71
|
+
clearHandlers(): void;
|
|
72
|
+
/**
|
|
73
|
+
* Reset state between task executions.
|
|
74
|
+
*/
|
|
75
|
+
reset(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Disconnect any active tails / connections.
|
|
78
|
+
*/
|
|
79
|
+
disconnect(): void;
|
|
80
|
+
/**
|
|
81
|
+
* Connect a tail to receive input stream records for the given run.
|
|
82
|
+
*/
|
|
83
|
+
connectTail(runId: string, fromSeq?: number): void;
|
|
84
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InputStreamOncePromise = exports.InputStreamTimeoutError = void 0;
|
|
4
|
+
class InputStreamTimeoutError extends Error {
|
|
5
|
+
streamId;
|
|
6
|
+
timeoutMs;
|
|
7
|
+
constructor(streamId, timeoutMs) {
|
|
8
|
+
super(`Timeout waiting for input stream "${streamId}" after ${timeoutMs}ms`);
|
|
9
|
+
this.streamId = streamId;
|
|
10
|
+
this.timeoutMs = timeoutMs;
|
|
11
|
+
this.name = "InputStreamTimeoutError";
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.InputStreamTimeoutError = InputStreamTimeoutError;
|
|
15
|
+
class InputStreamOncePromise extends Promise {
|
|
16
|
+
constructor(executor) {
|
|
17
|
+
super(executor);
|
|
18
|
+
}
|
|
19
|
+
unwrap() {
|
|
20
|
+
return this.then((result) => {
|
|
21
|
+
if (result.ok) {
|
|
22
|
+
return result.output;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
throw result.error;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.InputStreamOncePromise = InputStreamOncePromise;
|
|
31
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/v3/inputStreams/types.ts"],"names":[],"mappings":";;;AAEA,MAAa,uBAAwB,SAAQ,KAAK;IAE9B;IACA;IAFlB,YACkB,QAAgB,EAChB,SAAiB;QAEjC,KAAK,CAAC,qCAAqC,QAAQ,WAAW,SAAS,IAAI,CAAC,CAAC;QAH7D,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAQ;QAGjC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AARD,0DAQC;AAMD,MAAa,sBAA8B,SAAQ,OAAqC;IACtF,YACE,QAKS;QAET,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,OAAO,MAAM,CAAC,MAAM,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,CAAC,KAAK,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AArBD,wDAqBC"}
|
|
@@ -28,6 +28,7 @@ class StreamInstance {
|
|
|
28
28
|
basin: parsedResponse.basin,
|
|
29
29
|
stream: parsedResponse.streamName ?? this.options.key,
|
|
30
30
|
accessToken: parsedResponse.accessToken,
|
|
31
|
+
endpoint: parsedResponse.endpoint,
|
|
31
32
|
source: this.options.source,
|
|
32
33
|
signal: this.options.signal,
|
|
33
34
|
debug: this.options.debug,
|
|
@@ -71,6 +72,7 @@ function parseCreateStreamResponse(version, headers) {
|
|
|
71
72
|
if (!accessToken || !basin) {
|
|
72
73
|
return { version: "v1" };
|
|
73
74
|
}
|
|
75
|
+
const endpoint = headers?.["x-s2-endpoint"];
|
|
74
76
|
const flushIntervalMs = headers?.["x-s2-flush-interval-ms"];
|
|
75
77
|
const maxRetries = headers?.["x-s2-max-retries"];
|
|
76
78
|
const streamName = headers?.["x-s2-stream-name"];
|
|
@@ -78,6 +80,7 @@ function parseCreateStreamResponse(version, headers) {
|
|
|
78
80
|
version: "v2",
|
|
79
81
|
accessToken,
|
|
80
82
|
basin,
|
|
83
|
+
endpoint,
|
|
81
84
|
flushIntervalMs: flushIntervalMs ? parseInt(flushIntervalMs) : undefined,
|
|
82
85
|
maxRetries: maxRetries ? parseInt(maxRetries) : undefined,
|
|
83
86
|
streamName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamInstance.js","sourceRoot":"","sources":["../../../../src/v3/realtimeStreams/streamInstance.ts"],"names":[],"mappings":";;;AAGA,6DAAuD;AACvD,6DAAuD;AAiBvD,MAAa,cAAc;IAGL;IAFZ,aAAa,CAAoC;IAEzD,YAAoB,OAAiC;QAAjC,YAAO,GAAP,OAAO,CAA0B;QACnD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CACpE,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,MAAM,EACN,IAAI,CAAC,OAAO,CAAC,GAAG,EAChB,IAAI,CAAC,OAAO,EAAE,cAAc,CAC7B,CAAC;QAEF,MAAM,cAAc,GAAG,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEnE,MAAM,YAAY,GAChB,cAAc,CAAC,OAAO,KAAK,IAAI;YAC7B,CAAC,CAAC,IAAI,oCAAe,CAAC;gBAClB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;gBACrB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBACzB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE;gBAC5C,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,OAAO;gBACP,MAAM,EAAE,MAAM;aACf,CAAC;YACJ,CAAC,CAAC,IAAI,oCAAe,CAAC;gBAClB,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,MAAM,EAAE,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG;gBACrD,WAAW,EAAE,cAAc,CAAC,WAAW;gBACvC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBACzB,eAAe,EAAE,cAAc,CAAC,eAAe;gBAC/C,UAAU,EAAE,cAAc,CAAC,UAAU;aACtC,CAAC,CAAC;QAET,OAAO,YAAY,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,IAAW,MAAM;QACf,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,IAAI,cAAc,CAAI;YAC3B,KAAK,CAAC,KAAK,CAAC,UAAU;gBACpB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;gBAE9C,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBAEtD,OAAO,IAAI,EAAE,CAAC;oBACZ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;wBACjC,UAAU,CAAC,KAAK,EAAE,CAAC;wBACnB,MAAM;oBACR,CAAC;oBAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAE9C,IAAI,IAAI,EAAE,CAAC;wBACT,UAAU,CAAC,KAAK,EAAE,CAAC;wBACnB,MAAM;oBACR,CAAC;oBAED,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"streamInstance.js","sourceRoot":"","sources":["../../../../src/v3/realtimeStreams/streamInstance.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,13 @@ export type StreamsWriterV2Options<T = any> = {
|
|
|
3
3
|
basin: string;
|
|
4
4
|
stream: string;
|
|
5
5
|
accessToken: string;
|
|
6
|
+
endpoint?: string;
|
|
6
7
|
source: ReadableStream<T>;
|
|
7
8
|
signal?: AbortSignal;
|
|
8
9
|
flushIntervalMs?: number;
|
|
9
10
|
maxRetries?: number;
|
|
10
11
|
debug?: boolean;
|
|
11
|
-
|
|
12
|
+
maxInflightBytes?: number;
|
|
12
13
|
};
|
|
13
14
|
/**
|
|
14
15
|
* StreamsWriterV2 writes metadata stream data directly to S2 (https://s2.dev).
|
|
@@ -47,7 +48,7 @@ export declare class StreamsWriterV2<T = any> implements StreamsWriter {
|
|
|
47
48
|
private streamPromise;
|
|
48
49
|
private readonly flushIntervalMs;
|
|
49
50
|
private readonly debug;
|
|
50
|
-
private readonly
|
|
51
|
+
private readonly maxInflightBytes;
|
|
51
52
|
private aborted;
|
|
52
53
|
private sessionWritable;
|
|
53
54
|
constructor(options: StreamsWriterV2Options<T>);
|
|
@@ -40,16 +40,26 @@ class StreamsWriterV2 {
|
|
|
40
40
|
streamPromise;
|
|
41
41
|
flushIntervalMs;
|
|
42
42
|
debug;
|
|
43
|
-
|
|
43
|
+
maxInflightBytes;
|
|
44
44
|
aborted = false;
|
|
45
45
|
sessionWritable = null;
|
|
46
46
|
constructor(options) {
|
|
47
47
|
this.options = options;
|
|
48
48
|
this.debug = options.debug ?? false;
|
|
49
|
-
this.s2Client = new streamstore_1.S2({
|
|
49
|
+
this.s2Client = new streamstore_1.S2({
|
|
50
|
+
accessToken: options.accessToken,
|
|
51
|
+
...(options.endpoint
|
|
52
|
+
? {
|
|
53
|
+
endpoints: {
|
|
54
|
+
account: options.endpoint,
|
|
55
|
+
basin: options.endpoint,
|
|
56
|
+
},
|
|
57
|
+
}
|
|
58
|
+
: {}),
|
|
59
|
+
});
|
|
50
60
|
this.flushIntervalMs = options.flushIntervalMs ?? 200;
|
|
51
|
-
this.
|
|
52
|
-
this.log(`[S2MetadataStream] Initializing: basin=${options.basin}, stream=${options.stream}, flushIntervalMs=${this.flushIntervalMs},
|
|
61
|
+
this.maxInflightBytes = options.maxInflightBytes ?? 1024 * 1024 * 10; // 10MB default
|
|
62
|
+
this.log(`[S2MetadataStream] Initializing: basin=${options.basin}, stream=${options.stream}, flushIntervalMs=${this.flushIntervalMs}, maxInflightBytes=${this.maxInflightBytes}`);
|
|
53
63
|
// Check if already aborted
|
|
54
64
|
if (options.signal?.aborted) {
|
|
55
65
|
this.aborted = true;
|
|
@@ -100,7 +110,7 @@ class StreamsWriterV2 {
|
|
|
100
110
|
const basin = this.s2Client.basin(this.options.basin);
|
|
101
111
|
const stream = basin.stream(this.options.stream);
|
|
102
112
|
const session = await stream.appendSession({
|
|
103
|
-
|
|
113
|
+
maxInflightBytes: this.maxInflightBytes,
|
|
104
114
|
});
|
|
105
115
|
this.sessionWritable = session.writable;
|
|
106
116
|
this.log(`[S2MetadataStream] Starting stream pipeline`);
|
|
@@ -113,7 +123,7 @@ class StreamsWriterV2 {
|
|
|
113
123
|
return;
|
|
114
124
|
}
|
|
115
125
|
// Convert each chunk to JSON string and wrap in AppendRecord
|
|
116
|
-
controller.enqueue(streamstore_1.AppendRecord.
|
|
126
|
+
controller.enqueue(streamstore_1.AppendRecord.string({ body: JSON.stringify({ data: chunk, id: (0, nanoid_1.nanoid)(7) }) }));
|
|
117
127
|
},
|
|
118
128
|
}))
|
|
119
129
|
.pipeThrough(new streamstore_1.BatchTransform({
|
|
@@ -124,8 +134,8 @@ class StreamsWriterV2 {
|
|
|
124
134
|
// Get final position to verify completion
|
|
125
135
|
const lastAcked = session.lastAckedPosition();
|
|
126
136
|
if (lastAcked?.end) {
|
|
127
|
-
const recordsWritten = lastAcked.end.
|
|
128
|
-
this.log(`[S2MetadataStream] Written ${recordsWritten} records, ending at
|
|
137
|
+
const recordsWritten = lastAcked.end.seqNum;
|
|
138
|
+
this.log(`[S2MetadataStream] Written ${recordsWritten} records, ending at seqNum=${lastAcked.end.seqNum}`);
|
|
129
139
|
}
|
|
130
140
|
}
|
|
131
141
|
catch (error) {
|