@rudderstack/integrations-lib 0.1.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 (108) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/build/constants.d.ts +96 -0
  4. package/build/constants.d.ts.map +1 -0
  5. package/build/constants.js +180 -0
  6. package/build/errors/aborted_error.d.ts +5 -0
  7. package/build/errors/aborted_error.d.ts.map +1 -0
  8. package/build/errors/aborted_error.js +16 -0
  9. package/build/errors/base.d.ts +8 -0
  10. package/build/errors/base.d.ts.map +1 -0
  11. package/build/errors/base.js +14 -0
  12. package/build/errors/configuration_error.d.ts +5 -0
  13. package/build/errors/configuration_error.d.ts.map +1 -0
  14. package/build/errors/configuration_error.js +17 -0
  15. package/build/errors/index.d.ts +17 -0
  16. package/build/errors/index.d.ts.map +1 -0
  17. package/build/errors/index.js +33 -0
  18. package/build/errors/instrumentation_error.d.ts +5 -0
  19. package/build/errors/instrumentation_error.d.ts.map +1 -0
  20. package/build/errors/instrumentation_error.js +16 -0
  21. package/build/errors/invalid_auth_token_error.d.ts +5 -0
  22. package/build/errors/invalid_auth_token_error.d.ts.map +1 -0
  23. package/build/errors/invalid_auth_token_error.js +17 -0
  24. package/build/errors/network_error.d.ts +7 -0
  25. package/build/errors/network_error.d.ts.map +1 -0
  26. package/build/errors/network_error.js +28 -0
  27. package/build/errors/network_instrumentation_error.d.ts +5 -0
  28. package/build/errors/network_instrumentation_error.d.ts.map +1 -0
  29. package/build/errors/network_instrumentation_error.js +17 -0
  30. package/build/errors/oauth_secret_error.d.ts +5 -0
  31. package/build/errors/oauth_secret_error.d.ts.map +1 -0
  32. package/build/errors/oauth_secret_error.js +16 -0
  33. package/build/errors/platform_error.d.ts +5 -0
  34. package/build/errors/platform_error.d.ts.map +1 -0
  35. package/build/errors/platform_error.js +15 -0
  36. package/build/errors/redis_error.d.ts +5 -0
  37. package/build/errors/redis_error.d.ts.map +1 -0
  38. package/build/errors/redis_error.js +16 -0
  39. package/build/errors/retryable_error.d.ts +5 -0
  40. package/build/errors/retryable_error.d.ts.map +1 -0
  41. package/build/errors/retryable_error.js +16 -0
  42. package/build/errors/throttled_error.d.ts +5 -0
  43. package/build/errors/throttled_error.d.ts.map +1 -0
  44. package/build/errors/throttled_error.js +16 -0
  45. package/build/errors/transformation_error.d.ts +5 -0
  46. package/build/errors/transformation_error.d.ts.map +1 -0
  47. package/build/errors/transformation_error.js +15 -0
  48. package/build/errors/unauthorized_error.d.ts +5 -0
  49. package/build/errors/unauthorized_error.d.ts.map +1 -0
  50. package/build/errors/unauthorized_error.js +17 -0
  51. package/build/errors/unhandled_status_code_error.d.ts +5 -0
  52. package/build/errors/unhandled_status_code_error.d.ts.map +1 -0
  53. package/build/errors/unhandled_status_code_error.js +17 -0
  54. package/build/errors/unsupported_event_error.d.ts +5 -0
  55. package/build/errors/unsupported_event_error.d.ts.map +1 -0
  56. package/build/errors/unsupported_event_error.js +16 -0
  57. package/build/index.d.ts +7 -0
  58. package/build/index.d.ts.map +1 -0
  59. package/build/index.js +23 -0
  60. package/build/logger.d.ts +7 -0
  61. package/build/logger.d.ts.map +1 -0
  62. package/build/logger.js +39 -0
  63. package/build/network/clients/axios.d.ts +38 -0
  64. package/build/network/clients/axios.d.ts.map +1 -0
  65. package/build/network/clients/axios.js +197 -0
  66. package/build/network/clients/axios.test.d.ts +2 -0
  67. package/build/network/clients/axios.test.d.ts.map +1 -0
  68. package/build/network/clients/axios.test.js +231 -0
  69. package/build/network/clients/types.d.ts +32 -0
  70. package/build/network/clients/types.d.ts.map +1 -0
  71. package/build/network/clients/types.js +3 -0
  72. package/build/network/factory.d.ts +30 -0
  73. package/build/network/factory.d.ts.map +1 -0
  74. package/build/network/factory.js +46 -0
  75. package/build/network/factory.test.d.ts +2 -0
  76. package/build/network/factory.test.d.ts.map +1 -0
  77. package/build/network/factory.test.js +50 -0
  78. package/build/network/index.d.ts +2 -0
  79. package/build/network/index.d.ts.map +1 -0
  80. package/build/network/index.js +18 -0
  81. package/build/tags.d.ts +56 -0
  82. package/build/tags.d.ts.map +1 -0
  83. package/build/tags.js +59 -0
  84. package/build/types.d.ts +275 -0
  85. package/build/types.d.ts.map +1 -0
  86. package/build/types.js +34 -0
  87. package/build/utils/index.d.ts +4 -0
  88. package/build/utils/index.d.ts.map +1 -0
  89. package/build/utils/index.js +20 -0
  90. package/build/utils/json.d.ts +51 -0
  91. package/build/utils/json.d.ts.map +1 -0
  92. package/build/utils/json.js +507 -0
  93. package/build/utils/json.test.d.ts +2 -0
  94. package/build/utils/json.test.d.ts.map +1 -0
  95. package/build/utils/json.test.js +588 -0
  96. package/build/utils/misc.d.ts +129 -0
  97. package/build/utils/misc.d.ts.map +1 -0
  98. package/build/utils/misc.js +362 -0
  99. package/build/utils/misc.test.d.ts +2 -0
  100. package/build/utils/misc.test.d.ts.map +1 -0
  101. package/build/utils/misc.test.js +2059 -0
  102. package/build/utils/sem.d.ts +29 -0
  103. package/build/utils/sem.d.ts.map +1 -0
  104. package/build/utils/sem.js +196 -0
  105. package/build/utils/sem.test.d.ts +2 -0
  106. package/build/utils/sem.test.d.ts.map +1 -0
  107. package/build/utils/sem.test.js +237 -0
  108. package/package.json +69 -0
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OAuthSecretError = void 0;
4
+ const tags_1 = require("../tags");
5
+ const base_1 = require("./base");
6
+ class OAuthSecretError extends base_1.BaseError {
7
+ constructor(message) {
8
+ const finalStatTags = {
9
+ [tags_1.TAG_NAMES.ERROR_CATEGORY]: tags_1.ERROR_CATEGORIES.PLATFORM,
10
+ [tags_1.TAG_NAMES.ERROR_TYPE]: tags_1.ERROR_TYPES.OAUTH_SECRET,
11
+ };
12
+ super(message, 500, finalStatTags);
13
+ }
14
+ }
15
+ exports.OAuthSecretError = OAuthSecretError;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGhfc2VjcmV0X2Vycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy9vYXV0aF9zZWNyZXRfZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0NBQW1FO0FBQ25FLGlDQUFtQztBQUVuQyxNQUFhLGdCQUFpQixTQUFRLGdCQUFTO0lBQzdDLFlBQVksT0FBZTtRQUN6QixNQUFNLGFBQWEsR0FBRztZQUNwQixDQUFDLGdCQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsdUJBQWdCLENBQUMsUUFBUTtZQUNyRCxDQUFDLGdCQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsa0JBQVcsQ0FBQyxZQUFZO1NBQ2pELENBQUM7UUFFRixLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFURCw0Q0FTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRBR19OQU1FUywgRVJST1JfQ0FURUdPUklFUywgRVJST1JfVFlQRVMgfSBmcm9tIFwiLi4vdGFnc1wiO1xuaW1wb3J0IHsgQmFzZUVycm9yIH0gZnJvbSBcIi4vYmFzZVwiO1xuXG5leHBvcnQgY2xhc3MgT0F1dGhTZWNyZXRFcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIGNvbnN0IGZpbmFsU3RhdFRhZ3MgPSB7XG4gICAgICBbVEFHX05BTUVTLkVSUk9SX0NBVEVHT1JZXTogRVJST1JfQ0FURUdPUklFUy5QTEFURk9STSxcbiAgICAgIFtUQUdfTkFNRVMuRVJST1JfVFlQRV06IEVSUk9SX1RZUEVTLk9BVVRIX1NFQ1JFVCxcbiAgICB9O1xuXG4gICAgc3VwZXIobWVzc2FnZSwgNTAwLCBmaW5hbFN0YXRUYWdzKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ import { BaseError } from "./base";
2
+ export declare class PlatformError extends BaseError {
3
+ constructor(message: string);
4
+ }
5
+ //# sourceMappingURL=platform_error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform_error.d.ts","sourceRoot":"","sources":["../../src/errors/platform_error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,OAAO,EAAE,MAAM;CAO5B"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlatformError = void 0;
4
+ const tags_1 = require("../tags");
5
+ const base_1 = require("./base");
6
+ class PlatformError extends base_1.BaseError {
7
+ constructor(message) {
8
+ const finalStatTags = {
9
+ [tags_1.TAG_NAMES.ERROR_CATEGORY]: tags_1.ERROR_CATEGORIES.PLATFORM,
10
+ };
11
+ super(message, 400, finalStatTags);
12
+ }
13
+ }
14
+ exports.PlatformError = PlatformError;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm1fZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3JzL3BsYXRmb3JtX2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtDQUFzRDtBQUN0RCxpQ0FBbUM7QUFFbkMsTUFBYSxhQUFjLFNBQVEsZ0JBQVM7SUFDMUMsWUFBWSxPQUFlO1FBQ3pCLE1BQU0sYUFBYSxHQUFHO1lBQ3BCLENBQUMsZ0JBQVMsQ0FBQyxjQUFjLENBQUMsRUFBRSx1QkFBZ0IsQ0FBQyxRQUFRO1NBQ3RELENBQUM7UUFFRixLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFSRCxzQ0FRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRBR19OQU1FUywgRVJST1JfQ0FURUdPUklFUyB9IGZyb20gXCIuLi90YWdzXCI7XG5pbXBvcnQgeyBCYXNlRXJyb3IgfSBmcm9tIFwiLi9iYXNlXCI7XG5cbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybUVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgY29uc3QgZmluYWxTdGF0VGFncyA9IHtcbiAgICAgIFtUQUdfTkFNRVMuRVJST1JfQ0FURUdPUlldOiBFUlJPUl9DQVRFR09SSUVTLlBMQVRGT1JNLFxuICAgIH07XG5cbiAgICBzdXBlcihtZXNzYWdlLCA0MDAsIGZpbmFsU3RhdFRhZ3MpO1xuICB9XG59Il19
@@ -0,0 +1,5 @@
1
+ import { BaseError } from "./base";
2
+ export declare class RedisError extends BaseError {
3
+ constructor(message: string, statusCode?: number);
4
+ }
5
+ //# sourceMappingURL=redis_error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis_error.d.ts","sourceRoot":"","sources":["../../src/errors/redis_error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,qBAAa,UAAW,SAAQ,SAAS;gBAC3B,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,MAAY;CAQtD"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedisError = void 0;
4
+ const tags_1 = require("../tags");
5
+ const base_1 = require("./base");
6
+ class RedisError extends base_1.BaseError {
7
+ constructor(message, statusCode = 500) {
8
+ const finalStatTags = {
9
+ [tags_1.TAG_NAMES.ERROR_CATEGORY]: tags_1.ERROR_CATEGORIES.TRANSFORMATION,
10
+ [tags_1.TAG_NAMES.ERROR_TYPE]: tags_1.ERROR_TYPES.REDIS,
11
+ };
12
+ super(message, statusCode || 500, finalStatTags);
13
+ }
14
+ }
15
+ exports.RedisError = RedisError;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNfZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3JzL3JlZGlzX2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtDQUFtRTtBQUNuRSxpQ0FBbUM7QUFFbkMsTUFBYSxVQUFXLFNBQVEsZ0JBQVM7SUFDdkMsWUFBWSxPQUFlLEVBQUUsYUFBcUIsR0FBRztRQUNuRCxNQUFNLGFBQWEsR0FBRztZQUNwQixDQUFDLGdCQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsdUJBQWdCLENBQUMsY0FBYztZQUMzRCxDQUFDLGdCQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsa0JBQVcsQ0FBQyxLQUFLO1NBQzFDLENBQUM7UUFFRixLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsSUFBSSxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDbkQsQ0FBQztDQUNGO0FBVEQsZ0NBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUQUdfTkFNRVMsIEVSUk9SX0NBVEVHT1JJRVMsIEVSUk9SX1RZUEVTIH0gZnJvbSBcIi4uL3RhZ3NcIjtcbmltcG9ydCB7IEJhc2VFcnJvciB9IGZyb20gXCIuL2Jhc2VcIjtcblxuZXhwb3J0IGNsYXNzIFJlZGlzRXJyb3IgZXh0ZW5kcyBCYXNlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHN0YXR1c0NvZGU6IG51bWJlciA9IDUwMCkge1xuICAgIGNvbnN0IGZpbmFsU3RhdFRhZ3MgPSB7XG4gICAgICBbVEFHX05BTUVTLkVSUk9SX0NBVEVHT1JZXTogRVJST1JfQ0FURUdPUklFUy5UUkFOU0ZPUk1BVElPTixcbiAgICAgIFtUQUdfTkFNRVMuRVJST1JfVFlQRV06IEVSUk9SX1RZUEVTLlJFRElTLFxuICAgIH07XG5cbiAgICBzdXBlcihtZXNzYWdlLCBzdGF0dXNDb2RlIHx8IDUwMCwgZmluYWxTdGF0VGFncyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ import { BaseError } from "./base";
2
+ export declare class RetryableError extends BaseError {
3
+ constructor(message: string, statusCode?: number, destResponse?: any | undefined, authErrorCategory?: string | undefined);
4
+ }
5
+ //# sourceMappingURL=retryable_error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryable_error.d.ts","sourceRoot":"","sources":["../../src/errors/retryable_error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,qBAAa,cAAe,SAAQ,SAAS;gBAEzC,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAY,EACxB,YAAY,GAAE,GAAG,GAAG,SAAqB,EACzC,iBAAiB,GAAE,MAAM,GAAG,SAAqB;CAepD"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RetryableError = void 0;
4
+ const tags_1 = require("../tags");
5
+ const base_1 = require("./base");
6
+ class RetryableError extends base_1.BaseError {
7
+ constructor(message, statusCode = 500, destResponse = undefined, authErrorCategory = undefined) {
8
+ const finalStatTags = {
9
+ [tags_1.TAG_NAMES.ERROR_CATEGORY]: tags_1.ERROR_CATEGORIES.NETWORK,
10
+ [tags_1.TAG_NAMES.ERROR_TYPE]: tags_1.ERROR_TYPES.RETRYABLE,
11
+ };
12
+ super(message, statusCode || 500, finalStatTags, destResponse, authErrorCategory);
13
+ }
14
+ }
15
+ exports.RetryableError = RetryableError;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnlhYmxlX2Vycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy9yZXRyeWFibGVfZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0NBQW1FO0FBQ25FLGlDQUFtQztBQUVuQyxNQUFhLGNBQWUsU0FBUSxnQkFBUztJQUMzQyxZQUNFLE9BQWUsRUFDZixhQUFxQixHQUFHLEVBQ3hCLGVBQWdDLFNBQVMsRUFDekMsb0JBQXdDLFNBQVM7UUFFakQsTUFBTSxhQUFhLEdBQUc7WUFDcEIsQ0FBQyxnQkFBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLHVCQUFnQixDQUFDLE9BQU87WUFDcEQsQ0FBQyxnQkFBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLGtCQUFXLENBQUMsU0FBUztTQUM5QyxDQUFDO1FBRUYsS0FBSyxDQUNILE9BQU8sRUFDUCxVQUFVLElBQUksR0FBRyxFQUNqQixhQUFhLEVBQ2IsWUFBWSxFQUNaLGlCQUFpQixDQUNsQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBcEJELHdDQW9CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRBR19OQU1FUywgRVJST1JfQ0FURUdPUklFUywgRVJST1JfVFlQRVMgfSBmcm9tIFwiLi4vdGFnc1wiO1xuaW1wb3J0IHsgQmFzZUVycm9yIH0gZnJvbSBcIi4vYmFzZVwiO1xuXG5leHBvcnQgY2xhc3MgUmV0cnlhYmxlRXJyb3IgZXh0ZW5kcyBCYXNlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgc3RhdHVzQ29kZTogbnVtYmVyID0gNTAwLFxuICAgIGRlc3RSZXNwb25zZTogYW55IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIGF1dGhFcnJvckNhdGVnb3J5OiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbiAgKSB7XG4gICAgY29uc3QgZmluYWxTdGF0VGFncyA9IHtcbiAgICAgIFtUQUdfTkFNRVMuRVJST1JfQ0FURUdPUlldOiBFUlJPUl9DQVRFR09SSUVTLk5FVFdPUkssXG4gICAgICBbVEFHX05BTUVTLkVSUk9SX1RZUEVdOiBFUlJPUl9UWVBFUy5SRVRSWUFCTEUsXG4gICAgfTtcblxuICAgIHN1cGVyKFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHN0YXR1c0NvZGUgfHwgNTAwLFxuICAgICAgZmluYWxTdGF0VGFncyxcbiAgICAgIGRlc3RSZXNwb25zZSxcbiAgICAgIGF1dGhFcnJvckNhdGVnb3J5XG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ import { BaseError } from "./base";
2
+ export declare class ThrottledError extends BaseError {
3
+ constructor(message: string, destResponse?: any | undefined);
4
+ }
5
+ //# sourceMappingURL=throttled_error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttled_error.d.ts","sourceRoot":"","sources":["../../src/errors/throttled_error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,qBAAa,cAAe,SAAQ,SAAS;gBAC/B,OAAO,EAAE,MAAM,EAAE,YAAY,GAAE,GAAG,GAAG,SAAqB;CAQvE"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ThrottledError = void 0;
4
+ const tags_1 = require("../tags");
5
+ const base_1 = require("./base");
6
+ class ThrottledError extends base_1.BaseError {
7
+ constructor(message, destResponse = undefined) {
8
+ const finalStatTags = {
9
+ [tags_1.TAG_NAMES.ERROR_CATEGORY]: tags_1.ERROR_CATEGORIES.NETWORK,
10
+ [tags_1.TAG_NAMES.ERROR_TYPE]: tags_1.ERROR_TYPES.THROTTLED,
11
+ };
12
+ super(message, 429, finalStatTags, destResponse);
13
+ }
14
+ }
15
+ exports.ThrottledError = ThrottledError;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGVkX2Vycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy90aHJvdHRsZWRfZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0NBQW1FO0FBQ25FLGlDQUFtQztBQUVuQyxNQUFhLGNBQWUsU0FBUSxnQkFBUztJQUMzQyxZQUFZLE9BQWUsRUFBRSxlQUFnQyxTQUFTO1FBQ3BFLE1BQU0sYUFBYSxHQUFHO1lBQ3BCLENBQUMsZ0JBQVMsQ0FBQyxjQUFjLENBQUMsRUFBRSx1QkFBZ0IsQ0FBQyxPQUFPO1lBQ3BELENBQUMsZ0JBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxrQkFBVyxDQUFDLFNBQVM7U0FDOUMsQ0FBQztRQUVGLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNuRCxDQUFDO0NBQ0Y7QUFURCx3Q0FTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRBR19OQU1FUywgRVJST1JfQ0FURUdPUklFUywgRVJST1JfVFlQRVMgfSBmcm9tIFwiLi4vdGFnc1wiO1xuaW1wb3J0IHsgQmFzZUVycm9yIH0gZnJvbSBcIi4vYmFzZVwiO1xuXG5leHBvcnQgY2xhc3MgVGhyb3R0bGVkRXJyb3IgZXh0ZW5kcyBCYXNlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIGRlc3RSZXNwb25zZTogYW55IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgZmluYWxTdGF0VGFncyA9IHtcbiAgICAgIFtUQUdfTkFNRVMuRVJST1JfQ0FURUdPUlldOiBFUlJPUl9DQVRFR09SSUVTLk5FVFdPUkssXG4gICAgICBbVEFHX05BTUVTLkVSUk9SX1RZUEVdOiBFUlJPUl9UWVBFUy5USFJPVFRMRUQsXG4gICAgfTtcblxuICAgIHN1cGVyKG1lc3NhZ2UsIDQyOSwgZmluYWxTdGF0VGFncywgZGVzdFJlc3BvbnNlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ import { BaseError } from "./base";
2
+ export declare class TransformationError extends BaseError {
3
+ constructor(message: string, statusCode?: number, destResponse?: any | undefined, authErrorCategory?: string | undefined);
4
+ }
5
+ //# sourceMappingURL=transformation_error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformation_error.d.ts","sourceRoot":"","sources":["../../src/errors/transformation_error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,qBAAa,mBAAoB,SAAQ,SAAS;gBAE9C,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAY,EACxB,YAAY,GAAE,GAAG,GAAG,SAAqB,EACzC,iBAAiB,GAAE,MAAM,GAAG,SAAqB;CAcpD"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransformationError = void 0;
4
+ const tags_1 = require("../tags");
5
+ const base_1 = require("./base");
6
+ class TransformationError extends base_1.BaseError {
7
+ constructor(message, statusCode = 500, destResponse = undefined, authErrorCategory = undefined) {
8
+ const finalStatTags = {
9
+ [tags_1.TAG_NAMES.ERROR_CATEGORY]: tags_1.ERROR_CATEGORIES.TRANSFORMATION,
10
+ };
11
+ super(message, statusCode || 400, finalStatTags, destResponse, authErrorCategory);
12
+ }
13
+ }
14
+ exports.TransformationError = TransformationError;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtYXRpb25fZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3JzL3RyYW5zZm9ybWF0aW9uX2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtDQUFzRDtBQUN0RCxpQ0FBbUM7QUFFbkMsTUFBYSxtQkFBb0IsU0FBUSxnQkFBUztJQUNoRCxZQUNFLE9BQWUsRUFDZixhQUFxQixHQUFHLEVBQ3hCLGVBQWdDLFNBQVMsRUFDekMsb0JBQXdDLFNBQVM7UUFFakQsTUFBTSxhQUFhLEdBQUc7WUFDcEIsQ0FBQyxnQkFBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLHVCQUFnQixDQUFDLGNBQWM7U0FDNUQsQ0FBQztRQUVGLEtBQUssQ0FDSCxPQUFPLEVBQ1AsVUFBVSxJQUFJLEdBQUcsRUFDakIsYUFBYSxFQUNiLFlBQVksRUFDWixpQkFBaUIsQ0FDbEIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQW5CRCxrREFtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUQUdfTkFNRVMsIEVSUk9SX0NBVEVHT1JJRVMgfSBmcm9tIFwiLi4vdGFnc1wiO1xuaW1wb3J0IHsgQmFzZUVycm9yIH0gZnJvbSBcIi4vYmFzZVwiO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNmb3JtYXRpb25FcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBzdGF0dXNDb2RlOiBudW1iZXIgPSA1MDAsXG4gICAgZGVzdFJlc3BvbnNlOiBhbnkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgYXV0aEVycm9yQ2F0ZWdvcnk6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuICApIHtcbiAgICBjb25zdCBmaW5hbFN0YXRUYWdzID0ge1xuICAgICAgW1RBR19OQU1FUy5FUlJPUl9DQVRFR09SWV06IEVSUk9SX0NBVEVHT1JJRVMuVFJBTlNGT1JNQVRJT04sXG4gICAgfTtcblxuICAgIHN1cGVyKFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHN0YXR1c0NvZGUgfHwgNDAwLFxuICAgICAgZmluYWxTdGF0VGFncyxcbiAgICAgIGRlc3RSZXNwb25zZSxcbiAgICAgIGF1dGhFcnJvckNhdGVnb3J5XG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ import { BaseError } from "./base";
2
+ export declare class UnauthorizedError extends BaseError {
3
+ constructor(message: string, statusCode?: number, destResponse?: any | undefined, authErrorCategory?: string | undefined);
4
+ }
5
+ //# sourceMappingURL=unauthorized_error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unauthorized_error.d.ts","sourceRoot":"","sources":["../../src/errors/unauthorized_error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,qBAAa,iBAAkB,SAAQ,SAAS;gBAE5C,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAY,EACxB,YAAY,GAAE,GAAG,GAAG,SAAqB,EACzC,iBAAiB,GAAE,MAAM,GAAG,SAAqB;CAgBpD"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnauthorizedError = void 0;
4
+ const tags_1 = require("../tags");
5
+ const base_1 = require("./base");
6
+ class UnauthorizedError extends base_1.BaseError {
7
+ constructor(message, statusCode = 400, destResponse = undefined, authErrorCategory = undefined) {
8
+ const finalStatTags = {
9
+ [tags_1.TAG_NAMES.ERROR_CATEGORY]: tags_1.ERROR_CATEGORIES.NETWORK,
10
+ [tags_1.TAG_NAMES.ERROR_TYPE]: tags_1.ERROR_TYPES.ABORTED,
11
+ [tags_1.TAG_NAMES.META]: tags_1.METADATA.UNAUTHORIZED,
12
+ };
13
+ super(message, statusCode || 400, finalStatTags, destResponse, authErrorCategory);
14
+ }
15
+ }
16
+ exports.UnauthorizedError = UnauthorizedError;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdXRob3JpemVkX2Vycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy91bmF1dGhvcml6ZWRfZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0NBQTZFO0FBQzdFLGlDQUFtQztBQUVuQyxNQUFhLGlCQUFrQixTQUFRLGdCQUFTO0lBQzlDLFlBQ0UsT0FBZSxFQUNmLGFBQXFCLEdBQUcsRUFDeEIsZUFBZ0MsU0FBUyxFQUN6QyxvQkFBd0MsU0FBUztRQUVqRCxNQUFNLGFBQWEsR0FBRztZQUNwQixDQUFDLGdCQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsdUJBQWdCLENBQUMsT0FBTztZQUNwRCxDQUFDLGdCQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsa0JBQVcsQ0FBQyxPQUFPO1lBQzNDLENBQUMsZ0JBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxlQUFRLENBQUMsWUFBWTtTQUN4QyxDQUFDO1FBRUYsS0FBSyxDQUNILE9BQU8sRUFDUCxVQUFVLElBQUksR0FBRyxFQUNqQixhQUFhLEVBQ2IsWUFBWSxFQUNaLGlCQUFpQixDQUNsQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBckJELDhDQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRBR19OQU1FUywgRVJST1JfQ0FURUdPUklFUywgRVJST1JfVFlQRVMsIE1FVEFEQVRBIH0gZnJvbSBcIi4uL3RhZ3NcIjtcbmltcG9ydCB7IEJhc2VFcnJvciB9IGZyb20gXCIuL2Jhc2VcIjtcblxuZXhwb3J0IGNsYXNzIFVuYXV0aG9yaXplZEVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIHN0YXR1c0NvZGU6IG51bWJlciA9IDQwMCxcbiAgICBkZXN0UmVzcG9uc2U6IGFueSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBhdXRoRXJyb3JDYXRlZ29yeTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4gICkge1xuICAgIGNvbnN0IGZpbmFsU3RhdFRhZ3MgPSB7XG4gICAgICBbVEFHX05BTUVTLkVSUk9SX0NBVEVHT1JZXTogRVJST1JfQ0FURUdPUklFUy5ORVRXT1JLLFxuICAgICAgW1RBR19OQU1FUy5FUlJPUl9UWVBFXTogRVJST1JfVFlQRVMuQUJPUlRFRCxcbiAgICAgIFtUQUdfTkFNRVMuTUVUQV06IE1FVEFEQVRBLlVOQVVUSE9SSVpFRCxcbiAgICB9O1xuXG4gICAgc3VwZXIoXG4gICAgICBtZXNzYWdlLFxuICAgICAgc3RhdHVzQ29kZSB8fCA0MDAsXG4gICAgICBmaW5hbFN0YXRUYWdzLFxuICAgICAgZGVzdFJlc3BvbnNlLFxuICAgICAgYXV0aEVycm9yQ2F0ZWdvcnlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ import { BaseError } from "./base";
2
+ export declare class UnhandledStatusCodeError extends BaseError {
3
+ constructor(message: string, destResponse?: any | undefined);
4
+ }
5
+ //# sourceMappingURL=unhandled_status_code_error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unhandled_status_code_error.d.ts","sourceRoot":"","sources":["../../src/errors/unhandled_status_code_error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,qBAAa,wBAAyB,SAAQ,SAAS;gBACzC,OAAO,EAAE,MAAM,EAAE,YAAY,GAAE,GAAG,GAAG,SAAqB;CASvE"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnhandledStatusCodeError = void 0;
4
+ const tags_1 = require("../tags");
5
+ const base_1 = require("./base");
6
+ class UnhandledStatusCodeError extends base_1.BaseError {
7
+ constructor(message, destResponse = undefined) {
8
+ const finalStatTags = {
9
+ [tags_1.TAG_NAMES.ERROR_CATEGORY]: tags_1.ERROR_CATEGORIES.NETWORK,
10
+ [tags_1.TAG_NAMES.ERROR_TYPE]: tags_1.ERROR_TYPES.ABORTED,
11
+ [tags_1.TAG_NAMES.META]: tags_1.METADATA.UNHANDLED_STATUS_CODE,
12
+ };
13
+ super(message, 400, finalStatTags, destResponse);
14
+ }
15
+ }
16
+ exports.UnhandledStatusCodeError = UnhandledStatusCodeError;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5oYW5kbGVkX3N0YXR1c19jb2RlX2Vycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy91bmhhbmRsZWRfc3RhdHVzX2NvZGVfZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0NBQTZFO0FBQzdFLGlDQUFtQztBQUVuQyxNQUFhLHdCQUF5QixTQUFRLGdCQUFTO0lBQ3JELFlBQVksT0FBZSxFQUFFLGVBQWdDLFNBQVM7UUFDcEUsTUFBTSxhQUFhLEdBQUc7WUFDcEIsQ0FBQyxnQkFBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLHVCQUFnQixDQUFDLE9BQU87WUFDcEQsQ0FBQyxnQkFBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLGtCQUFXLENBQUMsT0FBTztZQUMzQyxDQUFDLGdCQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsZUFBUSxDQUFDLHFCQUFxQjtTQUNqRCxDQUFDO1FBRUYsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ25ELENBQUM7Q0FDRjtBQVZELDREQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVEFHX05BTUVTLCBFUlJPUl9DQVRFR09SSUVTLCBFUlJPUl9UWVBFUywgTUVUQURBVEEgfSBmcm9tIFwiLi4vdGFnc1wiO1xuaW1wb3J0IHsgQmFzZUVycm9yIH0gZnJvbSBcIi4vYmFzZVwiO1xuXG5leHBvcnQgY2xhc3MgVW5oYW5kbGVkU3RhdHVzQ29kZUVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBkZXN0UmVzcG9uc2U6IGFueSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGZpbmFsU3RhdFRhZ3MgPSB7XG4gICAgICBbVEFHX05BTUVTLkVSUk9SX0NBVEVHT1JZXTogRVJST1JfQ0FURUdPUklFUy5ORVRXT1JLLFxuICAgICAgW1RBR19OQU1FUy5FUlJPUl9UWVBFXTogRVJST1JfVFlQRVMuQUJPUlRFRCxcbiAgICAgIFtUQUdfTkFNRVMuTUVUQV06IE1FVEFEQVRBLlVOSEFORExFRF9TVEFUVVNfQ09ERSxcbiAgICB9O1xuXG4gICAgc3VwZXIobWVzc2FnZSwgNDAwLCBmaW5hbFN0YXRUYWdzLCBkZXN0UmVzcG9uc2UpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ import { BaseError } from "./base";
2
+ export declare class UnsupportedEventError extends BaseError {
3
+ constructor(message: string);
4
+ }
5
+ //# sourceMappingURL=unsupported_event_error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unsupported_event_error.d.ts","sourceRoot":"","sources":["../../src/errors/unsupported_event_error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,qBAAa,qBAAsB,SAAQ,SAAS;gBACtC,OAAO,EAAE,MAAM;CAO5B"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnsupportedEventError = void 0;
4
+ const tags_1 = require("../tags");
5
+ const base_1 = require("./base");
6
+ class UnsupportedEventError extends base_1.BaseError {
7
+ constructor(message) {
8
+ const finalStatTags = {
9
+ [tags_1.TAG_NAMES.ERROR_CATEGORY]: tags_1.ERROR_CATEGORIES.PLATFORM,
10
+ [tags_1.TAG_NAMES.ERROR_TYPE]: tags_1.ERROR_TYPES.UNSUPPORTED,
11
+ };
12
+ super(message, 400, finalStatTags);
13
+ }
14
+ }
15
+ exports.UnsupportedEventError = UnsupportedEventError;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zdXBwb3J0ZWRfZXZlbnRfZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3JzL3Vuc3VwcG9ydGVkX2V2ZW50X2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtDQUFtRTtBQUNuRSxpQ0FBbUM7QUFFbkMsTUFBYSxxQkFBc0IsU0FBUSxnQkFBUztJQUNsRCxZQUFZLE9BQWU7UUFDekIsTUFBTSxhQUFhLEdBQUc7WUFDcEIsQ0FBQyxnQkFBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLHVCQUFnQixDQUFDLFFBQVE7WUFDckQsQ0FBQyxnQkFBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLGtCQUFXLENBQUMsV0FBVztTQUNoRCxDQUFDO1FBQ0YsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBUkQsc0RBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUQUdfTkFNRVMsIEVSUk9SX0NBVEVHT1JJRVMsIEVSUk9SX1RZUEVTIH0gZnJvbSBcIi4uL3RhZ3NcIjtcbmltcG9ydCB7IEJhc2VFcnJvciB9IGZyb20gXCIuL2Jhc2VcIjtcblxuZXhwb3J0IGNsYXNzIFVuc3VwcG9ydGVkRXZlbnRFcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIGNvbnN0IGZpbmFsU3RhdFRhZ3MgPSB7XG4gICAgICBbVEFHX05BTUVTLkVSUk9SX0NBVEVHT1JZXTogRVJST1JfQ0FURUdPUklFUy5QTEFURk9STSxcbiAgICAgIFtUQUdfTkFNRVMuRVJST1JfVFlQRV06IEVSUk9SX1RZUEVTLlVOU1VQUE9SVEVELFxuICAgIH07XG4gICAgc3VwZXIobWVzc2FnZSwgNDAwLCBmaW5hbFN0YXRUYWdzKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,7 @@
1
+ export * from './types';
2
+ export * from './tags';
3
+ export * from './errors';
4
+ export * from './logger';
5
+ export * from './network';
6
+ export * from './utils';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
package/build/index.js ADDED
@@ -0,0 +1,23 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./tags"), exports);
19
+ __exportStar(require("./errors"), exports);
20
+ __exportStar(require("./logger"), exports);
21
+ __exportStar(require("./network"), exports);
22
+ __exportStar(require("./utils"), exports);
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUF3QjtBQUN4Qix5Q0FBdUI7QUFDdkIsMkNBQXlCO0FBQ3pCLDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIsMENBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3RhZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2dnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9uZXR3b3JrJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuIl19
@@ -0,0 +1,7 @@
1
+ declare const setLogLevel: (level: any) => void;
2
+ declare const debug: (...args: any[]) => void;
3
+ declare const info: (...args: any[]) => void;
4
+ declare const warn: (...args: any[]) => void;
5
+ declare const error: (...args: any[]) => void;
6
+ export { debug, error, info, setLogLevel, warn };
7
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAUA,QAAA,MAAM,WAAW,sBAEhB,CAAC;AAEF,QAAA,MAAM,KAAK,0BAIV,CAAC;AAEF,QAAA,MAAM,IAAI,0BAIT,CAAC;AAEF,QAAA,MAAM,IAAI,0BAIT,CAAC;AAEF,QAAA,MAAM,KAAK,0BAIV,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /* istanbul ignore file */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.warn = exports.setLogLevel = exports.info = exports.error = exports.debug = void 0;
5
+ const levelDebug = 0; // Most verbose logging level
6
+ const levelInfo = 1; // Logs about state of the application
7
+ const levelWarn = 2; // Logs about warnings which dont immediately halt the application
8
+ const levelError = 3; // Logs about errors which dont immediately halt the application
9
+ // any value greater than levelError will work as levelNone
10
+ let logLevel = process.env.LOG_LEVEL ? parseInt(process.env.LOG_LEVEL, 10) : levelInfo;
11
+ const setLogLevel = (level) => {
12
+ logLevel = level || logLevel;
13
+ };
14
+ exports.setLogLevel = setLogLevel;
15
+ const debug = (...args) => {
16
+ if (levelDebug >= logLevel) {
17
+ console.debug(...args);
18
+ }
19
+ };
20
+ exports.debug = debug;
21
+ const info = (...args) => {
22
+ if (levelInfo >= logLevel) {
23
+ console.info(...args);
24
+ }
25
+ };
26
+ exports.info = info;
27
+ const warn = (...args) => {
28
+ if (levelWarn >= logLevel) {
29
+ console.warn(...args);
30
+ }
31
+ };
32
+ exports.warn = warn;
33
+ const error = (...args) => {
34
+ if (levelError >= logLevel) {
35
+ console.error(...args);
36
+ }
37
+ };
38
+ exports.error = error;
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQTBCOzs7QUFFMUIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsNkJBQTZCO0FBQ25ELE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLHNDQUFzQztBQUMzRCxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxrRUFBa0U7QUFDdkYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0VBQWdFO0FBQ3RGLDJEQUEyRDtBQUUzRCxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFFdkYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUM1QixRQUFRLEdBQUcsS0FBSyxJQUFJLFFBQVEsQ0FBQztBQUMvQixDQUFDLENBQUM7QUEwQjJCLGtDQUFXO0FBeEJ4QyxNQUFNLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUU7SUFDeEIsSUFBSSxVQUFVLElBQUksUUFBUSxFQUFFO1FBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUMsQ0FBQztBQW9CTyxzQkFBSztBQWxCZCxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUU7SUFDdkIsSUFBSSxTQUFTLElBQUksUUFBUSxFQUFFO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUN2QjtBQUNILENBQUMsQ0FBQztBQWNxQixvQkFBSTtBQVozQixNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUU7SUFDdkIsSUFBSSxTQUFTLElBQUksUUFBUSxFQUFFO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUN2QjtBQUNILENBQUMsQ0FBQztBQVF3QyxvQkFBSTtBQU45QyxNQUFNLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUU7SUFDeEIsSUFBSSxVQUFVLElBQUksUUFBUSxFQUFFO1FBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUMsQ0FBQztBQUVjLHNCQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cblxuY29uc3QgbGV2ZWxEZWJ1ZyA9IDA7IC8vIE1vc3QgdmVyYm9zZSBsb2dnaW5nIGxldmVsXG5jb25zdCBsZXZlbEluZm8gPSAxOyAvLyBMb2dzIGFib3V0IHN0YXRlIG9mIHRoZSBhcHBsaWNhdGlvblxuY29uc3QgbGV2ZWxXYXJuID0gMjsgLy8gTG9ncyBhYm91dCB3YXJuaW5ncyB3aGljaCBkb250IGltbWVkaWF0ZWx5IGhhbHQgdGhlIGFwcGxpY2F0aW9uXG5jb25zdCBsZXZlbEVycm9yID0gMzsgLy8gTG9ncyBhYm91dCBlcnJvcnMgd2hpY2ggZG9udCBpbW1lZGlhdGVseSBoYWx0IHRoZSBhcHBsaWNhdGlvblxuLy8gYW55IHZhbHVlIGdyZWF0ZXIgdGhhbiBsZXZlbEVycm9yIHdpbGwgd29yayBhcyBsZXZlbE5vbmVcblxubGV0IGxvZ0xldmVsID0gcHJvY2Vzcy5lbnYuTE9HX0xFVkVMID8gcGFyc2VJbnQocHJvY2Vzcy5lbnYuTE9HX0xFVkVMLCAxMCkgOiBsZXZlbEluZm87XG5cbmNvbnN0IHNldExvZ0xldmVsID0gKGxldmVsKSA9PiB7XG4gIGxvZ0xldmVsID0gbGV2ZWwgfHwgbG9nTGV2ZWw7XG59O1xuXG5jb25zdCBkZWJ1ZyA9ICguLi5hcmdzKSA9PiB7XG4gIGlmIChsZXZlbERlYnVnID49IGxvZ0xldmVsKSB7XG4gICAgY29uc29sZS5kZWJ1ZyguLi5hcmdzKTtcbiAgfVxufTtcblxuY29uc3QgaW5mbyA9ICguLi5hcmdzKSA9PiB7XG4gIGlmIChsZXZlbEluZm8gPj0gbG9nTGV2ZWwpIHtcbiAgICBjb25zb2xlLmluZm8oLi4uYXJncyk7XG4gIH1cbn07XG5cbmNvbnN0IHdhcm4gPSAoLi4uYXJncykgPT4ge1xuICBpZiAobGV2ZWxXYXJuID49IGxvZ0xldmVsKSB7XG4gICAgY29uc29sZS53YXJuKC4uLmFyZ3MpO1xuICB9XG59O1xuXG5jb25zdCBlcnJvciA9ICguLi5hcmdzKSA9PiB7XG4gIGlmIChsZXZlbEVycm9yID49IGxvZ0xldmVsKSB7XG4gICAgY29uc29sZS5lcnJvciguLi5hcmdzKTtcbiAgfVxufTtcblxuZXhwb3J0IHsgZGVidWcsIGVycm9yLCBpbmZvLCBzZXRMb2dMZXZlbCwgd2FybiB9OyJdfQ==
@@ -0,0 +1,38 @@
1
+ import { AxiosRequestConfig } from 'axios';
2
+ import { ApiResponse, HttpClient, ResponseParser } from './types';
3
+ /**
4
+ * A wrapper around axios to make http requests
5
+ *
6
+ * @class AxiosClient
7
+ * @classdesc
8
+ * The `AxiosClient` class is a wrapper around the axios library that provides a simplified interface for making HTTP requests. It handles various types of errors and provides a consistent response format.
9
+ *
10
+ * @param {AxiosRequestConfig} options - The default options for the http client
11
+ *
12
+ * @example
13
+ * const axiosClient = new AxiosClient({ timeout: 1000 * 10 });
14
+ * const response = await axiosClient.post("https://example.com", { foo: "bar" });
15
+ * if (response.type === "success") {
16
+ * console.log(response.statusCode);
17
+ * console.log(response.responseBody);
18
+ * } else if (response.type === "application-error") {
19
+ * console.log(response.statusCode);
20
+ * console.log(response.message);
21
+ * console.log(response.responseBody);
22
+ * } else if (response.type === "client-error") {
23
+ * console.log(response.statusCode);
24
+ * console.log(response.message);
25
+ * }
26
+ */
27
+ export declare class AxiosClient implements HttpClient {
28
+ private options;
29
+ private instance;
30
+ constructor(options?: AxiosRequestConfig);
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>>;
37
+ }
38
+ //# sourceMappingURL=axios.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axios.d.ts","sourceRoot":"","sources":["../../../src/network/clients/axios.ts"],"names":[],"mappings":"AAAA,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;IACpC,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,OAAO,CAAC,EAAE,kBAAkB;YAoB1B,WAAW;IAoEZ,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"}
@@ -0,0 +1,197 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.AxiosClient = void 0;
30
+ const axios_1 = __importStar(require("axios"));
31
+ const http_1 = __importDefault(require("http"));
32
+ const https_1 = __importDefault(require("https"));
33
+ const constants_1 = require("../../constants");
34
+ const utils_1 = require("../../utils");
35
+ /**
36
+ * A wrapper around axios to make http requests
37
+ *
38
+ * @class AxiosClient
39
+ * @classdesc
40
+ * The `AxiosClient` class is a wrapper around the axios library that provides a simplified interface for making HTTP requests. It handles various types of errors and provides a consistent response format.
41
+ *
42
+ * @param {AxiosRequestConfig} options - The default options for the http client
43
+ *
44
+ * @example
45
+ * const axiosClient = new AxiosClient({ timeout: 1000 * 10 });
46
+ * const response = await axiosClient.post("https://example.com", { foo: "bar" });
47
+ * if (response.type === "success") {
48
+ * console.log(response.statusCode);
49
+ * console.log(response.responseBody);
50
+ * } else if (response.type === "application-error") {
51
+ * console.log(response.statusCode);
52
+ * console.log(response.message);
53
+ * console.log(response.responseBody);
54
+ * } else if (response.type === "client-error") {
55
+ * console.log(response.statusCode);
56
+ * console.log(response.message);
57
+ * }
58
+ */
59
+ class AxiosClient {
60
+ constructor(options) {
61
+ const defaultOptions = {
62
+ timeout: 1000 * 10,
63
+ // `withCredentials` indicates whether or not cross-site Access-Control requests should be made using credentials
64
+ withCredentials: false,
65
+ // `responseEncoding` indicates encoding to use for decoding responses (Node.js only),
66
+ responseEncoding: 'utf8',
67
+ // `maxBodyLength` (Node only option) defines the max size of the http request content in bytes allowed,
68
+ maxBodyLength: 1000 * 1000 * 10,
69
+ // `maxRedirects` defines the maximum number of redirects to follow in node.js,
70
+ maxRedirects: 5,
71
+ // `httpAgent` and `httpsAgent` define a custom agent to be used when performing http
72
+ httpAgent: new http_1.default.Agent({ keepAlive: true }),
73
+ // and https requests, respectively, in node.js. This allows options to be added like `keepAlive` that are not enabled by default.
74
+ httpsAgent: new https_1.default.Agent({ keepAlive: true }),
75
+ };
76
+ this.options = { ...defaultOptions, ...options };
77
+ this.instance = axios_1.default.create(this.options);
78
+ }
79
+ async makeRequest(config, responseParser) {
80
+ let output;
81
+ try {
82
+ const requestConfig = config;
83
+ const response = await this.instance.request(requestConfig);
84
+ const { status, data, headers } = response;
85
+ if (responseParser) {
86
+ try {
87
+ const parsedData = responseParser(data);
88
+ output = {
89
+ type: 'success',
90
+ statusCode: status,
91
+ responseBody: parsedData,
92
+ headers,
93
+ };
94
+ return output;
95
+ }
96
+ catch (error) {
97
+ const unknownError = error;
98
+ return {
99
+ type: 'client-error',
100
+ statusCode: unknownError['status'] || 500,
101
+ message: `Failed to parse response data: ${unknownError.message}`,
102
+ };
103
+ }
104
+ }
105
+ return { type: 'success', statusCode: status, responseBody: data, headers };
106
+ }
107
+ catch (error) {
108
+ if (error instanceof axios_1.AxiosError) {
109
+ const axiosError = error;
110
+ if (axiosError.response) {
111
+ const { response } = axiosError;
112
+ return {
113
+ type: 'application-error',
114
+ statusCode: response.status,
115
+ message: response.statusText,
116
+ responseBody: response.data,
117
+ headers: response.headers,
118
+ };
119
+ }
120
+ if (axiosError.code) {
121
+ const resp = constants_1.NETWORK_STATUS_ERR_MAP[axiosError.code];
122
+ if (!resp) {
123
+ return {
124
+ type: 'client-error',
125
+ statusCode: 500,
126
+ message: `Unknown Error:${axiosError.message}`,
127
+ };
128
+ }
129
+ return {
130
+ type: 'client-error',
131
+ statusCode: resp.status,
132
+ message: resp.message,
133
+ };
134
+ }
135
+ }
136
+ const unknownError = error;
137
+ const status = 500;
138
+ const message = unknownError.message || 'Unknown Error';
139
+ return { type: 'client-error', statusCode: status, message };
140
+ }
141
+ }
142
+ async get(url, options, responseParser) {
143
+ let config = {
144
+ method: 'get',
145
+ url: url,
146
+ };
147
+ if ((0, utils_1.isNotEmpty)(options)) {
148
+ config = { ...config, ...options };
149
+ }
150
+ return this.makeRequest(config, responseParser);
151
+ }
152
+ async post(url, data, options, responseParser) {
153
+ let config = {
154
+ method: 'post',
155
+ url: url,
156
+ data,
157
+ };
158
+ if ((0, utils_1.isNotEmpty)(options)) {
159
+ config = { ...config, ...options };
160
+ }
161
+ return this.makeRequest(config, responseParser);
162
+ }
163
+ async put(url, data, options, responseParser) {
164
+ let config = {
165
+ method: 'put',
166
+ url: url,
167
+ data,
168
+ };
169
+ if ((0, utils_1.isNotEmpty)(options)) {
170
+ config = { ...config, ...options };
171
+ }
172
+ return this.makeRequest(config, responseParser);
173
+ }
174
+ async patch(url, data, options, responseParser) {
175
+ let config = {
176
+ method: 'patch',
177
+ url: url,
178
+ data,
179
+ };
180
+ if ((0, utils_1.isNotEmpty)(options)) {
181
+ config = { ...config, ...options };
182
+ }
183
+ return this.makeRequest(config, responseParser);
184
+ }
185
+ async delete(url, options, responseParser) {
186
+ let config = {
187
+ method: 'delete',
188
+ url: url,
189
+ };
190
+ if ((0, utils_1.isNotEmpty)(options)) {
191
+ config = { ...config, ...options };
192
+ }
193
+ return this.makeRequest(config, responseParser);
194
+ }
195
+ }
196
+ exports.AxiosClient = AxiosClient;
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmV0d29yay9jbGllbnRzL2F4aW9zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQTZFO0FBQzdFLGdEQUF3QjtBQUN4QixrREFBMEI7QUFDMUIsK0NBQXlEO0FBRXpELHVDQUF5QztBQUV6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFhLFdBQVc7SUFJdEIsWUFBWSxPQUE0QjtRQUN0QyxNQUFNLGNBQWMsR0FBRztZQUNyQixPQUFPLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDbEIsaUhBQWlIO1lBQ2pILGVBQWUsRUFBRSxLQUFLO1lBQ3RCLHNGQUFzRjtZQUN0RixnQkFBZ0IsRUFBRSxNQUFNO1lBQ3hCLHdHQUF3RztZQUN4RyxhQUFhLEVBQUUsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQy9CLCtFQUErRTtZQUMvRSxZQUFZLEVBQUUsQ0FBQztZQUNmLHFGQUFxRjtZQUNyRixTQUFTLEVBQUUsSUFBSSxjQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzlDLGtJQUFrSTtZQUNsSSxVQUFVLEVBQUUsSUFBSSxlQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ2pELENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxLQUFLLENBQUMsV0FBVyxDQUN2QixNQUEwQixFQUMxQixjQUFrQztRQUVsQyxJQUFJLE1BQXNCLENBQUM7UUFDM0IsSUFBSTtZQUNGLE1B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QUcsT0FBTyxFQUFFLENBQUM7U0FDcEM7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUksTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTSxDQUNqQixHQUFXLEVBQ1gsT0FBNEIsRUFDNUIsY0FBa0M7UUFFbEMsSUFBSSxNQUFNLEdBQXVCO1lBQy9CLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLEdBQUcsRUFBRSxHQUFHO1NBQ1QsQ0FBQztRQUNGLElBQUksSUFBQSxrQkFBVSxFQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7U0FDcEM7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUksTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FHRjtBQTlLRCxrQ0E4S0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MsIHsgQXhpb3NSZXF1ZXN0Q29uZmlnLCBBeGlvc0Vycm9yLCBBeGlvc0luc3RhbmNlIH0gZnJvbSAnYXhpb3MnO1xuaW1wb3J0IGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgaHR0cHMgZnJvbSAnaHR0cHMnO1xuaW1wb3J0IHsgTkVUV09SS19TVEFUVVNfRVJSX01BUCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBcGlSZXNwb25zZSwgSHR0cENsaWVudCwgUmVzcG9uc2VQYXJzZXIgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzTm90RW1wdHkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbi8qKlxuICogQSB3cmFwcGVyIGFyb3VuZCBheGlvcyB0byBtYWtlIGh0dHAgcmVxdWVzdHNcbiAqXG4gKiBAY2xhc3MgQXhpb3NDbGllbnRcbiAqIEBjbGFzc2Rlc2NcbiAqIFRoZSBgQXhpb3NDbGllbnRgIGNsYXNzIGlzIGEgd3JhcHBlciBhcm91bmQgdGhlIGF4aW9zIGxpYnJhcnkgdGhhdCBwcm92aWRlcyBhIHNpbXBsaWZpZWQgaW50ZXJmYWNlIGZvciBtYWtpbmcgSFRUUCByZXF1ZXN0cy4gSXQgaGFuZGxlcyB2YXJpb3VzIHR5cGVzIG9mIGVycm9ycyBhbmQgcHJvdmlkZXMgYSBjb25zaXN0ZW50IHJlc3BvbnNlIGZvcm1hdC5cbiAqXG4gKiBAcGFyYW0ge0F4aW9zUmVxdWVzdENvbmZpZ30gb3B0aW9ucyAtIFRoZSBkZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBodHRwIGNsaWVudFxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBheGlvc0NsaWVudCA9IG5ldyBBeGlvc0NsaWVudCh7IHRpbWVvdXQ6IDEwMDAgKiAxMCB9KTtcbiAqIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3NDbGllbnQucG9zdChcImh0dHBzOi8vZXhhbXBsZS5jb21cIiwgeyBmb286IFwiYmFyXCIgfSk7XG4gKiBpZiAocmVzcG9uc2UudHlwZSA9PT0gXCJzdWNjZXNzXCIpIHtcbiAqICAgY29uc29sZS5sb2cocmVzcG9uc2Uuc3RhdHVzQ29kZSk7XG4gKiAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLnJlc3BvbnNlQm9keSk7XG4gKiB9IGVsc2UgaWYgKHJlc3BvbnNlLnR5cGUgPT09IFwiYXBwbGljYXRpb24tZXJyb3JcIikge1xuICogICBjb25zb2xlLmxvZyhyZXNwb25zZS5zdGF0dXNDb2RlKTtcbiAqICAgY29uc29sZS5sb2cocmVzcG9uc2UubWVzc2FnZSk7XG4gKiAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLnJlc3BvbnNlQm9keSk7XG4gKiB9IGVsc2UgaWYgKHJlc3BvbnNlLnR5cGUgPT09IFwiY2xpZW50LWVycm9yXCIpIHtcbiAqICAgY29uc29sZS5sb2cocmVzcG9uc2Uuc3RhdHVzQ29kZSk7XG4gKiAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLm1lc3NhZ2UpO1xuICogfVxuICovXG5leHBvcnQgY2xhc3MgQXhpb3NDbGllbnQgaW1wbGVtZW50cyBIdHRwQ2xpZW50IHtcbiAgcHJpdmF0ZSBvcHRpb25zOiBBeGlvc1JlcXVlc3RDb25maWc7XG4gIHByaXZhdGUgaW5zdGFuY2U6IEF4aW9zSW5zdGFuY2U7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IEF4aW9zUmVxdWVzdENvbmZpZykge1xuICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xuICAgICAgdGltZW91dDogMTAwMCAqIDEwLFxuICAgICAgLy8gYHdpdGhDcmVkZW50aWFsc2AgaW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGNyb3NzLXNpdGUgQWNjZXNzLUNvbnRyb2wgcmVxdWVzdHMgc2hvdWxkIGJlIG1hZGUgdXNpbmcgY3JlZGVudGlhbHNcbiAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgICAvLyBgcmVzcG9uc2VFbmNvZGluZ2AgaW5kaWNhdGVzIGVuY29kaW5nIHRvIHVzZSBmb3IgZGVjb2RpbmcgcmVzcG9uc2VzIChOb2RlLmpzIG9ubHkpLFxuICAgICAgcmVzcG9uc2VFbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgLy8gYG1heEJvZHlMZW5ndGhgIChOb2RlIG9ubHkgb3B0aW9uKSBkZWZpbmVzIHRoZSBtYXggc2l6ZSBvZiB0aGUgaHR0cCByZXF1ZXN0IGNvbnRlbnQgaW4gYnl0ZXMgYWxsb3dlZCxcbiAgICAgIG1heEJvZHlMZW5ndGg6IDEwMDAgKiAxMDAwICogMTAsXG4gICAgICAvLyBgbWF4UmVkaXJlY3RzYCBkZWZpbmVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiByZWRpcmVjdHMgdG8gZm9sbG93IGluIG5vZGUuanMsXG4gICAgICBtYXhSZWRpcmVjdHM6IDUsXG4gICAgICAvLyBgaHR0cEFnZW50YCBhbmQgYGh0dHBzQWdlbnRgIGRlZmluZSBhIGN1c3RvbSBhZ2VudCB0byBiZSB1c2VkIHdoZW4gcGVyZm9ybWluZyBodHRwXG4gICAgICBodHRwQWdlbnQ6IG5ldyBodHRwLkFnZW50KHsga2VlcEFsaXZlOiB0cnVlIH0pLFxuICAgICAgLy8gYW5kIGh0dHBzIHJlcXVlc3RzLCByZXNwZWN0aXZlbHksIGluIG5vZGUuanMuIFRoaXMgYWxsb3dzIG9wdGlvbnMgdG8gYmUgYWRkZWQgbGlrZSBga2VlcEFsaXZlYCB0aGF0IGFyZSBub3QgZW5hYmxlZCBieSBkZWZhdWx0LlxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHsga2VlcEFsaXZlOiB0cnVlIH0pLFxuICAgIH07XG4gICAgdGhpcy5vcHRpb25zID0geyAuLi5kZWZhdWx0T3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICAgIHRoaXMuaW5zdGFuY2UgPSBheGlvcy5jcmVhdGUodGhpcy5vcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbWFrZVJlcXVlc3Q8VD4oXG4gICAgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGxldCBvdXRwdXQ6IEFwaVJlc3BvbnNlPFQ+O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXF1ZXN0Q29uZmlnID0gY29uZmlnO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmluc3RhbmNlLnJlcXVlc3QocmVxdWVzdENvbmZpZyk7XG4gICAgICBjb25zdCB7IHN0YXR1cywgZGF0YSwgaGVhZGVycyB9ID0gcmVzcG9uc2U7XG5cbiAgICAgIGlmIChyZXNwb25zZVBhcnNlcikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSByZXNwb25zZVBhcnNlcihkYXRhKTtcbiAgICAgICAgICBvdXRwdXQgPSB7XG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICBzdGF0dXNDb2RlOiBzdGF0dXMsXG4gICAgICAgICAgICByZXNwb25zZUJvZHk6IHBhcnNlZERhdGEsXG4gICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zdCB1bmtub3duRXJyb3IgPSBlcnJvciBhcyBFcnJvcjtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ2NsaWVudC1lcnJvcicsXG4gICAgICAgICAgICBzdGF0dXNDb2RlOiB1bmtub3duRXJyb3JbJ3N0YXR1cyddIHx8IDUwMCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBGYWlsZWQgdG8gcGFyc2UgcmVzcG9uc2UgZGF0YTogJHt1bmtub3duRXJyb3IubWVzc2FnZX1gLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHR5cGU6ICdzdWNjZXNzJywgc3RhdHVzQ29kZTogc3RhdHVzLCByZXNwb25zZUJvZHk6IGRhdGEsIGhlYWRlcnMgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQXhpb3NFcnJvcikge1xuICAgICAgICBjb25zdCBheGlvc0Vycm9yID0gZXJyb3IgYXMgQXhpb3NFcnJvcjtcbiAgICAgICAgaWYgKGF4aW9zRXJyb3IucmVzcG9uc2UpIHtcbiAgICAgICAgICBjb25zdCB7IHJlc3BvbnNlIH0gPSBheGlvc0Vycm9yO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24tZXJyb3InLFxuICAgICAgICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICAgICAgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dCxcbiAgICAgICAgICAgIHJlc3BvbnNlQm9keTogcmVzcG9uc2UuZGF0YSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlLmhlYWRlcnMsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXhpb3NFcnJvci5jb2RlKSB7XG4gICAgICAgICAgY29uc3QgcmVzcCA9IE5FVFdPUktfU1RBVFVTX0VSUl9NQVBbYXhpb3NFcnJvci5jb2RlXTtcbiAgICAgICAgICBpZiAoIXJlc3ApIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdjbGllbnQtZXJyb3InLFxuICAgICAgICAgICAgICBzdGF0dXNDb2RlOiA1MDAsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGBVbmtub3duIEVycm9yOiR7YXhpb3NFcnJvci5tZXNzYWdlfWAsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ2NsaWVudC1lcnJvcicsXG4gICAgICAgICAgICBzdGF0dXNDb2RlOiByZXNwLnN0YXR1cyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3AubWVzc2FnZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVua25vd25FcnJvciA9IGVycm9yIGFzIEVycm9yO1xuICAgICAgY29uc3Qgc3RhdHVzID0gNTAwO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHVua25vd25FcnJvci5tZXNzYWdlIHx8ICdVbmtub3duIEVycm9yJztcblxuICAgICAgcmV0dXJuIHsgdHlwZTogJ2NsaWVudC1lcnJvcicsIHN0YXR1c0NvZGU6IHN0YXR1cywgbWVzc2FnZSB9O1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXQ8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEF4aW9zUmVxdWVzdENvbmZpZyxcbiAgICByZXNwb25zZVBhcnNlcj86IFJlc3BvbnNlUGFyc2VyPFQ+LFxuICApOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgbGV0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIHVybDogdXJsLFxuICAgIH07XG4gICAgaWYgKGlzTm90RW1wdHkob3B0aW9ucykpIHtcbiAgICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5vcHRpb25zIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KGNvbmZpZywgcmVzcG9uc2VQYXJzZXIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHBvc3Q8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZGF0YT86IGFueSxcbiAgICBvcHRpb25zPzogQXhpb3NSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBsZXQgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgZGF0YSxcbiAgICB9O1xuICAgIGlmIChpc05vdEVtcHR5KG9wdGlvbnMpKSB7XG4gICAgICBjb25maWcgPSB7IC4uLmNvbmZpZywgLi4ub3B0aW9ucyB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxUPihjb25maWcsIHJlc3BvbnNlUGFyc2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwdXQ8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZGF0YT86IGFueSxcbiAgICBvcHRpb25zPzogQXhpb3NSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBsZXQgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7XG4gICAgICBtZXRob2Q6ICdwdXQnLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBkYXRhLFxuICAgIH07XG4gICAgaWYgKGlzTm90RW1wdHkob3B0aW9ucykpIHtcbiAgICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5vcHRpb25zIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KGNvbmZpZywgcmVzcG9uc2VQYXJzZXIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHBhdGNoPFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGRhdGE/OiBhbnksXG4gICAgb3B0aW9ucz86IEF4aW9zUmVxdWVzdENvbmZpZyxcbiAgICByZXNwb25zZVBhcnNlcj86IFJlc3BvbnNlUGFyc2VyPFQ+LFxuICApOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgbGV0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgbWV0aG9kOiAncGF0Y2gnLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBkYXRhLFxuICAgIH07XG4gICAgaWYgKGlzTm90RW1wdHkob3B0aW9ucykpIHtcbiAgICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5vcHRpb25zIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KGNvbmZpZywgcmVzcG9uc2VQYXJzZXIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZTxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQXhpb3NSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBsZXQgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7XG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgdXJsOiB1cmwsXG4gICAgfTtcbiAgICBpZiAoaXNOb3RFbXB0eShvcHRpb25zKSkge1xuICAgICAgY29uZmlnID0geyAuLi5jb25maWcsIC4uLm9wdGlvbnMgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3Q8VD4oY29uZmlnLCByZXNwb25zZVBhcnNlcik7XG4gIH1cblxuICAvLyBBZGQgb3RoZXIgSFRUUCBtZXRob2RzIGFzIG5lZWRlZFxufVxuIl19