@betterview/integration-toolkit 7.6.11 → 7.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/lib/Network/axios-error-handling.d.ts +5 -2
  2. package/lib/Network/axios-error-handling.d.ts.map +1 -1
  3. package/lib/Network/axios-error-handling.js +10 -4
  4. package/lib/Network/axios-error-handling.js.map +1 -1
  5. package/lib/Network/index.d.ts +28 -1
  6. package/lib/Network/index.d.ts.map +1 -1
  7. package/lib/Network/index.js +82 -4
  8. package/lib/Network/index.js.map +1 -1
  9. package/lib/types/Integration.d.ts +9 -3
  10. package/lib/types/Integration.d.ts.map +1 -1
  11. package/lib/types/Integration.js +16 -2
  12. package/lib/types/Integration.js.map +1 -1
  13. package/lib/types/Metrics.d.ts +54 -0
  14. package/lib/types/Metrics.d.ts.map +1 -0
  15. package/lib/types/Metrics.js +39 -0
  16. package/lib/types/Metrics.js.map +1 -0
  17. package/lib/types/Network.d.ts +28 -0
  18. package/lib/types/Network.d.ts.map +1 -0
  19. package/lib/types/Network.js +3 -0
  20. package/lib/types/Network.js.map +1 -0
  21. package/lib/types/RateLimiter.d.ts +7 -0
  22. package/lib/types/RateLimiter.d.ts.map +1 -0
  23. package/lib/types/RateLimiter.js +3 -0
  24. package/lib/types/RateLimiter.js.map +1 -0
  25. package/lib/types/formatters/types/index.d.ts +10 -10
  26. package/lib/types/formatters/types/index.d.ts.map +1 -1
  27. package/lib/types/formatters/types/index.js +8 -8
  28. package/lib/types/formatters/types/index.js.map +1 -1
  29. package/lib/types/index.d.ts +4 -1
  30. package/lib/types/index.d.ts.map +1 -1
  31. package/lib/types/index.js +4 -1
  32. package/lib/types/index.js.map +1 -1
  33. package/lib/utils/index.d.ts +1 -0
  34. package/lib/utils/index.d.ts.map +1 -1
  35. package/lib/utils/index.js +5 -1
  36. package/lib/utils/index.js.map +1 -1
  37. package/package.json +1 -1
