@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.
Files changed (176) hide show
  1. package/README.md +69 -1
  2. package/dist/cjs/accessTokens.d.ts +3 -2
  3. package/dist/cjs/accessTokens.d.ts.map +1 -1
  4. package/dist/cjs/accessTokens.js +22 -37
  5. package/dist/cjs/accessTokens.js.map +1 -1
  6. package/dist/cjs/basin.d.ts +4 -3
  7. package/dist/cjs/basin.d.ts.map +1 -1
  8. package/dist/cjs/basin.js +16 -6
  9. package/dist/cjs/basin.js.map +1 -1
  10. package/dist/cjs/basins.d.ts +10 -10
  11. package/dist/cjs/basins.d.ts.map +1 -1
  12. package/dist/cjs/basins.js +36 -64
  13. package/dist/cjs/basins.js.map +1 -1
  14. package/dist/cjs/batch-transform.d.ts +1 -1
  15. package/dist/cjs/batch-transform.d.ts.map +1 -1
  16. package/dist/cjs/batch-transform.js +36 -5
  17. package/dist/cjs/batch-transform.js.map +1 -1
  18. package/dist/cjs/common.d.ts +42 -0
  19. package/dist/cjs/common.d.ts.map +1 -1
  20. package/dist/cjs/error.d.ts +40 -2
  21. package/dist/cjs/error.d.ts.map +1 -1
  22. package/dist/cjs/error.js +268 -2
  23. package/dist/cjs/error.js.map +1 -1
  24. package/dist/cjs/generated/client/types.gen.d.ts +7 -0
  25. package/dist/cjs/generated/client/types.gen.d.ts.map +1 -1
  26. package/dist/cjs/generated/client/utils.gen.d.ts +1 -0
  27. package/dist/cjs/generated/client/utils.gen.d.ts.map +1 -1
  28. package/dist/cjs/generated/client/utils.gen.js.map +1 -1
  29. package/dist/cjs/generated/core/types.gen.d.ts +2 -0
  30. package/dist/cjs/generated/core/types.gen.d.ts.map +1 -1
  31. package/dist/cjs/index.d.ts +46 -3
  32. package/dist/cjs/index.d.ts.map +1 -1
  33. package/dist/cjs/index.js +28 -2
  34. package/dist/cjs/index.js.map +1 -1
  35. package/dist/cjs/lib/result.d.ts +57 -0
  36. package/dist/cjs/lib/result.d.ts.map +1 -0
  37. package/dist/cjs/lib/result.js +43 -0
  38. package/dist/cjs/lib/result.js.map +1 -0
  39. package/dist/cjs/lib/retry.d.ts +151 -0
  40. package/dist/cjs/lib/retry.d.ts.map +1 -0
  41. package/dist/cjs/lib/retry.js +839 -0
  42. package/dist/cjs/lib/retry.js.map +1 -0
  43. package/dist/cjs/lib/stream/factory.d.ts +0 -1
  44. package/dist/cjs/lib/stream/factory.d.ts.map +1 -1
  45. package/dist/cjs/lib/stream/factory.js +0 -1
  46. package/dist/cjs/lib/stream/factory.js.map +1 -1
  47. package/dist/cjs/lib/stream/runtime.d.ts +14 -0
  48. package/dist/cjs/lib/stream/runtime.d.ts.map +1 -1
  49. package/dist/cjs/lib/stream/runtime.js +18 -3
  50. package/dist/cjs/lib/stream/runtime.js.map +1 -1
  51. package/dist/cjs/lib/stream/transport/fetch/index.d.ts +24 -32
  52. package/dist/cjs/lib/stream/transport/fetch/index.d.ts.map +1 -1
  53. package/dist/cjs/lib/stream/transport/fetch/index.js +260 -187
  54. package/dist/cjs/lib/stream/transport/fetch/index.js.map +1 -1
  55. package/dist/cjs/lib/stream/transport/fetch/shared.d.ts +1 -2
  56. package/dist/cjs/lib/stream/transport/fetch/shared.d.ts.map +1 -1
  57. package/dist/cjs/lib/stream/transport/fetch/shared.js +49 -72
  58. package/dist/cjs/lib/stream/transport/fetch/shared.js.map +1 -1
  59. package/dist/cjs/lib/stream/transport/s2s/index.d.ts +0 -1
  60. package/dist/cjs/lib/stream/transport/s2s/index.d.ts.map +1 -1
  61. package/dist/cjs/lib/stream/transport/s2s/index.js +312 -352
  62. package/dist/cjs/lib/stream/transport/s2s/index.js.map +1 -1
  63. package/dist/cjs/lib/stream/types.d.ts +102 -8
  64. package/dist/cjs/lib/stream/types.d.ts.map +1 -1
  65. package/dist/cjs/metrics.d.ts +3 -2
  66. package/dist/cjs/metrics.d.ts.map +1 -1
  67. package/dist/cjs/metrics.js +24 -39
  68. package/dist/cjs/metrics.js.map +1 -1
  69. package/dist/cjs/s2.d.ts +1 -0
  70. package/dist/cjs/s2.d.ts.map +1 -1
  71. package/dist/cjs/s2.js +20 -3
  72. package/dist/cjs/s2.js.map +1 -1
  73. package/dist/cjs/stream.d.ts +5 -3
  74. package/dist/cjs/stream.d.ts.map +1 -1
  75. package/dist/cjs/stream.js +29 -18
  76. package/dist/cjs/stream.js.map +1 -1
  77. package/dist/cjs/streams.d.ts +10 -10
  78. package/dist/cjs/streams.d.ts.map +1 -1
  79. package/dist/cjs/streams.js +36 -64
  80. package/dist/cjs/streams.js.map +1 -1
  81. package/dist/cjs/utils.d.ts +3 -3
  82. package/dist/cjs/utils.d.ts.map +1 -1
  83. package/dist/cjs/utils.js +3 -3
  84. package/dist/cjs/utils.js.map +1 -1
  85. package/dist/cjs/version.d.ts +8 -0
  86. package/dist/cjs/version.d.ts.map +1 -0
  87. package/dist/cjs/version.js +11 -0
  88. package/dist/cjs/version.js.map +1 -0
  89. package/dist/esm/accessTokens.d.ts +3 -2
  90. package/dist/esm/accessTokens.d.ts.map +1 -1
  91. package/dist/esm/accessTokens.js +23 -38
  92. package/dist/esm/accessTokens.js.map +1 -1
  93. package/dist/esm/basin.d.ts +4 -3
  94. package/dist/esm/basin.d.ts.map +1 -1
  95. package/dist/esm/basin.js +16 -6
  96. package/dist/esm/basin.js.map +1 -1
  97. package/dist/esm/basins.d.ts +10 -10
  98. package/dist/esm/basins.d.ts.map +1 -1
  99. package/dist/esm/basins.js +37 -65
  100. package/dist/esm/basins.js.map +1 -1
  101. package/dist/esm/batch-transform.d.ts +1 -1
  102. package/dist/esm/batch-transform.d.ts.map +1 -1
  103. package/dist/esm/batch-transform.js +37 -6
  104. package/dist/esm/batch-transform.js.map +1 -1
  105. package/dist/esm/common.d.ts +42 -0
  106. package/dist/esm/common.d.ts.map +1 -1
  107. package/dist/esm/error.d.ts +40 -2
  108. package/dist/esm/error.d.ts.map +1 -1
  109. package/dist/esm/error.js +260 -2
  110. package/dist/esm/error.js.map +1 -1
  111. package/dist/esm/generated/client/types.gen.d.ts +7 -0
  112. package/dist/esm/generated/client/types.gen.d.ts.map +1 -1
  113. package/dist/esm/generated/client/utils.gen.d.ts +1 -0
  114. package/dist/esm/generated/client/utils.gen.d.ts.map +1 -1
  115. package/dist/esm/generated/client/utils.gen.js.map +1 -1
  116. package/dist/esm/generated/core/types.gen.d.ts +2 -0
  117. package/dist/esm/generated/core/types.gen.d.ts.map +1 -1
  118. package/dist/esm/index.d.ts +46 -3
  119. package/dist/esm/index.d.ts.map +1 -1
  120. package/dist/esm/index.js +23 -1
  121. package/dist/esm/index.js.map +1 -1
  122. package/dist/esm/lib/result.d.ts +57 -0
  123. package/dist/esm/lib/result.d.ts.map +1 -0
  124. package/dist/esm/lib/result.js +37 -0
  125. package/dist/esm/lib/result.js.map +1 -0
  126. package/dist/esm/lib/retry.d.ts +151 -0
  127. package/dist/esm/lib/retry.d.ts.map +1 -0
  128. package/dist/esm/lib/retry.js +830 -0
  129. package/dist/esm/lib/retry.js.map +1 -0
  130. package/dist/esm/lib/stream/factory.d.ts +0 -1
  131. package/dist/esm/lib/stream/factory.d.ts.map +1 -1
  132. package/dist/esm/lib/stream/factory.js +0 -1
  133. package/dist/esm/lib/stream/factory.js.map +1 -1
  134. package/dist/esm/lib/stream/runtime.d.ts +14 -0
  135. package/dist/esm/lib/stream/runtime.d.ts.map +1 -1
  136. package/dist/esm/lib/stream/runtime.js +23 -3
  137. package/dist/esm/lib/stream/runtime.js.map +1 -1
  138. package/dist/esm/lib/stream/transport/fetch/index.d.ts +24 -32
  139. package/dist/esm/lib/stream/transport/fetch/index.d.ts.map +1 -1
  140. package/dist/esm/lib/stream/transport/fetch/index.js +260 -187
  141. package/dist/esm/lib/stream/transport/fetch/index.js.map +1 -1
  142. package/dist/esm/lib/stream/transport/fetch/shared.d.ts +1 -2
  143. package/dist/esm/lib/stream/transport/fetch/shared.d.ts.map +1 -1
  144. package/dist/esm/lib/stream/transport/fetch/shared.js +51 -74
  145. package/dist/esm/lib/stream/transport/fetch/shared.js.map +1 -1
  146. package/dist/esm/lib/stream/transport/s2s/index.d.ts +0 -1
  147. package/dist/esm/lib/stream/transport/s2s/index.d.ts.map +1 -1
  148. package/dist/esm/lib/stream/transport/s2s/index.js +313 -353
  149. package/dist/esm/lib/stream/transport/s2s/index.js.map +1 -1
  150. package/dist/esm/lib/stream/types.d.ts +102 -8
  151. package/dist/esm/lib/stream/types.d.ts.map +1 -1
  152. package/dist/esm/metrics.d.ts +3 -2
  153. package/dist/esm/metrics.d.ts.map +1 -1
  154. package/dist/esm/metrics.js +25 -40
  155. package/dist/esm/metrics.js.map +1 -1
  156. package/dist/esm/s2.d.ts +1 -0
  157. package/dist/esm/s2.d.ts.map +1 -1
  158. package/dist/esm/s2.js +20 -3
  159. package/dist/esm/s2.js.map +1 -1
  160. package/dist/esm/stream.d.ts +5 -3
  161. package/dist/esm/stream.d.ts.map +1 -1
  162. package/dist/esm/stream.js +30 -19
  163. package/dist/esm/stream.js.map +1 -1
  164. package/dist/esm/streams.d.ts +10 -10
  165. package/dist/esm/streams.d.ts.map +1 -1
  166. package/dist/esm/streams.js +37 -65
  167. package/dist/esm/streams.js.map +1 -1
  168. package/dist/esm/utils.d.ts +3 -3
  169. package/dist/esm/utils.d.ts.map +1 -1
  170. package/dist/esm/utils.js +2 -2
  171. package/dist/esm/utils.js.map +1 -1
  172. package/dist/esm/version.d.ts +8 -0
  173. package/dist/esm/version.d.ts.map +1 -0
  174. package/dist/esm/version.js +8 -0
  175. package/dist/esm/version.js.map +1 -0
  176. 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
