@frontegg/react-hooks 6.178.0-alpha.2 → 6.178.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.
Files changed (139) hide show
  1. package/FronteggProvider/index.d.ts +12 -1
  2. package/FronteggProvider/index.js +133 -1
  3. package/FronteggStoreContext/index.d.ts +13 -1
  4. package/FronteggStoreContext/index.js +14 -1
  5. package/audits/auditLogs.d.ts +4 -2
  6. package/audits/auditLogs.js +6 -8
  7. package/audits/auditsMetadata.d.ts +4 -2
  8. package/audits/auditsMetadata.js +6 -8
  9. package/audits/hooks.d.ts +8 -0
  10. package/audits/hooks.js +30 -6
  11. package/auth/{allAccounts.d.ts → MSP/allAccounts.d.ts} +4 -2
  12. package/auth/MSP/allAccounts.js +15 -0
  13. package/auth/acceptInvitation.js +5 -10
  14. package/auth/activateAccount.js +4 -10
  15. package/auth/apiTokens.d.ts +2 -0
  16. package/auth/apiTokens.js +6 -8
  17. package/auth/customLogin.d.ts +5 -2
  18. package/auth/customLogin.js +11 -10
  19. package/auth/entitlements.d.ts +14 -14
  20. package/auth/entitlements.js +21 -25
  21. package/auth/forgotPassword.d.ts +2 -0
  22. package/auth/forgotPassword.js +6 -8
  23. package/auth/groups.d.ts +4 -0
  24. package/auth/groups.js +13 -12
  25. package/auth/hooks.d.ts +11 -10
  26. package/auth/hooks.js +58 -30
  27. package/auth/impersonate.d.ts +2 -0
  28. package/auth/impersonate.js +6 -7
  29. package/auth/index.d.ts +18 -15
  30. package/auth/index.js +19 -16
  31. package/auth/login.d.ts +1 -1
  32. package/auth/login.js +4 -13
  33. package/auth/mfa.d.ts +1 -1
  34. package/auth/mfa.js +4 -13
  35. package/auth/passkeys.d.ts +4 -1
  36. package/auth/passkeys.js +6 -7
  37. package/auth/profile.d.ts +4 -2
  38. package/auth/profile.js +8 -9
  39. package/auth/provisioning.d.ts +3 -1
  40. package/auth/provisioning.js +6 -7
  41. package/auth/resetPhoneNumber.d.ts +3 -1
  42. package/auth/resetPhoneNumber.js +6 -7
  43. package/auth/roles.d.ts +3 -1
  44. package/auth/roles.js +6 -7
  45. package/auth/security/restrictions.d.ts +2 -0
  46. package/auth/security/restrictions.js +10 -10
  47. package/auth/security/securityCenter.d.ts +4 -1
  48. package/auth/security/securityCenter.js +6 -8
  49. package/auth/security/securityPolicy.d.ts +11 -5
  50. package/auth/security/securityPolicy.js +30 -19
  51. package/auth/security/sessionsPolicy.d.ts +3 -1
  52. package/auth/security/sessionsPolicy.js +6 -8
  53. package/auth/sessions.d.ts +3 -1
  54. package/auth/sessions.js +6 -7
  55. package/auth/signup.d.ts +1 -1
  56. package/auth/signup.js +4 -13
  57. package/auth/sms.d.ts +4 -1
  58. package/auth/sms.js +6 -7
  59. package/auth/socialLogin.d.ts +1 -1
  60. package/auth/socialLogin.js +4 -10
  61. package/auth/sso.d.ts +1 -1
  62. package/auth/sso.js +4 -10
  63. package/auth/stepUp/index.d.ts +2 -0
  64. package/auth/stepUp/index.js +2 -0
  65. package/auth/stepUp/interfaces.d.ts +2 -0
  66. package/auth/stepUp/interfaces.js +1 -0
  67. package/auth/{stepUp.d.ts → stepUp/stepUp.d.ts} +2 -0
  68. package/auth/{stepUp.js → stepUp/stepUp.js} +6 -9
  69. package/auth/team.d.ts +1 -9
  70. package/auth/team.js +4 -22
  71. package/auth/tenants.d.ts +3 -1
  72. package/auth/tenants.js +6 -8
  73. package/common/CustomComponentHolder.js +1 -3
  74. package/common/index.js +3 -3
  75. package/connectivity/hooks.d.ts +5 -2
  76. package/connectivity/hooks.js +9 -6
  77. package/index.d.ts +2 -2
  78. package/index.js +3 -3
  79. package/node/FronteggProvider/index.js +134 -9
  80. package/node/FronteggStoreContext/index.js +35 -11
  81. package/node/audits/auditLogs.js +6 -8
  82. package/node/audits/auditsMetadata.js +6 -8
  83. package/node/audits/hooks.js +34 -7
  84. package/node/auth/MSP/allAccounts.js +24 -0
  85. package/node/auth/acceptInvitation.js +5 -7
  86. package/node/auth/activateAccount.js +4 -7
  87. package/node/auth/apiTokens.js +6 -8
  88. package/node/auth/customLogin.js +12 -11
  89. package/node/auth/entitlements.js +20 -24
  90. package/node/auth/forgotPassword.js +6 -8
  91. package/node/auth/groups.js +12 -12
  92. package/node/auth/hooks.js +62 -33
  93. package/node/auth/impersonate.js +6 -7
  94. package/node/auth/index.js +120 -91
  95. package/node/auth/login.js +4 -10
  96. package/node/auth/mfa.js +4 -10
  97. package/node/auth/passkeys.js +6 -7
  98. package/node/auth/profile.js +9 -10
  99. package/node/auth/provisioning.js +6 -7
  100. package/node/auth/resetPhoneNumber.js +6 -7
  101. package/node/auth/roles.js +6 -7
  102. package/node/auth/security/restrictions.js +10 -10
  103. package/node/auth/security/securityCenter.js +6 -8
  104. package/node/auth/security/securityPolicy.js +30 -16
  105. package/node/auth/security/sessionsPolicy.js +6 -8
  106. package/node/auth/sessions.js +6 -7
  107. package/node/auth/signup.js +4 -10
  108. package/node/auth/sms.js +6 -7
  109. package/node/auth/socialLogin.js +4 -7
  110. package/node/auth/sso.js +4 -7
  111. package/node/auth/stepUp/index.js +27 -0
  112. package/node/auth/stepUp/interfaces.js +5 -0
  113. package/node/auth/{stepUp.js → stepUp/stepUp.js} +7 -10
  114. package/node/auth/team.js +4 -25
  115. package/node/auth/tenants.js +6 -8
  116. package/node/common/CustomComponentHolder.js +1 -3
  117. package/node/common/index.js +2 -2
  118. package/node/connectivity/hooks.js +8 -5
  119. package/node/index.js +16 -16
  120. package/node/subscriptions/hooks.js +51 -84
  121. package/node/tests/hooks.tsc-test.js +318 -0
  122. package/node/vendor/hooks.js +6 -5
  123. package/package.json +3 -3
  124. package/subscriptions/hooks.d.ts +10 -32
  125. package/subscriptions/hooks.js +49 -81
  126. package/tests/hooks.tsc-test.js +317 -0
  127. package/vendor/hooks.d.ts +1 -0
  128. package/vendor/hooks.js +7 -9
  129. package/FronteggProvider/FronteggProvider.d.ts +0 -12
  130. package/FronteggProvider/FronteggProvider.js +0 -134
  131. package/FronteggStoreContext/FronteggStoreContext.d.ts +0 -9
  132. package/FronteggStoreContext/FronteggStoreContext.js +0 -16
  133. package/auth/allAccounts.js +0 -20
  134. package/auth/security/index.d.ts +0 -4
  135. package/auth/security/index.js +0 -4
  136. package/node/FronteggProvider/FronteggProvider.js +0 -140
  137. package/node/FronteggStoreContext/FronteggStoreContext.js +0 -26
  138. package/node/auth/allAccounts.js +0 -27
  139. package/node/auth/security/index.js +0 -49
