@s2-dev/streamstore 0.20.0 → 0.21.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 (221) 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.map +1 -1
  24. package/dist/cjs/error.js +11 -0
  25. package/dist/cjs/error.js.map +1 -1
  26. package/dist/cjs/generated/types.gen.d.ts +11 -20
  27. package/dist/cjs/generated/types.gen.d.ts.map +1 -1
  28. package/dist/cjs/index.d.ts +30 -46
  29. package/dist/cjs/index.d.ts.map +1 -1
  30. package/dist/cjs/index.js +50 -26
  31. package/dist/cjs/index.js.map +1 -1
  32. package/dist/cjs/internal/case-transform.d.ts +59 -0
  33. package/dist/cjs/internal/case-transform.d.ts.map +1 -0
  34. package/dist/cjs/internal/case-transform.js +80 -0
  35. package/dist/cjs/internal/case-transform.js.map +1 -0
  36. package/dist/cjs/internal/mappers.d.ts +51 -0
  37. package/dist/cjs/internal/mappers.d.ts.map +1 -0
  38. package/dist/cjs/internal/mappers.js +225 -0
  39. package/dist/cjs/internal/mappers.js.map +1 -0
  40. package/dist/cjs/internal/sdk-types.d.ts +127 -0
  41. package/dist/cjs/internal/sdk-types.d.ts.map +1 -0
  42. package/dist/cjs/internal/sdk-types.js +9 -0
  43. package/dist/cjs/internal/sdk-types.js.map +1 -0
  44. package/dist/cjs/lib/base64.d.ts +8 -0
  45. package/dist/cjs/lib/base64.d.ts.map +1 -1
  46. package/dist/cjs/lib/base64.js +32 -12
  47. package/dist/cjs/lib/base64.js.map +1 -1
  48. package/dist/cjs/lib/event-stream.d.ts.map +1 -1
  49. package/dist/cjs/lib/event-stream.js +2 -1
  50. package/dist/cjs/lib/event-stream.js.map +1 -1
  51. package/dist/cjs/lib/paginate.d.ts +57 -0
  52. package/dist/cjs/lib/paginate.d.ts.map +1 -0
  53. package/dist/cjs/lib/paginate.js +51 -0
  54. package/dist/cjs/lib/paginate.js.map +1 -0
  55. package/dist/cjs/lib/result.d.ts +1 -1
  56. package/dist/cjs/lib/result.d.ts.map +1 -1
  57. package/dist/cjs/lib/retry.d.ts +47 -31
  58. package/dist/cjs/lib/retry.d.ts.map +1 -1
  59. package/dist/cjs/lib/retry.js +302 -201
  60. package/dist/cjs/lib/retry.js.map +1 -1
  61. package/dist/cjs/lib/stream/runtime.d.ts +1 -1
  62. package/dist/cjs/lib/stream/transport/fetch/index.d.ts +7 -9
  63. package/dist/cjs/lib/stream/transport/fetch/index.d.ts.map +1 -1
  64. package/dist/cjs/lib/stream/transport/fetch/index.js +38 -39
  65. package/dist/cjs/lib/stream/transport/fetch/index.js.map +1 -1
  66. package/dist/cjs/lib/stream/transport/fetch/shared.d.ts +7 -2
  67. package/dist/cjs/lib/stream/transport/fetch/shared.d.ts.map +1 -1
  68. package/dist/cjs/lib/stream/transport/fetch/shared.js +56 -110
  69. package/dist/cjs/lib/stream/transport/fetch/shared.js.map +1 -1
  70. package/dist/cjs/lib/stream/transport/proto.d.ts +9 -0
  71. package/dist/cjs/lib/stream/transport/proto.d.ts.map +1 -0
  72. package/dist/cjs/lib/stream/transport/proto.js +118 -0
  73. package/dist/cjs/lib/stream/transport/proto.js.map +1 -0
  74. package/dist/cjs/lib/stream/transport/s2s/index.d.ts +3 -3
  75. package/dist/cjs/lib/stream/transport/s2s/index.d.ts.map +1 -1
  76. package/dist/cjs/lib/stream/transport/s2s/index.js +115 -82
  77. package/dist/cjs/lib/stream/transport/s2s/index.js.map +1 -1
  78. package/dist/cjs/lib/stream/types.d.ts +81 -36
  79. package/dist/cjs/lib/stream/types.d.ts.map +1 -1
  80. package/dist/cjs/lib/stream/types.js +18 -0
  81. package/dist/cjs/lib/stream/types.js.map +1 -1
  82. package/dist/cjs/metrics.d.ts +18 -17
  83. package/dist/cjs/metrics.d.ts.map +1 -1
  84. package/dist/cjs/metrics.js +67 -12
  85. package/dist/cjs/metrics.js.map +1 -1
  86. package/dist/cjs/producer.d.ts +82 -0
  87. package/dist/cjs/producer.d.ts.map +1 -0
  88. package/dist/cjs/producer.js +305 -0
  89. package/dist/cjs/producer.js.map +1 -0
  90. package/dist/cjs/s2.d.ts +1 -2
  91. package/dist/cjs/s2.d.ts.map +1 -1
  92. package/dist/cjs/s2.js +9 -9
  93. package/dist/cjs/s2.js.map +1 -1
  94. package/dist/cjs/stream.d.ts +26 -12
  95. package/dist/cjs/stream.d.ts.map +1 -1
  96. package/dist/cjs/stream.js +77 -13
  97. package/dist/cjs/stream.js.map +1 -1
  98. package/dist/cjs/streams.d.ts +29 -19
  99. package/dist/cjs/streams.d.ts.map +1 -1
  100. package/dist/cjs/streams.js +120 -9
  101. package/dist/cjs/streams.js.map +1 -1
  102. package/dist/cjs/types.d.ts +624 -0
  103. package/dist/cjs/types.d.ts.map +1 -0
  104. package/dist/cjs/types.js +129 -0
  105. package/dist/cjs/types.js.map +1 -0
  106. package/dist/cjs/utils.d.ts +1 -22
  107. package/dist/cjs/utils.d.ts.map +1 -1
  108. package/dist/cjs/utils.js +0 -42
  109. package/dist/cjs/utils.js.map +1 -1
  110. package/dist/cjs/version.d.ts +1 -1
  111. package/dist/cjs/version.js +1 -1
  112. package/dist/esm/accessTokens.d.ts +27 -14
  113. package/dist/esm/accessTokens.d.ts.map +1 -1
  114. package/dist/esm/accessTokens.js +73 -9
  115. package/dist/esm/accessTokens.js.map +1 -1
  116. package/dist/esm/basins.d.ts +29 -19
  117. package/dist/esm/basins.d.ts.map +1 -1
  118. package/dist/esm/basins.js +119 -9
  119. package/dist/esm/basins.js.map +1 -1
  120. package/dist/esm/batch-transform.d.ts +12 -16
  121. package/dist/esm/batch-transform.d.ts.map +1 -1
  122. package/dist/esm/batch-transform.js +18 -22
  123. package/dist/esm/batch-transform.js.map +1 -1
  124. package/dist/esm/common.d.ts +31 -24
  125. package/dist/esm/common.d.ts.map +1 -1
  126. package/dist/esm/common.js +20 -1
  127. package/dist/esm/common.js.map +1 -1
  128. package/dist/esm/endpoints.d.ts +63 -0
  129. package/dist/esm/endpoints.d.ts.map +1 -0
  130. package/dist/esm/endpoints.js +115 -0
  131. package/dist/esm/endpoints.js.map +1 -0
  132. package/dist/esm/error.d.ts.map +1 -1
  133. package/dist/esm/error.js +11 -0
  134. package/dist/esm/error.js.map +1 -1
  135. package/dist/esm/generated/types.gen.d.ts +11 -20
  136. package/dist/esm/generated/types.gen.d.ts.map +1 -1
  137. package/dist/esm/index.d.ts +30 -46
  138. package/dist/esm/index.d.ts.map +1 -1
  139. package/dist/esm/index.js +33 -19
  140. package/dist/esm/index.js.map +1 -1
  141. package/dist/esm/internal/case-transform.d.ts +59 -0
  142. package/dist/esm/internal/case-transform.d.ts.map +1 -0
  143. package/dist/esm/internal/case-transform.js +76 -0
  144. package/dist/esm/internal/case-transform.js.map +1 -0
  145. package/dist/esm/internal/mappers.d.ts +51 -0
  146. package/dist/esm/internal/mappers.d.ts.map +1 -0
  147. package/dist/esm/internal/mappers.js +218 -0
  148. package/dist/esm/internal/mappers.js.map +1 -0
  149. package/dist/esm/internal/sdk-types.d.ts +127 -0
  150. package/dist/esm/internal/sdk-types.d.ts.map +1 -0
  151. package/dist/esm/internal/sdk-types.js +8 -0
  152. package/dist/esm/internal/sdk-types.js.map +1 -0
  153. package/dist/esm/lib/base64.d.ts +8 -0
  154. package/dist/esm/lib/base64.d.ts.map +1 -1
  155. package/dist/esm/lib/base64.js +30 -11
  156. package/dist/esm/lib/base64.js.map +1 -1
  157. package/dist/esm/lib/event-stream.d.ts.map +1 -1
  158. package/dist/esm/lib/event-stream.js +2 -1
  159. package/dist/esm/lib/event-stream.js.map +1 -1
  160. package/dist/esm/lib/paginate.d.ts +57 -0
  161. package/dist/esm/lib/paginate.d.ts.map +1 -0
  162. package/dist/esm/lib/paginate.js +48 -0
  163. package/dist/esm/lib/paginate.js.map +1 -0
  164. package/dist/esm/lib/result.d.ts +1 -1
  165. package/dist/esm/lib/result.d.ts.map +1 -1
  166. package/dist/esm/lib/retry.d.ts +47 -31
  167. package/dist/esm/lib/retry.d.ts.map +1 -1
  168. package/dist/esm/lib/retry.js +303 -201
  169. package/dist/esm/lib/retry.js.map +1 -1
  170. package/dist/esm/lib/stream/runtime.d.ts +1 -1
  171. package/dist/esm/lib/stream/transport/fetch/index.d.ts +7 -9
  172. package/dist/esm/lib/stream/transport/fetch/index.d.ts.map +1 -1
  173. package/dist/esm/lib/stream/transport/fetch/index.js +40 -41
  174. package/dist/esm/lib/stream/transport/fetch/index.js.map +1 -1
  175. package/dist/esm/lib/stream/transport/fetch/shared.d.ts +7 -2
  176. package/dist/esm/lib/stream/transport/fetch/shared.d.ts.map +1 -1
  177. package/dist/esm/lib/stream/transport/fetch/shared.js +58 -112
  178. package/dist/esm/lib/stream/transport/fetch/shared.js.map +1 -1
  179. package/dist/esm/lib/stream/transport/proto.d.ts +9 -0
  180. package/dist/esm/lib/stream/transport/proto.d.ts.map +1 -0
  181. package/dist/esm/lib/stream/transport/proto.js +110 -0
  182. package/dist/esm/lib/stream/transport/proto.js.map +1 -0
  183. package/dist/esm/lib/stream/transport/s2s/index.d.ts +3 -3
  184. package/dist/esm/lib/stream/transport/s2s/index.d.ts.map +1 -1
  185. package/dist/esm/lib/stream/transport/s2s/index.js +116 -82
  186. package/dist/esm/lib/stream/transport/s2s/index.js.map +1 -1
  187. package/dist/esm/lib/stream/types.d.ts +81 -36
  188. package/dist/esm/lib/stream/types.d.ts.map +1 -1
  189. package/dist/esm/lib/stream/types.js +17 -1
  190. package/dist/esm/lib/stream/types.js.map +1 -1
  191. package/dist/esm/metrics.d.ts +18 -17
  192. package/dist/esm/metrics.d.ts.map +1 -1
  193. package/dist/esm/metrics.js +66 -12
  194. package/dist/esm/metrics.js.map +1 -1
  195. package/dist/esm/producer.d.ts +82 -0
  196. package/dist/esm/producer.d.ts.map +1 -0
  197. package/dist/esm/producer.js +300 -0
  198. package/dist/esm/producer.js.map +1 -0
  199. package/dist/esm/s2.d.ts +1 -2
  200. package/dist/esm/s2.d.ts.map +1 -1
  201. package/dist/esm/s2.js +9 -9
  202. package/dist/esm/s2.js.map +1 -1
  203. package/dist/esm/stream.d.ts +26 -12
  204. package/dist/esm/stream.d.ts.map +1 -1
  205. package/dist/esm/stream.js +79 -15
  206. package/dist/esm/stream.js.map +1 -1
  207. package/dist/esm/streams.d.ts +29 -19
  208. package/dist/esm/streams.d.ts.map +1 -1
  209. package/dist/esm/streams.js +120 -9
  210. package/dist/esm/streams.js.map +1 -1
  211. package/dist/esm/types.d.ts +624 -0
  212. package/dist/esm/types.d.ts.map +1 -0
  213. package/dist/esm/types.js +126 -0
  214. package/dist/esm/types.js.map +1 -0
  215. package/dist/esm/utils.d.ts +1 -22
  216. package/dist/esm/utils.d.ts.map +1 -1
  217. package/dist/esm/utils.js +0 -41
  218. package/dist/esm/utils.js.map +1 -1
  219. package/dist/esm/version.d.ts +1 -1
  220. package/dist/esm/version.js +1 -1
  221. package/package.json +4 -3