- class FetchReadSession extends event_stream_js_1.EventStream {
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
- const response = await (0, index_js_2.read)({
16
- client,
17
- path: {
18
- stream: name,
19
- },
20
- headers: {
21
- accept: "text/event-stream",
22
- ...(as === "bytes" ? { "s2-format": "base64" } : {}),
23
- },
24
- query: queryParams,
25
- parseAs: "stream",
26
- ...options,
27
- });
28
- if (response.error) {
29
- if ("message" in response.error) {
30
- throw new error_js_1.S2Error({
31
- message: response.error.message,
32
- code: response.error.code ?? undefined,
33
- status: response.response.status,
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
- else {
37
- // special case for 416 - Range Not Satisfiable
38
- throw new error_js_1.RangeNotSatisfiableError({
39
- status: response.response.status,
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
- if (!response.response.body) {
44
- throw new error_js_1.S2Error({
45
- message: "No body in SSE response",
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
- _lastReadPosition = undefined;
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
- super(stream, (msg) => {
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._lastReadPosition = batch.tail;
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
- // Handle error events
88
- throw new error_js_1.S2Error({ message: msg.data ?? "Unknown error" });
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
- lastReadPosition() {
95
- return this._lastReadPosition;
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
- start: (controller) => {
103
- setController(controller);
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
- async [Symbol.asyncDispose]() {
108
- await this.cancel("disposed");
226
+ nextReadPosition() {
227
+ return this._nextReadPosition;
228
+ }
229
+ lastObservedTail() {
230
+ return this._lastObservedTail;
109
231
  }
110
- // Polyfill for older browsers
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
- throw: async (e) => {
126
- await reader.cancel(e);
245
+ return: async (value) => {
127
246
  reader.releaseLock();
128
- return { done: true, value: undefined };
247
+ return { done: true, value };
129
248
  },
130
- return: async () => {
131
- await reader.cancel("done");
249
+ throw: async (e) => {
132
250
  reader.releaseLock();
133
- return { done: true, value: undefined };
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
- * Session for appending records to a stream.
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
- this.maxQueuedBytes = sessionOptions?.maxQueuedBytes ?? 10 * 1024 * 1024; // 10 MiB default
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
- await this.writable.close();
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
- * Returns a promise that resolves when the append is acknowledged or rejects on error.
319
+ * Never throws - returns AppendResult discriminated union.
249
320
  */
250
- submit(records, args, precalculatedSize) {
321
+ submit(records, args) {
322
+ // Validate closed state
251
323
  if (this.closed) {
252
- return Promise.reject(new error_js_1.S2Error({ message: "AppendSession is closed" }));
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.reject(new error_js_1.S2Error({
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.meteredSizeBytes)(record);
339
+ batchMeteredSize += (0, utils_js_1.meteredBytes)(record);
266
340
  }
267
341
  }
268
342
  if (batchMeteredSize > 1024 * 1024) {
269
- return Promise.reject(new error_js_1.S2Error({
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, reject) => {
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.queuedBytes += batchMeteredSize;
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
- this.processingPromise = this.processLoop();
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
- this._lastAckedPosition = ack;
302
- // Emit ack to the acks stream if it exists
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
- this.inFlight = false;
319
- this.processingPromise = null;
320
- // Reject the promise for this request
321
- resolver.reject(error);
322
- // Reject all remaining pending promises
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.reject(error);
390
+ pendingResolver.resolve((0, result_js_1.err)(s2Err));
325
391
  }
326
392
  this.pendingResolvers = [];
327
- // Clear the queue and reset queued bytes
393
+ // Clear the queue
328
394
  this.queue = [];
329
- this.queuedBytes = 0;
330
- // Wake up all waiting writers (they'll see the closed state or retry)
331
- for (const waiter of this.waitingForCapacity) {
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
- return FetchAppendSession.create(stream, this.transportConfig, sessionOptions, requestOptions);
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 FetchReadSession.create(this.client, stream, args, options);
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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"}