@s2-dev/streamstore 0.3.14 → 0.3.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -88,7 +88,7 @@ The `S2Client` class provides a lot of convenience over the generated methods an
88
88
  ```typescript
89
89
  import { ReadRequest, S2Client } from "@s2-dev/streamstore";
90
90
 
91
- const s2 = new S2Client("<AUTH_TOKEN>");
91
+ const s2 = new S2Client({ authToken: "<AUTH_TOKEN>" });
92
92
 
93
93
  async function run() {
94
94
  await s2.account.createBasin("my-favorite-basin");
@@ -97,6 +97,67 @@ async function run() {
97
97
 
98
98
  run();
99
99
  ```
100
+ ### Examples
101
+
102
+ - Using `S2Endpoints`
103
+
104
+ ```typescript
105
+ const endpoints = new S2Endpoints(
106
+ "aws.s2.dev",
107
+ {
108
+ kind: BasinEndpointKind.Direct,
109
+ authority: "aws.s2.dev"
110
+ }
111
+ );
112
+
113
+ const s2 = new S2Client({ authToken: "<AUTH_TOKEN>", endpoints });
114
+ async function run() {
115
+ const allStreams = await s2.account.basin("my-favorite-basin").listStreams();
116
+ for await (const stream of allStreams) {
117
+ console.log(basin);
118
+ }
119
+ }
120
+
121
+ run();
122
+ ```
123
+
124
+ - Override Client level Auth token
125
+
126
+ ```typescript
127
+ const s2 = new S2Client({ authToken: "<AUTH_TOKEN>"});
128
+ async function run() {
129
+ const refreshedToken = await fetchToken();
130
+ await s2.account.deleteBasin("my-favorite-basin", { authToken: refreshedToken });
131
+ }
132
+
133
+ run();
134
+ ```
135
+
136
+ - Set custom user-agent
137
+
138
+ ```typescript
139
+ const s2 = new S2Client({ authToken: "<AUTH_TOKEN>", userAgent: "say-cheese" });
140
+ async function run() {
141
+ const config = await s2.account.getBasinConfig("mehul-test");
142
+ console.log(config);
143
+ }
144
+
145
+ run();
146
+ ```
147
+
148
+ - List Basins
149
+
150
+ ```typescript
151
+ const s2 = new S2Client({ authToken: "<AUTH_TOKEN>" });
152
+ async function run() {
153
+ const allBasins = await s2.account.listBasins();
154
+ for await (const basin of allBasins) {
155
+ console.log(basin);
156
+ }
157
+ }
158
+
159
+ run();
160
+ ```
100
161
 
101
162
  <!-- Start SDK Example Usage [usage] -->
102
163
  ## SDK Example Usage
package/index.extras.d.ts CHANGED
@@ -19,8 +19,28 @@ export type S2ClientConfig = {
19
19
  maxBackoffMs?: number;
20
20
  httpClient?: HTTPClient;
21
21
  };
22
+ /**
23
+ * Override the client level configuration for a specific operation.
24
+ *
25
+ * @remarks
26
+ * Only `authToken` can be overridden for now.
27
+ */
28
+ export type S2OperationConfig = {
29
+ authToken?: string;
30
+ };
31
+ /**
32
+ * Retry policy for appends.
33
+ */
22
34
  export declare enum AppendRetryPolicy {
35
+ /**
36
+ * Retry all eligible failures encountered during an append.
37
+ * This could result in append batches being duplicated on the stream.
38
+ */
23
39
  All = 0,
40
+ /**
41
+ * Retry only failures with no side effects.
42
+ * Will not attempt to retry failures where it cannot be concluded whether an append may become durable, in order to prevent duplicates.
43
+ */
24
44
  NoSideEffects = 1
25
45
  }
