@rudderstack/integrations-lib 0.2.48 → 0.2.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/build/cluster/manager.d.ts.map +1 -1
  2. package/build/cluster/manager.js +9 -5
  3. package/build/index.d.ts +1 -0
  4. package/build/index.d.ts.map +1 -1
  5. package/build/index.js +2 -1
  6. package/build/mock_utils/axios_client_mock_util.d.ts +5 -0
  7. package/build/mock_utils/axios_client_mock_util.d.ts.map +1 -0
  8. package/build/mock_utils/axios_client_mock_util.js +13 -0
  9. package/build/mock_utils/index.d.ts +2 -0
  10. package/build/mock_utils/index.d.ts.map +1 -0
  11. package/build/mock_utils/index.js +18 -0
  12. package/build/network/clients/axios_client.d.ts +6 -5
  13. package/build/network/clients/axios_client.d.ts.map +1 -1
  14. package/build/network/clients/axios_client.js +66 -40
  15. package/build/network/clients/types.d.ts +65 -5
  16. package/build/network/clients/types.d.ts.map +1 -1
  17. package/build/network/clients/types.js +1 -1
  18. package/build/network/factory.d.ts +12 -2
  19. package/build/network/factory.d.ts.map +1 -1
  20. package/build/network/factory.js +24 -1
  21. package/build/sdks/common/base-sdk.d.ts +64 -0
  22. package/build/sdks/common/base-sdk.d.ts.map +1 -0
  23. package/build/sdks/common/base-sdk.js +182 -0
  24. package/build/sdks/common/index.d.ts +3 -0
  25. package/build/sdks/common/index.d.ts.map +1 -0
  26. package/build/sdks/common/index.js +7 -0
  27. package/build/sdks/common/types.d.ts +13 -0
  28. package/build/sdks/common/types.d.ts.map +1 -0
  29. package/build/sdks/common/types.js +3 -0
  30. package/build/sdks/criteoAudience/criteoAudience.d.ts +11 -39
  31. package/build/sdks/criteoAudience/criteoAudience.d.ts.map +1 -1
  32. package/build/sdks/criteoAudience/criteoAudience.js +33 -69
  33. package/build/sdks/criteoAudience/types.d.ts +3 -0
  34. package/build/sdks/criteoAudience/types.d.ts.map +1 -1
  35. package/build/sdks/criteoAudience/types.js +1 -1
  36. package/build/sdks/customerio_audience/index.d.ts +11 -15
  37. package/build/sdks/customerio_audience/index.d.ts.map +1 -1
  38. package/build/sdks/customerio_audience/index.js +23 -34
  39. package/build/sdks/customerio_audience/type.d.ts +3 -0
  40. package/build/sdks/customerio_audience/type.d.ts.map +1 -1
  41. package/build/sdks/customerio_audience/type.js +1 -1
  42. package/build/sdks/googleAdsRestAPI/googleAds.d.ts +16 -17
  43. package/build/sdks/googleAdsRestAPI/googleAds.d.ts.map +1 -1
  44. package/build/sdks/googleAdsRestAPI/googleAds.js +44 -37
  45. package/build/sdks/googleAdsRestAPI/types.d.ts +3 -0
  46. package/build/sdks/googleAdsRestAPI/types.d.ts.map +1 -1
  47. package/build/sdks/googleAdsRestAPI/types.js +1 -1
  48. package/build/sdks/index.d.ts +1 -0
  49. package/build/sdks/index.d.ts.map +1 -1
  50. package/build/sdks/index.js +5 -1
  51. package/build/sdks/sfmc/index.d.ts +1 -1
  52. package/build/sdks/sfmc/index.d.ts.map +1 -1
  53. package/build/sdks/sfmc/index.js +4 -3
  54. package/build/sdks/zoho/types.d.ts +3 -0
  55. package/build/sdks/zoho/types.d.ts.map +1 -1
  56. package/build/sdks/zoho/types.js +1 -1
  57. package/build/sdks/zoho/zoho.d.ts +13 -17
  58. package/build/sdks/zoho/zoho.d.ts.map +1 -1
  59. package/build/sdks/zoho/zoho.js +44 -51
  60. package/mock/axios_client_mock_util.d.ts +2 -0
  61. package/mock/axios_client_mock_util.d.ts.map +1 -1
  62. package/mock/axios_client_mock_util.js +6 -3
  63. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { AxiosRequestConfig, AxiosResponseHeaders, RawAxiosResponseHeaders } from 'axios';
2
2
  type ResponseHeaders = RawAxiosResponseHeaders | AxiosResponseHeaders | undefined;
