@seamless-auth/react 0.7.0 → 0.8.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/CHANGELOG.md +26 -0
- package/dist/client/createSeamlessAuthClient.d.ts +8 -1
- package/dist/components/AuthFallbackOptions.d.ts +1 -1
- package/dist/hooks/useLoginMethods.d.ts +30 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @seamless-auth/react
|
|
2
2
|
|
|
3
|
+
## 0.8.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 28623e2: Offer a way past passkey registration when another login method is enabled.
|
|
8
|
+
|
|
9
|
+
Registration used to end on a screen with one control on it. A user who did not want a passkey, or
|
|
10
|
+
whose device could not make one, had no way forward: the unsupported branch rendered a message and
|
|
11
|
+
nothing else, on a screen with no exit. The session already exists by then, since the OTP step that
|
|
12
|
+
leads here establishes it, so leaving without a passkey was always a legitimate way to finish.
|
|
13
|
+
|
|
14
|
+
`useLoginMethods` reads the instance configuration from the auth server, and the skip only appears
|
|
15
|
+
when a method other than `passkey` is enabled. With passkey as the only method a skip would leave a
|
|
16
|
+
user unable to sign back into the account they just created, so the control is not rendered at all.
|
|
17
|
+
Unknown counts as unsafe: a failed or in-flight read shows no skip rather than guessing.
|
|
18
|
+
|
|
19
|
+
The unsupported-device branch now says which case it is, and offers the same way forward when one
|
|
20
|
+
exists.
|
|
21
|
+
|
|
22
|
+
`Login` no longer starts from a hardcoded `['passkey', 'magic_link', 'phone_otp']`. It uses the
|
|
23
|
+
methods the instance reports, falling back to the narrower `['passkey', 'magic_link']` that matches
|
|
24
|
+
the auth server's own defaults. The login response stays authoritative when it carries methods of
|
|
25
|
+
its own.
|
|
26
|
+
|
|
27
|
+
Requires an auth server serving `GET /system-config/public`, and an adapter that proxies it.
|
|
28
|
+
|
|
3
29
|
## 0.7.0
|
|
4
30
|
|
|
5
31
|
### Minor Changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AddOrganizationMemberRequest, CreateOrganizationRequest, CredentialUpdateResponse, LoginMethod as LoginMethodShape, LoginSuccessResponse, LogoutScope as LogoutScopeShape, MeResponse, MessageResponse, OAuthProvidersResponse, OrganizationEnvelopeResponse, OrganizationListResponse, OrganizationMembersResponse, OrganizationMembershipEnvelopeResponse, OrganizationSwitchResponse, PublicOAuthProvider, RegistrationRequest, StartOAuthLoginResponse, StepUpMethod as StepUpMethodShape, StepUpStatus as StepUpStatusShape, TotpEnrollmentStartResponse, TotpStatus as TotpStatusShape, UpdateOrganizationMemberRequest, UpdateOrganizationRequest } from '@seamless-auth/types';
|
|
1
|
+
import type { AddOrganizationMemberRequest, CreateOrganizationRequest, CredentialUpdateResponse, LoginMethod as LoginMethodShape, LoginSuccessResponse, LogoutScope as LogoutScopeShape, MeResponse, MessageResponse, OAuthProvidersResponse, OrganizationEnvelopeResponse, OrganizationListResponse, OrganizationMembersResponse, OrganizationMembershipEnvelopeResponse, OrganizationSwitchResponse, PublicOAuthProvider, PublicSystemConfigResponse, RegistrationRequest, StartOAuthLoginResponse, StepUpMethod as StepUpMethodShape, StepUpStatus as StepUpStatusShape, TotpEnrollmentStartResponse, TotpStatus as TotpStatusShape, UpdateOrganizationMemberRequest, UpdateOrganizationRequest } from '@seamless-auth/types';
|
|
2
2
|
import { type SeamlessAuthResult } from './result';
|
|
3
3
|
import { PasskeyPrfInput, PasskeyPrfResult } from './webauthnPrf';
|
|
4
4
|
export interface SeamlessAuthClientOptions {
|
|
@@ -39,6 +39,12 @@ export type OrganizationMembershipResult = OrganizationMembershipEnvelopeRespons
|
|
|
39
39
|
export type OrganizationSwitchResult = Omit<OrganizationSwitchResponse, 'token' | 'sub' | 'sessionId'>;
|
|
40
40
|
export type OAuthProvider = PublicOAuthProvider;
|
|
41
41
|
export type OAuthProvidersResult = OAuthProvidersResponse;
|
|
42
|
+
/**
|
|
43
|
+
* The configuration a signed-out client may read. Fetched before there is a
|
|
44
|
+
* session, so the sign-in screens can match how this instance is configured
|
|
45
|
+
* instead of assuming a default set of methods.
|
|
46
|
+
*/
|
|
47
|
+
export type PublicSystemConfigResult = PublicSystemConfigResponse;
|
|
42
48
|
export interface StartOAuthLoginInput {
|
|
43
49
|
providerId: string;
|
|
44
50
|
redirectUri?: string;
|
|
@@ -112,6 +118,7 @@ export interface SeamlessAuthClient {
|
|
|
112
118
|
checkMagicLink: () => Promise<SeamlessAuthResult<MessageResult>>;
|
|
113
119
|
verifyMagicLink: (token: string) => Promise<SeamlessAuthResult<MessageResult>>;
|
|
114
120
|
listOAuthProviders: () => Promise<SeamlessAuthResult<OAuthProvidersResult>>;
|
|
121
|
+
getPublicSystemConfig: () => Promise<SeamlessAuthResult<PublicSystemConfigResult>>;
|
|
115
122
|
startOAuthLogin: (input: StartOAuthLoginInput) => Promise<SeamlessAuthResult<StartOAuthLoginResult>>;
|
|
116
123
|
finishOAuthLogin: (input: FinishOAuthLoginInput) => Promise<SeamlessAuthResult<MessageResult>>;
|
|
117
124
|
registerPasskey: (input: PasskeyMetadata | RegisterPasskeyOptions) => Promise<SeamlessAuthResult<PasskeyRegistrationData>>;
|
|
@@ -6,7 +6,7 @@ interface AuthFallbackOptionsProps {
|
|
|
6
6
|
onEmailOtp?: () => void;
|
|
7
7
|
onPhoneOtp: () => void;
|
|
8
8
|
onPasskeyRetry?: () => void;
|
|
9
|
-
loginMethods?: LoginMethod[];
|
|
9
|
+
loginMethods?: LoginMethod[] | null;
|
|
10
10
|
}
|
|
11
11
|
declare const AuthFallbackOptions: React.FC<AuthFallbackOptionsProps>;
|
|
12
12
|
export default AuthFallbackOptions;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { LoginMethod } from '../client/createSeamlessAuthClient';
|
|
2
|
+
/**
|
|
3
|
+
* Used only until the instance answers, and if it never does.
|
|
4
|
+
*
|
|
5
|
+
* Deliberately the narrowest useful set, and matching the auth server's own
|
|
6
|
+
* defaults. Offering a method that turns out to be disabled sends a user down a
|
|
7
|
+
* path that fails, which is worse than showing one option too few.
|
|
8
|
+
*/
|
|
9
|
+
export declare const FALLBACK_LOGIN_METHODS: LoginMethod[];
|
|
10
|
+
/**
|
|
11
|
+
* Which sign-in methods this instance has enabled, read from the auth server
|
|
12
|
+
* rather than assumed.
|
|
13
|
+
*
|
|
14
|
+
* `loginMethods` stays null until the answer arrives, and stays null if the
|
|
15
|
+
* request fails. A caller must treat that as "unknown" and not as "none": the
|
|
16
|
+
* screens use it to decide what is safe to offer, and guessing in either
|
|
17
|
+
* direction is worse than waiting. `loading` is what a caller renders against.
|
|
18
|
+
*/
|
|
19
|
+
export declare const useLoginMethods: () => {
|
|
20
|
+
loginMethods: ("passkey" | "magic_link" | "email_otp" | "phone_otp" | "oauth")[] | null;
|
|
21
|
+
loading: boolean;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Whether a user who declines a passkey would still have a way to sign in.
|
|
25
|
+
*
|
|
26
|
+
* Returns false while the methods are unknown, so a failed or in-flight request
|
|
27
|
+
* never produces a skip control that could strand someone in an account they
|
|
28
|
+
* cannot get back into.
|
|
29
|
+
*/
|
|
30
|
+
export declare const hasNonPasskeyLoginMethod: (loginMethods: LoginMethod[] | null) => boolean;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { AuthContextType, AuthProvider, useAuth } from './AuthProvider';
|
|
2
2
|
import { AuthRoutes } from './AuthRoutes';
|
|
3
|
-
import { createSeamlessAuthClient, CredentialUpdateResult, CreateOrganizationInput, CurrentUserResult, FinishOAuthLoginInput, LoginInput, LoginMethod, LoginStartResult, MessageResult, OAuthProvider, OAuthProvidersResult, OrganizationMemberInput, OrganizationMemberUpdateInput, OrganizationMembersResult, OrganizationMembershipResult, OrganizationResult, OrganizationSwitchResult, OrganizationsResult, PasskeyLoginData, PasskeyMetadata, PasskeyRegistrationData, RegisterInput, RegisterPasskeyOptions, SeamlessAuthClient, SeamlessAuthClientOptions, StartOAuthLoginInput, StartOAuthLoginResult, StepUpMethod, StepUpStatus, StepUpPrfData, TotpEnrollmentStartResult, TotpStatus, UpdateOrganizationInput } from './client/createSeamlessAuthClient';
|
|
3
|
+
import { createSeamlessAuthClient, CredentialUpdateResult, CreateOrganizationInput, CurrentUserResult, FinishOAuthLoginInput, LoginInput, LoginMethod, LoginStartResult, MessageResult, OAuthProvider, OAuthProvidersResult, PublicSystemConfigResult, OrganizationMemberInput, OrganizationMemberUpdateInput, OrganizationMembersResult, OrganizationMembershipResult, OrganizationResult, OrganizationSwitchResult, OrganizationsResult, PasskeyLoginData, PasskeyMetadata, PasskeyRegistrationData, RegisterInput, RegisterPasskeyOptions, SeamlessAuthClient, SeamlessAuthClientOptions, StartOAuthLoginInput, StartOAuthLoginResult, StepUpMethod, StepUpStatus, StepUpPrfData, TotpEnrollmentStartResult, TotpStatus, UpdateOrganizationInput } from './client/createSeamlessAuthClient';
|
|
4
4
|
import { getOAuthErrorCode, getWebAuthnErrorDetail, OAuthErrorCode, SeamlessAuthError, WebAuthnErrorDetail } from './client/errors';
|
|
5
5
|
import type { SeamlessAuthResult } from './client/result';
|
|
6
6
|
import { encodePrfSalt, extractPasskeyPrfResult, isPasskeyPrfSupported, PasskeyPrfInput, PasskeyPrfResult } from './client/webauthnPrf';
|
|
7
7
|
import { useAuthClient } from './hooks/useAuthClient';
|
|
8
|
+
import { hasNonPasskeyLoginMethod, useLoginMethods } from './hooks/useLoginMethods';
|
|
8
9
|
import { usePasskeySupport } from './hooks/usePasskeySupport';
|
|
9
10
|
import { hasScopedRole, roleGrantsAccess } from './scopedRoles';
|
|
10
11
|
import { Credential, Organization, OrganizationMembership, User } from './types';
|
|
11
|
-
export { AuthProvider, AuthRoutes, createSeamlessAuthClient, encodePrfSalt, extractPasskeyPrfResult, getOAuthErrorCode, getWebAuthnErrorDetail, hasScopedRole, isPasskeyPrfSupported, roleGrantsAccess, SeamlessAuthError, useAuth, useAuthClient, usePasskeySupport, };
|
|
12
|
-
export type { CredentialUpdateResult, AuthContextType, Credential, CreateOrganizationInput, CurrentUserResult, FinishOAuthLoginInput, LoginInput, LoginMethod, LoginStartResult, MessageResult, OAuthErrorCode, OAuthProvider, OAuthProvidersResult, Organization, OrganizationMemberInput, OrganizationMembership, OrganizationMemberUpdateInput, OrganizationMembersResult, OrganizationMembershipResult, OrganizationResult, OrganizationSwitchResult, OrganizationsResult, PasskeyLoginData, PasskeyMetadata, PasskeyPrfInput, PasskeyPrfResult, PasskeyRegistrationData, RegisterInput, RegisterPasskeyOptions, SeamlessAuthClient, SeamlessAuthClientOptions, SeamlessAuthResult, StartOAuthLoginInput, StartOAuthLoginResult, StepUpMethod, StepUpStatus, StepUpPrfData, TotpEnrollmentStartResult, TotpStatus, UpdateOrganizationInput, User, WebAuthnErrorDetail, };
|
|
12
|
+
export { AuthProvider, AuthRoutes, createSeamlessAuthClient, encodePrfSalt, extractPasskeyPrfResult, getOAuthErrorCode, getWebAuthnErrorDetail, hasNonPasskeyLoginMethod, hasScopedRole, isPasskeyPrfSupported, roleGrantsAccess, SeamlessAuthError, useAuth, useAuthClient, useLoginMethods, usePasskeySupport, };
|
|
13
|
+
export type { CredentialUpdateResult, AuthContextType, Credential, CreateOrganizationInput, CurrentUserResult, FinishOAuthLoginInput, LoginInput, LoginMethod, LoginStartResult, MessageResult, OAuthErrorCode, OAuthProvider, OAuthProvidersResult, Organization, OrganizationMemberInput, OrganizationMembership, OrganizationMemberUpdateInput, OrganizationMembersResult, OrganizationMembershipResult, OrganizationResult, OrganizationSwitchResult, OrganizationsResult, PasskeyLoginData, PasskeyMetadata, PasskeyPrfInput, PasskeyPrfResult, PasskeyRegistrationData, PublicSystemConfigResult, RegisterInput, RegisterPasskeyOptions, SeamlessAuthClient, SeamlessAuthClientOptions, SeamlessAuthResult, StartOAuthLoginInput, StartOAuthLoginResult, StepUpMethod, StepUpStatus, StepUpPrfData, TotpEnrollmentStartResult, TotpStatus, UpdateOrganizationInput, User, WebAuthnErrorDetail, };
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as i}from"react/jsx-runtime";import{browserSupportsWebAuthn as o,bufferToBase64URLString as n,base64URLStringToBuffer as r,startAuthentication as a,startRegistration as s,WebAuthnError as l}from"@simplewebauthn/browser";import{createContext as d,useMemo as c,useSyncExternalStore as u,useEffect as _,useContext as m,useState as g,useRef as p,useCallback as f}from"react";import{useHref as h,useNavigate as y,useLocation as b,useSearchParams as v,Routes as k,Route as w,Navigate as x}from"react-router-dom";import S from"libphonenumber-js";class P extends Error{constructor(e,t,i,o){super(e),this.name="SeamlessAuthError",this.status=t,this.body=i,this.cause=o}}const N={oauth_missing_email:!0,oauth_email_not_verified:!0,oauth_missing_subject:!0};function O(e){if("object"==typeof e&&null!==e)return e.code}function T(e){if(!(e instanceof P))return;if("object"!=typeof e.body||null===e.body)return;const t=O(e.body)??O(e.body.details);return"string"==typeof t&&Object.prototype.hasOwnProperty.call(N,t)?t:void 0}function C(e){if(!(e instanceof P)||("object"!=typeof(t=e.cause)||null===t||"string"!=typeof t.name))return;var t;const{name:i,code:o,message:n}=e.cause;return{name:i,code:"string"==typeof o?o:void 0,message:"string"==typeof n?n:""}}async function I(e,t){let i;try{i=await e.json()}catch{i=void 0}return new P(function(e){if("object"!=typeof e||null===e)return;const{error:t,message:i}=e;return"string"==typeof t&&t?t:"string"==typeof i&&i?i:void 0}(i)??t,e.status,i)}async function M(e){try{return await e.json()}catch{return}}async function A(e,t){let i;try{i=await e}catch{return{data:null,error:new P(t,0)}}return i.ok?{data:await M(i),error:null}:{data:null,error:await I(i,t)}}function z(e){return{data:e,error:null}}function E(e,t=0,i,o){return{data:null,error:new P(e,t,i,o)}}function F(e){if(e instanceof ArrayBuffer)return e;const t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),i=new Uint8Array(t.byteLength);return i.set(t),i.buffer}function L(e){return"string"==typeof e?e:n(F(e))}function U(e){return"string"==typeof e?r(e):e}function R(e){return{...e.credentialId?{credentialId:e.credentialId}:{},prf:{salt:L(e.salt),...e.secondSalt?{secondSalt:L(e.secondSalt)}:{}}}}async function B(){return!!o()&&("undefined"==typeof window||!1!==window.isSecureContext)&&void 0!==globalThis.PublicKeyCredential&&"undefined"!=typeof navigator&&"function"==typeof navigator.credentials?.get}function q(e){const t=e,i=t.extensions?.prf?.eval;return i?{...t,extensions:{...t.extensions,prf:{...t.extensions?.prf,eval:{...i,...i.first?{first:U(i.first)}:{},...i.second?{second:U(i.second)}:{}}}}}:e}function j(e){const t=e.clientExtensionResults,i=t?.prf?.results?.first;if(!i)return null;const o=(r=i)instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength);var r;return{credentialId:e.id,output:o,outputBase64url:n(F(o))}}function J(e){const t=e.clientExtensionResults;return t?.prf?.results?{...e,clientExtensionResults:{...e.clientExtensionResults,prf:{...t.prf,results:void 0}}}:e}function G(e,t){const i=e.method===t?e.method:null;return"Success"===e.message&&!0===e.fresh&&null!==i?z({fresh:!0,method:i,verifiedAt:e.verifiedAt??null,expiresAt:e.expiresAt??null,maxAgeSeconds:e.maxAgeSeconds??0}):E(e.message??"Step-up authentication failed.")}function W(e){return e?{method:"POST",body:JSON.stringify(R(e))}:{method:"POST"}}function D(e,t,i){const o=E(t,0,void 0,i),n=C(o.error);return console.error(e,n?.name??"Unknown error."),o}const $=e=>{const t=(e=>{const{authHost:t}=e;return async function(e,i){const o=`${t?.replace(/\/+$/,"")??""}/auth${e.startsWith("/")?e:`/${e}`}`,n=null!=i?.body,r={...i,credentials:"include",headers:{...n?{"Content-Type":"application/json"}:{},...i?.headers}};return fetch(o,r)}})({authHost:e.apiHost});return{getCurrentUser:()=>A(t("users/me",{method:"GET"}),"Failed to load the current user."),login:e=>A(t("/login",{method:"POST",body:JSON.stringify(e)}),"Failed to start sign-in."),loginWithPasskey:async e=>{const i=await A(t("/webAuthn/login/start",{...W(e?.prf)}),"Failed to start passkey login.");if(i.error)return i;let o,n;try{const e=await a({optionsJSON:q(i.data)});o=j(e),n=J(e)}catch(e){return D("Passkey login error.","Passkey login failed.",e)}const r=await A(t("/webAuthn/login/finish",{method:"POST",body:JSON.stringify({assertionResponse:n})}),"Failed to verify passkey.");return r.error?r:"Success"!==r.data?.message?E(r.data?.message??"Passkey login failed."):z(o?{prf:o}:{})},logout:(e={})=>A(t("all_sessions"===e.scope?"/logout/all":"/logout",{method:"DELETE"}),"Failed to sign out."),logoutAllSessions:()=>A(t("/logout/all",{method:"DELETE"}),"Failed to sign out of all sessions."),deleteUser:()=>A(t("/users/delete",{method:"DELETE"}),"Failed to delete the account."),register:e=>A(t("/registration/register",{method:"POST",body:JSON.stringify({email:e.email,...e.phone?{phone:e.phone}:{}})}),"Failed to register."),requestPhoneOtp:()=>A(t("/otp/generate-phone-otp",{method:"POST",body:JSON.stringify({})}),"Failed to send the SMS code."),verifyPhoneOtp:e=>A(t("/otp/verify-phone-otp",{method:"POST",body:JSON.stringify({verificationToken:e})}),"Failed to verify the SMS code."),requestLoginPhoneOtp:()=>A(t("/otp/generate-login-phone-otp",{method:"POST",body:JSON.stringify({})}),"Failed to send the SMS code."),verifyLoginPhoneOtp:e=>A(t("/otp/verify-login-phone-otp",{method:"POST",body:JSON.stringify({verificationToken:e})}),"Failed to verify the SMS code."),requestEmailOtp:()=>A(t("/otp/generate-email-otp",{method:"POST",body:JSON.stringify({})}),"Failed to send the email code."),verifyEmailOtp:e=>A(t("/otp/verify-email-otp",{method:"POST",body:JSON.stringify({verificationToken:e})}),"Failed to verify the email code."),requestLoginEmailOtp:()=>A(t("/otp/generate-login-email-otp",{method:"POST",body:JSON.stringify({})}),"Failed to send the email code."),verifyLoginEmailOtp:e=>A(t("/otp/verify-login-email-otp",{method:"POST",body:JSON.stringify({verificationToken:e})}),"Failed to verify the email code."),requestMagicLink:()=>A(t("/magic-link",{method:"POST",body:JSON.stringify({})}),"Failed to send the magic link."),checkMagicLink:()=>A(t("/magic-link/check",{method:"GET"}),"Failed to check the magic link."),verifyMagicLink:e=>A(t(`/magic-link/verify/${encodeURIComponent(e)}`,{method:"GET"}),"Failed to verify the magic link."),listOAuthProviders:()=>A(t("/oauth/providers",{method:"GET"}),"Failed to list OAuth providers."),startOAuthLogin:e=>A(t(`/oauth/${encodeURIComponent(e.providerId)}/start`,{method:"POST",body:JSON.stringify({...e.redirectUri?{redirectUri:e.redirectUri}:{},...e.returnTo?{returnTo:e.returnTo}:{}})}),"Failed to start OAuth login."),finishOAuthLogin:e=>A(t(`/oauth/${encodeURIComponent(e.providerId)}/callback`,{method:"POST",body:JSON.stringify({code:e.code,state:e.state})}),"Failed to finish OAuth login."),registerPasskey:async e=>{const i=function(e){return"metadata"in e?e:{metadata:e}}(e),o=await A(t(function(e){const t=new URLSearchParams;e.requirePrf?t.set("requirePrf","true"):e.requestPrf&&t.set("requestPrf","true");const i=t.toString();return"/webAuthn/register/start"+(i?`?${i}`:"")}(i),{method:"GET"}),"Failed to fetch passkey registration challenge.");if(o.error)return o;let n;try{n=await s({optionsJSON:o.data})}catch(e){return e instanceof l?E(e.name,0,void 0,e):D("Passkey registration error.","Passkey registration failed.",e)}const r=function(e){const t=e.clientExtensionResults;return!0===t?.prf?.enabled}(n),a=await A(t("/webAuthn/register/finish",{method:"POST",body:JSON.stringify({attestationResponse:n,metadata:{...i.metadata,prfCapable:r}})}),"Verification failed.");return a.error?a:z({credentialId:n.id,prfCapable:r})},isPasskeyPrfSupported:B,getStepUpStatus:()=>A(t("/step-up/status",{method:"GET"}),"Failed to load step-up status."),verifyStepUpWithPasskey:async()=>{const e=await A(t("/step-up/webauthn/start",{method:"POST"}),"Failed to start step-up authentication.");if(e.error)return e;let i;try{i=J(await a({optionsJSON:q(e.data)}))}catch(e){return D("Step-up authentication error.","Step-up authentication failed.",e)}const o=await A(t("/step-up/webauthn/finish",{method:"POST",body:JSON.stringify({assertionResponse:i})}),"Failed to verify step-up authentication.");return o.error?o:G(o.data??{},"webauthn")},verifyStepUpWithPasskeyPrf:async e=>{const i=await A(t("/step-up/webauthn/start",{...W(e)}),"Failed to start step-up authentication.");if(i.error)return i;let o,n;try{const e=await a({optionsJSON:q(i.data)});o=j(e),n=J(e)}catch(e){return D("Step-up authentication error.","Step-up authentication failed.",e)}if(!o)return E("Passkey did not return PRF output.");const r=await A(t("/step-up/webauthn/finish",{method:"POST",body:JSON.stringify({assertionResponse:n})}),"Failed to verify step-up authentication.");if(r.error)return r;const s=G(r.data??{},"webauthn");return s.error?s:z({...s.data,credentialId:o.credentialId,prf:o})},getTotpStatus:()=>A(t("/totp/status",{method:"GET"}),"Failed to load authenticator status."),startTotpEnrollment:()=>A(t("/totp/enroll/start",{method:"POST"}),"Failed to start authenticator enrollment."),verifyTotpEnrollment:e=>A(t("/totp/enroll/verify",{method:"POST",body:JSON.stringify({code:e})}),"Failed to verify the authenticator code."),disableTotp:e=>A(t("/totp/disable",{method:"POST",body:JSON.stringify({code:e})}),"Failed to disable the authenticator."),verifyStepUpWithTotp:async e=>{const i=await A(t("/totp/verify-mfa",{method:"POST",body:JSON.stringify({code:e})}),"Failed to verify step-up authentication.");return i.error?i:G(i.data??{},"totp")},updateCredential:e=>A(t("users/credentials",{method:"POST",body:JSON.stringify(e)}),"Failed to update credential."),deleteCredential:e=>A(t("users/credentials",{method:"DELETE",body:JSON.stringify({id:e})}),"Failed to delete credential."),listOrganizations:()=>A(t("/organizations",{method:"GET"}),"Failed to list organizations."),createOrganization:e=>A(t("/organizations",{method:"POST",body:JSON.stringify(e)}),"Failed to create organization."),getOrganization:e=>A(t(`/organizations/${encodeURIComponent(e)}`,{method:"GET"}),"Failed to load organization."),updateOrganization:(e,i)=>A(t(`/organizations/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify(i)}),"Failed to update organization."),switchOrganization:e=>A(t(`/organizations/${encodeURIComponent(e)}/switch`,{method:"POST"}),"Failed to switch organization."),listOrganizationMembers:e=>A(t(`/organizations/${encodeURIComponent(e)}/members`,{method:"GET"}),"Failed to list organization members."),addOrganizationMember:(e,i)=>A(t(`/organizations/${encodeURIComponent(e)}/members`,{method:"POST",body:JSON.stringify(i)}),"Failed to add organization member."),updateOrganizationMember:(e,i,o)=>A(t(`/organizations/${encodeURIComponent(e)}/members/${encodeURIComponent(i)}`,{method:"PATCH",body:JSON.stringify(o)}),"Failed to update organization member."),removeOrganizationMember:(e,i)=>A(t(`/organizations/${encodeURIComponent(e)}/members/${encodeURIComponent(i)}`,{method:"DELETE"}),"Failed to remove organization member.")}};function V(e,t){const i=e.trim(),o=t.trim();if(!i||!o)return!1;if(i===o)return!0;if(i.endsWith(":*")){const e=i.slice(0,-2);return o===e||o.startsWith(`${e}:`)}if(!o.includes(":"))return!1;if(!i.includes(":"))return o.startsWith(`${i}:`);const n=i.split(":"),r=o.split(":"),a=n[n.length-1],s=r[r.length-1],l=n.slice(0,-1),d=r.slice(0,-1);return"write"===a&&"read"===s&&l.length===d.length&&l.every((e,t)=>e===d[t])}function K(e,t){if(!Array.isArray(e))return!1;const i=e.filter(e=>"string"==typeof e);return(Array.isArray(t)?t:[t]).some(e=>i.some(t=>V(t,e)))}function H(){return"undefined"==typeof localStorage?function(){const e=new Map;return{get:t=>e.get(t)??null,set:(t,i)=>{e.set(t,i)}}}():{get:e=>{try{return localStorage.getItem(e)}catch{return null}},set:(e,t)=>{try{localStorage.setItem(e,t)}catch{}}}}const Y="seamlessauth_seen",Q={user:null,credentials:[],organizations:[],activeOrganization:null,stepUpStatus:null,isAuthenticated:!1};const Z=d(void 0),X=()=>{const e=m(Z);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e},ee=({children:t,apiHost:i,autoDetectPreviousSignin:o=!0})=>{const n=c(()=>function(e){const{apiHost:t,detectPreviousSignIn:i=!0}=e,o=$({apiHost:t}),n=e.storage??H(),r=new Set;let a=!1,s=0,l={...Q,loading:!0,hasSignedInBefore:i&&"true"===n.get(Y)};function d(e){const t={...l,...e};Object.keys(e).some(e=>l[e]!==t[e])&&(l=t,r.forEach(e=>e()))}function c(){n.set(Y,"true"),i&&d({hasSignedInBefore:!0})}function u(){d(Q)}async function _(){const e=++s;d({loading:!0});const t=await o.getCurrentUser();return a||e!==s?t:t.error?(u(),d({loading:!1}),t):(d({user:t.data.user,credentials:t.data.credentials??[],organizations:t.data.organizations??[],activeOrganization:t.data.activeOrganization??null,isAuthenticated:!0,loading:!1}),l.hasSignedInBefore||c(),t)}async function m(e){const t=await e();return t.error||await _(),t}return{getState:()=>l,subscribe:e=>(r.add(e),()=>{r.delete(e)}),actions:{login:(e,t)=>o.login({identifier:e,passkeyAvailable:t}),handlePasskeyLogin:()=>m(()=>o.loginWithPasskey()),refreshSession:_,logout:async function(){try{return await o.logout()}finally{u()}},logoutAllSessions:async function(){try{return await o.logoutAllSessions()}finally{u()}},deleteUser:async()=>{const e=await o.deleteUser();return e.error||u(),e},updateCredential:async e=>{const{data:t,error:i}=await o.updateCredential({friendlyName:e.friendlyName??null,id:e.id});if(i)return{data:null,error:i};const n=t.credential;return d({credentials:l.credentials.map(e=>e.id===n.id?{...e,...n}:e)}),{data:n,error:null}},deleteCredential:async e=>{const t=await o.deleteCredential(e);return t.error||d({credentials:l.credentials.filter(t=>t.id!==e)}),t},switchOrganization:e=>m(()=>o.switchOrganization(e)),listOAuthProviders:()=>o.listOAuthProviders(),startOAuthLogin:e=>o.startOAuthLogin(e),finishOAuthLogin:e=>m(()=>o.finishOAuthLogin(e)),refreshStepUpStatus:async()=>{const e=await o.getStepUpStatus();return d({stepUpStatus:e.error?null:e.data}),e},verifyStepUpWithPasskey:async()=>{const e=await o.verifyStepUpWithPasskey();return e.error||d({stepUpStatus:e.data}),e},verifyStepUpWithPasskeyPrf:async e=>{const t=await o.verifyStepUpWithPasskeyPrf(e);return t.error||d({stepUpStatus:{fresh:t.data.fresh,method:t.data.method,verifiedAt:t.data.verifiedAt,expiresAt:t.data.expiresAt,maxAgeSeconds:t.data.maxAgeSeconds}}),t},verifyStepUpWithTotp:async e=>{const t=await o.verifyStepUpWithTotp(e);return t.error||d({stepUpStatus:t.data}),t},hasRole:e=>l.user?.roles?.includes(e),hasScopedRole:e=>l.user?K(l.user.roles,e):void 0,markSignedIn:c},destroy:()=>{a=!0,r.clear()}}}({apiHost:i,detectPreviousSignIn:o}),[i,o]),r=u(n.subscribe,n.getState,n.getState);_(()=>{n.actions.refreshSession()},[n]);const a=c(()=>({...r,...n.actions,apiHost:i}),[r,n,i]);return e(Z.Provider,{value:a,children:t})},te=()=>{const{apiHost:e}=X();return c(()=>$({apiHost:e}),[e])},ie=e=>{if("string"!=typeof e)return!1;const t=e.trim();if(t.length<3||t.length>320)return!1;const i=t.split("@");if(2!==i.length)return!1;const[o,n]=i;return!(!/^[A-Za-z0-9._%+-]+$/.test(o)||o.startsWith(".")||o.endsWith(".")||o.includes(".."))&&!(!/^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/.test(n)||n.startsWith("-")||n.endsWith("-")||n.startsWith(".")||n.endsWith(".")||n.includes(".."))},oe=e=>{const t=S(e);return t?.isValid()||!1};async function ne(){return async function(){if("undefined"==typeof window)return!1;if(window.PublicKeyCredential&&"function"==typeof window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable)try{return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()}catch{return console.error("Error checking passkey support."),!1}return!1}()}const re=()=>{const[e,t]=g(!1),[i,o]=g(!0);return _(()=>{let e=!0;return(async()=>{try{const i=await ne();e&&t(i)}catch{e&&t(!1)}finally{e&&o(!1)}})(),()=>{e=!1}},[]),{passkeySupported:e,loading:i}},ae="/login",se="/passkey-login",le="/verify-phone-otp",de="/verify-email-otp",ce="/verify-magiclink",ue="/oauth/callback",_e="/register-passkey",me="/magic-link-sent";function ge(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&o.firstChild?o.insertBefore(n,o.firstChild):o.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}var pe="login-module__container___YggDx",fe="login-module__card___Ub-Py",he="login-module__heading___neEqb",ye="login-module__inputGroup___P6qgS",be="login-module__label___mx5vu",ve="login-module__input___U07lW",ke="login-module__helperText___kDQ4-",we="login-module__error___40zxh",xe="login-module__button___0kFBs",Se="login-module__toggle___1JiG1",Pe="login-module__fallbackCard___HdIk-",Ne="login-module__fallbackHeader___-il2v",Oe="login-module__fallbackDescription___ea5EB",Te="login-module__fallbackActions___AD3ni",Ce="login-module__fallbackActionButton___lFgWf",Ie="login-module__actionTitle___ycrMp",Me="login-module__actionSubtext___opaIV",Ae="login-module__linkButton___5lsoe";ge(".login-module__container___YggDx{align-items:center;color:#fff;display:flex;justify-content:center}.login-module__card___Ub-Py{background-color:#1f2937;border-radius:.5rem;box-shadow:0 4px 6px rgba(0,0,0,.1);max-width:28rem;padding:2rem;width:100%}.login-module__heading___neEqb{color:#fff;font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:center}.login-module__message___qSejT{color:#68d391;text-align:center}.login-module__inputGroup___P6qgS{margin-bottom:1rem}.login-module__label___mx5vu{color:#d1d5db;display:block}.login-module__input___U07lW{background-color:#4b5563;border:1px solid #d1d5db;border-radius:.375rem;margin-top:.25rem;padding:.5rem;width:100%}.login-module__input___U07lW:focus{box-shadow:0 0 0 2px #3b82f6;outline:none}.login-module__helperText___kDQ4-{color:#9ca3af;font-size:.75rem;margin-top:.5rem}.login-module__error___40zxh{color:#f87171;font-size:.875rem}.login-module__button___0kFBs{background-color:#2563eb;border-radius:.375rem;color:#fff;cursor:pointer;margin-top:1rem;padding:.5rem;transition:background-color .3s;width:100%}.login-module__button___0kFBs:hover{background-color:#1d4ed8}.login-module__button___0kFBs:disabled{background-color:#9ca3af;cursor:not-allowed}.login-module__toggle___1JiG1{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}.login-module__underline___gs-RS{text-decoration:underline}.login-module__phoneRow___oeNtq{display:grid;gap:.5rem;grid-template-columns:1fr 3fr;margin-top:.25rem}.login-module__phoneInput___2MPQC,.login-module__select___rRV1O{background-color:#4b5563;border:1px solid #d1d5db;border-radius:.375rem;padding:.5rem;width:100%}@media (max-width:500px){.login-module__phoneRow___oeNtq{grid-template-columns:1fr}}.login-module__fallbackCard___HdIk-{background:hsla(0,0%,100%,.04);border:1px solid hsla(0,0%,100%,.08);border-radius:12px;display:flex;flex-direction:column;gap:14px;margin-top:18px;padding:18px}.login-module__fallbackHeader___-il2v{color:#f3f4f6;font-size:.95rem;font-weight:600}.login-module__fallbackDescription___ea5EB{color:#9ca3af;font-size:.85rem;line-height:1.4}.login-module__fallbackActions___AD3ni{display:flex;flex-direction:column;gap:10px}.login-module__fallbackActionButton___lFgWf{background:rgba(0,0,0,.25);border:1px solid hsla(0,0%,100%,.08);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;padding:12px 14px;text-align:left;transition:all .15s ease}.login-module__fallbackActionButton___lFgWf:hover{background:hsla(0,0%,100%,.06);border-color:hsla(0,0%,100%,.15)}.login-module__actionTitle___ycrMp{color:#f9fafb;font-size:.9rem;font-weight:500}.login-module__actionSubtext___opaIV{color:#9ca3af;font-size:.75rem;margin-top:2px}.login-module__linkButton___5lsoe{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:.8rem;margin-top:6px}.login-module__linkButton___5lsoe:hover{text-decoration:underline}");const ze=({identifier:i,onMagicLink:o,onEmailOtp:n,onPhoneOtp:r,onPasskeyRetry:a,loginMethods:s})=>{const l=new Set(s??["passkey","magic_link","phone_otp"]),d=l.has("magic_link")&&ie(i),c=l.has("email_otp")&&Boolean(n)&&ie(i),u=l.has("phone_otp")&&oe(i),_=l.has("passkey")&&Boolean(a);return d||c||u||_?t("div",{className:Pe,children:[e("div",{className:Ne,children:"Choose a sign-in method"}),e("p",{className:Oe,children:"Choose another secure sign-in method."}),t("div",{className:Te,children:[d&&t("button",{type:"button",className:Ce,onClick:o,children:[e("span",{className:Ie,children:"Email Magic Link"}),e("span",{className:Me,children:"Send a secure sign-in link to your email"})]}),c&&t("button",{type:"button",className:Ce,onClick:n,children:[e("span",{className:Ie,children:"Email Code"}),e("span",{className:Me,children:"Receive a one-time code by email"})]}),u&&t("button",{type:"button",className:Ce,onClick:r,children:[e("span",{className:Ie,children:"Text Message Code"}),e("span",{className:Me,children:"Receive a one-time code via SMS"})]})]}),_&&e("button",{type:"button",className:Ae,onClick:a,children:"Try passkey anyway"})]}):null},Ee="seamless:oauth:provider",Fe=()=>{const{listOAuthProviders:i,startOAuthLogin:o}=X(),n=h("/oauth/callback"),[r,a]=g([]),[s,l]=g("");if(_(()=>{let e=!0;return i().then(({data:t})=>{e&&a(t?.providers??[])}),()=>{e=!1}},[i]),0===r.length)return null;return t("div",{className:Te,children:[r.map(i=>e("button",{type:"button",className:Ce,onClick:()=>(async e=>{l(""),sessionStorage.setItem(Ee,e);const{data:t,error:i}=await o({providerId:e,redirectUri:new URL(n,window.location.origin).toString()});i?l("Could not start sign-in with this provider."):window.location.assign(t.authorizationUrl)})(i.id),children:t("span",{className:Ie,children:["Continue with ",i.name]})},i.id)),s&&e("p",{className:we,children:s})]})},Le=["passkey","magic_link","phone_otp"],Ue=()=>{const o=y(),{hasSignedInBefore:n,login:r,handlePasskeyLogin:a}=X(),s=te(),{passkeySupported:l}=re(),[d,c]=g(""),[u,m]=g(""),[p,f]=g("register"),[h,b]=g(""),[v,k]=g(""),[w,x]=g(""),[S,P]=g(!1),[N,O]=g(Le);_(()=>{n&&f("login")},[n]);return e("div",{className:pe,children:t("div",{className:fe,children:[e("h2",{className:he,children:"login"===p?"Sign In":"Create Account"}),t(i,{children:[t("form",{onSubmit:async e=>{e.preventDefault(),b(""),P(!1);try{if("login"===p){const{data:e,error:t}=await r(d,l);if(t)return void b("Failed to start sign-in. Please try again.");const i=e?.loginMethods?.length?e.loginMethods:Le;if(O(i),l&&i.includes("passkey")){const{error:e}=await a();return e?(P(!0),void b("Passkey sign-in could not be completed. Choose another sign-in method.")):void o("/")}return void P(!0)}"register"===p&&await(async()=>{b("");const{data:e,error:t}=await s.register({email:u});t?b("Failed to register. Please try again."):"Success"===e.message?o(de):b("An unexpected error occurred. Try again. If the problem persists, contact support.")})()}catch{console.error("Failed to continue sign-in."),b("Failed to continue sign-in. Please try again.")}},children:["login"===p&&t("div",{className:ye,children:[e("label",{htmlFor:"identifier",className:be,children:"Email Address / Phone Number"}),e("input",{id:"identifier",type:"text",value:d,onChange:e=>{const t=e.target.value;c(t)},autoComplete:"off",placeholder:"Email or Phone Number",className:ve,onBlur:()=>{if(d){const e=ie(d)||oe(d);x(e?"":"Please enter a valid email or phone number")}},required:!0}),e("p",{className:ke,children:"Phone numbers must include a country code e.g. +1"}),S&&e(ze,{identifier:d,onMagicLink:async()=>{const{error:e}=await s.requestMagicLink();e?b("Failed to send magic link."):o(me,{state:{identifier:d}})},onEmailOtp:async()=>{const{error:e}=await s.requestLoginEmailOtp();e?b("Failed to send email code."):o(de,{state:{flow:"login"}})},onPhoneOtp:async()=>{const{error:e}=await s.requestLoginPhoneOtp();e?b("Failed to send OTP."):o(le,{state:{flow:"login"}})},onPasskeyRetry:l?a:void 0,loginMethods:N}),w&&e("p",{className:we,children:w})]}),"register"===p&&t("div",{className:ye,children:[e("label",{htmlFor:"email",className:be,children:"Email Address"}),e("input",{id:"email",type:"email",value:u,onChange:e=>{const t=e.target.value;m(t)},autoComplete:"off",className:ve,onBlur:()=>{if(u){const e=ie(u);k(e?"":"Please enter a valid email")}},required:!0}),v&&e("p",{className:we,children:v})]}),e("button",{type:"submit",className:xe,disabled:!("login"===p&&d?ie(d)||oe(d):ie(u)),children:"login"===p?"Login":"Register"}),h&&e("p",{className:we,children:h}),e("button",{type:"button",onClick:()=>f("login"===p?"register":"login"),className:Se,children:"login"===p?"Don't have an account? Create one":"Already have an account? Sign in"})]}),e(Fe,{})]})]})})};var Re={container:"passKeyLogin-module__container___IUKxF",card:"passKeyLogin-module__card___2sKM1",title:"passKeyLogin-module__title___HZxvc",button:"passKeyLogin-module__button___FvR4I"};ge(".passKeyLogin-module__container___IUKxF{align-items:center;color:#fff;display:flex;justify-content:center;padding:1rem}.passKeyLogin-module__card___2sKM1{background-color:#1f2937;border-radius:1rem;box-shadow:0 4px 20px rgba(0,0,0,.4);display:flex;flex-direction:column;gap:1.5rem;max-width:400px;padding:2rem;width:100%}.passKeyLogin-module__title___HZxvc{color:#fff;font-size:1.5rem;font-weight:600;text-align:center}.passKeyLogin-module__button___FvR4I{background-color:#2563eb;border:1px solid #3b82f6;border-radius:.5rem;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1rem;text-align:center;transition:background-color .2s ease;width:100%}.passKeyLogin-module__button___FvR4I:hover{background-color:#1d4ed8}@media (max-width:480px){.passKeyLogin-module__card___2sKM1{padding:1.25rem}.passKeyLogin-module__button___FvR4I{font-size:1rem}}");const Be=()=>{const i=y(),{handlePasskeyLogin:o}=X(),[n,r]=g("");return e("div",{className:Re.container,children:t("div",{className:Re.card,children:[e("h2",{className:Re.title,children:"Login with Passkey"}),e("button",{onClick:async()=>{r("");const{error:e}=await o();e?r("Passkey sign-in could not be completed. Try another sign-in method."):i("/")},className:Re.button,children:"Use Passkey"}),n&&e("p",{className:Re.error,children:n})]})})};var qe="registerPasskey-module__container___jqEh8",je="registerPasskey-module__card___MJAyC",Je="registerPasskey-module__loading___Q4i1x",Ge="registerPasskey-module__spinner___V1nhd",We="registerPasskey-module__supported___ihTih",De="registerPasskey-module__title___vn2Qu",$e="registerPasskey-module__description___AWmO-",Ve="registerPasskey-module__button___D3b4B",Ke="registerPasskey-module__message___RiOw-",He="registerPasskey-module__success___HP5aX",Ye="registerPasskey-module__error___hGiqE";ge(".registerPasskey-module__container___jqEh8{align-items:center;color:#fff;display:flex;justify-content:center;padding:1rem}.registerPasskey-module__card___MJAyC{background-color:#1f2937;border-radius:1rem;box-shadow:0 4px 20px rgba(0,0,0,.4);max-width:400px;padding:1.5rem;width:100%}.registerPasskey-module__loading___Q4i1x{align-items:center;background-color:#f9fafb;border-radius:.75rem;box-shadow:0 2px 8px rgba(0,0,0,.1);color:#374151;display:flex;font-weight:500;gap:.75rem;justify-content:center;padding:1.5rem}.registerPasskey-module__spinner___V1nhd{animation:registerPasskey-module__spin___oYcsC 1s linear infinite;border-color:#3b82f6 transparent;border-radius:9999px;border-style:solid;border-width:2px;height:1.5rem;width:1.5rem}@keyframes registerPasskey-module__spin___oYcsC{to{transform:rotate(1turn)}}.registerPasskey-module__supported___ihTih{background-color:#ecfdf5;border-radius:.75rem;box-shadow:0 2px 12px rgba(0,0,0,.1);color:#065f46;padding:1.25rem}.registerPasskey-module__title___vn2Qu{font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.registerPasskey-module__description___AWmO-{margin-bottom:1rem}.registerPasskey-module__button___D3b4B{background-color:#059669;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1rem;transition:background-color .2s ease;width:100%}.registerPasskey-module__button___D3b4B:hover{background-color:#047857}.registerPasskey-module__message___RiOw-{font-size:.875rem;margin-top:1rem}.registerPasskey-module__success___HP5aX{color:#6ee7b7}.registerPasskey-module__error___hGiqE{color:#f87171}");var Qe="deviceNameModal-module__overlay___fmdPd",Ze="deviceNameModal-module__modal___uoEda",Xe="deviceNameModal-module__description___-HMTA",et="deviceNameModal-module__input___4vQMI",tt="deviceNameModal-module__actions___KXw7b",it="deviceNameModal-module__primary___9Ozlk",ot="deviceNameModal-module__secondary___HILhc";ge(".deviceNameModal-module__overlay___fmdPd{align-items:center;background:rgba(0,0,0,.45);display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.deviceNameModal-module__modal___uoEda{background:#1f2937;border-radius:12px;box-shadow:0 20px 40px rgba(0,0,0,.15);color:#fff;max-width:420px;padding:24px;width:100%}.deviceNameModal-module__description___-HMTA{color:#fff;font-size:14px;margin-bottom:16px}.deviceNameModal-module__input___4vQMI{border:1px solid #ddd;border-radius:8px;font-size:14px;margin-bottom:20px;padding:10px 12px;width:100%}.deviceNameModal-module__actions___KXw7b{display:flex;gap:10px;justify-content:flex-end}.deviceNameModal-module__primary___9Ozlk{background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;padding:8px 14px}.deviceNameModal-module__secondary___HILhc{background:transparent;border:1px solid #ccc;border-radius:8px;cursor:pointer;padding:8px 14px}");const nt=({isOpen:i,onCancel:o,onConfirm:n})=>{const[r,a]=g("");return i?e("div",{className:Qe,children:t("div",{className:Ze,children:[e("h3",{children:"Name This Device"}),e("p",{className:Xe,children:"Give this passkey a friendly name so you can recognize it later."}),e("input",{type:"text",placeholder:"e.g., MacBook Pro, iPhone, YubiKey",value:r,onChange:e=>a(e.target.value),className:et,autoFocus:!0}),t("div",{className:tt,children:[e("button",{onClick:o,className:ot,children:"Cancel"}),e("button",{onClick:()=>n(r.trim()),disabled:!r.trim(),className:it,children:"Continue"})]})]})}):null},rt=()=>{const{refreshSession:o}=X(),n=te(),{passkeySupported:r,loading:a}=re(),s=y(),[l,d]=g("idle"),[c,u]=g(""),[_,m]=g(!1),[p,f]=g(null);return t(i,{children:[e("div",{className:qe,children:e("div",{className:je,children:t("div",a||!r?{className:Je,children:[e("div",{className:Ge}),e("span",{children:a?"Checking for Passkey Support...":"Passkeys are not supported on this device."})]}:{className:We,children:[e("h2",{className:De,children:"Secure Your Account with a Passkey"}),e("p",{className:$e,children:"Your device supports passkeys! Register one to skip passwords forever."}),e("button",{onClick:()=>{const{platform:e,browser:t,deviceInfo:i}=function(){const e=navigator.userAgent.toLowerCase();let t="unknown",i="unknown";return/iphone|ipad|ipod/.test(e)?t="ios":/android/.test(e)?t="android":/mac os/.test(e)?t="mac":/windows/.test(e)?t="windows":/linux/.test(e)&&(t="linux"),navigator.brave?i="brave":/edg\/|edgios/.test(e)?i="edge":/opr\/|opt\/|opera/.test(e)?i="opera":/vivaldi/.test(e)?i="vivaldi":/samsungbrowser/.test(e)?i="samsung":/firefox|fxios/.test(e)?i="firefox":/chrome|crios/.test(e)?i="chrome":/safari/.test(e)&&(i="safari"),{platform:t,browser:i,deviceInfo:`${t} • ${i}`}}();f({platform:e,browser:t,deviceInfo:i}),m(!0)},disabled:"loading"===l,className:Ve,children:"loading"===l?"Registering...":"Register Passkey"}),c&&e("p",{className:`${Ke} ${"success"===l?He:Ye}`,children:c})]})})}),e(nt,{isOpen:_,onCancel:()=>{m(!1),f(null)},onConfirm:async e=>{if(!p)return;const t={friendlyName:e,...p};d("loading");try{const{error:e}=await n.registerPasskey(t);if(e)throw e;await o(),d("success"),u("Passkey registered successfully."),s("/")}catch{console.error("Passkey registration failed."),d("error"),u("Error registering passkey.")}finally{m(!1),f(null)}}})]})};var at="verifyOTP-module__container___wgoDE",st="verifyOTP-module__card___3cs2p",lt="verifyOTP-module__title___fZ-1d",dt="verifyOTP-module__subtitle___dGSu3",ct="verifyOTP-module__error___GEtlG",ut="verifyOTP-module__success___46TjG",_t="verifyOTP-module__form___jiGG-",mt="verifyOTP-module__label___Zq5Mi",gt="verifyOTP-module__timer___smq-a",pt="verifyOTP-module__resend___PlmkG",ft="verifyOTP-module__button___8pIuO",ht="verifyOTP-module__toggle___wbzVa";ge(".verifyOTP-module__container___wgoDE{align-items:center;color:#fff;display:flex;justify-content:center;padding:1rem}.verifyOTP-module__card___3cs2p{background-color:#1f2937;border-radius:.5rem;box-shadow:0 0 10px rgba(0,0,0,.3);max-width:28rem;padding:1.5rem;width:100%}.verifyOTP-module__title___fZ-1d{color:#fff;font-size:1.5rem;font-weight:700;margin-bottom:1rem;text-align:center}.verifyOTP-module__subtitle___dGSu3{color:#9ca3af;font-size:.875rem;margin-bottom:1.5rem;text-align:center}.verifyOTP-module__error___GEtlG{color:#f87171;margin-bottom:1rem;text-align:center}.verifyOTP-module__success___46TjG{color:#34d399;margin-bottom:.75rem;text-align:center}.verifyOTP-module__form___jiGG-{display:flex;flex-direction:column;gap:1rem}.verifyOTP-module__label___Zq5Mi{color:#d1d5db;display:block;font-size:.875rem;margin-bottom:.25rem}.verifyOTP-module__timer___smq-a{color:#facc15;font-size:.875rem}.verifyOTP-module__input___yqIXM{background-color:#374151;border:1px solid #4b5563;border-radius:.375rem;color:#fff;outline:none;padding:.5rem;width:100%}.verifyOTP-module__input___yqIXM:focus{box-shadow:0 0 0 2px #3b82f6}.verifyOTP-module__resend___PlmkG{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:.75rem;margin-top:.25rem;text-decoration:underline}.verifyOTP-module__resend___PlmkG:hover{color:#3b82f6}.verifyOTP-module__button___8pIuO{background-color:#2563eb;border:none;border-radius:.375rem;color:#fff;cursor:pointer;padding:.5rem;transition:background-color .2s;width:100%}.verifyOTP-module__button___8pIuO:hover{background-color:#1d4ed8}.verifyOTP-module__toggle___wbzVa{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}");var yt="otpInput-module__otpContainer___MUjby",bt="otpInput-module__otpInput___3YMVm";ge(".otpInput-module__otpContainer___MUjby{display:flex;gap:8px;justify-content:center;margin-top:8px}.otpInput-module__otpInput___3YMVm{background:#374151;border:1px solid #4b5563;border-radius:8px;color:#fff;font-size:1.2rem;height:48px;text-align:center;transition:border-color .15s ease,box-shadow .15s ease;width:42px}.otpInput-module__otpInput___3YMVm:focus{border-color:#60a5fa;box-shadow:0 0 0 2px rgba(96,165,250,.25);outline:none}");const vt=({length:t=6,value:i,inputMode:o="numeric",onChange:n,name:r="otp"})=>{const a=p([]),s=i.split("").concat(Array(t).fill("")).slice(0,t),l=(e,t)=>{var i;if(t.length>1)d(e,t);else if(!t||(i=t,"numeric"===o?/^\d$/.test(i):/^[a-zA-Z]$/.test(i))){const i=[...s];i[e]=t;const o=i.join("");n(o),t&&a.current[e+1]&&a.current[e+1]?.focus()}},d=(e,i)=>{let r=i;r="numeric"===o?i.replace(/\D/g,""):i.replace(/[^a-zA-Z]/g,"");const l=r.slice(0,t).split(""),d=[...s];l.forEach((i,o)=>{e+o<t&&(d[e+o]=i)}),n(d.join("")),a.current[Math.min(e+l.length,t-1)]?.focus()};return e("div",{className:yt,role:"group","aria-label":"One-time password input",onPaste:e=>{e.preventDefault(),d(0,e.clipboardData.getData("text"))},children:s.map((i,d)=>e("input",{ref:e=>a.current[d]=e,type:"text",inputMode:"numeric"===o?"numeric":"text",autoComplete:"one-time-code",name:`${r}-${d}`,maxLength:1,value:i,className:bt,onChange:e=>l(d,e.target.value),onKeyDown:e=>((e,i)=>{if("Backspace"===i.key){i.preventDefault();const t=[...s];s[e]?(t[e]="",n(t.join(""))):e>0&&(t[e-1]="",n(t.join("")),a.current[e-1]?.focus())}"ArrowLeft"===i.key&&e>0&&a.current[e-1]?.focus(),"ArrowRight"===i.key&&e<t-1&&a.current[e+1]?.focus()})(d,e),"aria-label":`Digit ${d+1}`},d))})},kt=()=>{const i=y(),o=b(),{refreshSession:n}=X(),r="login"===o.state?.flow,[a,s]=g(""),[l,d]=g(null),[c,u]=g(""),[m,p]=g(!1),[f,h]=g(""),[v,k]=g(300),w=te(),x=async()=>{if(p(!0),!l){const{error:e}=r?await w.verifyLoginPhoneOtp(a):await w.verifyPhoneOtp(a);if(e)u("Verification failed.");else{if(r)return await n(),void i("/");d(!0)}}p(!1)},S=async()=>{h(""),await(async()=>{u("");const{error:e}=r?await w.requestLoginPhoneOtp():await w.requestPhoneOtp();e?u("Failed to send SMS code. If this persists, refresh the page and try again."):h("Verification SMS has been resent.")})(),h("Verification SMS has been resent.")};return _(()=>{const e=setInterval(()=>{k(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),_(()=>{l&&!r&&(async()=>{const{error:e}=await w.requestEmailOtp();e?u("Failed to send Email code. If this persists, refresh the page and try registering again."):i(de)})()},[l,r,i,w]),e("div",{className:at,children:t("div",{className:st,children:[e("h2",{className:lt,children:"Verify Your Phone Number"}),e("p",{className:dt,children:"Enter the code sent to your phone number."}),c&&e("p",{className:ct,children:c}),f&&e("p",{className:ut,children:f}),t("form",{onSubmit:async e=>{if(e.preventDefault(),u(""),6===a.length){p(!0);try{await x()}catch{u("Unexpected error occurred.")}finally{p(!1)}}else u("Please enter a valid code.")},className:_t,children:[t("div",{children:[t("label",{htmlFor:"phoneCode",className:mt,children:["Phone Verification Code ",(N=l,!0===N?e("span",{className:"text-green-400 ml-2",children:"✅"}):!1===N?e("span",{className:"text-red-400 ml-2",children:"❌"}):null)," -"," ",t("span",{className:gt,children:["Code expires in: ",(P=v,`${Math.floor(P/60).toString().padStart(2,"0")}:${(P%60).toString().padStart(2,"0")}`)]})]}),e(vt,{length:6,value:a,onChange:s}),e("button",{type:"button",onClick:()=>S(),className:pt,children:"Resend code to phone"})]}),e("button",{type:"submit",className:ft,children:m?"Verifying...":"Verify & Continue"}),e("button",{type:"button",onClick:()=>i("/login"),className:ht,children:"Back to login"})]})]})});var P,N},wt=()=>{const i=y(),o=b(),{refreshSession:n}=X(),r=te(),{passkeySupported:a}=re(),s="login"===o.state?.flow,[l,d]=g(!1),[c,u]=g(""),[m,p]=g(300),[f,h]=g(""),[v,k]=g("");return _(()=>{const e=setInterval(()=>{p(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),e("div",{className:at,children:t("div",{className:st,children:[e("h2",{className:lt,children:"Verify Your Email"}),e("p",{className:dt,children:"We sent you a verification email. Enter the code below."}),f&&e("p",{className:ct,children:f}),v&&e("p",{className:ut,children:v}),t("form",{onSubmit:async e=>{if(e.preventDefault(),h(""),6===c.length){d(!0);try{const{error:e}=s?await r.verifyLoginEmailOtp(c):await r.verifyEmailOtp(c);if(e)return void h("Verification failed.");if(s)return await n(),void i("/");a?i(_e):(await n(),i("/"))}catch{console.error("Email OTP verification failed."),h("Verification failed.")}finally{d(!1)}}else h("Please enter a valid code.")},className:_t,children:[t("div",{children:[t("label",{htmlFor:"emailCode",className:mt,children:["Email Verification Code",t("span",{className:gt,children:[" ","— Code expires in ",(w=m,`${Math.floor(w/60).toString().padStart(2,"0")}:${(w%60).toString().padStart(2,"0")}`)]})]}),e(vt,{length:6,value:c,onChange:u,inputMode:"text"}),e("button",{type:"button",onClick:async()=>{h(""),k("");const{error:e}=s?await r.requestLoginEmailOtp():await r.requestEmailOtp();e?h("Failed to send Email code. If this persists, refresh the page and try again."):k("Verification email has been resent.")},className:pt,children:"Resend code to email"})]}),e("button",{type:"submit",className:ft,disabled:l,children:l?"Verifying...":"Verify & Continue"}),e("button",{type:"button",onClick:()=>i("/login"),className:ht,children:"Back to login"})]})]})});var w};var xt={container:"verifyMagiclink-module__container___qrSXf",card:"verifyMagiclink-module__card___niKgr",title:"verifyMagiclink-module__title___SumxD",verificationContent:"verifyMagiclink-module__verificationContent___NdsS0",spinner:"verifyMagiclink-module__spinner___lnW1k",successIcon:"verifyMagiclink-module__successIcon___XjFEM",checkIcon:"verifyMagiclink-module__checkIcon___I0JOP",successText:"verifyMagiclink-module__successText___lO5Qq"};ge(".verifyMagiclink-module__container___qrSXf{align-items:center;color:#fff;display:flex;justify-content:center;padding:1rem}.verifyMagiclink-module__card___niKgr{background-color:#1f2937;border-radius:.5rem;box-shadow:0 0 10px rgba(0,0,0,.3);max-width:28rem;padding:1.5rem;width:100%}.verifyMagiclink-module__title___SumxD{color:#fff;font-size:1.5rem;font-weight:700;margin-bottom:1rem;text-align:center}.verifyMagiclink-module__verificationContent___NdsS0{align-items:center;display:flex;flex-direction:column;gap:14px;margin:20px 0}.verifyMagiclink-module__spinner___lnW1k{animation:verifyMagiclink-module__spin___2lGzj .9s linear infinite;border:3px solid hsla(0,0%,100%,.15);border-radius:50%;border-top-color:#60a5fa;height:28px;width:28px}.verifyMagiclink-module__successIcon___XjFEM{align-items:center;background:rgba(16,185,129,.15);border-radius:50%;display:flex;height:36px;justify-content:center;width:36px}.verifyMagiclink-module__checkIcon___I0JOP{animation:verifyMagiclink-module__checkPop___-3qJu .25s ease-out;color:#34d399;height:22px;width:22px}.verifyMagiclink-module__successText___lO5Qq{color:#34d399;font-size:.9rem}@keyframes verifyMagiclink-module__checkPop___-3qJu{0%{opacity:0;transform:scale(.6)}80%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes verifyMagiclink-module__spin___2lGzj{to{transform:rotate(1turn)}}");const St=()=>{const[i]=v(),o=y(),n=i.get("token"),[r,a]=g(""),[s,l]=g(""),d=te(),{refreshSession:c}=X();return _(()=>{let e=!0,t=null,i=null;return(async()=>{if(!n)return e&&a("Missing token for verification."),void console.error("No magic-link token found.");const{error:r}=await d.verifyMagicLink(n);if(r)return console.error("Failed to verify token"),void(e&&a("Failed to verify token"));await c(),e&&(t=new BroadcastChannel("seamless-auth"),t.postMessage({type:"MAGIC_LINK_AUTH_SUCCESS"}),l("You have been verified on the device and browser that initiated this request"),i=setTimeout(()=>{e&&o("/")},900))})(),()=>{e=!1,t?.close(),i&&clearTimeout(i)}},[n,d,o,c]),e("div",{className:xt.container,children:t("div",{className:xt.card,children:[e("h1",{className:xt.title,children:"Verifying your login"}),t("div",{className:xt.verificationContent,children:[!s&&!r&&e("div",{className:xt.spinner}),s&&e("div",{className:xt.successIcon,children:e("svg",{viewBox:"0 0 24 24",className:xt.checkIcon,fill:"none",stroke:"currentColor",strokeWidth:"2",children:e("path",{d:"M5 13l4 4L19 7"})})}),!s&&!r&&e("p",{className:xt.helperText,children:"Please wait while we securely verify your sign-in link."}),s&&e("p",{className:xt.successText,children:"Login verified. Redirecting…"}),r&&e("p",{className:xt.error,children:r})]})]})})},Pt={oauth_missing_email:"Your provider account did not share an email address. Add an email to that account and make it visible, then try again.",oauth_email_not_verified:"The email address on your provider account is not verified. Verify it with your provider, then try again.",oauth_missing_subject:"Your provider did not return a usable account identifier. Try again, or sign in with a different method."},Nt=()=>{const{finishOAuthLogin:o}=X(),n=y(),[r]=v(),[a,s]=g(""),l=p(!1);return _(()=>{if(l.current)return;l.current=!0;const e=r.get("code"),t=r.get("state"),i=sessionStorage.getItem(Ee);e&&t&&i?o({providerId:i,code:e,state:t}).then(({error:e})=>{if(e){const t=T(e);return void s(t?Pt[t]:"We could not complete sign-in. Please try again.")}sessionStorage.removeItem(Ee),n("/")}):s("This sign-in link is missing required information.")},[o,n,r]),t("div",{className:xt.container,children:[e("h2",{className:xt.title,children:a?"Sign-in failed":"Completing sign-in..."}),a&&t(i,{children:[e("p",{children:a}),e("button",{type:"button",onClick:()=>n("/login"),children:"Back to login"})]})]})};var Ot="magiclink-module__container___45zcA",Tt="magiclink-module__card___Au9oN",Ct="magiclink-module__iconWrapper___k5ndr",It="magiclink-module__mailIcon___Pwb7q",Mt="magiclink-module__iconRing___bdLvf",At="magiclink-module__heading___b9cre",zt="magiclink-module__message___kiVFj",Et="magiclink-module__identifier___JtcFM",Ft="magiclink-module__helperText___7Mlfh",Lt="magiclink-module__actions___64I-3",Ut="magiclink-module__secondaryButton___BntAI",Rt="magiclink-module__cooldown___Ib4rm",Bt="magiclink-module__linkButton___maJiv";ge(".magiclink-module__container___45zcA{align-items:center;color:#fff;display:flex;justify-content:center}.magiclink-module__card___Au9oN{background-color:#1f2937;border-radius:.75rem;box-shadow:0 10px 25px rgba(0,0,0,.25);max-width:420px;padding:2.5rem 2rem;text-align:center;width:100%}.magiclink-module__iconWrapper___k5ndr{display:flex;justify-content:center;margin-bottom:1.25rem;position:relative}.magiclink-module__mailIcon___Pwb7q{color:#a5b4fc;height:38px;width:38px;z-index:2}.magiclink-module__iconRing___bdLvf{animation:magiclink-module__pulse___YGm-I 2s infinite;background:rgba(99,102,241,.15);border-radius:50%;height:72px;position:absolute;width:72px}@keyframes magiclink-module__pulse___YGm-I{0%{opacity:.8;transform:scale(.6)}70%{opacity:0;transform:scale(1.4)}to{opacity:0}}.magiclink-module__heading___b9cre{font-size:1.55rem;font-weight:600;margin-bottom:.75rem}.magiclink-module__message___kiVFj{color:#d1d5db;font-size:.95rem;line-height:1.4;margin-bottom:1rem}.magiclink-module__identifier___JtcFM{background:hsla(0,0%,100%,.05);border-radius:6px;display:inline-block;font-size:1rem;font-weight:600;margin-bottom:1rem;padding:.45rem .6rem}.magiclink-module__helperText___7Mlfh{color:#9ca3af;font-size:.85rem;line-height:1.4;margin-bottom:.6rem}.magiclink-module__actions___64I-3{display:flex;flex-direction:column;gap:.6rem;margin-top:1.6rem}.magiclink-module__secondaryButton___BntAI{background:#111827;border:1px solid #374151;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:.65rem}.magiclink-module__secondaryButton___BntAI:hover:not(:disabled){background:#1f2937}.magiclink-module__secondaryButton___BntAI:disabled{cursor:not-allowed;opacity:.5}.magiclink-module__cooldown___Ib4rm{color:#9ca3af;font-size:.8rem}.magiclink-module__linkButton___maJiv{background:none;border:none;color:#a5b4fc;cursor:pointer;font-size:.85rem;margin-top:.4rem}.magiclink-module__linkButton___maJiv:hover{text-decoration:underline}");const qt=()=>{const{refreshSession:i}=X(),o=y(),n=b(),r=te(),a=n.state?.identifier,[s,l]=g(30);_(()=>{const e=setInterval(()=>{l(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]);const d=f(async()=>{const{data:e,error:t}=await r.checkMagicLink();return!t&&"Success"===e?.message},[r]);return _(()=>{const e=new BroadcastChannel("seamless-auth");return e.onmessage=async e=>{"MAGIC_LINK_AUTH_SUCCESS"===e.data?.type&&await d()&&(await i(),o("/"))},()=>{e.close()}},[d,o,i]),_(()=>{const e=setInterval(async()=>{try{await d()&&(await i(),o("/"))}catch{}},5e3);return()=>clearInterval(e)},[d,i,o]),e("div",{className:Ot,children:t("div",{className:Tt,children:[t("div",{className:Ct,children:[e("div",{className:Mt}),t("svg",{className:It,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[e("path",{d:"M4 6h16v12H4z"}),e("path",{d:"m4 6 8 6 8-6"})]})]}),e("h2",{className:At,children:"Check your email"}),e("p",{className:zt,children:"If an account exists for this address, we sent a secure sign-in link."}),a&&e("div",{className:Et,children:a}),e("p",{className:Ft,children:"Open the email and click the link to finish signing in."}),e("p",{className:Ft,children:"Didn’t receive anything? Check your spam folder or try creating a new account."}),t("div",{className:Lt,children:[e("button",{className:Ut,disabled:s>0,onClick:async()=>{s>0||(await r.requestMagicLink(),l(30))},children:"Resend link"}),s>0&&t("div",{className:Rt,children:["Available in ",s,"s"]}),e("button",{className:Bt,onClick:()=>o("/login"),children:"Change email or phone"})]})]})})},jt=()=>t(k,{children:[e(w,{path:ae,element:e(Ue,{})}),e(w,{path:se,element:e(Be,{})}),e(w,{path:le,element:e(kt,{})}),e(w,{path:de,element:e(wt,{})}),e(w,{path:ce,element:e(St,{})}),e(w,{path:ue,element:e(Nt,{})}),e(w,{path:_e,element:e(rt,{})}),e(w,{path:me,element:e(qt,{})}),e(w,{path:"*",element:e(x,{to:ae,replace:!0})})]});export{ee as AuthProvider,jt as AuthRoutes,P as SeamlessAuthError,$ as createSeamlessAuthClient,L as encodePrfSalt,j as extractPasskeyPrfResult,T as getOAuthErrorCode,C as getWebAuthnErrorDetail,K as hasScopedRole,B as isPasskeyPrfSupported,V as roleGrantsAccess,X as useAuth,te as useAuthClient,re as usePasskeySupport};
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as i}from"react/jsx-runtime";import{browserSupportsWebAuthn as o,bufferToBase64URLString as n,base64URLStringToBuffer as r,startAuthentication as a,startRegistration as s,WebAuthnError as l}from"@simplewebauthn/browser";import{createContext as d,useMemo as c,useSyncExternalStore as u,useEffect as _,useContext as m,useState as g,useRef as p,useCallback as f}from"react";import{useHref as h,useNavigate as y,useLocation as b,useSearchParams as v,Routes as k,Route as w,Navigate as x}from"react-router-dom";import P from"libphonenumber-js";class S extends Error{constructor(e,t,i,o){super(e),this.name="SeamlessAuthError",this.status=t,this.body=i,this.cause=o}}const N={oauth_missing_email:!0,oauth_email_not_verified:!0,oauth_missing_subject:!0};function O(e){if("object"==typeof e&&null!==e)return e.code}function T(e){if(!(e instanceof S))return;if("object"!=typeof e.body||null===e.body)return;const t=O(e.body)??O(e.body.details);return"string"==typeof t&&Object.prototype.hasOwnProperty.call(N,t)?t:void 0}function C(e){if(!(e instanceof S)||("object"!=typeof(t=e.cause)||null===t||"string"!=typeof t.name))return;var t;const{name:i,code:o,message:n}=e.cause;return{name:i,code:"string"==typeof o?o:void 0,message:"string"==typeof n?n:""}}async function M(e,t){let i;try{i=await e.json()}catch{i=void 0}return new S(function(e){if("object"!=typeof e||null===e)return;const{error:t,message:i}=e;return"string"==typeof t&&t?t:"string"==typeof i&&i?i:void 0}(i)??t,e.status,i)}async function I(e){try{return await e.json()}catch{return}}async function A(e,t){let i;try{i=await e}catch{return{data:null,error:new S(t,0)}}return i.ok?{data:await I(i),error:null}:{data:null,error:await M(i,t)}}function z(e){return{data:e,error:null}}function E(e,t=0,i,o){return{data:null,error:new S(e,t,i,o)}}function F(e){if(e instanceof ArrayBuffer)return e;const t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),i=new Uint8Array(t.byteLength);return i.set(t),i.buffer}function U(e){return"string"==typeof e?e:n(F(e))}function L(e){return"string"==typeof e?r(e):e}function R(e){return{...e.credentialId?{credentialId:e.credentialId}:{},prf:{salt:U(e.salt),...e.secondSalt?{secondSalt:U(e.secondSalt)}:{}}}}async function B(){return!!o()&&("undefined"==typeof window||!1!==window.isSecureContext)&&void 0!==globalThis.PublicKeyCredential&&"undefined"!=typeof navigator&&"function"==typeof navigator.credentials?.get}function q(e){const t=e,i=t.extensions?.prf?.eval;return i?{...t,extensions:{...t.extensions,prf:{...t.extensions?.prf,eval:{...i,...i.first?{first:L(i.first)}:{},...i.second?{second:L(i.second)}:{}}}}}:e}function j(e){const t=e.clientExtensionResults,i=t?.prf?.results?.first;if(!i)return null;const o=(r=i)instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength);var r;return{credentialId:e.id,output:o,outputBase64url:n(F(o))}}function J(e){const t=e.clientExtensionResults;return t?.prf?.results?{...e,clientExtensionResults:{...e.clientExtensionResults,prf:{...t.prf,results:void 0}}}:e}function G(e,t){const i=e.method===t?e.method:null;return"Success"===e.message&&!0===e.fresh&&null!==i?z({fresh:!0,method:i,verifiedAt:e.verifiedAt??null,expiresAt:e.expiresAt??null,maxAgeSeconds:e.maxAgeSeconds??0}):E(e.message??"Step-up authentication failed.")}function D(e){return e?{method:"POST",body:JSON.stringify(R(e))}:{method:"POST"}}function W(e,t,i){const o=E(t,0,void 0,i),n=C(o.error);return console.error(e,n?.name??"Unknown error."),o}const $=e=>{const t=(e=>{const{authHost:t}=e;return async function(e,i){const o=`${t?.replace(/\/+$/,"")??""}/auth${e.startsWith("/")?e:`/${e}`}`,n=null!=i?.body,r={...i,credentials:"include",headers:{...n?{"Content-Type":"application/json"}:{},...i?.headers}};return fetch(o,r)}})({authHost:e.apiHost});return{getCurrentUser:()=>A(t("users/me",{method:"GET"}),"Failed to load the current user."),login:e=>A(t("/login",{method:"POST",body:JSON.stringify(e)}),"Failed to start sign-in."),loginWithPasskey:async e=>{const i=await A(t("/webAuthn/login/start",{...D(e?.prf)}),"Failed to start passkey login.");if(i.error)return i;let o,n;try{const e=await a({optionsJSON:q(i.data)});o=j(e),n=J(e)}catch(e){return W("Passkey login error.","Passkey login failed.",e)}const r=await A(t("/webAuthn/login/finish",{method:"POST",body:JSON.stringify({assertionResponse:n})}),"Failed to verify passkey.");return r.error?r:"Success"!==r.data?.message?E(r.data?.message??"Passkey login failed."):z(o?{prf:o}:{})},logout:(e={})=>A(t("all_sessions"===e.scope?"/logout/all":"/logout",{method:"DELETE"}),"Failed to sign out."),logoutAllSessions:()=>A(t("/logout/all",{method:"DELETE"}),"Failed to sign out of all sessions."),deleteUser:()=>A(t("/users/delete",{method:"DELETE"}),"Failed to delete the account."),register:e=>A(t("/registration/register",{method:"POST",body:JSON.stringify({email:e.email,...e.phone?{phone:e.phone}:{}})}),"Failed to register."),requestPhoneOtp:()=>A(t("/otp/generate-phone-otp",{method:"POST",body:JSON.stringify({})}),"Failed to send the SMS code."),verifyPhoneOtp:e=>A(t("/otp/verify-phone-otp",{method:"POST",body:JSON.stringify({verificationToken:e})}),"Failed to verify the SMS code."),requestLoginPhoneOtp:()=>A(t("/otp/generate-login-phone-otp",{method:"POST",body:JSON.stringify({})}),"Failed to send the SMS code."),verifyLoginPhoneOtp:e=>A(t("/otp/verify-login-phone-otp",{method:"POST",body:JSON.stringify({verificationToken:e})}),"Failed to verify the SMS code."),requestEmailOtp:()=>A(t("/otp/generate-email-otp",{method:"POST",body:JSON.stringify({})}),"Failed to send the email code."),verifyEmailOtp:e=>A(t("/otp/verify-email-otp",{method:"POST",body:JSON.stringify({verificationToken:e})}),"Failed to verify the email code."),requestLoginEmailOtp:()=>A(t("/otp/generate-login-email-otp",{method:"POST",body:JSON.stringify({})}),"Failed to send the email code."),verifyLoginEmailOtp:e=>A(t("/otp/verify-login-email-otp",{method:"POST",body:JSON.stringify({verificationToken:e})}),"Failed to verify the email code."),requestMagicLink:()=>A(t("/magic-link",{method:"POST",body:JSON.stringify({})}),"Failed to send the magic link."),checkMagicLink:()=>A(t("/magic-link/check",{method:"GET"}),"Failed to check the magic link."),verifyMagicLink:e=>A(t(`/magic-link/verify/${encodeURIComponent(e)}`,{method:"GET"}),"Failed to verify the magic link."),listOAuthProviders:()=>A(t("/oauth/providers",{method:"GET"}),"Failed to list OAuth providers."),getPublicSystemConfig:()=>A(t("/system-config/public",{method:"GET"}),"Failed to read the public system configuration."),startOAuthLogin:e=>A(t(`/oauth/${encodeURIComponent(e.providerId)}/start`,{method:"POST",body:JSON.stringify({...e.redirectUri?{redirectUri:e.redirectUri}:{},...e.returnTo?{returnTo:e.returnTo}:{}})}),"Failed to start OAuth login."),finishOAuthLogin:e=>A(t(`/oauth/${encodeURIComponent(e.providerId)}/callback`,{method:"POST",body:JSON.stringify({code:e.code,state:e.state})}),"Failed to finish OAuth login."),registerPasskey:async e=>{const i=function(e){return"metadata"in e?e:{metadata:e}}(e),o=await A(t(function(e){const t=new URLSearchParams;e.requirePrf?t.set("requirePrf","true"):e.requestPrf&&t.set("requestPrf","true");const i=t.toString();return"/webAuthn/register/start"+(i?`?${i}`:"")}(i),{method:"GET"}),"Failed to fetch passkey registration challenge.");if(o.error)return o;let n;try{n=await s({optionsJSON:o.data})}catch(e){return e instanceof l?E(e.name,0,void 0,e):W("Passkey registration error.","Passkey registration failed.",e)}const r=function(e){const t=e.clientExtensionResults;return!0===t?.prf?.enabled}(n),a=await A(t("/webAuthn/register/finish",{method:"POST",body:JSON.stringify({attestationResponse:n,metadata:{...i.metadata,prfCapable:r}})}),"Verification failed.");return a.error?a:z({credentialId:n.id,prfCapable:r})},isPasskeyPrfSupported:B,getStepUpStatus:()=>A(t("/step-up/status",{method:"GET"}),"Failed to load step-up status."),verifyStepUpWithPasskey:async()=>{const e=await A(t("/step-up/webauthn/start",{method:"POST"}),"Failed to start step-up authentication.");if(e.error)return e;let i;try{i=J(await a({optionsJSON:q(e.data)}))}catch(e){return W("Step-up authentication error.","Step-up authentication failed.",e)}const o=await A(t("/step-up/webauthn/finish",{method:"POST",body:JSON.stringify({assertionResponse:i})}),"Failed to verify step-up authentication.");return o.error?o:G(o.data??{},"webauthn")},verifyStepUpWithPasskeyPrf:async e=>{const i=await A(t("/step-up/webauthn/start",{...D(e)}),"Failed to start step-up authentication.");if(i.error)return i;let o,n;try{const e=await a({optionsJSON:q(i.data)});o=j(e),n=J(e)}catch(e){return W("Step-up authentication error.","Step-up authentication failed.",e)}if(!o)return E("Passkey did not return PRF output.");const r=await A(t("/step-up/webauthn/finish",{method:"POST",body:JSON.stringify({assertionResponse:n})}),"Failed to verify step-up authentication.");if(r.error)return r;const s=G(r.data??{},"webauthn");return s.error?s:z({...s.data,credentialId:o.credentialId,prf:o})},getTotpStatus:()=>A(t("/totp/status",{method:"GET"}),"Failed to load authenticator status."),startTotpEnrollment:()=>A(t("/totp/enroll/start",{method:"POST"}),"Failed to start authenticator enrollment."),verifyTotpEnrollment:e=>A(t("/totp/enroll/verify",{method:"POST",body:JSON.stringify({code:e})}),"Failed to verify the authenticator code."),disableTotp:e=>A(t("/totp/disable",{method:"POST",body:JSON.stringify({code:e})}),"Failed to disable the authenticator."),verifyStepUpWithTotp:async e=>{const i=await A(t("/totp/verify-mfa",{method:"POST",body:JSON.stringify({code:e})}),"Failed to verify step-up authentication.");return i.error?i:G(i.data??{},"totp")},updateCredential:e=>A(t("users/credentials",{method:"POST",body:JSON.stringify(e)}),"Failed to update credential."),deleteCredential:e=>A(t("users/credentials",{method:"DELETE",body:JSON.stringify({id:e})}),"Failed to delete credential."),listOrganizations:()=>A(t("/organizations",{method:"GET"}),"Failed to list organizations."),createOrganization:e=>A(t("/organizations",{method:"POST",body:JSON.stringify(e)}),"Failed to create organization."),getOrganization:e=>A(t(`/organizations/${encodeURIComponent(e)}`,{method:"GET"}),"Failed to load organization."),updateOrganization:(e,i)=>A(t(`/organizations/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify(i)}),"Failed to update organization."),switchOrganization:e=>A(t(`/organizations/${encodeURIComponent(e)}/switch`,{method:"POST"}),"Failed to switch organization."),listOrganizationMembers:e=>A(t(`/organizations/${encodeURIComponent(e)}/members`,{method:"GET"}),"Failed to list organization members."),addOrganizationMember:(e,i)=>A(t(`/organizations/${encodeURIComponent(e)}/members`,{method:"POST",body:JSON.stringify(i)}),"Failed to add organization member."),updateOrganizationMember:(e,i,o)=>A(t(`/organizations/${encodeURIComponent(e)}/members/${encodeURIComponent(i)}`,{method:"PATCH",body:JSON.stringify(o)}),"Failed to update organization member."),removeOrganizationMember:(e,i)=>A(t(`/organizations/${encodeURIComponent(e)}/members/${encodeURIComponent(i)}`,{method:"DELETE"}),"Failed to remove organization member.")}};function V(e,t){const i=e.trim(),o=t.trim();if(!i||!o)return!1;if(i===o)return!0;if(i.endsWith(":*")){const e=i.slice(0,-2);return o===e||o.startsWith(`${e}:`)}if(!o.includes(":"))return!1;if(!i.includes(":"))return o.startsWith(`${i}:`);const n=i.split(":"),r=o.split(":"),a=n[n.length-1],s=r[r.length-1],l=n.slice(0,-1),d=r.slice(0,-1);return"write"===a&&"read"===s&&l.length===d.length&&l.every((e,t)=>e===d[t])}function K(e,t){if(!Array.isArray(e))return!1;const i=e.filter(e=>"string"==typeof e);return(Array.isArray(t)?t:[t]).some(e=>i.some(t=>V(t,e)))}function H(){return"undefined"==typeof localStorage?function(){const e=new Map;return{get:t=>e.get(t)??null,set:(t,i)=>{e.set(t,i)}}}():{get:e=>{try{return localStorage.getItem(e)}catch{return null}},set:(e,t)=>{try{localStorage.setItem(e,t)}catch{}}}}const Y="seamlessauth_seen",Q={user:null,credentials:[],organizations:[],activeOrganization:null,stepUpStatus:null,isAuthenticated:!1};const Z=d(void 0),X=()=>{const e=m(Z);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e},ee=({children:t,apiHost:i,autoDetectPreviousSignin:o=!0})=>{const n=c(()=>function(e){const{apiHost:t,detectPreviousSignIn:i=!0}=e,o=$({apiHost:t}),n=e.storage??H(),r=new Set;let a=!1,s=0,l={...Q,loading:!0,hasSignedInBefore:i&&"true"===n.get(Y)};function d(e){const t={...l,...e};Object.keys(e).some(e=>l[e]!==t[e])&&(l=t,r.forEach(e=>e()))}function c(){n.set(Y,"true"),i&&d({hasSignedInBefore:!0})}function u(){d(Q)}async function _(){const e=++s;d({loading:!0});const t=await o.getCurrentUser();return a||e!==s?t:t.error?(u(),d({loading:!1}),t):(d({user:t.data.user,credentials:t.data.credentials??[],organizations:t.data.organizations??[],activeOrganization:t.data.activeOrganization??null,isAuthenticated:!0,loading:!1}),l.hasSignedInBefore||c(),t)}async function m(e){const t=await e();return t.error||await _(),t}return{getState:()=>l,subscribe:e=>(r.add(e),()=>{r.delete(e)}),actions:{login:(e,t)=>o.login({identifier:e,passkeyAvailable:t}),handlePasskeyLogin:()=>m(()=>o.loginWithPasskey()),refreshSession:_,logout:async function(){try{return await o.logout()}finally{u()}},logoutAllSessions:async function(){try{return await o.logoutAllSessions()}finally{u()}},deleteUser:async()=>{const e=await o.deleteUser();return e.error||u(),e},updateCredential:async e=>{const{data:t,error:i}=await o.updateCredential({friendlyName:e.friendlyName??null,id:e.id});if(i)return{data:null,error:i};const n=t.credential;return d({credentials:l.credentials.map(e=>e.id===n.id?{...e,...n}:e)}),{data:n,error:null}},deleteCredential:async e=>{const t=await o.deleteCredential(e);return t.error||d({credentials:l.credentials.filter(t=>t.id!==e)}),t},switchOrganization:e=>m(()=>o.switchOrganization(e)),listOAuthProviders:()=>o.listOAuthProviders(),startOAuthLogin:e=>o.startOAuthLogin(e),finishOAuthLogin:e=>m(()=>o.finishOAuthLogin(e)),refreshStepUpStatus:async()=>{const e=await o.getStepUpStatus();return d({stepUpStatus:e.error?null:e.data}),e},verifyStepUpWithPasskey:async()=>{const e=await o.verifyStepUpWithPasskey();return e.error||d({stepUpStatus:e.data}),e},verifyStepUpWithPasskeyPrf:async e=>{const t=await o.verifyStepUpWithPasskeyPrf(e);return t.error||d({stepUpStatus:{fresh:t.data.fresh,method:t.data.method,verifiedAt:t.data.verifiedAt,expiresAt:t.data.expiresAt,maxAgeSeconds:t.data.maxAgeSeconds}}),t},verifyStepUpWithTotp:async e=>{const t=await o.verifyStepUpWithTotp(e);return t.error||d({stepUpStatus:t.data}),t},hasRole:e=>l.user?.roles?.includes(e),hasScopedRole:e=>l.user?K(l.user.roles,e):void 0,markSignedIn:c},destroy:()=>{a=!0,r.clear()}}}({apiHost:i,detectPreviousSignIn:o}),[i,o]),r=u(n.subscribe,n.getState,n.getState);_(()=>{n.actions.refreshSession()},[n]);const a=c(()=>({...r,...n.actions,apiHost:i}),[r,n,i]);return e(Z.Provider,{value:a,children:t})},te=()=>{const{apiHost:e}=X();return c(()=>$({apiHost:e}),[e])},ie=["passkey","magic_link"],oe=()=>{const e=te(),[t,i]=g(null),[o,n]=g(!0);return _(()=>{let t=!0;return(async()=>{try{const{data:o,error:n}=await e.getPublicSystemConfig();t&&!n&&o?.loginMethods?.length&&i(o.loginMethods)}catch{}finally{t&&n(!1)}})(),()=>{t=!1}},[e]),{loginMethods:t,loading:o}},ne=e=>Boolean(e?.some(e=>"passkey"!==e)),re=e=>{if("string"!=typeof e)return!1;const t=e.trim();if(t.length<3||t.length>320)return!1;const i=t.split("@");if(2!==i.length)return!1;const[o,n]=i;return!(!/^[A-Za-z0-9._%+-]+$/.test(o)||o.startsWith(".")||o.endsWith(".")||o.includes(".."))&&!(!/^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/.test(n)||n.startsWith("-")||n.endsWith("-")||n.startsWith(".")||n.endsWith(".")||n.includes(".."))},ae=e=>{const t=P(e);return t?.isValid()||!1};async function se(){return async function(){if("undefined"==typeof window)return!1;if(window.PublicKeyCredential&&"function"==typeof window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable)try{return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()}catch{return console.error("Error checking passkey support."),!1}return!1}()}const le=()=>{const[e,t]=g(!1),[i,o]=g(!0);return _(()=>{let e=!0;return(async()=>{try{const i=await se();e&&t(i)}catch{e&&t(!1)}finally{e&&o(!1)}})(),()=>{e=!1}},[]),{passkeySupported:e,loading:i}},de="/login",ce="/passkey-login",ue="/verify-phone-otp",_e="/verify-email-otp",me="/verify-magiclink",ge="/oauth/callback",pe="/register-passkey",fe="/magic-link-sent";function he(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&o.firstChild?o.insertBefore(n,o.firstChild):o.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}var ye="login-module__container___YggDx",be="login-module__card___Ub-Py",ve="login-module__heading___neEqb",ke="login-module__inputGroup___P6qgS",we="login-module__label___mx5vu",xe="login-module__input___U07lW",Pe="login-module__helperText___kDQ4-",Se="login-module__error___40zxh",Ne="login-module__button___0kFBs",Oe="login-module__toggle___1JiG1",Te="login-module__fallbackCard___HdIk-",Ce="login-module__fallbackHeader___-il2v",Me="login-module__fallbackDescription___ea5EB",Ie="login-module__fallbackActions___AD3ni",Ae="login-module__fallbackActionButton___lFgWf",ze="login-module__actionTitle___ycrMp",Ee="login-module__actionSubtext___opaIV",Fe="login-module__linkButton___5lsoe";he(".login-module__container___YggDx{align-items:center;color:#fff;display:flex;justify-content:center}.login-module__card___Ub-Py{background-color:#1f2937;border-radius:.5rem;box-shadow:0 4px 6px rgba(0,0,0,.1);max-width:28rem;padding:2rem;width:100%}.login-module__heading___neEqb{color:#fff;font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:center}.login-module__message___qSejT{color:#68d391;text-align:center}.login-module__inputGroup___P6qgS{margin-bottom:1rem}.login-module__label___mx5vu{color:#d1d5db;display:block}.login-module__input___U07lW{background-color:#4b5563;border:1px solid #d1d5db;border-radius:.375rem;margin-top:.25rem;padding:.5rem;width:100%}.login-module__input___U07lW:focus{box-shadow:0 0 0 2px #3b82f6;outline:none}.login-module__helperText___kDQ4-{color:#9ca3af;font-size:.75rem;margin-top:.5rem}.login-module__error___40zxh{color:#f87171;font-size:.875rem}.login-module__button___0kFBs{background-color:#2563eb;border-radius:.375rem;color:#fff;cursor:pointer;margin-top:1rem;padding:.5rem;transition:background-color .3s;width:100%}.login-module__button___0kFBs:hover{background-color:#1d4ed8}.login-module__button___0kFBs:disabled{background-color:#9ca3af;cursor:not-allowed}.login-module__toggle___1JiG1{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}.login-module__underline___gs-RS{text-decoration:underline}.login-module__phoneRow___oeNtq{display:grid;gap:.5rem;grid-template-columns:1fr 3fr;margin-top:.25rem}.login-module__phoneInput___2MPQC,.login-module__select___rRV1O{background-color:#4b5563;border:1px solid #d1d5db;border-radius:.375rem;padding:.5rem;width:100%}@media (max-width:500px){.login-module__phoneRow___oeNtq{grid-template-columns:1fr}}.login-module__fallbackCard___HdIk-{background:hsla(0,0%,100%,.04);border:1px solid hsla(0,0%,100%,.08);border-radius:12px;display:flex;flex-direction:column;gap:14px;margin-top:18px;padding:18px}.login-module__fallbackHeader___-il2v{color:#f3f4f6;font-size:.95rem;font-weight:600}.login-module__fallbackDescription___ea5EB{color:#9ca3af;font-size:.85rem;line-height:1.4}.login-module__fallbackActions___AD3ni{display:flex;flex-direction:column;gap:10px}.login-module__fallbackActionButton___lFgWf{background:rgba(0,0,0,.25);border:1px solid hsla(0,0%,100%,.08);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;padding:12px 14px;text-align:left;transition:all .15s ease}.login-module__fallbackActionButton___lFgWf:hover{background:hsla(0,0%,100%,.06);border-color:hsla(0,0%,100%,.15)}.login-module__actionTitle___ycrMp{color:#f9fafb;font-size:.9rem;font-weight:500}.login-module__actionSubtext___opaIV{color:#9ca3af;font-size:.75rem;margin-top:2px}.login-module__linkButton___5lsoe{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:.8rem;margin-top:6px}.login-module__linkButton___5lsoe:hover{text-decoration:underline}");const Ue=({identifier:i,onMagicLink:o,onEmailOtp:n,onPhoneOtp:r,onPasskeyRetry:a,loginMethods:s})=>{const l=new Set(s??["passkey","magic_link","phone_otp"]),d=l.has("magic_link")&&re(i),c=l.has("email_otp")&&Boolean(n)&&re(i),u=l.has("phone_otp")&&ae(i),_=l.has("passkey")&&Boolean(a);return d||c||u||_?t("div",{className:Te,children:[e("div",{className:Ce,children:"Choose a sign-in method"}),e("p",{className:Me,children:"Choose another secure sign-in method."}),t("div",{className:Ie,children:[d&&t("button",{type:"button",className:Ae,onClick:o,children:[e("span",{className:ze,children:"Email Magic Link"}),e("span",{className:Ee,children:"Send a secure sign-in link to your email"})]}),c&&t("button",{type:"button",className:Ae,onClick:n,children:[e("span",{className:ze,children:"Email Code"}),e("span",{className:Ee,children:"Receive a one-time code by email"})]}),u&&t("button",{type:"button",className:Ae,onClick:r,children:[e("span",{className:ze,children:"Text Message Code"}),e("span",{className:Ee,children:"Receive a one-time code via SMS"})]})]}),_&&e("button",{type:"button",className:Fe,onClick:a,children:"Try passkey anyway"})]}):null},Le="seamless:oauth:provider",Re=()=>{const{listOAuthProviders:i,startOAuthLogin:o}=X(),n=h("/oauth/callback"),[r,a]=g([]),[s,l]=g("");if(_(()=>{let e=!0;return i().then(({data:t})=>{e&&a(t?.providers??[])}),()=>{e=!1}},[i]),0===r.length)return null;return t("div",{className:Ie,children:[r.map(i=>e("button",{type:"button",className:Ae,onClick:()=>(async e=>{l(""),sessionStorage.setItem(Le,e);const{data:t,error:i}=await o({providerId:e,redirectUri:new URL(n,window.location.origin).toString()});i?l("Could not start sign-in with this provider."):window.location.assign(t.authorizationUrl)})(i.id),children:t("span",{className:ze,children:["Continue with ",i.name]})},i.id)),s&&e("p",{className:Se,children:s})]})},Be=()=>{const o=y(),{hasSignedInBefore:n,login:r,handlePasskeyLogin:a}=X(),s=te(),{passkeySupported:l}=le(),{loginMethods:d}=oe(),[c,u]=g(""),[m,p]=g(""),[f,h]=g("register"),[b,v]=g(""),[k,w]=g(""),[x,P]=g(""),[S,N]=g(!1),[O,T]=g(null);_(()=>{n&&h("login")},[n]);return e("div",{className:ye,children:t("div",{className:be,children:[e("h2",{className:ve,children:"login"===f?"Sign In":"Create Account"}),t(i,{children:[t("form",{onSubmit:async e=>{e.preventDefault(),v(""),N(!1);try{if("login"===f){const{data:e,error:t}=await r(c,l);if(t)return void v("Failed to start sign-in. Please try again.");const i=e?.loginMethods?.length?e.loginMethods:d??ie;if(T(i),l&&i.includes("passkey")){const{error:e}=await a();return e?(N(!0),void v("Passkey sign-in could not be completed. Choose another sign-in method.")):void o("/")}return void N(!0)}"register"===f&&await(async()=>{v("");const{data:e,error:t}=await s.register({email:m});t?v("Failed to register. Please try again."):"Success"===e.message?o(_e):v("An unexpected error occurred. Try again. If the problem persists, contact support.")})()}catch{console.error("Failed to continue sign-in."),v("Failed to continue sign-in. Please try again.")}},children:["login"===f&&t("div",{className:ke,children:[e("label",{htmlFor:"identifier",className:we,children:"Email Address / Phone Number"}),e("input",{id:"identifier",type:"text",value:c,onChange:e=>{const t=e.target.value;u(t)},autoComplete:"off",placeholder:"Email or Phone Number",className:xe,onBlur:()=>{if(c){const e=re(c)||ae(c);P(e?"":"Please enter a valid email or phone number")}},required:!0}),e("p",{className:Pe,children:"Phone numbers must include a country code e.g. +1"}),S&&e(Ue,{identifier:c,onMagicLink:async()=>{const{error:e}=await s.requestMagicLink();e?v("Failed to send magic link."):o(fe,{state:{identifier:c}})},onEmailOtp:async()=>{const{error:e}=await s.requestLoginEmailOtp();e?v("Failed to send email code."):o(_e,{state:{flow:"login"}})},onPhoneOtp:async()=>{const{error:e}=await s.requestLoginPhoneOtp();e?v("Failed to send OTP."):o(ue,{state:{flow:"login"}})},onPasskeyRetry:l?a:void 0,loginMethods:O}),x&&e("p",{className:Se,children:x})]}),"register"===f&&t("div",{className:ke,children:[e("label",{htmlFor:"email",className:we,children:"Email Address"}),e("input",{id:"email",type:"email",value:m,onChange:e=>{const t=e.target.value;p(t)},autoComplete:"off",className:xe,onBlur:()=>{if(m){const e=re(m);w(e?"":"Please enter a valid email")}},required:!0}),k&&e("p",{className:Se,children:k})]}),e("button",{type:"submit",className:Ne,disabled:!("login"===f&&c?re(c)||ae(c):re(m)),children:"login"===f?"Login":"Register"}),b&&e("p",{className:Se,children:b}),e("button",{type:"button",onClick:()=>h("login"===f?"register":"login"),className:Oe,children:"login"===f?"Don't have an account? Create one":"Already have an account? Sign in"})]}),e(Re,{})]})]})})};var qe={container:"passKeyLogin-module__container___IUKxF",card:"passKeyLogin-module__card___2sKM1",title:"passKeyLogin-module__title___HZxvc",button:"passKeyLogin-module__button___FvR4I"};he(".passKeyLogin-module__container___IUKxF{align-items:center;color:#fff;display:flex;justify-content:center;padding:1rem}.passKeyLogin-module__card___2sKM1{background-color:#1f2937;border-radius:1rem;box-shadow:0 4px 20px rgba(0,0,0,.4);display:flex;flex-direction:column;gap:1.5rem;max-width:400px;padding:2rem;width:100%}.passKeyLogin-module__title___HZxvc{color:#fff;font-size:1.5rem;font-weight:600;text-align:center}.passKeyLogin-module__button___FvR4I{background-color:#2563eb;border:1px solid #3b82f6;border-radius:.5rem;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1rem;text-align:center;transition:background-color .2s ease;width:100%}.passKeyLogin-module__button___FvR4I:hover{background-color:#1d4ed8}@media (max-width:480px){.passKeyLogin-module__card___2sKM1{padding:1.25rem}.passKeyLogin-module__button___FvR4I{font-size:1rem}}");const je=()=>{const i=y(),{handlePasskeyLogin:o}=X(),[n,r]=g("");return e("div",{className:qe.container,children:t("div",{className:qe.card,children:[e("h2",{className:qe.title,children:"Login with Passkey"}),e("button",{onClick:async()=>{r("");const{error:e}=await o();e?r("Passkey sign-in could not be completed. Try another sign-in method."):i("/")},className:qe.button,children:"Use Passkey"}),n&&e("p",{className:qe.error,children:n})]})})};var Je="registerPasskey-module__container___jqEh8",Ge="registerPasskey-module__card___MJAyC",De="registerPasskey-module__loading___Q4i1x",We="registerPasskey-module__spinner___V1nhd",$e="registerPasskey-module__supported___ihTih",Ve="registerPasskey-module__title___vn2Qu",Ke="registerPasskey-module__description___AWmO-",He="registerPasskey-module__button___D3b4B",Ye="registerPasskey-module__message___RiOw-",Qe="registerPasskey-module__success___HP5aX",Ze="registerPasskey-module__error___hGiqE",Xe="registerPasskey-module__skip___1hDyU";he(".registerPasskey-module__container___jqEh8{align-items:center;color:#fff;display:flex;justify-content:center;padding:1rem}.registerPasskey-module__card___MJAyC{background-color:#1f2937;border-radius:1rem;box-shadow:0 4px 20px rgba(0,0,0,.4);max-width:400px;padding:1.5rem;width:100%}.registerPasskey-module__loading___Q4i1x{align-items:center;background-color:#f9fafb;border-radius:.75rem;box-shadow:0 2px 8px rgba(0,0,0,.1);color:#374151;display:flex;font-weight:500;gap:.75rem;justify-content:center;padding:1.5rem}.registerPasskey-module__spinner___V1nhd{animation:registerPasskey-module__spin___oYcsC 1s linear infinite;border-color:#3b82f6 transparent;border-radius:9999px;border-style:solid;border-width:2px;height:1.5rem;width:1.5rem}@keyframes registerPasskey-module__spin___oYcsC{to{transform:rotate(1turn)}}.registerPasskey-module__supported___ihTih{background-color:#ecfdf5;border-radius:.75rem;box-shadow:0 2px 12px rgba(0,0,0,.1);color:#065f46;padding:1.25rem}.registerPasskey-module__title___vn2Qu{font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.registerPasskey-module__description___AWmO-{margin-bottom:1rem}.registerPasskey-module__button___D3b4B{background-color:#059669;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1rem;transition:background-color .2s ease;width:100%}.registerPasskey-module__button___D3b4B:hover{background-color:#047857}.registerPasskey-module__message___RiOw-{font-size:.875rem;margin-top:1rem}.registerPasskey-module__success___HP5aX{color:#6ee7b7}.registerPasskey-module__error___hGiqE{color:#f87171}.registerPasskey-module__skip___1hDyU{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}.registerPasskey-module__skip___1hDyU:disabled{cursor:default;opacity:.6}");var et="deviceNameModal-module__overlay___fmdPd",tt="deviceNameModal-module__modal___uoEda",it="deviceNameModal-module__description___-HMTA",ot="deviceNameModal-module__input___4vQMI",nt="deviceNameModal-module__actions___KXw7b",rt="deviceNameModal-module__primary___9Ozlk",at="deviceNameModal-module__secondary___HILhc";he(".deviceNameModal-module__overlay___fmdPd{align-items:center;background:rgba(0,0,0,.45);display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.deviceNameModal-module__modal___uoEda{background:#1f2937;border-radius:12px;box-shadow:0 20px 40px rgba(0,0,0,.15);color:#fff;max-width:420px;padding:24px;width:100%}.deviceNameModal-module__description___-HMTA{color:#fff;font-size:14px;margin-bottom:16px}.deviceNameModal-module__input___4vQMI{border:1px solid #ddd;border-radius:8px;font-size:14px;margin-bottom:20px;padding:10px 12px;width:100%}.deviceNameModal-module__actions___KXw7b{display:flex;gap:10px;justify-content:flex-end}.deviceNameModal-module__primary___9Ozlk{background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;padding:8px 14px}.deviceNameModal-module__secondary___HILhc{background:transparent;border:1px solid #ccc;border-radius:8px;cursor:pointer;padding:8px 14px}");const st=({isOpen:i,onCancel:o,onConfirm:n})=>{const[r,a]=g("");return i?e("div",{className:et,children:t("div",{className:tt,children:[e("h3",{children:"Name This Device"}),e("p",{className:it,children:"Give this passkey a friendly name so you can recognize it later."}),e("input",{type:"text",placeholder:"e.g., MacBook Pro, iPhone, YubiKey",value:r,onChange:e=>a(e.target.value),className:ot,autoFocus:!0}),t("div",{className:nt,children:[e("button",{onClick:o,className:at,children:"Cancel"}),e("button",{onClick:()=>n(r.trim()),disabled:!r.trim(),className:rt,children:"Continue"})]})]})}):null},lt=()=>{const{refreshSession:o}=X(),n=te(),{passkeySupported:r,loading:a}=le(),{loginMethods:s,loading:l}=oe(),d=y(),[c,u]=g("idle"),[_,m]=g(""),[p,f]=g(!1),[h,b]=g(null),v=ne(s),k=async()=>{await o(),d("/")};return t(i,{children:[e("div",{className:Je,children:e("div",{className:Ge,children:t("div",a||l?{className:De,children:[e("div",{className:We}),e("span",{children:"Checking for Passkey Support..."})]}:r?{className:$e,children:[e("h2",{className:Ve,children:"Secure Your Account with a Passkey"}),e("p",{className:Ke,children:"Your device supports passkeys! Register one to skip passwords forever."}),e("button",{onClick:()=>{const{platform:e,browser:t,deviceInfo:i}=function(){const e=navigator.userAgent.toLowerCase();let t="unknown",i="unknown";return/iphone|ipad|ipod/.test(e)?t="ios":/android/.test(e)?t="android":/mac os/.test(e)?t="mac":/windows/.test(e)?t="windows":/linux/.test(e)&&(t="linux"),navigator.brave?i="brave":/edg\/|edgios/.test(e)?i="edge":/opr\/|opt\/|opera/.test(e)?i="opera":/vivaldi/.test(e)?i="vivaldi":/samsungbrowser/.test(e)?i="samsung":/firefox|fxios/.test(e)?i="firefox":/chrome|crios/.test(e)?i="chrome":/safari/.test(e)&&(i="safari"),{platform:t,browser:i,deviceInfo:`${t} • ${i}`}}();b({platform:e,browser:t,deviceInfo:i}),f(!0)},disabled:"loading"===c,className:He,children:"loading"===c?"Registering...":"Register Passkey"}),_&&e("p",{className:`${Ye} ${"success"===c?Qe:Ze}`,children:_}),v&&e("button",{type:"button",onClick:k,disabled:"loading"===c,className:Xe,children:"Skip for now"})]}:{className:$e,children:[e("h2",{className:Ve,children:"Passkeys are not available here"}),e("p",{className:Ke,children:v?"This device does not support passkeys. You can continue without one and add a passkey later from a device that does.":"This device does not support passkeys, and this application requires one to sign in. Try again from a device or browser that supports them."}),v&&e("button",{type:"button",onClick:k,className:He,children:"Continue"})]})})}),e(st,{isOpen:p,onCancel:()=>{f(!1),b(null)},onConfirm:async e=>{if(!h)return;const t={friendlyName:e,...h};u("loading");try{const{error:e}=await n.registerPasskey(t);if(e)throw e;await o(),u("success"),m("Passkey registered successfully."),d("/")}catch{console.error("Passkey registration failed."),u("error"),m("Error registering passkey.")}finally{f(!1),b(null)}}})]})};var dt="verifyOTP-module__container___wgoDE",ct="verifyOTP-module__card___3cs2p",ut="verifyOTP-module__title___fZ-1d",_t="verifyOTP-module__subtitle___dGSu3",mt="verifyOTP-module__error___GEtlG",gt="verifyOTP-module__success___46TjG",pt="verifyOTP-module__form___jiGG-",ft="verifyOTP-module__label___Zq5Mi",ht="verifyOTP-module__timer___smq-a",yt="verifyOTP-module__resend___PlmkG",bt="verifyOTP-module__button___8pIuO",vt="verifyOTP-module__toggle___wbzVa";he(".verifyOTP-module__container___wgoDE{align-items:center;color:#fff;display:flex;justify-content:center;padding:1rem}.verifyOTP-module__card___3cs2p{background-color:#1f2937;border-radius:.5rem;box-shadow:0 0 10px rgba(0,0,0,.3);max-width:28rem;padding:1.5rem;width:100%}.verifyOTP-module__title___fZ-1d{color:#fff;font-size:1.5rem;font-weight:700;margin-bottom:1rem;text-align:center}.verifyOTP-module__subtitle___dGSu3{color:#9ca3af;font-size:.875rem;margin-bottom:1.5rem;text-align:center}.verifyOTP-module__error___GEtlG{color:#f87171;margin-bottom:1rem;text-align:center}.verifyOTP-module__success___46TjG{color:#34d399;margin-bottom:.75rem;text-align:center}.verifyOTP-module__form___jiGG-{display:flex;flex-direction:column;gap:1rem}.verifyOTP-module__label___Zq5Mi{color:#d1d5db;display:block;font-size:.875rem;margin-bottom:.25rem}.verifyOTP-module__timer___smq-a{color:#facc15;font-size:.875rem}.verifyOTP-module__input___yqIXM{background-color:#374151;border:1px solid #4b5563;border-radius:.375rem;color:#fff;outline:none;padding:.5rem;width:100%}.verifyOTP-module__input___yqIXM:focus{box-shadow:0 0 0 2px #3b82f6}.verifyOTP-module__resend___PlmkG{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:.75rem;margin-top:.25rem;text-decoration:underline}.verifyOTP-module__resend___PlmkG:hover{color:#3b82f6}.verifyOTP-module__button___8pIuO{background-color:#2563eb;border:none;border-radius:.375rem;color:#fff;cursor:pointer;padding:.5rem;transition:background-color .2s;width:100%}.verifyOTP-module__button___8pIuO:hover{background-color:#1d4ed8}.verifyOTP-module__toggle___wbzVa{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}");var kt="otpInput-module__otpContainer___MUjby",wt="otpInput-module__otpInput___3YMVm";he(".otpInput-module__otpContainer___MUjby{display:flex;gap:8px;justify-content:center;margin-top:8px}.otpInput-module__otpInput___3YMVm{background:#374151;border:1px solid #4b5563;border-radius:8px;color:#fff;font-size:1.2rem;height:48px;text-align:center;transition:border-color .15s ease,box-shadow .15s ease;width:42px}.otpInput-module__otpInput___3YMVm:focus{border-color:#60a5fa;box-shadow:0 0 0 2px rgba(96,165,250,.25);outline:none}");const xt=({length:t=6,value:i,inputMode:o="numeric",onChange:n,name:r="otp"})=>{const a=p([]),s=i.split("").concat(Array(t).fill("")).slice(0,t),l=(e,t)=>{var i;if(t.length>1)d(e,t);else if(!t||(i=t,"numeric"===o?/^\d$/.test(i):/^[a-zA-Z]$/.test(i))){const i=[...s];i[e]=t;const o=i.join("");n(o),t&&a.current[e+1]&&a.current[e+1]?.focus()}},d=(e,i)=>{let r=i;r="numeric"===o?i.replace(/\D/g,""):i.replace(/[^a-zA-Z]/g,"");const l=r.slice(0,t).split(""),d=[...s];l.forEach((i,o)=>{e+o<t&&(d[e+o]=i)}),n(d.join("")),a.current[Math.min(e+l.length,t-1)]?.focus()};return e("div",{className:kt,role:"group","aria-label":"One-time password input",onPaste:e=>{e.preventDefault(),d(0,e.clipboardData.getData("text"))},children:s.map((i,d)=>e("input",{ref:e=>a.current[d]=e,type:"text",inputMode:"numeric"===o?"numeric":"text",autoComplete:"one-time-code",name:`${r}-${d}`,maxLength:1,value:i,className:wt,onChange:e=>l(d,e.target.value),onKeyDown:e=>((e,i)=>{if("Backspace"===i.key){i.preventDefault();const t=[...s];s[e]?(t[e]="",n(t.join(""))):e>0&&(t[e-1]="",n(t.join("")),a.current[e-1]?.focus())}"ArrowLeft"===i.key&&e>0&&a.current[e-1]?.focus(),"ArrowRight"===i.key&&e<t-1&&a.current[e+1]?.focus()})(d,e),"aria-label":`Digit ${d+1}`},d))})},Pt=()=>{const i=y(),o=b(),{refreshSession:n}=X(),r="login"===o.state?.flow,[a,s]=g(""),[l,d]=g(null),[c,u]=g(""),[m,p]=g(!1),[f,h]=g(""),[v,k]=g(300),w=te(),x=async()=>{if(p(!0),!l){const{error:e}=r?await w.verifyLoginPhoneOtp(a):await w.verifyPhoneOtp(a);if(e)u("Verification failed.");else{if(r)return await n(),void i("/");d(!0)}}p(!1)},P=async()=>{h(""),await(async()=>{u("");const{error:e}=r?await w.requestLoginPhoneOtp():await w.requestPhoneOtp();e?u("Failed to send SMS code. If this persists, refresh the page and try again."):h("Verification SMS has been resent.")})(),h("Verification SMS has been resent.")};return _(()=>{const e=setInterval(()=>{k(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),_(()=>{l&&!r&&(async()=>{const{error:e}=await w.requestEmailOtp();e?u("Failed to send Email code. If this persists, refresh the page and try registering again."):i(_e)})()},[l,r,i,w]),e("div",{className:dt,children:t("div",{className:ct,children:[e("h2",{className:ut,children:"Verify Your Phone Number"}),e("p",{className:_t,children:"Enter the code sent to your phone number."}),c&&e("p",{className:mt,children:c}),f&&e("p",{className:gt,children:f}),t("form",{onSubmit:async e=>{if(e.preventDefault(),u(""),6===a.length){p(!0);try{await x()}catch{u("Unexpected error occurred.")}finally{p(!1)}}else u("Please enter a valid code.")},className:pt,children:[t("div",{children:[t("label",{htmlFor:"phoneCode",className:ft,children:["Phone Verification Code ",(N=l,!0===N?e("span",{className:"text-green-400 ml-2",children:"✅"}):!1===N?e("span",{className:"text-red-400 ml-2",children:"❌"}):null)," -"," ",t("span",{className:ht,children:["Code expires in: ",(S=v,`${Math.floor(S/60).toString().padStart(2,"0")}:${(S%60).toString().padStart(2,"0")}`)]})]}),e(xt,{length:6,value:a,onChange:s}),e("button",{type:"button",onClick:()=>P(),className:yt,children:"Resend code to phone"})]}),e("button",{type:"submit",className:bt,children:m?"Verifying...":"Verify & Continue"}),e("button",{type:"button",onClick:()=>i("/login"),className:vt,children:"Back to login"})]})]})});var S,N},St=()=>{const i=y(),o=b(),{refreshSession:n}=X(),r=te(),{passkeySupported:a}=le(),s="login"===o.state?.flow,[l,d]=g(!1),[c,u]=g(""),[m,p]=g(300),[f,h]=g(""),[v,k]=g("");return _(()=>{const e=setInterval(()=>{p(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),e("div",{className:dt,children:t("div",{className:ct,children:[e("h2",{className:ut,children:"Verify Your Email"}),e("p",{className:_t,children:"We sent you a verification email. Enter the code below."}),f&&e("p",{className:mt,children:f}),v&&e("p",{className:gt,children:v}),t("form",{onSubmit:async e=>{if(e.preventDefault(),h(""),6===c.length){d(!0);try{const{error:e}=s?await r.verifyLoginEmailOtp(c):await r.verifyEmailOtp(c);if(e)return void h("Verification failed.");if(s)return await n(),void i("/");a?i(pe):(await n(),i("/"))}catch{console.error("Email OTP verification failed."),h("Verification failed.")}finally{d(!1)}}else h("Please enter a valid code.")},className:pt,children:[t("div",{children:[t("label",{htmlFor:"emailCode",className:ft,children:["Email Verification Code",t("span",{className:ht,children:[" ","— Code expires in ",(w=m,`${Math.floor(w/60).toString().padStart(2,"0")}:${(w%60).toString().padStart(2,"0")}`)]})]}),e(xt,{length:6,value:c,onChange:u,inputMode:"text"}),e("button",{type:"button",onClick:async()=>{h(""),k("");const{error:e}=s?await r.requestLoginEmailOtp():await r.requestEmailOtp();e?h("Failed to send Email code. If this persists, refresh the page and try again."):k("Verification email has been resent.")},className:yt,children:"Resend code to email"})]}),e("button",{type:"submit",className:bt,disabled:l,children:l?"Verifying...":"Verify & Continue"}),e("button",{type:"button",onClick:()=>i("/login"),className:vt,children:"Back to login"})]})]})});var w};var Nt={container:"verifyMagiclink-module__container___qrSXf",card:"verifyMagiclink-module__card___niKgr",title:"verifyMagiclink-module__title___SumxD",verificationContent:"verifyMagiclink-module__verificationContent___NdsS0",spinner:"verifyMagiclink-module__spinner___lnW1k",successIcon:"verifyMagiclink-module__successIcon___XjFEM",checkIcon:"verifyMagiclink-module__checkIcon___I0JOP",successText:"verifyMagiclink-module__successText___lO5Qq"};he(".verifyMagiclink-module__container___qrSXf{align-items:center;color:#fff;display:flex;justify-content:center;padding:1rem}.verifyMagiclink-module__card___niKgr{background-color:#1f2937;border-radius:.5rem;box-shadow:0 0 10px rgba(0,0,0,.3);max-width:28rem;padding:1.5rem;width:100%}.verifyMagiclink-module__title___SumxD{color:#fff;font-size:1.5rem;font-weight:700;margin-bottom:1rem;text-align:center}.verifyMagiclink-module__verificationContent___NdsS0{align-items:center;display:flex;flex-direction:column;gap:14px;margin:20px 0}.verifyMagiclink-module__spinner___lnW1k{animation:verifyMagiclink-module__spin___2lGzj .9s linear infinite;border:3px solid hsla(0,0%,100%,.15);border-radius:50%;border-top-color:#60a5fa;height:28px;width:28px}.verifyMagiclink-module__successIcon___XjFEM{align-items:center;background:rgba(16,185,129,.15);border-radius:50%;display:flex;height:36px;justify-content:center;width:36px}.verifyMagiclink-module__checkIcon___I0JOP{animation:verifyMagiclink-module__checkPop___-3qJu .25s ease-out;color:#34d399;height:22px;width:22px}.verifyMagiclink-module__successText___lO5Qq{color:#34d399;font-size:.9rem}@keyframes verifyMagiclink-module__checkPop___-3qJu{0%{opacity:0;transform:scale(.6)}80%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes verifyMagiclink-module__spin___2lGzj{to{transform:rotate(1turn)}}");const Ot=()=>{const[i]=v(),o=y(),n=i.get("token"),[r,a]=g(""),[s,l]=g(""),d=te(),{refreshSession:c}=X();return _(()=>{let e=!0,t=null,i=null;return(async()=>{if(!n)return e&&a("Missing token for verification."),void console.error("No magic-link token found.");const{error:r}=await d.verifyMagicLink(n);if(r)return console.error("Failed to verify token"),void(e&&a("Failed to verify token"));await c(),e&&(t=new BroadcastChannel("seamless-auth"),t.postMessage({type:"MAGIC_LINK_AUTH_SUCCESS"}),l("You have been verified on the device and browser that initiated this request"),i=setTimeout(()=>{e&&o("/")},900))})(),()=>{e=!1,t?.close(),i&&clearTimeout(i)}},[n,d,o,c]),e("div",{className:Nt.container,children:t("div",{className:Nt.card,children:[e("h1",{className:Nt.title,children:"Verifying your login"}),t("div",{className:Nt.verificationContent,children:[!s&&!r&&e("div",{className:Nt.spinner}),s&&e("div",{className:Nt.successIcon,children:e("svg",{viewBox:"0 0 24 24",className:Nt.checkIcon,fill:"none",stroke:"currentColor",strokeWidth:"2",children:e("path",{d:"M5 13l4 4L19 7"})})}),!s&&!r&&e("p",{className:Nt.helperText,children:"Please wait while we securely verify your sign-in link."}),s&&e("p",{className:Nt.successText,children:"Login verified. Redirecting…"}),r&&e("p",{className:Nt.error,children:r})]})]})})},Tt={oauth_missing_email:"Your provider account did not share an email address. Add an email to that account and make it visible, then try again.",oauth_email_not_verified:"The email address on your provider account is not verified. Verify it with your provider, then try again.",oauth_missing_subject:"Your provider did not return a usable account identifier. Try again, or sign in with a different method."},Ct=()=>{const{finishOAuthLogin:o}=X(),n=y(),[r]=v(),[a,s]=g(""),l=p(!1);return _(()=>{if(l.current)return;l.current=!0;const e=r.get("code"),t=r.get("state"),i=sessionStorage.getItem(Le);e&&t&&i?o({providerId:i,code:e,state:t}).then(({error:e})=>{if(e){const t=T(e);return void s(t?Tt[t]:"We could not complete sign-in. Please try again.")}sessionStorage.removeItem(Le),n("/")}):s("This sign-in link is missing required information.")},[o,n,r]),t("div",{className:Nt.container,children:[e("h2",{className:Nt.title,children:a?"Sign-in failed":"Completing sign-in..."}),a&&t(i,{children:[e("p",{children:a}),e("button",{type:"button",onClick:()=>n("/login"),children:"Back to login"})]})]})};var Mt="magiclink-module__container___45zcA",It="magiclink-module__card___Au9oN",At="magiclink-module__iconWrapper___k5ndr",zt="magiclink-module__mailIcon___Pwb7q",Et="magiclink-module__iconRing___bdLvf",Ft="magiclink-module__heading___b9cre",Ut="magiclink-module__message___kiVFj",Lt="magiclink-module__identifier___JtcFM",Rt="magiclink-module__helperText___7Mlfh",Bt="magiclink-module__actions___64I-3",qt="magiclink-module__secondaryButton___BntAI",jt="magiclink-module__cooldown___Ib4rm",Jt="magiclink-module__linkButton___maJiv";he(".magiclink-module__container___45zcA{align-items:center;color:#fff;display:flex;justify-content:center}.magiclink-module__card___Au9oN{background-color:#1f2937;border-radius:.75rem;box-shadow:0 10px 25px rgba(0,0,0,.25);max-width:420px;padding:2.5rem 2rem;text-align:center;width:100%}.magiclink-module__iconWrapper___k5ndr{display:flex;justify-content:center;margin-bottom:1.25rem;position:relative}.magiclink-module__mailIcon___Pwb7q{color:#a5b4fc;height:38px;width:38px;z-index:2}.magiclink-module__iconRing___bdLvf{animation:magiclink-module__pulse___YGm-I 2s infinite;background:rgba(99,102,241,.15);border-radius:50%;height:72px;position:absolute;width:72px}@keyframes magiclink-module__pulse___YGm-I{0%{opacity:.8;transform:scale(.6)}70%{opacity:0;transform:scale(1.4)}to{opacity:0}}.magiclink-module__heading___b9cre{font-size:1.55rem;font-weight:600;margin-bottom:.75rem}.magiclink-module__message___kiVFj{color:#d1d5db;font-size:.95rem;line-height:1.4;margin-bottom:1rem}.magiclink-module__identifier___JtcFM{background:hsla(0,0%,100%,.05);border-radius:6px;display:inline-block;font-size:1rem;font-weight:600;margin-bottom:1rem;padding:.45rem .6rem}.magiclink-module__helperText___7Mlfh{color:#9ca3af;font-size:.85rem;line-height:1.4;margin-bottom:.6rem}.magiclink-module__actions___64I-3{display:flex;flex-direction:column;gap:.6rem;margin-top:1.6rem}.magiclink-module__secondaryButton___BntAI{background:#111827;border:1px solid #374151;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:.65rem}.magiclink-module__secondaryButton___BntAI:hover:not(:disabled){background:#1f2937}.magiclink-module__secondaryButton___BntAI:disabled{cursor:not-allowed;opacity:.5}.magiclink-module__cooldown___Ib4rm{color:#9ca3af;font-size:.8rem}.magiclink-module__linkButton___maJiv{background:none;border:none;color:#a5b4fc;cursor:pointer;font-size:.85rem;margin-top:.4rem}.magiclink-module__linkButton___maJiv:hover{text-decoration:underline}");const Gt=()=>{const{refreshSession:i}=X(),o=y(),n=b(),r=te(),a=n.state?.identifier,[s,l]=g(30);_(()=>{const e=setInterval(()=>{l(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]);const d=f(async()=>{const{data:e,error:t}=await r.checkMagicLink();return!t&&"Success"===e?.message},[r]);return _(()=>{const e=new BroadcastChannel("seamless-auth");return e.onmessage=async e=>{"MAGIC_LINK_AUTH_SUCCESS"===e.data?.type&&await d()&&(await i(),o("/"))},()=>{e.close()}},[d,o,i]),_(()=>{const e=setInterval(async()=>{try{await d()&&(await i(),o("/"))}catch{}},5e3);return()=>clearInterval(e)},[d,i,o]),e("div",{className:Mt,children:t("div",{className:It,children:[t("div",{className:At,children:[e("div",{className:Et}),t("svg",{className:zt,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[e("path",{d:"M4 6h16v12H4z"}),e("path",{d:"m4 6 8 6 8-6"})]})]}),e("h2",{className:Ft,children:"Check your email"}),e("p",{className:Ut,children:"If an account exists for this address, we sent a secure sign-in link."}),a&&e("div",{className:Lt,children:a}),e("p",{className:Rt,children:"Open the email and click the link to finish signing in."}),e("p",{className:Rt,children:"Didn’t receive anything? Check your spam folder or try creating a new account."}),t("div",{className:Bt,children:[e("button",{className:qt,disabled:s>0,onClick:async()=>{s>0||(await r.requestMagicLink(),l(30))},children:"Resend link"}),s>0&&t("div",{className:jt,children:["Available in ",s,"s"]}),e("button",{className:Jt,onClick:()=>o("/login"),children:"Change email or phone"})]})]})})},Dt=()=>t(k,{children:[e(w,{path:de,element:e(Be,{})}),e(w,{path:ce,element:e(je,{})}),e(w,{path:ue,element:e(Pt,{})}),e(w,{path:_e,element:e(St,{})}),e(w,{path:me,element:e(Ot,{})}),e(w,{path:ge,element:e(Ct,{})}),e(w,{path:pe,element:e(lt,{})}),e(w,{path:fe,element:e(Gt,{})}),e(w,{path:"*",element:e(x,{to:de,replace:!0})})]});export{ee as AuthProvider,Dt as AuthRoutes,S as SeamlessAuthError,$ as createSeamlessAuthClient,U as encodePrfSalt,j as extractPasskeyPrfResult,T as getOAuthErrorCode,C as getWebAuthnErrorDetail,ne as hasNonPasskeyLoginMethod,K as hasScopedRole,B as isPasskeyPrfSupported,V as roleGrantsAccess,X as useAuth,te as useAuthClient,oe as useLoginMethods,le as usePasskeySupport};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/client/errors.ts","../src/client/result.ts","../src/client/webauthnPrf.ts","../src/client/webauthnSupport.ts","../src/client/createSeamlessAuthClient.ts","../src/fetchWithAuth.ts","../src/scopedRoles.ts","../src/session/storage.ts","../src/session/createAuthSession.ts","../src/AuthProvider.tsx","../src/hooks/useAuthClient.ts","../src/utils.ts","../src/hooks/usePasskeySupport.ts","../src/routes.ts","../node_modules/style-inject/dist/style-inject.es.js","../src/components/AuthFallbackOptions.tsx","../src/components/OAuthProviderButtons.tsx","../src/views/Login.tsx","../src/views/PassKeyLogin.tsx","../src/components/DeviceNameModal.tsx","../src/views/PassKeyRegistration.tsx","../src/components/OtpInput.tsx","../src/views/PhoneRegistration.tsx","../src/views/EmailRegistration.tsx","../src/views/VerifyMagicLink.tsx","../src/views/OAuthCallback.tsx","../src/components/MagicLinkSent.tsx","../src/AuthRoutes.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,"function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n",null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["SeamlessAuthError","Error","constructor","message","status","body","cause","super","this","name","OAUTH_ERROR_CODES","oauth_missing_email","oauth_email_not_verified","oauth_missing_subject","readCode","code","getOAuthErrorCode","error","details","Object","prototype","hasOwnProperty","call","undefined","getWebAuthnErrorDetail","value","async","toSeamlessAuthError","response","fallbackMessage","json","extractMessage","readBody","requestResult","request","data","ok","resultOf","resultError","toArrayBuffer","ArrayBuffer","source","Uint8Array","buffer","byteOffset","byteLength","copy","set","encodePrfSalt","salt","bufferToBase64URLString","saltToBufferSource","base64URLStringToBuffer","createPrfRequestBody","input","credentialId","prf","secondSalt","isPasskeyPrfSupported","browserSupportsWebAuthn","window","isSecureContext","globalThis","PublicKeyCredential","navigator","credentials","get","preparePrfRequestOptions","optionsJSON","options","prfEval","extensions","eval","first","second","extractPasskeyPrfResult","credential","extensionResults","clientExtensionResults","results","output","id","outputBase64url","stripPrfResultsFromAssertion","toStepUpStatus","payload","expectedMethod","method","fresh","verifiedAt","expiresAt","maxAgeSeconds","buildAssertionStartInit","JSON","stringify","webAuthnFailure","logContext","thrown","failure","detail","console","createSeamlessAuthClient","opts","fetchWithAuth","authHost","init","url","replace","startsWith","hasBody","requestInit","headers","fetch","createFetchWithAuth","apiHost","getCurrentUser","login","loginWithPasskey","optionsInput","started","assertionResponse","startAuthentication","verified","logout","scope","logoutAllSessions","deleteUser","register","email","phone","requestPhoneOtp","verifyPhoneOtp","verificationToken","requestLoginPhoneOtp","verifyLoginPhoneOtp","requestEmailOtp","verifyEmailOtp","requestLoginEmailOtp","verifyLoginEmailOtp","requestMagicLink","checkMagicLink","verifyMagicLink","token","encodeURIComponent","listOAuthProviders","startOAuthLogin","providerId","redirectUri","returnTo","finishOAuthLogin","state","registerPasskey","registerInput","metadata","normalizeRegisterPasskeyInput","challenge","query","URLSearchParams","requirePrf","requestPrf","queryString","toString","buildRegisterStartPath","attestationResponse","startRegistration","WebAuthnError","prfCapable","enabled","getRegistrationPrfCapable","getStepUpStatus","verifyStepUpWithPasskey","verifyStepUpWithPasskeyPrf","getTotpStatus","startTotpEnrollment","verifyTotpEnrollment","disableTotp","verifyStepUpWithTotp","updateCredential","deleteCredential","listOrganizations","createOrganization","getOrganization","organizationId","updateOrganization","switchOrganization","listOrganizationMembers","addOrganizationMember","updateOrganizationMember","userId","removeOrganizationMember","roleGrantsAccess","grantedRole","requiredRole","granted","trim","required","endsWith","prefix","slice","includes","grantedParts","split","requiredParts","grantedAction","length","requiredAction","grantedPrefix","requiredPrefix","every","part","index","hasScopedRole","grantedRoles","requiredRoles","Array","isArray","filter","role","some","createDefaultStorage","localStorage","values","Map","key","createMemoryStorage","getItem","setItem","PREVIOUS_SIGN_IN_KEY","SIGNED_OUT","user","organizations","activeOrganization","stepUpStatus","isAuthenticated","AuthContext","createContext","useAuth","context","useContext","AuthProvider","children","autoDetectPreviousSignin","session","useMemo","detectPreviousSignIn","client","storage","listeners","Set","destroyed","refreshGeneration","loading","hasSignedInBefore","setState","patch","next","keys","forEach","listener","markSignedIn","clearSession","refreshSession","generation","result","refreshAfter","run","getState","subscribe","add","delete","actions","identifier","passkeyAvailable","handlePasskeyLogin","friendlyName","updated","map","current","refreshStepUpStatus","hasRole","roles","rolesGrantScopedAccess","destroy","clear","createAuthSession","useSyncExternalStore","useEffect","_jsx","Provider","useAuthClient","isValidEmail","normalized","parts","localPart","domainPart","test","isValidPhoneNumber","phoneNumber","parsePhoneNumberFromString","isValid","isPasskeySupported","isUserVerifyingPlatformAuthenticatorAvailable","isPlatformAuthenticatorAvailable","usePasskeySupport","passkeySupported","setPasskeySupported","useState","setLoading","active","supported","checkSupport","authRoutePaths","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","AuthFallbackOptions","onMagicLink","onEmailOtp","onPhoneOtp","onPasskeyRetry","loginMethods","allowedMethods","showMagicLink","has","showEmailOtp","Boolean","showPhoneOtp","showPasskeyRetry","_jsxs","className","styles","onClick","OAUTH_PROVIDER_STORAGE_KEY","OAuthProviderButtons","callbackHref","useHref","providers","setProviders","setError","then","provider","sessionStorage","URL","location","origin","assign","authorizationUrl","handleSelect","DEFAULT_LOGIN_METHODS","Login","navigate","useNavigate","authClient","setIdentifier","setEmail","mode","setMode","formErrors","setFormErrors","emailError","setEmailError","identifierError","setIdentifierError","showFallbackOptions","setShowFallbackOptions","setLoginMethods","_Fragment","onSubmit","e","preventDefault","loginStart","availableMethods","passkeyError","htmlFor","onChange","target","autoComplete","placeholder","onBlur","flow","disabled","PassKeyLogin","runPasskeyLogin","container","card","title","button","DeviceNameModal","isOpen","onCancel","onConfirm","setValue","autoFocus","PasskeyRegistration","passkeySupportLoading","setStatus","setMessage","showDeviceModal","setShowDeviceModal","pendingMetadata","setPendingMetadata","platform","browser","deviceInfo","ua","userAgent","toLowerCase","brave","parseUserAgent","OtpInput","inputMode","inputs","useRef","concat","fill","handleChange","char","handleBulkInput","newValueArr","newValue","join","focus","cleaned","chars","i","Math","min","onPaste","clipboardData","getData","el","maxLength","onKeyDown","handleKeyDown","PhoneRegistration","useLocation","isLoginFlow","phoneOtp","setPhoneOtp","phoneVerified","setPhoneVerified","resendMsg","setResendMsg","phoneTimeLeft","setPhoneTimeLeft","verifyPhoneOTP","handleResend","onResendPhone","interval","setInterval","prev","clearInterval","nextStep","seconds","floor","padStart","EmailRegistration","emailOtp","setEmailOtp","emailTimeLeft","setEmailTimeLeft","VerifyMagicLink","searchParams","useSearchParams","successMsg","setSuccessMsg","mounted","channel","redirectTimeout","BroadcastChannel","postMessage","setTimeout","verify","close","clearTimeout","verificationContent","spinner","successIcon","viewBox","checkIcon","stroke","strokeWidth","d","helperText","successText","CODE_ERRORS","OAuthCallback","startedRef","finishError","removeItem","MagicLinkSent","cooldown","setCooldown","timer","c","magicLinkCompleted","useCallback","onmessage","event","AuthRoutes","Routes","Route","path","element","Navigate","to"],"mappings":"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","x_google_ignoreList":[14]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/client/errors.ts","../src/client/result.ts","../src/client/webauthnPrf.ts","../src/client/webauthnSupport.ts","../src/client/createSeamlessAuthClient.ts","../src/fetchWithAuth.ts","../src/scopedRoles.ts","../src/session/storage.ts","../src/session/createAuthSession.ts","../src/AuthProvider.tsx","../src/hooks/useAuthClient.ts","../src/hooks/useLoginMethods.ts","../src/utils.ts","../src/hooks/usePasskeySupport.ts","../src/routes.ts","../node_modules/style-inject/dist/style-inject.es.js","../src/components/AuthFallbackOptions.tsx","../src/components/OAuthProviderButtons.tsx","../src/views/Login.tsx","../src/views/PassKeyLogin.tsx","../src/components/DeviceNameModal.tsx","../src/views/PassKeyRegistration.tsx","../src/components/OtpInput.tsx","../src/views/PhoneRegistration.tsx","../src/views/EmailRegistration.tsx","../src/views/VerifyMagicLink.tsx","../src/views/OAuthCallback.tsx","../src/components/MagicLinkSent.tsx","../src/AuthRoutes.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n",null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["SeamlessAuthError","Error","constructor","message","status","body","cause","super","this","name","OAUTH_ERROR_CODES","oauth_missing_email","oauth_email_not_verified","oauth_missing_subject","readCode","code","getOAuthErrorCode","error","details","Object","prototype","hasOwnProperty","call","undefined","getWebAuthnErrorDetail","value","async","toSeamlessAuthError","response","fallbackMessage","json","extractMessage","readBody","requestResult","request","data","ok","resultOf","resultError","toArrayBuffer","ArrayBuffer","source","Uint8Array","buffer","byteOffset","byteLength","copy","set","encodePrfSalt","salt","bufferToBase64URLString","saltToBufferSource","base64URLStringToBuffer","createPrfRequestBody","input","credentialId","prf","secondSalt","isPasskeyPrfSupported","browserSupportsWebAuthn","window","isSecureContext","globalThis","PublicKeyCredential","navigator","credentials","get","preparePrfRequestOptions","optionsJSON","options","prfEval","extensions","eval","first","second","extractPasskeyPrfResult","credential","extensionResults","clientExtensionResults","results","output","id","outputBase64url","stripPrfResultsFromAssertion","toStepUpStatus","payload","expectedMethod","method","fresh","verifiedAt","expiresAt","maxAgeSeconds","buildAssertionStartInit","JSON","stringify","webAuthnFailure","logContext","thrown","failure","detail","console","createSeamlessAuthClient","opts","fetchWithAuth","authHost","init","url","replace","startsWith","hasBody","requestInit","headers","fetch","createFetchWithAuth","apiHost","getCurrentUser","login","loginWithPasskey","optionsInput","started","assertionResponse","startAuthentication","verified","logout","scope","logoutAllSessions","deleteUser","register","email","phone","requestPhoneOtp","verifyPhoneOtp","verificationToken","requestLoginPhoneOtp","verifyLoginPhoneOtp","requestEmailOtp","verifyEmailOtp","requestLoginEmailOtp","verifyLoginEmailOtp","requestMagicLink","checkMagicLink","verifyMagicLink","token","encodeURIComponent","listOAuthProviders","getPublicSystemConfig","startOAuthLogin","providerId","redirectUri","returnTo","finishOAuthLogin","state","registerPasskey","registerInput","metadata","normalizeRegisterPasskeyInput","challenge","query","URLSearchParams","requirePrf","requestPrf","queryString","toString","buildRegisterStartPath","attestationResponse","startRegistration","WebAuthnError","prfCapable","enabled","getRegistrationPrfCapable","getStepUpStatus","verifyStepUpWithPasskey","verifyStepUpWithPasskeyPrf","getTotpStatus","startTotpEnrollment","verifyTotpEnrollment","disableTotp","verifyStepUpWithTotp","updateCredential","deleteCredential","listOrganizations","createOrganization","getOrganization","organizationId","updateOrganization","switchOrganization","listOrganizationMembers","addOrganizationMember","updateOrganizationMember","userId","removeOrganizationMember","roleGrantsAccess","grantedRole","requiredRole","granted","trim","required","endsWith","prefix","slice","includes","grantedParts","split","requiredParts","grantedAction","length","requiredAction","grantedPrefix","requiredPrefix","every","part","index","hasScopedRole","grantedRoles","requiredRoles","Array","isArray","filter","role","some","createDefaultStorage","localStorage","values","Map","key","createMemoryStorage","getItem","setItem","PREVIOUS_SIGN_IN_KEY","SIGNED_OUT","user","organizations","activeOrganization","stepUpStatus","isAuthenticated","AuthContext","createContext","useAuth","context","useContext","AuthProvider","children","autoDetectPreviousSignin","session","useMemo","detectPreviousSignIn","client","storage","listeners","Set","destroyed","refreshGeneration","loading","hasSignedInBefore","setState","patch","next","keys","forEach","listener","markSignedIn","clearSession","refreshSession","generation","result","refreshAfter","run","getState","subscribe","add","delete","actions","identifier","passkeyAvailable","handlePasskeyLogin","friendlyName","updated","map","current","refreshStepUpStatus","hasRole","roles","rolesGrantScopedAccess","destroy","clear","createAuthSession","useSyncExternalStore","useEffect","_jsx","Provider","useAuthClient","FALLBACK_LOGIN_METHODS","useLoginMethods","authClient","loginMethods","setLoginMethods","useState","setLoading","active","read","hasNonPasskeyLoginMethod","Boolean","isValidEmail","normalized","parts","localPart","domainPart","test","isValidPhoneNumber","phoneNumber","parsePhoneNumberFromString","isValid","isPasskeySupported","isUserVerifyingPlatformAuthenticatorAvailable","isPlatformAuthenticatorAvailable","usePasskeySupport","passkeySupported","setPasskeySupported","supported","checkSupport","authRoutePaths","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","AuthFallbackOptions","onMagicLink","onEmailOtp","onPhoneOtp","onPasskeyRetry","allowedMethods","showMagicLink","has","showEmailOtp","showPhoneOtp","showPasskeyRetry","_jsxs","className","styles","onClick","OAUTH_PROVIDER_STORAGE_KEY","OAuthProviderButtons","callbackHref","useHref","providers","setProviders","setError","then","provider","sessionStorage","URL","location","origin","assign","authorizationUrl","handleSelect","Login","navigate","useNavigate","configuredMethods","setIdentifier","setEmail","mode","setMode","formErrors","setFormErrors","emailError","setEmailError","identifierError","setIdentifierError","showFallbackOptions","setShowFallbackOptions","_Fragment","onSubmit","e","preventDefault","loginStart","availableMethods","passkeyError","htmlFor","onChange","target","autoComplete","placeholder","onBlur","flow","disabled","PassKeyLogin","runPasskeyLogin","container","card","title","button","DeviceNameModal","isOpen","onCancel","onConfirm","setValue","autoFocus","PasskeyRegistration","passkeySupportLoading","loginMethodsLoading","setStatus","setMessage","showDeviceModal","setShowDeviceModal","pendingMetadata","setPendingMetadata","canSkip","finishWithoutPasskey","platform","browser","deviceInfo","ua","userAgent","toLowerCase","brave","parseUserAgent","OtpInput","inputMode","inputs","useRef","concat","fill","handleChange","char","handleBulkInput","newValueArr","newValue","join","focus","cleaned","chars","i","Math","min","onPaste","clipboardData","getData","el","maxLength","onKeyDown","handleKeyDown","PhoneRegistration","useLocation","isLoginFlow","phoneOtp","setPhoneOtp","phoneVerified","setPhoneVerified","resendMsg","setResendMsg","phoneTimeLeft","setPhoneTimeLeft","verifyPhoneOTP","handleResend","onResendPhone","interval","setInterval","prev","clearInterval","nextStep","seconds","floor","padStart","EmailRegistration","emailOtp","setEmailOtp","emailTimeLeft","setEmailTimeLeft","VerifyMagicLink","searchParams","useSearchParams","successMsg","setSuccessMsg","mounted","channel","redirectTimeout","BroadcastChannel","postMessage","setTimeout","verify","close","clearTimeout","verificationContent","spinner","successIcon","viewBox","checkIcon","stroke","strokeWidth","d","helperText","successText","CODE_ERRORS","OAuthCallback","startedRef","finishError","removeItem","MagicLinkSent","cooldown","setCooldown","timer","c","magicLinkCompleted","useCallback","onmessage","event","AuthRoutes","Routes","Route","path","element","Navigate","to"],"mappings":"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","x_google_ignoreList":[15]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seamless-auth/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "A drop-in authentication solution for modern React applications.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"typescript-eslint": "^8.46.1"
|
|
103
103
|
},
|
|
104
104
|
"dependencies": {
|
|
105
|
-
"@seamless-auth/types": "^0.
|
|
105
|
+
"@seamless-auth/types": "^0.5.0",
|
|
106
106
|
"@simplewebauthn/browser": "^13.1.0",
|
|
107
107
|
"eslint-plugin-license-header": "^0.9.0",
|
|
108
108
|
"libphonenumber-js": "^1.12.7",
|