@s2-dev/streamstore 0.20.0 → 0.22.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 (223) hide show
  1. package/LICENSE +21 -201
  2. package/README.md +60 -10
  3. package/dist/cjs/accessTokens.d.ts +27 -14
  4. package/dist/cjs/accessTokens.d.ts.map +1 -1
  5. package/dist/cjs/accessTokens.js +72 -8
  6. package/dist/cjs/accessTokens.js.map +1 -1
  7. package/dist/cjs/basins.d.ts +29 -19
  8. package/dist/cjs/basins.d.ts.map +1 -1
  9. package/dist/cjs/basins.js +119 -9
  10. package/dist/cjs/basins.js.map +1 -1
  11. package/dist/cjs/batch-transform.d.ts +12 -16
  12. package/dist/cjs/batch-transform.d.ts.map +1 -1
  13. package/dist/cjs/batch-transform.js +17 -21
  14. package/dist/cjs/batch-transform.js.map +1 -1
  15. package/dist/cjs/common.d.ts +31 -24
  16. package/dist/cjs/common.d.ts.map +1 -1
  17. package/dist/cjs/common.js +22 -0
  18. package/dist/cjs/common.js.map +1 -1
  19. package/dist/cjs/endpoints.d.ts +63 -0
  20. package/dist/cjs/endpoints.d.ts.map +1 -0
  21. package/dist/cjs/endpoints.js +120 -0
  22. package/dist/cjs/endpoints.js.map +1 -0
  23. package/dist/cjs/error.d.ts +12 -2
  24. package/dist/cjs/error.d.ts.map +1 -1
  25. package/dist/cjs/error.js +20 -1
  26. package/dist/cjs/error.js.map +1 -1
  27. package/dist/cjs/generated/types.gen.d.ts +11 -20
  28. package/dist/cjs/generated/types.gen.d.ts.map +1 -1
  29. package/dist/cjs/index.d.ts +30 -46
  30. package/dist/cjs/index.d.ts.map +1 -1
  31. package/dist/cjs/index.js +50 -26
  32. package/dist/cjs/index.js.map +1 -1
  33. package/dist/cjs/internal/case-transform.d.ts +59 -0
  34. package/dist/cjs/internal/case-transform.d.ts.map +1 -0
  35. package/dist/cjs/internal/case-transform.js +80 -0
  36. package/dist/cjs/internal/case-transform.js.map +1 -0
  37. package/dist/cjs/internal/mappers.d.ts +51 -0
  38. package/dist/cjs/internal/mappers.d.ts.map +1 -0
  39. package/dist/cjs/internal/mappers.js +225 -0
  40. package/dist/cjs/internal/mappers.js.map +1 -0
  41. package/dist/cjs/internal/sdk-types.d.ts +127 -0
  42. package/dist/cjs/internal/sdk-types.d.ts.map +1 -0
  43. package/dist/cjs/internal/sdk-types.js +9 -0
  44. package/dist/cjs/internal/sdk-types.js.map +1 -0
  45. package/dist/cjs/lib/base64.d.ts +8 -0
  46. package/dist/cjs/lib/base64.d.ts.map +1 -1
  47. package/dist/cjs/lib/base64.js +32 -12
  48. package/dist/cjs/lib/base64.js.map +1 -1
  49. package/dist/cjs/lib/event-stream.d.ts.map +1 -1
  50. package/dist/cjs/lib/event-stream.js +2 -1
  51. package/dist/cjs/lib/event-stream.js.map +1 -1
  52. package/dist/cjs/lib/paginate.d.ts +57 -0
  53. package/dist/cjs/lib/paginate.d.ts.map +1 -0
  54. package/dist/cjs/lib/paginate.js +51 -0
  55. package/dist/cjs/lib/paginate.js.map +1 -0
  56. package/dist/cjs/lib/result.d.ts +1 -1
  57. package/dist/cjs/lib/result.d.ts.map +1 -1
  58. package/dist/cjs/lib/retry.d.ts +47 -31
  59. package/dist/cjs/lib/retry.d.ts.map +1 -1
  60. package/dist/cjs/lib/retry.js +302 -201
  61. package/dist/cjs/lib/retry.js.map +1 -1
  62. package/dist/cjs/lib/stream/runtime.d.ts +1 -1
  63. package/dist/cjs/lib/stream/transport/fetch/index.d.ts +7 -9
  64. package/dist/cjs/lib/stream/transport/fetch/index.d.ts.map +1 -1
  65. package/dist/cjs/lib/stream/transport/fetch/index.js +38 -39
  66. package/dist/cjs/lib/stream/transport/fetch/index.js.map +1 -1
  67. package/dist/cjs/lib/stream/transport/fetch/shared.d.ts +7 -2
  68. package/dist/cjs/lib/stream/transport/fetch/shared.d.ts.map +1 -1
  69. package/dist/cjs/lib/stream/transport/fetch/shared.js +62 -111
  70. package/dist/cjs/lib/stream/transport/fetch/shared.js.map +1 -1
  71. package/dist/cjs/lib/stream/transport/proto.d.ts +9 -0
  72. package/dist/cjs/lib/stream/transport/proto.d.ts.map +1 -0
  73. package/dist/cjs/lib/stream/transport/proto.js +118 -0
  74. package/dist/cjs/lib/stream/transport/proto.js.map +1 -0
  75. package/dist/cjs/lib/stream/transport/s2s/index.d.ts +3 -3
  76. package/dist/cjs/lib/stream/transport/s2s/index.d.ts.map +1 -1
  77. package/dist/cjs/lib/stream/transport/s2s/index.js +139 -86
  78. package/dist/cjs/lib/stream/transport/s2s/index.js.map +1 -1
  79. package/dist/cjs/lib/stream/types.d.ts +81 -36
  80. package/dist/cjs/lib/stream/types.d.ts.map +1 -1
  81. package/dist/cjs/lib/stream/types.js +18 -0
  82. package/dist/cjs/lib/stream/types.js.map +1 -1
  83. package/dist/cjs/metrics.d.ts +18 -17
  84. package/dist/cjs/metrics.d.ts.map +1 -1
  85. package/dist/cjs/metrics.js +67 -12
  86. package/dist/cjs/metrics.js.map +1 -1
  87. package/dist/cjs/producer.d.ts +82 -0
  88. package/dist/cjs/producer.d.ts.map +1 -0
  89. package/dist/cjs/producer.js +305 -0
  90. package/dist/cjs/producer.js.map +1 -0
  91. package/dist/cjs/s2.d.ts +1 -2
  92. package/dist/cjs/s2.d.ts.map +1 -1
  93. package/dist/cjs/s2.js +9 -9
  94. package/dist/cjs/s2.js.map +1 -1
  95. package/dist/cjs/stream.d.ts +26 -12
  96. package/dist/cjs/stream.d.ts.map +1 -1
  97. package/dist/cjs/stream.js +77 -13
  98. package/dist/cjs/stream.js.map +1 -1
  99. package/dist/cjs/streams.d.ts +29 -19
  100. package/dist/cjs/streams.d.ts.map +1 -1
  101. package/dist/cjs/streams.js +120 -9
  102. package/dist/cjs/streams.js.map +1 -1
  103. package/dist/cjs/types.d.ts +624 -0
  104. package/dist/cjs/types.d.ts.map +1 -0
  105. package/dist/cjs/types.js +129 -0
  106. package/dist/cjs/types.js.map +1 -0
  107. package/dist/cjs/utils.d.ts +1 -22
  108. package/dist/cjs/utils.d.ts.map +1 -1
  109. package/dist/cjs/utils.js +0 -42
  110. package/dist/cjs/utils.js.map +1 -1
  111. package/dist/cjs/version.d.ts +1 -1
  112. package/dist/cjs/version.js +1 -1
  113. package/dist/esm/accessTokens.d.ts +27 -14
  114. package/dist/esm/accessTokens.d.ts.map +1 -1
  115. package/dist/esm/accessTokens.js +73 -9
  116. package/dist/esm/accessTokens.js.map +1 -1
  117. package/dist/esm/basins.d.ts +29 -19
  118. package/dist/esm/basins.d.ts.map +1 -1
  119. package/dist/esm/basins.js +119 -9
  120. package/dist/esm/basins.js.map +1 -1
  121. package/dist/esm/batch-transform.d.ts +12 -16
  122. package/dist/esm/batch-transform.d.ts.map +1 -1
  123. package/dist/esm/batch-transform.js +18 -22
  124. package/dist/esm/batch-transform.js.map +1 -1
  125. package/dist/esm/common.d.ts +31 -24
  126. package/dist/esm/common.d.ts.map +1 -1
  127. package/dist/esm/common.js +20 -1
  128. package/dist/esm/common.js.map +1 -1
  129. package/dist/esm/endpoints.d.ts +63 -0
  130. package/dist/esm/endpoints.d.ts.map +1 -0
  131. package/dist/esm/endpoints.js +115 -0
  132. package/dist/esm/endpoints.js.map +1 -0
  133. package/dist/esm/error.d.ts +12 -2
  134. package/dist/esm/error.d.ts.map +1 -1
  135. package/dist/esm/error.js +20 -1
  136. package/dist/esm/error.js.map +1 -1
  137. package/dist/esm/generated/types.gen.d.ts +11 -20
  138. package/dist/esm/generated/types.gen.d.ts.map +1 -1
  139. package/dist/esm/index.d.ts +30 -46
  140. package/dist/esm/index.d.ts.map +1 -1
  141. package/dist/esm/index.js +33 -19
  142. package/dist/esm/index.js.map +1 -1
  143. package/dist/esm/internal/case-transform.d.ts +59 -0
  144. package/dist/esm/internal/case-transform.d.ts.map +1 -0
  145. package/dist/esm/internal/case-transform.js +76 -0
  146. package/dist/esm/internal/case-transform.js.map +1 -0
  147. package/dist/esm/internal/mappers.d.ts +51 -0
  148. package/dist/esm/internal/mappers.d.ts.map +1 -0
  149. package/dist/esm/internal/mappers.js +218 -0
  150. package/dist/esm/internal/mappers.js.map +1 -0
  151. package/dist/esm/internal/sdk-types.d.ts +127 -0
  152. package/dist/esm/internal/sdk-types.d.ts.map +1 -0
  153. package/dist/esm/internal/sdk-types.js +8 -0
  154. package/dist/esm/internal/sdk-types.js.map +1 -0
  155. package/dist/esm/lib/base64.d.ts +8 -0
  156. package/dist/esm/lib/base64.d.ts.map +1 -1
  157. package/dist/esm/lib/base64.js +30 -11
  158. package/dist/esm/lib/base64.js.map +1 -1
  159. package/dist/esm/lib/event-stream.d.ts.map +1 -1
  160. package/dist/esm/lib/event-stream.js +2 -1
  161. package/dist/esm/lib/event-stream.js.map +1 -1
  162. package/dist/esm/lib/paginate.d.ts +57 -0
  163. package/dist/esm/lib/paginate.d.ts.map +1 -0
  164. package/dist/esm/lib/paginate.js +48 -0
  165. package/dist/esm/lib/paginate.js.map +1 -0
  166. package/dist/esm/lib/result.d.ts +1 -1
  167. package/dist/esm/lib/result.d.ts.map +1 -1
  168. package/dist/esm/lib/retry.d.ts +47 -31
  169. package/dist/esm/lib/retry.d.ts.map +1 -1
  170. package/dist/esm/lib/retry.js +303 -201
  171. package/dist/esm/lib/retry.js.map +1 -1
  172. package/dist/esm/lib/stream/runtime.d.ts +1 -1
  173. package/dist/esm/lib/stream/transport/fetch/index.d.ts +7 -9
  174. package/dist/esm/lib/stream/transport/fetch/index.d.ts.map +1 -1
  175. package/dist/esm/lib/stream/transport/fetch/index.js +40 -41
  176. package/dist/esm/lib/stream/transport/fetch/index.js.map +1 -1
  177. package/dist/esm/lib/stream/transport/fetch/shared.d.ts +7 -2
  178. package/dist/esm/lib/stream/transport/fetch/shared.d.ts.map +1 -1
  179. package/dist/esm/lib/stream/transport/fetch/shared.js +64 -113
  180. package/dist/esm/lib/stream/transport/fetch/shared.js.map +1 -1
  181. package/dist/esm/lib/stream/transport/proto.d.ts +9 -0
  182. package/dist/esm/lib/stream/transport/proto.d.ts.map +1 -0
  183. package/dist/esm/lib/stream/transport/proto.js +110 -0
  184. package/dist/esm/lib/stream/transport/proto.js.map +1 -0
  185. package/dist/esm/lib/stream/transport/s2s/index.d.ts +3 -3
  186. package/dist/esm/lib/stream/transport/s2s/index.d.ts.map +1 -1
  187. package/dist/esm/lib/stream/transport/s2s/index.js +140 -86
  188. package/dist/esm/lib/stream/transport/s2s/index.js.map +1 -1
  189. package/dist/esm/lib/stream/types.d.ts +81 -36
  190. package/dist/esm/lib/stream/types.d.ts.map +1 -1
  191. package/dist/esm/lib/stream/types.js +17 -1
  192. package/dist/esm/lib/stream/types.js.map +1 -1
  193. package/dist/esm/metrics.d.ts +18 -17
  194. package/dist/esm/metrics.d.ts.map +1 -1
  195. package/dist/esm/metrics.js +66 -12
  196. package/dist/esm/metrics.js.map +1 -1
  197. package/dist/esm/producer.d.ts +82 -0
  198. package/dist/esm/producer.d.ts.map +1 -0
  199. package/dist/esm/producer.js +300 -0
  200. package/dist/esm/producer.js.map +1 -0
  201. package/dist/esm/s2.d.ts +1 -2
  202. package/dist/esm/s2.d.ts.map +1 -1
  203. package/dist/esm/s2.js +9 -9
  204. package/dist/esm/s2.js.map +1 -1
  205. package/dist/esm/stream.d.ts +26 -12
  206. package/dist/esm/stream.d.ts.map +1 -1
  207. package/dist/esm/stream.js +79 -15
  208. package/dist/esm/stream.js.map +1 -1
  209. package/dist/esm/streams.d.ts +29 -19
  210. package/dist/esm/streams.d.ts.map +1 -1
  211. package/dist/esm/streams.js +120 -9
  212. package/dist/esm/streams.js.map +1 -1
  213. package/dist/esm/types.d.ts +624 -0
  214. package/dist/esm/types.d.ts.map +1 -0
  215. package/dist/esm/types.js +126 -0
  216. package/dist/esm/types.js.map +1 -0
  217. package/dist/esm/utils.d.ts +1 -22
  218. package/dist/esm/utils.d.ts.map +1 -1
  219. package/dist/esm/utils.js +0 -41
  220. package/dist/esm/utils.js.map +1 -1
  221. package/dist/esm/version.d.ts +1 -1
  222. package/dist/esm/version.js +1 -1
  223. package/package.json +4 -3