@@ -1,16 +1,40 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- var _FronteggStoreContext = require("./FronteggStoreContext");
7
- Object.keys(_FronteggStoreContext).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _FronteggStoreContext[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _FronteggStoreContext[key];
14
- }
15
- });
16
- });
7
+ exports.Provider = exports.FronteggStoreContext = void 0;
8
+ Object.defineProperty(exports, "ReactReduxProvider", {
9
+ enumerable: true,
10
+ get: function () {
11
+ return _reactRedux.Provider;
12
+ }
13
+ });
14
+ exports.default = void 0;
15
+ Object.defineProperty(exports, "shallowEqual", {
16
+ enumerable: true,
17
+ get: function () {
18
+ return _reactRedux.shallowEqual;
19
+ }
20
+ });
21
+ exports.useStore = exports.useSelector = exports.useDispatch = void 0;
22
+ var _react = _interopRequireDefault(require("react"));
23
+ var _reactRedux = require("react-redux");
24
+ const FronteggStoreContext = /*#__PURE__*/_react.default.createContext(null);
25
+
26
+ // @ts-ignore
27
+ exports.FronteggStoreContext = FronteggStoreContext;
28
+ if (process.env.NODE_ENV !== 'production') {
29
+ FronteggStoreContext.displayName = 'FronteggStoreContext';
30
+ }
31
+ const useSelector = (0, _reactRedux.createSelectorHook)(FronteggStoreContext);
32
+ exports.useSelector = useSelector;
33
+ const useDispatch = (0, _reactRedux.createDispatchHook)(FronteggStoreContext);
34
+ exports.useDispatch = useDispatch;
35
+ const useStore = (0, _reactRedux.createStoreHook)(FronteggStoreContext);
36
+ exports.useStore = useStore;
37
+ const Provider = _reactRedux.Provider;
38
+ exports.Provider = Provider;
39
+ var _default = FronteggStoreContext;
40
+ exports.default = _default;
@@ -5,13 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useAuditLogsActions = void 0;
7
7
  exports.useAuditLogsState = useAuditLogsState;
