@rudderstack/integrations-lib 0.2.57 → 0.2.58-beta.fix.axios-client-metric-tags.b22e724

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 (61) hide show
  1. package/build/index.d.ts +1 -0
  2. package/build/index.d.ts.map +1 -1
  3. package/build/index.js +2 -1
  4. package/build/mock_utils/index.d.ts +2 -0
  5. package/build/mock_utils/index.d.ts.map +1 -0
  6. package/build/mock_utils/index.js +9 -0
  7. package/build/network/clients/axios_client.d.ts +8 -8
  8. package/build/network/clients/axios_client.d.ts.map +1 -1
  9. package/build/network/clients/axios_client.js +112 -40
  10. package/build/network/clients/types.d.ts +102 -6
  11. package/build/network/clients/types.d.ts.map +1 -1
  12. package/build/network/clients/types.js +1 -1
  13. package/build/network/factory.d.ts +12 -2
  14. package/build/network/factory.d.ts.map +1 -1
  15. package/build/network/factory.js +24 -1
  16. package/build/sdks/common/base-sdk.d.ts +64 -0
  17. package/build/sdks/common/base-sdk.d.ts.map +1 -0
  18. package/build/sdks/common/base-sdk.js +182 -0
  19. package/build/sdks/common/index.d.ts +3 -0
  20. package/build/sdks/common/index.d.ts.map +1 -0
  21. package/build/sdks/common/index.js +7 -0
  22. package/build/sdks/common/types.d.ts +13 -0
  23. package/build/sdks/common/types.d.ts.map +1 -0
  24. package/build/sdks/common/types.js +3 -0
  25. package/build/sdks/criteoAudience/criteoAudience.d.ts +11 -39
  26. package/build/sdks/criteoAudience/criteoAudience.d.ts.map +1 -1
  27. package/build/sdks/criteoAudience/criteoAudience.js +37 -69
  28. package/build/sdks/criteoAudience/types.d.ts +3 -0
  29. package/build/sdks/criteoAudience/types.d.ts.map +1 -1
  30. package/build/sdks/criteoAudience/types.js +1 -1
  31. package/build/sdks/customerio_audience/index.d.ts +11 -15
  32. package/build/sdks/customerio_audience/index.d.ts.map +1 -1
  33. package/build/sdks/customerio_audience/index.js +29 -32
  34. package/build/sdks/customerio_audience/type.d.ts +3 -0
  35. package/build/sdks/customerio_audience/type.d.ts.map +1 -1
  36. package/build/sdks/customerio_audience/type.js +1 -1
  37. package/build/sdks/googleAdsRestAPI/googleAds.d.ts +16 -17
  38. package/build/sdks/googleAdsRestAPI/googleAds.d.ts.map +1 -1
  39. package/build/sdks/googleAdsRestAPI/googleAds.js +80 -37
  40. package/build/sdks/googleAdsRestAPI/types.d.ts +3 -0
  41. package/build/sdks/googleAdsRestAPI/types.d.ts.map +1 -1
  42. package/build/sdks/googleAdsRestAPI/types.js +1 -1
  43. package/build/sdks/index.d.ts +1 -0
  44. package/build/sdks/index.d.ts.map +1 -1
  45. package/build/sdks/index.js +5 -1
  46. package/build/sdks/sfmc/index.d.ts +1 -1
  47. package/build/sdks/sfmc/index.d.ts.map +1 -1
  48. package/build/sdks/sfmc/index.js +4 -3
  49. package/build/sdks/zoho/types.d.ts +3 -0
  50. package/build/sdks/zoho/types.d.ts.map +1 -1
  51. package/build/sdks/zoho/types.js +1 -1
  52. package/build/sdks/zoho/zoho.d.ts +13 -17
  53. package/build/sdks/zoho/zoho.d.ts.map +1 -1
  54. package/build/sdks/zoho/zoho.js +52 -51
  55. package/mock/index.d.ts +1 -1
  56. package/mock/index.d.ts.map +1 -1
  57. package/mock/index.js +6 -15
  58. package/package.json +1 -1
  59. package/mock/axios_client_mock_util.d.ts +0 -3
  60. package/mock/axios_client_mock_util.d.ts.map +0 -1
  61. package/mock/axios_client_mock_util.js +0 -10
package/build/index.d.ts CHANGED
@@ -11,5 +11,6 @@ export * from './sdks';
11
11
  export * from './cluster';
12
12
  export * from './feature-flags';
13
13
  export * from './auth-types';
14
+ export * from './mock_utils';
14
15
  export { setValue };
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAEvC,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAEvC,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,CAAC"}
package/build/index.js CHANGED
@@ -32,4 +32,5 @@ __exportStar(require("./sdks"), exports);
32
32
  __exportStar(require("./cluster"), exports);
33
33
  __exportStar(require("./feature-flags"), exports);
34
34
  __exportStar(require("./auth-types"), exports);
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnRUFBdUM7QUFjOUIsbUJBZEYsbUJBQVEsQ0FjRTtBQVpqQiwwQ0FBd0I7QUFDeEIseUNBQXVCO0FBQ3ZCLDJDQUF5QjtBQUN6QiwyQ0FBeUI7QUFDekIsc0RBQW9DO0FBQ3BDLDRDQUEwQjtBQUMxQiwwQ0FBd0I7QUFDeEIsOENBQTRCO0FBQzVCLHlDQUF1QjtBQUN2Qiw0Q0FBMEI7QUFDMUIsa0RBQWdDO0FBQ2hDLCtDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzZXRWYWx1ZSBmcm9tICcuL2xpYi9zZXQtdmFsdWUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vdGFncyc7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2xvZ2dlcic7XG5leHBvcnQgKiBmcm9tICcuL3N0cnVjdHVyZWQtbG9nZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbmV0d29yayc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2Rrcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsdXN0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLWZsYWdzJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC10eXBlcyc7XG5leHBvcnQgeyBzZXRWYWx1ZSB9O1xuIl19
35
+ __exportStar(require("./mock_utils"), exports);
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnRUFBdUM7QUFlOUIsbUJBZkYsbUJBQVEsQ0FlRTtBQWJqQiwwQ0FBd0I7QUFDeEIseUNBQXVCO0FBQ3ZCLDJDQUF5QjtBQUN6QiwyQ0FBeUI7QUFDekIsc0RBQW9DO0FBQ3BDLDRDQUEwQjtBQUMxQiwwQ0FBd0I7QUFDeEIsOENBQTRCO0FBQzVCLHlDQUF1QjtBQUN2Qiw0Q0FBMEI7QUFDMUIsa0RBQWdDO0FBQ2hDLCtDQUE2QjtBQUM3QiwrQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2V0VmFsdWUgZnJvbSAnLi9saWIvc2V0LXZhbHVlJztcblxuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3RhZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2dnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJ1Y3R1cmVkLWxvZ2dlcic7XG5leHBvcnQgKiBmcm9tICcuL25ldHdvcmsnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL3Nka3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbHVzdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZS1mbGFncyc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGgtdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2NrX3V0aWxzJztcbmV4cG9ydCB7IHNldFZhbHVlIH07XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export { default as axiosFromLib } from 'axios';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mock_utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.axiosFromLib = void 0;
7
+ var axios_1 = require("axios");
8
+ Object.defineProperty(exports, "axiosFromLib", { enumerable: true, get: function () { return __importDefault(axios_1).default; } });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ja191dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBZ0Q7QUFBdkMsc0hBQUEsT0FBTyxPQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgYXhpb3NGcm9tTGliIH0gZnJvbSAnYXhpb3MnO1xuIl19
@@ -1,5 +1,4 @@
1
- import { AxiosRequestConfig } from 'axios';
2
- import { ApiResponse, HttpClient, ResponseParser } from './types';
1
+ import { ApiResponse, HttpClient, ResponseParser, AxiosClientObservabilityConfig, RequestConfig } from './types';
3
2
  /**
4
3
  * A wrapper around axios to make http requests
5
4
  *
@@ -27,12 +26,13 @@ import { ApiResponse, HttpClient, ResponseParser } from './types';
27
26
  export declare class AxiosClient implements HttpClient {
28
27
  private options;
29
28
  private instance;
30
- constructor(options?: AxiosRequestConfig);
29
+ private observabilityConfig;
30
+ constructor(options?: RequestConfig, observabilityConfig?: AxiosClientObservabilityConfig);
31
31
  private makeRequest;
32
- get<T>(url: string, options?: AxiosRequestConfig, responseParser?: ResponseParser<T>): Promise<ApiResponse<T>>;
33
- post<T>(url: string, data?: any, options?: AxiosRequestConfig, responseParser?: ResponseParser<T>): Promise<ApiResponse<T>>;
34
- put<T>(url: string, data?: any, options?: AxiosRequestConfig, responseParser?: ResponseParser<T>): Promise<ApiResponse<T>>;
35
- patch<T>(url: string, data?: any, options?: AxiosRequestConfig, responseParser?: ResponseParser<T>): Promise<ApiResponse<T>>;
36
- delete<T>(url: string, options?: AxiosRequestConfig, responseParser?: ResponseParser<T>): Promise<ApiResponse<T>>;
32
+ get<T>(url: string, options?: RequestConfig, responseParser?: ResponseParser<T>): Promise<ApiResponse<T>>;
33
+ post<T>(url: string, data?: unknown, options?: RequestConfig, responseParser?: ResponseParser<T>): Promise<ApiResponse<T>>;
34
+ put<T>(url: string, data?: unknown, options?: RequestConfig, responseParser?: ResponseParser<T>): Promise<ApiResponse<T>>;
35
+ patch<T>(url: string, data?: unknown, options?: RequestConfig, responseParser?: ResponseParser<T>): Promise<ApiResponse<T>>;
36
+ delete<T>(url: string, options?: RequestConfig, responseParser?: ResponseParser<T>): Promise<ApiResponse<T>>;
37
37
  }
38
38
  //# sourceMappingURL=axios_client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"axios_client.d.ts","sourceRoot":"","sources":["../../../src/network/clients/axios_client.ts"],"names":[],"mappings":"AACA,OAAc,EAAE,kBAAkB,EAA6B,MAAM,OAAO,CAAC;AAI7E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGlE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,WAAY,YAAW,UAAU;IAC5C,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,OAAO,CAAC,EAAE,kBAAkB;YAoB1B,WAAW;IAqEZ,GAAG,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,kBAAkB,EAC5B,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAWb,IAAI,CAAC,CAAC,EACjB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,kBAAkB,EAC5B,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAYb,GAAG,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,kBAAkB,EAC5B,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAYb,KAAK,CAAC,CAAC,EAClB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,kBAAkB,EAC5B,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAYb,MAAM,CAAC,CAAC,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,kBAAkB,EAC5B,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAY3B"}
1
+ {"version":3,"file":"axios_client.d.ts","sourceRoot":"","sources":["../../../src/network/clients/axios_client.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,8BAA8B,EAI9B,aAAa,EACd,MAAM,SAAS,CAAC;AAiDjB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,WAAY,YAAW,UAAU;IAC5C,OAAO,CAAC,OAAO,CAAgB;IAE/B,OAAO,CAAC,QAAQ,CAAgB;IAEhC,OAAO,CAAC,mBAAmB,CAAiC;gBAEhD,OAAO,CAAC,EAAE,aAAa,EAAE,mBAAmB,CAAC,EAAE,8BAA8B;YA4B3E,WAAW;IAyJZ,GAAG,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAWb,IAAI,CAAC,CAAC,EACjB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAYb,GAAG,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAYb,KAAK,CAAC,CAAC,EAClB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAYb,MAAM,CAAC,CAAC,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAY3B"}
@@ -1,48 +1,55 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
4
  };
38
5
  Object.defineProperty(exports, "__esModule", { value: true });
39
6
  exports.AxiosClient = void 0;
40
7
  /* eslint-disable require-await */
