@aws-amplify/ui 6.13.0 → 6.14.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.
- package/dist/esm/helpers/authenticator/facade.mjs +9 -2
- package/dist/esm/helpers/authenticator/formFields/defaults.mjs +34 -8
- package/dist/esm/helpers/authenticator/getRoute.mjs +8 -0
- package/dist/esm/helpers/authenticator/textUtil.mjs +34 -0
- package/dist/esm/i18n/dictionaries/authenticator/defaultTexts.mjs +27 -0
- package/dist/esm/i18n/dictionaries/authenticator/es.mjs +1 -1
- package/dist/esm/i18n/dictionaries/authenticator/fr.mjs +1 -1
- package/dist/esm/machines/authenticator/actions.mjs +63 -4
- package/dist/esm/machines/authenticator/actors/signIn.mjs +199 -49
- package/dist/esm/machines/authenticator/actors/signUp.mjs +81 -27
- package/dist/esm/machines/authenticator/defaultServices.mjs +37 -0
- package/dist/esm/machines/authenticator/guards.mjs +49 -1
- package/dist/esm/machines/authenticator/index.mjs +29 -15
- package/dist/esm/machines/authenticator/utils.mjs +58 -6
- package/dist/index.js +625 -111
- package/dist/styles/authenticator.css +17 -0
- package/dist/styles/authenticator.layer.css +17 -0
- package/dist/styles.css +17 -0
- package/dist/styles.layer.css +17 -0
- package/dist/types/helpers/authenticator/facade.d.ts +6 -2
- package/dist/types/helpers/authenticator/textUtil.d.ts +24 -1
- package/dist/types/i18n/dictionaries/authenticator/defaultTexts.d.ts +27 -0
- package/dist/types/i18n/dictionaries/index.d.ts +27 -0
- package/dist/types/i18n/translations.d.ts +27 -0
- package/dist/types/machines/authenticator/defaultServices.d.ts +105 -0
- package/dist/types/machines/authenticator/types.d.ts +26 -2
- package/dist/types/machines/authenticator/utils.d.ts +14 -2
- package/package.json +5 -4
|
@@ -2,6 +2,21 @@ import type { State } from 'xstate';
|
|
|
2
2
|
import type { AuthUser } from 'aws-amplify/auth';
|
|
3
3
|
import type { LoginMechanism, SignUpAttribute, SocialProvider, UnverifiedUserAttributes, AuthFormData, AuthFormFields, AuthTouchData, ValidationError, PasswordSettings } from '../../types';
|
|
4
4
|
import type { defaultServices } from './defaultServices';
|
|
5
|
+
export type AuthMethod = 'PASSWORD' | 'EMAIL_OTP' | 'SMS_OTP' | 'WEB_AUTHN';
|
|
6
|
+
export interface PasswordlessCapabilities {
|
|
7
|
+
emailOtpEnabled: boolean;
|
|
8
|
+
smsOtpEnabled: boolean;
|
|
9
|
+
webAuthnEnabled: boolean;
|
|
10
|
+
preferredChallenge?: AuthMethod;
|
|
11
|
+
}
|
|
12
|
+
export interface PasswordlessSettings {
|
|
13
|
+
hiddenAuthMethods?: AuthMethod[];
|
|
14
|
+
preferredAuthMethod?: AuthMethod;
|
|
15
|
+
passkeyRegistrationPrompts?: {
|
|
16
|
+
afterSignin?: 'ALWAYS' | 'NEVER';
|
|
17
|
+
afterSignup?: 'ALWAYS' | 'NEVER';
|
|
18
|
+
} | boolean;
|
|
19
|
+
}
|
|
5
20
|
export type ChallengeName = 'SMS_MFA' | 'SOFTWARE_TOKEN_MFA' | 'EMAIL_OTP' | 'SELECT_MFA_TYPE' | 'MFA_SETUP' | 'PASSWORD_VERIFIER' | 'CUSTOM_CHALLENGE' | 'DEVICE_SRP_AUTH' | 'DEVICE_PASSWORD_VERIFIER' | 'ADMIN_NO_SRP_AUTH' | 'NEW_PASSWORD_REQUIRED';
|
|
6
21
|
export type AuthMFAType = 'SMS' | 'TOTP' | 'EMAIL';
|
|
7
22
|
/**
|
|
@@ -37,7 +52,7 @@ export type InvokeActorEventTypes = 'done.invoke.forgotPasswordActor' | 'done.in
|
|
|
37
52
|
/**
|
|
38
53
|
* All known explicit events for xstate
|
|
39
54
|
*/
|
|
40
|
-
export type AuthEventTypes = 'CHANGE' | 'BLUR' | 'FEDERATED_SIGN_IN' | 'RESEND' | 'FORGOT_PASSWORD' | 'AUTO_SIGN_IN_FAILURE' | 'SIGN_IN_WITH_REDIRECT' | 'SIGN_IN' | 'SIGN_OUT' | 'SIGN_UP' | 'SKIP' | 'SUBMIT' | 'INIT' | 'TOKEN_REFRESH' | InvokeActorEventTypes;
|
|
55
|
+
export type AuthEventTypes = 'CHANGE' | 'BLUR' | 'FEDERATED_SIGN_IN' | 'RESEND' | 'FORGOT_PASSWORD' | 'AUTO_SIGN_IN_FAILURE' | 'SELECT_METHOD' | 'SHOW_AUTH_METHODS' | 'SIGN_IN_WITH_REDIRECT' | 'SIGN_IN' | 'SIGN_OUT' | 'SIGN_UP' | 'SKIP' | 'SUBMIT' | 'INIT' | 'TOKEN_REFRESH' | InvokeActorEventTypes;
|
|
41
56
|
/**
|
|
42
57
|
* Data payload for auth events
|
|
43
58
|
*/
|
|
@@ -66,6 +81,7 @@ export interface ActorDoneData {
|
|
|
66
81
|
*/
|
|
67
82
|
export interface AuthContext {
|
|
68
83
|
actorRef?: any;
|
|
84
|
+
availableAuthMethods?: AuthMethod[];
|
|
69
85
|
config?: {
|
|
70
86
|
loginMechanism?: LoginMechanism;
|
|
71
87
|
loginMechanisms?: LoginMechanism[];
|
|
@@ -74,14 +90,16 @@ export interface AuthContext {
|
|
|
74
90
|
formFields?: AuthFormFields;
|
|
75
91
|
initialState?: 'signIn' | 'signUp' | 'forgotPassword';
|
|
76
92
|
passwordSettings?: PasswordSettings;
|
|
93
|
+
passwordless?: PasswordlessSettings;
|
|
77
94
|
};
|
|
78
95
|
services?: Partial<typeof defaultServices>;
|
|
79
96
|
user?: AuthUser;
|
|
80
97
|
actorDoneData?: ActorDoneData;
|
|
81
98
|
hasSetup?: boolean;
|
|
99
|
+
passwordlessCapabilities?: PasswordlessCapabilities;
|
|
82
100
|
}
|
|
83
101
|
export type InitialStep = 'FORGOT_PASSWORD' | 'SIGN_IN' | 'SIGN_UP';
|
|
84
|
-
export type SignInStep = 'CONFIRM_SIGN_IN_WITH_EMAIL_CODE' | 'CONFIRM_SIGN_IN_WITH_SMS_CODE' | 'CONFIRM_SIGN_IN_WITH_TOTP_CODE' | 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED' | 'CONFIRM_SIGN_UP' | 'CONTINUE_SIGN_IN_WITH_TOTP_SETUP' | 'CONTINUE_SIGN_IN_WITH_EMAIL_SETUP' | 'CONTINUE_SIGN_IN_WITH_MFA_SETUP_SELECTION' | 'CONTINUE_SIGN_IN_WITH_MFA_SELECTION' | 'RESET_PASSWORD' | 'SIGN_IN_COMPLETE';
|
|
102
|
+
export type SignInStep = 'SELECT_AUTH_METHOD' | 'CONFIRM_SIGN_IN_WITH_EMAIL_CODE' | 'CONFIRM_SIGN_IN_WITH_SMS_CODE' | 'CONFIRM_SIGN_IN_WITH_TOTP_CODE' | 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED' | 'CONFIRM_SIGN_UP' | 'CONTINUE_SIGN_IN_WITH_TOTP_SETUP' | 'CONTINUE_SIGN_IN_WITH_EMAIL_SETUP' | 'CONTINUE_SIGN_IN_WITH_MFA_SETUP_SELECTION' | 'CONTINUE_SIGN_IN_WITH_MFA_SELECTION' | 'RESET_PASSWORD' | 'SIGN_IN_COMPLETE';
|
|
85
103
|
export type ResetPasswordStep = 'CONFIRM_RESET_PASSWORD_WITH_CODE' | 'RESET_PASSWORD_COMPLETE';
|
|
86
104
|
export type SignUpStep = 'CONFIRM_SIGN_UP' | 'COMPLETE_AUTO_SIGN_IN' | 'SIGN_UP_COMPLETE';
|
|
87
105
|
export type UserAttributeStep = 'SHOULD_CONFIRM_USER_ATTRIBUTE' | 'CONFIRM_ATTRIBUTE_WITH_CODE' | 'CONFIRM_ATTRIBUTE_COMPLETE';
|
|
@@ -104,6 +122,12 @@ interface BaseFormContext {
|
|
|
104
122
|
passwordSettings?: PasswordSettings;
|
|
105
123
|
socialProviders: Required<AuthContext>['config']['socialProviders'];
|
|
106
124
|
signUpAttributes?: SignUpAttribute[];
|
|
125
|
+
selectedAuthMethod?: AuthMethod;
|
|
126
|
+
availableAuthMethods?: AuthMethod[];
|
|
127
|
+
preferredChallenge?: AuthMethod;
|
|
128
|
+
passwordless?: PasswordlessSettings;
|
|
129
|
+
hasExistingPasskeys?: boolean;
|
|
130
|
+
fetchedUserAttributes?: Record<string, unknown>;
|
|
107
131
|
formFields?: AuthFormFields;
|
|
108
132
|
formValues?: AuthFormData;
|
|
109
133
|
touched?: AuthTouchData;
|
|
@@ -1,7 +1,19 @@
|
|
|
1
|
-
import type { AuthActorContext } from './types';
|
|
1
|
+
import type { AuthActorContext, AuthMethod } from './types';
|
|
2
2
|
import type { SignUpInput } from 'aws-amplify/auth';
|
|
3
3
|
import type { LoginMechanism, UserAttributes } from '../../types';
|
|
4
4
|
export declare const sanitizePhoneNumber: (dialCode: string, phoneNumber: string) => string;
|
|
5
5
|
export declare const getUserAttributes: (formValues: AuthActorContext['formValues']) => UserAttributes;
|
|
6
|
-
export declare const getSignUpInput: (username: string, formValues: AuthActorContext['formValues'], loginMechanism: LoginMechanism) => SignUpInput;
|
|
6
|
+
export declare const getSignUpInput: (username: string, formValues: AuthActorContext['formValues'], loginMechanism: LoginMechanism, authMethod?: AuthMethod) => SignUpInput;
|
|
7
7
|
export declare const getUsernameSignUp: ({ formValues, loginMechanisms, }: AuthActorContext) => string;
|
|
8
|
+
/**
|
|
9
|
+
* Get available authentication methods based on backend capabilities and hidden methods
|
|
10
|
+
*/
|
|
11
|
+
export declare const getAvailableAuthMethods: (passwordlessCapabilities?: {
|
|
12
|
+
emailOtpEnabled: boolean;
|
|
13
|
+
smsOtpEnabled: boolean;
|
|
14
|
+
webAuthnEnabled: boolean;
|
|
15
|
+
}, hiddenAuthMethods?: Array<'PASSWORD' | 'EMAIL_OTP' | 'SMS_OTP' | 'WEB_AUTHN'>) => Array<'PASSWORD' | 'EMAIL_OTP' | 'SMS_OTP' | 'WEB_AUTHN'>;
|
|
16
|
+
/**
|
|
17
|
+
* Get preferred authentication method or first available
|
|
18
|
+
*/
|
|
19
|
+
export declare const getPreferredAuthMethod: (availableMethods?: Array<'PASSWORD' | 'EMAIL_OTP' | 'SMS_OTP' | 'WEB_AUTHN'>, preferredAuthMethod?: 'PASSWORD' | 'EMAIL_OTP' | 'SMS_OTP' | 'WEB_AUTHN') => 'PASSWORD' | 'EMAIL_OTP' | 'SMS_OTP' | 'WEB_AUTHN' | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-amplify/ui",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.14.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "dist/esm/index.mjs",
|
|
6
6
|
"exports": {
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"csstype": "^3.1.1",
|
|
48
|
-
"lodash": "4.17.
|
|
48
|
+
"lodash": "4.17.23",
|
|
49
49
|
"tslib": "^2.5.2"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
@@ -65,9 +65,10 @@
|
|
|
65
65
|
"glob": "^10.5.0",
|
|
66
66
|
"postcss": "^8.4.31",
|
|
67
67
|
"sass": "^1.35.2",
|
|
68
|
-
"style-dictionary": "3.9.1"
|
|
68
|
+
"style-dictionary": "3.9.1",
|
|
69
|
+
"ts-node": "^10.9.1"
|
|
69
70
|
},
|
|
70
71
|
"sideEffects": [
|
|
71
72
|
"dist/**/*.css"
|
|
72
73
|
]
|
|
73
|
-
}
|
|
74
|
+
}
|