@s2-dev/streamstore 0.3.7 → 0.3.9
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/index.extras.d.ts.map +1 -1
- package/index.extras.js +30 -3
- package/index.extras.js.map +1 -1
- package/jsr.json +1 -1
- package/lib/config.d.ts +2 -2
- package/lib/config.js +2 -2
- package/package.json +1 -1
- package/src/index.extras.ts +41 -10
- package/src/lib/config.ts +2 -2
package/index.extras.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.extras.d.ts","sourceRoot":"","sources":["src/index.extras.ts"],"names":[],"mappings":"AACA,OAAO,EACH,YAAY,EACZ,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,YAAY,
|
|
1
|
+
{"version":3,"file":"index.extras.d.ts","sourceRoot":"","sources":["src/index.extras.ts"],"names":[],"mappings":"AACA,OAAO,EACH,YAAY,EACZ,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,YAAY,EAIZ,YAAY,EACZ,UAAU,EACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAEH,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EAInB,WAAW,IAAI,gBAAgB,EAC/B,aAAa,IAAI,kBAAkB,EACtC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AASvC,OAAO,EAAuB,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAC/D,YAAY,EACR,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACR,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,UAAU,GACb,MAAM,qBAAqB,CAAC;AAE7B,cAAc,aAAa,CAAC;AAE5B,MAAM,MAAM,cAAc,GAAG;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAOF,qBAAa,QAAQ;IACjB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAC,CAAY;IAC7B,IAAI,OAAO,IAAI,SAAS,CAEvB;IAED,OAAO,CAAC,MAAM,CAAC,CAAU;IACzB,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;gBAIrB,MAAM,CAAC,EAAE,cAAc;CAGtC;AAED,cAAM,SAAS;IACX,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;gBAElC,MAAM,EAAE,cAAc;IAQlC,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAG5B;IAED,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI3B,UAAU,CACZ,OAAO,CAAC,EAAE,iBAAiB,GAC5B,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAK1D,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAQ/D,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAYxF,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAQ1E,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CAO/F;AAED,cAAM,OAAO;IACT,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAE5C,OAAO,KAAK,GAAG,GAEd;gBAEW,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;IAUrD,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI5B,WAAW,CACb,OAAO,EAAE,kBAAkB,GAC5B,OAAO,CAAC,YAAY,CAAC,mBAAmB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAI3D,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAMlE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAW5F,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAS5E,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAQnG;AAED,cAAM,MAAM;IACR,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAE5C,OAAO,KAAK,QAAQ,GAEnB;gBAEW,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;IAUnE,SAAS,IAAI,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAMnD,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAMjE,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAMtD,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC;CAyDzF;AAcD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
|
package/index.extras.js
CHANGED
|
@@ -161,6 +161,10 @@ class Stream {
|
|
|
161
161
|
}
|
|
162
162
|
async *readStream(request) {
|
|
163
163
|
let currentRequest = { ...request };
|
|
164
|
+
let backoffMs = 100;
|
|
165
|
+
const maxBackoffMs = 5000;
|
|
166
|
+
const maxRetries = 5;
|
|
167
|
+
let retryCount = 0;
|
|
164
168
|
while (true) {
|
|
165
169
|
let stream;
|
|
166
170
|
try {
|
|
@@ -174,7 +178,7 @@ class Stream {
|
|
|
174
178
|
return;
|
|
175
179
|
for await (const event of stream) {
|
|
176
180
|
yield event;
|
|
177
|
-
if (event.event === '
|
|
181
|
+
if (event.event === 'message') {
|
|
178
182
|
const output = event;
|
|
179
183
|
if ('batch' in output.data) {
|
|
180
184
|
const batch = output.data.batch;
|
|
@@ -184,18 +188,41 @@ class Stream {
|
|
|
184
188
|
currentRequest = { ...currentRequest, startSeqNum: lastRecord.seqNum + 1 };
|
|
185
189
|
}
|
|
186
190
|
}
|
|
191
|
+
if (currentRequest.limit) {
|
|
192
|
+
if (currentRequest.limit.count != null) {
|
|
193
|
+
currentRequest.limit.count = Math.max(0, currentRequest.limit.count - batch.records.length);
|
|
194
|
+
}
|
|
195
|
+
if (currentRequest.limit.bytes != null) {
|
|
196
|
+
currentRequest.limit.bytes = Math.max(0, currentRequest.limit.bytes - meteredBatchSize(batch));
|
|
197
|
+
}
|
|
198
|
+
}
|
|
187
199
|
}
|
|
188
200
|
}
|
|
189
201
|
}
|
|
190
202
|
return;
|
|
191
203
|
}
|
|
192
204
|
catch (error) {
|
|
193
|
-
|
|
194
|
-
|
|
205
|
+
if (error instanceof errors_1.ErrorResponse || error instanceof errors_1.NotFoundError)
|
|
206
|
+
return;
|
|
207
|
+
if (retryCount >= maxRetries) {
|
|
208
|
+
throw error;
|
|
209
|
+
}
|
|
210
|
+
retryCount++;
|
|
211
|
+
await new Promise(resolve => setTimeout(resolve, backoffMs));
|
|
212
|
+
backoffMs = Math.min(backoffMs * 2, maxBackoffMs);
|
|
195
213
|
}
|
|
196
214
|
}
|
|
197
215
|
}
|
|
198
216
|
}
|
|
217
|
+
function meteredRecordSize(batch) {
|
|
218
|
+
const fixed = 8 + (2 * batch.headers.length);
|
|
219
|
+
const headerSize = batch.headers.reduce((acc, header) => acc + header.name.length + header.value.length, 0);
|
|
220
|
+
const bodySize = batch.body.length;
|
|
221
|
+
return fixed + headerSize + bodySize;
|
|
222
|
+
}
|
|
223
|
+
function meteredBatchSize(batch) {
|
|
224
|
+
return batch.records.reduce((acc, record) => acc + meteredRecordSize(record), 0);
|
|
225
|
+
}
|
|
199
226
|
function genS2RequestToken() {
|
|
200
227
|
return (0, uuid_1.v4)().replace(/-/g, "");
|
|
201
228
|
}
|
package/index.extras.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.extras.js","sourceRoot":"","sources":["src/index.extras.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.extras.js","sourceRoot":"","sources":["src/index.extras.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAgVA,8CAEC;AAlVD,mEAAgE;AAgBhE,4CAA+D;AAe/D,yCAAqE;AACrE,uCAAkD;AAClD,2CAAwD;AAExD,+BAAoC;AACpC,iEAA8D;AAE9D,2CAA+D;AAwB/D,8CAA4B;AAQ5B,MAAM,qBAAqB,GAAmB;IAC1C,cAAc,EAAE,IAAI;IACpB,SAAS,EAAE,uBAAW,CAAC,QAAQ,CAAC,mBAAO,CAAC,GAAG,CAAC;CAC/C,CAAC;AAEF,MAAa,QAAQ;IAGjB,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;AAfD,4BAeC;AAED,MAAM,SAAS;IAKX,YAAY,MAAsB;QAFjB,oBAAe,GAAG,UAAU,CAAC;QAG1C,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;SACnF,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,IAAI,GAAG;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAC7C,OAAO,WAAW,sBAAU,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAClH,CAAC;IAED,KAAK,CAAC,SAAiB;QACnB,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,OAA2B;QAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa;QAC9B,MAAM,QAAQ,GAA0B,EAAE,KAAK,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAClC,CAAC,CAAC,WAAW,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,OAA4B;QACzD,MAAM,QAAQ,GAA4B;YACtC,KAAK;YACL,cAAc,EAAE,iBAAiB,EAAE;YACnC,kBAAkB,EAAE,OAAO,IAAI,EAAE;SACpC,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAChC,CAAC,CAAC,SAAS,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,SAAmB;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAA,uCAAkB,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnG,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;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,MAAM,QAAQ,GAA4B,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QACzE,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAClC,CAAC,CAAC,WAAW,CAAC;IACnB,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,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;SACnF,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;IAED,KAAK,CAAC,WAAW,CACb,OAA2B;QAE3B,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc;QAChC,OAAO,CACH,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CACzE,CAAC,YAAY,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,OAA6B;QAC5D,MAAM,QAAQ,GAA6B;YACvC,MAAM;YACN,cAAc,EAAE,iBAAiB,EAAE;YACnC,mBAAmB,EAAE,OAAO,IAAI,EAAE;SACrC,CAAC;QACF,OAAO,CACH,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CACpE,CAAC,UAAU,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,SAAmB;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAA,qCAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE;YAC9D,SAAS,EAAE,IAAI,CAAC,GAAG;SACtB,CAAC,CAAC;QACH,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;QACxD,OAAO,CACH,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC/B,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAChC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAC1B,CACJ,CAAC,YAAY,CAAC;IACnB,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;IAED,YAAY,SAAiB,EAAE,UAAkB,EAAE,MAAsB;QANxD,kBAAa,GAAG,UAAU,CAAC;QAOxC,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,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;SACnF,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,SAAS;QACX,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,iBAAiB,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAsB;QAC/B,OAAO,CACH,MAAM,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,CACnG,CAAC,YAAY,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoB;QAC3B,OAAO,CACH,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,CAAC,CACjG,CAAC,MAAM,CAAC;IACb,CAAC;IAED,KAAK,CAAC,CAAC,UAAU,CAAC,OAAoB;QAClC,IAAI,cAAc,GAAgB,EAAE,GAAG,OAAO,EAAE,CAAC;QACjD,IAAI,SAAS,GAAG,GAAG,CAAC;QACpB,MAAM,YAAY,GAAG,IAAI,CAAC;QAC1B,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,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,QAAQ,CAAC,YAAY,CAAC;gBAC/B,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,sBAAa,IAAI,KAAK,YAAY,sBAAa;oBAAE,OAAO;gBAC7E,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;oBAC3B,MAAM,KAAK,CAAC;gBAChB,CAAC;gBACD,UAAU,EAAE,CAAC;gBACb,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC7D,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;YACtD,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"}
|
package/jsr.json
CHANGED
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.
|
|
30
|
+
readonly sdkVersion: "0.3.9";
|
|
31
31
|
readonly genVersion: "2.506.0";
|
|
32
|
-
readonly userAgent: "speakeasy-sdk/typescript 0.3.
|
|
32
|
+
readonly userAgent: "speakeasy-sdk/typescript 0.3.9 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.
|
|
31
|
+
sdkVersion: "0.3.9",
|
|
32
32
|
genVersion: "2.506.0",
|
|
33
|
-
userAgent: "speakeasy-sdk/typescript 0.3.
|
|
33
|
+
userAgent: "speakeasy-sdk/typescript 0.3.9 2.506.0 1.0.0 @s2-dev/streamstore",
|
|
34
34
|
};
|
|
35
35
|
//# sourceMappingURL=config.js.map
|
package/package.json
CHANGED
package/src/index.extras.ts
CHANGED
|
@@ -9,10 +9,12 @@ import {
|
|
|
9
9
|
Output,
|
|
10
10
|
ReadResponse,
|
|
11
11
|
ReadResponseOutput,
|
|
12
|
+
SequencedRecord,
|
|
13
|
+
SequencedRecordBatch,
|
|
12
14
|
StreamConfig,
|
|
13
15
|
StreamInfo,
|
|
14
16
|
} from "./models/components";
|
|
15
|
-
import { NotFoundError } from "./models/errors";
|
|
17
|
+
import { ErrorResponse, NotFoundError } from "./models/errors";
|
|
16
18
|
import {
|
|
17
19
|
GetBasinConfigRequest,
|
|
18
20
|
ListBasinsRequest,
|
|
@@ -31,7 +33,7 @@ import { Stream as InnerStream, ReadAcceptEnum } from "./sdk/stream";
|
|
|
31
33
|
import { Basin as InnerBasin } from "./sdk/basin";
|
|
32
34
|
import { Account as InnerAccount } from "./sdk/account";
|
|
33
35
|
|
|
34
|
-
import { v4 } from "uuid";
|
|
36
|
+
import { v4 as uuidv4 } from "uuid";
|
|
35
37
|
import { basinDeleteStream } from "./funcs/basinDeleteStream";
|
|
36
38
|
import { EventStream } from "./lib/event-streams";
|
|
37
39
|
import { ClientKind, S2Cloud, S2Endpoints } from "./endpoints";
|
|
@@ -263,16 +265,20 @@ class Stream {
|
|
|
263
265
|
|
|
264
266
|
async *readStream(request: ReadRequest): AsyncGenerator<ReadResponse, void, undefined> {
|
|
265
267
|
let currentRequest: ReadRequest = { ...request };
|
|
268
|
+
let backoffMs = 100;
|
|
269
|
+
const maxBackoffMs = 5000;
|
|
270
|
+
const maxRetries = 5;
|
|
271
|
+
let retryCount = 0;
|
|
266
272
|
|
|
267
273
|
while (true) {
|
|
268
274
|
let stream: EventStream<ReadResponse> | undefined;
|
|
269
275
|
try {
|
|
270
276
|
const response = await this._stream.read(
|
|
271
277
|
{ ...currentRequest, stream: this.streamName },
|
|
272
|
-
{
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
278
|
+
{
|
|
279
|
+
serverURL: this.basinURL,
|
|
280
|
+
timeoutMs: -1, // disable only for streaming
|
|
281
|
+
acceptHeaderOverride: ReadAcceptEnum.textEventStream
|
|
276
282
|
}
|
|
277
283
|
);
|
|
278
284
|
stream = response.readResponse;
|
|
@@ -281,7 +287,7 @@ class Stream {
|
|
|
281
287
|
for await (const event of stream) {
|
|
282
288
|
yield event;
|
|
283
289
|
|
|
284
|
-
if (event.event === '
|
|
290
|
+
if (event.event === 'message') {
|
|
285
291
|
const output = event as ReadResponseOutput;
|
|
286
292
|
if ('batch' in output.data) {
|
|
287
293
|
const batch = output.data.batch;
|
|
@@ -291,18 +297,43 @@ class Stream {
|
|
|
291
297
|
currentRequest = { ...currentRequest, startSeqNum: lastRecord.seqNum + 1 };
|
|
292
298
|
}
|
|
293
299
|
}
|
|
300
|
+
if (currentRequest.limit) {
|
|
301
|
+
if (currentRequest.limit.count != null) {
|
|
302
|
+
currentRequest.limit.count = Math.max(0, currentRequest.limit.count - batch.records.length);
|
|
303
|
+
}
|
|
304
|
+
if (currentRequest.limit.bytes != null) {
|
|
305
|
+
currentRequest.limit.bytes = Math.max(0, currentRequest.limit.bytes - meteredBatchSize(batch));
|
|
306
|
+
}
|
|
307
|
+
}
|
|
294
308
|
}
|
|
295
309
|
}
|
|
296
310
|
}
|
|
297
311
|
return;
|
|
298
312
|
} catch (error) {
|
|
299
|
-
|
|
300
|
-
|
|
313
|
+
if (error instanceof ErrorResponse || error instanceof NotFoundError) return;
|
|
314
|
+
if (retryCount >= maxRetries) {
|
|
315
|
+
throw error;
|
|
316
|
+
}
|
|
317
|
+
retryCount++;
|
|
318
|
+
await new Promise(resolve => setTimeout(resolve, backoffMs));
|
|
319
|
+
backoffMs = Math.min(backoffMs * 2, maxBackoffMs);
|
|
301
320
|
}
|
|
302
321
|
}
|
|
303
322
|
}
|
|
304
323
|
}
|
|
305
324
|
|
|
325
|
+
function meteredRecordSize(batch: SequencedRecord): number {
|
|
326
|
+
const fixed = 8 + (2 * batch.headers.length);
|
|
327
|
+
const headerSize = batch.headers.reduce((acc, header) => acc + header.name.length + header.value.length, 0);
|
|
328
|
+
const bodySize = batch.body.length;
|
|
329
|
+
|
|
330
|
+
return fixed + headerSize + bodySize;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
function meteredBatchSize(batch: SequencedRecordBatch): number {
|
|
334
|
+
return batch.records.reduce((acc, record) => acc + meteredRecordSize(record), 0);
|
|
335
|
+
}
|
|
336
|
+
|
|
306
337
|
export function genS2RequestToken(): string {
|
|
307
|
-
return
|
|
338
|
+
return uuidv4().replace(/-/g, "");
|
|
308
339
|
}
|
package/src/lib/config.ts
CHANGED
|
@@ -54,7 +54,7 @@ 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.
|
|
57
|
+
sdkVersion: "0.3.9",
|
|
58
58
|
genVersion: "2.506.0",
|
|
59
|
-
userAgent: "speakeasy-sdk/typescript 0.3.
|
|
59
|
+
userAgent: "speakeasy-sdk/typescript 0.3.9 2.506.0 1.0.0 @s2-dev/streamstore",
|
|
60
60
|
} as const;
|