41
- const axios_1 = __importStar(require("axios"));
8
+ const axios_1 = __importDefault(require("axios"));
42
9
  const http_1 = __importDefault(require("http"));
43
10
  const https_1 = __importDefault(require("https"));
44
11
  const constants_1 = require("../../constants");
45
12
  const utils_1 = require("../../utils");
13
+ // Allowed labels for timing metrics
14
+ const TIMING_METRIC_LABELS = [
15
+ 'feature',
16
+ 'destType',
17
+ 'endpointPath',
18
+ 'requestMethod',
19
+ 'module',
20
+ 'workspaceId',
21
+ 'destinationId',
22
+ 'implementation',
23
+ 'sourceId',
24
+ ];
25
+ // Allowed labels for counter metrics
26
+ const COUNTER_METRIC_LABELS = [
27
+ 'feature',
28
+ 'destType',
29
+ 'endpointPath',
30
+ 'success',
31
+ 'statusCode',
32
+ 'requestMethod',
33
+ 'module',
34
+ 'workspaceId',
35
+ 'destinationId',
36
+ 'implementation',
37
+ 'sourceId',
38
+ ];
39
+ /**
40
+ * Filters labels to only include allowed keys
41
+ * @param allLabels - The complete set of labels
42
+ * @param allowedLabels - Array of allowed label keys
43
+ * @returns Filtered labels object
44
+ */
45
+ function filterMetricLabels(allLabels, allowedLabels) {
46
+ return allowedLabels.reduce((filteredLabels, key) => {
47
+ if (allLabels[key] !== undefined) {
48
+ return { ...filteredLabels, [key]: allLabels[key] };
49
+ }
50
+ return filteredLabels;
51
+ }, {});
52
+ }
46
53
  /**
47
54
  * A wrapper around axios to make http requests
48
55
  *
@@ -68,7 +75,7 @@ const utils_1 = require("../../utils");
68
75
  * }
69
76
  */
