celitech-sdk 1.3.18 → 1.3.23

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -1,11 +1,13 @@
1
- # Celitech TypeScript SDK 1.3.18
1
+ # Celitech TypeScript SDK 1.3.23
2
2
 
3
3
  Welcome to the Celitech SDK documentation. This guide will help you get started with integrating and using the Celitech SDK in your project.
4
4
 
5
+ [![This SDK was generated by liblab](https://public-liblab-readme-assets.s3.us-east-1.amazonaws.com/built-by-liblab-icon.svg)](https://liblab.com/?utm_source=readme)
6
+
5
7
  ## Versions
6
8
 
7
9
  - API version: `1.1.0`
8
- - SDK version: `1.3.18`
10
+ - SDK version: `1.3.23`
9
11
 
10
12
  ## About the API
11
13
 
package/dist/index.d.ts CHANGED
@@ -155,7 +155,8 @@ declare enum ContentType {
155
155
  Binary = "binary",
156
156
  FormUrlEncoded = "form",
157
157
  Text = "text",
158
- MultipartFormData = "multipartFormData"
158
+ MultipartFormData = "multipartFormData",
159
+ EventStream = "eventStream"
159
160
  }
160
161
  interface RequestConfig {
161
162
  retry?: RetryOptions;
@@ -187,6 +188,7 @@ declare class HttpClient {
187
188
  private readonly requestHandlerChain;
188
189
  constructor(config: SdkConfig, hook?: CustomHook);
189
190
  call<T>(request: Request<T>): Promise<HttpResponse<T>>;
191
+ stream<T>(request: Request<T>): AsyncGenerator<HttpResponse<T>>;
190
192
  callPaginated<FullResponse, Page>(request: Request<FullResponse, Page>): Promise<HttpResponse<Page>>;
191
193
  setBaseUrl(url: string): void;
192
194
  setConfig(config: SdkConfig): void;
package/dist/index.js CHANGED
@@ -58,6 +58,12 @@ var RequestHandlerChain = class {
58
58
  }
59
59
  return this.handlers[0].handle(request);
60
60
  }
61
+ async *streamChain(request) {
62
+ if (!this.handlers.length) {
63
+ throw new Error("No handlers added to the chain");
64
+ }
65
+ yield* this.handlers[0].stream(request);
66
+ }
61
67
  };
62
68
 
63
69
  // src/http/error.ts
@@ -256,6 +262,22 @@ var HookHandler = class {
256
262
  }
257
263
  throw await hook.onError(nextRequest, response, hookParams);
258
264
  }
265
+ async *stream(request) {
266
+ if (!this.next) {
267
+ throw new Error("No next handler set in hook handler.");
268
+ }
269
+ const hook = new TransportHookAdapter();
270
+ const hookParams = this.getHookParams(request);
271
+ const nextRequest = await hook.beforeRequest(request, hookParams);
272
+ const stream = this.next.stream(nextRequest);
273
+ for await (const response of stream) {
274
+ if (response.metadata.status < 400) {
275
+ yield await hook.afterResponse(nextRequest, response, hookParams);
276
+ } else {
277
+ throw await hook.onError(nextRequest, response, hookParams);
278
+ }
279
+ }
280
+ }
259
281
  getHookParams(_request) {
260
282
  const hookParams = /* @__PURE__ */ new Map();
261
283
  return hookParams;
@@ -267,47 +289,95 @@ var import_zod = require("zod");
267
289
  var ResponseValidationHandler = class {
268
290
  async handle(request) {
269
291
  const response = await this.next.handle(request);
292
+ return this.decodeBody(request, response);
293
+ }
294
+ async *stream(request) {
295
+ const stream = this.next.stream(request);
296
+ for await (const response of stream) {
297
+ const responseChunks = this.splitByDataChunks(response);
298
+ for (const chunk of responseChunks) {
299
+ yield this.decodeBody(request, chunk);
300
+ }
301
+ }
302
+ }
303
+ splitByDataChunks(response) {
304
+ if (!response.metadata.headers["content-type"].includes("text/event-stream")) {
305
+ return [response];
306
+ }
307
+ const text = new TextDecoder().decode(response.raw);
308
+ const encoder = new TextEncoder();
309
+ return text.split("\n").filter((line) => line.startsWith("data: ")).map((part) => ({
310
+ ...response,
311
+ raw: encoder.encode(part)
312
+ }));
313
+ }
314
+ decodeBody(request, response) {
270
315
  if (!this.hasContent(request, response)) {
271
316
  return response;
272
317
  }
273
- if (request.responseContentType === "json" /* Json */) {
274
- const decodedBody = new TextDecoder().decode(response.raw);
275
- const json = JSON.parse(decodedBody);
276
- return {
277
- ...response,
278
- data: this.validate(request, json)
279
- };
280
- } else if (request.responseContentType === "binary" /* Binary */ || request.responseContentType === "image" /* Image */) {
281
- return {
282
- ...response,
283
- data: this.validate(request, response.raw)
284
- };
285
- } else if (request.responseContentType === "text" /* Text */ || request.responseContentType === "xml" /* Xml */) {
286
- const text = new TextDecoder().decode(response.raw);
287
- return {
288
- ...response,
289
- data: this.validate(request, text)
290
- };
291
- } else if (request.responseContentType === "form" /* FormUrlEncoded */) {
292
- const urlEncoded = this.fromUrlEncoded(new TextDecoder().decode(response.raw));
293
- return {
294
- ...response,
295
- data: this.validate(request, urlEncoded)
296
- };
297
- } else if (request.responseContentType === "multipartFormData" /* MultipartFormData */) {
298
- const formData = this.fromFormData(response.raw);
299
- return {
300
- ...response,
301
- data: this.validate(request, formData)
302
- };
303
- } else {
304
- const decodedBody = new TextDecoder().decode(response.raw);
305
- const json = JSON.parse(decodedBody);
306
- return {
307
- ...response,
308
- data: this.validate(request, json)
309
- };
318
+ if (request.responseContentType === "binary" /* Binary */ || request.responseContentType === "image" /* Image */) {
319
+ return this.decodeFile(request, response);
320
+ }
321
+ if (request.responseContentType === "multipartFormData" /* MultipartFormData */) {
322
+ return this.decodeMultipartFormData(request, response);
323
+ }
324
+ if (request.responseContentType === "text" /* Text */ || request.responseContentType === "xml" /* Xml */) {
325
+ return this.decodeText(request, response);
326
+ }
327
+ if (request.responseContentType === "form" /* FormUrlEncoded */) {
328
+ return this.decodeFormUrlEncoded(request, response);
329
+ }
330
+ if (request.responseContentType === "eventStream" /* EventStream */ || response.metadata.headers["content-type"].includes("text/event-stream")) {
331
+ return this.decodeEventStream(request, response);
332
+ }
333
+ return this.decodeJson(request, response);
334
+ }
335
+ decodeFile(request, response) {
336
+ return {
337
+ ...response,
338
+ data: this.validate(request, response.raw)
339
+ };
340
+ }
341
+ decodeMultipartFormData(request, response) {
342
+ const formData = this.fromFormData(response.raw);
343
+ return {
344
+ ...response,
345
+ data: this.validate(request, formData)
346
+ };
347
+ }
348
+ decodeText(request, response) {
349
+ const decodedBody = new TextDecoder().decode(response.raw);
350
+ return {
351
+ ...response,
352
+ data: this.validate(request, decodedBody)
353
+ };
354
+ }
355
+ decodeFormUrlEncoded(request, response) {
356
+ const decodedBody = new TextDecoder().decode(response.raw);
357
+ const urlEncoded = this.fromUrlEncoded(decodedBody);
358
+ return {
359
+ ...response,
360
+ data: this.validate(request, urlEncoded)
361
+ };
362
+ }
363
+ decodeEventStream(request, response) {
364
+ let decodedBody = new TextDecoder().decode(response.raw);
365
+ if (decodedBody.startsWith("data: ")) {
366
+ decodedBody = decodedBody.substring(6);
310
367
  }
368
+ const json = JSON.parse(decodedBody);
369
+ return {
370
+ ...response,
371
+ data: this.validate(request, json)
372
+ };
373
+ }
374
+ decodeJson(request, response) {
375
+ const decodedBody = new TextDecoder().decode(response.raw);
376
+ const json = JSON.parse(decodedBody);
377
+ return {
378
+ ...response,
379
+ data: this.validate(request, json)
380
+ };
311
381
  }
312
382
  validate(request, data) {
313
383
  var _a;
@@ -351,10 +421,21 @@ var ResponseValidationHandler = class {
351
421
  // src/http/handlers/request-validation-handler.ts
352
422
  var RequestValidationHandler = class {
353
423
  async handle(request) {
354
- var _a, _b;
355
424
  if (!this.next) {
356
425
  throw new Error("No next handler set in ContentTypeHandler.");
357
426
  }
427
+ this.validateRequest(request);
428
+ return this.next.handle(request);
429
+ }
430
+ async *stream(request) {
431
+ if (!this.next) {
432
+ throw new Error("No next handler set in ContentTypeHandler.");
433
+ }
434
+ this.validateRequest(request);
435
+ yield* this.next.stream(request);
436
+ }
437
+ validateRequest(request) {
438
+ var _a, _b;
358
439
  if (request.requestContentType === "json" /* Json */) {
359
440
  request.body = JSON.stringify((_a = request.requestSchema) == null ? void 0 : _a.parse(request.body));
360
441
  } else if (request.requestContentType === "xml" /* Xml */ || request.requestContentType === "binary" /* Binary */ || request.requestContentType === "text" /* Text */) {
@@ -366,7 +447,6 @@ var RequestValidationHandler = class {
366
447
  } else {
367
448
  request.body = JSON.stringify((_b = request.requestSchema) == null ? void 0 : _b.parse(request.body));
368
449
  }
369
- return await this.next.handle(request);
370
450
  }
371
451
  toFormUrlEncoded(request) {
372
452
  var _a;
@@ -434,6 +514,34 @@ var RequestFetchAdapter = class {
434
514
  raw: await response.clone().arrayBuffer()
435
515
  };
436
516
  }
517
+ async *stream() {
518
+ const response = await fetch(this.request.constructFullUrl(), this.requestInit);
519
+ const metadata = {
520
+ status: response.status,
521
+ statusText: response.statusText || "",
522
+ headers: this.getHeaders(response)
523
+ };
524
+ if (response.status >= 400) {
525
+ throw new HttpError(metadata, await response.clone().arrayBuffer());
526
+ }
527
+ if (!response.body) {
528
+ return yield {
529
+ metadata,
530
+ raw: await response.clone().arrayBuffer()
531
+ };
532
+ }
533
+ const reader = response.body.getReader();
534
+ while (true) {
535
+ const { done, value } = await reader.read();
536
+ if (done) {
537
+ break;
538
+ }
539
+ yield {
540
+ metadata,
541
+ raw: value
542
+ };
543
+ }
544
+ }
437
545
  setMethod(method) {
438
546
  if (!method) {
439
547
  return;
@@ -484,6 +592,9 @@ var TerminatingHandler = class {
484
592
  async handle(request) {
485
593
  return new RequestFetchAdapter(request).send();
486
594
  }
595
+ async *stream(request) {
596
+ yield* new RequestFetchAdapter(request).stream();
597
+ }
487
598
  };
488
599
 
489
600
  // src/http/handlers/retry-handler.ts
@@ -504,6 +615,23 @@ var RetryHandler = class {
504
615
  }
505
616
  throw new Error("Error retrying request.");
506
617
  }
618
+ async *stream(request) {
619
+ if (!this.next) {
620
+ throw new Error("No next handler set in retry handler.");
621
+ }
622
+ for (let attempt = 1; attempt <= request.retry.attempts; attempt++) {
623
+ try {
624
+ yield* this.next.stream(request);
625
+ return;
626
+ } catch (error) {
627
+ if (!this.shouldRetry(error) || attempt === request.retry.attempts) {
628
+ throw error;
629
+ }
630
+ await this.delay(request.retry.delayMs);
631
+ }
632
+ }
633
+ throw new Error("Error retrying request.");
634
+ }
507
635
  shouldRetry(error) {
508
636
  return error instanceof HttpError && (error.metadata.status >= 500 || error.metadata.status === 408);
509
637
  }
@@ -520,12 +648,22 @@ var RetryHandler = class {
520
648
  // src/http/handlers/oauth-handler.ts
521
649
  var OAuthHandler = class {
522
650
  async handle(request) {
523
- var _a;
524
651
  if (!this.next) {
525
652
  throw new Error(`No next handler set in OAuthHandler`);
526
653
  }
654
+ await this.addToken(request);
655
+ return this.next.handle(request);
656
+ }
657
+ async *stream(request) {
658
+ if (!this.next) {
659
+ throw new Error(`No next handler set in OAuthHandler`);
660
+ }
661
+ await this.addToken(request);
662
+ yield* this.next.stream(request);
663
+ }
664
+ async addToken(request) {
527
665
  if (!request.scopes) {
528
- return (_a = this.next) == null ? void 0 : _a.handle(request);
666
+ return;
529
667
  }
530
668
  const token = await request.tokenManager.getToken(request.scopes, request.config);
531
669
  if (token.accessToken) {
@@ -539,7 +677,6 @@ var OAuthHandler = class {
539
677
  isOffset: false
540
678
  });
541
679
  }
542
- return this.next.handle(request);
543
680
  }
544
681
  };
545
682
 
@@ -558,6 +695,9 @@ var HttpClient = class {
558
695
  call(request) {
559
696
  return this.requestHandlerChain.callChain(request);
560
697
  }
698
+ async *stream(request) {
699
+ yield* this.requestHandlerChain.streamChain(request);
700
+ }
561
701
  async callPaginated(request) {
562
702
  const response = await this.call(request);
563
703
  if (!response.data) {
package/dist/index.mjs CHANGED
@@ -16,6 +16,12 @@ var RequestHandlerChain = class {
16
16
  }
17
17
  return this.handlers[0].handle(request);
18
18
  }
19
+ async *streamChain(request) {
20
+ if (!this.handlers.length) {
21
+ throw new Error("No handlers added to the chain");
22
+ }
23
+ yield* this.handlers[0].stream(request);
24
+ }
19
25
  };
20
26
 
21
27
  // src/http/error.ts
@@ -214,6 +220,22 @@ var HookHandler = class {
214
220
  }
215
221
  throw await hook.onError(nextRequest, response, hookParams);
216
222
  }
223
+ async *stream(request) {
224
+ if (!this.next) {
225
+ throw new Error("No next handler set in hook handler.");
226
+ }
227
+ const hook = new TransportHookAdapter();
228
+ const hookParams = this.getHookParams(request);
229
+ const nextRequest = await hook.beforeRequest(request, hookParams);
230
+ const stream = this.next.stream(nextRequest);
231
+ for await (const response of stream) {
232
+ if (response.metadata.status < 400) {
233
+ yield await hook.afterResponse(nextRequest, response, hookParams);
234
+ } else {
235
+ throw await hook.onError(nextRequest, response, hookParams);
236
+ }
237
+ }
238
+ }
217
239
  getHookParams(_request) {
218
240
  const hookParams = /* @__PURE__ */ new Map();
219
241
  return hookParams;
@@ -225,47 +247,95 @@ import { ZodUndefined } from "zod";
225
247
  var ResponseValidationHandler = class {
226
248
  async handle(request) {
227
249
  const response = await this.next.handle(request);
250
+ return this.decodeBody(request, response);
251
+ }
252
+ async *stream(request) {
253
+ const stream = this.next.stream(request);
254
+ for await (const response of stream) {
255
+ const responseChunks = this.splitByDataChunks(response);
256
+ for (const chunk of responseChunks) {
257
+ yield this.decodeBody(request, chunk);
258
+ }
259
+ }
260
+ }
261
+ splitByDataChunks(response) {
262
+ if (!response.metadata.headers["content-type"].includes("text/event-stream")) {
263
+ return [response];
264
+ }
265
+ const text = new TextDecoder().decode(response.raw);
266
+ const encoder = new TextEncoder();
267
+ return text.split("\n").filter((line) => line.startsWith("data: ")).map((part) => ({
268
+ ...response,
269
+ raw: encoder.encode(part)
270
+ }));
271
+ }
272
+ decodeBody(request, response) {
228
273
  if (!this.hasContent(request, response)) {
229
274
  return response;
230
275
  }
231
- if (request.responseContentType === "json" /* Json */) {
232
- const decodedBody = new TextDecoder().decode(response.raw);
233
- const json = JSON.parse(decodedBody);
234
- return {
235
- ...response,
236
- data: this.validate(request, json)
237
- };
238
- } else if (request.responseContentType === "binary" /* Binary */ || request.responseContentType === "image" /* Image */) {
239
- return {
240
- ...response,
241
- data: this.validate(request, response.raw)
242
- };
243
- } else if (request.responseContentType === "text" /* Text */ || request.responseContentType === "xml" /* Xml */) {
244
- const text = new TextDecoder().decode(response.raw);
245
- return {
246
- ...response,
247
- data: this.validate(request, text)
248
- };
249
- } else if (request.responseContentType === "form" /* FormUrlEncoded */) {
250
- const urlEncoded = this.fromUrlEncoded(new TextDecoder().decode(response.raw));
251
- return {
252
- ...response,
253
- data: this.validate(request, urlEncoded)
254
- };
255
- } else if (request.responseContentType === "multipartFormData" /* MultipartFormData */) {
256
- const formData = this.fromFormData(response.raw);
257
- return {
258
- ...response,
259
- data: this.validate(request, formData)
260
- };
261
- } else {
262
- const decodedBody = new TextDecoder().decode(response.raw);
263
- const json = JSON.parse(decodedBody);
264
- return {
265
- ...response,
266
- data: this.validate(request, json)
267
- };
276
+ if (request.responseContentType === "binary" /* Binary */ || request.responseContentType === "image" /* Image */) {
277
+ return this.decodeFile(request, response);
278
+ }
279
+ if (request.responseContentType === "multipartFormData" /* MultipartFormData */) {
280
+ return this.decodeMultipartFormData(request, response);
281
+ }
282
+ if (request.responseContentType === "text" /* Text */ || request.responseContentType === "xml" /* Xml */) {
283
+ return this.decodeText(request, response);
284
+ }
285
+ if (request.responseContentType === "form" /* FormUrlEncoded */) {
286
+ return this.decodeFormUrlEncoded(request, response);
287
+ }
288
+ if (request.responseContentType === "eventStream" /* EventStream */ || response.metadata.headers["content-type"].includes("text/event-stream")) {
289
+ return this.decodeEventStream(request, response);
290
+ }
291
+ return this.decodeJson(request, response);
292
+ }
293
+ decodeFile(request, response) {
294
+ return {
295
+ ...response,
296
+ data: this.validate(request, response.raw)
297
+ };
298
+ }
299
+ decodeMultipartFormData(request, response) {
300
+ const formData = this.fromFormData(response.raw);
301
+ return {
302
+ ...response,
303
+ data: this.validate(request, formData)
304
+ };
305
+ }
306
+ decodeText(request, response) {
307
+ const decodedBody = new TextDecoder().decode(response.raw);
308
+ return {
309
+ ...response,
310
+ data: this.validate(request, decodedBody)
311
+ };
312
+ }
313
+ decodeFormUrlEncoded(request, response) {
314
+ const decodedBody = new TextDecoder().decode(response.raw);
315
+ const urlEncoded = this.fromUrlEncoded(decodedBody);
316
+ return {
317
+ ...response,
318
+ data: this.validate(request, urlEncoded)
319
+ };
320
+ }
321
+ decodeEventStream(request, response) {
322
+ let decodedBody = new TextDecoder().decode(response.raw);
323
+ if (decodedBody.startsWith("data: ")) {
324
+ decodedBody = decodedBody.substring(6);
268
325
  }
326
+ const json = JSON.parse(decodedBody);
327
+ return {
328
+ ...response,
329
+ data: this.validate(request, json)
330
+ };
331
+ }
332
+ decodeJson(request, response) {
333
+ const decodedBody = new TextDecoder().decode(response.raw);
334
+ const json = JSON.parse(decodedBody);
335
+ return {
336
+ ...response,
337
+ data: this.validate(request, json)
338
+ };
269
339
  }
270
340
  validate(request, data) {
271
341
  var _a;
@@ -309,10 +379,21 @@ var ResponseValidationHandler = class {
309
379
  // src/http/handlers/request-validation-handler.ts
310
380
  var RequestValidationHandler = class {
311
381
  async handle(request) {
312
- var _a, _b;
313
382
  if (!this.next) {
314
383
  throw new Error("No next handler set in ContentTypeHandler.");
315
384
  }
385
+ this.validateRequest(request);
386
+ return this.next.handle(request);
387
+ }
388
+ async *stream(request) {
389
+ if (!this.next) {
390
+ throw new Error("No next handler set in ContentTypeHandler.");
391
+ }
392
+ this.validateRequest(request);
393
+ yield* this.next.stream(request);
394
+ }
395
+ validateRequest(request) {
396
+ var _a, _b;
316
397
  if (request.requestContentType === "json" /* Json */) {
317
398
  request.body = JSON.stringify((_a = request.requestSchema) == null ? void 0 : _a.parse(request.body));
318
399
  } else if (request.requestContentType === "xml" /* Xml */ || request.requestContentType === "binary" /* Binary */ || request.requestContentType === "text" /* Text */) {
@@ -324,7 +405,6 @@ var RequestValidationHandler = class {
324
405
  } else {
325
406
  request.body = JSON.stringify((_b = request.requestSchema) == null ? void 0 : _b.parse(request.body));
326
407
  }
327
- return await this.next.handle(request);
328
408
  }
329
409
  toFormUrlEncoded(request) {
330
410
  var _a;
@@ -392,6 +472,34 @@ var RequestFetchAdapter = class {
392
472
  raw: await response.clone().arrayBuffer()
393
473
  };
394
474
  }
475
+ async *stream() {
476
+ const response = await fetch(this.request.constructFullUrl(), this.requestInit);
477
+ const metadata = {
478
+ status: response.status,
479
+ statusText: response.statusText || "",
480
+ headers: this.getHeaders(response)
481
+ };
482
+ if (response.status >= 400) {
483
+ throw new HttpError(metadata, await response.clone().arrayBuffer());
484
+ }
485
+ if (!response.body) {
486
+ return yield {
487
+ metadata,
488
+ raw: await response.clone().arrayBuffer()
489
+ };
490
+ }
491
+ const reader = response.body.getReader();
492
+ while (true) {
493
+ const { done, value } = await reader.read();
494
+ if (done) {
495
+ break;
496
+ }
497
+ yield {
498
+ metadata,
499
+ raw: value
500
+ };
501
+ }
502
+ }
395
503
  setMethod(method) {
396
504
  if (!method) {
397
505
  return;
@@ -442,6 +550,9 @@ var TerminatingHandler = class {
442
550
  async handle(request) {
443
551
  return new RequestFetchAdapter(request).send();
444
552
  }
553
+ async *stream(request) {
554
+ yield* new RequestFetchAdapter(request).stream();
555
+ }
445
556
  };
446
557
 
447
558
  // src/http/handlers/retry-handler.ts
@@ -462,6 +573,23 @@ var RetryHandler = class {
462
573
  }
463
574
  throw new Error("Error retrying request.");
464
575
  }
576
+ async *stream(request) {
577
+ if (!this.next) {
578
+ throw new Error("No next handler set in retry handler.");
579
+ }
580
+ for (let attempt = 1; attempt <= request.retry.attempts; attempt++) {
581
+ try {
582
+ yield* this.next.stream(request);
583
+ return;
584
+ } catch (error) {
585
+ if (!this.shouldRetry(error) || attempt === request.retry.attempts) {
586
+ throw error;
587
+ }
588
+ await this.delay(request.retry.delayMs);
589
+ }
590
+ }
591
+ throw new Error("Error retrying request.");
592
+ }
465
593
  shouldRetry(error) {
466
594
  return error instanceof HttpError && (error.metadata.status >= 500 || error.metadata.status === 408);
467
595
  }
@@ -478,12 +606,22 @@ var RetryHandler = class {
478
606
  // src/http/handlers/oauth-handler.ts
479
607
  var OAuthHandler = class {
480
608
  async handle(request) {
481
- var _a;
482
609
  if (!this.next) {
483
610
  throw new Error(`No next handler set in OAuthHandler`);
484
611
  }
612
+ await this.addToken(request);
613
+ return this.next.handle(request);
614
+ }
615
+ async *stream(request) {
616
+ if (!this.next) {
617
+ throw new Error(`No next handler set in OAuthHandler`);
618
+ }
619
+ await this.addToken(request);
620
+ yield* this.next.stream(request);
621
+ }
622
+ async addToken(request) {
485
623
  if (!request.scopes) {
486
- return (_a = this.next) == null ? void 0 : _a.handle(request);
624
+ return;
487
625
  }
488
626
  const token = await request.tokenManager.getToken(request.scopes, request.config);
489
627
  if (token.accessToken) {
@@ -497,7 +635,6 @@ var OAuthHandler = class {
497
635
  isOffset: false
498
636
  });
499
637
  }
500
- return this.next.handle(request);
501
638
  }
502
639
  };
503
640
 
@@ -516,6 +653,9 @@ var HttpClient = class {
516
653
  call(request) {
517
654
  return this.requestHandlerChain.callChain(request);
518
655
  }
656
+ async *stream(request) {
657
+ yield* this.requestHandlerChain.streamChain(request);
658
+ }
519
659
  async callPaginated(request) {
520
660
  const response = await this.call(request);
521
661
  if (!response.data) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "celitech-sdk",
3
- "version": "1.3.18",
3
+ "version": "1.3.23",
4
4
  "description": "Welcome to the CELITECH API documentation! Useful links: [Homepage](https://www.celitech.com) | [Support email](mailto:support@celitech.com) | [Blog](https://www.celitech.com/blog/) ",
5
5
  "source": "./src/index.ts",
6
6
  "main": "./dist/index.js",