3
- export type ResponseParser<T> = (responseData: any) => T;
3
+ export type ResponseParser<T> = (responseData: unknown) => T;
4
4
  export type SuccessfulApiResponse<T> = {
5
5
  type: 'success';
6
6
  statusCode: number;
@@ -16,16 +16,76 @@ export type ApplicationErrorApiResponse = {
16
16
  type: 'application-error';
17
17
  statusCode: number;
18
18
  message: string;
19
- responseBody: any;
19
+ responseBody: unknown;
20
20
  headers: ResponseHeaders;
21
21
  };
22
22
  export type ApiResponse<T> = SuccessfulApiResponse<T> | ClientErrorApiResponse | ApplicationErrorApiResponse;
23
23
  export type RequestConfig = AxiosRequestConfig;
24
+ /**
25
+ * HTTP Logger interface compatible with transformer's logger pattern
26
+ * Provides request/response logging capabilities for HTTP wrapper
27
+ */
28
+ export interface IHttpLogger {
29
+ requestLog(message: string, data?: unknown): void;
30
+ responseLog(message: string, data?: unknown): void;
31
+ error?(message: string, data?: unknown): void;
32
+ warn?(message: string, data?: unknown): void;
33
+ info?(message: string, data?: unknown): void;
34
+ debug?(message: string, data?: unknown): void;
35
+ }
36
+ /**
37
+ * HTTP Stats Client interface compatible with transformer's stats pattern
38
+ * Provides metrics collection capabilities for HTTP wrapper
39
+ */
40
+ export interface IHttpStatsClient {
41
+ timing(name: string, value: number, tags?: Record<string, unknown>): void;
42
+ increment(name: string, value?: number, tags?: Record<string, unknown>): void;
43
+ counter(name: string, value: number, tags?: Record<string, unknown>): void;
44
+ timingSummary?(name: string, value: number, tags?: Record<string, unknown>): void;
45
+ gauge?(name: string, value: number, tags?: Record<string, unknown>): void;
46
+ histogram?(name: string, value: number, tags?: Record<string, unknown>): void;
47
+ }
48
+ /**
49
+ * StatTags interface for metadata and metrics tagging
50
+ * Compatible with transformer's statTags structure
51
+ */
52
+ export interface StatTags {
53
+ [key: string]: unknown;
54
+ destType?: string;
55
+ feature?: string;
56
+ endpointPath?: string;
57
+ requestMethod?: string;
58
+ module?: string;
59
+ metadata?: unknown;
60
+ }
61
+ /**
62
+ * HTTP Client Configuration interface with optional dependencies
63
+ * Enables flexible configuration for different usage scenarios
64
+ */
65
+ export interface HttpClientConfig {
66
+ logger?: IHttpLogger;
67
+ statsClient?: IHttpStatsClient;
68
+ defaultTimeout?: number;
69
+ defaultStatTags?: Record<string, unknown>;
70
+ }
71
+ /**
72
+ * AxiosClient Observability Configuration interface for optional metrics and logging
73
+ */
74
+ export interface AxiosClientObservabilityConfig {
75
+ statsClient?: IHttpStatsClient;
76
+ logger?: IHttpLogger;
77
+ defaultStatTags?: Record<string, unknown>;
78
+ }
79
+ /**
80
+ * @deprecated Use AxiosClientObservabilityConfig instead
81
+ */
82
+ export interface AxiosClientConfig extends AxiosClientObservabilityConfig {
83
+ }
24
84
  export interface HttpClient {
25
- post: <T>(url: string, data: any, options?: RequestConfig, responseParser?: ResponseParser<T>) => Promise<ApiResponse<T>>;
85
+ post: <T>(url: string, data: unknown, options?: RequestConfig, responseParser?: ResponseParser<T>) => Promise<ApiResponse<T>>;
26
86
  get: <T>(url: string, options?: RequestConfig, responseParser?: ResponseParser<T>) => Promise<ApiResponse<T>>;
27
- put: <T>(url: string, data: any, options?: RequestConfig, responseParser?: ResponseParser<T>) => Promise<ApiResponse<T>>;
28
- patch: <T>(url: string, data: any, options?: RequestConfig, responseParser?: ResponseParser<T>) => Promise<ApiResponse<T>>;
87
+ put: <T>(url: string, data: unknown, options?: RequestConfig, responseParser?: ResponseParser<T>) => Promise<ApiResponse<T>>;
88
+ patch: <T>(url: string, data: unknown, options?: RequestConfig, responseParser?: ResponseParser<T>) => Promise<ApiResponse<T>>;
29
89
  delete: <T>(url: string, options?: RequestConfig, responseParser?: ResponseParser<T>) => Promise<ApiResponse<T>>;
30
90
  }
31
91
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/network/clients/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AAE1F,KAAK,eAAe,GAAG,uBAAuB,GAAG,oBAAoB,GAAG,SAAS,CAAC;AAClF,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK,CAAC,CAAC;AACzD,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACrC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,CAAC,CAAC;IAChB,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AACF,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB,qBAAqB,CAAC,CAAC,CAAC,GACxB,sBAAsB,GACtB,2BAA2B,CAAC;AAGhC,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAE/C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,CAAC,CAAC,EACN,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,KAC/B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,GAAG,EAAE,CAAC,CAAC,EACL,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,KAC/B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7B,GAAG,EAAE,CAAC,CAAC,EACL,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,KAC/B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7B,KAAK,EAAE,CAAC,CAAC,EACP,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,KAC/B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7B,MAAM,EAAE,CAAC,CAAC,EACR,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,KAC/B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/network/clients/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmV0d29yay9jbGllbnRzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBeGlvc1JlcXVlc3RDb25maWcsIEF4aW9zUmVzcG9uc2VIZWFkZXJzLCBSYXdBeGlvc1Jlc3BvbnNlSGVhZGVycyB9IGZyb20gJ2F4aW9zJztcblxudHlwZSBSZXNwb25zZUhlYWRlcnMgPSBSYXdBeGlvc1Jlc3BvbnNlSGVhZGVycyB8IEF4aW9zUmVzcG9uc2VIZWFkZXJzIHwgdW5kZWZpbmVkO1xuZXhwb3J0IHR5cGUgUmVzcG9uc2VQYXJzZXI8VD4gPSAocmVzcG9uc2VEYXRhOiBhbnkpID0+IFQ7XG5leHBvcnQgdHlwZSBTdWNjZXNzZnVsQXBpUmVzcG9uc2U8VD4gPSB7XG4gIHR5cGU6ICdzdWNjZXNzJztcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICByZXNwb25zZUJvZHk6IFQ7XG4gIGhlYWRlcnM6IFJlc3BvbnNlSGVhZGVycztcbn07XG5leHBvcnQgdHlwZSBDbGllbnRFcnJvckFwaVJlc3BvbnNlID0ge1xuICB0eXBlOiAnY2xpZW50LWVycm9yJztcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgQXBwbGljYXRpb25FcnJvckFwaVJlc3BvbnNlID0ge1xuICB0eXBlOiAnYXBwbGljYXRpb24tZXJyb3InO1xuICBzdGF0dXNDb2RlOiBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgcmVzcG9uc2VCb2R5OiBhbnk7XG4gIGhlYWRlcnM6IFJlc3BvbnNlSGVhZGVycztcbn07XG5leHBvcnQgdHlwZSBBcGlSZXNwb25zZTxUPiA9XG4gIHwgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPFQ+XG4gIHwgQ2xpZW50RXJyb3JBcGlSZXNwb25zZVxuICB8IEFwcGxpY2F0aW9uRXJyb3JBcGlSZXNwb25zZTtcblxuLy8gT3RoZXIgY2xpZW50IFJlcXVzZXQgY29uZmlnIHR5cGVzIHRvIGJlIGFkZGVkIGhlcmVcbmV4cG9ydCB0eXBlIFJlcXVlc3RDb25maWcgPSBBeGlvc1JlcXVlc3RDb25maWc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudCB7XG4gIHBvc3Q6IDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhOiBhbnksXG4gICAgb3B0aW9ucz86IFJlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKSA9PiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PjtcbiAgZ2V0OiA8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IFJlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKSA9PiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PjtcblxuICBwdXQ6IDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhOiBhbnksXG4gICAgb3B0aW9ucz86IFJlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKSA9PiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PjtcblxuICBwYXRjaDogPFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGRhdGE6IGFueSxcbiAgICBvcHRpb25zPzogUmVxdWVzdENvbmZpZyxcbiAgICByZXNwb25zZVBhcnNlcj86IFJlc3BvbnNlUGFyc2VyPFQ+LFxuICApID0+IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+O1xuXG4gIGRlbGV0ZTogPFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICkgPT4gUHJvbWlzZTxBcGlSZXNwb25zZTxUPj47XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmV0d29yay9jbGllbnRzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBeGlvc1JlcXVlc3RDb25maWcsIEF4aW9zUmVzcG9uc2VIZWFkZXJzLCBSYXdBeGlvc1Jlc3BvbnNlSGVhZGVycyB9IGZyb20gJ2F4aW9zJztcblxudHlwZSBSZXNwb25zZUhlYWRlcnMgPSBSYXdBeGlvc1Jlc3BvbnNlSGVhZGVycyB8IEF4aW9zUmVzcG9uc2VIZWFkZXJzIHwgdW5kZWZpbmVkO1xuZXhwb3J0IHR5cGUgUmVzcG9uc2VQYXJzZXI8VD4gPSAocmVzcG9uc2VEYXRhOiB1bmtub3duKSA9PiBUO1xuZXhwb3J0IHR5cGUgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPFQ+ID0ge1xuICB0eXBlOiAnc3VjY2Vzcyc7XG4gIHN0YXR1c0NvZGU6IG51bWJlcjtcbiAgcmVzcG9uc2VCb2R5OiBUO1xuICBoZWFkZXJzOiBSZXNwb25zZUhlYWRlcnM7XG59O1xuZXhwb3J0IHR5cGUgQ2xpZW50RXJyb3JBcGlSZXNwb25zZSA9IHtcbiAgdHlwZTogJ2NsaWVudC1lcnJvcic7XG4gIHN0YXR1c0NvZGU6IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEFwcGxpY2F0aW9uRXJyb3JBcGlSZXNwb25zZSA9IHtcbiAgdHlwZTogJ2FwcGxpY2F0aW9uLWVycm9yJztcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHJlc3BvbnNlQm9keTogdW5rbm93bjtcbiAgaGVhZGVyczogUmVzcG9uc2VIZWFkZXJzO1xufTtcbmV4cG9ydCB0eXBlIEFwaVJlc3BvbnNlPFQ+ID1cbiAgfCBTdWNjZXNzZnVsQXBpUmVzcG9uc2U8VD5cbiAgfCBDbGllbnRFcnJvckFwaVJlc3BvbnNlXG4gIHwgQXBwbGljYXRpb25FcnJvckFwaVJlc3BvbnNlO1xuXG4vLyBPdGhlciBjbGllbnQgUmVxdXNldCBjb25maWcgdHlwZXMgdG8gYmUgYWRkZWQgaGVyZVxuZXhwb3J0IHR5cGUgUmVxdWVzdENvbmZpZyA9IEF4aW9zUmVxdWVzdENvbmZpZztcblxuLyoqXG4gKiBIVFRQIExvZ2dlciBpbnRlcmZhY2UgY29tcGF0aWJsZSB3aXRoIHRyYW5zZm9ybWVyJ3MgbG9nZ2VyIHBhdHRlcm5cbiAqIFByb3ZpZGVzIHJlcXVlc3QvcmVzcG9uc2UgbG9nZ2luZyBjYXBhYmlsaXRpZXMgZm9yIEhUVFAgd3JhcHBlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIElIdHRwTG9nZ2VyIHtcbiAgLy8gUmVxdWlyZWQgbWV0aG9kcyBmb3IgSFRUUCByZXF1ZXN0L3Jlc3BvbnNlIGxvZ2dpbmdcbiAgcmVxdWVzdExvZyhtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKTogdm9pZDtcbiAgcmVzcG9uc2VMb2cobWVzc2FnZTogc3RyaW5nLCBkYXRhPzogdW5rbm93bik6IHZvaWQ7XG5cbiAgLy8gT3B0aW9uYWwgc3RhbmRhcmQgbG9nZ2luZyBtZXRob2RzXG4gIGVycm9yPyhtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKTogdm9pZDtcbiAgd2Fybj8obWVzc2FnZTogc3RyaW5nLCBkYXRhPzogdW5rbm93bik6IHZvaWQ7XG4gIGluZm8/KG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IHVua25vd24pOiB2b2lkO1xuICBkZWJ1Zz8obWVzc2FnZTogc3RyaW5nLCBkYXRhPzogdW5rbm93bik6IHZvaWQ7XG59XG5cbi8qKlxuICogSFRUUCBTdGF0cyBDbGllbnQgaW50ZXJmYWNlIGNvbXBhdGlibGUgd2l0aCB0cmFuc2Zvcm1lcidzIHN0YXRzIHBhdHRlcm5cbiAqIFByb3ZpZGVzIG1ldHJpY3MgY29sbGVjdGlvbiBjYXBhYmlsaXRpZXMgZm9yIEhUVFAgd3JhcHBlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIElIdHRwU3RhdHNDbGllbnQge1xuICAvLyBSZXF1aXJlZCBtZXRob2RzIGZvciBIVFRQIG1ldHJpY3NcbiAgdGltaW5nKG5hbWU6IHN0cmluZywgdmFsdWU6IG51bWJlciwgdGFncz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZDtcbiAgaW5jcmVtZW50KG5hbWU6IHN0cmluZywgdmFsdWU/OiBudW1iZXIsIHRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQ7XG4gIGNvdW50ZXIobmFtZTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCB0YWdzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkO1xuXG4gIC8vIE9wdGlvbmFsIGFkdmFuY2VkIG1ldHJpY3MgbWV0aG9kc1xuICB0aW1pbmdTdW1tYXJ5PyhuYW1lOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIsIHRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQ7XG4gIGdhdWdlPyhuYW1lOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIsIHRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQ7XG4gIGhpc3RvZ3JhbT8obmFtZTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCB0YWdzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkO1xufVxuXG4vKipcbiAqIFN0YXRUYWdzIGludGVyZmFjZSBmb3IgbWV0YWRhdGEgYW5kIG1ldHJpY3MgdGFnZ2luZ1xuICogQ29tcGF0aWJsZSB3aXRoIHRyYW5zZm9ybWVyJ3Mgc3RhdFRhZ3Mgc3RydWN0dXJlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdFRhZ3Mge1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICBkZXN0VHlwZT86IHN0cmluZztcbiAgZmVhdHVyZT86IHN0cmluZztcbiAgZW5kcG9pbnRQYXRoPzogc3RyaW5nO1xuICByZXF1ZXN0TWV0aG9kPzogc3RyaW5nO1xuICBtb2R1bGU/OiBzdHJpbmc7XG4gIG1ldGFkYXRhPzogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBIVFRQIENsaWVudCBDb25maWd1cmF0aW9uIGludGVyZmFjZSB3aXRoIG9wdGlvbmFsIGRlcGVuZGVuY2llc1xuICogRW5hYmxlcyBmbGV4aWJsZSBjb25maWd1cmF0aW9uIGZvciBkaWZmZXJlbnQgdXNhZ2Ugc2NlbmFyaW9zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudENvbmZpZyB7XG4gIC8vIE9wdGlvbmFsIGRlcGVuZGVuY2llcyAtIGJhY2t3YXJkIGNvbXBhdGlibGVcbiAgbG9nZ2VyPzogSUh0dHBMb2dnZXI7XG4gIHN0YXRzQ2xpZW50PzogSUh0dHBTdGF0c0NsaWVudDtcblxuICAvLyBEZWZhdWx0IHNldHRpbmdzXG4gIGRlZmF1bHRUaW1lb3V0PzogbnVtYmVyO1xuICBkZWZhdWx0U3RhdFRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBBeGlvc0NsaWVudCBPYnNlcnZhYmlsaXR5IENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGZvciBvcHRpb25hbCBtZXRyaWNzIGFuZCBsb2dnaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXhpb3NDbGllbnRPYnNlcnZhYmlsaXR5Q29uZmlnIHtcbiAgLy8gVG8gZW5hYmxlIG1ldHJpY3MsIHByb3ZpZGUgYSBzdGF0c0NsaWVudFxuICBzdGF0c0NsaWVudD86IElIdHRwU3RhdHNDbGllbnQ7XG5cbiAgLy8gVG8gZW5hYmxlIHJlcXVlc3QvcmVzcG9uc2UgbG9nZ2luZywgcHJvdmlkZSBhIGxvZ2dlclxuICBsb2dnZXI/OiBJSHR0cExvZ2dlcjtcbiAgZGVmYXVsdFN0YXRUYWdzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIEF4aW9zQ2xpZW50T2JzZXJ2YWJpbGl0eUNvbmZpZyBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXhpb3NDbGllbnRDb25maWcgZXh0ZW5kcyBBeGlvc0NsaWVudE9ic2VydmFiaWxpdHlDb25maWcge31cblxuZXhwb3J0IGludGVyZmFjZSBIdHRwQ2xpZW50IHtcbiAgcG9zdDogPFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGRhdGE6IHVua25vd24sXG4gICAgb3B0aW9ucz86IFJlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKSA9PiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PjtcbiAgZ2V0OiA8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IFJlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKSA9PiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PjtcblxuICBwdXQ6IDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhOiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICkgPT4gUHJvbWlzZTxBcGlSZXNwb25zZTxUPj47XG5cbiAgcGF0Y2g6IDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhOiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICkgPT4gUHJvbWlzZTxBcGlSZXNwb25zZTxUPj47XG5cbiAgZGVsZXRlOiA8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IFJlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKSA9PiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+Pjtcbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { AxiosRequestConfig } from 'axios';
2
- import { HttpClient } from './clients/types';
3
- export { ApiResponse, ApplicationErrorApiResponse, ClientErrorApiResponse, SuccessfulApiResponse, ResponseParser, } from './clients/types';
2
+ import { HttpClient, IHttpLogger, IHttpStatsClient } from './clients/types';
3
+ export { ApiResponse, ApplicationErrorApiResponse, ClientErrorApiResponse, SuccessfulApiResponse, ResponseParser, IHttpLogger, IHttpStatsClient, } from './clients/types';
4
4
  export declare enum ClientNames {
5
5
  Axios = "axios"
6
6
  }
@@ -26,5 +26,15 @@ export type clientOptions = AxiosRequestConfig;
26
26
  */
27
27
  export declare class HttpClientFactory {
28
28
  static getHttpClient(name: ClientNames, options?: clientOptions): HttpClient;
29
+ /**
30
+ * Create HTTP client with metrics and logging capabilities
31
+ * @param name - Client name (currently only supports Axios)
32
+ * @param logger - Logger instance for request/response logging
33
+ * @param statsClient - Stats client instance for metrics collection
34
+ * @param defaultStatTags - Default stat tags for all requests
35
+ * @param options - Axios configuration options
36
+ * @returns Enhanced HTTP client with logging and metrics
37
+ */
38
+ static getHttpClientWithMetrics(name: ClientNames, logger?: IHttpLogger, statsClient?: IHttpStatsClient, defaultStatTags?: Record<string, unknown>, options?: clientOptions): HttpClient;
29
39
  }
30
40
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/network/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,oBAAY,WAAW;IACrB,KAAK,UAAU;CAGhB;AAGD,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,UAAU;CAY7E"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/network/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EACL,UAAU,EACV,WAAW,EACX,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,oBAAY,WAAW;IACrB,KAAK,UAAU;CAGhB;AAGD,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,UAAU;IAa5E;;;;;;;;OAQG;IACH,MAAM,CAAC,wBAAwB,CAC7B,IAAI,EAAE,WAAW,EACjB,MAAM,CAAC,EAAE,WAAW,EACpB,WAAW,CAAC,EAAE,gBAAgB,EAC9B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,OAAO,CAAC,EAAE,aAAa,GACtB,UAAU;CAcd"}
@@ -41,6 +41,29 @@ class HttpClientFactory {
41
41
  throw new platform_error_1.PlatformError('Invalid client name');
42
42
  }