70
77
  class AxiosClient {
71
- constructor(options) {
78
+ constructor(options, observabilityConfig) {
72
79
  const defaultOptions = {
73
80
  timeout: 1000 * 10,
74
81
  // `withCredentials` indicates whether or not cross-site Access-Control requests should be made using credentials
@@ -86,23 +93,69 @@ class AxiosClient {
86
93
  };
87
94
  this.options = { ...defaultOptions, ...options };
88
95
  this.instance = axios_1.default.create(this.options);
96
+ // Merge with default config to eliminate null checks
97
+ const defaultObservabilityConfig = {
98
+ logger: undefined,
99
+ statsClient: undefined,
100
+ defaultStatTags: {},
101
+ };
102
+ this.observabilityConfig = { ...defaultObservabilityConfig, ...observabilityConfig };
89
103
  }
90
104
  async makeRequest(config, responseParser) {
91
- let output;
105
+ const startTimestamp = new Date();
106
+ // Extract metadata for logging/metrics
107
+ const method = config.method?.toUpperCase() || 'UNKNOWN';
108
+ const url = config.url || 'unknown';
109
+ const body = config.data || undefined;
110
+ const statTags = {
111
+ ...this.observabilityConfig.defaultStatTags,
112
+ requestMethod: method,
113
+ endpointPath: 'default',
114
+ ...config.statTags,
115
+ };
116
+ const metadataMetricTags = {
117
+ ...(this.observabilityConfig.defaultStatTags?.metadata || {}),
118
+ ...(config.statTags?.metadata || {}),
119
+ };
120
+ // Optional request logging
121
+ const requestLogParams = {
122
+ requestDetails: {
123
+ method: method || 'undefined',
124
+ url: url || 'undefined',
125
+ body: body || 'undefined',
126
+ },
127
+ metadata: statTags.metadata || {},
128
+ };
129
+ this.observabilityConfig.logger?.requestLog(`[HTTP] ${method} ${url} request`, requestLogParams);
92
130
  try {
93
131
  const requestConfig = config;
94
132
  const response = await this.instance.request(requestConfig);
95
133
  const { status, data, headers } = response;
134
+ // Optional response logging
135
+ const responseLogParams = {
136
+ responseDetails: {
137
+ status: status || 0,
138
+ body: data || 'undefined',
139
+ headers: headers || 'undefined',
140
+ },
141
+ metadata: statTags.metadata || {},
142
+ };
143
+ this.observabilityConfig.logger?.responseLog(`[HTTP] ${method} ${url} response`, responseLogParams);
144
+ // Optional success metrics
145
+ const allLabels = { ...metadataMetricTags, ...statTags, statusCode: status };
146
+ const timingLabels = filterMetricLabels(allLabels, TIMING_METRIC_LABELS);
147
+ this.observabilityConfig.statsClient?.timing('outgoing_request_latency', startTimestamp, timingLabels);
148
+ const counterLabels = filterMetricLabels(allLabels, COUNTER_METRIC_LABELS);
149
+ this.observabilityConfig.statsClient?.counter('outgoing_request_count', 1, counterLabels);
96
150
  if (responseParser) {
97
151
  try {
98
152
  const parsedData = responseParser(data);
99
- output = {
153
+ return {
100
154
  type: 'success',
101
155
  statusCode: status,
102
156
  responseBody: parsedData,
103
157
  headers,
104
158
  };
105
- return output;
106
159
  }
107
160
  catch (error) {
108
161
  const unknownError = error;
@@ -117,7 +170,26 @@ class AxiosClient {
117
170
  return { type: 'success', statusCode: status, responseBody: data, headers };
118
171
  }
119
172
  catch (error) {
120
- if (error instanceof axios_1.AxiosError) {
173
+ // Determine status code for error metrics
174
+ let errorStatusCode = 500; // Default to 500 for network/unknown errors
175
+ if (axios_1.default.isAxiosError(error)) {
176
+ const axiosError = error;
177
+ if (axiosError.response) {
178
+ errorStatusCode = axiosError.response.status;
179
+ }
180
+ }
181
+ // Optional error logging
182
+ this.observabilityConfig.logger?.error?.(`[HTTP] ${method} ${url} error`, {
183
+ error: error.message,
184
+ statTags: { ...statTags, statusCode: errorStatusCode },
185
+ });
186
+ // Optional error metrics
187
+ const allErrorLabels = { ...metadataMetricTags, ...statTags, statusCode: errorStatusCode };
188
+ const timingLabels = filterMetricLabels(allErrorLabels, TIMING_METRIC_LABELS);
189
+ this.observabilityConfig.statsClient?.timing('outgoing_request_latency', startTimestamp, timingLabels);
190
+ const counterLabels = filterMetricLabels(allErrorLabels, COUNTER_METRIC_LABELS);
191
+ this.observabilityConfig.statsClient?.counter('outgoing_request_count', 1, counterLabels);
192
+ if (axios_1.default.isAxiosError(error)) {
121
193
  const axiosError = error;
122
194
  if (axiosError.response) {
123
195
  const { response } = axiosError;
@@ -206,4 +278,4 @@ class AxiosClient {
206
278
  }
207
279
  }
208
280
  exports.AxiosClient = AxiosClient;
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3NfY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25ldHdvcmsvY2xpZW50cy9heGlvc19jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0NBQWtDO0FBQ2xDLCtDQUE2RTtBQUM3RSxnREFBd0I7QUFDeEIsa0RBQTBCO0FBQzFCLCtDQUF5RDtBQUV6RCx1Q0FBeUM7QUFFekM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsTUFBYSxXQUFXO0lBS3RCLFlBQVksT0FBNEI7UUFDdEMsTUFBTSxjQUFjLEdBQUc7WUFDckIsT0FBTyxFQUFFLElBQUksR0FBRyxFQUFFO1lBQ2xCLGlIQUFpSDtZQUNqSCxlQUFlLEVBQUUsS0FBSztZQUN0QixzRkFBc0Y7WUFDdEYsZ0JBQWdCLEVBQUUsTUFBTTtZQUN4Qix3R0FBd0c7WUFDeEcsYUFBYSxFQUFFLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRTtZQUMvQiwrRUFBK0U7WUFDL0UsWUFBWSxFQUFFLENBQUM7WUFDZixxRkFBcUY7WUFDckYsU0FBUyxFQUFFLElBQUksY0FBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUM5QyxrSUFBa0k7WUFDbEksVUFBVSxFQUFFLElBQUksZUFBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNqRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sS0FBSyxDQUFDLFdBQVcsQ0FDdkIsTUFBMEIsRUFDMUIsY0FBa0M7UUFF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L0IsTUFBTSxFQUFFLE9BQU87WUFDZixHQUFHO1lBQ0gsSUFBSTtTQUNMLENBQUM7UUFDRixJQUFJLElBQUEsa0JBQVUsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDckMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBSSxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNLENBQ2pCLEdBQVcsRUFDWCxPQUE0QixFQUM1QixjQUFrQztRQUVsQyxJQUFJLE1BQU0sR0FBdUI7WUFDL0IsTUFBTSxFQUFFLFFBQVE7WUFDaEIsR0FBRztTQUNKLENBQUM7UUFDRixJQUFJLElBQUEsa0JBQVUsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDckMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBSSxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUdGO0FBaExELGtDQWdMQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbmltcG9ydCBheGlvcywgeyBBeGlvc1JlcXVlc3RDb25maWcsIEF4aW9zRXJyb3IsIEF4aW9zSW5zdGFuY2UgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCBodHRwcyBmcm9tICdodHRwcyc7XG5pbXBvcnQgeyBORVRXT1JLX1NUQVRVU19FUlJfTUFQIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlLCBIdHRwQ2xpZW50LCBSZXNwb25zZVBhcnNlciB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgaXNOb3RFbXB0eSB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuLyoqXG4gKiBBIHdyYXBwZXIgYXJvdW5kIGF4aW9zIHRvIG1ha2UgaHR0cCByZXF1ZXN0c1xuICpcbiAqIEBjbGFzcyBBeGlvc0NsaWVudFxuICogQGNsYXNzZGVzY1xuICogVGhlIGBBeGlvc0NsaWVudGAgY2xhc3MgaXMgYSB3cmFwcGVyIGFyb3VuZCB0aGUgYXhpb3MgbGlicmFyeSB0aGF0IHByb3ZpZGVzIGEgc2ltcGxpZmllZCBpbnRlcmZhY2UgZm9yIG1ha2luZyBIVFRQIHJlcXVlc3RzLiBJdCBoYW5kbGVzIHZhcmlvdXMgdHlwZXMgb2YgZXJyb3JzIGFuZCBwcm92aWRlcyBhIGNvbnNpc3RlbnQgcmVzcG9uc2UgZm9ybWF0LlxuICpcbiAqIEBwYXJhbSB7QXhpb3NSZXF1ZXN0Q29uZmlnfSBvcHRpb25zIC0gVGhlIGRlZmF1bHQgb3B0aW9ucyBmb3IgdGhlIGh0dHAgY2xpZW50XG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGF4aW9zQ2xpZW50ID0gbmV3IEF4aW9zQ2xpZW50KHsgdGltZW91dDogMTAwMCAqIDEwIH0pO1xuICogY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvc0NsaWVudC5wb3N0KFwiaHR0cHM6Ly9leGFtcGxlLmNvbVwiLCB7IGZvbzogXCJiYXJcIiB9KTtcbiAqIGlmIChyZXNwb25zZS50eXBlID09PSBcInN1Y2Nlc3NcIikge1xuICogICBjb25zb2xlLmxvZyhyZXNwb25zZS5zdGF0dXNDb2RlKTtcbiAqICAgY29uc29sZS5sb2cocmVzcG9uc2UucmVzcG9uc2VCb2R5KTtcbiAqIH0gZWxzZSBpZiAocmVzcG9uc2UudHlwZSA9PT0gXCJhcHBsaWNhdGlvbi1lcnJvclwiKSB7XG4gKiAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLnN0YXR1c0NvZGUpO1xuICogICBjb25zb2xlLmxvZyhyZXNwb25zZS5tZXNzYWdlKTtcbiAqICAgY29uc29sZS5sb2cocmVzcG9uc2UucmVzcG9uc2VCb2R5KTtcbiAqIH0gZWxzZSBpZiAocmVzcG9uc2UudHlwZSA9PT0gXCJjbGllbnQtZXJyb3JcIikge1xuICogICBjb25zb2xlLmxvZyhyZXNwb25zZS5zdGF0dXNDb2RlKTtcbiAqICAgY29uc29sZS5sb2cocmVzcG9uc2UubWVzc2FnZSk7XG4gKiB9XG4gKi9cbmV4cG9ydCBjbGFzcyBBeGlvc0NsaWVudCBpbXBsZW1lbnRzIEh0dHBDbGllbnQge1xuICBwcml2YXRlIG9wdGlvbnM6IEF4aW9zUmVxdWVzdENvbmZpZztcblxuICBwcml2YXRlIGluc3RhbmNlOiBBeGlvc0luc3RhbmNlO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBBeGlvc1JlcXVlc3RDb25maWcpIHtcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcbiAgICAgIHRpbWVvdXQ6IDEwMDAgKiAxMCxcbiAgICAgIC8vIGB3aXRoQ3JlZGVudGlhbHNgIGluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBjcm9zcy1zaXRlIEFjY2Vzcy1Db250cm9sIHJlcXVlc3RzIHNob3VsZCBiZSBtYWRlIHVzaW5nIGNyZWRlbnRpYWxzXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgICAgLy8gYHJlc3BvbnNlRW5jb2RpbmdgIGluZGljYXRlcyBlbmNvZGluZyB0byB1c2UgZm9yIGRlY29kaW5nIHJlc3BvbnNlcyAoTm9kZS5qcyBvbmx5KSxcbiAgICAgIHJlc3BvbnNlRW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgIC8vIGBtYXhCb2R5TGVuZ3RoYCAoTm9kZSBvbmx5IG9wdGlvbikgZGVmaW5lcyB0aGUgbWF4IHNpemUgb2YgdGhlIGh0dHAgcmVxdWVzdCBjb250ZW50IGluIGJ5dGVzIGFsbG93ZWQsXG4gICAgICBtYXhCb2R5TGVuZ3RoOiAxMDAwICogMTAwMCAqIDEwLFxuICAgICAgLy8gYG1heFJlZGlyZWN0c2AgZGVmaW5lcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVkaXJlY3RzIHRvIGZvbGxvdyBpbiBub2RlLmpzLFxuICAgICAgbWF4UmVkaXJlY3RzOiA1LFxuICAgICAgLy8gYGh0dHBBZ2VudGAgYW5kIGBodHRwc0FnZW50YCBkZWZpbmUgYSBjdXN0b20gYWdlbnQgdG8gYmUgdXNlZCB3aGVuIHBlcmZvcm1pbmcgaHR0cFxuICAgICAgaHR0cEFnZW50OiBuZXcgaHR0cC5BZ2VudCh7IGtlZXBBbGl2ZTogdHJ1ZSB9KSxcbiAgICAgIC8vIGFuZCBodHRwcyByZXF1ZXN0cywgcmVzcGVjdGl2ZWx5LCBpbiBub2RlLmpzLiBUaGlzIGFsbG93cyBvcHRpb25zIHRvIGJlIGFkZGVkIGxpa2UgYGtlZXBBbGl2ZWAgdGhhdCBhcmUgbm90IGVuYWJsZWQgYnkgZGVmYXVsdC5cbiAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7IGtlZXBBbGl2ZTogdHJ1ZSB9KSxcbiAgICB9O1xuICAgIHRoaXMub3B0aW9ucyA9IHsgLi4uZGVmYXVsdE9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICB0aGlzLmluc3RhbmNlID0gYXhpb3MuY3JlYXRlKHRoaXMub3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG1ha2VSZXF1ZXN0PFQ+KFxuICAgIGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBsZXQgb3V0cHV0OiBBcGlSZXNwb25zZTxUPjtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVxdWVzdENvbmZpZyA9IGNvbmZpZztcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5pbnN0YW5jZS5yZXF1ZXN0KHJlcXVlc3RDb25maWcpO1xuICAgICAgY29uc3QgeyBzdGF0dXMsIGRhdGEsIGhlYWRlcnMgfSA9IHJlc3BvbnNlO1xuXG4gICAgICBpZiAocmVzcG9uc2VQYXJzZXIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBwYXJzZWREYXRhID0gcmVzcG9uc2VQYXJzZXIoZGF0YSk7XG4gICAgICAgICAgb3V0cHV0ID0ge1xuICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgc3RhdHVzQ29kZTogc3RhdHVzLFxuICAgICAgICAgICAgcmVzcG9uc2VCb2R5OiBwYXJzZWREYXRhLFxuICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc3QgdW5rbm93bkVycm9yID0gZXJyb3IgYXMgRXJyb3I7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6ICdjbGllbnQtZXJyb3InLFxuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogRXJyb3IgaGFzIHN0YXR1c1xuICAgICAgICAgICAgc3RhdHVzQ29kZTogdW5rbm93bkVycm9yLnN0YXR1cyB8fCA1MDAsXG4gICAgICAgICAgICBtZXNzYWdlOiBgRmFpbGVkIHRvIHBhcnNlIHJlc3BvbnNlIGRhdGE6ICR7dW5rbm93bkVycm9yLm1lc3NhZ2V9YCxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4geyB0eXBlOiAnc3VjY2VzcycsIHN0YXR1c0NvZGU6IHN0YXR1cywgcmVzcG9uc2VCb2R5OiBkYXRhLCBoZWFkZXJzIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEF4aW9zRXJyb3IpIHtcbiAgICAgICAgY29uc3QgYXhpb3NFcnJvciA9IGVycm9yIGFzIEF4aW9zRXJyb3I7XG4gICAgICAgIGlmIChheGlvc0Vycm9yLnJlc3BvbnNlKSB7XG4gICAgICAgICAgY29uc3QgeyByZXNwb25zZSB9ID0gYXhpb3NFcnJvcjtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uLWVycm9yJyxcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLnN0YXR1c1RleHQsXG4gICAgICAgICAgICByZXNwb25zZUJvZHk6IHJlc3BvbnNlLmRhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGF4aW9zRXJyb3IuY29kZSkge1xuICAgICAgICAgIGNvbnN0IHJlc3AgPSBORVRXT1JLX1NUQVRVU19FUlJfTUFQW2F4aW9zRXJyb3IuY29kZV07XG4gICAgICAgICAgaWYgKCFyZXNwKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlOiAnY2xpZW50LWVycm9yJyxcbiAgICAgICAgICAgICAgc3RhdHVzQ29kZTogNTAwLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBgVW5rbm93biBFcnJvcjoke2F4aW9zRXJyb3IubWVzc2FnZX1gLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6ICdjbGllbnQtZXJyb3InLFxuICAgICAgICAgICAgc3RhdHVzQ29kZTogcmVzcC5zdGF0dXMsXG4gICAgICAgICAgICBtZXNzYWdlOiByZXNwLm1lc3NhZ2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCB1bmtub3duRXJyb3IgPSBlcnJvciBhcyBFcnJvcjtcbiAgICAgIGNvbnN0IHN0YXR1cyA9IDUwMDtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB1bmtub3duRXJyb3IubWVzc2FnZSB8fCAnVW5rbm93biBFcnJvcic7XG5cbiAgICAgIHJldHVybiB7IHR5cGU6ICdjbGllbnQtZXJyb3InLCBzdGF0dXNDb2RlOiBzdGF0dXMsIG1lc3NhZ2UgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0PFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBBeGlvc1JlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGxldCBjb25maWc6IEF4aW9zUmVxdWVzdENvbmZpZyA9IHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICB1cmwsXG4gICAgfTtcbiAgICBpZiAoaXNOb3RFbXB0eShvcHRpb25zKSkge1xuICAgICAgY29uZmlnID0geyAuLi5jb25maWcsIC4uLm9wdGlvbnMgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3Q8VD4oY29uZmlnLCByZXNwb25zZVBhcnNlcik7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcG9zdDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhPzogYW55LFxuICAgIG9wdGlvbnM/OiBBeGlvc1JlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGxldCBjb25maWc6IEF4aW9zUmVxdWVzdENvbmZpZyA9IHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsLFxuICAgICAgZGF0YSxcbiAgICB9O1xuICAgIGlmIChpc05vdEVtcHR5KG9wdGlvbnMpKSB7XG4gICAgICBjb25maWcgPSB7IC4uLmNvbmZpZywgLi4ub3B0aW9ucyB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxUPihjb25maWcsIHJlc3BvbnNlUGFyc2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwdXQ8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZGF0YT86IGFueSxcbiAgICBvcHRpb25zPzogQXhpb3NSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBsZXQgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7XG4gICAgICBtZXRob2Q6ICdwdXQnLFxuICAgICAgdXJsLFxuICAgICAgZGF0YSxcbiAgICB9O1xuICAgIGlmIChpc05vdEVtcHR5KG9wdGlvbnMpKSB7XG4gICAgICBjb25maWcgPSB7IC4uLmNvbmZpZywgLi4ub3B0aW9ucyB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxUPihjb25maWcsIHJlc3BvbnNlUGFyc2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwYXRjaDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhPzogYW55LFxuICAgIG9wdGlvbnM/OiBBeGlvc1JlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGxldCBjb25maWc6IEF4aW9zUmVxdWVzdENvbmZpZyA9IHtcbiAgICAgIG1ldGhvZDogJ3BhdGNoJyxcbiAgICAgIHVybCxcbiAgICAgIGRhdGEsXG4gICAgfTtcbiAgICBpZiAoaXNOb3RFbXB0eShvcHRpb25zKSkge1xuICAgICAgY29uZmlnID0geyAuLi5jb25maWcsIC4uLm9wdGlvbnMgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3Q8VD4oY29uZmlnLCByZXNwb25zZVBhcnNlcik7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlPFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBBeGlvc1JlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGxldCBjb25maWc6IEF4aW9zUmVxdWVzdENvbmZpZyA9IHtcbiAgICAgIG1ldGhvZDogJ2RlbGV0ZScsXG4gICAgICB1cmwsXG4gICAgfTtcbiAgICBpZiAoaXNOb3RFbXB0eShvcHRpb25zKSkge1xuICAgICAgY29uZmlnID0geyAuLi5jb25maWcsIC4uLm9wdGlvbnMgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3Q8VD4oY29uZmlnLCByZXNwb25zZVBhcnNlcik7XG4gIH1cblxuICAvLyBBZGQgb3RoZXIgSFRUUCBtZXRob2RzIGFzIG5lZWRlZFxufVxuIl19
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3NfY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25ldHdvcmsvY2xpZW50cy9heGlvc19jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0NBQWtDO0FBQ2xDLGtEQUF5RDtBQUN6RCxnREFBd0I7QUFDeEIsa0RBQTBCO0FBQzFCLCtDQUF5RDtBQVd6RCx1Q0FBeUM7QUFFekMsb0NBQW9DO0FBQ3BDLE1BQU0sb0JBQW9CLEdBQUc7SUFDM0IsU0FBUztJQUNULFVBQVU7SUFDVixjQUFjO0lBQ2QsZUFBZTtJQUNmLFFBQVE7SUFDUixhQUFhO0lBQ2IsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixVQUFVO0NBQ1gsQ0FBQztBQUVGLHFDQUFxQztBQUNyQyxNQUFNLHFCQUFxQixHQUFHO0lBQzVCLFNBQVM7SUFDVCxVQUFVO0lBQ1YsY0FBYztJQUNkLFNBQVM7SUFDVCxZQUFZO0lBQ1osZUFBZTtJQUNmLFFBQVE7SUFDUixhQUFhO0lBQ2IsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixVQUFVO0NBQ1gsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FDekIsU0FBa0MsRUFDbEMsYUFBdUI7SUFFdkIsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBdUMsRUFBRSxHQUFXLEVBQUUsRUFBRTtRQUNuRixJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQWEsV0FBVztJQU90QixZQUFZLE9B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Q3JELENBQUM7Q0FHRjtBQTlRRCxrQ0E4UUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWF3YWl0ICovXG5pbXBvcnQgYXhpb3MsIHsgQXhpb3NFcnJvciwgQXhpb3NJbnN0YW5jZSB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0IGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCB7IE5FVFdPUktfU1RBVFVTX0VSUl9NQVAgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgQXBpUmVzcG9uc2UsXG4gIEh0dHBDbGllbnQsXG4gIFJlc3BvbnNlUGFyc2VyLFxuICBBeGlvc0NsaWVudE9ic2VydmFiaWxpdHlDb25maWcsXG4gIFN0YXRUYWdzLFxuICBSZXF1ZXN0TG9nUGFyYW1zLFxuICBSZXNwb25zZUxvZ1BhcmFtcyxcbiAgUmVxdWVzdENvbmZpZyxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBpc05vdEVtcHR5IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG4vLyBBbGxvd2VkIGxhYmVscyBmb3IgdGltaW5nIG1ldHJpY3NcbmNvbnN0IFRJTUlOR19NRVRSSUNfTEFCRUxTID0gW1xuICAnZmVhdHVyZScsXG4gICdkZXN0VHlwZScsXG4gICdlbmRwb2ludFBhdGgnLFxuICAncmVxdWVzdE1ldGhvZCcsXG4gICdtb2R1bGUnLFxuICAnd29ya3NwYWNlSWQnLFxuICAnZGVzdGluYXRpb25JZCcsXG4gICdpbXBsZW1lbnRhdGlvbicsXG4gICdzb3VyY2VJZCcsXG5dO1xuXG4vLyBBbGxvd2VkIGxhYmVscyBmb3IgY291bnRlciBtZXRyaWNzXG5jb25zdCBDT1VOVEVSX01FVFJJQ19MQUJFTFMgPSBbXG4gICdmZWF0dXJlJyxcbiAgJ2Rlc3RUeXBlJyxcbiAgJ2VuZHBvaW50UGF0aCcsXG4gICdzdWNjZXNzJyxcbiAgJ3N0YXR1c0NvZGUnLFxuICAncmVxdWVzdE1ldGhvZCcsXG4gICdtb2R1bGUnLFxuICAnd29ya3NwYWNlSWQnLFxuICAnZGVzdGluYXRpb25JZCcsXG4gICdpbXBsZW1lbnRhdGlvbicsXG4gICdzb3VyY2VJZCcsXG5dO1xuXG4vKipcbiAqIEZpbHRlcnMgbGFiZWxzIHRvIG9ubHkgaW5jbHVkZSBhbGxvd2VkIGtleXNcbiAqIEBwYXJhbSBhbGxMYWJlbHMgLSBUaGUgY29tcGxldGUgc2V0IG9mIGxhYmVsc1xuICogQHBhcmFtIGFsbG93ZWRMYWJlbHMgLSBBcnJheSBvZiBhbGxvd2VkIGxhYmVsIGtleXNcbiAqIEByZXR1cm5zIEZpbHRlcmVkIGxhYmVscyBvYmplY3RcbiAqL1xuZnVuY3Rpb24gZmlsdGVyTWV0cmljTGFiZWxzKFxuICBhbGxMYWJlbHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBhbGxvd2VkTGFiZWxzOiBzdHJpbmdbXSxcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIGFsbG93ZWRMYWJlbHMucmVkdWNlKChmaWx0ZXJlZExhYmVsczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGFsbExhYmVsc1trZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB7IC4uLmZpbHRlcmVkTGFiZWxzLCBba2V5XTogYWxsTGFiZWxzW2tleV0gfTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlcmVkTGFiZWxzO1xuICB9LCB7fSk7XG59XG5cbi8qKlxuICogQSB3cmFwcGVyIGFyb3VuZCBheGlvcyB0byBtYWtlIGh0dHAgcmVxdWVzdHNcbiAqXG4gKiBAY2xhc3MgQXhpb3NDbGllbnRcbiAqIEBjbGFzc2Rlc2NcbiAqIFRoZSBgQXhpb3NDbGllbnRgIGNsYXNzIGlzIGEgd3JhcHBlciBhcm91bmQgdGhlIGF4aW9zIGxpYnJhcnkgdGhhdCBwcm92aWRlcyBhIHNpbXBsaWZpZWQgaW50ZXJmYWNlIGZvciBtYWtpbmcgSFRUUCByZXF1ZXN0cy4gSXQgaGFuZGxlcyB2YXJpb3VzIHR5cGVzIG9mIGVycm9ycyBhbmQgcHJvdmlkZXMgYSBjb25zaXN0ZW50IHJlc3BvbnNlIGZvcm1hdC5cbiAqXG4gKiBAcGFyYW0ge0F4aW9zUmVxdWVzdENvbmZpZ30gb3B0aW9ucyAtIFRoZSBkZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBodHRwIGNsaWVudFxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBheGlvc0NsaWVudCA9IG5ldyBBeGlvc0NsaWVudCh7IHRpbWVvdXQ6IDEwMDAgKiAxMCB9KTtcbiAqIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3NDbGllbnQucG9zdChcImh0dHBzOi8vZXhhbXBsZS5jb21cIiwgeyBmb286IFwiYmFyXCIgfSk7XG4gKiBpZiAocmVzcG9uc2UudHlwZSA9PT0gXCJzdWNjZXNzXCIpIHtcbiAqICAgY29uc29sZS5sb2cocmVzcG9uc2Uuc3RhdHVzQ29kZSk7XG4gKiAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLnJlc3BvbnNlQm9keSk7XG4gKiB9IGVsc2UgaWYgKHJlc3BvbnNlLnR5cGUgPT09IFwiYXBwbGljYXRpb24tZXJyb3JcIikge1xuICogICBjb25zb2xlLmxvZyhyZXNwb25zZS5zdGF0dXNDb2RlKTtcbiAqICAgY29uc29sZS5sb2cocmVzcG9uc2UubWVzc2FnZSk7XG4gKiAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLnJlc3BvbnNlQm9keSk7XG4gKiB9IGVsc2UgaWYgKHJlc3BvbnNlLnR5cGUgPT09IFwiY2xpZW50LWVycm9yXCIpIHtcbiAqICAgY29uc29sZS5sb2cocmVzcG9uc2Uuc3RhdHVzQ29kZSk7XG4gKiAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLm1lc3NhZ2UpO1xuICogfVxuICovXG5leHBvcnQgY2xhc3MgQXhpb3NDbGllbnQgaW1wbGVtZW50cyBIdHRwQ2xpZW50IHtcbiAgcHJpdmF0ZSBvcHRpb25zOiBSZXF1ZXN0Q29uZmlnO1xuXG4gIHByaXZhdGUgaW5zdGFuY2U6IEF4aW9zSW5zdGFuY2U7XG5cbiAgcHJpdmF0ZSBvYnNlcnZhYmlsaXR5Q29uZmlnOiBBeGlvc0NsaWVudE9ic2VydmFiaWxpdHlDb25maWc7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IFJlcXVlc3RDb25maWcsIG9ic2VydmFiaWxpdHlDb25maWc/OiBBeGlvc0NsaWVudE9ic2VydmFiaWxpdHlDb25maWcpIHtcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcbiAgICAgIHRpbWVvdXQ6IDEwMDAgKiAxMCxcbiAgICAgIC8vIGB3aXRoQ3JlZGVudGlhbHNgIGluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBjcm9zcy1zaXRlIEFjY2Vzcy1Db250cm9sIHJlcXVlc3RzIHNob3VsZCBiZSBtYWRlIHVzaW5nIGNyZWRlbnRpYWxzXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgICAgLy8gYHJlc3BvbnNlRW5jb2RpbmdgIGluZGljYXRlcyBlbmNvZGluZyB0byB1c2UgZm9yIGRlY29kaW5nIHJlc3BvbnNlcyAoTm9kZS5qcyBvbmx5KSxcbiAgICAgIHJlc3BvbnNlRW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgIC8vIGBtYXhCb2R5TGVuZ3RoYCAoTm9kZSBvbmx5IG9wdGlvbikgZGVmaW5lcyB0aGUgbWF4IHNpemUgb2YgdGhlIGh0dHAgcmVxdWVzdCBjb250ZW50IGluIGJ5dGVzIGFsbG93ZWQsXG4gICAgICBtYXhCb2R5TGVuZ3RoOiAxMDAwICogMTAwMCAqIDEwLFxuICAgICAgLy8gYG1heFJlZGlyZWN0c2AgZGVmaW5lcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVkaXJlY3RzIHRvIGZvbGxvdyBpbiBub2RlLmpzLFxuICAgICAgbWF4UmVkaXJlY3RzOiA1LFxuICAgICAgLy8gYGh0dHBBZ2VudGAgYW5kIGBodHRwc0FnZW50YCBkZWZpbmUgYSBjdXN0b20gYWdlbnQgdG8gYmUgdXNlZCB3aGVuIHBlcmZvcm1pbmcgaHR0cFxuICAgICAgaHR0cEFnZW50OiBuZXcgaHR0cC5BZ2VudCh7IGtlZXBBbGl2ZTogdHJ1ZSB9KSxcbiAgICAgIC8vIGFuZCBodHRwcyByZXF1ZXN0cywgcmVzcGVjdGl2ZWx5LCBpbiBub2RlLmpzLiBUaGlzIGFsbG93cyBvcHRpb25zIHRvIGJlIGFkZGVkIGxpa2UgYGtlZXBBbGl2ZWAgdGhhdCBhcmUgbm90IGVuYWJsZWQgYnkgZGVmYXVsdC5cbiAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7IGtlZXBBbGl2ZTogdHJ1ZSB9KSxcbiAgICB9O1xuICAgIHRoaXMub3B0aW9ucyA9IHsgLi4uZGVmYXVsdE9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICB0aGlzLmluc3RhbmNlID0gYXhpb3MuY3JlYXRlKHRoaXMub3B0aW9ucyk7XG5cbiAgICAvLyBNZXJnZSB3aXRoIGRlZmF1bHQgY29uZmlnIHRvIGVsaW1pbmF0ZSBudWxsIGNoZWNrc1xuICAgIGNvbnN0IGRlZmF1bHRPYnNlcnZhYmlsaXR5Q29uZmlnOiBBeGlvc0NsaWVudE9ic2VydmFiaWxpdHlDb25maWcgPSB7XG4gICAgICBsb2dnZXI6IHVuZGVmaW5lZCxcbiAgICAgIHN0YXRzQ2xpZW50OiB1bmRlZmluZWQsXG4gICAgICBkZWZhdWx0U3RhdFRhZ3M6IHt9LFxuICAgIH07XG4gICAgdGhpcy5vYnNlcnZhYmlsaXR5Q29uZmlnID0geyAuLi5kZWZhdWx0T2JzZXJ2YWJpbGl0eUNvbmZpZywgLi4ub2JzZXJ2YWJpbGl0eUNvbmZpZyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBtYWtlUmVxdWVzdDxUPihcbiAgICBjb25maWc6IFJlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGNvbnN0IHN0YXJ0VGltZXN0YW1wID0gbmV3IERhdGUoKTtcbiAgICAvLyBFeHRyYWN0IG1ldGFkYXRhIGZvciBsb2dnaW5nL21ldHJpY3NcbiAgICBjb25zdCBtZXRob2QgPSBjb25maWcubWV0aG9kPy50b1VwcGVyQ2FzZSgpIHx8ICdVTktOT1dOJztcbiAgICBjb25zdCB1cmwgPSBjb25maWcudXJsIHx8ICd1bmtub3duJztcbiAgICBjb25zdCBib2R5ID0gY29uZmlnLmRhdGEgfHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHN0YXRUYWdzOiBTdGF0VGFncyA9IHtcbiAgICAgIC4uLnRoaXMub2JzZXJ2YWJpbGl0eUNvbmZpZy5kZWZhdWx0U3RhdFRhZ3MsXG4gICAgICByZXF1ZXN0TWV0aG9kOiBtZXRob2QsXG4gICAgICBlbmRwb2ludFBhdGg6ICdkZWZhdWx0JyxcbiAgICAgIC4uLmNvbmZpZy5zdGF0VGFncyxcbiAgICB9O1xuXG4gICAgY29uc3QgbWV0YWRhdGFNZXRyaWNUYWdzID0ge1xuICAgICAgLi4uKHRoaXMub2JzZXJ2YWJpbGl0eUNvbmZpZy5kZWZhdWx0U3RhdFRhZ3M/Lm1ldGFkYXRhIHx8IHt9KSxcbiAgICAgIC4uLihjb25maWcuc3RhdFRhZ3M/Lm1ldGFkYXRhIHx8IHt9KSxcbiAgICB9O1xuXG4gICAgLy8gT3B0aW9uYWwgcmVxdWVzdCBsb2dnaW5nXG4gICAgY29uc3QgcmVxdWVzdExvZ1BhcmFtczogUmVxdWVzdExvZ1BhcmFtcyA9IHtcbiAgICAgIHJlcXVlc3REZXRhaWxzOiB7XG4gICAgICAgIG1ldGhvZDogbWV0aG9kIHx8ICd1bmRlZmluZWQnLFxuICAgICAgICB1cmw6IHVybCB8fCAndW5kZWZpbmVkJyxcbiAgICAgICAgYm9keTogYm9keSB8fCAndW5kZWZpbmVkJyxcbiAgICAgIH0sXG4gICAgICBtZXRhZGF0YTogc3RhdFRhZ3MubWV0YWRhdGEgfHwge30sXG4gICAgfTtcbiAgICB0aGlzLm9ic2VydmFiaWxpdHlDb25maWcubG9nZ2VyPy5yZXF1ZXN0TG9nKFxuICAgICAgYFtIVFRQXSAke21ldGhvZH0gJHt1cmx9IHJlcXVlc3RgLFxuICAgICAgcmVxdWVzdExvZ1BhcmFtcyxcbiAgICApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcXVlc3RDb25maWcgPSBjb25maWc7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuaW5zdGFuY2UucmVxdWVzdChyZXF1ZXN0Q29uZmlnKTtcbiAgICAgIGNvbnN0IHsgc3RhdHVzLCBkYXRhLCBoZWFkZXJzIH0gPSByZXNwb25zZTtcblxuICAgICAgLy8gT3B0aW9uYWwgcmVzcG9uc2UgbG9nZ2luZ1xuICAgICAgY29uc3QgcmVzcG9uc2VMb2dQYXJhbXM6IFJlc3BvbnNlTG9nUGFyYW1zID0ge1xuICAgICAgICByZXNwb25zZURldGFpbHM6IHtcbiAgICAgICAgICBzdGF0dXM6IHN0YXR1cyB8fCAwLFxuICAgICAgICAgIGJvZHk6IGRhdGEgfHwgJ3VuZGVmaW5lZCcsXG4gICAgICAgICAgaGVhZGVyczogaGVhZGVycyB8fCAndW5kZWZpbmVkJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWV0YWRhdGE6IHN0YXRUYWdzLm1ldGFkYXRhIHx8IHt9LFxuICAgICAgfTtcbiAgICAgIHRoaXMub2JzZXJ2YWJpbGl0eUNvbmZpZy5sb2dnZXI/LnJlc3BvbnNlTG9nKFxuICAgICAgICBgW0hUVFBdICR7bWV0aG9kfSAke3VybH0gcmVzcG9uc2VgLFxuICAgICAgICByZXNwb25zZUxvZ1BhcmFtcyxcbiAgICAgICk7XG5cbiAgICAgIC8vIE9wdGlvbmFsIHN1Y2Nlc3MgbWV0cmljc1xuICAgICAgY29uc3QgYWxsTGFiZWxzID0geyAuLi5tZXRhZGF0YU1ldHJpY1RhZ3MsIC4uLnN0YXRUYWdzLCBzdGF0dXNDb2RlOiBzdGF0dXMgfTtcblxuICAgICAgY29uc3QgdGltaW5nTGFiZWxzID0gZmlsdGVyTWV0cmljTGFiZWxzKGFsbExhYmVscywgVElNSU5HX01FVFJJQ19MQUJFTFMpO1xuICAgICAgdGhpcy5vYnNlcnZhYmlsaXR5Q29uZmlnLnN0YXRzQ2xpZW50Py50aW1pbmcoXG4gICAgICAgICdvdXRnb2luZ19yZXF1ZXN0X2xhdGVuY3knLFxuICAgICAgICBzdGFydFRpbWVzdGFtcCxcbiAgICAgICAgdGltaW5nTGFiZWxzLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgY291bnRlckxhYmVscyA9IGZpbHRlck1ldHJpY0xhYmVscyhhbGxMYWJlbHMsIENPVU5URVJfTUVUUklDX0xBQkVMUyk7XG4gICAgICB0aGlzLm9ic2VydmFiaWxpdHlDb25maWcuc3RhdHNDbGllbnQ/LmNvdW50ZXIoJ291dGdvaW5nX3JlcXVlc3RfY291bnQnLCAxLCBjb3VudGVyTGFiZWxzKTtcblxuICAgICAgaWYgKHJlc3BvbnNlUGFyc2VyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcGFyc2VkRGF0YSA9IHJlc3BvbnNlUGFyc2VyKGRhdGEpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICBzdGF0dXNDb2RlOiBzdGF0dXMsXG4gICAgICAgICAgICByZXNwb25zZUJvZHk6IHBhcnNlZERhdGEsXG4gICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc3QgdW5rbm93bkVycm9yID0gZXJyb3IgYXMgRXJyb3I7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6ICdjbGllbnQtZXJyb3InLFxuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogRXJyb3IgaGFzIHN0YXR1c1xuICAgICAgICAgICAgc3RhdHVzQ29kZTogdW5rbm93bkVycm9yLnN0YXR1cyB8fCA1MDAsXG4gICAgICAgICAgICBtZXNzYWdlOiBgRmFpbGVkIHRvIHBhcnNlIHJlc3BvbnNlIGRhdGE6ICR7dW5rbm93bkVycm9yLm1lc3NhZ2V9YCxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4geyB0eXBlOiAnc3VjY2VzcycsIHN0YXR1c0NvZGU6IHN0YXR1cywgcmVzcG9uc2VCb2R5OiBkYXRhLCBoZWFkZXJzIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIERldGVybWluZSBzdGF0dXMgY29kZSBmb3IgZXJyb3IgbWV0cmljc1xuICAgICAgbGV0IGVycm9yU3RhdHVzQ29kZSA9IDUwMDsgLy8gRGVmYXVsdCB0byA1MDAgZm9yIG5ldHdvcmsvdW5rbm93biBlcnJvcnNcbiAgICAgIGlmIChheGlvcy5pc0F4aW9zRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgIGNvbnN0IGF4aW9zRXJyb3IgPSBlcnJvciBhcyBBeGlvc0Vycm9yO1xuICAgICAgICBpZiAoYXhpb3NFcnJvci5yZXNwb25zZSkge1xuICAgICAgICAgIGVycm9yU3RhdHVzQ29kZSA9IGF4aW9zRXJyb3IucmVzcG9uc2Uuc3RhdHVzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE9wdGlvbmFsIGVycm9yIGxvZ2dpbmdcbiAgICAgIHRoaXMub2JzZXJ2YWJpbGl0eUNvbmZpZy5sb2dnZXI/LmVycm9yPy4oYFtIVFRQXSAke21ldGhvZH0gJHt1cmx9IGVycm9yYCwge1xuICAgICAgICBlcnJvcjogKGVycm9yIGFzIEVycm9yKS5tZXNzYWdlLFxuICAgICAgICBzdGF0VGFnczogeyAuLi5zdGF0VGFncywgc3RhdHVzQ29kZTogZXJyb3JTdGF0dXNDb2RlIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gT3B0aW9uYWwgZXJyb3IgbWV0cmljc1xuICAgICAgY29uc3QgYWxsRXJyb3JMYWJlbHMgPSB7IC4uLm1ldGFkYXRhTWV0cmljVGFncywgLi4uc3RhdFRhZ3MsIHN0YXR1c0NvZGU6IGVycm9yU3RhdHVzQ29kZSB9O1xuXG4gICAgICBjb25zdCB0aW1pbmdMYWJlbHMgPSBmaWx0ZXJNZXRyaWNMYWJlbHMoYWxsRXJyb3JMYWJlbHMsIFRJTUlOR19NRVRSSUNfTEFCRUxTKTtcbiAgICAgIHRoaXMub2JzZXJ2YWJpbGl0eUNvbmZpZy5zdGF0c0NsaWVudD8udGltaW5nKFxuICAgICAgICAnb3V0Z29pbmdfcmVxdWVzdF9sYXRlbmN5JyxcbiAgICAgICAgc3RhcnRUaW1lc3RhbXAsXG4gICAgICAgIHRpbWluZ0xhYmVscyxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGNvdW50ZXJMYWJlbHMgPSBmaWx0ZXJNZXRyaWNMYWJlbHMoYWxsRXJyb3JMYWJlbHMsIENPVU5URVJfTUVUUklDX0xBQkVMUyk7XG4gICAgICB0aGlzLm9ic2VydmFiaWxpdHlDb25maWcuc3RhdHNDbGllbnQ/LmNvdW50ZXIoJ291dGdvaW5nX3JlcXVlc3RfY291bnQnLCAxLCBjb3VudGVyTGFiZWxzKTtcblxuICAgICAgaWYgKGF4aW9zLmlzQXhpb3NFcnJvcihlcnJvcikpIHtcbiAgICAgICAgY29uc3QgYXhpb3NFcnJvciA9IGVycm9yIGFzIEF4aW9zRXJyb3I7XG4gICAgICAgIGlmIChheGlvc0Vycm9yLnJlc3BvbnNlKSB7XG4gICAgICAgICAgY29uc3QgeyByZXNwb25zZSB9ID0gYXhpb3NFcnJvcjtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uLWVycm9yJyxcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLnN0YXR1c1RleHQsXG4gICAgICAgICAgICByZXNwb25zZUJvZHk6IHJlc3BvbnNlLmRhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGF4aW9zRXJyb3IuY29kZSkge1xuICAgICAgICAgIGNvbnN0IHJlc3AgPSBORVRXT1JLX1NUQVRVU19FUlJfTUFQW2F4aW9zRXJyb3IuY29kZV07XG4gICAgICAgICAgaWYgKCFyZXNwKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlOiAnY2xpZW50LWVycm9yJyxcbiAgICAgICAgICAgICAgc3RhdHVzQ29kZTogNTAwLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBgVW5rbm93biBFcnJvcjoke2F4aW9zRXJyb3IubWVzc2FnZX1gLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6ICdjbGllbnQtZXJyb3InLFxuICAgICAgICAgICAgc3RhdHVzQ29kZTogcmVzcC5zdGF0dXMsXG4gICAgICAgICAgICBtZXNzYWdlOiByZXNwLm1lc3NhZ2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCB1bmtub3duRXJyb3IgPSBlcnJvciBhcyBFcnJvcjtcbiAgICAgIGNvbnN0IHN0YXR1cyA9IDUwMDtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB1bmtub3duRXJyb3IubWVzc2FnZSB8fCAnVW5rbm93biBFcnJvcic7XG5cbiAgICAgIHJldHVybiB7IHR5cGU6ICdjbGllbnQtZXJyb3InLCBzdGF0dXNDb2RlOiBzdGF0dXMsIG1lc3NhZ2UgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0PFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBsZXQgY29uZmlnOiBSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIHVybCxcbiAgICB9O1xuICAgIGlmIChpc05vdEVtcHR5KG9wdGlvbnMpKSB7XG4gICAgICBjb25maWcgPSB7IC4uLmNvbmZpZywgLi4ub3B0aW9ucyB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxUPihjb25maWcsIHJlc3BvbnNlUGFyc2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwb3N0PFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGRhdGE/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBsZXQgY29uZmlnOiBSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmwsXG4gICAgICBkYXRhLFxuICAgIH07XG4gICAgaWYgKGlzTm90RW1wdHkob3B0aW9ucykpIHtcbiAgICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5vcHRpb25zIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KGNvbmZpZywgcmVzcG9uc2VQYXJzZXIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHB1dDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUmVxdWVzdENvbmZpZyxcbiAgICByZXNwb25zZVBhcnNlcj86IFJlc3BvbnNlUGFyc2VyPFQ+LFxuICApOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgbGV0IGNvbmZpZzogUmVxdWVzdENvbmZpZyA9IHtcbiAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgICB1cmwsXG4gICAgICBkYXRhLFxuICAgIH07XG4gICAgaWYgKGlzTm90RW1wdHkob3B0aW9ucykpIHtcbiAgICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5vcHRpb25zIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KGNvbmZpZywgcmVzcG9uc2VQYXJzZXIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHBhdGNoPFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGRhdGE/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBsZXQgY29uZmlnOiBSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgbWV0aG9kOiAncGF0Y2gnLFxuICAgICAgdXJsLFxuICAgICAgZGF0YSxcbiAgICB9O1xuICAgIGlmIChpc05vdEVtcHR5KG9wdGlvbnMpKSB7XG4gICAgICBjb25maWcgPSB7IC4uLmNvbmZpZywgLi4ub3B0aW9ucyB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxUPihjb25maWcsIHJlc3BvbnNlUGFyc2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGU8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IFJlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGxldCBjb25maWc6IFJlcXVlc3RDb25maWcgPSB7XG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgdXJsLFxuICAgIH07XG4gICAgaWYgKGlzTm90RW1wdHkob3B0aW9ucykpIHtcbiAgICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5vcHRpb25zIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KGNvbmZpZywgcmVzcG9uc2VQYXJzZXIpO1xuICB9XG5cbiAgLy8gQWRkIG90aGVyIEhUVFAgbWV0aG9kcyBhcyBuZWVkZWRcbn1cbiJdfQ==
@@ -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,112 @@ 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
- export type RequestConfig = AxiosRequestConfig;
23
+ export type RequestConfig = AxiosRequestConfig & {
24
+ statTags?: StatTags;
25
+ };
26
+ /**
27
+ * HTTP Logger interface compatible with transformer's logger pattern
28
+ * Provides request/response logging capabilities for HTTP wrapper
29
+ */
30
+ export type Metadata = {
31
+ destinationId?: string;
32
+ sourceId?: string;
33
+ workspaceId?: string;
34
+ destType?: string;
35
+ destinationType?: string;
36
+ module?: string;
37
+ implementation?: string;
38
+ feature?: string;
39
+ };
40
+ export type RequestLogParams = {
41
+ metadata?: Metadata | Metadata[] | undefined;
42
+ requestDetails: {
43
+ url?: string;
44
+ body?: unknown;
45
+ method?: string;
46
+ [key: string]: unknown;
47
+ };
48
+ };
49
+ export type ResponseLogParams = {
50
+ metadata?: Metadata | Metadata[] | undefined;
51
+ responseDetails: {
52
+ body?: unknown;
53
+ status?: number;
54
+ headers?: Record<string, string> | unknown;
55
+ [key: string]: unknown;
56
+ };
57
+ };
58
+ export interface IHttpLogger {
59
+ requestLog(message: string, data?: RequestLogParams): void;
60
+ responseLog(message: string, data?: ResponseLogParams): void;
61
+ error?(message: string, data?: unknown): void;
62
+ warn?(message: string, data?: unknown): void;
63
+ info?(message: string, data?: unknown): void;
64
+ debug?(message: string, data?: unknown): void;
65
+ }
66
+ /**
67
+ * HTTP Stats Client interface compatible with transformer's stats pattern
68
+ * Provides metrics collection capabilities for HTTP wrapper
69
+ */
70
+ export interface IHttpStatsClient {
71
+ timing(name: string, value: Date, tags?: Record<string, unknown>): void;
72
+ increment(name: string, value?: number, tags?: Record<string, unknown>): void;
73
+ counter(name: string, value: number, tags?: Record<string, unknown>): void;
74
+ }
75
+ /**
76
+ * StatTags interface for metadata and metrics tagging
77
+ * Compatible with transformer's statTags structure
78
+ */
79
+ export interface StatTags {
80
+ [key: string]: unknown;
81
+ cluster?: string;
82
+ namespace?: string;
83
+ instanceName?: string;
84
+ destType?: string;
85
+ destinationId?: string;
86
+ workspaceId?: string;
87
+ sourceId?: string;
88
+ feature?: string;
89
+ endpointPath?: string;
90
+ requestMethod?: string;
91
+ module?: string;
92
+ statusCode?: number;
93
+ implementation?: string;
94
+ success?: boolean;
95
+ metadata?: Metadata | Metadata[];
96
+ }
97
+ /**
98
+ * HTTP Client Configuration interface with optional dependencies
99
+ * Enables flexible configuration for different usage scenarios
100
+ */
101
+ export interface HttpClientConfig {
102
+ logger?: IHttpLogger;
103
+ statsClient?: IHttpStatsClient;
104
+ defaultTimeout?: number;
105
+ defaultStatTags?: Record<string, unknown>;
106
+ }
107
+ /**
108
+ * AxiosClient Observability Configuration interface for optional metrics and logging
109
+ */
110
+ export interface AxiosClientObservabilityConfig {
111
+ statsClient?: IHttpStatsClient;
112
+ logger?: IHttpLogger;
113
+ defaultStatTags?: Record<string, unknown>;
114
+ }
115
+ /**
116
+ * @deprecated Use AxiosClientObservabilityConfig instead
117
+ */
118
+ export interface AxiosClientConfig extends AxiosClientObservabilityConfig {
119
+ }
24
120
  export interface HttpClient {
25
- post: <T>(url: string, data: any, options?: RequestConfig, responseParser?: ResponseParser<T>) => Promise<ApiResponse<T>>;
121
+ post: <T>(url: string, data: unknown, options?: RequestConfig, responseParser?: ResponseParser<T>) => Promise<ApiResponse<T>>;
26
122
  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>>;
123
+ put: <T>(url: string, data: unknown, options?: RequestConfig, responseParser?: ResponseParser<T>) => Promise<ApiResponse<T>>;
124
+ patch: <T>(url: string, data: unknown, options?: RequestConfig, responseParser?: ResponseParser<T>) => Promise<ApiResponse<T>>;
29
125
  delete: <T>(url: string, options?: RequestConfig, responseParser?: ResponseParser<T>) => Promise<ApiResponse<T>>;
30
126
  }
31
127
  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+ID1cbiAgfCBTdWNjZXNzZnVsQXBpUmVzcG9uc2U8VD5cbiAgfCBDbGllbnRFcnJvckFwaVJlc3BvbnNlXG4gIHwgQXBwbGljYXRpb25FcnJvckFwaVJlc3BvbnNlO1xuXG4vLyBPdGhlciBjbGllbnQgUmVxdXNldCBjb25maWcgdHlwZXMgdG8gYmUgYWRkZWQgaGVyZVxuZXhwb3J0IHR5cGUgUmVxdWVzdENvbmZpZyA9IEF4aW9zUmVxdWVzdENvbmZpZyAmIHtcbiAgc3RhdFRhZ3M/OiBTdGF0VGFncztcbn07XG5cbi8qKlxuICogSFRUUCBMb2dnZXIgaW50ZXJmYWNlIGNvbXBhdGlibGUgd2l0aCB0cmFuc2Zvcm1lcidzIGxvZ2dlciBwYXR0ZXJuXG4gKiBQcm92aWRlcyByZXF1ZXN0L3Jlc3BvbnNlIGxvZ2dpbmcgY2FwYWJpbGl0aWVzIGZvciBIVFRQIHdyYXBwZXJcbiAqL1xuXG5leHBvcnQgdHlwZSBNZXRhZGF0YSA9IHtcbiAgZGVzdGluYXRpb25JZD86IHN0cmluZztcbiAgc291cmNlSWQ/OiBzdHJpbmc7XG4gIHdvcmtzcGFjZUlkPzogc3RyaW5nO1xuICBkZXN0VHlwZT86IHN0cmluZztcbiAgZGVzdGluYXRpb25UeXBlPzogc3RyaW5nO1xuICBtb2R1bGU/OiBzdHJpbmc7XG4gIGltcGxlbWVudGF0aW9uPzogc3RyaW5nO1xuICBmZWF0dXJlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgUmVxdWVzdExvZ1BhcmFtcyA9IHtcbiAgbWV0YWRhdGE/OiBNZXRhZGF0YSB8IE1ldGFkYXRhW10gfCB1bmRlZmluZWQ7XG4gIHJlcXVlc3REZXRhaWxzOiB7XG4gICAgdXJsPzogc3RyaW5nO1xuICAgIGJvZHk/OiB1bmtub3duO1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgUmVzcG9uc2VMb2dQYXJhbXMgPSB7XG4gIG1ldGFkYXRhPzogTWV0YWRhdGEgfCBNZXRhZGF0YVtdIHwgdW5kZWZpbmVkO1xuICByZXNwb25zZURldGFpbHM6IHtcbiAgICBib2R5PzogdW5rbm93bjtcbiAgICBzdGF0dXM/OiBudW1iZXI7XG4gICAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmtub3duO1xuICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gIH07XG59O1xuZXhwb3J0IGludGVyZmFjZSBJSHR0cExvZ2dlciB7XG4gIC8vIFJlcXVpcmVkIG1ldGhvZHMgZm9yIEhUVFAgcmVxdWVzdC9yZXNwb25zZSBsb2dnaW5nXG4gIHJlcXVlc3RMb2cobWVzc2FnZTogc3RyaW5nLCBkYXRhPzogUmVxdWVzdExvZ1BhcmFtcyk6IHZvaWQ7XG4gIHJlc3BvbnNlTG9nKG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IFJlc3BvbnNlTG9nUGFyYW1zKTogdm9pZDtcblxuICAvLyBPcHRpb25hbCBzdGFuZGFyZCBsb2dnaW5nIG1ldGhvZHNcbiAgZXJyb3I/KG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IHVua25vd24pOiB2b2lkO1xuICB3YXJuPyhtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKTogdm9pZDtcbiAgaW5mbz8obWVzc2FnZTogc3RyaW5nLCBkYXRhPzogdW5rbm93bik6IHZvaWQ7XG4gIGRlYnVnPyhtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKTogdm9pZDtcbn1cblxuLyoqXG4gKiBIVFRQIFN0YXRzIENsaWVudCBpbnRlcmZhY2UgY29tcGF0aWJsZSB3aXRoIHRyYW5zZm9ybWVyJ3Mgc3RhdHMgcGF0dGVyblxuICogUHJvdmlkZXMgbWV0cmljcyBjb2xsZWN0aW9uIGNhcGFiaWxpdGllcyBmb3IgSFRUUCB3cmFwcGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUh0dHBTdGF0c0NsaWVudCB7XG4gIC8vIFJlcXVpcmVkIG1ldGhvZHMgZm9yIEhUVFAgbWV0cmljc1xuICB0aW1pbmcobmFtZTogc3RyaW5nLCB2YWx1ZTogRGF0ZSwgdGFncz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZDtcbiAgaW5jcmVtZW50KG5hbWU6IHN0cmluZywgdmFsdWU/OiBudW1iZXIsIHRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQ7XG4gIGNvdW50ZXIobmFtZTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCB0YWdzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkO1xufVxuXG4vKipcbiAqIFN0YXRUYWdzIGludGVyZmFjZSBmb3IgbWV0YWRhdGEgYW5kIG1ldHJpY3MgdGFnZ2luZ1xuICogQ29tcGF0aWJsZSB3aXRoIHRyYW5zZm9ybWVyJ3Mgc3RhdFRhZ3Mgc3RydWN0dXJlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdFRhZ3Mge1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICBjbHVzdGVyPzogc3RyaW5nO1xuICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gIGluc3RhbmNlTmFtZT86IHN0cmluZztcbiAgZGVzdFR5cGU/OiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uSWQ/OiBzdHJpbmc7XG4gIHdvcmtzcGFjZUlkPzogc3RyaW5nO1xuICBzb3VyY2VJZD86IHN0cmluZztcbiAgZmVhdHVyZT86IHN0cmluZztcbiAgZW5kcG9pbnRQYXRoPzogc3RyaW5nO1xuICByZXF1ZXN0TWV0aG9kPzogc3RyaW5nO1xuICBtb2R1bGU/OiBzdHJpbmc7XG4gIHN0YXR1c0NvZGU/OiBudW1iZXI7XG4gIGltcGxlbWVudGF0aW9uPzogc3RyaW5nO1xuICBzdWNjZXNzPzogYm9vbGVhbjtcbiAgbWV0YWRhdGE/OiBNZXRhZGF0YSB8IE1ldGFkYXRhW107XG59XG5cbi8qKlxuICogSFRUUCBDbGllbnQgQ29uZmlndXJhdGlvbiBpbnRlcmZhY2Ugd2l0aCBvcHRpb25hbCBkZXBlbmRlbmNpZXNcbiAqIEVuYWJsZXMgZmxleGlibGUgY29uZmlndXJhdGlvbiBmb3IgZGlmZmVyZW50IHVzYWdlIHNjZW5hcmlvc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBDbGllbnRDb25maWcge1xuICAvLyBPcHRpb25hbCBkZXBlbmRlbmNpZXMgLSBiYWNrd2FyZCBjb21wYXRpYmxlXG4gIGxvZ2dlcj86IElIdHRwTG9nZ2VyO1xuICBzdGF0c0NsaWVudD86IElIdHRwU3RhdHNDbGllbnQ7XG5cbiAgLy8gRGVmYXVsdCBzZXR0aW5nc1xuICBkZWZhdWx0VGltZW91dD86IG51bWJlcjtcbiAgZGVmYXVsdFN0YXRUYWdzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogQXhpb3NDbGllbnQgT2JzZXJ2YWJpbGl0eSBDb25maWd1cmF0aW9uIGludGVyZmFjZSBmb3Igb3B0aW9uYWwgbWV0cmljcyBhbmQgbG9nZ2luZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEF4aW9zQ2xpZW50T2JzZXJ2YWJpbGl0eUNvbmZpZyB7XG4gIC8vIFRvIGVuYWJsZSBtZXRyaWNzLCBwcm92aWRlIGEgc3RhdHNDbGllbnRcbiAgc3RhdHNDbGllbnQ/OiBJSHR0cFN0YXRzQ2xpZW50O1xuXG4gIC8vIFRvIGVuYWJsZSByZXF1ZXN0L3Jlc3BvbnNlIGxvZ2dpbmcsIHByb3ZpZGUgYSBsb2dnZXJcbiAgbG9nZ2VyPzogSUh0dHBMb2dnZXI7XG4gIGRlZmF1bHRTdGF0VGFncz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBBeGlvc0NsaWVudE9ic2VydmFiaWxpdHlDb25maWcgaW5zdGVhZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF4aW9zQ2xpZW50Q29uZmlnIGV4dGVuZHMgQXhpb3NDbGllbnRPYnNlcnZhYmlsaXR5Q29uZmlnIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudCB7XG4gIHBvc3Q6IDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhOiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICkgPT4gUHJvbWlzZTxBcGlSZXNwb25zZTxUPj47XG4gIGdldDogPFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICkgPT4gUHJvbWlzZTxBcGlSZXNwb25zZTxUPj47XG5cbiAgcHV0OiA8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZGF0YTogdW5rbm93bixcbiAgICBvcHRpb25zPzogUmVxdWVzdENvbmZpZyxcbiAgICByZXNwb25zZVBhcnNlcj86IFJlc3BvbnNlUGFyc2VyPFQ+LFxuICApID0+IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+O1xuXG4gIHBhdGNoOiA8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZGF0YTogdW5rbm93bixcbiAgICBvcHRpb25zPzogUmVxdWVzdENvbmZpZyxcbiAgICByZXNwb25zZVBhcnNlcj86IFJlc3BvbnNlUGFyc2VyPFQ+LFxuICApID0+IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+O1xuXG4gIGRlbGV0ZTogPFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICkgPT4gUHJvbWlzZTxBcGlSZXNwb25zZTxUPj47XG59XG4iXX0=
@@ -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