8
- var _FronteggStoreContext = require("../FronteggStoreContext");
9
- var _react = require("valtio/react");
10
- function useAuditLogsState() {
11
- const state = (0, _FronteggStoreContext.useStore)().store.auditLogs.auditLogsState;
12
- return (0, _react.useSnapshot)(state);
8
+ var _hooks = require("./hooks");
9
+ var _reduxStore = require("@frontegg/redux-store");
10
+ const defaultMapper = state => state;
11
+ function useAuditLogsState(stateMapper = defaultMapper) {
12
+ return (0, _hooks.stateHookGenerator)(stateMapper, 'auditLogsState');
13
13
  }
14
- const useAuditLogsActions = () => {
15
- return (0, _FronteggStoreContext.useStore)().stateActions.auditLogs;
16
- };
14
+ const useAuditLogsActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.auditLogsActions, _reduxStore.auditLogsReducers);
17
15
  exports.useAuditLogsActions = useAuditLogsActions;
@@ -5,13 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useAuditsMetadataActions = void 0;
7
7
  exports.useAuditsMetadataState = useAuditsMetadataState;
8
- var _FronteggStoreContext = require("../FronteggStoreContext");
9
- var _react = require("valtio/react");
10
- function useAuditsMetadataState() {
11
- const state = (0, _FronteggStoreContext.useStore)().store.auditLogs.auditsMetadataState;
12
- return (0, _react.useSnapshot)(state);
8
+ var _reduxStore = require("@frontegg/redux-store");
9
+ var _hooks = require("./hooks");
10
+ const defaultMapper = state => state;
11
+ function useAuditsMetadataState(stateMapper = defaultMapper) {
12
+ return (0, _hooks.stateHookGenerator)(stateMapper, 'auditsMetadataState');
13
13
  }
14
- const useAuditsMetadataActions = () => {
15
- return (0, _FronteggStoreContext.useStore)().stateActions.auditLogs;
16
- };
14
+ const useAuditsMetadataActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.auditsMetadataActions, _reduxStore.auditsMetadataReducers);
17
15
  exports.useAuditsMetadataActions = useAuditsMetadataActions;
@@ -1,22 +1,49 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.useAuditsActions = void 0;
7
+ exports.useAuditsActions = exports.stateHookGenerator = exports.sliceReducerActionsBy = exports.reducerActionsGenerator = void 0;
7
8
  exports.useAuditsState = useAuditsState;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _react = require("react");
11
+ var _reduxStore = require("@frontegg/redux-store");
12
+ var _reactRedux = require("react-redux");
8
13
  var _FronteggStoreContext = require("../FronteggStoreContext");
9
- var _react = require("valtio/react");
10
14
  const defaultMapper = {
11
15
  state: state => state,
12
16
  actions: actions => actions
13
17
  };
14
18
  function useAuditsState(stateMapper = defaultMapper.state) {
15
- const state = (0, _FronteggStoreContext.useStore)().store.auditLogs;
16
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
- return stateMapper((0, _react.useSnapshot)(state));
19
+ return (0, _FronteggStoreContext.useSelector)(state => stateMapper(state[_reduxStore.auditsStoreName]), _reactRedux.shallowEqual);
18
20
  }
19
21
  const useAuditsActions = () => {
20
- return (0, _FronteggStoreContext.useStore)().stateActions.auditLogs;
22
+ const dispatch = (0, _FronteggStoreContext.useDispatch)();
23
+ return (0, _react.useMemo)(() => (0, _reduxStore.bindActionCreators)(_reduxStore.auditsActions, dispatch), [_reduxStore.auditsActions]);
21
24
  };
