@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.
- package/dist/AccountManager.js +59 -22
- package/dist/ApiKeyAuthProvider.js +47 -16
- package/dist/BasicAuthProvider.js +43 -12
- package/dist/CacheManager.js +72 -37
- package/dist/FetchError.js +68 -30
- package/dist/HookManager.js +133 -47
- package/dist/HttpClient.js +176 -86
- package/dist/RetryManager.js +107 -57
- package/dist/TokenAuthProvider.js +84 -23
- package/dist/components.js +61 -21
- package/dist/form.js +88 -41
- package/dist/index.js +367 -196
- package/dist/types.d.ts +1 -1
- package/dist/types.js +5 -1
- package/package.json +17 -12
package/dist/HookManager.js
CHANGED
|
@@ -1,70 +1,156 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
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
|
-
|
|
22
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
154
|
+
}]);
|
|
155
|
+
}();
|
|
156
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlIiwidCIsInIiLCJTeW1ib2wiLCJuIiwiaXRlcmF0b3IiLCJvIiwidG9TdHJpbmdUYWciLCJpIiwiYyIsInByb3RvdHlwZSIsIkdlbmVyYXRvciIsInUiLCJPYmplY3QiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwiZiIsInAiLCJ5IiwiRyIsInYiLCJhIiwiZCIsImJpbmQiLCJsZW5ndGgiLCJsIiwiVHlwZUVycm9yIiwiY2FsbCIsImRvbmUiLCJ2YWx1ZSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJfcmVnZW5lcmF0b3IiLCJ3IiwibSIsImRlZmluZVByb3BlcnR5IiwiX3JlZ2VuZXJhdG9yRGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX2ludm9rZSIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJfbmV4dCIsIl90aHJvdyIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2xhc3NDYWxsQ2hlY2siLCJfZGVmaW5lUHJvcGVydGllcyIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiSG9va01hbmFnZXIiLCJleHBvcnRzIiwic2V0SG9va3MiLCJob29rcyIsImdldEhvb2siLCJzdGF0dXMiLCJfcHJvY2Vzc0hvb2siLCJfY2FsbGVlIiwiYWNjb3VudElkIiwiZXJyb3IiLCJob29rIiwiaG9va0tleSIsInJlc3VsdCIsIl90IiwiX3QyIiwiX2NvbnRleHQiLCJoYW5kbGVyIiwiY29uY2F0IiwicHJldmVudENvbmN1cnJlbnRDYWxscyIsImhvb2tQcm9taXNlcyIsInJlc3BvbnNlIiwiY29uc29sZSIsIm9uSGFuZGxlckVycm9yIiwicHJvY2Vzc0hvb2siLCJfeCIsIl94MiIsIl94MyIsIl9oYW5kbGVSZXRyeUZhaWx1cmUiLCJfY2FsbGVlMiIsIl9jb250ZXh0MiIsIm9uTWF4UmV0cmllc0V4Y2VlZGVkIiwiaGFuZGxlUmV0cnlGYWlsdXJlIiwiX3g0IiwiX3g1IiwiX3g2Iiwic2hvdWxkUmV0cnkiXSwic291cmNlcyI6WyIuLi9zcmMvSG9va01hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSG9va1NldHRpbmdzLCBTdGF0dXNDb2RlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogTWFuYWdlcyBob29rcyBmb3IgZGlmZmVyZW50IHN0YXR1cyBjb2RlcyBhbmQgdGhlaXIgcHJvY2Vzc2luZ1xuICovXG5leHBvcnQgY2xhc3MgSG9va01hbmFnZXIge1xuICBwcml2YXRlIGhvb2tzOiBSZWNvcmQ8U3RhdHVzQ29kZSwgSG9va1NldHRpbmdzPiA9IHt9O1xuICBwcml2YXRlIGhvb2tQcm9taXNlczogUmVjb3JkPHN0cmluZywgUHJvbWlzZTxvYmplY3Q+PiA9IHt9O1xuXG4gIC8qKlxuICAgKiBTZXQgaG9va3MgZm9yIGRpZmZlcmVudCBzdGF0dXMgY29kZXNcbiAgICovXG4gIHB1YmxpYyBzZXRIb29rcyhob29rczogUmVjb3JkPFN0YXR1c0NvZGUsIEhvb2tTZXR0aW5ncz4pOiB2b2lkIHtcbiAgICB0aGlzLmhvb2tzID0geyAuLi50aGlzLmhvb2tzLCAuLi5ob29rcyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIGhvb2sgZm9yIGEgc3BlY2lmaWMgc3RhdHVzIGNvZGVcbiAgICovXG4gIHB1YmxpYyBnZXRIb29rKHN0YXR1czogU3RhdHVzQ29kZSk6IEhvb2tTZXR0aW5ncyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuaG9va3Nbc3RhdHVzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIGEgaG9vayBmb3IgYSBzcGVjaWZpYyBzdGF0dXMgY29kZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHByb2Nlc3NIb29rKFxuICAgIGFjY291bnRJZDogc3RyaW5nLFxuICAgIHN0YXR1czogU3RhdHVzQ29kZSxcbiAgICBlcnJvcjogYW55XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PiB8IG51bGw+IHtcbiAgICBjb25zdCBob29rID0gdGhpcy5ob29rc1tzdGF0dXNdO1xuICAgIGlmICghaG9vayB8fCAhaG9vay5oYW5kbGVyKSByZXR1cm4gbnVsbDtcbiAgICBcbiAgICBjb25zdCBob29rS2V5ID0gYCR7YWNjb3VudElkIHx8ICdkZWZhdWx0J30tJHtzdGF0dXN9YDtcbiAgICBcbiAgICB0cnkge1xuICAgICAgLy8gSGFuZGxlIHdhaXRpbmcgZm9yIGV4aXN0aW5nIGhvb2sgY2FsbCBpZiBuZWVkZWRcbiAgICAgIGlmIChob29rLnByZXZlbnRDb25jdXJyZW50Q2FsbHMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhvb2tQcm9taXNlc1tob29rS2V5XSkge1xuICAgICAgICAgIHRoaXMuaG9va1Byb21pc2VzW2hvb2tLZXldID0gUHJvbWlzZS5yZXNvbHZlKFxuICAgICAgICAgICAgaG9vay5oYW5kbGVyKGFjY291bnRJZCwgZXJyb3IucmVzcG9uc2UpIHx8IHt9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ob29rUHJvbWlzZXNbaG9va0tleV07XG4gICAgICAgIGRlbGV0ZSB0aGlzLmhvb2tQcm9taXNlc1tob29rS2V5XTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0gXG4gICAgICBcbiAgICAgIC8vIE90aGVyd2lzZSBqdXN0IGNhbGwgdGhlIGhvb2sgZGlyZWN0bHlcbiAgICAgIHJldHVybiBhd2FpdCBob29rLmhhbmRsZXIoYWNjb3VudElkLCBlcnJvci5yZXNwb25zZSkgfHwge307XG4gICAgfSBcbiAgICBjYXRjaCAoaG9va0Vycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBIb29rIGhhbmRsZXIgZmFpbGVkIGZvciBzdGF0dXMgJHtzdGF0dXN9OmAsIGhvb2tFcnJvcik7XG4gICAgICBcbiAgICAgIGlmIChob29rLm9uSGFuZGxlckVycm9yKSB7XG4gICAgICAgIGF3YWl0IGhvb2sub25IYW5kbGVyRXJyb3IoYWNjb3VudElkLCBob29rRXJyb3IpO1xuICAgICAgfVxuICAgICAgXG4gICAgICB0aHJvdyBob29rRXJyb3I7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBhIHJldHJ5IGZhaWx1cmUgd2l0aCB0aGUgYXBwcm9wcmlhdGUgaG9va1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhbmRsZVJldHJ5RmFpbHVyZShhY2NvdW50SWQ6IHN0cmluZywgc3RhdHVzOiBTdGF0dXNDb2RlLCBlcnJvcjogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaG9vayA9IHRoaXMuaG9va3Nbc3RhdHVzXTtcbiAgICBpZiAoaG9vaz8ub25NYXhSZXRyaWVzRXhjZWVkZWQpIHtcbiAgICAgIGF3YWl0IGhvb2sub25NYXhSZXRyaWVzRXhjZWVkZWQoYWNjb3VudElkLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgaG9vayBleGlzdHMgYW5kIHNob3VsZCByZXRyeSBmb3IgYSBnaXZlbiBzdGF0dXNcbiAgICovXG4gIHB1YmxpYyBzaG91bGRSZXRyeShzdGF0dXM6IFN0YXR1c0NvZGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBob29rID0gdGhpcy5ob29rc1tzdGF0dXNdO1xuICAgIHJldHVybiAhIWhvb2sgJiYgISFob29rLnNob3VsZFJldHJ5O1xuICB9XG59ICJdLCJtYXBwaW5ncyI6Ijs7Ozs7OzswQkFDQSx1S0FBQUEsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLFdBQUEsOEJBQUFDLEVBQUFOLENBQUEsRUFBQUUsQ0FBQSxFQUFBRSxDQUFBLEVBQUFFLENBQUEsUUFBQUMsQ0FBQSxHQUFBTCxDQUFBLElBQUFBLENBQUEsQ0FBQU0sU0FBQSxZQUFBQyxTQUFBLEdBQUFQLENBQUEsR0FBQU8sU0FBQSxFQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxDQUFBTCxDQUFBLENBQUFDLFNBQUEsVUFBQUssbUJBQUEsQ0FBQUgsQ0FBQSx1QkFBQVYsQ0FBQSxFQUFBRSxDQUFBLEVBQUFFLENBQUEsUUFBQUUsQ0FBQSxFQUFBQyxDQUFBLEVBQUFHLENBQUEsRUFBQUksQ0FBQSxNQUFBQyxDQUFBLEdBQUFYLENBQUEsUUFBQVksQ0FBQSxPQUFBQyxDQUFBLEtBQUFGLENBQUEsS0FBQWIsQ0FBQSxLQUFBZ0IsQ0FBQSxFQUFBcEIsQ0FBQSxFQUFBcUIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFOLENBQUEsRUFBQU0sQ0FBQSxDQUFBQyxJQUFBLENBQUF2QixDQUFBLE1BQUFzQixDQUFBLFdBQUFBLEVBQUFyQixDQUFBLEVBQUFDLENBQUEsV0FBQU0sQ0FBQSxHQUFBUCxDQUFBLEVBQUFRLENBQUEsTUFBQUcsQ0FBQSxHQUFBWixDQUFBLEVBQUFtQixDQUFBLENBQUFmLENBQUEsR0FBQUYsQ0FBQSxFQUFBbUIsQ0FBQSxnQkFBQUMsRUFBQXBCLENBQUEsRUFBQUUsQ0FBQSxTQUFBSyxDQUFBLEdBQUFQLENBQUEsRUFBQVUsQ0FBQSxHQUFBUixDQUFBLEVBQUFILENBQUEsT0FB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
|
package/dist/HttpClient.js
CHANGED
|
@@ -1,110 +1,200 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
6
|
exports.HttpClient = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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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
|