@rendomnet/apiservice 1.3.5 → 1.3.6

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.
@@ -1,70 +1,156 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.HookManager = void 0;
7
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
9
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
10
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
11
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
12
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
15
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
16
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
17
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
19
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
20
  /**
5
21
  * Manages hooks for different status codes and their processing
6
22
  */
7
- class HookManager {
8
- constructor() {
9
- this.hooks = {};
10
- this.hookPromises = {};
11
- }
23
+ var HookManager = exports.HookManager = /*#__PURE__*/function () {
24
+ function HookManager() {
25
+ _classCallCheck(this, HookManager);
26
+ _defineProperty(this, "hooks", {});
27
+ _defineProperty(this, "hookPromises", {});
28
+ }
29
+ return _createClass(HookManager, [{
30
+ key: "setHooks",
31
+ value:
12
32
  /**
13
33
  * Set hooks for different status codes
14
34
  */
15
- setHooks(hooks) {
16
- this.hooks = { ...this.hooks, ...hooks };
35
+ function setHooks(hooks) {
36
+ this.hooks = _objectSpread(_objectSpread({}, this.hooks), hooks);
17
37
  }
38
+
18
39
  /**
19
40
  * Get a hook for a specific status code
20
41
  */
21
- getHook(status) {
22
- return this.hooks[status];
42
+ }, {
43
+ key: "getHook",
44
+ value: function getHook(status) {
45
+ return this.hooks[status];
23
46
  }
47
+
24
48
  /**
25
49
  * Process a hook for a specific status code
26
50
  */
27
- async processHook(accountId, status, error) {
28
- const hook = this.hooks[status];
29
- if (!hook || !hook.handler)
30
- return null;
31
- const hookKey = `${accountId || 'default'}-${status}`;
32
- try {
33
- // Handle waiting for existing hook call if needed
34
- if (hook.preventConcurrentCalls) {
35
- if (!this.hookPromises[hookKey]) {
36
- this.hookPromises[hookKey] = Promise.resolve(hook.handler(accountId, error.response) || {});
37
- }
38
- const result = await this.hookPromises[hookKey];
39
- delete this.hookPromises[hookKey];
40
- return result;
41
- }
42
- // Otherwise just call the hook directly
43
- return await hook.handler(accountId, error.response) || {};
44
- }
45
- catch (hookError) {
46
- console.error(`Hook handler failed for status ${status}:`, hookError);
47
- if (hook.onHandlerError) {
48
- await hook.onHandlerError(accountId, hookError);
49
- }
50
- throw hookError;
51
- }
52
- }
51
+ }, {
52
+ key: "processHook",
53
+ value: (function () {
54
+ var _processHook = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(accountId, status, error) {
55
+ var hook, hookKey, result, _t, _t2;
56
+ return _regenerator().w(function (_context) {
57
+ while (1) switch (_context.n) {
58
+ case 0:
59
+ hook = this.hooks[status];
60
+ if (!(!hook || !hook.handler)) {
61
+ _context.n = 1;
62
+ break;
63
+ }
64
+ return _context.a(2, null);
65
+ case 1:
66
+ hookKey = "".concat(accountId || 'default', "-").concat(status);
67
+ _context.p = 2;
68
+ if (!hook.preventConcurrentCalls) {
69
+ _context.n = 4;
70
+ break;
71
+ }
72
+ if (!this.hookPromises[hookKey]) {
73
+ this.hookPromises[hookKey] = Promise.resolve(hook.handler(accountId, error.response) || {});
74
+ }
75
+ _context.n = 3;
76
+ return this.hookPromises[hookKey];
77
+ case 3:
78
+ result = _context.v;
79
+ delete this.hookPromises[hookKey];
80
+ return _context.a(2, result);
81
+ case 4:
82
+ _context.n = 5;
83
+ return hook.handler(accountId, error.response);
84
+ case 5:
85
+ _t = _context.v;
86
+ if (_t) {
87
+ _context.n = 6;
88
+ break;
89
+ }
90
+ _t = {};
91
+ case 6:
92
+ return _context.a(2, _t);
93
+ case 7:
94
+ _context.p = 7;
95
+ _t2 = _context.v;
96
+ console.error("Hook handler failed for status ".concat(status, ":"), _t2);
97
+ if (!hook.onHandlerError) {
98
+ _context.n = 8;
99
+ break;
100
+ }
101
+ _context.n = 8;
102
+ return hook.onHandlerError(accountId, _t2);
103
+ case 8:
104
+ throw _t2;
105
+ case 9:
106
+ return _context.a(2);
107
+ }
108
+ }, _callee, this, [[2, 7]]);
109
+ }));
110
+ function processHook(_x, _x2, _x3) {
111
+ return _processHook.apply(this, arguments);
112
+ }
113
+ return processHook;
114
+ }()
53
115
  /**
54
116
  * Handle a retry failure with the appropriate hook
55
117
  */
56
- async handleRetryFailure(accountId, status, error) {
57
- const hook = this.hooks[status];
58
- if (hook === null || hook === void 0 ? void 0 : hook.onMaxRetriesExceeded) {
59
- await hook.onMaxRetriesExceeded(accountId, error);
60
- }
61
- }
118
+ )
119
+ }, {
120
+ key: "handleRetryFailure",
121
+ value: (function () {
122
+ var _handleRetryFailure = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(accountId, status, error) {
123
+ var hook;
124
+ return _regenerator().w(function (_context2) {
125
+ while (1) switch (_context2.n) {
126
+ case 0:
127
+ hook = this.hooks[status];
128
+ if (!(hook !== null && hook !== void 0 && hook.onMaxRetriesExceeded)) {
129
+ _context2.n = 1;
130
+ break;
131
+ }
132
+ _context2.n = 1;
133
+ return hook.onMaxRetriesExceeded(accountId, error);
134
+ case 1:
135
+ return _context2.a(2);
136
+ }
137
+ }, _callee2, this);
138
+ }));
139
+ function handleRetryFailure(_x4, _x5, _x6) {
140
+ return _handleRetryFailure.apply(this, arguments);
141
+ }
142
+ return handleRetryFailure;
143
+ }()
62
144
  /**
63
145
  * Check if a hook exists and should retry for a given status
64
146
  */
65
- shouldRetry(status) {
66
- const hook = this.hooks[status];
67
- return !!hook && !!hook.shouldRetry;
147
+ )
148
+ }, {
149
+ key: "shouldRetry",
150
+ value: function shouldRetry(status) {
151
+ var hook = this.hooks[status];
152
+ return !!hook && !!hook.shouldRetry;
68
153
  }
69
- }
70
- exports.HookManager = HookManager;
154
+ }]);
155
+ }();
156
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlIiwidCIsInIiLCJTeW1ib2wiLCJuIiwiaXRlcmF0b3IiLCJvIiwidG9TdHJpbmdUYWciLCJpIiwiYyIsInByb3RvdHlwZSIsIkdlbmVyYXRvciIsInUiLCJPYmplY3QiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwiZiIsInAiLCJ5IiwiRyIsInYiLCJhIiwiZCIsImJpbmQiLCJsZW5ndGgiLCJsIiwiVHlwZUVycm9yIiwiY2FsbCIsImRvbmUiLCJ2YWx1ZSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJfcmVnZW5lcmF0b3IiLCJ3IiwibSIsImRlZmluZVByb3BlcnR5IiwiX3JlZ2VuZXJhdG9yRGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX2ludm9rZSIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJfbmV4dCIsIl90aHJvdyIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2xhc3NDYWxsQ2hlY2siLCJfZGVmaW5lUHJvcGVydGllcyIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiSG9va01hbmFnZXIiLCJleHBvcnRzIiwic2V0SG9va3MiLCJob29rcyIsImdldEhvb2siLCJzdGF0dXMiLCJfcHJvY2Vzc0hvb2siLCJfY2FsbGVlIiwiYWNjb3VudElkIiwiZXJyb3IiLCJob29rIiwiaG9va0tleSIsInJlc3VsdCIsIl90IiwiX3QyIiwiX2NvbnRleHQiLCJoYW5kbGVyIiwiY29uY2F0IiwicHJldmVudENvbmN1cnJlbnRDYWxscyIsImhvb2tQcm9taXNlcyIsInJlc3BvbnNlIiwiY29uc29sZSIsIm9uSGFuZGxlckVycm9yIiwicHJvY2Vzc0hvb2siLCJfeCIsIl94MiIsIl94MyIsIl9oYW5kbGVSZXRyeUZhaWx1cmUiLCJfY2FsbGVlMiIsIl9jb250ZXh0MiIsIm9uTWF4UmV0cmllc0V4Y2VlZGVkIiwiaGFuZGxlUmV0cnlGYWlsdXJlIiwiX3g0IiwiX3g1IiwiX3g2Iiwic2hvdWxkUmV0cnkiXSwic291cmNlcyI6WyIuLi9zcmMvSG9va01hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSG9va1NldHRpbmdzLCBTdGF0dXNDb2RlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogTWFuYWdlcyBob29rcyBmb3IgZGlmZmVyZW50IHN0YXR1cyBjb2RlcyBhbmQgdGhlaXIgcHJvY2Vzc2luZ1xuICovXG5leHBvcnQgY2xhc3MgSG9va01hbmFnZXIge1xuICBwcml2YXRlIGhvb2tzOiBSZWNvcmQ8U3RhdHVzQ29kZSwgSG9va1NldHRpbmdzPiA9IHt9O1xuICBwcml2YXRlIGhvb2tQcm9taXNlczogUmVjb3JkPHN0cmluZywgUHJvbWlzZTxvYmplY3Q+PiA9IHt9O1xuXG4gIC8qKlxuICAgKiBTZXQgaG9va3MgZm9yIGRpZmZlcmVudCBzdGF0dXMgY29kZXNcbiAgICovXG4gIHB1YmxpYyBzZXRIb29rcyhob29rczogUmVjb3JkPFN0YXR1c0NvZGUsIEhvb2tTZXR0aW5ncz4pOiB2b2lkIHtcbiAgICB0aGlzLmhvb2tzID0geyAuLi50aGlzLmhvb2tzLCAuLi5ob29rcyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIGhvb2sgZm9yIGEgc3BlY2lmaWMgc3RhdHVzIGNvZGVcbiAgICovXG4gIHB1YmxpYyBnZXRIb29rKHN0YXR1czogU3RhdHVzQ29kZSk6IEhvb2tTZXR0aW5ncyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuaG9va3Nbc3RhdHVzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIGEgaG9vayBmb3IgYSBzcGVjaWZpYyBzdGF0dXMgY29kZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHByb2Nlc3NIb29rKFxuICAgIGFjY291bnRJZDogc3RyaW5nLFxuICAgIHN0YXR1czogU3RhdHVzQ29kZSxcbiAgICBlcnJvcjogYW55XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PiB8IG51bGw+IHtcbiAgICBjb25zdCBob29rID0gdGhpcy5ob29rc1tzdGF0dXNdO1xuICAgIGlmICghaG9vayB8fCAhaG9vay5oYW5kbGVyKSByZXR1cm4gbnVsbDtcbiAgICBcbiAgICBjb25zdCBob29rS2V5ID0gYCR7YWNjb3VudElkIHx8ICdkZWZhdWx0J30tJHtzdGF0dXN9YDtcbiAgICBcbiAgICB0cnkge1xuICAgICAgLy8gSGFuZGxlIHdhaXRpbmcgZm9yIGV4aXN0aW5nIGhvb2sgY2FsbCBpZiBuZWVkZWRcbiAgICAgIGlmIChob29rLnByZXZlbnRDb25jdXJyZW50Q2FsbHMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhvb2tQcm9taXNlc1tob29rS2V5XSkge1xuICAgICAgICAgIHRoaXMuaG9va1Byb21pc2VzW2hvb2tLZXldID0gUHJvbWlzZS5yZXNvbHZlKFxuICAgICAgICAgICAgaG9vay5oYW5kbGVyKGFjY291bnRJZCwgZXJyb3IucmVzcG9uc2UpIHx8IHt9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ob29rUHJvbWlzZXNbaG9va0tleV07XG4gICAgICAgIGRlbGV0ZSB0aGlzLmhvb2tQcm9taXNlc1tob29rS2V5XTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0gXG4gICAgICBcbiAgICAgIC8vIE90aGVyd2lzZSBqdXN0IGNhbGwgdGhlIGhvb2sgZGlyZWN0bHlcbiAgICAgIHJldHVybiBhd2FpdCBob29rLmhhbmRsZXIoYWNjb3VudElkLCBlcnJvci5yZXNwb25zZSkgfHwge307XG4gICAgfSBcbiAgICBjYXRjaCAoaG9va0Vycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBIb29rIGhhbmRsZXIgZmFpbGVkIGZvciBzdGF0dXMgJHtzdGF0dXN9OmAsIGhvb2tFcnJvcik7XG4gICAgICBcbiAgICAgIGlmIChob29rLm9uSGFuZGxlckVycm9yKSB7XG4gICAgICAgIGF3YWl0IGhvb2sub25IYW5kbGVyRXJyb3IoYWNjb3VudElkLCBob29rRXJyb3IpO1xuICAgICAgfVxuICAgICAgXG4gICAgICB0aHJvdyBob29rRXJyb3I7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBhIHJldHJ5IGZhaWx1cmUgd2l0aCB0aGUgYXBwcm9wcmlhdGUgaG9va1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhbmRsZVJldHJ5RmFpbHVyZShhY2NvdW50SWQ6IHN0cmluZywgc3RhdHVzOiBTdGF0dXNDb2RlLCBlcnJvcjogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaG9vayA9IHRoaXMuaG9va3Nbc3RhdHVzXTtcbiAgICBpZiAoaG9vaz8ub25NYXhSZXRyaWVzRXhjZWVkZWQpIHtcbiAgICAgIGF3YWl0IGhvb2sub25NYXhSZXRyaWVzRXhjZWVkZWQoYWNjb3VudElkLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgaG9vayBleGlzdHMgYW5kIHNob3VsZCByZXRyeSBmb3IgYSBnaXZlbiBzdGF0dXNcbiAgICovXG4gIHB1YmxpYyBzaG91bGRSZXRyeShzdGF0dXM6IFN0YXR1c0NvZGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBob29rID0gdGhpcy5ob29rc1tzdGF0dXNdO1xuICAgIHJldHVybiAhIWhvb2sgJiYgISFob29rLnNob3VsZFJldHJ5O1xuICB9XG59ICJdLCJtYXBwaW5ncyI6Ijs7Ozs7OzswQkFDQSx1S0FBQUEsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLFdBQUEsOEJBQUFDLEVBQUFOLENBQUEsRUFBQUUsQ0FBQSxFQUFBRSxDQUFBLEVBQUFFLENBQUEsUUFBQUMsQ0FBQSxHQUFBTCxDQUFBLElBQUFBLENBQUEsQ0FBQU0sU0FBQSxZQUFBQyxTQUFBLEdBQUFQLENBQUEsR0FBQU8sU0FBQSxFQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxDQUFBTCxDQUFBLENBQUFDLFNBQUEsVUFBQUssbUJBQUEsQ0FBQUgsQ0FBQSx1QkFBQVYsQ0FBQSxFQUFBRSxDQUFBLEVBQUFFLENBQUEsUUFBQUUsQ0FBQSxFQUFBQyxDQUFBLEVBQUFHLENBQUEsRUFBQUksQ0FBQSxNQUFBQyxDQUFBLEdBQUFYLENBQUEsUUFBQVksQ0FBQSxPQUFBQyxDQUFBLEtBQUFGLENBQUEsS0FBQWIsQ0FBQSxLQUFBZ0IsQ0FBQSxFQUFBcEIsQ0FBQSxFQUFBcUIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFOLENBQUEsRUFBQU0sQ0FBQSxDQUFBQyxJQUFBLENBQUF2QixDQUFBLE1BQUFzQixDQUFBLFdBQUFBLEVBQUFyQixDQUFBLEVBQUFDLENBQUEsV0FBQU0sQ0FBQSxHQUFBUCxDQUFBLEVBQUFRLENBQUEsTUFBQUcsQ0FBQSxHQUFBWixDQUFBLEVBQUFtQixDQUFBLENBQUFmLENBQUEsR0FBQUYsQ0FBQSxFQUFBbUIsQ0FBQSxnQkFBQUMsRUFBQXBCLENBQUEsRUFBQUUsQ0FBQSxTQUFBSyxDQUFBLEdBQUFQLENBQUEsRUFBQVUsQ0FBQSxHQUFBUixDQUFBLEVBQUFILENBQUEsT0FB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
@@ -1,110 +1,200 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
6
  exports.HttpClient = void 0;