22
- exports.useAuditsActions = useAuditsActions;
25
+
26
+ /**
27
+ * hooks helpers
28
+ */
29
+ exports.useAuditsActions = useAuditsActions;
30
+ const sliceReducerActionsBy = reducer => {
31
+ const reducerKeys = Object.keys(reducer);
32
+ const reducerActions = reducerKeys.map(key => ({
33
+ [key]: _reduxStore.auditsActions[key]
34
+ }));
35
+ return reducerActions.reduce((p, n) => (0, _extends2.default)({}, p, n), {});
36
+ };
37
+ exports.sliceReducerActionsBy = sliceReducerActionsBy;
38
+ const stateHookGenerator = (stateMapper, subState) => {
39
+ return (0, _FronteggStoreContext.useSelector)(state => {
40
+ var _stateMapper;
41
+ return (_stateMapper = stateMapper == null ? void 0 : stateMapper(state[_reduxStore.auditsStoreName][subState])) != null ? _stateMapper : state[_reduxStore.auditsStoreName][subState];
42
+ }, _reactRedux.shallowEqual);
43
+ };
44
+ exports.stateHookGenerator = stateHookGenerator;
45
+ const reducerActionsGenerator = (actions, reducers) => {
46
+ const dispatch = (0, _FronteggStoreContext.useDispatch)();
47
+ return (0, _react.useMemo)(() => (0, _reduxStore.bindActionCreators)((0, _extends2.default)({}, actions, sliceReducerActionsBy(reducers)), dispatch), [dispatch]);
48
+ };
49
+ exports.reducerActionsGenerator = reducerActionsGenerator;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useAllAccountsDialogsActions = exports.useAllAccountsActions = void 0;
7
+ exports.useAllAccountsDialogsState = useAllAccountsDialogsState;
8
+ exports.useAllAccountsState = useAllAccountsState;
9
+ var _reduxStore = require("@frontegg/redux-store");
10
+ var _hooks = require("../hooks");
11
+ const defaultMapper = state => state;
12
+ function useAllAccountsState(stateMapper = defaultMapper) {
13
+ return (0, _hooks.stateHookGenerator)(stateMapper, 'allAccountsState');
14
+ }
15
+ const useAllAccountsActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.allAccountsActions, _reduxStore.allAccountsReducers);
16
+
17
+ //dialogs
18
+ exports.useAllAccountsActions = useAllAccountsActions;
19
+ const defaultDialogsMapper = state => state;
20
+ function useAllAccountsDialogsState(stateMapper = defaultDialogsMapper) {
21
+ return (0, _hooks.stateHookGenerator)(stateMapper, 'allAccountsDialogsState');
22
+ }
23
+ const useAllAccountsDialogsActions = () => (0, _hooks.reducerActionsGenerator)({}, _reduxStore.allAccountsDialogsReducers);
24
+ exports.useAllAccountsDialogsActions = useAllAccountsDialogsActions;
@@ -5,14 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useAcceptInvitationActions = void 0;
7
7
  exports.useAcceptInvitationState = useAcceptInvitationState;
8
- var _FronteggStoreContext = require("../FronteggStoreContext");
9
- var _react = require("valtio/react");
8
+ var _reduxStore = require("@frontegg/redux-store");
9
+ var _hooks = require("./hooks");
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
11
  const defaultMapper = state => state;
11
12
  function useAcceptInvitationState(stateMapper = defaultMapper) {
12
- const state = (0, _FronteggStoreContext.useStore)().store.auth.acceptInvitationState;
13
- return stateMapper((0, _react.useSnapshot)(state));
13
+ return (0, _hooks.stateHookGenerator)(stateMapper, 'acceptInvitationState');
14
14
  }
15
- const useAcceptInvitationActions = () => {
16
- return (0, _FronteggStoreContext.useStore)().stateActions.auth.acceptInvitationActions;
17
- };
15
+ const useAcceptInvitationActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.acceptInvitationActions, _reduxStore.acceptInvitationReducers);
18
16
  exports.useAcceptInvitationActions = useAcceptInvitationActions;
@@ -5,14 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useActivateAccountActions = void 0;
7
7
  exports.useActivateAccountState = useActivateAccountState;
8
- var _FronteggStoreContext = require("../FronteggStoreContext");
9
- var _react = require("valtio/react");
8
+ var _reduxStore = require("@frontegg/redux-store");
9
+ var _hooks = require("./hooks");
10
10
  const defaultMapper = state => state;
11
11
  function useActivateAccountState(stateMapper = defaultMapper) {
12
- const state = (0, _FronteggStoreContext.useStore)().store.auth.activateAccountState;
13
- return stateMapper((0, _react.useSnapshot)(state));
12
+ return (0, _hooks.stateHookGenerator)(stateMapper, 'activateState');
14
13
  }
15
- const useActivateAccountActions = () => {
16
- return (0, _FronteggStoreContext.useStore)().stateActions.auth.activateAccountActions;
17
- };
14
+ const useActivateAccountActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.activateAccountActions, _reduxStore.activateAccountReducers);
18
15
  exports.useActivateAccountActions = useActivateAccountActions;
@@ -5,13 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useApiTokensActions = void 0;
7
7
  exports.useApiTokensState = useApiTokensState;
8
- var _FronteggStoreContext = require("../FronteggStoreContext");
9
- var _react = require("valtio/react");
10
- function useApiTokensState() {
11
- const state = (0, _FronteggStoreContext.useStore)().store.auth.apiTokensState;
12
- return (0, _react.useSnapshot)(state);
8
+ var _reduxStore = require("@frontegg/redux-store");
9
+ var _hooks = require("./hooks");
10
+ const defaultMapper = state => state;
11
+ function useApiTokensState(stateMapper = defaultMapper) {
12
+ return (0, _hooks.stateHookGenerator)(stateMapper, 'apiTokensState');
13
13
  }
14
- const useApiTokensActions = () => {
15
- return (0, _FronteggStoreContext.useStore)().stateActions.auth.apiTokensActions;
16
- };
14
+ const useApiTokensActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.apiTokensActions, _reduxStore.apiTokensReducers);
17
15
  exports.useApiTokensActions = useApiTokensActions;
