powr-sdk-web 6.0.0 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/index.js +2 -2
- package/dist/index.js +110 -0
- package/dist/session/index.js +217 -0
- package/dist/shell/PowrBaseAppWrapper.js +348 -0
- package/dist/shell/index.js +20 -0
- package/dist/shell/parts.js +267 -0
- package/dist/shell/styles.js +241 -0
- package/dist/theme/PowrThemeProvider.js +23 -10
- package/dist/theme/PowrThemeSettings.js +323 -0
- package/dist/theme/host.js +280 -0
- package/dist/theme/index.js +34 -0
- package/dist/theme/initScript.js +86 -0
- package/dist/theme/tokens.js +6 -0
- package/dist/utils/useMediaQuery.js +37 -0
- package/package.json +1 -1
package/dist/auth/index.js
CHANGED
|
@@ -688,13 +688,13 @@ var PowrLogin = function PowrLogin(_ref) {
|
|
|
688
688
|
style: styles.card
|
|
689
689
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
690
690
|
style: styles.header
|
|
691
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
691
|
+
}, appLogo ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
692
692
|
style: styles.logoContainer
|
|
693
693
|
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
694
694
|
src: appLogo,
|
|
695
695
|
alt: "".concat(appName, " Logo"),
|
|
696
696
|
style: styles.logoImage
|
|
697
|
-
})), /*#__PURE__*/_react["default"].createElement("h1", {
|
|
697
|
+
})) : null, /*#__PURE__*/_react["default"].createElement("h1", {
|
|
698
698
|
style: styles.title
|
|
699
699
|
}, isLogin ? 'Welcome to' : 'Join', " ", appName), /*#__PURE__*/_react["default"].createElement("div", {
|
|
700
700
|
style: styles.subtitleContainer
|
package/dist/index.js
CHANGED
|
@@ -58,6 +58,12 @@ Object.defineProperty(exports, "OnboardingShell", {
|
|
|
58
58
|
return _onboarding.OnboardingShell;
|
|
59
59
|
}
|
|
60
60
|
});
|
|
61
|
+
Object.defineProperty(exports, "POWR_ADMIN_ACCESS", {
|
|
62
|
+
enumerable: true,
|
|
63
|
+
get: function get() {
|
|
64
|
+
return _session.POWR_ADMIN_ACCESS;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
61
67
|
Object.defineProperty(exports, "POWR_CSS_VAR_NAMES", {
|
|
62
68
|
enumerable: true,
|
|
63
69
|
get: function get() {
|
|
@@ -76,6 +82,18 @@ Object.defineProperty(exports, "POWR_SCHEMES", {
|
|
|
76
82
|
return _theme.POWR_SCHEMES;
|
|
77
83
|
}
|
|
78
84
|
});
|
|
85
|
+
Object.defineProperty(exports, "POWR_SESSION_STORAGE_KEY", {
|
|
86
|
+
enumerable: true,
|
|
87
|
+
get: function get() {
|
|
88
|
+
return _session.POWR_SESSION_STORAGE_KEY;
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
Object.defineProperty(exports, "POWR_SHELL_MODES", {
|
|
92
|
+
enumerable: true,
|
|
93
|
+
get: function get() {
|
|
94
|
+
return _shell.POWR_SHELL_MODES;
|
|
95
|
+
}
|
|
96
|
+
});
|
|
79
97
|
Object.defineProperty(exports, "POWR_TOKENS", {
|
|
80
98
|
enumerable: true,
|
|
81
99
|
get: function get() {
|
|
@@ -112,6 +130,12 @@ Object.defineProperty(exports, "PowrBaseAdmin", {
|
|
|
112
130
|
return _PowrBaseAdminFull["default"];
|
|
113
131
|
}
|
|
114
132
|
});
|
|
133
|
+
Object.defineProperty(exports, "PowrBaseAppWrapper", {
|
|
134
|
+
enumerable: true,
|
|
135
|
+
get: function get() {
|
|
136
|
+
return _shell.PowrBaseAppWrapper;
|
|
137
|
+
}
|
|
138
|
+
});
|
|
115
139
|
Object.defineProperty(exports, "PowrBaseBlogs", {
|
|
116
140
|
enumerable: true,
|
|
117
141
|
get: function get() {
|
|
@@ -226,6 +250,12 @@ Object.defineProperty(exports, "PowrOnboardingProvider", {
|
|
|
226
250
|
return _onboarding.PowrOnboardingProvider;
|
|
227
251
|
}
|
|
228
252
|
});
|
|
253
|
+
Object.defineProperty(exports, "PowrSessionProvider", {
|
|
254
|
+
enumerable: true,
|
|
255
|
+
get: function get() {
|
|
256
|
+
return _session.PowrSessionProvider;
|
|
257
|
+
}
|
|
258
|
+
});
|
|
229
259
|
Object.defineProperty(exports, "PowrTable", {
|
|
230
260
|
enumerable: true,
|
|
231
261
|
get: function get() {
|
|
@@ -238,12 +268,24 @@ Object.defineProperty(exports, "PowrThemeProvider", {
|
|
|
238
268
|
return _theme.PowrThemeProvider;
|
|
239
269
|
}
|
|
240
270
|
});
|
|
271
|
+
Object.defineProperty(exports, "PowrThemeSettings", {
|
|
272
|
+
enumerable: true,
|
|
273
|
+
get: function get() {
|
|
274
|
+
return _theme.PowrThemeSettings;
|
|
275
|
+
}
|
|
276
|
+
});
|
|
241
277
|
Object.defineProperty(exports, "SESSION_MESSAGES", {
|
|
242
278
|
enumerable: true,
|
|
243
279
|
get: function get() {
|
|
244
280
|
return _sessionMessages.SESSION_MESSAGES;
|
|
245
281
|
}
|
|
246
282
|
});
|
|
283
|
+
Object.defineProperty(exports, "accessFromToken", {
|
|
284
|
+
enumerable: true,
|
|
285
|
+
get: function get() {
|
|
286
|
+
return _session.accessFromToken;
|
|
287
|
+
}
|
|
288
|
+
});
|
|
247
289
|
Object.defineProperty(exports, "addPhoneStep", {
|
|
248
290
|
enumerable: true,
|
|
249
291
|
get: function get() {
|
|
@@ -262,6 +304,12 @@ Object.defineProperty(exports, "buildPowrSsoUrl", {
|
|
|
262
304
|
return _sso.buildPowrSsoUrl;
|
|
263
305
|
}
|
|
264
306
|
});
|
|
307
|
+
Object.defineProperty(exports, "clearStoredSession", {
|
|
308
|
+
enumerable: true,
|
|
309
|
+
get: function get() {
|
|
310
|
+
return _session.clearStoredSession;
|
|
311
|
+
}
|
|
312
|
+
});
|
|
265
313
|
Object.defineProperty(exports, "coercePhoneForStorage", {
|
|
266
314
|
enumerable: true,
|
|
267
315
|
get: function get() {
|
|
@@ -286,6 +334,12 @@ Object.defineProperty(exports, "evaluateSteps", {
|
|
|
286
334
|
return _onboarding.evaluateSteps;
|
|
287
335
|
}
|
|
288
336
|
});
|
|
337
|
+
Object.defineProperty(exports, "fetchThemePreference", {
|
|
338
|
+
enumerable: true,
|
|
339
|
+
get: function get() {
|
|
340
|
+
return _theme.fetchThemePreference;
|
|
341
|
+
}
|
|
342
|
+
});
|
|
289
343
|
Object.defineProperty(exports, "formatPhoneForSms", {
|
|
290
344
|
enumerable: true,
|
|
291
345
|
get: function get() {
|
|
@@ -316,6 +370,12 @@ Object.defineProperty(exports, "getPhoneLookupVariants", {
|
|
|
316
370
|
return _phone.getPhoneLookupVariants;
|
|
317
371
|
}
|
|
318
372
|
});
|
|
373
|
+
Object.defineProperty(exports, "getPowrUserId", {
|
|
374
|
+
enumerable: true,
|
|
375
|
+
get: function get() {
|
|
376
|
+
return _session.getPowrUserId;
|
|
377
|
+
}
|
|
378
|
+
});
|
|
319
379
|
Object.defineProperty(exports, "getUserId", {
|
|
320
380
|
enumerable: true,
|
|
321
381
|
get: function get() {
|
|
@@ -340,6 +400,12 @@ Object.defineProperty(exports, "isJwtExpired", {
|
|
|
340
400
|
return _jwt.isJwtExpired;
|
|
341
401
|
}
|
|
342
402
|
});
|
|
403
|
+
Object.defineProperty(exports, "isPowrAdmin", {
|
|
404
|
+
enumerable: true,
|
|
405
|
+
get: function get() {
|
|
406
|
+
return _session.isPowrAdmin;
|
|
407
|
+
}
|
|
408
|
+
});
|
|
343
409
|
Object.defineProperty(exports, "isValidPhone", {
|
|
344
410
|
enumerable: true,
|
|
345
411
|
get: function get() {
|
|
@@ -406,6 +472,12 @@ Object.defineProperty(exports, "parsePhone", {
|
|
|
406
472
|
return _phone.parsePhone;
|
|
407
473
|
}
|
|
408
474
|
});
|
|
475
|
+
Object.defineProperty(exports, "powrThemeInitScript", {
|
|
476
|
+
enumerable: true,
|
|
477
|
+
get: function get() {
|
|
478
|
+
return _theme.powrThemeInitScript;
|
|
479
|
+
}
|
|
480
|
+
});
|
|
409
481
|
Object.defineProperty(exports, "powrThemeStorageKey", {
|
|
410
482
|
enumerable: true,
|
|
411
483
|
get: function get() {
|
|
@@ -424,6 +496,18 @@ Object.defineProperty(exports, "profileNameStep", {
|
|
|
424
496
|
return _onboarding.profileNameStep;
|
|
425
497
|
}
|
|
426
498
|
});
|
|
499
|
+
Object.defineProperty(exports, "readStoredSession", {
|
|
500
|
+
enumerable: true,
|
|
501
|
+
get: function get() {
|
|
502
|
+
return _session.readStoredSession;
|
|
503
|
+
}
|
|
504
|
+
});
|
|
505
|
+
Object.defineProperty(exports, "resolveAccess", {
|
|
506
|
+
enumerable: true,
|
|
507
|
+
get: function get() {
|
|
508
|
+
return _session.resolveAccess;
|
|
509
|
+
}
|
|
510
|
+
});
|
|
427
511
|
Object.defineProperty(exports, "resolveCountry", {
|
|
428
512
|
enumerable: true,
|
|
429
513
|
get: function get() {
|
|
@@ -442,18 +526,42 @@ Object.defineProperty(exports, "safeNextPath", {
|
|
|
442
526
|
return _sso.safeNextPath;
|
|
443
527
|
}
|
|
444
528
|
});
|
|
529
|
+
Object.defineProperty(exports, "saveThemePreference", {
|
|
530
|
+
enumerable: true,
|
|
531
|
+
get: function get() {
|
|
532
|
+
return _theme.saveThemePreference;
|
|
533
|
+
}
|
|
534
|
+
});
|
|
445
535
|
Object.defineProperty(exports, "tokensToCssVars", {
|
|
446
536
|
enumerable: true,
|
|
447
537
|
get: function get() {
|
|
448
538
|
return _theme.tokensToCssVars;
|
|
449
539
|
}
|
|
450
540
|
});
|
|
541
|
+
Object.defineProperty(exports, "usePowrSession", {
|
|
542
|
+
enumerable: true,
|
|
543
|
+
get: function get() {
|
|
544
|
+
return _session.usePowrSession;
|
|
545
|
+
}
|
|
546
|
+
});
|
|
451
547
|
Object.defineProperty(exports, "usePowrTheme", {
|
|
452
548
|
enumerable: true,
|
|
453
549
|
get: function get() {
|
|
454
550
|
return _theme.usePowrTheme;
|
|
455
551
|
}
|
|
456
552
|
});
|
|
553
|
+
Object.defineProperty(exports, "usePowrThemeHost", {
|
|
554
|
+
enumerable: true,
|
|
555
|
+
get: function get() {
|
|
556
|
+
return _theme.usePowrThemeHost;
|
|
557
|
+
}
|
|
558
|
+
});
|
|
559
|
+
Object.defineProperty(exports, "writeStoredSession", {
|
|
560
|
+
enumerable: true,
|
|
561
|
+
get: function get() {
|
|
562
|
+
return _session.writeStoredSession;
|
|
563
|
+
}
|
|
564
|
+
});
|
|
457
565
|
var _table = _interopRequireDefault(require("./table"));
|
|
458
566
|
var _swiper = _interopRequireDefault(require("./swiper"));
|
|
459
567
|
var _reviews = _interopRequireDefault(require("./reviews"));
|
|
@@ -481,5 +589,7 @@ var _phone = require("./utils/phone");
|
|
|
481
589
|
var _jwt = require("./utils/jwt");
|
|
482
590
|
var _sessionMessages = require("./utils/sessionMessages");
|
|
483
591
|
var _theme = require("./theme");
|
|
592
|
+
var _session = require("./session");
|
|
593
|
+
var _shell = require("./shell");
|
|
484
594
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
485
595
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.POWR_SESSION_STORAGE_KEY = exports.POWR_ADMIN_ACCESS = void 0;
|
|
7
|
+
exports.PowrSessionProvider = PowrSessionProvider;
|
|
8
|
+
exports.accessFromToken = accessFromToken;
|
|
9
|
+
exports.clearStoredSession = clearStoredSession;
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
exports.getPowrUserId = getPowrUserId;
|
|
12
|
+
exports.isPowrAdmin = isPowrAdmin;
|
|
13
|
+
exports.readStoredSession = readStoredSession;
|
|
14
|
+
exports.resolveAccess = resolveAccess;
|
|
15
|
+
exports.usePowrSession = usePowrSession;
|
|
16
|
+
exports.writeStoredSession = writeStoredSession;
|
|
17
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
18
|
+
var _jwt = require("../utils/jwt");
|
|
19
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
20
|
+
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); }
|
|
21
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
22
|
+
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."); }
|
|
23
|
+
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; } }
|
|
24
|
+
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; }
|
|
25
|
+
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; } }
|
|
26
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
27
|
+
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; }
|
|
28
|
+
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; }
|
|
29
|
+
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; }
|
|
30
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
31
|
+
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); }
|
|
32
|
+
/**
|
|
33
|
+
* Powr session — the file every new app used to copy (`utils/store.ts`).
|
|
34
|
+
*
|
|
35
|
+
* Owns `localStorage['auth-store']` in the zustand-persist shape
|
|
36
|
+
* `{ state: { user, token }, version }` so:
|
|
37
|
+
* - `apiCall` (utils/auth.getAuthToken) keeps reading the bearer from it
|
|
38
|
+
* - apps that already run a zustand `auth-store` can pass `user`/`token`
|
|
39
|
+
* as props (controlled) and nothing moves.
|
|
40
|
+
*
|
|
41
|
+
* No zustand dependency. Plain React context.
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
var POWR_SESSION_STORAGE_KEY = exports.POWR_SESSION_STORAGE_KEY = "auth-store";
|
|
45
|
+
var POWR_ADMIN_ACCESS = exports.POWR_ADMIN_ACCESS = 100;
|
|
46
|
+
function accessFromToken(token) {
|
|
47
|
+
var _decodeJwtPayload;
|
|
48
|
+
var access = Number((_decodeJwtPayload = (0, _jwt.decodeJwtPayload)(token)) === null || _decodeJwtPayload === void 0 ? void 0 : _decodeJwtPayload.access);
|
|
49
|
+
return Number.isFinite(access) ? access : undefined;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** `user.access` wins; falls back to the JWT claim; 0 when neither. */
|
|
53
|
+
function resolveAccess(user, token) {
|
|
54
|
+
var _accessFromToken;
|
|
55
|
+
var fromUser = Number(user === null || user === void 0 ? void 0 : user.access);
|
|
56
|
+
if (Number.isFinite(fromUser)) return fromUser;
|
|
57
|
+
return (_accessFromToken = accessFromToken(token)) !== null && _accessFromToken !== void 0 ? _accessFromToken : 0;
|
|
58
|
+
}
|
|
59
|
+
function isPowrAdmin(user, token) {
|
|
60
|
+
return resolveAccess(user, token) === POWR_ADMIN_ACCESS;
|
|
61
|
+
}
|
|
62
|
+
function getPowrUserId(user) {
|
|
63
|
+
return String((user === null || user === void 0 ? void 0 : user.powrId) || (user === null || user === void 0 ? void 0 : user._id) || (user === null || user === void 0 ? void 0 : user.userId) || "");
|
|
64
|
+
}
|
|
65
|
+
function readStoredSession() {
|
|
66
|
+
if (typeof window === "undefined") return null;
|
|
67
|
+
try {
|
|
68
|
+
var raw = window.localStorage.getItem(POWR_SESSION_STORAGE_KEY);
|
|
69
|
+
if (!raw) return null;
|
|
70
|
+
var parsed = JSON.parse(raw);
|
|
71
|
+
var state = (parsed === null || parsed === void 0 ? void 0 : parsed.state) || parsed || {};
|
|
72
|
+
return {
|
|
73
|
+
user: state.user || null,
|
|
74
|
+
token: state.token || null,
|
|
75
|
+
refreshToken: state.refreshToken || null
|
|
76
|
+
};
|
|
77
|
+
} catch (_unused) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function writeStoredSession(_ref) {
|
|
82
|
+
var user = _ref.user,
|
|
83
|
+
token = _ref.token,
|
|
84
|
+
refreshToken = _ref.refreshToken;
|
|
85
|
+
if (typeof window === "undefined") return;
|
|
86
|
+
window.localStorage.setItem(POWR_SESSION_STORAGE_KEY, JSON.stringify({
|
|
87
|
+
state: {
|
|
88
|
+
user: user,
|
|
89
|
+
token: token,
|
|
90
|
+
refreshToken: refreshToken
|
|
91
|
+
},
|
|
92
|
+
version: 0
|
|
93
|
+
}));
|
|
94
|
+
}
|
|
95
|
+
function clearStoredSession() {
|
|
96
|
+
if (typeof window === "undefined") return;
|
|
97
|
+
window.localStorage.removeItem(POWR_SESSION_STORAGE_KEY);
|
|
98
|
+
}
|
|
99
|
+
var EMPTY = {
|
|
100
|
+
user: null,
|
|
101
|
+
token: null,
|
|
102
|
+
refreshToken: null
|
|
103
|
+
};
|
|
104
|
+
var PowrSessionContext = /*#__PURE__*/(0, _react.createContext)(_objectSpread(_objectSpread({}, EMPTY), {}, {
|
|
105
|
+
hydrated: false,
|
|
106
|
+
access: 0,
|
|
107
|
+
isPowrAdmin: false,
|
|
108
|
+
userId: "",
|
|
109
|
+
controlled: false,
|
|
110
|
+
setSession: function setSession() {},
|
|
111
|
+
clear: function clear() {}
|
|
112
|
+
}));
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* @param {object} props
|
|
116
|
+
* @param {object|null} [props.user] - Controlled mode: app's own store is truth.
|
|
117
|
+
* @param {string|null} [props.token] - Controlled mode.
|
|
118
|
+
* @param {string|null} [props.refreshToken]
|
|
119
|
+
* @param {(session: {user, token, refreshToken}) => void} [props.onChange] - After setSession / clear.
|
|
120
|
+
* @param {() => void} [props.onLogout] - Controlled mode: clear your store here.
|
|
121
|
+
* @param {boolean} [props.persist=true] - Uncontrolled mode: write `auth-store`.
|
|
122
|
+
*/
|
|
123
|
+
function PowrSessionProvider(_ref2) {
|
|
124
|
+
var userProp = _ref2.user,
|
|
125
|
+
tokenProp = _ref2.token,
|
|
126
|
+
refreshTokenProp = _ref2.refreshToken,
|
|
127
|
+
onChange = _ref2.onChange,
|
|
128
|
+
onLogout = _ref2.onLogout,
|
|
129
|
+
_ref2$persist = _ref2.persist,
|
|
130
|
+
persist = _ref2$persist === void 0 ? true : _ref2$persist,
|
|
131
|
+
children = _ref2.children;
|
|
132
|
+
var controlled = userProp !== undefined || tokenProp !== undefined;
|
|
133
|
+
var _useState = (0, _react.useState)(EMPTY),
|
|
134
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
135
|
+
local = _useState2[0],
|
|
136
|
+
setLocal = _useState2[1];
|
|
137
|
+
var _useState3 = (0, _react.useState)(controlled),
|
|
138
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
139
|
+
hydrated = _useState4[0],
|
|
140
|
+
setHydrated = _useState4[1];
|
|
141
|
+
var onChangeRef = (0, _react.useRef)(onChange);
|
|
142
|
+
onChangeRef.current = onChange;
|
|
143
|
+
(0, _react.useEffect)(function () {
|
|
144
|
+
if (controlled) return;
|
|
145
|
+
var stored = readStoredSession();
|
|
146
|
+
if (stored !== null && stored !== void 0 && stored.token && !(0, _jwt.isJwtExpired)(stored.token)) {
|
|
147
|
+
setLocal({
|
|
148
|
+
user: stored.user,
|
|
149
|
+
token: stored.token,
|
|
150
|
+
refreshToken: stored.refreshToken
|
|
151
|
+
});
|
|
152
|
+
} else if (stored) {
|
|
153
|
+
clearStoredSession();
|
|
154
|
+
}
|
|
155
|
+
setHydrated(true);
|
|
156
|
+
}, [controlled]);
|
|
157
|
+
|
|
158
|
+
// Follow other tabs (and legacy zustand stores in the same origin).
|
|
159
|
+
(0, _react.useEffect)(function () {
|
|
160
|
+
if (controlled || typeof window === "undefined") return undefined;
|
|
161
|
+
var onStorage = function onStorage(e) {
|
|
162
|
+
if (e.key && e.key !== POWR_SESSION_STORAGE_KEY) return;
|
|
163
|
+
setLocal(readStoredSession() || EMPTY);
|
|
164
|
+
};
|
|
165
|
+
window.addEventListener("storage", onStorage);
|
|
166
|
+
return function () {
|
|
167
|
+
return window.removeEventListener("storage", onStorage);
|
|
168
|
+
};
|
|
169
|
+
}, [controlled]);
|
|
170
|
+
var setSession = (0, _react.useCallback)(function (user, token) {
|
|
171
|
+
var _onChangeRef$current;
|
|
172
|
+
var refreshToken = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
173
|
+
var next = {
|
|
174
|
+
user: user || null,
|
|
175
|
+
token: token || null,
|
|
176
|
+
refreshToken: refreshToken
|
|
177
|
+
};
|
|
178
|
+
if (!controlled) {
|
|
179
|
+
setLocal(next);
|
|
180
|
+
if (persist) writeStoredSession(next);
|
|
181
|
+
}
|
|
182
|
+
(_onChangeRef$current = onChangeRef.current) === null || _onChangeRef$current === void 0 || _onChangeRef$current.call(onChangeRef, next);
|
|
183
|
+
}, [controlled, persist]);
|
|
184
|
+
var clear = (0, _react.useCallback)(function () {
|
|
185
|
+
var _onChangeRef$current2;
|
|
186
|
+
if (!controlled) {
|
|
187
|
+
setLocal(EMPTY);
|
|
188
|
+
clearStoredSession();
|
|
189
|
+
}
|
|
190
|
+
onLogout === null || onLogout === void 0 || onLogout();
|
|
191
|
+
(_onChangeRef$current2 = onChangeRef.current) === null || _onChangeRef$current2 === void 0 || _onChangeRef$current2.call(onChangeRef, EMPTY);
|
|
192
|
+
}, [controlled, onLogout]);
|
|
193
|
+
var current = controlled ? {
|
|
194
|
+
user: userProp || null,
|
|
195
|
+
token: tokenProp || null,
|
|
196
|
+
refreshToken: refreshTokenProp || null
|
|
197
|
+
} : local;
|
|
198
|
+
var value = (0, _react.useMemo)(function () {
|
|
199
|
+
var access = resolveAccess(current.user, current.token);
|
|
200
|
+
return _objectSpread(_objectSpread({}, current), {}, {
|
|
201
|
+
hydrated: hydrated,
|
|
202
|
+
access: access,
|
|
203
|
+
isPowrAdmin: access === POWR_ADMIN_ACCESS,
|
|
204
|
+
userId: getPowrUserId(current.user),
|
|
205
|
+
controlled: controlled,
|
|
206
|
+
setSession: setSession,
|
|
207
|
+
clear: clear
|
|
208
|
+
});
|
|
209
|
+
}, [current.user, current.token, current.refreshToken, hydrated, controlled, setSession, clear]);
|
|
210
|
+
return /*#__PURE__*/_react["default"].createElement(PowrSessionContext.Provider, {
|
|
211
|
+
value: value
|
|
212
|
+
}, children);
|
|
213
|
+
}
|
|
214
|
+
function usePowrSession() {
|
|
215
|
+
return (0, _react.useContext)(PowrSessionContext);
|
|
216
|
+
}
|
|
217
|
+
var _default = exports["default"] = PowrSessionProvider;
|