@stackone/transport 1.8.3 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,9 +1,10 @@
1
1
  import * as redis from "redis";
2
2
  import { AxiosInstance, AxiosInterceptorOptions, AxiosResponse, CreateAxiosDefaults, InternalAxiosRequestConfig } from "axios";
3
- import { AgentOptions } from "node:http";
3
+ import http, { AgentOptions } from "node:http";
4
4
  import { ILogger } from "@stackone/logger";
5
5
  import { z } from "zod/v4";
6
6
  import https from "https";
7
+ import https$1 from "node:https";
7
8
 
8
9
  //#region src/authorization/types.d.ts
9
10
  type BasicAuthorizationParams = {
@@ -69,7 +70,7 @@ interface ICacheClient<ClientType = unknown> {
69
70
  }
70
71
  type PubSubListener<ReturnsBuffer extends boolean = false> = <T extends (ReturnsBuffer extends true ? Buffer : string)>(message: T, channel: T) => unknown;
71
72
  //#endregion
72
- //#region src/redisClient/index.d.ts
73
+ //#region src/redisClient/types.d.ts
73
74
  type RedisClientType = redis.RedisClientType;
74
75
  interface RedisClientConfig {
75
76
  getRedisClient?: typeof redis.createClient;
@@ -79,6 +80,9 @@ interface RedisClientConfig {
79
80
  reconnect?: boolean;
80
81
  database?: number;
81
82
  }
83
+ type RedisClientBuilder = (config: RedisClientConfig, logger?: ILogger) => Promise<ICacheClient<RedisClientType> | undefined>;
84
+ //#endregion
85
+ //#region src/redisClient/index.d.ts
82
86
  declare const buildRedisClientInstance: (config: RedisClientConfig, logger?: ILogger) => Promise<ICacheClient<RedisClientType> | undefined>;
83
87
  declare class RedisClient implements ICacheClient<RedisClientType> {
84
88
  #private;
@@ -335,6 +339,16 @@ type RequestContext = {
335
339
  accountSettings?: AccountSettings;
336
340
  behaviours?: HttpClientBehaviour[];
337
341
  };
342
+ type ErrorMappingFn<TError extends Error = Error> = (error: Error) => TError | undefined;
343
+ type TransportFactory = ({
344
+ logger,
345
+ redisClientConfig,
346
+ context
347
+ }: {
348
+ logger?: ILogger;
349
+ redisClientConfig?: RedisClientConfig;
350
+ context?: RequestContext;
351
+ }) => Promise<AxiosInstance>;
338
352
  //#endregion
339
353
  //#region src/errors/httpResponseError.d.ts
340
354
  declare class HttpResponseError extends Error {
@@ -405,53 +419,71 @@ declare class EventClient<T> {
405
419
  }
406
420
  //#endregion
407
421
  //#region src/getTransportInstance/index.d.ts
408
- declare const getTransportInstance: (logger: ILogger, context?: RequestContext) => Promise<AxiosInstance>;
422
+ declare const getTransportInstance: ({
423
+ logger,
424
+ redisClientConfig,
425
+ context
426
+ }?: {
427
+ logger?: ILogger;
428
+ redisClientConfig?: RedisClientConfig;
429
+ context?: RequestContext;
430
+ }) => Promise<AxiosInstance>;
409
431
  //#endregion
410
432
  //#region src/httpClient/httpClient.d.ts
411
- declare class HttpClient implements IHttpClient {
433
+ declare class HttpClient<TError extends Error = Error> implements IHttpClient {
412
434
  #private;
413
435
  constructor({
414
- transportInstance
436
+ transportFactory,
437
+ getRedisClient,
438
+ logger,
439
+ redisClientConfig,
440
+ errorMappingFn
415
441
  }?: {
416
- transportInstance?: AxiosInstance;
442
+ transportFactory?: TransportFactory;
443
+ getRedisClient?: RedisClientBuilder;
444
+ logger?: ILogger;
445
+ redisClientConfig?: RedisClientConfig;
446
+ errorMappingFn?: ErrorMappingFn<TError>;
417
447
  });
418
448
  request<P, T>({
419
449
  headers,
420
450
  url,
421
451
  method,
422
- queryParams,
423
452
  maxRedirects,
424
453
  responseType,
425
454
  cacheTTL,
426
455
  context,
456
+ traceId,
427
457
  payload,
428
- httpsAgent
458
+ httpsAgent,
459
+ httpAgent
429
460
  }: {
430
461
  headers?: HttpHeaders;
431
462
  url: string;
432
463
  method?: HttpMethod;
433
- queryParams?: HttpQueryParams;
434
464
  maxRedirects?: number;
435
465
  responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text';
436
466
  cacheTTL?: number;
437
- context?: unknown;
467
+ context?: RequestContext;
468
+ traceId?: string;
438
469
  payload?: P;
439
- httpsAgent?: https.Agent;
470
+ httpsAgent?: https$1.Agent;
471
+ httpAgent?: http.Agent;
440
472
  }): Promise<HttpResponse<T>>;
441
473
  get<T>({
442
474
  headers,
443
475
  url,
444
- queryParams,
445
476
  maxRedirects,
446
477
  cacheTTL,
447
- context
478
+ context,
479
+ traceId
448
480
  }: {
449
481
  headers?: HttpHeaders;
450
482
  url: string;
451
- queryParams?: HttpQueryParams;
452
483
  maxRedirects?: number;
453
484
  cacheTTL?: number;
454
- context?: unknown;
485
+ context?: RequestContext;
486
+ traceId?: string;
455
487
  }): Promise<HttpResponse<T>>;
456
488
  post<P, T>({
457
489
  headers,
@@ -459,25 +491,33 @@ declare class HttpClient implements IHttpClient {
459
491
  maxRedirects,
460
492
  cacheTTL,
461
493
  context,
494
+ traceId,
462
495
  payload
463
496
  }: {
464
497
  headers?: HttpHeaders;
465
498
  url: string;
466
499
  maxRedirects?: number;
467
500
  cacheTTL?: number;
468
- context?: unknown;
501
+ context?: RequestContext;
502
+ traceId?: string;
469
503
  payload?: P;
470
504
  }): Promise<HttpResponse<T>>;
471
505
  }
472
506
  //#endregion
473
507
  //#region src/httpClient/httpClientManager.d.ts
474
- declare const buildHttpClientInstance: () => IHttpClient;
508
+ declare const buildHttpClientInstance: <TError extends Error = Error>(redisClientConfig: RedisClientConfig, logger?: ILogger, errorMappingFn?: ErrorMappingFn<TError>) => IHttpClient;
475
509
  declare class HttpClientManager {
476
510
  private static httpClientInstance;
477
- static getInstance({
478
- getHttpClient
479
- }?: {
480
- getHttpClient?: typeof buildHttpClientInstance;
511
+ static getInstance<TError extends Error = Error>({
512
+ getHttpClient,
513
+ redisClientConfig,
514
+ logger,
515
+ errorMappingFn
516
+ }: {
517
+ getHttpClient: typeof buildHttpClientInstance;
518
+ redisClientConfig: RedisClientConfig;
519
+ logger?: ILogger;
520
+ errorMappingFn?: ErrorMappingFn<TError>;
481
521
  }): Promise<IHttpClient>;
482
522
  static resetInstance(): void;
483
523
  }
@@ -539,7 +579,7 @@ type HttpTransportInstanceConfig = {
539
579
  interceptors?: InterceptorConfigs;
540
580
  instanceConfig?: CreateAxiosDefaults;
541
581
  httpAgentConfig?: AgentOptions;
542
- logger: ILogger;
582
+ logger?: ILogger;
543
583
  context?: RequestContext;
544
584
  };
545
585
  //#endregion
@@ -708,13 +748,10 @@ declare class RequestClientFactory {
708
748
  static build(type?: RequestClientType): IRequestClient;
709
749
  }
710
750
  //#endregion
711
- //#region src/redisClient/types.d.ts
712
- type GetRedisClient = typeof buildRedisClientInstance;
713
- //#endregion
714
751
  //#region src/subscriptionManager/types.d.ts
715
752
  type SubscriptionManagerOptions = {
716
753
  config?: RedisClientConfig;
717
- getCacheClient?: GetRedisClient;
754
+ getCacheClient?: typeof buildRedisClientInstance;
718
755
  logger?: ILogger;
719
756
  instantiator?: string;
720
757
  subscriptionTTL?: number;
@@ -750,4 +787,4 @@ type LockEntry = {
750
787
  unlock: Unlock;
751
788
  };
752
789
  //#endregion
753
- export { CUSTOM_ERROR_CONFIG_SCHEMA, ConcurrencyManager, CustomErrorConfig, EventClient, HttpClient, HttpClientManager, HttpErrorMessages, HttpHeaders, HttpMethod, HttpMethods, HttpParameters, HttpQueryParams, HttpResponse, HttpResponseError, HttpTransportFactory, ICacheClient, IHttpClient, InstanceManager, Lock, LockEntry, LockManager, MemoryStore, MemoryStoreConfig, PruneCount, PubSubListener, QueueManager, RateLimitManager, RedisClient, RequestClientFactory, RequestParameter, RequestParameterLocations, ScriptManager, SubscriptionManager, Unlock, createAuthorizationHeaders, getTransportInstance, isFailedStatusCode, isInfoStatusCode, isSuccessStatusCode, parseRequestParameters };
790
+ export { CUSTOM_ERROR_CONFIG_SCHEMA, ConcurrencyManager, CustomErrorConfig, ErrorMappingFn, EventClient, HttpClient, HttpClientManager, HttpErrorMessages, HttpHeaders, HttpMethod, HttpMethods, HttpParameters, HttpQueryParams, HttpResponse, HttpResponseError, HttpTransportFactory, ICacheClient, IHttpClient, InstanceManager, Lock, LockEntry, LockManager, MemoryStore, MemoryStoreConfig, PruneCount, PubSubListener, QueueManager, RateLimitManager, RedisClient, RedisClientConfig, RedisClientType, RequestClientFactory, RequestContext, RequestParameter, RequestParameterLocations, ScriptManager, SubscriptionManager, Unlock, buildHttpClientInstance, createAuthorizationHeaders, getTransportInstance, isFailedStatusCode, isInfoStatusCode, isSuccessStatusCode, parseRequestParameters };
package/dist/index.d.ts CHANGED
@@ -3,7 +3,8 @@ import * as redis from "redis";
3
3
  import { AxiosInstance, AxiosInterceptorOptions, AxiosResponse, CreateAxiosDefaults, InternalAxiosRequestConfig } from "axios";
4
4
  import { z } from "zod/v4";
5
5
  import https from "https";
6
- import { AgentOptions } from "node:http";
6
+ import http, { AgentOptions } from "node:http";
7
+ import https$1 from "node:https";
7
8
 
8
9
  //#region src/authorization/types.d.ts
9
10
  type BasicAuthorizationParams = {
@@ -69,7 +70,7 @@ interface ICacheClient<ClientType = unknown> {
69
70
  }
70
71
  type PubSubListener<ReturnsBuffer extends boolean = false> = <T extends (ReturnsBuffer extends true ? Buffer : string)>(message: T, channel: T) => unknown;
71
72
  //#endregion
72
- //#region src/redisClient/index.d.ts
73
+ //#region src/redisClient/types.d.ts
73
74
  type RedisClientType = redis.RedisClientType;
74
75
  interface RedisClientConfig {
75
76
  getRedisClient?: typeof redis.createClient;
@@ -79,6 +80,9 @@ interface RedisClientConfig {
79
80
  reconnect?: boolean;
80
81
  database?: number;
81
82
  }
83
+ type RedisClientBuilder = (config: RedisClientConfig, logger?: ILogger) => Promise<ICacheClient<RedisClientType> | undefined>;
84
+ //#endregion
85
+ //#region src/redisClient/index.d.ts
82
86
  declare const buildRedisClientInstance: (config: RedisClientConfig, logger?: ILogger) => Promise<ICacheClient<RedisClientType> | undefined>;
83
87
  declare class RedisClient implements ICacheClient<RedisClientType> {
84
88
  #private;
@@ -335,6 +339,16 @@ type RequestContext = {
335
339
  accountSettings?: AccountSettings;
336
340
  behaviours?: HttpClientBehaviour[];
337
341
  };
342
+ type ErrorMappingFn<TError extends Error = Error> = (error: Error) => TError | undefined;
343
+ type TransportFactory = ({
344
+ logger,
345
+ redisClientConfig,
346
+ context
347
+ }: {
348
+ logger?: ILogger;
349
+ redisClientConfig?: RedisClientConfig;
350
+ context?: RequestContext;
351
+ }) => Promise<AxiosInstance>;
338
352
  //#endregion
339
353
  //#region src/errors/httpResponseError.d.ts
340
354
  declare class HttpResponseError extends Error {
@@ -405,53 +419,71 @@ declare class EventClient<T> {
405
419
  }
406
420
  //#endregion
407
421
  //#region src/getTransportInstance/index.d.ts
408
- declare const getTransportInstance: (logger: ILogger, context?: RequestContext) => Promise<AxiosInstance>;
422
+ declare const getTransportInstance: ({
423
+ logger,
424
+ redisClientConfig,
425
+ context
426
+ }?: {
427
+ logger?: ILogger;
428
+ redisClientConfig?: RedisClientConfig;
429
+ context?: RequestContext;
430
+ }) => Promise<AxiosInstance>;
409
431
  //#endregion
410
432
  //#region src/httpClient/httpClient.d.ts
411
- declare class HttpClient implements IHttpClient {
433
+ declare class HttpClient<TError extends Error = Error> implements IHttpClient {
412
434
  #private;
413
435
  constructor({
414
- transportInstance
436
+ transportFactory,
437
+ getRedisClient,
438
+ logger,
439
+ redisClientConfig,
440
+ errorMappingFn
415
441
  }?: {
416
- transportInstance?: AxiosInstance;
442
+ transportFactory?: TransportFactory;
443
+ getRedisClient?: RedisClientBuilder;
444
+ logger?: ILogger;
445
+ redisClientConfig?: RedisClientConfig;
446
+ errorMappingFn?: ErrorMappingFn<TError>;
417
447
  });
418
448
  request<P, T>({
419
449
  headers,
420
450
  url,
421
451
  method,
422
- queryParams,
423
452
  maxRedirects,
424
453
  responseType,
425
454
  cacheTTL,
426
455
  context,
456
+ traceId,
427
457
  payload,
428
- httpsAgent
458
+ httpsAgent,
459
+ httpAgent
429
460
  }: {
430
461
  headers?: HttpHeaders;
431
462
  url: string;
432
463
  method?: HttpMethod;
433
- queryParams?: HttpQueryParams;
434
464
  maxRedirects?: number;
435
465
  responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text';
436
466
  cacheTTL?: number;
437
- context?: unknown;
467
+ context?: RequestContext;
468
+ traceId?: string;
438
469
  payload?: P;
439
- httpsAgent?: https.Agent;
470
+ httpsAgent?: https$1.Agent;
471
+ httpAgent?: http.Agent;
440
472
  }): Promise<HttpResponse<T>>;
441
473
  get<T>({
442
474
  headers,
443
475
  url,
444
- queryParams,
445
476
  maxRedirects,
446
477
  cacheTTL,
447
- context
478
+ context,
479
+ traceId
448
480
  }: {
449
481
  headers?: HttpHeaders;
450
482
  url: string;
451
- queryParams?: HttpQueryParams;
452
483
  maxRedirects?: number;
453
484
  cacheTTL?: number;
454
- context?: unknown;
485
+ context?: RequestContext;
486
+ traceId?: string;
455
487
  }): Promise<HttpResponse<T>>;
456
488
  post<P, T>({
457
489
  headers,
@@ -459,25 +491,33 @@ declare class HttpClient implements IHttpClient {
459
491
  maxRedirects,
460
492
  cacheTTL,
461
493
  context,
494
+ traceId,
462
495
  payload
463
496
  }: {
464
497
  headers?: HttpHeaders;
465
498
  url: string;
466
499
  maxRedirects?: number;
467
500
  cacheTTL?: number;
468
- context?: unknown;
501
+ context?: RequestContext;
502
+ traceId?: string;
469
503
  payload?: P;
470
504
  }): Promise<HttpResponse<T>>;
471
505
  }
472
506
  //#endregion
473
507
  //#region src/httpClient/httpClientManager.d.ts
474
- declare const buildHttpClientInstance: () => IHttpClient;
508
+ declare const buildHttpClientInstance: <TError extends Error = Error>(redisClientConfig: RedisClientConfig, logger?: ILogger, errorMappingFn?: ErrorMappingFn<TError>) => IHttpClient;
475
509
  declare class HttpClientManager {
476
510
  private static httpClientInstance;
477
- static getInstance({
478
- getHttpClient
479
- }?: {
480
- getHttpClient?: typeof buildHttpClientInstance;
511
+ static getInstance<TError extends Error = Error>({
512
+ getHttpClient,
513
+ redisClientConfig,
514
+ logger,
515
+ errorMappingFn
516
+ }: {
517
+ getHttpClient: typeof buildHttpClientInstance;
518
+ redisClientConfig: RedisClientConfig;
519
+ logger?: ILogger;
520
+ errorMappingFn?: ErrorMappingFn<TError>;
481
521
  }): Promise<IHttpClient>;
482
522
  static resetInstance(): void;
483
523
  }
@@ -539,7 +579,7 @@ type HttpTransportInstanceConfig = {
539
579
  interceptors?: InterceptorConfigs;
540
580
  instanceConfig?: CreateAxiosDefaults;
541
581
  httpAgentConfig?: AgentOptions;
542
- logger: ILogger;
582
+ logger?: ILogger;
543
583
  context?: RequestContext;
544
584
  };
545
585
  //#endregion
@@ -708,13 +748,10 @@ declare class RequestClientFactory {
708
748
  static build(type?: RequestClientType): IRequestClient;
709
749
  }
710
750
  //#endregion
711
- //#region src/redisClient/types.d.ts
712
- type GetRedisClient = typeof buildRedisClientInstance;
713
- //#endregion
714
751
  //#region src/subscriptionManager/types.d.ts
715
752
  type SubscriptionManagerOptions = {
716
753
  config?: RedisClientConfig;
717
- getCacheClient?: GetRedisClient;
754
+ getCacheClient?: typeof buildRedisClientInstance;
718
755
  logger?: ILogger;
719
756
  instantiator?: string;
720
757
  subscriptionTTL?: number;
@@ -750,4 +787,4 @@ type LockEntry = {
750
787
  unlock: Unlock;
751
788
  };
752
789
  //#endregion
753
- export { CUSTOM_ERROR_CONFIG_SCHEMA, ConcurrencyManager, CustomErrorConfig, EventClient, HttpClient, HttpClientManager, HttpErrorMessages, HttpHeaders, HttpMethod, HttpMethods, HttpParameters, HttpQueryParams, HttpResponse, HttpResponseError, HttpTransportFactory, ICacheClient, IHttpClient, InstanceManager, Lock, LockEntry, LockManager, MemoryStore, MemoryStoreConfig, PruneCount, PubSubListener, QueueManager, RateLimitManager, RedisClient, RequestClientFactory, RequestParameter, RequestParameterLocations, ScriptManager, SubscriptionManager, Unlock, createAuthorizationHeaders, getTransportInstance, isFailedStatusCode, isInfoStatusCode, isSuccessStatusCode, parseRequestParameters };
790
+ export { CUSTOM_ERROR_CONFIG_SCHEMA, ConcurrencyManager, CustomErrorConfig, ErrorMappingFn, EventClient, HttpClient, HttpClientManager, HttpErrorMessages, HttpHeaders, HttpMethod, HttpMethods, HttpParameters, HttpQueryParams, HttpResponse, HttpResponseError, HttpTransportFactory, ICacheClient, IHttpClient, InstanceManager, Lock, LockEntry, LockManager, MemoryStore, MemoryStoreConfig, PruneCount, PubSubListener, QueueManager, RateLimitManager, RedisClient, RedisClientConfig, RedisClientType, RequestClientFactory, RequestContext, RequestParameter, RequestParameterLocations, ScriptManager, SubscriptionManager, Unlock, buildHttpClientInstance, createAuthorizationHeaders, getTransportInstance, isFailedStatusCode, isInfoStatusCode, isSuccessStatusCode, parseRequestParameters };