7
- const qs_1 = __importDefault(require("qs"));
8
- const FetchError_1 = require("./FetchError");
9
- const form_1 = require("./form");
7
+ var _qs = _interopRequireDefault(require("qs"));
8
+ var _FetchError = require("./FetchError");
9
+ var _form = require("./form");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
11
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
12
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
15
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
16
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
18
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
19
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
20
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
21
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
22
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
23
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
24
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
25
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
26
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
27
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
28
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
29
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
30
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
31
  /**
11
32
  * Handles HTTP requests to external APIs
12
33
  */
13
- class HttpClient {
34
+ var HttpClient = exports.HttpClient = /*#__PURE__*/function () {
35
+ function HttpClient() {
36
+ _classCallCheck(this, HttpClient);
37
+ }
38
+ return _createClass(HttpClient, [{
39
+ key: "makeRequest",
40
+ value: (
14
41
  /**
15
42
  * Make an HTTP request
16
43
  */
17
- async makeRequest(apiParams, authToken) {
18
- const { accountId, method, route, base, body, data, headers, queryParams, contentType = 'application/json', accessToken: forcedAccessToken, useAuth = true, files, abortSignal, } = apiParams;
19
- // Build URL and request body
20
- const url = this.buildUrl(base, route, queryParams);
21
- const requestBody = body || data;
22
- const normalizedMethod = method === null || method === void 0 ? void 0 : method.toUpperCase();
23
- // Handle file uploads
24
- const formData = this.prepareFormData(files);
25
- // Create fetch options
26
- const fetchOptions = this.buildFetchOptions({
27
- method: normalizedMethod,
28
- body: requestBody,
29
- formData,
30
- contentType,
31
- authToken,
32
- forcedAccessToken,
33
- useAuth,
34
- headers,
35
- abortSignal,
36
- });
37
- // Make the request
38
- try {
39
- console.log(`🔄 Making API call to ${url}`);
40
- const response = await fetch(url, fetchOptions);
41
- return await this.handleResponse(response);
42
- }
43
- catch (error) {
44
- console.error('🔄 Error making API call:', error);
45
- throw error;
46
- }
47
- }
44
+ function () {
45
+ var _makeRequest = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(apiParams, authToken) {
46
+ var accountId, method, route, base, body, data, headers, queryParams, _apiParams$contentTyp, contentType, forcedAccessToken, _apiParams$useAuth, useAuth, files, abortSignal, url, requestBody, normalizedMethod, formData, fetchOptions, response, _t;
47
+ return _regenerator().w(function (_context) {
48
+ while (1) switch (_context.n) {
49
+ case 0:
50
+ accountId = apiParams.accountId, method = apiParams.method, route = apiParams.route, base = apiParams.base, body = apiParams.body, data = apiParams.data, headers = apiParams.headers, queryParams = apiParams.queryParams, _apiParams$contentTyp = apiParams.contentType, contentType = _apiParams$contentTyp === void 0 ? 'application/json' : _apiParams$contentTyp, forcedAccessToken = apiParams.accessToken, _apiParams$useAuth = apiParams.useAuth, useAuth = _apiParams$useAuth === void 0 ? true : _apiParams$useAuth, files = apiParams.files, abortSignal = apiParams.abortSignal; // Build URL and request body
51
+ url = this.buildUrl(base, route, queryParams);
52
+ requestBody = body || data;
53
+ normalizedMethod = method === null || method === void 0 ? void 0 : method.toUpperCase(); // Handle file uploads
54
+ formData = this.prepareFormData(files); // Create fetch options
55
+ fetchOptions = this.buildFetchOptions({
56
+ method: normalizedMethod,
57
+ body: requestBody,
58
+ formData: formData,
59
+ contentType: contentType,
60
+ authToken: authToken,
61
+ forcedAccessToken: forcedAccessToken,
62
+ useAuth: useAuth,
63
+ headers: headers,
64
+ abortSignal: abortSignal
65
+ }); // Make the request
66
+ _context.p = 1;
67
+ console.log("\uD83D\uDD04 Making API call to ".concat(url));
68
+ _context.n = 2;
69
+ return fetch(url, fetchOptions);
70
+ case 2:
71
+ response = _context.v;
72
+ _context.n = 3;
73
+ return this.handleResponse(response);
74
+ case 3:
75
+ return _context.a(2, _context.v);
76
+ case 4:
77
+ _context.p = 4;
78
+ _t = _context.v;
79
+ console.error('🔄 Error making API call:', _t);
80
+ throw _t;
81
+ case 5:
82
+ return _context.a(2);
83
+ }
84
+ }, _callee, this, [[1, 4]]);
85
+ }));
86
+ function makeRequest(_x, _x2) {
87
+ return _makeRequest.apply(this, arguments);
88
+ }
89
+ return makeRequest;
90
+ }()
48
91
  /**
49
92
  * Build URL with query parameters
50
93
  */
51
- buildUrl(base, route, queryParams) {
52
- const baseUrl = base || '';
53
- let url = `${baseUrl}${route || ''}`;
54
- if (queryParams)
55
- url += `?${qs_1.default.stringify(queryParams)}`;
56
- return url;
94
+ )
95
+ }, {
96
+ key: "buildUrl",
97
+ value: function buildUrl(base, route, queryParams) {
98
+ var baseUrl = base || '';
99
+ var url = "".concat(baseUrl).concat(route || '');
100
+ if (queryParams) url += "?".concat(_qs["default"].stringify(queryParams));
101
+ return url;
57
102
  }
103
+
58
104
  /**
59
105
  * Prepare form data for file uploads
60
106
  */
61
- prepareFormData(files) {
62
- if (!files)
63
- return null;
64
- const formData = (0, form_1.deserializeForm)(files);
65
- // Use a workaround for TypeScript FormData entries() issue
66
- const entries = formData;
67
- for (let [key, value] of entries.entries()) {
68
- console.log(`formdata ${key}:`, value);
107
+ }, {
108
+ key: "prepareFormData",
109
+ value: function prepareFormData(files) {
110
+ if (!files) return null;
111
+ var formData = (0, _form.deserializeForm)(files);
112
+ // Use a workaround for TypeScript FormData entries() issue
113
+ var entries = formData;
114
+ var _iterator = _createForOfIteratorHelper(entries.entries()),
115
+ _step;
116
+ try {
117
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
118
+ var _step$value = _slicedToArray(_step.value, 2),
119
+ key = _step$value[0],
120
+ value = _step$value[1];
121
+ console.log("formdata ".concat(key, ":"), value);
69
122
  }
70
- return formData;
123
+ } catch (err) {
124
+ _iterator.e(err);
125
+ } finally {
126
+ _iterator.f();
127
+ }
128
+ return formData;
71
129
  }
130
+
72
131
  /**
73
132
  * Build fetch options for request
74
133
  */
75
- buildFetchOptions({ method, body, formData, contentType, authToken, forcedAccessToken, useAuth, headers, abortSignal, }) {
76
- const allowedMethods = ['POST', 'PUT', 'PATCH'];
77
- return {
78
- method,
79
- signal: abortSignal,
80
- headers: {
81
- ...(useAuth && {
82
- Authorization: `Bearer ${forcedAccessToken || authToken.access_token}`
83
- }),
84
- ...(!formData && { 'content-type': contentType }),
85
- ...(headers || {}),
86
- },
87
- body: body && allowedMethods.includes(method)
88
- ? JSON.stringify(body)
89
- : (formData || null),
90
- };
134
+ }, {
135
+ key: "buildFetchOptions",
136
+ value: function buildFetchOptions(_ref) {
137
+ var method = _ref.method,
138
+ body = _ref.body,
139
+ formData = _ref.formData,
140
+ contentType = _ref.contentType,
141
+ authToken = _ref.authToken,
142
+ forcedAccessToken = _ref.forcedAccessToken,
143
+ useAuth = _ref.useAuth,
144
+ headers = _ref.headers,
145
+ abortSignal = _ref.abortSignal;
146
+ var allowedMethods = ['POST', 'PUT', 'PATCH'];
147
+ return {
148
+ method: method,
149
+ signal: abortSignal,
150
+ headers: _objectSpread(_objectSpread(_objectSpread({}, useAuth && {
151
+ Authorization: "Bearer ".concat(forcedAccessToken || authToken.access_token)
152
+ }), !formData && {
153
+ 'content-type': contentType
154
+ }), headers || {}),
155
+ body: body && allowedMethods.includes(method) ? JSON.stringify(body) : formData || null
156
+ };
91
157
  }
158
+
92
159
  /**
93
160
  * Handle API response
94
161
  */
95
- async handleResponse(response) {
96
- let data = null;
97
- try {
98
- data = await response.json();
99
- console.log('🔄 Response data:', data);
100
- }
101
- catch (error) {
102
- // Response wasn't JSON, continue with null data
103
- }
104
- if (!response.ok) {
105
- throw new FetchError_1.FetchError(response, data);
106
- }
107
- return data;
108
- }
109
- }
110
- exports.HttpClient = HttpClient;
162
+ }, {
163
+ key: "handleResponse",
164
+ value: (function () {
165
+ var _handleResponse = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(response) {
166
+ var data, _t2;
167
+ return _regenerator().w(function (_context2) {
168
+ while (1) switch (_context2.n) {
169
+ case 0:
170
+ data = null;
171
+ _context2.p = 1;
172
+ _context2.n = 2;
173
+ return response.json();
174
+ case 2:
175
+ data = _context2.v;
176
+ console.log('🔄 Response data:', data);
177
+ _context2.n = 4;
178
+ break;
179
+ case 3:
180
+ _context2.p = 3;
181
+ _t2 = _context2.v;
182
+ case 4:
183
+ if (response.ok) {
184
+ _context2.n = 5;
185
+ break;
186
+ }
187
+ throw new _FetchError.FetchError(response, data);
188
+ case 5:
189
+ return _context2.a(2, data);
190
+ }
191
+ }, _callee2, null, [[1, 3]]);
192
+ }));
193
+ function handleResponse(_x3) {
194
+ return _handleResponse.apply(this, arguments);
195
+ }
196
+ return handleResponse;
197
+ }())
198
+ }]);
199
+ }();
200
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcXMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9GZXRjaEVycm9yIiwiX2Zvcm0iLCJlIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJvIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsIm93bktleXMiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiVHlwZUVycm9yIiwibCIsIm4iLCJpIiwidSIsImEiLCJmIiwiY2FsbCIsIm5leHQiLCJkb25lIiwiQXJyYXkiLCJpc0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfbiIsIkYiLCJzIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiX3JlZ2VuZXJhdG9yIiwidG9TdHJpbmdUYWciLCJjIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiX3JlZ2VuZXJhdG9yRGVmaW5lMiIsInAiLCJ5IiwiRyIsInYiLCJkIiwiYmluZCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJ3IiwibSIsIl9yZWdlbmVyYXRvckRlZmluZSIsIl9pbnZva2UiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9uZXh0IiwiX3Rocm93IiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnRpZXMiLCJrZXkiLCJfY3JlYXRlQ2xhc3MiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsIkh0dHBDbGllbnQiLCJleHBvcnRzIiwiX21ha2VSZXF1ZXN0IiwiX2NhbGxlZSIsImFwaVBhcmFtcyIsImF1dGhUb2tlbiIsImFjY291bnRJZCIsIm1ldGhvZCIsInJvdXRlIiwiYmFzZSIsImJvZHkiLCJkYXRhIiwiaGVhZGVycyIsInF1ZXJ5UGFyYW1zIiwiX2FwaVBhcmFtcyRjb250ZW50VHlwIiwiY29udGVudFR5cGUiLCJmb3JjZWRBY2Nlc3NUb2tlbiIsIl9hcGlQYXJhbXMkdXNlQXV0aCIsInVzZUF1dGgiLCJmaWxlcyIsImFib3J0U2lnbmFsIiwidXJsIiwicmVxdWVzdEJvZHkiLCJub3JtYWxpemVkTWV0aG9kIiwiZm9ybURhdGEiLCJmZXRjaE9wdGlvbnMiLCJyZXNwb25zZSIsIl90IiwiX2NvbnRleHQiLCJhY2Nlc3NUb2tlbiIsImJ1aWxkVXJsIiwidG9VcHBlckNhc2UiLCJwcmVwYXJlRm9ybURhdGEiLCJidWlsZEZldGNoT3B0aW9ucyIsImNvbnNvbGUiLCJsb2ciLCJjb25jYXQiLCJmZXRjaCIsImhhbmRsZVJlc3BvbnNlIiwiZXJyb3IiLCJtYWtlUmVxdWVzdCIsIl94IiwiX3gyIiwiYmFzZVVybCIsInFzIiwic3RyaW5naWZ5IiwiZGVzZXJpYWxpemVGb3JtIiwiZW50cmllcyIsIl9pdGVyYXRvciIsIl9zdGVwIiwiX3N0ZXAkdmFsdWUiLCJlcnIiLCJfcmVmIiwiYWxsb3dlZE1ldGhvZHMiLCJzaWduYWwiLCJBdXRob3JpemF0aW9uIiwiYWNjZXNzX3Rva2VuIiwiaW5jbHVkZXMiLCJKU09OIiwiX2hhbmRsZVJlc3BvbnNlIiwiX2NhbGxlZTIiLCJfdDIiLCJfY29udGV4dDIiLCJqc29uIiwib2siLCJGZXRjaEVycm9yIiwiX3gzIl0sInNvdXJjZXMiOlsiLi4vc3JjL0h0dHBDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHFzIGZyb20gJ3FzJztcbmltcG9ydCB7IEFwaUNhbGxQYXJhbXMsIFRva2VuIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBGZXRjaEVycm9yIH0gZnJvbSAnLi9GZXRjaEVycm9yJztcbmltcG9ydCB7IGRlc2VyaWFsaXplRm9ybSB9IGZyb20gJy4vZm9ybSc7XG5cbi8qKlxuICogSGFuZGxlcyBIVFRQIHJlcXVlc3RzIHRvIGV4dGVybmFsIEFQSXNcbiAqL1xuZXhwb3J0IGNsYXNzIEh0dHBDbGllbnQge1xuICAvKipcbiAgICogTWFrZSBhbiBIVFRQIHJlcXVlc3RcbiAgICovXG4gIHB1YmxpYyBhc3luYyBtYWtlUmVxdWVzdChhcGlQYXJhbXM6IEFwaUNhbGxQYXJhbXMsIGF1dGhUb2tlbjogVG9rZW4gfCBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB7XG4gICAgICBhY2NvdW50SWQsXG4gICAgICBtZXRob2QsXG4gICAgICByb3V0ZSxcbiAgICAgIGJhc2UsXG4gICAgICBib2R5LFxuICAgICAgZGF0YSxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBxdWVyeVBhcmFtcyxcbiAgICAgIGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgYWNjZXNzVG9rZW46IGZvcmNlZEFjY2Vzc1Rva2VuLFxuICAgICAgdXNlQXV0aCA9IHRydWUsXG4gICAgICBmaWxlcyxcbiAgICAgIGFib3J0U2lnbmFsLFxuICAgIH0gPSBhcGlQYXJhbXM7XG4gICAgXG4gICAgLy8gQnVpbGQgVVJMIGFuZCByZXF1ZXN0IGJvZHlcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJ1aWxkVXJsKGJhc2UsIHJvdXRlLCBxdWVyeVBhcmFtcyk7XG4gICAgY29uc3QgcmVxdWVzdEJvZHkgPSBib2R5IHx8IGRhdGE7XG4gICAgY29uc3Qgbm9ybWFsaXplZE1ldGhvZCA9IG1ldGhvZD8udG9VcHBlckNhc2UoKSBhcyAnR0VUJyB8ICdQT1NUJyB8ICdQVVQnIHwgJ0RFTEVURSc7XG4gICAgXG4gICAgLy8gSGFuZGxlIGZpbGUgdXBsb2Fkc1xuICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5wcmVwYXJlRm9ybURhdGEoZmlsZXMpO1xuICAgIFxuICAgIC8vIENyZWF0ZSBmZXRjaCBvcHRpb25zXG4gICAgY29uc3QgZmV0Y2hPcHRpb25zID0gdGhpcy5idWlsZEZldGNoT3B0aW9ucyh7XG4gICAgICBtZXRob2Q6IG5vcm1hbGl6ZWRNZXRob2QsXG4gICAgICBib2R5OiByZXF1ZXN0Qm9keSxcbiAgICAgIGZvcm1EYXRhLFxuICAgICAgY29udGVudFR5cGUsXG4gICAgICBhdXRoVG9rZW4sXG4gICAgICBmb3JjZWRBY2Nlc3NUb2tlbixcbiAgICAgIHVzZUF1dGgsXG4gICAgICBoZWFkZXJzLFxuICAgICAgYWJvcnRTaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBNYWtlIHRoZSByZXF1ZXN0XG4gICAgdHJ5IHtcbiAgICAgIGNvbnNvbGUubG9nKGDwn5SEIE1ha2luZyBBUEkgY2FsbCB0byAke3VybH1gKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCBmZXRjaE9wdGlvbnMpO1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCfwn5SEIEVycm9yIG1ha2luZyBBUEkgY2FsbDonLCBlcnJvcik7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgVVJMIHdpdGggcXVlcnkgcGFyYW1ldGVyc1xuICAgKi9cbiAgcHJpdmF0ZSBidWlsZFVybChiYXNlOiBzdHJpbmcgfCB1bmRlZmluZWQsIHJvdXRlPzogc3RyaW5nLCBxdWVyeVBhcmFtcz86IFVSTFNlYXJjaFBhcmFtcyk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZVVybCA9IGJhc2UgfHwgJyc7XG4gICAgbGV0IHVybCA9IGAke2Jhc2VVcmx9JHtyb3V0ZSB8fCAnJ31gO1xuICAgIGlmIChxdWVyeVBhcmFtcykgdXJsICs9IGA/JHtxcy5zdHJpbmdpZnkocXVlcnlQYXJhbXMpfWA7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIGZvcm0gZGF0YSBmb3IgZmlsZSB1cGxvYWRzXG4gICAqL1xuICBwcml2YXRlIHByZXBhcmVGb3JtRGF0YShmaWxlcz86IEZpbGVbXSk6IEZvcm1EYXRhIHwgbnVsbCB7XG4gICAgaWYgKCFmaWxlcykgcmV0dXJuIG51bGw7XG4gICAgXG4gICAgY29uc3QgZm9ybURhdGEgPSBkZXNlcmlhbGl6ZUZvcm0oZmlsZXMpO1xuICAgIC8vIFVzZSBhIHdvcmthcm91bmQgZm9yIFR5cGVTY3JpcHQgRm9ybURhdGEgZW50cmllcygpIGlzc3VlXG4gICAgY29uc3QgZW50cmllcyA9IGZvcm1EYXRhIGFzIGFueTtcbiAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgZW50cmllcy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBmb3JtZGF0YSAke2tleX06YCwgdmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybURhdGE7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgZmV0Y2ggb3B0aW9ucyBmb3IgcmVxdWVzdFxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEZldGNoT3B0aW9ucyh7XG4gICAgbWV0aG9kLFxuICAgIGJvZHksXG4gICAgZm9ybURhdGEsXG4gICAgY29udGVudFR5cGUsXG4gICAgYXV0aFRva2VuLFxuICAgIGZvcmNlZEFjY2Vzc1Rva2VuLFxuICAgIHVzZUF1dGgsXG4gICAgaGVhZGVycyxcbiAgICBhYm9ydFNpZ25hbCxcbiAgfToge1xuICAgIG1ldGhvZDogc3RyaW5nO1xuICAgIGJvZHk6IGFueTtcbiAgICBmb3JtRGF0YTogRm9ybURhdGEgfCBudWxsO1xuICAgIGNvbnRlbnRUeXBlOiBzdHJpbmc7XG4gICAgYXV0aFRva2VuOiBhbnk7XG4gICAgZm9yY2VkQWNjZXNzVG9rZW4/OiBzdHJpbmc7XG4gICAgdXNlQXV0aDogYm9vbGVhbjtcbiAgICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuICB9KTogUmVxdWVzdEluaXQge1xuICAgIGNvbnN0IGFsbG93ZWRNZXRob2RzID0gWydQT1NUJywgJ1BVVCcsICdQQVRDSCddO1xuICAgIFxuICAgIHJldHVybiB7XG4gICAgICBtZXRob2QsXG4gICAgICBzaWduYWw6IGFib3J0U2lnbmFsLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAuLi4odXNlQXV0aCAmJiB7IFxuICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtmb3JjZWRBY2Nlc3NUb2tlbiB8fCBhdXRoVG9rZW4uYWNjZXNzX3Rva2VufWAgXG4gICAgICAgIH0pLFxuICAgICAgICAuLi4oIWZvcm1EYXRhICYmIHsgJ2NvbnRlbnQtdHlwZSc6IGNvbnRlbnRUeXBlIH0pLFxuICAgICAgICAuLi4oaGVhZGVycyB8fCB7fSksXG4gICAgICB9LFxuICAgICAgYm9keTogYm9keSAmJiBhbGxvd2VkTWV0aG9kcy5pbmNsdWRlcyhtZXRob2QpIFxuICAgICAgICA/IEpTT04uc3RyaW5naWZ5KGJvZHkpIFxuICAgICAgICA6IChmb3JtRGF0YSB8fCBudWxsKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBBUEkgcmVzcG9uc2VcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlUmVzcG9uc2UocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+IHtcbiAgICBsZXQgZGF0YSA9IG51bGw7XG4gICAgdHJ5IHtcbiAgICAgIGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICBjb25zb2xlLmxvZygn8J+UhCBSZXNwb25zZSBkYXRhOicsIGRhdGEpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBSZXNwb25zZSB3YXNuJ3QgSlNPTiwgY29udGludWUgd2l0aCBudWxsIGRhdGFcbiAgICB9XG4gICAgXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEZldGNoRXJyb3IocmVzcG9uc2UsIGRhdGEpO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxufSAiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLEdBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUYsT0FBQTtBQUF5QyxTQUFBRCx1QkFBQUksQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLGdCQUFBQSxDQUFBO0FBQUEsU0FBQUUsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxRQUFBUixDQUFBLEVBQUFTLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQVosQ0FBQSxPQUFBVyxNQUFBLENBQUFFLHFCQUFBLFFB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