package/dist/cjs/index.js CHANGED
@@ -1,47 +1,71 @@
1
1
  "use strict";
2
- /** Access token management helpers and argument types. */
2
+ // =============================================================================
3
+ // Core Client
4
+ // =============================================================================
3
5
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.utf8ByteLength = exports.meteredBytes = exports.AppendRecord = exports.S2Streams = exports.S2Stream = exports.S2 = exports.S2Metrics = exports.SeqNumMismatchError = exports.S2Error = exports.RangeNotSatisfiableError = exports.FencingTokenMismatchError = exports.BatchTransform = exports.S2Basins = exports.S2Basin = exports.S2AccessTokens = void 0;
5
- var accessTokens_js_1 = require("./accessTokens.js");
6
- Object.defineProperty(exports, "S2AccessTokens", { enumerable: true, get: function () { return accessTokens_js_1.S2AccessTokens; } });
6
+ exports.utf8ByteLength = exports.meteredBytes = exports.paginate = exports.randomToken = exports.SeqNumMismatchError = exports.S2Error = exports.RangeNotSatisfiableError = exports.FencingTokenMismatchError = exports.API = exports.MAX_APPEND_RECORDS = exports.MAX_APPEND_BYTES = exports.AppendRecord = exports.AppendInput = exports.RecordSubmitTicket = exports.Producer = exports.IndexedAppendAck = exports.BatchTransform = exports.S2Streams = exports.S2Metrics = exports.S2Basins = exports.S2AccessTokens = exports.S2Stream = exports.S2 = exports.S2Endpoints = exports.S2Environment = exports.S2Basin = void 0;
7
7
  var basin_js_1 = require("./basin.js");
