@s2-dev/streamstore 0.17.6 → 0.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -1
- package/dist/cjs/accessTokens.d.ts +3 -2
- package/dist/cjs/accessTokens.d.ts.map +1 -1
- package/dist/cjs/accessTokens.js +22 -37
- package/dist/cjs/accessTokens.js.map +1 -1
- package/dist/cjs/basin.d.ts +4 -3
- package/dist/cjs/basin.d.ts.map +1 -1
- package/dist/cjs/basin.js +16 -6
- package/dist/cjs/basin.js.map +1 -1
- package/dist/cjs/basins.d.ts +10 -10
- package/dist/cjs/basins.d.ts.map +1 -1
- package/dist/cjs/basins.js +36 -64
- package/dist/cjs/basins.js.map +1 -1
- package/dist/cjs/batch-transform.d.ts +1 -1
- package/dist/cjs/batch-transform.d.ts.map +1 -1
- package/dist/cjs/batch-transform.js +36 -5
- package/dist/cjs/batch-transform.js.map +1 -1
- package/dist/cjs/common.d.ts +42 -0
- package/dist/cjs/common.d.ts.map +1 -1
- package/dist/cjs/error.d.ts +40 -2
- package/dist/cjs/error.d.ts.map +1 -1
- package/dist/cjs/error.js +268 -2
- package/dist/cjs/error.js.map +1 -1
- package/dist/cjs/generated/client/types.gen.d.ts +7 -0
- package/dist/cjs/generated/client/types.gen.d.ts.map +1 -1
- package/dist/cjs/generated/client/utils.gen.d.ts +1 -0
- package/dist/cjs/generated/client/utils.gen.d.ts.map +1 -1
- package/dist/cjs/generated/client/utils.gen.js.map +1 -1
- package/dist/cjs/generated/core/types.gen.d.ts +2 -0
- package/dist/cjs/generated/core/types.gen.d.ts.map +1 -1
- package/dist/cjs/index.d.ts +46 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +28 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/result.d.ts +57 -0
- package/dist/cjs/lib/result.d.ts.map +1 -0
- package/dist/cjs/lib/result.js +43 -0
- package/dist/cjs/lib/result.js.map +1 -0
- package/dist/cjs/lib/retry.d.ts +151 -0
- package/dist/cjs/lib/retry.d.ts.map +1 -0
- package/dist/cjs/lib/retry.js +839 -0
- package/dist/cjs/lib/retry.js.map +1 -0
- package/dist/cjs/lib/stream/factory.d.ts +0 -1
- package/dist/cjs/lib/stream/factory.d.ts.map +1 -1
- package/dist/cjs/lib/stream/factory.js +0 -1
- package/dist/cjs/lib/stream/factory.js.map +1 -1
- package/dist/cjs/lib/stream/runtime.d.ts +14 -0
- package/dist/cjs/lib/stream/runtime.d.ts.map +1 -1
- package/dist/cjs/lib/stream/runtime.js +18 -3
- package/dist/cjs/lib/stream/runtime.js.map +1 -1
- package/dist/cjs/lib/stream/transport/fetch/index.d.ts +24 -32
- package/dist/cjs/lib/stream/transport/fetch/index.d.ts.map +1 -1
- package/dist/cjs/lib/stream/transport/fetch/index.js +260 -187
- package/dist/cjs/lib/stream/transport/fetch/index.js.map +1 -1
- package/dist/cjs/lib/stream/transport/fetch/shared.d.ts +1 -2
- package/dist/cjs/lib/stream/transport/fetch/shared.d.ts.map +1 -1
- package/dist/cjs/lib/stream/transport/fetch/shared.js +49 -72
- package/dist/cjs/lib/stream/transport/fetch/shared.js.map +1 -1
- package/dist/cjs/lib/stream/transport/s2s/index.d.ts +0 -1
- package/dist/cjs/lib/stream/transport/s2s/index.d.ts.map +1 -1
- package/dist/cjs/lib/stream/transport/s2s/index.js +312 -352
- package/dist/cjs/lib/stream/transport/s2s/index.js.map +1 -1
- package/dist/cjs/lib/stream/types.d.ts +102 -8
- package/dist/cjs/lib/stream/types.d.ts.map +1 -1
- package/dist/cjs/metrics.d.ts +3 -2
- package/dist/cjs/metrics.d.ts.map +1 -1
- package/dist/cjs/metrics.js +24 -39
- package/dist/cjs/metrics.js.map +1 -1
- package/dist/cjs/s2.d.ts +1 -0
- package/dist/cjs/s2.d.ts.map +1 -1
- package/dist/cjs/s2.js +20 -3
- package/dist/cjs/s2.js.map +1 -1
- package/dist/cjs/stream.d.ts +5 -3
- package/dist/cjs/stream.d.ts.map +1 -1
- package/dist/cjs/stream.js +29 -18
- package/dist/cjs/stream.js.map +1 -1
- package/dist/cjs/streams.d.ts +10 -10
- package/dist/cjs/streams.d.ts.map +1 -1
- package/dist/cjs/streams.js +36 -64
- package/dist/cjs/streams.js.map +1 -1
- package/dist/cjs/utils.d.ts +3 -3
- package/dist/cjs/utils.d.ts.map +1 -1
- package/dist/cjs/utils.js +3 -3
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/version.d.ts +8 -0
- package/dist/cjs/version.d.ts.map +1 -0
- package/dist/cjs/version.js +11 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/accessTokens.d.ts +3 -2
- package/dist/esm/accessTokens.d.ts.map +1 -1
- package/dist/esm/accessTokens.js +23 -38
- package/dist/esm/accessTokens.js.map +1 -1
- package/dist/esm/basin.d.ts +4 -3
- package/dist/esm/basin.d.ts.map +1 -1
- package/dist/esm/basin.js +16 -6
- package/dist/esm/basin.js.map +1 -1
- package/dist/esm/basins.d.ts +10 -10
- package/dist/esm/basins.d.ts.map +1 -1
- package/dist/esm/basins.js +37 -65
- package/dist/esm/basins.js.map +1 -1
- package/dist/esm/batch-transform.d.ts +1 -1
- package/dist/esm/batch-transform.d.ts.map +1 -1
- package/dist/esm/batch-transform.js +37 -6
- package/dist/esm/batch-transform.js.map +1 -1
- package/dist/esm/common.d.ts +42 -0
- package/dist/esm/common.d.ts.map +1 -1
- package/dist/esm/error.d.ts +40 -2
- package/dist/esm/error.d.ts.map +1 -1
- package/dist/esm/error.js +260 -2
- package/dist/esm/error.js.map +1 -1
- package/dist/esm/generated/client/types.gen.d.ts +7 -0
- package/dist/esm/generated/client/types.gen.d.ts.map +1 -1
- package/dist/esm/generated/client/utils.gen.d.ts +1 -0
- package/dist/esm/generated/client/utils.gen.d.ts.map +1 -1
- package/dist/esm/generated/client/utils.gen.js.map +1 -1
- package/dist/esm/generated/core/types.gen.d.ts +2 -0
- package/dist/esm/generated/core/types.gen.d.ts.map +1 -1
- package/dist/esm/index.d.ts +46 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +23 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/result.d.ts +57 -0
- package/dist/esm/lib/result.d.ts.map +1 -0
- package/dist/esm/lib/result.js +37 -0
- package/dist/esm/lib/result.js.map +1 -0
- package/dist/esm/lib/retry.d.ts +151 -0
- package/dist/esm/lib/retry.d.ts.map +1 -0
- package/dist/esm/lib/retry.js +830 -0
- package/dist/esm/lib/retry.js.map +1 -0
- package/dist/esm/lib/stream/factory.d.ts +0 -1
- package/dist/esm/lib/stream/factory.d.ts.map +1 -1
- package/dist/esm/lib/stream/factory.js +0 -1
- package/dist/esm/lib/stream/factory.js.map +1 -1
- package/dist/esm/lib/stream/runtime.d.ts +14 -0
- package/dist/esm/lib/stream/runtime.d.ts.map +1 -1
- package/dist/esm/lib/stream/runtime.js +23 -3
- package/dist/esm/lib/stream/runtime.js.map +1 -1
- package/dist/esm/lib/stream/transport/fetch/index.d.ts +24 -32
- package/dist/esm/lib/stream/transport/fetch/index.d.ts.map +1 -1
- package/dist/esm/lib/stream/transport/fetch/index.js +260 -187
- package/dist/esm/lib/stream/transport/fetch/index.js.map +1 -1
- package/dist/esm/lib/stream/transport/fetch/shared.d.ts +1 -2
- package/dist/esm/lib/stream/transport/fetch/shared.d.ts.map +1 -1
- package/dist/esm/lib/stream/transport/fetch/shared.js +51 -74
- package/dist/esm/lib/stream/transport/fetch/shared.js.map +1 -1
- package/dist/esm/lib/stream/transport/s2s/index.d.ts +0 -1
- package/dist/esm/lib/stream/transport/s2s/index.d.ts.map +1 -1
- package/dist/esm/lib/stream/transport/s2s/index.js +313 -353
- package/dist/esm/lib/stream/transport/s2s/index.js.map +1 -1
- package/dist/esm/lib/stream/types.d.ts +102 -8
- package/dist/esm/lib/stream/types.d.ts.map +1 -1
- package/dist/esm/metrics.d.ts +3 -2
- package/dist/esm/metrics.d.ts.map +1 -1
- package/dist/esm/metrics.js +25 -40
- package/dist/esm/metrics.js.map +1 -1
- package/dist/esm/s2.d.ts +1 -0
- package/dist/esm/s2.d.ts.map +1 -1
- package/dist/esm/s2.js +20 -3
- package/dist/esm/s2.js.map +1 -1
- package/dist/esm/stream.d.ts +5 -3
- package/dist/esm/stream.d.ts.map +1 -1
- package/dist/esm/stream.js +30 -19
- package/dist/esm/stream.js.map +1 -1
- package/dist/esm/streams.d.ts +10 -10
- package/dist/esm/streams.d.ts.map +1 -1
- package/dist/esm/streams.js +37 -65
- package/dist/esm/streams.js.map +1 -1
- package/dist/esm/utils.d.ts +3 -3
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +2 -2
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/version.d.ts +8 -0
- package/dist/esm/version.d.ts.map +1 -0
- package/dist/esm/version.js +8 -0
- package/dist/esm/version.js.map +1 -0
- package/package.json +7 -4
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FetchTransport = exports.FetchAppendSession = exports.FetchReadSession = void 0;
|
|
4
|
+
const debug_1 = require("debug");
|
|
4
5
|
const error_js_1 = require("../../../../error.js");
|
|
5
6
|
const index_js_1 = require("../../../../generated/client/index.js");
|
|
6
7
|
const index_js_2 = require("../../../../generated/index.js");
|
|
@@ -8,49 +9,99 @@ const utils_js_1 = require("../../../../utils.js");
|
|
|
8
9
|
const base64_js_1 = require("../../../base64.js");
|
|
9
10
|
const event_stream_js_1 = require("../../../event-stream.js");
|
|
10
11
|
const Redacted = require("../../../redacted.js");
|
|
12
|
+
const result_js_1 = require("../../../result.js");
|
|
13
|
+
const retry_js_1 = require("../../../retry.js");
|
|
14
|
+
const runtime_js_1 = require("../../runtime.js");
|
|
11
15
|
const shared_js_1 = require("./shared.js");
|
|
12
|
-
|
|
16
|
+
const debug = (0, debug_1.default)("s2:fetch");
|
|
17
|
+
class FetchReadSession extends ReadableStream {
|
|
13
18
|
static async create(client, name, args, options) {
|
|
19
|
+
debug("FetchReadSession.create stream=%s args=%o", name, args);
|
|
14
20
|
const { as, ...queryParams } = args ?? {};
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
21
|
+
try {
|
|
22
|
+
const response = await (0, index_js_2.read)({
|
|
23
|
+
client,
|
|
24
|
+
path: {
|
|
25
|
+
stream: name,
|
|
26
|
+
},
|
|
27
|
+
headers: {
|
|
28
|
+
accept: "text/event-stream",
|
|
29
|
+
...(as === "bytes" ? { "s2-format": "base64" } : {}),
|
|
30
|
+
},
|
|
31
|
+
query: queryParams,
|
|
32
|
+
parseAs: "stream",
|
|
33
|
+
...options,
|
|
34
|
+
});
|
|
35
|
+
if (response.error) {
|
|
36
|
+
// Convert error to S2Error and return error session
|
|
37
|
+
const status = response.response.status;
|
|
38
|
+
const error = "message" in response.error
|
|
39
|
+
? new error_js_1.S2Error({
|
|
40
|
+
message: response.error.message,
|
|
41
|
+
code: response.error.code ?? undefined,
|
|
42
|
+
status,
|
|
43
|
+
})
|
|
44
|
+
: status === 416
|
|
45
|
+
? new error_js_1.RangeNotSatisfiableError({
|
|
46
|
+
status,
|
|
47
|
+
})
|
|
48
|
+
: new error_js_1.S2Error({
|
|
49
|
+
message: response.response.statusText ?? "Request failed",
|
|
50
|
+
status,
|
|
51
|
+
});
|
|
52
|
+
return FetchReadSession.createErrorSession(error);
|
|
35
53
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
54
|
+
if (!response.response.body) {
|
|
55
|
+
const error = new error_js_1.S2Error({
|
|
56
|
+
message: "No body in SSE response",
|
|
57
|
+
code: "INVALID_RESPONSE",
|
|
58
|
+
status: 502,
|
|
59
|
+
origin: "sdk",
|
|
40
60
|
});
|
|
61
|
+
return FetchReadSession.createErrorSession(error);
|
|
41
62
|
}
|
|
63
|
+
const format = (args?.as ?? "string");
|
|
64
|
+
return new FetchReadSession(response.response.body, format);
|
|
42
65
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
66
|
+
catch (error) {
|
|
67
|
+
// Catch any thrown errors (network failures, DNS errors, etc.)
|
|
68
|
+
const s2Error = error instanceof error_js_1.S2Error
|
|
69
|
+
? error
|
|
70
|
+
: new error_js_1.S2Error({
|
|
71
|
+
message: String(error),
|
|
72
|
+
status: 502, // Bad Gateway - network/fetch failure
|
|
73
|
+
});
|
|
74
|
+
return FetchReadSession.createErrorSession(s2Error);
|
|
47
75
|
}
|
|
48
|
-
const format = (args?.as ?? "string");
|
|
49
|
-
return new FetchReadSession(response.response.body, format);
|
|
50
76
|
}
|
|
51
|
-
|
|
77
|
+
/**
|
|
78
|
+
* Create a session that immediately emits an error result and closes.
|
|
79
|
+
* Used when errors occur during session creation.
|
|
80
|
+
*/
|
|
81
|
+
static createErrorSession(error) {
|
|
82
|
+
// Create a custom instance that extends ReadableStream and emits error immediately
|
|
83
|
+
const stream = new ReadableStream({
|
|
84
|
+
start(controller) {
|
|
85
|
+
controller.enqueue({ ok: false, error });
|
|
86
|
+
controller.close();
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
// Copy methods from stream to create a proper FetchReadSession
|
|
90
|
+
const session = Object.assign(Object.create(FetchReadSession.prototype), stream);
|
|
91
|
+
session._nextReadPosition = undefined;
|
|
92
|
+
session._lastObservedTail = undefined;
|
|
93
|
+
return session;
|
|
94
|
+
}
|
|
95
|
+
_nextReadPosition = undefined;
|
|
96
|
+
_lastObservedTail = undefined;
|
|
52
97
|
constructor(stream, format) {
|
|
53
|
-
|
|
98
|
+
// Track error from parser
|
|
99
|
+
let parserError = null;
|
|
100
|
+
// Track last ping time for timeout detection (20s without a ping = timeout)
|
|
101
|
+
let lastPingTimeMs = performance.now();
|
|
102
|
+
const PING_TIMEOUT_MS = 20000; // 20 seconds
|
|
103
|
+
// Create EventStream that parses SSE and yields records
|
|
104
|
+
const eventStream = new event_stream_js_1.EventStream(stream, (msg) => {
|
|
54
105
|
// Parse SSE events according to the S2 protocol
|
|
55
106
|
if (msg.event === "batch" && msg.data) {
|
|
56
107
|
const rawBatch = JSON.parse(msg.data);
|
|
@@ -79,35 +130,106 @@ class FetchReadSession extends event_stream_js_1.EventStream {
|
|
|
79
130
|
}
|
|
80
131
|
})();
|
|
81
132
|
if (batch.tail) {
|
|
82
|
-
this.
|
|
133
|
+
this._lastObservedTail = batch.tail;
|
|
134
|
+
}
|
|
135
|
+
let lastRecord = batch.records?.at(-1);
|
|
136
|
+
if (lastRecord) {
|
|
137
|
+
this._nextReadPosition = {
|
|
138
|
+
seq_num: lastRecord.seq_num + 1,
|
|
139
|
+
timestamp: lastRecord.timestamp,
|
|
140
|
+
};
|
|
83
141
|
}
|
|
84
142
|
return { done: false, batch: true, value: batch.records ?? [] };
|
|
85
143
|
}
|
|
86
144
|
if (msg.event === "error") {
|
|
87
|
-
//
|
|
88
|
-
|
|
145
|
+
// Store error and signal end of stream
|
|
146
|
+
// SSE error events are server errors - treat as 503 (Service Unavailable) for retry logic
|
|
147
|
+
debug("parse event error");
|
|
148
|
+
parserError = new error_js_1.S2Error({
|
|
149
|
+
message: msg.data ?? "Unknown error",
|
|
150
|
+
status: 503,
|
|
151
|
+
});
|
|
152
|
+
return { done: true };
|
|
89
153
|
}
|
|
154
|
+
lastPingTimeMs = performance.now();
|
|
90
155
|
// Skip ping events and other events
|
|
91
156
|
return { done: false };
|
|
92
157
|
});
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
exports.FetchReadSession = FetchReadSession;
|
|
99
|
-
class AcksStream extends ReadableStream {
|
|
100
|
-
constructor(setController) {
|
|
158
|
+
// Wrap the EventStream to convert records to ReadResult and check for errors
|
|
159
|
+
const reader = eventStream.getReader();
|
|
160
|
+
let done = false;
|
|
101
161
|
super({
|
|
102
|
-
|
|
103
|
-
|
|
162
|
+
pull: async (controller) => {
|
|
163
|
+
if (done) {
|
|
164
|
+
controller.close();
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
// Check for ping timeout before reading
|
|
168
|
+
const now = performance.now();
|
|
169
|
+
const timeSinceLastPingMs = now - lastPingTimeMs;
|
|
170
|
+
if (timeSinceLastPingMs > PING_TIMEOUT_MS) {
|
|
171
|
+
const timeoutError = new error_js_1.S2Error({
|
|
172
|
+
message: `No ping received for ${Math.floor(timeSinceLastPingMs / 1000)}s (timeout: ${PING_TIMEOUT_MS / 1000}s)`,
|
|
173
|
+
status: 408, // Request Timeout
|
|
174
|
+
code: "TIMEOUT",
|
|
175
|
+
});
|
|
176
|
+
debug("ping timeout detected, elapsed=%dms", timeSinceLastPingMs);
|
|
177
|
+
controller.enqueue({ ok: false, error: timeoutError });
|
|
178
|
+
done = true;
|
|
179
|
+
controller.close();
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
try {
|
|
183
|
+
// Calculate remaining time until timeout
|
|
184
|
+
const remainingTimeMs = PING_TIMEOUT_MS - timeSinceLastPingMs;
|
|
185
|
+
// Race reader.read() against timeout
|
|
186
|
+
// This ensures we don't wait forever if server stops sending events
|
|
187
|
+
const result = await Promise.race([
|
|
188
|
+
reader.read(),
|
|
189
|
+
new Promise((_, reject) => setTimeout(() => {
|
|
190
|
+
const elapsed = performance.now() - lastPingTimeMs;
|
|
191
|
+
reject(new error_js_1.S2Error({
|
|
192
|
+
message: `No ping received for ${Math.floor(elapsed / 1000)}s (timeout: ${PING_TIMEOUT_MS / 1000}s)`,
|
|
193
|
+
status: 408,
|
|
194
|
+
code: "TIMEOUT",
|
|
195
|
+
}));
|
|
196
|
+
}, remainingTimeMs)),
|
|
197
|
+
]);
|
|
198
|
+
if (result.done) {
|
|
199
|
+
done = true;
|
|
200
|
+
// Check if stream ended due to error
|
|
201
|
+
if (parserError) {
|
|
202
|
+
controller.enqueue({ ok: false, error: parserError });
|
|
203
|
+
}
|
|
204
|
+
controller.close();
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
// Emit successful result
|
|
208
|
+
controller.enqueue({ ok: true, value: result.value });
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
// Convert unexpected errors to S2Error and emit as error result
|
|
213
|
+
const s2Err = error instanceof error_js_1.S2Error
|
|
214
|
+
? error
|
|
215
|
+
: new error_js_1.S2Error({ message: String(error), status: 500 });
|
|
216
|
+
controller.enqueue({ ok: false, error: s2Err });
|
|
217
|
+
done = true;
|
|
218
|
+
controller.close();
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
cancel: async () => {
|
|
222
|
+
await eventStream.cancel();
|
|
104
223
|
},
|
|
105
224
|
});
|
|
106
225
|
}
|
|
107
|
-
|
|
108
|
-
|
|
226
|
+
nextReadPosition() {
|
|
227
|
+
return this._nextReadPosition;
|
|
228
|
+
}
|
|
229
|
+
lastObservedTail() {
|
|
230
|
+
return this._lastObservedTail;
|
|
109
231
|
}
|
|
110
|
-
//
|
|
232
|
+
// Implement AsyncIterable (for await...of support)
|
|
111
233
|
[Symbol.asyncIterator]() {
|
|
112
234
|
const fn = ReadableStream.prototype[Symbol.asyncIterator];
|
|
113
235
|
if (typeof fn === "function")
|
|
@@ -116,177 +238,131 @@ class AcksStream extends ReadableStream {
|
|
|
116
238
|
return {
|
|
117
239
|
next: async () => {
|
|
118
240
|
const r = await reader.read();
|
|
119
|
-
if (r.done)
|
|
120
|
-
reader.releaseLock();
|
|
241
|
+
if (r.done)
|
|
121
242
|
return { done: true, value: undefined };
|
|
122
|
-
}
|
|
123
243
|
return { done: false, value: r.value };
|
|
124
244
|
},
|
|
125
|
-
|
|
126
|
-
await reader.cancel(e);
|
|
245
|
+
return: async (value) => {
|
|
127
246
|
reader.releaseLock();
|
|
128
|
-
return { done: true, value
|
|
247
|
+
return { done: true, value };
|
|
129
248
|
},
|
|
130
|
-
|
|
131
|
-
await reader.cancel("done");
|
|
249
|
+
throw: async (e) => {
|
|
132
250
|
reader.releaseLock();
|
|
133
|
-
|
|
251
|
+
throw e;
|
|
134
252
|
},
|
|
135
253
|
[Symbol.asyncIterator]() {
|
|
136
254
|
return this;
|
|
137
255
|
},
|
|
138
256
|
};
|
|
139
257
|
}
|
|
258
|
+
// Implement AsyncDisposable
|
|
259
|
+
async [Symbol.asyncDispose]() {
|
|
260
|
+
await this.cancel();
|
|
261
|
+
}
|
|
140
262
|
}
|
|
263
|
+
exports.FetchReadSession = FetchReadSession;
|
|
264
|
+
// Removed AcksStream - transport sessions no longer expose streams
|
|
141
265
|
/**
|
|
142
|
-
*
|
|
143
|
-
* Queues append requests and ensures only one is in-flight at a time.
|
|
266
|
+
* Fetch-based transport session for appending records via HTTP/1.1.
|
|
267
|
+
* Queues append requests and ensures only one is in-flight at a time (single-flight).
|
|
268
|
+
* No backpressure, no retry logic, no streams - just submit/close with value-encoded errors.
|
|
144
269
|
*/
|
|
145
270
|
class FetchAppendSession {
|
|
146
|
-
_lastAckedPosition = undefined;
|
|
147
271
|
queue = [];
|
|
148
272
|
pendingResolvers = [];
|
|
149
273
|
inFlight = false;
|
|
150
274
|
options;
|
|
151
275
|
stream;
|
|
152
|
-
acksController;
|
|
153
|
-
_readable;
|
|
154
|
-
_writable;
|
|
155
276
|
closed = false;
|
|
156
277
|
processingPromise = null;
|
|
157
|
-
queuedBytes = 0;
|
|
158
|
-
maxQueuedBytes;
|
|
159
|
-
waitingForCapacity = [];
|
|
160
278
|
client;
|
|
161
|
-
readable;
|
|
162
|
-
writable;
|
|
163
279
|
static async create(stream, transportConfig, sessionOptions, requestOptions) {
|
|
164
280
|
return new FetchAppendSession(stream, transportConfig, sessionOptions, requestOptions);
|
|
165
281
|
}
|
|
166
282
|
constructor(stream, transportConfig, sessionOptions, requestOptions) {
|
|
167
283
|
this.options = requestOptions;
|
|
168
284
|
this.stream = stream;
|
|
169
|
-
|
|
285
|
+
const headers = {};
|
|
286
|
+
if (transportConfig.basinName) {
|
|
287
|
+
headers["s2-basin"] = transportConfig.basinName;
|
|
288
|
+
}
|
|
289
|
+
if ((0, runtime_js_1.canSetUserAgentHeader)()) {
|
|
290
|
+
headers["user-agent"] = runtime_js_1.DEFAULT_USER_AGENT;
|
|
291
|
+
}
|
|
170
292
|
this.client = (0, index_js_1.createClient)((0, index_js_1.createConfig)({
|
|
171
293
|
baseUrl: transportConfig.baseUrl,
|
|
172
294
|
auth: () => Redacted.value(transportConfig.accessToken),
|
|
295
|
+
headers: headers,
|
|
173
296
|
}));
|
|
174
|
-
// Create the readable stream for acks
|
|
175
|
-
this._readable = new AcksStream((controller) => {
|
|
176
|
-
this.acksController = controller;
|
|
177
|
-
});
|
|
178
|
-
this.readable = this._readable;
|
|
179
|
-
// Create the writable stream
|
|
180
|
-
let writableController;
|
|
181
|
-
this._writable = new WritableStream({
|
|
182
|
-
start: (controller) => {
|
|
183
|
-
writableController = controller;
|
|
184
|
-
},
|
|
185
|
-
write: async (chunk) => {
|
|
186
|
-
// Calculate batch size
|
|
187
|
-
let batchMeteredSize = 0;
|
|
188
|
-
for (const record of chunk.records) {
|
|
189
|
-
batchMeteredSize += (0, utils_js_1.meteredSizeBytes)(record);
|
|
190
|
-
}
|
|
191
|
-
// Wait for capacity if needed
|
|
192
|
-
while (this.queuedBytes + batchMeteredSize > this.maxQueuedBytes &&
|
|
193
|
-
!this.closed) {
|
|
194
|
-
await new Promise((resolve) => {
|
|
195
|
-
this.waitingForCapacity.push(resolve);
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
// Submit the batch
|
|
199
|
-
this.submit(chunk.records, {
|
|
200
|
-
fencing_token: chunk.fencing_token ?? undefined,
|
|
201
|
-
match_seq_num: chunk.match_seq_num ?? undefined,
|
|
202
|
-
}, batchMeteredSize);
|
|
203
|
-
},
|
|
204
|
-
close: async () => {
|
|
205
|
-
this.closed = true;
|
|
206
|
-
await this.waitForDrain();
|
|
207
|
-
},
|
|
208
|
-
abort: async (reason) => {
|
|
209
|
-
this.closed = true;
|
|
210
|
-
this.queue = [];
|
|
211
|
-
this.queuedBytes = 0;
|
|
212
|
-
// Reject all pending promises
|
|
213
|
-
const error = new error_js_1.S2Error({
|
|
214
|
-
message: `AppendSession was aborted: ${reason}`,
|
|
215
|
-
});
|
|
216
|
-
for (const resolver of this.pendingResolvers) {
|
|
217
|
-
resolver.reject(error);
|
|
218
|
-
}
|
|
219
|
-
this.pendingResolvers = [];
|
|
220
|
-
// Reject all waiting for capacity
|
|
221
|
-
for (const resolver of this.waitingForCapacity) {
|
|
222
|
-
resolver();
|
|
223
|
-
}
|
|
224
|
-
this.waitingForCapacity = [];
|
|
225
|
-
},
|
|
226
|
-
});
|
|
227
|
-
this.writable = this._writable;
|
|
228
|
-
}
|
|
229
|
-
async [Symbol.asyncDispose]() {
|
|
230
|
-
await this.close();
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Get a stream of acknowledgements for appends.
|
|
234
|
-
*/
|
|
235
|
-
acks() {
|
|
236
|
-
return this._readable;
|
|
237
297
|
}
|
|
238
298
|
/**
|
|
239
299
|
* Close the append session.
|
|
240
300
|
* Waits for all pending appends to complete before resolving.
|
|
301
|
+
* Never throws - returns CloseResult.
|
|
241
302
|
*/
|
|
242
303
|
async close() {
|
|
243
|
-
|
|
304
|
+
try {
|
|
305
|
+
this.closed = true;
|
|
306
|
+
await this.waitForDrain();
|
|
307
|
+
return (0, result_js_1.okClose)();
|
|
308
|
+
}
|
|
309
|
+
catch (error) {
|
|
310
|
+
const s2Err = error instanceof error_js_1.S2Error
|
|
311
|
+
? error
|
|
312
|
+
: new error_js_1.S2Error({ message: String(error), status: 500 });
|
|
313
|
+
return (0, result_js_1.errClose)(s2Err);
|
|
314
|
+
}
|
|
244
315
|
}
|
|
245
316
|
/**
|
|
246
317
|
* Submit an append request to the session.
|
|
247
318
|
* The request will be queued and sent when no other request is in-flight.
|
|
248
|
-
*
|
|
319
|
+
* Never throws - returns AppendResult discriminated union.
|
|
249
320
|
*/
|
|
250
|
-
submit(records, args
|
|
321
|
+
submit(records, args) {
|
|
322
|
+
// Validate closed state
|
|
251
323
|
if (this.closed) {
|
|
252
|
-
return Promise.
|
|
324
|
+
return Promise.resolve((0, result_js_1.err)(new error_js_1.S2Error({ message: "AppendSession is closed", status: 400 })));
|
|
253
325
|
}
|
|
254
326
|
const recordsArray = Array.isArray(records) ? records : [records];
|
|
255
|
-
// Validate batch size limits
|
|
327
|
+
// Validate batch size limits (non-retryable 400-level error)
|
|
256
328
|
if (recordsArray.length > 1000) {
|
|
257
|
-
return Promise.
|
|
329
|
+
return Promise.resolve((0, result_js_1.err)(new error_js_1.S2Error({
|
|
258
330
|
message: `Batch of ${recordsArray.length} exceeds maximum batch size of 1000 records`,
|
|
259
|
-
|
|
331
|
+
status: 400,
|
|
332
|
+
code: "INVALID_ARGUMENT",
|
|
333
|
+
})));
|
|
260
334
|
}
|
|
261
335
|
// Validate metered size (use precalculated if provided)
|
|
262
|
-
let batchMeteredSize = precalculatedSize ?? 0;
|
|
336
|
+
let batchMeteredSize = args?.precalculatedSize ?? 0;
|
|
263
337
|
if (batchMeteredSize === 0) {
|
|
264
338
|
for (const record of recordsArray) {
|
|
265
|
-
batchMeteredSize += (0, utils_js_1.
|
|
339
|
+
batchMeteredSize += (0, utils_js_1.meteredBytes)(record);
|
|
266
340
|
}
|
|
267
341
|
}
|
|
268
342
|
if (batchMeteredSize > 1024 * 1024) {
|
|
269
|
-
return Promise.
|
|
343
|
+
return Promise.resolve((0, result_js_1.err)(new error_js_1.S2Error({
|
|
270
344
|
message: `Batch size ${batchMeteredSize} bytes exceeds maximum of 1 MiB (1048576 bytes)`,
|
|
271
|
-
|
|
345
|
+
status: 400,
|
|
346
|
+
code: "INVALID_ARGUMENT",
|
|
347
|
+
})));
|
|
272
348
|
}
|
|
273
|
-
return new Promise((resolve
|
|
349
|
+
return new Promise((resolve) => {
|
|
274
350
|
this.queue.push({
|
|
275
351
|
records: recordsArray,
|
|
276
352
|
fencing_token: args?.fencing_token,
|
|
277
353
|
match_seq_num: args?.match_seq_num,
|
|
278
|
-
meteredSize: batchMeteredSize,
|
|
279
354
|
});
|
|
280
|
-
this.
|
|
281
|
-
this.pendingResolvers.push({ resolve, reject });
|
|
355
|
+
this.pendingResolvers.push({ resolve });
|
|
282
356
|
// Start processing if not already running
|
|
283
357
|
if (!this.processingPromise) {
|
|
284
|
-
|
|
358
|
+
// Attach a catch to avoid unhandled rejection warnings on hard failures
|
|
359
|
+
this.processingPromise = this.processLoop().catch(() => { });
|
|
285
360
|
}
|
|
286
361
|
});
|
|
287
362
|
}
|
|
288
363
|
/**
|
|
289
364
|
* Main processing loop that sends queued requests one at a time.
|
|
365
|
+
* Single-flight: only one request in progress at a time.
|
|
290
366
|
*/
|
|
291
367
|
async processLoop() {
|
|
292
368
|
while (this.queue.length > 0) {
|
|
@@ -298,41 +374,27 @@ class FetchAppendSession {
|
|
|
298
374
|
fencing_token: args.fencing_token,
|
|
299
375
|
match_seq_num: args.match_seq_num,
|
|
300
376
|
}, this.options);
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
if (this.acksController) {
|
|
304
|
-
this.acksController.enqueue(ack);
|
|
305
|
-
}
|
|
306
|
-
// Resolve the promise for this request
|
|
307
|
-
resolver.resolve(ack);
|
|
308
|
-
// Release capacity and wake up waiting writers
|
|
309
|
-
this.queuedBytes -= args.meteredSize;
|
|
310
|
-
while (this.waitingForCapacity.length > 0) {
|
|
311
|
-
const waiter = this.waitingForCapacity.shift();
|
|
312
|
-
waiter();
|
|
313
|
-
// Only wake one at a time - let them check capacity again
|
|
314
|
-
break;
|
|
315
|
-
}
|
|
377
|
+
// Resolve with success result
|
|
378
|
+
resolver.resolve((0, result_js_1.ok)(ack));
|
|
316
379
|
}
|
|
317
380
|
catch (error) {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
//
|
|
381
|
+
// Convert error to S2Error and resolve with error result
|
|
382
|
+
const s2Err = error instanceof error_js_1.S2Error
|
|
383
|
+
? error
|
|
384
|
+
: new error_js_1.S2Error({ message: String(error), status: 502 });
|
|
385
|
+
// Resolve this request with error
|
|
386
|
+
resolver.resolve((0, result_js_1.err)(s2Err));
|
|
387
|
+
// Resolve all remaining pending promises with the same error
|
|
388
|
+
// (transport failure affects all queued requests)
|
|
323
389
|
for (const pendingResolver of this.pendingResolvers) {
|
|
324
|
-
pendingResolver.
|
|
390
|
+
pendingResolver.resolve((0, result_js_1.err)(s2Err));
|
|
325
391
|
}
|
|
326
392
|
this.pendingResolvers = [];
|
|
327
|
-
// Clear the queue
|
|
393
|
+
// Clear the queue
|
|
328
394
|
this.queue = [];
|
|
329
|
-
this.
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
waiter();
|
|
333
|
-
}
|
|
334
|
-
this.waitingForCapacity = [];
|
|
335
|
-
// Do not rethrow here to avoid unhandled rejection; callers already received rejection
|
|
395
|
+
this.inFlight = false;
|
|
396
|
+
this.processingPromise = null;
|
|
397
|
+
return;
|
|
336
398
|
}
|
|
337
399
|
this.inFlight = false;
|
|
338
400
|
}
|
|
@@ -347,13 +409,6 @@ class FetchAppendSession {
|
|
|
347
409
|
while (this.queue.length > 0 || this.inFlight) {
|
|
348
410
|
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
349
411
|
}
|
|
350
|
-
// Close the acks stream if it exists
|
|
351
|
-
if (this.acksController) {
|
|
352
|
-
this.acksController.close();
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
lastAckedPosition() {
|
|
356
|
-
return this._lastAckedPosition;
|
|
357
412
|
}
|
|
358
413
|
}
|
|
359
414
|
exports.FetchAppendSession = FetchAppendSession;
|
|
@@ -365,17 +420,35 @@ class FetchTransport {
|
|
|
365
420
|
client;
|
|
366
421
|
transportConfig;
|
|
367
422
|
constructor(config) {
|
|
423
|
+
const headers = {};
|
|
424
|
+
if (config.basinName) {
|
|
425
|
+
headers["s2-basin"] = config.basinName;
|
|
426
|
+
}
|
|
427
|
+
if ((0, runtime_js_1.canSetUserAgentHeader)()) {
|
|
428
|
+
headers["user-agent"] = runtime_js_1.DEFAULT_USER_AGENT;
|
|
429
|
+
}
|
|
368
430
|
this.client = (0, index_js_1.createClient)((0, index_js_1.createConfig)({
|
|
369
431
|
baseUrl: config.baseUrl,
|
|
370
432
|
auth: () => Redacted.value(config.accessToken),
|
|
433
|
+
headers: headers,
|
|
371
434
|
}));
|
|
372
435
|
this.transportConfig = config;
|
|
373
436
|
}
|
|
374
437
|
async makeAppendSession(stream, sessionOptions, requestOptions) {
|
|
375
|
-
|
|
438
|
+
// Fetch transport intentionally enforces single-flight submission (HTTP/1.1)
|
|
439
|
+
// This ensures only one batch is in-flight at a time, regardless of user setting.
|
|
440
|
+
const opts = {
|
|
441
|
+
...sessionOptions,
|
|
442
|
+
maxInflightBatches: 1,
|
|
443
|
+
};
|
|
444
|
+
return retry_js_1.RetryAppendSession.create((myOptions) => {
|
|
445
|
+
return FetchAppendSession.create(stream, this.transportConfig, myOptions, requestOptions);
|
|
446
|
+
}, opts, this.transportConfig.retry);
|
|
376
447
|
}
|
|
377
448
|
async makeReadSession(stream, args, options) {
|
|
378
|
-
return
|
|
449
|
+
return retry_js_1.RetryReadSession.create((myArgs) => {
|
|
450
|
+
return FetchReadSession.create(this.client, stream, myArgs, options);
|
|
451
|
+
}, args, this.transportConfig.retry);
|
|
379
452
|
}
|
|
380
453
|
}
|
|
381
454
|
exports.FetchTransport = FetchTransport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/lib/stream/transport/fetch/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/lib/stream/transport/fetch/index.ts"],"names":[],"mappings":"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"}
|