@gahojin-inc/amplify-auth-hooks 2026.3.0 → 2026.4.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/authenticator.d.ts +7 -0
- package/dist/index.d.ts +66 -0
- package/dist/{index.mjs → index.js} +1 -1
- package/dist/index.js.map +1 -0
- package/dist/machines-BRfb3dTb.js.map +1 -1
- package/dist/machines.d.ts +2 -0
- package/dist/types-BQSOxe-R.d.ts +116 -0
- package/package.json +12 -11
- package/dist/authenticator/defaultAuthHubHandler.d.mts +0 -3
- package/dist/authenticator/types.d.mts +0 -11
- package/dist/authenticator.d.mts +0 -1
- package/dist/context/AuthenticatorContext.d.mts +0 -7
- package/dist/context/AuthenticatorProvider.d.mts +0 -7
- package/dist/context/index.d.mts +0 -2
- package/dist/hooks/facade.d.mts +0 -6
- package/dist/hooks/types.d.mts +0 -29
- package/dist/hooks/useAuth.d.mts +0 -12
- package/dist/hooks/useAuthenticator.d.mts +0 -2
- package/dist/hooks/utils.d.mts +0 -87
- package/dist/index.d.mts +0 -6
- package/dist/index.mjs.map +0 -1
- package/dist/machines/actions.d.mts +0 -25
- package/dist/machines/defaultHandlers.d.mts +0 -2
- package/dist/machines/forgotPassword/actor.d.mts +0 -1
- package/dist/machines/guards.d.mts +0 -22
- package/dist/machines/signIn/actor.d.mts +0 -1
- package/dist/machines/signOut/actor.d.mts +0 -1
- package/dist/machines/signUp/actor.d.mts +0 -1
- package/dist/machines/types.d.mts +0 -96
- package/dist/machines/verifyUserAttributes/actor.d.mts +0 -1
- package/dist/machines.d.mts +0 -5
- package/dist/utils.d.mts +0 -1
- /package/dist/{authenticator.mjs → authenticator.js} +0 -0
- /package/dist/{machines.mjs → machines.js} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { n as AuthMachineHubHandler, r as StopListenerCallback, t as AuthActor } from "./types-BQSOxe-R.js";
|
|
2
|
+
|
|
3
|
+
//#region src/authenticator/defaultAuthHubHandler.d.ts
|
|
4
|
+
declare const listenToAuthHub: (actor: AuthActor, handler?: AuthMachineHubHandler) => StopListenerCallback;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { listenToAuthHub };
|
|
7
|
+
//# sourceMappingURL=authenticator.d.ts.map
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { A as UserAttributeStep, C as SignInStep, D as Step, E as SignUpStep, M as unverifiedContactMethodTypes, O as UnverifiedContactMethodType, S as SignInContext, T as SignUpContext, _ as InitialRoute, a as ActorDoneData, b as ResetPasswordContext, c as AuthContext, d as AuthEventData, f as AuthEventTypes, g as Handlers, h as FederatedIdentityProviders, i as AuthenticatorMachineOptions, j as VerifyUserContext, k as UnverifiedUserAttributes, l as AuthError, m as AuthTOTPSetupDetails, o as AuthActorContext, p as AuthMFAType, s as AuthAllowedMFATypes, t as AuthActor, u as AuthEvent, v as InitialStep, w as SignOutContext, x as ResetPasswordStep, y as NavigableRoute } from "./types-BQSOxe-R.js";
|
|
2
|
+
import { Context, JSX, PropsWithChildren } from "react";
|
|
3
|
+
import { AuthUser, CodeDeliveryDetails } from "@aws-amplify/auth";
|
|
4
|
+
|
|
5
|
+
//#region src/context/AuthenticatorContext.d.ts
|
|
6
|
+
type AuthenticatorContextType = {
|
|
7
|
+
actor: AuthActor;
|
|
8
|
+
};
|
|
9
|
+
declare const AuthenticatorContext: Context<AuthenticatorContextType | null>;
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region src/context/AuthenticatorProvider.d.ts
|
|
12
|
+
type Props$1 = PropsWithChildren & {
|
|
13
|
+
options?: AuthenticatorMachineOptions;
|
|
14
|
+
};
|
|
15
|
+
declare const _default: ({
|
|
16
|
+
options,
|
|
17
|
+
children
|
|
18
|
+
}: Props$1) => JSX.Element;
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region src/hooks/types.d.ts
|
|
21
|
+
type AuthenticatorRoute = "authenticated" | "confirmResetPassword" | "confirmSignIn" | "confirmSignUp" | "confirmVerifyUser" | "forceNewPassword" | "idle" | "forgotPassword" | "setup" | "signOut" | "selectMfaType" | "setupEmail" | "setupTotp" | "signIn" | "signUp" | "transition" | "verifyUser";
|
|
22
|
+
type AuthenticatorMachineContext = AuthenticatorServiceFacade;
|
|
23
|
+
type AuthenticatorMachineContextKey = keyof AuthenticatorMachineContext;
|
|
24
|
+
type UseAuthenticatorSelector = (context: AuthenticatorServiceFacade) => AuthenticatorMachineContext[AuthenticatorMachineContextKey][];
|
|
25
|
+
type UseAuthenticator = AuthenticatorServiceFacade;
|
|
26
|
+
type AuthenticatorServiceContextFacade = {
|
|
27
|
+
allowedMfaTypes: AuthAllowedMFATypes | undefined;
|
|
28
|
+
codeDeliveryDetails: CodeDeliveryDetails | undefined;
|
|
29
|
+
errorMessage: string | undefined;
|
|
30
|
+
isPending: boolean;
|
|
31
|
+
route: AuthenticatorRoute | null;
|
|
32
|
+
totpSecretCode: string | undefined;
|
|
33
|
+
username: string | undefined;
|
|
34
|
+
user: AuthUser | undefined;
|
|
35
|
+
unverifiedUserAttributes: UnverifiedUserAttributes | undefined;
|
|
36
|
+
};
|
|
37
|
+
type AuthenticatorSendEventAliases = {
|
|
38
|
+
handleSubmit: (data?: AuthEventData) => void;
|
|
39
|
+
resendConfirmationCode: () => void;
|
|
40
|
+
refreshUser: () => void;
|
|
41
|
+
setRoute: (route: NavigableRoute) => void;
|
|
42
|
+
skipAttributeVerification: () => void;
|
|
43
|
+
toFederatedSignIn: (data?: AuthEventData) => void;
|
|
44
|
+
};
|
|
45
|
+
type AuthenticatorServiceFacade = AuthenticatorSendEventAliases & AuthenticatorServiceContextFacade;
|
|
46
|
+
type Comparator = (currentMachineContext: AuthenticatorMachineContext, nextMachineContext: AuthenticatorMachineContext) => boolean;
|
|
47
|
+
//#endregion
|
|
48
|
+
//#region src/hooks/useAuth.d.ts
|
|
49
|
+
type UseAuthResult = {
|
|
50
|
+
user?: AuthUser;
|
|
51
|
+
isLoading: boolean;
|
|
52
|
+
error?: Error;
|
|
53
|
+
};
|
|
54
|
+
type Props = {
|
|
55
|
+
getCurrentUser?: Handlers["getCurrentUser"];
|
|
56
|
+
};
|
|
57
|
+
declare const useAuth: (handlers?: Props) => UseAuthResult;
|
|
58
|
+
//#endregion
|
|
59
|
+
//#region src/hooks/useAuthenticator.d.ts
|
|
60
|
+
declare const useAuthenticator: (selector?: UseAuthenticatorSelector) => UseAuthenticator;
|
|
61
|
+
//#endregion
|
|
62
|
+
//#region src/utils.d.ts
|
|
63
|
+
declare const getTotpCodeURL: (issuer: string, username: string, secret: string) => string;
|
|
64
|
+
//#endregion
|
|
65
|
+
export { ActorDoneData, AuthActorContext, AuthAllowedMFATypes, AuthContext, AuthError, AuthEvent, AuthEventData, AuthEventTypes, AuthMFAType, AuthTOTPSetupDetails, AuthenticatorContext, _default as AuthenticatorProvider, AuthenticatorRoute, AuthenticatorSendEventAliases, AuthenticatorServiceContextFacade, AuthenticatorServiceFacade, Comparator, FederatedIdentityProviders, Handlers, InitialRoute, InitialStep, NavigableRoute, ResetPasswordContext, ResetPasswordStep, SignInContext, SignInStep, SignOutContext, SignUpContext, SignUpStep, Step, UnverifiedContactMethodType, UnverifiedUserAttributes, type UseAuthResult, UseAuthenticator, UseAuthenticatorSelector, UserAttributeStep, VerifyUserContext, getTotpCodeURL, unverifiedContactMethodTypes, useAuth, useAuthenticator };
|
|
66
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -310,4 +310,4 @@ const getTotpCodeURL = (issuer, username, secret) => {
|
|
|
310
310
|
//#endregion
|
|
311
311
|
export { AuthenticatorContext, AuthenticatorProvider_default as AuthenticatorProvider, FederatedIdentityProviders, getTotpCodeURL, unverifiedContactMethodTypes, useAuth, useAuthenticator };
|
|
312
312
|
|
|
313
|
-
//# sourceMappingURL=index.
|
|
313
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/context/AuthenticatorContext.ts","../src/context/AuthenticatorProvider.tsx","../src/hooks/useAuth.ts","../src/hooks/facade.ts","../src/hooks/utils.ts","../src/hooks/useAuthenticator.ts","../src/machines/types.ts","../src/utils.ts"],"sourcesContent":["import { type Context, createContext } from 'react'\nimport type { AuthActor } from '../authenticator/types'\n\ntype AuthenticatorContextType = {\n actor: AuthActor\n}\n\nexport const AuthenticatorContext: Context<AuthenticatorContextType | null> = createContext<AuthenticatorContextType | null>(null)\n","import { useActor } from '@xstate/react'\nimport { type JSX, type PropsWithChildren, useContext, useEffect, useMemo } from 'react'\nimport { defaultAuthHubHandler, listenToAuthHub } from '../authenticator/defaultAuthHubHandler'\nimport type { AuthMachineHubHandler, AuthMachineHubHandlerOptions } from '../authenticator/types'\nimport { AuthenticatorContext } from '../context/AuthenticatorContext'\nimport { type AuthenticatorMachineOptions, createAuthenticatorMachine } from '../machines'\n\nconst createHubHandler = (options?: AuthMachineHubHandlerOptions): AuthMachineHubHandler => {\n return (data, service) => defaultAuthHubHandler(data, service, options)\n}\n\ntype Props = PropsWithChildren & {\n options?: AuthenticatorMachineOptions\n}\n\nexport default ({ options, children }: Props): JSX.Element => {\n const machine = useMemo(() => createAuthenticatorMachine(options), [options])\n\n // 階層構造にAuthenticatorContextを使用している場合、親Contextの認証状態を継承する\n const parentProvider = useContext(AuthenticatorContext)\n const [, , actor] = useActor(machine)\n const value = useMemo(() => parentProvider ?? { actor }, [parentProvider, actor])\n\n const { actor: activeActor } = value\n\n useEffect(() => {\n return listenToAuthHub(activeActor, createHubHandler(options))\n }, [activeActor, options])\n\n return <AuthenticatorContext.Provider value={value}>{children}</AuthenticatorContext.Provider>\n}\n","/*\n * Copyright 2017 - 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * (C) 2025 GAHOJIN, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport { type AuthUser, getCurrentUser } from '@aws-amplify/auth'\nimport { Hub, type HubCallback } from '@aws-amplify/core'\nimport { useCallback, useEffect, useState } from 'react'\nimport type { Handlers } from '../machines/types'\n\nexport type UseAuthResult = {\n user?: AuthUser\n isLoading: boolean\n error?: Error\n}\n\ntype Props = {\n getCurrentUser?: Handlers['getCurrentUser']\n}\n\nexport const useAuth = (handlers?: Props): UseAuthResult => {\n const [result, setResult] = useState<UseAuthResult>({\n isLoading: true,\n })\n\n const fetchCurrentUser = useCallback(() => {\n // loading\n setResult((prev) => ({ ...prev, isLoading: true }))\n\n void (handlers?.getCurrentUser ?? getCurrentUser)()\n .then((user) => setResult({ user, isLoading: false }))\n .catch((e) => setResult({ error: e as Error, isLoading: false }))\n }, [handlers?.getCurrentUser])\n\n const handleAuth: HubCallback = useCallback(\n ({ payload }) => {\n switch (payload.event) {\n // success events\n case 'signedIn':\n case 'signUp':\n case 'autoSignIn':\n setResult({ user: payload.data as AuthUser, isLoading: false })\n break\n case 'signedOut':\n setResult({ isLoading: false })\n break\n\n // failure events\n case 'tokenRefresh_failure':\n case 'signIn_failure':\n setResult({ error: payload.data as Error, isLoading: false })\n break\n case 'autoSignIn_failure':\n // autoSignIn just returns error message. Wrap it to an Error object\n setResult({ error: new Error(payload.message), isLoading: false })\n break\n\n // events that need another fetch\n case 'tokenRefresh':\n void fetchCurrentUser()\n break\n\n default:\n // we do not handle other hub events like `configured`.\n break\n }\n },\n [fetchCurrentUser],\n )\n\n useEffect(() => {\n const unsubscribe = Hub.listen('auth', handleAuth, 'useAuth')\n void fetchCurrentUser() // on init, see if user is already logged in\n\n return unsubscribe\n }, [handleAuth, fetchCurrentUser])\n\n return result\n}\n","import type { AnyMachineSnapshot, SnapshotFrom } from 'xstate'\nimport type { AuthActor } from '../authenticator/types'\nimport type { AuthActorContext, AuthEvent, AuthEventTypes, NavigableRoute } from '../machines/types'\nimport type { AuthenticatorRoute, AuthenticatorSendEventAliases, AuthenticatorServiceContextFacade } from './types'\n\nconst NAVIGABLE_ROUTE_EVENT: Record<NavigableRoute, AuthEventTypes> = {\n forgotPassword: 'FORGOT_PASSWORD',\n signIn: 'SIGN_IN',\n signUp: 'SIGN_UP',\n signOut: 'SIGN_OUT',\n}\n\nexport const getSendEventAliases = (send: (event: AuthEvent) => void): AuthenticatorSendEventAliases => {\n return {\n handleSubmit: (data) => send({ type: 'SUBMIT', data }),\n resendConfirmationCode: () => send({ type: 'RESEND' }),\n refreshUser: () => send({ type: 'TOKEN_REFRESH' }),\n setRoute: (route) => send({ type: NAVIGABLE_ROUTE_EVENT[route] }),\n skipAttributeVerification: () => send({ type: 'SKIP' }),\n toFederatedSignIn: () => send({ type: 'FEDERATED_SIGN_IN' }),\n }\n}\n\nconst getChildActor = (snapshot: SnapshotFrom<AuthActor>): AnyMachineSnapshot | undefined => {\n return snapshot.children?.childActor?.getSnapshot() as AnyMachineSnapshot\n}\n\nconst getRoute = (actor: SnapshotFrom<AuthActor>, childActor: AnyMachineSnapshot | undefined): AuthenticatorRoute | null => {\n // 'federatedSignIn' exists as a state on both the 'signInActor' and 'signUpActor',\n // match against the `actorState` initially to determine if the federated sign in flow\n // has begun, then which actor has begun the flow and return the corresponding `route`\n if (childActor?.matches('federatedSignIn')) {\n if (actor.matches('signUpActor')) {\n return 'signUp'\n }\n if (actor.matches('signInActor')) {\n return 'signIn'\n }\n }\n\n switch (true) {\n case actor.matches('idle'):\n return 'idle'\n case actor.matches('setup'):\n return 'setup'\n case actor.matches('signOut'):\n return 'signOut'\n case actor.matches('authenticated'):\n return 'authenticated'\n case childActor?.matches('confirmSignUp'):\n case childActor?.matches('resendSignUpCode'):\n return 'confirmSignUp'\n case childActor?.matches('confirmSignIn'):\n return 'confirmSignIn'\n case childActor?.matches('setupTotp'):\n return 'setupTotp'\n case childActor?.matches('signIn'):\n return 'signIn'\n case childActor?.matches('signUp'):\n case childActor?.matches('autoSignIn'):\n return 'signUp'\n case childActor?.matches('forceChangePassword'):\n return 'forceNewPassword'\n case childActor?.matches('forgotPassword'):\n return 'forgotPassword'\n case childActor?.matches('confirmResetPassword'):\n return 'confirmResetPassword'\n case childActor?.matches('selectUserAttributes'):\n return 'verifyUser'\n case childActor?.matches('confirmVerifyUserAttribute'):\n return 'confirmVerifyUser'\n case childActor?.matches('setupEmail'):\n return 'setupEmail'\n case childActor?.matches('selectMfaType'):\n return 'selectMfaType'\n case actor.matches('getCurrentUser'):\n case childActor?.matches('fetchUserAttributes'):\n /**\n * This route is needed for autoSignIn to capture both the\n * autoSignIn.pending and the resolved states when the\n * signIn actor is running.\n */\n return 'transition'\n default:\n return null\n }\n}\n\nexport const getServiceContextFacade = (actor: SnapshotFrom<AuthActor>): AuthenticatorServiceContextFacade => {\n const childActor = getChildActor(actor)\n const isPending = (actor.hasTag('pending') || childActor?.hasTag('pending')) ?? false\n const route = getRoute(actor, childActor)\n const context = actor.context\n const actorContext: AuthActorContext = childActor?.context ?? {}\n const user = actorContext?.user ?? context.user\n\n const { allowedMfaTypes, codeDeliveryDetails, remoteError: errorMessage, totpSecretCode, unverifiedUserAttributes, username } = actorContext\n\n return {\n allowedMfaTypes,\n codeDeliveryDetails,\n errorMessage,\n isPending,\n route,\n totpSecretCode,\n unverifiedUserAttributes,\n user,\n username,\n }\n}\n","/*\n * Copyright 2017 - 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * (C) 2025 GAHOJIN, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport type { Comparator, UseAuthenticatorSelector } from '../hooks/types'\n\n/**\n * Checks if `value` is an Object (non-primitive, non-array, non-function)\n * Will return false for Arrays and functions\n *\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is an object, `false` otherwise\n */\nexport function isObject(value: unknown): value is object {\n return value != null && !Array.isArray(value) && typeof value === 'object'\n}\n\n/**\n * Checks if `value` is a string primitive or object\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a string, `false` otherwise\n */\nexport function isString(value: unknown): value is string {\n return typeof value === 'string' || (typeof value === 'object' && Object.prototype.toString.call(value) === '[object String]')\n}\n\n/**\n * Checks if `value` is a Map\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a Map, `false` otherwise\n */\nexport function isMap(value: unknown): value is Map<unknown, unknown> {\n return isObject(value) && Object.prototype.toString.call(value) === '[object Map]'\n}\n\n/**\n * Checks if `value` is a Set\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a Set, `false` otherwise\n */\nexport function isSet<T>(value: unknown): value is Set<T> {\n return isObject(value) && Object.prototype.toString.call(value) === '[object Set]'\n}\n\n/**\n * Checks if `value` is undefined\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is undefined, `false` otherwise\n */\nexport function isUndefined(value: unknown): value is undefined {\n return value === undefined\n}\n\n/**\n * Checks if `value` is nullish\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is nullish, `false` otherwise\n */\nexport function isNil(value: unknown): value is null | undefined {\n return value == null\n}\n\n/**\n * Checks if `value` is empty\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is empty, `false` otherwise\n */\nexport function isEmpty<T>(value: T): boolean {\n if (value === null || value === undefined) return true\n\n if (isObject(value) && (isMap(value) || isSet(value))) {\n return !value.size\n }\n if (isObject(value) && (isString(value) || Array.isArray(value))) {\n return !value.length\n }\n for (const key in value) {\n if (has(value, key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Checks if `value` is an empty array\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a empty, `false` otherwise\n */\nfunction isEmptyArray<T>(value: T): boolean {\n return Array.isArray(value) && isEmpty(value)\n}\n\n/**\n * Checks if all members of the `values` param are empty arrays\n *\n * @param {unknown} value The values to check\n * @returns {boolean} Returns `true` if all members of `values` are empty, `false` otherwise\n */\nexport function areEmptyArrays<T>(...values: T[]): boolean {\n return values.every(isEmptyArray)\n}\n\n/**\n * Checks if `value` is an empty object\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is empty, `false` otherwise\n */\nexport function isEmptyObject<T>(value: T): boolean {\n return isObject(value) && isEmpty(value)\n}\n\n/**\n * Checks if all members of the `values` param are empty objects\n *\n * @param {unknown} values The values to check\n * @returns {boolean} Returns `true` if all members of the `values` param are empty, `false` otherwise\n */\nexport function areEmptyObjects<T>(...values: T[]): boolean {\n return values.every(isEmptyObject)\n}\n\n/**\n * Checks if `key` is a direct property of `value`\n *\n * @param {unknown} value `object` potentially containing property\n * @param {string} key property key\n * @returns whether `key` param is a property of the `obj` param\n */\nexport function has(value: unknown, key: string): boolean {\n return value != null && Object.hasOwn(value, key)\n}\n\n/**\n * Does an ordering and shallow comparison of each array value,\n * plus a value equality check for empty objects and arrays.\n */\nexport function areSelectorDepsEqual<T>(currentDeps: T[], nextDeps: T[]): boolean {\n if (currentDeps.length !== nextDeps.length) {\n return false\n }\n return currentDeps.every((currentDep, index) => {\n const nextDep = nextDeps[index]\n\n if (areEmptyArrays(currentDep, nextDep) || areEmptyObjects(currentDep, nextDep)) {\n return true\n }\n\n return currentDep === nextDep\n })\n}\n\nexport const getComparator = (selector: UseAuthenticatorSelector): Comparator => {\n return (currentFacade, nextFacade) => {\n const currentSelectorDeps = selector(currentFacade)\n const nextSelectorDeps = selector(nextFacade)\n\n // Shallow compare the array values\n return areSelectorDepsEqual(currentSelectorDeps, nextSelectorDeps)\n }\n}\n","import { useSelector } from '@xstate/react'\nimport { useContext } from 'react'\nimport { AuthenticatorContext } from '../context'\nimport { getSendEventAliases, getServiceContextFacade } from './facade'\nimport type { UseAuthenticator, UseAuthenticatorSelector } from './types'\nimport { getComparator } from './utils'\n\nconst defaultComparator = (): false => false\n\nexport const useAuthenticator = (selector?: UseAuthenticatorSelector): UseAuthenticator => {\n const context = useContext(AuthenticatorContext)\n\n if (!context) {\n throw new Error('`useAuthenticator` must be used inside an `AuthenticatorProvider`.')\n }\n\n const { actor } = context\n const { send } = actor\n\n const comparator = selector ? getComparator(selector) : defaultComparator\n\n return useSelector(\n actor,\n (snapshot) => ({\n ...getSendEventAliases(send),\n ...getServiceContextFacade(snapshot),\n }),\n comparator,\n )\n}\n","/*\n * Copyright 2017 - 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * (C) 2025 GAHOJIN, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport type {\n AuthUser,\n CodeDeliveryDetails,\n ConfirmResetPasswordInput,\n ConfirmSignInInput,\n ConfirmSignInOutput,\n ConfirmSignUpInput,\n ConfirmSignUpOutput,\n ConfirmUserAttributeInput,\n FetchUserAttributesOutput,\n ResendSignUpCodeInput,\n ResendSignUpCodeOutput,\n ResetPasswordInput,\n ResetPasswordOutput,\n SendUserAttributeVerificationCodeInput,\n SendUserAttributeVerificationCodeOutput,\n SignInInput,\n SignInOutput,\n SignInWithRedirectInput,\n SignOutInput,\n SignUpInput,\n SignUpOutput,\n UserAttributeKey,\n} from '@aws-amplify/auth'\n\nexport type AuthMFAType = 'SMS' | 'TOTP' | 'EMAIL'\nexport type AuthAllowedMFATypes = AuthMFAType[]\n\nexport const FederatedIdentityProviders = {\n Apple: 'Apple',\n Amazon: 'Amazon',\n Facebook: 'Facebook',\n Google: 'Google',\n} as const\nexport type FederatedIdentityProviders = (typeof FederatedIdentityProviders)[keyof typeof FederatedIdentityProviders]\n\n/**\n * Cognito user contact method types that have not been verified as valid\n */\nexport const unverifiedContactMethodTypes = ['email', 'phone_number'] as const\nexport type UnverifiedContactMethodType = (typeof unverifiedContactMethodTypes)[number]\n\n/**\n * Authenticator routes that can be directly navigated to by user interaction.\n */\nexport type NavigableRoute = 'signIn' | 'signUp' | 'forgotPassword' | 'signOut'\nexport type InitialRoute = 'signIn' | 'signUp' | 'forgotPassword'\n\nexport type AuthTOTPSetupDetails = {\n sharedSecret: string\n getSetupUri: (appName: string, accountName?: string) => URL\n}\n\nexport type AuthEventTypes =\n | 'FEDERATED_SIGN_IN'\n | 'RESEND'\n | 'FORGOT_PASSWORD'\n | 'AUTO_SIGN_IN_FAILURE'\n | 'SIGN_IN_WITH_REDIRECT'\n | 'SIGN_IN'\n | 'SIGN_OUT'\n | 'SIGN_UP'\n | 'SUBMIT'\n | 'SKIP'\n | 'INIT'\n | 'TOKEN_REFRESH'\n\n// biome-ignore lint/suspicious/noExplicitAny: イベントデータの型は定義出来ない\nexport type AuthEventData = Record<PropertyKey, any>\n\nexport type AuthEvent = {\n type: AuthEventTypes\n data?: AuthEventData\n input?: ActorDoneData\n output?: AuthEventData\n error?: Error\n actorId?: string\n}\n\nexport type ActorDoneData = {\n codeDeliveryDetails?: CodeDeliveryDetails<UserAttributeKey>\n missingAttributes?: string[]\n remoteError?: string\n step: Step\n totpSecretCode?: string\n username?: string\n unverifiedUserAttributes?: UnverifiedUserAttributes\n allowedMfaTypes?: AuthMFAType[]\n}\n\nexport type AuthContext = {\n user?: AuthUser\n config?: {\n initialState?: 'signIn' | 'signUp' | 'forgotPassword'\n }\n // data returned from actors when they finish and reach their final state\n actorDoneData?: ActorDoneData\n}\n\nexport type InitialStep = 'FORGOT_PASSWORD' | 'SIGN_IN' | 'SIGN_UP'\n\nexport type SignInStep =\n | 'CONFIRM_SIGN_IN_WITH_EMAIL_CODE'\n | 'CONFIRM_SIGN_IN_WITH_SMS_CODE'\n | 'CONFIRM_SIGN_IN_WITH_TOTP_CODE'\n | 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED'\n | 'CONFIRM_SIGN_IN_WITH_PASSWORD'\n | 'CONFIRM_SIGN_UP'\n | 'CONTINUE_SIGN_IN_WITH_TOTP_SETUP'\n | 'CONTINUE_SIGN_IN_WITH_EMAIL_SETUP'\n | 'CONTINUE_SIGN_IN_WITH_MFA_SETUP_SELECTION'\n | 'CONTINUE_SIGN_IN_WITH_MFA_SELECTION'\n | 'CONFIRM_SIGN_IN_WITH_CUSTOM_CHALLENGE'\n | 'CONTINUE_SIGN_IN_WITH_FIRST_FACTOR_SELECTION'\n | 'RESET_PASSWORD'\n | 'SIGN_IN_COMPLETE' // 'DONE'\n\nexport type ResetPasswordStep = 'CONFIRM_RESET_PASSWORD_WITH_CODE' | 'RESET_PASSWORD_COMPLETE' // 'DONE'\n\nexport type SignUpStep = 'CONFIRM_SIGN_UP' | 'COMPLETE_AUTO_SIGN_IN' | 'SIGN_UP_COMPLETE' // 'DONE'\n\nexport type UserAttributeStep = 'SHOULD_CONFIRM_USER_ATTRIBUTE' | 'CONFIRM_ATTRIBUTE_WITH_CODE' | 'CONFIRM_ATTRIBUTE_COMPLETE' // 'DONE'\n\nexport type Step = InitialStep | SignInStep | SignUpStep | ResetPasswordStep | UserAttributeStep\n\ntype BaseContext = {\n missingAttributes?: string[]\n remoteError?: string\n step: Step\n totpSecretCode?: string\n unverifiedUserAttributes?: UnverifiedUserAttributes\n allowedMfaTypes?: AuthMFAType[]\n\n // kept in memory for submission to relevnat APIs\n username?: string\n selectedUserAttribute?: string\n\n // retrieved from the Auth module on sign in,\n // cleared on sign out\n user?: AuthUser\n}\n\nexport type ResetPasswordContext = BaseContext & ActorDoneData\nexport type SignInContext = BaseContext & ActorDoneData\nexport type SignUpContext = BaseContext & ActorDoneData\nexport type VerifyUserContext = BaseContext & ActorDoneData\nexport type SignOutContext = Pick<BaseContext, 'user'>\n\nexport type AuthActorContext = SignInContext | SignUpContext | ResetPasswordContext\n\nexport type Handlers = {\n getCurrentUser: () => Promise<AuthUser>\n fetchUserAttributes: () => Promise<FetchUserAttributesOutput>\n signIn: (input: SignInInput) => Promise<SignInOutput>\n signInWithRedirect: (input?: SignInWithRedirectInput) => Promise<void>\n signUp: (input: SignUpInput) => Promise<SignUpOutput>\n signOut: (input?: SignOutInput) => Promise<void>\n autoSignIn: () => Promise<SignInOutput>\n confirmSignIn: (input: ConfirmSignInInput) => Promise<ConfirmSignInOutput>\n confirmSignUp: (input: ConfirmSignUpInput) => Promise<ConfirmSignUpOutput>\n confirmResetPassword: (input: ConfirmResetPasswordInput) => Promise<void>\n confirmUserAttribute: (input: ConfirmUserAttributeInput) => Promise<void>\n resetPassword: (input: ResetPasswordInput) => Promise<ResetPasswordOutput>\n resendSignUpCode: (input: ResendSignUpCodeInput) => Promise<ResendSignUpCodeOutput>\n sendUserAttributeVerificationCode: (input: SendUserAttributeVerificationCodeInput) => Promise<SendUserAttributeVerificationCodeOutput>\n}\n\nexport type UnverifiedUserAttributes = Partial<Record<UnverifiedContactMethodType, string>>\n\nexport type AuthError = Error & {\n __type: string\n message?: string\n}\n","export const getTotpCodeURL = (issuer: string, username: string, secret: string): string => {\n return encodeURI(`otpauth://totp/${issuer}:${username}?secret=${secret}&issuer=${issuer}`)\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"machines-BRfb3dTb.js","names":[],"sources":["../src/machines/actions.ts","../src/machines/guards.ts","../src/machines/signIn/actor.ts","../src/machines/defaultHandlers.ts","../src/machines/forgotPassword/actor.ts","../src/machines/signOut/actor.ts","../src/machines/signUp/actor.ts","../src/machines/verifyUserAttributes/actor.ts","../src/machines/index.ts"],"sourcesContent":["import type {\n CodeDeliveryDetails,\n FetchUserAttributesOutput,\n ResetPasswordOutput,\n SendUserAttributeVerificationCodeOutput,\n SignInOutput,\n SignUpOutput,\n UserAttributeKey,\n} from '@aws-amplify/auth'\nimport type { AuthVerifiableAttributeKey } from '@aws-amplify/core/internals/utils'\nimport type {\n AuthEvent,\n AuthEventData,\n AuthMFAType,\n AuthTOTPSetupDetails,\n ResetPasswordStep,\n SignInContext,\n SignInStep,\n SignUpStep,\n Step,\n UnverifiedUserAttributes,\n} from './types'\n\ntype ActionParams<Context = unknown> = {\n context: Context\n event: AuthEvent\n}\n\nconst setTotpSecretCode = ({ event }: ActionParams): string | undefined => {\n const { sharedSecret } = (event.output?.nextStep?.totpSetupDetails ?? {}) as AuthTOTPSetupDetails\n return sharedSecret\n}\n\nconst setAllowedMfaTypes = ({ event }: ActionParams): AuthMFAType[] | undefined => {\n return event.output?.nextStep?.allowedMFATypes as AuthMFAType[]\n}\n\nconst setSignInStep: Step = 'SIGN_IN'\n\nconst setShouldVerifyUserAttributeStep: Step = 'SHOULD_CONFIRM_USER_ATTRIBUTE'\n\nconst setConfirmAttributeCompleteStep: Step = 'CONFIRM_ATTRIBUTE_COMPLETE'\n\nconst setConfirmSignUpStep: Step = 'CONFIRM_SIGN_UP'\n\nconst setNextSignInStep = ({ event }: ActionParams): SignInStep => {\n const output = (event.output ?? {}) as SignInOutput\n return output.nextStep?.signInStep === 'DONE' ? 'SIGN_IN_COMPLETE' : output.nextStep?.signInStep\n}\n\nconst setNextSignUpStep = ({ event }: ActionParams): SignUpStep => {\n const output = (event.output ?? {}) as SignUpOutput\n return output.nextStep?.signUpStep === 'DONE' ? 'SIGN_UP_COMPLETE' : output.nextStep?.signUpStep\n}\n\nconst setNextResetPasswordStep = ({ event }: ActionParams): ResetPasswordStep => {\n const output = (event.output ?? {}) as ResetPasswordOutput\n return output.nextStep?.resetPasswordStep === 'DONE' ? 'RESET_PASSWORD_COMPLETE' : output.nextStep?.resetPasswordStep\n}\n\nconst setMissingAttributes = ({ event }: ActionParams): string | undefined => event.output?.nextStep?.missingAttributes\n\nconst setRemoteError = ({ event }: ActionParams): string => {\n const error = event.error\n if (error?.name === 'NoUserPoolError') {\n return 'Configuration error (see console) – please contact the administrator'\n }\n return error?.message || String(error)\n}\n\nconst setUsername = ({ event }: ActionParams): string | undefined => event.data?.username\n\nconst setUser = ({ event }: ActionParams): AuthEventData | undefined => event.output\n\nconst setCodeDeliveryDetails = ({ event }: ActionParams): CodeDeliveryDetails<UserAttributeKey> => {\n const output = event.output\n if (output?.nextStep?.codeDeliveryDetails) {\n return output?.nextStep?.codeDeliveryDetails\n }\n return output as CodeDeliveryDetails<UserAttributeKey>\n}\n\nconst setUnverifiedUserAttributes = ({ event }: ActionParams): UnverifiedUserAttributes => {\n const { email, phone_number } = event.output as FetchUserAttributesOutput\n\n const unverifiedUserAttributes = {\n ...(email && { email }),\n ...(phone_number && { phone_number }),\n }\n\n return unverifiedUserAttributes\n}\n\nconst setSelectedUserAttribute = ({ event }: ActionParams): AuthVerifiableAttributeKey | undefined => {\n const output = event?.output as SendUserAttributeVerificationCodeOutput\n return output?.attributeName\n}\n\nconst setSignInActorDoneData = ({ event }: ActionParams<SignInContext>): SignInContext => {\n const output = event?.output ?? {}\n return {\n codeDeliveryDetails: output.codeDeliveryDetails,\n missingAttributes: output.missingAttributes,\n remoteError: output.remoteError,\n username: output.username,\n step: output.step,\n totpSecretCode: output.totpSecretCode,\n unverifiedUserAttributes: output.unverifiedUserAttributes,\n allowedMfaTypes: output.allowedMfaTypes,\n }\n}\n\nexport {\n setAllowedMfaTypes,\n setCodeDeliveryDetails,\n setMissingAttributes,\n setNextResetPasswordStep,\n setNextSignInStep,\n setNextSignUpStep,\n setRemoteError,\n setConfirmAttributeCompleteStep,\n setShouldVerifyUserAttributeStep,\n setSelectedUserAttribute,\n setSignInStep,\n setConfirmSignUpStep,\n setTotpSecretCode,\n setUsername,\n setUser,\n setUnverifiedUserAttributes,\n setSignInActorDoneData,\n}\n","/*\n * Copyright 2017 - 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * (C) 2025 GAHOJIN, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport type { FetchUserAttributesOutput, ResetPasswordOutput, SignInOutput, SignUpOutput } from '@aws-amplify/auth'\nimport type { AuthEvent, ResetPasswordContext, Step } from './types'\n\nconst SIGN_IN_STEP_MFA_CONFIRMATION: Step[] = ['CONFIRM_SIGN_IN_WITH_SMS_CODE', 'CONFIRM_SIGN_IN_WITH_TOTP_CODE', 'CONFIRM_SIGN_IN_WITH_EMAIL_CODE']\n\nexport const shouldConfirmSignInWithNewPassword = (event: AuthEvent): boolean => {\n const output = event.output as SignInOutput\n return output?.nextStep?.signInStep === 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED'\n}\n\nexport const shouldResetPasswordFromSignIn = (event: AuthEvent): boolean => {\n const output = event.output as SignInOutput\n return output?.nextStep?.signInStep === 'RESET_PASSWORD'\n}\n\nexport const shouldConfirmSignUpFromSignIn = (event: AuthEvent): boolean => {\n const output = event.output as SignInOutput\n return output?.nextStep?.signInStep === 'CONFIRM_SIGN_UP'\n}\n\nexport const shouldAutoSignIn = (event: AuthEvent): boolean => {\n const output = event.output as SignUpOutput\n return output?.nextStep?.signUpStep === 'COMPLETE_AUTO_SIGN_IN'\n}\n\nexport const hasCompletedSignIn = (event: AuthEvent): boolean => {\n const output = event.output as SignInOutput\n return output?.nextStep?.signInStep === 'DONE'\n}\n\nexport const hasCompletedSignUp = (event: AuthEvent): boolean => {\n const output = event.output as SignUpOutput\n return output?.nextStep?.signUpStep === 'DONE'\n}\n\nexport const hasCompletedResetPassword = (event: AuthEvent): boolean => {\n const output = event.output as ResetPasswordOutput\n return output?.nextStep?.resetPasswordStep === 'DONE'\n}\n\nexport const hasCompletedAttributeConfirmation = (step: Step): boolean => {\n return step === 'CONFIRM_ATTRIBUTE_COMPLETE'\n}\n\nexport const isConfirmUserAttributeStep = (step: Step): boolean => {\n return step === 'CONFIRM_ATTRIBUTE_WITH_CODE'\n}\n\nexport const isShouldConfirmUserAttributeStep = (step: Step): boolean => {\n return step === 'SHOULD_CONFIRM_USER_ATTRIBUTE'\n}\n\nexport const isResetPasswordStep = (step: Step): boolean => {\n return step === 'RESET_PASSWORD'\n}\n\nexport const isConfirmSignUpStep = (step: Step): boolean => {\n return step === 'CONFIRM_SIGN_UP'\n}\n\nexport const isShouldConfirmSignInWithNewPassword = (step: Step): boolean => {\n return step === 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED'\n}\n\nexport const shouldConfirmSignIn = (step: Step): boolean => {\n return SIGN_IN_STEP_MFA_CONFIRMATION.includes(step)\n}\n\nexport const shouldSetupTotp = (step: Step): boolean => {\n return step === 'CONTINUE_SIGN_IN_WITH_TOTP_SETUP'\n}\n\nexport const shouldSetupEmail = (step: Step): boolean => {\n return step === 'CONTINUE_SIGN_IN_WITH_EMAIL_SETUP'\n}\n\nexport const shouldSelectMfaType = (step: Step): boolean => {\n return ['CONTINUE_SIGN_IN_WITH_MFA_SELECTION', 'CONTINUE_SIGN_IN_WITH_MFA_SETUP_SELECTION'].includes(step)\n}\n\nexport const shouldResetPassword = (context: ResetPasswordContext, event: AuthEvent): boolean => {\n const step = event?.input?.step ?? context.step\n return step === 'RESET_PASSWORD'\n}\n\nexport const shouldConfirmResetPassword = (context: ResetPasswordContext, event: AuthEvent): boolean => {\n const step = event?.input?.step ?? context.step\n return step === 'CONFIRM_RESET_PASSWORD_WITH_CODE'\n}\n\nexport const shouldVerifyAttribute = (event: AuthEvent): boolean => {\n const { email, phone_number, phone_number_verified, email_verified } = (event.output ?? {}) as FetchUserAttributesOutput\n\n // if neither email nor phone_number exist\n // there is nothing to verify\n if (!email && !phone_number) {\n return false\n }\n\n // email/phone_verified is returned as a string\n const emailVerified = email_verified === 'true'\n const phoneVerified = phone_number_verified === 'true'\n\n // only request verification if both email and phone are not verified\n return !emailVerified && !phoneVerified\n}\n\nexport const isUserAlreadyConfirmed = (event: AuthEvent): boolean => {\n return event.error?.message === 'User is already confirmed.'\n}\n","import type {\n ConfirmSignInInput,\n ConfirmSignInOutput,\n ResendSignUpCodeInput,\n ResendSignUpCodeOutput,\n ResetPasswordInput,\n ResetPasswordOutput,\n SignInInput,\n SignInOutput,\n SignInWithRedirectInput,\n} from '@aws-amplify/auth'\nimport { assign, fromPromise, sendParent, setup } from 'xstate'\nimport {\n setAllowedMfaTypes,\n setCodeDeliveryDetails,\n setConfirmSignUpStep,\n setNextSignInStep,\n setRemoteError,\n setShouldVerifyUserAttributeStep,\n setSignInActorDoneData,\n setTotpSecretCode,\n setUnverifiedUserAttributes,\n setUsername,\n} from '../actions'\nimport {\n hasCompletedSignIn,\n isShouldConfirmSignInWithNewPassword,\n shouldConfirmSignIn,\n shouldConfirmSignInWithNewPassword,\n shouldConfirmSignUpFromSignIn,\n shouldResetPasswordFromSignIn,\n shouldSelectMfaType,\n shouldSetupEmail,\n shouldSetupTotp,\n shouldVerifyAttribute,\n} from '../guards'\nimport type { AuthEvent, Handlers, SignInContext } from '../types'\n\ntype SignInHandlers = Pick<Handlers, 'confirmSignIn' | 'fetchUserAttributes' | 'resetPassword' | 'signIn' | 'signInWithRedirect' | 'resendSignUpCode'>\n\n/**\n * @internal\n */\nexport const signInActor = (handlers: SignInHandlers, overridesContext?: SignInContext) => {\n const machineSetup = setup({\n types: {\n context: {} as SignInContext,\n events: {} as AuthEvent,\n },\n guards: {\n shouldConfirmSignIn: ({ context: { step } }) => shouldConfirmSignIn(step),\n shouldSetupTotp: ({ context: { step } }) => shouldSetupTotp(step),\n shouldSetupEmail: ({ context: { step } }) => shouldSetupEmail(step),\n shouldSelectMfaType: ({ context: { step } }) => shouldSelectMfaType(step),\n shouldVerifyAttribute: ({ event }) => shouldVerifyAttribute(event),\n shouldConfirmSignInWithNewPassword: ({ event }) => shouldConfirmSignInWithNewPassword(event),\n shouldResetPasswordFromSignIn: ({ event }) => shouldResetPasswordFromSignIn(event),\n shouldConfirmSignUpFromSignIn: ({ event }) => shouldConfirmSignUpFromSignIn(event),\n hasCompletedSignIn: ({ event }) => hasCompletedSignIn(event),\n isShouldConfirmSignInWithNewPassword: ({ context: { step } }) => isShouldConfirmSignInWithNewPassword(step),\n },\n actors: {\n fetchUserAttributes: fromPromise(() => handlers.fetchUserAttributes()),\n resetPassword: fromPromise<ResetPasswordOutput, ResetPasswordInput>(({ input }) => handlers.resetPassword(input)),\n resendSignUpCode: fromPromise<ResendSignUpCodeOutput, ResendSignUpCodeInput>(({ input }) => handlers.resendSignUpCode(input)),\n signIn: fromPromise<SignInOutput, SignInInput>(({ input }) => handlers.signIn(input)),\n confirmSignIn: fromPromise<ConfirmSignInOutput, ConfirmSignInInput>(({ input }) => handlers.confirmSignIn(input)),\n signInWithRedirect: fromPromise<void, SignInWithRedirectInput>(({ input }) => handlers.signInWithRedirect(input)),\n },\n actions: {\n sendUpdate: sendParent({ type: 'CHILD_CHANGED' }),\n setShouldVerifyUserAttributeStep: assign({ step: setShouldVerifyUserAttributeStep }),\n setUnverifiedUserAttributes: assign({ unverifiedUserAttributes: setUnverifiedUserAttributes }),\n setCodeDeliveryDetails: assign({ codeDeliveryDetails: setCodeDeliveryDetails }),\n setConfirmAttributeCompleteStep: assign({ step: 'CONFIRM_ATTRIBUTE_COMPLETE' }),\n setTotpSecretCode: assign({ totpSecretCode: setTotpSecretCode }),\n setAllowedMfaTypes: assign({ allowedMfaTypes: setAllowedMfaTypes }),\n setNextSignInStep: assign({ step: setNextSignInStep }),\n setConfirmSignUpStep: assign({ step: setConfirmSignUpStep }),\n setActorDoneData: assign(setSignInActorDoneData),\n setUsername: assign({ username: setUsername }),\n setRemoteError: assign({ remoteError: setRemoteError }),\n clearError: assign({ remoteError: undefined }),\n },\n })\n\n const handleSignInResponse = machineSetup.createStateConfig({\n onDone: [\n { guard: 'hasCompletedSignIn', actions: 'setNextSignInStep', target: '#signInActor.fetchUserAttributes' },\n { guard: 'shouldConfirmSignInWithNewPassword', actions: 'setNextSignInStep', target: '#signInActor.forceChangePassword' },\n { guard: 'shouldResetPasswordFromSignIn', actions: 'setNextSignInStep', target: '#signInActor.resetPassword' },\n { guard: 'shouldConfirmSignUpFromSignIn', actions: 'setNextSignInStep', target: '#signInActor.resendSignUpCode' },\n { actions: ['setNextSignInStep', 'setTotpSecretCode', 'setAllowedMfaTypes'], target: '#signInActor.init' },\n ],\n })\n const confirmSignInState = machineSetup.createStateConfig({\n initial: 'idle',\n exit: 'clearError',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { target: 'submit' },\n SIGN_IN: { target: '#signInActor.signIn' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'confirmSignIn',\n input: ({ event }) => event.data as ConfirmSignInInput,\n ...handleSignInResponse,\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n })\n\n return machineSetup.createMachine({\n id: 'signInActor',\n context: ({ input }) => ({ step: 'SIGN_IN', ...overridesContext, ...input }),\n initial: 'init',\n states: {\n init: {\n always: [\n { guard: 'shouldConfirmSignIn', target: '#signInActor.confirmSignIn' },\n { guard: 'shouldSetupTotp', target: '#signInActor.setupTotp' },\n { guard: 'shouldSetupEmail', target: '#signInActor.setupEmail' },\n { guard: 'shouldSelectMfaType', target: '#signInActor.selectMfaType' },\n { guard: 'isShouldConfirmSignInWithNewPassword', actions: 'setActorDoneData', target: '#signInActor.forceChangePassword' },\n { target: '#signInActor.signIn' },\n ],\n },\n federatedSignIn: {\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'signInWithRedirect',\n input: ({ event }) => event.data as SignInWithRedirectInput,\n onDone: { target: '#signInActor.signIn' },\n onError: { actions: 'setRemoteError', target: '#signInActor.signIn' },\n },\n },\n fetchUserAttributes: {\n invoke: {\n src: 'fetchUserAttributes',\n onDone: [\n {\n guard: 'shouldVerifyAttribute',\n actions: ['setShouldVerifyUserAttributeStep', 'setUnverifiedUserAttributes'],\n target: '#signInActor.resolved',\n },\n { actions: 'setConfirmAttributeCompleteStep', target: '#signInActor.resolved' },\n ],\n onError: { actions: 'setConfirmAttributeCompleteStep', target: '#signInActor.resolved' },\n },\n },\n resendSignUpCode: {\n tags: 'pending',\n invoke: {\n src: 'resendSignUpCode',\n input: ({ context: { username }, event }) => ({ username, ...event.data }) as ResendSignUpCodeInput,\n onDone: { actions: 'setCodeDeliveryDetails', target: '#signInActor.resolved' },\n onError: { actions: 'setRemoteError', target: '#signInActor.signIn' },\n },\n },\n resetPassword: {\n invoke: {\n src: 'resetPassword',\n input: ({ context: { username }, event }) => ({ username, ...event.data }) as ResetPasswordInput,\n onDone: { actions: 'setCodeDeliveryDetails', target: '#signInActor.resolved' },\n onError: { actions: ['setRemoteError', 'sendUpdate'] },\n },\n },\n signIn: {\n initial: 'idle',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n FEDERATED_SIGN_IN: { target: '#signInActor.federatedSignIn' },\n SUBMIT: { target: 'submit' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'setUsername', 'clearError'],\n invoke: {\n src: 'signIn',\n input: ({ event }) => event.data as SignInInput,\n ...handleSignInResponse,\n onError: [\n { guard: 'shouldConfirmSignUpFromSignIn', actions: 'setConfirmSignUpStep', target: '#signInActor.resendSignUpCode' },\n { actions: 'setRemoteError', target: 'idle' },\n ],\n },\n },\n },\n },\n confirmSignIn: confirmSignInState,\n forceChangePassword: {\n initial: 'idle',\n entry: 'clearError',\n exit: 'clearError',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: { SUBMIT: { target: 'submit' } },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'confirmSignIn',\n input: ({ event }) => event.data as ConfirmSignInInput,\n ...handleSignInResponse,\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n setupTotp: confirmSignInState,\n setupEmail: confirmSignInState,\n selectMfaType: confirmSignInState,\n resolved: { type: 'final' },\n },\n output: ({ context }) => context,\n })\n}\n","import {\n autoSignIn,\n confirmResetPassword,\n confirmSignIn,\n confirmSignUp,\n confirmUserAttribute,\n fetchUserAttributes,\n getCurrentUser,\n resendSignUpCode,\n resetPassword,\n sendUserAttributeVerificationCode,\n signIn,\n signInWithRedirect,\n signOut,\n signUp,\n} from '@aws-amplify/auth'\nimport type { Handlers } from './types'\n\nexport const defaultHandlers: Handlers = {\n getCurrentUser,\n fetchUserAttributes,\n signIn,\n signInWithRedirect,\n signUp,\n signOut,\n autoSignIn: () => autoSignIn(),\n confirmSignIn,\n confirmSignUp,\n confirmResetPassword,\n confirmUserAttribute,\n resetPassword,\n resendSignUpCode,\n sendUserAttributeVerificationCode,\n}\n","import type { ConfirmResetPasswordInput, ResetPasswordInput, ResetPasswordOutput } from '@aws-amplify/auth'\nimport { assign, fromPromise, sendParent, setup } from 'xstate'\nimport { setCodeDeliveryDetails, setNextResetPasswordStep, setNextSignInStep, setRemoteError, setUsername } from '../actions'\nimport { hasCompletedResetPassword, shouldConfirmResetPassword, shouldResetPassword } from '../guards'\nimport type { AuthEvent, Handlers, ResetPasswordContext } from '../types'\n\ntype ForgotPasswordHandlers = Pick<Handlers, 'resetPassword' | 'confirmResetPassword'>\n\n/**\n * @internal\n */\nexport const forgotPasswordActor = (handlers: ForgotPasswordHandlers, overridesContext?: ResetPasswordContext) => {\n return setup({\n types: {\n context: {} as ResetPasswordContext,\n events: {} as AuthEvent,\n },\n guards: {\n shouldResetPassword: ({ context, event }) => shouldResetPassword(context, event),\n shouldConfirmResetPassword: ({ context, event }) => shouldConfirmResetPassword(context, event),\n hasCompletedResetPassword: ({ event }) => hasCompletedResetPassword(event),\n },\n actors: {\n resetPassword: fromPromise<ResetPasswordOutput, ResetPasswordInput>(({ input }) => handlers.resetPassword(input)),\n confirmResetPassword: fromPromise<void, ConfirmResetPasswordInput>(({ input }) => handlers.confirmResetPassword(input)),\n },\n actions: {\n sendUpdate: sendParent({ type: 'CHILD_CHANGED' }),\n setCodeDeliveryDetails: assign({ codeDeliveryDetails: setCodeDeliveryDetails }),\n setNextResetPasswordStep: assign({ step: setNextResetPasswordStep }),\n setSignInStep: assign({ step: setNextSignInStep }),\n setUsername: assign({ username: setUsername }),\n setRemoteError: assign({ remoteError: setRemoteError }),\n clearError: assign({ remoteError: undefined }),\n },\n }).createMachine({\n id: 'forgotPasswordActor',\n initial: 'init',\n context: ({ input }) => ({ step: 'FORGOT_PASSWORD', ...overridesContext, ...input }),\n states: {\n init: {\n always: [\n { guard: 'shouldResetPassword', target: '#forgotPasswordActor.confirmResetPassword' },\n { guard: 'shouldConfirmResetPassword', target: '#forgotPasswordActor.confirmResetPassword' },\n { target: '#forgotPasswordActor.forgotPassword' },\n ],\n },\n forgotPassword: {\n initial: 'idle',\n exit: 'clearError',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { target: 'submit' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'setUsername', 'clearError'],\n invoke: {\n src: 'resetPassword',\n input: ({ context: { username } }) => ({ username }) as ResetPasswordInput,\n onDone: [{ actions: ['setCodeDeliveryDetails', 'setNextResetPasswordStep'], target: '#forgotPasswordActor.confirmResetPassword' }],\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n confirmResetPassword: {\n initial: 'idle',\n exit: 'clearError',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { target: 'submit' },\n RESEND: { target: 'resendCode' },\n },\n },\n resendCode: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'resetPassword',\n input: ({ context: { username } }) => ({ username }) as ResetPasswordInput,\n onDone: { target: 'idle' },\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'confirmResetPassword',\n input: ({ context, event }) => ({ username: context.username, ...event.data }) as ConfirmResetPasswordInput,\n onDone: [\n { guard: 'hasCompletedResetPassword', actions: 'setNextResetPasswordStep', target: '#forgotPasswordActor.resolved' },\n { actions: 'setSignInStep', target: '#forgotPasswordActor.resolved' },\n ],\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n resolved: { type: 'final' },\n },\n output: ({ context }) => context,\n })\n}\n","import { fromPromise, setup } from 'xstate'\nimport type { Handlers, SignOutContext } from '../types'\n\ntype SignOutHandlers = Pick<Handlers, 'signOut'>\n\n/**\n * @internal\n */\nexport const signOutActor = (handlers: SignOutHandlers) => {\n return setup({\n types: {\n context: {} as SignOutContext,\n },\n actors: {\n signOut: fromPromise(() => handlers.signOut()),\n },\n }).createMachine({\n id: 'signOutActor',\n initial: 'pending',\n context: {},\n states: {\n pending: {\n tags: 'pending',\n invoke: {\n src: 'signOut',\n onDone: 'resolved',\n onError: 'rejected',\n },\n },\n resolved: { type: 'final' },\n rejected: { type: 'final' },\n },\n output: ({ context }) => context,\n })\n}\n","import type {\n ConfirmSignUpInput,\n ConfirmSignUpOutput,\n ResendSignUpCodeInput,\n ResendSignUpCodeOutput,\n ResetPasswordInput,\n ResetPasswordOutput,\n SignInWithRedirectInput,\n SignUpInput,\n SignUpOutput,\n} from '@aws-amplify/auth'\nimport { assign, fromPromise, sendParent, setup } from 'xstate'\nimport { setCodeDeliveryDetails, setNextSignUpStep, setRemoteError, setUnverifiedUserAttributes, setUsername } from '../actions'\nimport {\n hasCompletedSignIn,\n hasCompletedSignUp,\n isUserAlreadyConfirmed,\n shouldAutoSignIn,\n shouldConfirmSignInWithNewPassword,\n shouldConfirmSignUpFromSignIn,\n shouldResetPasswordFromSignIn,\n shouldVerifyAttribute,\n} from '../guards'\nimport type { AuthEvent, Handlers, SignUpContext } from '../types'\n\ntype SignUpHandlers = Pick<\n Handlers,\n 'autoSignIn' | 'confirmSignUp' | 'signInWithRedirect' | 'signUp' | 'resetPassword' | 'resendSignUpCode' | 'fetchUserAttributes'\n>\n\n/**\n * @internal\n */\nexport const signUpActor = (handlers: SignUpHandlers, overridesContext?: SignUpContext) => {\n return setup({\n types: {\n context: {} as SignUpContext,\n events: {} as AuthEvent,\n },\n guards: {\n hasCompletedSignIn: ({ event }) => hasCompletedSignIn(event),\n hasCompletedSignUp: ({ event }) => hasCompletedSignUp(event),\n isUserAlreadyConfirmed: ({ event }) => isUserAlreadyConfirmed(event),\n shouldAutoSignIn: ({ event }) => shouldAutoSignIn(event),\n shouldConfirmSignInWithNewPassword: ({ event }) => shouldConfirmSignInWithNewPassword(event),\n shouldConfirmSignUp: ({ context: { step } }) => step === 'CONFIRM_SIGN_UP',\n shouldConfirmSignUpFromSignIn: ({ event }) => shouldConfirmSignUpFromSignIn(event),\n shouldResetPasswordFromSignIn: ({ event }) => shouldResetPasswordFromSignIn(event),\n shouldVerifyAttribute: ({ event }) => shouldVerifyAttribute(event),\n },\n actors: {\n autoSignIn: fromPromise(() => handlers.autoSignIn()),\n confirmSignUp: fromPromise<ConfirmSignUpOutput, ConfirmSignUpInput>(({ input }) => handlers.confirmSignUp(input)),\n fetchUserAttributes: fromPromise(() => handlers.fetchUserAttributes()),\n resetPassword: fromPromise<ResetPasswordOutput, ResetPasswordInput>(({ input }) => handlers.resetPassword(input)),\n resendSignUpCode: fromPromise<ResendSignUpCodeOutput, ResendSignUpCodeInput>(({ input }) => handlers.resendSignUpCode(input)),\n signUp: fromPromise<SignUpOutput, SignUpInput>(({ input }) => handlers.signUp(input)),\n signInWithRedirect: fromPromise<void, SignInWithRedirectInput>(({ input }) => handlers.signInWithRedirect(input)),\n },\n actions: {\n sendUpdate: sendParent({ type: 'CHILD_CHANGED' }),\n setShouldVerifyUserAttributeStep: assign({ unverifiedUserAttributes: setUnverifiedUserAttributes }),\n setConfirmAttributeCompleteStep: assign({ step: 'CONFIRM_ATTRIBUTE_COMPLETE' }),\n setCodeDeliveryDetails: assign({ codeDeliveryDetails: setCodeDeliveryDetails }),\n setNextSignUpStep: assign({ step: setNextSignUpStep }),\n setUsername: assign({ username: setUsername }),\n setRemoteError: assign({ remoteError: setRemoteError }),\n clearError: assign({ remoteError: undefined }),\n },\n }).createMachine({\n id: 'signUpActor',\n initial: 'init',\n context: ({ input }) => ({ step: 'SIGN_UP', ...overridesContext, ...input }),\n states: {\n init: {\n always: [{ guard: 'shouldConfirmSignUp', target: 'confirmSignUp' }, { target: '#signUpActor.signUp' }],\n },\n autoSignIn: {\n tags: 'pending',\n invoke: {\n src: 'autoSignIn',\n onDone: [\n { guard: 'hasCompletedSignIn', target: '#signUpActor.fetchUserAttributes' },\n { guard: 'shouldConfirmSignInWithNewPassword', target: '#signUpActor.resolved' },\n { guard: 'shouldResetPasswordFromSignIn', target: '#signUpActor.resetPassword' },\n { guard: 'shouldConfirmSignUpFromSignIn', target: '#signUpActor.resendSignUpCode' },\n { target: '#signUpActor.resolved' },\n ],\n onError: { target: '#signUpActor.resolved' },\n },\n },\n fetchUserAttributes: {\n invoke: {\n src: 'fetchUserAttributes',\n onDone: [\n {\n guard: 'shouldVerifyAttribute',\n actions: ['setShouldVerifyUserAttributeStep', 'setConfirmAttributeCompleteStep'],\n target: '#signUpActor.resolved',\n },\n { actions: 'setConfirmAttributeCompleteStep', target: '#signUpActor.resolved' },\n ],\n onError: { actions: 'setConfirmAttributeCompleteStep', target: '#signUpActor.resolved' },\n },\n },\n federatedSignIn: {\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'signInWithRedirect',\n input: ({ event }) => event.data as SignInWithRedirectInput,\n onDone: 'signUp',\n onError: { actions: 'setRemoteError', target: '#signUpActor.signUp' },\n },\n },\n resetPassword: {\n invoke: {\n src: 'resetPassword',\n input: ({ event }) => event.data as ResetPasswordInput,\n onDone: { actions: 'setCodeDeliveryDetails', target: '#signUpActor.resolved' },\n onError: { actions: 'setRemoteError' },\n },\n },\n resendSignUpCode: {\n tags: 'pending',\n entry: 'sendUpdate',\n exit: 'sendUpdate',\n invoke: {\n src: 'resendSignUpCode',\n input: ({ context: { username }, event }) => ({ username, ...event.data }) as ResendSignUpCodeInput,\n onDone: { actions: 'setCodeDeliveryDetails', target: '#signUpActor.confirmSignUp' },\n onError: [{ guard: 'isUserAlreadyConfirmed', target: '#signUpActor.resolved' }, { actions: 'setRemoteError' }],\n },\n },\n signUp: {\n initial: 'idle',\n exit: 'clearError',\n on: {\n FEDERATED_SIGN_IN: { target: '#signUpActor.federatedSignIn' },\n },\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { target: 'submit' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'setUsername', 'clearError'],\n invoke: {\n src: 'signUp',\n input: ({ event }) => event.data as SignUpInput,\n onDone: [\n { guard: 'hasCompletedSignUp', actions: 'setNextSignUpStep', target: '#signUpActor.resolved' },\n { guard: 'shouldAutoSignIn', actions: 'setNextSignUpStep', target: '#signUpActor.autoSignIn' },\n { actions: ['setCodeDeliveryDetails', 'setNextSignUpStep'], target: '#signUpActor.init' },\n ],\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n confirmSignUp: {\n initial: 'idle',\n exit: 'clearError',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { target: 'submit' },\n RESEND: { target: '#signUpActor.resendSignUpCode' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'confirmSignUp',\n input: ({ context: { username }, event }) => ({ username, ...event.data }) as ConfirmSignUpInput,\n onDone: [\n { guard: 'hasCompletedSignUp', actions: 'setNextSignUpStep', target: '#signUpActor.resolved' },\n { guard: 'shouldAutoSignIn', actions: 'setNextSignUpStep', target: '#signUpActor.autoSignIn' },\n { actions: 'setNextSignUpStep', target: '#signUpActor.init' },\n ],\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n resolved: { type: 'final' },\n },\n output: ({ context }) => context,\n })\n}\n","import type { ConfirmUserAttributeInput, SendUserAttributeVerificationCodeInput, SendUserAttributeVerificationCodeOutput } from '@aws-amplify/auth'\nimport { assign, fromPromise, sendParent, setup } from 'xstate'\nimport { setCodeDeliveryDetails, setConfirmAttributeCompleteStep, setRemoteError, setSelectedUserAttribute } from '../actions'\nimport type { AuthEvent, Handlers, VerifyUserContext } from '../types'\n\ntype VerifyUserAttributesHandlers = Pick<Handlers, 'sendUserAttributeVerificationCode' | 'confirmUserAttribute'>\n\n/**\n * @internal\n */\nexport const verifyUserAttributesActor = (handlers: VerifyUserAttributesHandlers, overridesContext?: VerifyUserContext) => {\n return setup({\n types: {\n context: {} as VerifyUserContext,\n events: {} as AuthEvent,\n },\n guards: {},\n actors: {\n sendUserAttributeVerificationCode: fromPromise<SendUserAttributeVerificationCodeOutput, SendUserAttributeVerificationCodeInput>(({ input }) =>\n handlers.sendUserAttributeVerificationCode(input),\n ),\n confirmVerifyUserAttribute: fromPromise<void, ConfirmUserAttributeInput>(({ input }) => handlers.confirmUserAttribute(input)),\n },\n actions: {\n sendUpdate: sendParent({ type: 'CHILD_CHANGED' }),\n setCodeDeliveryDetails: assign({ codeDeliveryDetails: setCodeDeliveryDetails }),\n setSelectedUserAttribute: assign({ selectedUserAttribute: setSelectedUserAttribute }),\n setConfirmAttributeCompleteStep: assign({ step: setConfirmAttributeCompleteStep }),\n setRemoteError: assign({ remoteError: setRemoteError }),\n clearError: assign({ remoteError: undefined }),\n clearSelectedUserAttribute: assign({ selectedUserAttribute: undefined }),\n },\n }).createMachine({\n id: 'vefiryUserAttributesActor',\n initial: 'selectUserAttributes',\n context: ({ input }) => ({ step: 'SIGN_IN', ...overridesContext, ...input }),\n states: {\n selectUserAttributes: {\n initial: 'idle',\n exit: 'clearError',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SKIP: { target: '#vefiryUserAttributesActor.resolved' },\n SUBMIT: { target: 'submit' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'sendUserAttributeVerificationCode',\n input: ({ event }) => event.data as SendUserAttributeVerificationCodeInput,\n onDone: {\n actions: ['setSelectedUserAttribute', 'setCodeDeliveryDetails'],\n target: '#vefiryUserAttributesActor.confirmVerifyUserAttribute',\n },\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n confirmVerifyUserAttribute: {\n initial: 'idle',\n exit: 'clearError',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { target: 'submit' },\n RESEND: { target: 'resendCode' },\n SKIP: { target: '#vefiryUserAttributesActor.resolved' },\n },\n },\n resendCode: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'sendUserAttributeVerificationCode',\n input: ({ context, event }) =>\n ({ userAttributeKey: context.selectedUserAttribute, ...event.data }) as SendUserAttributeVerificationCodeInput,\n onDone: { target: 'idle' },\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'confirmVerifyUserAttribute',\n input: ({ context, event }) => ({ userAttributeKey: context.selectedUserAttribute, ...event.data }) as ConfirmUserAttributeInput,\n onDone: { actions: ['setConfirmAttributeCompleteStep', 'clearSelectedUserAttribute'], target: '#vefiryUserAttributesActor.resolved' },\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n resolved: { type: 'final' },\n },\n output: ({ context }) => context,\n })\n}\n","import type { AuthUser } from '@aws-amplify/auth'\nimport { assign, forwardTo, fromPromise, setup } from 'xstate'\nimport type { AuthMachineHubHandlerOptions } from '../authenticator/types'\nimport { signInActor } from '../machines/signIn/actor'\nimport { defaultHandlers } from './defaultHandlers'\nimport { forgotPasswordActor } from './forgotPassword/actor'\nimport {\n hasCompletedAttributeConfirmation,\n isConfirmSignUpStep,\n isConfirmUserAttributeStep,\n isResetPasswordStep,\n isShouldConfirmUserAttributeStep,\n} from './guards'\nimport { signOutActor } from './signOut/actor'\nimport { signUpActor } from './signUp/actor'\nimport type { ActorDoneData, AuthContext, AuthEvent, Handlers } from './types'\nimport { verifyUserAttributesActor } from './verifyUserAttributes/actor'\n\nexport type AuthenticatorMachineOptions = AuthContext['config'] & {\n handlers?: Partial<Handlers>\n} & AuthMachineHubHandlerOptions\n\n/**\n * @internal\n */\nexport const createAuthenticatorMachine = (options?: AuthenticatorMachineOptions) => {\n const { handlers: customHandlers, ...config } = options ?? {}\n const handlers = { ...defaultHandlers, ...customHandlers }\n\n return setup({\n types: {\n context: {} as AuthContext,\n events: {} as AuthEvent,\n },\n guards: {\n hasCompletedAttributeConfirmation: ({ event: { output } }) => hasCompletedAttributeConfirmation(output?.step),\n hasUser: ({ context }) => !!context.user,\n isInitialStateSignUp: ({ context }) => context.config?.initialState === 'signUp',\n isInitialStateResetPassword: ({ context }) => context.config?.initialState === 'forgotPassword',\n isConfirmSignUpStep: ({ event: { output } }) => isConfirmSignUpStep(output?.step),\n isConfirmUserAttributeStep: ({ event: { output } }) => isConfirmUserAttributeStep(output?.step),\n isShouldConfirmUserAttributeStep: ({ event: { output } }) => isShouldConfirmUserAttributeStep(output?.step),\n isResetPasswordStep: ({ event: { output } }) => isResetPasswordStep(output?.step),\n },\n actors: {\n getCurrentUser: fromPromise(() => handlers.getCurrentUser()),\n invokeSignInActor: signInActor(handlers),\n invokeSignUpActor: signUpActor(handlers),\n invokeForgotPasswordActor: forgotPasswordActor(handlers),\n invokeVerifyUserAttributesActor: verifyUserAttributesActor(handlers),\n invokeSignOutActor: signOutActor(handlers),\n },\n actions: {\n clearActorDoneData: assign({ actorDoneData: undefined }),\n clearUser: assign({ user: undefined }),\n forwardToActor: forwardTo('childActor'),\n setUser: assign({ user: ({ event }) => event.output as AuthUser }),\n setActorDoneData: assign({ actorDoneData: ({ event }) => event.output as ActorDoneData }),\n },\n }).createMachine({\n id: 'authenticator',\n initial: 'idle',\n context: {\n config,\n user: undefined,\n },\n states: {\n idle: {\n invoke: {\n src: 'getCurrentUser',\n onDone: { actions: 'setUser', target: '#authenticator.setup' },\n onError: { target: '#authenticator.setup' },\n },\n },\n setup: {\n initial: 'init',\n states: {\n init: {\n always: [\n { guard: 'hasUser', target: '#authenticator.authenticated' },\n { guard: 'isInitialStateSignUp', target: '#authenticator.signUpActor' },\n { guard: 'isInitialStateResetPassword', target: '#authenticator.forgotPasswordActor' },\n { target: '#authenticator.signInActor' },\n ],\n },\n },\n },\n getCurrentUser: {\n invoke: {\n src: 'getCurrentUser',\n onDone: { actions: 'setUser', target: '#authenticator.authenticated' },\n onError: { target: 'setup' },\n },\n },\n signInActor: {\n invoke: {\n id: 'childActor',\n src: 'invokeSignInActor',\n input: ({ context }) => context.actorDoneData,\n onDone: [\n { guard: 'hasCompletedAttributeConfirmation', target: '#authenticator.getCurrentUser' },\n { guard: 'isShouldConfirmUserAttributeStep', actions: 'setActorDoneData', target: '#authenticator.verifyUserAttributesActor' },\n { guard: 'isResetPasswordStep', actions: 'setActorDoneData', target: '#authenticator.forgotPasswordActor' },\n { guard: 'isConfirmSignUpStep', actions: 'setActorDoneData', target: '#authenticator.signUpActor' },\n ],\n },\n entry: 'clearActorDoneData',\n on: {\n FORGOT_PASSWORD: { target: '#authenticator.forgotPasswordActor' },\n SIGN_UP: { target: '#authenticator.signUpActor' },\n SIGN_IN: { actions: 'forwardToActor' },\n FEDERATED_SIGN_IN: { actions: 'forwardToActor' },\n SUBMIT: { actions: 'forwardToActor' },\n },\n },\n signUpActor: {\n invoke: {\n id: 'childActor',\n src: 'invokeSignUpActor',\n input: ({ context }) => context.actorDoneData,\n onDone: [\n { guard: 'hasCompletedAttributeConfirmation', actions: 'clearActorDoneData', target: '#authenticator.getCurrentUser' },\n { guard: 'isShouldConfirmUserAttributeStep', actions: 'setActorDoneData', target: '#authenticator.verifyUserAttributesActor' },\n { guard: 'isConfirmUserAttributeStep', actions: 'clearActorDoneData', target: '#authenticator.verifyUserAttributesActor' },\n { actions: 'setActorDoneData', target: '#authenticator.signInActor' },\n ],\n },\n on: {\n SIGN_IN: { target: '#authenticator.signInActor' },\n FEDERATED_SIGN_IN: { actions: 'forwardToActor' },\n RESEND: { actions: 'forwardToActor' },\n SUBMIT: { actions: 'forwardToActor' },\n },\n },\n forgotPasswordActor: {\n invoke: {\n id: 'childActor',\n src: 'invokeForgotPasswordActor',\n input: ({ context }) => context.actorDoneData,\n onDone: { target: '#authenticator.signInActor' },\n },\n exit: 'clearActorDoneData',\n on: {\n SIGN_IN: { target: '#authenticator.signInActor' },\n RESEND: { actions: 'forwardToActor' },\n SUBMIT: { actions: 'forwardToActor' },\n },\n },\n verifyUserAttributesActor: {\n invoke: {\n id: 'childActor',\n src: 'invokeVerifyUserAttributesActor',\n input: ({ context }) => context.actorDoneData,\n onDone: { actions: 'setActorDoneData', target: '#authenticator.getCurrentUser' },\n },\n on: {\n SKIP: { actions: 'forwardToActor' },\n RESEND: { actions: 'forwardToActor' },\n SUBMIT: { actions: 'forwardToActor' },\n },\n },\n authenticated: {\n initial: 'idle',\n on: {\n SIGN_OUT: { target: '#authenticator.signOut' },\n },\n states: {\n idle: {\n on: {\n TOKEN_REFRESH: { target: 'refreshUser' },\n },\n },\n refreshUser: {\n invoke: {\n src: 'getCurrentUser',\n onDone: { actions: 'setUser', target: 'idle' },\n onError: { target: '#authenticator.signOut' },\n },\n },\n },\n },\n signOut: {\n invoke: {\n id: 'childActor',\n src: 'invokeSignOutActor',\n onDone: { actions: 'clearUser', target: '#authenticator.setup' },\n },\n exit: 'clearActorDoneData',\n },\n },\n on: {\n CHILD_CHANGED: { actions: assign(({ context }) => context) },\n SIGN_IN_WITH_REDIRECT: { target: '#authenticator.getCurrentUser' },\n },\n })\n}\n"],"mappings":";;;AA4BA,MAAM,qBAAqB,EAAE,YAA8C;CACzE,MAAM,EAAE,iBAAkB,MAAM,QAAQ,UAAU,oBAAoB,EAAE;AACxE,QAAO;;AAGT,MAAM,sBAAsB,EAAE,YAAqD;AACjF,QAAO,MAAM,QAAQ,UAAU;;AAWjC,MAAM,qBAAqB,EAAE,YAAsC;CACjE,MAAM,SAAU,MAAM,UAAU,EAAE;AAClC,QAAO,OAAO,UAAU,eAAe,SAAS,qBAAqB,OAAO,UAAU;;AAGxF,MAAM,qBAAqB,EAAE,YAAsC;CACjE,MAAM,SAAU,MAAM,UAAU,EAAE;AAClC,QAAO,OAAO,UAAU,eAAe,SAAS,qBAAqB,OAAO,UAAU;;AAGxF,MAAM,4BAA4B,EAAE,YAA6C;CAC/E,MAAM,SAAU,MAAM,UAAU,EAAE;AAClC,QAAO,OAAO,UAAU,sBAAsB,SAAS,4BAA4B,OAAO,UAAU;;AAKtG,MAAM,kBAAkB,EAAE,YAAkC;CAC1D,MAAM,QAAQ,MAAM;AACpB,KAAI,OAAO,SAAS,kBAClB,QAAO;AAET,QAAO,OAAO,WAAW,OAAO,MAAM;;AAGxC,MAAM,eAAe,EAAE,YAA8C,MAAM,MAAM;AAIjF,MAAM,0BAA0B,EAAE,YAAiE;CACjG,MAAM,SAAS,MAAM;AACrB,KAAI,QAAQ,UAAU,oBACpB,QAAO,QAAQ,UAAU;AAE3B,QAAO;;AAGT,MAAM,+BAA+B,EAAE,YAAoD;CACzF,MAAM,EAAE,OAAO,iBAAiB,MAAM;AAOtC,QALiC;EAC/B,GAAI,SAAS,EAAE,OAAO;EACtB,GAAI,gBAAgB,EAAE,cAAc;EACrC;;AAKH,MAAM,4BAA4B,EAAE,YAAkE;AAEpG,SADe,OAAO,SACP;;AAGjB,MAAM,0BAA0B,EAAE,YAAwD;CACxF,MAAM,SAAS,OAAO,UAAU,EAAE;AAClC,QAAO;EACL,qBAAqB,OAAO;EAC5B,mBAAmB,OAAO;EAC1B,aAAa,OAAO;EACpB,UAAU,OAAO;EACjB,MAAM,OAAO;EACb,gBAAgB,OAAO;EACvB,0BAA0B,OAAO;EACjC,iBAAiB,OAAO;EACzB;;;;AC/FH,MAAM,gCAAwC;CAAC;CAAiC;CAAkC;CAAkC;AAEpJ,MAAa,sCAAsC,UAA8B;AAE/E,QADe,MAAM,QACN,UAAU,eAAe;;AAG1C,MAAa,iCAAiC,UAA8B;AAE1E,QADe,MAAM,QACN,UAAU,eAAe;;AAG1C,MAAa,iCAAiC,UAA8B;AAE1E,QADe,MAAM,QACN,UAAU,eAAe;;AAG1C,MAAa,oBAAoB,UAA8B;AAE7D,QADe,MAAM,QACN,UAAU,eAAe;;AAG1C,MAAa,sBAAsB,UAA8B;AAE/D,QADe,MAAM,QACN,UAAU,eAAe;;AAG1C,MAAa,sBAAsB,UAA8B;AAE/D,QADe,MAAM,QACN,UAAU,eAAe;;AAG1C,MAAa,6BAA6B,UAA8B;AAEtE,QADe,MAAM,QACN,UAAU,sBAAsB;;AAGjD,MAAa,qCAAqC,SAAwB;AACxE,QAAO,SAAS;;AAGlB,MAAa,8BAA8B,SAAwB;AACjE,QAAO,SAAS;;AAGlB,MAAa,oCAAoC,SAAwB;AACvE,QAAO,SAAS;;AAGlB,MAAa,uBAAuB,SAAwB;AAC1D,QAAO,SAAS;;AAGlB,MAAa,uBAAuB,SAAwB;AAC1D,QAAO,SAAS;;AAGlB,MAAa,wCAAwC,SAAwB;AAC3E,QAAO,SAAS;;AAGlB,MAAa,uBAAuB,SAAwB;AAC1D,QAAO,8BAA8B,SAAS,KAAK;;AAGrD,MAAa,mBAAmB,SAAwB;AACtD,QAAO,SAAS;;AAGlB,MAAa,oBAAoB,SAAwB;AACvD,QAAO,SAAS;;AAGlB,MAAa,uBAAuB,SAAwB;AAC1D,QAAO,CAAC,uCAAuC,4CAA4C,CAAC,SAAS,KAAK;;AAG5G,MAAa,uBAAuB,SAA+B,UAA8B;AAE/F,SADa,OAAO,OAAO,QAAQ,QAAQ,UAC3B;;AAGlB,MAAa,8BAA8B,SAA+B,UAA8B;AAEtG,SADa,OAAO,OAAO,QAAQ,QAAQ,UAC3B;;AAGlB,MAAa,yBAAyB,UAA8B;CAClE,MAAM,EAAE,OAAO,cAAc,uBAAuB,mBAAoB,MAAM,UAAU,EAAE;AAI1F,KAAI,CAAC,SAAS,CAAC,aACb,QAAO;AAQT,QAAO,EAJe,mBAAmB,WAIhB,EAHH,0BAA0B;;AAMlD,MAAa,0BAA0B,UAA8B;AACnE,QAAO,MAAM,OAAO,YAAY;;;;;;;AC5ElC,MAAa,eAAe,UAA0B,qBAAqC;CACzF,MAAM,eAAe,MAAM;EACzB,OAAO;GACL,SAAS,EAAE;GACX,QAAQ,EAAE;GACX;EACD,QAAQ;GACN,sBAAsB,EAAE,SAAS,EAAE,aAAa,oBAAoB,KAAK;GACzE,kBAAkB,EAAE,SAAS,EAAE,aAAa,gBAAgB,KAAK;GACjE,mBAAmB,EAAE,SAAS,EAAE,aAAa,iBAAiB,KAAK;GACnE,sBAAsB,EAAE,SAAS,EAAE,aAAa,oBAAoB,KAAK;GACzE,wBAAwB,EAAE,YAAY,sBAAsB,MAAM;GAClE,qCAAqC,EAAE,YAAY,mCAAmC,MAAM;GAC5F,gCAAgC,EAAE,YAAY,8BAA8B,MAAM;GAClF,gCAAgC,EAAE,YAAY,8BAA8B,MAAM;GAClF,qBAAqB,EAAE,YAAY,mBAAmB,MAAM;GAC5D,uCAAuC,EAAE,SAAS,EAAE,aAAa,qCAAqC,KAAK;GAC5G;EACD,QAAQ;GACN,qBAAqB,kBAAkB,SAAS,qBAAqB,CAAC;GACtE,eAAe,aAAsD,EAAE,YAAY,SAAS,cAAc,MAAM,CAAC;GACjH,kBAAkB,aAA4D,EAAE,YAAY,SAAS,iBAAiB,MAAM,CAAC;GAC7H,QAAQ,aAAwC,EAAE,YAAY,SAAS,OAAO,MAAM,CAAC;GACrF,eAAe,aAAsD,EAAE,YAAY,SAAS,cAAc,MAAM,CAAC;GACjH,oBAAoB,aAA4C,EAAE,YAAY,SAAS,mBAAmB,MAAM,CAAC;GAClH;EACD,SAAS;GACP,YAAY,WAAW,EAAE,MAAM,iBAAiB,CAAC;GACjD,kCAAkC,OAAO,EAAE,MAAA,iCAAwC,CAAC;GACpF,6BAA6B,OAAO,EAAE,0BAA0B,6BAA6B,CAAC;GAC9F,wBAAwB,OAAO,EAAE,qBAAqB,wBAAwB,CAAC;GAC/E,iCAAiC,OAAO,EAAE,MAAM,8BAA8B,CAAC;GAC/E,mBAAmB,OAAO,EAAE,gBAAgB,mBAAmB,CAAC;GAChE,oBAAoB,OAAO,EAAE,iBAAiB,oBAAoB,CAAC;GACnE,mBAAmB,OAAO,EAAE,MAAM,mBAAmB,CAAC;GACtD,sBAAsB,OAAO,EAAE,MAAA,mBAA4B,CAAC;GAC5D,kBAAkB,OAAO,uBAAuB;GAChD,aAAa,OAAO,EAAE,UAAU,aAAa,CAAC;GAC9C,gBAAgB,OAAO,EAAE,aAAa,gBAAgB,CAAC;GACvD,YAAY,OAAO,EAAE,aAAa,KAAA,GAAW,CAAC;GAC/C;EACF,CAAC;CAEF,MAAM,uBAAuB,aAAa,kBAAkB,EAC1D,QAAQ;EACN;GAAE,OAAO;GAAsB,SAAS;GAAqB,QAAQ;GAAoC;EACzG;GAAE,OAAO;GAAsC,SAAS;GAAqB,QAAQ;GAAoC;EACzH;GAAE,OAAO;GAAiC,SAAS;GAAqB,QAAQ;GAA8B;EAC9G;GAAE,OAAO;GAAiC,SAAS;GAAqB,QAAQ;GAAiC;EACjH;GAAE,SAAS;IAAC;IAAqB;IAAqB;IAAqB;GAAE,QAAQ;GAAqB;EAC3G,EACF,CAAC;CACF,MAAM,qBAAqB,aAAa,kBAAkB;EACxD,SAAS;EACT,MAAM;EACN,QAAQ;GACN,MAAM;IACJ,OAAO;IACP,IAAI;KACF,QAAQ,EAAE,QAAQ,UAAU;KAC5B,SAAS,EAAE,QAAQ,uBAAuB;KAC3C;IACF;GACD,QAAQ;IACN,MAAM;IACN,OAAO,CAAC,cAAc,aAAa;IACnC,QAAQ;KACN,KAAK;KACL,QAAQ,EAAE,YAAY,MAAM;KAC5B,GAAG;KACH,SAAS;MAAE,SAAS;MAAkB,QAAQ;MAAQ;KACvD;IACF;GACF;EACF,CAAC;AAEF,QAAO,aAAa,cAAc;EAChC,IAAI;EACJ,UAAU,EAAE,aAAa;GAAE,MAAM;GAAW,GAAG;GAAkB,GAAG;GAAO;EAC3E,SAAS;EACT,QAAQ;GACN,MAAM,EACJ,QAAQ;IACN;KAAE,OAAO;KAAuB,QAAQ;KAA8B;IACtE;KAAE,OAAO;KAAmB,QAAQ;KAA0B;IAC9D;KAAE,OAAO;KAAoB,QAAQ;KAA2B;IAChE;KAAE,OAAO;KAAuB,QAAQ;KAA8B;IACtE;KAAE,OAAO;KAAwC,SAAS;KAAoB,QAAQ;KAAoC;IAC1H,EAAE,QAAQ,uBAAuB;IAClC,EACF;GACD,iBAAiB;IACf,OAAO,CAAC,cAAc,aAAa;IACnC,QAAQ;KACN,KAAK;KACL,QAAQ,EAAE,YAAY,MAAM;KAC5B,QAAQ,EAAE,QAAQ,uBAAuB;KACzC,SAAS;MAAE,SAAS;MAAkB,QAAQ;MAAuB;KACtE;IACF;GACD,qBAAqB,EACnB,QAAQ;IACN,KAAK;IACL,QAAQ,CACN;KACE,OAAO;KACP,SAAS,CAAC,oCAAoC,8BAA8B;KAC5E,QAAQ;KACT,EACD;KAAE,SAAS;KAAmC,QAAQ;KAAyB,CAChF;IACD,SAAS;KAAE,SAAS;KAAmC,QAAQ;KAAyB;IACzF,EACF;GACD,kBAAkB;IAChB,MAAM;IACN,QAAQ;KACN,KAAK;KACL,QAAQ,EAAE,SAAS,EAAE,YAAY,aAAa;MAAE;MAAU,GAAG,MAAM;MAAM;KACzE,QAAQ;MAAE,SAAS;MAA0B,QAAQ;MAAyB;KAC9E,SAAS;MAAE,SAAS;MAAkB,QAAQ;MAAuB;KACtE;IACF;GACD,eAAe,EACb,QAAQ;IACN,KAAK;IACL,QAAQ,EAAE,SAAS,EAAE,YAAY,aAAa;KAAE;KAAU,GAAG,MAAM;KAAM;IACzE,QAAQ;KAAE,SAAS;KAA0B,QAAQ;KAAyB;IAC9E,SAAS,EAAE,SAAS,CAAC,kBAAkB,aAAa,EAAE;IACvD,EACF;GACD,QAAQ;IACN,SAAS;IACT,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI;OACF,mBAAmB,EAAE,QAAQ,gCAAgC;OAC7D,QAAQ,EAAE,QAAQ,UAAU;OAC7B;MACF;KACD,QAAQ;MACN,MAAM;MACN,OAAO;OAAC;OAAc;OAAe;OAAa;MAClD,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,YAAY,MAAM;OAC5B,GAAG;OACH,SAAS,CACP;QAAE,OAAO;QAAiC,SAAS;QAAwB,QAAQ;QAAiC,EACpH;QAAE,SAAS;QAAkB,QAAQ;QAAQ,CAC9C;OACF;MACF;KACF;IACF;GACD,eAAe;GACf,qBAAqB;IACnB,SAAS;IACT,OAAO;IACP,MAAM;IACN,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI,EAAE,QAAQ,EAAE,QAAQ,UAAU,EAAE;MACrC;KACD,QAAQ;MACN,MAAM;MACN,OAAO,CAAC,cAAc,aAAa;MACnC,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,YAAY,MAAM;OAC5B,GAAG;OACH,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACF;IACF;GACD,WAAW;GACX,YAAY;GACZ,eAAe;GACf,UAAU,EAAE,MAAM,SAAS;GAC5B;EACD,SAAS,EAAE,cAAc;EAC1B,CAAC;;;;ACjNJ,MAAa,kBAA4B;CACvC;CACA;CACA;CACA;CACA;CACA;CACA,kBAAkB,YAAY;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;;;ACtBD,MAAa,uBAAuB,UAAkC,qBAA4C;AAChH,QAAO,MAAM;EACX,OAAO;GACL,SAAS,EAAE;GACX,QAAQ,EAAE;GACX;EACD,QAAQ;GACN,sBAAsB,EAAE,SAAS,YAAY,oBAAoB,SAAS,MAAM;GAChF,6BAA6B,EAAE,SAAS,YAAY,2BAA2B,SAAS,MAAM;GAC9F,4BAA4B,EAAE,YAAY,0BAA0B,MAAM;GAC3E;EACD,QAAQ;GACN,eAAe,aAAsD,EAAE,YAAY,SAAS,cAAc,MAAM,CAAC;GACjH,sBAAsB,aAA8C,EAAE,YAAY,SAAS,qBAAqB,MAAM,CAAC;GACxH;EACD,SAAS;GACP,YAAY,WAAW,EAAE,MAAM,iBAAiB,CAAC;GACjD,wBAAwB,OAAO,EAAE,qBAAqB,wBAAwB,CAAC;GAC/E,0BAA0B,OAAO,EAAE,MAAM,0BAA0B,CAAC;GACpE,eAAe,OAAO,EAAE,MAAM,mBAAmB,CAAC;GAClD,aAAa,OAAO,EAAE,UAAU,aAAa,CAAC;GAC9C,gBAAgB,OAAO,EAAE,aAAa,gBAAgB,CAAC;GACvD,YAAY,OAAO,EAAE,aAAa,KAAA,GAAW,CAAC;GAC/C;EACF,CAAC,CAAC,cAAc;EACf,IAAI;EACJ,SAAS;EACT,UAAU,EAAE,aAAa;GAAE,MAAM;GAAmB,GAAG;GAAkB,GAAG;GAAO;EACnF,QAAQ;GACN,MAAM,EACJ,QAAQ;IACN;KAAE,OAAO;KAAuB,QAAQ;KAA6C;IACrF;KAAE,OAAO;KAA8B,QAAQ;KAA6C;IAC5F,EAAE,QAAQ,uCAAuC;IAClD,EACF;GACD,gBAAgB;IACd,SAAS;IACT,MAAM;IACN,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI,EACF,QAAQ,EAAE,QAAQ,UAAU,EAC7B;MACF;KACD,QAAQ;MACN,MAAM;MACN,OAAO;OAAC;OAAc;OAAe;OAAa;MAClD,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,UAAU;OACnD,QAAQ,CAAC;QAAE,SAAS,CAAC,0BAA0B,2BAA2B;QAAE,QAAQ;QAA6C,CAAC;OAClI,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACF;IACF;GACD,sBAAsB;IACpB,SAAS;IACT,MAAM;IACN,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI;OACF,QAAQ,EAAE,QAAQ,UAAU;OAC5B,QAAQ,EAAE,QAAQ,cAAc;OACjC;MACF;KACD,YAAY;MACV,MAAM;MACN,OAAO,CAAC,cAAc,aAAa;MACnC,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,UAAU;OACnD,QAAQ,EAAE,QAAQ,QAAQ;OAC1B,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACD,QAAQ;MACN,MAAM;MACN,OAAO,CAAC,cAAc,aAAa;MACnC,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,SAAS,aAAa;QAAE,UAAU,QAAQ;QAAU,GAAG,MAAM;QAAM;OAC7E,QAAQ,CACN;QAAE,OAAO;QAA6B,SAAS;QAA4B,QAAQ;QAAiC,EACpH;QAAE,SAAS;QAAiB,QAAQ;QAAiC,CACtE;OACD,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACF;IACF;GACD,UAAU,EAAE,MAAM,SAAS;GAC5B;EACD,SAAS,EAAE,cAAc;EAC1B,CAAC;;;;;;;ACpGJ,MAAa,gBAAgB,aAA8B;AACzD,QAAO,MAAM;EACX,OAAO,EACL,SAAS,EAAE,EACZ;EACD,QAAQ,EACN,SAAS,kBAAkB,SAAS,SAAS,CAAC,EAC/C;EACF,CAAC,CAAC,cAAc;EACf,IAAI;EACJ,SAAS;EACT,SAAS,EAAE;EACX,QAAQ;GACN,SAAS;IACP,MAAM;IACN,QAAQ;KACN,KAAK;KACL,QAAQ;KACR,SAAS;KACV;IACF;GACD,UAAU,EAAE,MAAM,SAAS;GAC3B,UAAU,EAAE,MAAM,SAAS;GAC5B;EACD,SAAS,EAAE,cAAc;EAC1B,CAAC;;;;;;;ACAJ,MAAa,eAAe,UAA0B,qBAAqC;AACzF,QAAO,MAAM;EACX,OAAO;GACL,SAAS,EAAE;GACX,QAAQ,EAAE;GACX;EACD,QAAQ;GACN,qBAAqB,EAAE,YAAY,mBAAmB,MAAM;GAC5D,qBAAqB,EAAE,YAAY,mBAAmB,MAAM;GAC5D,yBAAyB,EAAE,YAAY,uBAAuB,MAAM;GACpE,mBAAmB,EAAE,YAAY,iBAAiB,MAAM;GACxD,qCAAqC,EAAE,YAAY,mCAAmC,MAAM;GAC5F,sBAAsB,EAAE,SAAS,EAAE,aAAa,SAAS;GACzD,gCAAgC,EAAE,YAAY,8BAA8B,MAAM;GAClF,gCAAgC,EAAE,YAAY,8BAA8B,MAAM;GAClF,wBAAwB,EAAE,YAAY,sBAAsB,MAAM;GACnE;EACD,QAAQ;GACN,YAAY,kBAAkB,SAAS,YAAY,CAAC;GACpD,eAAe,aAAsD,EAAE,YAAY,SAAS,cAAc,MAAM,CAAC;GACjH,qBAAqB,kBAAkB,SAAS,qBAAqB,CAAC;GACtE,eAAe,aAAsD,EAAE,YAAY,SAAS,cAAc,MAAM,CAAC;GACjH,kBAAkB,aAA4D,EAAE,YAAY,SAAS,iBAAiB,MAAM,CAAC;GAC7H,QAAQ,aAAwC,EAAE,YAAY,SAAS,OAAO,MAAM,CAAC;GACrF,oBAAoB,aAA4C,EAAE,YAAY,SAAS,mBAAmB,MAAM,CAAC;GAClH;EACD,SAAS;GACP,YAAY,WAAW,EAAE,MAAM,iBAAiB,CAAC;GACjD,kCAAkC,OAAO,EAAE,0BAA0B,6BAA6B,CAAC;GACnG,iCAAiC,OAAO,EAAE,MAAM,8BAA8B,CAAC;GAC/E,wBAAwB,OAAO,EAAE,qBAAqB,wBAAwB,CAAC;GAC/E,mBAAmB,OAAO,EAAE,MAAM,mBAAmB,CAAC;GACtD,aAAa,OAAO,EAAE,UAAU,aAAa,CAAC;GAC9C,gBAAgB,OAAO,EAAE,aAAa,gBAAgB,CAAC;GACvD,YAAY,OAAO,EAAE,aAAa,KAAA,GAAW,CAAC;GAC/C;EACF,CAAC,CAAC,cAAc;EACf,IAAI;EACJ,SAAS;EACT,UAAU,EAAE,aAAa;GAAE,MAAM;GAAW,GAAG;GAAkB,GAAG;GAAO;EAC3E,QAAQ;GACN,MAAM,EACJ,QAAQ,CAAC;IAAE,OAAO;IAAuB,QAAQ;IAAiB,EAAE,EAAE,QAAQ,uBAAuB,CAAC,EACvG;GACD,YAAY;IACV,MAAM;IACN,QAAQ;KACN,KAAK;KACL,QAAQ;MACN;OAAE,OAAO;OAAsB,QAAQ;OAAoC;MAC3E;OAAE,OAAO;OAAsC,QAAQ;OAAyB;MAChF;OAAE,OAAO;OAAiC,QAAQ;OAA8B;MAChF;OAAE,OAAO;OAAiC,QAAQ;OAAiC;MACnF,EAAE,QAAQ,yBAAyB;MACpC;KACD,SAAS,EAAE,QAAQ,yBAAyB;KAC7C;IACF;GACD,qBAAqB,EACnB,QAAQ;IACN,KAAK;IACL,QAAQ,CACN;KACE,OAAO;KACP,SAAS,CAAC,oCAAoC,kCAAkC;KAChF,QAAQ;KACT,EACD;KAAE,SAAS;KAAmC,QAAQ;KAAyB,CAChF;IACD,SAAS;KAAE,SAAS;KAAmC,QAAQ;KAAyB;IACzF,EACF;GACD,iBAAiB;IACf,OAAO,CAAC,cAAc,aAAa;IACnC,QAAQ;KACN,KAAK;KACL,QAAQ,EAAE,YAAY,MAAM;KAC5B,QAAQ;KACR,SAAS;MAAE,SAAS;MAAkB,QAAQ;MAAuB;KACtE;IACF;GACD,eAAe,EACb,QAAQ;IACN,KAAK;IACL,QAAQ,EAAE,YAAY,MAAM;IAC5B,QAAQ;KAAE,SAAS;KAA0B,QAAQ;KAAyB;IAC9E,SAAS,EAAE,SAAS,kBAAkB;IACvC,EACF;GACD,kBAAkB;IAChB,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;KACN,KAAK;KACL,QAAQ,EAAE,SAAS,EAAE,YAAY,aAAa;MAAE;MAAU,GAAG,MAAM;MAAM;KACzE,QAAQ;MAAE,SAAS;MAA0B,QAAQ;MAA8B;KACnF,SAAS,CAAC;MAAE,OAAO;MAA0B,QAAQ;MAAyB,EAAE,EAAE,SAAS,kBAAkB,CAAC;KAC/G;IACF;GACD,QAAQ;IACN,SAAS;IACT,MAAM;IACN,IAAI,EACF,mBAAmB,EAAE,QAAQ,gCAAgC,EAC9D;IACD,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI,EACF,QAAQ,EAAE,QAAQ,UAAU,EAC7B;MACF;KACD,QAAQ;MACN,MAAM;MACN,OAAO;OAAC;OAAc;OAAe;OAAa;MAClD,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,YAAY,MAAM;OAC5B,QAAQ;QACN;SAAE,OAAO;SAAsB,SAAS;SAAqB,QAAQ;SAAyB;QAC9F;SAAE,OAAO;SAAoB,SAAS;SAAqB,QAAQ;SAA2B;QAC9F;SAAE,SAAS,CAAC,0BAA0B,oBAAoB;SAAE,QAAQ;SAAqB;QAC1F;OACD,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACF;IACF;GACD,eAAe;IACb,SAAS;IACT,MAAM;IACN,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI;OACF,QAAQ,EAAE,QAAQ,UAAU;OAC5B,QAAQ,EAAE,QAAQ,iCAAiC;OACpD;MACF;KACD,QAAQ;MACN,MAAM;MACN,OAAO,CAAC,cAAc,aAAa;MACnC,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,SAAS,EAAE,YAAY,aAAa;QAAE;QAAU,GAAG,MAAM;QAAM;OACzE,QAAQ;QACN;SAAE,OAAO;SAAsB,SAAS;SAAqB,QAAQ;SAAyB;QAC9F;SAAE,OAAO;SAAoB,SAAS;SAAqB,QAAQ;SAA2B;QAC9F;SAAE,SAAS;SAAqB,QAAQ;SAAqB;QAC9D;OACD,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACF;IACF;GACD,UAAU,EAAE,MAAM,SAAS;GAC5B;EACD,SAAS,EAAE,cAAc;EAC1B,CAAC;;;;;;;ACtLJ,MAAa,6BAA6B,UAAwC,qBAAyC;AACzH,QAAO,MAAM;EACX,OAAO;GACL,SAAS,EAAE;GACX,QAAQ,EAAE;GACX;EACD,QAAQ,EAAE;EACV,QAAQ;GACN,mCAAmC,aAA8F,EAAE,YACjI,SAAS,kCAAkC,MAAM,CAClD;GACD,4BAA4B,aAA8C,EAAE,YAAY,SAAS,qBAAqB,MAAM,CAAC;GAC9H;EACD,SAAS;GACP,YAAY,WAAW,EAAE,MAAM,iBAAiB,CAAC;GACjD,wBAAwB,OAAO,EAAE,qBAAqB,wBAAwB,CAAC;GAC/E,0BAA0B,OAAO,EAAE,uBAAuB,0BAA0B,CAAC;GACrF,iCAAiC,OAAO,EAAE,MAAA,8BAAuC,CAAC;GAClF,gBAAgB,OAAO,EAAE,aAAa,gBAAgB,CAAC;GACvD,YAAY,OAAO,EAAE,aAAa,KAAA,GAAW,CAAC;GAC9C,4BAA4B,OAAO,EAAE,uBAAuB,KAAA,GAAW,CAAC;GACzE;EACF,CAAC,CAAC,cAAc;EACf,IAAI;EACJ,SAAS;EACT,UAAU,EAAE,aAAa;GAAE,MAAM;GAAW,GAAG;GAAkB,GAAG;GAAO;EAC3E,QAAQ;GACN,sBAAsB;IACpB,SAAS;IACT,MAAM;IACN,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI;OACF,MAAM,EAAE,QAAQ,uCAAuC;OACvD,QAAQ,EAAE,QAAQ,UAAU;OAC7B;MACF;KACD,QAAQ;MACN,MAAM;MACN,OAAO,CAAC,cAAc,aAAa;MACnC,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,YAAY,MAAM;OAC5B,QAAQ;QACN,SAAS,CAAC,4BAA4B,yBAAyB;QAC/D,QAAQ;QACT;OACD,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACF;IACF;GACD,4BAA4B;IAC1B,SAAS;IACT,MAAM;IACN,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI;OACF,QAAQ,EAAE,QAAQ,UAAU;OAC5B,QAAQ,EAAE,QAAQ,cAAc;OAChC,MAAM,EAAE,QAAQ,uCAAuC;OACxD;MACF;KACD,YAAY;MACV,MAAM;MACN,OAAO,CAAC,cAAc,aAAa;MACnC,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,SAAS,aAChB;QAAE,kBAAkB,QAAQ;QAAuB,GAAG,MAAM;QAAM;OACrE,QAAQ,EAAE,QAAQ,QAAQ;OAC1B,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACD,QAAQ;MACN,MAAM;MACN,OAAO,CAAC,cAAc,aAAa;MACnC,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,SAAS,aAAa;QAAE,kBAAkB,QAAQ;QAAuB,GAAG,MAAM;QAAM;OAClG,QAAQ;QAAE,SAAS,CAAC,mCAAmC,6BAA6B;QAAE,QAAQ;QAAuC;OACrI,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACF;IACF;GACD,UAAU,EAAE,MAAM,SAAS;GAC5B;EACD,SAAS,EAAE,cAAc;EAC1B,CAAC;;;;;;;AC5EJ,MAAa,8BAA8B,YAA0C;CACnF,MAAM,EAAE,UAAU,gBAAgB,GAAG,WAAW,WAAW,EAAE;CAC7D,MAAM,WAAW;EAAE,GAAG;EAAiB,GAAG;EAAgB;AAE1D,QAAO,MAAM;EACX,OAAO;GACL,SAAS,EAAE;GACX,QAAQ,EAAE;GACX;EACD,QAAQ;GACN,oCAAoC,EAAE,OAAO,EAAE,eAAe,kCAAkC,QAAQ,KAAK;GAC7G,UAAU,EAAE,cAAc,CAAC,CAAC,QAAQ;GACpC,uBAAuB,EAAE,cAAc,QAAQ,QAAQ,iBAAiB;GACxE,8BAA8B,EAAE,cAAc,QAAQ,QAAQ,iBAAiB;GAC/E,sBAAsB,EAAE,OAAO,EAAE,eAAe,oBAAoB,QAAQ,KAAK;GACjF,6BAA6B,EAAE,OAAO,EAAE,eAAe,2BAA2B,QAAQ,KAAK;GAC/F,mCAAmC,EAAE,OAAO,EAAE,eAAe,iCAAiC,QAAQ,KAAK;GAC3G,sBAAsB,EAAE,OAAO,EAAE,eAAe,oBAAoB,QAAQ,KAAK;GAClF;EACD,QAAQ;GACN,gBAAgB,kBAAkB,SAAS,gBAAgB,CAAC;GAC5D,mBAAmB,YAAY,SAAS;GACxC,mBAAmB,YAAY,SAAS;GACxC,2BAA2B,oBAAoB,SAAS;GACxD,iCAAiC,0BAA0B,SAAS;GACpE,oBAAoB,aAAa,SAAS;GAC3C;EACD,SAAS;GACP,oBAAoB,OAAO,EAAE,eAAe,KAAA,GAAW,CAAC;GACxD,WAAW,OAAO,EAAE,MAAM,KAAA,GAAW,CAAC;GACtC,gBAAgB,UAAU,aAAa;GACvC,SAAS,OAAO,EAAE,OAAO,EAAE,YAAY,MAAM,QAAoB,CAAC;GAClE,kBAAkB,OAAO,EAAE,gBAAgB,EAAE,YAAY,MAAM,QAAyB,CAAC;GAC1F;EACF,CAAC,CAAC,cAAc;EACf,IAAI;EACJ,SAAS;EACT,SAAS;GACP;GACA,MAAM,KAAA;GACP;EACD,QAAQ;GACN,MAAM,EACJ,QAAQ;IACN,KAAK;IACL,QAAQ;KAAE,SAAS;KAAW,QAAQ;KAAwB;IAC9D,SAAS,EAAE,QAAQ,wBAAwB;IAC5C,EACF;GACD,OAAO;IACL,SAAS;IACT,QAAQ,EACN,MAAM,EACJ,QAAQ;KACN;MAAE,OAAO;MAAW,QAAQ;MAAgC;KAC5D;MAAE,OAAO;MAAwB,QAAQ;MAA8B;KACvE;MAAE,OAAO;MAA+B,QAAQ;MAAsC;KACtF,EAAE,QAAQ,8BAA8B;KACzC,EACF,EACF;IACF;GACD,gBAAgB,EACd,QAAQ;IACN,KAAK;IACL,QAAQ;KAAE,SAAS;KAAW,QAAQ;KAAgC;IACtE,SAAS,EAAE,QAAQ,SAAS;IAC7B,EACF;GACD,aAAa;IACX,QAAQ;KACN,IAAI;KACJ,KAAK;KACL,QAAQ,EAAE,cAAc,QAAQ;KAChC,QAAQ;MACN;OAAE,OAAO;OAAqC,QAAQ;OAAiC;MACvF;OAAE,OAAO;OAAoC,SAAS;OAAoB,QAAQ;OAA4C;MAC9H;OAAE,OAAO;OAAuB,SAAS;OAAoB,QAAQ;OAAsC;MAC3G;OAAE,OAAO;OAAuB,SAAS;OAAoB,QAAQ;OAA8B;MACpG;KACF;IACD,OAAO;IACP,IAAI;KACF,iBAAiB,EAAE,QAAQ,sCAAsC;KACjE,SAAS,EAAE,QAAQ,8BAA8B;KACjD,SAAS,EAAE,SAAS,kBAAkB;KACtC,mBAAmB,EAAE,SAAS,kBAAkB;KAChD,QAAQ,EAAE,SAAS,kBAAkB;KACtC;IACF;GACD,aAAa;IACX,QAAQ;KACN,IAAI;KACJ,KAAK;KACL,QAAQ,EAAE,cAAc,QAAQ;KAChC,QAAQ;MACN;OAAE,OAAO;OAAqC,SAAS;OAAsB,QAAQ;OAAiC;MACtH;OAAE,OAAO;OAAoC,SAAS;OAAoB,QAAQ;OAA4C;MAC9H;OAAE,OAAO;OAA8B,SAAS;OAAsB,QAAQ;OAA4C;MAC1H;OAAE,SAAS;OAAoB,QAAQ;OAA8B;MACtE;KACF;IACD,IAAI;KACF,SAAS,EAAE,QAAQ,8BAA8B;KACjD,mBAAmB,EAAE,SAAS,kBAAkB;KAChD,QAAQ,EAAE,SAAS,kBAAkB;KACrC,QAAQ,EAAE,SAAS,kBAAkB;KACtC;IACF;GACD,qBAAqB;IACnB,QAAQ;KACN,IAAI;KACJ,KAAK;KACL,QAAQ,EAAE,cAAc,QAAQ;KAChC,QAAQ,EAAE,QAAQ,8BAA8B;KACjD;IACD,MAAM;IACN,IAAI;KACF,SAAS,EAAE,QAAQ,8BAA8B;KACjD,QAAQ,EAAE,SAAS,kBAAkB;KACrC,QAAQ,EAAE,SAAS,kBAAkB;KACtC;IACF;GACD,2BAA2B;IACzB,QAAQ;KACN,IAAI;KACJ,KAAK;KACL,QAAQ,EAAE,cAAc,QAAQ;KAChC,QAAQ;MAAE,SAAS;MAAoB,QAAQ;MAAiC;KACjF;IACD,IAAI;KACF,MAAM,EAAE,SAAS,kBAAkB;KACnC,QAAQ,EAAE,SAAS,kBAAkB;KACrC,QAAQ,EAAE,SAAS,kBAAkB;KACtC;IACF;GACD,eAAe;IACb,SAAS;IACT,IAAI,EACF,UAAU,EAAE,QAAQ,0BAA0B,EAC/C;IACD,QAAQ;KACN,MAAM,EACJ,IAAI,EACF,eAAe,EAAE,QAAQ,eAAe,EACzC,EACF;KACD,aAAa,EACX,QAAQ;MACN,KAAK;MACL,QAAQ;OAAE,SAAS;OAAW,QAAQ;OAAQ;MAC9C,SAAS,EAAE,QAAQ,0BAA0B;MAC9C,EACF;KACF;IACF;GACD,SAAS;IACP,QAAQ;KACN,IAAI;KACJ,KAAK;KACL,QAAQ;MAAE,SAAS;MAAa,QAAQ;MAAwB;KACjE;IACD,MAAM;IACP;GACF;EACD,IAAI;GACF,eAAe,EAAE,SAAS,QAAQ,EAAE,cAAc,QAAQ,EAAE;GAC5D,uBAAuB,EAAE,QAAQ,iCAAiC;GACnE;EACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"machines-BRfb3dTb.js","names":[],"sources":["../src/machines/actions.ts","../src/machines/guards.ts","../src/machines/signIn/actor.ts","../src/machines/defaultHandlers.ts","../src/machines/forgotPassword/actor.ts","../src/machines/signOut/actor.ts","../src/machines/signUp/actor.ts","../src/machines/verifyUserAttributes/actor.ts","../src/machines/index.ts"],"sourcesContent":["import type {\n CodeDeliveryDetails,\n FetchUserAttributesOutput,\n ResetPasswordOutput,\n SendUserAttributeVerificationCodeOutput,\n SignInOutput,\n SignUpOutput,\n UserAttributeKey,\n} from '@aws-amplify/auth'\nimport type { AuthVerifiableAttributeKey } from '@aws-amplify/core/internals/utils'\nimport type {\n AuthEvent,\n AuthEventData,\n AuthMFAType,\n AuthTOTPSetupDetails,\n ResetPasswordStep,\n SignInContext,\n SignInStep,\n SignUpStep,\n Step,\n UnverifiedUserAttributes,\n} from './types'\n\ntype ActionParams<Context = unknown> = {\n context: Context\n event: AuthEvent\n}\n\nconst setTotpSecretCode = ({ event }: ActionParams): string | undefined => {\n const { sharedSecret } = (event.output?.nextStep?.totpSetupDetails ?? {}) as AuthTOTPSetupDetails\n return sharedSecret\n}\n\nconst setAllowedMfaTypes = ({ event }: ActionParams): AuthMFAType[] | undefined => {\n return event.output?.nextStep?.allowedMFATypes as AuthMFAType[]\n}\n\nconst setSignInStep: Step = 'SIGN_IN'\n\nconst setShouldVerifyUserAttributeStep: Step = 'SHOULD_CONFIRM_USER_ATTRIBUTE'\n\nconst setConfirmAttributeCompleteStep: Step = 'CONFIRM_ATTRIBUTE_COMPLETE'\n\nconst setConfirmSignUpStep: Step = 'CONFIRM_SIGN_UP'\n\nconst setNextSignInStep = ({ event }: ActionParams): SignInStep => {\n const output = (event.output ?? {}) as SignInOutput\n return output.nextStep?.signInStep === 'DONE' ? 'SIGN_IN_COMPLETE' : output.nextStep?.signInStep\n}\n\nconst setNextSignUpStep = ({ event }: ActionParams): SignUpStep => {\n const output = (event.output ?? {}) as SignUpOutput\n return output.nextStep?.signUpStep === 'DONE' ? 'SIGN_UP_COMPLETE' : output.nextStep?.signUpStep\n}\n\nconst setNextResetPasswordStep = ({ event }: ActionParams): ResetPasswordStep => {\n const output = (event.output ?? {}) as ResetPasswordOutput\n return output.nextStep?.resetPasswordStep === 'DONE' ? 'RESET_PASSWORD_COMPLETE' : output.nextStep?.resetPasswordStep\n}\n\nconst setMissingAttributes = ({ event }: ActionParams): string | undefined => event.output?.nextStep?.missingAttributes\n\nconst setRemoteError = ({ event }: ActionParams): string => {\n const error = event.error\n if (error?.name === 'NoUserPoolError') {\n return 'Configuration error (see console) – please contact the administrator'\n }\n return error?.message || String(error)\n}\n\nconst setUsername = ({ event }: ActionParams): string | undefined => event.data?.username\n\nconst setUser = ({ event }: ActionParams): AuthEventData | undefined => event.output\n\nconst setCodeDeliveryDetails = ({ event }: ActionParams): CodeDeliveryDetails<UserAttributeKey> => {\n const output = event.output\n if (output?.nextStep?.codeDeliveryDetails) {\n return output?.nextStep?.codeDeliveryDetails\n }\n return output as CodeDeliveryDetails<UserAttributeKey>\n}\n\nconst setUnverifiedUserAttributes = ({ event }: ActionParams): UnverifiedUserAttributes => {\n const { email, phone_number } = event.output as FetchUserAttributesOutput\n\n const unverifiedUserAttributes = {\n ...(email && { email }),\n ...(phone_number && { phone_number }),\n }\n\n return unverifiedUserAttributes\n}\n\nconst setSelectedUserAttribute = ({ event }: ActionParams): AuthVerifiableAttributeKey | undefined => {\n const output = event?.output as SendUserAttributeVerificationCodeOutput\n return output?.attributeName\n}\n\nconst setSignInActorDoneData = ({ event }: ActionParams<SignInContext>): SignInContext => {\n const output = event?.output ?? {}\n return {\n codeDeliveryDetails: output.codeDeliveryDetails,\n missingAttributes: output.missingAttributes,\n remoteError: output.remoteError,\n username: output.username,\n step: output.step,\n totpSecretCode: output.totpSecretCode,\n unverifiedUserAttributes: output.unverifiedUserAttributes,\n allowedMfaTypes: output.allowedMfaTypes,\n }\n}\n\nexport {\n setAllowedMfaTypes,\n setCodeDeliveryDetails,\n setConfirmAttributeCompleteStep,\n setConfirmSignUpStep,\n setMissingAttributes,\n setNextResetPasswordStep,\n setNextSignInStep,\n setNextSignUpStep,\n setRemoteError,\n setSelectedUserAttribute,\n setShouldVerifyUserAttributeStep,\n setSignInActorDoneData,\n setSignInStep,\n setTotpSecretCode,\n setUnverifiedUserAttributes,\n setUser,\n setUsername,\n}\n","/*\n * Copyright 2017 - 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * (C) 2025 GAHOJIN, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport type { FetchUserAttributesOutput, ResetPasswordOutput, SignInOutput, SignUpOutput } from '@aws-amplify/auth'\nimport type { AuthEvent, ResetPasswordContext, Step } from './types'\n\nconst SIGN_IN_STEP_MFA_CONFIRMATION: Step[] = ['CONFIRM_SIGN_IN_WITH_SMS_CODE', 'CONFIRM_SIGN_IN_WITH_TOTP_CODE', 'CONFIRM_SIGN_IN_WITH_EMAIL_CODE']\n\nexport const shouldConfirmSignInWithNewPassword = (event: AuthEvent): boolean => {\n const output = event.output as SignInOutput\n return output?.nextStep?.signInStep === 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED'\n}\n\nexport const shouldResetPasswordFromSignIn = (event: AuthEvent): boolean => {\n const output = event.output as SignInOutput\n return output?.nextStep?.signInStep === 'RESET_PASSWORD'\n}\n\nexport const shouldConfirmSignUpFromSignIn = (event: AuthEvent): boolean => {\n const output = event.output as SignInOutput\n return output?.nextStep?.signInStep === 'CONFIRM_SIGN_UP'\n}\n\nexport const shouldAutoSignIn = (event: AuthEvent): boolean => {\n const output = event.output as SignUpOutput\n return output?.nextStep?.signUpStep === 'COMPLETE_AUTO_SIGN_IN'\n}\n\nexport const hasCompletedSignIn = (event: AuthEvent): boolean => {\n const output = event.output as SignInOutput\n return output?.nextStep?.signInStep === 'DONE'\n}\n\nexport const hasCompletedSignUp = (event: AuthEvent): boolean => {\n const output = event.output as SignUpOutput\n return output?.nextStep?.signUpStep === 'DONE'\n}\n\nexport const hasCompletedResetPassword = (event: AuthEvent): boolean => {\n const output = event.output as ResetPasswordOutput\n return output?.nextStep?.resetPasswordStep === 'DONE'\n}\n\nexport const hasCompletedAttributeConfirmation = (step: Step): boolean => {\n return step === 'CONFIRM_ATTRIBUTE_COMPLETE'\n}\n\nexport const isConfirmUserAttributeStep = (step: Step): boolean => {\n return step === 'CONFIRM_ATTRIBUTE_WITH_CODE'\n}\n\nexport const isShouldConfirmUserAttributeStep = (step: Step): boolean => {\n return step === 'SHOULD_CONFIRM_USER_ATTRIBUTE'\n}\n\nexport const isResetPasswordStep = (step: Step): boolean => {\n return step === 'RESET_PASSWORD'\n}\n\nexport const isConfirmSignUpStep = (step: Step): boolean => {\n return step === 'CONFIRM_SIGN_UP'\n}\n\nexport const isShouldConfirmSignInWithNewPassword = (step: Step): boolean => {\n return step === 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED'\n}\n\nexport const shouldConfirmSignIn = (step: Step): boolean => {\n return SIGN_IN_STEP_MFA_CONFIRMATION.includes(step)\n}\n\nexport const shouldSetupTotp = (step: Step): boolean => {\n return step === 'CONTINUE_SIGN_IN_WITH_TOTP_SETUP'\n}\n\nexport const shouldSetupEmail = (step: Step): boolean => {\n return step === 'CONTINUE_SIGN_IN_WITH_EMAIL_SETUP'\n}\n\nexport const shouldSelectMfaType = (step: Step): boolean => {\n return ['CONTINUE_SIGN_IN_WITH_MFA_SELECTION', 'CONTINUE_SIGN_IN_WITH_MFA_SETUP_SELECTION'].includes(step)\n}\n\nexport const shouldResetPassword = (context: ResetPasswordContext, event: AuthEvent): boolean => {\n const step = event?.input?.step ?? context.step\n return step === 'RESET_PASSWORD'\n}\n\nexport const shouldConfirmResetPassword = (context: ResetPasswordContext, event: AuthEvent): boolean => {\n const step = event?.input?.step ?? context.step\n return step === 'CONFIRM_RESET_PASSWORD_WITH_CODE'\n}\n\nexport const shouldVerifyAttribute = (event: AuthEvent): boolean => {\n const { email, phone_number, phone_number_verified, email_verified } = (event.output ?? {}) as FetchUserAttributesOutput\n\n // if neither email nor phone_number exist\n // there is nothing to verify\n if (!email && !phone_number) {\n return false\n }\n\n // email/phone_verified is returned as a string\n const emailVerified = email_verified === 'true'\n const phoneVerified = phone_number_verified === 'true'\n\n // only request verification if both email and phone are not verified\n return !emailVerified && !phoneVerified\n}\n\nexport const isUserAlreadyConfirmed = (event: AuthEvent): boolean => {\n return event.error?.message === 'User is already confirmed.'\n}\n","import type {\n ConfirmSignInInput,\n ConfirmSignInOutput,\n ResendSignUpCodeInput,\n ResendSignUpCodeOutput,\n ResetPasswordInput,\n ResetPasswordOutput,\n SignInInput,\n SignInOutput,\n SignInWithRedirectInput,\n} from '@aws-amplify/auth'\nimport { assign, fromPromise, sendParent, setup } from 'xstate'\nimport {\n setAllowedMfaTypes,\n setCodeDeliveryDetails,\n setConfirmSignUpStep,\n setNextSignInStep,\n setRemoteError,\n setShouldVerifyUserAttributeStep,\n setSignInActorDoneData,\n setTotpSecretCode,\n setUnverifiedUserAttributes,\n setUsername,\n} from '../actions'\nimport {\n hasCompletedSignIn,\n isShouldConfirmSignInWithNewPassword,\n shouldConfirmSignIn,\n shouldConfirmSignInWithNewPassword,\n shouldConfirmSignUpFromSignIn,\n shouldResetPasswordFromSignIn,\n shouldSelectMfaType,\n shouldSetupEmail,\n shouldSetupTotp,\n shouldVerifyAttribute,\n} from '../guards'\nimport type { AuthEvent, Handlers, SignInContext } from '../types'\n\ntype SignInHandlers = Pick<Handlers, 'confirmSignIn' | 'fetchUserAttributes' | 'resetPassword' | 'signIn' | 'signInWithRedirect' | 'resendSignUpCode'>\n\n/**\n * @internal\n */\nexport const signInActor = (handlers: SignInHandlers, overridesContext?: SignInContext) => {\n const machineSetup = setup({\n types: {\n context: {} as SignInContext,\n events: {} as AuthEvent,\n },\n guards: {\n shouldConfirmSignIn: ({ context: { step } }) => shouldConfirmSignIn(step),\n shouldSetupTotp: ({ context: { step } }) => shouldSetupTotp(step),\n shouldSetupEmail: ({ context: { step } }) => shouldSetupEmail(step),\n shouldSelectMfaType: ({ context: { step } }) => shouldSelectMfaType(step),\n shouldVerifyAttribute: ({ event }) => shouldVerifyAttribute(event),\n shouldConfirmSignInWithNewPassword: ({ event }) => shouldConfirmSignInWithNewPassword(event),\n shouldResetPasswordFromSignIn: ({ event }) => shouldResetPasswordFromSignIn(event),\n shouldConfirmSignUpFromSignIn: ({ event }) => shouldConfirmSignUpFromSignIn(event),\n hasCompletedSignIn: ({ event }) => hasCompletedSignIn(event),\n isShouldConfirmSignInWithNewPassword: ({ context: { step } }) => isShouldConfirmSignInWithNewPassword(step),\n },\n actors: {\n fetchUserAttributes: fromPromise(() => handlers.fetchUserAttributes()),\n resetPassword: fromPromise<ResetPasswordOutput, ResetPasswordInput>(({ input }) => handlers.resetPassword(input)),\n resendSignUpCode: fromPromise<ResendSignUpCodeOutput, ResendSignUpCodeInput>(({ input }) => handlers.resendSignUpCode(input)),\n signIn: fromPromise<SignInOutput, SignInInput>(({ input }) => handlers.signIn(input)),\n confirmSignIn: fromPromise<ConfirmSignInOutput, ConfirmSignInInput>(({ input }) => handlers.confirmSignIn(input)),\n signInWithRedirect: fromPromise<void, SignInWithRedirectInput>(({ input }) => handlers.signInWithRedirect(input)),\n },\n actions: {\n sendUpdate: sendParent({ type: 'CHILD_CHANGED' }),\n setShouldVerifyUserAttributeStep: assign({ step: setShouldVerifyUserAttributeStep }),\n setUnverifiedUserAttributes: assign({ unverifiedUserAttributes: setUnverifiedUserAttributes }),\n setCodeDeliveryDetails: assign({ codeDeliveryDetails: setCodeDeliveryDetails }),\n setConfirmAttributeCompleteStep: assign({ step: 'CONFIRM_ATTRIBUTE_COMPLETE' }),\n setTotpSecretCode: assign({ totpSecretCode: setTotpSecretCode }),\n setAllowedMfaTypes: assign({ allowedMfaTypes: setAllowedMfaTypes }),\n setNextSignInStep: assign({ step: setNextSignInStep }),\n setConfirmSignUpStep: assign({ step: setConfirmSignUpStep }),\n setActorDoneData: assign(setSignInActorDoneData),\n setUsername: assign({ username: setUsername }),\n setRemoteError: assign({ remoteError: setRemoteError }),\n clearError: assign({ remoteError: undefined }),\n },\n })\n\n const handleSignInResponse = machineSetup.createStateConfig({\n onDone: [\n { guard: 'hasCompletedSignIn', actions: 'setNextSignInStep', target: '#signInActor.fetchUserAttributes' },\n { guard: 'shouldConfirmSignInWithNewPassword', actions: 'setNextSignInStep', target: '#signInActor.forceChangePassword' },\n { guard: 'shouldResetPasswordFromSignIn', actions: 'setNextSignInStep', target: '#signInActor.resetPassword' },\n { guard: 'shouldConfirmSignUpFromSignIn', actions: 'setNextSignInStep', target: '#signInActor.resendSignUpCode' },\n { actions: ['setNextSignInStep', 'setTotpSecretCode', 'setAllowedMfaTypes'], target: '#signInActor.init' },\n ],\n })\n const confirmSignInState = machineSetup.createStateConfig({\n initial: 'idle',\n exit: 'clearError',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { target: 'submit' },\n SIGN_IN: { target: '#signInActor.signIn' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'confirmSignIn',\n input: ({ event }) => event.data as ConfirmSignInInput,\n ...handleSignInResponse,\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n })\n\n return machineSetup.createMachine({\n id: 'signInActor',\n context: ({ input }) => ({ step: 'SIGN_IN', ...overridesContext, ...input }),\n initial: 'init',\n states: {\n init: {\n always: [\n { guard: 'shouldConfirmSignIn', target: '#signInActor.confirmSignIn' },\n { guard: 'shouldSetupTotp', target: '#signInActor.setupTotp' },\n { guard: 'shouldSetupEmail', target: '#signInActor.setupEmail' },\n { guard: 'shouldSelectMfaType', target: '#signInActor.selectMfaType' },\n { guard: 'isShouldConfirmSignInWithNewPassword', actions: 'setActorDoneData', target: '#signInActor.forceChangePassword' },\n { target: '#signInActor.signIn' },\n ],\n },\n federatedSignIn: {\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'signInWithRedirect',\n input: ({ event }) => event.data as SignInWithRedirectInput,\n onDone: { target: '#signInActor.signIn' },\n onError: { actions: 'setRemoteError', target: '#signInActor.signIn' },\n },\n },\n fetchUserAttributes: {\n invoke: {\n src: 'fetchUserAttributes',\n onDone: [\n {\n guard: 'shouldVerifyAttribute',\n actions: ['setShouldVerifyUserAttributeStep', 'setUnverifiedUserAttributes'],\n target: '#signInActor.resolved',\n },\n { actions: 'setConfirmAttributeCompleteStep', target: '#signInActor.resolved' },\n ],\n onError: { actions: 'setConfirmAttributeCompleteStep', target: '#signInActor.resolved' },\n },\n },\n resendSignUpCode: {\n tags: 'pending',\n invoke: {\n src: 'resendSignUpCode',\n input: ({ context: { username }, event }) => ({ username, ...event.data }) as ResendSignUpCodeInput,\n onDone: { actions: 'setCodeDeliveryDetails', target: '#signInActor.resolved' },\n onError: { actions: 'setRemoteError', target: '#signInActor.signIn' },\n },\n },\n resetPassword: {\n invoke: {\n src: 'resetPassword',\n input: ({ context: { username }, event }) => ({ username, ...event.data }) as ResetPasswordInput,\n onDone: { actions: 'setCodeDeliveryDetails', target: '#signInActor.resolved' },\n onError: { actions: ['setRemoteError', 'sendUpdate'] },\n },\n },\n signIn: {\n initial: 'idle',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n FEDERATED_SIGN_IN: { target: '#signInActor.federatedSignIn' },\n SUBMIT: { target: 'submit' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'setUsername', 'clearError'],\n invoke: {\n src: 'signIn',\n input: ({ event }) => event.data as SignInInput,\n ...handleSignInResponse,\n onError: [\n { guard: 'shouldConfirmSignUpFromSignIn', actions: 'setConfirmSignUpStep', target: '#signInActor.resendSignUpCode' },\n { actions: 'setRemoteError', target: 'idle' },\n ],\n },\n },\n },\n },\n confirmSignIn: confirmSignInState,\n forceChangePassword: {\n initial: 'idle',\n entry: 'clearError',\n exit: 'clearError',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: { SUBMIT: { target: 'submit' } },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'confirmSignIn',\n input: ({ event }) => event.data as ConfirmSignInInput,\n ...handleSignInResponse,\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n setupTotp: confirmSignInState,\n setupEmail: confirmSignInState,\n selectMfaType: confirmSignInState,\n resolved: { type: 'final' },\n },\n output: ({ context }) => context,\n })\n}\n","import {\n autoSignIn,\n confirmResetPassword,\n confirmSignIn,\n confirmSignUp,\n confirmUserAttribute,\n fetchUserAttributes,\n getCurrentUser,\n resendSignUpCode,\n resetPassword,\n sendUserAttributeVerificationCode,\n signIn,\n signInWithRedirect,\n signOut,\n signUp,\n} from '@aws-amplify/auth'\nimport type { Handlers } from './types'\n\nexport const defaultHandlers: Handlers = {\n getCurrentUser,\n fetchUserAttributes,\n signIn,\n signInWithRedirect,\n signUp,\n signOut,\n autoSignIn: () => autoSignIn(),\n confirmSignIn,\n confirmSignUp,\n confirmResetPassword,\n confirmUserAttribute,\n resetPassword,\n resendSignUpCode,\n sendUserAttributeVerificationCode,\n}\n","import type { ConfirmResetPasswordInput, ResetPasswordInput, ResetPasswordOutput } from '@aws-amplify/auth'\nimport { assign, fromPromise, sendParent, setup } from 'xstate'\nimport { setCodeDeliveryDetails, setNextResetPasswordStep, setNextSignInStep, setRemoteError, setUsername } from '../actions'\nimport { hasCompletedResetPassword, shouldConfirmResetPassword, shouldResetPassword } from '../guards'\nimport type { AuthEvent, Handlers, ResetPasswordContext } from '../types'\n\ntype ForgotPasswordHandlers = Pick<Handlers, 'resetPassword' | 'confirmResetPassword'>\n\n/**\n * @internal\n */\nexport const forgotPasswordActor = (handlers: ForgotPasswordHandlers, overridesContext?: ResetPasswordContext) => {\n return setup({\n types: {\n context: {} as ResetPasswordContext,\n events: {} as AuthEvent,\n },\n guards: {\n shouldResetPassword: ({ context, event }) => shouldResetPassword(context, event),\n shouldConfirmResetPassword: ({ context, event }) => shouldConfirmResetPassword(context, event),\n hasCompletedResetPassword: ({ event }) => hasCompletedResetPassword(event),\n },\n actors: {\n resetPassword: fromPromise<ResetPasswordOutput, ResetPasswordInput>(({ input }) => handlers.resetPassword(input)),\n confirmResetPassword: fromPromise<void, ConfirmResetPasswordInput>(({ input }) => handlers.confirmResetPassword(input)),\n },\n actions: {\n sendUpdate: sendParent({ type: 'CHILD_CHANGED' }),\n setCodeDeliveryDetails: assign({ codeDeliveryDetails: setCodeDeliveryDetails }),\n setNextResetPasswordStep: assign({ step: setNextResetPasswordStep }),\n setSignInStep: assign({ step: setNextSignInStep }),\n setUsername: assign({ username: setUsername }),\n setRemoteError: assign({ remoteError: setRemoteError }),\n clearError: assign({ remoteError: undefined }),\n },\n }).createMachine({\n id: 'forgotPasswordActor',\n initial: 'init',\n context: ({ input }) => ({ step: 'FORGOT_PASSWORD', ...overridesContext, ...input }),\n states: {\n init: {\n always: [\n { guard: 'shouldResetPassword', target: '#forgotPasswordActor.confirmResetPassword' },\n { guard: 'shouldConfirmResetPassword', target: '#forgotPasswordActor.confirmResetPassword' },\n { target: '#forgotPasswordActor.forgotPassword' },\n ],\n },\n forgotPassword: {\n initial: 'idle',\n exit: 'clearError',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { target: 'submit' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'setUsername', 'clearError'],\n invoke: {\n src: 'resetPassword',\n input: ({ context: { username } }) => ({ username }) as ResetPasswordInput,\n onDone: [{ actions: ['setCodeDeliveryDetails', 'setNextResetPasswordStep'], target: '#forgotPasswordActor.confirmResetPassword' }],\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n confirmResetPassword: {\n initial: 'idle',\n exit: 'clearError',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { target: 'submit' },\n RESEND: { target: 'resendCode' },\n },\n },\n resendCode: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'resetPassword',\n input: ({ context: { username } }) => ({ username }) as ResetPasswordInput,\n onDone: { target: 'idle' },\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'confirmResetPassword',\n input: ({ context, event }) => ({ username: context.username, ...event.data }) as ConfirmResetPasswordInput,\n onDone: [\n { guard: 'hasCompletedResetPassword', actions: 'setNextResetPasswordStep', target: '#forgotPasswordActor.resolved' },\n { actions: 'setSignInStep', target: '#forgotPasswordActor.resolved' },\n ],\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n resolved: { type: 'final' },\n },\n output: ({ context }) => context,\n })\n}\n","import { fromPromise, setup } from 'xstate'\nimport type { Handlers, SignOutContext } from '../types'\n\ntype SignOutHandlers = Pick<Handlers, 'signOut'>\n\n/**\n * @internal\n */\nexport const signOutActor = (handlers: SignOutHandlers) => {\n return setup({\n types: {\n context: {} as SignOutContext,\n },\n actors: {\n signOut: fromPromise(() => handlers.signOut()),\n },\n }).createMachine({\n id: 'signOutActor',\n initial: 'pending',\n context: {},\n states: {\n pending: {\n tags: 'pending',\n invoke: {\n src: 'signOut',\n onDone: 'resolved',\n onError: 'rejected',\n },\n },\n resolved: { type: 'final' },\n rejected: { type: 'final' },\n },\n output: ({ context }) => context,\n })\n}\n","import type {\n ConfirmSignUpInput,\n ConfirmSignUpOutput,\n ResendSignUpCodeInput,\n ResendSignUpCodeOutput,\n ResetPasswordInput,\n ResetPasswordOutput,\n SignInWithRedirectInput,\n SignUpInput,\n SignUpOutput,\n} from '@aws-amplify/auth'\nimport { assign, fromPromise, sendParent, setup } from 'xstate'\nimport { setCodeDeliveryDetails, setNextSignUpStep, setRemoteError, setUnverifiedUserAttributes, setUsername } from '../actions'\nimport {\n hasCompletedSignIn,\n hasCompletedSignUp,\n isUserAlreadyConfirmed,\n shouldAutoSignIn,\n shouldConfirmSignInWithNewPassword,\n shouldConfirmSignUpFromSignIn,\n shouldResetPasswordFromSignIn,\n shouldVerifyAttribute,\n} from '../guards'\nimport type { AuthEvent, Handlers, SignUpContext } from '../types'\n\ntype SignUpHandlers = Pick<\n Handlers,\n 'autoSignIn' | 'confirmSignUp' | 'signInWithRedirect' | 'signUp' | 'resetPassword' | 'resendSignUpCode' | 'fetchUserAttributes'\n>\n\n/**\n * @internal\n */\nexport const signUpActor = (handlers: SignUpHandlers, overridesContext?: SignUpContext) => {\n return setup({\n types: {\n context: {} as SignUpContext,\n events: {} as AuthEvent,\n },\n guards: {\n hasCompletedSignIn: ({ event }) => hasCompletedSignIn(event),\n hasCompletedSignUp: ({ event }) => hasCompletedSignUp(event),\n isUserAlreadyConfirmed: ({ event }) => isUserAlreadyConfirmed(event),\n shouldAutoSignIn: ({ event }) => shouldAutoSignIn(event),\n shouldConfirmSignInWithNewPassword: ({ event }) => shouldConfirmSignInWithNewPassword(event),\n shouldConfirmSignUp: ({ context: { step } }) => step === 'CONFIRM_SIGN_UP',\n shouldConfirmSignUpFromSignIn: ({ event }) => shouldConfirmSignUpFromSignIn(event),\n shouldResetPasswordFromSignIn: ({ event }) => shouldResetPasswordFromSignIn(event),\n shouldVerifyAttribute: ({ event }) => shouldVerifyAttribute(event),\n },\n actors: {\n autoSignIn: fromPromise(() => handlers.autoSignIn()),\n confirmSignUp: fromPromise<ConfirmSignUpOutput, ConfirmSignUpInput>(({ input }) => handlers.confirmSignUp(input)),\n fetchUserAttributes: fromPromise(() => handlers.fetchUserAttributes()),\n resetPassword: fromPromise<ResetPasswordOutput, ResetPasswordInput>(({ input }) => handlers.resetPassword(input)),\n resendSignUpCode: fromPromise<ResendSignUpCodeOutput, ResendSignUpCodeInput>(({ input }) => handlers.resendSignUpCode(input)),\n signUp: fromPromise<SignUpOutput, SignUpInput>(({ input }) => handlers.signUp(input)),\n signInWithRedirect: fromPromise<void, SignInWithRedirectInput>(({ input }) => handlers.signInWithRedirect(input)),\n },\n actions: {\n sendUpdate: sendParent({ type: 'CHILD_CHANGED' }),\n setShouldVerifyUserAttributeStep: assign({ unverifiedUserAttributes: setUnverifiedUserAttributes }),\n setConfirmAttributeCompleteStep: assign({ step: 'CONFIRM_ATTRIBUTE_COMPLETE' }),\n setCodeDeliveryDetails: assign({ codeDeliveryDetails: setCodeDeliveryDetails }),\n setNextSignUpStep: assign({ step: setNextSignUpStep }),\n setUsername: assign({ username: setUsername }),\n setRemoteError: assign({ remoteError: setRemoteError }),\n clearError: assign({ remoteError: undefined }),\n },\n }).createMachine({\n id: 'signUpActor',\n initial: 'init',\n context: ({ input }) => ({ step: 'SIGN_UP', ...overridesContext, ...input }),\n states: {\n init: {\n always: [{ guard: 'shouldConfirmSignUp', target: 'confirmSignUp' }, { target: '#signUpActor.signUp' }],\n },\n autoSignIn: {\n tags: 'pending',\n invoke: {\n src: 'autoSignIn',\n onDone: [\n { guard: 'hasCompletedSignIn', target: '#signUpActor.fetchUserAttributes' },\n { guard: 'shouldConfirmSignInWithNewPassword', target: '#signUpActor.resolved' },\n { guard: 'shouldResetPasswordFromSignIn', target: '#signUpActor.resetPassword' },\n { guard: 'shouldConfirmSignUpFromSignIn', target: '#signUpActor.resendSignUpCode' },\n { target: '#signUpActor.resolved' },\n ],\n onError: { target: '#signUpActor.resolved' },\n },\n },\n fetchUserAttributes: {\n invoke: {\n src: 'fetchUserAttributes',\n onDone: [\n {\n guard: 'shouldVerifyAttribute',\n actions: ['setShouldVerifyUserAttributeStep', 'setConfirmAttributeCompleteStep'],\n target: '#signUpActor.resolved',\n },\n { actions: 'setConfirmAttributeCompleteStep', target: '#signUpActor.resolved' },\n ],\n onError: { actions: 'setConfirmAttributeCompleteStep', target: '#signUpActor.resolved' },\n },\n },\n federatedSignIn: {\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'signInWithRedirect',\n input: ({ event }) => event.data as SignInWithRedirectInput,\n onDone: 'signUp',\n onError: { actions: 'setRemoteError', target: '#signUpActor.signUp' },\n },\n },\n resetPassword: {\n invoke: {\n src: 'resetPassword',\n input: ({ event }) => event.data as ResetPasswordInput,\n onDone: { actions: 'setCodeDeliveryDetails', target: '#signUpActor.resolved' },\n onError: { actions: 'setRemoteError' },\n },\n },\n resendSignUpCode: {\n tags: 'pending',\n entry: 'sendUpdate',\n exit: 'sendUpdate',\n invoke: {\n src: 'resendSignUpCode',\n input: ({ context: { username }, event }) => ({ username, ...event.data }) as ResendSignUpCodeInput,\n onDone: { actions: 'setCodeDeliveryDetails', target: '#signUpActor.confirmSignUp' },\n onError: [{ guard: 'isUserAlreadyConfirmed', target: '#signUpActor.resolved' }, { actions: 'setRemoteError' }],\n },\n },\n signUp: {\n initial: 'idle',\n exit: 'clearError',\n on: {\n FEDERATED_SIGN_IN: { target: '#signUpActor.federatedSignIn' },\n },\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { target: 'submit' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'setUsername', 'clearError'],\n invoke: {\n src: 'signUp',\n input: ({ event }) => event.data as SignUpInput,\n onDone: [\n { guard: 'hasCompletedSignUp', actions: 'setNextSignUpStep', target: '#signUpActor.resolved' },\n { guard: 'shouldAutoSignIn', actions: 'setNextSignUpStep', target: '#signUpActor.autoSignIn' },\n { actions: ['setCodeDeliveryDetails', 'setNextSignUpStep'], target: '#signUpActor.init' },\n ],\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n confirmSignUp: {\n initial: 'idle',\n exit: 'clearError',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { target: 'submit' },\n RESEND: { target: '#signUpActor.resendSignUpCode' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'confirmSignUp',\n input: ({ context: { username }, event }) => ({ username, ...event.data }) as ConfirmSignUpInput,\n onDone: [\n { guard: 'hasCompletedSignUp', actions: 'setNextSignUpStep', target: '#signUpActor.resolved' },\n { guard: 'shouldAutoSignIn', actions: 'setNextSignUpStep', target: '#signUpActor.autoSignIn' },\n { actions: 'setNextSignUpStep', target: '#signUpActor.init' },\n ],\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n resolved: { type: 'final' },\n },\n output: ({ context }) => context,\n })\n}\n","import type { ConfirmUserAttributeInput, SendUserAttributeVerificationCodeInput, SendUserAttributeVerificationCodeOutput } from '@aws-amplify/auth'\nimport { assign, fromPromise, sendParent, setup } from 'xstate'\nimport { setCodeDeliveryDetails, setConfirmAttributeCompleteStep, setRemoteError, setSelectedUserAttribute } from '../actions'\nimport type { AuthEvent, Handlers, VerifyUserContext } from '../types'\n\ntype VerifyUserAttributesHandlers = Pick<Handlers, 'sendUserAttributeVerificationCode' | 'confirmUserAttribute'>\n\n/**\n * @internal\n */\nexport const verifyUserAttributesActor = (handlers: VerifyUserAttributesHandlers, overridesContext?: VerifyUserContext) => {\n return setup({\n types: {\n context: {} as VerifyUserContext,\n events: {} as AuthEvent,\n },\n guards: {},\n actors: {\n sendUserAttributeVerificationCode: fromPromise<SendUserAttributeVerificationCodeOutput, SendUserAttributeVerificationCodeInput>(({ input }) =>\n handlers.sendUserAttributeVerificationCode(input),\n ),\n confirmVerifyUserAttribute: fromPromise<void, ConfirmUserAttributeInput>(({ input }) => handlers.confirmUserAttribute(input)),\n },\n actions: {\n sendUpdate: sendParent({ type: 'CHILD_CHANGED' }),\n setCodeDeliveryDetails: assign({ codeDeliveryDetails: setCodeDeliveryDetails }),\n setSelectedUserAttribute: assign({ selectedUserAttribute: setSelectedUserAttribute }),\n setConfirmAttributeCompleteStep: assign({ step: setConfirmAttributeCompleteStep }),\n setRemoteError: assign({ remoteError: setRemoteError }),\n clearError: assign({ remoteError: undefined }),\n clearSelectedUserAttribute: assign({ selectedUserAttribute: undefined }),\n },\n }).createMachine({\n id: 'vefiryUserAttributesActor',\n initial: 'selectUserAttributes',\n context: ({ input }) => ({ step: 'SIGN_IN', ...overridesContext, ...input }),\n states: {\n selectUserAttributes: {\n initial: 'idle',\n exit: 'clearError',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SKIP: { target: '#vefiryUserAttributesActor.resolved' },\n SUBMIT: { target: 'submit' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'sendUserAttributeVerificationCode',\n input: ({ event }) => event.data as SendUserAttributeVerificationCodeInput,\n onDone: {\n actions: ['setSelectedUserAttribute', 'setCodeDeliveryDetails'],\n target: '#vefiryUserAttributesActor.confirmVerifyUserAttribute',\n },\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n confirmVerifyUserAttribute: {\n initial: 'idle',\n exit: 'clearError',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { target: 'submit' },\n RESEND: { target: 'resendCode' },\n SKIP: { target: '#vefiryUserAttributesActor.resolved' },\n },\n },\n resendCode: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'sendUserAttributeVerificationCode',\n input: ({ context, event }) =>\n ({ userAttributeKey: context.selectedUserAttribute, ...event.data }) as SendUserAttributeVerificationCodeInput,\n onDone: { target: 'idle' },\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'confirmVerifyUserAttribute',\n input: ({ context, event }) => ({ userAttributeKey: context.selectedUserAttribute, ...event.data }) as ConfirmUserAttributeInput,\n onDone: { actions: ['setConfirmAttributeCompleteStep', 'clearSelectedUserAttribute'], target: '#vefiryUserAttributesActor.resolved' },\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n resolved: { type: 'final' },\n },\n output: ({ context }) => context,\n })\n}\n","import type { AuthUser } from '@aws-amplify/auth'\nimport { assign, forwardTo, fromPromise, setup } from 'xstate'\nimport type { AuthMachineHubHandlerOptions } from '../authenticator/types'\nimport { signInActor } from '../machines/signIn/actor'\nimport { defaultHandlers } from './defaultHandlers'\nimport { forgotPasswordActor } from './forgotPassword/actor'\nimport {\n hasCompletedAttributeConfirmation,\n isConfirmSignUpStep,\n isConfirmUserAttributeStep,\n isResetPasswordStep,\n isShouldConfirmUserAttributeStep,\n} from './guards'\nimport { signOutActor } from './signOut/actor'\nimport { signUpActor } from './signUp/actor'\nimport type { ActorDoneData, AuthContext, AuthEvent, Handlers } from './types'\nimport { verifyUserAttributesActor } from './verifyUserAttributes/actor'\n\nexport type AuthenticatorMachineOptions = AuthContext['config'] & {\n handlers?: Partial<Handlers>\n} & AuthMachineHubHandlerOptions\n\n/**\n * @internal\n */\nexport const createAuthenticatorMachine = (options?: AuthenticatorMachineOptions) => {\n const { handlers: customHandlers, ...config } = options ?? {}\n const handlers = { ...defaultHandlers, ...customHandlers }\n\n return setup({\n types: {\n context: {} as AuthContext,\n events: {} as AuthEvent,\n },\n guards: {\n hasCompletedAttributeConfirmation: ({ event: { output } }) => hasCompletedAttributeConfirmation(output?.step),\n hasUser: ({ context }) => !!context.user,\n isInitialStateSignUp: ({ context }) => context.config?.initialState === 'signUp',\n isInitialStateResetPassword: ({ context }) => context.config?.initialState === 'forgotPassword',\n isConfirmSignUpStep: ({ event: { output } }) => isConfirmSignUpStep(output?.step),\n isConfirmUserAttributeStep: ({ event: { output } }) => isConfirmUserAttributeStep(output?.step),\n isShouldConfirmUserAttributeStep: ({ event: { output } }) => isShouldConfirmUserAttributeStep(output?.step),\n isResetPasswordStep: ({ event: { output } }) => isResetPasswordStep(output?.step),\n },\n actors: {\n getCurrentUser: fromPromise(() => handlers.getCurrentUser()),\n invokeSignInActor: signInActor(handlers),\n invokeSignUpActor: signUpActor(handlers),\n invokeForgotPasswordActor: forgotPasswordActor(handlers),\n invokeVerifyUserAttributesActor: verifyUserAttributesActor(handlers),\n invokeSignOutActor: signOutActor(handlers),\n },\n actions: {\n clearActorDoneData: assign({ actorDoneData: undefined }),\n clearUser: assign({ user: undefined }),\n forwardToActor: forwardTo('childActor'),\n setUser: assign({ user: ({ event }) => event.output as AuthUser }),\n setActorDoneData: assign({ actorDoneData: ({ event }) => event.output as ActorDoneData }),\n },\n }).createMachine({\n id: 'authenticator',\n initial: 'idle',\n context: {\n config,\n user: undefined,\n },\n states: {\n idle: {\n invoke: {\n src: 'getCurrentUser',\n onDone: { actions: 'setUser', target: '#authenticator.setup' },\n onError: { target: '#authenticator.setup' },\n },\n },\n setup: {\n initial: 'init',\n states: {\n init: {\n always: [\n { guard: 'hasUser', target: '#authenticator.authenticated' },\n { guard: 'isInitialStateSignUp', target: '#authenticator.signUpActor' },\n { guard: 'isInitialStateResetPassword', target: '#authenticator.forgotPasswordActor' },\n { target: '#authenticator.signInActor' },\n ],\n },\n },\n },\n getCurrentUser: {\n invoke: {\n src: 'getCurrentUser',\n onDone: { actions: 'setUser', target: '#authenticator.authenticated' },\n onError: { target: 'setup' },\n },\n },\n signInActor: {\n invoke: {\n id: 'childActor',\n src: 'invokeSignInActor',\n input: ({ context }) => context.actorDoneData,\n onDone: [\n { guard: 'hasCompletedAttributeConfirmation', target: '#authenticator.getCurrentUser' },\n { guard: 'isShouldConfirmUserAttributeStep', actions: 'setActorDoneData', target: '#authenticator.verifyUserAttributesActor' },\n { guard: 'isResetPasswordStep', actions: 'setActorDoneData', target: '#authenticator.forgotPasswordActor' },\n { guard: 'isConfirmSignUpStep', actions: 'setActorDoneData', target: '#authenticator.signUpActor' },\n ],\n },\n entry: 'clearActorDoneData',\n on: {\n FORGOT_PASSWORD: { target: '#authenticator.forgotPasswordActor' },\n SIGN_UP: { target: '#authenticator.signUpActor' },\n SIGN_IN: { actions: 'forwardToActor' },\n FEDERATED_SIGN_IN: { actions: 'forwardToActor' },\n SUBMIT: { actions: 'forwardToActor' },\n },\n },\n signUpActor: {\n invoke: {\n id: 'childActor',\n src: 'invokeSignUpActor',\n input: ({ context }) => context.actorDoneData,\n onDone: [\n { guard: 'hasCompletedAttributeConfirmation', actions: 'clearActorDoneData', target: '#authenticator.getCurrentUser' },\n { guard: 'isShouldConfirmUserAttributeStep', actions: 'setActorDoneData', target: '#authenticator.verifyUserAttributesActor' },\n { guard: 'isConfirmUserAttributeStep', actions: 'clearActorDoneData', target: '#authenticator.verifyUserAttributesActor' },\n { actions: 'setActorDoneData', target: '#authenticator.signInActor' },\n ],\n },\n on: {\n SIGN_IN: { target: '#authenticator.signInActor' },\n FEDERATED_SIGN_IN: { actions: 'forwardToActor' },\n RESEND: { actions: 'forwardToActor' },\n SUBMIT: { actions: 'forwardToActor' },\n },\n },\n forgotPasswordActor: {\n invoke: {\n id: 'childActor',\n src: 'invokeForgotPasswordActor',\n input: ({ context }) => context.actorDoneData,\n onDone: { target: '#authenticator.signInActor' },\n },\n exit: 'clearActorDoneData',\n on: {\n SIGN_IN: { target: '#authenticator.signInActor' },\n RESEND: { actions: 'forwardToActor' },\n SUBMIT: { actions: 'forwardToActor' },\n },\n },\n verifyUserAttributesActor: {\n invoke: {\n id: 'childActor',\n src: 'invokeVerifyUserAttributesActor',\n input: ({ context }) => context.actorDoneData,\n onDone: { actions: 'setActorDoneData', target: '#authenticator.getCurrentUser' },\n },\n on: {\n SKIP: { actions: 'forwardToActor' },\n RESEND: { actions: 'forwardToActor' },\n SUBMIT: { actions: 'forwardToActor' },\n },\n },\n authenticated: {\n initial: 'idle',\n on: {\n SIGN_OUT: { target: '#authenticator.signOut' },\n },\n states: {\n idle: {\n on: {\n TOKEN_REFRESH: { target: 'refreshUser' },\n },\n },\n refreshUser: {\n invoke: {\n src: 'getCurrentUser',\n onDone: { actions: 'setUser', target: 'idle' },\n onError: { target: '#authenticator.signOut' },\n },\n },\n },\n },\n signOut: {\n invoke: {\n id: 'childActor',\n src: 'invokeSignOutActor',\n onDone: { actions: 'clearUser', target: '#authenticator.setup' },\n },\n exit: 'clearActorDoneData',\n },\n },\n on: {\n CHILD_CHANGED: { actions: assign(({ context }) => context) },\n SIGN_IN_WITH_REDIRECT: { target: '#authenticator.getCurrentUser' },\n },\n })\n}\n"],"mappings":";;;AA4BA,MAAM,qBAAqB,EAAE,YAA8C;CACzE,MAAM,EAAE,iBAAkB,MAAM,QAAQ,UAAU,oBAAoB,EAAE;AACxE,QAAO;;AAGT,MAAM,sBAAsB,EAAE,YAAqD;AACjF,QAAO,MAAM,QAAQ,UAAU;;AAWjC,MAAM,qBAAqB,EAAE,YAAsC;CACjE,MAAM,SAAU,MAAM,UAAU,EAAE;AAClC,QAAO,OAAO,UAAU,eAAe,SAAS,qBAAqB,OAAO,UAAU;;AAGxF,MAAM,qBAAqB,EAAE,YAAsC;CACjE,MAAM,SAAU,MAAM,UAAU,EAAE;AAClC,QAAO,OAAO,UAAU,eAAe,SAAS,qBAAqB,OAAO,UAAU;;AAGxF,MAAM,4BAA4B,EAAE,YAA6C;CAC/E,MAAM,SAAU,MAAM,UAAU,EAAE;AAClC,QAAO,OAAO,UAAU,sBAAsB,SAAS,4BAA4B,OAAO,UAAU;;AAKtG,MAAM,kBAAkB,EAAE,YAAkC;CAC1D,MAAM,QAAQ,MAAM;AACpB,KAAI,OAAO,SAAS,kBAClB,QAAO;AAET,QAAO,OAAO,WAAW,OAAO,MAAM;;AAGxC,MAAM,eAAe,EAAE,YAA8C,MAAM,MAAM;AAIjF,MAAM,0BAA0B,EAAE,YAAiE;CACjG,MAAM,SAAS,MAAM;AACrB,KAAI,QAAQ,UAAU,oBACpB,QAAO,QAAQ,UAAU;AAE3B,QAAO;;AAGT,MAAM,+BAA+B,EAAE,YAAoD;CACzF,MAAM,EAAE,OAAO,iBAAiB,MAAM;AAOtC,QALiC;EAC/B,GAAI,SAAS,EAAE,OAAO;EACtB,GAAI,gBAAgB,EAAE,cAAc;EACrC;;AAKH,MAAM,4BAA4B,EAAE,YAAkE;AAEpG,SADe,OAAO,SACP;;AAGjB,MAAM,0BAA0B,EAAE,YAAwD;CACxF,MAAM,SAAS,OAAO,UAAU,EAAE;AAClC,QAAO;EACL,qBAAqB,OAAO;EAC5B,mBAAmB,OAAO;EAC1B,aAAa,OAAO;EACpB,UAAU,OAAO;EACjB,MAAM,OAAO;EACb,gBAAgB,OAAO;EACvB,0BAA0B,OAAO;EACjC,iBAAiB,OAAO;EACzB;;;;AC/FH,MAAM,gCAAwC;CAAC;CAAiC;CAAkC;CAAkC;AAEpJ,MAAa,sCAAsC,UAA8B;AAE/E,QADe,MAAM,QACN,UAAU,eAAe;;AAG1C,MAAa,iCAAiC,UAA8B;AAE1E,QADe,MAAM,QACN,UAAU,eAAe;;AAG1C,MAAa,iCAAiC,UAA8B;AAE1E,QADe,MAAM,QACN,UAAU,eAAe;;AAG1C,MAAa,oBAAoB,UAA8B;AAE7D,QADe,MAAM,QACN,UAAU,eAAe;;AAG1C,MAAa,sBAAsB,UAA8B;AAE/D,QADe,MAAM,QACN,UAAU,eAAe;;AAG1C,MAAa,sBAAsB,UAA8B;AAE/D,QADe,MAAM,QACN,UAAU,eAAe;;AAG1C,MAAa,6BAA6B,UAA8B;AAEtE,QADe,MAAM,QACN,UAAU,sBAAsB;;AAGjD,MAAa,qCAAqC,SAAwB;AACxE,QAAO,SAAS;;AAGlB,MAAa,8BAA8B,SAAwB;AACjE,QAAO,SAAS;;AAGlB,MAAa,oCAAoC,SAAwB;AACvE,QAAO,SAAS;;AAGlB,MAAa,uBAAuB,SAAwB;AAC1D,QAAO,SAAS;;AAGlB,MAAa,uBAAuB,SAAwB;AAC1D,QAAO,SAAS;;AAGlB,MAAa,wCAAwC,SAAwB;AAC3E,QAAO,SAAS;;AAGlB,MAAa,uBAAuB,SAAwB;AAC1D,QAAO,8BAA8B,SAAS,KAAK;;AAGrD,MAAa,mBAAmB,SAAwB;AACtD,QAAO,SAAS;;AAGlB,MAAa,oBAAoB,SAAwB;AACvD,QAAO,SAAS;;AAGlB,MAAa,uBAAuB,SAAwB;AAC1D,QAAO,CAAC,uCAAuC,4CAA4C,CAAC,SAAS,KAAK;;AAG5G,MAAa,uBAAuB,SAA+B,UAA8B;AAE/F,SADa,OAAO,OAAO,QAAQ,QAAQ,UAC3B;;AAGlB,MAAa,8BAA8B,SAA+B,UAA8B;AAEtG,SADa,OAAO,OAAO,QAAQ,QAAQ,UAC3B;;AAGlB,MAAa,yBAAyB,UAA8B;CAClE,MAAM,EAAE,OAAO,cAAc,uBAAuB,mBAAoB,MAAM,UAAU,EAAE;AAI1F,KAAI,CAAC,SAAS,CAAC,aACb,QAAO;AAQT,QAAO,EAJe,mBAAmB,WAIhB,EAHH,0BAA0B;;AAMlD,MAAa,0BAA0B,UAA8B;AACnE,QAAO,MAAM,OAAO,YAAY;;;;;;;AC5ElC,MAAa,eAAe,UAA0B,qBAAqC;CACzF,MAAM,eAAe,MAAM;EACzB,OAAO;GACL,SAAS,EAAE;GACX,QAAQ,EAAE;GACX;EACD,QAAQ;GACN,sBAAsB,EAAE,SAAS,EAAE,aAAa,oBAAoB,KAAK;GACzE,kBAAkB,EAAE,SAAS,EAAE,aAAa,gBAAgB,KAAK;GACjE,mBAAmB,EAAE,SAAS,EAAE,aAAa,iBAAiB,KAAK;GACnE,sBAAsB,EAAE,SAAS,EAAE,aAAa,oBAAoB,KAAK;GACzE,wBAAwB,EAAE,YAAY,sBAAsB,MAAM;GAClE,qCAAqC,EAAE,YAAY,mCAAmC,MAAM;GAC5F,gCAAgC,EAAE,YAAY,8BAA8B,MAAM;GAClF,gCAAgC,EAAE,YAAY,8BAA8B,MAAM;GAClF,qBAAqB,EAAE,YAAY,mBAAmB,MAAM;GAC5D,uCAAuC,EAAE,SAAS,EAAE,aAAa,qCAAqC,KAAK;GAC5G;EACD,QAAQ;GACN,qBAAqB,kBAAkB,SAAS,qBAAqB,CAAC;GACtE,eAAe,aAAsD,EAAE,YAAY,SAAS,cAAc,MAAM,CAAC;GACjH,kBAAkB,aAA4D,EAAE,YAAY,SAAS,iBAAiB,MAAM,CAAC;GAC7H,QAAQ,aAAwC,EAAE,YAAY,SAAS,OAAO,MAAM,CAAC;GACrF,eAAe,aAAsD,EAAE,YAAY,SAAS,cAAc,MAAM,CAAC;GACjH,oBAAoB,aAA4C,EAAE,YAAY,SAAS,mBAAmB,MAAM,CAAC;GAClH;EACD,SAAS;GACP,YAAY,WAAW,EAAE,MAAM,iBAAiB,CAAC;GACjD,kCAAkC,OAAO,EAAE,MAAA,iCAAwC,CAAC;GACpF,6BAA6B,OAAO,EAAE,0BAA0B,6BAA6B,CAAC;GAC9F,wBAAwB,OAAO,EAAE,qBAAqB,wBAAwB,CAAC;GAC/E,iCAAiC,OAAO,EAAE,MAAM,8BAA8B,CAAC;GAC/E,mBAAmB,OAAO,EAAE,gBAAgB,mBAAmB,CAAC;GAChE,oBAAoB,OAAO,EAAE,iBAAiB,oBAAoB,CAAC;GACnE,mBAAmB,OAAO,EAAE,MAAM,mBAAmB,CAAC;GACtD,sBAAsB,OAAO,EAAE,MAAA,mBAA4B,CAAC;GAC5D,kBAAkB,OAAO,uBAAuB;GAChD,aAAa,OAAO,EAAE,UAAU,aAAa,CAAC;GAC9C,gBAAgB,OAAO,EAAE,aAAa,gBAAgB,CAAC;GACvD,YAAY,OAAO,EAAE,aAAa,KAAA,GAAW,CAAC;GAC/C;EACF,CAAC;CAEF,MAAM,uBAAuB,aAAa,kBAAkB,EAC1D,QAAQ;EACN;GAAE,OAAO;GAAsB,SAAS;GAAqB,QAAQ;GAAoC;EACzG;GAAE,OAAO;GAAsC,SAAS;GAAqB,QAAQ;GAAoC;EACzH;GAAE,OAAO;GAAiC,SAAS;GAAqB,QAAQ;GAA8B;EAC9G;GAAE,OAAO;GAAiC,SAAS;GAAqB,QAAQ;GAAiC;EACjH;GAAE,SAAS;IAAC;IAAqB;IAAqB;IAAqB;GAAE,QAAQ;GAAqB;EAC3G,EACF,CAAC;CACF,MAAM,qBAAqB,aAAa,kBAAkB;EACxD,SAAS;EACT,MAAM;EACN,QAAQ;GACN,MAAM;IACJ,OAAO;IACP,IAAI;KACF,QAAQ,EAAE,QAAQ,UAAU;KAC5B,SAAS,EAAE,QAAQ,uBAAuB;KAC3C;IACF;GACD,QAAQ;IACN,MAAM;IACN,OAAO,CAAC,cAAc,aAAa;IACnC,QAAQ;KACN,KAAK;KACL,QAAQ,EAAE,YAAY,MAAM;KAC5B,GAAG;KACH,SAAS;MAAE,SAAS;MAAkB,QAAQ;MAAQ;KACvD;IACF;GACF;EACF,CAAC;AAEF,QAAO,aAAa,cAAc;EAChC,IAAI;EACJ,UAAU,EAAE,aAAa;GAAE,MAAM;GAAW,GAAG;GAAkB,GAAG;GAAO;EAC3E,SAAS;EACT,QAAQ;GACN,MAAM,EACJ,QAAQ;IACN;KAAE,OAAO;KAAuB,QAAQ;KAA8B;IACtE;KAAE,OAAO;KAAmB,QAAQ;KAA0B;IAC9D;KAAE,OAAO;KAAoB,QAAQ;KAA2B;IAChE;KAAE,OAAO;KAAuB,QAAQ;KAA8B;IACtE;KAAE,OAAO;KAAwC,SAAS;KAAoB,QAAQ;KAAoC;IAC1H,EAAE,QAAQ,uBAAuB;IAClC,EACF;GACD,iBAAiB;IACf,OAAO,CAAC,cAAc,aAAa;IACnC,QAAQ;KACN,KAAK;KACL,QAAQ,EAAE,YAAY,MAAM;KAC5B,QAAQ,EAAE,QAAQ,uBAAuB;KACzC,SAAS;MAAE,SAAS;MAAkB,QAAQ;MAAuB;KACtE;IACF;GACD,qBAAqB,EACnB,QAAQ;IACN,KAAK;IACL,QAAQ,CACN;KACE,OAAO;KACP,SAAS,CAAC,oCAAoC,8BAA8B;KAC5E,QAAQ;KACT,EACD;KAAE,SAAS;KAAmC,QAAQ;KAAyB,CAChF;IACD,SAAS;KAAE,SAAS;KAAmC,QAAQ;KAAyB;IACzF,EACF;GACD,kBAAkB;IAChB,MAAM;IACN,QAAQ;KACN,KAAK;KACL,QAAQ,EAAE,SAAS,EAAE,YAAY,aAAa;MAAE;MAAU,GAAG,MAAM;MAAM;KACzE,QAAQ;MAAE,SAAS;MAA0B,QAAQ;MAAyB;KAC9E,SAAS;MAAE,SAAS;MAAkB,QAAQ;MAAuB;KACtE;IACF;GACD,eAAe,EACb,QAAQ;IACN,KAAK;IACL,QAAQ,EAAE,SAAS,EAAE,YAAY,aAAa;KAAE;KAAU,GAAG,MAAM;KAAM;IACzE,QAAQ;KAAE,SAAS;KAA0B,QAAQ;KAAyB;IAC9E,SAAS,EAAE,SAAS,CAAC,kBAAkB,aAAa,EAAE;IACvD,EACF;GACD,QAAQ;IACN,SAAS;IACT,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI;OACF,mBAAmB,EAAE,QAAQ,gCAAgC;OAC7D,QAAQ,EAAE,QAAQ,UAAU;OAC7B;MACF;KACD,QAAQ;MACN,MAAM;MACN,OAAO;OAAC;OAAc;OAAe;OAAa;MAClD,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,YAAY,MAAM;OAC5B,GAAG;OACH,SAAS,CACP;QAAE,OAAO;QAAiC,SAAS;QAAwB,QAAQ;QAAiC,EACpH;QAAE,SAAS;QAAkB,QAAQ;QAAQ,CAC9C;OACF;MACF;KACF;IACF;GACD,eAAe;GACf,qBAAqB;IACnB,SAAS;IACT,OAAO;IACP,MAAM;IACN,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI,EAAE,QAAQ,EAAE,QAAQ,UAAU,EAAE;MACrC;KACD,QAAQ;MACN,MAAM;MACN,OAAO,CAAC,cAAc,aAAa;MACnC,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,YAAY,MAAM;OAC5B,GAAG;OACH,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACF;IACF;GACD,WAAW;GACX,YAAY;GACZ,eAAe;GACf,UAAU,EAAE,MAAM,SAAS;GAC5B;EACD,SAAS,EAAE,cAAc;EAC1B,CAAC;;;;ACjNJ,MAAa,kBAA4B;CACvC;CACA;CACA;CACA;CACA;CACA;CACA,kBAAkB,YAAY;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;;;ACtBD,MAAa,uBAAuB,UAAkC,qBAA4C;AAChH,QAAO,MAAM;EACX,OAAO;GACL,SAAS,EAAE;GACX,QAAQ,EAAE;GACX;EACD,QAAQ;GACN,sBAAsB,EAAE,SAAS,YAAY,oBAAoB,SAAS,MAAM;GAChF,6BAA6B,EAAE,SAAS,YAAY,2BAA2B,SAAS,MAAM;GAC9F,4BAA4B,EAAE,YAAY,0BAA0B,MAAM;GAC3E;EACD,QAAQ;GACN,eAAe,aAAsD,EAAE,YAAY,SAAS,cAAc,MAAM,CAAC;GACjH,sBAAsB,aAA8C,EAAE,YAAY,SAAS,qBAAqB,MAAM,CAAC;GACxH;EACD,SAAS;GACP,YAAY,WAAW,EAAE,MAAM,iBAAiB,CAAC;GACjD,wBAAwB,OAAO,EAAE,qBAAqB,wBAAwB,CAAC;GAC/E,0BAA0B,OAAO,EAAE,MAAM,0BAA0B,CAAC;GACpE,eAAe,OAAO,EAAE,MAAM,mBAAmB,CAAC;GAClD,aAAa,OAAO,EAAE,UAAU,aAAa,CAAC;GAC9C,gBAAgB,OAAO,EAAE,aAAa,gBAAgB,CAAC;GACvD,YAAY,OAAO,EAAE,aAAa,KAAA,GAAW,CAAC;GAC/C;EACF,CAAC,CAAC,cAAc;EACf,IAAI;EACJ,SAAS;EACT,UAAU,EAAE,aAAa;GAAE,MAAM;GAAmB,GAAG;GAAkB,GAAG;GAAO;EACnF,QAAQ;GACN,MAAM,EACJ,QAAQ;IACN;KAAE,OAAO;KAAuB,QAAQ;KAA6C;IACrF;KAAE,OAAO;KAA8B,QAAQ;KAA6C;IAC5F,EAAE,QAAQ,uCAAuC;IAClD,EACF;GACD,gBAAgB;IACd,SAAS;IACT,MAAM;IACN,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI,EACF,QAAQ,EAAE,QAAQ,UAAU,EAC7B;MACF;KACD,QAAQ;MACN,MAAM;MACN,OAAO;OAAC;OAAc;OAAe;OAAa;MAClD,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,UAAU;OACnD,QAAQ,CAAC;QAAE,SAAS,CAAC,0BAA0B,2BAA2B;QAAE,QAAQ;QAA6C,CAAC;OAClI,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACF;IACF;GACD,sBAAsB;IACpB,SAAS;IACT,MAAM;IACN,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI;OACF,QAAQ,EAAE,QAAQ,UAAU;OAC5B,QAAQ,EAAE,QAAQ,cAAc;OACjC;MACF;KACD,YAAY;MACV,MAAM;MACN,OAAO,CAAC,cAAc,aAAa;MACnC,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,UAAU;OACnD,QAAQ,EAAE,QAAQ,QAAQ;OAC1B,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACD,QAAQ;MACN,MAAM;MACN,OAAO,CAAC,cAAc,aAAa;MACnC,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,SAAS,aAAa;QAAE,UAAU,QAAQ;QAAU,GAAG,MAAM;QAAM;OAC7E,QAAQ,CACN;QAAE,OAAO;QAA6B,SAAS;QAA4B,QAAQ;QAAiC,EACpH;QAAE,SAAS;QAAiB,QAAQ;QAAiC,CACtE;OACD,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACF;IACF;GACD,UAAU,EAAE,MAAM,SAAS;GAC5B;EACD,SAAS,EAAE,cAAc;EAC1B,CAAC;;;;;;;ACpGJ,MAAa,gBAAgB,aAA8B;AACzD,QAAO,MAAM;EACX,OAAO,EACL,SAAS,EAAE,EACZ;EACD,QAAQ,EACN,SAAS,kBAAkB,SAAS,SAAS,CAAC,EAC/C;EACF,CAAC,CAAC,cAAc;EACf,IAAI;EACJ,SAAS;EACT,SAAS,EAAE;EACX,QAAQ;GACN,SAAS;IACP,MAAM;IACN,QAAQ;KACN,KAAK;KACL,QAAQ;KACR,SAAS;KACV;IACF;GACD,UAAU,EAAE,MAAM,SAAS;GAC3B,UAAU,EAAE,MAAM,SAAS;GAC5B;EACD,SAAS,EAAE,cAAc;EAC1B,CAAC;;;;;;;ACAJ,MAAa,eAAe,UAA0B,qBAAqC;AACzF,QAAO,MAAM;EACX,OAAO;GACL,SAAS,EAAE;GACX,QAAQ,EAAE;GACX;EACD,QAAQ;GACN,qBAAqB,EAAE,YAAY,mBAAmB,MAAM;GAC5D,qBAAqB,EAAE,YAAY,mBAAmB,MAAM;GAC5D,yBAAyB,EAAE,YAAY,uBAAuB,MAAM;GACpE,mBAAmB,EAAE,YAAY,iBAAiB,MAAM;GACxD,qCAAqC,EAAE,YAAY,mCAAmC,MAAM;GAC5F,sBAAsB,EAAE,SAAS,EAAE,aAAa,SAAS;GACzD,gCAAgC,EAAE,YAAY,8BAA8B,MAAM;GAClF,gCAAgC,EAAE,YAAY,8BAA8B,MAAM;GAClF,wBAAwB,EAAE,YAAY,sBAAsB,MAAM;GACnE;EACD,QAAQ;GACN,YAAY,kBAAkB,SAAS,YAAY,CAAC;GACpD,eAAe,aAAsD,EAAE,YAAY,SAAS,cAAc,MAAM,CAAC;GACjH,qBAAqB,kBAAkB,SAAS,qBAAqB,CAAC;GACtE,eAAe,aAAsD,EAAE,YAAY,SAAS,cAAc,MAAM,CAAC;GACjH,kBAAkB,aAA4D,EAAE,YAAY,SAAS,iBAAiB,MAAM,CAAC;GAC7H,QAAQ,aAAwC,EAAE,YAAY,SAAS,OAAO,MAAM,CAAC;GACrF,oBAAoB,aAA4C,EAAE,YAAY,SAAS,mBAAmB,MAAM,CAAC;GAClH;EACD,SAAS;GACP,YAAY,WAAW,EAAE,MAAM,iBAAiB,CAAC;GACjD,kCAAkC,OAAO,EAAE,0BAA0B,6BAA6B,CAAC;GACnG,iCAAiC,OAAO,EAAE,MAAM,8BAA8B,CAAC;GAC/E,wBAAwB,OAAO,EAAE,qBAAqB,wBAAwB,CAAC;GAC/E,mBAAmB,OAAO,EAAE,MAAM,mBAAmB,CAAC;GACtD,aAAa,OAAO,EAAE,UAAU,aAAa,CAAC;GAC9C,gBAAgB,OAAO,EAAE,aAAa,gBAAgB,CAAC;GACvD,YAAY,OAAO,EAAE,aAAa,KAAA,GAAW,CAAC;GAC/C;EACF,CAAC,CAAC,cAAc;EACf,IAAI;EACJ,SAAS;EACT,UAAU,EAAE,aAAa;GAAE,MAAM;GAAW,GAAG;GAAkB,GAAG;GAAO;EAC3E,QAAQ;GACN,MAAM,EACJ,QAAQ,CAAC;IAAE,OAAO;IAAuB,QAAQ;IAAiB,EAAE,EAAE,QAAQ,uBAAuB,CAAC,EACvG;GACD,YAAY;IACV,MAAM;IACN,QAAQ;KACN,KAAK;KACL,QAAQ;MACN;OAAE,OAAO;OAAsB,QAAQ;OAAoC;MAC3E;OAAE,OAAO;OAAsC,QAAQ;OAAyB;MAChF;OAAE,OAAO;OAAiC,QAAQ;OAA8B;MAChF;OAAE,OAAO;OAAiC,QAAQ;OAAiC;MACnF,EAAE,QAAQ,yBAAyB;MACpC;KACD,SAAS,EAAE,QAAQ,yBAAyB;KAC7C;IACF;GACD,qBAAqB,EACnB,QAAQ;IACN,KAAK;IACL,QAAQ,CACN;KACE,OAAO;KACP,SAAS,CAAC,oCAAoC,kCAAkC;KAChF,QAAQ;KACT,EACD;KAAE,SAAS;KAAmC,QAAQ;KAAyB,CAChF;IACD,SAAS;KAAE,SAAS;KAAmC,QAAQ;KAAyB;IACzF,EACF;GACD,iBAAiB;IACf,OAAO,CAAC,cAAc,aAAa;IACnC,QAAQ;KACN,KAAK;KACL,QAAQ,EAAE,YAAY,MAAM;KAC5B,QAAQ;KACR,SAAS;MAAE,SAAS;MAAkB,QAAQ;MAAuB;KACtE;IACF;GACD,eAAe,EACb,QAAQ;IACN,KAAK;IACL,QAAQ,EAAE,YAAY,MAAM;IAC5B,QAAQ;KAAE,SAAS;KAA0B,QAAQ;KAAyB;IAC9E,SAAS,EAAE,SAAS,kBAAkB;IACvC,EACF;GACD,kBAAkB;IAChB,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;KACN,KAAK;KACL,QAAQ,EAAE,SAAS,EAAE,YAAY,aAAa;MAAE;MAAU,GAAG,MAAM;MAAM;KACzE,QAAQ;MAAE,SAAS;MAA0B,QAAQ;MAA8B;KACnF,SAAS,CAAC;MAAE,OAAO;MAA0B,QAAQ;MAAyB,EAAE,EAAE,SAAS,kBAAkB,CAAC;KAC/G;IACF;GACD,QAAQ;IACN,SAAS;IACT,MAAM;IACN,IAAI,EACF,mBAAmB,EAAE,QAAQ,gCAAgC,EAC9D;IACD,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI,EACF,QAAQ,EAAE,QAAQ,UAAU,EAC7B;MACF;KACD,QAAQ;MACN,MAAM;MACN,OAAO;OAAC;OAAc;OAAe;OAAa;MAClD,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,YAAY,MAAM;OAC5B,QAAQ;QACN;SAAE,OAAO;SAAsB,SAAS;SAAqB,QAAQ;SAAyB;QAC9F;SAAE,OAAO;SAAoB,SAAS;SAAqB,QAAQ;SAA2B;QAC9F;SAAE,SAAS,CAAC,0BAA0B,oBAAoB;SAAE,QAAQ;SAAqB;QAC1F;OACD,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACF;IACF;GACD,eAAe;IACb,SAAS;IACT,MAAM;IACN,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI;OACF,QAAQ,EAAE,QAAQ,UAAU;OAC5B,QAAQ,EAAE,QAAQ,iCAAiC;OACpD;MACF;KACD,QAAQ;MACN,MAAM;MACN,OAAO,CAAC,cAAc,aAAa;MACnC,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,SAAS,EAAE,YAAY,aAAa;QAAE;QAAU,GAAG,MAAM;QAAM;OACzE,QAAQ;QACN;SAAE,OAAO;SAAsB,SAAS;SAAqB,QAAQ;SAAyB;QAC9F;SAAE,OAAO;SAAoB,SAAS;SAAqB,QAAQ;SAA2B;QAC9F;SAAE,SAAS;SAAqB,QAAQ;SAAqB;QAC9D;OACD,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACF;IACF;GACD,UAAU,EAAE,MAAM,SAAS;GAC5B;EACD,SAAS,EAAE,cAAc;EAC1B,CAAC;;;;;;;ACtLJ,MAAa,6BAA6B,UAAwC,qBAAyC;AACzH,QAAO,MAAM;EACX,OAAO;GACL,SAAS,EAAE;GACX,QAAQ,EAAE;GACX;EACD,QAAQ,EAAE;EACV,QAAQ;GACN,mCAAmC,aAA8F,EAAE,YACjI,SAAS,kCAAkC,MAAM,CAClD;GACD,4BAA4B,aAA8C,EAAE,YAAY,SAAS,qBAAqB,MAAM,CAAC;GAC9H;EACD,SAAS;GACP,YAAY,WAAW,EAAE,MAAM,iBAAiB,CAAC;GACjD,wBAAwB,OAAO,EAAE,qBAAqB,wBAAwB,CAAC;GAC/E,0BAA0B,OAAO,EAAE,uBAAuB,0BAA0B,CAAC;GACrF,iCAAiC,OAAO,EAAE,MAAA,8BAAuC,CAAC;GAClF,gBAAgB,OAAO,EAAE,aAAa,gBAAgB,CAAC;GACvD,YAAY,OAAO,EAAE,aAAa,KAAA,GAAW,CAAC;GAC9C,4BAA4B,OAAO,EAAE,uBAAuB,KAAA,GAAW,CAAC;GACzE;EACF,CAAC,CAAC,cAAc;EACf,IAAI;EACJ,SAAS;EACT,UAAU,EAAE,aAAa;GAAE,MAAM;GAAW,GAAG;GAAkB,GAAG;GAAO;EAC3E,QAAQ;GACN,sBAAsB;IACpB,SAAS;IACT,MAAM;IACN,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI;OACF,MAAM,EAAE,QAAQ,uCAAuC;OACvD,QAAQ,EAAE,QAAQ,UAAU;OAC7B;MACF;KACD,QAAQ;MACN,MAAM;MACN,OAAO,CAAC,cAAc,aAAa;MACnC,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,YAAY,MAAM;OAC5B,QAAQ;QACN,SAAS,CAAC,4BAA4B,yBAAyB;QAC/D,QAAQ;QACT;OACD,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACF;IACF;GACD,4BAA4B;IAC1B,SAAS;IACT,MAAM;IACN,QAAQ;KACN,MAAM;MACJ,OAAO;MACP,IAAI;OACF,QAAQ,EAAE,QAAQ,UAAU;OAC5B,QAAQ,EAAE,QAAQ,cAAc;OAChC,MAAM,EAAE,QAAQ,uCAAuC;OACxD;MACF;KACD,YAAY;MACV,MAAM;MACN,OAAO,CAAC,cAAc,aAAa;MACnC,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,SAAS,aAChB;QAAE,kBAAkB,QAAQ;QAAuB,GAAG,MAAM;QAAM;OACrE,QAAQ,EAAE,QAAQ,QAAQ;OAC1B,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACD,QAAQ;MACN,MAAM;MACN,OAAO,CAAC,cAAc,aAAa;MACnC,QAAQ;OACN,KAAK;OACL,QAAQ,EAAE,SAAS,aAAa;QAAE,kBAAkB,QAAQ;QAAuB,GAAG,MAAM;QAAM;OAClG,QAAQ;QAAE,SAAS,CAAC,mCAAmC,6BAA6B;QAAE,QAAQ;QAAuC;OACrI,SAAS;QAAE,SAAS;QAAkB,QAAQ;QAAQ;OACvD;MACF;KACF;IACF;GACD,UAAU,EAAE,MAAM,SAAS;GAC5B;EACD,SAAS,EAAE,cAAc;EAC1B,CAAC;;;;;;;AC5EJ,MAAa,8BAA8B,YAA0C;CACnF,MAAM,EAAE,UAAU,gBAAgB,GAAG,WAAW,WAAW,EAAE;CAC7D,MAAM,WAAW;EAAE,GAAG;EAAiB,GAAG;EAAgB;AAE1D,QAAO,MAAM;EACX,OAAO;GACL,SAAS,EAAE;GACX,QAAQ,EAAE;GACX;EACD,QAAQ;GACN,oCAAoC,EAAE,OAAO,EAAE,eAAe,kCAAkC,QAAQ,KAAK;GAC7G,UAAU,EAAE,cAAc,CAAC,CAAC,QAAQ;GACpC,uBAAuB,EAAE,cAAc,QAAQ,QAAQ,iBAAiB;GACxE,8BAA8B,EAAE,cAAc,QAAQ,QAAQ,iBAAiB;GAC/E,sBAAsB,EAAE,OAAO,EAAE,eAAe,oBAAoB,QAAQ,KAAK;GACjF,6BAA6B,EAAE,OAAO,EAAE,eAAe,2BAA2B,QAAQ,KAAK;GAC/F,mCAAmC,EAAE,OAAO,EAAE,eAAe,iCAAiC,QAAQ,KAAK;GAC3G,sBAAsB,EAAE,OAAO,EAAE,eAAe,oBAAoB,QAAQ,KAAK;GAClF;EACD,QAAQ;GACN,gBAAgB,kBAAkB,SAAS,gBAAgB,CAAC;GAC5D,mBAAmB,YAAY,SAAS;GACxC,mBAAmB,YAAY,SAAS;GACxC,2BAA2B,oBAAoB,SAAS;GACxD,iCAAiC,0BAA0B,SAAS;GACpE,oBAAoB,aAAa,SAAS;GAC3C;EACD,SAAS;GACP,oBAAoB,OAAO,EAAE,eAAe,KAAA,GAAW,CAAC;GACxD,WAAW,OAAO,EAAE,MAAM,KAAA,GAAW,CAAC;GACtC,gBAAgB,UAAU,aAAa;GACvC,SAAS,OAAO,EAAE,OAAO,EAAE,YAAY,MAAM,QAAoB,CAAC;GAClE,kBAAkB,OAAO,EAAE,gBAAgB,EAAE,YAAY,MAAM,QAAyB,CAAC;GAC1F;EACF,CAAC,CAAC,cAAc;EACf,IAAI;EACJ,SAAS;EACT,SAAS;GACP;GACA,MAAM,KAAA;GACP;EACD,QAAQ;GACN,MAAM,EACJ,QAAQ;IACN,KAAK;IACL,QAAQ;KAAE,SAAS;KAAW,QAAQ;KAAwB;IAC9D,SAAS,EAAE,QAAQ,wBAAwB;IAC5C,EACF;GACD,OAAO;IACL,SAAS;IACT,QAAQ,EACN,MAAM,EACJ,QAAQ;KACN;MAAE,OAAO;MAAW,QAAQ;MAAgC;KAC5D;MAAE,OAAO;MAAwB,QAAQ;MAA8B;KACvE;MAAE,OAAO;MAA+B,QAAQ;MAAsC;KACtF,EAAE,QAAQ,8BAA8B;KACzC,EACF,EACF;IACF;GACD,gBAAgB,EACd,QAAQ;IACN,KAAK;IACL,QAAQ;KAAE,SAAS;KAAW,QAAQ;KAAgC;IACtE,SAAS,EAAE,QAAQ,SAAS;IAC7B,EACF;GACD,aAAa;IACX,QAAQ;KACN,IAAI;KACJ,KAAK;KACL,QAAQ,EAAE,cAAc,QAAQ;KAChC,QAAQ;MACN;OAAE,OAAO;OAAqC,QAAQ;OAAiC;MACvF;OAAE,OAAO;OAAoC,SAAS;OAAoB,QAAQ;OAA4C;MAC9H;OAAE,OAAO;OAAuB,SAAS;OAAoB,QAAQ;OAAsC;MAC3G;OAAE,OAAO;OAAuB,SAAS;OAAoB,QAAQ;OAA8B;MACpG;KACF;IACD,OAAO;IACP,IAAI;KACF,iBAAiB,EAAE,QAAQ,sCAAsC;KACjE,SAAS,EAAE,QAAQ,8BAA8B;KACjD,SAAS,EAAE,SAAS,kBAAkB;KACtC,mBAAmB,EAAE,SAAS,kBAAkB;KAChD,QAAQ,EAAE,SAAS,kBAAkB;KACtC;IACF;GACD,aAAa;IACX,QAAQ;KACN,IAAI;KACJ,KAAK;KACL,QAAQ,EAAE,cAAc,QAAQ;KAChC,QAAQ;MACN;OAAE,OAAO;OAAqC,SAAS;OAAsB,QAAQ;OAAiC;MACtH;OAAE,OAAO;OAAoC,SAAS;OAAoB,QAAQ;OAA4C;MAC9H;OAAE,OAAO;OAA8B,SAAS;OAAsB,QAAQ;OAA4C;MAC1H;OAAE,SAAS;OAAoB,QAAQ;OAA8B;MACtE;KACF;IACD,IAAI;KACF,SAAS,EAAE,QAAQ,8BAA8B;KACjD,mBAAmB,EAAE,SAAS,kBAAkB;KAChD,QAAQ,EAAE,SAAS,kBAAkB;KACrC,QAAQ,EAAE,SAAS,kBAAkB;KACtC;IACF;GACD,qBAAqB;IACnB,QAAQ;KACN,IAAI;KACJ,KAAK;KACL,QAAQ,EAAE,cAAc,QAAQ;KAChC,QAAQ,EAAE,QAAQ,8BAA8B;KACjD;IACD,MAAM;IACN,IAAI;KACF,SAAS,EAAE,QAAQ,8BAA8B;KACjD,QAAQ,EAAE,SAAS,kBAAkB;KACrC,QAAQ,EAAE,SAAS,kBAAkB;KACtC;IACF;GACD,2BAA2B;IACzB,QAAQ;KACN,IAAI;KACJ,KAAK;KACL,QAAQ,EAAE,cAAc,QAAQ;KAChC,QAAQ;MAAE,SAAS;MAAoB,QAAQ;MAAiC;KACjF;IACD,IAAI;KACF,MAAM,EAAE,SAAS,kBAAkB;KACnC,QAAQ,EAAE,SAAS,kBAAkB;KACrC,QAAQ,EAAE,SAAS,kBAAkB;KACtC;IACF;GACD,eAAe;IACb,SAAS;IACT,IAAI,EACF,UAAU,EAAE,QAAQ,0BAA0B,EAC/C;IACD,QAAQ;KACN,MAAM,EACJ,IAAI,EACF,eAAe,EAAE,QAAQ,eAAe,EACzC,EACF;KACD,aAAa,EACX,QAAQ;MACN,KAAK;MACL,QAAQ;OAAE,SAAS;OAAW,QAAQ;OAAQ;MAC9C,SAAS,EAAE,QAAQ,0BAA0B;MAC9C,EACF;KACF;IACF;GACD,SAAS;IACP,QAAQ;KACN,IAAI;KACJ,KAAK;KACL,QAAQ;MAAE,SAAS;MAAa,QAAQ;MAAwB;KACjE;IACD,MAAM;IACP;GACF;EACD,IAAI;GACF,eAAe,EAAE,SAAS,QAAQ,EAAE,cAAc,QAAQ,EAAE;GAC5D,uBAAuB,EAAE,QAAQ,iCAAiC;GACnE;EACF,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { HubCapsule } from "@aws-amplify/core";
|
|
2
|
+
import { ActorRefFrom } from "xstate";
|
|
3
|
+
import { AuthUser, CodeDeliveryDetails, ConfirmResetPasswordInput, ConfirmSignInInput, ConfirmSignInOutput, ConfirmSignUpInput, ConfirmSignUpOutput, ConfirmUserAttributeInput, FetchUserAttributesOutput, ResendSignUpCodeInput, ResendSignUpCodeOutput, ResetPasswordInput, ResetPasswordOutput, SendUserAttributeVerificationCodeInput, SendUserAttributeVerificationCodeOutput, SignInInput, SignInOutput, SignInWithRedirectInput, SignOutInput, SignUpInput, SignUpOutput, UserAttributeKey } from "@aws-amplify/auth";
|
|
4
|
+
|
|
5
|
+
//#region src/machines/types.d.ts
|
|
6
|
+
type AuthMFAType = "SMS" | "TOTP" | "EMAIL";
|
|
7
|
+
type AuthAllowedMFATypes = AuthMFAType[];
|
|
8
|
+
declare const FederatedIdentityProviders: {
|
|
9
|
+
readonly Apple: "Apple";
|
|
10
|
+
readonly Amazon: "Amazon";
|
|
11
|
+
readonly Facebook: "Facebook";
|
|
12
|
+
readonly Google: "Google";
|
|
13
|
+
};
|
|
14
|
+
type FederatedIdentityProviders = (typeof FederatedIdentityProviders)[keyof typeof FederatedIdentityProviders];
|
|
15
|
+
/**
|
|
16
|
+
* Cognito user contact method types that have not been verified as valid
|
|
17
|
+
*/
|
|
18
|
+
declare const unverifiedContactMethodTypes: readonly ["email", "phone_number"];
|
|
19
|
+
type UnverifiedContactMethodType = (typeof unverifiedContactMethodTypes)[number];
|
|
20
|
+
/**
|
|
21
|
+
* Authenticator routes that can be directly navigated to by user interaction.
|
|
22
|
+
*/
|
|
23
|
+
type NavigableRoute = "signIn" | "signUp" | "forgotPassword" | "signOut";
|
|
24
|
+
type InitialRoute = "signIn" | "signUp" | "forgotPassword";
|
|
25
|
+
type AuthTOTPSetupDetails = {
|
|
26
|
+
sharedSecret: string;
|
|
27
|
+
getSetupUri: (appName: string, accountName?: string) => URL;
|
|
28
|
+
};
|
|
29
|
+
type AuthEventTypes = "FEDERATED_SIGN_IN" | "RESEND" | "FORGOT_PASSWORD" | "AUTO_SIGN_IN_FAILURE" | "SIGN_IN_WITH_REDIRECT" | "SIGN_IN" | "SIGN_OUT" | "SIGN_UP" | "SUBMIT" | "SKIP" | "INIT" | "TOKEN_REFRESH";
|
|
30
|
+
type AuthEventData = Record<PropertyKey, any>;
|
|
31
|
+
type AuthEvent = {
|
|
32
|
+
type: AuthEventTypes;
|
|
33
|
+
data?: AuthEventData;
|
|
34
|
+
input?: ActorDoneData;
|
|
35
|
+
output?: AuthEventData;
|
|
36
|
+
error?: Error;
|
|
37
|
+
actorId?: string;
|
|
38
|
+
};
|
|
39
|
+
type ActorDoneData = {
|
|
40
|
+
codeDeliveryDetails?: CodeDeliveryDetails<UserAttributeKey>;
|
|
41
|
+
missingAttributes?: string[];
|
|
42
|
+
remoteError?: string;
|
|
43
|
+
step: Step;
|
|
44
|
+
totpSecretCode?: string;
|
|
45
|
+
username?: string;
|
|
46
|
+
unverifiedUserAttributes?: UnverifiedUserAttributes;
|
|
47
|
+
allowedMfaTypes?: AuthMFAType[];
|
|
48
|
+
};
|
|
49
|
+
type AuthContext = {
|
|
50
|
+
user?: AuthUser;
|
|
51
|
+
config?: {
|
|
52
|
+
initialState?: "signIn" | "signUp" | "forgotPassword";
|
|
53
|
+
};
|
|
54
|
+
actorDoneData?: ActorDoneData;
|
|
55
|
+
};
|
|
56
|
+
type InitialStep = "FORGOT_PASSWORD" | "SIGN_IN" | "SIGN_UP";
|
|
57
|
+
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_IN_WITH_PASSWORD" | "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" | "CONFIRM_SIGN_IN_WITH_CUSTOM_CHALLENGE" | "CONTINUE_SIGN_IN_WITH_FIRST_FACTOR_SELECTION" | "RESET_PASSWORD" | "SIGN_IN_COMPLETE";
|
|
58
|
+
type ResetPasswordStep = "CONFIRM_RESET_PASSWORD_WITH_CODE" | "RESET_PASSWORD_COMPLETE";
|
|
59
|
+
type SignUpStep = "CONFIRM_SIGN_UP" | "COMPLETE_AUTO_SIGN_IN" | "SIGN_UP_COMPLETE";
|
|
60
|
+
type UserAttributeStep = "SHOULD_CONFIRM_USER_ATTRIBUTE" | "CONFIRM_ATTRIBUTE_WITH_CODE" | "CONFIRM_ATTRIBUTE_COMPLETE";
|
|
61
|
+
type Step = InitialStep | SignInStep | SignUpStep | ResetPasswordStep | UserAttributeStep;
|
|
62
|
+
type BaseContext = {
|
|
63
|
+
missingAttributes?: string[];
|
|
64
|
+
remoteError?: string;
|
|
65
|
+
step: Step;
|
|
66
|
+
totpSecretCode?: string;
|
|
67
|
+
unverifiedUserAttributes?: UnverifiedUserAttributes;
|
|
68
|
+
allowedMfaTypes?: AuthMFAType[];
|
|
69
|
+
username?: string;
|
|
70
|
+
selectedUserAttribute?: string;
|
|
71
|
+
user?: AuthUser;
|
|
72
|
+
};
|
|
73
|
+
type ResetPasswordContext = BaseContext & ActorDoneData;
|
|
74
|
+
type SignInContext = BaseContext & ActorDoneData;
|
|
75
|
+
type SignUpContext = BaseContext & ActorDoneData;
|
|
76
|
+
type VerifyUserContext = BaseContext & ActorDoneData;
|
|
77
|
+
type SignOutContext = Pick<BaseContext, "user">;
|
|
78
|
+
type AuthActorContext = SignInContext | SignUpContext | ResetPasswordContext;
|
|
79
|
+
type Handlers = {
|
|
80
|
+
getCurrentUser: () => Promise<AuthUser>;
|
|
81
|
+
fetchUserAttributes: () => Promise<FetchUserAttributesOutput>;
|
|
82
|
+
signIn: (input: SignInInput) => Promise<SignInOutput>;
|
|
83
|
+
signInWithRedirect: (input?: SignInWithRedirectInput) => Promise<void>;
|
|
84
|
+
signUp: (input: SignUpInput) => Promise<SignUpOutput>;
|
|
85
|
+
signOut: (input?: SignOutInput) => Promise<void>;
|
|
86
|
+
autoSignIn: () => Promise<SignInOutput>;
|
|
87
|
+
confirmSignIn: (input: ConfirmSignInInput) => Promise<ConfirmSignInOutput>;
|
|
88
|
+
confirmSignUp: (input: ConfirmSignUpInput) => Promise<ConfirmSignUpOutput>;
|
|
89
|
+
confirmResetPassword: (input: ConfirmResetPasswordInput) => Promise<void>;
|
|
90
|
+
confirmUserAttribute: (input: ConfirmUserAttributeInput) => Promise<void>;
|
|
91
|
+
resetPassword: (input: ResetPasswordInput) => Promise<ResetPasswordOutput>;
|
|
92
|
+
resendSignUpCode: (input: ResendSignUpCodeInput) => Promise<ResendSignUpCodeOutput>;
|
|
93
|
+
sendUserAttributeVerificationCode: (input: SendUserAttributeVerificationCodeInput) => Promise<SendUserAttributeVerificationCodeOutput>;
|
|
94
|
+
};
|
|
95
|
+
type UnverifiedUserAttributes = Partial<Record<UnverifiedContactMethodType, string>>;
|
|
96
|
+
type AuthError = Error & {
|
|
97
|
+
__type: string;
|
|
98
|
+
message?: string;
|
|
99
|
+
};
|
|
100
|
+
//#endregion
|
|
101
|
+
//#region src/machines/index.d.ts
|
|
102
|
+
type AuthenticatorMachineOptions = AuthContext["config"] & {
|
|
103
|
+
handlers?: Partial<Handlers>;
|
|
104
|
+
} & AuthMachineHubHandlerOptions;
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/authenticator/types.d.ts
|
|
107
|
+
type AuthActor = ActorRefFrom<ReturnType<typeof createAuthenticatorMachine>>;
|
|
108
|
+
type AuthMachineHubHandlerOptions = {
|
|
109
|
+
onSignIn?: (user: AuthUser) => void;
|
|
110
|
+
onSignOut?: () => void;
|
|
111
|
+
};
|
|
112
|
+
type AuthMachineHubHandler = (data: HubCapsule<any, any>, actor: AuthActor, options?: AuthMachineHubHandlerOptions) => void;
|
|
113
|
+
type StopListenerCallback = () => void;
|
|
114
|
+
//#endregion
|
|
115
|
+
export { UserAttributeStep as A, SignInStep as C, Step as D, SignUpStep as E, unverifiedContactMethodTypes as M, UnverifiedContactMethodType as O, SignInContext as S, SignUpContext as T, InitialRoute as _, ActorDoneData as a, ResetPasswordContext as b, AuthContext as c, AuthEventData as d, AuthEventTypes as f, Handlers as g, FederatedIdentityProviders as h, AuthenticatorMachineOptions as i, VerifyUserContext as j, UnverifiedUserAttributes as k, AuthError as l, AuthTOTPSetupDetails as m, AuthMachineHubHandler as n, AuthActorContext as o, AuthMFAType as p, StopListenerCallback as r, AuthAllowedMFATypes as s, AuthActor as t, AuthEvent as u, InitialStep as v, SignOutContext as w, ResetPasswordStep as x, NavigableRoute as y };
|
|
116
|
+
//# sourceMappingURL=types-BQSOxe-R.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gahojin-inc/amplify-auth-hooks",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.4.0",
|
|
4
4
|
"description": "Hooks for Amplify Auth",
|
|
5
5
|
"author": "GAHOJIN, Inc.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -24,32 +24,33 @@
|
|
|
24
24
|
"access": "public",
|
|
25
25
|
"provenance": true
|
|
26
26
|
},
|
|
27
|
-
"
|
|
28
|
-
"
|
|
27
|
+
"main": "./dist/index.js",
|
|
28
|
+
"module": "./dist/index.js",
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
29
30
|
"exports": {
|
|
30
31
|
"./package.json": "./package.json",
|
|
31
32
|
".": {
|
|
32
|
-
"types": "./dist/index.d.
|
|
33
|
-
"import": "./dist/index.
|
|
33
|
+
"types": "./dist/index.d.ts",
|
|
34
|
+
"import": "./dist/index.js"
|
|
34
35
|
},
|
|
35
36
|
"./machines": {
|
|
36
|
-
"types": "./dist/machines.d.
|
|
37
|
-
"import": "./dist/machines.
|
|
37
|
+
"types": "./dist/machines.d.ts",
|
|
38
|
+
"import": "./dist/machines.js"
|
|
38
39
|
},
|
|
39
40
|
"./authenticator": {
|
|
40
|
-
"types": "./dist/authenticator.d.
|
|
41
|
-
"import": "./dist/authenticator.
|
|
41
|
+
"types": "./dist/authenticator.d.ts",
|
|
42
|
+
"import": "./dist/authenticator.js"
|
|
42
43
|
}
|
|
43
44
|
},
|
|
44
45
|
"dependencies": {
|
|
45
46
|
"@aws-amplify/auth": "6.19.1",
|
|
46
47
|
"@aws-amplify/core": "6.16.1",
|
|
47
48
|
"@xstate/react": "6.1.0",
|
|
48
|
-
"xstate": "5.
|
|
49
|
+
"xstate": "5.30.0"
|
|
49
50
|
},
|
|
50
51
|
"devDependencies": {
|
|
51
52
|
"@testing-library/react": "16.3.2",
|
|
52
|
-
"jsdom": "29.0.
|
|
53
|
+
"jsdom": "29.0.1",
|
|
53
54
|
"react": "19.2.4",
|
|
54
55
|
"react-dom": "19.2.4"
|
|
55
56
|
},
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { AuthActor, AuthMachineHubHandler, StopListenerCallback } from "./types.mjs";
|
|
2
|
-
export declare const defaultAuthHubHandler: AuthMachineHubHandler;
|
|
3
|
-
export declare const listenToAuthHub: (actor: AuthActor, handler?: AuthMachineHubHandler) => StopListenerCallback;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { AuthUser } from "@aws-amplify/auth";
|
|
2
|
-
import type { HubCapsule } from "@aws-amplify/core";
|
|
3
|
-
import type { ActorRefFrom } from "xstate";
|
|
4
|
-
import type { createAuthenticatorMachine } from "../machines.mjs";
|
|
5
|
-
export type AuthActor = ActorRefFrom<ReturnType<typeof createAuthenticatorMachine>>;
|
|
6
|
-
export type AuthMachineHubHandlerOptions = {
|
|
7
|
-
onSignIn?: (user: AuthUser) => void;
|
|
8
|
-
onSignOut?: () => void;
|
|
9
|
-
};
|
|
10
|
-
export type AuthMachineHubHandler = (data: HubCapsule<any, any>, actor: AuthActor, options?: AuthMachineHubHandlerOptions) => void;
|
|
11
|
-
export type StopListenerCallback = () => void;
|
package/dist/authenticator.d.mts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { listenToAuthHub } from "./authenticator/defaultAuthHubHandler.mjs";
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type JSX, type PropsWithChildren } from "react";
|
|
2
|
-
import { type AuthenticatorMachineOptions } from "../machines.mjs";
|
|
3
|
-
type Props = PropsWithChildren & {
|
|
4
|
-
options?: AuthenticatorMachineOptions;
|
|
5
|
-
};
|
|
6
|
-
declare const _default: ({ options, children }: Props) => JSX.Element;
|
|
7
|
-
export default _default;
|
package/dist/context/index.d.mts
DELETED
package/dist/hooks/facade.d.mts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { SnapshotFrom } from "xstate";
|
|
2
|
-
import type { AuthActor } from "../authenticator/types.mjs";
|
|
3
|
-
import type { AuthEvent } from "../machines/types.mjs";
|
|
4
|
-
import type { AuthenticatorSendEventAliases, AuthenticatorServiceContextFacade } from "./types.mjs";
|
|
5
|
-
export declare const getSendEventAliases: (send: (event: AuthEvent) => void) => AuthenticatorSendEventAliases;
|
|
6
|
-
export declare const getServiceContextFacade: (actor: SnapshotFrom<AuthActor>) => AuthenticatorServiceContextFacade;
|
package/dist/hooks/types.d.mts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { AuthUser, CodeDeliveryDetails } from "@aws-amplify/auth";
|
|
2
|
-
import type { AuthAllowedMFATypes, AuthEventData, NavigableRoute, UnverifiedUserAttributes } from "../machines/types.mjs";
|
|
3
|
-
export type AuthenticatorRoute = "authenticated" | "confirmResetPassword" | "confirmSignIn" | "confirmSignUp" | "confirmVerifyUser" | "forceNewPassword" | "idle" | "forgotPassword" | "setup" | "signOut" | "selectMfaType" | "setupEmail" | "setupTotp" | "signIn" | "signUp" | "transition" | "verifyUser";
|
|
4
|
-
type AuthenticatorMachineContext = AuthenticatorServiceFacade;
|
|
5
|
-
type AuthenticatorMachineContextKey = keyof AuthenticatorMachineContext;
|
|
6
|
-
export type UseAuthenticatorSelector = (context: AuthenticatorServiceFacade) => AuthenticatorMachineContext[AuthenticatorMachineContextKey][];
|
|
7
|
-
export type UseAuthenticator = AuthenticatorServiceFacade;
|
|
8
|
-
export type AuthenticatorServiceContextFacade = {
|
|
9
|
-
allowedMfaTypes: AuthAllowedMFATypes | undefined;
|
|
10
|
-
codeDeliveryDetails: CodeDeliveryDetails | undefined;
|
|
11
|
-
errorMessage: string | undefined;
|
|
12
|
-
isPending: boolean;
|
|
13
|
-
route: AuthenticatorRoute | null;
|
|
14
|
-
totpSecretCode: string | undefined;
|
|
15
|
-
username: string | undefined;
|
|
16
|
-
user: AuthUser | undefined;
|
|
17
|
-
unverifiedUserAttributes: UnverifiedUserAttributes | undefined;
|
|
18
|
-
};
|
|
19
|
-
export type AuthenticatorSendEventAliases = {
|
|
20
|
-
handleSubmit: (data?: AuthEventData) => void;
|
|
21
|
-
resendConfirmationCode: () => void;
|
|
22
|
-
refreshUser: () => void;
|
|
23
|
-
setRoute: (route: NavigableRoute) => void;
|
|
24
|
-
skipAttributeVerification: () => void;
|
|
25
|
-
toFederatedSignIn: (data?: AuthEventData) => void;
|
|
26
|
-
};
|
|
27
|
-
export type AuthenticatorServiceFacade = AuthenticatorSendEventAliases & AuthenticatorServiceContextFacade;
|
|
28
|
-
export type Comparator = (currentMachineContext: AuthenticatorMachineContext, nextMachineContext: AuthenticatorMachineContext) => boolean;
|
|
29
|
-
export {};
|
package/dist/hooks/useAuth.d.mts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { type AuthUser } from "@aws-amplify/auth";
|
|
2
|
-
import type { Handlers } from "../machines/types.mjs";
|
|
3
|
-
export type UseAuthResult = {
|
|
4
|
-
user?: AuthUser;
|
|
5
|
-
isLoading: boolean;
|
|
6
|
-
error?: Error;
|
|
7
|
-
};
|
|
8
|
-
type Props = {
|
|
9
|
-
getCurrentUser?: Handlers["getCurrentUser"];
|
|
10
|
-
};
|
|
11
|
-
export declare const useAuth: (handlers?: Props) => UseAuthResult;
|
|
12
|
-
export {};
|
package/dist/hooks/utils.d.mts
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import type { Comparator, UseAuthenticatorSelector } from "../hooks/types.mjs";
|
|
2
|
-
/**
|
|
3
|
-
* Checks if `value` is an Object (non-primitive, non-array, non-function)
|
|
4
|
-
* Will return false for Arrays and functions
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* @param {unknown} value The value to check
|
|
8
|
-
* @returns {boolean} Returns `true` if `value` is an object, `false` otherwise
|
|
9
|
-
*/
|
|
10
|
-
export declare function isObject(value: unknown): value is object;
|
|
11
|
-
/**
|
|
12
|
-
* Checks if `value` is a string primitive or object
|
|
13
|
-
*
|
|
14
|
-
* @param {unknown} value The value to check
|
|
15
|
-
* @returns {boolean} Returns `true` if `value` is a string, `false` otherwise
|
|
16
|
-
*/
|
|
17
|
-
export declare function isString(value: unknown): value is string;
|
|
18
|
-
/**
|
|
19
|
-
* Checks if `value` is a Map
|
|
20
|
-
*
|
|
21
|
-
* @param {unknown} value The value to check
|
|
22
|
-
* @returns {boolean} Returns `true` if `value` is a Map, `false` otherwise
|
|
23
|
-
*/
|
|
24
|
-
export declare function isMap(value: unknown): value is Map<unknown, unknown>;
|
|
25
|
-
/**
|
|
26
|
-
* Checks if `value` is a Set
|
|
27
|
-
*
|
|
28
|
-
* @param {unknown} value The value to check
|
|
29
|
-
* @returns {boolean} Returns `true` if `value` is a Set, `false` otherwise
|
|
30
|
-
*/
|
|
31
|
-
export declare function isSet<T>(value: unknown): value is Set<T>;
|
|
32
|
-
/**
|
|
33
|
-
* Checks if `value` is undefined
|
|
34
|
-
*
|
|
35
|
-
* @param {unknown} value The value to check
|
|
36
|
-
* @returns {boolean} Returns `true` if `value` is undefined, `false` otherwise
|
|
37
|
-
*/
|
|
38
|
-
export declare function isUndefined(value: unknown): value is undefined;
|
|
39
|
-
/**
|
|
40
|
-
* Checks if `value` is nullish
|
|
41
|
-
*
|
|
42
|
-
* @param {unknown} value The value to check
|
|
43
|
-
* @returns {boolean} Returns `true` if `value` is nullish, `false` otherwise
|
|
44
|
-
*/
|
|
45
|
-
export declare function isNil(value: unknown): value is null | undefined;
|
|
46
|
-
/**
|
|
47
|
-
* Checks if `value` is empty
|
|
48
|
-
*
|
|
49
|
-
* @param {unknown} value The value to check
|
|
50
|
-
* @returns {boolean} Returns `true` if `value` is empty, `false` otherwise
|
|
51
|
-
*/
|
|
52
|
-
export declare function isEmpty<T>(value: T): boolean;
|
|
53
|
-
/**
|
|
54
|
-
* Checks if all members of the `values` param are empty arrays
|
|
55
|
-
*
|
|
56
|
-
* @param {unknown} value The values to check
|
|
57
|
-
* @returns {boolean} Returns `true` if all members of `values` are empty, `false` otherwise
|
|
58
|
-
*/
|
|
59
|
-
export declare function areEmptyArrays<T>(...values: T[]): boolean;
|
|
60
|
-
/**
|
|
61
|
-
* Checks if `value` is an empty object
|
|
62
|
-
*
|
|
63
|
-
* @param {unknown} value The value to check
|
|
64
|
-
* @returns {boolean} Returns `true` if `value` is empty, `false` otherwise
|
|
65
|
-
*/
|
|
66
|
-
export declare function isEmptyObject<T>(value: T): boolean;
|
|
67
|
-
/**
|
|
68
|
-
* Checks if all members of the `values` param are empty objects
|
|
69
|
-
*
|
|
70
|
-
* @param {unknown} values The values to check
|
|
71
|
-
* @returns {boolean} Returns `true` if all members of the `values` param are empty, `false` otherwise
|
|
72
|
-
*/
|
|
73
|
-
export declare function areEmptyObjects<T>(...values: T[]): boolean;
|
|
74
|
-
/**
|
|
75
|
-
* Checks if `key` is a direct property of `value`
|
|
76
|
-
*
|
|
77
|
-
* @param {unknown} value `object` potentially containing property
|
|
78
|
-
* @param {string} key property key
|
|
79
|
-
* @returns whether `key` param is a property of the `obj` param
|
|
80
|
-
*/
|
|
81
|
-
export declare function has(value: unknown, key: string): boolean;
|
|
82
|
-
/**
|
|
83
|
-
* Does an ordering and shallow comparison of each array value,
|
|
84
|
-
* plus a value equality check for empty objects and arrays.
|
|
85
|
-
*/
|
|
86
|
-
export declare function areSelectorDepsEqual<T>(currentDeps: T[], nextDeps: T[]): boolean;
|
|
87
|
-
export declare const getComparator: (selector: UseAuthenticatorSelector) => Comparator;
|
package/dist/index.d.mts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { AuthenticatorContext, AuthenticatorProvider } from "./context/index.mjs";
|
|
2
|
-
export type * from "./hooks/types.mjs";
|
|
3
|
-
export { type UseAuthResult, useAuth } from "./hooks/useAuth.mjs";
|
|
4
|
-
export { useAuthenticator } from "./hooks/useAuthenticator.mjs";
|
|
5
|
-
export * from "./machines/types.mjs";
|
|
6
|
-
export { getTotpCodeURL } from "./utils.mjs";
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../src/context/AuthenticatorContext.ts","../src/context/AuthenticatorProvider.tsx","../src/hooks/useAuth.ts","../src/hooks/facade.ts","../src/hooks/utils.ts","../src/hooks/useAuthenticator.ts","../src/machines/types.ts","../src/utils.ts"],"sourcesContent":["import { type Context, createContext } from 'react'\nimport type { AuthActor } from '../authenticator/types'\n\ntype AuthenticatorContextType = {\n actor: AuthActor\n}\n\nexport const AuthenticatorContext: Context<AuthenticatorContextType | null> = createContext<AuthenticatorContextType | null>(null)\n","import { useActor } from '@xstate/react'\nimport { type JSX, type PropsWithChildren, useContext, useEffect, useMemo } from 'react'\nimport { defaultAuthHubHandler, listenToAuthHub } from '../authenticator/defaultAuthHubHandler'\nimport type { AuthMachineHubHandler, AuthMachineHubHandlerOptions } from '../authenticator/types'\nimport { AuthenticatorContext } from '../context/AuthenticatorContext'\nimport { type AuthenticatorMachineOptions, createAuthenticatorMachine } from '../machines'\n\nconst createHubHandler = (options?: AuthMachineHubHandlerOptions): AuthMachineHubHandler => {\n return (data, service) => defaultAuthHubHandler(data, service, options)\n}\n\ntype Props = PropsWithChildren & {\n options?: AuthenticatorMachineOptions\n}\n\nexport default ({ options, children }: Props): JSX.Element => {\n const machine = useMemo(() => createAuthenticatorMachine(options), [options])\n\n // 階層構造にAuthenticatorContextを使用している場合、親Contextの認証状態を継承する\n const parentProvider = useContext(AuthenticatorContext)\n const [, , actor] = useActor(machine)\n const value = useMemo(() => parentProvider ?? { actor }, [parentProvider, actor])\n\n const { actor: activeActor } = value\n\n useEffect(() => {\n return listenToAuthHub(activeActor, createHubHandler(options))\n }, [activeActor, options])\n\n return <AuthenticatorContext.Provider value={value}>{children}</AuthenticatorContext.Provider>\n}\n","/*\n * Copyright 2017 - 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * (C) 2025 GAHOJIN, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport { type AuthUser, getCurrentUser } from '@aws-amplify/auth'\nimport { Hub, type HubCallback } from '@aws-amplify/core'\nimport { useCallback, useEffect, useState } from 'react'\nimport type { Handlers } from '../machines/types'\n\nexport type UseAuthResult = {\n user?: AuthUser\n isLoading: boolean\n error?: Error\n}\n\ntype Props = {\n getCurrentUser?: Handlers['getCurrentUser']\n}\n\nexport const useAuth = (handlers?: Props): UseAuthResult => {\n const [result, setResult] = useState<UseAuthResult>({\n isLoading: true,\n })\n\n const fetchCurrentUser = useCallback(() => {\n // loading\n setResult((prev) => ({ ...prev, isLoading: true }))\n\n void (handlers?.getCurrentUser ?? getCurrentUser)()\n .then((user) => setResult({ user, isLoading: false }))\n .catch((e) => setResult({ error: e as Error, isLoading: false }))\n }, [handlers?.getCurrentUser])\n\n const handleAuth: HubCallback = useCallback(\n ({ payload }) => {\n switch (payload.event) {\n // success events\n case 'signedIn':\n case 'signUp':\n case 'autoSignIn':\n setResult({ user: payload.data as AuthUser, isLoading: false })\n break\n case 'signedOut':\n setResult({ isLoading: false })\n break\n\n // failure events\n case 'tokenRefresh_failure':\n case 'signIn_failure':\n setResult({ error: payload.data as Error, isLoading: false })\n break\n case 'autoSignIn_failure':\n // autoSignIn just returns error message. Wrap it to an Error object\n setResult({ error: new Error(payload.message), isLoading: false })\n break\n\n // events that need another fetch\n case 'tokenRefresh':\n void fetchCurrentUser()\n break\n\n default:\n // we do not handle other hub events like `configured`.\n break\n }\n },\n [fetchCurrentUser],\n )\n\n useEffect(() => {\n const unsubscribe = Hub.listen('auth', handleAuth, 'useAuth')\n void fetchCurrentUser() // on init, see if user is already logged in\n\n return unsubscribe\n }, [handleAuth, fetchCurrentUser])\n\n return result\n}\n","import type { AnyMachineSnapshot, SnapshotFrom } from 'xstate'\nimport type { AuthActor } from '../authenticator/types'\nimport type { AuthActorContext, AuthEvent, AuthEventTypes, NavigableRoute } from '../machines/types'\nimport type { AuthenticatorRoute, AuthenticatorSendEventAliases, AuthenticatorServiceContextFacade } from './types'\n\nconst NAVIGABLE_ROUTE_EVENT: Record<NavigableRoute, AuthEventTypes> = {\n forgotPassword: 'FORGOT_PASSWORD',\n signIn: 'SIGN_IN',\n signUp: 'SIGN_UP',\n signOut: 'SIGN_OUT',\n}\n\nexport const getSendEventAliases = (send: (event: AuthEvent) => void): AuthenticatorSendEventAliases => {\n return {\n handleSubmit: (data) => send({ type: 'SUBMIT', data }),\n resendConfirmationCode: () => send({ type: 'RESEND' }),\n refreshUser: () => send({ type: 'TOKEN_REFRESH' }),\n setRoute: (route) => send({ type: NAVIGABLE_ROUTE_EVENT[route] }),\n skipAttributeVerification: () => send({ type: 'SKIP' }),\n toFederatedSignIn: () => send({ type: 'FEDERATED_SIGN_IN' }),\n }\n}\n\nconst getChildActor = (snapshot: SnapshotFrom<AuthActor>): AnyMachineSnapshot | undefined => {\n return snapshot.children?.childActor?.getSnapshot() as AnyMachineSnapshot\n}\n\nconst getRoute = (actor: SnapshotFrom<AuthActor>, childActor: AnyMachineSnapshot | undefined): AuthenticatorRoute | null => {\n // 'federatedSignIn' exists as a state on both the 'signInActor' and 'signUpActor',\n // match against the `actorState` initially to determine if the federated sign in flow\n // has begun, then which actor has begun the flow and return the corresponding `route`\n if (childActor?.matches('federatedSignIn')) {\n if (actor.matches('signUpActor')) {\n return 'signUp'\n }\n if (actor.matches('signInActor')) {\n return 'signIn'\n }\n }\n\n switch (true) {\n case actor.matches('idle'):\n return 'idle'\n case actor.matches('setup'):\n return 'setup'\n case actor.matches('signOut'):\n return 'signOut'\n case actor.matches('authenticated'):\n return 'authenticated'\n case childActor?.matches('confirmSignUp'):\n case childActor?.matches('resendSignUpCode'):\n return 'confirmSignUp'\n case childActor?.matches('confirmSignIn'):\n return 'confirmSignIn'\n case childActor?.matches('setupTotp'):\n return 'setupTotp'\n case childActor?.matches('signIn'):\n return 'signIn'\n case childActor?.matches('signUp'):\n case childActor?.matches('autoSignIn'):\n return 'signUp'\n case childActor?.matches('forceChangePassword'):\n return 'forceNewPassword'\n case childActor?.matches('forgotPassword'):\n return 'forgotPassword'\n case childActor?.matches('confirmResetPassword'):\n return 'confirmResetPassword'\n case childActor?.matches('selectUserAttributes'):\n return 'verifyUser'\n case childActor?.matches('confirmVerifyUserAttribute'):\n return 'confirmVerifyUser'\n case childActor?.matches('setupEmail'):\n return 'setupEmail'\n case childActor?.matches('selectMfaType'):\n return 'selectMfaType'\n case actor.matches('getCurrentUser'):\n case childActor?.matches('fetchUserAttributes'):\n /**\n * This route is needed for autoSignIn to capture both the\n * autoSignIn.pending and the resolved states when the\n * signIn actor is running.\n */\n return 'transition'\n default:\n return null\n }\n}\n\nexport const getServiceContextFacade = (actor: SnapshotFrom<AuthActor>): AuthenticatorServiceContextFacade => {\n const childActor = getChildActor(actor)\n const isPending = (actor.hasTag('pending') || childActor?.hasTag('pending')) ?? false\n const route = getRoute(actor, childActor)\n const context = actor.context\n const actorContext: AuthActorContext = childActor?.context ?? {}\n const user = actorContext?.user ?? context.user\n\n const { allowedMfaTypes, codeDeliveryDetails, remoteError: errorMessage, totpSecretCode, unverifiedUserAttributes, username } = actorContext\n\n return {\n allowedMfaTypes,\n codeDeliveryDetails,\n errorMessage,\n isPending,\n route,\n totpSecretCode,\n unverifiedUserAttributes,\n user,\n username,\n }\n}\n","/*\n * Copyright 2017 - 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * (C) 2025 GAHOJIN, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport type { Comparator, UseAuthenticatorSelector } from '../hooks/types'\n\n/**\n * Checks if `value` is an Object (non-primitive, non-array, non-function)\n * Will return false for Arrays and functions\n *\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is an object, `false` otherwise\n */\nexport function isObject(value: unknown): value is object {\n return value != null && !Array.isArray(value) && typeof value === 'object'\n}\n\n/**\n * Checks if `value` is a string primitive or object\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a string, `false` otherwise\n */\nexport function isString(value: unknown): value is string {\n return typeof value === 'string' || (typeof value === 'object' && Object.prototype.toString.call(value) === '[object String]')\n}\n\n/**\n * Checks if `value` is a Map\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a Map, `false` otherwise\n */\nexport function isMap(value: unknown): value is Map<unknown, unknown> {\n return isObject(value) && Object.prototype.toString.call(value) === '[object Map]'\n}\n\n/**\n * Checks if `value` is a Set\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a Set, `false` otherwise\n */\nexport function isSet<T>(value: unknown): value is Set<T> {\n return isObject(value) && Object.prototype.toString.call(value) === '[object Set]'\n}\n\n/**\n * Checks if `value` is undefined\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is undefined, `false` otherwise\n */\nexport function isUndefined(value: unknown): value is undefined {\n return value === undefined\n}\n\n/**\n * Checks if `value` is nullish\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is nullish, `false` otherwise\n */\nexport function isNil(value: unknown): value is null | undefined {\n return value == null\n}\n\n/**\n * Checks if `value` is empty\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is empty, `false` otherwise\n */\nexport function isEmpty<T>(value: T): boolean {\n if (value === null || value === undefined) return true\n\n if (isObject(value) && (isMap(value) || isSet(value))) {\n return !value.size\n }\n if (isObject(value) && (isString(value) || Array.isArray(value))) {\n return !value.length\n }\n for (const key in value) {\n if (has(value, key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Checks if `value` is an empty array\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a empty, `false` otherwise\n */\nfunction isEmptyArray<T>(value: T): boolean {\n return Array.isArray(value) && isEmpty(value)\n}\n\n/**\n * Checks if all members of the `values` param are empty arrays\n *\n * @param {unknown} value The values to check\n * @returns {boolean} Returns `true` if all members of `values` are empty, `false` otherwise\n */\nexport function areEmptyArrays<T>(...values: T[]): boolean {\n return values.every(isEmptyArray)\n}\n\n/**\n * Checks if `value` is an empty object\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is empty, `false` otherwise\n */\nexport function isEmptyObject<T>(value: T): boolean {\n return isObject(value) && isEmpty(value)\n}\n\n/**\n * Checks if all members of the `values` param are empty objects\n *\n * @param {unknown} values The values to check\n * @returns {boolean} Returns `true` if all members of the `values` param are empty, `false` otherwise\n */\nexport function areEmptyObjects<T>(...values: T[]): boolean {\n return values.every(isEmptyObject)\n}\n\n/**\n * Checks if `key` is a direct property of `value`\n *\n * @param {unknown} value `object` potentially containing property\n * @param {string} key property key\n * @returns whether `key` param is a property of the `obj` param\n */\nexport function has(value: unknown, key: string): boolean {\n return value != null && Object.hasOwn(value, key)\n}\n\n/**\n * Does an ordering and shallow comparison of each array value,\n * plus a value equality check for empty objects and arrays.\n */\nexport function areSelectorDepsEqual<T>(currentDeps: T[], nextDeps: T[]): boolean {\n if (currentDeps.length !== nextDeps.length) {\n return false\n }\n return currentDeps.every((currentDep, index) => {\n const nextDep = nextDeps[index]\n\n if (areEmptyArrays(currentDep, nextDep) || areEmptyObjects(currentDep, nextDep)) {\n return true\n }\n\n return currentDep === nextDep\n })\n}\n\nexport const getComparator = (selector: UseAuthenticatorSelector): Comparator => {\n return (currentFacade, nextFacade) => {\n const currentSelectorDeps = selector(currentFacade)\n const nextSelectorDeps = selector(nextFacade)\n\n // Shallow compare the array values\n return areSelectorDepsEqual(currentSelectorDeps, nextSelectorDeps)\n }\n}\n","import { useSelector } from '@xstate/react'\nimport { useContext } from 'react'\nimport { AuthenticatorContext } from '../context'\nimport { getSendEventAliases, getServiceContextFacade } from './facade'\nimport type { UseAuthenticator, UseAuthenticatorSelector } from './types'\nimport { getComparator } from './utils'\n\nconst defaultComparator = (): false => false\n\nexport const useAuthenticator = (selector?: UseAuthenticatorSelector): UseAuthenticator => {\n const context = useContext(AuthenticatorContext)\n\n if (!context) {\n throw new Error('`useAuthenticator` must be used inside an `AuthenticatorProvider`.')\n }\n\n const { actor } = context\n const { send } = actor\n\n const comparator = selector ? getComparator(selector) : defaultComparator\n\n return useSelector(\n actor,\n (snapshot) => ({\n ...getSendEventAliases(send),\n ...getServiceContextFacade(snapshot),\n }),\n comparator,\n )\n}\n","/*\n * Copyright 2017 - 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * (C) 2025 GAHOJIN, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport type {\n AuthUser,\n CodeDeliveryDetails,\n ConfirmResetPasswordInput,\n ConfirmSignInInput,\n ConfirmSignInOutput,\n ConfirmSignUpInput,\n ConfirmSignUpOutput,\n ConfirmUserAttributeInput,\n FetchUserAttributesOutput,\n ResendSignUpCodeInput,\n ResendSignUpCodeOutput,\n ResetPasswordInput,\n ResetPasswordOutput,\n SendUserAttributeVerificationCodeInput,\n SendUserAttributeVerificationCodeOutput,\n SignInInput,\n SignInOutput,\n SignInWithRedirectInput,\n SignOutInput,\n SignUpInput,\n SignUpOutput,\n UserAttributeKey,\n} from '@aws-amplify/auth'\n\nexport type AuthMFAType = 'SMS' | 'TOTP' | 'EMAIL'\nexport type AuthAllowedMFATypes = AuthMFAType[]\n\nexport const FederatedIdentityProviders = {\n Apple: 'Apple',\n Amazon: 'Amazon',\n Facebook: 'Facebook',\n Google: 'Google',\n} as const\nexport type FederatedIdentityProviders = (typeof FederatedIdentityProviders)[keyof typeof FederatedIdentityProviders]\n\n/**\n * Cognito user contact method types that have not been verified as valid\n */\nexport const unverifiedContactMethodTypes = ['email', 'phone_number'] as const\nexport type UnverifiedContactMethodType = (typeof unverifiedContactMethodTypes)[number]\n\n/**\n * Authenticator routes that can be directly navigated to by user interaction.\n */\nexport type NavigableRoute = 'signIn' | 'signUp' | 'forgotPassword' | 'signOut'\nexport type InitialRoute = 'signIn' | 'signUp' | 'forgotPassword'\n\nexport type AuthTOTPSetupDetails = {\n sharedSecret: string\n getSetupUri: (appName: string, accountName?: string) => URL\n}\n\nexport type AuthEventTypes =\n | 'FEDERATED_SIGN_IN'\n | 'RESEND'\n | 'FORGOT_PASSWORD'\n | 'AUTO_SIGN_IN_FAILURE'\n | 'SIGN_IN_WITH_REDIRECT'\n | 'SIGN_IN'\n | 'SIGN_OUT'\n | 'SIGN_UP'\n | 'SUBMIT'\n | 'SKIP'\n | 'INIT'\n | 'TOKEN_REFRESH'\n\n// biome-ignore lint/suspicious/noExplicitAny: イベントデータの型は定義出来ない\nexport type AuthEventData = Record<PropertyKey, any>\n\nexport type AuthEvent = {\n type: AuthEventTypes\n data?: AuthEventData\n input?: ActorDoneData\n output?: AuthEventData\n error?: Error\n actorId?: string\n}\n\nexport type ActorDoneData = {\n codeDeliveryDetails?: CodeDeliveryDetails<UserAttributeKey>\n missingAttributes?: string[]\n remoteError?: string\n step: Step\n totpSecretCode?: string\n username?: string\n unverifiedUserAttributes?: UnverifiedUserAttributes\n allowedMfaTypes?: AuthMFAType[]\n}\n\nexport type AuthContext = {\n user?: AuthUser\n config?: {\n initialState?: 'signIn' | 'signUp' | 'forgotPassword'\n }\n // data returned from actors when they finish and reach their final state\n actorDoneData?: ActorDoneData\n}\n\nexport type InitialStep = 'FORGOT_PASSWORD' | 'SIGN_IN' | 'SIGN_UP'\n\nexport type SignInStep =\n | 'CONFIRM_SIGN_IN_WITH_EMAIL_CODE'\n | 'CONFIRM_SIGN_IN_WITH_SMS_CODE'\n | 'CONFIRM_SIGN_IN_WITH_TOTP_CODE'\n | 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED'\n | 'CONFIRM_SIGN_IN_WITH_PASSWORD'\n | 'CONFIRM_SIGN_UP'\n | 'CONTINUE_SIGN_IN_WITH_TOTP_SETUP'\n | 'CONTINUE_SIGN_IN_WITH_EMAIL_SETUP'\n | 'CONTINUE_SIGN_IN_WITH_MFA_SETUP_SELECTION'\n | 'CONTINUE_SIGN_IN_WITH_MFA_SELECTION'\n | 'CONFIRM_SIGN_IN_WITH_CUSTOM_CHALLENGE'\n | 'CONTINUE_SIGN_IN_WITH_FIRST_FACTOR_SELECTION'\n | 'RESET_PASSWORD'\n | 'SIGN_IN_COMPLETE' // 'DONE'\n\nexport type ResetPasswordStep = 'CONFIRM_RESET_PASSWORD_WITH_CODE' | 'RESET_PASSWORD_COMPLETE' // 'DONE'\n\nexport type SignUpStep = 'CONFIRM_SIGN_UP' | 'COMPLETE_AUTO_SIGN_IN' | 'SIGN_UP_COMPLETE' // 'DONE'\n\nexport type UserAttributeStep = 'SHOULD_CONFIRM_USER_ATTRIBUTE' | 'CONFIRM_ATTRIBUTE_WITH_CODE' | 'CONFIRM_ATTRIBUTE_COMPLETE' // 'DONE'\n\nexport type Step = InitialStep | SignInStep | SignUpStep | ResetPasswordStep | UserAttributeStep\n\ntype BaseContext = {\n missingAttributes?: string[]\n remoteError?: string\n step: Step\n totpSecretCode?: string\n unverifiedUserAttributes?: UnverifiedUserAttributes\n allowedMfaTypes?: AuthMFAType[]\n\n // kept in memory for submission to relevnat APIs\n username?: string\n selectedUserAttribute?: string\n\n // retrieved from the Auth module on sign in,\n // cleared on sign out\n user?: AuthUser\n}\n\nexport type ResetPasswordContext = BaseContext & ActorDoneData\nexport type SignInContext = BaseContext & ActorDoneData\nexport type SignUpContext = BaseContext & ActorDoneData\nexport type VerifyUserContext = BaseContext & ActorDoneData\nexport type SignOutContext = Pick<BaseContext, 'user'>\n\nexport type AuthActorContext = SignInContext | SignUpContext | ResetPasswordContext\n\nexport type Handlers = {\n getCurrentUser: () => Promise<AuthUser>\n fetchUserAttributes: () => Promise<FetchUserAttributesOutput>\n signIn: (input: SignInInput) => Promise<SignInOutput>\n signInWithRedirect: (input?: SignInWithRedirectInput) => Promise<void>\n signUp: (input: SignUpInput) => Promise<SignUpOutput>\n signOut: (input?: SignOutInput) => Promise<void>\n autoSignIn: () => Promise<SignInOutput>\n confirmSignIn: (input: ConfirmSignInInput) => Promise<ConfirmSignInOutput>\n confirmSignUp: (input: ConfirmSignUpInput) => Promise<ConfirmSignUpOutput>\n confirmResetPassword: (input: ConfirmResetPasswordInput) => Promise<void>\n confirmUserAttribute: (input: ConfirmUserAttributeInput) => Promise<void>\n resetPassword: (input: ResetPasswordInput) => Promise<ResetPasswordOutput>\n resendSignUpCode: (input: ResendSignUpCodeInput) => Promise<ResendSignUpCodeOutput>\n sendUserAttributeVerificationCode: (input: SendUserAttributeVerificationCodeInput) => Promise<SendUserAttributeVerificationCodeOutput>\n}\n\nexport type UnverifiedUserAttributes = Partial<Record<UnverifiedContactMethodType, string>>\n\nexport type AuthError = Error & {\n __type: string\n message?: string\n}\n","export const getTotpCodeURL = (issuer: string, username: string, secret: string): string => {\n return encodeURI(`otpauth://totp/${issuer}:${username}?secret=${secret}&issuer=${issuer}`)\n}\n"],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { CodeDeliveryDetails, UserAttributeKey } from "@aws-amplify/auth";
|
|
2
|
-
import type { AuthVerifiableAttributeKey } from "@aws-amplify/core/internals/utils";
|
|
3
|
-
import type { AuthEvent, AuthEventData, AuthMFAType, ResetPasswordStep, SignInContext, SignInStep, SignUpStep, Step, UnverifiedUserAttributes } from "./types.mjs";
|
|
4
|
-
type ActionParams<Context = unknown> = {
|
|
5
|
-
context: Context;
|
|
6
|
-
event: AuthEvent;
|
|
7
|
-
};
|
|
8
|
-
declare const setTotpSecretCode: ({ event }: ActionParams) => string | undefined;
|
|
9
|
-
declare const setAllowedMfaTypes: ({ event }: ActionParams) => AuthMFAType[] | undefined;
|
|
10
|
-
declare const setSignInStep: Step;
|
|
11
|
-
declare const setShouldVerifyUserAttributeStep: Step;
|
|
12
|
-
declare const setConfirmAttributeCompleteStep: Step;
|
|
13
|
-
declare const setConfirmSignUpStep: Step;
|
|
14
|
-
declare const setNextSignInStep: ({ event }: ActionParams) => SignInStep;
|
|
15
|
-
declare const setNextSignUpStep: ({ event }: ActionParams) => SignUpStep;
|
|
16
|
-
declare const setNextResetPasswordStep: ({ event }: ActionParams) => ResetPasswordStep;
|
|
17
|
-
declare const setMissingAttributes: ({ event }: ActionParams) => string | undefined;
|
|
18
|
-
declare const setRemoteError: ({ event }: ActionParams) => string;
|
|
19
|
-
declare const setUsername: ({ event }: ActionParams) => string | undefined;
|
|
20
|
-
declare const setUser: ({ event }: ActionParams) => AuthEventData | undefined;
|
|
21
|
-
declare const setCodeDeliveryDetails: ({ event }: ActionParams) => CodeDeliveryDetails<UserAttributeKey>;
|
|
22
|
-
declare const setUnverifiedUserAttributes: ({ event }: ActionParams) => UnverifiedUserAttributes;
|
|
23
|
-
declare const setSelectedUserAttribute: ({ event }: ActionParams) => AuthVerifiableAttributeKey | undefined;
|
|
24
|
-
declare const setSignInActorDoneData: ({ event }: ActionParams<SignInContext>) => SignInContext;
|
|
25
|
-
export { setAllowedMfaTypes, setCodeDeliveryDetails, setMissingAttributes, setNextResetPasswordStep, setNextSignInStep, setNextSignUpStep, setRemoteError, setConfirmAttributeCompleteStep, setShouldVerifyUserAttributeStep, setSelectedUserAttribute, setSignInStep, setConfirmSignUpStep, setTotpSecretCode, setUsername, setUser, setUnverifiedUserAttributes, setSignInActorDoneData };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { AuthEvent, ResetPasswordContext, Step } from "./types.mjs";
|
|
2
|
-
export declare const shouldConfirmSignInWithNewPassword: (event: AuthEvent) => boolean;
|
|
3
|
-
export declare const shouldResetPasswordFromSignIn: (event: AuthEvent) => boolean;
|
|
4
|
-
export declare const shouldConfirmSignUpFromSignIn: (event: AuthEvent) => boolean;
|
|
5
|
-
export declare const shouldAutoSignIn: (event: AuthEvent) => boolean;
|
|
6
|
-
export declare const hasCompletedSignIn: (event: AuthEvent) => boolean;
|
|
7
|
-
export declare const hasCompletedSignUp: (event: AuthEvent) => boolean;
|
|
8
|
-
export declare const hasCompletedResetPassword: (event: AuthEvent) => boolean;
|
|
9
|
-
export declare const hasCompletedAttributeConfirmation: (step: Step) => boolean;
|
|
10
|
-
export declare const isConfirmUserAttributeStep: (step: Step) => boolean;
|
|
11
|
-
export declare const isShouldConfirmUserAttributeStep: (step: Step) => boolean;
|
|
12
|
-
export declare const isResetPasswordStep: (step: Step) => boolean;
|
|
13
|
-
export declare const isConfirmSignUpStep: (step: Step) => boolean;
|
|
14
|
-
export declare const isShouldConfirmSignInWithNewPassword: (step: Step) => boolean;
|
|
15
|
-
export declare const shouldConfirmSignIn: (step: Step) => boolean;
|
|
16
|
-
export declare const shouldSetupTotp: (step: Step) => boolean;
|
|
17
|
-
export declare const shouldSetupEmail: (step: Step) => boolean;
|
|
18
|
-
export declare const shouldSelectMfaType: (step: Step) => boolean;
|
|
19
|
-
export declare const shouldResetPassword: (context: ResetPasswordContext, event: AuthEvent) => boolean;
|
|
20
|
-
export declare const shouldConfirmResetPassword: (context: ResetPasswordContext, event: AuthEvent) => boolean;
|
|
21
|
-
export declare const shouldVerifyAttribute: (event: AuthEvent) => boolean;
|
|
22
|
-
export declare const isUserAlreadyConfirmed: (event: AuthEvent) => boolean;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import type { AuthUser, CodeDeliveryDetails, ConfirmResetPasswordInput, ConfirmSignInInput, ConfirmSignInOutput, ConfirmSignUpInput, ConfirmSignUpOutput, ConfirmUserAttributeInput, FetchUserAttributesOutput, ResendSignUpCodeInput, ResendSignUpCodeOutput, ResetPasswordInput, ResetPasswordOutput, SendUserAttributeVerificationCodeInput, SendUserAttributeVerificationCodeOutput, SignInInput, SignInOutput, SignInWithRedirectInput, SignOutInput, SignUpInput, SignUpOutput, UserAttributeKey } from "@aws-amplify/auth";
|
|
2
|
-
export type AuthMFAType = "SMS" | "TOTP" | "EMAIL";
|
|
3
|
-
export type AuthAllowedMFATypes = AuthMFAType[];
|
|
4
|
-
export declare const FederatedIdentityProviders: {
|
|
5
|
-
readonly Apple: "Apple";
|
|
6
|
-
readonly Amazon: "Amazon";
|
|
7
|
-
readonly Facebook: "Facebook";
|
|
8
|
-
readonly Google: "Google";
|
|
9
|
-
};
|
|
10
|
-
export type FederatedIdentityProviders = (typeof FederatedIdentityProviders)[keyof typeof FederatedIdentityProviders];
|
|
11
|
-
/**
|
|
12
|
-
* Cognito user contact method types that have not been verified as valid
|
|
13
|
-
*/
|
|
14
|
-
export declare const unverifiedContactMethodTypes: readonly ["email", "phone_number"];
|
|
15
|
-
export type UnverifiedContactMethodType = (typeof unverifiedContactMethodTypes)[number];
|
|
16
|
-
/**
|
|
17
|
-
* Authenticator routes that can be directly navigated to by user interaction.
|
|
18
|
-
*/
|
|
19
|
-
export type NavigableRoute = "signIn" | "signUp" | "forgotPassword" | "signOut";
|
|
20
|
-
export type InitialRoute = "signIn" | "signUp" | "forgotPassword";
|
|
21
|
-
export type AuthTOTPSetupDetails = {
|
|
22
|
-
sharedSecret: string;
|
|
23
|
-
getSetupUri: (appName: string, accountName?: string) => URL;
|
|
24
|
-
};
|
|
25
|
-
export type AuthEventTypes = "FEDERATED_SIGN_IN" | "RESEND" | "FORGOT_PASSWORD" | "AUTO_SIGN_IN_FAILURE" | "SIGN_IN_WITH_REDIRECT" | "SIGN_IN" | "SIGN_OUT" | "SIGN_UP" | "SUBMIT" | "SKIP" | "INIT" | "TOKEN_REFRESH";
|
|
26
|
-
export type AuthEventData = Record<PropertyKey, any>;
|
|
27
|
-
export type AuthEvent = {
|
|
28
|
-
type: AuthEventTypes;
|
|
29
|
-
data?: AuthEventData;
|
|
30
|
-
input?: ActorDoneData;
|
|
31
|
-
output?: AuthEventData;
|
|
32
|
-
error?: Error;
|
|
33
|
-
actorId?: string;
|
|
34
|
-
};
|
|
35
|
-
export type ActorDoneData = {
|
|
36
|
-
codeDeliveryDetails?: CodeDeliveryDetails<UserAttributeKey>;
|
|
37
|
-
missingAttributes?: string[];
|
|
38
|
-
remoteError?: string;
|
|
39
|
-
step: Step;
|
|
40
|
-
totpSecretCode?: string;
|
|
41
|
-
username?: string;
|
|
42
|
-
unverifiedUserAttributes?: UnverifiedUserAttributes;
|
|
43
|
-
allowedMfaTypes?: AuthMFAType[];
|
|
44
|
-
};
|
|
45
|
-
export type AuthContext = {
|
|
46
|
-
user?: AuthUser;
|
|
47
|
-
config?: {
|
|
48
|
-
initialState?: "signIn" | "signUp" | "forgotPassword";
|
|
49
|
-
};
|
|
50
|
-
actorDoneData?: ActorDoneData;
|
|
51
|
-
};
|
|
52
|
-
export type InitialStep = "FORGOT_PASSWORD" | "SIGN_IN" | "SIGN_UP";
|
|
53
|
-
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_IN_WITH_PASSWORD" | "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" | "CONFIRM_SIGN_IN_WITH_CUSTOM_CHALLENGE" | "CONTINUE_SIGN_IN_WITH_FIRST_FACTOR_SELECTION" | "RESET_PASSWORD" | "SIGN_IN_COMPLETE";
|
|
54
|
-
export type ResetPasswordStep = "CONFIRM_RESET_PASSWORD_WITH_CODE" | "RESET_PASSWORD_COMPLETE";
|
|
55
|
-
export type SignUpStep = "CONFIRM_SIGN_UP" | "COMPLETE_AUTO_SIGN_IN" | "SIGN_UP_COMPLETE";
|
|
56
|
-
export type UserAttributeStep = "SHOULD_CONFIRM_USER_ATTRIBUTE" | "CONFIRM_ATTRIBUTE_WITH_CODE" | "CONFIRM_ATTRIBUTE_COMPLETE";
|
|
57
|
-
export type Step = InitialStep | SignInStep | SignUpStep | ResetPasswordStep | UserAttributeStep;
|
|
58
|
-
type BaseContext = {
|
|
59
|
-
missingAttributes?: string[];
|
|
60
|
-
remoteError?: string;
|
|
61
|
-
step: Step;
|
|
62
|
-
totpSecretCode?: string;
|
|
63
|
-
unverifiedUserAttributes?: UnverifiedUserAttributes;
|
|
64
|
-
allowedMfaTypes?: AuthMFAType[];
|
|
65
|
-
username?: string;
|
|
66
|
-
selectedUserAttribute?: string;
|
|
67
|
-
user?: AuthUser;
|
|
68
|
-
};
|
|
69
|
-
export type ResetPasswordContext = BaseContext & ActorDoneData;
|
|
70
|
-
export type SignInContext = BaseContext & ActorDoneData;
|
|
71
|
-
export type SignUpContext = BaseContext & ActorDoneData;
|
|
72
|
-
export type VerifyUserContext = BaseContext & ActorDoneData;
|
|
73
|
-
export type SignOutContext = Pick<BaseContext, "user">;
|
|
74
|
-
export type AuthActorContext = SignInContext | SignUpContext | ResetPasswordContext;
|
|
75
|
-
export type Handlers = {
|
|
76
|
-
getCurrentUser: () => Promise<AuthUser>;
|
|
77
|
-
fetchUserAttributes: () => Promise<FetchUserAttributesOutput>;
|
|
78
|
-
signIn: (input: SignInInput) => Promise<SignInOutput>;
|
|
79
|
-
signInWithRedirect: (input?: SignInWithRedirectInput) => Promise<void>;
|
|
80
|
-
signUp: (input: SignUpInput) => Promise<SignUpOutput>;
|
|
81
|
-
signOut: (input?: SignOutInput) => Promise<void>;
|
|
82
|
-
autoSignIn: () => Promise<SignInOutput>;
|
|
83
|
-
confirmSignIn: (input: ConfirmSignInInput) => Promise<ConfirmSignInOutput>;
|
|
84
|
-
confirmSignUp: (input: ConfirmSignUpInput) => Promise<ConfirmSignUpOutput>;
|
|
85
|
-
confirmResetPassword: (input: ConfirmResetPasswordInput) => Promise<void>;
|
|
86
|
-
confirmUserAttribute: (input: ConfirmUserAttributeInput) => Promise<void>;
|
|
87
|
-
resetPassword: (input: ResetPasswordInput) => Promise<ResetPasswordOutput>;
|
|
88
|
-
resendSignUpCode: (input: ResendSignUpCodeInput) => Promise<ResendSignUpCodeOutput>;
|
|
89
|
-
sendUserAttributeVerificationCode: (input: SendUserAttributeVerificationCodeInput) => Promise<SendUserAttributeVerificationCodeOutput>;
|
|
90
|
-
};
|
|
91
|
-
export type UnverifiedUserAttributes = Partial<Record<UnverifiedContactMethodType, string>>;
|
|
92
|
-
export type AuthError = Error & {
|
|
93
|
-
__type: string;
|
|
94
|
-
message?: string;
|
|
95
|
-
};
|
|
96
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/machines.d.mts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { AuthMachineHubHandlerOptions } from "./authenticator/types.mjs";
|
|
2
|
-
import type { AuthContext, Handlers } from "./machines/types.mjs";
|
|
3
|
-
export type AuthenticatorMachineOptions = AuthContext["config"] & {
|
|
4
|
-
handlers?: Partial<Handlers>;
|
|
5
|
-
} & AuthMachineHubHandlerOptions;
|
package/dist/utils.d.mts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const getTotpCodeURL: (issuer: string, username: string, secret: string) => string;
|
|
File without changes
|
|
File without changes
|