@frontegg/react-hooks 6.176.0 → 6.178.0-alpha.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/FronteggProvider.d.ts +12 -0
  2. package/FronteggProvider/FronteggProvider.js +134 -0
  3. package/FronteggProvider/index.d.ts +1 -12
  4. package/FronteggProvider/index.js +1 -133
  5. package/FronteggStoreContext/FronteggStoreContext.d.ts +9 -0
  6. package/FronteggStoreContext/FronteggStoreContext.js +16 -0
  7. package/FronteggStoreContext/index.d.ts +1 -13
  8. package/FronteggStoreContext/index.js +1 -14
  9. package/audits/auditLogs.d.ts +2 -4
  10. package/audits/auditLogs.js +8 -6
  11. package/audits/auditsMetadata.d.ts +2 -4
  12. package/audits/auditsMetadata.js +8 -6
  13. package/audits/hooks.d.ts +0 -8
  14. package/audits/hooks.js +6 -30
  15. package/auth/acceptInvitation.js +10 -5
  16. package/auth/activateAccount.js +10 -4
  17. package/auth/{MSP/allAccounts.d.ts → allAccounts.d.ts} +2 -4
  18. package/auth/allAccounts.js +20 -0
  19. package/auth/apiTokens.d.ts +0 -2
  20. package/auth/apiTokens.js +8 -6
  21. package/auth/customLogin.d.ts +2 -5
  22. package/auth/customLogin.js +10 -11
  23. package/auth/entitlements.d.ts +14 -14
  24. package/auth/entitlements.js +25 -21
  25. package/auth/forgotPassword.d.ts +0 -2
  26. package/auth/forgotPassword.js +8 -6
  27. package/auth/groups.d.ts +0 -4
  28. package/auth/groups.js +12 -13
  29. package/auth/hooks.d.ts +9 -11
  30. package/auth/hooks.js +27 -58
  31. package/auth/impersonate.d.ts +0 -2
  32. package/auth/impersonate.js +7 -6
  33. package/auth/index.d.ts +14 -17
  34. package/auth/index.js +15 -18
  35. package/auth/login.d.ts +1 -1
  36. package/auth/login.js +13 -4
  37. package/auth/mfa.d.ts +1 -1
  38. package/auth/mfa.js +13 -4
  39. package/auth/passkeys.d.ts +1 -4
  40. package/auth/passkeys.js +7 -6
  41. package/auth/profile.d.ts +2 -4
  42. package/auth/profile.js +9 -8
  43. package/auth/provisioning.d.ts +1 -3
  44. package/auth/provisioning.js +7 -6
  45. package/auth/resetPhoneNumber.d.ts +1 -3
  46. package/auth/resetPhoneNumber.js +7 -6
  47. package/auth/roles.d.ts +1 -3
  48. package/auth/roles.js +7 -6
  49. package/auth/security/index.d.ts +4 -0
  50. package/auth/security/index.js +4 -0
  51. package/auth/security/restrictions.d.ts +0 -2
  52. package/auth/security/restrictions.js +10 -10
  53. package/auth/security/securityCenter.d.ts +1 -4
  54. package/auth/security/securityCenter.js +8 -6
  55. package/auth/security/securityPolicy.d.ts +5 -11
  56. package/auth/security/securityPolicy.js +19 -30
  57. package/auth/security/sessionsPolicy.d.ts +1 -3
  58. package/auth/security/sessionsPolicy.js +8 -6
  59. package/auth/sessions.d.ts +1 -3
  60. package/auth/sessions.js +7 -6
  61. package/auth/signup.d.ts +1 -1
  62. package/auth/signup.js +13 -4
  63. package/auth/sms.d.ts +1 -4
  64. package/auth/sms.js +7 -6
  65. package/auth/socialLogin.d.ts +1 -1
  66. package/auth/socialLogin.js +10 -4
  67. package/auth/sso.d.ts +1 -1
  68. package/auth/sso.js +10 -4
  69. package/auth/{stepUp/stepUp.d.ts → stepUp.d.ts} +0 -2
  70. package/auth/{stepUp/stepUp.js → stepUp.js} +9 -6
  71. package/auth/team.d.ts +9 -1
  72. package/auth/team.js +22 -4
  73. package/auth/tenants.d.ts +1 -3
  74. package/auth/tenants.js +8 -6
  75. package/common/CustomComponentHolder.js +3 -1
  76. package/common/index.js +3 -3
  77. package/connectivity/hooks.d.ts +2 -5
  78. package/connectivity/hooks.js +6 -9
  79. package/index.d.ts +2 -2
  80. package/index.js +3 -3
  81. package/node/FronteggProvider/FronteggProvider.js +140 -0
  82. package/node/FronteggProvider/index.js +9 -134
  83. package/node/FronteggStoreContext/FronteggStoreContext.js +26 -0
  84. package/node/FronteggStoreContext/index.js +11 -35
  85. package/node/audits/auditLogs.js +8 -6
  86. package/node/audits/auditsMetadata.js +8 -6
  87. package/node/audits/hooks.js +7 -34
  88. package/node/auth/acceptInvitation.js +7 -5
  89. package/node/auth/activateAccount.js +7 -4
  90. package/node/auth/allAccounts.js +27 -0
  91. package/node/auth/apiTokens.js +8 -6
  92. package/node/auth/customLogin.js +11 -12
  93. package/node/auth/entitlements.js +24 -20
  94. package/node/auth/forgotPassword.js +8 -6
  95. package/node/auth/groups.js +12 -12
  96. package/node/auth/hooks.js +27 -61
  97. package/node/auth/impersonate.js +7 -6
  98. package/node/auth/index.js +84 -120
  99. package/node/auth/login.js +10 -4
  100. package/node/auth/mfa.js +10 -4
  101. package/node/auth/passkeys.js +7 -6
  102. package/node/auth/profile.js +10 -9
  103. package/node/auth/provisioning.js +7 -6
  104. package/node/auth/resetPhoneNumber.js +7 -6
  105. package/node/auth/roles.js +7 -6
  106. package/node/auth/security/index.js +49 -0
  107. package/node/auth/security/restrictions.js +10 -10
  108. package/node/auth/security/securityCenter.js +8 -6
  109. package/node/auth/security/securityPolicy.js +16 -30
  110. package/node/auth/security/sessionsPolicy.js +8 -6
  111. package/node/auth/sessions.js +7 -6
  112. package/node/auth/signup.js +10 -4
  113. package/node/auth/sms.js +7 -6
  114. package/node/auth/socialLogin.js +7 -4
  115. package/node/auth/sso.js +7 -4
  116. package/node/auth/{stepUp/stepUp.js → stepUp.js} +10 -7
  117. package/node/auth/team.js +25 -4
  118. package/node/auth/tenants.js +8 -6
  119. package/node/common/CustomComponentHolder.js +3 -1
  120. package/node/common/index.js +2 -2
  121. package/node/connectivity/hooks.js +5 -8
  122. package/node/index.js +16 -16
  123. package/node/subscriptions/hooks.js +84 -51
  124. package/node/vendor/hooks.js +5 -6
  125. package/package.json +3 -3
  126. package/subscriptions/hooks.d.ts +32 -10
  127. package/subscriptions/hooks.js +81 -49
  128. package/vendor/hooks.d.ts +0 -1
  129. package/vendor/hooks.js +9 -7
  130. package/auth/MSP/allAccounts.js +0 -15
  131. package/auth/stepUp/index.d.ts +0 -2
  132. package/auth/stepUp/index.js +0 -2
  133. package/auth/stepUp/interfaces.d.ts +0 -2
  134. package/auth/stepUp/interfaces.js +0 -1
  135. package/node/auth/MSP/allAccounts.js +0 -24
  136. package/node/auth/stepUp/index.js +0 -27
  137. package/node/auth/stepUp/interfaces.js +0 -5
  138. package/node/tests/hooks.tsc-test.js +0 -318
  139. package/tests/hooks.tsc-test.js +0 -317
