powr-sdk-web 5.10.8 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -52,9 +52,9 @@ function formatWhen(iso, locale) {
52
52
  }
53
53
  }
54
54
 
55
- /**
56
- * Presentational list for PowrBase activity-shaped rows (`activity.activity`, `activity.actor`, `activity.action`, `createdAt`).
57
- * Does not fetch — pass data from parent or use {@link PowrBaseActivities}.
55
+ /**
56
+ * Presentational list for PowrBase activity-shaped rows (`activity.activity`, `activity.actor`, `activity.action`, `createdAt`).
57
+ * Does not fetch — pass data from parent or use {@link PowrBaseActivities}.
58
58
  */
59
59
  function PowrActivityList(_ref) {
60
60
  var activities = _ref.activities,
@@ -36,9 +36,9 @@ var wrapperStyle = {
36
36
  fontFamily: 'Roboto, sans-serif'
37
37
  };
38
38
 
39
- /**
40
- * Fetches activities like comments: GET with contentId + projectId (via apiCall).
41
- * Date filtering is client-side: calendar picks a day, list shows items for that day.
39
+ /**
40
+ * Fetches activities like comments: GET with contentId + projectId (via apiCall).
41
+ * Date filtering is client-side: calendar picks a day, list shows items for that day.
42
42
  */
43
43
  function PowrBaseActivities(_ref) {
44
44
  var projectId = _ref.projectId,
@@ -18,10 +18,10 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
18
18
  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); }
19
19
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
20
20
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
21
- /**
22
- * Full PowrBaseAdmin for host apps that already install optional peers
23
- * (Excelrs / Spriny via the package root export).
24
- * Prefer `powr-sdk-web/dist/admin` in lean apps (Ampy Ops) to avoid monaco/lucide.
21
+ /**
22
+ * Full PowrBaseAdmin for host apps that already install optional peers
23
+ * (Excelrs / Spriny via the package root export).
24
+ * Prefer `powr-sdk-web/dist/admin` in lean apps (Ampy Ops) to avoid monaco/lucide.
25
25
  */
26
26
  function PowrBaseAdminFull(props) {
27
27
  var sectionLoaders = props.sectionLoaders,
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.CORE_SECTION_LOADERS = void 0;
7
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
8
  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); }
9
- /**
10
- * Core admin sections — no heavy optional peers (monaco / lucide / hot-toast).
11
- * Safe for apps that only need Users (e.g. Ampy Ops).
9
+ /**
10
+ * Core admin sections — no heavy optional peers (monaco / lucide / hot-toast).
11
+ * Safe for apps that only need Users (e.g. Ampy Ops).
12
12
  */
13
13
  var CORE_SECTION_LOADERS = exports.CORE_SECTION_LOADERS = {
14
14
  users: function users() {
@@ -6,14 +6,14 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports["default"] = exports.OPTIONAL_SECTION_LOADERS = void 0;
7
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
8
  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); }
9
- /**
10
- * Heavy admin sections. Import only from apps that install optional peers:
11
- * lucide-react, @monaco-editor/react, react-hot-toast
12
- *
13
- * @example
14
- * import PowrBaseAdmin from 'powr-sdk-web/dist/admin';
15
- * import { OPTIONAL_SECTION_LOADERS } from 'powr-sdk-web/dist/admin/optionalSectionLoaders';
16
- * <PowrBaseAdmin sections={['Users','Functions']} sectionLoaders={OPTIONAL_SECTION_LOADERS} />
9
+ /**
10
+ * Heavy admin sections. Import only from apps that install optional peers:
11
+ * lucide-react, @monaco-editor/react, react-hot-toast
12
+ *
13
+ * @example
14
+ * import PowrBaseAdmin from 'powr-sdk-web/dist/admin';
15
+ * import { OPTIONAL_SECTION_LOADERS } from 'powr-sdk-web/dist/admin/optionalSectionLoaders';
16
+ * <PowrBaseAdmin sections={['Users','Functions']} sectionLoaders={OPTIONAL_SECTION_LOADERS} />
17
17
  */
18
18
  var OPTIONAL_SECTION_LOADERS = exports.OPTIONAL_SECTION_LOADERS = {
19
19
  functions: function functions() {
@@ -29,6 +29,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
29
29
  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; }
30
30
  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; } }