8
8
  Object.defineProperty(exports, "S2Basin", { enumerable: true, get: function () { return basin_js_1.S2Basin; } });
9
- /** Basin management helper. */
9
+ var common_js_1 = require("./common.js");
10
+ Object.defineProperty(exports, "S2Environment", { enumerable: true, get: function () { return common_js_1.S2Environment; } });
11
+ var endpoints_js_1 = require("./endpoints.js");
12
+ Object.defineProperty(exports, "S2Endpoints", { enumerable: true, get: function () { return endpoints_js_1.S2Endpoints; } });
13
+ /** Top-level entrypoint for the SDK. */
14
+ var s2_js_1 = require("./s2.js");
15
+ Object.defineProperty(exports, "S2", { enumerable: true, get: function () { return s2_js_1.S2; } });
16
+ var stream_js_1 = require("./stream.js");
17
+ Object.defineProperty(exports, "S2Stream", { enumerable: true, get: function () { return stream_js_1.S2Stream; } });
18
+ // =============================================================================
19
+ // Management Classes
20
+ // =============================================================================
21
+ var accessTokens_js_1 = require("./accessTokens.js");
22
+ Object.defineProperty(exports, "S2AccessTokens", { enumerable: true, get: function () { return accessTokens_js_1.S2AccessTokens; } });
10
23
  var basins_js_1 = require("./basins.js");