@@ -7,21 +7,22 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.useCustomLoginActions = void 0;
8
8
  exports.useCustomLoginState = useCustomLoginState;
9
9
  exports.useCustomLoginTheme = void 0;
10
- var _react = require("react");
10
+ var _reduxStore = require("@frontegg/redux-store");
11
+ var _hooks = require("./hooks");
11
12
  var _getValue = _interopRequireDefault(require("get-value"));
12
- var _FronteggStoreContext = require("../FronteggStoreContext");
13
- var _react2 = require("valtio/react");
14
- function useCustomLoginState() {
15
- const state = (0, _FronteggStoreContext.useStore)().store.auth.customLoginState;
16
- return (0, _react2.useSnapshot)(state);
13
+ var _react = require("react");
14
+ const defaultMapper = state => state;
15
+ function useCustomLoginState(stateMapper = defaultMapper) {
16
+ return (0, _hooks.stateHookGenerator)(stateMapper, 'customLoginState');
17
17
  }
18
- const useCustomLoginActions = () => {
19
- return (0, _FronteggStoreContext.useStore)().stateActions.auth.customLoginActions;
20
- };
18
+ const useCustomLoginActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.customLoginActions, _reduxStore.customLoginReducers);
21
19
  exports.useCustomLoginActions = useCustomLoginActions;