@@ -9,7 +9,7 @@ export interface SimplifiedError {
9
9
  responseHeaders?: Record<string, string>;
10
10
  /**
11
11
  * server error: the server responded with an error
12
- * no repsonse: no response was received from the server
12
+ * no response: no response was received from the server
13
13
  * request init failure: axios failed to create the request to send
14
14
  */
15
15
  friendly: FriendlyName;
@@ -18,8 +18,11 @@ export interface SimplifiedError {
18
18
  export declare function simplifyError(err: AxiosError): SimplifiedError;
19
19
  export interface IWrapResult<T> {
20
20
  data?: T;
21
- headers?: Record<string, string>;
21
+ headers: Record<string, string> | undefined;
22
22
  err?: SimplifiedError;
23
+ status: number | undefined;
24
+ statusText: string | undefined;
25
+ retries: number | undefined;
23
26
  }
24
27
  export interface IRetryPolicy {
25
28
  retryTimes: number;
@@ -1 +1 @@
1
- {"version":3,"file":"axios-error-handling.d.ts","sourceRoot":"","sources":["../../src/Network/axios-error-handling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAIlD,oBAAY,YAAY,GACpB,cAAc,GACd,aAAa,GACb,sBAAsB,GACtB,YAAY,GACZ,oBAAoB,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC;;;;OAIG;IACH,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED,yHAAyH;AACzH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,eAAe,CAa9D;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,WAAW,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC;CAC1C;AAeD,2HAA2H;AAC3H,wBAAsB,IAAI,CAAC,CAAC,EAC1B,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EACvD,WAAW,GAAE,YAAY,GAAG,SAAqB,EACjD,UAAU,GAAE,MAAU,GACrB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CA8BzB"}
1
+ {"version":3,"file":"axios-error-handling.d.ts","sourceRoot":"","sources":["../../src/Network/axios-error-handling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAIlD,oBAAY,YAAY,GACpB,cAAc,GACd,aAAa,GACb,sBAAsB,GACtB,YAAY,GACZ,oBAAoB,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC;;;;OAIG;IACH,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED,yHAAyH;AACzH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,eAAe,CAa9D;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5C,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,WAAW,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC;CAC1C;AAeD,2HAA2H;AAC3H,wBAAsB,IAAI,CAAC,CAAC,EAC1B,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EACvD,WAAW,GAAE,YAAY,GAAG,SAAqB,EACjD,UAAU,GAAE,MAAU,GACrB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CA8BzB"}
@@ -70,17 +70,23 @@ async function logAxiosError(error) {
70
70
  `message=${error.message};`;
71
71
  await console.debug(logMessage);
72
72
  }
73
- function processResponse(response) {
73
+ function processResponse(response, retries) {
74
74
  return {
75
75
  data: response.data,
76
- headers: response.headers
76
+ headers: response.headers,
77
+ status: response.status,
78
+ statusText: response.statusText,
79
+ retries
77
80
  };
78
81
  }
79
- async function processError(error) {
82
+ async function processError(error, retries) {
80
83
  const simpleError = await simplifyError(error);
81
84
  return {
82
85
  err: simpleError,
83
- headers: simpleError.responseHeaders
86
+ headers: simpleError.responseHeaders ?? {},
87
+ status: simpleError.statusCode,
88
+ statusText: simpleError.code,
89
+ retries
84
90
  };
85
91
  }
86
92
  //# sourceMappingURL=axios-error-handling.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"axios-error-handling.js","sourceRoot":"","sources":["../../src/Network/axios-error-handling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"axios-error-handling.js","sourceRoot":"","sources":["../../src/Network/axios-error-handling.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { AxiosRequestConfig } from 'axios';
2
+ import { RateLimiter } from 'types/RateLimiter';
3
+ import { IntegrationMetrics, MetricsMeter } from '../types/Metrics';
4
+ import { INetworkIntegrationDetails, RateLimitPolicy } from '../types/Network';
2
5
  import { IRetryPolicy, IWrapResult } from './axios-error-handling';
3
- export { IRetryPolicy } from './axios-error-handling';
4
6
  export declare function get<T = Record<string, any>>(url: string, config?: AxiosRequestConfig, retryPolicy?: IRetryPolicy): Promise<{
5
7
  request_url: string;
6
8
  result: IWrapResult<T>;
@@ -9,4 +11,29 @@ export declare function post<T = any, U = Record<string, any>>(url: string, data
9
11
  request_url: string;
10
12
  result: IWrapResult<U>;
11
13
  }>;
14
+ export default class Network {
15
+ protected meter: MetricsMeter;
16
+ protected details: INetworkIntegrationDetails;
17
+ protected metrics: IntegrationMetrics;
18
+ protected rateLimiter?: RateLimiter;
19
+ constructor(meter: MetricsMeter, details: INetworkIntegrationDetails, rateLimiter?: RateLimiter);
20
+ static get<T = Record<string, any>>(url: string, config?: AxiosRequestConfig, retryPolicy?: IRetryPolicy): Promise<{
21
+ request_url: string;
22
+ result: IWrapResult<T>;
23
+ }>;
24
+ get<T = Record<string, any>>(url: string, config?: AxiosRequestConfig, retryPolicy?: IRetryPolicy, rateLimitPolicy?: RateLimitPolicy): Promise<{
25
+ request_url: string;
26
+ result: IWrapResult<T>;
27
+ }>;
28
+ static post<T = any, U = Record<string, any>>(url: string, data: T, config?: AxiosRequestConfig, retryPolicy?: IRetryPolicy): Promise<{
29
+ request_url: string;
30
+ result: IWrapResult<U>;
31
+ }>;
32
+ post<T = any, U = Record<string, any>>(url: string, data: T, config?: AxiosRequestConfig, retryPolicy?: IRetryPolicy, rateLimitPolicy?: RateLimitPolicy): Promise<{
33
+ request_url: string;
34
+ result: IWrapResult<U>;
35
+ }>;
36
+ private processRateLimit;
37
+ private recordMetrics;
38
+ }
12
39
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Network/index.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAQ,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,wBAAsB,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/C,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,kBAAkB,EAC3B,WAAW,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,CAG1D;AAED,wBAAsB,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,MAAM,CAAC,EAAE,kBAAkB,EAC3B,WAAW,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,CAG1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Network/index.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAA4B,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAQ,MAAM,wBAAwB,CAAC;AAEzE,wBAAsB,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/C,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,kBAAkB,EAC3B,WAAW,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,CAE1D;AAED,wBAAsB,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,MAAM,CAAC,EAAE,kBAAkB,EAC3B,WAAW,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,CAE1D;AAED,MAAM,CAAC,OAAO,OAAO,OAAO;IAId,SAAS,CAAC,KAAK,EAAE,YAAY;IAAE,SAAS,CAAC,OAAO,EAAE,0BAA0B;IAHxF,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACtC,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;gBAEd,KAAK,EAAE,YAAY,EAAY,OAAO,EAAE,0BAA0B,EAAE,WAAW,CAAC,EAAE,WAAW;WAKtG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACtC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,kBAAkB,EAC3B,WAAW,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;IAK9C,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACtC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,kBAAkB,EAC3B,WAAW,CAAC,EAAE,YAAY,EAC1B,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;WAQ9C,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,MAAM,CAAC,EAAE,kBAAkB,EAC3B,WAAW,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;IAK9C,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,MAAM,CAAC,EAAE,kBAAkB,EAC3B,WAAW,CAAC,EAAE,YAAY,EAC1B,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;YAQ7C,gBAAgB;IAe9B,OAAO,CAAC,aAAa;CAgCtB"}
@@ -5,15 +5,93 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.post = exports.get = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
+ const utils_1 = require("utils");
9
+ const Metrics_1 = require("../types/Metrics");
8
10
  const axios_error_handling_1 = require("./axios-error-handling");
9
11
  async function get(url, config, retryPolicy) {
10
- const result = await (0, axios_error_handling_1.wrap)(axios_1.default.get(url, config), retryPolicy);
11
- return { request_url: url, result };
12
+ return Network.get(url, config, retryPolicy);
12
13
  }
13
14
  exports.get = get;
14
15
  async function post(url, data, config, retryPolicy) {
15
- const result = await (0, axios_error_handling_1.wrap)(axios_1.default.post(url, data, config), retryPolicy);
16
- return { request_url: url, result };
16
+ return Network.post(url, data, config, retryPolicy);
17
17
  }
18
18
  exports.post = post;
19
+ class Network {
20
+ meter;
21
+ details;
22
+ metrics;
23
+ rateLimiter;
24
+ constructor(meter, details, rateLimiter) {
25
+ this.meter = meter;
26
+ this.details = details;
27
+ this.metrics = new Metrics_1.IntegrationMetrics(meter);
28
+ this.rateLimiter = rateLimiter;
29
+ }
30
+ static async get(url, config, retryPolicy) {
31
+ const result = await (0, axios_error_handling_1.wrap)(axios_1.default.get(url, config), retryPolicy);
32
+ return { request_url: url, result };
33
+ }
34
+ async get(url, config, retryPolicy, rateLimitPolicy) {
35
+ const timer = this.metrics?.startTimer();
36
+ await this.processRateLimit(rateLimitPolicy);
37
+ const response = await Network.get(url, config, retryPolicy);
38
+ this.recordMetrics(url, response.result, timer?.end());
39
+ return response;
40
+ }
41
+ static async post(url, data, config, retryPolicy) {
42
+ const result = await (0, axios_error_handling_1.wrap)(axios_1.default.post(url, data, config), retryPolicy);
43
+ return { request_url: url, result };
44
+ }
45
+ async post(url, data, config, retryPolicy, rateLimitPolicy) {
46
+ const timer = this.metrics?.startTimer();
47
+ await this.processRateLimit(rateLimitPolicy);
48
+ const response = await Network.post(url, data, config, retryPolicy);
49
+ this.recordMetrics(url, response.result, timer?.end());
50
+ return response;
51
+ }
52
+ async processRateLimit(policy) {
53
+ if (!policy || !this.rateLimiter)
54
+ return;
55
+ let attempts = 0;
56
+ do {
57
+ const calls = await this.rateLimiter.incrementRateLimitPerSecond(policy.key, attempts);
58
+ if (calls <= policy.maxCallsPerSecond)
59
+ break;
60
+ await (0, utils_1.sleep)(policy.retryWaitMs);
61
+ } while (++attempts < policy.retryTimes);
62
+ if (attempts === policy.retryTimes) {
63
+ throw new Error(`Rate limit exceeded for key ${policy.key}`);
64
+ }
65
+ }
66
+ recordMetrics(requestUrl, result, duration) {
67
+ if (!this.metrics)
68
+ return;
69
+ try {
70
+ const statusCode = result.status
71
+ ? result.status
72
+ : result.statusText && ['ECONNABORTED', 'ETIMEDOUT', 'ESOCKETTIMEDOUT'].includes(result.statusText) // These statuses don't have a statusCode
73
+ ? 408
74
+ : 500;
75
+ const parsedUrl = new URL(requestUrl);
76
+ let url = parsedUrl.origin;
77
+ if (parsedUrl.pathname?.includes('/datasets/'))
78
+ url += parsedUrl.pathname;
79
+ const attrs = {
80
+ url,
81
+ integration: this.details?.name,
82
+ statusCode
83
+ };
84
+ if (duration !== undefined)
85
+ this.metrics.requestDuration.record(duration, attrs);
86
+ const contentLength = result.headers?.['content-length'] ? parseInt(result.headers['content-length'], 10) : null;
87
+ if (contentLength)
88
+ this.metrics.requestContentSize.record(contentLength, attrs);
89
+ }
90
+ catch (error) {
91
+ // eslint-disable-next-line no-console
92
+ console.error(error);
93
+ }
94
+ }
95
+ }
96
+ exports.default = Network;
19
97
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Network/index.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAkD;AAClD,iEAAyE;AAIlE,KAAK,UAAU,GAAG,CACvB,GAAW,EACX,MAA2B,EAC3B,WAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAI,EAAC,eAAK,CAAC,GAAG,CAAI,GAAG,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;IAClE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC;AAPD,kBAOC;AAEM,KAAK,UAAU,IAAI,CACxB,GAAW,EACX,IAAO,EACP,MAA2B,EAC3B,WAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAI,EAAC,eAAK,CAAC,IAAI,CAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;IACzE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC;AARD,oBAQC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Network/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import { IntegrationEventName, Storage } from '.';
1
+ import { INetworkIntegrationDetails, IntegrationEventName, RateLimiter, Storage } from '.';
2
+ import Network from '../Network';
3
+ import { MetricsMeter } from './Metrics';
2
4
  export declare type Command<T, U> = (data?: T, options?: Record<string, string>) => Promise<U>;
3
5
  /**
4
6
  * Base class for integrations. All integrations should default export a class that extends this class.
@@ -7,9 +9,13 @@ export declare class Integration {
7
9
  protected credentials?: Record<string, string> | undefined;
8
10
  protected options?: Record<string, string> | undefined;
9
11
  protected storage?: Storage | undefined;
10
- private events;
12
+ protected meter?: MetricsMeter | undefined;
13
+ protected details?: INetworkIntegrationDetails | undefined;
14
+ protected rateLimiter?: RateLimiter | undefined;
11
15
  private commands;
12
- constructor(credentials?: Record<string, string> | undefined, options?: Record<string, string> | undefined, storage?: Storage | undefined);
16
+ private events;
17
+ protected network: Network;
18
+ constructor(credentials?: Record<string, string> | undefined, options?: Record<string, string> | undefined, storage?: Storage | undefined, meter?: MetricsMeter | undefined, details?: INetworkIntegrationDetails | undefined, rateLimiter?: RateLimiter | undefined);
13
19
  /**
14
20
  * Initializer for the class. This will be called once per instance of the integration. Multiple instances
15
21
  * of an integration may be loaded throughout the system. Integrations should override this method if they
@@ -1 +1 @@
1
- {"version":3,"file":"Integration.d.ts","sourceRoot":"","sources":["../../src/types/Integration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAElD,oBAAY,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEvF;;GAEG;AAEH,qBAAa,WAAW;IAKpB,SAAS,CAAC,WAAW,CAAC;IACtB,SAAS,CAAC,OAAO,CAAC;IAClB,SAAS,CAAC,OAAO,CAAC;IANpB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAyC;gBAG7C,WAAW,CAAC,oCAAwB,EACpC,OAAO,CAAC,oCAAwB,EAChC,OAAO,CAAC,qBAAS;IAI7B;;;;OAIG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAK7G,SAAS,CAAC,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAIjF,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IACrH,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAMtF,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;IAC7F,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAI7E"}
1
+ {"version":3,"file":"Integration.d.ts","sourceRoot":"","sources":["../../src/types/Integration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAC3F,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,oBAAY,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEvF;;GAEG;AAEH,qBAAa,WAAW;IAMpB,SAAS,CAAC,WAAW,CAAC;IACtB,SAAS,CAAC,OAAO,CAAC;IAClB,SAAS,CAAC,OAAO,CAAC;IAClB,SAAS,CAAC,KAAK,CAAC;IAChB,SAAS,CAAC,OAAO,CAAC;IAClB,SAAS,CAAC,WAAW,CAAC;IAVxB,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,MAAM,CAAe;IAC7B,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;gBAGf,WAAW,CAAC,oCAAwB,EACpC,OAAO,CAAC,oCAAwB,EAChC,OAAO,CAAC,qBAAS,EACjB,KAAK,CAAC,0BAAc,EACpB,OAAO,CAAC,wCAA4B,EACpC,WAAW,CAAC,yBAAa;IAOrC;;;;OAIG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAK7G,SAAS,CAAC,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAIjF,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IACrH,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAMtF,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;IAC7F,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAI7E"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.Integration = void 0;
4
7
  const events_1 = require("events");
8
+ const Network_1 = __importDefault(require("../Network"));
5
9
  /**
6
10
  * Base class for integrations. All integrations should default export a class that extends this class.
7
11
  */
@@ -9,13 +13,23 @@ class Integration {
9
13
  credentials;
10
14
  options;
11
15
  storage;
12
- events;
16
+ meter;
17
+ details;
18
+ rateLimiter;
13
19
  commands = {};
14
- constructor(credentials, options, storage) {
20
+ events;
21
+ network;
22
+ constructor(credentials, options, storage, meter, details, rateLimiter) {
15
23
  this.credentials = credentials;
16
24
  this.options = options;
17
25
  this.storage = storage;
26
+ this.meter = meter;
27
+ this.details = details;
28
+ this.rateLimiter = rateLimiter;
18
29
  this.events = new events_1.EventEmitter();
30
+ if (meter && details) {
31
+ this.network = new Network_1.default(meter, details, rateLimiter);
32
+ }
19
33
  }
20
34
  /**
21
35
  * Initializer for the class. This will be called once per instance of the integration. Multiple instances
@@ -1 +1 @@
1
- {"version":3,"file":"Integration.js","sourceRoot":"","sources":["../../src/types/Integration.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AAKtC;;GAEG;AAEH,MAAa,WAAW;IAKV;IACA;IACA;IANJ,MAAM,CAAe;IACrB,QAAQ,GAAsC,EAAE,CAAC;IAEzD,YACY,WAAoC,EACpC,OAAgC,EAChC,OAAiB;QAFjB,gBAAW,GAAX,WAAW,CAAyB;QACpC,YAAO,GAAP,OAAO,CAAyB;QAChC,YAAO,GAAP,OAAO,CAAU;QAE3B,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAY,EAAE,CAAC;IACnC,CAAC;IACD;;;;OAIG;IACI,KAAK,CAAC,IAAI;QACf,OAAO;IACT,CAAC;IAEM,KAAK,CAAC,OAAO,CAAmB,KAAa,EAAE,IAAQ,EAAE,OAAgC;QAC9F,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAES,eAAe,CAAmB,KAAa,EAAE,OAAsB;QAC/E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IACjC,CAAC;IAIS,EAAE,CAAC,SAA+B,EAAE,OAAiC;QAC7E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAIM,IAAI,CAAC,SAA+B,EAAE,GAAG,IAAW;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF;AAzCD,kCAyCC"}
1
+ {"version":3,"file":"Integration.js","sourceRoot":"","sources":["../../src/types/Integration.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAsC;AAEtC,yDAAiC;AAKjC;;GAEG;AAEH,MAAa,WAAW;IAMV;IACA;IACA;IACA;IACA;IACA;IAVJ,QAAQ,GAAsC,EAAE,CAAC;IACjD,MAAM,CAAe;IACnB,OAAO,CAAU;IAE3B,YACY,WAAoC,EACpC,OAAgC,EAChC,OAAiB,EACjB,KAAoB,EACpB,OAAoC,EACpC,WAAyB;QALzB,gBAAW,GAAX,WAAW,CAAyB;QACpC,YAAO,GAAP,OAAO,CAAyB;QAChC,YAAO,GAAP,OAAO,CAAU;QACjB,UAAK,GAAL,KAAK,CAAe;QACpB,YAAO,GAAP,OAAO,CAA6B;QACpC,gBAAW,GAAX,WAAW,CAAc;QAEnC,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAY,EAAE,CAAC;QACjC,IAAI,KAAK,IAAI,OAAO,EAAE;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;SACzD;IACH,CAAC;IACD;;;;OAIG;IACI,KAAK,CAAC,IAAI;QACf,OAAO;IACT,CAAC;IAEM,KAAK,CAAC,OAAO,CAAmB,KAAa,EAAE,IAAQ,EAAE,OAAgC;QAC9F,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAES,eAAe,CAAmB,KAAa,EAAE,OAAsB;QAC/E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IACjC,CAAC;IAIS,EAAE,CAAC,SAA+B,EAAE,OAAiC;QAC7E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAIM,IAAI,CAAC,SAA+B,EAAE,GAAG,IAAW;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF;AAhDD,kCAgDC"}
@@ -0,0 +1,54 @@
1
+ import { Attributes, BatchObservableCallback, Context, Counter, Histogram, Meter, MetricOptions, Observable, ObservableCounter, ObservableGauge, ObservableUpDownCounter } from '@opentelemetry/api';
2
+ export declare type MetricConfig = {
3
+ name: string;
4
+ options?: MetricOptions;
5
+ };
6
+ export declare type MetricsMeterProps = {
7
+ meterName?: string | undefined;
8
+ attributes?: Attributes | undefined;
9
+ };
10
+ export declare type MetricsTimer = {
11
+ startTime: number;
12
+ end: (time?: number | undefined) => number;
13
+ };
14
+ export declare type MetricsHistogram<AttributesTypes extends Attributes = Attributes> = Histogram<AttributesTypes> & {
15
+ startTimer(): MetricsTimer;
16
+ };
17
+ export declare type MetricsCounter<AttributesTypes extends Attributes = Attributes> = Counter<AttributesTypes> & {
18
+ add: (value?: number, attributes?: AttributesTypes, context?: Context) => void;
19
+ };
20
+ export declare type MetricsUpDownCounter<AttributesTypes extends Attributes = Attributes> = Counter<AttributesTypes> & {
21
+ add: (value?: number, attributes?: AttributesTypes, context?: Context) => void;
22
+ };
23
+ export interface MetricsMeter {
24
+ getMeter(): Meter;
25
+ checkMeter(metricName: string): MetricsMeter;
26
+ createHistogram<AttributesTypes extends Attributes = Attributes>(metricConfig: MetricConfig): MetricsHistogram<AttributesTypes>;
27
+ createCounter<AttributesTypes extends Attributes = Attributes>(metricConfig: MetricConfig): MetricsCounter<AttributesTypes>;
28
+ createUpDownCounter<AttributesTypes extends Attributes = Attributes>(metricConfig: MetricConfig): MetricsUpDownCounter<AttributesTypes>;
29
+ createObservableGauge<AttributesTypes extends Attributes = Attributes>(metricConfig: MetricConfig): ObservableGauge<AttributesTypes>;
30
+ createObservableCounter<AttributesTypes extends Attributes = Attributes>(metricConfig: MetricConfig): ObservableCounter<AttributesTypes>;
31
+ createObservableUpDownCounter<AttributesTypes extends Attributes = Attributes>(metricConfig: MetricConfig): ObservableUpDownCounter<AttributesTypes>;
32
+ addBatchObservableCallback<AttributesTypes extends Attributes = Attributes>(callback: BatchObservableCallback<AttributesTypes>, observables: Observable<AttributesTypes>[]): void;
33
+ removeBatchObservableCallback<AttributesTypes extends Attributes = Attributes>(callback: BatchObservableCallback<AttributesTypes>, observables: Observable<AttributesTypes>[]): void;
34
+ }
35
+ export declare type IntegrationRequestMetric = {
36
+ integration: string;
37
+ statusCode: number | undefined;
38
+ url: string;
39
+ };
40
+ export declare class IntegrationMetrics {
41
+ requestDuration: MetricsHistogram<IntegrationRequestMetric>;
42
+ requestContentSize: MetricsHistogram<IntegrationRequestMetric>;
43
+ constructor(meter: MetricsMeter);
44
+ /**
45
+ * Timer method to start and end time duration
46
+ *
47
+ * @returns time in seconds
48
+ */
49
+ startTimer: () => {
50
+ startTime: number;
51
+ end: (time?: number) => number;
52
+ };
53
+ }
54
+ //# sourceMappingURL=Metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Metrics.d.ts","sourceRoot":"","sources":["../../src/types/Metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntegrationMetrics = void 0;
4
+ class IntegrationMetrics {
5
+ requestDuration;
6
+ requestContentSize;
7
+ constructor(meter) {
8
+ this.requestDuration = meter.createHistogram({
9
+ name: 'axios_request_duration_seconds',
10
+ options: {
11
+ description: 'Duration of API requests in seconds'
12
+ }
13
+ });
14
+ this.requestContentSize = meter.createHistogram({
15
+ name: 'axios_response_content_size',
16
+ options: {
17
+ description: 'Response size of API requests in bytes'
18
+ }
19
+ });
20
+ }
21
+ /**
22
+ * Timer method to start and end time duration
23
+ *
24
+ * @returns time in seconds
25
+ */
26
+ startTimer = () => {
27
+ const startTime = Date.now();
28
+ return {
29
+ startTime,
30
+ end: (time) => {
31
+ const endTime = time || Date.now();
32
+ const durationInSeconds = (endTime - startTime) / 1000;
33
+ return durationInSeconds;
34
+ }
35
+ };
36
+ };
37
+ }
38
+ exports.IntegrationMetrics = IntegrationMetrics;
39
+ //# sourceMappingURL=Metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../../src/types/Metrics.ts"],"names":[],"mappings":";;;AAoFA,MAAa,kBAAkB;IAC7B,eAAe,CAA6C;IAC5D,kBAAkB,CAA6C;IAE/D,YAAY,KAAmB;QAC7B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAA2B;YACrE,IAAI,EAAE,gCAAgC;YACtC,OAAO,EAAE;gBACP,WAAW,EAAE,qCAAqC;aACnD;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,eAAe,CAA2B;YACxE,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE;gBACP,WAAW,EAAE,wCAAwC;aACtD;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,UAAU,GAAG,GAAG,EAAE;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO;YACL,SAAS;YACT,GAAG,EAAE,CAAC,IAAa,EAAE,EAAE;gBACrB,MAAM,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnC,MAAM,iBAAiB,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;gBACvD,OAAO,iBAAiB,CAAC;YAC3B,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;CACH;AApCD,gDAoCC"}
@@ -0,0 +1,28 @@
1
+ import { AxiosRequestConfig } from 'axios';
2
+ import { IRetryPolicy, IWrapResult } from '../Network/axios-error-handling';
3
+ import { IntegrationMetrics, MetricsMeter } from '../types/Metrics';
4
+ export declare type RateLimitPolicy = {
5
+ key: string;
6
+ maxCallsPerSecond: number;
7
+ retryTimes: number;
8
+ retryWaitMs: number;
9
+ };
10
+ export declare type INetworkIntegrationDetails = {
11
+ partner: string;
12
+ offering: string;
13
+ name: string;
14
+ };
15
+ export interface INetwork {
16
+ Meter: MetricsMeter | undefined;
17
+ metrics: IntegrationMetrics;
18
+ integrationDetails: INetworkIntegrationDetails;
19
+ get<T = Record<string, any>>(url: string, config?: AxiosRequestConfig, retryPolicy?: IRetryPolicy): Promise<{
20
+ request_url: string;
21
+ result: IWrapResult<T>;
22
+ }>;
23
+ post<T = any, U = Record<string, any>>(url: string, data: T, config?: AxiosRequestConfig, retryPolicy?: IRetryPolicy): Promise<{
24
+ request_url: string;
25
+ result: IWrapResult<U>;
26
+ }>;
27
+ }
28
+ //# sourceMappingURL=Network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Network.d.ts","sourceRoot":"","sources":["../../src/types/Network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEpE,oBAAY,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oBAAY,0BAA0B,GAAG;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,kBAAkB,EAAE,0BAA0B,CAAC;IAE/C,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,kBAAkB,EAC3B,WAAW,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC,CAAC;IAE5D,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,MAAM,CAAC,EAAE,kBAAkB,EAC3B,WAAW,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC,CAAC;CAC7D"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Network.js","sourceRoot":"","sources":["../../src/types/Network.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Provides rate limiting for integrations
3
+ */
4
+ export interface RateLimiter {
5
+ incrementRateLimitPerSecond(key: string, attempts?: number): Promise<number>;
6
+ }
7
+ //# sourceMappingURL=RateLimiter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RateLimiter.d.ts","sourceRoot":"","sources":["../../src/types/RateLimiter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9E"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=RateLimiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RateLimiter.js","sourceRoot":"","sources":["../../src/types/RateLimiter.ts"],"names":[],"mappings":""}
@@ -1,23 +1,23 @@
1
1
  export declare enum Formatters {
2
- scoreLetterToLowMedHigh = "scoreLetterToLowMedHigh",
2
+ arrayToString = "arrayToString",
3
+ capitalize = "capitalize",
4
+ date = "date",
3
5
  decimalToPercentage = "decimalToPercentage",
4
6
  numberToString = "numberToString",
5
- capitalize = "capitalize",
6
- arrayToString = "arrayToString",
7
- date = "date"
7
+ scoreLetterToLowMedHigh = "scoreLetterToLowMedHigh"
8
8
  }
9
9
  export declare const FormatterFunctions: {
10
- scoreLetterToLowMedHigh: ({ data }: IDataFormatterRequest<Record<string, any>>) => string;
11
- decimalToPercentage: ({ data, emptyResponse }: IDataFormatterRequest<Record<string, any>>) => string;
12
- numberToString: ({ data, emptyResponse, options }: IDataFormatterRequest<Record<string, any>>) => string;
13
- capitalize: ({ data, emptyResponse }: IDataFormatterRequest<Record<string, any>> & {
14
- data: string;
15
- }) => string;
16
10
  arrayToString: ({ data, separator, emptyResponse }: IDataFormatterRequest<Record<string, any>> & {
17
11
  data: string[];
18
12
  separator: string;
19
13
  }) => string;
14
+ capitalize: ({ data, emptyResponse }: IDataFormatterRequest<Record<string, any>> & {
15
+ data: string;
16
+ }) => string;
20
17
  date: ({ data, emptyResponse, options }: IDataFormatterRequest<Record<string, any>>) => string;
18
+ decimalToPercentage: ({ data, emptyResponse }: IDataFormatterRequest<Record<string, any>>) => string;
19
+ numberToString: ({ data, emptyResponse, options }: IDataFormatterRequest<Record<string, any>>) => string;
20
+ scoreLetterToLowMedHigh: ({ data }: IDataFormatterRequest<Record<string, any>>) => string;
21
21
  };
22
22
  export declare type FormatOptions = {
23
23
  dateFormat?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/formatters/types/index.ts"],"names":[],"mappings":"AAOA,oBAAY,UAAU;IACpB,uBAAuB,4BAA4B;IACnD,mBAAmB,wBAAwB;IAC3C,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,IAAI,SAAS;CACd;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;CAO9B,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5D,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,aAAa,CAAC;IAIxB,YAAY,CAAC,EAAE,CAAC,CAAC;CAClB;AAED,oBAAY,SAAS,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/formatters/types/index.ts"],"names":[],"mappings":"AAOA,oBAAY,UAAU;IACpB,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,mBAAmB,wBAAwB;IAC3C,cAAc,mBAAmB;IACjC,uBAAuB,4BAA4B;CACpD;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;CAO9B,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5D,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,aAAa,CAAC;IAIxB,YAAY,CAAC,EAAE,CAAC,CAAC;CAClB;AAED,oBAAY,SAAS,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,MAAM,CAAC"}
@@ -12,19 +12,19 @@ const numberToString_1 = __importDefault(require("../functions/numberToString"))
12
12
  const scoreLetterToLowMedHigh_1 = __importDefault(require("../functions/scoreLetterToLowMedHigh"));
13
13
  var Formatters;
14
14
  (function (Formatters) {
15
- Formatters["scoreLetterToLowMedHigh"] = "scoreLetterToLowMedHigh";
16
- Formatters["decimalToPercentage"] = "decimalToPercentage";
17
- Formatters["numberToString"] = "numberToString";
18
- Formatters["capitalize"] = "capitalize";
19
15
  Formatters["arrayToString"] = "arrayToString";
16
+ Formatters["capitalize"] = "capitalize";
20
17
  Formatters["date"] = "date";
18
+ Formatters["decimalToPercentage"] = "decimalToPercentage";
19
+ Formatters["numberToString"] = "numberToString";
20
+ Formatters["scoreLetterToLowMedHigh"] = "scoreLetterToLowMedHigh";
21
21
  })(Formatters = exports.Formatters || (exports.Formatters = {}));
22
22
  exports.FormatterFunctions = {
23
- [Formatters.scoreLetterToLowMedHigh]: scoreLetterToLowMedHigh_1.default,
23
+ [Formatters.arrayToString]: arrayToString_1.default,
24
+ [Formatters.capitalize]: capitalize_1.default,
25
+ [Formatters.date]: date_1.default,
24
26
  [Formatters.decimalToPercentage]: decimalToPercentage_1.default,
25
27
  [Formatters.numberToString]: numberToString_1.default,
26
- [Formatters.capitalize]: capitalize_1.default,
27
- [Formatters.arrayToString]: arrayToString_1.default,
28
- [Formatters.date]: date_1.default
28
+ [Formatters.scoreLetterToLowMedHigh]: scoreLetterToLowMedHigh_1.default
29
29
  };
30
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/formatters/types/index.ts"],"names":[],"mappings":";;;;;;AAAA,+EAAyD;AACzD,yEAAmD;AACnD,6DAAuC;AACvC,2FAAqE;AACrE,iFAA2D;AAC3D,mGAA6E;AAE7E,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,iEAAmD,CAAA;IACnD,yDAA2C,CAAA;IAC3C,+CAAiC,CAAA;IACjC,uCAAyB,CAAA;IACzB,6CAA+B,CAAA;IAC/B,2BAAa,CAAA;AACf,CAAC,EAPW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAOrB;AAEY,QAAA,kBAAkB,GAAG;IAChC,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,iCAAyB;IAC/D,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,6BAAqB;IACvD,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,wBAAgB;IAC7C,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,oBAAY;IACrC,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,uBAAe;IAC3C,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,cAAM;CAC1B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/formatters/types/index.ts"],"names":[],"mappings":";;;;;;AAAA,+EAAyD;AACzD,yEAAmD;AACnD,6DAAuC;AACvC,2FAAqE;AACrE,iFAA2D;AAC3D,mGAA6E;AAE7E,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,6CAA+B,CAAA;IAC/B,uCAAyB,CAAA;IACzB,2BAAa,CAAA;IACb,yDAA2C,CAAA;IAC3C,+CAAiC,CAAA;IACjC,iEAAmD,CAAA;AACrD,CAAC,EAPW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAOrB;AAEY,QAAA,kBAAkB,GAAG;IAChC,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,uBAAe;IAC3C,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,oBAAY;IACrC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,cAAM;IACzB,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,6BAAqB;IACvD,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,wBAAgB;IAC7C,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,iCAAyB;CAChE,CAAC"}
@@ -1,9 +1,12 @@
1
1
  export * from './Enrichment';
2
2
  export * from './EnrichmentComponentArgs';
3
3
  export * from './Events';
4
+ export * from './formatters';
4
5
  export * from './Integration';
5
6
  export * from './IntegrationManifest';
6
7
  export * from './IPartnerDataSchema';
8
+ export * from './Metrics';
9
+ export * from './Network';
10
+ export * from './RateLimiter';
7
11
  export * from './Storage';
8
- export * from './formatters';
9
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
@@ -17,9 +17,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./Enrichment"), exports);
18
18
  __exportStar(require("./EnrichmentComponentArgs"), exports);
19
19
  __exportStar(require("./Events"), exports);
20
+ __exportStar(require("./formatters"), exports);
20
21
  __exportStar(require("./Integration"), exports);
21
22
  __exportStar(require("./IntegrationManifest"), exports);
22
23
  __exportStar(require("./IPartnerDataSchema"), exports);
24
+ __exportStar(require("./Metrics"), exports);
25
+ __exportStar(require("./Network"), exports);
26
+ __exportStar(require("./RateLimiter"), exports);
23
27
  __exportStar(require("./Storage"), exports);
24
- __exportStar(require("./formatters"), exports);
25
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,4DAA0C;AAC1C,2CAAyB;AACzB,gDAA8B;AAC9B,wDAAsC;AACtC,uDAAqC;AACrC,4CAA0B;AAC1B,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,4DAA0C;AAC1C,2CAAyB;AACzB,+CAA6B;AAC7B,gDAA8B;AAC9B,wDAAsC;AACtC,uDAAqC;AACrC,4CAA0B;AAC1B,4CAA0B;AAC1B,gDAA8B;AAC9B,4CAA0B"}
@@ -1,2 +1,3 @@
1
1
  export declare function jsonLog(obj: Record<string, any> | undefined): string;
2
+ export declare function sleep(ms: number): Promise<unknown>;
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAEA,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,UAE3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAEA,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,UAE3D;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,oBAE/B"}
@@ -3,10 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.jsonLog = void 0;
6
+ exports.sleep = exports.jsonLog = void 0;
7
7
  const json_colorizer_1 = __importDefault(require("json-colorizer"));
8
8
  function jsonLog(obj) {
9
9
  return (0, json_colorizer_1.default)(JSON.stringify(obj, null, 2));
10
10
  }
11
11
  exports.jsonLog = jsonLog;
12
+ function sleep(ms) {
13
+ return new Promise(resolve => setTimeout(resolve, ms));
14
+ }
15
+ exports.sleep = sleep;
12
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAsC;AAEtC,SAAgB,OAAO,CAAC,GAAoC;IAC1D,OAAO,IAAA,wBAAQ,EAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAFD,0BAEC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAsC;AAEtC,SAAgB,OAAO,CAAC,GAAoC;IAC1D,OAAO,IAAA,wBAAQ,EAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAFD,0BAEC;AAED,SAAgB,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAFD,sBAEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@betterview/integration-toolkit",
3
- "version": "7.6.11",
3
+ "version": "7.8.0",
4
4
  "description": "Supports integration packages. This should be the only import from our integrations",
5
5
  "scripts": {
6
6
  "prebuild": "rm -rf ./lib",