@frontegg/react-hooks 7.0.0-alpha.1 → 7.0.0-alpha.3
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/FronteggProvider/FronteggProvider.d.ts +12 -0
- package/FronteggProvider/FronteggProvider.js +140 -0
- package/FronteggProvider/index.d.ts +1 -12
- package/FronteggProvider/index.js +1 -133
- package/FronteggStoreContext/FronteggStoreContext.d.ts +9 -0
- package/FronteggStoreContext/FronteggStoreContext.js +16 -0
- package/FronteggStoreContext/index.d.ts +1 -13
- package/FronteggStoreContext/index.js +1 -14
- package/audits/auditLogs.d.ts +2 -4
- package/audits/auditLogs.js +8 -6
- package/audits/auditsMetadata.d.ts +2 -4
- package/audits/auditsMetadata.js +8 -6
- package/audits/hooks.d.ts +0 -8
- package/audits/hooks.js +6 -30
- package/auth/acceptInvitation.js +10 -5
- package/auth/activateAccount.js +10 -4
- package/auth/{MSP/allAccounts.d.ts → allAccounts.d.ts} +2 -4
- package/auth/allAccounts.js +20 -0
- package/auth/apiTokens.d.ts +0 -2
- package/auth/apiTokens.js +8 -6
- package/auth/applications.d.ts +3 -0
- package/auth/applications.js +9 -0
- package/auth/customLogin.d.ts +2 -5
- package/auth/customLogin.js +10 -11
- package/auth/entitlements.d.ts +32 -13
- package/auth/entitlements.js +103 -21
- package/auth/forgotPassword.d.ts +0 -2
- package/auth/forgotPassword.js +8 -6
- package/auth/groups.d.ts +0 -4
- package/auth/groups.js +12 -13
- package/auth/hooks.d.ts +44 -12
- package/auth/hooks.js +73 -62
- package/auth/impersonate.d.ts +0 -2
- package/auth/impersonate.js +7 -6
- package/auth/index.d.ts +16 -16
- package/auth/index.js +16 -16
- package/auth/login.d.ts +1 -3
- package/auth/login.js +7 -6
- package/auth/mfa.d.ts +1 -1
- package/auth/mfa.js +13 -4
- package/auth/passkeys.d.ts +1 -4
- package/auth/passkeys.js +7 -6
- package/auth/profile.d.ts +2 -4
- package/auth/profile.js +9 -8
- package/auth/provisioning.d.ts +1 -3
- package/auth/provisioning.js +7 -6
- package/auth/resetPhoneNumber.d.ts +1 -3
- package/auth/resetPhoneNumber.js +7 -6
- package/auth/roles.d.ts +1 -3
- package/auth/roles.js +7 -6
- package/auth/security/index.d.ts +4 -0
- package/auth/security/index.js +4 -0
- package/auth/security/restrictions.d.ts +0 -2
- package/auth/security/restrictions.js +10 -10
- package/auth/security/securityCenter.d.ts +1 -4
- package/auth/security/securityCenter.js +8 -6
- package/auth/security/securityPolicy.d.ts +5 -11
- package/auth/security/securityPolicy.js +19 -30
- package/auth/security/sessionsPolicy.d.ts +1 -3
- package/auth/security/sessionsPolicy.js +8 -6
- package/auth/sessions.d.ts +1 -3
- package/auth/sessions.js +7 -6
- package/auth/signup.d.ts +1 -1
- package/auth/signup.js +13 -4
- package/auth/sms.d.ts +3 -0
- package/auth/sms.js +8 -0
- package/auth/socialLogin.d.ts +1 -1
- package/auth/socialLogin.js +10 -4
- package/auth/sso.d.ts +1 -1
- package/auth/sso.js +10 -4
- package/auth/stepUp.d.ts +16 -0
- package/auth/stepUp.js +51 -0
- package/auth/team.d.ts +9 -1
- package/auth/team.js +22 -4
- package/auth/tenants.d.ts +1 -3
- package/auth/tenants.js +8 -6
- package/common/CustomComponentHolder.js +3 -1
- package/common/index.d.ts +1 -0
- package/common/index.js +3 -3
- package/connectivity/hooks.d.ts +2 -5
- package/connectivity/hooks.js +6 -9
- package/index.d.ts +2 -2
- package/index.js +3 -3
- package/node/FronteggProvider/FronteggProvider.js +148 -0
- package/node/FronteggProvider/index.js +9 -134
- package/node/FronteggStoreContext/FronteggStoreContext.js +28 -0
- package/node/FronteggStoreContext/index.js +11 -35
- package/node/audits/auditLogs.js +8 -6
- package/node/audits/auditsMetadata.js +8 -6
- package/node/audits/hooks.js +7 -34
- package/node/auth/acceptInvitation.js +7 -5
- package/node/auth/activateAccount.js +7 -4
- package/node/auth/allAccounts.js +27 -0
- package/node/auth/apiTokens.js +8 -6
- package/node/auth/applications.js +17 -0
- package/node/auth/customLogin.js +11 -12
- package/node/auth/entitlements.js +106 -22
- package/node/auth/forgotPassword.js +8 -6
- package/node/auth/groups.js +12 -12
- package/node/auth/hooks.js +77 -67
- package/node/auth/impersonate.js +7 -6
- package/node/auth/index.js +107 -93
- package/node/auth/login.js +7 -6
- package/node/auth/mfa.js +10 -4
- package/node/auth/passkeys.js +7 -6
- package/node/auth/profile.js +10 -9
- package/node/auth/provisioning.js +7 -6
- package/node/auth/resetPhoneNumber.js +7 -6
- package/node/auth/roles.js +7 -6
- package/node/auth/security/index.js +49 -0
- package/node/auth/security/restrictions.js +10 -10
- package/node/auth/security/securityCenter.js +8 -6
- package/node/auth/security/securityPolicy.js +16 -30
- package/node/auth/security/sessionsPolicy.js +8 -6
- package/node/auth/sessions.js +7 -6
- package/node/auth/signup.js +10 -4
- package/node/auth/sms.js +16 -0
- package/node/auth/socialLogin.js +7 -4
- package/node/auth/sso.js +7 -4
- package/node/auth/stepUp.js +62 -0
- package/node/auth/team.js +25 -4
- package/node/auth/tenants.js +8 -6
- package/node/common/CustomComponentHolder.js +3 -1
- package/node/common/index.js +2 -2
- package/node/connectivity/hooks.js +5 -8
- package/node/index.js +16 -16
- package/node/subscriptions/hooks.js +84 -51
- package/node/tests/hooks.tsc-test.js +339 -0
- package/node/useSnapshot/index.js +137 -0
- package/node/vendor/hooks.js +5 -6
- package/package.json +3 -3
- package/subscriptions/hooks.d.ts +32 -10
- package/subscriptions/hooks.js +81 -49
- package/tests/hooks.tsc-test.js +338 -0
- package/useSnapshot/index.d.ts +78 -0
- package/useSnapshot/index.js +128 -0
- package/useSnapshot/package.json +6 -0
- package/vendor/hooks.d.ts +0 -1
- package/vendor/hooks.js +9 -7
- package/auth/MSP/allAccounts.js +0 -15
- package/node/auth/MSP/allAccounts.js +0 -24
|
@@ -5,12 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useAcceptInvitationActions = void 0;
|
|
7
7
|
exports.useAcceptInvitationState = useAcceptInvitationState;
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
|
+
var _FronteggStoreContext = require("../FronteggStoreContext");
|
|
9
|
+
var _useSnapshot = require("../useSnapshot");
|
|
11
10
|
const defaultMapper = state => state;
|
|
12
11
|
function useAcceptInvitationState(stateMapper = defaultMapper) {
|
|
13
|
-
|
|
12
|
+
const state = (0, _FronteggStoreContext.useStore)().store.auth.acceptInvitationState;
|
|
13
|
+
return stateMapper((0, _useSnapshot.useSnapshot)(state));
|
|
14
14
|
}
|
|
15
|
-
const useAcceptInvitationActions = () =>
|
|
15
|
+
const useAcceptInvitationActions = () => {
|
|
16
|
+
return (0, _FronteggStoreContext.useStore)().stateActions.auth.acceptInvitationActions;
|
|
17
|
+
};
|
|
16
18
|
exports.useAcceptInvitationActions = useAcceptInvitationActions;
|
|
@@ -5,11 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useActivateAccountActions = void 0;
|
|
7
7
|
exports.useActivateAccountState = useActivateAccountState;
|
|
8
|
-
var
|
|
9
|
-
var
|
|
8
|
+
var _FronteggStoreContext = require("../FronteggStoreContext");
|
|
9
|
+
var _useSnapshot = require("../useSnapshot");
|
|
10
10
|
const defaultMapper = state => state;
|
|
11
11
|
function useActivateAccountState(stateMapper = defaultMapper) {
|
|
12
|
-
|
|
12
|
+
const state = (0, _FronteggStoreContext.useStore)().store.auth.activateAccountState;
|
|
13
|
+
return stateMapper((0, _useSnapshot.useSnapshot)(state));
|
|
13
14
|
}
|
|
14
|
-
const useActivateAccountActions = () =>
|
|
15
|
+
const useActivateAccountActions = () => {
|
|
16
|
+
return (0, _FronteggStoreContext.useStore)().stateActions.auth.activateAccountActions;
|
|
17
|
+
};
|
|
15
18
|
exports.useActivateAccountActions = useActivateAccountActions;
|
|
@@ -0,0 +1,27 @@
|
|
|
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 _FronteggStoreContext = require("../FronteggStoreContext");
|
|
10
|
+
var _useSnapshot = require("../useSnapshot");
|
|
11
|
+
const defaultMapper = state => state;
|
|
12
|
+
function useAllAccountsState(stateMapper = defaultMapper) {
|
|
13
|
+
const state = (0, _FronteggStoreContext.useStore)().store.auth.allAccountsState;
|
|
14
|
+
return stateMapper((0, _useSnapshot.useSnapshot)(state));
|
|
15
|
+
}
|
|
16
|
+
const useAllAccountsActions = () => {
|
|
17
|
+
return (0, _FronteggStoreContext.useStore)().stateActions.auth.allAccountsActions;
|
|
18
|
+
};
|
|
19
|
+
exports.useAllAccountsActions = useAllAccountsActions;
|
|
20
|
+
function useAllAccountsDialogsState() {
|
|
21
|
+
const state = (0, _FronteggStoreContext.useStore)().store.auth.allAccountsDialogsState;
|
|
22
|
+
return (0, _useSnapshot.useSnapshot)(state);
|
|
23
|
+
}
|
|
24
|
+
const useAllAccountsDialogsActions = () => {
|
|
25
|
+
return (0, _FronteggStoreContext.useStore)().stateActions.auth.allAccountsDialogActions;
|
|
26
|
+
};
|
|
27
|
+
exports.useAllAccountsDialogsActions = useAllAccountsDialogsActions;
|
package/node/auth/apiTokens.js
CHANGED
|
@@ -5,11 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useApiTokensActions = void 0;
|
|
7
7
|
exports.useApiTokensState = useApiTokensState;
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return (0,
|
|
8
|
+
var _FronteggStoreContext = require("../FronteggStoreContext");
|
|
9
|
+
var _useSnapshot = require("../useSnapshot");
|
|
10
|
+
function useApiTokensState() {
|
|
11
|
+
const state = (0, _FronteggStoreContext.useStore)().store.auth.apiTokensState;
|
|
12
|
+
return (0, _useSnapshot.useSnapshot)(state);
|
|
13
13
|
}
|
|
14
|
-
const useApiTokensActions = () =>
|
|
14
|
+
const useApiTokensActions = () => {
|
|
15
|
+
return (0, _FronteggStoreContext.useStore)().stateActions.auth.apiTokensActions;
|
|
16
|
+
};
|
|
15
17
|
exports.useApiTokensActions = useApiTokensActions;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useApplicationsActions = void 0;
|
|
7
|
+
exports.useApplicationsState = useApplicationsState;
|
|
8
|
+
var _FronteggStoreContext = require("../FronteggStoreContext");
|
|
9
|
+
var _useSnapshot = require("../useSnapshot");
|
|
10
|
+
function useApplicationsState() {
|
|
11
|
+
const state = (0, _FronteggStoreContext.useStore)().store.auth.applicationsState;
|
|
12
|
+
return (0, _useSnapshot.useSnapshot)(state);
|
|
13
|
+
}
|
|
14
|
+
const useApplicationsActions = () => {
|
|
15
|
+
return (0, _FronteggStoreContext.useStore)().stateActions.auth.applicationsActions;
|
|
16
|
+
};
|
|
17
|
+
exports.useApplicationsActions = useApplicationsActions;
|
package/node/auth/customLogin.js
CHANGED
|
@@ -7,22 +7,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.useCustomLoginActions = void 0;
|
|
8
8
|
exports.useCustomLoginState = useCustomLoginState;
|
|
9
9
|
exports.useCustomLoginTheme = void 0;
|
|
10
|
-
var _reduxStore = require("@frontegg/redux-store");
|
|
11
|
-
var _hooks = require("./hooks");
|
|
12
|
-
var _getValue = _interopRequireDefault(require("get-value"));
|
|
13
10
|
var _react = require("react");
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
var _getValue = _interopRequireDefault(require("get-value"));
|
|
12
|
+
var _FronteggStoreContext = require("../FronteggStoreContext");
|
|
13
|
+
var _useSnapshot = require("../useSnapshot");
|
|
14
|
+
function useCustomLoginState() {
|
|
15
|
+
const state = (0, _FronteggStoreContext.useStore)().store.auth.customLoginState;
|
|
16
|
+
return (0, _useSnapshot.useSnapshot)(state);
|
|
17
17
|
}
|
|
18
|
-
const useCustomLoginActions = () =>
|
|
19
|
-
|
|
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;
|
|
18
|
+
const useCustomLoginActions = () => {
|
|
19
|
+
return (0, _FronteggStoreContext.useStore)().stateActions.auth.customLoginActions;
|
|
23
20
|
};
|
|
21
|
+
exports.useCustomLoginActions = useCustomLoginActions;
|
|
24
22
|
const useCustomLoginTheme = () => {
|
|
25
|
-
|
|
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;
|
|
26
25
|
const getCustomLoginThemeValue = (0, _react.useCallback)(path => {
|
|
27
26
|
return path && customLoginTheme ? (0, _getValue.default)(customLoginTheme, path) : customLoginTheme;
|
|
28
27
|
}, [customLoginTheme]);
|
|
@@ -3,42 +3,126 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.usePermissionEntitlements = exports.useFeatureEntitlements = exports.useEntitlements = void 0;
|
|
7
|
-
var _reduxStore = require("@frontegg/redux-store");
|
|
6
|
+
exports.usePermissionEntitlements = exports.useFeatureEntitlements = exports.useEntitlementsOptions = exports.useEntitlementsActions = exports.useEntitlements = void 0;
|
|
8
7
|
var _hooks = require("./hooks");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _common = require("../common");
|
|
10
|
+
var _flags = require("../flags");
|
|
11
|
+
var _FronteggStoreContext = require("../FronteggStoreContext");
|
|
12
|
+
var _useSnapshot = require("../useSnapshot");
|
|
13
|
+
var _reduxStore = require("@frontegg/redux-store");
|
|
9
14
|
/**
|
|
10
15
|
* @returns entitlemenets state as stored in the user
|
|
11
16
|
*/
|
|
12
|
-
const useEntitlementsState = () =>
|
|
13
|
-
user
|
|
14
|
-
|
|
17
|
+
const useEntitlementsState = () => {
|
|
18
|
+
var _useSnapshot$user$ent, _useSnapshot$user;
|
|
19
|
+
const state = (0, _FronteggStoreContext.useStore)().store.auth;
|
|
20
|
+
return (_useSnapshot$user$ent = (_useSnapshot$user = (0, _useSnapshot.useSnapshot)(state).user) == null ? void 0 : _useSnapshot$user.entitlements) != null ? _useSnapshot$user$ent : {};
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @returns user state
|
|
25
|
+
*/
|
|
26
|
+
const useUserState = () => {
|
|
27
|
+
return (0, _hooks.useAuthUserOrNull)() || undefined;
|
|
28
|
+
};
|
|
15
29
|
|
|
16
30
|
/**
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
*/
|
|
20
|
-
const
|
|
31
|
+
* @param customAttributes user attributes
|
|
32
|
+
* @returns is entitled query data including: entitlements state and final attributes (consumer and frontegg)
|
|
33
|
+
*/
|
|
34
|
+
const useEntitlementsQueryData = customAttributes => {
|
|
35
|
+
const user = useUserState();
|
|
21
36
|
const entitlements = useEntitlementsState();
|
|
22
|
-
|
|
37
|
+
const attributes = {
|
|
38
|
+
custom: customAttributes,
|
|
39
|
+
jwt: user
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
entitlements,
|
|
43
|
+
attributes
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
@param key feature key
|
|
49
|
+
@param customAttributes user attributes
|
|
50
|
+
@returns if the user is entitled to the given feature and attributes. Attaching the justification if not
|
|
51
|
+
*/
|
|
52
|
+
const useFeatureEntitlements = (key, customAttributes) => {
|
|
53
|
+
const {
|
|
54
|
+
entitlements,
|
|
55
|
+
attributes
|
|
56
|
+
} = useEntitlementsQueryData(customAttributes);
|
|
57
|
+
return (0, _reduxStore.getFeatureEntitlements)(entitlements, key, attributes);
|
|
23
58
|
};
|
|
24
59
|
|
|
25
60
|
/**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
61
|
+
@param key permission key
|
|
62
|
+
@param customAttributes user attributes
|
|
63
|
+
@returns if the user is entitled to the given permission and attributes. Attaching the justification if not
|
|
64
|
+
*/
|
|
29
65
|
exports.useFeatureEntitlements = useFeatureEntitlements;
|
|
30
|
-
const usePermissionEntitlements = key => {
|
|
31
|
-
const
|
|
32
|
-
|
|
66
|
+
const usePermissionEntitlements = (key, customAttributes) => {
|
|
67
|
+
const {
|
|
68
|
+
entitlements,
|
|
69
|
+
attributes
|
|
70
|
+
} = useEntitlementsQueryData(customAttributes);
|
|
71
|
+
return (0, _reduxStore.getPermissionEntitlements)(entitlements, key, attributes);
|
|
33
72
|
};
|
|
34
73
|
|
|
35
74
|
/**
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
75
|
+
@param entitledToOptions including permission or feature key
|
|
76
|
+
@param customAttributes user attributes
|
|
77
|
+
@returns if the user is entitled to the given feature or permission and attributes (check only one). Attaching the justification if not
|
|
78
|
+
*/
|
|
39
79
|
exports.usePermissionEntitlements = usePermissionEntitlements;
|
|
40
|
-
const useEntitlements = options => {
|
|
80
|
+
const useEntitlements = (options, customAttributes) => {
|
|
81
|
+
const {
|
|
82
|
+
entitlements,
|
|
83
|
+
attributes
|
|
84
|
+
} = useEntitlementsQueryData(customAttributes);
|
|
85
|
+
return (0, _reduxStore.getEntitlements)(entitlements, options, attributes);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
@param entitledToOptions including permission or feature key
|
|
90
|
+
@returns an action your can use to detect if the user is entitled to the given feature or permission (check only one). Attaching the justification if not
|
|
91
|
+
*/
|
|
92
|
+
exports.useEntitlements = useEntitlements;
|
|
93
|
+
const useEntitlementsActions = () => {
|
|
94
|
+
// this code is duplicated because React is yelling when using useEntitlementsQueryData inside the isEntitledTo function because it's not a hook
|
|
95
|
+
const user = useUserState();
|
|
41
96
|
const entitlements = useEntitlementsState();
|
|
42
|
-
return (0,
|
|
97
|
+
return (0, _react.useMemo)(() => ({
|
|
98
|
+
isEntitledTo: (options, customAttributes) => {
|
|
99
|
+
const attributes = {
|
|
100
|
+
custom: customAttributes,
|
|
101
|
+
jwt: user
|
|
102
|
+
};
|
|
103
|
+
return (0, _reduxStore.getEntitlements)(entitlements, options, attributes);
|
|
104
|
+
}
|
|
105
|
+
}), [user, entitlements]);
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
@returns if the option to use entitlements is enabled
|
|
110
|
+
*/
|
|
111
|
+
exports.useEntitlementsActions = useEntitlementsActions;
|
|
112
|
+
const useEntitlementsOptions = () => {
|
|
113
|
+
var _entitlementsOptions$;
|
|
114
|
+
const {
|
|
115
|
+
entitlementsOptions
|
|
116
|
+
} = (0, _common.useShadowDom)();
|
|
117
|
+
const isEntitlementsEnabled = (_entitlementsOptions$ = entitlementsOptions == null ? void 0 : entitlementsOptions.enabled) != null ? _entitlementsOptions$ : false;
|
|
118
|
+
const {
|
|
119
|
+
isEntitledTo
|
|
120
|
+
} = useEntitlementsActions();
|
|
121
|
+
const [verifyIsEntitledFF] = (0, _flags.useFeatureFlags)(['admin-portal-use-is-entitled']);
|
|
122
|
+
return {
|
|
123
|
+
isEntitlementsEnabled,
|
|
124
|
+
isEntitledTo,
|
|
125
|
+
verifyIsEntitledFF
|
|
126
|
+
};
|
|
43
127
|
};
|
|
44
|
-
exports.
|
|
128
|
+
exports.useEntitlementsOptions = useEntitlementsOptions;
|
|
@@ -5,11 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useForgotPasswordActions = void 0;
|
|
7
7
|
exports.useForgotPasswordState = useForgotPasswordState;
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return (0,
|
|
8
|
+
var _FronteggStoreContext = require("../FronteggStoreContext");
|
|
9
|
+
var _useSnapshot = require("../useSnapshot");
|
|
10
|
+
function useForgotPasswordState() {
|
|
11
|
+
const state = (0, _FronteggStoreContext.useStore)().store.auth.forgotPasswordState;
|
|
12
|
+
return (0, _useSnapshot.useSnapshot)(state);
|
|
13
13
|
}
|
|
14
|
-
const useForgotPasswordActions = () =>
|
|
14
|
+
const useForgotPasswordActions = () => {
|
|
15
|
+
return (0, _FronteggStoreContext.useStore)().stateActions.auth.forgotPasswordActions;
|
|
16
|
+
};
|
|
15
17
|
exports.useForgotPasswordActions = useForgotPasswordActions;
|
package/node/auth/groups.js
CHANGED
|
@@ -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
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return (0, _hooks.stateHookGenerator)(stateMapper, 'groupsState');
|
|
9
|
+
var _FronteggStoreContext = require("../FronteggStoreContext");
|
|
10
|
+
var _useSnapshot = require("../useSnapshot");
|
|
11
|
+
function useGroupsState() {
|
|
12
|
+
return (0, _useSnapshot.useSnapshot)((0, _FronteggStoreContext.useStore)().store.auth.groupsState);
|
|
14
13
|
}
|
|
15
|
-
const useGroupsActions = () =>
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
const useGroupsActions = () => {
|
|
15
|
+
return (0, _FronteggStoreContext.useStore)().stateActions.auth.groupsActions;
|
|
16
|
+
};
|
|
18
17
|
exports.useGroupsActions = useGroupsActions;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return (0, _hooks.stateHookGenerator)(stateMapper, 'groupsDialogsState');
|
|
18
|
+
function useGroupsDialogsState() {
|
|
19
|
+
return (0, _useSnapshot.useSnapshot)((0, _FronteggStoreContext.useStore)().store.auth.groupsDialogsState);
|
|
22
20
|
}
|
|
23
|
-
const useGroupsDialogsActions = () =>
|
|
21
|
+
const useGroupsDialogsActions = () => {
|
|
22
|
+
return (0, _FronteggStoreContext.useStore)().stateActions.auth.groupsDialogsActions;
|
|
23
|
+
};
|
|
24
24
|
exports.useGroupsDialogsActions = useGroupsDialogsActions;
|
package/node/auth/hooks.js
CHANGED
|
@@ -1,25 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
|
-
exports.stateHookGenerator = exports.sliceReducerActionsBy = exports.reducerActionsGenerator = void 0;
|
|
8
6
|
exports.useAuth = useAuth;
|
|
9
|
-
exports.
|
|
10
|
-
|
|
7
|
+
exports.useAuthRoutes = exports.useAuthActions = void 0;
|
|
8
|
+
exports.useAuthState = useAuthState;
|
|
9
|
+
exports.useOnRedirectTo = exports.useLoginWithRedirectV2 = exports.useLoginWithRedirect = exports.useIsAuthenticated = exports.useAuthUserOrNull = exports.useAuthUser = void 0;
|
|
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
|
|
12
|
+
var _FronteggStoreContext = require("../FronteggStoreContext");
|
|
13
|
+
var _useSnapshot = require("../useSnapshot");
|
|
17
14
|
const defaultMapper = {
|
|
18
15
|
state: state => state,
|
|
19
16
|
actions: actions => actions
|
|
20
17
|
};
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Use this `frontegg` hook function to obtain the complete authentication state, if it exists.
|
|
21
|
+
*
|
|
22
|
+
* ```jsx
|
|
23
|
+
* export const MyFunctionComponent = () => {
|
|
24
|
+
* const { isAuthenticated, user } = useAuth();
|
|
25
|
+
*
|
|
26
|
+
* return isAuthenticated ? <div>Hello, User {user.name}</div> : null;
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* You can also utilize other `frontegg` hooks like `useAuthUser` to specifically retrieve the user and redirect to the login page if necessary, `useAuthUserOrNull` to get the user if available, and `useIsAuthenticated` for checking authentication status.
|
|
31
|
+
*/
|
|
32
|
+
|
|
21
33
|
function useAuth(stateMapper = defaultMapper.state) {
|
|
22
|
-
|
|
34
|
+
const state = (0, _FronteggStoreContext.useStore)().store.auth;
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
|
+
return stateMapper((0, _useSnapshot.useSnapshot)(state));
|
|
37
|
+
}
|
|
38
|
+
function useAuthState() {
|
|
39
|
+
const state = (0, _FronteggStoreContext.useStore)().store.auth;
|
|
40
|
+
return (0, _useSnapshot.useSnapshot)(state);
|
|
23
41
|
}
|
|
24
42
|
|
|
25
43
|
/**
|
|
@@ -37,25 +55,43 @@ function useAuth(stateMapper = defaultMapper.state) {
|
|
|
37
55
|
* }
|
|
38
56
|
* ```
|
|
39
57
|
*
|
|
40
|
-
|
|
58
|
+
/**
|
|
59
|
+
* Use this frontegg hook function to redirect the user to the login page when in hosted login mode.
|
|
60
|
+
* If the user is already authenticated, this method will direct the user to the store, and you can retrieve user information using the `useAuthUserOrNull` method.
|
|
61
|
+
*
|
|
62
|
+
* To ensure the user is available on the first page load when authenticated, configure this option in your `FronteggProvider`:
|
|
63
|
+
* `authOptions`:
|
|
64
|
+
* `hostedLoginOptions`:
|
|
65
|
+
* `loadUserOnFirstLoad: true`
|
|
66
|
+
*
|
|
67
|
+
* 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`.
|
|
41
68
|
*/
|
|
42
69
|
const useLoginWithRedirect = () => {
|
|
43
|
-
const
|
|
44
|
-
|
|
70
|
+
const {
|
|
71
|
+
actions
|
|
72
|
+
} = (0, _react.useContext)(_FronteggStoreContext.FronteggStoreContext);
|
|
73
|
+
return actions.requestHostedLoginAuthorize;
|
|
45
74
|
};
|
|
46
75
|
exports.useLoginWithRedirect = useLoginWithRedirect;
|
|
76
|
+
const useLoginWithRedirectV2 = () => {
|
|
77
|
+
const {
|
|
78
|
+
actions
|
|
79
|
+
} = (0, _react.useContext)(_FronteggStoreContext.FronteggStoreContext);
|
|
80
|
+
return actions.requestHostedLoginAuthorizeV2;
|
|
81
|
+
};
|
|
82
|
+
exports.useLoginWithRedirectV2 = useLoginWithRedirectV2;
|
|
47
83
|
const useAuthActions = () => {
|
|
48
|
-
|
|
49
|
-
return (0, _react.useMemo)(() => (0, _reduxStore.bindActionCreators)(_reduxStore.authActions, dispatch), [_reduxStore.authActions]);
|
|
84
|
+
return (0, _FronteggStoreContext.useStore)().actions;
|
|
50
85
|
};
|
|
51
86
|
exports.useAuthActions = useAuthActions;
|
|
52
87
|
const useOnRedirectTo = () => {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
88
|
+
const {
|
|
89
|
+
onRedirectTo
|
|
90
|
+
} = useAuth();
|
|
91
|
+
return onRedirectTo || _restApi.ContextHolder.onRedirectTo;
|
|
56
92
|
};
|
|
57
93
|
exports.useOnRedirectTo = useOnRedirectTo;
|
|
58
|
-
const useAuthRoutes = () =>
|
|
94
|
+
const useAuthRoutes = () => useAuthState().routes;
|
|
59
95
|
|
|
60
96
|
/**
|
|
61
97
|
* ```jsx
|
|
@@ -68,11 +104,12 @@ const useAuthRoutes = () => useAuth(state => (0, _extends2.default)({}, state.ro
|
|
|
68
104
|
* use this frontegg hook function to get if user is "Authenticated"
|
|
69
105
|
*/
|
|
70
106
|
exports.useAuthRoutes = useAuthRoutes;
|
|
71
|
-
const useIsAuthenticated = () =>
|
|
72
|
-
|
|
107
|
+
const useIsAuthenticated = () => {
|
|
108
|
+
const {
|
|
73
109
|
isAuthenticated
|
|
74
|
-
}
|
|
75
|
-
|
|
110
|
+
} = (0, _useSnapshot.useSnapshot)((0, _FronteggStoreContext.useStore)().store.auth);
|
|
111
|
+
return isAuthenticated;
|
|
112
|
+
};
|
|
76
113
|
|
|
77
114
|
/**
|
|
78
115
|
* ```jsx
|
|
@@ -82,8 +119,8 @@ const useIsAuthenticated = () => (0, _FronteggStoreContext.useSelector)(({
|
|
|
82
119
|
* }
|
|
83
120
|
* ```
|
|
84
121
|
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
122
|
+
* Use this `frontegg` hook function to obtain the authenticated user. If the user is not authenticated, this method will immediately redirect the user to the login page. (Primarily intended for embedded mode usage)
|
|
123
|
+
* To prevent this immediate redirection behavior, use the `useAuthUserOrNull` method.
|
|
87
124
|
*/
|
|
88
125
|
exports.useIsAuthenticated = useIsAuthenticated;
|
|
89
126
|
const useAuthUser = () => {
|
|
@@ -92,7 +129,9 @@ const useAuthUser = () => {
|
|
|
92
129
|
customLoginUrl
|
|
93
130
|
} = useAuthRoutes();
|
|
94
131
|
const onRedirectTo = useOnRedirectTo();
|
|
95
|
-
const
|
|
132
|
+
const {
|
|
133
|
+
user
|
|
134
|
+
} = useAuth();
|
|
96
135
|
const isSSR = typeof window === 'undefined';
|
|
97
136
|
const noUser = {};
|
|
98
137
|
if (user == null && !isSSR) {
|
|
@@ -103,51 +142,22 @@ const useAuthUser = () => {
|
|
|
103
142
|
}
|
|
104
143
|
return user || noUser;
|
|
105
144
|
};
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* ```jsx
|
|
148
|
+
* export const MyFunctionComponent = () => {
|
|
149
|
+
* const user = useAuthUserOrNull();
|
|
150
|
+
* return user ? <div>Hello {user.name}!</div> : <div>Hello Guest!</div>
|
|
151
|
+
* }
|
|
152
|
+
* ```
|
|
153
|
+
*
|
|
154
|
+
* Use this `frontegg` hook function to retrieve the authenticated user. If the user is not authenticated, this hook will return null. To redirect the user to the login page in case they are not authenticated, use the `useAuthUser` method.
|
|
155
|
+
*/
|
|
106
156
|
exports.useAuthUser = useAuthUser;
|
|
107
157
|
const useAuthUserOrNull = () => {
|
|
108
158
|
const {
|
|
109
159
|
user
|
|
110
|
-
} = (
|
|
111
|
-
[_reduxStore.authStoreName]: {
|
|
112
|
-
user
|
|
113
|
-
}
|
|
114
|
-
}) => ({
|
|
115
|
-
user
|
|
116
|
-
}), _reactRedux.shallowEqual);
|
|
160
|
+
} = useAuth();
|
|
117
161
|
return user || null;
|
|
118
162
|
};
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* hooks helpers
|
|
122
|
-
*/
|
|
123
|
-
exports.useAuthUserOrNull = useAuthUserOrNull;
|
|
124
|
-
const sliceReducerActionsBy = reducer => {
|
|
125
|
-
const reducerKeys = Object.keys(reducer);
|
|
126
|
-
const reducerActions = reducerKeys.map(key => ({
|
|
127
|
-
[key]: _reduxStore.authActions[key]
|
|
128
|
-
}));
|
|
129
|
-
return reducerActions.reduce((p, n) => (0, _extends2.default)({}, p, n), {});
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
/*
|
|
133
|
-
* enableMapperFalsyReturnValue was added to be backward compatible with all usages
|
|
134
|
-
* the scenario that require enableMapperFalsyReturnValue of true is when the
|
|
135
|
-
* 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)
|
|
136
|
-
* IMO all usages should be like that
|
|
137
|
-
*/
|
|
138
|
-
exports.sliceReducerActionsBy = sliceReducerActionsBy;
|
|
139
|
-
const stateHookGenerator = (stateMapper, subState, enableMapperFalsyReturnValue = false) => {
|
|
140
|
-
return (0, _FronteggStoreContext.useSelector)(state => {
|
|
141
|
-
const mapperValue = stateMapper == null ? void 0 : stateMapper(state[_reduxStore.authStoreName][subState]);
|
|
142
|
-
if (enableMapperFalsyReturnValue && stateMapper) {
|
|
143
|
-
return mapperValue;
|
|
144
|
-
}
|
|
145
|
-
return mapperValue != null ? mapperValue : state[_reduxStore.authStoreName][subState];
|
|
146
|
-
}, _reactRedux.shallowEqual);
|
|
147
|
-
};
|
|
148
|
-
exports.stateHookGenerator = stateHookGenerator;
|
|
149
|
-
const reducerActionsGenerator = (actions, reducers) => {
|
|
150
|
-
const dispatch = (0, _FronteggStoreContext.useDispatch)();
|
|
151
|
-
return (0, _react.useMemo)(() => (0, _reduxStore.bindActionCreators)((0, _extends2.default)({}, actions, sliceReducerActionsBy(reducers)), dispatch), [dispatch]);
|
|
152
|
-
};
|
|
153
|
-
exports.reducerActionsGenerator = reducerActionsGenerator;
|
|
163
|
+
exports.useAuthUserOrNull = useAuthUserOrNull;
|
package/node/auth/impersonate.js
CHANGED
|
@@ -5,11 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useImpersonateActions = void 0;
|
|
7
7
|
exports.useImpersonateState = useImpersonateState;
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return (0, _hooks.stateHookGenerator)(stateMapper, 'impersonateState');
|
|
8
|
+
var _useSnapshot = require("../useSnapshot");
|
|
9
|
+
var _FronteggStoreContext = require("../FronteggStoreContext");
|
|
10
|
+
function useImpersonateState() {
|
|
11
|
+
return (0, _useSnapshot.useSnapshot)((0, _FronteggStoreContext.useStore)().store.auth.impersonateState);
|
|
13
12
|
}
|
|
14
|
-
const useImpersonateActions = () =>
|
|
13
|
+
const useImpersonateActions = () => {
|
|
14
|
+
return (0, _FronteggStoreContext.useStore)().stateActions.auth.impersonateActions;
|
|
15
|
+
};
|
|
15
16
|
exports.useImpersonateActions = useImpersonateActions;
|