intelicoreact 1.1.95 → 1.2.1

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.
@@ -0,0 +1,390 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
+
18
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
+
20
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
+
22
+ var _outerDependencies = _interopRequireDefault(require("./_outerDependencies"));
23
+
24
+ var _utils = require("./_utils");
25
+
26
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
27
+
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29
+
30
+ var jwt = _outerDependencies.default.jwt;
31
+
32
+ var CredentialsProcessing = /*#__PURE__*/function () {
33
+ function CredentialsProcessing(settings) {
34
+ (0, _classCallCheck2.default)(this, CredentialsProcessing);
35
+ var credentialsProcessing = settings.credentialsProcessing;
36
+
37
+ var _ref = credentialsProcessing || {},
38
+ getCredentials = _ref.getCredentials,
39
+ getHeadersForAuthorize = _ref.getHeadersForAuthorize,
40
+ importCredentials = _ref.importCredentials,
41
+ saveCredentials = _ref.saveCredentials,
42
+ _ref$isUseRefreshToke = _ref.isUseRefreshTokensPropcessing,
43
+ isUseRefreshTokensPropcessing = _ref$isUseRefreshToke === void 0 ? false : _ref$isUseRefreshToke,
44
+ refreshCredentials = _ref.refreshCredentials,
45
+ REFRESH_TOKEN_PATH = _ref.REFRESH_TOKEN_PATH,
46
+ CODES_USING_THE_REFRESH_ATTEMPT = _ref.CODES_USING_THE_REFRESH_ATTEMPT,
47
+ _ref$REFRESH_TOKEN_FL = _ref.REFRESH_TOKEN_FLAG,
48
+ REFRESH_TOKEN_FLAG = _ref$REFRESH_TOKEN_FL === void 0 ? 'refreshTokenFlag' : _ref$REFRESH_TOKEN_FL,
49
+ _ref$INTERVAL_FOR_CHE = _ref.INTERVAL_FOR_CHECKING_TOKEN_UPDATE,
50
+ INTERVAL_FOR_CHECKING_TOKEN_UPDATE = _ref$INTERVAL_FOR_CHE === void 0 ? 50 : _ref$INTERVAL_FOR_CHE,
51
+ callbackAfterRejectRefresh = _ref.callbackAfterRejectRefresh;
52
+
53
+ if (typeof getCredentials !== 'function') throw new Error('No getCredentials method (CredentialsProcessing)');
54
+ if (typeof getHeadersForAuthorize !== 'function') throw new Error('No getHeadersForAuthorize method (CredentialsProcessing)');
55
+ if (importCredentials && typeof importCredentials !== 'function') throw new Error('Bad importCredentials method (CredentialsProcessing)');
56
+ this.isUseRefreshTokensPropcessing = isUseRefreshTokensPropcessing;
57
+ this.DEFAULT_CREDENTIALS = {
58
+ token: null,
59
+ expires: null,
60
+ refreshToken: null
61
+ };
62
+ this.getCredentialsByOuter = getCredentials;
63
+ this.getHeadersForAuthorize = getHeadersForAuthorize;
64
+ this.importCredentials = importCredentials; //? Если метод передан или если не передан, но включен флоу обновления токенов (тогда saveCredentials обязателен)
65
+
66
+ if (saveCredentials || isUseRefreshTokensPropcessing) {
67
+ if (typeof saveCredentials !== 'function') throw new Error('No saveCredentials method (CredentialsProcessing)');else this.saveCredentials = saveCredentials;
68
+ }
69
+
70
+ if (isUseRefreshTokensPropcessing) {
71
+ if (typeof refreshCredentials === 'function') this.refreshCredentialsByOuter = refreshCredentials;else {
72
+ if (typeof this.refreshCredentialsByOuter === 'function' && typeof REFRESH_TOKEN_PATH !== 'string') {
73
+ throw new Error('No REFRESH_TOKEN_PATH (CredentialsProcessing)');
74
+ }
75
+
76
+ if (!Array.isArray(CODES_USING_THE_REFRESH_ATTEMPT)) throw new Error('No CODES_USING_THE_REFRESH_ATTEMPT (CredentialsProcessing)');
77
+
78
+ if (!CODES_USING_THE_REFRESH_ATTEMPT.every(function (i) {
79
+ return typeof i === 'number';
80
+ })) {
81
+ throw new Error('Invalid format of CODES_USING_THE_REFRESH_ATTEMPT elements (CredentialsProcessing)');
82
+ }
83
+
84
+ this.REFRESH_TOKEN_PATH = REFRESH_TOKEN_PATH;
85
+ this.CODES_USING_THE_REFRESH_ATTEMPT = CODES_USING_THE_REFRESH_ATTEMPT;
86
+ }
87
+ if (typeof REFRESH_TOKEN_FLAG !== 'string') throw new Error('Bad REFRESH_TOKEN_FLAG (CredentialsProcessing)');
88
+ if (typeof INTERVAL_FOR_CHECKING_TOKEN_UPDATE !== 'number') throw new Error('Bad INTERVAL_FOR_CHECKING_TOKEN_UPDATE (CredentialsProcessing)');
89
+ if (typeof INTERVAL_FOR_CHECKING_TOKEN_UPDATE !== 'number') throw new Error('Bad INTERVAL_FOR_CHECKING_TOKEN_UPDATE (CredentialsProcessing)');
90
+
91
+ if (callbackAfterRejectRefresh && typeof callbackAfterRejectRefresh !== 'function') {
92
+ throw new Error('Bad INTERVAL_FOR_CHECKING_TOKEN_UPDATE (CredentialsProcessing)');
93
+ }
94
+
95
+ this.REFRESH_TOKEN_FLAG = REFRESH_TOKEN_FLAG;
96
+ this.INTERVAL_FOR_CHECKING_TOKEN_UPDATE = INTERVAL_FOR_CHECKING_TOKEN_UPDATE;
97
+ if (callbackAfterRejectRefresh) this.callbackAfterRejectRefresh = callbackAfterRejectRefresh;
98
+ }
99
+ }
100
+
101
+ (0, _createClass2.default)(CredentialsProcessing, [{
102
+ key: "getIsTokenStartRefresh",
103
+ value: function getIsTokenStartRefresh() {
104
+ return localStorage.getItem(this.REFRESH_TOKEN_FLAG);
105
+ }
106
+ }, {
107
+ key: "setIsTokenStartRefresh",
108
+ value: function setIsTokenStartRefresh() {
109
+ localStorage.setItem(this.REFRESH_TOKEN_FLAG, true);
110
+ }
111
+ }, {
112
+ key: "removeIsTokenStartRefresh",
113
+ value: function removeIsTokenStartRefresh() {
114
+ localStorage.removeItem(this.REFRESH_TOKEN_FLAG);
115
+ }
116
+ }, {
117
+ key: "getCredentials",
118
+ value: function () {
119
+ var _getCredentials = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(isCatchCallbackProcess, callback) {
120
+ var credentials, token, decoded, currentTime;
121
+ return _regenerator.default.wrap(function _callee$(_context) {
122
+ while (1) {
123
+ switch (_context.prev = _context.next) {
124
+ case 0:
125
+ credentials = this.getCredentialsByOuter();
126
+ if (typeof this.importCredentials === 'function') credentials = this.importCredentials(credentials);
127
+ if (!(0, _utils.getIsOnlyAnObject)(credentials)) credentials = {};
128
+ token = credentials.token || null;
129
+
130
+ if (token && !isCatchCallbackProcess) {
131
+ try {
132
+ decoded = jwt.decode(token);
133
+ } catch (_unused) {
134
+ decoded = null;
135
+ }
136
+
137
+ currentTime = Date.now() / 1000;
138
+ if (decoded !== null && +decoded.exp < currentTime) credentials = _objectSpread(_objectSpread({}, credentials), {}, {
139
+ isNeedRefresh: true
140
+ });
141
+ }
142
+
143
+ if (!callback) {
144
+ _context.next = 8;
145
+ break;
146
+ }
147
+
148
+ _context.next = 8;
149
+ return callback(_objectSpread(_objectSpread({}, credentials), {}, {
150
+ isCatchCallbackProcess: isCatchCallbackProcess
151
+ }));
152
+
153
+ case 8:
154
+ return _context.abrupt("return", _objectSpread(_objectSpread({}, credentials), {}, {
155
+ isCatchCallbackProcess: isCatchCallbackProcess
156
+ }));
157
+
158
+ case 9:
159
+ case "end":
160
+ return _context.stop();
161
+ }
162
+ }
163
+ }, _callee, this);
164
+ }));
165
+
166
+ function getCredentials(_x, _x2) {
167
+ return _getCredentials.apply(this, arguments);
168
+ }
169
+
170
+ return getCredentials;
171
+ }()
172
+ }, {
173
+ key: "refreshCredentials",
174
+ value: function () {
175
+ var _refreshCredentials = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(currentCredentials, callback) {
176
+ var CONTEXT, finalize, _finalize, refreshCredentialsByDefault, _refreshCredentialsByDefault, newCredentials;
177
+
178
+ return _regenerator.default.wrap(function _callee4$(_context4) {
179
+ while (1) {
180
+ switch (_context4.prev = _context4.next) {
181
+ case 0:
182
+ _refreshCredentialsByDefault = function _refreshCredentialsBy2() {
183
+ _refreshCredentialsByDefault = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
184
+ var token, refreshToken, headers, body;
185
+ return _regenerator.default.wrap(function _callee3$(_context3) {
186
+ while (1) {
187
+ switch (_context3.prev = _context3.next) {
188
+ case 0:
189
+ token = currentCredentials.token, refreshToken = currentCredentials.refreshToken;
190
+ headers = new Headers();
191
+ headers.append.apply(headers, (0, _toConsumableArray2.default)(Object.entries(CONTEXT.getHeadersForAuthorize(token))));
192
+ body = new FormData();
193
+ body.append('grant_type', 'refresh_token');
194
+ body.append('refresh_token', refreshToken);
195
+ body.append('client_id', 'oauth');
196
+ body.append('client_secret', 'secret');
197
+ body.append('access_type', 'offline');
198
+ return _context3.abrupt("return", fetch("".concat(CONTEXT.REFRESH_TOKEN_PATH), {
199
+ mode: 'cors',
200
+ method: 'POST',
201
+ headers: headers,
202
+ body: body,
203
+ redirect: 'follow'
204
+ }));
205
+
206
+ case 10:
207
+ case "end":
208
+ return _context3.stop();
209
+ }
210
+ }
211
+ }, _callee3);
212
+ }));
213
+ return _refreshCredentialsByDefault.apply(this, arguments);
214
+ };
215
+
216
+ refreshCredentialsByDefault = function _refreshCredentialsBy() {
217
+ return _refreshCredentialsByDefault.apply(this, arguments);
218
+ };
219
+
220
+ _finalize = function _finalize3() {
221
+ _finalize = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(cred, isSkipImport) {
222
+ var output;
223
+ return _regenerator.default.wrap(function _callee2$(_context2) {
224
+ while (1) {
225
+ switch (_context2.prev = _context2.next) {
226
+ case 0:
227
+ output = typeof CONTEXT.importCredentials === 'function' && !isSkipImport ? CONTEXT.importCredentials(cred) : cred;
228
+
229
+ if (!callback) {
230
+ _context2.next = 4;
231
+ break;
232
+ }
233
+
234
+ _context2.next = 4;
235
+ return callback(output);
236
+
237
+ case 4:
238
+ return _context2.abrupt("return", Promise.resolve(output).then(function (res) {
239
+ CONTEXT.removeIsTokenStartRefresh();
240
+ return res;
241
+ }));
242
+
243
+ case 5:
244
+ case "end":
245
+ return _context2.stop();
246
+ }
247
+ }
248
+ }, _callee2);
249
+ }));
250
+ return _finalize.apply(this, arguments);
251
+ };
252
+
253
+ finalize = function _finalize2(_x5, _x6) {
254
+ return _finalize.apply(this, arguments);
255
+ };
256
+
257
+ CONTEXT = this;
258
+
259
+ if (!(!(currentCredentials !== null && currentCredentials !== void 0 && currentCredentials.token) || !(currentCredentials !== null && currentCredentials !== void 0 && currentCredentials.refresh))) {
260
+ _context4.next = 7;
261
+ break;
262
+ }
263
+
264
+ return _context4.abrupt("return", finalize(CONTEXT.DEFAULT_CREDENTIALS, true));
265
+
266
+ case 7:
267
+ if (!(typeof CONTEXT.refreshCredentialsByOuter === 'function')) {
268
+ _context4.next = 13;
269
+ break;
270
+ }
271
+
272
+ _context4.next = 10;
273
+ return CONTEXT.refreshCredentialsByOuter(currentCredentials);
274
+
275
+ case 10:
276
+ _context4.t0 = _context4.sent;
277
+ _context4.next = 16;
278
+ break;
279
+
280
+ case 13:
281
+ _context4.next = 15;
282
+ return refreshCredentialsByDefault();
283
+
284
+ case 15:
285
+ _context4.t0 = _context4.sent;
286
+
287
+ case 16:
288
+ newCredentials = _context4.t0;
289
+ return _context4.abrupt("return", finalize(newCredentials));
290
+
291
+ case 18:
292
+ case "end":
293
+ return _context4.stop();
294
+ }
295
+ }
296
+ }, _callee4, this);
297
+ }));
298
+
299
+ function refreshCredentials(_x3, _x4) {
300
+ return _refreshCredentials.apply(this, arguments);
301
+ }
302
+
303
+ return refreshCredentials;
304
+ }()
305
+ }, {
306
+ key: "waitRefresh",
307
+ value: function () {
308
+ var _waitRefresh = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(isNeedRefresh) {
309
+ var _this = this;
310
+
311
+ return _regenerator.default.wrap(function _callee5$(_context5) {
312
+ while (1) {
313
+ switch (_context5.prev = _context5.next) {
314
+ case 0:
315
+ return _context5.abrupt("return", new Promise(function (resolve) {
316
+ if (!_this.getIsTokenStartRefresh()) {
317
+ if (isNeedRefresh) _this.setIsTokenStartRefresh();
318
+ resolve();
319
+ } else {
320
+ var intervalId = setInterval(function () {
321
+ if (!_this.getIsTokenStartRefresh()) {
322
+ clearInterval(intervalId);
323
+ resolve();
324
+ }
325
+ }, _this.INTERVAL_FOR_CHECKING_TOKEN_UPDATE);
326
+ }
327
+ }));
328
+
329
+ case 1:
330
+ case "end":
331
+ return _context5.stop();
332
+ }
333
+ }
334
+ }, _callee5);
335
+ }));
336
+
337
+ function waitRefresh(_x7) {
338
+ return _waitRefresh.apply(this, arguments);
339
+ }
340
+
341
+ return waitRefresh;
342
+ }()
343
+ }, {
344
+ key: "processCredentials",
345
+ value: function () {
346
+ var _processCredentials = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(cred) {
347
+ var CONTEXT, output;
348
+ return _regenerator.default.wrap(function _callee6$(_context6) {
349
+ while (1) {
350
+ switch (_context6.prev = _context6.next) {
351
+ case 0:
352
+ CONTEXT = this;
353
+ output = cred;
354
+
355
+ if (!(cred.isNeedRefresh || cred.isCatchCallbackProcess)) {
356
+ _context6.next = 6;
357
+ break;
358
+ }
359
+
360
+ _context6.next = 5;
361
+ return CONTEXT.refreshCredentials(cred, function (res) {
362
+ return CONTEXT.saveCredentials(res);
363
+ });
364
+
365
+ case 5:
366
+ output = _context6.sent;
367
+
368
+ case 6:
369
+ return _context6.abrupt("return", output);
370
+
371
+ case 7:
372
+ case "end":
373
+ return _context6.stop();
374
+ }
375
+ }
376
+ }, _callee6, this);
377
+ }));
378
+
379
+ function processCredentials(_x8) {
380
+ return _processCredentials.apply(this, arguments);
381
+ }
382
+
383
+ return processCredentials;
384
+ }()
385
+ }]);
386
+ return CredentialsProcessing;
387
+ }();
388
+
389
+ var _default = CredentialsProcessing;
390
+ exports.default = _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken"));
11
+
12
+ var _default = {
13
+ jwt: _jsonwebtoken.default
14
+ };
15
+ exports.default = _default;