@s2-dev/streamstore 0.16.12 → 0.17.0

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 (109) hide show
  1. package/dist/cjs/basin.d.ts +6 -2
  2. package/dist/cjs/basin.d.ts.map +1 -1
  3. package/dist/cjs/basin.js +11 -5
  4. package/dist/cjs/basin.js.map +1 -1
  5. package/dist/cjs/batch-transform.d.ts +64 -0
  6. package/dist/cjs/batch-transform.d.ts.map +1 -0
  7. package/dist/cjs/batch-transform.js +144 -0
  8. package/dist/cjs/batch-transform.js.map +1 -0
  9. package/dist/cjs/generated/proto/s2.d.ts.map +1 -0
  10. package/dist/cjs/generated/proto/s2.js.map +1 -0
  11. package/dist/cjs/index.d.ts +4 -2
  12. package/dist/cjs/index.d.ts.map +1 -1
  13. package/dist/cjs/index.js +5 -1
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/lib/stream/factory.d.ts +15 -0
  16. package/dist/cjs/lib/stream/factory.d.ts.map +1 -0
  17. package/dist/cjs/lib/stream/factory.js +36 -0
  18. package/dist/cjs/lib/stream/factory.js.map +1 -0
  19. package/dist/cjs/lib/stream/runtime.d.ts +13 -0
  20. package/dist/cjs/lib/stream/runtime.d.ts.map +1 -0
  21. package/dist/cjs/lib/stream/runtime.js +50 -0
  22. package/dist/cjs/lib/stream/runtime.js.map +1 -0
  23. package/dist/cjs/lib/stream/transport/fetch/index.d.ts +79 -0
  24. package/dist/cjs/lib/stream/transport/fetch/index.d.ts.map +1 -0
  25. package/dist/cjs/lib/stream/transport/fetch/index.js +382 -0
  26. package/dist/cjs/lib/stream/transport/fetch/index.js.map +1 -0
  27. package/dist/cjs/lib/stream/transport/fetch/shared.d.ts +7 -0
  28. package/dist/cjs/lib/stream/transport/fetch/shared.d.ts.map +1 -0
  29. package/dist/cjs/lib/stream/transport/fetch/shared.js +170 -0
  30. package/dist/cjs/lib/stream/transport/fetch/shared.js.map +1 -0
  31. package/dist/cjs/lib/stream/transport/s2s/framing.d.ts +47 -0
  32. package/dist/cjs/lib/stream/transport/s2s/framing.d.ts.map +1 -0
  33. package/dist/cjs/lib/stream/transport/s2s/framing.js +123 -0
  34. package/dist/cjs/lib/stream/transport/s2s/framing.js.map +1 -0
  35. package/dist/cjs/lib/stream/transport/s2s/index.d.ts +23 -0
  36. package/dist/cjs/lib/stream/transport/s2s/index.d.ts.map +1 -0
  37. package/dist/cjs/lib/stream/transport/s2s/index.js +785 -0
  38. package/dist/cjs/lib/stream/transport/s2s/index.js.map +1 -0
  39. package/dist/cjs/lib/stream/types.d.ts +53 -0
  40. package/dist/cjs/lib/stream/types.d.ts.map +1 -0
  41. package/dist/cjs/lib/stream/types.js +3 -0
  42. package/dist/cjs/lib/stream/types.js.map +1 -0
  43. package/dist/cjs/stream.d.ts +22 -116
  44. package/dist/cjs/stream.d.ts.map +1 -1
  45. package/dist/cjs/stream.js +35 -551
  46. package/dist/cjs/stream.js.map +1 -1
  47. package/dist/cjs/utils.d.ts +32 -6
  48. package/dist/cjs/utils.d.ts.map +1 -1
  49. package/dist/cjs/utils.js +129 -34
  50. package/dist/cjs/utils.js.map +1 -1
  51. package/dist/esm/basin.d.ts +6 -2
  52. package/dist/esm/basin.d.ts.map +1 -1
  53. package/dist/esm/basin.js +11 -5
  54. package/dist/esm/basin.js.map +1 -1
  55. package/dist/esm/batch-transform.d.ts +64 -0
  56. package/dist/esm/batch-transform.d.ts.map +1 -0
  57. package/dist/esm/batch-transform.js +140 -0
  58. package/dist/esm/batch-transform.js.map +1 -0
  59. package/dist/esm/generated/proto/s2.d.ts.map +1 -0
  60. package/dist/esm/generated/proto/s2.js.map +1 -0
  61. package/dist/esm/index.d.ts +4 -2
  62. package/dist/esm/index.d.ts.map +1 -1
  63. package/dist/esm/index.js +2 -1
  64. package/dist/esm/index.js.map +1 -1
  65. package/dist/esm/lib/stream/factory.d.ts +15 -0
  66. package/dist/esm/lib/stream/factory.d.ts.map +1 -0
  67. package/dist/esm/lib/stream/factory.js +33 -0
  68. package/dist/esm/lib/stream/factory.js.map +1 -0
  69. package/dist/esm/lib/stream/runtime.d.ts +13 -0
  70. package/dist/esm/lib/stream/runtime.d.ts.map +1 -0
  71. package/dist/esm/lib/stream/runtime.js +46 -0
  72. package/dist/esm/lib/stream/runtime.js.map +1 -0
  73. package/dist/esm/lib/stream/transport/fetch/index.d.ts +79 -0
  74. package/dist/esm/lib/stream/transport/fetch/index.d.ts.map +1 -0
  75. package/dist/esm/lib/stream/transport/fetch/index.js +376 -0
  76. package/dist/esm/lib/stream/transport/fetch/index.js.map +1 -0
  77. package/dist/esm/lib/stream/transport/fetch/shared.d.ts +7 -0
  78. package/dist/esm/lib/stream/transport/fetch/shared.d.ts.map +1 -0
  79. package/dist/esm/lib/stream/transport/fetch/shared.js +166 -0
  80. package/dist/esm/lib/stream/transport/fetch/shared.js.map +1 -0
  81. package/dist/esm/lib/stream/transport/s2s/framing.d.ts +47 -0
  82. package/dist/esm/lib/stream/transport/s2s/framing.d.ts.map +1 -0
  83. package/dist/esm/lib/stream/transport/s2s/framing.js +118 -0
  84. package/dist/esm/lib/stream/transport/s2s/framing.js.map +1 -0
  85. package/dist/esm/lib/stream/transport/s2s/index.d.ts +23 -0
  86. package/dist/esm/lib/stream/transport/s2s/index.d.ts.map +1 -0
  87. package/dist/esm/lib/stream/transport/s2s/index.js +781 -0
  88. package/dist/esm/lib/stream/transport/s2s/index.js.map +1 -0
  89. package/dist/esm/lib/stream/types.d.ts +53 -0
  90. package/dist/esm/lib/stream/types.d.ts.map +1 -0
  91. package/dist/esm/lib/stream/types.js +2 -0
  92. package/dist/esm/lib/stream/types.js.map +1 -0
  93. package/dist/esm/stream.d.ts +22 -116
  94. package/dist/esm/stream.d.ts.map +1 -1
  95. package/dist/esm/stream.js +36 -551
  96. package/dist/esm/stream.js.map +1 -1
  97. package/dist/esm/utils.d.ts +32 -6
  98. package/dist/esm/utils.d.ts.map +1 -1
  99. package/dist/esm/utils.js +126 -34
  100. package/dist/esm/utils.js.map +1 -1
  101. package/package.json +2 -2
  102. package/dist/cjs/generated/proto/s2/v1/s2.d.ts.map +0 -1
  103. package/dist/cjs/generated/proto/s2/v1/s2.js.map +0 -1
  104. package/dist/esm/generated/proto/s2/v1/s2.d.ts.map +0 -1
  105. package/dist/esm/generated/proto/s2/v1/s2.js.map +0 -1
  106. /package/dist/cjs/generated/proto/{s2/v1/s2.d.ts → s2.d.ts} +0 -0
  107. /package/dist/cjs/generated/proto/{s2/v1/s2.js → s2.js} +0 -0
  108. /package/dist/esm/generated/proto/{s2/v1/s2.d.ts → s2.d.ts} +0 -0
  109. /package/dist/esm/generated/proto/{s2/v1/s2.js → s2.js} +0 -0