26
46
  export declare class S2Client {
@@ -36,15 +56,16 @@ declare class S2Account {
36
56
  private config;
37
57
  private readonly accountURLSuffx;
38
58
  constructor(config: S2ClientConfig);
39
- get URL(): string | undefined;
59
+ get URL(): string;
40
60
  basin(basinName: string): S2Basin;
41
- listBasins(request?: ListBasinsRequest): Promise<PageIterator<ListBasinsResponse, {
61
+ private overrideConfig;
62
+ listBasins(request?: ListBasinsRequest, opConfig?: S2OperationConfig): Promise<PageIterator<ListBasinsResponse, {
42
63
  cursor: string;
43
64
  }>>;
44
- getBasinConfig(basin: string): Promise<BasinConfig | undefined>;
45
- createBasin(basin: string, request?: CreateBasinRequest): Promise<BasinInfo | undefined>;
46
- deleteBasin(basin: string, if_exists?: boolean): Promise<void>;
47
- reconfigureBasin(basin: string, config: BasinConfig): Promise<BasinConfig | undefined>;
65
+ getBasinConfig(basin: string, opConfig?: S2OperationConfig): Promise<BasinConfig | undefined>;
66
+ createBasin(basin: string, request?: CreateBasinRequest, opConfig?: S2OperationConfig): Promise<BasinInfo | undefined>;
67
+ deleteBasin(basin: string, if_exists?: boolean, opConfig?: S2OperationConfig): Promise<void>;
68
+ reconfigureBasin(basin: string, config: BasinConfig, opConfig?: S2OperationConfig): Promise<BasinConfig | undefined>;
48
69
  }
49
70
  declare class S2Basin {
50
71
  private _basin;
@@ -56,13 +77,14 @@ declare class S2Basin {
56
77
  private get URL();
57
78
  constructor(basinName: string, config: S2ClientConfig);
58
79
  stream(streamName: string): Stream;
59
- listStreams(request: ListStreamsRequest): Promise<PageIterator<ListStreamsResponse, {
80
+ private overrideConfig;
81
+ listStreams(request?: ListStreamsRequest, opConfig?: S2OperationConfig): Promise<PageIterator<ListStreamsResponse, {
60
82
  cursor: string;
61
83
  }>>;
62
- getStreamConfig(stream: string): Promise<StreamConfig | undefined>;
63
- createStream(stream: string, request?: CreateStreamRequest): Promise<StreamInfo | undefined>;
64
- deleteStream(stream: string, if_exists?: boolean): Promise<void | undefined>;
65
- reconfigureStream(stream: string, config: StreamConfig): Promise<StreamConfig>;
84
+ getStreamConfig(stream: string, opConfig?: S2OperationConfig): Promise<StreamConfig | undefined>;
85
+ createStream(stream: string, request?: CreateStreamRequest, opConfig?: S2OperationConfig): Promise<StreamInfo | undefined>;
86
+ deleteStream(stream: string, if_exists?: boolean, opConfig?: S2OperationConfig): Promise<void | undefined>;
87
+ reconfigureStream(stream: string, config: StreamConfig, opConfig?: S2OperationConfig): Promise<StreamConfig>;
66
88
  }
67
89
  declare class Stream {
68
90
  private _stream;
@@ -71,11 +93,12 @@ declare class Stream {
71
93
  private clientKind;
72
94
  private readonly basinURLSuffx;
73
95
  private get basinURL();
96
+ private overrideConfig;
74
97
  constructor(basinName: string, streamName: string, config: S2ClientConfig);
75
- checkTail(): Promise<CheckTailResponse>;
76
- append(request: AppendRequest): Promise<AppendOutput>;
77
- read(request: ReadRequest): Promise<Output>;
78
- readStream(request: ReadRequest): AsyncGenerator<ReadResponse, void, undefined>;
98
+ checkTail(opConfig?: S2OperationConfig): Promise<CheckTailResponse>;
99
+ append(request: AppendRequest, opConfig?: S2OperationConfig): Promise<AppendOutput>;
100
+ read(request: ReadRequest, opConfig?: S2OperationConfig): Promise<Output>;
101
+ readStream(request: ReadRequest, opConfig?: S2OperationConfig): AsyncGenerator<ReadResponse, void, undefined>;
79
102
  }
80
103
  export declare function genS2RequestToken(): string;
81
104
  //# sourceMappingURL=index.extras.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.extras.d.ts","sourceRoot":"","sources":["src/index.extras.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.extras.d.ts","sourceRoot":"","sources":["src/index.extras.ts"],"names":[],"mappings":"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"}
package/index.extras.js CHANGED
@@ -26,9 +26,20 @@ const basinDeleteStream_1 = require("./funcs/basinDeleteStream");
26
26
  const endpoints_1 = require("./endpoints");
27
27
  const http_1 = require("./lib/http");
28
28
  __exportStar(require("./endpoints"), exports);
29
+ /**
30
+ * Retry policy for appends.
31
+ */
29
32
  var AppendRetryPolicy;
30
33
  (function (AppendRetryPolicy) {
34
+ /**
35
+ * Retry all eligible failures encountered during an append.
36
+ * This could result in append batches being duplicated on the stream.
37
+ */
31
38
  AppendRetryPolicy[AppendRetryPolicy["All"] = 0] = "All";
39
+ /**
40
+ * Retry only failures with no side effects.
41
+ * Will not attempt to retry failures where it cannot be concluded whether an append may become durable, in order to prevent duplicates.
42
+ */
32
43
  AppendRetryPolicy[AppendRetryPolicy["NoSideEffects"] = 1] = "NoSideEffects";
33
44
  })(AppendRetryPolicy || (exports.AppendRetryPolicy = AppendRetryPolicy = {}));
34
45
  const defaultS2ClientConfig = {
@@ -41,9 +52,6 @@ const defaultS2ClientConfig = {
41
52
  };
42
53
  class S2Client {
43
54
  get account() {
44
- // this.httpClient.addHook("beforeRequest", (request) => {
45
- // if (this.config.userAgent) request.headers.set("User-Agent", this.config.userAgent);
46
- // });
47
55
  return (this._account ?? (this._account = new S2Account(this.config)));
48
56
  }
49
57
  basin(basinName) {
@@ -57,12 +65,11 @@ exports.S2Client = S2Client;
57
65
  class S2Account {
58
66
  constructor(config) {
59
67
  this.accountURLSuffx = "/v1alpha";
60
- if (config.userAgent !== undefined) {
61
- config.httpClient?.addHook("beforeRequest", (request) => {
68
+ config.httpClient?.addHook("beforeRequest", (request) => {
69
+ if (config.userAgent !== undefined) {
62
70
  request.headers.set("user-agent", config.userAgent ?? "s2-sdk-typescript");
63
- console.log(request);
64
- });
65
- }
71
+ }
72
+ });
66
73
  this._account = new account_1.Account({
67
74
  ...(config.authToken !== undefined && { bearerAuth: config.authToken }),
68
75
  ...(config.requestTimeout !== undefined && { timeoutMs: config.requestTimeout }),
@@ -71,44 +78,51 @@ class S2Account {
71
78
  this.config = config;
72
79
  }
73
80
  get URL() {
74
- if (!this.config.endpoints)
75
- return undefined;
76
- return `https://${endpoints_1.ClientKind.toAuthority({ kind: "Account" }, this.config.endpoints)}${this.accountURLSuffx}`;
81
+ return `https://${endpoints_1.ClientKind.toAuthority({ kind: "Account" }, this.config.endpoints ?? endpoints_1.S2Endpoints.forCloud(endpoints_1.S2Cloud.Aws))}${this.accountURLSuffx}`;
77
82
  }
78
83
  basin(basinName) {
79
84
  return new S2Basin(basinName, this.config);
80
85
  }
81
- async listBasins(request) {
82
- const url = this.URL;
83
- return retryWithExponentialBackoff(() => this._account.listBasins(request ?? {}, url ? { serverURL: url } : {}), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
86
+ overrideConfig(config) {
87
+ this.config.httpClient?.addHook("beforeRequest", (request) => {
88
+ if (config?.authToken !== undefined) {
89
+ request.headers.set("Authorization", `Bearer ${config.authToken}`);
90
+ }
91
+ });
92
+ }
93
+ async listBasins(request, opConfig) {
94
+ this.overrideConfig(opConfig);
95
+ return retryWithExponentialBackoff(() => this._account.listBasins(request ?? {}, {
96
+ serverURL: this.URL,
97
+ }), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
84
98
  }
85
- async getBasinConfig(basin) {
99
+ async getBasinConfig(basin, opConfig) {
100
+ this.overrideConfig(opConfig);
86
101
  const _request = { basin };
87
- const url = this.URL;
88
- return retryWithExponentialBackoff(() => this._account.getBasinConfig(_request, url ? { serverURL: url } : {}), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
102
+ return retryWithExponentialBackoff(() => this._account.getBasinConfig(_request, { serverURL: this.URL }), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
89
103
  }
90
- async createBasin(basin, request) {
104
+ async createBasin(basin, request, opConfig) {
105
+ this.overrideConfig(opConfig);
91
106
  const _request = {
92
107
  basin,
93
108
  s2RequestToken: genS2RequestToken(),
94
109
  createBasinRequest: request ?? {},
95
110
  };
96
- const url = this.URL;
97
- return retryWithExponentialBackoff(() => this._account.createBasin(_request, url ? { serverURL: url } : {}), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
111
+ return retryWithExponentialBackoff(() => this._account.createBasin(_request, { serverURL: this.URL }), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
98
112
  }
99
- async deleteBasin(basin, if_exists) {
100
- const url = this.URL;
101
- const response = await retryWithExponentialBackoff(() => (0, accountDeleteBasin_1.accountDeleteBasin)(this._account, { basin }, url ? { serverURL: url } : {}), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
113
+ async deleteBasin(basin, if_exists, opConfig) {
114
+ this.overrideConfig(opConfig);
115
+ const response = await retryWithExponentialBackoff(() => (0, accountDeleteBasin_1.accountDeleteBasin)(this._account, { basin }, { serverURL: this.URL }), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
102
116
  if (if_exists && response.error instanceof errors_1.NotFoundError)
103
117
  return;
104
118
  if (response.error)
105
119
  throw new Error(response.error.message);
106
120
  return;
107
121
  }
108
- async reconfigureBasin(basin, config) {
109
- const url = this.URL;
122
+ async reconfigureBasin(basin, config, opConfig) {
123
+ this.overrideConfig(opConfig);
110
124
  const _request = { basin, basinConfig: config };
111
- return retryWithExponentialBackoff(() => this._account.reconfigureBasin(_request, url ? { serverURL: url } : {}), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
125
+ return retryWithExponentialBackoff(() => this._account.reconfigureBasin(_request, { serverURL: this.URL }), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
112
126
  }
113
127
  }
114
128
  class S2Basin {
@@ -117,14 +131,18 @@ class S2Basin {
117
131
  }
118
132
  constructor(basinName, config) {
119
133
  this.basinURLSuffx = "/v1alpha";
120
- if (config.userAgent !== undefined) {
121
- config.httpClient?.addHook("beforeRequest", (request) => {
134
+ config.httpClient?.addHook("beforeRequest", (request) => {
135
+ if (config.userAgent !== undefined) {
122
136
  request.headers.set("user-agent", config.userAgent ?? "s2-sdk-typescript");
123
- });
124
- }
137
+ }
138
+ if (config.endpoints?.basin?.kind === "Direct") {
139
+ request.headers.set("s2-basin", basinName);
140
+ }
141
+ });
125
142
  this._basin = new basin_1.Basin({
126
143
  ...(config.authToken !== undefined && { bearerAuth: config.authToken }),
127
- ...(config.requestTimeout !== undefined && { timeoutMs: config.requestTimeout })
144
+ ...(config.requestTimeout !== undefined && { timeoutMs: config.requestTimeout }),
145
+ ...(config.httpClient !== undefined && { httpClient: config.httpClient }),
128
146
  });
129
147
  this.config = config;
130
148
  this.clientKind = { kind: "Basin", basin: basinName };
@@ -133,13 +151,23 @@ class S2Basin {
133
151
  stream(streamName) {
134
152
  return (this._stream ?? (this._stream = new Stream(this.basinName, streamName, this.config)));
135
153
  }
136
- async listStreams(request) {
137
- return retryWithExponentialBackoff(() => this._basin.listStreams(request, { serverURL: this.URL }), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
154
+ overrideConfig(config) {
155
+ this.config.httpClient?.addHook("beforeRequest", (request) => {
156
+ if (config?.authToken !== undefined) {
157
+ request.headers.set("Authorization", `Bearer ${config.authToken}`);
158
+ }
159
+ });
160
+ }
161
+ async listStreams(request, opConfig) {
162
+ this.overrideConfig(opConfig);
163
+ return retryWithExponentialBackoff(() => this._basin.listStreams(request ?? {}, { serverURL: this.URL }), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
138
164
  }
139
- async getStreamConfig(stream) {
165
+ async getStreamConfig(stream, opConfig) {
166
+ this.overrideConfig(opConfig);
140
167
  return retryWithExponentialBackoff(() => this._basin.getStreamConfig({ stream }, { serverURL: this.URL }), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
141
168
  }
142
- async createStream(stream, request) {
169
+ async createStream(stream, request, opConfig) {
170
+ this.overrideConfig(opConfig);
143
171
  const _request = {
144
172
  stream,
145
173
  s2RequestToken: genS2RequestToken(),
@@ -147,7 +175,8 @@ class S2Basin {
147
175
  };
148
176
  return retryWithExponentialBackoff(() => this._basin.createStream(_request, { serverURL: this.URL }), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
149
177
  }
150
- async deleteStream(stream, if_exists) {
178
+ async deleteStream(stream, if_exists, opConfig) {
179
+ this.overrideConfig(opConfig);
151
180
  const response = await retryWithExponentialBackoff(() => (0, basinDeleteStream_1.basinDeleteStream)(this._basin, { stream }, { serverURL: this.URL }), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
152
181
  if (if_exists && response instanceof errors_1.NotFoundError)
153
182
  return;
@@ -155,7 +184,8 @@ class S2Basin {
155
184
  throw new Error(response.error.message);
156
185
  return;
157
186
  }
158
- async reconfigureStream(stream, config) {
187
+ async reconfigureStream(stream, config, opConfig) {
188
+ this.overrideConfig(opConfig);
159
189
  return retryWithExponentialBackoff(() => this._basin.reconfigureStream({ stream, streamConfig: config }, { serverURL: this.URL }), this.config.maxRetries, this.config.initialBackoffMs, this.config.maxBackoffMs);
160
190
  }
161
191
  }
@@ -163,25 +193,38 @@ class Stream {
163
193
  get basinURL() {
164
194
  return `https://${endpoints_1.ClientKind.toAuthority(this.clientKind, this.config.endpoints ?? endpoints_1.S2Endpoints.forCloud(endpoints_1.S2Cloud.Aws))}${this.basinURLSuffx}`;
165
195
  }
196
+ overrideConfig(config) {
197
+ this.config.httpClient?.addHook("beforeRequest", (request) => {
198
+ if (config?.authToken !== undefined) {
199
+ request.headers.set("Authorization", `Bearer ${config.authToken}`);
200
+ }
201
+ });
202
+ }
166
203
  constructor(basinName, streamName, config) {
167
204
  this.basinURLSuffx = "/v1alpha";
168
205
  this.config = config;
169
206
  this.clientKind = { kind: "Basin", basin: basinName };
170
207
  this.streamName = streamName;
171
- if (config.userAgent !== undefined) {
172
- config.httpClient?.addHook("beforeRequest", (request) => {
208
+ config.httpClient?.addHook("beforeRequest", (request) => {
209
+ if (config.userAgent !== undefined) {
173
210
  request.headers.set("user-agent", config.userAgent ?? "s2-sdk-typescript");
174
- });
175
- }
211
+ }
212
+ if (config.endpoints?.basin?.kind === "Direct") {
213
+ request.headers.set("s2-basin", basinName);
214
+ }
215
+ });
176
216
  this._stream = new stream_1.Stream({
177
217
  ...(config.authToken !== undefined && { bearerAuth: config.authToken }),
178
- ...(config.requestTimeout !== undefined && { timeoutMs: config.requestTimeout })
218
+ ...(config.requestTimeout !== undefined && { timeoutMs: config.requestTimeout }),
219
+ ...(config.httpClient !== undefined && { httpClient: config.httpClient })
179
220
  });
180
221
  }
181
- async checkTail() {
222
+ async checkTail(opConfig) {
223
+ this.overrideConfig(opConfig);
182
224
  return (await this._stream.checkTail({ stream: this.streamName }, { serverURL: this.basinURL }));
183
225
  }
184
- async append(request) {
226
+ async append(request, opConfig) {
227
+ this.overrideConfig(opConfig);
185
228
  switch (this.config.appedRetryPolicy) {
186
229
  case AppendRetryPolicy.All:
187
230
  case undefined:
@@ -194,10 +237,12 @@ class Stream {
194
237
  throw new Error("Invalid AppendRetryPolicy");
195
238
  }
196
239
  }
197
- async read(request) {
240
+ async read(request, opConfig) {
241
+ this.overrideConfig(opConfig);
198
242
  return await this._stream.read({ ...request, stream: this.streamName }, { serverURL: this.basinURL });
199
243
  }
200
- async *readStream(request) {
244
+ async *readStream(request, opConfig) {
245
+ this.overrideConfig(opConfig);
201
246
  let currentRequest = { ...request };
202
247
  let initialBackoffMs = this.config.initialBackoffMs ?? 100;
203
248
  const maxBackoffMs = 5000;
@@ -1 +1 @@
1
- {"version":3,"file":"index.extras.js","sourceRoot":"","sources":["src/index.extras.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.extras.js","sourceRoot":"","sources":["src/index.extras.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAyeA,8CAEC;AA3eD,mEAAgE;AAgBhE,4CAAgE;AAehE,yCAAqE;AACrE,uCAAkD;AAClD,2CAAwD;AAExD,+BAAoC;AACpC,iEAA8D;AAE9D,2CAA+D;AAC/D,qCAAwC;AAwBxC,8CAA4B;AAwB5B;;GAEG;AACH,IAAY,iBAWX;AAXD,WAAY,iBAAiB;IACzB;;;OAGG;IACH,uDAAG,CAAA;IACH;;;OAGG;IACH,2EAAa,CAAA;AACjB,CAAC,EAXW,iBAAiB,iCAAjB,iBAAiB,QAW5B;AAED,MAAM,qBAAqB,GAAmB;IAC1C,cAAc,EAAE,IAAI;IACpB,SAAS,EAAE,uBAAW,CAAC,QAAQ,CAAC,mBAAO,CAAC,GAAG,CAAC;IAC5C,gBAAgB,EAAE,iBAAiB,CAAC,GAAG;IACvC,UAAU,EAAE,IAAI,iBAAU,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;KAC7C,CAAC;CACL,CAAC;AAGF,MAAa,QAAQ;IAIjB,IAAI,OAAO;QACP,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC;IAC1D,CAAC;IAGD,KAAK,CAAC,SAAiB;QACnB,OAAO,CAAC,IAAI,CAAC,MAAM,KAAX,IAAI,CAAC,MAAM,GAAK,IAAI,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC;IACjE,CAAC;IAED,YAAY,MAAuB;QAC/B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,qBAAqB,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1D,CAAC;CACJ;AAhBD,4BAgBC;AAED,MAAM,SAAS;IAKX,YAAY,MAAsB;QAFjB,oBAAe,GAAG,UAAU,CAAC;QAG1C,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YACpD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,IAAI,mBAAmB,CAAC,CAAC;YAC/E,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAY,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;YACvE,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;YAChF,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;SAC5E,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,IAAI,GAAG;QACH,OAAO,WAAW,sBAAU,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,uBAAW,CAAC,QAAQ,CAAC,mBAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACvJ,CAAC;IAED,KAAK,CAAC,SAAiB;QACnB,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAEO,cAAc,CAAC,MAA0B;QAC7C,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YACzD,IAAI,MAAM,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YACvE,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,OAA2B,EAC3B,QAA4B;QAE5B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,2BAA2B,CAC9B,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,EAAE;YAC1C,SAAS,EAAE,IAAI,CAAC,GAAG;SACtB,CAAC,EACF,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;IACN,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,QAA4B;QAC5D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAA0B,EAAE,KAAK,EAAE,CAAC;QAClD,OAAO,2BAA2B,CAC9B,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EACrE,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;IACN,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,OAA4B,EAAE,QAA4B;QACvF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAA4B;YACtC,KAAK;YACL,cAAc,EAAE,iBAAiB,EAAE;YACnC,kBAAkB,EAAE,OAAO,IAAI,EAAE;SACpC,CAAC;QACF,OAAO,2BAA2B,CAC9B,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAClE,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;IACN,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,SAAmB,EAAE,QAA4B;QAC9E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAC9C,GAAG,EAAE,CAAC,IAAA,uCAAkB,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAC3E,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;QACF,IAAI,SAAS,IAAI,QAAQ,CAAC,KAAK,YAAY,sBAAa;YAAE,OAAO;QACjE,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,OAAO;IACX,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,MAAmB,EAAE,QAA4B;QACnF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAA4B,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QACzE,OAAO,2BAA2B,CAC9B,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EACvE,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;IACN,CAAC;CACJ;AAED,MAAM,OAAO;IAQT,IAAY,GAAG;QACX,OAAO,WAAW,sBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,uBAAW,CAAC,QAAQ,CAAC,mBAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACjJ,CAAC;IAED,YAAY,SAAiB,EAAE,MAAsB;QANpC,kBAAa,GAAG,UAAU,CAAC;QAOxC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YACpD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,IAAI,mBAAmB,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,aAAU,CAAC;YACzB,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;YACvE,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;YAChF,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;SAC5E,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,IAAI,EAAE,OAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,UAAkB;QACrB,OAAO,CAAC,IAAI,CAAC,OAAO,KAAZ,IAAI,CAAC,OAAO,GAAK,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC;IAClF,CAAC;IAEO,cAAc,CAAC,MAA0B;QAC7C,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YACzD,IAAI,MAAM,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YACvE,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,WAAW,CACb,OAA4B,EAC5B,QAA4B;QAE5B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,2BAA2B,CAC9B,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EACrE,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;IACN,CAAC;IAED,KAAK,CAAC,eAAe,CACjB,MAAc,EACd,QAA4B;QAE5B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,2BAA2B,CAC9B,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EACtE,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;IACN,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,OAA6B,EAAE,QAA4B;QAC1F,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAA6B;YACvC,MAAM;YACN,cAAc,EAAE,iBAAiB,EAAE;YACnC,mBAAmB,EAAE,OAAO,IAAI,EAAE;SACrC,CAAC;QACF,OAAO,2BAA2B,CAC9B,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EACjE,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;IACN,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,SAAmB,EAAE,QAA4B;QAChF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAC9C,GAAG,EAAE,CAAC,IAAA,qCAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EACzE,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;QACF,IAAI,SAAS,IAAI,QAAQ,YAAY,sBAAa;YAAE,OAAO;QAC3D,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,OAAO;IACX,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,MAAoB,EAAE,QAA4B;QACtF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,2BAA2B,CAC9B,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAC9F,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;IACN,CAAC;CACJ;AAED,MAAM,MAAM;IAOR,IAAY,QAAQ;QAChB,OAAO,WAAW,sBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,uBAAW,CAAC,QAAQ,CAAC,mBAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACjJ,CAAC;IAEO,cAAc,CAAC,MAA0B;QAC7C,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YACzD,IAAI,MAAM,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YACvE,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY,SAAiB,EAAE,UAAkB,EAAE,MAAsB;QAdxD,kBAAa,GAAG,UAAU,CAAC;QAexC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,IAAI,EAAE,OAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC/D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YACpD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,IAAI,mBAAmB,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,eAAW,CAAC;YAC3B,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;YACvE,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;YAChF,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;SAC5E,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAA4B;QACxC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,CACH,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAC1F,CAAC;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAsB,EAAE,QAA4B;QAC7D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,QAAQ,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACnC,KAAK,iBAAiB,CAAC,GAAG,CAAC;YAC3B,KAAK,SAAS;gBACV,OAAO,2BAA2B,CAC9B,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAChG,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;YACN,KAAK,iBAAiB,CAAC,aAAa;gBAChC,OAAO,CACH,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE;oBAC/D,SAAS,EAAE,IAAI,CAAC,QAAQ;iBAC3B,CAAC,CACL,CAAC;YACN;gBACI,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoB,EAAE,QAA4B;QACzD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,OACI,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAChG,CAAC;IACN,CAAC;IAED,KAAK,CAAC,CAAC,UAAU,CAAC,OAAoB,EAAE,QAA4B;QAChE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,cAAc,GAAgB,EAAE,GAAG,OAAO,EAAE,CAAC;QACjD,IAAI,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,GAAG,CAAC;QAC3D,MAAM,YAAY,GAAG,IAAI,CAAC;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;QAC/C,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,MAA6C,CAAC;YAClD,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CACpC,EAAE,GAAG,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EAC9C;oBACI,SAAS,EAAE,IAAI,CAAC,QAAQ;oBACxB,SAAS,EAAE,CAAC,CAAC,EAAE,6BAA6B;oBAC5C,oBAAoB,EAAE,uBAAc,CAAC,eAAe;iBACvD,CACJ,CAAC;gBACF,MAAM,GAAG,QAAqC,CAAC;gBAC/C,IAAI,CAAC,MAAM;oBAAE,OAAO;gBAEpB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC/B,MAAM,KAAK,CAAC;oBAEZ,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC5B,MAAM,MAAM,GAAG,KAA2B,CAAC;wBAC3C,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;4BACzB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;4BAChC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gCAC3D,IAAI,UAAU,EAAE,CAAC;oCACb,cAAc,GAAG,EAAE,GAAG,cAAc,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC/E,CAAC;4BACL,CAAC;4BACD,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;gCACvB,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;oCACrC,cAAc,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gCAChG,CAAC;gCACD,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;oCACrC,cAAc,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;gCACnG,CAAC;4BACL,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,OAAO;YACX,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,KAAK,YAAY,uBAAc,EAAE,CAAC;oBAClC,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;wBAC3B,MAAM,KAAK,CAAC;oBAChB,CAAC;oBACD,UAAU,EAAE,CAAC;oBACb,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;oBACpE,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;gBACpE,CAAC;qBAAM,CAAC;oBACJ,MAAM,KAAK,CAAC;gBAChB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AAED,SAAS,iBAAiB,CAAC,KAAsB;IAC7C,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5G,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IAEnC,OAAO,KAAK,GAAG,UAAU,GAAG,QAAQ,CAAC;AACzC,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA2B;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,SAAgB,iBAAiB;IAC7B,OAAO,IAAA,SAAM,GAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,2BAA2B,CACtC,SAA2B,EAC3B,cAAsB,CAAC,EACvB,mBAA2B,GAAG,EAC9B,eAAuB,IAAI;IAE3B,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,OAAO,OAAO,GAAG,WAAW,EAAE,CAAC;QAC3B,IAAI,CAAC;YACD,OAAO,MAAM,SAAS,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,uBAAc,EAAE,CAAC;gBAClC,OAAO,EAAE,CAAC;gBACV,IAAI,OAAO,IAAI,WAAW;oBAAE,MAAM,KAAK,CAAC;gBAExC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC;gBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,YAAY,CAAC,CAAC;gBAEzF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACJ,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAClD,CAAC"}
package/jsr.json CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  {
4
4
  "name": "@s2-dev/streamstore",
5
- "version": "0.3.14",
5
+ "version": "0.3.17",
6
6
  "exports": {
7
7
  ".": "./src/index.ts",
8
8
  "./models/errors": "./src/models/errors/index.ts",
package/lib/config.d.ts CHANGED
@@ -27,8 +27,8 @@ export declare function serverURLFromOptions(options: SDKOptions): URL | null;
27
27
  export declare const SDK_METADATA: {
28
28
  readonly language: "typescript";
29
29
  readonly openapiDocVersion: "1.0.0";
30
- readonly sdkVersion: "0.3.14";
30
+ readonly sdkVersion: "0.3.17";
31
31
  readonly genVersion: "2.506.0";
32
- readonly userAgent: "speakeasy-sdk/typescript 0.3.14 2.506.0 1.0.0 @s2-dev/streamstore";
32
+ readonly userAgent: "speakeasy-sdk/typescript 0.3.17 2.506.0 1.0.0 @s2-dev/streamstore";
33
33
  };
34
34
  //# sourceMappingURL=config.d.ts.map
package/lib/config.js CHANGED
@@ -28,8 +28,8 @@ function serverURLFromOptions(options) {
28
28
  exports.SDK_METADATA = {
29
29
  language: "typescript",
30
30
  openapiDocVersion: "1.0.0",
31
- sdkVersion: "0.3.14",
31
+ sdkVersion: "0.3.17",
32
32
  genVersion: "2.506.0",
33
- userAgent: "speakeasy-sdk/typescript 0.3.14 2.506.0 1.0.0 @s2-dev/streamstore",
33
+ userAgent: "speakeasy-sdk/typescript 0.3.17 2.506.0 1.0.0 @s2-dev/streamstore",
34
34
  };
35
35
  //# sourceMappingURL=config.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@s2-dev/streamstore",
3
- "version": "0.3.14",
3
+ "version": "0.3.17",
4
4
  "author": "Speakeasy",
5
5
  "main": "./index.js",
6
6
  "sideEffects": false,
@@ -75,8 +75,29 @@ export type S2ClientConfig = {
75
75
  httpClient?: HTTPClient;
76
76
  };
77
77
 
78
+ /**
79
+ * Override the client level configuration for a specific operation.
80
+ *
81
+ * @remarks
82
+ * Only `authToken` can be overridden for now.
83
+ */
84
+ export type S2OperationConfig = {
85
+ authToken?: string;
86
+ };
87
+
88
+ /**
89
+ * Retry policy for appends.
90
+ */
78
91
  export enum AppendRetryPolicy {
92
+ /**
93
+ * Retry all eligible failures encountered during an append.
94
+ * This could result in append batches being duplicated on the stream.
95
+ */
79
96
  All,
97
+ /**
98
+ * Retry only failures with no side effects.
99
+ * Will not attempt to retry failures where it cannot be concluded whether an append may become durable, in order to prevent duplicates.
100
+ */
80
101
  NoSideEffects,
81
102
  }
82
103
 
@@ -92,12 +113,9 @@ const defaultS2ClientConfig: S2ClientConfig = {
92
113
 
93
114
  export class S2Client {
94
115
  private config: S2ClientConfig;
95
- private _account?: S2Account;
116
+ private _account?: S2Account;
96
117
 
97
118
  get account(): S2Account {
98
- // this.httpClient.addHook("beforeRequest", (request) => {
99
- // if (this.config.userAgent) request.headers.set("User-Agent", this.config.userAgent);
100
- // });
101
119
  return (this._account ??= new S2Account(this.config));
102
120
  }
103
121
 
@@ -117,12 +135,11 @@ class S2Account {
117
135
  private readonly accountURLSuffx = "/v1alpha";
118
136
 
119
137
  constructor(config: S2ClientConfig) {
120
- if (config.userAgent !== undefined) {
121
- config.httpClient?.addHook("beforeRequest", (request) => {
138
+ config.httpClient?.addHook("beforeRequest", (request) => {
139
+ if (config.userAgent !== undefined) {
122
140
  request.headers.set("user-agent", config.userAgent ?? "s2-sdk-typescript");
123
- console.log(request)
124
- });
125
- }
141
+ }
142
+ });
126
143
  this._account = new InnerAccount({
127
144
  ...(config.authToken !== undefined && { bearerAuth: config.authToken }),
128
145
  ...(config.requestTimeout !== undefined && { timeoutMs: config.requestTimeout }),
@@ -131,57 +148,67 @@ class S2Account {
131
148
  this.config = config;
132
149
  }
133
150
 
134
- get URL(): string | undefined {
135
- if (!this.config.endpoints) return undefined;
136
- return `https://${ClientKind.toAuthority({ kind: "Account" }, this.config.endpoints)}${this.accountURLSuffx}`;
137
- }
151
+ get URL(): string {
152
+ return `https://${ClientKind.toAuthority({ kind: "Account" }, this.config.endpoints ?? S2Endpoints.forCloud(S2Cloud.Aws))}${this.accountURLSuffx}`;
153
+ }
138
154
 
139
155
  basin(basinName: string): S2Basin {
140
156
  return new S2Basin(basinName, this.config);
141
157
  }
142
158
 
159
+ private overrideConfig(config?: S2OperationConfig) {
160
+ this.config.httpClient?.addHook("beforeRequest", (request) => {
161
+ if (config?.authToken !== undefined) {
162
+ request.headers.set("Authorization", `Bearer ${config.authToken}`);
163
+ }
164
+ });
165
+ }
166
+
143
167
  async listBasins(
144
- request?: ListBasinsRequest
168
+ request?: ListBasinsRequest,
169
+ opConfig?: S2OperationConfig,
145
170
  ): Promise<PageIterator<ListBasinsResponse, { cursor: string }>> {
146
- const url = this.URL;
171
+ this.overrideConfig(opConfig);
147
172
  return retryWithExponentialBackoff(
148
- () => this._account.listBasins(request ?? {}, url ? { serverURL: url } : {}),
173
+ () => this._account.listBasins(request ?? {}, {
174
+ serverURL: this.URL,
175
+ }),
149
176
  this.config.maxRetries,
150
177
  this.config.initialBackoffMs,
151
178
  this.config.maxBackoffMs
152
179
  );
153
180
  }
154
181
 
155
- async getBasinConfig(basin: string): Promise<BasinConfig | undefined> {
182
+ async getBasinConfig(basin: string, opConfig?: S2OperationConfig): Promise<BasinConfig | undefined> {
183
+ this.overrideConfig(opConfig);
156
184
  const _request: GetBasinConfigRequest = { basin };
157
- const url = this.URL;
158
185
  return retryWithExponentialBackoff(
159
- () => this._account.getBasinConfig(_request, url ? { serverURL: url } : {}),
186
+ () => this._account.getBasinConfig(_request, { serverURL: this.URL }),
160
187
  this.config.maxRetries,
161
188
  this.config.initialBackoffMs,
162
189
  this.config.maxBackoffMs
163
190
  );
164
191
  }
165
192
 
166
- async createBasin(basin: string, request?: CreateBasinRequest): Promise<BasinInfo | undefined> {
193
+ async createBasin(basin: string, request?: CreateBasinRequest, opConfig?: S2OperationConfig): Promise<BasinInfo | undefined> {
194
+ this.overrideConfig(opConfig);
167
195
  const _request: CreateBasinRequestInner = {
168
196
  basin,
169
197
  s2RequestToken: genS2RequestToken(),
170
198
  createBasinRequest: request ?? {},
171
199
  };
172
- const url = this.URL;
173
200
  return retryWithExponentialBackoff(
174
- () => this._account.createBasin(_request, url ? { serverURL: url } : {}),
201
+ () => this._account.createBasin(_request, { serverURL: this.URL }),
175
202
  this.config.maxRetries,
176
203
  this.config.initialBackoffMs,
177
204
  this.config.maxBackoffMs
178
205
  );
179
206
  }
180
207
 
181
- async deleteBasin(basin: string, if_exists?: boolean): Promise<void> {
182
- const url = this.URL;
208
+ async deleteBasin(basin: string, if_exists?: boolean, opConfig?: S2OperationConfig): Promise<void> {
209
+ this.overrideConfig(opConfig);
183
210
  const response = await retryWithExponentialBackoff(
184
- () => accountDeleteBasin(this._account, { basin }, url ? { serverURL: url } : {}),
211
+ () => accountDeleteBasin(this._account, { basin }, { serverURL: this.URL }),
185
212
  this.config.maxRetries,
186
213
  this.config.initialBackoffMs,
187
214
  this.config.maxBackoffMs
@@ -191,11 +218,11 @@ class S2Account {
191
218
  return;
192
219
  }
193
220
 
194
- async reconfigureBasin(basin: string, config: BasinConfig): Promise<BasinConfig | undefined> {
195
- const url = this.URL;
221
+ async reconfigureBasin(basin: string, config: BasinConfig, opConfig?: S2OperationConfig): Promise<BasinConfig | undefined> {
222
+ this.overrideConfig(opConfig);
196
223
  const _request: ReconfigureBasinRequest = { basin, basinConfig: config };
197
224
  return retryWithExponentialBackoff(
198
- () => this._account.reconfigureBasin(_request, url ? { serverURL: url } : {}),
225
+ () => this._account.reconfigureBasin(_request, { serverURL: this.URL }),
199
226
  this.config.maxRetries,
200
227
  this.config.initialBackoffMs,
201
228
  this.config.maxBackoffMs
@@ -209,21 +236,25 @@ class S2Basin {
209
236
  private basinName: string;
210
237
  private config: S2ClientConfig;
211
238
  private clientKind: ClientKind;
212
- private readonly basinURLSuffx = "/v1alpha";
239
+ private readonly basinURLSuffx = "/v1alpha";
213
240
 
214
241
  private get URL(): string {
215
242
  return `https://${ClientKind.toAuthority(this.clientKind, this.config.endpoints ?? S2Endpoints.forCloud(S2Cloud.Aws))}${this.basinURLSuffx}`;
216
243
  }
217
244
 
218
245
  constructor(basinName: string, config: S2ClientConfig) {
219
- if (config.userAgent !== undefined) {
220
- config.httpClient?.addHook("beforeRequest", (request) => {
246
+ config.httpClient?.addHook("beforeRequest", (request) => {
247
+ if (config.userAgent !== undefined) {
221
248
  request.headers.set("user-agent", config.userAgent ?? "s2-sdk-typescript");
222
- });
223
- }
249
+ }
250
+ if (config.endpoints?.basin?.kind === "Direct") {
251
+ request.headers.set("s2-basin", basinName);
252
+ }
253
+ });
224
254
  this._basin = new InnerBasin({
225
255
  ...(config.authToken !== undefined && { bearerAuth: config.authToken }),
226
- ...(config.requestTimeout !== undefined && { timeoutMs: config.requestTimeout })
256
+ ...(config.requestTimeout !== undefined && { timeoutMs: config.requestTimeout }),
257
+ ...(config.httpClient !== undefined && { httpClient: config.httpClient }),
227
258
  });
228
259
  this.config = config;
229
260
  this.clientKind = { kind: "Basin" as const, basin: basinName };
@@ -234,18 +265,32 @@ class S2Basin {
234
265
  return (this._stream ??= new Stream(this.basinName, streamName, this.config));
235
266
  }
236
267
 
268
+ private overrideConfig(config?: S2OperationConfig) {
269
+ this.config.httpClient?.addHook("beforeRequest", (request) => {
270
+ if (config?.authToken !== undefined) {
271
+ request.headers.set("Authorization", `Bearer ${config.authToken}`);
272
+ }
273
+ });
274
+ }
275
+
237
276
  async listStreams(
238
- request: ListStreamsRequest
277
+ request?: ListStreamsRequest,
278
+ opConfig?: S2OperationConfig,
239
279
  ): Promise<PageIterator<ListStreamsResponse, { cursor: string }>> {
280
+ this.overrideConfig(opConfig);
240
281
  return retryWithExponentialBackoff(
241
- () => this._basin.listStreams(request, { serverURL: this.URL }),
282
+ () => this._basin.listStreams(request ?? {}, { serverURL: this.URL }),
242
283
  this.config.maxRetries,
243
284
  this.config.initialBackoffMs,
244
285
  this.config.maxBackoffMs
245
286
  );
246
287
  }
247
288
 
248
- async getStreamConfig(stream: string): Promise<StreamConfig | undefined> {
289
+ async getStreamConfig(
290
+ stream: string,
291
+ opConfig?: S2OperationConfig
292
+ ): Promise<StreamConfig | undefined> {
293
+ this.overrideConfig(opConfig);
249
294
  return retryWithExponentialBackoff(
250
295
  () => this._basin.getStreamConfig({ stream }, { serverURL: this.URL }),
251
296
  this.config.maxRetries,
@@ -254,7 +299,8 @@ class S2Basin {
254
299
  );
255
300
  }
256
301
 
257
- async createStream(stream: string, request?: CreateStreamRequest): Promise<StreamInfo | undefined> {
302
+ async createStream(stream: string, request?: CreateStreamRequest, opConfig?: S2OperationConfig): Promise<StreamInfo | undefined> {
303
+ this.overrideConfig(opConfig);
258
304
  const _request: CreateStreamRequestInner = {
259
305
  stream,
260
306
  s2RequestToken: genS2RequestToken(),
@@ -268,7 +314,8 @@ class S2Basin {
268
314
  );
269
315
  }
270
316
 
271
- async deleteStream(stream: string, if_exists?: boolean): Promise<void | undefined> {
317
+ async deleteStream(stream: string, if_exists?: boolean, opConfig?: S2OperationConfig): Promise<void | undefined> {
318
+ this.overrideConfig(opConfig);
272
319
  const response = await retryWithExponentialBackoff(
273
320
  () => basinDeleteStream(this._basin, { stream }, { serverURL: this.URL }),
274
321
  this.config.maxRetries,
@@ -280,7 +327,8 @@ class S2Basin {
280
327
  return;
281
328
  }
282
329
 
283
- async reconfigureStream(stream: string, config: StreamConfig): Promise<StreamConfig> {
330
+ async reconfigureStream(stream: string, config: StreamConfig, opConfig?: S2OperationConfig): Promise<StreamConfig> {
331
+ this.overrideConfig(opConfig);
284
332
  return retryWithExponentialBackoff(
285
333
  () => this._basin.reconfigureStream({ stream, streamConfig: config }, { serverURL: this.URL }),
286
334
  this.config.maxRetries,
@@ -301,28 +349,42 @@ class Stream {
301
349
  return `https://${ClientKind.toAuthority(this.clientKind, this.config.endpoints ?? S2Endpoints.forCloud(S2Cloud.Aws))}${this.basinURLSuffx}`;
302
350
  }
303
351
 
352
+ private overrideConfig(config?: S2OperationConfig) {
353
+ this.config.httpClient?.addHook("beforeRequest", (request) => {
354
+ if (config?.authToken !== undefined) {
355
+ request.headers.set("Authorization", `Bearer ${config.authToken}`);
356
+ }
357
+ });
358
+ }
359
+
304
360
  constructor(basinName: string, streamName: string, config: S2ClientConfig) {
305
361
  this.config = config;
306
362
  this.clientKind = { kind: "Basin" as const, basin: basinName };
307
363
  this.streamName = streamName;
308
- if (config.userAgent !== undefined) {
309
- config.httpClient?.addHook("beforeRequest", (request) => {
364
+ config.httpClient?.addHook("beforeRequest", (request) => {
365
+ if (config.userAgent !== undefined) {
310
366
  request.headers.set("user-agent", config.userAgent ?? "s2-sdk-typescript");
311
- });
312
- }
367
+ }
368
+ if (config.endpoints?.basin?.kind === "Direct") {
369
+ request.headers.set("s2-basin", basinName);
370
+ }
371
+ });
313
372
  this._stream = new InnerStream({
314
373
  ...(config.authToken !== undefined && { bearerAuth: config.authToken }),
315
- ...(config.requestTimeout !== undefined && { timeoutMs: config.requestTimeout })
374
+ ...(config.requestTimeout !== undefined && { timeoutMs: config.requestTimeout }),
375
+ ...(config.httpClient !== undefined && { httpClient: config.httpClient })
316
376
  });
317
377
  }
318
378
 
319
- async checkTail(): Promise<CheckTailResponse> {
379
+ async checkTail(opConfig?: S2OperationConfig): Promise<CheckTailResponse> {
380
+ this.overrideConfig(opConfig);
320
381
  return (
321
382
  await this._stream.checkTail({ stream: this.streamName }, { serverURL: this.basinURL })
322
383
  );
323
384
  }
324
385
 
325
- async append(request: AppendRequest): Promise<AppendOutput> {
386
+ async append(request: AppendRequest, opConfig?: S2OperationConfig): Promise<AppendOutput> {
387
+ this.overrideConfig(opConfig);
326
388
  switch (this.config.appedRetryPolicy) {
327
389
  case AppendRetryPolicy.All:
328
390
  case undefined:
@@ -343,13 +405,15 @@ class Stream {
343
405
  }
344
406
  }
345
407
 
346
- async read(request: ReadRequest): Promise<Output> {
408
+ async read(request: ReadRequest, opConfig?: S2OperationConfig): Promise<Output> {
409
+ this.overrideConfig(opConfig);
347
410
  return (
348
411
  await this._stream.read({ ...request, stream: this.streamName }, { serverURL: this.basinURL }) as Output
349
412
  );
350
413
  }
351
414
 
352
- async *readStream(request: ReadRequest): AsyncGenerator<ReadResponse, void, undefined> {
415
+ async *readStream(request: ReadRequest, opConfig?: S2OperationConfig): AsyncGenerator<ReadResponse, void, undefined> {
416
+ this.overrideConfig(opConfig);
353
417
  let currentRequest: ReadRequest = { ...request };
354
418
  let initialBackoffMs = this.config.initialBackoffMs ?? 100;
355
419
  const maxBackoffMs = 5000;
package/src/lib/config.ts CHANGED
@@ -54,8 +54,8 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
54
54
  export const SDK_METADATA = {
55
55
  language: "typescript",
56
56
  openapiDocVersion: "1.0.0",
57
- sdkVersion: "0.3.14",
57
+ sdkVersion: "0.3.17",
58
58
  genVersion: "2.506.0",
59
59
  userAgent:
60
- "speakeasy-sdk/typescript 0.3.14 2.506.0 1.0.0 @s2-dev/streamstore",
60
+ "speakeasy-sdk/typescript 0.3.17 2.506.0 1.0.0 @s2-dev/streamstore",
61
61
  } as const;