11
24
  Object.defineProperty(exports, "S2Basins", { enumerable: true, get: function () { return basins_js_1.S2Basins; } });
25
+ var metrics_js_1 = require("./metrics.js");
26
+ Object.defineProperty(exports, "S2Metrics", { enumerable: true, get: function () { return metrics_js_1.S2Metrics; } });
27
+ var streams_js_1 = require("./streams.js");
28
+ Object.defineProperty(exports, "S2Streams", { enumerable: true, get: function () { return streams_js_1.S2Streams; } });
29
+ // =============================================================================
30
+ // High-Level Helpers
31
+ // =============================================================================
12
32
  /** High-level helper for transforming streams in batches. */
13
33
  var batch_transform_js_1 = require("./batch-transform.js");
14
34
  Object.defineProperty(exports, "BatchTransform", { enumerable: true, get: function () { return batch_transform_js_1.BatchTransform; } });
35
+ /** High-level producer with automatic batching. */
36
+ var producer_js_1 = require("./producer.js");
37
+ Object.defineProperty(exports, "IndexedAppendAck", { enumerable: true, get: function () { return producer_js_1.IndexedAppendAck; } });
38
+ Object.defineProperty(exports, "Producer", { enumerable: true, get: function () { return producer_js_1.Producer; } });
39
+ Object.defineProperty(exports, "RecordSubmitTicket", { enumerable: true, get: function () { return producer_js_1.RecordSubmitTicket; } });
15
40
  /**
16
- * Rich error types exposed by the SDK.
41
+ * Record types and factory functions for append operations.
17
42
  *
18
- * - {@link S2Error} is the base error type.
19
- * - Other types specialize common protocol errors.
43
+ * Use `AppendRecord.string()`, `AppendRecord.bytes()` to create records.
44
+ * Use `AppendInput.create()` to create validated append inputs.
20
45
  */
46
+ var types_js_1 = require("./types.js");
47
+ Object.defineProperty(exports, "AppendInput", { enumerable: true, get: function () { return types_js_1.AppendInput; } });
48
+ Object.defineProperty(exports, "AppendRecord", { enumerable: true, get: function () { return types_js_1.AppendRecord; } });
49
+ Object.defineProperty(exports, "MAX_APPEND_BYTES", { enumerable: true, get: function () { return types_js_1.MAX_APPEND_BYTES; } });
50
+ Object.defineProperty(exports, "MAX_APPEND_RECORDS", { enumerable: true, get: function () { return types_js_1.MAX_APPEND_RECORDS; } });
51
+ /**
52
+ * Generated API types matching the wire format (snake_case field names).
53
+ * Use these when you need to work with raw API data or understand the wire protocol.
54
+ */
55
+ exports.API = require("./generated/types.gen.js");
56
+ // =============================================================================
57
+ // Error Types
58
+ // =============================================================================
21
59
  var error_js_1 = require("./error.js");
22
60
  Object.defineProperty(exports, "FencingTokenMismatchError", { enumerable: true, get: function () { return error_js_1.FencingTokenMismatchError; } });
23
61
  Object.defineProperty(exports, "RangeNotSatisfiableError", { enumerable: true, get: function () { return error_js_1.RangeNotSatisfiableError; } });
24
62
  Object.defineProperty(exports, "S2Error", { enumerable: true, get: function () { return error_js_1.S2Error; } });
25
63
  Object.defineProperty(exports, "SeqNumMismatchError", { enumerable: true, get: function () { return error_js_1.SeqNumMismatchError; } });
26
- /** Metrics helper and argument types. */
27
- var metrics_js_1 = require("./metrics.js");
28
- Object.defineProperty(exports, "S2Metrics", { enumerable: true, get: function () { return metrics_js_1.S2Metrics; } });
29
- /** Top-level entrypoint for the SDK. */
30
- var s2_js_1 = require("./s2.js");
31
- Object.defineProperty(exports, "S2", { enumerable: true, get: function () { return s2_js_1.S2; } });
32
- var stream_js_1 = require("./stream.js");
33
- Object.defineProperty(exports, "S2Stream", { enumerable: true, get: function () { return stream_js_1.S2Stream; } });
34
- /** Stream management helper and argument types. */
35
- var streams_js_1 = require("./streams.js");
36
- Object.defineProperty(exports, "S2Streams", { enumerable: true, get: function () { return streams_js_1.S2Streams; } });
37
- /**
38
- * Low-level utilities for record bodies.
39
- *
40
- * - {@link AppendRecord} helps construct appendable records.
41
- * - {@link meteredBytes} and {@link utf8ByteLength} expose sizing utilities.
42
- */
64
+ var base64_js_1 = require("./lib/base64.js");
65
+ Object.defineProperty(exports, "randomToken", { enumerable: true, get: function () { return base64_js_1.randomToken; } });
66
+ var paginate_js_1 = require("./lib/paginate.js");
67
+ Object.defineProperty(exports, "paginate", { enumerable: true, get: function () { return paginate_js_1.paginate; } });
43
68
  var utils_js_1 = require("./utils.js");