31
31
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
32
+ var config = require('../config');
32
33
  var PowrLogin = function PowrLogin(_ref) {
33
34
  var apiUrl = _ref.apiUrl,
34
35
  onLogin = _ref.onLogin,
@@ -37,7 +38,7 @@ var PowrLogin = function PowrLogin(_ref) {
37
38
  appLogo = _ref.appLogo,
38
39
  _ref$mode = _ref.mode,
39
40
  mode = _ref$mode === void 0 ? 'toggle' : _ref$mode,
40
- projectId = _ref.projectId,
41
+ projectIdProp = _ref.projectId,
41
42
  _ref$requirePhoneVeri = _ref.requirePhoneVerification,
42
43
  requirePhoneVerification = _ref$requirePhoneVeri === void 0 ? true : _ref$requirePhoneVeri,
43
44
  _ref$showForgotPasswo = _ref.showForgotPassword,
@@ -55,6 +56,7 @@ var PowrLogin = function PowrLogin(_ref) {
55
56
  _ref$allowedCountries = _ref.allowedCountries,
56
57
  allowedCountries = _ref$allowedCountries === void 0 ? null : _ref$allowedCountries,
57
58
  onSessionExpired = _ref.onSessionExpired;
59
+ var projectId = projectIdProp || config.projectId;
58
60
  var resolvedDefaultCountry = (0, _phone.resolveCountry)(defaultCountry, defaultCountryCode);
59
61
  var _useState = (0, _react.useState)(function () {
60
62
  switch (mode) {
@@ -686,13 +688,13 @@ var PowrLogin = function PowrLogin(_ref) {
686
688
  style: styles.card
687
689
  }, /*#__PURE__*/_react["default"].createElement("div", {
688
690
  style: styles.header
689
- }, /*#__PURE__*/_react["default"].createElement("div", {
691
+ }, appLogo ? /*#__PURE__*/_react["default"].createElement("div", {
690
692
  style: styles.logoContainer
691
693
  }, /*#__PURE__*/_react["default"].createElement("img", {
692
694
  src: appLogo,
693
695
  alt: "".concat(appName, " Logo"),
694
696
  style: styles.logoImage
695
- })), /*#__PURE__*/_react["default"].createElement("h1", {
697
+ })) : null, /*#__PURE__*/_react["default"].createElement("h1", {
696
698
  style: styles.title
697
699
  }, isLogin ? 'Welcome to' : 'Join', " ", appName), /*#__PURE__*/_react["default"].createElement("div", {
698
700
  style: styles.subtitleContainer
@@ -101,8 +101,8 @@ function ChevronRight() {
101
101
  }));
102
102
  }
103
103
 
104
- /**
105
- * Week strip + day picker (controlled). No data fetching — use anywhere you need a date range UI.
104
+ /**
105
+ * Week strip + day picker (controlled). No data fetching — use anywhere you need a date range UI.
106
106
  */
107
107
  function PowrCalendarStrip(_ref) {
108
108
  var selectedDate = _ref.selectedDate,
package/dist/index.js CHANGED
@@ -10,6 +10,12 @@ Object.defineProperty(exports, "AddPhonePanel", {
10
10
  return _onboarding.AddPhonePanel;
11
11
  }
12
12
  });
13
+ Object.defineProperty(exports, "DARK_POWR_TOKENS", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _theme.DARK_POWR_TOKENS;
17
+ }
18
+ });
13
19
  Object.defineProperty(exports, "DEFAULT_COUNTRY", {
14
20
  enumerable: true,
15
21
  get: function get() {
@@ -22,18 +28,84 @@ Object.defineProperty(exports, "DEFAULT_COUNTRY_CODE", {
22
28
  return _phone.DEFAULT_COUNTRY_CODE;
23
29
  }
24
30
  });
31
+ Object.defineProperty(exports, "DEFAULT_POWR_DENSITY", {
32
+ enumerable: true,
33
+ get: function get() {
34
+ return _theme.DEFAULT_POWR_DENSITY;
35
+ }
36
+ });
37
+ Object.defineProperty(exports, "DEFAULT_POWR_SCHEME", {
38
+ enumerable: true,
39
+ get: function get() {
40
+ return _theme.DEFAULT_POWR_SCHEME;
41
+ }
42
+ });
25
43
  Object.defineProperty(exports, "DEFAULT_POWR_TARGETS", {
26
44
  enumerable: true,
27
45
  get: function get() {
28
46
  return _sso.DEFAULT_POWR_TARGETS;
29
47
  }
30
48
  });
49
+ Object.defineProperty(exports, "DEFAULT_POWR_TOKENS", {
50
+ enumerable: true,
51
+ get: function get() {
52
+ return _theme.DEFAULT_POWR_TOKENS;
53
+ }
54
+ });
31
55
  Object.defineProperty(exports, "OnboardingShell", {
32
56
  enumerable: true,
33
57
  get: function get() {
34
58
  return _onboarding.OnboardingShell;
35
59
  }
36
60
  });
61
+ Object.defineProperty(exports, "POWR_ADMIN_ACCESS", {
62
+ enumerable: true,
63
+ get: function get() {
64
+ return _session.POWR_ADMIN_ACCESS;
65
+ }
66
+ });
67
+ Object.defineProperty(exports, "POWR_CSS_VAR_NAMES", {
68
+ enumerable: true,
69
+ get: function get() {
70
+ return _theme.POWR_CSS_VAR_NAMES;
71
+ }
72
+ });
73
+ Object.defineProperty(exports, "POWR_DENSITIES", {
74
+ enumerable: true,
75
+ get: function get() {
76
+ return _theme.POWR_DENSITIES;
77
+ }
78
+ });
79
+ Object.defineProperty(exports, "POWR_SCHEMES", {
80
+ enumerable: true,
81
+ get: function get() {
82
+ return _theme.POWR_SCHEMES;
83
+ }
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
+ });
97
+ Object.defineProperty(exports, "POWR_TOKENS", {
98
+ enumerable: true,
99
+ get: function get() {
100
+ return _theme.POWR_TOKENS;
101
+ }
102
+ });
103
+ Object.defineProperty(exports, "POWR_TOKEN_KEYS", {
104
+ enumerable: true,
105
+ get: function get() {
106
+ return _theme.POWR_TOKEN_KEYS;
107
+ }
108
+ });
37
109
  Object.defineProperty(exports, "PRIORITY_COUNTRIES", {
38
110
  enumerable: true,
39
111
  get: function get() {
@@ -58,6 +130,12 @@ Object.defineProperty(exports, "PowrBaseAdmin", {
58
130
  return _PowrBaseAdminFull["default"];
59
131
  }
60
132
  });
133
+ Object.defineProperty(exports, "PowrBaseAppWrapper", {
134
+ enumerable: true,
135
+ get: function get() {
136
+ return _shell.PowrBaseAppWrapper;
137
+ }
138
+ });
61
139
  Object.defineProperty(exports, "PowrBaseBlogs", {
62
140
  enumerable: true,
63
141
  get: function get() {
@@ -172,18 +250,42 @@ Object.defineProperty(exports, "PowrOnboardingProvider", {
172
250
  return _onboarding.PowrOnboardingProvider;
173
251
  }
174
252
  });
253
+ Object.defineProperty(exports, "PowrSessionProvider", {
254
+ enumerable: true,
255
+ get: function get() {
256
+ return _session.PowrSessionProvider;
257
+ }
258
+ });
175
259
  Object.defineProperty(exports, "PowrTable", {
176
260
  enumerable: true,
177
261
  get: function get() {
178
262
  return _table["default"];
179
263
  }
180
264
  });
265
+ Object.defineProperty(exports, "PowrThemeProvider", {
266
+ enumerable: true,
267
+ get: function get() {
268
+ return _theme.PowrThemeProvider;
269
+ }
270
+ });
271
+ Object.defineProperty(exports, "PowrThemeSettings", {
272
+ enumerable: true,
273
+ get: function get() {
274
+ return _theme.PowrThemeSettings;
275
+ }
276
+ });
181
277
  Object.defineProperty(exports, "SESSION_MESSAGES", {
182
278
  enumerable: true,
183
279
  get: function get() {
184
280
  return _sessionMessages.SESSION_MESSAGES;
185
281
  }
186
282
  });
283
+ Object.defineProperty(exports, "accessFromToken", {
284
+ enumerable: true,
285
+ get: function get() {
286
+ return _session.accessFromToken;
287
+ }
288
+ });
187
289
  Object.defineProperty(exports, "addPhoneStep", {
188
290
  enumerable: true,
189
291
  get: function get() {
@@ -202,6 +304,12 @@ Object.defineProperty(exports, "buildPowrSsoUrl", {
202
304
  return _sso.buildPowrSsoUrl;
203
305
  }
204
306
  });
307
+ Object.defineProperty(exports, "clearStoredSession", {
308
+ enumerable: true,
309
+ get: function get() {
310
+ return _session.clearStoredSession;
311
+ }
312
+ });
205
313
  Object.defineProperty(exports, "coercePhoneForStorage", {
206
314
  enumerable: true,
207
315
  get: function get() {
@@ -256,6 +364,12 @@ Object.defineProperty(exports, "getPhoneLookupVariants", {
256
364
  return _phone.getPhoneLookupVariants;
257
365
  }
258
366
  });
367
+ Object.defineProperty(exports, "getPowrUserId", {
368
+ enumerable: true,
369
+ get: function get() {
370
+ return _session.getPowrUserId;
371
+ }
372
+ });
259
373
  Object.defineProperty(exports, "getUserId", {
260
374
  enumerable: true,
261
375
  get: function get() {
@@ -280,6 +394,12 @@ Object.defineProperty(exports, "isJwtExpired", {
280
394
  return _jwt.isJwtExpired;
281
395
  }
282
396
  });
397
+ Object.defineProperty(exports, "isPowrAdmin", {
398
+ enumerable: true,
399
+ get: function get() {
400
+ return _session.isPowrAdmin;
401
+ }
402
+ });
283
403
  Object.defineProperty(exports, "isValidPhone", {
284
404
  enumerable: true,
285
405
  get: function get() {
@@ -346,24 +466,78 @@ Object.defineProperty(exports, "parsePhone", {
346
466
  return _phone.parsePhone;
347
467
  }
348
468
  });
469
+ Object.defineProperty(exports, "powrThemeStorageKey", {
470
+ enumerable: true,
471
+ get: function get() {
472
+ return _theme.powrThemeStorageKey;
473
+ }
474
+ });
475
+ Object.defineProperty(exports, "powrVar", {
476
+ enumerable: true,
477
+ get: function get() {
478
+ return _theme.powrVar;
479
+ }
480
+ });
349
481
  Object.defineProperty(exports, "profileNameStep", {
350
482
  enumerable: true,
351
483
  get: function get() {
352
484
  return _onboarding.profileNameStep;
353
485
  }
354
486
  });
487
+ Object.defineProperty(exports, "readStoredSession", {
488
+ enumerable: true,
489
+ get: function get() {
490
+ return _session.readStoredSession;
491
+ }
492
+ });
493
+ Object.defineProperty(exports, "resolveAccess", {
494
+ enumerable: true,
495
+ get: function get() {
496
+ return _session.resolveAccess;
497
+ }
498
+ });
355
499
  Object.defineProperty(exports, "resolveCountry", {
356
500
  enumerable: true,
357
501
  get: function get() {
358
502
  return _phone.resolveCountry;
359
503
  }
360
504
  });
505
+ Object.defineProperty(exports, "resolvePowrTokens", {
506
+ enumerable: true,
507
+ get: function get() {
508
+ return _theme.resolvePowrTokens;
509
+ }
510
+ });
361
511
  Object.defineProperty(exports, "safeNextPath", {
362
512
  enumerable: true,
363
513
  get: function get() {
364
514
  return _sso.safeNextPath;
365
515
  }
366
516
  });
517
+ Object.defineProperty(exports, "tokensToCssVars", {
518
+ enumerable: true,
519
+ get: function get() {
520
+ return _theme.tokensToCssVars;
521
+ }
522
+ });
523
+ Object.defineProperty(exports, "usePowrSession", {
524
+ enumerable: true,
525
+ get: function get() {
526
+ return _session.usePowrSession;
527
+ }
528
+ });
529
+ Object.defineProperty(exports, "usePowrTheme", {
530
+ enumerable: true,
531
+ get: function get() {
532
+ return _theme.usePowrTheme;
533
+ }
534
+ });
535
+ Object.defineProperty(exports, "writeStoredSession", {
536
+ enumerable: true,
537
+ get: function get() {
538
+ return _session.writeStoredSession;
539
+ }
540
+ });
367
541
  var _table = _interopRequireDefault(require("./table"));
368
542
  var _swiper = _interopRequireDefault(require("./swiper"));
369
543
  var _reviews = _interopRequireDefault(require("./reviews"));
@@ -390,5 +564,8 @@ var _onboarding = require("./onboarding");
390
564
  var _phone = require("./utils/phone");
391
565
  var _jwt = require("./utils/jwt");
392
566
  var _sessionMessages = require("./utils/sessionMessages");
567
+ var _theme = require("./theme");
568
+ var _session = require("./session");
569
+ var _shell = require("./shell");
393
570
  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); }
394
571
  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;