@@ -4,25 +4,29 @@ 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");
8
7
  var _restApi = require("@frontegg/rest-api");
9
8
  var _hooks = require("./hooks");
10
9
  var _react = require("react");
11
10
  var _common = require("../common");
12
11
  var _flags = require("../flags");
12
+ var _FronteggStoreContext = require("../FronteggStoreContext");
13
+ var _react2 = require("valtio/react");
14
+ var _reduxStore = require("@frontegg/redux-store");
13
15
  /**
14
16
  * @returns entitlemenets state as stored in the user
15
17
  */
16
- const useEntitlementsState = () => (0, _hooks.useAuth)(({
17
- user
18
- }) => user == null ? void 0 : user.entitlements);
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
+ };
19
23
 
20
24
  /**
21
25
  * @returns user state
22
26
  */
23
- const useUserState = () => (0, _hooks.useAuth)(({
24
- user
25
- }) => user);
27
+ const useUserState = () => {
28
+ return (0, _hooks.useAuthUserOrNull)() || undefined;
29
+ };
26
30
 
27
31
  /**
28
32
  * @param customAttributes user attributes
@@ -47,10 +51,10 @@ const useEntitlementsQueryData = customAttributes => {
47
51
  };
48
52
 
49
53
  /**
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
- */
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
+ */
54
58
  const useFeatureEntitlements = (key, customAttributes) => {
55
59
  const {
56
60
  entitlements,
@@ -61,10 +65,10 @@ const useFeatureEntitlements = (key, customAttributes) => {
61
65
  };
62
66
 
63
67
  /**
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
- */
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
+ */
68
72
  exports.useFeatureEntitlements = useFeatureEntitlements;
69
73
  const usePermissionEntitlements = (key, customAttributes) => {
70
74
  const {
@@ -76,10 +80,10 @@ const usePermissionEntitlements = (key, customAttributes) => {
76
80
  };
77
81
 
78
82
  /**
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
- */
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
+ */
83
87
  exports.usePermissionEntitlements = usePermissionEntitlements;
84
88
  const useEntitlements = (options, customAttributes) => {
85
89
  const {
@@ -116,7 +120,7 @@ const useEntitlementsActions = () => {
116
120
 
117
121
  /**
118
122
  @returns if the option to use entitlements is enabled
119
- */
123
+ */
120
124
  exports.useEntitlementsActions = useEntitlementsActions;
121
125
  const useEntitlementsOptions = () => {
122
126
  var _entitlementsOptions$;
@@ -5,11 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useForgotPasswordActions = void 0;
7
7
  exports.useForgotPasswordState = useForgotPasswordState;
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');
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);
13
13
  }
14
- const useForgotPasswordActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.forgotPasswordActions, _reduxStore.forgotPasswordReducers);
14
+ const useForgotPasswordActions = () => {
15
+ return (0, _FronteggStoreContext.useStore)().stateActions.auth.forgotPasswordActions;
16
+ };
15
17
  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 _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');
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);
14
13
  }
15
- const useGroupsActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.groupsActions, _reduxStore.groupsReducers);
16
-
17
- //dialogs
14
+ const useGroupsActions = () => {
15
+ return (0, _FronteggStoreContext.useStore)().stateActions.auth.groupsActions;
16
+ };
18
17
  exports.useGroupsActions = useGroupsActions;
19
- const defaultDialogsMapper = state => state;
20
- function useGroupsDialogsState(stateMapper = defaultDialogsMapper) {
21
- return (0, _hooks.stateHookGenerator)(stateMapper, 'groupsDialogsState');
18
+ function useGroupsDialogsState() {
19
+ return (0, _react.useSnapshot)((0, _FronteggStoreContext.useStore)().store.auth.groupsDialogsState);
22
20
  }
23
- const useGroupsDialogsActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.groupsDialogsActions, _reduxStore.groupsDialogsReducers);
21
+ const useGroupsDialogsActions = () => {
22
+ return (0, _FronteggStoreContext.useStore)().stateActions.auth.groupsDialogsActions;
23
+ };
24
24
  exports.useGroupsDialogsActions = useGroupsDialogsActions;
@@ -4,16 +4,13 @@ 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;
8
7
  exports.useAuth = useAuth;
9
8
  exports.useOnRedirectTo = exports.useLoginWithRedirectV2 = exports.useLoginWithRedirect = exports.useIsAuthenticated = exports.useAuthUserOrNull = exports.useAuthUser = exports.useAuthRoutes = exports.useAuthActions = void 0;
10
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
10
  var _react = require("react");
12
- var _reduxStore = require("@frontegg/redux-store");
13
- var _reactRedux = require("react-redux");
14
- var _FronteggStoreContext = require("../FronteggStoreContext");
15
11
  var _restApi = require("@frontegg/rest-api");
16
- var _common = require("../common");
12
+ var _FronteggStoreContext = require("../FronteggStoreContext");
13
+ var _react2 = require("valtio/react");
17
14
  const defaultMapper = {
18
15
  state: state => state,
19
16
  actions: actions => actions
@@ -34,7 +31,9 @@ const defaultMapper = {
34
31
  */
35
32
 
36
33
  function useAuth(stateMapper = defaultMapper.state) {
37
- return (0, _FronteggStoreContext.useSelector)(state => stateMapper(state[_reduxStore.authStoreName]), _reactRedux.shallowEqual);
34
+ const state = (0, _FronteggStoreContext.useStore)().store.auth;
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
+ return stateMapper((0, _react2.useSnapshot)(state));
38
37
  }
39
38
 
40
39
  /**
@@ -64,24 +63,28 @@ function useAuth(stateMapper = defaultMapper.state) {
64
63
  * 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`.
65
64
  */
66
65
  const useLoginWithRedirect = () => {
67
- const dispatch = (0, _FronteggStoreContext.useDispatch)();
68
- return (0, _react.useMemo)(() => (0, _reduxStore.bindActionCreators)(_reduxStore.authActions.requestHostedLoginAuthorize, dispatch), [_reduxStore.authActions.requestHostedLoginAuthorize]);
66
+ const {
67
+ actions
68
+ } = (0, _react.useContext)(_FronteggStoreContext.FronteggStoreContext);
69
+ return actions.requestHostedLoginAuthorize;
69
70
  };
70
71
  exports.useLoginWithRedirect = useLoginWithRedirect;
71
72
  const useLoginWithRedirectV2 = () => {
72
- const dispatch = (0, _FronteggStoreContext.useDispatch)();
73
- return (0, _react.useMemo)(() => (0, _reduxStore.bindActionCreators)(_reduxStore.authActions.requestHostedLoginAuthorizeV2, dispatch), [_reduxStore.authActions.requestHostedLoginAuthorizeV2]);
73
+ const {
74
+ actions
75
+ } = (0, _react.useContext)(_FronteggStoreContext.FronteggStoreContext);
76
+ return actions.requestHostedLoginAuthorizeV2;
74
77
  };
75
78
  exports.useLoginWithRedirectV2 = useLoginWithRedirectV2;
76
79
  const useAuthActions = () => {
77
- const dispatch = (0, _FronteggStoreContext.useDispatch)();
78
- return (0, _react.useMemo)(() => (0, _reduxStore.bindActionCreators)(_reduxStore.authActions, dispatch), [_reduxStore.authActions]);
80
+ return (0, _FronteggStoreContext.useStore)().actions;
79
81
  };
80
82
  exports.useAuthActions = useAuthActions;
81
83
  const useOnRedirectTo = () => {
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;
84
+ const {
85
+ onRedirectTo
86
+ } = useAuth();
87
+ return onRedirectTo != null ? onRedirectTo : _restApi.ContextHolder.onRedirectTo;
85
88
  };
86
89
  exports.useOnRedirectTo = useOnRedirectTo;
87
90
  const useAuthRoutes = () => useAuth(state => (0, _extends2.default)({}, state.routes));
@@ -97,11 +100,14 @@ const useAuthRoutes = () => useAuth(state => (0, _extends2.default)({}, state.ro
97
100
  * use this frontegg hook function to get if user is "Authenticated"
98
101
  */
99
102
  exports.useAuthRoutes = useAuthRoutes;
100
- const useIsAuthenticated = () => (0, _FronteggStoreContext.useSelector)(({
101
- [_reduxStore.authStoreName]: {
103
+ const useIsAuthenticated = () => {
104
+ const {
102
105
  isAuthenticated
103
- }
104
- }) => isAuthenticated, _reactRedux.shallowEqual);
106
+ } = useAuth(state => ({
107
+ isAuthenticated: state.isAuthenticated
108
+ }));
109
+ return isAuthenticated;
110
+ };
105
111
 
106
112
  /**
107
113
  * ```jsx
@@ -147,47 +153,7 @@ exports.useAuthUser = useAuthUser;
147
153
  const useAuthUserOrNull = () => {
148
154
  const {
149
155
  user
150
- } = (0, _FronteggStoreContext.useSelector)(({
151
- [_reduxStore.authStoreName]: {
152
- user
153
- }
154
- }) => ({
155
- user
156
- }), _reactRedux.shallowEqual);
156
+ } = useAuth();
157
157
  return user || null;
158
158
  };
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;
159
+ exports.useAuthUserOrNull = useAuthUserOrNull;
@@ -5,11 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useImpersonateActions = void 0;
7
7
  exports.useImpersonateState = useImpersonateState;
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');
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);
13
12
  }
14
- const useImpersonateActions = () => (0, _hooks.reducerActionsGenerator)(_reduxStore.impersonateActions, _reduxStore.impersonateReducers);
13
+ const useImpersonateActions = () => {
14
+ return (0, _FronteggStoreContext.useStore)().stateActions.auth.impersonateActions;
15
+ };
15
16
  exports.useImpersonateActions = useImpersonateActions;