44
- Object.defineProperty(exports, "AppendRecord", { enumerable: true, get: function () { return utils_js_1.AppendRecord; } });
45
69
  Object.defineProperty(exports, "meteredBytes", { enumerable: true, get: function () { return utils_js_1.meteredBytes; } });
46
70
  Object.defineProperty(exports, "utf8ByteLength", { enumerable: true, get: function () { return utils_js_1.utf8ByteLength; } });
47
71
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,0DAA0D;;;AAO1D,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAGvB,uCAAqC;AAA5B,mGAAA,OAAO,OAAA;AAYhB,+BAA+B;AAC/B,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AAGjB,6DAA6D;AAC7D,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AAQvB;;;;;GAKG;AACH,uCAKoB;AAJnB,qHAAA,yBAAyB,OAAA;AACzB,oHAAA,wBAAwB,OAAA;AACxB,mGAAA,OAAO,OAAA;AACP,+GAAA,mBAAmB,OAAA;AA2FpB,yCAAyC;AACzC,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,wCAAwC;AACxC,iCAA6B;AAApB,2FAAA,EAAE,OAAA;AACX,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AAQjB,mDAAmD;AACnD,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAElB;;;;;GAKG;AACH,uCAAwE;AAA/D,wGAAA,YAAY,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,0GAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,cAAc;AACd,gFAAgF;;;AAEhF,uCAAqC;AAA5B,mGAAA,OAAO,OAAA;AAChB,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AACtB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,wCAAwC;AACxC,iCAA6B;AAApB,2FAAA,EAAE,OAAA;AACX,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AAEjB,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AACjB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAElB,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,6DAA6D;AAC7D,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AACvB,mDAAmD;AACnD,6CAA+E;AAAtE,+GAAA,gBAAgB,OAAA;AAAE,uGAAA,QAAQ,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAoEvD;;;;;GAKG;AACH,uCAKoB;AAJnB,uGAAA,WAAW,OAAA;AACX,wGAAA,YAAY,OAAA;AACZ,4GAAA,gBAAgB,OAAA;AAChB,8GAAA,kBAAkB,OAAA;AA2BnB;;;GAGG;AACH,kDAAgD;AAchD,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,uCAKoB;AAJnB,qHAAA,yBAAyB,OAAA;AACzB,oHAAA,wBAAwB,OAAA;AACxB,mGAAA,OAAO,OAAA;AACP,+GAAA,mBAAmB,OAAA;AAyBpB,6CAA8C;AAArC,wGAAA,WAAW,OAAA;AAEpB,iDAA6C;AAApC,uGAAA,QAAQ,OAAA;AAEjB,uCAA0D;AAAjD,wGAAA,YAAY,OAAA;AAAE,0GAAA,cAAc,OAAA"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Type-level and runtime utilities for converting between snake_case and camelCase.
3
+ *
4
+ * These utilities allow the SDK to expose camelCase APIs to users while the
5
+ * generated types from OpenAPI use snake_case to match the wire format.
6
+ */
7
+ /**
8
+ * Convert a snake_case string literal to camelCase at the type level.
9
+ *
10
+ * @example
11
+ * type Result = SnakeToCamel<"seq_num">; // "seqNum"
12
+ * type Result2 = SnakeToCamel<"created_at">; // "createdAt"
13
+ */
14
+ export type SnakeToCamel<S extends string> = S extends `${infer Head}_${infer Tail}` ? `${Head}${Capitalize<SnakeToCamel<Tail>>}` : S;
15
+ /**
16
+ * Convert a camelCase string literal to snake_case at the type level.
17
+ *
18
+ * @example
19
+ * type Result = CamelToSnake<"seqNum">; // "seq_num"
20
+ * type Result2 = CamelToSnake<"createdAt">; // "created_at"
21
+ */
22
+ export type CamelToSnake<S extends string> = S extends `${infer Head}${infer Tail}` ? Head extends Uppercase<Head> ? Head extends Lowercase<Head> ? `${Head}${CamelToSnake<Tail>}` : `_${Lowercase<Head>}${CamelToSnake<Tail>}` : `${Head}${CamelToSnake<Tail>}` : S;
23
+ /**
24
+ * Recursively transform all keys in an object type from snake_case to camelCase.
25
+ *
26
+ * @example
27
+ * type API = { seq_num: number; created_at: string };
28
+ * type SDK = CamelCaseKeys<API>; // { seqNum: number; createdAt: string }
29
+ */
30
+ export type CamelCaseKeys<T> = T extends object ? T extends Array<infer U> ? Array<CamelCaseKeys<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<CamelCaseKeys<U>> : {
31
+ [K in keyof T as SnakeToCamel<K & string>]: CamelCaseKeys<T[K]>;
32
+ } : T;
33
+ /**
34
+ * Recursively transform all keys in an object type from camelCase to snake_case.
35
+ *
36
+ * @example
37
+ * type SDK = { seqNum: number; createdAt: string };
38
+ * type API = SnakeCaseKeys<SDK>; // { seq_num: number; created_at: string }
39
+ */
40
+ export type SnakeCaseKeys<T> = T extends object ? T extends Array<infer U> ? Array<SnakeCaseKeys<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<SnakeCaseKeys<U>> : {
41
+ [K in keyof T as CamelToSnake<K & string>]: SnakeCaseKeys<T[K]>;
42
+ } : T;
43
+ /**
44
+ * Recursively transform all keys in an object from snake_case to camelCase at runtime.
45
+ *
46
+ * @example
47
+ * const api = { seq_num: 123, created_at: "2024-01-01" };
48
+ * const sdk = toCamelCase(api); // { seqNum: 123, createdAt: "2024-01-01" }
49
+ */
50
+ export declare function toCamelCase<T>(obj: unknown): CamelCaseKeys<T>;
51
+ /**
52
+ * Recursively transform all keys in an object from camelCase to snake_case at runtime.
53
+ *
54
+ * @example
55
+ * const sdk = { seqNum: 123, createdAt: "2024-01-01" };
56
+ * const api = toSnakeCase(sdk); // { seq_num: 123, created_at: "2024-01-01" }
57
+ */
58
+ export declare function toSnakeCase<T>(obj: unknown): SnakeCaseKeys<T>;
59
+ //# sourceMappingURL=case-transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-transform.d.ts","sourceRoot":"","sources":["../../../src/internal/case-transform.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IACxC,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GACpC,GAAG,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,GAC1C,CAAC,CAAC;AAEN;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IACxC,CAAC,SAAS,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,GACnC,IAAI,SAAS,SAAS,CAAC,IAAI,CAAC,GAC3B,IAAI,SAAS,SAAS,CAAC,IAAI,CAAC,GAC3B,GAAG,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,GAC9B,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,GAC3C,GAAG,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,GAC/B,CAAC,CAAC;AAEN;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC5C,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACvB,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GACvB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC/B,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAC/B;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACrE,CAAC,CAAC;AAEL;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC5C,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACvB,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GACvB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC/B,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAC/B;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACrE,CAAC,CAAC;AAoBL;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAuB7D;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAuB7D"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ /**
3
+ * Type-level and runtime utilities for converting between snake_case and camelCase.
4
+ *
5
+ * These utilities allow the SDK to expose camelCase APIs to users while the
6
+ * generated types from OpenAPI use snake_case to match the wire format.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.toCamelCase = toCamelCase;
10
+ exports.toSnakeCase = toSnakeCase;
11
+ // =============================================================================
12
+ // Runtime Transformations
13
+ // =============================================================================
14
+ /**
15
+ * Convert a snake_case string to camelCase at runtime.
16
+ */
17
+ function snakeToCamelString(str) {
18
+ return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
19
+ }
20
+ /**
21
+ * Convert a camelCase string to snake_case at runtime.
22
+ */
23
+ function camelToSnakeString(str) {
24
+ return str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
25
+ }
26
+ /**
27
+ * Recursively transform all keys in an object from snake_case to camelCase at runtime.
28
+ *
29
+ * @example
30
+ * const api = { seq_num: 123, created_at: "2024-01-01" };
31
+ * const sdk = toCamelCase(api); // { seqNum: 123, createdAt: "2024-01-01" }
32
+ */
33
+ function toCamelCase(obj) {
34
+ if (obj === null || obj === undefined) {
35
+ return obj;
36
+ }
37
+ if (typeof obj !== "object") {
38
+ return obj;
39
+ }
40
+ if (Array.isArray(obj)) {
41
+ return obj.map((item) => toCamelCase(item));
42
+ }
43
+ // Handle Uint8Array and other typed arrays - don't transform
44
+ if (ArrayBuffer.isView(obj)) {
45
+ return obj;
46
+ }
47
+ const result = {};
48
+ for (const [key, value] of Object.entries(obj)) {
49
+ result[snakeToCamelString(key)] = toCamelCase(value);
50
+ }
51
+ return result;
52
+ }
53
+ /**
54
+ * Recursively transform all keys in an object from camelCase to snake_case at runtime.
55
+ *
56
+ * @example
57
+ * const sdk = { seqNum: 123, createdAt: "2024-01-01" };
58
+ * const api = toSnakeCase(sdk); // { seq_num: 123, created_at: "2024-01-01" }
59
+ */
60
+ function toSnakeCase(obj) {
61
+ if (obj === null || obj === undefined) {
62
+ return obj;
63
+ }
64
+ if (typeof obj !== "object") {
65
+ return obj;
66
+ }
67
+ if (Array.isArray(obj)) {
68
+ return obj.map((item) => toSnakeCase(item));
69
+ }
70
+ // Handle Uint8Array and other typed arrays - don't transform
71
+ if (ArrayBuffer.isView(obj)) {
72
+ return obj;
73
+ }
74
+ const result = {};
75
+ for (const [key, value] of Object.entries(obj)) {
76
+ result[camelToSnakeString(key)] = toSnakeCase(value);
77
+ }
78
+ return result;
79
+ }
80
+ //# sourceMappingURL=case-transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-transform.js","sourceRoot":"","sources":["../../../src/internal/case-transform.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAyFH,kCAuBC;AASD,kCAuBC;AAhFD,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF;;GAEG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,WAAW,CAAI,GAAY;IAC1C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,GAAuB,CAAC;IAChC,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,GAAuB,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAqB,CAAC;IACjE,CAAC;IAED,6DAA6D;IAC7D,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAuB,CAAC;IAChC,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAA0B,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,WAAW,CAAI,GAAY;IAC1C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,GAAuB,CAAC;IAChC,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,GAAuB,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAqB,CAAC;IACjE,CAAC;IAED,6DAA6D;IAC7D,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAuB,CAAC;IAChC,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAA0B,CAAC;AACnC,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Internal type mappers between SDK types and generated types.
3
+ *
4
+ * Only used for hot-path types (records, append/read responses).
5
+ * Config, info, and metric types are used directly from generated types.
6
+ */
7
+ import * as API from "../generated/types.gen.js";
8
+ import type * as InternalTypes from "../lib/stream/types.js";
9
+ import * as Types from "../types.js";
10
+ /**
11
+ * Convert API StreamPosition to SDK StreamPosition.
12
+ */
13
+ export declare function fromAPIStreamPosition(pos: API.StreamPosition): Types.StreamPosition;
14
+ /**
15
+ * Convert API AppendAck to SDK AppendAck.
16
+ */
17
+ export declare function fromAPIAppendAck(ack: API.AppendAck): Types.AppendAck;
18
+ /**
19
+ * Convert API TailResponse to SDK TailResponse.
20
+ */
21
+ export declare function fromAPITailResponse(res: API.TailResponse): Types.TailResponse;
22
+ /**
23
+ * Convert SDK AppendRecord to API AppendRecord (for JSON/REST API).
24
+ */
25
+ export declare function toAPIAppendRecord(record: Types.AppendRecord): API.AppendRecord;
26
+ /** Input type for read batch mappers - accepts both API and internal types. */
27
+ type ReadBatchInput<Format extends "string" | "bytes"> = API.ReadBatch | InternalTypes.ReadBatch<Format>;
28
+ /**
29
+ * Convert API/internal ReadBatch to SDK ReadBatch (string format).
30
+ */
31
+ export declare function fromAPIReadBatchString<Format extends "string" | "bytes" = "string">(batch: ReadBatchInput<Format>): Types.ReadBatch<"string">;
32
+ /**
33
+ * Convert API/internal ReadBatch to SDK ReadBatch (bytes format).
34
+ */
35
+ export declare function fromAPIReadBatchBytes<Format extends "string" | "bytes" = "bytes">(batch: ReadBatchInput<Format>): Types.ReadBatch<"bytes">;
36
+ /**
37
+ * Convert SDK ReadInput (camelCase) to flat query parameters for the API (snake_case).
38
+ */
39
+ export declare function toAPIReadQuery(input?: Types.ReadInput): {
40
+ seq_num?: number;
41
+ timestamp?: number;
42
+ tail_offset?: number;
43
+ clamp?: boolean;
44
+ count?: number;
45
+ bytes?: number;
46
+ until?: number;
47
+ wait?: number;
48
+ ignore_command_records?: boolean;
49
+ };
50
+ export {};
51
+ //# sourceMappingURL=mappers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappers.d.ts","sourceRoot":"","sources":["../../../src/internal/mappers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,GAAG,MAAM,2BAA2B,CAAC;AAEjD,OAAO,KAAK,KAAK,aAAa,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AAqCrC;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,GAAG,EAAE,GAAG,CAAC,cAAc,GACrB,KAAK,CAAC,cAAc,CAKtB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAMpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAI7E;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,KAAK,CAAC,YAAY,GACxB,GAAG,CAAC,YAAY,CAqBlB;AAyED,+EAA+E;AAC/E,KAAK,cAAc,CAAC,MAAM,SAAS,QAAQ,GAAG,OAAO,IAClD,GAAG,CAAC,SAAS,GACb,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAEnC;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,MAAM,SAAS,QAAQ,GAAG,OAAO,GAAG,QAAQ,EAC3C,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAO1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,SAAS,QAAQ,GAAG,OAAO,GAAG,OAAO,EAC1C,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAOzD;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACjC,CAmDA"}
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+ /**
3
+ * Internal type mappers between SDK types and generated types.
4
+ *
5
+ * Only used for hot-path types (records, append/read responses).
6
+ * Config, info, and metric types are used directly from generated types.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.fromAPIStreamPosition = fromAPIStreamPosition;
10
+ exports.fromAPIAppendAck = fromAPIAppendAck;
11
+ exports.fromAPITailResponse = fromAPITailResponse;
12
+ exports.toAPIAppendRecord = toAPIAppendRecord;
13
+ exports.fromAPIReadBatchString = fromAPIReadBatchString;
14
+ exports.fromAPIReadBatchBytes = fromAPIReadBatchBytes;
15
+ exports.toAPIReadQuery = toAPIReadQuery;
16
+ const base64_js_1 = require("../lib/base64.js");
17
+ // =============================================================================
18
+ // Utilities
19
+ // =============================================================================
20
+ const textEncoder = new TextEncoder();
21
+ function toBytes(value) {
22
+ return typeof value === "string" ? textEncoder.encode(value) : value;
23
+ }
24
+ function toBase64(value) {
25
+ return (0, base64_js_1.encodeToBase64)(toBytes(value));
26
+ }
27
+ function fromBase64(value) {
28
+ return (0, base64_js_1.decodeFromBase64)(value);
29
+ }
30
+ /** Convert milliseconds to Date. */
31
+ function toDate(ms) {
32
+ return new Date(ms);
33
+ }
34
+ /** Convert Date or milliseconds to milliseconds. */
35
+ function toEpochMs(value) {
36
+ if (value === undefined || value === null)
37
+ return undefined;
38
+ return typeof value === "number" ? Math.floor(value) : value.getTime();
39
+ }
40
+ // =============================================================================
41
+ // Stream Position Mapper
42
+ // =============================================================================
43
+ /**
44
+ * Convert API StreamPosition to SDK StreamPosition.
45
+ */
46
+ function fromAPIStreamPosition(pos) {
47
+ return {
48
+ seqNum: pos.seq_num,
49
+ timestamp: toDate(pos.timestamp),
50
+ };
51
+ }
52
+ /**
53
+ * Convert API AppendAck to SDK AppendAck.
54
+ */
55
+ function fromAPIAppendAck(ack) {
56
+ return {
57
+ start: fromAPIStreamPosition(ack.start),
58
+ end: fromAPIStreamPosition(ack.end),
59
+ tail: fromAPIStreamPosition(ack.tail),
60
+ };
61
+ }
62
+ /**
63
+ * Convert API TailResponse to SDK TailResponse.
64
+ */
65
+ function fromAPITailResponse(res) {
66
+ return {
67
+ tail: fromAPIStreamPosition(res.tail),
68
+ };
69
+ }
70
+ // =============================================================================
71
+ // Record Mappers - Append
72
+ // =============================================================================
73
+ /**
74
+ * Convert SDK AppendRecord to API AppendRecord (for JSON/REST API).
75
+ */
76
+ function toAPIAppendRecord(record) {
77
+ const isStringRecord = "body" in record && typeof record.body === "string";
78
+ if (isStringRecord) {
79
+ const stringRecord = record;
80
+ return {
81
+ body: stringRecord.body,
82
+ headers: stringRecord.headers?.map(([name, value]) => [name, value]),
83
+ timestamp: toEpochMs(stringRecord.timestamp),
84
+ };
85
+ }
86
+ else {
87
+ const bytesRecord = record;
88
+ return {
89
+ body: toBase64(bytesRecord.body),
90
+ headers: bytesRecord.headers?.map(([name, value]) => [
91
+ toBase64(name),
92
+ toBase64(value),
93
+ ]),
94
+ timestamp: toEpochMs(bytesRecord.timestamp),
95
+ };
96
+ }
97
+ }
98
+ // =============================================================================
99
+ // Record Mappers - Read
100
+ // =============================================================================
101
+ /**
102
+ * Convert API SequencedRecord to SDK ReadRecord (string format).
103
+ */
104
+ function fromAPISequencedRecordString(record) {
105
+ let headers = [];
106
+ if (record.headers) {
107
+ if (Array.isArray(record.headers)) {
108
+ headers = record.headers.map(([name, value]) => [name, value]);
109
+ }
110
+ else if (typeof record.headers === "object") {
111
+ headers = Object.entries(record.headers);
112
+ }
113
+ }
114
+ return {
115
+ seqNum: record.seq_num,
116
+ timestamp: toDate(record.timestamp),
117
+ body: record.body ?? "",
118
+ headers,
119
+ };
120
+ }
121
+ /**
122
+ * Convert API SequencedRecord to SDK ReadRecord (bytes format).
123
+ */
124
+ function fromAPISequencedRecordBytes(record) {
125
+ let body;
126
+ if (!record.body) {
127
+ body = new Uint8Array();
128
+ }
129
+ else if (typeof record.body === "string") {
130
+ body = fromBase64(record.body);
131
+ }
132
+ else {
133
+ body = record.body;
134
+ }
135
+ let headers = [];
136
+ if (record.headers) {
137
+ if (Array.isArray(record.headers)) {
138
+ headers = record.headers.map(([name, value]) => {
139
+ const nameBytes = typeof name === "string" ? fromBase64(name) : name;
140
+ const valueBytes = typeof value === "string" ? fromBase64(value) : value;
141
+ return [nameBytes, valueBytes];
142
+ });
143
+ }
144
+ else if (typeof record.headers === "object") {
145
+ headers = Object.entries(record.headers).map(([name, value]) => [fromBase64(name), fromBase64(value)]);
146
+ }
147
+ }
148
+ return {
149
+ seqNum: record.seq_num,
150
+ timestamp: toDate(record.timestamp),
151
+ body,
152
+ headers,
153
+ };
154
+ }
155
+ /**
156
+ * Convert API/internal ReadBatch to SDK ReadBatch (string format).
157
+ */
158
+ function fromAPIReadBatchString(batch) {
159
+ return {
160
+ records: batch.records.map((r) => fromAPISequencedRecordString(r)),
161
+ tail: batch.tail ? fromAPIStreamPosition(batch.tail) : undefined,
162
+ };
163
+ }
164
+ /**
165
+ * Convert API/internal ReadBatch to SDK ReadBatch (bytes format).
166
+ */
167
+ function fromAPIReadBatchBytes(batch) {
168
+ return {
169
+ records: batch.records.map((r) => fromAPISequencedRecordBytes(r)),
170
+ tail: batch.tail ? fromAPIStreamPosition(batch.tail) : undefined,
171
+ };
172
+ }
173
+ // =============================================================================
174
+ // Read Input Mapper
175
+ // =============================================================================
176
+ /**
177
+ * Convert SDK ReadInput (camelCase) to flat query parameters for the API (snake_case).
178
+ */
179
+ function toAPIReadQuery(input) {
180
+ if (!input) {
181
+ return {};
182
+ }
183
+ const query = {};
184
+ if (input.start?.from) {
185
+ const from = input.start.from;
186
+ if ("seqNum" in from) {
187
+ query.seq_num = Math.floor(from.seqNum);
188
+ }
189
+ else if ("timestamp" in from) {
190
+ // Convert Date to milliseconds if needed
191
+ query.timestamp =
192
+ typeof from.timestamp === "number"
193
+ ? Math.floor(from.timestamp)
194
+ : from.timestamp.getTime();
195
+ }
196
+ else if ("tailOffset" in from) {
197
+ query.tail_offset = Math.floor(from.tailOffset);
198
+ }
199
+ }
200
+ if (input.start?.clamp !== undefined) {
201
+ query.clamp = input.start.clamp;
202
+ }
203
+ if (input.stop?.limits) {
204
+ if (input.stop.limits.count !== undefined) {
205
+ query.count = Math.floor(input.stop.limits.count);
206
+ }
207
+ if (input.stop.limits.bytes !== undefined) {
208
+ query.bytes = Math.floor(input.stop.limits.bytes);
209
+ }
210
+ }
211
+ if (input.stop?.untilTimestamp !== undefined) {
212
+ query.until =
213
+ typeof input.stop.untilTimestamp === "number"
214
+ ? Math.floor(input.stop.untilTimestamp)
215
+ : input.stop.untilTimestamp.getTime();
216
+ }
217
+ if (input.stop?.waitSecs !== undefined) {
218
+ query.wait = Math.max(0, Math.floor(input.stop.waitSecs));
219
+ }
220
+ if (input.ignoreCommandRecords !== undefined) {
221
+ query.ignore_command_records = input.ignoreCommandRecords;
222
+ }
223
+ return query;
224
+ }
225
+ //# sourceMappingURL=mappers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappers.js","sourceRoot":"","sources":["../../../src/internal/mappers.ts"],"names":[],"mappings":"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"}