@@ -1,9 +1,10 @@
1
1
  import * as Redacted from "./lib/redacted.js";
2
+ import type { SessionTransports } from "./lib/stream/types.js";
2
3
  import { S2Stream } from "./stream.js";
3
4
  import { S2Streams } from "./streams.js";
4
5
  export declare class S2Basin {
5
6
  private readonly client;
6
- private readonly accessToken;
7
+ private readonly transportConfig;
7
8
  readonly name: string;
8
9
  readonly streams: S2Streams;
9
10
  /**
@@ -24,6 +25,9 @@ export declare class S2Basin {
24
25
  * Create a stream-scoped helper bound to `this` basin.
25
26
  * @param name Stream name
26
27
  */
27
- stream(name: string): S2Stream;
28
+ stream(name: string, options?: StreamOptions): S2Stream;
29
+ }
30
+ export interface StreamOptions {
31
+ forceTransport?: SessionTransports;
28
32
  }
29
33
  //# sourceMappingURL=basin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"basin.d.ts","sourceRoot":"","sources":["../../src/basin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,qBAAa,OAAO;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAEhD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,OAAO,EAAE,SAAS,CAAC;IAEnC;;;;;;;;OAQG;gBAEF,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QACR,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC;QAC/B,OAAO,EAAE,MAAM,CAAC;QAChB,kBAAkB,EAAE,OAAO,CAAC;KAC5B;IAcF;;;OAGG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM;CAG1B"}