43
43
  }
44
+ /**
45
+ * Create HTTP client with metrics and logging capabilities
46
+ * @param name - Client name (currently only supports Axios)
47
+ * @param logger - Logger instance for request/response logging
48
+ * @param statsClient - Stats client instance for metrics collection
49
+ * @param defaultStatTags - Default stat tags for all requests
50
+ * @param options - Axios configuration options
51
+ * @returns Enhanced HTTP client with logging and metrics
52
+ */
53
+ static getHttpClientWithMetrics(name, logger, statsClient, defaultStatTags, options) {
54
+ switch (name) {
55
+ case ClientNames.Axios: {
56
+ const observabilityConfig = {
57
+ logger,
58
+ statsClient,
59
+ defaultStatTags: defaultStatTags || {},
60
+ };
61
+ return new axios_client_1.AxiosClient(options, observabilityConfig);
62
+ }
63
+ default:
64
+ throw new platform_error_1.PlatformError('Invalid client name');
65
+ }
66
+ }
44
67
  }
45
68
  exports.HttpClientFactory = HttpClientFactory;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9uZXR3b3JrL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkRBQXlEO0FBRXpELHlEQUFxRDtBQVVyRCxJQUFZLFdBSVg7QUFKRCxXQUFZLFdBQVc7SUFDckIsOEJBQWUsQ0FBQTtJQUNmLG1CQUFtQjtJQUNuQixjQUFjO0FBQ2hCLENBQUMsRUFKVyxXQUFXLDJCQUFYLFdBQVcsUUFJdEI7QUFLRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBYSxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFpQixFQUFFLE9BQXVCO1FBQzdELFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLFdBQVcsQ0FBQyxLQUFLO2dCQUNwQixPQUFPLElBQUksMEJBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQywwQkFBMEI7WUFDMUIscURBQXFEO1lBQ3JELHdCQUF3QjtZQUN4QixpREFBaUQ7WUFDakQ7Z0JBQ0UsTUFBTSxJQUFJLDhCQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBYkQsOENBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBeGlvc1JlcXVlc3RDb25maWcgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBQbGF0Zm9ybUVycm9yIH0gZnJvbSAnLi4vZXJyb3JzL3BsYXRmb3JtX2Vycm9yJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICcuL2NsaWVudHMvdHlwZXMnO1xuaW1wb3J0IHsgQXhpb3NDbGllbnQgfSBmcm9tICcuL2NsaWVudHMvYXhpb3NfY2xpZW50JztcblxuZXhwb3J0IHtcbiAgQXBpUmVzcG9uc2UsXG4gIEFwcGxpY2F0aW9uRXJyb3JBcGlSZXNwb25zZSxcbiAgQ2xpZW50RXJyb3JBcGlSZXNwb25zZSxcbiAgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlLFxuICBSZXNwb25zZVBhcnNlcixcbn0gZnJvbSAnLi9jbGllbnRzL3R5cGVzJztcblxuZXhwb3J0IGVudW0gQ2xpZW50TmFtZXMge1xuICBBeGlvcyA9ICdheGlvcycsXG4gIC8vIEZldGNoID0gJ2ZldGNoJyxcbiAgLy8gWGhyID0gJ3hocidcbn1cblxuLy8gQXMgd2UgYWRkIG1vcmUgY2xpZW50cywgd2Ugd2lsbCB1bmlvbiB0aGVtIGhlcmVcbmV4cG9ydCB0eXBlIGNsaWVudE9wdGlvbnMgPSBBeGlvc1JlcXVlc3RDb25maWc7XG5cbi8qKlxuICogQGNsYXNzIEh0dHBDbGllbnRGYWN0b3J5XG4gKiBAY2xhc3NkZXNjXG4gKiBBIGZhY3RvcnkgY2xhc3MgdG8gZ2VuZXJhdGUgaHR0cCBjbGllbnRzXG4gKiBAZXhhbXBsZVxuICogY29uc3QgaHR0cENsaWVudCA9IEh0dHBDbGllbnRGYWN0b3J5LmdldEh0dHBDbGllbnQoJ2F4aW9zJyk7XG4gKiBjb25zdCByZXNwb25zZSA9IGF3YWl0IGh0dHBDbGllbnQucG9zdChcImh0dHBzOi8vZXhhbXBsZS5jb21cIiwgeyBmb286IFwiYmFyXCIgfSk7XG4gKiBpZiAocmVzcG9uc2UudHlwZSA9PT0gXCJzdWNjZXNzXCIpIHtcbiAqIGNvbnNvbGUubG9nKHJlc3BvbnNlLnN0YXR1c0NvZGUpO1xuICogY29uc29sZS5sb2cocmVzcG9uc2UucmVzcG9uc2VCb2R5KTtcbiAqIH0gZWxzZSBpZiAocmVzcG9uc2UudHlwZSA9PT0gXCJhcHBsaWNhdGlvbi1lcnJvclwiKSB7XG4gKiBjb25zb2xlLmxvZyhyZXNwb25zZS5zdGF0dXNDb2RlKTtcbiAqIGNvbnNvbGUubG9nKHJlc3BvbnNlLm1lc3NhZ2UpO1xuICogY29uc29sZS5sb2cocmVzcG9uc2UucmVzcG9uc2VCb2R5KTtcbiAqIH0gZWxzZSBpZiAocmVzcG9uc2UudHlwZSA9PT0gXCJjbGllbnQtZXJyb3JcIikge1xuICogY29uc29sZS5sb2cocmVzcG9uc2Uuc3RhdHVzQ29kZSk7XG4gKiBjb25zb2xlLmxvZyhyZXNwb25zZS5tZXNzYWdlKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGNsYXNzIEh0dHBDbGllbnRGYWN0b3J5IHtcbiAgc3RhdGljIGdldEh0dHBDbGllbnQobmFtZTogQ2xpZW50TmFtZXMsIG9wdGlvbnM/OiBjbGllbnRPcHRpb25zKTogSHR0cENsaWVudCB7XG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICBjYXNlIENsaWVudE5hbWVzLkF4aW9zOlxuICAgICAgICByZXR1cm4gbmV3IEF4aW9zQ2xpZW50KG9wdGlvbnMpO1xuICAgICAgLy8gY2FzZSBDbGllbnROYW1lcy5GZXRjaDpcbiAgICAgIC8vICAgICByZXR1cm4gcmVxdWlyZSgnLi9jbGllbnRzL2ZldGNoJykuRmV0Y2hDbGllbnQ7XG4gICAgICAvLyBjYXNlIENsaWVudE5hbWVzLlhocjpcbiAgICAgIC8vICAgICByZXR1cm4gcmVxdWlyZSgnLi9jbGllbnRzL3hocicpLlhockNsaWVudDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBQbGF0Zm9ybUVycm9yKCdJbnZhbGlkIGNsaWVudCBuYW1lJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9uZXR3b3JrL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkRBQXlEO0FBT3pELHlEQUFxRDtBQVlyRCxJQUFZLFdBSVg7QUFKRCxXQUFZLFdBQVc7SUFDckIsOEJBQWUsQ0FBQTtJQUNmLG1CQUFtQjtJQUNuQixjQUFjO0FBQ2hCLENBQUMsRUFKVyxXQUFXLDJCQUFYLFdBQVcsUUFJdEI7QUFLRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBYSxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFpQixFQUFFLE9BQXVCO1FBQzdELFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLFdBQVcsQ0FBQyxLQUFLO2dCQUNwQixPQUFPLElBQUksMEJBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQywwQkFBMEI7WUFDMUIscURBQXFEO1lBQ3JELHdCQUF3QjtZQUN4QixpREFBaUQ7WUFDakQ7Z0JBQ0UsTUFBTSxJQUFJLDhCQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLHdCQUF3QixDQUM3QixJQUFpQixFQUNqQixNQUFvQixFQUNwQixXQUE4QixFQUM5QixlQUF5QyxFQUN6QyxPQUF1QjtRQUV2QixRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsTUFBTSxtQkFBbUIsR0FBbUM7b0JBQzFELE1BQU07b0JBQ04sV0FBVztvQkFDWCxlQUFlLEVBQUUsZUFBZSxJQUFJLEVBQUU7aUJBQ3ZDLENBQUM7Z0JBQ0YsT0FBTyxJQUFJLDBCQUFXLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDLENBQUM7WUFDdkQsQ0FBQztZQUNEO2dCQUNFLE1BQU0sSUFBSSw4QkFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTNDRCw4Q0EyQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBeGlvc1JlcXVlc3RDb25maWcgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBQbGF0Zm9ybUVycm9yIH0gZnJvbSAnLi4vZXJyb3JzL3BsYXRmb3JtX2Vycm9yJztcbmltcG9ydCB7XG4gIEh0dHBDbGllbnQsXG4gIElIdHRwTG9nZ2VyLFxuICBJSHR0cFN0YXRzQ2xpZW50LFxuICBBeGlvc0NsaWVudE9ic2VydmFiaWxpdHlDb25maWcsXG59IGZyb20gJy4vY2xpZW50cy90eXBlcyc7XG5pbXBvcnQgeyBBeGlvc0NsaWVudCB9IGZyb20gJy4vY2xpZW50cy9heGlvc19jbGllbnQnO1xuXG5leHBvcnQge1xuICBBcGlSZXNwb25zZSxcbiAgQXBwbGljYXRpb25FcnJvckFwaVJlc3BvbnNlLFxuICBDbGllbnRFcnJvckFwaVJlc3BvbnNlLFxuICBTdWNjZXNzZnVsQXBpUmVzcG9uc2UsXG4gIFJlc3BvbnNlUGFyc2VyLFxuICBJSHR0cExvZ2dlcixcbiAgSUh0dHBTdGF0c0NsaWVudCxcbn0gZnJvbSAnLi9jbGllbnRzL3R5cGVzJztcblxuZXhwb3J0IGVudW0gQ2xpZW50TmFtZXMge1xuICBBeGlvcyA9ICdheGlvcycsXG4gIC8vIEZldGNoID0gJ2ZldGNoJyxcbiAgLy8gWGhyID0gJ3hocidcbn1cblxuLy8gQXMgd2UgYWRkIG1vcmUgY2xpZW50cywgd2Ugd2lsbCB1bmlvbiB0aGVtIGhlcmVcbmV4cG9ydCB0eXBlIGNsaWVudE9wdGlvbnMgPSBBeGlvc1JlcXVlc3RDb25maWc7XG5cbi8qKlxuICogQGNsYXNzIEh0dHBDbGllbnRGYWN0b3J5XG4gKiBAY2xhc3NkZXNjXG4gKiBBIGZhY3RvcnkgY2xhc3MgdG8gZ2VuZXJhdGUgaHR0cCBjbGllbnRzXG4gKiBAZXhhbXBsZVxuICogY29uc3QgaHR0cENsaWVudCA9IEh0dHBDbGllbnRGYWN0b3J5LmdldEh0dHBDbGllbnQoJ2F4aW9zJyk7XG4gKiBjb25zdCByZXNwb25zZSA9IGF3YWl0IGh0dHBDbGllbnQucG9zdChcImh0dHBzOi8vZXhhbXBsZS5jb21cIiwgeyBmb286IFwiYmFyXCIgfSk7XG4gKiBpZiAocmVzcG9uc2UudHlwZSA9PT0gXCJzdWNjZXNzXCIpIHtcbiAqIGNvbnNvbGUubG9nKHJlc3BvbnNlLnN0YXR1c0NvZGUpO1xuICogY29uc29sZS5sb2cocmVzcG9uc2UucmVzcG9uc2VCb2R5KTtcbiAqIH0gZWxzZSBpZiAocmVzcG9uc2UudHlwZSA9PT0gXCJhcHBsaWNhdGlvbi1lcnJvclwiKSB7XG4gKiBjb25zb2xlLmxvZyhyZXNwb25zZS5zdGF0dXNDb2RlKTtcbiAqIGNvbnNvbGUubG9nKHJlc3BvbnNlLm1lc3NhZ2UpO1xuICogY29uc29sZS5sb2cocmVzcG9uc2UucmVzcG9uc2VCb2R5KTtcbiAqIH0gZWxzZSBpZiAocmVzcG9uc2UudHlwZSA9PT0gXCJjbGllbnQtZXJyb3JcIikge1xuICogY29uc29sZS5sb2cocmVzcG9uc2Uuc3RhdHVzQ29kZSk7XG4gKiBjb25zb2xlLmxvZyhyZXNwb25zZS5tZXNzYWdlKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGNsYXNzIEh0dHBDbGllbnRGYWN0b3J5IHtcbiAgc3RhdGljIGdldEh0dHBDbGllbnQobmFtZTogQ2xpZW50TmFtZXMsIG9wdGlvbnM/OiBjbGllbnRPcHRpb25zKTogSHR0cENsaWVudCB7XG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICBjYXNlIENsaWVudE5hbWVzLkF4aW9zOlxuICAgICAgICByZXR1cm4gbmV3IEF4aW9zQ2xpZW50KG9wdGlvbnMpO1xuICAgICAgLy8gY2FzZSBDbGllbnROYW1lcy5GZXRjaDpcbiAgICAgIC8vICAgICByZXR1cm4gcmVxdWlyZSgnLi9jbGllbnRzL2ZldGNoJykuRmV0Y2hDbGllbnQ7XG4gICAgICAvLyBjYXNlIENsaWVudE5hbWVzLlhocjpcbiAgICAgIC8vICAgICByZXR1cm4gcmVxdWlyZSgnLi9jbGllbnRzL3hocicpLlhockNsaWVudDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBQbGF0Zm9ybUVycm9yKCdJbnZhbGlkIGNsaWVudCBuYW1lJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBIVFRQIGNsaWVudCB3aXRoIG1ldHJpY3MgYW5kIGxvZ2dpbmcgY2FwYWJpbGl0aWVzXG4gICAqIEBwYXJhbSBuYW1lIC0gQ2xpZW50IG5hbWUgKGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIEF4aW9zKVxuICAgKiBAcGFyYW0gbG9nZ2VyIC0gTG9nZ2VyIGluc3RhbmNlIGZvciByZXF1ZXN0L3Jlc3BvbnNlIGxvZ2dpbmdcbiAgICogQHBhcmFtIHN0YXRzQ2xpZW50IC0gU3RhdHMgY2xpZW50IGluc3RhbmNlIGZvciBtZXRyaWNzIGNvbGxlY3Rpb25cbiAgICogQHBhcmFtIGRlZmF1bHRTdGF0VGFncyAtIERlZmF1bHQgc3RhdCB0YWdzIGZvciBhbGwgcmVxdWVzdHNcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBBeGlvcyBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAgICogQHJldHVybnMgRW5oYW5jZWQgSFRUUCBjbGllbnQgd2l0aCBsb2dnaW5nIGFuZCBtZXRyaWNzXG4gICAqL1xuICBzdGF0aWMgZ2V0SHR0cENsaWVudFdpdGhNZXRyaWNzKFxuICAgIG5hbWU6IENsaWVudE5hbWVzLFxuICAgIGxvZ2dlcj86IElIdHRwTG9nZ2VyLFxuICAgIHN0YXRzQ2xpZW50PzogSUh0dHBTdGF0c0NsaWVudCxcbiAgICBkZWZhdWx0U3RhdFRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICBvcHRpb25zPzogY2xpZW50T3B0aW9ucyxcbiAgKTogSHR0cENsaWVudCB7XG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICBjYXNlIENsaWVudE5hbWVzLkF4aW9zOiB7XG4gICAgICAgIGNvbnN0IG9ic2VydmFiaWxpdHlDb25maWc6IEF4aW9zQ2xpZW50T2JzZXJ2YWJpbGl0eUNvbmZpZyA9IHtcbiAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgc3RhdHNDbGllbnQsXG4gICAgICAgICAgZGVmYXVsdFN0YXRUYWdzOiBkZWZhdWx0U3RhdFRhZ3MgfHwge30sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBuZXcgQXhpb3NDbGllbnQob3B0aW9ucywgb2JzZXJ2YWJpbGl0eUNvbmZpZyk7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgUGxhdGZvcm1FcnJvcignSW52YWxpZCBjbGllbnQgbmFtZScpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,64 @@
