@seamless-auth/react 0.2.0 → 0.2.1

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 CHANGED
@@ -1,5 +1,15 @@
1
1
  # @seamless-auth/react
2
2
 
3
+ ## 0.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 26fda9d: Register with just an email. The registration form no longer requires a phone
8
+ number (it stays optional, validated only when provided), and a successful
9
+ registration now routes to email verification (`/verifyEmailOTP`) instead of
10
+ phone verification — matching the auth server's email-first registration. After
11
+ verifying the email code the user is signed in.
12
+
3
13
  ## 0.2.0
4
14
 
5
15
  ### Minor Changes
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as o,Fragment as t}from"react/jsx-runtime";import{bufferToBase64URLString as n,browserSupportsWebAuthn as i,base64URLStringToBuffer as r,startAuthentication as a,startRegistration as s,WebAuthnError as l}from"@simplewebauthn/browser";import{useState as d,useEffect as c,createContext as u,useMemo as _,useCallback as m,useContext as p,useRef as g}from"react";import{useNavigate as h,useLocation as f,useSearchParams as y,Routes as b,Route as k,Navigate as v}from"react-router-dom";import w,{AsYouType as x,parsePhoneNumberFromString as P}from"libphonenumber-js";function N(e){if(e instanceof ArrayBuffer)return e;const o=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),t=new Uint8Array(o.byteLength);return t.set(o),t.buffer}function S(e){return"string"==typeof e?e:n(N(e))}function O(e){return"string"==typeof e?r(e):e}function C(e){return{...e.credentialId?{credentialId:e.credentialId}:{},prf:{salt:S(e.salt),...e.secondSalt?{secondSalt:S(e.secondSalt)}:{}}}}async function T(){return!!i()&&(("undefined"==typeof window||!1!==window.isSecureContext)&&(void 0!==globalThis.PublicKeyCredential&&"undefined"!=typeof navigator&&"function"==typeof navigator.credentials?.get))}function M(e){const o=e,t=o.extensions?.prf?.eval;return t?{...o,extensions:{...o.extensions,prf:{...o.extensions?.prf,eval:{...t,...t.first?{first:O(t.first)}:{},...t.second?{second:O(t.second)}:{}}}}}:e}function A(e){const o=e.clientExtensionResults,t=o?.prf?.results?.first;if(!t)return null;const i=(r=t)instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength);var r;return{credentialId:e.id,output:i,outputBase64url:n(N(i))}}function I(e){const o=e.clientExtensionResults;return o?.prf?.results?{...e,clientExtensionResults:{...e.clientExtensionResults,prf:{...o.prf,results:void 0}}}:e}function E(e){const o=e.clientExtensionResults;return!0===o?.prf?.enabled}const z=e=>({success:!1,fresh:!1,method:null,verifiedAt:null,expiresAt:null,maxAgeSeconds:0,message:e}),L=e=>({...z(e),credentialId:null,prf:null});function j(e){return e?{method:"POST",body:JSON.stringify(C(e))}:{method:"POST"}}const F=e=>{const o=(e=>{const{authHost:o}=e;return async function(e,t){const n=`${o?.replace(/\/+$/,"")??""}/auth${e.startsWith("/")?e:`/${e}`}`,i={...t,credentials:"include",headers:{"Content-Type":"application/json",...t?.headers}},r=await fetch(n,i);return r.ok||console.warn("Auth fetch failed:",r.status),r}})({authHost:e.apiHost});return{getCurrentUser:()=>o("users/me",{method:"GET"}),login:e=>o("/login",{method:"POST",body:JSON.stringify(e)}),loginWithPasskey:async e=>{const t=await o("/webAuthn/login/start",{...j(e?.prf)});if(!t.ok)return{success:!1,mfaRequired:!1,message:"Failed to start passkey login."};try{const e=await t.json(),n=await a({optionsJSON:M(e)}),i=A(n),r=I(n),s=await o("/webAuthn/login/finish",{method:"POST",body:JSON.stringify({assertionResponse:r})});if(!s.ok)return{success:!1,mfaRequired:!1,message:"Failed to verify passkey."};const l=await s.json();return"Success"===l.message?{success:!l.mfaLogin,mfaRequired:Boolean(l.mfaLogin),message:l.mfaLogin?"Passkey login requires MFA.":"Passkey login succeeded.",...i?{prf:i}:{}}:{success:!1,mfaRequired:!1,message:l.message??"Passkey login failed."}}catch{return console.error("Passkey login error."),{success:!1,mfaRequired:!1,message:"Passkey login failed."}}},logout:(e={})=>o("all_sessions"===e.scope?"/logout/all":"/logout",{method:"DELETE"}),logoutAllSessions:()=>o("/logout/all",{method:"DELETE"}),deleteUser:()=>o("/users/delete",{method:"DELETE"}),register:e=>o("/registration/register",{method:"POST",body:JSON.stringify({email:e.email,phone:e.phone,...e.bootstrapToken?{bootstrapToken:e.bootstrapToken}:{}})}),requestPhoneOtp:()=>o("/otp/generate-phone-otp",{method:"GET"}),verifyPhoneOtp:e=>o("/otp/verify-phone-otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({verificationToken:e}),credentials:"include"}),requestLoginPhoneOtp:()=>o("/otp/generate-login-phone-otp",{method:"GET"}),verifyLoginPhoneOtp:e=>o("/otp/verify-login-phone-otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({verificationToken:e}),credentials:"include"}),requestEmailOtp:()=>o("/otp/generate-email-otp",{method:"GET",headers:{"Content-Type":"application/json"}}),verifyEmailOtp:e=>o("/otp/verify-email-otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({verificationToken:e}),credentials:"include"}),requestLoginEmailOtp:()=>o("/otp/generate-login-email-otp",{method:"GET",headers:{"Content-Type":"application/json"}}),verifyLoginEmailOtp:e=>o("/otp/verify-login-email-otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({verificationToken:e}),credentials:"include"}),requestMagicLink:()=>o("/magic-link",{method:"GET"}),checkMagicLink:()=>o("/magic-link/check",{method:"GET",headers:{"Content-Type":"application/json"}}),verifyMagicLink:e=>o(`/magic-link/verify/${e}`,{method:"GET",headers:{"Content-Type":"application/json"}}),listOAuthProviders:async()=>{const e=await o("/oauth/providers",{method:"GET"});if(!e.ok)throw new Error("Failed to list OAuth providers.");return e.json()},startOAuthLogin:async e=>{const t=await o(`/oauth/${encodeURIComponent(e.providerId)}/start`,{method:"POST",body:JSON.stringify({...e.redirectUri?{redirectUri:e.redirectUri}:{},...e.returnTo?{returnTo:e.returnTo}:{}})});if(!t.ok)throw new Error("Failed to start OAuth login.");return t.json()},finishOAuthLogin:e=>o(`/oauth/${encodeURIComponent(e.providerId)}/callback`,{method:"POST",body:JSON.stringify({code:e.code,state:e.state})}),registerPasskey:async e=>{const t=function(e){return"metadata"in e?e:{metadata:e}}(e),n=await o(function(e){const o=new URLSearchParams;e.requirePrf?o.set("requirePrf","true"):e.requestPrf&&o.set("requestPrf","true");const t=o.toString();return"/webAuthn/register/start"+(t?`?${t}`:"")}(t),{method:"GET",headers:{"Content-Type":"application/json"},credentials:"include"});if(!n.ok)return{success:!1,message:"Failed to fetch passkey registration challenge."};const i=await n.json();let r;try{r=await s({optionsJSON:i})}catch(e){return e instanceof l?{success:!1,message:e.name}:(console.error("Passkey registration error."),{success:!1,message:"Passkey registration failed."})}return(await o("/webAuthn/register/finish",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attestationResponse:r,metadata:{...t.metadata,prfCapable:E(r)}}),credentials:"include"})).ok?{success:!0,message:"Passkey registered successfully.",credentialId:r.id,prfCapable:E(r)}:{success:!1,message:"Verification failed."}},isPasskeyPrfSupported:T,getStepUpStatus:()=>o("/step-up/status",{method:"GET"}),verifyStepUpWithPasskey:async()=>{const e=await o("/step-up/webauthn/start",{method:"POST"});if(!e.ok)return z("Failed to start step-up authentication.");try{const t=await e.json(),n=I(await a({optionsJSON:M(t)})),i=await o("/step-up/webauthn/finish",{method:"POST",body:JSON.stringify({assertionResponse:n})});if(!i.ok)return z("Failed to verify step-up authentication.");const r=await i.json(),s="webauthn"===r.method?r.method:null,l="Success"===r.message&&!0===r.fresh&&"webauthn"===s;return{success:l,fresh:Boolean(r.fresh),method:s,verifiedAt:r.verifiedAt??null,expiresAt:r.expiresAt??null,maxAgeSeconds:r.maxAgeSeconds??0,message:l?"Step-up authentication succeeded.":r.message??"Step-up authentication failed."}}catch{return console.error("Step-up authentication error."),z("Step-up authentication failed.")}},verifyStepUpWithPasskeyPrf:async e=>{const t=await o("/step-up/webauthn/start",{...j(e)});if(!t.ok)return L("Failed to start step-up authentication.");try{const e=await t.json(),n=await a({optionsJSON:M(e)}),i=A(n),r=I(n);if(!i)return L("Passkey did not return PRF output.");const s=await o("/step-up/webauthn/finish",{method:"POST",body:JSON.stringify({assertionResponse:r})});if(!s.ok)return L("Failed to verify step-up authentication.");const l=await s.json(),d="webauthn"===l.method?l.method:null,c="Success"===l.message&&!0===l.fresh&&"webauthn"===d;return{success:c,fresh:Boolean(l.fresh),method:d,verifiedAt:l.verifiedAt??null,expiresAt:l.expiresAt??null,maxAgeSeconds:l.maxAgeSeconds??0,message:c?"Step-up authentication succeeded.":l.message??"Step-up authentication failed.",credentialId:i.credentialId,prf:i}}catch{return console.error("Step-up authentication error."),L("Step-up authentication failed.")}},updateCredential:e=>o("users/credentials",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),deleteCredential:e=>o("users/credentials",{method:"DELETE",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e})}),listOrganizations:()=>o("/organizations",{method:"GET"}),createOrganization:e=>o("/organizations",{method:"POST",body:JSON.stringify(e)}),getOrganization:e=>o(`/organizations/${encodeURIComponent(e)}`,{method:"GET"}),updateOrganization:(e,t)=>o(`/organizations/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify(t)}),switchOrganization:e=>o(`/organizations/${encodeURIComponent(e)}/switch`,{method:"POST"}),listOrganizationMembers:e=>o(`/organizations/${encodeURIComponent(e)}/members`,{method:"GET"}),addOrganizationMember:(e,t)=>o(`/organizations/${encodeURIComponent(e)}/members`,{method:"POST",body:JSON.stringify(t)}),updateOrganizationMember:(e,t,n)=>o(`/organizations/${encodeURIComponent(e)}/members/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify(n)}),removeOrganizationMember:(e,t)=>o(`/organizations/${encodeURIComponent(e)}/members/${encodeURIComponent(t)}`,{method:"DELETE"})}};function U(e,o){const t=e.trim(),n=o.trim();if(!t||!n)return!1;if(t===n)return!0;if(t.endsWith(":*")){const e=t.slice(0,-2);return n===e||n.startsWith(`${e}:`)}if(!n.includes(":"))return!1;if(!t.includes(":"))return n.startsWith(`${t}:`);const i=t.split(":"),r=n.split(":"),a=i[i.length-1],s=r[r.length-1],l=i.slice(0,-1),d=r.slice(0,-1);return"write"===a&&"read"===s&&l.length===d.length&&l.every((e,o)=>e===d[o])}function B(e,o){if(!Array.isArray(e))return!1;const t=e.filter(e=>"string"==typeof e);return(Array.isArray(o)?o:[o]).some(e=>t.some(o=>U(o,e)))}const R=u(void 0),q=()=>{const e=p(R);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e},G=({children:o,apiHost:t,autoDetectPreviousSignin:n=!0})=>{const[i,r]=d(null),[a,s]=d([]),[l,u]=d([]),[p,g]=d(null),[h,f]=d(null),[y,b]=d(!1),[k,v]=d(!0),{hasSignedInBefore:w,markSignedIn:x}=function(e="seamlessauth_seen"){const[o,t]=d(!1);return c(()=>{try{"true"===localStorage.getItem(e)&&t(!0)}catch{}},[e]),{hasSignedInBefore:o,markSignedIn:()=>{try{localStorage.setItem(e,"true"),t(!0)}catch{}}}}(),P=_(()=>F({apiHost:t}),[t]),N=m(()=>{b(!1),r(null),s([]),u([]),g(null),f(null)},[]),S=m(async()=>{try{await P.logout()}catch{console.error("Error during logout")}finally{N()}},[P,N]),O=m(async()=>{try{await P.logoutAllSessions()}catch{console.error("Error during logout")}finally{N()}},[P,N]),C=m(async()=>{v(!0);try{const e=await P.getCurrentUser();if(e.ok){const{user:o,credentials:t,organizations:n,activeOrganization:i}=await e.json();r(o),s(t??[]),u(n??[]),g(i??null),b(!0)}else await S()}catch{await S()}finally{v(!1)}},[P,S]),T=m(async()=>{const e=await P.getStepUpStatus();if(!e.ok)return f(null),null;const o=await e.json();return f(o),o},[P]),M=m(async()=>{const e=await P.verifyStepUpWithPasskey();return e.success&&f({fresh:e.fresh,method:e.method,verifiedAt:e.verifiedAt,expiresAt:e.expiresAt,maxAgeSeconds:e.maxAgeSeconds}),e},[P]),A=m(async e=>{const o=await P.verifyStepUpWithPasskeyPrf(e);return o.success&&f({fresh:o.fresh,method:o.method,verifiedAt:o.verifiedAt,expiresAt:o.expiresAt,maxAgeSeconds:o.maxAgeSeconds}),o},[P]);return c(()=>{C()},[C]),c(()=>{i&&y&&x()},[i,y,x]),e(R.Provider,{value:{user:i,logout:S,logoutAllSessions:O,refreshSession:C,loading:k,deleteUser:async()=>{try{if((await P.deleteUser()).ok)return r(null),b(!1),s([]),u([]),g(null),void f(null);throw new Error("Could not delete user.")}catch{throw console.error("Something went wrong deleting user."),new Error("Could not delete user.")}},isAuthenticated:y,hasRole:e=>i?.roles?.includes(e),hasScopedRole:e=>i?B(i.roles,e):void 0,apiHost:t,markSignedIn:x,hasSignedInBefore:!!n&&w,credentials:a,organizations:l,activeOrganization:p,switchOrganization:async e=>{if(!(await P.switchOrganization(e)).ok)throw new Error("Failed to switch organization");await C()},listOAuthProviders:()=>P.listOAuthProviders(),startOAuthLogin:e=>P.startOAuthLogin(e),finishOAuthLogin:async e=>{if(!(await P.finishOAuthLogin(e)).ok)throw new Error("Failed to finish OAuth login");await C()},stepUpStatus:h,updateCredential:async e=>{const o=await P.updateCredential({friendlyName:e.friendlyName,id:e.id});if(o.ok){const e=await o.json(),t=e.credential??e;return s(e=>e.map(e=>e.id===t.id?{...e,...t}:e)),e}throw new Error("Failed to update credential")},deleteCredential:async e=>{const o=await P.deleteCredential(e);if(o.ok){const t=await o.json();return s(o=>o.filter(o=>o.id!==e)),t}throw new Error("Failed to delete credential")},login:async(e,o)=>P.login({identifier:e,passkeyAvailable:o}),handlePasskeyLogin:async()=>{const e=await P.loginWithPasskey();return e.mfaRequired?(console.warn("Passkey login requested MFA, but the built-in MFA route is not currently available."),!1):e.success?(await C(),!0):(console.error("Passkey login failed."),!1)},refreshStepUpStatus:T,verifyStepUpWithPasskey:M,verifyStepUpWithPasskeyPrf:A},children:o})};function D(e,o){void 0===o&&(o={});var t=o.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===t&&n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var J="login-module__container___YggDx",V="login-module__card___Ub-Py",W="login-module__heading___neEqb",$="login-module__inputGroup___P6qgS",K="login-module__label___mx5vu",H="login-module__input___U07lW",Y="login-module__helperText___kDQ4-",Z="login-module__error___40zxh",Q="login-module__button___0kFBs",X="login-module__toggle___1JiG1",ee="login-module__underline___gs-RS",oe="login-module__phoneRow___oeNtq",te="login-module__select___rRV1O",ne="login-module__phoneInput___2MPQC",ie="login-module__fallbackCard___HdIk-",re="login-module__fallbackHeader___-il2v",ae="login-module__fallbackDescription___ea5EB",se="login-module__fallbackActions___AD3ni",le="login-module__fallbackActionButton___lFgWf",de="login-module__actionTitle___ycrMp",ce="login-module__actionSubtext___opaIV",ue="login-module__linkButton___5lsoe";D(".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}");var _e="termsModal-module__overlay___-j6r5",me="termsModal-module__modal___4PxZV",pe="termsModal-module__header___B7wxb",ge="termsModal-module__title___Sucwt",he="termsModal-module__closeBtn___evIs5",fe="termsModal-module__content___5BDhN",ye="termsModal-module__link___oPZrU";D(".termsModal-module__overlay___-j6r5{align-items:center;background-color:rgba(0,0,0,.7);display:flex;inset:0;justify-content:center;position:fixed;z-index:999}.termsModal-module__modal___4PxZV{background-color:#1a1a1a;border-radius:8px;box-shadow:0 10px 25px rgba(0,0,0,.4);color:#fff;max-height:80vh;max-width:640px;outline:none;overflow-y:auto;padding:24px;width:100%}.termsModal-module__header___B7wxb{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.termsModal-module__title___Sucwt{color:#60a5fa;font-size:1.25rem;font-weight:700}.termsModal-module__closeBtn___evIs5{background:none;border:none;color:#ccc;cursor:pointer;font-size:1.75rem}.termsModal-module__closeBtn___evIs5:hover{color:#fff}.termsModal-module__content___5BDhN{color:#d1d5db;font-size:.9rem;line-height:1.6}.termsModal-module__link___oPZrU{color:#60a5fa;text-decoration:underline}.termsModal-module__link___oPZrU:hover{text-decoration:none}");const be=({isOpen:t,onClose:n})=>{const i=g(null);return c(()=>{const e=e=>{"Escape"===e.key&&n()};return t&&(document.addEventListener("keydown",e),i.current?.focus()),()=>{document.removeEventListener("keydown",e)}},[t,n]),t?e("div",{className:_e,role:"dialog","aria-modal":"true","aria-labelledby":"terms-title",children:o("div",{className:me,tabIndex:-1,ref:i,children:[o("div",{className:pe,children:[e("h2",{id:"terms-title",className:ge,children:"SMS Terms & Conditions"}),e("button",{onClick:n,className:he,children:"×"})]}),o("div",{className:fe,children:[o("p",{children:[e("strong",{children:"Effective Date:"})," June 01, 2025"]}),e("p",{children:"By providing your phone number to SeamlessAuth, a Fells Code LLC product, you agree to receive SMS messages for identity verification, authentication, and account security."}),o("p",{children:[e("strong",{children:"1. Purpose:"})," SMS is used only for account security (OTP, MFA). No marketing messages."]}),o("p",{children:[e("strong",{children:"2. Frequency:"})," Based on login and account activity."]}),o("p",{children:[e("strong",{children:"3. Opt-Out:"})," Contact support@seamlessauth.com to opt out."]}),o("p",{children:[e("strong",{children:"4. Fees:"})," Message and data rates may apply."]}),o("p",{children:[e("strong",{children:"5. Supported Carriers:"})," Most major providers supported, delivery not guaranteed."]}),o("p",{children:[e("strong",{children:"6. Privacy:"})," Your phone number is not shared or sold. See our Privacy Policy."]}),o("p",{children:[e("strong",{children:"7. Changes:"})," Terms may be updated with notice on this page."]}),o("p",{children:["Questions? Email us at"," ",e("a",{className:ye,href:"mailto:support@seamlessauth.com",children:"support@seamlessauth.com"}),"."]})]})]})}):null},ke=[{code:"US",name:"United States",dialCode:"+1",flag:"🇺🇸"},{code:"CA",name:"Canada",dialCode:"+1",flag:"🇨🇦"},{code:"GB",name:"United Kingdom",dialCode:"+44",flag:"🇬🇧"},{code:"IN",name:"India",dialCode:"+91",flag:"🇮🇳"},{code:"AU",name:"Australia",dialCode:"+61",flag:"🇦🇺"}];function ve({phone:t,setPhone:n,phoneError:i,setPhoneError:r}){const[a,s]=d(!1),[l,u]=d(ke[0]);c(()=>{const e=function(){try{const e=Intl.DateTimeFormat().resolvedOptions().locale||"en-US",o=e.split("-")[1]?.toUpperCase()||"US";return ke.find(e=>e.code===o)||ke[0]}catch{return ke[0]}}();u(e)},[]);return o("div",{className:$,children:[e("label",{id:"phone",className:K,children:"Phone Number"}),o("div",{className:oe,children:[e("select",{value:l.code,onChange:e=>{const o=ke.find(o=>o.code===e.target.value);if(o){u(o);const e=t.replace(/^\+\d+/,""),i=(new x).input(o.dialCode+e);n(i)}},className:te,children:ke.map(e=>o("option",{value:e.code,children:[e.flag," (",e.dialCode,")"]},e.code))}),e("input",{"aria-labelledby":"phone",type:"tel",value:t,onChange:e=>{const o=e.target.value,t=o.startsWith(l.dialCode)?o:l.dialCode+o,a=(new x).input(t);n(a),i&&r("")},onBlur:()=>{if(t){const e=P(t),o=e?.isValid();r(o?"":"Please enter a valid phone number.")}},autoComplete:"off",placeholder:"(555) 123-4567",className:ne})]}),o("p",{className:Y,children:["By signing up, you agree to our"," ",e("button",{onClick:()=>s(!0),className:ee,children:"SMS Terms & Conditions"}),"."]}),i&&e("p",{className:Z,children:i}),e(be,{isOpen:a,onClose:()=>s(!1)})]})}const we=()=>{const{apiHost:e}=q();return _(()=>F({apiHost:e}),[e])},xe=e=>{if("string"!=typeof e)return!1;const o=e.trim();if(o.length<3||o.length>320)return!1;const t=o.split("@");if(2!==t.length)return!1;const[n,i]=t;return!(!/^[A-Za-z0-9._%+-]+$/.test(n)||n.startsWith(".")||n.endsWith(".")||n.includes(".."))&&!(!/^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/.test(i)||i.startsWith("-")||i.endsWith("-")||i.startsWith(".")||i.endsWith(".")||i.includes(".."))},Pe=e=>{const o=w(e);return o?.isValid()||!1};const Ne=()=>{const[e,o]=d(!1),[t,n]=d(!0);return c(()=>{let e=!0;return(async()=>{try{const t=await async function(){if(window.PublicKeyCredential&&"function"==typeof window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable)try{return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()}catch{return console.error("Error checking passkey support."),!1}return!1}();e&&o(t)}catch{e&&o(!1)}finally{e&&n(!1)}})(),()=>{e=!1}},[]),{passkeySupported:e,loading:t}},Se=({identifier:t,onMagicLink:n,onEmailOtp:i,onPhoneOtp:r,onPasskeyRetry:a,loginMethods:s})=>{const l=new Set(s??["passkey","magic_link","phone_otp"]),d=l.has("magic_link")&&xe(t),c=l.has("email_otp")&&Boolean(i)&&xe(t),u=l.has("phone_otp")&&Pe(t),_=l.has("passkey")&&Boolean(a);return d||c||u||_?o("div",{className:ie,children:[e("div",{className:re,children:"Choose a sign-in method"}),e("p",{className:ae,children:"Choose another secure sign-in method."}),o("div",{className:se,children:[d&&o("button",{type:"button",className:le,onClick:n,children:[e("span",{className:de,children:"Email Magic Link"}),e("span",{className:ce,children:"Send a secure sign-in link to your email"})]}),c&&o("button",{type:"button",className:le,onClick:i,children:[e("span",{className:de,children:"Email Code"}),e("span",{className:ce,children:"Receive a one-time code by email"})]}),u&&o("button",{type:"button",className:le,onClick:r,children:[e("span",{className:de,children:"Text Message Code"}),e("span",{className:ce,children:"Receive a one-time code via SMS"})]})]}),_&&e("button",{type:"button",className:ue,onClick:a,children:"Try passkey anyway"})]}):null},Oe=["passkey","magic_link","phone_otp"],Ce=()=>{const n=h(),{hasSignedInBefore:i,login:r,handlePasskeyLogin:a}=q(),s=we(),{passkeySupported:l}=Ne(),[u,_]=d(""),[m,p]=d(""),[g,f]=d("register"),[y,b]=d(""),[k,v]=d(""),[w,x]=d(""),[P,N]=d(""),[S,O]=d(""),[C,T]=d(!1),[M,A]=d(Oe),[I,E]=d(null);c(()=>{i&&f("login");const e=new URLSearchParams(window.location.search).get("bootstrapToken");e&&e.length>10&&E(e)},[i]);return e("div",{className:J,children:o("div",{className:V,children:[e("h2",{className:W,children:"login"===g?"Sign In":"Create Account"}),e(t,{children:o("form",{onSubmit:async e=>{e.preventDefault(),v(""),T(!1);try{if("login"===g){const e=await r(u,l),o=await(async e=>{if(!e||"function"!=typeof e.json)return null;try{return await e.json()}catch{return null}})(e),t=o?.loginMethods?.length?o.loginMethods:Oe;if(A(t),e?.ok&&l&&t.includes("passkey")){return await a()?void n("/"):(T(!0),void v("Passkey sign-in could not be completed. Choose another sign-in method."))}return e?.ok?void T(!0):void v("Failed to start sign-in. Please try again.")}"register"===g&&await(async()=>{v("");try{const e=await s.register({email:m,phone:y,bootstrapToken:I});if(!e.ok)return void v("Failed to register. Please try again.");if("Success"===(await e.json()).message)return void n("/verifyPhoneOTP");v("An unexpected error occurred. Try again. If the problem persists, try resetting your password.")}catch{console.error("Unexpected login error."),v("An unexpected error occurred. Try again. If the problem persists, try resetting your password.")}})()}catch{console.error("Failed to continue sign-in."),v("Failed to continue sign-in. Please try again.")}},children:["login"===g&&o("div",{className:$,children:[e("label",{htmlFor:"identifier",className:K,children:"Email Address / Phone Number"}),e("input",{id:"identifier",type:"text",value:u,onChange:e=>{const o=e.target.value;_(o)},autoComplete:"off",placeholder:"Email or Phone Number",className:H,onBlur:()=>{if(u){const e=xe(u)||Pe(u);O(e?"":"Please enter a valid email or phone number")}},required:!0}),e("p",{className:Y,children:"Phone numbers must include a country code e.g. +1"}),C&&e(Se,{identifier:u,onMagicLink:async()=>{try{if(!(await s.requestMagicLink()).ok)return void v("Failed to send magic link.");n("/magiclinks-sent",{state:{identifier:u}})}catch{console.error("Failed to send magic link."),v("Failed to send magic link.")}},onEmailOtp:async()=>{try{if(!(await s.requestLoginEmailOtp()).ok)return void v("Failed to send email code.");n("/verifyEmailOTP",{state:{flow:"login"}})}catch{console.error("Failed to send email OTP."),v("Failed to send email code.")}},onPhoneOtp:async()=>{try{if(!(await s.requestLoginPhoneOtp()).ok)return void v("Failed to send OTP.");n("/verifyPhoneOTP",{state:{flow:"login"}})}catch{console.error("Failed to send phone OTP."),v("Failed to send OTP.")}},onPasskeyRetry:l?a:void 0,loginMethods:M}),S&&e("p",{className:Z,children:S})]}),"register"===g&&o(t,{children:[o("div",{className:$,children:[e("label",{htmlFor:"email",className:K,children:"Email Address"}),e("input",{id:"email",type:"email",value:m,onChange:e=>{const o=e.target.value;p(o)},autoComplete:"off",className:H,onBlur:()=>{if(m){const e=xe(m);N(e?"":"Please enter a valid email")}},required:!0}),P&&e("p",{className:Z,children:P})]}),e(ve,{phone:y,setPhone:b,phoneError:w,setPhoneError:x})]}),e("button",{type:"submit",className:Q,disabled:!("login"===g&&u?xe(u)||Pe(u):xe(m)&&Pe(y)),children:"login"===g?"Login":"Register"}),k&&e("p",{className:Z,children:k}),e("button",{type:"button",onClick:()=>f("login"===g?"register":"login"),className:X,children:"login"===g?"Don't have an account? Create one":"Already have an account? Sign in"})]})})]})})};var Te={container:"passKeyLogin-module__container___IUKxF",card:"passKeyLogin-module__card___2sKM1",title:"passKeyLogin-module__title___HZxvc",button:"passKeyLogin-module__button___FvR4I"};D(".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 Me=()=>{const t=h(),{handlePasskeyLogin:n}=q(),[i,r]=d("");return e("div",{className:Te.container,children:o("div",{className:Te.card,children:[e("h2",{className:Te.title,children:"Login with Passkey"}),e("button",{onClick:async()=>{r("");await n()?t("/"):r("Passkey sign-in could not be completed. Try another sign-in method.")},className:Te.button,children:"Use Passkey"}),i&&e("p",{className:Te.error,children:i})]})})};var Ae="registerPasskey-module__container___jqEh8",Ie="registerPasskey-module__card___MJAyC",Ee="registerPasskey-module__loading___Q4i1x",ze="registerPasskey-module__spinner___V1nhd",Le="registerPasskey-module__supported___ihTih",je="registerPasskey-module__title___vn2Qu",Fe="registerPasskey-module__description___AWmO-",Ue="registerPasskey-module__button___D3b4B",Be="registerPasskey-module__message___RiOw-",Re="registerPasskey-module__success___HP5aX",qe="registerPasskey-module__error___hGiqE";D(".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 Ge="deviceNameModal-module__overlay___fmdPd",De="deviceNameModal-module__modal___uoEda",Je="deviceNameModal-module__description___-HMTA",Ve="deviceNameModal-module__input___4vQMI",We="deviceNameModal-module__actions___KXw7b",$e="deviceNameModal-module__primary___9Ozlk",Ke="deviceNameModal-module__secondary___HILhc";D(".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 He=({isOpen:t,onCancel:n,onConfirm:i})=>{const[r,a]=d("");return t?e("div",{className:Ge,children:o("div",{className:De,children:[e("h3",{children:"Name This Device"}),e("p",{className:Je,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:Ve,autoFocus:!0}),o("div",{className:We,children:[e("button",{onClick:n,className:Ke,children:"Cancel"}),e("button",{onClick:()=>i(r.trim()),disabled:!r.trim(),className:$e,children:"Continue"})]})]})}):null},Ye=()=>{const{refreshSession:n}=q(),i=we(),{passkeySupported:r,loading:a}=Ne(),s=h(),[l,c]=d("idle"),[u,_]=d(""),[m,p]=d(!1),[g,f]=d(null);return o(t,{children:[e("div",{className:Ae,children:e("div",{className:Ie,children:o("div",a||!r?{className:Ee,children:[e("div",{className:ze}),e("span",{children:a?"Checking for Passkey Support...":"Passkeys are not supported on this device."})]}:{className:Le,children:[e("h2",{className:je,children:"Secure Your Account with a Passkey"}),e("p",{className:Fe,children:"Your device supports passkeys! Register one to skip passwords forever."}),e("button",{onClick:()=>{const{platform:e,browser:o,deviceInfo:t}=function(){const e=navigator.userAgent.toLowerCase();let o="unknown",t="unknown";return/iphone|ipad|ipod/.test(e)?o="ios":/android/.test(e)?o="android":/mac os/.test(e)?o="mac":/windows/.test(e)?o="windows":/linux/.test(e)&&(o="linux"),/chrome/.test(e)&&(t="chrome"),/safari/.test(e)&&!/chrome/.test(e)&&(t="safari"),/firefox/.test(e)&&(t="firefox"),/edg/.test(e)&&(t="edge"),{platform:o,browser:t,deviceInfo:`${o} • ${t}`}}();f({platform:e,browser:o,deviceInfo:t}),p(!0)},disabled:"loading"===l,className:Ue,children:"loading"===l?"Registering...":"Register Passkey"}),u&&e("p",{className:`${Be} ${"success"===l?Re:qe}`,children:u})]})})}),e(He,{isOpen:m,onCancel:()=>{p(!1),f(null)},onConfirm:async e=>{if(!g)return;const o={friendlyName:e,...g};c("loading");try{const e=await i.registerPasskey(o);if(!e.success)throw new Error(e.message);await n(),c("success"),_(e.message),s("/")}catch{console.error("Passkey registration failed."),c("error"),_("Error registering passkey.")}finally{p(!1),f(null)}}})]})};var Ze="verifyOTP-module__container___wgoDE",Qe="verifyOTP-module__card___3cs2p",Xe="verifyOTP-module__title___fZ-1d",eo="verifyOTP-module__subtitle___dGSu3",oo="verifyOTP-module__error___GEtlG",to="verifyOTP-module__success___46TjG",no="verifyOTP-module__form___jiGG-",io="verifyOTP-module__label___Zq5Mi",ro="verifyOTP-module__timer___smq-a",ao="verifyOTP-module__resend___PlmkG",so="verifyOTP-module__button___8pIuO",lo="verifyOTP-module__toggle___wbzVa";D(".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 co="otpInput-module__otpContainer___MUjby",uo="otpInput-module__otpInput___3YMVm";D(".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 _o=({length:o=6,value:t,inputMode:n="numeric",onChange:i,name:r="otp"})=>{const a=g([]),s=t.split("").concat(Array(o).fill("")).slice(0,o),l=(e,o)=>{var t;if(o.length>1)d(e,o);else if(!o||(t=o,"numeric"===n?/^\d$/.test(t):/^[a-zA-Z]$/.test(t))){const t=[...s];t[e]=o;const n=t.join("");i(n),o&&a.current[e+1]&&a.current[e+1]?.focus()}},d=(e,t)=>{let r=t;r="numeric"===n?t.replace(/\D/g,""):t.replace(/[^a-zA-Z]/g,"");const l=r.slice(0,o).split(""),d=[...s];l.forEach((t,n)=>{e+n<o&&(d[e+n]=t)}),i(d.join("")),a.current[Math.min(e+l.length,o-1)]?.focus()};return e("div",{className:co,role:"group","aria-label":"One-time password input",onPaste:e=>{e.preventDefault(),d(0,e.clipboardData.getData("text"))},children:s.map((t,d)=>e("input",{ref:e=>a.current[d]=e,type:"text",inputMode:"numeric"===n?"numeric":"text",autoComplete:"one-time-code",name:`${r}-${d}`,maxLength:1,value:t,className:uo,onChange:e=>l(d,e.target.value),onKeyDown:e=>((e,t)=>{if("Backspace"===t.key){t.preventDefault();const o=[...s];s[e]?(o[e]="",i(o.join(""))):e>0&&(o[e-1]="",i(o.join("")),a.current[e-1]?.focus())}"ArrowLeft"===t.key&&e>0&&a.current[e-1]?.focus(),"ArrowRight"===t.key&&e<o-1&&a.current[e+1]?.focus()})(d,e),"aria-label":`Digit ${d+1}`},d))})},mo=()=>{const t=h(),n=f(),{refreshSession:i}=q(),r="login"===n.state?.flow,[a,s]=d(""),[l,u]=d(null),[_,m]=d(""),[p,g]=d(!1),[y,b]=d(""),[k,v]=d(300),w=we(),x=async()=>{g(!0);try{if(!l){if((r?await w.verifyLoginPhoneOtp(a):await w.verifyPhoneOtp(a)).ok){if(r)return await i(),void t("/");u(!0)}else m("Verification failed.")}}catch{console.error("Phone OTP verification failed."),m("Verification failed.")}g(!1)},P=async()=>{b(""),await(async()=>{m(""),(r?await w.requestLoginPhoneOtp():await w.requestPhoneOtp()).ok?b("Verification SMS has been resent."):m("Failed to send SMS code. If this persists, refresh the page and try again.")})(),b("Verification SMS has been resent.")};return c(()=>{const e=setInterval(()=>{v(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),c(()=>{l&&!r&&(async()=>{(await w.requestEmailOtp()).ok?t("/verifyEmailOTP"):m("Failed to send Email code. If this persists, refresh the page and try registering again.")})()},[l,r,t,w]),e("div",{className:Ze,children:o("div",{className:Qe,children:[e("h2",{className:Xe,children:"Verify Your Phone Number"}),e("p",{className:eo,children:"Enter the code sent to your phone number."}),_&&e("p",{className:oo,children:_}),y&&e("p",{className:to,children:y}),o("form",{onSubmit:async e=>{if(e.preventDefault(),m(""),6===a.length){g(!0);try{await x()}catch{m("Unexpected error occurred.")}finally{g(!1)}}else m("Please enter a valid code.")},className:no,children:[o("div",{children:[o("label",{htmlFor:"phoneCode",className:io,children:["Phone Verification Code ",(S=l,!0===S?e("span",{className:"text-green-400 ml-2",children:"✅"}):!1===S?e("span",{className:"text-red-400 ml-2",children:"❌"}):null)," -"," ",o("span",{className:ro,children:["Code expires in: ",(N=k,`${Math.floor(N/60).toString().padStart(2,"0")}:${(N%60).toString().padStart(2,"0")}`)]})]}),e(_o,{length:6,value:a,onChange:s}),e("button",{type:"button",onClick:()=>P(),className:ao,children:"Resend code to phone"})]}),e("button",{type:"submit",className:so,children:p?"Verifying...":"Verify & Continue"}),e("button",{type:"button",onClick:()=>t("/login"),className:lo,children:"Back to login"})]})]})});var N,S},po=()=>{const t=h(),n=f(),{refreshSession:i}=q(),r=we(),{passkeySupported:a}=Ne(),s="login"===n.state?.flow,[l,u]=d(!1),[_,m]=d(""),[p,g]=d(300),[y,b]=d(""),[k,v]=d("");return c(()=>{const e=setInterval(()=>{g(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),e("div",{className:Ze,children:o("div",{className:Qe,children:[e("h2",{className:Xe,children:"Verify Your Email"}),e("p",{className:eo,children:"We sent you a verification email. Enter the code below."}),y&&e("p",{className:oo,children:y}),k&&e("p",{className:to,children:k}),o("form",{onSubmit:async e=>{if(e.preventDefault(),b(""),6===_.length){u(!0);try{if(!(s?await r.verifyLoginEmailOtp(_):await r.verifyEmailOtp(_)).ok)return void b("Verification failed.");if(s)return await i(),void t("/");a?t("/registerPasskey"):(await i(),t("/"))}catch{console.error("Email OTP verification failed."),b("Verification failed.")}finally{u(!1)}}else b("Please enter a valid code.")},className:no,children:[o("div",{children:[o("label",{htmlFor:"emailCode",className:io,children:["Email Verification Code",o("span",{className:ro,children:[" ","— Code expires in ",(w=p,`${Math.floor(w/60).toString().padStart(2,"0")}:${(w%60).toString().padStart(2,"0")}`)]})]}),e(_o,{length:6,value:_,onChange:m,inputMode:"text"}),e("button",{type:"button",onClick:async()=>{b(""),v("");(s?await r.requestLoginEmailOtp():await r.requestEmailOtp()).ok?v("Verification email has been resent."):b("Failed to send Email code. If this persists, refresh the page and try again.")},className:ao,children:"Resend code to email"})]}),e("button",{type:"submit",className:so,disabled:l,children:l?"Verifying...":"Verify & Continue"}),e("button",{type:"button",onClick:()=>t("/login"),className:lo,children:"Back to login"})]})]})});var w};var go={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"};D(".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 ho=()=>{const[t]=y(),n=h(),i=t.get("token"),[r,a]=d(""),[s,l]=d(""),u=we();return c(()=>{let e=!0,o=null,t=null;return(async()=>{if(!i)return e&&a("Missing token for verification."),void console.error("No magic-link token found.");try{if(!(await u.verifyMagicLink(i)).ok)return console.error("Failed to verify token"),void(e&&a("Failed to verify token"))}catch{console.error("Failed to verify magic-link token.")}e&&(o=new BroadcastChannel("seamless-auth"),o.postMessage({type:"MAGIC_LINK_AUTH_SUCCESS"}),l("You have been verified on the device and browser that initiated this request"),t=setTimeout(()=>{e&&n("/")},900))})(),()=>{e=!1,o?.close(),t&&clearTimeout(t)}},[i,u,n]),e("div",{className:go.container,children:o("div",{className:go.card,children:[e("h1",{className:go.title,children:"Verifying your login"}),o("div",{className:go.verificationContent,children:[!s&&!r&&e("div",{className:go.spinner}),s&&e("div",{className:go.successIcon,children:e("svg",{viewBox:"0 0 24 24",className:go.checkIcon,fill:"none",stroke:"currentColor",strokeWidth:"2",children:e("path",{d:"M5 13l4 4L19 7"})})}),!s&&!r&&e("p",{className:go.helperText,children:"Please wait while we securely verify your sign-in link."}),s&&e("p",{className:go.successText,children:"Login verified. Redirecting…"}),r&&e("p",{className:go.error,children:r})]})]})})};var fo="magiclink-module__container___45zcA",yo="magiclink-module__card___Au9oN",bo="magiclink-module__iconWrapper___k5ndr",ko="magiclink-module__mailIcon___Pwb7q",vo="magiclink-module__iconRing___bdLvf",wo="magiclink-module__heading___b9cre",xo="magiclink-module__message___kiVFj",Po="magiclink-module__identifier___JtcFM",No="magiclink-module__helperText___7Mlfh",So="magiclink-module__actions___64I-3",Oo="magiclink-module__secondaryButton___BntAI",Co="magiclink-module__cooldown___Ib4rm",To="magiclink-module__linkButton___maJiv";D(".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 Mo=()=>{const{refreshSession:t}=q(),n=h(),i=f(),r=we(),a=i.state?.identifier,[s,l]=d(30);c(()=>{const e=setInterval(()=>{l(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]);return c(()=>{const e=new BroadcastChannel("seamless-auth");return e.onmessage=async e=>{if("MAGIC_LINK_AUTH_SUCCESS"===e.data?.type){200===(await r.checkMagicLink()).status&&(await t(),n("/"))}},()=>{e.close()}},[r,n,t]),c(()=>{const e=setInterval(async()=>{try{200===(await r.checkMagicLink()).status&&(await t(),n("/"))}catch{}},5e3);return()=>clearInterval(e)},[r,t,n]),e("div",{className:fo,children:o("div",{className:yo,children:[o("div",{className:bo,children:[e("div",{className:vo}),o("svg",{className:ko,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:wo,children:"Check your email"}),e("p",{className:xo,children:"If an account exists for this address, we sent a secure sign-in link."}),a&&e("div",{className:Po,children:a}),e("p",{className:No,children:"Open the email and click the link to finish signing in."}),e("p",{className:No,children:"Didn’t receive anything? Check your spam folder or try creating a new account."}),o("div",{className:So,children:[e("button",{className:Oo,disabled:s>0,onClick:async()=>{s>0||(await r.requestMagicLink(),l(30))},children:"Resend link"}),s>0&&o("div",{className:Co,children:["Available in ",s,"s"]}),e("button",{className:To,onClick:()=>n("/login"),children:"Change email or phone"})]})]})})},Ao=()=>o(b,{children:[e(k,{path:"/login",element:e(Ce,{})}),e(k,{path:"/passKeyLogin",element:e(Me,{})}),e(k,{path:"/verifyPhoneOTP",element:e(mo,{})}),e(k,{path:"/verifyEmailOTP",element:e(po,{})}),e(k,{path:"/verify-magiclink",element:e(ho,{})}),e(k,{path:"/registerPasskey",element:e(Ye,{})}),e(k,{path:"/magiclinks-sent",element:e(Mo,{})}),e(k,{path:"*",element:e(v,{to:"/login",replace:!0})})]});export{G as AuthProvider,Ao as AuthRoutes,F as createSeamlessAuthClient,S as encodePrfSalt,A as extractPasskeyPrfResult,B as hasScopedRole,T as isPasskeyPrfSupported,U as roleGrantsAccess,q as useAuth,we as useAuthClient,Ne as usePasskeySupport};
1
+ import{jsx as e,jsxs as o,Fragment as t}from"react/jsx-runtime";import{bufferToBase64URLString as n,browserSupportsWebAuthn as i,base64URLStringToBuffer as r,startAuthentication as a,startRegistration as s,WebAuthnError as l}from"@simplewebauthn/browser";import{useState as d,useEffect as c,createContext as u,useMemo as _,useCallback as m,useContext as p,useRef as g}from"react";import{useNavigate as h,useLocation as f,useSearchParams as y,Routes as b,Route as k,Navigate as v}from"react-router-dom";import w,{AsYouType as x,parsePhoneNumberFromString as P}from"libphonenumber-js";function N(e){if(e instanceof ArrayBuffer)return e;const o=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),t=new Uint8Array(o.byteLength);return t.set(o),t.buffer}function S(e){return"string"==typeof e?e:n(N(e))}function O(e){return"string"==typeof e?r(e):e}function C(e){return{...e.credentialId?{credentialId:e.credentialId}:{},prf:{salt:S(e.salt),...e.secondSalt?{secondSalt:S(e.secondSalt)}:{}}}}async function T(){return!!i()&&(("undefined"==typeof window||!1!==window.isSecureContext)&&(void 0!==globalThis.PublicKeyCredential&&"undefined"!=typeof navigator&&"function"==typeof navigator.credentials?.get))}function M(e){const o=e,t=o.extensions?.prf?.eval;return t?{...o,extensions:{...o.extensions,prf:{...o.extensions?.prf,eval:{...t,...t.first?{first:O(t.first)}:{},...t.second?{second:O(t.second)}:{}}}}}:e}function A(e){const o=e.clientExtensionResults,t=o?.prf?.results?.first;if(!t)return null;const i=(r=t)instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength);var r;return{credentialId:e.id,output:i,outputBase64url:n(N(i))}}function I(e){const o=e.clientExtensionResults;return o?.prf?.results?{...e,clientExtensionResults:{...e.clientExtensionResults,prf:{...o.prf,results:void 0}}}:e}function E(e){const o=e.clientExtensionResults;return!0===o?.prf?.enabled}const z=e=>({success:!1,fresh:!1,method:null,verifiedAt:null,expiresAt:null,maxAgeSeconds:0,message:e}),L=e=>({...z(e),credentialId:null,prf:null});function j(e){return e?{method:"POST",body:JSON.stringify(C(e))}:{method:"POST"}}const F=e=>{const o=(e=>{const{authHost:o}=e;return async function(e,t){const n=`${o?.replace(/\/+$/,"")??""}/auth${e.startsWith("/")?e:`/${e}`}`,i={...t,credentials:"include",headers:{"Content-Type":"application/json",...t?.headers}},r=await fetch(n,i);return r.ok||console.warn("Auth fetch failed:",r.status),r}})({authHost:e.apiHost});return{getCurrentUser:()=>o("users/me",{method:"GET"}),login:e=>o("/login",{method:"POST",body:JSON.stringify(e)}),loginWithPasskey:async e=>{const t=await o("/webAuthn/login/start",{...j(e?.prf)});if(!t.ok)return{success:!1,mfaRequired:!1,message:"Failed to start passkey login."};try{const e=await t.json(),n=await a({optionsJSON:M(e)}),i=A(n),r=I(n),s=await o("/webAuthn/login/finish",{method:"POST",body:JSON.stringify({assertionResponse:r})});if(!s.ok)return{success:!1,mfaRequired:!1,message:"Failed to verify passkey."};const l=await s.json();return"Success"===l.message?{success:!l.mfaLogin,mfaRequired:Boolean(l.mfaLogin),message:l.mfaLogin?"Passkey login requires MFA.":"Passkey login succeeded.",...i?{prf:i}:{}}:{success:!1,mfaRequired:!1,message:l.message??"Passkey login failed."}}catch{return console.error("Passkey login error."),{success:!1,mfaRequired:!1,message:"Passkey login failed."}}},logout:(e={})=>o("all_sessions"===e.scope?"/logout/all":"/logout",{method:"DELETE"}),logoutAllSessions:()=>o("/logout/all",{method:"DELETE"}),deleteUser:()=>o("/users/delete",{method:"DELETE"}),register:e=>o("/registration/register",{method:"POST",body:JSON.stringify({email:e.email,phone:e.phone,...e.bootstrapToken?{bootstrapToken:e.bootstrapToken}:{}})}),requestPhoneOtp:()=>o("/otp/generate-phone-otp",{method:"GET"}),verifyPhoneOtp:e=>o("/otp/verify-phone-otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({verificationToken:e}),credentials:"include"}),requestLoginPhoneOtp:()=>o("/otp/generate-login-phone-otp",{method:"GET"}),verifyLoginPhoneOtp:e=>o("/otp/verify-login-phone-otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({verificationToken:e}),credentials:"include"}),requestEmailOtp:()=>o("/otp/generate-email-otp",{method:"GET",headers:{"Content-Type":"application/json"}}),verifyEmailOtp:e=>o("/otp/verify-email-otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({verificationToken:e}),credentials:"include"}),requestLoginEmailOtp:()=>o("/otp/generate-login-email-otp",{method:"GET",headers:{"Content-Type":"application/json"}}),verifyLoginEmailOtp:e=>o("/otp/verify-login-email-otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({verificationToken:e}),credentials:"include"}),requestMagicLink:()=>o("/magic-link",{method:"GET"}),checkMagicLink:()=>o("/magic-link/check",{method:"GET",headers:{"Content-Type":"application/json"}}),verifyMagicLink:e=>o(`/magic-link/verify/${e}`,{method:"GET",headers:{"Content-Type":"application/json"}}),listOAuthProviders:async()=>{const e=await o("/oauth/providers",{method:"GET"});if(!e.ok)throw new Error("Failed to list OAuth providers.");return e.json()},startOAuthLogin:async e=>{const t=await o(`/oauth/${encodeURIComponent(e.providerId)}/start`,{method:"POST",body:JSON.stringify({...e.redirectUri?{redirectUri:e.redirectUri}:{},...e.returnTo?{returnTo:e.returnTo}:{}})});if(!t.ok)throw new Error("Failed to start OAuth login.");return t.json()},finishOAuthLogin:e=>o(`/oauth/${encodeURIComponent(e.providerId)}/callback`,{method:"POST",body:JSON.stringify({code:e.code,state:e.state})}),registerPasskey:async e=>{const t=function(e){return"metadata"in e?e:{metadata:e}}(e),n=await o(function(e){const o=new URLSearchParams;e.requirePrf?o.set("requirePrf","true"):e.requestPrf&&o.set("requestPrf","true");const t=o.toString();return"/webAuthn/register/start"+(t?`?${t}`:"")}(t),{method:"GET",headers:{"Content-Type":"application/json"},credentials:"include"});if(!n.ok)return{success:!1,message:"Failed to fetch passkey registration challenge."};const i=await n.json();let r;try{r=await s({optionsJSON:i})}catch(e){return e instanceof l?{success:!1,message:e.name}:(console.error("Passkey registration error."),{success:!1,message:"Passkey registration failed."})}return(await o("/webAuthn/register/finish",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attestationResponse:r,metadata:{...t.metadata,prfCapable:E(r)}}),credentials:"include"})).ok?{success:!0,message:"Passkey registered successfully.",credentialId:r.id,prfCapable:E(r)}:{success:!1,message:"Verification failed."}},isPasskeyPrfSupported:T,getStepUpStatus:()=>o("/step-up/status",{method:"GET"}),verifyStepUpWithPasskey:async()=>{const e=await o("/step-up/webauthn/start",{method:"POST"});if(!e.ok)return z("Failed to start step-up authentication.");try{const t=await e.json(),n=I(await a({optionsJSON:M(t)})),i=await o("/step-up/webauthn/finish",{method:"POST",body:JSON.stringify({assertionResponse:n})});if(!i.ok)return z("Failed to verify step-up authentication.");const r=await i.json(),s="webauthn"===r.method?r.method:null,l="Success"===r.message&&!0===r.fresh&&"webauthn"===s;return{success:l,fresh:Boolean(r.fresh),method:s,verifiedAt:r.verifiedAt??null,expiresAt:r.expiresAt??null,maxAgeSeconds:r.maxAgeSeconds??0,message:l?"Step-up authentication succeeded.":r.message??"Step-up authentication failed."}}catch{return console.error("Step-up authentication error."),z("Step-up authentication failed.")}},verifyStepUpWithPasskeyPrf:async e=>{const t=await o("/step-up/webauthn/start",{...j(e)});if(!t.ok)return L("Failed to start step-up authentication.");try{const e=await t.json(),n=await a({optionsJSON:M(e)}),i=A(n),r=I(n);if(!i)return L("Passkey did not return PRF output.");const s=await o("/step-up/webauthn/finish",{method:"POST",body:JSON.stringify({assertionResponse:r})});if(!s.ok)return L("Failed to verify step-up authentication.");const l=await s.json(),d="webauthn"===l.method?l.method:null,c="Success"===l.message&&!0===l.fresh&&"webauthn"===d;return{success:c,fresh:Boolean(l.fresh),method:d,verifiedAt:l.verifiedAt??null,expiresAt:l.expiresAt??null,maxAgeSeconds:l.maxAgeSeconds??0,message:c?"Step-up authentication succeeded.":l.message??"Step-up authentication failed.",credentialId:i.credentialId,prf:i}}catch{return console.error("Step-up authentication error."),L("Step-up authentication failed.")}},updateCredential:e=>o("users/credentials",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),deleteCredential:e=>o("users/credentials",{method:"DELETE",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e})}),listOrganizations:()=>o("/organizations",{method:"GET"}),createOrganization:e=>o("/organizations",{method:"POST",body:JSON.stringify(e)}),getOrganization:e=>o(`/organizations/${encodeURIComponent(e)}`,{method:"GET"}),updateOrganization:(e,t)=>o(`/organizations/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify(t)}),switchOrganization:e=>o(`/organizations/${encodeURIComponent(e)}/switch`,{method:"POST"}),listOrganizationMembers:e=>o(`/organizations/${encodeURIComponent(e)}/members`,{method:"GET"}),addOrganizationMember:(e,t)=>o(`/organizations/${encodeURIComponent(e)}/members`,{method:"POST",body:JSON.stringify(t)}),updateOrganizationMember:(e,t,n)=>o(`/organizations/${encodeURIComponent(e)}/members/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify(n)}),removeOrganizationMember:(e,t)=>o(`/organizations/${encodeURIComponent(e)}/members/${encodeURIComponent(t)}`,{method:"DELETE"})}};function U(e,o){const t=e.trim(),n=o.trim();if(!t||!n)return!1;if(t===n)return!0;if(t.endsWith(":*")){const e=t.slice(0,-2);return n===e||n.startsWith(`${e}:`)}if(!n.includes(":"))return!1;if(!t.includes(":"))return n.startsWith(`${t}:`);const i=t.split(":"),r=n.split(":"),a=i[i.length-1],s=r[r.length-1],l=i.slice(0,-1),d=r.slice(0,-1);return"write"===a&&"read"===s&&l.length===d.length&&l.every((e,o)=>e===d[o])}function B(e,o){if(!Array.isArray(e))return!1;const t=e.filter(e=>"string"==typeof e);return(Array.isArray(o)?o:[o]).some(e=>t.some(o=>U(o,e)))}const R=u(void 0),q=()=>{const e=p(R);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e},G=({children:o,apiHost:t,autoDetectPreviousSignin:n=!0})=>{const[i,r]=d(null),[a,s]=d([]),[l,u]=d([]),[p,g]=d(null),[h,f]=d(null),[y,b]=d(!1),[k,v]=d(!0),{hasSignedInBefore:w,markSignedIn:x}=function(e="seamlessauth_seen"){const[o,t]=d(!1);return c(()=>{try{"true"===localStorage.getItem(e)&&t(!0)}catch{}},[e]),{hasSignedInBefore:o,markSignedIn:()=>{try{localStorage.setItem(e,"true"),t(!0)}catch{}}}}(),P=_(()=>F({apiHost:t}),[t]),N=m(()=>{b(!1),r(null),s([]),u([]),g(null),f(null)},[]),S=m(async()=>{try{await P.logout()}catch{console.error("Error during logout")}finally{N()}},[P,N]),O=m(async()=>{try{await P.logoutAllSessions()}catch{console.error("Error during logout")}finally{N()}},[P,N]),C=m(async()=>{v(!0);try{const e=await P.getCurrentUser();if(e.ok){const{user:o,credentials:t,organizations:n,activeOrganization:i}=await e.json();r(o),s(t??[]),u(n??[]),g(i??null),b(!0)}else await S()}catch{await S()}finally{v(!1)}},[P,S]),T=m(async()=>{const e=await P.getStepUpStatus();if(!e.ok)return f(null),null;const o=await e.json();return f(o),o},[P]),M=m(async()=>{const e=await P.verifyStepUpWithPasskey();return e.success&&f({fresh:e.fresh,method:e.method,verifiedAt:e.verifiedAt,expiresAt:e.expiresAt,maxAgeSeconds:e.maxAgeSeconds}),e},[P]),A=m(async e=>{const o=await P.verifyStepUpWithPasskeyPrf(e);return o.success&&f({fresh:o.fresh,method:o.method,verifiedAt:o.verifiedAt,expiresAt:o.expiresAt,maxAgeSeconds:o.maxAgeSeconds}),o},[P]);return c(()=>{C()},[C]),c(()=>{i&&y&&x()},[i,y,x]),e(R.Provider,{value:{user:i,logout:S,logoutAllSessions:O,refreshSession:C,loading:k,deleteUser:async()=>{try{if((await P.deleteUser()).ok)return r(null),b(!1),s([]),u([]),g(null),void f(null);throw new Error("Could not delete user.")}catch{throw console.error("Something went wrong deleting user."),new Error("Could not delete user.")}},isAuthenticated:y,hasRole:e=>i?.roles?.includes(e),hasScopedRole:e=>i?B(i.roles,e):void 0,apiHost:t,markSignedIn:x,hasSignedInBefore:!!n&&w,credentials:a,organizations:l,activeOrganization:p,switchOrganization:async e=>{if(!(await P.switchOrganization(e)).ok)throw new Error("Failed to switch organization");await C()},listOAuthProviders:()=>P.listOAuthProviders(),startOAuthLogin:e=>P.startOAuthLogin(e),finishOAuthLogin:async e=>{if(!(await P.finishOAuthLogin(e)).ok)throw new Error("Failed to finish OAuth login");await C()},stepUpStatus:h,updateCredential:async e=>{const o=await P.updateCredential({friendlyName:e.friendlyName,id:e.id});if(o.ok){const e=await o.json(),t=e.credential??e;return s(e=>e.map(e=>e.id===t.id?{...e,...t}:e)),e}throw new Error("Failed to update credential")},deleteCredential:async e=>{const o=await P.deleteCredential(e);if(o.ok){const t=await o.json();return s(o=>o.filter(o=>o.id!==e)),t}throw new Error("Failed to delete credential")},login:async(e,o)=>P.login({identifier:e,passkeyAvailable:o}),handlePasskeyLogin:async()=>{const e=await P.loginWithPasskey();return e.mfaRequired?(console.warn("Passkey login requested MFA, but the built-in MFA route is not currently available."),!1):e.success?(await C(),!0):(console.error("Passkey login failed."),!1)},refreshStepUpStatus:T,verifyStepUpWithPasskey:M,verifyStepUpWithPasskeyPrf:A},children:o})};function D(e,o){void 0===o&&(o={});var t=o.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===t&&n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var J="login-module__container___YggDx",V="login-module__card___Ub-Py",W="login-module__heading___neEqb",$="login-module__inputGroup___P6qgS",K="login-module__label___mx5vu",H="login-module__input___U07lW",Y="login-module__helperText___kDQ4-",Z="login-module__error___40zxh",Q="login-module__button___0kFBs",X="login-module__toggle___1JiG1",ee="login-module__underline___gs-RS",oe="login-module__phoneRow___oeNtq",te="login-module__select___rRV1O",ne="login-module__phoneInput___2MPQC",ie="login-module__fallbackCard___HdIk-",re="login-module__fallbackHeader___-il2v",ae="login-module__fallbackDescription___ea5EB",se="login-module__fallbackActions___AD3ni",le="login-module__fallbackActionButton___lFgWf",de="login-module__actionTitle___ycrMp",ce="login-module__actionSubtext___opaIV",ue="login-module__linkButton___5lsoe";D(".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}");var _e="termsModal-module__overlay___-j6r5",me="termsModal-module__modal___4PxZV",pe="termsModal-module__header___B7wxb",ge="termsModal-module__title___Sucwt",he="termsModal-module__closeBtn___evIs5",fe="termsModal-module__content___5BDhN",ye="termsModal-module__link___oPZrU";D(".termsModal-module__overlay___-j6r5{align-items:center;background-color:rgba(0,0,0,.7);display:flex;inset:0;justify-content:center;position:fixed;z-index:999}.termsModal-module__modal___4PxZV{background-color:#1a1a1a;border-radius:8px;box-shadow:0 10px 25px rgba(0,0,0,.4);color:#fff;max-height:80vh;max-width:640px;outline:none;overflow-y:auto;padding:24px;width:100%}.termsModal-module__header___B7wxb{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.termsModal-module__title___Sucwt{color:#60a5fa;font-size:1.25rem;font-weight:700}.termsModal-module__closeBtn___evIs5{background:none;border:none;color:#ccc;cursor:pointer;font-size:1.75rem}.termsModal-module__closeBtn___evIs5:hover{color:#fff}.termsModal-module__content___5BDhN{color:#d1d5db;font-size:.9rem;line-height:1.6}.termsModal-module__link___oPZrU{color:#60a5fa;text-decoration:underline}.termsModal-module__link___oPZrU:hover{text-decoration:none}");const be=({isOpen:t,onClose:n})=>{const i=g(null);return c(()=>{const e=e=>{"Escape"===e.key&&n()};return t&&(document.addEventListener("keydown",e),i.current?.focus()),()=>{document.removeEventListener("keydown",e)}},[t,n]),t?e("div",{className:_e,role:"dialog","aria-modal":"true","aria-labelledby":"terms-title",children:o("div",{className:me,tabIndex:-1,ref:i,children:[o("div",{className:pe,children:[e("h2",{id:"terms-title",className:ge,children:"SMS Terms & Conditions"}),e("button",{onClick:n,className:he,children:"×"})]}),o("div",{className:fe,children:[o("p",{children:[e("strong",{children:"Effective Date:"})," June 01, 2025"]}),e("p",{children:"By providing your phone number to SeamlessAuth, a Fells Code LLC product, you agree to receive SMS messages for identity verification, authentication, and account security."}),o("p",{children:[e("strong",{children:"1. Purpose:"})," SMS is used only for account security (OTP, MFA). No marketing messages."]}),o("p",{children:[e("strong",{children:"2. Frequency:"})," Based on login and account activity."]}),o("p",{children:[e("strong",{children:"3. Opt-Out:"})," Contact support@seamlessauth.com to opt out."]}),o("p",{children:[e("strong",{children:"4. Fees:"})," Message and data rates may apply."]}),o("p",{children:[e("strong",{children:"5. Supported Carriers:"})," Most major providers supported, delivery not guaranteed."]}),o("p",{children:[e("strong",{children:"6. Privacy:"})," Your phone number is not shared or sold. See our Privacy Policy."]}),o("p",{children:[e("strong",{children:"7. Changes:"})," Terms may be updated with notice on this page."]}),o("p",{children:["Questions? Email us at"," ",e("a",{className:ye,href:"mailto:support@seamlessauth.com",children:"support@seamlessauth.com"}),"."]})]})]})}):null},ke=[{code:"US",name:"United States",dialCode:"+1",flag:"🇺🇸"},{code:"CA",name:"Canada",dialCode:"+1",flag:"🇨🇦"},{code:"GB",name:"United Kingdom",dialCode:"+44",flag:"🇬🇧"},{code:"IN",name:"India",dialCode:"+91",flag:"🇮🇳"},{code:"AU",name:"Australia",dialCode:"+61",flag:"🇦🇺"}];function ve({phone:t,setPhone:n,phoneError:i,setPhoneError:r}){const[a,s]=d(!1),[l,u]=d(ke[0]);c(()=>{const e=function(){try{const e=Intl.DateTimeFormat().resolvedOptions().locale||"en-US",o=e.split("-")[1]?.toUpperCase()||"US";return ke.find(e=>e.code===o)||ke[0]}catch{return ke[0]}}();u(e)},[]);return o("div",{className:$,children:[e("label",{id:"phone",className:K,children:"Phone Number"}),o("div",{className:oe,children:[e("select",{value:l.code,onChange:e=>{const o=ke.find(o=>o.code===e.target.value);if(o){u(o);const e=t.replace(/^\+\d+/,""),i=(new x).input(o.dialCode+e);n(i)}},className:te,children:ke.map(e=>o("option",{value:e.code,children:[e.flag," (",e.dialCode,")"]},e.code))}),e("input",{"aria-labelledby":"phone",type:"tel",value:t,onChange:e=>{const o=e.target.value,t=o.startsWith(l.dialCode)?o:l.dialCode+o,a=(new x).input(t);n(a),i&&r("")},onBlur:()=>{if(t){const e=P(t),o=e?.isValid();r(o?"":"Please enter a valid phone number.")}},autoComplete:"off",placeholder:"(555) 123-4567",className:ne})]}),o("p",{className:Y,children:["By signing up, you agree to our"," ",e("button",{onClick:()=>s(!0),className:ee,children:"SMS Terms & Conditions"}),"."]}),i&&e("p",{className:Z,children:i}),e(be,{isOpen:a,onClose:()=>s(!1)})]})}const we=()=>{const{apiHost:e}=q();return _(()=>F({apiHost:e}),[e])},xe=e=>{if("string"!=typeof e)return!1;const o=e.trim();if(o.length<3||o.length>320)return!1;const t=o.split("@");if(2!==t.length)return!1;const[n,i]=t;return!(!/^[A-Za-z0-9._%+-]+$/.test(n)||n.startsWith(".")||n.endsWith(".")||n.includes(".."))&&!(!/^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/.test(i)||i.startsWith("-")||i.endsWith("-")||i.startsWith(".")||i.endsWith(".")||i.includes(".."))},Pe=e=>{const o=w(e);return o?.isValid()||!1};const Ne=()=>{const[e,o]=d(!1),[t,n]=d(!0);return c(()=>{let e=!0;return(async()=>{try{const t=await async function(){if(window.PublicKeyCredential&&"function"==typeof window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable)try{return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()}catch{return console.error("Error checking passkey support."),!1}return!1}();e&&o(t)}catch{e&&o(!1)}finally{e&&n(!1)}})(),()=>{e=!1}},[]),{passkeySupported:e,loading:t}},Se=({identifier:t,onMagicLink:n,onEmailOtp:i,onPhoneOtp:r,onPasskeyRetry:a,loginMethods:s})=>{const l=new Set(s??["passkey","magic_link","phone_otp"]),d=l.has("magic_link")&&xe(t),c=l.has("email_otp")&&Boolean(i)&&xe(t),u=l.has("phone_otp")&&Pe(t),_=l.has("passkey")&&Boolean(a);return d||c||u||_?o("div",{className:ie,children:[e("div",{className:re,children:"Choose a sign-in method"}),e("p",{className:ae,children:"Choose another secure sign-in method."}),o("div",{className:se,children:[d&&o("button",{type:"button",className:le,onClick:n,children:[e("span",{className:de,children:"Email Magic Link"}),e("span",{className:ce,children:"Send a secure sign-in link to your email"})]}),c&&o("button",{type:"button",className:le,onClick:i,children:[e("span",{className:de,children:"Email Code"}),e("span",{className:ce,children:"Receive a one-time code by email"})]}),u&&o("button",{type:"button",className:le,onClick:r,children:[e("span",{className:de,children:"Text Message Code"}),e("span",{className:ce,children:"Receive a one-time code via SMS"})]})]}),_&&e("button",{type:"button",className:ue,onClick:a,children:"Try passkey anyway"})]}):null},Oe=["passkey","magic_link","phone_otp"],Ce=()=>{const n=h(),{hasSignedInBefore:i,login:r,handlePasskeyLogin:a}=q(),s=we(),{passkeySupported:l}=Ne(),[u,_]=d(""),[m,p]=d(""),[g,f]=d("register"),[y,b]=d(""),[k,v]=d(""),[w,x]=d(""),[P,N]=d(""),[S,O]=d(""),[C,T]=d(!1),[M,A]=d(Oe),[I,E]=d(null);c(()=>{i&&f("login");const e=new URLSearchParams(window.location.search).get("bootstrapToken");e&&e.length>10&&E(e)},[i]);return e("div",{className:J,children:o("div",{className:V,children:[e("h2",{className:W,children:"login"===g?"Sign In":"Create Account"}),e(t,{children:o("form",{onSubmit:async e=>{e.preventDefault(),v(""),T(!1);try{if("login"===g){const e=await r(u,l),o=await(async e=>{if(!e||"function"!=typeof e.json)return null;try{return await e.json()}catch{return null}})(e),t=o?.loginMethods?.length?o.loginMethods:Oe;if(A(t),e?.ok&&l&&t.includes("passkey")){return await a()?void n("/"):(T(!0),void v("Passkey sign-in could not be completed. Choose another sign-in method."))}return e?.ok?void T(!0):void v("Failed to start sign-in. Please try again.")}"register"===g&&await(async()=>{v("");try{const e=await s.register({email:m,phone:y,bootstrapToken:I});if(!e.ok)return void v("Failed to register. Please try again.");if("Success"===(await e.json()).message)return void n("/verifyEmailOTP");v("An unexpected error occurred. Try again. If the problem persists, try resetting your password.")}catch{console.error("Unexpected login error."),v("An unexpected error occurred. Try again. If the problem persists, try resetting your password.")}})()}catch{console.error("Failed to continue sign-in."),v("Failed to continue sign-in. Please try again.")}},children:["login"===g&&o("div",{className:$,children:[e("label",{htmlFor:"identifier",className:K,children:"Email Address / Phone Number"}),e("input",{id:"identifier",type:"text",value:u,onChange:e=>{const o=e.target.value;_(o)},autoComplete:"off",placeholder:"Email or Phone Number",className:H,onBlur:()=>{if(u){const e=xe(u)||Pe(u);O(e?"":"Please enter a valid email or phone number")}},required:!0}),e("p",{className:Y,children:"Phone numbers must include a country code e.g. +1"}),C&&e(Se,{identifier:u,onMagicLink:async()=>{try{if(!(await s.requestMagicLink()).ok)return void v("Failed to send magic link.");n("/magiclinks-sent",{state:{identifier:u}})}catch{console.error("Failed to send magic link."),v("Failed to send magic link.")}},onEmailOtp:async()=>{try{if(!(await s.requestLoginEmailOtp()).ok)return void v("Failed to send email code.");n("/verifyEmailOTP",{state:{flow:"login"}})}catch{console.error("Failed to send email OTP."),v("Failed to send email code.")}},onPhoneOtp:async()=>{try{if(!(await s.requestLoginPhoneOtp()).ok)return void v("Failed to send OTP.");n("/verifyPhoneOTP",{state:{flow:"login"}})}catch{console.error("Failed to send phone OTP."),v("Failed to send OTP.")}},onPasskeyRetry:l?a:void 0,loginMethods:M}),S&&e("p",{className:Z,children:S})]}),"register"===g&&o(t,{children:[o("div",{className:$,children:[e("label",{htmlFor:"email",className:K,children:"Email Address"}),e("input",{id:"email",type:"email",value:m,onChange:e=>{const o=e.target.value;p(o)},autoComplete:"off",className:H,onBlur:()=>{if(m){const e=xe(m);N(e?"":"Please enter a valid email")}},required:!0}),P&&e("p",{className:Z,children:P})]}),e(ve,{phone:y,setPhone:b,phoneError:w,setPhoneError:x})]}),e("button",{type:"submit",className:Q,disabled:!("login"===g&&u?xe(u)||Pe(u):xe(m)&&(!y||Pe(y))),children:"login"===g?"Login":"Register"}),k&&e("p",{className:Z,children:k}),e("button",{type:"button",onClick:()=>f("login"===g?"register":"login"),className:X,children:"login"===g?"Don't have an account? Create one":"Already have an account? Sign in"})]})})]})})};var Te={container:"passKeyLogin-module__container___IUKxF",card:"passKeyLogin-module__card___2sKM1",title:"passKeyLogin-module__title___HZxvc",button:"passKeyLogin-module__button___FvR4I"};D(".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 Me=()=>{const t=h(),{handlePasskeyLogin:n}=q(),[i,r]=d("");return e("div",{className:Te.container,children:o("div",{className:Te.card,children:[e("h2",{className:Te.title,children:"Login with Passkey"}),e("button",{onClick:async()=>{r("");await n()?t("/"):r("Passkey sign-in could not be completed. Try another sign-in method.")},className:Te.button,children:"Use Passkey"}),i&&e("p",{className:Te.error,children:i})]})})};var Ae="registerPasskey-module__container___jqEh8",Ie="registerPasskey-module__card___MJAyC",Ee="registerPasskey-module__loading___Q4i1x",ze="registerPasskey-module__spinner___V1nhd",Le="registerPasskey-module__supported___ihTih",je="registerPasskey-module__title___vn2Qu",Fe="registerPasskey-module__description___AWmO-",Ue="registerPasskey-module__button___D3b4B",Be="registerPasskey-module__message___RiOw-",Re="registerPasskey-module__success___HP5aX",qe="registerPasskey-module__error___hGiqE";D(".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 Ge="deviceNameModal-module__overlay___fmdPd",De="deviceNameModal-module__modal___uoEda",Je="deviceNameModal-module__description___-HMTA",Ve="deviceNameModal-module__input___4vQMI",We="deviceNameModal-module__actions___KXw7b",$e="deviceNameModal-module__primary___9Ozlk",Ke="deviceNameModal-module__secondary___HILhc";D(".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 He=({isOpen:t,onCancel:n,onConfirm:i})=>{const[r,a]=d("");return t?e("div",{className:Ge,children:o("div",{className:De,children:[e("h3",{children:"Name This Device"}),e("p",{className:Je,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:Ve,autoFocus:!0}),o("div",{className:We,children:[e("button",{onClick:n,className:Ke,children:"Cancel"}),e("button",{onClick:()=>i(r.trim()),disabled:!r.trim(),className:$e,children:"Continue"})]})]})}):null},Ye=()=>{const{refreshSession:n}=q(),i=we(),{passkeySupported:r,loading:a}=Ne(),s=h(),[l,c]=d("idle"),[u,_]=d(""),[m,p]=d(!1),[g,f]=d(null);return o(t,{children:[e("div",{className:Ae,children:e("div",{className:Ie,children:o("div",a||!r?{className:Ee,children:[e("div",{className:ze}),e("span",{children:a?"Checking for Passkey Support...":"Passkeys are not supported on this device."})]}:{className:Le,children:[e("h2",{className:je,children:"Secure Your Account with a Passkey"}),e("p",{className:Fe,children:"Your device supports passkeys! Register one to skip passwords forever."}),e("button",{onClick:()=>{const{platform:e,browser:o,deviceInfo:t}=function(){const e=navigator.userAgent.toLowerCase();let o="unknown",t="unknown";return/iphone|ipad|ipod/.test(e)?o="ios":/android/.test(e)?o="android":/mac os/.test(e)?o="mac":/windows/.test(e)?o="windows":/linux/.test(e)&&(o="linux"),/chrome/.test(e)&&(t="chrome"),/safari/.test(e)&&!/chrome/.test(e)&&(t="safari"),/firefox/.test(e)&&(t="firefox"),/edg/.test(e)&&(t="edge"),{platform:o,browser:t,deviceInfo:`${o} • ${t}`}}();f({platform:e,browser:o,deviceInfo:t}),p(!0)},disabled:"loading"===l,className:Ue,children:"loading"===l?"Registering...":"Register Passkey"}),u&&e("p",{className:`${Be} ${"success"===l?Re:qe}`,children:u})]})})}),e(He,{isOpen:m,onCancel:()=>{p(!1),f(null)},onConfirm:async e=>{if(!g)return;const o={friendlyName:e,...g};c("loading");try{const e=await i.registerPasskey(o);if(!e.success)throw new Error(e.message);await n(),c("success"),_(e.message),s("/")}catch{console.error("Passkey registration failed."),c("error"),_("Error registering passkey.")}finally{p(!1),f(null)}}})]})};var Ze="verifyOTP-module__container___wgoDE",Qe="verifyOTP-module__card___3cs2p",Xe="verifyOTP-module__title___fZ-1d",eo="verifyOTP-module__subtitle___dGSu3",oo="verifyOTP-module__error___GEtlG",to="verifyOTP-module__success___46TjG",no="verifyOTP-module__form___jiGG-",io="verifyOTP-module__label___Zq5Mi",ro="verifyOTP-module__timer___smq-a",ao="verifyOTP-module__resend___PlmkG",so="verifyOTP-module__button___8pIuO",lo="verifyOTP-module__toggle___wbzVa";D(".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 co="otpInput-module__otpContainer___MUjby",uo="otpInput-module__otpInput___3YMVm";D(".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 _o=({length:o=6,value:t,inputMode:n="numeric",onChange:i,name:r="otp"})=>{const a=g([]),s=t.split("").concat(Array(o).fill("")).slice(0,o),l=(e,o)=>{var t;if(o.length>1)d(e,o);else if(!o||(t=o,"numeric"===n?/^\d$/.test(t):/^[a-zA-Z]$/.test(t))){const t=[...s];t[e]=o;const n=t.join("");i(n),o&&a.current[e+1]&&a.current[e+1]?.focus()}},d=(e,t)=>{let r=t;r="numeric"===n?t.replace(/\D/g,""):t.replace(/[^a-zA-Z]/g,"");const l=r.slice(0,o).split(""),d=[...s];l.forEach((t,n)=>{e+n<o&&(d[e+n]=t)}),i(d.join("")),a.current[Math.min(e+l.length,o-1)]?.focus()};return e("div",{className:co,role:"group","aria-label":"One-time password input",onPaste:e=>{e.preventDefault(),d(0,e.clipboardData.getData("text"))},children:s.map((t,d)=>e("input",{ref:e=>a.current[d]=e,type:"text",inputMode:"numeric"===n?"numeric":"text",autoComplete:"one-time-code",name:`${r}-${d}`,maxLength:1,value:t,className:uo,onChange:e=>l(d,e.target.value),onKeyDown:e=>((e,t)=>{if("Backspace"===t.key){t.preventDefault();const o=[...s];s[e]?(o[e]="",i(o.join(""))):e>0&&(o[e-1]="",i(o.join("")),a.current[e-1]?.focus())}"ArrowLeft"===t.key&&e>0&&a.current[e-1]?.focus(),"ArrowRight"===t.key&&e<o-1&&a.current[e+1]?.focus()})(d,e),"aria-label":`Digit ${d+1}`},d))})},mo=()=>{const t=h(),n=f(),{refreshSession:i}=q(),r="login"===n.state?.flow,[a,s]=d(""),[l,u]=d(null),[_,m]=d(""),[p,g]=d(!1),[y,b]=d(""),[k,v]=d(300),w=we(),x=async()=>{g(!0);try{if(!l){if((r?await w.verifyLoginPhoneOtp(a):await w.verifyPhoneOtp(a)).ok){if(r)return await i(),void t("/");u(!0)}else m("Verification failed.")}}catch{console.error("Phone OTP verification failed."),m("Verification failed.")}g(!1)},P=async()=>{b(""),await(async()=>{m(""),(r?await w.requestLoginPhoneOtp():await w.requestPhoneOtp()).ok?b("Verification SMS has been resent."):m("Failed to send SMS code. If this persists, refresh the page and try again.")})(),b("Verification SMS has been resent.")};return c(()=>{const e=setInterval(()=>{v(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),c(()=>{l&&!r&&(async()=>{(await w.requestEmailOtp()).ok?t("/verifyEmailOTP"):m("Failed to send Email code. If this persists, refresh the page and try registering again.")})()},[l,r,t,w]),e("div",{className:Ze,children:o("div",{className:Qe,children:[e("h2",{className:Xe,children:"Verify Your Phone Number"}),e("p",{className:eo,children:"Enter the code sent to your phone number."}),_&&e("p",{className:oo,children:_}),y&&e("p",{className:to,children:y}),o("form",{onSubmit:async e=>{if(e.preventDefault(),m(""),6===a.length){g(!0);try{await x()}catch{m("Unexpected error occurred.")}finally{g(!1)}}else m("Please enter a valid code.")},className:no,children:[o("div",{children:[o("label",{htmlFor:"phoneCode",className:io,children:["Phone Verification Code ",(S=l,!0===S?e("span",{className:"text-green-400 ml-2",children:"✅"}):!1===S?e("span",{className:"text-red-400 ml-2",children:"❌"}):null)," -"," ",o("span",{className:ro,children:["Code expires in: ",(N=k,`${Math.floor(N/60).toString().padStart(2,"0")}:${(N%60).toString().padStart(2,"0")}`)]})]}),e(_o,{length:6,value:a,onChange:s}),e("button",{type:"button",onClick:()=>P(),className:ao,children:"Resend code to phone"})]}),e("button",{type:"submit",className:so,children:p?"Verifying...":"Verify & Continue"}),e("button",{type:"button",onClick:()=>t("/login"),className:lo,children:"Back to login"})]})]})});var N,S},po=()=>{const t=h(),n=f(),{refreshSession:i}=q(),r=we(),{passkeySupported:a}=Ne(),s="login"===n.state?.flow,[l,u]=d(!1),[_,m]=d(""),[p,g]=d(300),[y,b]=d(""),[k,v]=d("");return c(()=>{const e=setInterval(()=>{g(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),e("div",{className:Ze,children:o("div",{className:Qe,children:[e("h2",{className:Xe,children:"Verify Your Email"}),e("p",{className:eo,children:"We sent you a verification email. Enter the code below."}),y&&e("p",{className:oo,children:y}),k&&e("p",{className:to,children:k}),o("form",{onSubmit:async e=>{if(e.preventDefault(),b(""),6===_.length){u(!0);try{if(!(s?await r.verifyLoginEmailOtp(_):await r.verifyEmailOtp(_)).ok)return void b("Verification failed.");if(s)return await i(),void t("/");a?t("/registerPasskey"):(await i(),t("/"))}catch{console.error("Email OTP verification failed."),b("Verification failed.")}finally{u(!1)}}else b("Please enter a valid code.")},className:no,children:[o("div",{children:[o("label",{htmlFor:"emailCode",className:io,children:["Email Verification Code",o("span",{className:ro,children:[" ","— Code expires in ",(w=p,`${Math.floor(w/60).toString().padStart(2,"0")}:${(w%60).toString().padStart(2,"0")}`)]})]}),e(_o,{length:6,value:_,onChange:m,inputMode:"text"}),e("button",{type:"button",onClick:async()=>{b(""),v("");(s?await r.requestLoginEmailOtp():await r.requestEmailOtp()).ok?v("Verification email has been resent."):b("Failed to send Email code. If this persists, refresh the page and try again.")},className:ao,children:"Resend code to email"})]}),e("button",{type:"submit",className:so,disabled:l,children:l?"Verifying...":"Verify & Continue"}),e("button",{type:"button",onClick:()=>t("/login"),className:lo,children:"Back to login"})]})]})});var w};var go={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"};D(".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 ho=()=>{const[t]=y(),n=h(),i=t.get("token"),[r,a]=d(""),[s,l]=d(""),u=we();return c(()=>{let e=!0,o=null,t=null;return(async()=>{if(!i)return e&&a("Missing token for verification."),void console.error("No magic-link token found.");try{if(!(await u.verifyMagicLink(i)).ok)return console.error("Failed to verify token"),void(e&&a("Failed to verify token"))}catch{console.error("Failed to verify magic-link token.")}e&&(o=new BroadcastChannel("seamless-auth"),o.postMessage({type:"MAGIC_LINK_AUTH_SUCCESS"}),l("You have been verified on the device and browser that initiated this request"),t=setTimeout(()=>{e&&n("/")},900))})(),()=>{e=!1,o?.close(),t&&clearTimeout(t)}},[i,u,n]),e("div",{className:go.container,children:o("div",{className:go.card,children:[e("h1",{className:go.title,children:"Verifying your login"}),o("div",{className:go.verificationContent,children:[!s&&!r&&e("div",{className:go.spinner}),s&&e("div",{className:go.successIcon,children:e("svg",{viewBox:"0 0 24 24",className:go.checkIcon,fill:"none",stroke:"currentColor",strokeWidth:"2",children:e("path",{d:"M5 13l4 4L19 7"})})}),!s&&!r&&e("p",{className:go.helperText,children:"Please wait while we securely verify your sign-in link."}),s&&e("p",{className:go.successText,children:"Login verified. Redirecting…"}),r&&e("p",{className:go.error,children:r})]})]})})};var fo="magiclink-module__container___45zcA",yo="magiclink-module__card___Au9oN",bo="magiclink-module__iconWrapper___k5ndr",ko="magiclink-module__mailIcon___Pwb7q",vo="magiclink-module__iconRing___bdLvf",wo="magiclink-module__heading___b9cre",xo="magiclink-module__message___kiVFj",Po="magiclink-module__identifier___JtcFM",No="magiclink-module__helperText___7Mlfh",So="magiclink-module__actions___64I-3",Oo="magiclink-module__secondaryButton___BntAI",Co="magiclink-module__cooldown___Ib4rm",To="magiclink-module__linkButton___maJiv";D(".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 Mo=()=>{const{refreshSession:t}=q(),n=h(),i=f(),r=we(),a=i.state?.identifier,[s,l]=d(30);c(()=>{const e=setInterval(()=>{l(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]);return c(()=>{const e=new BroadcastChannel("seamless-auth");return e.onmessage=async e=>{if("MAGIC_LINK_AUTH_SUCCESS"===e.data?.type){200===(await r.checkMagicLink()).status&&(await t(),n("/"))}},()=>{e.close()}},[r,n,t]),c(()=>{const e=setInterval(async()=>{try{200===(await r.checkMagicLink()).status&&(await t(),n("/"))}catch{}},5e3);return()=>clearInterval(e)},[r,t,n]),e("div",{className:fo,children:o("div",{className:yo,children:[o("div",{className:bo,children:[e("div",{className:vo}),o("svg",{className:ko,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:wo,children:"Check your email"}),e("p",{className:xo,children:"If an account exists for this address, we sent a secure sign-in link."}),a&&e("div",{className:Po,children:a}),e("p",{className:No,children:"Open the email and click the link to finish signing in."}),e("p",{className:No,children:"Didn’t receive anything? Check your spam folder or try creating a new account."}),o("div",{className:So,children:[e("button",{className:Oo,disabled:s>0,onClick:async()=>{s>0||(await r.requestMagicLink(),l(30))},children:"Resend link"}),s>0&&o("div",{className:Co,children:["Available in ",s,"s"]}),e("button",{className:To,onClick:()=>n("/login"),children:"Change email or phone"})]})]})})},Ao=()=>o(b,{children:[e(k,{path:"/login",element:e(Ce,{})}),e(k,{path:"/passKeyLogin",element:e(Me,{})}),e(k,{path:"/verifyPhoneOTP",element:e(mo,{})}),e(k,{path:"/verifyEmailOTP",element:e(po,{})}),e(k,{path:"/verify-magiclink",element:e(ho,{})}),e(k,{path:"/registerPasskey",element:e(Ye,{})}),e(k,{path:"/magiclinks-sent",element:e(Mo,{})}),e(k,{path:"*",element:e(v,{to:"/login",replace:!0})})]});export{G as AuthProvider,Ao as AuthRoutes,F as createSeamlessAuthClient,S as encodePrfSalt,A as extractPasskeyPrfResult,B as hasScopedRole,T as isPasskeyPrfSupported,U as roleGrantsAccess,q as useAuth,we as useAuthClient,Ne 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/webauthnPrf.ts","../src/client/createSeamlessAuthClient.ts","../src/fetchWithAuth.ts","../src/scopedRoles.ts","../src/AuthProvider.tsx","../src/hooks/usePreviousSignIn.ts","../node_modules/style-inject/dist/style-inject.es.js","../src/components/TermsModal.tsx","../src/components/phoneInput.tsx","../src/hooks/useAuthClient.ts","../src/utils.ts","../src/hooks/usePasskeySupport.ts","../src/components/AuthFallbackOptions.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/components/MagicLinkSent.tsx","../src/AuthRoutes.tsx"],"sourcesContent":[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,null,null,null],"names":["toArrayBuffer","value","ArrayBuffer","source","Uint8Array","buffer","byteOffset","byteLength","copy","set","encodePrfSalt","salt","bufferToBase64URLString","saltToBufferSource","base64URLStringToBuffer","createPrfRequestBody","input","credentialId","prf","secondSalt","async","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","undefined","getRegistrationPrfCapable","attestationResponse","enabled","staleStepUpResult","message","success","fresh","method","verifiedAt","expiresAt","maxAgeSeconds","staleStepUpPrfResult","buildAssertionStartInit","body","JSON","stringify","createSeamlessAuthClient","opts","fetchWithAuth","authHost","init","url","replace","startsWith","requestInit","headers","response","fetch","ok","console","warn","status","createFetchWithAuth","apiHost","getCurrentUser","login","loginWithPasskey","optionsInput","mfaRequired","json","startAuthentication","assertionResponse","verificationResponse","verificationResult","mfaLogin","Boolean","error","logout","scope","logoutAllSessions","deleteUser","register","email","phone","bootstrapToken","requestPhoneOtp","verifyPhoneOtp","verificationToken","requestLoginPhoneOtp","verifyLoginPhoneOtp","requestEmailOtp","verifyEmailOtp","requestLoginEmailOtp","verifyLoginEmailOtp","requestMagicLink","checkMagicLink","verifyMagicLink","token","listOAuthProviders","Error","startOAuthLogin","encodeURIComponent","providerId","redirectUri","returnTo","finishOAuthLogin","code","state","registerPasskey","registerInput","metadata","normalizeRegisterPasskeyInput","challengeRes","query","URLSearchParams","requirePrf","requestPrf","queryString","toString","buildRegisterStartPath","startRegistration","WebAuthnError","name","prfCapable","getStepUpStatus","verifyStepUpWithPasskey","verifyStepUpWithPasskeyPrf","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","AuthContext","createContext","useAuth","context","useContext","AuthProvider","children","autoDetectPreviousSignin","user","setUser","useState","setCredentials","organizations","setOrganizations","activeOrganization","setActiveOrganization","stepUpStatus","setStepUpStatus","isAuthenticated","setIsAuthenticated","loading","setLoading","hasSignedInBefore","markSignedIn","storageKey","setHasSignedInBefore","useEffect","localStorage","getItem","setItem","usePreviousSignIn","authClient","useMemo","resetAuthState","useCallback","validateToken","refreshStepUpStatus","result","_jsx","Provider","refreshSession","hasRole","roles","rolesGrantScopedAccess","friendlyName","responseBody","updatedCredential","currentCredentials","map","currentCredential","identifier","passkeyAvailable","handlePasskeyLogin","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","TermsModal","isOpen","onClose","modalRef","useRef","handleKeyDown","e","key","addEventListener","current","focus","removeEventListener","className","styles","_jsxs","tabIndex","onClick","href","countries","dialCode","flag","PhoneInputWithCountryCode","setPhone","phoneError","setPhoneError","showModal","setShowModal","selectedCountry","setSelectedCountry","defaultCountry","locale","Intl","DateTimeFormat","resolvedOptions","countryCode","toUpperCase","find","c","getDefaultCountry","onChange","country","target","stripped","newPhone","AsYouType","raw","full","formatted","onBlur","parsed","parsePhoneNumberFromString","isValid","autoComplete","placeholder","useAuthClient","isValidEmail","normalized","parts","localPart","domainPart","test","isValidPhoneNumber","phoneNumber","usePasskeySupport","passkeySupported","setPasskeySupported","active","supported","isUserVerifyingPlatformAuthenticatorAvailable","isPasskeySupported","checkSupport","AuthFallbackOptions","onMagicLink","onEmailOtp","onPhoneOtp","onPasskeyRetry","loginMethods","allowedMethods","Set","showMagicLink","has","showEmailOtp","showPhoneOtp","showPasskeyRetry","DEFAULT_LOGIN_METHODS","Login","navigate","useNavigate","setIdentifier","setEmail","mode","setMode","formErrors","setFormErrors","emailError","setEmailError","identifierError","setIdentifierError","showFallbackOptions","setShowFallbackOptions","setLoginMethods","setBootstrapToken","location","search","_Fragment","onSubmit","preventDefault","loginRes","loginStart","parseLoginStartResult","availableMethods","htmlFor","flow","disabled","PassKeyLogin","runPasskeyLogin","setError","container","card","title","button","DeviceNameModal","onCancel","onConfirm","setValue","autoFocus","PasskeyRegistration","passkeySupportLoading","setStatus","setMessage","showDeviceModal","setShowDeviceModal","pendingMetadata","setPendingMetadata","platform","browser","deviceInfo","ua","userAgent","toLowerCase","parseUserAgent","OtpInput","inputMode","inputs","values","concat","fill","handleChange","char","handleBulkInput","newValueArr","newValue","join","cleaned","chars","forEach","i","Math","min","onPaste","clipboardData","getData","el","maxLength","onKeyDown","PhoneRegistration","useLocation","isLoginFlow","phoneOtp","setPhoneOtp","phoneVerified","setPhoneVerified","resendMsg","setResendMsg","phoneTimeLeft","setPhoneTimeLeft","verifyPhoneOTP","handleResend","onResendPhone","interval","setInterval","prev","clearInterval","nextStep","verified","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","MagicLinkSent","cooldown","setCooldown","timer","onmessage","event","data","AuthRoutes","Routes","Route","path","element","Navigate","to"],"mappings":"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","x_google_ignoreList":[6]}
1
+ {"version":3,"file":"index.js","sources":["../src/client/webauthnPrf.ts","../src/client/createSeamlessAuthClient.ts","../src/fetchWithAuth.ts","../src/scopedRoles.ts","../src/AuthProvider.tsx","../src/hooks/usePreviousSignIn.ts","../node_modules/style-inject/dist/style-inject.es.js","../src/components/TermsModal.tsx","../src/components/phoneInput.tsx","../src/hooks/useAuthClient.ts","../src/utils.ts","../src/hooks/usePasskeySupport.ts","../src/components/AuthFallbackOptions.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/components/MagicLinkSent.tsx","../src/AuthRoutes.tsx"],"sourcesContent":[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,null,null,null],"names":["toArrayBuffer","value","ArrayBuffer","source","Uint8Array","buffer","byteOffset","byteLength","copy","set","encodePrfSalt","salt","bufferToBase64URLString","saltToBufferSource","base64URLStringToBuffer","createPrfRequestBody","input","credentialId","prf","secondSalt","async","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","undefined","getRegistrationPrfCapable","attestationResponse","enabled","staleStepUpResult","message","success","fresh","method","verifiedAt","expiresAt","maxAgeSeconds","staleStepUpPrfResult","buildAssertionStartInit","body","JSON","stringify","createSeamlessAuthClient","opts","fetchWithAuth","authHost","init","url","replace","startsWith","requestInit","headers","response","fetch","ok","console","warn","status","createFetchWithAuth","apiHost","getCurrentUser","login","loginWithPasskey","optionsInput","mfaRequired","json","startAuthentication","assertionResponse","verificationResponse","verificationResult","mfaLogin","Boolean","error","logout","scope","logoutAllSessions","deleteUser","register","email","phone","bootstrapToken","requestPhoneOtp","verifyPhoneOtp","verificationToken","requestLoginPhoneOtp","verifyLoginPhoneOtp","requestEmailOtp","verifyEmailOtp","requestLoginEmailOtp","verifyLoginEmailOtp","requestMagicLink","checkMagicLink","verifyMagicLink","token","listOAuthProviders","Error","startOAuthLogin","encodeURIComponent","providerId","redirectUri","returnTo","finishOAuthLogin","code","state","registerPasskey","registerInput","metadata","normalizeRegisterPasskeyInput","challengeRes","query","URLSearchParams","requirePrf","requestPrf","queryString","toString","buildRegisterStartPath","startRegistration","WebAuthnError","name","prfCapable","getStepUpStatus","verifyStepUpWithPasskey","verifyStepUpWithPasskeyPrf","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","AuthContext","createContext","useAuth","context","useContext","AuthProvider","children","autoDetectPreviousSignin","user","setUser","useState","setCredentials","organizations","setOrganizations","activeOrganization","setActiveOrganization","stepUpStatus","setStepUpStatus","isAuthenticated","setIsAuthenticated","loading","setLoading","hasSignedInBefore","markSignedIn","storageKey","setHasSignedInBefore","useEffect","localStorage","getItem","setItem","usePreviousSignIn","authClient","useMemo","resetAuthState","useCallback","validateToken","refreshStepUpStatus","result","_jsx","Provider","refreshSession","hasRole","roles","rolesGrantScopedAccess","friendlyName","responseBody","updatedCredential","currentCredentials","map","currentCredential","identifier","passkeyAvailable","handlePasskeyLogin","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","TermsModal","isOpen","onClose","modalRef","useRef","handleKeyDown","e","key","addEventListener","current","focus","removeEventListener","className","styles","_jsxs","tabIndex","onClick","href","countries","dialCode","flag","PhoneInputWithCountryCode","setPhone","phoneError","setPhoneError","showModal","setShowModal","selectedCountry","setSelectedCountry","defaultCountry","locale","Intl","DateTimeFormat","resolvedOptions","countryCode","toUpperCase","find","c","getDefaultCountry","onChange","country","target","stripped","newPhone","AsYouType","raw","full","formatted","onBlur","parsed","parsePhoneNumberFromString","isValid","autoComplete","placeholder","useAuthClient","isValidEmail","normalized","parts","localPart","domainPart","test","isValidPhoneNumber","phoneNumber","usePasskeySupport","passkeySupported","setPasskeySupported","active","supported","isUserVerifyingPlatformAuthenticatorAvailable","isPasskeySupported","checkSupport","AuthFallbackOptions","onMagicLink","onEmailOtp","onPhoneOtp","onPasskeyRetry","loginMethods","allowedMethods","Set","showMagicLink","has","showEmailOtp","showPhoneOtp","showPasskeyRetry","DEFAULT_LOGIN_METHODS","Login","navigate","useNavigate","setIdentifier","setEmail","mode","setMode","formErrors","setFormErrors","emailError","setEmailError","identifierError","setIdentifierError","showFallbackOptions","setShowFallbackOptions","setLoginMethods","setBootstrapToken","location","search","_Fragment","onSubmit","preventDefault","loginRes","loginStart","parseLoginStartResult","availableMethods","htmlFor","flow","disabled","PassKeyLogin","runPasskeyLogin","setError","container","card","title","button","DeviceNameModal","onCancel","onConfirm","setValue","autoFocus","PasskeyRegistration","passkeySupportLoading","setStatus","setMessage","showDeviceModal","setShowDeviceModal","pendingMetadata","setPendingMetadata","platform","browser","deviceInfo","ua","userAgent","toLowerCase","parseUserAgent","OtpInput","inputMode","inputs","values","concat","fill","handleChange","char","handleBulkInput","newValueArr","newValue","join","cleaned","chars","forEach","i","Math","min","onPaste","clipboardData","getData","el","maxLength","onKeyDown","PhoneRegistration","useLocation","isLoginFlow","phoneOtp","setPhoneOtp","phoneVerified","setPhoneVerified","resendMsg","setResendMsg","phoneTimeLeft","setPhoneTimeLeft","verifyPhoneOTP","handleResend","onResendPhone","interval","setInterval","prev","clearInterval","nextStep","verified","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","MagicLinkSent","cooldown","setCooldown","timer","onmessage","event","data","AuthRoutes","Routes","Route","path","element","Navigate","to"],"mappings":"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","x_google_ignoreList":[6]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamless-auth/react",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "A drop-in authentication solution for modern React applications.",
5
5
  "type": "module",
6
6
  "exports": {