@oneblink/apps-react 10.3.1 → 11.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apps/auth-service.d.ts +3 -2
- package/dist/apps/auth-service.js +2 -2
- package/dist/apps/auth-service.js.map +1 -1
- package/dist/apps/index.d.ts +10 -0
- package/dist/apps/index.js +10 -0
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/mfa-service.d.ts +4 -0
- package/dist/apps/mfa-service.js +3 -0
- package/dist/apps/mfa-service.js.map +1 -0
- package/dist/apps/services/AWSCognitoClient.d.ts +39 -4
- package/dist/apps/services/AWSCognitoClient.js +238 -23
- package/dist/apps/services/AWSCognitoClient.js.map +1 -1
- package/dist/apps/services/cognito.d.ts +50 -41
- package/dist/apps/services/cognito.js +85 -48
- package/dist/apps/services/cognito.js.map +1 -1
- package/dist/components/mfa/MfaAuthenticatorAppDialog.d.ts +12 -0
- package/dist/components/mfa/MfaAuthenticatorAppDialog.js +64 -0
- package/dist/components/mfa/MfaAuthenticatorAppDialog.js.map +1 -0
- package/dist/components/mfa/MfaDisableDialog.d.ts +10 -0
- package/dist/components/mfa/MfaDisableDialog.js +31 -0
- package/dist/components/mfa/MfaDisableDialog.js.map +1 -0
- package/dist/components/mfa/MfaErrorSnackbar.d.ts +10 -0
- package/dist/components/mfa/MfaErrorSnackbar.js +17 -0
- package/dist/components/mfa/MfaErrorSnackbar.js.map +1 -0
- package/dist/components/mfa/MfaMethodRow.d.ts +20 -0
- package/dist/components/mfa/MfaMethodRow.js +10 -0
- package/dist/components/mfa/MfaMethodRow.js.map +1 -0
- package/dist/components/mfa/MfaPhoneNumberDialog.d.ts +11 -0
- package/dist/components/mfa/MfaPhoneNumberDialog.js +120 -0
- package/dist/components/mfa/MfaPhoneNumberDialog.js.map +1 -0
- package/dist/components/mfa/MfaRemovePhoneNumberDialog.d.ts +10 -0
- package/dist/components/mfa/MfaRemovePhoneNumberDialog.js +24 -0
- package/dist/components/mfa/MfaRemovePhoneNumberDialog.js.map +1 -0
- package/dist/components/mfa/MfaStatusChip.d.ts +10 -0
- package/dist/components/mfa/MfaStatusChip.js +29 -0
- package/dist/components/mfa/MfaStatusChip.js.map +1 -0
- package/dist/components/mfa/MfaSuccessSnackbar.d.ts +10 -0
- package/dist/components/mfa/MfaSuccessSnackbar.js +17 -0
- package/dist/components/mfa/MfaSuccessSnackbar.js.map +1 -0
- package/dist/components/mfa/MultiFactorAuthentication.d.ts +10 -10
- package/dist/components/mfa/MultiFactorAuthentication.js +46 -40
- package/dist/components/mfa/MultiFactorAuthentication.js.map +1 -1
- package/dist/hooks/useLogin.d.ts +14 -8
- package/dist/hooks/useLogin.js +16 -6
- package/dist/hooks/useLogin.js.map +1 -1
- package/dist/hooks/useMfa.d.ts +100 -31
- package/dist/hooks/useMfa.js +455 -68
- package/dist/hooks/useMfa.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/joinArray.d.ts +1 -0
- package/dist/utils/joinArray.js +7 -0
- package/dist/utils/joinArray.js.map +1 -0
- package/dist/utils/mfa-requirement.d.ts +12 -0
- package/dist/utils/mfa-requirement.js +96 -0
- package/dist/utils/mfa-requirement.js.map +1 -0
- package/package.json +2 -2
- package/dist/components/mfa/MfaDialog.d.ts +0 -9
- package/dist/components/mfa/MfaDialog.js +0 -47
- package/dist/components/mfa/MfaDialog.js.map +0 -1
package/dist/hooks/useMfa.d.ts
CHANGED
|
@@ -1,22 +1,43 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { mfaService } from '../apps';
|
|
3
|
+
import { MiscTypes } from '@oneblink/types';
|
|
3
4
|
type MfaState = {
|
|
4
5
|
isExternalIdentityProviderUser: boolean;
|
|
5
6
|
isLoading: boolean;
|
|
6
7
|
isMfaEnabled: boolean;
|
|
8
|
+
mfaSettings: mfaService.MfaSettings;
|
|
9
|
+
isSetupSuccessOpen: boolean;
|
|
7
10
|
loadingError?: Error;
|
|
8
11
|
isSettingUpMfa: boolean;
|
|
9
|
-
|
|
12
|
+
settingUpMfaMethod?: mfaService.MfaMethod;
|
|
13
|
+
isSetupMethodDialogOpen: boolean;
|
|
14
|
+
disablingMfaMethod?: mfaService.MfaMethod;
|
|
15
|
+
isSettingPreferredMfaMethod: boolean;
|
|
10
16
|
setupError?: Error;
|
|
11
|
-
|
|
17
|
+
mfaAuthenticatorAppSetup?: Awaited<ReturnType<typeof mfaService.setupMfaAuthenticatorApp>>;
|
|
18
|
+
isPhoneNumberDialogOpen: boolean;
|
|
19
|
+
phoneVerificationCodeSentAt?: number;
|
|
20
|
+
isRemovePhoneNumberDialogOpen: boolean;
|
|
12
21
|
};
|
|
13
22
|
export declare const MfaContext: React.Context<MfaState & {
|
|
14
|
-
beginMfaSetup: () => void
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
23
|
+
beginMfaSetup: (mfaMethod: mfaService.MfaMethod) => Promise<void>;
|
|
24
|
+
openMfaSetupMethodDialog: () => void;
|
|
25
|
+
closeMfaSetupMethodDialog: () => void;
|
|
26
|
+
beginDisablingMfaMethod: (mfaMethod: mfaService.MfaMethod) => void;
|
|
27
|
+
setPreferredMfaMethod: (mfaMethod: mfaService.MfaMethod) => Promise<void>;
|
|
28
|
+
openPhoneNumberDialog: () => void;
|
|
29
|
+
closePhoneNumberDialog: () => void;
|
|
30
|
+
savePhoneNumber: (phoneNumber: string) => Promise<void>;
|
|
31
|
+
verifyPhoneNumber: (code: string) => Promise<void>;
|
|
32
|
+
resendPhoneNumberVerificationCode: () => Promise<void>;
|
|
33
|
+
beginRemovingPhoneNumber: () => void;
|
|
34
|
+
cancelRemovingPhoneNumber: () => void;
|
|
35
|
+
completeRemovingPhoneNumber: () => Promise<void>;
|
|
36
|
+
hideSetupSuccess: () => void;
|
|
37
|
+
cancelMfaAuthenticatorAppSetup: () => void;
|
|
38
|
+
completeMfaAuthenticatorAppSetup: () => Promise<void>;
|
|
18
39
|
cancelDisablingMfa: () => void;
|
|
19
|
-
completeDisablingMfa: () => void
|
|
40
|
+
completeDisablingMfa: () => Promise<void>;
|
|
20
41
|
clearMfaSetupError: () => void;
|
|
21
42
|
loadMfa: () => void;
|
|
22
43
|
}>;
|
|
@@ -36,23 +57,36 @@ export declare const MfaContext: React.Context<MfaState & {
|
|
|
36
57
|
* useUserMeetsMfaRequirement,
|
|
37
58
|
* } from '@oneblink/apps-react'
|
|
38
59
|
*
|
|
39
|
-
* function Component() {
|
|
40
|
-
* const { isLoading,
|
|
41
|
-
* useUserMeetsMfaRequirement(
|
|
42
|
-
*
|
|
60
|
+
* function Component({ teamMemberMfaRequirement }) {
|
|
61
|
+
* const { mfaSetupRequired, isLoading, loadingError, refreshMfa } =
|
|
62
|
+
* useUserMeetsMfaRequirement(teamMemberMfaRequirement)
|
|
63
|
+
*
|
|
64
|
+
* if (isLoading) {
|
|
65
|
+
* return <Loading />
|
|
66
|
+
* }
|
|
67
|
+
*
|
|
68
|
+
* if (loadingError) {
|
|
69
|
+
* return <Error onRetry={refreshMfa} />
|
|
70
|
+
* }
|
|
71
|
+
*
|
|
72
|
+
* if (mfaSetupRequired) {
|
|
73
|
+
* return <ConfigureMfa />
|
|
74
|
+
* }
|
|
75
|
+
*
|
|
76
|
+
* return <Application />
|
|
43
77
|
* }
|
|
44
78
|
*
|
|
45
|
-
* function App() {
|
|
79
|
+
* function App({ teamMemberMfaRequirement }) {
|
|
46
80
|
* return (
|
|
47
81
|
* <MfaProvider isExternalIdentityProviderUser={false}>
|
|
48
|
-
* <Component />
|
|
82
|
+
* <Component teamMemberMfaRequirement={teamMemberMfaRequirement} />
|
|
49
83
|
* </MfaProvider>
|
|
50
84
|
* )
|
|
51
85
|
* }
|
|
52
86
|
*
|
|
53
87
|
* const root = document.getElementById('root')
|
|
54
88
|
* if (root) {
|
|
55
|
-
* ReactDOM.render(<App />, root)
|
|
89
|
+
* ReactDOM.render(<App teamMemberMfaRequirement={mfaRequirement} />, root)
|
|
56
90
|
* }
|
|
57
91
|
* ```
|
|
58
92
|
*
|
|
@@ -65,35 +99,70 @@ export declare function MfaProvider({ children, isExternalIdentityProviderUser,
|
|
|
65
99
|
isExternalIdentityProviderUser: boolean;
|
|
66
100
|
}): import("react/jsx-runtime").JSX.Element;
|
|
67
101
|
export default function useMfa(): MfaState & {
|
|
68
|
-
beginMfaSetup: () => void
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
102
|
+
beginMfaSetup: (mfaMethod: mfaService.MfaMethod) => Promise<void>;
|
|
103
|
+
openMfaSetupMethodDialog: () => void;
|
|
104
|
+
closeMfaSetupMethodDialog: () => void;
|
|
105
|
+
beginDisablingMfaMethod: (mfaMethod: mfaService.MfaMethod) => void;
|
|
106
|
+
setPreferredMfaMethod: (mfaMethod: mfaService.MfaMethod) => Promise<void>;
|
|
107
|
+
openPhoneNumberDialog: () => void;
|
|
108
|
+
closePhoneNumberDialog: () => void;
|
|
109
|
+
savePhoneNumber: (phoneNumber: string) => Promise<void>;
|
|
110
|
+
verifyPhoneNumber: (code: string) => Promise<void>;
|
|
111
|
+
resendPhoneNumberVerificationCode: () => Promise<void>;
|
|
112
|
+
beginRemovingPhoneNumber: () => void;
|
|
113
|
+
cancelRemovingPhoneNumber: () => void;
|
|
114
|
+
completeRemovingPhoneNumber: () => Promise<void>;
|
|
115
|
+
hideSetupSuccess: () => void;
|
|
116
|
+
cancelMfaAuthenticatorAppSetup: () => void;
|
|
117
|
+
completeMfaAuthenticatorAppSetup: () => Promise<void>;
|
|
72
118
|
cancelDisablingMfa: () => void;
|
|
73
|
-
completeDisablingMfa: () => void
|
|
119
|
+
completeDisablingMfa: () => Promise<void>;
|
|
74
120
|
clearMfaSetupError: () => void;
|
|
75
121
|
loadMfa: () => void;
|
|
76
122
|
};
|
|
77
123
|
/**
|
|
78
|
-
* React hook to
|
|
79
|
-
* application.
|
|
80
|
-
*
|
|
124
|
+
* React hook to determine whether the logged in user must set up MFA before
|
|
125
|
+
* accessing your application. Reads MFA settings from the `<MfaProvider />`
|
|
126
|
+
* context. Will throw an Error if used outside of `<MfaProvider />`.
|
|
127
|
+
*
|
|
128
|
+
* Users signed in via an external identity provider are not required to set up
|
|
129
|
+
* MFA.
|
|
81
130
|
*
|
|
82
|
-
* Example
|
|
131
|
+
* #### Example
|
|
83
132
|
*
|
|
84
133
|
* ```js
|
|
85
|
-
* import { useUserMeetsMfaRequirement } from '@oneblink/apps-react'
|
|
134
|
+
* import { MfaProvider, useUserMeetsMfaRequirement } from '@oneblink/apps-react'
|
|
86
135
|
*
|
|
87
|
-
*
|
|
136
|
+
* function Component({ teamMemberMfaRequirement }) {
|
|
137
|
+
* const { mfaSetupRequired, isLoading, loadingError, refreshMfa } =
|
|
138
|
+
* useUserMeetsMfaRequirement(teamMemberMfaRequirement)
|
|
88
139
|
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
140
|
+
* if (isLoading) {
|
|
141
|
+
* return <Loading />
|
|
142
|
+
* }
|
|
143
|
+
*
|
|
144
|
+
* if (loadingError) {
|
|
145
|
+
* return <Error onRetry={refreshMfa} />
|
|
146
|
+
* }
|
|
147
|
+
*
|
|
148
|
+
* if (mfaSetupRequired) {
|
|
149
|
+
* return <ConfigureMfa />
|
|
150
|
+
* }
|
|
151
|
+
*
|
|
152
|
+
* return <Application />
|
|
92
153
|
* }
|
|
93
154
|
* ```
|
|
94
155
|
*
|
|
95
|
-
* @
|
|
156
|
+
* @param mfaRequirement - The MFA requirement to enforce, e.g. from your
|
|
157
|
+
* organisation or app settings.
|
|
158
|
+
* @returns Whether MFA setup is required, along with loading state from the MFA
|
|
159
|
+
* provider.
|
|
96
160
|
* @group Hooks
|
|
97
161
|
*/
|
|
98
|
-
export declare function useUserMeetsMfaRequirement(
|
|
162
|
+
export declare function useUserMeetsMfaRequirement(mfaRequirement: MiscTypes.MfaRequirement | undefined): {
|
|
163
|
+
mfaSetupRequired: boolean;
|
|
164
|
+
isLoading: boolean;
|
|
165
|
+
loadingError: Error | undefined;
|
|
166
|
+
refreshMfa: () => void;
|
|
167
|
+
};
|
|
99
168
|
export {};
|