1
+ import { ApiResponse, HttpClient, StatTags } from '../../network/clients/types';
2
+ import { BaseSDKConfig } from './types';
3
+ export type { BaseSDKConfig };
4
+ /**
5
+ * Abstract base class for all SDKs
6
+ * Provides common functionality including HTTP client management, request execution,
7
+ * retry logic, and enhanced features when configured
8
+ */
9
+ export declare abstract class BaseSDK<TAuthObject, TConfig extends BaseSDKConfig = BaseSDKConfig> {
10
+ protected authObject: TAuthObject;
11
+ protected httpClient: HttpClient;
12
+ protected config?: TConfig;
13
+ constructor(authObject: TAuthObject, config?: TConfig);
14
+ validateAuthObject(_authObject: unknown): void;
15
+ protected abstract buildRequestUrl(endpoint: string): string;
16
+ protected getHeaders(): Record<string, string>;
17
+ shouldRetryOnError(_response: ApiResponse<unknown>): boolean;
18
+ protected refreshToken?(): Promise<void>;
19
+ /**
20
+ * Initialize HTTP client based on configuration
21
+ * Uses enhanced client with metrics/logging if config provided, otherwise basic client
22
+ * No baseURL is set - SDKs will use buildRequestUrl() to construct full URLs
23
+ */
24
+ private initializeHttpClient;
25
+ /**
26
+ * Execute HTTP request - single attempt, no retry logic
27
+ */
28
+ protected executeRequest<T>(method: 'get' | 'post' | 'put' | 'delete' | 'patch', endpoint: string, data?: unknown, statTags?: StatTags): Promise<ApiResponse<T>>;
29
+ /**
30
+ * Execute HTTP request with configurable token refresh attempts
31
+ * For SDKs that need more control over retry behavior
32
+ */
33
+ protected executeRequestWithTokenRefreshAttempts<T>(method: 'get' | 'post' | 'put' | 'delete' | 'patch', endpoint: string, data?: unknown, statTags?: StatTags, maxRetries?: number): Promise<ApiResponse<T>>;
34
+ /**
35
+ * Internal recursive method for retry attempts
36
+ */
37
+ private executeRequestWithRetryAttempt;
38
+ /**
39
+ * Make HTTP request based on method - eliminates code duplication
40
+ * Passes statTags to HTTP client for metrics and logging
41
+ */
42
+ private makeHttpRequest;
43
+ /**
44
+ * Convenience method for GET requests
45
+ */
46
+ protected get<T>(endpoint: string, statTags?: StatTags): Promise<ApiResponse<T>>;
47
+ /**
48
+ * Convenience method for POST requests
49
+ */
50
+ protected post<T>(endpoint: string, data: unknown, statTags?: StatTags): Promise<ApiResponse<T>>;
51
+ /**
52
+ * Convenience method for PUT requests
53
+ */
54
+ protected put<T>(endpoint: string, data: unknown, statTags?: StatTags): Promise<ApiResponse<T>>;
55
+ /**
56
+ * Convenience method for DELETE requests
57
+ */
58
+ protected delete<T>(endpoint: string, statTags?: StatTags): Promise<ApiResponse<T>>;
59
+ /**
60
+ * Convenience method for PATCH requests
61
+ */
62
+ protected patch<T>(endpoint: string, data: unknown, statTags?: StatTags): Promise<ApiResponse<T>>;
63
+ }
64
+ //# sourceMappingURL=base-sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-sdk.d.ts","sourceRoot":"","sources":["../../../src/sdks/common/base-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,UAAU,EAGV,QAAQ,EACT,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,YAAY,EAAE,aAAa,EAAE,CAAC;AAG9B;;;;GAIG;AACH,8BAAsB,OAAO,CAAC,WAAW,EAAE,OAAO,SAAS,aAAa,GAAG,aAAa;IACtF,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC;IAElC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC;IAEjC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;gBAEf,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO;IAQrD,kBAAkB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAM9C,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAG5D,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAM9C,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO;IAK5D,SAAS,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAExC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;cACa,cAAc,CAAC,CAAC,EAC9B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,EACnD,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAmB1B;;;OAGG;IACH,SAAS,CAAC,sCAAsC,CAAC,CAAC,EAChD,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,EACnD,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,QAAQ,EACnB,UAAU,SAAI,GACb,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAI1B;;OAEG;YACW,8BAA8B;IA+E5C;;;OAGG;IACH,OAAO,CAAC,eAAe;IA6BvB;;OAEG;IACH,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIhF;;OAEG;IACH,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIhG;;OAEG;IACH,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAI/F;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAInF;;OAEG;IACH,SAAS,CAAC,KAAK,CAAC,CAAC,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EACb,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAG3B"}
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseSDK = void 0;
4
+ const factory_1 = require("../../network/factory");
5
+ // Note: StatTags is exported from src/network/index.ts to avoid duplicate exports
6
+ /**
7
+ * Abstract base class for all SDKs
8
+ * Provides common functionality including HTTP client management, request execution,
9
+ * retry logic, and enhanced features when configured
10
+ */
11
+ class BaseSDK {
12
+ constructor(authObject, config) {
13
+ this.validateAuthObject(authObject);
14
+ this.authObject = authObject;
15
+ this.config = config;
16
+ this.httpClient = this.initializeHttpClient();
17
+ }
18
+ // eslint-disable-next-line class-methods-use-this
19
+ validateAuthObject(_authObject) {
20
+ // Default implementation does nothing - override if validation is needed
21
+ // Most SDKs will want to override this to validate required fields
22
+ }
23
+ // eslint-disable-next-line class-methods-use-this
24
+ getHeaders() {
25
+ // Default implementation returns empty headers - override to add headers
26
+ return {};
27
+ }
28
+ // eslint-disable-next-line class-methods-use-this
29
+ shouldRetryOnError(_response) {
30
+ // Default implementation does not retry - override if retry logic is needed
31
+ return false;
32
+ }
33
+ /**
34
+ * Initialize HTTP client based on configuration
35
+ * Uses enhanced client with metrics/logging if config provided, otherwise basic client
36
+ * No baseURL is set - SDKs will use buildRequestUrl() to construct full URLs
37
+ */
38
+ initializeHttpClient() {
39
+ // If enhanced config provided, use HTTP client with metrics/logging
40
+ if (this.config?.httpClient) {
41
+ const { logger, statsClient, defaultStatTags } = this.config.httpClient;
42
+ if (logger !== undefined || statsClient !== undefined) {
43
+ // Use enhanced HTTP client with metrics and logging
44
+ return factory_1.HttpClientFactory.getHttpClientWithMetrics(factory_1.ClientNames.Axios, logger, statsClient, defaultStatTags);
45
+ }
46
+ }
47
+ // Fallback to basic HTTP client (backward compatibility)
48
+ return factory_1.HttpClientFactory.getHttpClient(factory_1.ClientNames.Axios);
49
+ }
50
+ /**
51
+ * Execute HTTP request - single attempt, no retry logic
52
+ */
53
+ async executeRequest(method, endpoint, data, statTags) {
54
+ try {
55
+ const headers = this.getHeaders();
56
+ const requestConfig = {
57
+ headers,
58
+ };
59
+ const fullUrl = this.buildRequestUrl(endpoint);
60
+ return await this.makeHttpRequest(method, fullUrl, data, requestConfig, statTags);
61
+ }
62
+ catch (error) {
63
+ return {
64
+ type: 'client-error',
65
+ statusCode: 0,
66
+ message: error instanceof Error ? error.message : 'Unknown error',
67
+ responseBody: error,
68
+ };
69
+ }
70
+ }
71
+ /**
72
+ * Execute HTTP request with configurable token refresh attempts
73
+ * For SDKs that need more control over retry behavior
74
+ */
75
+ executeRequestWithTokenRefreshAttempts(method, endpoint, data, statTags, maxRetries = 1) {
76
+ return this.executeRequestWithRetryAttempt(method, endpoint, maxRetries, 0, data, statTags);
77
+ }
78
+ /**
79
+ * Internal recursive method for retry attempts
80
+ */
81
+ async executeRequestWithRetryAttempt(method, endpoint, maxRetries, currentAttempt, data, statTags) {
82
+ try {
83
+ const headers = this.getHeaders();
84
+ const requestConfig = {
85
+ headers,
86
+ };
87
+ const fullUrl = this.buildRequestUrl(endpoint);
88
+ const response = await this.makeHttpRequest(method, fullUrl, data, requestConfig, statTags);
89
+ // If successful or not retryable, return response
90
+ if (response.type === 'success' || !this.shouldRetryOnError(response)) {
91
+ return response;
92
+ }
93
+ // If refreshToken is not implemented, return the response
94
+ if (!this.refreshToken) {
95
+ return response;
96
+ }
97
+ // If this is the last attempt, return the response
98
+ if (currentAttempt >= maxRetries) {
99
+ return response;
100
+ }
101
+ // Refresh token and retry
102
+ await this.refreshToken();
103
+ return await this.executeRequestWithRetryAttempt(method, endpoint, maxRetries, currentAttempt + 1, data, statTags);
104
+ }
105
+ catch (error) {
106
+ const errorResponse = {
107
+ type: 'client-error',
108
+ statusCode: 0,
109
+ message: error instanceof Error ? error.message : 'Unknown error',
110
+ responseBody: error,
111
+ };
112
+ // If refreshToken is not implemented, return the response
113
+ if (!this.refreshToken) {
114
+ return errorResponse;
115
+ }
116
+ // If this is the last attempt, return error
117
+ if (currentAttempt >= maxRetries) {
118
+ return errorResponse;
119
+ }
120
+ // Refresh token and retry
121
+ await this.refreshToken();
122
+ return await this.executeRequestWithRetryAttempt(method, endpoint, maxRetries, currentAttempt + 1, data, statTags);
123
+ }
124
+ }
125
+ /**
126
+ * Make HTTP request based on method - eliminates code duplication
127
+ * Passes statTags to HTTP client for metrics and logging
128
+ */
129
+ makeHttpRequest(method, url, data, requestConfig, statTags) {
130
+ // Add statTags to request config for HTTP client
131
+ const configWithStatTags = {
132
+ ...requestConfig,
133
+ statTags,
134
+ };
135
+ switch (method) {
136
+ case 'get':
137
+ return this.httpClient.get(url, configWithStatTags);
138
+ case 'post':
139
+ return this.httpClient.post(url, data, configWithStatTags);
140
+ case 'put':
141
+ return this.httpClient.put(url, data, configWithStatTags);
142
+ case 'delete':
143
+ return this.httpClient.delete(url, configWithStatTags);
144
+ case 'patch':
145
+ return this.httpClient.patch(url, data, configWithStatTags);
146
+ default:
147
+ throw new Error(`Unsupported HTTP method: ${method}`);
148
+ }
149
+ }
150
+ /**
151
+ * Convenience method for GET requests
152
+ */
153
+ get(endpoint, statTags) {
154
+ return this.executeRequest('get', endpoint, undefined, statTags);
155
+ }
156
+ /**
157
+ * Convenience method for POST requests
158
+ */
159
+ post(endpoint, data, statTags) {
160
+ return this.executeRequest('post', endpoint, data, statTags);
161
+ }
162
+ /**
163
+ * Convenience method for PUT requests
164
+ */
165
+ put(endpoint, data, statTags) {
166
+ return this.executeRequest('put', endpoint, data, statTags);
167
+ }
168
+ /**
169
+ * Convenience method for DELETE requests
170
+ */
171
+ delete(endpoint, statTags) {
172
+ return this.executeRequest('delete', endpoint, undefined, statTags);
173
+ }
174
+ /**
175
+ * Convenience method for PATCH requests
176
+ */
177
+ patch(endpoint, data, statTags) {
178
+ return this.executeRequest('patch', endpoint, data, statTags);
179
+ }
180
+ }
181
+ exports.BaseSDK = BaseSDK;
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZGsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jb21tb24vYmFzZS1zZGsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0EsbURBQXVFO0FBS3ZFLGtGQUFrRjtBQUVsRjs7OztHQUlHO0FBQ0gsTUFBc0IsT0FBTztJQU8zQixZQUFZLFVBQXVCLEVBQUUsTUFBZ0I7UUFDbkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxrQkFBa0IsQ0FBQyxXQUFvQjtRQUNyQyx5RUFBeUU7UUFDekUsbUVBQW1FO0lBQ3JFLENBQUM7SUFLRCxrREFBa0Q7SUFDeEMsVUFBVTtRQUNsQix5RUFBeUU7UUFDekUsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsa0RBQWtEO0lBQ2xELGtCQUFrQixDQUFDLFNBQStCO1FBQ2hELDRFQUE0RTtRQUM1RSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFJRDs7OztPQUlHO0lBQ0ssb0JBQW9CO1FBQzFCLG9FQUFvRTtRQUNwRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUM7WUFDNUIsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFFeEUsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDdEQsb0RBQW9EO2dCQUNwRCxPQUFPLDJCQUFpQixDQUFDLHdCQUF3QixDQUMvQyxxQkFBVyxDQUFDLEtBQUssRUFD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Q0FBQyxjQUFjLENBQUksT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGO0FBaFFELDBCQWdRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwaVJlc3BvbnNlLFxuICBIdHRwQ2xpZW50LFxuICBJSHR0cExvZ2dlcixcbiAgSUh0dHBTdGF0c0NsaWVudCxcbiAgU3RhdFRhZ3MsXG59IGZyb20gJy4uLy4uL25ldHdvcmsvY2xpZW50cy90eXBlcyc7XG5pbXBvcnQgeyBDbGllbnROYW1lcywgSHR0cENsaWVudEZhY3RvcnkgfSBmcm9tICcuLi8uLi9uZXR3b3JrL2ZhY3RvcnknO1xuaW1wb3J0IHsgQmFzZVNES0NvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBSZS1leHBvcnQgdHlwZXMgZm9yIGNvbnZlbmllbmNlXG5leHBvcnQgdHlwZSB7IEJhc2VTREtDb25maWcgfTtcbi8vIE5vdGU6IFN0YXRUYWdzIGlzIGV4cG9ydGVkIGZyb20gc3JjL25ldHdvcmsvaW5kZXgudHMgdG8gYXZvaWQgZHVwbGljYXRlIGV4cG9ydHNcblxuLyoqXG4gKiBBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBhbGwgU0RLc1xuICogUHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdHkgaW5jbHVkaW5nIEhUVFAgY2xpZW50IG1hbmFnZW1lbnQsIHJlcXVlc3QgZXhlY3V0aW9uLFxuICogcmV0cnkgbG9naWMsIGFuZCBlbmhhbmNlZCBmZWF0dXJlcyB3aGVuIGNvbmZpZ3VyZWRcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VTREs8VEF1dGhPYmplY3QsIFRDb25maWcgZXh0ZW5kcyBCYXNlU0RLQ29uZmlnID0gQmFzZVNES0NvbmZpZz4ge1xuICBwcm90ZWN0ZWQgYXV0aE9iamVjdDogVEF1dGhPYmplY3Q7XG5cbiAgcHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQ7XG5cbiAgcHJvdGVjdGVkIGNvbmZpZz86IFRDb25maWc7XG5cbiAgY29uc3RydWN0b3IoYXV0aE9iamVjdDogVEF1dGhPYmplY3QsIGNvbmZpZz86IFRDb25maWcpIHtcbiAgICB0aGlzLnZhbGlkYXRlQXV0aE9iamVjdChhdXRoT2JqZWN0KTtcbiAgICB0aGlzLmF1dGhPYmplY3QgPSBhdXRoT2JqZWN0O1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuaHR0cENsaWVudCA9IHRoaXMuaW5pdGlhbGl6ZUh0dHBDbGllbnQoKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXG4gIHZhbGlkYXRlQXV0aE9iamVjdChfYXV0aE9iamVjdDogdW5rbm93bik6IHZvaWQge1xuICAgIC8vIERlZmF1bHQgaW1wbGVtZW50YXRpb24gZG9lcyBub3RoaW5nIC0gb3ZlcnJpZGUgaWYgdmFsaWRhdGlvbiBpcyBuZWVkZWRcbiAgICAvLyBNb3N0IFNES3Mgd2lsbCB3YW50IHRvIG92ZXJyaWRlIHRoaXMgdG8gdmFsaWRhdGUgcmVxdWlyZWQgZmllbGRzXG4gIH1cblxuICAvLyBBYnN0cmFjdCBtZXRob2QgZm9yIGJ1aWxkaW5nIHJlcXVlc3QgVVJMcyAtIGVhY2ggU0RLIGltcGxlbWVudHMgaXRzIG93biBVUkwgY29uc3RydWN0aW9uIGxvZ2ljXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBidWlsZFJlcXVlc3RVcmwoZW5kcG9pbnQ6IHN0cmluZyk6IHN0cmluZztcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICBwcm90ZWN0ZWQgZ2V0SGVhZGVycygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgZW1wdHkgaGVhZGVycyAtIG92ZXJyaWRlIHRvIGFkZCBoZWFkZXJzXG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgc2hvdWxkUmV0cnlPbkVycm9yKF9yZXNwb25zZTogQXBpUmVzcG9uc2U8dW5rbm93bj4pOiBib29sZWFuIHtcbiAgICAvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHJldHJ5IC0gb3ZlcnJpZGUgaWYgcmV0cnkgbG9naWMgaXMgbmVlZGVkXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlZnJlc2hUb2tlbj8oKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSBIVFRQIGNsaWVudCBiYXNlZCBvbiBjb25maWd1cmF0aW9uXG4gICAqIFVzZXMgZW5oYW5jZWQgY2xpZW50IHdpdGggbWV0cmljcy9sb2dnaW5nIGlmIGNvbmZpZyBwcm92aWRlZCwgb3RoZXJ3aXNlIGJhc2ljIGNsaWVudFxuICAgKiBObyBiYXNlVVJMIGlzIHNldCAtIFNES3Mgd2lsbCB1c2UgYnVpbGRSZXF1ZXN0VXJsKCkgdG8gY29uc3RydWN0IGZ1bGwgVVJMc1xuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplSHR0cENsaWVudCgpOiBIdHRwQ2xpZW50IHtcbiAgICAvLyBJZiBlbmhhbmNlZCBjb25maWcgcHJvdmlkZWQsIHVzZSBIVFRQIGNsaWVudCB3aXRoIG1ldHJpY3MvbG9nZ2luZ1xuICAgIGlmICh0aGlzLmNvbmZpZz8uaHR0cENsaWVudCkge1xuICAgICAgY29uc3QgeyBsb2dnZXIsIHN0YXRzQ2xpZW50LCBkZWZhdWx0U3RhdFRhZ3MgfSA9IHRoaXMuY29uZmlnLmh0dHBDbGllbnQ7XG5cbiAgICAgIGlmIChsb2dnZXIgIT09IHVuZGVmaW5lZCB8fCBzdGF0c0NsaWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIFVzZSBlbmhhbmNlZCBIVFRQIGNsaWVudCB3aXRoIG1ldHJpY3MgYW5kIGxvZ2dpbmdcbiAgICAgICAgcmV0dXJuIEh0dHBDbGllbnRGYWN0b3J5LmdldEh0dHBDbGllbnRXaXRoTWV0cmljcyhcbiAgICAgICAgICBDbGllbnROYW1lcy5BeGlvcyxcbiAgICAgICAgICBsb2dnZXIgYXMgSUh0dHBMb2dnZXIsXG4gICAgICAgICAgc3RhdHNDbGllbnQgYXMgSUh0dHBTdGF0c0NsaWVudCxcbiAgICAgICAgICBkZWZhdWx0U3RhdFRhZ3MsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgdG8gYmFzaWMgSFRUUCBjbGllbnQgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpXG4gICAgcmV0dXJuIEh0dHBDbGllbnRGYWN0b3J5LmdldEh0dHBDbGllbnQoQ2xpZW50TmFtZXMuQXhpb3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgSFRUUCByZXF1ZXN0IC0gc2luZ2xlIGF0dGVtcHQsIG5vIHJldHJ5IGxvZ2ljXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgZXhlY3V0ZVJlcXVlc3Q8VD4oXG4gICAgbWV0aG9kOiAnZ2V0JyB8ICdwb3N0JyB8ICdwdXQnIHwgJ2RlbGV0ZScgfCAncGF0Y2gnLFxuICAgIGVuZHBvaW50OiBzdHJpbmcsXG4gICAgZGF0YT86IHVua25vd24sXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzKCk7XG4gICAgICBjb25zdCByZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGZ1bGxVcmwgPSB0aGlzLmJ1aWxkUmVxdWVzdFVybChlbmRwb2ludCk7XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLm1ha2VIdHRwUmVxdWVzdDxUPihtZXRob2QsIGZ1bGxVcmwsIGRhdGEsIHJlcXVlc3RDb25maWcsIHN0YXRUYWdzKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2NsaWVudC1lcnJvcicsXG4gICAgICAgIHN0YXR1c0NvZGU6IDAsXG4gICAgICAgIG1lc3NhZ2U6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InLFxuICAgICAgICByZXNwb25zZUJvZHk6IGVycm9yLFxuICAgICAgfSBhcyBBcGlSZXNwb25zZTxUPjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBIVFRQIHJlcXVlc3Qgd2l0aCBjb25maWd1cmFibGUgdG9rZW4gcmVmcmVzaCBhdHRlbXB0c1xuICAgKiBGb3IgU0RLcyB0aGF0IG5lZWQgbW9yZSBjb250cm9sIG92ZXIgcmV0cnkgYmVoYXZpb3JcbiAgICovXG4gIHByb3RlY3RlZCBleGVjdXRlUmVxdWVzdFdpdGhUb2tlblJlZnJlc2hBdHRlbXB0czxUPihcbiAgICBtZXRob2Q6ICdnZXQnIHwgJ3Bvc3QnIHwgJ3B1dCcgfCAnZGVsZXRlJyB8ICdwYXRjaCcsXG4gICAgZW5kcG9pbnQ6IHN0cmluZyxcbiAgICBkYXRhPzogdW5rbm93bixcbiAgICBzdGF0VGFncz86IFN0YXRUYWdzLFxuICAgIG1heFJldHJpZXMgPSAxLFxuICApOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVJlcXVlc3RXaXRoUmV0cnlBdHRlbXB0PFQ+KG1ldGhvZCwgZW5kcG9pbnQsIG1heFJldHJpZXMsIDAsIGRhdGEsIHN0YXRUYWdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCByZWN1cnNpdmUgbWV0aG9kIGZvciByZXRyeSBhdHRlbXB0c1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBleGVjdXRlUmVxdWVzdFdpdGhSZXRyeUF0dGVtcHQ8VD4oXG4gICAgbWV0aG9kOiAnZ2V0JyB8ICdwb3N0JyB8ICdwdXQnIHwgJ2RlbGV0ZScgfCAncGF0Y2gnLFxuICAgIGVuZHBvaW50OiBzdHJpbmcsXG4gICAgbWF4UmV0cmllczogbnVtYmVyLFxuICAgIGN1cnJlbnRBdHRlbXB0OiBudW1iZXIsXG4gICAgZGF0YT86IHVua25vd24sXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzKCk7XG4gICAgICBjb25zdCByZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGZ1bGxVcmwgPSB0aGlzLmJ1aWxkUmVxdWVzdFVybChlbmRwb2ludCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5tYWtlSHR0cFJlcXVlc3Q8VD4oXG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgZnVsbFVybCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgcmVxdWVzdENvbmZpZyxcbiAgICAgICAgc3RhdFRhZ3MsXG4gICAgICApO1xuXG4gICAgICAvLyBJZiBzdWNjZXNzZnVsIG9yIG5vdCByZXRyeWFibGUsIHJldHVybiByZXNwb25zZVxuICAgICAgaWYgKHJlc3BvbnNlLnR5cGUgPT09ICdzdWNjZXNzJyB8fCAhdGhpcy5zaG91bGRSZXRyeU9uRXJyb3IocmVzcG9uc2UpKSB7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgcmVmcmVzaFRva2VuIGlzIG5vdCBpbXBsZW1lbnRlZCwgcmV0dXJuIHRoZSByZXNwb25zZVxuICAgICAgaWYgKCF0aGlzLnJlZnJlc2hUb2tlbikge1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoaXMgaXMgdGhlIGxhc3QgYXR0ZW1wdCwgcmV0dXJuIHRoZSByZXNwb25zZVxuICAgICAgaWYgKGN1cnJlbnRBdHRlbXB0ID49IG1heFJldHJpZXMpIHtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgfVxuXG4gICAgICAvLyBSZWZyZXNoIHRva2VuIGFuZCByZXRyeVxuICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0V2l0aFJldHJ5QXR0ZW1wdDxUPihcbiAgICAgICAgbWV0aG9kLFxuICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgbWF4UmV0cmllcyxcbiAgICAgICAgY3VycmVudEF0dGVtcHQgKyAxLFxuICAgICAgICBkYXRhLFxuICAgICAgICBzdGF0VGFncyxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IGVycm9yUmVzcG9uc2U6IEFwaVJlc3BvbnNlPFQ+ID0ge1xuICAgICAgICB0eXBlOiAnY2xpZW50LWVycm9yJyxcbiAgICAgICAgc3RhdHVzQ29kZTogMCxcbiAgICAgICAgbWVzc2FnZTogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicsXG4gICAgICAgIHJlc3BvbnNlQm9keTogZXJyb3IsXG4gICAgICB9IGFzIEFwaVJlc3BvbnNlPFQ+O1xuXG4gICAgICAvLyBJZiByZWZyZXNoVG9rZW4gaXMgbm90IGltcGxlbWVudGVkLCByZXR1cm4gdGhlIHJlc3BvbnNlXG4gICAgICBpZiAoIXRoaXMucmVmcmVzaFRva2VuKSB7XG4gICAgICAgIHJldHVybiBlcnJvclJlc3BvbnNlO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGlzIGlzIHRoZSBsYXN0IGF0dGVtcHQsIHJldHVybiBlcnJvclxuICAgICAgaWYgKGN1cnJlbnRBdHRlbXB0ID49IG1heFJldHJpZXMpIHtcbiAgICAgICAgcmV0dXJuIGVycm9yUmVzcG9uc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlZnJlc2ggdG9rZW4gYW5kIHJldHJ5XG4gICAgICBhd2FpdCB0aGlzLnJlZnJlc2hUb2tlbigpO1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3RXaXRoUmV0cnlBdHRlbXB0PFQ+KFxuICAgICAgICBtZXRob2QsXG4gICAgICAgIGVuZHBvaW50LFxuICAgICAgICBtYXhSZXRyaWVzLFxuICAgICAgICBjdXJyZW50QXR0ZW1wdCArIDEsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIHN0YXRUYWdzLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBIVFRQIHJlcXVlc3QgYmFzZWQgb24gbWV0aG9kIC0gZWxpbWluYXRlcyBjb2RlIGR1cGxpY2F0aW9uXG4gICAqIFBhc3NlcyBzdGF0VGFncyB0byBIVFRQIGNsaWVudCBmb3IgbWV0cmljcyBhbmQgbG9nZ2luZ1xuICAgKi9cbiAgcHJpdmF0ZSBtYWtlSHR0cFJlcXVlc3Q8VD4oXG4gICAgbWV0aG9kOiAnZ2V0JyB8ICdwb3N0JyB8ICdwdXQnIHwgJ2RlbGV0ZScgfCAncGF0Y2gnLFxuICAgIHVybDogc3RyaW5nLFxuICAgIGRhdGE6IHVua25vd24sXG4gICAgcmVxdWVzdENvbmZpZzogeyBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IH0sXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIC8vIEFkZCBzdGF0VGFncyB0byByZXF1ZXN0IGNvbmZpZyBmb3IgSFRUUCBjbGllbnRcbiAgICBjb25zdCBjb25maWdXaXRoU3RhdFRhZ3MgPSB7XG4gICAgICAuLi5yZXF1ZXN0Q29uZmlnLFxuICAgICAgc3RhdFRhZ3MsXG4gICAgfTtcblxuICAgIHN3aXRjaCAobWV0aG9kKSB7XG4gICAgICBjYXNlICdnZXQnOlxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxUPih1cmwsIGNvbmZpZ1dpdGhTdGF0VGFncyk7XG4gICAgICBjYXNlICdwb3N0JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PFQ+KHVybCwgZGF0YSwgY29uZmlnV2l0aFN0YXRUYWdzKTtcbiAgICAgIGNhc2UgJ3B1dCc6XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0PFQ+KHVybCwgZGF0YSwgY29uZmlnV2l0aFN0YXRUYWdzKTtcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZGVsZXRlPFQ+KHVybCwgY29uZmlnV2l0aFN0YXRUYWdzKTtcbiAgICAgIGNhc2UgJ3BhdGNoJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaDxUPih1cmwsIGRhdGEsIGNvbmZpZ1dpdGhTdGF0VGFncyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIEhUVFAgbWV0aG9kOiAke21ldGhvZH1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBHRVQgcmVxdWVzdHNcbiAgICovXG4gIHByb3RlY3RlZCBnZXQ8VD4oZW5kcG9pbnQ6IHN0cmluZywgc3RhdFRhZ3M/OiBTdGF0VGFncyk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUmVxdWVzdDxUPignZ2V0JywgZW5kcG9pbnQsIHVuZGVmaW5lZCwgc3RhdFRhZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgUE9TVCByZXF1ZXN0c1xuICAgKi9cbiAgcHJvdGVjdGVkIHBvc3Q8VD4oZW5kcG9pbnQ6IHN0cmluZywgZGF0YTogdW5rbm93biwgc3RhdFRhZ3M/OiBTdGF0VGFncyk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUmVxdWVzdDxUPigncG9zdCcsIGVuZHBvaW50LCBkYXRhLCBzdGF0VGFncyk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBQVVQgcmVxdWVzdHNcbiAgICovXG4gIHByb3RlY3RlZCBwdXQ8VD4oZW5kcG9pbnQ6IHN0cmluZywgZGF0YTogdW5rbm93biwgc3RhdFRhZ3M/OiBTdGF0VGFncyk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUmVxdWVzdDxUPigncHV0JywgZW5kcG9pbnQsIGRhdGEsIHN0YXRUYWdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIERFTEVURSByZXF1ZXN0c1xuICAgKi9cbiAgcHJvdGVjdGVkIGRlbGV0ZTxUPihlbmRwb2ludDogc3RyaW5nLCBzdGF0VGFncz86IFN0YXRUYWdzKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVSZXF1ZXN0PFQ+KCdkZWxldGUnLCBlbmRwb2ludCwgdW5kZWZpbmVkLCBzdGF0VGFncyk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBQQVRDSCByZXF1ZXN0c1xuICAgKi9cbiAgcHJvdGVjdGVkIHBhdGNoPFQ+KFxuICAgIGVuZHBvaW50OiBzdHJpbmcsXG4gICAgZGF0YTogdW5rbm93bixcbiAgICBzdGF0VGFncz86IFN0YXRUYWdzLFxuICApOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVJlcXVlc3Q8VD4oJ3BhdGNoJywgZW5kcG9pbnQsIGRhdGEsIHN0YXRUYWdzKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export { BaseSDK } from './base-sdk';
2
+ export type { BaseSDKConfig } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdks/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseSDK = void 0;
4
+ var base_sdk_1 = require("./base-sdk");
5
+ Object.defineProperty(exports, "BaseSDK", { enumerable: true, get: function () { return base_sdk_1.BaseSDK; } });
6
+ // Note: StatTags is exported from src/network/index.ts to avoid duplicate exports
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jb21tb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQXFDO0FBQTVCLG1HQUFBLE9BQU8sT0FBQTtBQUVoQixrRkFBa0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBCYXNlU0RLIH0gZnJvbSAnLi9iYXNlLXNkayc7XG5leHBvcnQgdHlwZSB7IEJhc2VTREtDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbi8vIE5vdGU6IFN0YXRUYWdzIGlzIGV4cG9ydGVkIGZyb20gc3JjL25ldHdvcmsvaW5kZXgudHMgdG8gYXZvaWQgZHVwbGljYXRlIGV4cG9ydHNcbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { HttpClientConfig } from '../../network/clients/types';
2
+ /**
3
+ * Base SDK Configuration interface
4
+ * Extends HTTP client config to provide enhanced features for SDKs
5
+ */
6
+ export interface BaseSDKConfig {
7
+ /**
8
+ * HTTP client configuration for enhanced features
9
+ * When provided, enables logging, metrics, and other enhanced capabilities
10
+ */
11
+ httpClient?: HttpClientConfig;
12
+ }
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sdks/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jb21tb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnRDb25maWcgfSBmcm9tICcuLi8uLi9uZXR3b3JrL2NsaWVudHMvdHlwZXMnO1xuXG4vKipcbiAqIEJhc2UgU0RLIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlXG4gKiBFeHRlbmRzIEhUVFAgY2xpZW50IGNvbmZpZyB0byBwcm92aWRlIGVuaGFuY2VkIGZlYXR1cmVzIGZvciBTREtzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZVNES0NvbmZpZyB7XG4gIC8qKlxuICAgKiBIVFRQIGNsaWVudCBjb25maWd1cmF0aW9uIGZvciBlbmhhbmNlZCBmZWF0dXJlc1xuICAgKiBXaGVuIHByb3ZpZGVkLCBlbmFibGVzIGxvZ2dpbmcsIG1ldHJpY3MsIGFuZCBvdGhlciBlbmhhbmNlZCBjYXBhYmlsaXRpZXNcbiAgICovXG4gIGh0dHBDbGllbnQ/OiBIdHRwQ2xpZW50Q29uZmlnO1xufVxuIl19
@@ -1,51 +1,23 @@
1
- import { AuthObject, AudienceSegmentBody, AudienceSegmentData } from './types';
1
+ import { ApiResponse, StatTags } from '../../network/clients/types';
2
+ import { BaseSDK } from '../common/base-sdk';
3
+ import { AuthObject, AudienceSegmentBody, AudienceSegmentData, CriteoConfig } from './types';
2
4
  /**
3
5
  * CriteoAudience SDK for managing audience segments in Criteo
4
6
  * @class
5
7
  */