@@ -0,0 +1,624 @@
1
+ /**
2
+ * S2 SDK Types
3
+ *
4
+ * All public SDK types are defined here. Types use camelCase field names
5
+ * for idiomatic JavaScript/TypeScript usage.
6
+ *
7
+ * Generated types (snake_case, matching API wire format) are available
8
+ * from "./generated/types.gen.js" as the `API` namespace.
9
+ */
10
+ import type * as API from "./generated/types.gen.js";
11
+ import type { ListAllArgs } from "./lib/paginate.js";
12
+ /**
13
+ * Position of a record in a stream.
14
+ */
15
+ export interface StreamPosition {
16
+ /** Sequence number assigned by the service. */
17
+ readonly seqNum: number;
18
+ /** Timestamp of the record. */
19
+ readonly timestamp: Date;
20
+ }
21
+ /**
22
+ * Append record with string body and string headers.
23
+ * Use `AppendRecord.string()` to construct instances.
24
+ */
25
+ export interface StringAppendRecord {
26
+ readonly body: string;
27
+ readonly headers?: ReadonlyArray<readonly [string, string]>;
28
+ /** Optional timestamp (Date or milliseconds since Unix epoch). */
29
+ readonly timestamp?: number | Date;
30
+ /** Pre-calculated metered size in bytes. */
31
+ readonly meteredBytes: number;
32
+ }
33
+ /**
34
+ * Append record with binary body and binary headers.
35
+ * Use `AppendRecord.bytes()` to construct instances.
36
+ */
37
+ export interface BytesAppendRecord {
38
+ readonly body: Uint8Array;
39
+ readonly headers?: ReadonlyArray<readonly [Uint8Array, Uint8Array]>;
40
+ /** Optional timestamp (Date or milliseconds since Unix epoch). */
41
+ readonly timestamp?: number | Date;
42
+ /** Pre-calculated metered size in bytes. */
43
+ readonly meteredBytes: number;
44
+ }
45
+ /**
46
+ * Record to be appended to a stream.
47
+ * Can be either string format (text) or bytes format (binary).
48
+ */
49
+ export type AppendRecord = StringAppendRecord | BytesAppendRecord;
50
+ /**
51
+ * Factory functions for creating AppendRecord instances.
52
+ */
53
+ export declare namespace AppendRecord {
54
+ /**
55
+ * Create a string-format append record with pre-calculated metered size.
56
+ */
57
+ function string(params: {
58
+ readonly body: string;
59
+ readonly headers?: ReadonlyArray<readonly [string, string]>;
60
+ readonly timestamp?: number | Date;
61
+ }): StringAppendRecord;
62
+ /**
63
+ * Create a bytes-format append record with pre-calculated metered size.
64
+ */
65
+ function bytes(params: {
66
+ readonly body: Uint8Array;
67
+ readonly headers?: ReadonlyArray<readonly [Uint8Array, Uint8Array]>;
68
+ readonly timestamp?: number | Date;
69
+ }): BytesAppendRecord;
70
+ /**
71
+ * Create a fence command record.
72
+ */
73
+ function fence(fencingToken: string, timestamp?: number | Date): StringAppendRecord;
74
+ /**
75
+ * Create a trim command record.
76
+ */
77
+ function trim(seqNum: number, timestamp?: number | Date): BytesAppendRecord;
78
+ }
79
+ /**
80
+ * Record read from a stream.
81
+ * The Format type parameter controls whether body and headers are decoded as strings or kept as binary.
82
+ */
83
+ export interface ReadRecord<Format extends "string" | "bytes" = "string"> {
84
+ readonly seqNum: number;
85
+ readonly body: Format extends "string" ? string : Uint8Array;
86
+ readonly headers: Format extends "string" ? ReadonlyArray<readonly [string, string]> : ReadonlyArray<readonly [Uint8Array, Uint8Array]>;
87
+ /** Timestamp of the record. */
88
+ readonly timestamp: Date;
89
+ }
90
+ /** Maximum number of records in a single append batch. */
91
+ export declare const MAX_APPEND_RECORDS = 1000;
92
+ /** Maximum total metered bytes for records in a single append batch (1 MiB). */
93
+ export declare const MAX_APPEND_BYTES: number;
94
+ /**
95
+ * Input for append operations.
96
+ * Use `AppendInput.create()` to construct with validation.
97
+ */
98
+ export interface AppendInput {
99
+ readonly records: ReadonlyArray<AppendRecord>;
100
+ readonly matchSeqNum?: number;
101
+ readonly fencingToken?: string;
102
+ /** Pre-calculated total metered size in bytes. */
103
+ readonly meteredBytes: number;
104
+ }
105
+ /**
106
+ * Factory functions for creating AppendInput instances.
107
+ */
108
+ export declare namespace AppendInput {
109
+ /**
110
+ * Create an AppendInput with validation.
111
+ *
112
+ * @throws {S2Error} If validation fails (empty, too many records, or too large)
113
+ */
114
+ function create(records: ReadonlyArray<AppendRecord>, options?: {
115
+ readonly matchSeqNum?: number;
116
+ readonly fencingToken?: string;
117
+ }): AppendInput;
118
+ }
119
+ /**
120
+ * Starting position for reading from a stream.
121
+ */
122
+ export type ReadFrom = {
123
+ readonly seqNum: number;
124
+ } | {
125
+ readonly timestamp: number | Date;
126
+ } | {
127
+ readonly tailOffset: number;
128
+ };
129
+ /**
130
+ * Where to start reading.
131
+ */
132
+ export interface ReadStart {
133
+ readonly from?: ReadFrom;
134
+ /** Start from tail if requested position is beyond it. */
135
+ readonly clamp?: boolean;
136
+ }
137
+ /**
138
+ * Limits on how much to read.
139
+ */
140
+ export interface ReadLimits {
141
+ readonly count?: number;
142
+ readonly bytes?: number;
143
+ }
144
+ /**
145
+ * When to stop reading.
146
+ */
147
+ export interface ReadStop {
148
+ readonly limits?: ReadLimits;
149
+ /**
150
+ * Timestamp at which to stop (exclusive).
151
+ * Accepts a `Date` or milliseconds since Unix epoch.
152
+ */
153
+ readonly untilTimestamp?: number | Date;
154
+ /**
155
+ * Duration in seconds to wait for new records before stopping.
156
+ * Non-integer values are floored when sent to the API.
157
+ */
158
+ readonly waitSecs?: number;
159
+ }
160
+ /**
161
+ * Input for read operations.
162
+ */
163
+ export interface ReadInput {
164
+ readonly start?: ReadStart;
165
+ readonly stop?: ReadStop;
166
+ readonly ignoreCommandRecords?: boolean;
167
+ }
168
+ /**
169
+ * Success response to an append request.
170
+ */
171
+ export interface AppendAck {
172
+ readonly start: StreamPosition;
173
+ readonly end: StreamPosition;
174
+ readonly tail: StreamPosition;
175
+ }
176
+ /**
177
+ * Batch of records read from a stream.
178
+ */
179
+ export interface ReadBatch<Format extends "string" | "bytes" = "string"> {
180
+ readonly records: ReadonlyArray<ReadRecord<Format>>;
181
+ readonly tail?: StreamPosition;
182
+ }
183
+ /**
184
+ * Response from checking the tail of a stream.
185
+ */
186
+ export interface TailResponse {
187
+ readonly tail: StreamPosition;
188
+ }
189
+ /**
190
+ * Options for append sessions (backpressure control).
191
+ */
192
+ export interface AppendSessionOptions {
193
+ /** Max in-flight bytes before backpressure (default: 3 MiB). */
194
+ readonly maxInflightBytes?: number;
195
+ /** Max in-flight batches before backpressure. */
196
+ readonly maxInflightBatches?: number;
197
+ }
198
+ /**
199
+ * Input for listing streams.
200
+ */
201
+ export interface ListStreamsInput {
202
+ /** Filter to streams whose name begins with this prefix. */
203
+ prefix?: string;
204
+ /** Filter to streams whose name lexicographically starts after this string. */
205
+ startAfter?: string;
206
+ /** Number of results, up to a maximum of 1000. */
207
+ limit?: number;
208
+ }
209
+ export type ListAllStreamsInput = ListAllArgs<ListStreamsInput>;
210
+ /**
211
+ * Input for creating a stream.
212
+ */
213
+ export interface CreateStreamInput {
214
+ /**
215
+ * Stream name that is unique to the basin.
216
+ * It can be between 1 and 512 bytes in length.
217
+ */
218
+ stream: string;
219
+ /** Stream configuration. */
220
+ config?: StreamConfig | null;
221
+ }
222
+ /**
223
+ * Input for getting stream configuration.
224
+ */
225
+ export interface GetStreamConfigInput {
226
+ /** Stream name. */
227
+ stream: string;
228
+ }
229
+ /**
230
+ * Input for deleting a stream.
231
+ */
232
+ export interface DeleteStreamInput {
233
+ /** Stream name. */
234
+ stream: string;
235
+ }
236
+ /**
237
+ * Input for reconfiguring a stream.
238
+ */
239
+ export interface ReconfigureStreamInput {
240
+ /** Stream name. */
241
+ stream: string;
242
+ /** Delete-on-empty configuration. */
243
+ deleteOnEmpty?: DeleteOnEmptyConfig | null;
244
+ /** Retention policy. */
245
+ retentionPolicy?: RetentionPolicy | null;
246
+ /** Storage class. */
247
+ storageClass?: API.StorageClass | null;
248
+ /** Timestamping configuration. */
249
+ timestamping?: TimestampingConfig | null;
250
+ }
251
+ /**
252
+ * Information about a stream.
253
+ */
254
+ export interface StreamInfo {
255
+ /** Stream name. */
256
+ name: string;
257
+ /** Creation time. */
258
+ createdAt: Date;
259
+ /** Deletion time, if the stream is being deleted. */
260
+ deletedAt?: Date | null;
261
+ }
262
+ /**
263
+ * Delete-on-empty configuration.
264
+ */
265
+ export interface DeleteOnEmptyConfig {
266
+ /**
267
+ * Minimum age in seconds before an empty stream can be deleted.
268
+ * Set to 0 (default) to disable delete-on-empty.
269
+ */
270
+ minAgeSecs?: number;
271
+ }
272
+ /**
273
+ * Timestamping configuration.
274
+ */
275
+ export interface TimestampingConfig {
276
+ /** Timestamping mode. */
277
+ mode?: API.TimestampingMode | null;
278
+ /**
279
+ * Allow client-specified timestamps to exceed the arrival time.
280
+ * If false or not set, client timestamps will be capped at the arrival time.
281
+ */
282
+ uncapped?: boolean | null;
283
+ }
284
+ /**
285
+ * Retention policy for automatic trimming.
286
+ *
287
+ * Either specify `ageSecs` for time-based retention, or `infinite` for unlimited retention.
288
+ */
289
+ export type RetentionPolicy = {
290
+ /** Age in seconds for automatic trimming of records older than this threshold. Must be > 0. */
291
+ ageSecs: number;
292
+ } | {
293
+ /** Retain records unless explicitly trimmed. */
294
+ infinite: API.InfiniteRetention;
295
+ };
296
+ /**
297
+ * Stream configuration.
298
+ */
299
+ export interface StreamConfig {
300
+ /** Delete-on-empty configuration. */
301
+ deleteOnEmpty?: DeleteOnEmptyConfig | null;
302
+ /** Retention policy. */
303
+ retentionPolicy?: RetentionPolicy | null;
304
+ /** Storage class. */
305
+ storageClass?: API.StorageClass | null;
306
+ /** Timestamping configuration. */
307
+ timestamping?: TimestampingConfig | null;
308
+ }
309
+ /**
310
+ * Response from listing streams.
311
+ */
312
+ export interface ListStreamsResponse {
313
+ /** List of streams. */
314
+ streams: StreamInfo[];
315
+ /** Whether there are more results. */
316
+ hasMore: boolean;
317
+ }
318
+ /**
319
+ * Response from creating a stream.
320
+ */
321
+ export interface CreateStreamResponse {
322
+ /** Stream configuration. */
323
+ config: StreamConfig;
324
+ }
325
+ export type ReconfigureStreamResponse = StreamConfig;
326
+ /**
327
+ * Input for listing basins.
328
+ */
329
+ export interface ListBasinsInput {
330
+ /** Filter to basins whose names begin with this prefix. */
331
+ prefix?: string;
332
+ /** Filter to basins whose names lexicographically start after this string. */
333
+ startAfter?: string;
334
+ /** Number of results, up to a maximum of 1000. */
335
+ limit?: number;
336
+ }
337
+ export type ListAllBasinsInput = ListAllArgs<ListBasinsInput>;
338
+ /**
339
+ * Input for creating a basin.
340
+ */
341
+ export interface CreateBasinInput {
342
+ /**
343
+ * Basin name which must be globally unique.
344
+ * It can be between 8 and 48 characters in length, and comprise lowercase letters, numbers and hyphens.
345
+ * It cannot begin or end with a hyphen.
346
+ */
347
+ basin: string;
348
+ /** Basin configuration. */
349
+ config?: BasinConfig | null;
350
+ /** Basin scope. */
351
+ scope?: API.BasinScope | null;
352
+ }
353
+ /**
354
+ * Input for getting basin configuration.
355
+ */
356
+ export interface GetBasinConfigInput {
357
+ /** Basin name. */
358
+ basin: string;
359
+ }
360
+ /**
361
+ * Input for deleting a basin.
362
+ */
363
+ export interface DeleteBasinInput {
364
+ /** Basin name. */
365
+ basin: string;
366
+ }
367
+ /**
368
+ * Input for reconfiguring a basin.
369
+ */
370
+ export interface ReconfigureBasinInput {
371
+ /** Basin name. */
372
+ basin: string;
373
+ /** Create a stream on append. */
374
+ createStreamOnAppend?: boolean | null;
375
+ /** Create a stream on read. */
376
+ createStreamOnRead?: boolean | null;
377
+ /** Default stream configuration updates. */
378
+ defaultStreamConfig?: StreamConfig | null;
379
+ }
380
+ /**
381
+ * Information about a basin.
382
+ */
383
+ export interface BasinInfo {
384
+ /** Basin name. */
385
+ name: string;
386
+ /** Basin scope. */
387
+ scope?: API.BasinScope | null;
388
+ /** Basin state. */
389
+ state: API.BasinState;
390
+ }
391
+ /**
392
+ * Basin configuration.
393
+ */
394
+ export interface BasinConfig {
395
+ /** Create stream on append if it doesn't exist. */
396
+ createStreamOnAppend?: boolean;
397
+ /** Create stream on read if it doesn't exist. */
398
+ createStreamOnRead?: boolean;
399
+ /** Default stream configuration. */
400
+ defaultStreamConfig?: StreamConfig | null;
401
+ }
402
+ /**
403
+ * Response from listing basins.
404
+ */
405
+ export interface ListBasinsResponse {
406
+ /** List of basins. */
407
+ basins: BasinInfo[];
408
+ /** Whether there are more results. */
409
+ hasMore: boolean;
410
+ }
411
+ /**
412
+ * Response from creating a basin.
413
+ */
414
+ export interface CreateBasinResponse {
415
+ /** Basin name. */
416
+ name: string;
417
+ /** Basin scope. */
418
+ scope?: API.BasinScope | null;
419
+ /** Basin state. */
420
+ state: API.BasinState;
421
+ }
422
+ export type ReconfigureBasinResponse = BasinConfig;
423
+ /**
424
+ * Input for listing access tokens.
425
+ */
426
+ export interface ListAccessTokensInput {
427
+ /** Filter to access tokens whose ID begins with this prefix. */
428
+ prefix?: string;
429
+ /** Filter to access tokens whose ID lexicographically starts after this string. */
430
+ startAfter?: string;
431
+ /** Number of results, up to a maximum of 1000. */
432
+ limit?: number;
433
+ }
434
+ export type ListAllAccessTokensInput = ListAllArgs<ListAccessTokensInput>;
435
+ /**
436
+ * Scope for an access token.
437
+ */
438
+ export interface AccessTokenScope {
439
+ /** Resource set for access tokens. */
440
+ accessTokens?: API.ResourceSet | null;
441
+ /** Resource set for basins. */
442
+ basins?: API.ResourceSet | null;
443
+ /** Permitted operation groups. */
444
+ opGroups?: API.PermittedOperationGroups | null;
445
+ /** Operations allowed for the token. */
446
+ ops?: API.Operation[] | null;
447
+ /** Resource set for streams. */
448
+ streams?: API.ResourceSet | null;
449
+ }
450
+ /**
451
+ * Input for issuing an access token.
452
+ */
453
+ export interface IssueAccessTokenInput {
454
+ /**
455
+ * Access token ID.
456
+ * It must be unique to the account and between 1 and 96 bytes in length.
457
+ */
458
+ id: string;
459
+ /** Access token scope. */
460
+ scope: AccessTokenScope;
461
+ /**
462
+ * Namespace streams based on the configured stream-level scope, which must be a prefix.
463
+ * Stream name arguments will be automatically prefixed, and the prefix will be stripped when listing streams.
464
+ */
465
+ autoPrefixStreams?: boolean;
466
+ /**
467
+ * Expiration time (Date, milliseconds since Unix epoch, or RFC 3339 string).
468
+ * If not set, the expiration will be set to that of the requestor's token.
469
+ */
470
+ expiresAt?: Date | number | string | null;
471
+ }
472
+ /**
473
+ * Input for revoking an access token.
474
+ */
475
+ export interface RevokeAccessTokenInput {
476
+ /** Access token ID. */
477
+ id: string;
478
+ }
479
+ /**
480
+ * Information about an access token.
481
+ */
482
+ export interface AccessTokenInfo {
483
+ /** Access token ID. */
484
+ id: string;
485
+ /** Access token scope. */
486
+ scope: AccessTokenScope;
487
+ /** Whether streams are auto-prefixed. */
488
+ autoPrefixStreams?: boolean;
489
+ /** Expiration time. */
490
+ expiresAt?: Date | null;
491
+ }
492
+ /**
493
+ * Response from listing access tokens.
494
+ */
495
+ export interface ListAccessTokensResponse {
496
+ /** List of access tokens. */
497
+ accessTokens: AccessTokenInfo[];
498
+ /** Whether there are more results. */
499
+ hasMore: boolean;
500
+ }
501
+ /**
502
+ * Response from issuing an access token.
503
+ */
504
+ export interface IssueAccessTokenResponse {
505
+ /** The created access token. */
506
+ accessToken: string;
507
+ }
508
+ /**
509
+ * Input for account-level metrics.
510
+ */
511
+ export interface AccountMetricsInput {
512
+ /** Metric set to return. */
513
+ set: API.AccountMetricSet;
514
+ /** Start timestamp (Date, or milliseconds since Unix epoch), if applicable for the metric set. */
515
+ start?: number | Date;
516
+ /** End timestamp (Date, or milliseconds since Unix epoch), if applicable for the metric set. */
517
+ end?: number | Date;
518
+ /** Interval to aggregate over for timeseries metric sets. */
519
+ interval?: API.TimeseriesInterval;
520
+ }
521
+ /**
522
+ * Input for basin-level metrics.
523
+ */
524
+ export interface BasinMetricsInput {
525
+ /** Basin name. */
526
+ basin: string;
527
+ /** Metric set to return. */
528
+ set: API.BasinMetricSet;
529
+ /** Start timestamp (Date, or milliseconds since Unix epoch), if applicable for the metric set. */
530
+ start?: number | Date;
531
+ /** End timestamp (Date, or milliseconds since Unix epoch), if applicable for the metric set. */
532
+ end?: number | Date;
533
+ /** Interval to aggregate over for timeseries metric sets. */
534
+ interval?: API.TimeseriesInterval;
535
+ }
536
+ /**
537
+ * Input for stream-level metrics.
538
+ */
539
+ export interface StreamMetricsInput {
540
+ /** Basin name. */
541
+ basin: string;
542
+ /** Stream name. */
543
+ stream: string;
544
+ /** Metric set to return. */
545
+ set: API.StreamMetricSet;
546
+ /** Start timestamp (Date, or milliseconds since Unix epoch), if applicable for the metric set. */
547
+ start?: number | Date;
548
+ /** End timestamp (Date, or milliseconds since Unix epoch), if applicable for the metric set. */
549
+ end?: number | Date;
550
+ /** Interval to aggregate over for timeseries metric sets. */
551
+ interval?: API.TimeseriesInterval;
552
+ }
553
+ /**
554
+ * A scalar metric with a single value.
555
+ */
556
+ export interface ScalarMetric {
557
+ /** Metric name. */
558
+ name: string;
559
+ /** Unit of the metric. */
560
+ unit: API.MetricUnit;
561
+ /** Metric value. */
562
+ value: number;
563
+ }
564
+ /**
565
+ * An accumulation metric with timeseries values aggregated over an interval.
566
+ */
567
+ export interface AccumulationMetric {
568
+ /** The interval at which data points are accumulated. */
569
+ interval: API.TimeseriesInterval;
570
+ /** Timeseries name. */
571
+ name: string;
572
+ /** Unit of the metric. */
573
+ unit: API.MetricUnit;
574
+ /**
575
+ * Timeseries values.
576
+ * Each element is a pair `[timestamp, value]`.
577
+ */
578
+ values: Array<[Date, number]>;
579
+ }
580
+ /**
581
+ * A gauge metric with instantaneous values at timestamps.
582
+ */
583
+ export interface GaugeMetric {
584
+ /** Timeseries name. */
585
+ name: string;
586
+ /** Unit of the metric. */
587
+ unit: API.MetricUnit;
588
+ /**
589
+ * Timeseries values.
590
+ * Each element is a pair `[timestamp, value]`.
591
+ * The value represents the measurement at the instant of the timestamp.
592
+ */
593
+ values: Array<[Date, number]>;
594
+ }
595
+ /**
596
+ * A label metric with string values.
597
+ */
598
+ export interface LabelMetric {
599
+ /** Label name. */
600
+ name: string;
601
+ /** Label values. */
602
+ values: Array<string>;
603
+ }
604
+ /**
605
+ * A metric in a metric set response.
606
+ * Can be a scalar, accumulation, gauge, or label metric.
607
+ */
608
+ export type Metric = {
609
+ scalar: ScalarMetric;
610
+ } | {
611
+ accumulation: AccumulationMetric;
612
+ } | {
613
+ gauge: GaugeMetric;
614
+ } | {
615
+ label: LabelMetric;
616
+ };
617
+ /**
618
+ * Response from a metrics query.
619
+ */
620
+ export interface MetricSetResponse {
621
+ /** Metrics comprising the set. */
622
+ values: Array<Metric>;
623
+ }
624
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}