1
+ {"version":3,"file":"basin.d.ts","sourceRoot":"","sources":["../../src/basin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAmB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,qBAAa,OAAO;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,OAAO,EAAE,SAAS,CAAC;IAEnC;;;;;;;;OAQG;gBAEF,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QACR,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC;QAC/B,OAAO,EAAE,MAAM,CAAC;QAChB,kBAAkB,EAAE,OAAO,CAAC;KAC5B;IAiBF;;;OAGG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa;CAMnD;AAED,MAAM,WAAW,aAAa;IAC7B,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACnC"}
package/dist/cjs/basin.js CHANGED
@@ -7,7 +7,7 @@ const stream_js_1 = require("./stream.js");
7
7
  const streams_js_1 = require("./streams.js");
8
8
  class S2Basin {
9
9
  client;
10
- accessToken;
10
+ transportConfig;
11
11
  name;
12
12
  streams;
13
13
  /**
@@ -21,10 +21,13 @@ class S2Basin {
21
21
  */
22
22
  constructor(name, options) {
23
23
  this.name = name;
24
- this.accessToken = options.accessToken;
24
+ this.transportConfig = {
25
+ baseUrl: options.baseUrl,
26
+ accessToken: options.accessToken,
27
+ };
25
28
  this.client = (0, index_js_1.createClient)((0, index_js_1.createConfig)({
26
29
  baseUrl: options.baseUrl,
27
- auth: () => Redacted.value(this.accessToken),
30
+ auth: () => Redacted.value(this.transportConfig.accessToken),
28
31
  headers: options.includeBasinHeader ? { "s2-basin": name } : {},
29
32
  }));
30
33
  this.streams = new streams_js_1.S2Streams(this.client);
@@ -33,8 +36,11 @@ class S2Basin {
33
36
  * Create a stream-scoped helper bound to `this` basin.
34
37
  * @param name Stream name
35
38
  */
36
- stream(name) {
37
- return new stream_js_1.S2Stream(name, this.client);
39
+ stream(name, options) {
40
+ return new stream_js_1.S2Stream(name, this.client, {
41
+ ...this.transportConfig,
42
+ forceTransport: options?.forceTransport,
43
+ });
38
44
  }
39
45
  }
40
46
  exports.S2Basin = S2Basin;
@@ -1 +1 @@
1
- {"version":3,"file":"basin.js","sourceRoot":"","sources":["../../src/basin.ts"],"names":[],"mappings":";;;AAAA,0DAAyE;AAEzE,8CAA8C;AAC9C,2CAAuC;AACvC,6CAAyC;AAEzC,MAAa,OAAO;IACF,MAAM,CAAS;IACf,WAAW,CAAoB;IAEhC,IAAI,CAAS;IACb,OAAO,CAAY;IAEnC;;;;;;;;OAQG;IACH,YACC,IAAY,EACZ,OAIC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAA,uBAAY,EACzB,IAAA,uBAAY,EAAC;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;YAC5C,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;SAC/D,CAAC,CACF,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,IAAY;QACzB,OAAO,IAAI,oBAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;CACD;AA3CD,0BA2CC"}
1
+ {"version":3,"file":"basin.js","sourceRoot":"","sources":["../../src/basin.ts"],"names":[],"mappings":";;;AAAA,0DAAyE;AAEzE,8CAA8C;AAE9C,2CAAuC;AACvC,6CAAyC;AAEzC,MAAa,OAAO;IACF,MAAM,CAAS;IACf,eAAe,CAAkB;IAClC,IAAI,CAAS;IACb,OAAO,CAAY;IAEnC;;;;;;;;OAQG;IACH,YACC,IAAY,EACZ,OAIC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW;SAChC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAA,uBAAY,EACzB,IAAA,uBAAY,EAAC;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;YAC5D,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;SAC/D,CAAC,CACF,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,IAAY,EAAE,OAAuB;QAClD,OAAO,IAAI,oBAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;YACtC,GAAG,IAAI,CAAC,eAAe;YACvB,cAAc,EAAE,OAAO,EAAE,cAAc;SACvC,CAAC,CAAC;IACJ,CAAC;CACD;AAhDD,0BAgDC"}
@@ -0,0 +1,64 @@
1
+ import { AppendRecord } from "./utils.js";
2
+ export interface BatchTransformArgs {
3
+ /** Duration in milliseconds to wait before flushing a batch (default: 5ms) */
4
+ lingerDuration?: number;
5
+ /** Maximum number of records in a batch (default: 1000, max: 1000) */
6
+ maxBatchRecords?: number;
7
+ /** Maximum batch size in bytes (default: 1 MiB, max: 1 MiB) */
8
+ maxBatchBytes?: number;
9
+ /** Optional fencing token to enforce (remains static across batches) */
10
+ fencing_token?: string;
11
+ /** Optional sequence number to match for first batch (auto-increments for subsequent batches) */
12
+ match_seq_num?: number;
13
+ }
14
+ /** Batch output type with optional fencing token and match_seq_num */
15
+ export type BatchOutput = {
16
+ records: AppendRecord[];
17
+ fencing_token?: string;
18
+ match_seq_num?: number;
19
+ };
20
+ /**
21
+ * A TransformStream that batches AppendRecords based on time, record count, and byte size.
22
+ *
23
+ * Input: AppendRecord (individual records)
24
+ * Output: { records: AppendRecord[], fencing_token?: string, match_seq_num?: number }
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const batcher = new BatchTransform<"string">({
29
+ * lingerDuration: 20,
30
+ * maxBatchRecords: 100,
31
+ * maxBatchBytes: 256 * 1024,
32
+ * match_seq_num: 0 // Optional: auto-increments per batch
33
+ * });
34
+ *
35
+ * // Pipe through the batcher and session to get acks
36
+ * readable.pipeThrough(batcher).pipeThrough(session).pipeTo(writable);
37
+ *
38
+ * // Or use manually
39
+ * const writer = batcher.writable.getWriter();
40
+ * writer.write(AppendRecord.make("foo"));
41
+ * await writer.close();
42
+ *
43
+ * for await (const batch of batcher.readable) {
44
+ * console.log(`Got batch of ${batch.records.length} records`);
45
+ * }
46
+ * ```
47
+ */
48
+ export declare class BatchTransform extends TransformStream<AppendRecord, BatchOutput> {
49
+ private currentBatch;
50
+ private currentBatchSize;
51
+ private lingerTimer;
52
+ private controller;
53
+ private readonly maxBatchRecords;
54
+ private readonly maxBatchBytes;
55
+ private readonly lingerDuration;
56
+ private readonly fencing_token?;
57
+ private next_match_seq_num?;
58
+ constructor(args?: BatchTransformArgs);
59
+ private handleRecord;
60
+ private flush;
61
+ private startLingerTimer;
62
+ private cancelLingerTimer;
63
+ }
64
+ //# sourceMappingURL=batch-transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-transform.d.ts","sourceRoot":"","sources":["../../src/batch-transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAoB,MAAM,YAAY,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IAClC,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iGAAiG;IACjG,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,sEAAsE;AACtE,MAAM,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,cAAe,SAAQ,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC;IAC7E,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,UAAU,CACZ;IACN,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,kBAAkB,CAAC,CAAS;gBAExB,IAAI,CAAC,EAAE,kBAAkB;IA8BrC,OAAO,CAAC,YAAY;IA0CpB,OAAO,CAAC,KAAK;IAgCb,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,iBAAiB;CAMzB"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BatchTransform = void 0;
4
+ const error_js_1 = require("./error.js");
5
+ const utils_js_1 = require("./utils.js");
6
+ /**
7
+ * A TransformStream that batches AppendRecords based on time, record count, and byte size.
8
+ *
9
+ * Input: AppendRecord (individual records)
10
+ * Output: { records: AppendRecord[], fencing_token?: string, match_seq_num?: number }
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const batcher = new BatchTransform<"string">({
15
+ * lingerDuration: 20,
16
+ * maxBatchRecords: 100,
17
+ * maxBatchBytes: 256 * 1024,
18
+ * match_seq_num: 0 // Optional: auto-increments per batch
19
+ * });
20
+ *
21
+ * // Pipe through the batcher and session to get acks
22
+ * readable.pipeThrough(batcher).pipeThrough(session).pipeTo(writable);
23
+ *
24
+ * // Or use manually
25
+ * const writer = batcher.writable.getWriter();
26
+ * writer.write(AppendRecord.make("foo"));
27
+ * await writer.close();
28
+ *
29
+ * for await (const batch of batcher.readable) {
30
+ * console.log(`Got batch of ${batch.records.length} records`);
31
+ * }
32
+ * ```
33
+ */
34
+ class BatchTransform extends TransformStream {
35
+ currentBatch = [];
36
+ currentBatchSize = 0;
37
+ lingerTimer = null;
38
+ controller = null;
39
+ maxBatchRecords;
40
+ maxBatchBytes;
41
+ lingerDuration;
42
+ fencing_token;
43
+ next_match_seq_num;
44
+ constructor(args) {
45
+ let controller;
46
+ super({
47
+ start: (c) => {
48
+ controller = c;
49
+ },
50
+ transform: (chunk, c) => {
51
+ // Store controller reference on first transform
52
+ if (!this.controller) {
53
+ this.controller = c;
54
+ }
55
+ this.handleRecord(chunk);
56
+ },
57
+ flush: () => {
58
+ this.flush();
59
+ },
60
+ });
61
+ // Cap at maximum allowed values
62
+ this.maxBatchRecords = Math.min(args?.maxBatchRecords ?? 1000, 1000);
63
+ this.maxBatchBytes = Math.min(args?.maxBatchBytes ?? 1024 * 1024, 1024 * 1024);
64
+ this.lingerDuration = args?.lingerDuration ?? 5;
65
+ this.fencing_token = args?.fencing_token;
66
+ this.next_match_seq_num = args?.match_seq_num;
67
+ }
68
+ handleRecord(record) {
69
+ const recordSize = (0, utils_js_1.meteredSizeBytes)(record);
70
+ // Reject individual records that exceed the max batch size
71
+ if (recordSize > this.maxBatchBytes) {
72
+ throw new error_js_1.S2Error({
73
+ message: `Record size ${recordSize} bytes exceeds maximum batch size of ${this.maxBatchBytes} bytes`,
74
+ });
75
+ }
76
+ // Start linger timer on first record added to an empty batch
77
+ if (this.currentBatch.length === 0 && this.lingerDuration > 0) {
78
+ this.startLingerTimer();
79
+ }
80
+ // Check if adding this record would exceed limits
81
+ const wouldExceedRecords = this.currentBatch.length + 1 > this.maxBatchRecords;
82
+ const wouldExceedBytes = this.currentBatchSize + recordSize > this.maxBatchBytes;
83
+ if (wouldExceedRecords || wouldExceedBytes) {
84
+ this.flush();
85
+ // Restart linger timer for new batch
86
+ if (this.lingerDuration > 0) {
87
+ this.startLingerTimer();
88
+ }
89
+ }
90
+ // Add record to current batch
91
+ this.currentBatch.push(record);
92
+ this.currentBatchSize += recordSize;
93
+ // Check if we've now reached the limits
94
+ const nowExceedsRecords = this.currentBatch.length >= this.maxBatchRecords;
95
+ const nowExceedsBytes = this.currentBatchSize >= this.maxBatchBytes;
96
+ if (nowExceedsRecords || nowExceedsBytes) {
97
+ this.flush();
98
+ }
99
+ }
100
+ flush() {
101
+ this.cancelLingerTimer();
102
+ if (this.currentBatch.length === 0) {
103
+ return;
104
+ }
105
+ // Auto-increment match_seq_num for next batch
106
+ const match_seq_num = this.next_match_seq_num;
107
+ if (this.next_match_seq_num !== undefined) {
108
+ this.next_match_seq_num += this.currentBatch.length;
109
+ }
110
+ // Emit the batch downstream with optional fencing token and match_seq_num
111
+ if (this.controller) {
112
+ const batch = {
113
+ records: [...this.currentBatch],
114
+ };
115
+ if (this.fencing_token !== undefined) {
116
+ batch.fencing_token = this.fencing_token;
117
+ }
118
+ if (match_seq_num !== undefined) {
119
+ batch.match_seq_num = match_seq_num;
120
+ }
121
+ this.controller.enqueue(batch);
122
+ }
123
+ // Reset batch
124
+ this.currentBatch = [];
125
+ this.currentBatchSize = 0;
126
+ }
127
+ startLingerTimer() {
128
+ this.cancelLingerTimer();
129
+ this.lingerTimer = setTimeout(() => {
130
+ this.lingerTimer = null;
131
+ if (this.currentBatch.length > 0) {
132
+ this.flush();
133
+ }
134
+ }, this.lingerDuration);
135
+ }
136
+ cancelLingerTimer() {
137
+ if (this.lingerTimer) {
138
+ clearTimeout(this.lingerTimer);
139
+ this.lingerTimer = null;
140
+ }
141
+ }
142
+ }
143
+ exports.BatchTransform = BatchTransform;
144
+ //# sourceMappingURL=batch-transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-transform.js","sourceRoot":"","sources":["../../src/batch-transform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s2.d.ts","sourceRoot":"","sources":["../../../../src/generated/proto/s2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s2.js","sourceRoot":"","sources":["../../../../src/generated/proto/s2.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  export type { IssueAccessTokenArgs, ListAccessTokensArgs, RevokeAccessTokenArgs, } from "./accessTokens.js";
2
2
  export type { CreateBasinArgs, DeleteBasinArgs, GetBasinConfigArgs, ListBasinsArgs, ReconfigureBasinArgs, } from "./basins.js";
3
+ export type { BatchOutput, BatchTransformArgs } from "./batch-transform.js";
4
+ export { BatchTransform } from "./batch-transform.js";
3
5
  export { FencingTokenMismatchError, RangeNotSatisfiableError, S2Error, SeqNumMismatchError, } from "./error.js";
4
6
  export type { AccessTokenInfo, AccessTokenScope, AccountMetricSet, Accumulation, BasinConfig, BasinInfo, BasinMetricSet, BasinReconfiguration, BasinScope, CreateStreamRequest, DeleteOnEmptyConfig, Gauge, IssueAccessTokenResponse, Label, ListAccessTokensResponse, ListBasinsResponse, ListStreamsResponse, Metric, MetricSetResponse, Operation, PermittedOperationGroups, ReadWritePermissions, ResourceSet, RetentionPolicy, StorageClass, StreamConfig, StreamInfo, StreamMetricSet, TimeseriesInterval, TimestampingConfig, TimestampingMode, } from "./generated/types.gen.js";
7
+ export type { AppendArgs, ReadArgs, ReadBatch, ReadRecord, ReadSession, } from "./lib/stream/types.js";
5
8
  export type { AccountMetricsArgs, BasinMetricsArgs, StreamMetricsArgs, } from "./metrics.js";
6
9
  export { S2 } from "./s2.js";
7
- export type { AppendArgs, ReadArgs, ReadBatch, ReadSession, SequencedRecord, } from "./stream.js";
8
10
  export type { CreateStreamArgs, DeleteStreamArgs, GetStreamConfigArgs, ListStreamsArgs, ReconfigureStreamArgs, } from "./streams.js";
9
- export { AppendRecord } from "./utils.js";
11
+ export { AppendRecord, meteredSizeBytes, utf8ByteLength } from "./utils.js";
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACX,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,yBAAyB,EACzB,wBAAwB,EACxB,OAAO,EACP,mBAAmB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,SAAS,EACT,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,EACL,wBAAwB,EACxB,KAAK,EACL,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,iBAAiB,EACjB,SAAS,EACT,wBAAwB,EACxB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GAChB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACX,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,YAAY,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACX,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACN,yBAAyB,EACzB,wBAAwB,EACxB,OAAO,EACP,mBAAmB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,SAAS,EACT,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,EACL,wBAAwB,EACxB,KAAK,EACL,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,iBAAiB,EACjB,SAAS,EACT,wBAAwB,EACxB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GAChB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,GACX,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACX,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AppendRecord = exports.S2 = exports.SeqNumMismatchError = exports.S2Error = exports.RangeNotSatisfiableError = exports.FencingTokenMismatchError = void 0;
3
+ exports.utf8ByteLength = exports.meteredSizeBytes = exports.AppendRecord = exports.S2 = exports.SeqNumMismatchError = exports.S2Error = exports.RangeNotSatisfiableError = exports.FencingTokenMismatchError = exports.BatchTransform = void 0;
4
+ var batch_transform_js_1 = require("./batch-transform.js");
5
+ Object.defineProperty(exports, "BatchTransform", { enumerable: true, get: function () { return batch_transform_js_1.BatchTransform; } });
4
6
  var error_js_1 = require("./error.js");
5
7
  Object.defineProperty(exports, "FencingTokenMismatchError", { enumerable: true, get: function () { return error_js_1.FencingTokenMismatchError; } });
6
8
  Object.defineProperty(exports, "RangeNotSatisfiableError", { enumerable: true, get: function () { return error_js_1.RangeNotSatisfiableError; } });
@@ -10,4 +12,6 @@ var s2_js_1 = require("./s2.js");
10
12
  Object.defineProperty(exports, "S2", { enumerable: true, get: function () { return s2_js_1.S2; } });
11
13
  var utils_js_1 = require("./utils.js");
12
14
  Object.defineProperty(exports, "AppendRecord", { enumerable: true, get: function () { return utils_js_1.AppendRecord; } });
15
+ Object.defineProperty(exports, "meteredSizeBytes", { enumerable: true, get: function () { return utils_js_1.meteredSizeBytes; } });
16
+ Object.defineProperty(exports, "utf8ByteLength", { enumerable: true, get: function () { return utils_js_1.utf8ByteLength; } });
13
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAYA,uCAKoB;AAJnB,qHAAA,yBAAyB,OAAA;AACzB,oHAAA,wBAAwB,OAAA;AACxB,mGAAA,OAAO,OAAA;AACP,+GAAA,mBAAmB,OAAA;AAwCpB,iCAA6B;AAApB,2FAAA,EAAE,OAAA;AAeX,uCAA0C;AAAjC,wGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAaA,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AACvB,uCAKoB;AAJnB,qHAAA,yBAAyB,OAAA;AACzB,oHAAA,wBAAwB,OAAA;AACxB,mGAAA,OAAO,OAAA;AACP,+GAAA,mBAAmB,OAAA;AA+CpB,iCAA6B;AAApB,2FAAA,EAAE,OAAA;AAQX,uCAA4E;AAAnE,wGAAA,YAAY,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAAE,0GAAA,cAAc,OAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Transport factory - selects the appropriate transport based on runtime
3
+ */
4
+ import type { SessionTransport, TransportConfig } from "./types.js";
5
+ /**
6
+ * Create a transport instance based on the runtime environment
7
+ *
8
+ * - In Node.js with HTTP/2 support: uses S2STransport (binary protocol over HTTP/2)
9
+ * - Everywhere else: uses FetchTransport (JSON over HTTP/1.1)
10
+ *
11
+ * @param config Transport configuration
12
+ * @param preferHttp2 Force HTTP/2 or HTTP/1.1 (default: auto-detect)
13
+ */
14
+ export declare function createSessionTransport(config: TransportConfig): Promise<SessionTransport>;
15
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/lib/stream/factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEpE;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC3C,MAAM,EAAE,eAAe,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAkB3B"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * Transport factory - selects the appropriate transport based on runtime
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createSessionTransport = createSessionTransport;
7
+ const runtime_js_1 = require("./runtime.js");
8
+ const index_js_1 = require("./transport/fetch/index.js");
9
+ /**
10
+ * Create a transport instance based on the runtime environment
11
+ *
12
+ * - In Node.js with HTTP/2 support: uses S2STransport (binary protocol over HTTP/2)
13
+ * - Everywhere else: uses FetchTransport (JSON over HTTP/1.1)
14
+ *
15
+ * @param config Transport configuration
16
+ * @param preferHttp2 Force HTTP/2 or HTTP/1.1 (default: auto-detect)
17
+ */
18
+ async function createSessionTransport(config) {
19
+ // Check if user explicitly disabled HTTP/2
20
+ if (config?.forceTransport === "fetch") {
21
+ return new index_js_1.FetchTransport(config);
22
+ }
23
+ else if (config?.forceTransport === "s2s") {
24
+ const { S2STransport } = await Promise.resolve().then(() => require("./transport/s2s/index.js"));
25
+ return new S2STransport(config);
26
+ }
27
+ // Check if HTTP/2 is available
28
+ if ((0, runtime_js_1.supportsHttp2)()) {
29
+ // Dynamic import for Node.js-specific transport
30
+ const { S2STransport } = await Promise.resolve().then(() => require("./transport/s2s/index.js"));
31
+ return new S2STransport(config);
32
+ }
33
+ // Fallback to fetch
34
+ return new index_js_1.FetchTransport(config);
35
+ }
36
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../src/lib/stream/factory.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAeH,wDAoBC;AAjCD,6CAA6C;AAC7C,yDAA4D;AAG5D;;;;;;;;GAQG;AACI,KAAK,UAAU,sBAAsB,CAC3C,MAAuB;IAEvB,2CAA2C;IAC3C,IAAI,MAAM,EAAE,cAAc,KAAK,OAAO,EAAE,CAAC;QACxC,OAAO,IAAI,yBAAc,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,MAAM,EAAE,cAAc,KAAK,KAAK,EAAE,CAAC;QAC7C,MAAM,EAAE,YAAY,EAAE,GAAG,2CAAa,0BAA0B,EAAC,CAAC;QAClE,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,+BAA+B;IAC/B,IAAI,IAAA,0BAAa,GAAE,EAAE,CAAC;QACrB,gDAAgD;QAChD,MAAM,EAAE,YAAY,EAAE,GAAG,2CAAa,0BAA0B,EAAC,CAAC;QAClE,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,oBAAoB;IACpB,OAAO,IAAI,yBAAc,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Runtime environment detection for transport selection
3
+ */
4
+ export type Runtime = "node" | "browser" | "deno" | "bun" | "unknown";
5
+ /**
6
+ * Detect the current JavaScript runtime
7
+ */
8
+ export declare function detectRuntime(): Runtime;
9
+ /**
10
+ * Check if the current runtime supports HTTP/2 for s2s protocol
11
+ */
12
+ export declare function supportsHttp2(): boolean;
13
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/lib/stream/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;AAEtE;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAuBvC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAkBvC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /**
3
+ * Runtime environment detection for transport selection
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.detectRuntime = detectRuntime;
7
+ exports.supportsHttp2 = supportsHttp2;
8
+ /**
9
+ * Detect the current JavaScript runtime
10
+ */
11
+ function detectRuntime() {
12
+ // Check for Deno
13
+ // @ts-expect-error - Deno global not in types
14
+ if (typeof Deno !== "undefined") {
15
+ return "deno";
16
+ }
17
+ // Check for Bun
18
+ if (typeof Bun !== "undefined") {
19
+ return "bun";
20
+ }
21
+ // Check for Node.js
22
+ if (typeof process !== "undefined" && process.versions?.node !== undefined) {
23
+ return "node";
24
+ }
25
+ // Check for browser
26
+ if (typeof window !== "undefined" && typeof document !== "undefined") {
27
+ return "browser";
28
+ }
29
+ return "unknown";
30
+ }
31
+ /**
32
+ * Check if the current runtime supports HTTP/2 for s2s protocol
33
+ */
34
+ function supportsHttp2() {
35
+ const runtime = detectRuntime();
36
+ switch (runtime) {
37
+ case "node":
38
+ case "deno":
39
+ case "bun":
40
+ // via node:http2
41
+ return true;
42
+ case "browser":
43
+ // Browsers don't expose raw HTTP/2 - they handle it internally
44
+ // but we can't use s2s protocol
45
+ return false;
46
+ default:
47
+ return false;
48
+ }
49
+ }
50
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/lib/stream/runtime.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAOH,sCAuBC;AAKD,sCAkBC;AAjDD;;GAEG;AACH,SAAgB,aAAa;IAC5B,iBAAiB;IACjB,8CAA8C;IAC9C,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,oBAAoB;IACpB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5E,OAAO,MAAM,CAAC;IACf,CAAC;IAED,oBAAoB;IACpB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACtE,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa;IAC5B,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAEhC,QAAQ,OAAO,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACT,iBAAiB;YACjB,OAAO,IAAI,CAAC;QAEb,KAAK,SAAS;YACb,+DAA+D;YAC/D,gCAAgC;YAChC,OAAO,KAAK,CAAC;QAEd;YACC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC"}
@@ -0,0 +1,79 @@
1
+ import type { S2RequestOptions } from "../../../../common.js";
2
+ import { type Client } from "../../../../generated/client/index.js";
3
+ import type { AppendAck, StreamPosition } from "../../../../generated/index.js";
4
+ import { EventStream } from "../../../event-stream.js";
5
+ import type { AppendArgs, AppendRecord, AppendSession, AppendSessionOptions, ReadArgs, ReadRecord, ReadSession, SessionTransport, TransportConfig } from "../../types.js";
6
+ export declare class FetchReadSession<Format extends "string" | "bytes" = "string"> extends EventStream<ReadRecord<Format>> {
7
+ static create<Format extends "string" | "bytes" = "string">(client: Client, name: string, args?: ReadArgs<Format>, options?: S2RequestOptions): Promise<FetchReadSession<Format>>;
8
+ private _lastReadPosition;
9
+ private constructor();
10
+ lastReadPosition(): StreamPosition | undefined;
11
+ }
12
+ declare class AcksStream extends ReadableStream<AppendAck> implements AsyncDisposable {
13
+ constructor(setController: (controller: ReadableStreamDefaultController<AppendAck>) => void);
14
+ [Symbol.asyncDispose](): Promise<void>;
15
+ [Symbol.asyncIterator](): AsyncIterableIterator<AppendAck>;
16
+ }
17
+ /**
18
+ * Session for appending records to a stream.
19
+ * Queues append requests and ensures only one is in-flight at a time.
20
+ */
21
+ export declare class FetchAppendSession implements ReadableWritablePair<AppendAck, AppendArgs>, AsyncDisposable {
22
+ private _lastAckedPosition;
23
+ private queue;
24
+ private pendingResolvers;
25
+ private inFlight;
26
+ private readonly options?;
27
+ private readonly stream;
28
+ private acksController;
29
+ private _readable;
30
+ private _writable;
31
+ private closed;
32
+ private processingPromise;
33
+ private queuedBytes;
34
+ private readonly maxQueuedBytes;
35
+ private waitingForCapacity;
36
+ private readonly client;
37
+ readonly readable: ReadableStream<AppendAck>;
38
+ readonly writable: WritableStream<AppendArgs>;
39
+ static create(stream: string, transportConfig: TransportConfig, sessionOptions?: AppendSessionOptions, requestOptions?: S2RequestOptions): Promise<FetchAppendSession>;
40
+ private constructor();
41
+ [Symbol.asyncDispose](): Promise<void>;
42
+ /**
43
+ * Get a stream of acknowledgements for appends.
44
+ */
45
+ acks(): AcksStream;
46
+ /**
47
+ * Close the append session.
48
+ * Waits for all pending appends to complete before resolving.
49
+ */
50
+ close(): Promise<void>;
51
+ /**
52
+ * Submit an append request to the session.
53
+ * The request will be queued and sent when no other request is in-flight.
54
+ * Returns a promise that resolves when the append is acknowledged or rejects on error.
55
+ */
56
+ submit(records: AppendRecord | AppendRecord[], args?: {
57
+ fencing_token?: string;
58
+ match_seq_num?: number;
59
+ }, precalculatedSize?: number): Promise<AppendAck>;
60
+ /**
61
+ * Main processing loop that sends queued requests one at a time.
62
+ */
63
+ private processLoop;
64
+ private waitForDrain;
65
+ lastAckedPosition(): AppendAck | undefined;
66
+ }
67
+ /**
68
+ * Fetch-based transport using HTTP/1.1 + JSON
69
+ * Works in all JavaScript environments (browser, Node.js, Deno, etc.)
70
+ */
71
+ export declare class FetchTransport implements SessionTransport {
72
+ private readonly client;
73
+ private readonly transportConfig;
74
+ constructor(config: TransportConfig);
75
+ makeAppendSession(stream: string, sessionOptions?: AppendSessionOptions, requestOptions?: S2RequestOptions): Promise<AppendSession>;
76
+ makeReadSession<Format extends "string" | "bytes" = "string">(stream: string, args?: ReadArgs<Format>, options?: S2RequestOptions): Promise<ReadSession<Format>>;
77
+ }
78
+ export {};
79
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/stream/transport/fetch/index.ts"],"names":[],"mappings":"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"}