6
- export default class CriteoAudience {
7
- private authObject;
8
- private httpClient;
9
- /**
10
- * Creates an instance of CriteoAudience
11
- * @param {AuthObject} authObject - Authentication object containing access token and refresh function
12
- * @throws {Error} If authObject is invalid or missing required properties
13
- */
14
- constructor(authObject: AuthObject);
15
- /**
16
- * Validates the authentication object
17
- * @param {AuthObject} authObject - Authentication object to validate
18
- * @throws {Error} If authObject is invalid or missing required properties
19
- * @private
20
- */
21
- private static validateAuthObject;
22
- /**
23
- * Refreshes the access token using the provided refresh function
24
- * @throws {Error} If token refresh fails
25
- * @private
26
- */
27
- private refreshToken;
28
- /**
29
- * Gets the request headers with authentication
30
- * @returns {RequestConfig} Request configuration with headers
31
- * @private
32
- */
33
- private getHeader;
34
- /**
35
- * Executes a POST request with token refresh handling
36
- * @template T - Response type
37
- * @param {string} url - API endpoint URL
38
- * @param {object} data - Request payload
39
- * @returns {Promise<ApiResponse<T>>} API response
40
- * @private
41
- */
42
- private executePostRequest;
8
+ export default class CriteoAudience extends BaseSDK<AuthObject, CriteoConfig> {
9
+ validateAuthObject(authObject: AuthObject): void;
10
+ protected buildRequestUrl(endpoint: string): string;
11
+ protected getHeaders(): Record<string, string>;
12
+ shouldRetryOnError(response: ApiResponse<unknown>): boolean;
13
+ protected refreshToken(): Promise<void>;
43
14
  /**
44
15
  * Creates a new audience segment in Criteo
45
16
  * @param {AudienceSegmentBody} audienceSegmentBody - Audience segment data
17
+ * @param {StatTags} statTags - Optional stat tags for metrics and logging
46
18
  * @returns {Promise<AudienceSegmentData>} Created audience segment data
47
19
  * @throws {Error} If audience segment creation fails
48
20
  */
49
- createAudienceSegment(audienceSegmentBody: AudienceSegmentBody): Promise<AudienceSegmentData>;
21
+ createAudienceSegment(audienceSegmentBody: AudienceSegmentBody, statTags?: StatTags): Promise<AudienceSegmentData>;
50
22
  }
51
23
  //# sourceMappingURL=criteoAudience.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"criteoAudience.d.ts","sourceRoot":"","sources":["../../../src/sdks/criteoAudience/criteoAudience.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,UAAU,EACV,mBAAmB,EAEnB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,OAAO,CAAC,UAAU,CAAa;IAE/B,OAAO,CAAC,UAAU,CAAa;IAE/B;;;;OAIG;gBACS,UAAU,EAAE,UAAU;IAQlC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAajC;;;;OAIG;YACW,YAAY;IAS1B;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAUjB;;;;;;;OAOG;YACW,kBAAkB;IAkBhC;;;;;OAKG;IACU,qBAAqB,CAChC,mBAAmB,EAAE,mBAAmB,GACvC,OAAO,CAAC,mBAAmB,CAAC;CAmBhC"}
1
+ {"version":3,"file":"criteoAudience.d.ts","sourceRoot":"","sources":["../../../src/sdks/criteoAudience/criteoAudience.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EACL,UAAU,EACV,mBAAmB,EAEnB,mBAAmB,EACnB,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC;IAE3E,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAahD,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAMnD,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAS9C,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO;cAY3C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAS7C;;;;;;OAMG;IACU,qBAAqB,CAChC,mBAAmB,EAAE,mBAAmB,EACxC,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,mBAAmB,CAAC;CAsBhC"}