20
+ const themeMapper = state => {
21
+ var _state$tenantMetadata, _state$tenantMetadata2, _state$tenantMetadata3;
22
+ return (_state$tenantMetadata = state.tenantMetadata) == null ? void 0 : (_state$tenantMetadata2 = _state$tenantMetadata.configuration) == null ? void 0 : (_state$tenantMetadata3 = _state$tenantMetadata2.themeV2) == null ? void 0 : _state$tenantMetadata3.loginBox;
23
+ };
22
24
  const useCustomLoginTheme = () => {
23
- var _useCustomLoginState$, _useCustomLoginState$2, _useCustomLoginState$3;
24
- const customLoginTheme = (_useCustomLoginState$ = useCustomLoginState().tenantMetadata) == null ? void 0 : (_useCustomLoginState$2 = _useCustomLoginState$.configuration) == null ? void 0 : (_useCustomLoginState$3 = _useCustomLoginState$2.themeV2) == null ? void 0 : _useCustomLoginState$3.loginBox;
25
+ const customLoginTheme = useCustomLoginState(themeMapper);
25
26
  const getCustomLoginThemeValue = (0, _react.useCallback)(path => {
26
27
  return path && customLoginTheme ? (0, _getValue.default)(customLoginTheme, path) : customLoginTheme;
27
28
  }, [customLoginTheme]);
@@ -4,29 +4,25 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.usePermissionEntitlements = exports.useFeatureEntitlements = exports.useEntitlementsOptions = exports.useEntitlementsActions = exports.useEntitlements = void 0;
7
+ var _reduxStore = require("@frontegg/redux-store");
7
8
  var _restApi = require("@frontegg/rest-api");
8
9
  var _hooks = require("./hooks");
9
10
  var _react = require("react");
10
11
  var _common = require("../common");
11
12
  var _flags = require("../flags");
12
- var _FronteggStoreContext = require("../FronteggStoreContext");
13
- var _react2 = require("valtio/react");
14
- var _reduxStore = require("@frontegg/redux-store");
15
13
  /**
16
14
  * @returns entitlemenets state as stored in the user
17
15
  */
18
- const useEntitlementsState = () => {
19
- var _useSnapshot$user$ent, _useSnapshot$user;
20
- const state = (0, _FronteggStoreContext.useStore)().store.auth;
21
- return (_useSnapshot$user$ent = (_useSnapshot$user = (0, _react2.useSnapshot)(state).user) == null ? void 0 : _useSnapshot$user.entitlements) != null ? _useSnapshot$user$ent : {};
22
- };
16
+ const useEntitlementsState = () => (0, _hooks.useAuth)(({
17
+ user
18
+ }) => user == null ? void 0 : user.entitlements);
23
19
 
24
20
  /**
25
21
  * @returns user state
26
22
  */
27
- const useUserState = () => {
28
- return (0, _hooks.useAuthUserOrNull)() || undefined;
29
- };
23
+ const useUserState = () => (0, _hooks.useAuth)(({
24
+ user
25
+ }) => user);
30
26
 
31
27
  /**
32
28
  * @param customAttributes user attributes
@@ -51,10 +47,10 @@ const useEntitlementsQueryData = customAttributes => {
51
47
  };
52
48
 
53
49
  /**
54
- @param key feature key
55
- @param customAttributes user attributes
56
- @returns if the user is entitled to the given feature and attributes. Attaching the justification if not
57
- */
50
+ @param key feature key
51
+ @param customAttributes user attributes
52
+ @returns if the user is entitled to the given feature and attributes. Attaching the justification if not
53
+ */
58
54
  const useFeatureEntitlements = (key, customAttributes) => {
59
55
  const {
60
56
  entitlements,
@@ -65,10 +61,10 @@ const useFeatureEntitlements = (key, customAttributes) => {
65
61
  };
66
62
 
67
63
  /**
68
- @param key permission key
69
- @param customAttributes user attributes
70
- @returns if the user is entitled to the given permission and attributes. Attaching the justification if not
71
- */
64
+ @param key permission key
65
+ @param customAttributes user attributes
66
+ @returns if the user is entitled to the given permission and attributes. Attaching the justification if not
67
+ */
72
68
  exports.useFeatureEntitlements = useFeatureEntitlements;
73
69
  const usePermissionEntitlements = (key, customAttributes) => {
74
70
  const {
@@ -80,10 +76,10 @@ const usePermissionEntitlements = (key, customAttributes) => {
80
76
  };
81
77
 
82
78
  /**
83
- @param entitledToOptions including permission or feature key
84
- @param customAttributes user attributes
85
- @returns if the user is entitled to the given feature or permission and attributes (check only one). Attaching the justification if not
86
- */
79
+ @param entitledToOptions including permission or feature key
80
+ @param customAttributes user attributes
81
+ @returns if the user is entitled to the given feature or permission and attributes (check only one). Attaching the justification if not
82
+ */
87
83
  exports.usePermissionEntitlements = usePermissionEntitlements;
88
84
  const useEntitlements = (options, customAttributes) => {
89
85
  const {
@@ -120,7 +116,7 @@ const useEntitlementsActions = () => {
120
116
 
121
117
  /**
122
118
  @returns if the option to use entitlements is enabled
123
- */
119
+ */
124
120
  exports.useEntitlementsActions = useEntitlementsActions;
125
121
  const useEntitlementsOptions = () => {
126
122
  var _entitlementsOptions$;
@@ -5,13 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useForgotPasswordActions = void 0;
7
7
  exports.useForgotPasswordState = useForgotPasswordState;
8
- var _FronteggStoreContext = require("../FronteggStoreContext");
9
- var _react = require("valtio/react");
10
- function useForgotPasswordState() {
11
- const state = (0, _FronteggStoreContext.useStore)().store.auth.forgotPasswordState;
12
- return (0, _react.useSnapshot)(state);
8
+ var _reduxStore = require("@frontegg/redux-store");
9
+ var _hooks = require("./hooks");
10
+ const defaultMapper = state => state;
11
+ function useForgotPasswordState(stateMapper = defaultMapper) {
12
+ return (0, _hooks.stateHookGenerator)(stateMapper, 'forgotPasswordState');
13
13
  }
14
- const useForgotPasswordActions = () => {
15
- return (0, _FronteggStoreContext.useStore)().stateActions.auth.forgotPasswordActions;
16
- };
14
+ const useForgotPasswordActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.forgotPasswordActions, _reduxStore.forgotPasswordReducers);
17
15
  exports.useForgotPasswordActions = useForgotPasswordActions;
@@ -6,19 +6,19 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useGroupsDialogsActions = exports.useGroupsActions = void 0;
7
7
  exports.useGroupsDialogsState = useGroupsDialogsState;
8
8
  exports.useGroupsState = useGroupsState;
9
- var _FronteggStoreContext = require("../FronteggStoreContext");
10
- var _react = require("valtio/react");
11
- function useGroupsState() {
12
- return (0, _react.useSnapshot)((0, _FronteggStoreContext.useStore)().store.auth.groupsState);
9
+ var _reduxStore = require("@frontegg/redux-store");
10
+ var _hooks = require("./hooks");
11
+ const defaultMapper = state => state;
12
+ function useGroupsState(stateMapper = defaultMapper) {
13
+ return (0, _hooks.stateHookGenerator)(stateMapper, 'groupsState');
13
14
  }
14
- const useGroupsActions = () => {
15
- return (0, _FronteggStoreContext.useStore)().stateActions.auth.groupsActions;
16
- };
15
+ const useGroupsActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.groupsActions, _reduxStore.groupsReducers);
16
+
17
+ //dialogs
17
18
  exports.useGroupsActions = useGroupsActions;
18
- function useGroupsDialogsState() {
19
- return (0, _react.useSnapshot)((0, _FronteggStoreContext.useStore)().store.auth.groupsDialogsState);
19
+ const defaultDialogsMapper = state => state;
20
+ function useGroupsDialogsState(stateMapper = defaultDialogsMapper) {
21
+ return (0, _hooks.stateHookGenerator)(stateMapper, 'groupsDialogsState');
20
22
  }
21
- const useGroupsDialogsActions = () => {
22
- return (0, _FronteggStoreContext.useStore)().stateActions.auth.groupsDialogsActions;
23
- };
23
+ const useGroupsDialogsActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.groupsDialogsActions, _reduxStore.groupsDialogsReducers);
24
24
  exports.useGroupsDialogsActions = useGroupsDialogsActions;
@@ -4,15 +4,16 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
+ exports.stateHookGenerator = exports.sliceReducerActionsBy = exports.reducerActionsGenerator = void 0;
7
8
  exports.useAuth = useAuth;
8
- exports.useAuthRoutes = exports.useAuthActions = void 0;
9
- exports.useAuthState = useAuthState;
10
- exports.useOnRedirectTo = exports.useLoginWithRedirectV2 = exports.useLoginWithRedirect = exports.useIsAuthenticated = exports.useAuthUserOrNull = exports.useAuthUser = void 0;
9
+ exports.useOnRedirectTo = exports.useLoginWithRedirectV2 = exports.useLoginWithRedirect = exports.useIsAuthenticated = exports.useAuthUserOrNull = exports.useAuthUser = exports.useAuthRoutes = exports.useAuthActions = void 0;
11
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
11
  var _react = require("react");
13
- var _restApi = require("@frontegg/rest-api");
12
+ var _reduxStore = require("@frontegg/redux-store");
13
+ var _reactRedux = require("react-redux");
14
14
  var _FronteggStoreContext = require("../FronteggStoreContext");
15
- var _react2 = require("valtio/react");
15
+ var _restApi = require("@frontegg/rest-api");
16
+ var _common = require("../common");
16
17
  const defaultMapper = {
17
18
  state: state => state,
18
19
  actions: actions => actions
@@ -33,14 +34,7 @@ const defaultMapper = {
33
34
  */
34
35
 
35
36
  function useAuth(stateMapper = defaultMapper.state) {
36
- const state = (0, _FronteggStoreContext.useStore)().store.auth;
37
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
- return stateMapper((0, _react2.useSnapshot)(state));
39
- }
40
- function useAuthState() {
41
- return (0, _react2.useSnapshot)((0, _FronteggStoreContext.useStore)().store.auth, {
42
- sync: true
43
- });
37
+ return (0, _FronteggStoreContext.useSelector)(state => stateMapper(state[_reduxStore.authStoreName]), _reactRedux.shallowEqual);
44
38
  }
45
39
 
46
40
  /**
@@ -70,28 +64,24 @@ function useAuthState() {
70
64
  * When using this option, you can have the user on the first load, and you can control when the user is redirected to the login page by using `loginWithRedirect`.
71
65
  */
72
66
  const useLoginWithRedirect = () => {
73
- const {
74
- actions
75
- } = (0, _react.useContext)(_FronteggStoreContext.FronteggStoreContext);
76
- return actions.requestHostedLoginAuthorize;
67
+ const dispatch = (0, _FronteggStoreContext.useDispatch)();
68
+ return (0, _react.useMemo)(() => (0, _reduxStore.bindActionCreators)(_reduxStore.authActions.requestHostedLoginAuthorize, dispatch), [_reduxStore.authActions.requestHostedLoginAuthorize]);
77
69
  };
78
70
  exports.useLoginWithRedirect = useLoginWithRedirect;
79
71
  const useLoginWithRedirectV2 = () => {
80
- const {
81
- actions
82
- } = (0, _react.useContext)(_FronteggStoreContext.FronteggStoreContext);
83
- return actions.requestHostedLoginAuthorizeV2;
72
+ const dispatch = (0, _FronteggStoreContext.useDispatch)();
73
+ return (0, _react.useMemo)(() => (0, _reduxStore.bindActionCreators)(_reduxStore.authActions.requestHostedLoginAuthorizeV2, dispatch), [_reduxStore.authActions.requestHostedLoginAuthorizeV2]);
84
74
  };
85
75
  exports.useLoginWithRedirectV2 = useLoginWithRedirectV2;
86
76
  const useAuthActions = () => {
87
- return (0, _FronteggStoreContext.useStore)().actions;
77
+ const dispatch = (0, _FronteggStoreContext.useDispatch)();
78
+ return (0, _react.useMemo)(() => (0, _reduxStore.bindActionCreators)(_reduxStore.authActions, dispatch), [_reduxStore.authActions]);
88
79
  };
89
80
  exports.useAuthActions = useAuthActions;
90
81
  const useOnRedirectTo = () => {
91
- const {
92
- onRedirectTo
93
- } = useAuth();
94
- return onRedirectTo != null ? onRedirectTo : _restApi.ContextHolder.onRedirectTo;
82
+ var _context$onRedirectTo;
83
+ const context = (0, _react.useContext)(_common.ShadowDomContext);
84
+ return (_context$onRedirectTo = context == null ? void 0 : context.onRedirectTo) != null ? _context$onRedirectTo : _restApi.ContextHolder.onRedirectTo;
95
85
  };
96
86
  exports.useOnRedirectTo = useOnRedirectTo;
97
87
  const useAuthRoutes = () => useAuth(state => (0, _extends2.default)({}, state.routes));
@@ -107,12 +97,11 @@ const useAuthRoutes = () => useAuth(state => (0, _extends2.default)({}, state.ro
107
97
  * use this frontegg hook function to get if user is "Authenticated"
108
98
  */
109
99
  exports.useAuthRoutes = useAuthRoutes;
110
- const useIsAuthenticated = () => {
111
- const {
100
+ const useIsAuthenticated = () => (0, _FronteggStoreContext.useSelector)(({
101
+ [_reduxStore.authStoreName]: {
112
102
  isAuthenticated
113
- } = (0, _react2.useSnapshot)((0, _FronteggStoreContext.useStore)().store.auth);
114
- return isAuthenticated;
115
- };
103
+ }
104
+ }) => isAuthenticated, _reactRedux.shallowEqual);
116
105
 
117
106
  /**
118
107
  * ```jsx
@@ -158,7 +147,47 @@ exports.useAuthUser = useAuthUser;
158
147
  const useAuthUserOrNull = () => {
159
148
  const {
160
149
  user
161
- } = useAuth();
150
+ } = (0, _FronteggStoreContext.useSelector)(({
151
+ [_reduxStore.authStoreName]: {
152
+ user
153
+ }
154
+ }) => ({
155
+ user
156
+ }), _reactRedux.shallowEqual);
162
157
  return user || null;
163
158
  };
164
- exports.useAuthUserOrNull = useAuthUserOrNull;
159
+
160
+ /**
161
+ * hooks helpers
162
+ */
163
+ exports.useAuthUserOrNull = useAuthUserOrNull;
164
+ const sliceReducerActionsBy = reducer => {
165
+ const reducerKeys = Object.keys(reducer);
166
+ const reducerActions = reducerKeys.map(key => ({
167
+ [key]: _reduxStore.authActions[key]
168
+ }));
169
+ return reducerActions.reduce((p, n) => (0, _extends2.default)({}, p, n), {});
170
+ };
171
+
172
+ /*
173
+ * enableMapperFalsyReturnValue was added to be backward compatible with all usages
174
+ * the scenario that require enableMapperFalsyReturnValue of true is when the
175
+ * mapper function returns a falsy value then we want to return it as is - it's a valid case like in entitlements (when it's undefined)
176
+ * IMO all usages should be like that
177
+ */
178
+ exports.sliceReducerActionsBy = sliceReducerActionsBy;
179
+ const stateHookGenerator = (stateMapper, subState, enableMapperFalsyReturnValue = false) => {
180
+ return (0, _FronteggStoreContext.useSelector)(state => {
181
+ const mapperValue = stateMapper == null ? void 0 : stateMapper(state[_reduxStore.authStoreName][subState]);
182
+ if (enableMapperFalsyReturnValue && stateMapper) {
183
+ return mapperValue;
184
+ }
185
+ return mapperValue != null ? mapperValue : state[_reduxStore.authStoreName][subState];
186
+ }, _reactRedux.shallowEqual);
187
+ };
188
+ exports.stateHookGenerator = stateHookGenerator;
189
+ const reducerActionsGenerator = (actions, reducers) => {
190
+ const dispatch = (0, _FronteggStoreContext.useDispatch)();
191
+ return (0, _react.useMemo)(() => (0, _reduxStore.bindActionCreators)((0, _extends2.default)({}, actions, sliceReducerActionsBy(reducers)), dispatch), [dispatch]);
192
+ };
193
+ exports.reducerActionsGenerator = reducerActionsGenerator;
@@ -5,12 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useImpersonateActions = void 0;
7
7
  exports.useImpersonateState = useImpersonateState;
8
- var _react = require("valtio/react");
9
- var _FronteggStoreContext = require("../FronteggStoreContext");
10
- function useImpersonateState() {
11
- return (0, _react.useSnapshot)((0, _FronteggStoreContext.useStore)().store.auth.impersonateState);
8
+ var _reduxStore = require("@frontegg/redux-store");
9
+ var _hooks = require("./hooks");
10
+ const defaultMapper = state => state;
11
+ function useImpersonateState(stateMapper = defaultMapper) {
12
+ return (0, _hooks.stateHookGenerator)(stateMapper, 'impersonateState');
12
13
  }
13
- const useImpersonateActions = () => {
14
- return (0, _FronteggStoreContext.useStore)().stateActions.auth.impersonateActions;
15
- };
14
+ const useImpersonateActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.impersonateActions, _reduxStore.impersonateReducers);
16
15
  exports.useImpersonateActions = useImpersonateActions;