@seamless-auth/react 0.0.9 → 0.0.10

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.
@@ -4,6 +4,7 @@ interface Props {
4
4
  value: string;
5
5
  inputMode?: 'numeric' | 'text';
6
6
  onChange: (value: string) => void;
7
+ name?: string;
7
8
  }
8
9
  declare const OtpInput: React.FC<Props>;
9
10
  export default OtpInput;
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as o,Fragment as n}from"react/jsx-runtime";import{createContext as i,useContext as r,useState as t,useEffect as a,useCallback as l,useRef as s}from"react";import{useNavigate as d,useSearchParams as c,useLocation as _,Routes as m,Route as u,Navigate as g}from"react-router-dom";import{startAuthentication as p,startRegistration as h,WebAuthnError as f}from"@simplewebauthn/browser";import y,{AsYouType as b,parsePhoneNumberFromString as k}from"libphonenumber-js";const v=i(void 0),x=({value:o,children:n})=>e(v.Provider,{value:o,children:n}),w=()=>{const e=r(v);if(!e)throw new Error("useInternalAuth must be used within InternalAuthProvider");return e},N=e=>{const{authMode:o,authHost:n}=e;return async function(e,i){const r=`${n}${"server"===o?"auth":""}${e.startsWith("/")?e:`/${e}`}`,t={...i,credentials:"include",headers:{"Content-Type":"application/json",...i?.headers}},a=await fetch(r,t);if(a.ok)return a;throw console.warn("Auth fetch failed:",a.status,r),new Error(`Failed to make API call to ${r}`)}};const P=i(void 0),C=()=>{const e=r(P);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e},T=({children:o,apiHost:n,autoDetectPreviousSignin:i=!0,mode:r="web"})=>{const[s,d]=t(null),[c,_]=t([]),[m,u]=t(!1),[g,p]=t(!0),[h,f]=t(null),{hasSignedInBefore:y,markSignedIn:b}=function(e="seamlessauth_seen"){const[o,n]=t(!1);return a(()=>{try{"true"===localStorage.getItem(e)&&n(!0)}catch{}},[e]),{hasSignedInBefore:o,markSignedIn:()=>{try{localStorage.setItem(e,"true"),n(!0)}catch{}}}}(),[k]=t(r),v=N({authMode:k,authHost:n}),w=l(async()=>{if(s)try{await v("/logout",{method:"GET"})}catch{console.error("Error during logout")}finally{u(!1),d(null),f(null)}},[v,s]),C=async()=>{p(!0);try{const e=await v("users/me",{method:"GET"});if(e.ok){const{user:o,credentials:n}=await e.json();d(o),_(n),u(!0)}else w()}catch{w()}finally{p(!1)}};return a(()=>{C()},[]),a(()=>{s&&m&&b()},[s,m,b]),e(P.Provider,{value:{user:s,logout:w,loading:g,deleteUser:async()=>{try{if((await v("/users/delete",{method:"delete"})).ok)return d(null),u(!1),void f(null);throw new Error("Could not delete user.")}catch(e){throw console.error("Something went wrong deleting user:",e),new Error("Could not delete user.")}},isAuthenticated:m,hasRole:e=>s?.roles?.includes(e),apiHost:n,token:h,markSignedIn:b,hasSignedInBefore:!!i&&y,mode:r,credentials:c,updateCredential:async e=>{const o=await v("users/credentials",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({friendlyName:e.friendlyName,id:e.id})});if(o.ok)return o.json();throw new Error("Failed to update credential")},deleteCredential:async e=>{const o=await v("users/credentials",{method:"DELETE",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e})});if(o.ok)return o.json();throw new Error("Failed to update credential")}},children:e(x,{value:{validateToken:C,setLoading:p},children:o})})};function M(e,o){void 0===o&&(o={});var n=o.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&i.firstChild?i.insertBefore(r,i.firstChild):i.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}var S="login-module__container___YggDx",I="login-module__card___Ub-Py",O="login-module__heading___neEqb",E="login-module__inputGroup___P6qgS",A="login-module__label___mx5vu",j="login-module__input___U07lW",B="login-module__helperText___kDQ4-",z="login-module__error___40zxh",F="login-module__button___0kFBs",G="login-module__toggle___1JiG1",L="login-module__underline___gs-RS",V="login-module__phoneRow___oeNtq",H="login-module__select___rRV1O",D="login-module__phoneInput___2MPQC",R="login-module__fallbackCard___HdIk-",U="login-module__fallbackHeader___-il2v",q="login-module__fallbackDescription___ea5EB",K="login-module__fallbackActions___AD3ni",J="login-module__fallbackActionButton___lFgWf",W="login-module__actionTitle___ycrMp",$="login-module__actionSubtext___opaIV",Y="login-module__linkButton___5lsoe";M(".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 Z="termsModal-module__overlay___-j6r5",Q="termsModal-module__modal___4PxZV",X="termsModal-module__header___B7wxb",ee="termsModal-module__title___Sucwt",oe="termsModal-module__closeBtn___evIs5",ne="termsModal-module__content___5BDhN",ie="termsModal-module__link___oPZrU";M(".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 re=({isOpen:n,onClose:i})=>{const r=s(null);return a(()=>{const e=e=>{"Escape"===e.key&&i()};return n&&(document.addEventListener("keydown",e),r.current?.focus()),()=>{document.removeEventListener("keydown",e)}},[n,i]),n?e("div",{className:Z,role:"dialog","aria-modal":"true","aria-labelledby":"terms-title",children:o("div",{className:Q,tabIndex:-1,ref:r,children:[o("div",{className:X,children:[e("h2",{id:"terms-title",className:ee,children:"SMS Terms & Conditions"}),e("button",{onClick:i,className:oe,children:"×"})]}),o("div",{className:ne,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:ie,href:"mailto:support@seamlessauth.com",children:"support@seamlessauth.com"}),"."]})]})]})}):null},te=[{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 ae({phone:n,setPhone:i,phoneError:r,setPhoneError:l}){const[s,d]=t(!1),[c,_]=t(te[0]);a(()=>{const e=function(){try{const e=Intl.DateTimeFormat().resolvedOptions().locale||"en-US",o=e.split("-")[1]?.toUpperCase()||"US";return te.find(e=>e.code===o)||te[0]}catch{return te[0]}}();_(e)},[]);return o("div",{className:E,children:[e("label",{id:"phone",className:A,children:"Phone Number"}),o("div",{className:V,children:[e("select",{value:c.code,onChange:e=>{const o=te.find(o=>o.code===e.target.value);if(o){_(o);const e=n.replace(/^\+\d+/,""),r=(new b).input(o.dialCode+e);i(r)}},className:H,children:te.map(e=>o("option",{value:e.code,children:[e.flag," (",e.dialCode,")"]},e.code))}),e("input",{"aria-labelledby":"phone",type:"tel",value:n,onChange:e=>{const o=e.target.value,n=o.startsWith(c.dialCode)?o:c.dialCode+o,t=(new b).input(n);i(t),r&&l("")},onBlur:()=>{if(n){const e=k(n),o=e?.isValid();l(o?"":"Please enter a valid phone number.")}},autoComplete:"off",placeholder:"(555) 123-4567",className:D})]}),o("p",{className:B,children:["By signing up, you agree to our"," ",e("button",{onClick:()=>d(!0),className:L,children:"SMS Terms & Conditions"}),"."]}),r&&e("p",{className:z,children:r}),e(re,{isOpen:s,onClose:()=>d(!1)})]})}const le=e=>{if("string"!=typeof e)return!1;const o=e.trim();if(o.length<3||o.length>320)return!1;const n=o.split("@");if(2!==n.length)return!1;const[i,r]=n;return!(!/^[A-Za-z0-9._%+-]+$/.test(i)||i.startsWith(".")||i.endsWith(".")||i.includes(".."))&&!(!/^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/.test(r)||r.startsWith("-")||r.endsWith("-")||r.startsWith(".")||r.endsWith(".")||r.includes(".."))},se=e=>{const o=y(e);return o?.isValid()||!1};async function de(){if(window.PublicKeyCredential&&"function"==typeof window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable)try{return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()}catch(e){return console.error("Error checking passkey support:",e),!1}return!1}const ce=({identifier:n,onMagicLink:i,onPhoneOtp:r,onPasskeyRetry:t})=>{const a=le(n),l=se(n);return o("div",{className:R,children:[e("div",{className:U,children:"Passkeys unavailable on this device"}),e("p",{className:q,children:"Choose another secure sign-in method."}),o("div",{className:K,children:[a&&o("button",{type:"button",className:J,onClick:i,children:[e("span",{className:W,children:"Email Magic Link"}),e("span",{className:$,children:"Send a secure sign-in link to your email"})]}),l&&o("button",{type:"button",className:J,onClick:r,children:[e("span",{className:W,children:"Text Message Code"}),e("span",{className:$,children:"Receive a one-time code via SMS"})]})]}),e("button",{type:"button",className:Y,onClick:t,children:"Try passkey anyway"})]})},_e=()=>{const i=d(),{apiHost:r,hasSignedInBefore:l,mode:s}=C(),{validateToken:c}=w(),[_,m]=t(""),[u,g]=t(""),[h,f]=t("register"),[y,b]=t(""),[k,v]=t(""),[x,P]=t(""),[T,M]=t(""),[L,V]=t(""),[H,D]=t(!1),[R,U]=t(!1),[q,K]=t(null),J=N({authMode:s,authHost:r});a(()=>{!async function(){const e=await de();D(e)}(),l&&f("login");const e=new URLSearchParams(window.location.search).get("bootstrapToken");e&&e.length>10&&(K(e),console.log("Bootstrap token detected in URL"))},[l]);const W=async()=>{try{const e=await J("/webAuthn/login/start",{method:"POST"});if(!e.ok)return void console.error("Something went wrong getting webauthn options");const o=await e.json(),n=await p({optionsJSON:o}),r=await J("/webAuthn/login/finish",{method:"POST",body:JSON.stringify({assertionResponse:n})});r.ok||console.error("Failed to verify passkey");const t=await r.json();if("Success"===t.message)return t.mfaLogin?void i("/mfaLogin"):(await c(),void i("/"));console.error("Passkey login failed:",t.message)}catch(e){console.error("Passkey login error:",e)}};return e("div",{className:S,children:o("div",{className:I,children:[e("h2",{className:O,children:"login"===h?"Sign In":"Create Account"}),e(n,{children:o("form",{onSubmit:async e=>{e.preventDefault(),"login"===h&&(async()=>{if(v(""),(await J("/login",{method:"POST",body:JSON.stringify({identifier:_,passkeyAvailable:H})})).ok)if(H)try{await W()}catch(e){console.error("Passkey login failed",e),U(!0)}else U(!0);else v("Failed to send login link. Please try again.")})(),"register"===h&&(async()=>{v("");try{const e=await J("/registration/register",{method:"POST",body:JSON.stringify({email:u,phone:y,...q?{bootstrapToken:q}:{}})});if(!e.ok)return void v("Failed to register. Please try again.");"Success"===(await e.json()).message&&i("/verifyPhoneOTP"),v("An unexpected error occured. Try again. If the problem persists, try resetting your password")}catch(e){console.error("Unexpected login error",e),v("An unexpected error occured. Try again. If the problem persists, try resetting your password")}})()},children:["login"===h&&o("div",{className:E,children:[e("label",{htmlFor:"identifier",className:A,children:"Email Address / Phone Number"}),e("input",{id:"identifier",type:"text",value:_,onChange:e=>{const o=e.target.value;m(o)},autoComplete:"off",placeholder:"Email or Phone Number",className:j,onBlur:()=>{if(_){const e=le(_)||se(_);V(e?"":"Please enter a valid email or phone number")}},required:!0}),e("p",{className:B,children:"Phone numbers must include a country code e.g. +1"}),R&&e(ce,{identifier:_,onMagicLink:async()=>{try{if(!(await J("/magic-link",{method:"GET"})).ok)return void v("Failed to send magic link.");i("/magic-link-sent")}catch(e){console.error(e),v("Failed to send magic link.")}},onPhoneOtp:async()=>{try{if(!(await J("/login/phone-otp",{method:"POST",body:JSON.stringify({identifier:_})})).ok)return void v("Failed to send OTP.");i("/verifyPhoneOTP")}catch(e){console.error(e),v("Failed to send OTP.")}},onPasskeyRetry:W}),L&&e("p",{className:z,children:L})]}),"register"===h&&o(n,{children:[o("div",{className:E,children:[e("label",{htmlFor:"email",className:A,children:"Email Address"}),e("input",{id:"email",type:"email",value:u,onChange:e=>{const o=e.target.value;g(o)},autoComplete:"off",className:j,onBlur:()=>{if(u){const e=le(u);M(e?"":"Please enter a valid email")}},required:!0}),T&&e("p",{className:z,children:T})]}),e(ae,{phone:y,setPhone:b,phoneError:x,setPhoneError:P})]}),e("button",{type:"submit",className:F,disabled:!("login"===h&&_?le(_)||se(_):le(u)&&se(y)),children:"login"===h?"Login":"Register"}),k&&e("p",{className:z,children:k}),e("button",{type:"button",onClick:()=>f("login"===h?"register":"login"),className:G,children:"login"===h?"Don't have an account? Create one":"Already have an account? Sign in"})]})})]})})};var me="passKeyLogin-module__container___IUKxF",ue="passKeyLogin-module__card___2sKM1",ge="passKeyLogin-module__title___HZxvc",pe="passKeyLogin-module__button___FvR4I";M(".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 he=()=>{const n=d(),{apiHost:i,mode:r}=C(),{validateToken:t}=w(),a=N({authMode:r,authHost:i});return e("div",{className:me,children:o("div",{className:ue,children:[e("h2",{className:ge,children:"Login with Passkey"}),e("button",{onClick:async()=>{try{const e=await a("/webAuthn/login/start",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include"});if(!e.ok)return void console.error("Something went wrong getting webauthn options");const o=await e.json(),i=await p({optionsJSON:o}),r=await a("/webAuthn/login/finish",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({assertionResponse:i}),credentials:"include"});r.ok||console.error("Failed to verify passkey");const l=await r.json();if("Success"===l.message)return l.mfaLogin&&n("/mfaLogin"),await t(),void n("/");console.error("Passkey login failed")}catch{console.error("Passkey login error")}},className:pe,children:"Use Passkey"})]})})};var fe="registerPasskey-module__container___jqEh8",ye="registerPasskey-module__card___MJAyC",be="registerPasskey-module__loading___Q4i1x",ke="registerPasskey-module__spinner___V1nhd",ve="registerPasskey-module__supported___ihTih",xe="registerPasskey-module__title___vn2Qu",we="registerPasskey-module__description___AWmO-",Ne="registerPasskey-module__button___D3b4B",Pe="registerPasskey-module__message___RiOw-",Ce="registerPasskey-module__success___HP5aX",Te="registerPasskey-module__error___hGiqE";M(".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 Me="deviceNameModal-module__overlay___fmdPd",Se="deviceNameModal-module__modal___uoEda",Ie="deviceNameModal-module__description___-HMTA",Oe="deviceNameModal-module__input___4vQMI",Ee="deviceNameModal-module__actions___KXw7b",Ae="deviceNameModal-module__primary___9Ozlk",je="deviceNameModal-module__secondary___HILhc";M(".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 Be=({isOpen:n,onCancel:i,onConfirm:r})=>{const[a,l]=t("");return n?e("div",{className:Me,children:o("div",{className:Se,children:[e("h3",{children:"Name This Device"}),e("p",{className:Ie,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:a,onChange:e=>l(e.target.value),className:Oe,autoFocus:!0}),o("div",{className:Ee,children:[e("button",{onClick:i,className:je,children:"Cancel"}),e("button",{onClick:()=>r(a.trim()),disabled:!a.trim(),className:Ae,children:"Continue"})]})]})}):null},ze=()=>{const{apiHost:i,mode:r}=C(),{validateToken:l}=w(),s=d(),[c,_]=t("idle"),[m,u]=t(""),[g,p]=t(!1),[y,b]=t(!1),[k,v]=t(null),x=N({authMode:r,authHost:i});a(()=>{!async function(){const e=await de();p(e)}()},[]);const P=async(e,o)=>{if(!(await x("/webAuthn/register/finish",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attestationResponse:e,metadata:o}),credentials:"include"})).ok)throw new Error("Verification failed");await l()};return o(n,{children:[e("div",{className:fe,children:e("div",{className:ye,children:o("div",g?{className:ve,children:[e("h2",{className:xe,children:"Secure Your Account with a Passkey"}),e("p",{className:we,children:"Your device supports passkeys! Register one to skip passwords forever."}),e("button",{onClick:()=>{const{platform:e,browser:o,deviceInfo:n}=function(){const e=navigator.userAgent.toLowerCase();let o="unknown",n="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)&&(n="chrome"),/safari/.test(e)&&!/chrome/.test(e)&&(n="safari"),/firefox/.test(e)&&(n="firefox"),/edg/.test(e)&&(n="edge"),{platform:o,browser:n,deviceInfo:`${o} • ${n}`}}();v({platform:e,browser:o,deviceInfo:n}),b(!0)},disabled:"loading"===c,className:Ne,children:"loading"===c?"Registering...":"Register Passkey"}),m&&e("p",{className:`${Pe} ${"success"===c?Ce:Te}`,children:m})]}:{className:be,children:[e("div",{className:ke}),e("span",{children:"Checking for Passkey Support..."})]})})}),e(Be,{isOpen:y,onCancel:()=>{b(!1),v(null)},onConfirm:async e=>{if(!k)return;const{platform:o,browser:n,deviceInfo:i}=k;_("loading");try{const r=await x("/webAuthn/register/start",{method:"GET",headers:{"Content-Type":"application/json"},credentials:"include"});if(!r.ok)throw new Error("Failed to fetch challenge");const t=await r.json();let a;try{a=await h({optionsJSON:t})}catch(e){if(e instanceof f)throw new Error(e.name);throw e}await P(a,{friendlyName:e,platform:o,browser:n,deviceInfo:i}),_("success"),u("Passkey registered successfully."),s("/")}catch(e){console.error(e),_("error"),u("Error registering passkey.")}finally{b(!1),v(null)}}})]})};var Fe="verifyOTP-module__container___wgoDE",Ge="verifyOTP-module__card___3cs2p",Le="verifyOTP-module__title___fZ-1d",Ve="verifyOTP-module__subtitle___dGSu3",He="verifyOTP-module__error___GEtlG",De="verifyOTP-module__success___46TjG",Re="verifyOTP-module__form___jiGG-",Ue="verifyOTP-module__label___Zq5Mi",qe="verifyOTP-module__timer___smq-a",Ke="verifyOTP-module__resend___PlmkG",Je="verifyOTP-module__button___8pIuO",We="verifyOTP-module__toggle___wbzVa";M(".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 $e="otpInput-module__otpContainer___MUjby",Ye="otpInput-module__otpInput___3YMVm";M(".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 Ze=({length:o=6,value:n,inputMode:i="numeric",onChange:r})=>{const t=s([]),a=n.split("").concat(Array(o).fill("")).slice(0,o);return e("div",{className:$e,onPaste:e=>{const n=e.clipboardData.getData("text").replace(/\D/g,"");n.length===o&&(r(n),t.current[o-1]?.focus()),e.preventDefault()},children:a.map((o,l)=>e("input",{ref:e=>t.current[l]=e,type:"text",inputMode:i,maxLength:1,value:o||"",className:Ye,onChange:e=>((e,o)=>{if("numeric"===i&&!/^\d?$/.test(o))return;if("text"===i&&!/[a-z]/i.test(o))return;const a=n.substring(0,e)+o+n.substring(e+1);r(a.trim()),o&&t.current[e+1]&&t.current[e+1]?.focus()})(l,e.target.value),onKeyDown:e=>((e,o)=>{"Backspace"===o.key&&!a[e]&&t.current[e-1]&&t.current[e-1]?.focus()})(l,e)},l))})},Qe=()=>{const n=d(),{apiHost:i,mode:r}=C(),[l,s]=t(""),[c,_]=t(null),[m,u]=t(""),[g,p]=t(!1),[h,f]=t(""),[y,b]=t(300),k=N({authMode:r,authHost:i}),v=async()=>{p(!0);try{if(!c){(await k("/otp/verify-phone-otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({verificationToken:l}),credentials:"include"})).ok?_(!0):u("Verification failed.")}}catch(e){console.error(e),u("Verification failed.")}p(!1)},x=async()=>{f(""),await(async()=>{u("");const e=await k("/otp/generate-phone-otp",{method:"GET",headers:{"Content-Type":"application/json"}}),o=await e.json();e.ok?(o.token&&localStorage.setItem("token",o.token),f("Verification SMS has been resent.")):u("Failed to send SMS code. If this persists, refresh the page and try again.")})(),f("Verification SMS has been resent.")};return a(()=>{const e=setInterval(()=>{b(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),a(()=>{c&&(async()=>{(await k("/otp/generate-email-otp",{method:"GET",headers:{"Content-Type":"application/json"}})).ok?n("/verifyEmailOTP"):u("Failed to send Email code. If this persists, refresh the page and try registering again.")})()},[c,n,k]),e("div",{className:Fe,children:o("div",{className:Ge,children:[e("h2",{className:Le,children:"Verify Your Phone Number"}),e("p",{className:Ve,children:"Enter the code sent to your phone number."}),m&&e("p",{className:He,children:m}),h&&e("p",{className:De,children:h}),o("form",{onSubmit:async e=>{if(e.preventDefault(),u(""),6===l.length){p(!0);try{v()}catch{u("Unexpected error occurred.")}finally{p(!1)}}else u("Please enter a valid code.")},className:Re,children:[o("div",{children:[o("label",{htmlFor:"phoneCode",className:Ue,children:["Phone Verification Code ",(P=c,!0===P?e("span",{className:"text-green-400 ml-2",children:"✅"}):!1===P?e("span",{className:"text-red-400 ml-2",children:"❌"}):null)," -"," ",o("span",{className:qe,children:["Code expires in: ",(w=y,`${Math.floor(w/60).toString().padStart(2,"0")}:${(w%60).toString().padStart(2,"0")}`)]})]}),e(Ze,{length:6,value:l,onChange:s}),e("button",{type:"button",onClick:()=>x(),className:Ke,children:"Resend code to phone"})]}),e("button",{type:"submit",className:Je,children:g?"Verifying...":"Verify & Continue"}),e("button",{type:"button",onClick:()=>n("/login"),className:We,children:"Back to login"})]})]})});var w,P},Xe=()=>{const n=d(),{apiHost:i,mode:r}=C(),{validateToken:l}=w(),[s,c]=t(!1),[_,m]=t(""),[u,g]=t(300),[p,h]=t(""),[f,y]=t(""),[b,k]=t(!1),v=N({authMode:r,authHost:i});return a(()=>{const e=setInterval(()=>{g(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),a(()=>{!async function(){const e=await de();k(e)}()},[]),e("div",{className:Fe,children:o("div",{className:Ge,children:[e("h2",{className:Le,children:"Verify Your Email"}),e("p",{className:Ve,children:"We sent you a verification email. Enter the code below."}),p&&e("p",{className:He,children:p}),f&&e("p",{className:De,children:f}),o("form",{onSubmit:async e=>{if(e.preventDefault(),h(""),6===_.length){c(!0);try{if(!(await v("/otp/verify-email-otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({verificationToken:_}),credentials:"include"})).ok)return void h("Verification failed.");b?n("/registerPasskey"):(await l(),n("/"))}catch(e){console.error(e),h("Verification failed.")}finally{c(!1)}}else h("Please enter a valid code.")},className:Re,children:[o("div",{children:[o("label",{htmlFor:"emailCode",className:Ue,children:["Email Verification Code",o("span",{className:qe,children:[" ","— Code expires in ",(x=u,`${Math.floor(x/60).toString().padStart(2,"0")}:${(x%60).toString().padStart(2,"0")}`)]})]}),e(Ze,{length:6,value:_,onChange:m,inputMode:"text"}),e("button",{type:"button",onClick:async()=>{h(""),y("");(await v("/otp/generate-email-otp",{method:"GET",headers:{"Content-Type":"application/json"}})).ok?y("Verification email has been resent."):h("Failed to send Email code. If this persists, refresh the page and try again.")},className:Ke,children:"Resend code to email"})]}),e("button",{type:"submit",className:Je,disabled:s,children:s?"Verifying...":"Verify & Continue"}),e("button",{type:"button",onClick:()=>n("/login"),className:We,children:"Back to login"})]})]})});var x};var eo={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"};M(".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 oo=()=>{const[n]=c(),i=d(),r=n.get("token"),{apiHost:l,mode:s}=C(),[_,m]=t(""),[u,g]=t(""),p=N({authMode:s,authHost:l});return a(()=>{r?(async()=>{if(!(await p(`/magic-link/verify/${r}`,{method:"GET",headers:{"Content-Type":"application/json"}})).ok)return console.error("Failed to verify token"),void m("Failed to verify token");new BroadcastChannel("seamless-auth").postMessage({type:"MAGIC_LINK_AUTH_SUCCESS"}),g("You have been verified on the device and browser that initiated this request"),setTimeout(()=>{i("/")},900)})():(m("Missing token for verification."),console.error("No token found",r))},[r,p,i]),e("div",{className:eo.container,children:o("div",{className:eo.card,children:[e("h1",{className:eo.title,children:"Verifying your login"}),o("div",{className:eo.verificationContent,children:[!u&&!_&&e("div",{className:eo.spinner}),u&&e("div",{className:eo.successIcon,children:e("svg",{viewBox:"0 0 24 24",className:eo.checkIcon,fill:"none",stroke:"currentColor",strokeWidth:"2",children:e("path",{d:"M5 13l4 4L19 7"})})}),!u&&!_&&e("p",{className:eo.helperText,children:"Please wait while we securely verify your sign-in link."}),u&&e("p",{className:eo.successText,children:"Login verified. Redirecting…"}),_&&e("p",{className:eo.error,children:_})]})]})})};var no="magiclink-module__container___45zcA",io="magiclink-module__card___Au9oN",ro="magiclink-module__iconWrapper___k5ndr",to="magiclink-module__mailIcon___Pwb7q",ao="magiclink-module__iconRing___bdLvf",lo="magiclink-module__heading___b9cre",so="magiclink-module__message___kiVFj",co="magiclink-module__identifier___JtcFM",_o="magiclink-module__helperText___7Mlfh",mo="magiclink-module__actions___64I-3",uo="magiclink-module__secondaryButton___BntAI",go="magiclink-module__cooldown___Ib4rm",po="magiclink-module__linkButton___maJiv";M(".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 ho=()=>{const{apiHost:n,mode:i}=C(),{validateToken:r}=w(),l=d(),s=_(),c=N({authMode:i,authHost:n}),m=s.state?.identifier,[u,g]=t(30);a(()=>{const e=setInterval(()=>{g(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]);return a(()=>{const e=new BroadcastChannel("seamless-auth");return e.onmessage=async e=>{if("MAGIC_LINK_AUTH_SUCCESS"===e.data?.type){200===(await c("/magic-link/check",{method:"GET",headers:{"Content-Type":"application/json"}})).status&&(await r(),l("/"))}},()=>{e.close()}},[c,l,r]),a(()=>{const e=setInterval(async()=>{try{200===(await c("/magic-link/check",{method:"GET",headers:{"Content-Type":"application/json"}})).status&&(await r(),l("/"))}catch{}},5e3);return()=>clearInterval(e)},[n,r,l]),e("div",{className:no,children:o("div",{className:io,children:[o("div",{className:ro,children:[e("div",{className:ao}),o("svg",{className:to,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:lo,children:"Check your email"}),e("p",{className:so,children:"If an account exists for this address, we sent a secure sign-in link."}),e("div",{className:co,children:m}),e("p",{className:_o,children:"Open the email and click the link to finish signing in."}),e("p",{className:_o,children:"Didn’t receive anything? Check your spam folder or try creating a new account."}),o("div",{className:mo,children:[e("button",{className:uo,disabled:u>0,onClick:async()=>{u>0||(await c("/magic-link",{method:"GET",headers:{"Content-Type":"application/json"}}),g(30))},children:"Resend link"}),u>0&&o("div",{className:go,children:["Available in ",u,"s"]}),e("button",{className:po,onClick:()=>l("/login"),children:"Change email or phone"})]})]})})},fo=()=>o(m,{children:[e(u,{path:"/login",element:e(_e,{})}),e(u,{path:"/passKeyLogin",element:e(he,{})}),e(u,{path:"/verifyPhoneOTP",element:e(Qe,{})}),e(u,{path:"/verifyEmailOTP",element:e(Xe,{})}),e(u,{path:"/verify-magiclink",element:e(oo,{})}),e(u,{path:"/registerPasskey",element:e(ze,{})}),e(u,{path:"/magic-link-sent",element:e(ho,{})}),e(u,{path:"*",element:e(g,{to:"/login",replace:!0})})]});export{T as AuthProvider,fo as AuthRoutes,C as useAuth};
1
+ import{jsx as e,jsxs as o,Fragment as n}from"react/jsx-runtime";import{createContext as i,useContext as r,useState as t,useEffect as a,useCallback as l,useRef as s}from"react";import{useNavigate as d,useSearchParams as c,useLocation as _,Routes as m,Route as u,Navigate as g}from"react-router-dom";import{startAuthentication as p,startRegistration as h,WebAuthnError as f}from"@simplewebauthn/browser";import y,{AsYouType as b,parsePhoneNumberFromString as k}from"libphonenumber-js";const v=i(void 0),x=({value:o,children:n})=>e(v.Provider,{value:o,children:n}),w=()=>{const e=r(v);if(!e)throw new Error("useInternalAuth must be used within InternalAuthProvider");return e},N=e=>{const{authMode:o,authHost:n}=e;return async function(e,i){const r=`${n}${"server"===o?"auth":""}${e.startsWith("/")?e:`/${e}`}`,t={...i,credentials:"include",headers:{"Content-Type":"application/json",...i?.headers}},a=await fetch(r,t);if(a.ok)return a;throw console.warn("Auth fetch failed:",a.status,r),new Error(`Failed to make API call to ${r}`)}};const P=i(void 0),C=()=>{const e=r(P);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e},T=({children:o,apiHost:n,autoDetectPreviousSignin:i=!0,mode:r="web"})=>{const[s,d]=t(null),[c,_]=t([]),[m,u]=t(!1),[g,p]=t(!0),[h,f]=t(null),{hasSignedInBefore:y,markSignedIn:b}=function(e="seamlessauth_seen"){const[o,n]=t(!1);return a(()=>{try{"true"===localStorage.getItem(e)&&n(!0)}catch{}},[e]),{hasSignedInBefore:o,markSignedIn:()=>{try{localStorage.setItem(e,"true"),n(!0)}catch{}}}}(),[k]=t(r),v=N({authMode:k,authHost:n}),w=l(async()=>{if(s)try{await v("/logout",{method:"GET"})}catch{console.error("Error during logout")}finally{u(!1),d(null),f(null)}},[v,s]),C=async()=>{p(!0);try{const e=await v("users/me",{method:"GET"});if(e.ok){const{user:o,credentials:n}=await e.json();d(o),_(n),u(!0)}else w()}catch{w()}finally{p(!1)}};return a(()=>{C()},[]),a(()=>{s&&m&&b()},[s,m,b]),e(P.Provider,{value:{user:s,logout:w,loading:g,deleteUser:async()=>{try{if((await v("/users/delete",{method:"delete"})).ok)return d(null),u(!1),void f(null);throw new Error("Could not delete user.")}catch(e){throw console.error("Something went wrong deleting user:",e),new Error("Could not delete user.")}},isAuthenticated:m,hasRole:e=>s?.roles?.includes(e),apiHost:n,token:h,markSignedIn:b,hasSignedInBefore:!!i&&y,mode:r,credentials:c,updateCredential:async e=>{const o=await v("users/credentials",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({friendlyName:e.friendlyName,id:e.id})});if(o.ok)return o.json();throw new Error("Failed to update credential")},deleteCredential:async e=>{const o=await v("users/credentials",{method:"DELETE",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e})});if(o.ok)return o.json();throw new Error("Failed to update credential")}},children:e(x,{value:{validateToken:C,setLoading:p},children:o})})};function M(e,o){void 0===o&&(o={});var n=o.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&i.firstChild?i.insertBefore(r,i.firstChild):i.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}var S="login-module__container___YggDx",I="login-module__card___Ub-Py",O="login-module__heading___neEqb",E="login-module__inputGroup___P6qgS",A="login-module__label___mx5vu",j="login-module__input___U07lW",B="login-module__helperText___kDQ4-",z="login-module__error___40zxh",F="login-module__button___0kFBs",G="login-module__toggle___1JiG1",L="login-module__underline___gs-RS",V="login-module__phoneRow___oeNtq",D="login-module__select___rRV1O",H="login-module__phoneInput___2MPQC",R="login-module__fallbackCard___HdIk-",U="login-module__fallbackHeader___-il2v",q="login-module__fallbackDescription___ea5EB",K="login-module__fallbackActions___AD3ni",J="login-module__fallbackActionButton___lFgWf",W="login-module__actionTitle___ycrMp",$="login-module__actionSubtext___opaIV",Y="login-module__linkButton___5lsoe";M(".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 Z="termsModal-module__overlay___-j6r5",Q="termsModal-module__modal___4PxZV",X="termsModal-module__header___B7wxb",ee="termsModal-module__title___Sucwt",oe="termsModal-module__closeBtn___evIs5",ne="termsModal-module__content___5BDhN",ie="termsModal-module__link___oPZrU";M(".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 re=({isOpen:n,onClose:i})=>{const r=s(null);return a(()=>{const e=e=>{"Escape"===e.key&&i()};return n&&(document.addEventListener("keydown",e),r.current?.focus()),()=>{document.removeEventListener("keydown",e)}},[n,i]),n?e("div",{className:Z,role:"dialog","aria-modal":"true","aria-labelledby":"terms-title",children:o("div",{className:Q,tabIndex:-1,ref:r,children:[o("div",{className:X,children:[e("h2",{id:"terms-title",className:ee,children:"SMS Terms & Conditions"}),e("button",{onClick:i,className:oe,children:"×"})]}),o("div",{className:ne,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:ie,href:"mailto:support@seamlessauth.com",children:"support@seamlessauth.com"}),"."]})]})]})}):null},te=[{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 ae({phone:n,setPhone:i,phoneError:r,setPhoneError:l}){const[s,d]=t(!1),[c,_]=t(te[0]);a(()=>{const e=function(){try{const e=Intl.DateTimeFormat().resolvedOptions().locale||"en-US",o=e.split("-")[1]?.toUpperCase()||"US";return te.find(e=>e.code===o)||te[0]}catch{return te[0]}}();_(e)},[]);return o("div",{className:E,children:[e("label",{id:"phone",className:A,children:"Phone Number"}),o("div",{className:V,children:[e("select",{value:c.code,onChange:e=>{const o=te.find(o=>o.code===e.target.value);if(o){_(o);const e=n.replace(/^\+\d+/,""),r=(new b).input(o.dialCode+e);i(r)}},className:D,children:te.map(e=>o("option",{value:e.code,children:[e.flag," (",e.dialCode,")"]},e.code))}),e("input",{"aria-labelledby":"phone",type:"tel",value:n,onChange:e=>{const o=e.target.value,n=o.startsWith(c.dialCode)?o:c.dialCode+o,t=(new b).input(n);i(t),r&&l("")},onBlur:()=>{if(n){const e=k(n),o=e?.isValid();l(o?"":"Please enter a valid phone number.")}},autoComplete:"off",placeholder:"(555) 123-4567",className:H})]}),o("p",{className:B,children:["By signing up, you agree to our"," ",e("button",{onClick:()=>d(!0),className:L,children:"SMS Terms & Conditions"}),"."]}),r&&e("p",{className:z,children:r}),e(re,{isOpen:s,onClose:()=>d(!1)})]})}const le=e=>{if("string"!=typeof e)return!1;const o=e.trim();if(o.length<3||o.length>320)return!1;const n=o.split("@");if(2!==n.length)return!1;const[i,r]=n;return!(!/^[A-Za-z0-9._%+-]+$/.test(i)||i.startsWith(".")||i.endsWith(".")||i.includes(".."))&&!(!/^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/.test(r)||r.startsWith("-")||r.endsWith("-")||r.startsWith(".")||r.endsWith(".")||r.includes(".."))},se=e=>{const o=y(e);return o?.isValid()||!1};async function de(){if(window.PublicKeyCredential&&"function"==typeof window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable)try{return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()}catch(e){return console.error("Error checking passkey support:",e),!1}return!1}const ce=({identifier:n,onMagicLink:i,onPhoneOtp:r,onPasskeyRetry:t})=>{const a=le(n),l=se(n);return o("div",{className:R,children:[e("div",{className:U,children:"Passkeys unavailable on this device"}),e("p",{className:q,children:"Choose another secure sign-in method."}),o("div",{className:K,children:[a&&o("button",{type:"button",className:J,onClick:i,children:[e("span",{className:W,children:"Email Magic Link"}),e("span",{className:$,children:"Send a secure sign-in link to your email"})]}),l&&o("button",{type:"button",className:J,onClick:r,children:[e("span",{className:W,children:"Text Message Code"}),e("span",{className:$,children:"Receive a one-time code via SMS"})]})]}),e("button",{type:"button",className:Y,onClick:t,children:"Try passkey anyway"})]})},_e=()=>{const i=d(),{apiHost:r,hasSignedInBefore:l,mode:s}=C(),{validateToken:c}=w(),[_,m]=t(""),[u,g]=t(""),[h,f]=t("register"),[y,b]=t(""),[k,v]=t(""),[x,P]=t(""),[T,M]=t(""),[L,V]=t(""),[D,H]=t(!1),[R,U]=t(!1),[q,K]=t(null),J=N({authMode:s,authHost:r});a(()=>{!async function(){const e=await de();H(e)}(),l&&f("login");const e=new URLSearchParams(window.location.search).get("bootstrapToken");e&&e.length>10&&(K(e),console.log("Bootstrap token detected in URL"))},[l]);const W=async()=>{try{const e=await J("/webAuthn/login/start",{method:"POST"});if(!e.ok)return void console.error("Something went wrong getting webauthn options");const o=await e.json(),n=await p({optionsJSON:o}),r=await J("/webAuthn/login/finish",{method:"POST",body:JSON.stringify({assertionResponse:n})});r.ok||console.error("Failed to verify passkey");const t=await r.json();if("Success"===t.message)return t.mfaLogin?void i("/mfaLogin"):(await c(),void i("/"));console.error("Passkey login failed:",t.message)}catch(e){console.error("Passkey login error:",e)}};return e("div",{className:S,children:o("div",{className:I,children:[e("h2",{className:O,children:"login"===h?"Sign In":"Create Account"}),e(n,{children:o("form",{onSubmit:async e=>{e.preventDefault(),"login"===h&&(async()=>{if(v(""),(await J("/login",{method:"POST",body:JSON.stringify({identifier:_,passkeyAvailable:D})})).ok)if(D)try{await W()}catch(e){console.error("Passkey login failed",e),U(!0)}else U(!0);else v("Failed to send login link. Please try again.")})(),"register"===h&&(async()=>{v("");try{const e=await J("/registration/register",{method:"POST",body:JSON.stringify({email:u,phone:y,...q?{bootstrapToken:q}:{}})});if(!e.ok)return void v("Failed to register. Please try again.");"Success"===(await e.json()).message&&i("/verifyPhoneOTP"),v("An unexpected error occured. Try again. If the problem persists, try resetting your password")}catch(e){console.error("Unexpected login error",e),v("An unexpected error occured. Try again. If the problem persists, try resetting your password")}})()},children:["login"===h&&o("div",{className:E,children:[e("label",{htmlFor:"identifier",className:A,children:"Email Address / Phone Number"}),e("input",{id:"identifier",type:"text",value:_,onChange:e=>{const o=e.target.value;m(o)},autoComplete:"off",placeholder:"Email or Phone Number",className:j,onBlur:()=>{if(_){const e=le(_)||se(_);V(e?"":"Please enter a valid email or phone number")}},required:!0}),e("p",{className:B,children:"Phone numbers must include a country code e.g. +1"}),R&&e(ce,{identifier:_,onMagicLink:async()=>{try{if(!(await J("/magic-link",{method:"GET"})).ok)return void v("Failed to send magic link.");i("/magic-link-sent")}catch(e){console.error(e),v("Failed to send magic link.")}},onPhoneOtp:async()=>{try{if(!(await J("/login/phone-otp",{method:"POST",body:JSON.stringify({identifier:_})})).ok)return void v("Failed to send OTP.");i("/verifyPhoneOTP")}catch(e){console.error(e),v("Failed to send OTP.")}},onPasskeyRetry:W}),L&&e("p",{className:z,children:L})]}),"register"===h&&o(n,{children:[o("div",{className:E,children:[e("label",{htmlFor:"email",className:A,children:"Email Address"}),e("input",{id:"email",type:"email",value:u,onChange:e=>{const o=e.target.value;g(o)},autoComplete:"off",className:j,onBlur:()=>{if(u){const e=le(u);M(e?"":"Please enter a valid email")}},required:!0}),T&&e("p",{className:z,children:T})]}),e(ae,{phone:y,setPhone:b,phoneError:x,setPhoneError:P})]}),e("button",{type:"submit",className:F,disabled:!("login"===h&&_?le(_)||se(_):le(u)&&se(y)),children:"login"===h?"Login":"Register"}),k&&e("p",{className:z,children:k}),e("button",{type:"button",onClick:()=>f("login"===h?"register":"login"),className:G,children:"login"===h?"Don't have an account? Create one":"Already have an account? Sign in"})]})})]})})};var me="passKeyLogin-module__container___IUKxF",ue="passKeyLogin-module__card___2sKM1",ge="passKeyLogin-module__title___HZxvc",pe="passKeyLogin-module__button___FvR4I";M(".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 he=()=>{const n=d(),{apiHost:i,mode:r}=C(),{validateToken:t}=w(),a=N({authMode:r,authHost:i});return e("div",{className:me,children:o("div",{className:ue,children:[e("h2",{className:ge,children:"Login with Passkey"}),e("button",{onClick:async()=>{try{const e=await a("/webAuthn/login/start",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include"});if(!e.ok)return void console.error("Something went wrong getting webauthn options");const o=await e.json(),i=await p({optionsJSON:o}),r=await a("/webAuthn/login/finish",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({assertionResponse:i}),credentials:"include"});r.ok||console.error("Failed to verify passkey");const l=await r.json();if("Success"===l.message)return l.mfaLogin&&n("/mfaLogin"),await t(),void n("/");console.error("Passkey login failed")}catch{console.error("Passkey login error")}},className:pe,children:"Use Passkey"})]})})};var fe="registerPasskey-module__container___jqEh8",ye="registerPasskey-module__card___MJAyC",be="registerPasskey-module__loading___Q4i1x",ke="registerPasskey-module__spinner___V1nhd",ve="registerPasskey-module__supported___ihTih",xe="registerPasskey-module__title___vn2Qu",we="registerPasskey-module__description___AWmO-",Ne="registerPasskey-module__button___D3b4B",Pe="registerPasskey-module__message___RiOw-",Ce="registerPasskey-module__success___HP5aX",Te="registerPasskey-module__error___hGiqE";M(".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 Me="deviceNameModal-module__overlay___fmdPd",Se="deviceNameModal-module__modal___uoEda",Ie="deviceNameModal-module__description___-HMTA",Oe="deviceNameModal-module__input___4vQMI",Ee="deviceNameModal-module__actions___KXw7b",Ae="deviceNameModal-module__primary___9Ozlk",je="deviceNameModal-module__secondary___HILhc";M(".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 Be=({isOpen:n,onCancel:i,onConfirm:r})=>{const[a,l]=t("");return n?e("div",{className:Me,children:o("div",{className:Se,children:[e("h3",{children:"Name This Device"}),e("p",{className:Ie,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:a,onChange:e=>l(e.target.value),className:Oe,autoFocus:!0}),o("div",{className:Ee,children:[e("button",{onClick:i,className:je,children:"Cancel"}),e("button",{onClick:()=>r(a.trim()),disabled:!a.trim(),className:Ae,children:"Continue"})]})]})}):null},ze=()=>{const{apiHost:i,mode:r}=C(),{validateToken:l}=w(),s=d(),[c,_]=t("idle"),[m,u]=t(""),[g,p]=t(!1),[y,b]=t(!1),[k,v]=t(null),x=N({authMode:r,authHost:i});a(()=>{!async function(){const e=await de();p(e)}()},[]);const P=async(e,o)=>{if(!(await x("/webAuthn/register/finish",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attestationResponse:e,metadata:o}),credentials:"include"})).ok)throw new Error("Verification failed");await l()};return o(n,{children:[e("div",{className:fe,children:e("div",{className:ye,children:o("div",g?{className:ve,children:[e("h2",{className:xe,children:"Secure Your Account with a Passkey"}),e("p",{className:we,children:"Your device supports passkeys! Register one to skip passwords forever."}),e("button",{onClick:()=>{const{platform:e,browser:o,deviceInfo:n}=function(){const e=navigator.userAgent.toLowerCase();let o="unknown",n="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)&&(n="chrome"),/safari/.test(e)&&!/chrome/.test(e)&&(n="safari"),/firefox/.test(e)&&(n="firefox"),/edg/.test(e)&&(n="edge"),{platform:o,browser:n,deviceInfo:`${o} • ${n}`}}();v({platform:e,browser:o,deviceInfo:n}),b(!0)},disabled:"loading"===c,className:Ne,children:"loading"===c?"Registering...":"Register Passkey"}),m&&e("p",{className:`${Pe} ${"success"===c?Ce:Te}`,children:m})]}:{className:be,children:[e("div",{className:ke}),e("span",{children:"Checking for Passkey Support..."})]})})}),e(Be,{isOpen:y,onCancel:()=>{b(!1),v(null)},onConfirm:async e=>{if(!k)return;const{platform:o,browser:n,deviceInfo:i}=k;_("loading");try{const r=await x("/webAuthn/register/start",{method:"GET",headers:{"Content-Type":"application/json"},credentials:"include"});if(!r.ok)throw new Error("Failed to fetch challenge");const t=await r.json();let a;try{a=await h({optionsJSON:t})}catch(e){if(e instanceof f)throw new Error(e.name);throw e}await P(a,{friendlyName:e,platform:o,browser:n,deviceInfo:i}),_("success"),u("Passkey registered successfully."),s("/")}catch(e){console.error(e),_("error"),u("Error registering passkey.")}finally{b(!1),v(null)}}})]})};var Fe="verifyOTP-module__container___wgoDE",Ge="verifyOTP-module__card___3cs2p",Le="verifyOTP-module__title___fZ-1d",Ve="verifyOTP-module__subtitle___dGSu3",De="verifyOTP-module__error___GEtlG",He="verifyOTP-module__success___46TjG",Re="verifyOTP-module__form___jiGG-",Ue="verifyOTP-module__label___Zq5Mi",qe="verifyOTP-module__timer___smq-a",Ke="verifyOTP-module__resend___PlmkG",Je="verifyOTP-module__button___8pIuO",We="verifyOTP-module__toggle___wbzVa";M(".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 $e="otpInput-module__otpContainer___MUjby",Ye="otpInput-module__otpInput___3YMVm";M(".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 Ze=({length:o=6,value:n,inputMode:i="numeric",onChange:r,name:t="otp"})=>{const a=s([]),l=n.split("").concat(Array(o).fill("")).slice(0,o),d=(e,o)=>{var n;if(o.length>1)c(e,o);else if(!o||(n=o,"numeric"===i?/^\d$/.test(n):/^[a-zA-Z]$/.test(n))){const n=[...l];n[e]=o;const i=n.join("");r(i),o&&a.current[e+1]&&a.current[e+1]?.focus()}},c=(e,n)=>{let t=n;t="numeric"===i?n.replace(/\D/g,""):n.replace(/[^a-zA-Z]/g,"");const s=t.slice(0,o).split(""),d=[...l];s.forEach((n,i)=>{e+i<o&&(d[e+i]=n)}),r(d.join("")),a.current[Math.min(e+s.length,o-1)]?.focus()};return e("div",{className:$e,role:"group","aria-label":"One-time password input",onPaste:e=>{e.preventDefault(),c(0,e.clipboardData.getData("text"))},children:l.map((n,s)=>e("input",{ref:e=>a.current[s]=e,type:"text",inputMode:"numeric"===i?"numeric":"text",autoComplete:"one-time-code",name:`${t}-${s}`,maxLength:1,value:n,className:Ye,onChange:e=>d(s,e.target.value),onKeyDown:e=>((e,n)=>{if("Backspace"===n.key){n.preventDefault();const o=[...l];l[e]?(o[e]="",r(o.join(""))):e>0&&(o[e-1]="",r(o.join("")),a.current[e-1]?.focus())}"ArrowLeft"===n.key&&e>0&&a.current[e-1]?.focus(),"ArrowRight"===n.key&&e<o-1&&a.current[e+1]?.focus()})(s,e),"aria-label":`Digit ${s+1}`},s))})},Qe=()=>{const n=d(),{apiHost:i,mode:r}=C(),[l,s]=t(""),[c,_]=t(null),[m,u]=t(""),[g,p]=t(!1),[h,f]=t(""),[y,b]=t(300),k=N({authMode:r,authHost:i}),v=async()=>{p(!0);try{if(!c){(await k("/otp/verify-phone-otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({verificationToken:l}),credentials:"include"})).ok?_(!0):u("Verification failed.")}}catch(e){console.error(e),u("Verification failed.")}p(!1)},x=async()=>{f(""),await(async()=>{u("");const e=await k("/otp/generate-phone-otp",{method:"GET",headers:{"Content-Type":"application/json"}}),o=await e.json();e.ok?(o.token&&localStorage.setItem("token",o.token),f("Verification SMS has been resent.")):u("Failed to send SMS code. If this persists, refresh the page and try again.")})(),f("Verification SMS has been resent.")};return a(()=>{const e=setInterval(()=>{b(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),a(()=>{c&&(async()=>{(await k("/otp/generate-email-otp",{method:"GET",headers:{"Content-Type":"application/json"}})).ok?n("/verifyEmailOTP"):u("Failed to send Email code. If this persists, refresh the page and try registering again.")})()},[c,n,k]),e("div",{className:Fe,children:o("div",{className:Ge,children:[e("h2",{className:Le,children:"Verify Your Phone Number"}),e("p",{className:Ve,children:"Enter the code sent to your phone number."}),m&&e("p",{className:De,children:m}),h&&e("p",{className:He,children:h}),o("form",{onSubmit:async e=>{if(e.preventDefault(),u(""),6===l.length){p(!0);try{v()}catch{u("Unexpected error occurred.")}finally{p(!1)}}else u("Please enter a valid code.")},className:Re,children:[o("div",{children:[o("label",{htmlFor:"phoneCode",className:Ue,children:["Phone Verification Code ",(P=c,!0===P?e("span",{className:"text-green-400 ml-2",children:"✅"}):!1===P?e("span",{className:"text-red-400 ml-2",children:"❌"}):null)," -"," ",o("span",{className:qe,children:["Code expires in: ",(w=y,`${Math.floor(w/60).toString().padStart(2,"0")}:${(w%60).toString().padStart(2,"0")}`)]})]}),e(Ze,{length:6,value:l,onChange:s}),e("button",{type:"button",onClick:()=>x(),className:Ke,children:"Resend code to phone"})]}),e("button",{type:"submit",className:Je,children:g?"Verifying...":"Verify & Continue"}),e("button",{type:"button",onClick:()=>n("/login"),className:We,children:"Back to login"})]})]})});var w,P},Xe=()=>{const n=d(),{apiHost:i,mode:r}=C(),{validateToken:l}=w(),[s,c]=t(!1),[_,m]=t(""),[u,g]=t(300),[p,h]=t(""),[f,y]=t(""),[b,k]=t(!1),v=N({authMode:r,authHost:i});return a(()=>{const e=setInterval(()=>{g(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),a(()=>{!async function(){const e=await de();k(e)}()},[]),e("div",{className:Fe,children:o("div",{className:Ge,children:[e("h2",{className:Le,children:"Verify Your Email"}),e("p",{className:Ve,children:"We sent you a verification email. Enter the code below."}),p&&e("p",{className:De,children:p}),f&&e("p",{className:He,children:f}),o("form",{onSubmit:async e=>{if(e.preventDefault(),h(""),6===_.length){c(!0);try{if(!(await v("/otp/verify-email-otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({verificationToken:_}),credentials:"include"})).ok)return void h("Verification failed.");b?n("/registerPasskey"):(await l(),n("/"))}catch(e){console.error(e),h("Verification failed.")}finally{c(!1)}}else h("Please enter a valid code.")},className:Re,children:[o("div",{children:[o("label",{htmlFor:"emailCode",className:Ue,children:["Email Verification Code",o("span",{className:qe,children:[" ","— Code expires in ",(x=u,`${Math.floor(x/60).toString().padStart(2,"0")}:${(x%60).toString().padStart(2,"0")}`)]})]}),e(Ze,{length:6,value:_,onChange:m,inputMode:"text"}),e("button",{type:"button",onClick:async()=>{h(""),y("");(await v("/otp/generate-email-otp",{method:"GET",headers:{"Content-Type":"application/json"}})).ok?y("Verification email has been resent."):h("Failed to send Email code. If this persists, refresh the page and try again.")},className:Ke,children:"Resend code to email"})]}),e("button",{type:"submit",className:Je,disabled:s,children:s?"Verifying...":"Verify & Continue"}),e("button",{type:"button",onClick:()=>n("/login"),className:We,children:"Back to login"})]})]})});var x};var eo={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"};M(".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 oo=()=>{const[n]=c(),i=d(),r=n.get("token"),{apiHost:l,mode:s}=C(),[_,m]=t(""),[u,g]=t(""),p=N({authMode:s,authHost:l});return a(()=>{r?(async()=>{if(!(await p(`/magic-link/verify/${r}`,{method:"GET",headers:{"Content-Type":"application/json"}})).ok)return console.error("Failed to verify token"),void m("Failed to verify token");new BroadcastChannel("seamless-auth").postMessage({type:"MAGIC_LINK_AUTH_SUCCESS"}),g("You have been verified on the device and browser that initiated this request"),setTimeout(()=>{i("/")},900)})():(m("Missing token for verification."),console.error("No token found",r))},[r,p,i]),e("div",{className:eo.container,children:o("div",{className:eo.card,children:[e("h1",{className:eo.title,children:"Verifying your login"}),o("div",{className:eo.verificationContent,children:[!u&&!_&&e("div",{className:eo.spinner}),u&&e("div",{className:eo.successIcon,children:e("svg",{viewBox:"0 0 24 24",className:eo.checkIcon,fill:"none",stroke:"currentColor",strokeWidth:"2",children:e("path",{d:"M5 13l4 4L19 7"})})}),!u&&!_&&e("p",{className:eo.helperText,children:"Please wait while we securely verify your sign-in link."}),u&&e("p",{className:eo.successText,children:"Login verified. Redirecting…"}),_&&e("p",{className:eo.error,children:_})]})]})})};var no="magiclink-module__container___45zcA",io="magiclink-module__card___Au9oN",ro="magiclink-module__iconWrapper___k5ndr",to="magiclink-module__mailIcon___Pwb7q",ao="magiclink-module__iconRing___bdLvf",lo="magiclink-module__heading___b9cre",so="magiclink-module__message___kiVFj",co="magiclink-module__identifier___JtcFM",_o="magiclink-module__helperText___7Mlfh",mo="magiclink-module__actions___64I-3",uo="magiclink-module__secondaryButton___BntAI",go="magiclink-module__cooldown___Ib4rm",po="magiclink-module__linkButton___maJiv";M(".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 ho=()=>{const{apiHost:n,mode:i}=C(),{validateToken:r}=w(),l=d(),s=_(),c=N({authMode:i,authHost:n}),m=s.state?.identifier,[u,g]=t(30);a(()=>{const e=setInterval(()=>{g(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]);return a(()=>{const e=new BroadcastChannel("seamless-auth");return e.onmessage=async e=>{if("MAGIC_LINK_AUTH_SUCCESS"===e.data?.type){200===(await c("/magic-link/check",{method:"GET",headers:{"Content-Type":"application/json"}})).status&&(await r(),l("/"))}},()=>{e.close()}},[c,l,r]),a(()=>{const e=setInterval(async()=>{try{200===(await c("/magic-link/check",{method:"GET",headers:{"Content-Type":"application/json"}})).status&&(await r(),l("/"))}catch{}},5e3);return()=>clearInterval(e)},[n,r,l]),e("div",{className:no,children:o("div",{className:io,children:[o("div",{className:ro,children:[e("div",{className:ao}),o("svg",{className:to,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:lo,children:"Check your email"}),e("p",{className:so,children:"If an account exists for this address, we sent a secure sign-in link."}),e("div",{className:co,children:m}),e("p",{className:_o,children:"Open the email and click the link to finish signing in."}),e("p",{className:_o,children:"Didn’t receive anything? Check your spam folder or try creating a new account."}),o("div",{className:mo,children:[e("button",{className:uo,disabled:u>0,onClick:async()=>{u>0||(await c("/magic-link",{method:"GET",headers:{"Content-Type":"application/json"}}),g(30))},children:"Resend link"}),u>0&&o("div",{className:go,children:["Available in ",u,"s"]}),e("button",{className:po,onClick:()=>l("/login"),children:"Change email or phone"})]})]})})},fo=()=>o(m,{children:[e(u,{path:"/login",element:e(_e,{})}),e(u,{path:"/passKeyLogin",element:e(he,{})}),e(u,{path:"/verifyPhoneOTP",element:e(Qe,{})}),e(u,{path:"/verifyEmailOTP",element:e(Xe,{})}),e(u,{path:"/verify-magiclink",element:e(oo,{})}),e(u,{path:"/registerPasskey",element:e(ze,{})}),e(u,{path:"/magic-link-sent",element:e(ho,{})}),e(u,{path:"*",element:e(g,{to:"/login",replace:!0})})]});export{T as AuthProvider,fo as AuthRoutes,C as useAuth};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/context/InternalAuthContext.tsx","../src/fetchWithAuth.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/utils.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,"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],"names":["InternalAuthContext","createContext","undefined","InternalAuthProvider","value","children","_jsx","Provider","useInternalAuth","context","useContext","Error","createFetchWithAuth","opts","authMode","authHost","async","input","init","url","startsWith","requestInit","credentials","headers","response","fetch","ok","console","warn","status","AuthContext","useAuth","AuthProvider","apiHost","autoDetectPreviousSignin","mode","user","setUser","useState","setCredentials","isAuthenticated","setIsAuthenticated","loading","setLoading","token","setToken","hasSignedInBefore","markSignedIn","storageKey","setHasSignedInBefore","useEffect","localStorage","getItem","setItem","usePreviousSignIn","fetchWithAuth","logout","useCallback","method","error","validateToken","json","deleteUser","hasRole","role","roles","includes","updateCredential","credential","body","JSON","stringify","friendlyName","id","deleteCredential","credentialId","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","code","name","dialCode","flag","PhoneInputWithCountryCode","phone","setPhone","phoneError","setPhoneError","showModal","setShowModal","selectedCountry","setSelectedCountry","defaultCountry","locale","Intl","DateTimeFormat","resolvedOptions","countryCode","split","toUpperCase","find","c","getDefaultCountry","onChange","country","target","stripped","replace","newPhone","AsYouType","map","raw","full","formatted","onBlur","parsed","parsePhoneNumberFromString","isValid","autoComplete","placeholder","isValidEmail","email","normalized","trim","length","parts","localPart","domainPart","test","endsWith","isValidPhoneNumber","phoneNumber","isPasskeySupported","window","PublicKeyCredential","isUserVerifyingPlatformAuthenticatorAvailable","AuthFallbackOptions","identifier","onMagicLink","onPhoneOtp","onPasskeyRetry","showMagicLink","showPhoneOtp","Login","navigate","useNavigate","setIdentifier","setEmail","setMode","formErrors","setFormErrors","emailError","setEmailError","identifierError","setIdentifierError","passkeyAvailable","setPasskeyAvailable","showFallbackOptions","setShowFallbackOptions","bootstrapToken","setBootstrapToken","supported","checkSupport","URLSearchParams","location","search","get","log","handlePasskeyLogin","options","startAuthentication","optionsJSON","verificationResponse","assertionResponse","verificationResult","message","mfaLogin","_Fragment","onSubmit","preventDefault","err","login","register","htmlFor","required","disabled","PassKeyLogin","DeviceNameModal","onCancel","onConfirm","setValue","autoFocus","PasskeyRegistration","setStatus","setMessage","showDeviceModal","setShowDeviceModal","pendingMetadata","setPendingMetadata","verifyPassKey","attResp","metadata","attestationResponse","platform","browser","deviceInfo","ua","navigator","userAgent","toLowerCase","parseUserAgent","challengeRes","startRegistration","WebAuthnError","OtpInput","inputMode","inputs","values","concat","Array","fill","slice","onPaste","pasted","clipboardData","getData","digit","i","el","maxLength","index","char","newValue","substring","handleChange","onKeyDown","PhoneRegistration","phoneOtp","setPhoneOtp","phoneVerified","setPhoneVerified","setError","resendMsg","setResendMsg","phoneTimeLeft","setPhoneTimeLeft","verifyPhoneOTP","verificationToken","handleResend","data","onResendPhone","interval","setInterval","prev","clearInterval","nextStep","verified","seconds","Math","floor","toString","padStart","EmailRegistration","emailOtp","setEmailOtp","emailTimeLeft","setEmailTimeLeft","VerifyMagicLink","searchParams","useSearchParams","successMsg","setSuccessMsg","BroadcastChannel","postMessage","setTimeout","verify","container","card","title","verificationContent","spinner","successIcon","viewBox","checkIcon","stroke","strokeWidth","d","helperText","successText","MagicLinkSent","useLocation","state","cooldown","setCooldown","timer","channel","onmessage","event","close","AuthRoutes","Routes","Route","path","element","Navigate","to"],"mappings":"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","x_google_ignoreList":[4]}
1
+ {"version":3,"file":"index.js","sources":["../src/context/InternalAuthContext.tsx","../src/fetchWithAuth.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/utils.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,"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],"names":["InternalAuthContext","createContext","undefined","InternalAuthProvider","value","children","_jsx","Provider","useInternalAuth","context","useContext","Error","createFetchWithAuth","opts","authMode","authHost","async","input","init","url","startsWith","requestInit","credentials","headers","response","fetch","ok","console","warn","status","AuthContext","useAuth","AuthProvider","apiHost","autoDetectPreviousSignin","mode","user","setUser","useState","setCredentials","isAuthenticated","setIsAuthenticated","loading","setLoading","token","setToken","hasSignedInBefore","markSignedIn","storageKey","setHasSignedInBefore","useEffect","localStorage","getItem","setItem","usePreviousSignIn","fetchWithAuth","logout","useCallback","method","error","validateToken","json","deleteUser","hasRole","role","roles","includes","updateCredential","credential","body","JSON","stringify","friendlyName","id","deleteCredential","credentialId","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","code","name","dialCode","flag","PhoneInputWithCountryCode","phone","setPhone","phoneError","setPhoneError","showModal","setShowModal","selectedCountry","setSelectedCountry","defaultCountry","locale","Intl","DateTimeFormat","resolvedOptions","countryCode","split","toUpperCase","find","c","getDefaultCountry","onChange","country","target","stripped","replace","newPhone","AsYouType","map","raw","full","formatted","onBlur","parsed","parsePhoneNumberFromString","isValid","autoComplete","placeholder","isValidEmail","email","normalized","trim","length","parts","localPart","domainPart","test","endsWith","isValidPhoneNumber","phoneNumber","isPasskeySupported","window","PublicKeyCredential","isUserVerifyingPlatformAuthenticatorAvailable","AuthFallbackOptions","identifier","onMagicLink","onPhoneOtp","onPasskeyRetry","showMagicLink","showPhoneOtp","Login","navigate","useNavigate","setIdentifier","setEmail","setMode","formErrors","setFormErrors","emailError","setEmailError","identifierError","setIdentifierError","passkeyAvailable","setPasskeyAvailable","showFallbackOptions","setShowFallbackOptions","bootstrapToken","setBootstrapToken","supported","checkSupport","URLSearchParams","location","search","get","log","handlePasskeyLogin","options","startAuthentication","optionsJSON","verificationResponse","assertionResponse","verificationResult","message","mfaLogin","_Fragment","onSubmit","preventDefault","err","login","register","htmlFor","required","disabled","PassKeyLogin","DeviceNameModal","onCancel","onConfirm","setValue","autoFocus","PasskeyRegistration","setStatus","setMessage","showDeviceModal","setShowDeviceModal","pendingMetadata","setPendingMetadata","verifyPassKey","attResp","metadata","attestationResponse","platform","browser","deviceInfo","ua","navigator","userAgent","toLowerCase","parseUserAgent","challengeRes","startRegistration","WebAuthnError","OtpInput","inputMode","inputs","values","concat","Array","fill","slice","handleChange","index","char","handleBulkInput","newValueArr","newValue","join","cleaned","chars","forEach","i","Math","min","onPaste","clipboardData","getData","el","maxLength","onKeyDown","PhoneRegistration","phoneOtp","setPhoneOtp","phoneVerified","setPhoneVerified","setError","resendMsg","setResendMsg","phoneTimeLeft","setPhoneTimeLeft","verifyPhoneOTP","verificationToken","handleResend","data","onResendPhone","interval","setInterval","prev","clearInterval","nextStep","verified","seconds","floor","toString","padStart","EmailRegistration","emailOtp","setEmailOtp","emailTimeLeft","setEmailTimeLeft","VerifyMagicLink","searchParams","useSearchParams","successMsg","setSuccessMsg","BroadcastChannel","postMessage","setTimeout","verify","container","card","title","verificationContent","spinner","successIcon","viewBox","checkIcon","stroke","strokeWidth","d","helperText","successText","MagicLinkSent","useLocation","state","cooldown","setCooldown","timer","channel","onmessage","event","close","AuthRoutes","Routes","Route","path","element","Navigate","to"],"mappings":"meAaA,MAAMA,EAAsBC,OAAmDC,GAElEC,EAAuB,EAClCC,QACAC,cAMEC,EAACN,EAAoBO,SAAQ,CAACH,MAAOA,EAAKC,SAAGA,IAKpCG,EAAkB,KAC7B,MAAMC,EAAUC,EAAWV,GAC3B,IAAKS,EACH,MAAM,IAAIE,MAAM,4DAElB,OAAOF,GCpBIG,EAAuBC,IAClC,MAAMC,SAAEA,EAAQC,SAAEA,GAAaF,EAE/B,OAAOG,eACLC,EACAC,GAEA,MAEMC,EAAM,GAAGJ,IAFW,WAAbD,EAAwB,OAAS,KAEbG,EAAMG,WAAW,KAAOH,EAAQ,IAAIA,MAE/DI,EAA2B,IAC5BH,EACHI,YAAa,UACbC,QAAS,CACP,eAAgB,sBACbL,GAAMK,UAIPC,QAAiBC,MAAMN,EAAKE,GAElC,GAAIG,EAASE,GAAI,OAAOF,EAGxB,MADAG,QAAQC,KAAK,qBAAsBJ,EAASK,OAAQV,GAC9C,IAAIR,MAAM,8BAA8BQ,IAChD,GC0BF,MAAMW,EAAc7B,OAA2CC,GAMlD6B,EAAU,KACrB,MAAMtB,EAAUC,EAAWoB,GAC3B,IAAKrB,EACH,MAAM,IAAIE,MAAM,+CAElB,OAAOF,GAUIuB,EAA4C,EACvD3B,WACA4B,UACAC,4BAA2B,EAC3BC,OAAO,UAEP,MAAOC,EAAMC,GAAWC,EAAsB,OACvChB,EAAaiB,GAAkBD,EAAuB,KACtDE,EAAiBC,GAAsBH,GAAkB,IACzDI,EAASC,GAAcL,GAAkB,IACzCM,EAAOC,GAAYP,EAA2B,OAC/CQ,kBAAEA,EAAiBC,aAAEA,GCzFvB,SAA4BC,EAAa,qBAC7C,MAAOF,EAAmBG,GAAwBX,GAAS,GAoB3D,OAlBAY,EAAU,KACR,IAEe,SADAC,aAAaC,QAAQJ,IACbC,GAAqB,EAC5C,CAAE,MAEF,GACC,CAACD,IAWG,CAAEF,oBAAmBC,aATP,KACnB,IACEI,aAAaE,QAAQL,EAAY,QACjCC,GAAqB,EACvB,CAAE,MAEF,GAIJ,CDmE8CK,IACrCxC,GAAYwB,EAAmBH,GAEhCoB,EAAgB3C,EAAoB,CACxCE,WACAC,SAAUkB,IAGNuB,EAASC,EAAYzC,UACzB,GAAIoB,EACF,UACQmB,EAAc,UAAW,CAC7BG,OAAQ,OAEZ,CAAE,MACA/B,QAAQgC,MAAM,sBAChB,SACElB,GAAmB,GACnBJ,EAAQ,MACRQ,EAAS,KACX,GAED,CAACU,EAAenB,IAwBbwB,EAAgB5C,UACpB2B,GAAW,GACX,IACE,MAAMnB,QAAiB+B,EAAc,WAAY,CAC/CG,OAAQ,QAGV,GAAIlC,EAASE,GAAI,CACf,MAAMU,KAAEA,EAAId,YAAEA,SAAsBE,EAASqC,OAC7CxB,EAAQD,GACRG,EAAejB,GAEfmB,GAAmB,EACrB,MACEe,GAEJ,CAAE,MACAA,GACF,SACEb,GAAW,EACb,GA2CF,OAVAO,EAAU,KACRU,KACC,IAEHV,EAAU,KACJd,GAAQI,GACVO,KAED,CAACX,EAAMI,EAAiBO,IAGzBzC,EAACwB,EAAYvB,SAAQ,CACnBH,MAAO,CACLgC,OACAoB,SACAd,UACAoB,WA3Fa9C,UACjB,IAKE,UAJuBuC,EAAc,gBAAiB,CACpDG,OAAQ,YAGGhC,GAIX,OAHAW,EAAQ,MACRI,GAAmB,QACnBI,EAAS,MAGT,MAAM,IAAIlC,MAAM,yBAEpB,CAAE,MAAOgD,GAEP,MADAhC,QAAQgC,MAAM,sCAAuCA,GAC/C,IAAIhD,MAAM,yBAClB,GA2EI6B,kBACAuB,QAzEWC,GAAiB5B,GAAM6B,OAAOC,SAASF,GA0ElD/B,UACAW,QACAG,eACAD,oBAAmBZ,GAA2BY,EAC9CX,OACAb,cACA6C,iBAvDmBnD,MAAOoD,IAC9B,MAAM5C,QAAiB+B,EAAc,oBAAqB,CACxDG,OAAQ,OACRpC,YAAa,UACbC,QAAS,CAAE,eAAgB,oBAC3B8C,KAAMC,KAAKC,UAAU,CAAEC,aAAcJ,EAAWI,aAAcC,GAAIL,EAAWK,OAG/E,GAAIjD,EAASE,GACX,OAAOF,EAASqC,OAGlB,MAAM,IAAIlD,MAAM,gCA4CZ+D,iBAzCmB1D,MAAO2D,IAC9B,MAAMnD,QAAiB+B,EAAc,oBAAqB,CACxDG,OAAQ,SACRpC,YAAa,UACbC,QAAS,CAAE,eAAgB,oBAC3B8C,KAAMC,KAAKC,UAAU,CAAEE,GAAIE,MAG7B,GAAInD,EAASE,GACX,OAAOF,EAASqC,OAGlB,MAAM,IAAIlD,MAAM,iCA8BbN,SAEDC,EAACH,EAAoB,CAACC,MAAO,CAAEwD,gBAAejB,cAAYtC,SACvDA,OElOT,SAASuE,EAAYC,EAAKC,YACnBA,IAAiBA,EAAM,CAAA,GAC5B,IAAIC,EAAWD,EAAIC,SAEnB,GAAKF,GAA2B,oBAAbG,SAAnB,CAEA,IAAIC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DC,EAAQH,SAASI,cAAc,SACnCD,EAAME,KAAO,WAEI,QAAbN,GACEE,EAAKK,WACPL,EAAKM,aAAaJ,EAAOF,EAAKK,YAKhCL,EAAKO,YAAYL,GAGfA,EAAMM,WACRN,EAAMM,WAAWC,QAAUb,EAE3BM,EAAMK,YAAYR,SAASW,eAAed,GAnBW,CAqBzD,i3JCVA,MAAMe,GAAwC,EAAGC,SAAQC,cACvD,MAAMC,EAAWC,EAA8B,MAiB/C,OAfA9C,EAAU,KACR,MAAM+C,EAAiBC,IACP,WAAVA,EAAEC,KAAkBL,KAQ1B,OALID,IACFb,SAASoB,iBAAiB,UAAWH,GACrCF,EAASM,SAASC,SAGb,KACLtB,SAASuB,oBAAoB,UAAWN,KAEzC,CAACJ,EAAQC,IAEPD,EAGHvF,EAAA,MAAA,CACEkG,UAAWC,EACXzC,KAAK,SAAQ,aACF,OAAM,kBACD,cAAa3D,SAE7BqG,EAAA,MAAA,CAAKF,UAAWC,EAAcE,UAAU,EAAI7B,IAAKiB,EAAQ1F,SAAA,CACvDqG,EAAA,MAAA,CAAKF,UAAWC,EAAapG,SAAA,CAC3BC,EAAA,KAAA,CAAImE,GAAG,cAAc+B,UAAWC,GAAYpG,SAAA,2BAG5CC,EAAA,SAAA,CAAQsG,QAASd,EAASU,UAAWC,GAAepG,SAAA,SAItDqG,EAAA,MAAA,CAAKF,UAAWC,GAAcpG,SAAA,CAC5BqG,EAAA,IAAA,CAAArG,SAAA,CACEC,EAAA,SAAA,CAAAD,SAAA,oBAAgC,oBAElCC,EAAA,IAAA,CAAAD,SAAA,iLAKAqG,EAAA,IAAA,CAAArG,SAAA,CACEC,EAAA,SAAA,CAAAD,SAAA,gBAA4B,+EAG9BqG,EAAA,IAAA,CAAArG,SAAA,CACEC,EAAA,SAAA,CAAAD,SAAA,kBAA8B,2CAEhCqG,EAAA,IAAA,CAAArG,SAAA,CACEC,EAAA,SAAA,CAAAD,SAAA,gBAA4B,mDAE9BqG,EAAA,IAAA,CAAArG,SAAA,CACEC,EAAA,SAAA,CAAAD,SAAA,aAAyB,wCAE3BqG,EAAA,IAAA,CAAArG,SAAA,CACEC,EAAA,SAAA,CAAAD,SAAA,2BAAuC,+DAGzCqG,EAAA,IAAA,CAAArG,SAAA,CACEC,EAAA,SAAA,CAAAD,SAAA,gBAA4B,uEAG9BqG,EAAA,IAAA,CAAArG,SAAA,CACEC,EAAA,SAAA,CAAAD,SAAA,gBAA4B,qDAE9BqG,EAAA,IAAA,CAAArG,SAAA,CAAA,yBACyB,IACvBC,EAAA,IAAA,CAAGkG,UAAWC,GAAaI,KAAK,kCAAiCxG,SAAA,6BAE7D,eAvDM,MCrBhByG,GAAY,CAChB,CAAEC,KAAM,KAAMC,KAAM,gBAAiBC,SAAU,KAAMC,KAAM,QAC3D,CAAEH,KAAM,KAAMC,KAAM,SAAUC,SAAU,KAAMC,KAAM,QACpD,CAAEH,KAAM,KAAMC,KAAM,iBAAkBC,SAAU,MAAOC,KAAM,QAC7D,CAAEH,KAAM,KAAMC,KAAM,QAASC,SAAU,MAAOC,KAAM,QACpD,CAAEH,KAAM,KAAMC,KAAM,YAAaC,SAAU,MAAOC,KAAM,SAoB5C,SAAUC,IAA0BC,MAChDA,EAAKC,SACLA,EAAQC,WACRA,EAAUC,cACVA,IAEA,MAAOC,EAAWC,GAAgBnF,GAAS,IACpCoF,EAAiBC,GAAsBrF,EAASwE,GAAU,IAEjE5D,EAAU,KACR,MAAM0E,EA3BV,WACE,IACE,MAAMC,EAASC,KAAKC,iBAAiBC,kBAAkBH,QAAU,QAC3DI,EAAcJ,EAAOK,MAAM,KAAK,IAAIC,eAAiB,KAC3D,OAAOrB,GAAUsB,KAAKC,GAAKA,EAAEtB,OAASkB,IAAgBnB,GAAU,EAClE,CAAE,MACA,OAAOA,GAAU,EACnB,CACF,CAmB2BwB,GACvBX,EAAmBC,IAClB,IAgCH,OACElB,EAAA,MAAA,CAAKF,UAAWC,EAAiBpG,SAAA,CAC/BC,EAAA,QAAA,CAAOmE,GAAG,QAAQ+B,UAAWC,EAAYpG,SAAA,iBAIzCqG,EAAA,MAAA,CAAKF,UAAWC,EAAepG,SAAA,CAC7BC,YACEF,MAAOsH,EAAgBX,KACvBwB,SArBqBrC,IAC3B,MAAMsC,EAAU1B,GAAUsB,KAAKC,GAAKA,EAAEtB,OAASb,EAAEuC,OAAOrI,OACxD,GAAIoI,EAAS,CACXb,EAAmBa,GAGnB,MAAME,EAAWtB,EAAMuB,QAAQ,SAAU,IACnCC,GAAW,IAAIC,GAAY5H,MAAMuH,EAAQvB,SAAWyB,GAC1DrB,EAASuB,EACX,GAaMpC,UAAWC,WAEVK,GAAUgC,IAAIN,GACb9B,EAAA,SAAA,CAA2BtG,MAAOoI,EAAQzB,KAAI1G,SAAA,CAC3CmI,EAAQtB,KAAI,KAAIsB,EAAQvB,SAAQ,MADtBuB,EAAQzB,SAMzBzG,6BACkB,QAChB+E,KAAK,MACLjF,MAAOgH,EACPmB,SArDmBrC,IACzB,MAAM6C,EAAM7C,EAAEuC,OAAOrI,MAEf4I,EADqBD,EAAI3H,WAAWsG,EAAgBT,UACxB8B,EAAMrB,EAAgBT,SAAW8B,EAC7DE,GAAY,IAAIJ,GAAY5H,MAAM+H,GACxC3B,EAAS4B,GAEL3B,GAAYC,EAAc,KA+CxB2B,OA5CW,KACjB,GAAI9B,EAAO,CACT,MAAM+B,EAASC,EAA2BhC,GACpCiC,EAAUF,GAAQE,UACxB9B,EAAc8B,EAAU,GAAK,qCAC/B,GAwCMC,aAAa,MACbC,YAAY,iBACZ/C,UAAWC,OAIfC,OAAGF,UAAWC,EAAiBpG,SAAA,CAAA,kCACG,IAChCC,EAAA,SAAA,CAAQsG,QAAS,IAAMa,GAAa,GAAOjB,UAAWC,sCAE7C,OAIVa,GAAchH,OAAGkG,UAAWC,WAAea,IAE5ChH,EAACsF,GAAU,CAACC,OAAQ2B,EAAW1B,QAAS,IAAM2B,GAAa,OAGjE,CC7GO,MAAM+B,GAAgBC,IAC3B,GAAqB,iBAAVA,EAAoB,OAAO,EAGtC,MAAMC,EAAaD,EAAME,OAGzB,GAAID,EAAWE,OAAS,GAAKF,EAAWE,OAAS,IAAK,OAAO,EAG7D,MAAMC,EAAQH,EAAWxB,MAAM,KAC/B,GAAqB,IAAjB2B,EAAMD,OAAc,OAAO,EAE/B,MAAOE,EAAWC,GAAcF,EAGhC,SACG,sBAAsBG,KAAKF,IAC5BA,EAAU1I,WAAW,MACrB0I,EAAUG,SAAS,MACnBH,EAAU5F,SAAS,WAOlB,iCAAiC8F,KAAKD,IACvCA,EAAW3I,WAAW,MACtB2I,EAAWE,SAAS,MACpBF,EAAW3I,WAAW,MACtB2I,EAAWE,SAAS,MACpBF,EAAW7F,SAAS,QAeXgG,GAAsB9C,IACjC,MAAM+C,EAAcf,EAA2BhC,GAC/C,OAAO+C,GAAad,YAAa,GAO5BrI,eAAeoJ,KACpB,GACEC,OAAOC,qBAEL,mBADKD,OAAOC,oBAAoBC,8CAGlC,IACE,aAAaD,oBAAoBC,+CACnC,CAAE,MAAO5G,GAEP,OADAhC,QAAQgC,MAAM,kCAAmCA,IAC1C,CACT,CAEF,OAAO,CACT,CCpEA,MAAM6G,GAA0D,EAC9DC,aACAC,cACAC,aACAC,qBAEA,MAAMC,EAAgBrB,GAAaiB,GAC7BK,EAAeZ,GAAmBO,GAExC,OACE/D,EAAA,MAAA,CAAKF,UAAWC,EAAmBpG,SAAA,CACjCC,EAAA,MAAA,CAAKkG,UAAWC,EAAqBpG,SAAA,wCAErCC,EAAA,IAAA,CAAGkG,UAAWC,EAA0BpG,SAAA,0CAExCqG,EAAA,MAAA,CAAKF,UAAWC,EAAsBpG,SAAA,CACnCwK,GACCnE,EAAA,SAAA,CACErB,KAAK,SACLmB,UAAWC,EACXG,QAAS8D,EAAWrK,SAAA,CAEpBC,EAAA,OAAA,CAAMkG,UAAWC,EAAkBpG,SAAA,qBACnCC,EAAA,OAAA,CAAMkG,UAAWC,EAAoBpG,SAAA,gDAMxCyK,GACCpE,EAAA,SAAA,CACErB,KAAK,SACLmB,UAAWC,EACXG,QAAS+D,EAAUtK,SAAA,CAEnBC,EAAA,OAAA,CAAMkG,UAAWC,EAAkBpG,SAAA,sBACnCC,EAAA,OAAA,CAAMkG,UAAWC,EAAoBpG,SAAA,0CAK3CC,EAAA,SAAA,CAAQ+E,KAAK,SAASmB,UAAWC,EAAmBG,QAASgE,EAAcvK,SAAA,2BCzC3E0K,GAAkB,KACtB,MAAMC,EAAWC,KACXhJ,QAAEA,EAAOa,kBAAEA,EAAmBX,KAAMrB,GAAaiB,KACjD6B,cAAEA,GAAkBpD,KACnBiK,EAAYS,GAAiB5I,EAAiB,KAC9CmH,EAAO0B,GAAY7I,EAAiB,KACpCH,EAAMiJ,GAAW9I,EAA+B,aAChD8E,EAAOC,GAAY/E,EAAiB,KACpC+I,EAAYC,GAAiBhJ,EAAiB,KAC9CgF,EAAYC,GAAiBjF,EAAiB,KAC9CiJ,EAAYC,GAAiBlJ,EAAiB,KAC9CmJ,EAAiBC,GAAsBpJ,EAAiB,KACxDqJ,EAAkBC,GAAuBtJ,GAAS,IAClDuJ,EAAqBC,GAA0BxJ,GAAS,IACxDyJ,EAAgBC,GAAqB1J,EAAwB,MAE9DiB,EAAgB3C,EAAoB,CACxCE,WACAC,SAAUkB,IAGZiB,EAAU,MACRlC,iBACE,MAAMiL,QAAkB7B,KACxBwB,EAAoBK,EACtB,CAEAC,GAEIpJ,GACFsI,EAAQ,SAGV,MACMxI,EADS,IAAIuJ,gBAAgB9B,OAAO+B,SAASC,QAC9BC,IAAI,kBAErB1J,GAASA,EAAMgH,OAAS,KAC1BoC,EAAkBpJ,GAClBjB,QAAQ4K,IAAI,qCAEb,CAACzJ,IAEJ,MAkBM0J,EAAqBxL,UACzB,IACE,MAAMQ,QAAiB+B,EAAc,wBAAyB,CAC5DG,OAAQ,SAGV,IAAKlC,EAASE,GAEZ,YADAC,QAAQgC,MAAM,iDAIhB,MAAM8I,QAAgBjL,EAASqC,OACzBO,QAAmBsI,EAAoB,CAAEC,YAAaF,IAEtDG,QAA6BrJ,EAAc,yBAA0B,CACzEG,OAAQ,OACRW,KAAMC,KAAKC,UAAU,CAAEsI,kBAAmBzI,MAGvCwI,EAAqBlL,IACxBC,QAAQgC,MAAM,4BAGhB,MAAMmJ,QAA2BF,EAAqB/I,OAEtD,GAAmC,YAA/BiJ,EAAmBC,QACrB,OAAID,EAAmBE,cACrBhC,EAAS,oBAGLpH,SACNoH,EAAS,MAGTrJ,QAAQgC,MAAM,wBAAyBmJ,EAAmBC,QAE9D,CAAE,MAAOpJ,GACPhC,QAAQgC,MAAM,uBAAwBA,EACxC,GA2GF,OACErD,SAAKkG,UAAWC,WACdC,EAAA,MAAA,CAAKF,UAAWC,EAAWpG,SAAA,CACzBC,EAAA,KAAA,CAAIkG,UAAWC,EAAcpG,SACjB,UAAT8B,EAAmB,UAAY,mBAGlC7B,EAAA2M,EAAA,CAAA5M,SACEqG,UAAMwG,SAfOlM,MAAOkF,IAC1BA,EAAEiH,iBAEW,UAAThL,GApGQnB,WAQZ,GAPAsK,EAAc,WAES/H,EAAc,SAAU,CAC7CG,OAAQ,OACRW,KAAMC,KAAKC,UAAU,CAAEkG,aAAYkB,wBAGvBjK,GAKd,GAAKiK,EAKL,UACQa,GACR,CAAE,MAAOY,GACPzL,QAAQgC,MAAM,uBAAwByJ,GACtCtB,GAAuB,EACzB,MATEA,GAAuB,QALvBR,EAAc,iDA2FM+B,GACT,aAATlL,GA3EWnB,WACfsK,EAAc,IAEd,IACE,MAAM9J,QAAiB+B,EAAc,yBAA0B,CAC7DG,OAAQ,OACRW,KAAMC,KAAKC,UAAU,CACnBkF,QACArC,WACI2E,EAAiB,CAAEA,kBAAmB,OAI9C,IAAKvK,EAASE,GAEZ,YADA4J,EAAc,yCAMK,mBAFF9J,EAASqC,QAEnBkJ,SACP/B,EAAS,mBAEXM,EACE,+FAEJ,CAAE,MAAO8B,GACPzL,QAAQgC,MAAM,yBAA0ByJ,GACxC9B,EACE,+FAEJ,GA4CyBgC,IAWSjN,SAAA,CAChB,UAAT8B,GACCuE,EAAA,MAAA,CAAKF,UAAWC,YACdnG,EAAA,QAAA,CAAOiN,QAAQ,aAAa/G,UAAWC,EAAYpG,SAAA,iCAGnDC,WACEmE,GAAG,aACHY,KAAK,OACLjF,MAAOqK,EACPlC,SAhLgBrC,IAC9B,MAAM9F,EAAQ8F,EAAEuC,OAAOrI,MACvB8K,EAAc9K,IA+KAkJ,aAAa,MACbC,YAAY,wBACZ/C,UAAWC,EACXyC,OAAQ,KACN,GAAIuB,EAAY,CACd,MAAMpB,EACJG,GAAaiB,IAAeP,GAAmBO,GACjDiB,EACErC,EAAU,GAAK,6CAEnB,GAEFmE,UAAQ,IAEVlN,OAAGkG,UAAWC,EAAiBpG,SAAA,sDAG9BwL,GACCvL,EAACkK,GAAmB,CAClBC,WAAYA,EACZC,YAnFI1J,UACpB,IAKE,WAJuBuC,EAAc,cAAe,CAClDG,OAAQ,SAGIhC,GAEZ,YADA4J,EAAc,8BAIhBN,EAAS,mBACX,CAAE,MAAOoC,GACPzL,QAAQgC,MAAMyJ,GACd9B,EAAc,6BAChB,GAqEgBX,WAlEG3J,UACnB,IAME,WALuBuC,EAAc,mBAAoB,CACvDG,OAAQ,OACRW,KAAMC,KAAKC,UAAU,CAAEkG,kBAGX/I,GAEZ,YADA4J,EAAc,uBAIhBN,EAAS,kBACX,CAAE,MAAOoC,GACPzL,QAAQgC,MAAMyJ,GACd9B,EAAc,sBAChB,GAmDgBV,eAAgB4B,IAInBf,GAAmBnL,OAAGkG,UAAWC,EAAYpG,SAAGoL,OAG3C,aAATtJ,GACCuE,eACEA,EAAA,MAAA,CAAKF,UAAWC,EAAiBpG,SAAA,CAC/BC,EAAA,QAAA,CAAOiN,QAAQ,QAAQ/G,UAAWC,EAAYpG,SAAA,kBAG9CC,EAAA,QAAA,CACEmE,GAAG,QACHY,KAAK,QACLjF,MAAOqJ,EACPlB,SA7NSrC,IACzB,MAAMuD,EAAQvD,EAAEuC,OAAOrI,MACvB+K,EAAS1B,IA4NOH,aAAa,MACb9C,UAAWC,EACXyC,OAAQ,KACN,GAAIO,EAAO,CACT,MAAMJ,EAAUG,GAAaC,GAC7B+B,EAAcnC,EAAU,GAAK,6BAC/B,GAEFmE,UAAQ,IAETjC,GAAcjL,EAAA,IAAA,CAAGkG,UAAWC,WAAe8E,OAG9CjL,EAAC6G,GAAyB,CACxBC,MAAOA,EACPC,SAAUA,EACVC,WAAYA,EACZC,cAAeA,OAIrBjH,EAAA,SAAA,CAAQ+E,KAAK,SAASmB,UAAWC,EAAegH,WAxO3C,UAATtL,GAAoBsI,EACfjB,GAAaiB,IAAeP,GAAmBO,GAGjDjB,GAAaC,IAAUS,GAAmB9C,IAoO6B/G,SAC1D,UAAT8B,EAAmB,QAAU,aAE/BkJ,GAAc/K,OAAGkG,UAAWC,EAAYpG,SAAGgL,IAC5C/K,EAAA,SAAA,CACE+E,KAAK,SACLuB,QAAS,IAAMwE,EAAiB,UAATjJ,EAAmB,WAAa,SACvDqE,UAAWC,EAAapG,SAEd,UAAT8B,EACG,oCACA,ijCC3SlB,MAAMuL,GAAyB,KAC7B,MAAM1C,EAAWC,KACXhJ,QAAEA,EAAOE,KAAEA,GAASJ,KACpB6B,cAAEA,GAAkBpD,IAEpB+C,EAAgB3C,EAAoB,CACxCE,SAAUqB,EACVpB,SAAUkB,IA+CZ,OACE3B,EAAA,MAAA,CAAKkG,UAAWC,GAAgBpG,SAC9BqG,EAAA,MAAA,CAAKF,UAAWC,GAAWpG,SAAA,CACzBC,QAAIkG,UAAWC,GAAYpG,SAAA,uBAC3BC,EAAA,SAAA,CAAQsG,QAhDa5F,UACzB,IACE,MAAMQ,QAAiB+B,EAAc,wBAAyB,CAC5DG,OAAQ,OACRnC,QAAS,CAAE,eAAgB,oBAC3BD,YAAa,YAGf,IAAKE,EAASE,GAEZ,YADAC,QAAQgC,MAAM,iDAIhB,MAAM8I,QAAgBjL,EAASqC,OACzBO,QAAmBsI,EAAoB,CAAEC,YAAaF,IAEtDG,QAA6BrJ,EAAc,yBAA0B,CACzEG,OAAQ,OACRnC,QAAS,CAAE,eAAgB,oBAC3B8C,KAAMC,KAAKC,UAAU,CAAEsI,kBAAmBzI,IAC1C9C,YAAa,YAGVsL,EAAqBlL,IACxBC,QAAQgC,MAAM,4BAGhB,MAAMmJ,QAA2BF,EAAqB/I,OAEtD,GAAmC,YAA/BiJ,EAAmBC,QAMrB,OALID,EAAmBE,UACrBhC,EAAS,mBAELpH,SACNoH,EAAS,KAGTrJ,QAAQgC,MAAM,uBAElB,CAAE,MACAhC,QAAQgC,MAAM,sBAChB,GAOyC6C,UAAWC,+yGC1DxD,MAAMkH,GAAkD,EACtD9H,SACA+H,WACAC,gBAEA,MAAOzN,EAAO0N,GAAYxL,EAAS,IAEnC,OAAKuD,EAGHvF,EAAA,MAAA,CAAKkG,UAAWC,GAAcpG,SAC5BqG,EAAA,MAAA,CAAKF,UAAWC,GAAYpG,SAAA,CAC1BC,EAAA,KAAA,CAAAD,SAAA,qBACAC,EAAA,IAAA,CAAGkG,UAAWC,GAAkBpG,SAAA,qEAIhCC,EAAA,QAAA,CACE+E,KAAK,OACLkE,YAAY,qCACZnJ,MAAOA,EACPmI,SAAUrC,GAAK4H,EAAS5H,EAAEuC,OAAOrI,OACjCoG,UAAWC,GACXsH,WAAS,IAGXrH,EAAA,MAAA,CAAKF,UAAWC,GAAcpG,SAAA,CAC5BC,EAAA,SAAA,CAAQsG,QAASgH,EAAUpH,UAAWC,GAAgBpG,SAAA,WAGtDC,EAAA,SAAA,CACEsG,QAAS,IAAMiH,EAAUzN,EAAMuJ,QAC/B8D,UAAWrN,EAAMuJ,OACjBnD,UAAWC,GAAcpG,SAAA,qBA1Bf,MCDhB2N,GAAgC,KACpC,MAAM/L,QAAEA,EAAOE,KAAEA,GAASJ,KACpB6B,cAAEA,GAAkBpD,IACpBwK,EAAWC,KAEVpJ,EAAQoM,GAAa3L,EAAmD,SACxEyK,EAASmB,GAAc5L,EAAS,KAChCqJ,EAAkBC,GAAuBtJ,GAAS,IAElD6L,EAAiBC,GAAsB9L,GAAS,IAChD+L,EAAiBC,GAAsBhM,EAIpC,MAEJiB,EAAgB3C,EAAoB,CACxCE,SAAUqB,EACVpB,SAAUkB,IAGZiB,EAAU,MACRlC,iBACE,MAAMiL,QAAkB7B,KACxBwB,EAAoBK,EACtB,CAEAC,IACC,IAEH,MA0DMqC,EAAgBvN,MACpBwN,EACAC,KAiBA,WAV+BlL,EAAc,4BAA6B,CACxEG,OAAQ,OACRnC,QAAS,CAAE,eAAgB,oBAC3B8C,KAAMC,KAAKC,UAAU,CACnBmK,oBAAqBF,EACrBC,aAEFnN,YAAa,aAGOI,GACpB,MAAM,IAAIf,MAAM,6BAGZiD,KAGR,OACE8C,EAAAuG,EAAA,CAAA5M,SAAA,CACEC,EAAA,MAAA,CAAKkG,UAAWC,GAAgBpG,SAC9BC,EAAA,MAAA,CAAKkG,UAAWC,GAAWpG,SAOvBqG,EAAA,MANAiF,EAMA,CAAKnF,UAAWC,GAAgBpG,SAAA,CAC9BC,EAAA,KAAA,CAAIkG,UAAWC,GAAYpG,SAAA,uCAC3BC,EAAA,IAAA,CAAGkG,UAAWC,GAAkBpG,SAAA,2EAIhCC,EAAA,SAAA,CACEsG,QArGU,KACtB,MAAM+H,SAAEA,EAAQC,QAAEA,EAAOC,WAAEA,cLqC7B,MAAMC,EAAKC,UAAUC,UAAUC,cAE/B,IAAIN,EAAW,UACXC,EAAU,UAed,MAbI,mBAAmB5E,KAAK8E,GAAKH,EAAW,MACnC,UAAU3E,KAAK8E,GAAKH,EAAW,UAC/B,SAAS3E,KAAK8E,GAAKH,EAAW,MAC9B,UAAU3E,KAAK8E,GAAKH,EAAW,UAC/B,QAAQ3E,KAAK8E,KAAKH,EAAW,SAElC,SAAS3E,KAAK8E,KAAKF,EAAU,UAC7B,SAAS5E,KAAK8E,KAAQ,SAAS9E,KAAK8E,KAAKF,EAAU,UACnD,UAAU5E,KAAK8E,KAAKF,EAAU,WAC9B,MAAM5E,KAAK8E,KAAKF,EAAU,QAIvB,CAAED,WAAUC,UAASC,WAFT,GAAGF,OAAcC,IAGtC,CKxD8CM,GAE1CZ,EAAmB,CAAEK,WAAUC,UAASC,eACxCT,GAAmB,IAkGPX,SAAqB,YAAX5L,EACV2E,UAAWC,GAAapG,SAEZ,YAAXwB,EAAuB,iBAAmB,qBAG5CkL,GACCzM,OACEkG,UAAW,GAAGC,MACD,YAAX5E,EAAuB4E,GAAiBA,KACxCpG,SAED0M,OAzBFvG,UAAWC,GAAcpG,SAAA,CAC5BC,EAAA,MAAA,CAAKkG,UAAWC,KAChBnG,EAAA,OAAA,CAAAD,SAAA,2CA+BRC,EAACqN,GAAe,CACd9H,OAAQsI,EACRP,SAAU,KACRQ,GAAmB,GACnBE,EAAmB,OAErBT,UAzHuB7M,MAAOwD,IAClC,IAAK6J,EAAiB,OAEtB,MAAMM,SAAEA,EAAQC,QAAEA,EAAOC,WAAEA,GAAeR,EAE1CJ,EAAU,WAEV,IACE,MAAMkB,QAAqB5L,EAAc,2BAA4B,CACnEG,OAAQ,MACRnC,QAAS,CAAE,eAAgB,oBAC3BD,YAAa,YAGf,IAAK6N,EAAazN,GAChB,MAAM,IAAIf,MAAM,6BAGlB,MAAM8L,QAAgB0C,EAAatL,OAEnC,IAAI2K,EAEJ,IACEA,QAAgBY,EAAkB,CAAEzC,YAAaF,GACnD,CAAE,MAAO9I,GACP,GAAIA,aAAiB0L,EACnB,MAAM,IAAI1O,MAAMgD,EAAMqD,MAExB,MAAMrD,CACR,OAEM4K,EAAcC,EAAS,CAC3BhK,eACAmK,WACAC,UACAC,eAGFZ,EAAU,WACVC,EAAW,oCACXlD,EAAS,IACX,CAAE,MAAOrH,GACPhC,QAAQgC,MAAMA,GACdsK,EAAU,SACVC,EAAW,6BACb,SACEE,GAAmB,GACnBE,EAAmB,KACrB,0qFCzFJ,MAAMgB,GAA4B,EAChC1F,SAAS,EACTxJ,QACAmP,YAAY,UACZhH,WACAvB,OAAO,UAEP,MAAMwI,EAASxJ,EAAuC,IAEhDyJ,EAASrP,EAAM8H,MAAM,IAAIwH,OAAOC,MAAM/F,GAAQgG,KAAK,KAAKC,MAAM,EAAGjG,GAOjEkG,EAAe,CAACC,EAAe9O,KALjB,IAAC+O,EAMnB,GAAI/O,EAAM2I,OAAS,EACjBqG,EAAgBF,EAAO9O,QAIzB,IAAKA,IAXc+O,EAWO/O,EAVR,YAAdsO,EAAgC,OAAOvF,KAAKgG,GACzC,aAAahG,KAAKgG,IASS,CAChC,MAAME,EAAc,IAAIT,GACxBS,EAAYH,GAAS9O,EAErB,MAAMkP,EAAWD,EAAYE,KAAK,IAClC7H,EAAS4H,GAELlP,GAASuO,EAAOnJ,QAAQ0J,EAAQ,IAClCP,EAAOnJ,QAAQ0J,EAAQ,IAAIzJ,OAE/B,GAGI2J,EAAkB,CAACF,EAAe9O,KACtC,IAAIoP,EAAUpP,EAGZoP,EADgB,YAAdd,EACQtO,EAAM0H,QAAQ,MAAO,IAErB1H,EAAM0H,QAAQ,aAAc,IAGxC,MAAM2H,EAAQD,EAAQR,MAAM,EAAGjG,GAAQ1B,MAAM,IAEvCgI,EAAc,IAAIT,GAExBa,EAAMC,QAAQ,CAACP,EAAMQ,KACfT,EAAQS,EAAI5G,IACdsG,EAAYH,EAAQS,GAAKR,KAI7BzH,EAAS2H,EAAYE,KAAK,KAC1BZ,EAAOnJ,QAAQoK,KAAKC,IAAIX,EAAQO,EAAM1G,OAAQA,EAAS,KAAKtD,SAiC9D,OACEhG,EAAA,MAAA,CACEkG,UAAWC,GACXzC,KAAK,QAAO,aACD,0BACX2M,QAViBzK,IACnBA,EAAEiH,iBACF8C,EAAgB,EAAG/J,EAAE0K,cAAcC,QAAQ,UAQrBxQ,SAEnBoP,EAAO3G,IAAI,CAACkH,EAAMQ,IACjBlQ,EAAA,QAAA,CAEEwE,IAAKgM,GAAOtB,EAAOnJ,QAAQmK,GAAKM,EAChCzL,KAAK,OACLkK,UAAyB,YAAdA,EAA0B,UAAY,OACjDjG,aAAa,gBACbtC,KAAM,GAAGA,KAAQwJ,IACjBO,UAAW,EACX3Q,MAAO4P,EACPxJ,UAAWC,GACX8B,SAAUrC,GAAK4J,EAAaU,EAAGtK,EAAEuC,OAAOrI,OACxC4Q,UAAW9K,GAjDG,EAAC6J,EAAe7J,KACpC,GAAc,cAAVA,EAAEC,IAAqB,CACzBD,EAAEiH,iBAEF,MAAM+C,EAAc,IAAIT,GAEpBA,EAAOM,IACTG,EAAYH,GAAS,GACrBxH,EAAS2H,EAAYE,KAAK,MACjBL,EAAQ,IACjBG,EAAYH,EAAQ,GAAK,GACzBxH,EAAS2H,EAAYE,KAAK,KAC1BZ,EAAOnJ,QAAQ0J,EAAQ,IAAIzJ,QAE/B,CAEc,cAAVJ,EAAEC,KAAuB4J,EAAQ,GACnCP,EAAOnJ,QAAQ0J,EAAQ,IAAIzJ,QAGf,eAAVJ,EAAEC,KAAwB4J,EAAQnG,EAAS,GAC7C4F,EAAOnJ,QAAQ0J,EAAQ,IAAIzJ,SA4BPL,CAAcuK,EAAGtK,GAAE,aACvB,SAASsK,EAAI,KAXpBA,OCpGTS,GAA8B,KAClC,MAAMjG,EAAWC,KACXhJ,QAAEA,EAAOE,KAAEA,GAASJ,KAEnBmP,EAAUC,GAAe7O,EAAS,KAClC8O,EAAeC,GAAoB/O,EAAyB,OAC5DqB,EAAO2N,GAAYhP,EAAS,KAC5BI,EAASC,GAAcL,GAAS,IAChCiP,EAAWC,GAAgBlP,EAAS,KACpCmP,EAAeC,GAAoBpP,EAAS,KAE7CiB,EAAgB3C,EAAoB,CACxCE,SAAUqB,EACVpB,SAAUkB,IAsBN0P,EAAiB3Q,UACrB2B,GAAW,GACX,IACE,IAAKyO,EAAe,QACK7N,EAAc,wBAAyB,CAC5DG,OAAQ,OACRnC,QAAS,CACP,eAAgB,oBAElB8C,KAAMC,KAAKC,UAAU,CACnBqN,kBAAmBV,IAErB5P,YAAa,aAGDI,GAGZ2P,GAAiB,GAFjBC,EAAS,uBAIb,CACF,CAAE,MAAO3N,GACPhC,QAAQgC,MAAMA,GACd2N,EAAS,uBACX,CAEA3O,GAAW,IA4BPkP,EAAe7Q,UACnBwQ,EAAa,SA1BOxQ,WACpBsQ,EAAS,IACT,MAAM9P,QAAiB+B,EAAc,0BAA2B,CAC9DG,OAAQ,MACRnC,QAAS,CACP,eAAgB,sBAIduQ,QAAatQ,EAASqC,OAEvBrC,EAASE,IAMRoQ,EAAKlP,OAEPO,aAAaE,QAAQ,QAASyO,EAAKlP,OAErC4O,EAAa,sCATbF,EACE,+EAcES,GACNP,EAAa,sCAgDf,OA/BAtO,EAAU,KACR,MAAM8O,EAAWC,YAAY,KAC3BP,EAAiBQ,GAASA,EAAO,EAAIA,EAAO,EAAI,IAC/C,KAEH,MAAO,IAAMC,cAAcH,IAC1B,IAEH9O,EAAU,KAkBJkO,GAjBapQ,kBACQuC,EAAc,0BAA2B,CAC9DG,OAAQ,MACRnC,QAAS,CACP,eAAgB,uBAING,GAMZsJ,EAAS,mBALTsG,EACE,6FAQJc,IAED,CAAChB,EAAepG,EAAUzH,IAG3BjD,EAAA,MAAA,CAAKkG,UAAWC,GAAgBpG,SAC9BqG,EAAA,MAAA,CAAKF,UAAWC,GAAWpG,SAAA,CACzBC,QAAIkG,UAAWC,GAAYpG,SAAA,6BAC3BC,OAAGkG,UAAWC,0DAEb9C,GAASrD,EAAA,IAAA,CAAGkG,UAAWC,GAAYpG,SAAGsD,IACtC4N,GAAajR,EAAA,IAAA,CAAGkG,UAAWC,GAAcpG,SAAGkR,IAE7C7K,UAAMwG,SArISlM,MAAOkF,IAI1B,GAHAA,EAAEiH,iBACFmE,EAAS,IAEe,IAApBJ,EAAStH,OAAb,CAKAjH,GAAW,GACX,IACEgP,GACF,CAAE,MACAL,EAAS,6BACX,SACE3O,GAAW,EACb,CATA,MAFE2O,EAAS,+BAgIuB9K,UAAWC,GAAWpG,SAAA,CAClDqG,EAAA,MAAA,CAAArG,SAAA,CACEqG,WAAO6G,QAAQ,YAAY/G,UAAWC,GAAYpG,SAAA,CAAA,4BAxDrCgS,EAyD4BjB,GAxDhC,IAAbiB,EAA0B/R,EAAA,OAAA,CAAMkG,UAAU,sCAC7B,IAAb6L,EAA2B/R,EAAA,OAAA,CAAMkG,UAAU,mCACxC,WAsD4D,IACzDE,UAAMF,UAAWC,GAAYpG,SAAA,CAAA,qBApDrBiS,EAqDuBb,EAhDlC,GAJGhB,KAAK8B,MAAMD,EAAU,IAC5BE,WACAC,SAAS,EAAG,SACJH,EAAU,IAAIE,WAAWC,SAAS,EAAG,cAoDxCnS,EAACgP,GAAQ,CAAC1F,OAAQ,EAAGxJ,MAAO8Q,EAAU3I,SAAU4I,IAChD7Q,EAAA,SAAA,CACE+E,KAAK,SACLuB,QAAS,IAAMiL,IACfrL,UAAWC,GAAapG,SAAA,4BAM5BC,EAAA,SAAA,CAAQ+E,KAAK,SAASmB,UAAWC,YAC9B/D,EAAU,eAAiB,sBAG9BpC,YACE+E,KAAK,SACLuB,QAAS,IAAMoE,EAAS,UACxBxE,UAAWC,GAAapG,SAAA,0BAzEf,IAACiS,EANGD,GC7FnBK,GAA8B,KAClC,MAAM1H,EAAWC,KACXhJ,QAAEA,EAAOE,KAAEA,GAASJ,KACpB6B,cAAEA,GAAkBpD,KAEnBkC,EAASC,GAAcL,GAAS,IAChCqQ,EAAUC,GAAetQ,EAAS,KAClCuQ,EAAeC,GAAoBxQ,EAAS,MAC5CqB,EAAO2N,GAAYhP,EAAS,KAC5BiP,EAAWC,GAAgBlP,EAAS,KACpCqJ,EAAkBC,GAAuBtJ,GAAS,GAEnDiB,EAAgB3C,EAAoB,CACxCE,SAAUqB,EACVpB,SAAUkB,IAuFZ,OAjBAiB,EAAU,KACR,MAAM8O,EAAWC,YAAY,KAC3Ba,EAAiBZ,GAASA,EAAO,EAAIA,EAAO,EAAI,IAC/C,KAEH,MAAO,IAAMC,cAAcH,IAC1B,IAEH9O,EAAU,MACRlC,iBACE,MAAMiL,QAAkB7B,KACxBwB,EAAoBK,EACtB,CAEAC,IACC,IAGD5L,EAAA,MAAA,CAAKkG,UAAWC,GAAgBpG,SAC9BqG,EAAA,MAAA,CAAKF,UAAWC,GAAWpG,SAAA,CACzBC,QAAIkG,UAAWC,GAAYpG,SAAA,sBAE3BC,OAAGkG,UAAWC,wEAIb9C,GAASrD,EAAA,IAAA,CAAGkG,UAAWC,GAAYpG,SAAGsD,IACtC4N,GAAajR,EAAA,IAAA,CAAGkG,UAAWC,GAAcpG,SAAGkR,IAE7C7K,UAAMwG,SA7ESlM,MAAOkF,IAI1B,GAHAA,EAAEiH,iBACFmE,EAAS,IAEe,IAApBqB,EAAS/I,OAAb,CAKAjH,GAAW,GAEX,IAUE,WATuBY,EAAc,wBAAyB,CAC5DG,OAAQ,OACRnC,QAAS,CAAE,eAAgB,oBAC3B8C,KAAMC,KAAKC,UAAU,CACnBqN,kBAAmBe,IAErBrR,YAAa,aAGDI,GAEZ,YADA4P,EAAS,wBAIP3F,EACFX,EAAS,2BAEHpH,IACNoH,EAAS,KAEb,CAAE,MAAOoC,GACPzL,QAAQgC,MAAMyJ,GACdkE,EAAS,uBACX,SACE3O,GAAW,EACb,CA9BA,MAFE2O,EAAS,+BAwEuB9K,UAAWC,GAAWpG,SAAA,CAClDqG,EAAA,MAAA,CAAArG,SAAA,CACEqG,WAAO6G,QAAQ,YAAY/G,UAAWC,GAAYpG,SAAA,CAAA,0BAEhDqG,EAAA,OAAA,CAAMF,UAAWC,GAAYpG,SAAA,CAC1B,IAAG,sBA1CEiS,EA2CwBO,EAtCnC,GAJGpC,KAAK8B,MAAMD,EAAU,IAC5BE,WACAC,SAAS,EAAG,SACJH,EAAU,IAAIE,WAAWC,SAAS,EAAG,cA0CxCnS,EAACgP,IACC1F,OAAQ,EACRxJ,MAAOuS,EACPpK,SAAUqK,EACVrD,UAAU,SAGZjP,EAAA,SAAA,CAAQ+E,KAAK,SAASuB,QAhHV5F,UACpBsQ,EAAS,IACTE,EAAa,WAEUjO,EAAc,0BAA2B,CAC9DG,OAAQ,MACRnC,QAAS,CAAE,eAAgB,uBAGfG,GAOd8P,EAAa,uCANXF,EACE,iFAqGkD9K,UAAWC,wCAK3DnG,YAAQ+E,KAAK,SAASmB,UAAWC,GAAegH,SAAU/K,WACvDA,EAAU,eAAiB,sBAG9BpC,YACE+E,KAAK,SACLuB,QAAS,IAAMoE,EAAS,UACxBxE,UAAWC,GAAapG,SAAA,0BAjEf,IAACiS,oxDC/EtB,MAAMS,GAA4B,KAChC,MAAOC,GAAgBC,IACjBjI,EAAWC,IACXrI,EAAQoQ,EAAa1G,IAAI,UACzBrK,QAAEA,EAAOE,KAAEA,GAASJ,KAEnB4B,EAAO2N,GAAYhP,EAAS,KAC5B4Q,EAAYC,GAAiB7Q,EAAS,IAEvCiB,EAAgB3C,EAAoB,CACxCE,SAAUqB,EACVpB,SAAUkB,IAwCZ,OArCAiB,EAAU,KA6BJN,EA5BW5B,WAQb,WAPuBuC,EAAc,sBAAsBX,IAAS,CAClEc,OAAQ,MACRnC,QAAS,CACP,eAAgB,uBAING,GAGZ,OAFAC,QAAQgC,MAAM,+BACd2N,EAAS,0BAIK,IAAI8B,iBAAiB,iBAE7BC,YAAY,CAClBhO,KAAM,4BAGR8N,EACE,gFAGFG,WAAW,KACTtI,EAAS,MACR,MAGHuI,IAEAjC,EAAS,mCACT3P,QAAQgC,MAAM,iBAAkBf,KAEjC,CAACA,EAAOW,EAAeyH,IAGxB1K,EAAA,MAAA,CAAKkG,UAAWC,GAAO+M,UAASnT,SAC9BqG,EAAA,MAAA,CAAKF,UAAWC,GAAOgN,KAAIpT,SAAA,CACzBC,EAAA,KAAA,CAAIkG,UAAWC,GAAOiN,MAAKrT,SAAA,yBAE3BqG,EAAA,MAAA,CAAKF,UAAWC,GAAOkN,oBAAmBtT,SAAA,EACtC6S,IAAevP,GAASrD,EAAA,MAAA,CAAKkG,UAAWC,GAAOmN,UAEhDV,GACC5S,EAAA,MAAA,CAAKkG,UAAWC,GAAOoN,YAAWxT,SAChCC,EAAA,MAAA,CACEwT,QAAQ,YACRtN,UAAWC,GAAOsN,UAClBnE,KAAK,OACLoE,OAAO,eACPC,YAAY,IAAG5T,SAEfC,EAAA,OAAA,CAAM4T,EAAE,wBAKZhB,IAAevP,GACfrD,EAAA,IAAA,CAAGkG,UAAWC,GAAO0N,WAAU9T,SAAA,4DAKhC6S,GACC5S,EAAA,IAAA,CAAGkG,UAAWC,GAAO2N,sDAGtBzQ,GAASrD,EAAA,IAAA,CAAGkG,UAAWC,GAAO9C,MAAKtD,SAAGsD,48EClFjD,MAAM0Q,GAA0B,KAC9B,MAAMpS,QAAEA,EAASE,KAAMrB,GAAaiB,KAC9B6B,cAAEA,GAAkBpD,IACpBwK,EAAWC,IACXmB,EAAWkI,IAEX/Q,EAAgB3C,EAAoB,CACxCE,WACAC,SAAUkB,IAGNwI,EAAa2B,EAASmI,OAAO9J,YAE5B+J,EAAUC,GAAenS,EAAS,IAEzCY,EAAU,KACR,MAAMwR,EAAQzC,YAAY,KACxBwC,EAAYpM,GAAMA,EAAI,EAAIA,EAAI,EAAI,IACjC,KAEH,MAAO,IAAM8J,cAAcuC,IAC1B,IA2DH,OA5CAxR,EAAU,KACR,MAAMyR,EAAU,IAAIvB,iBAAiB,iBAiBrC,OAfAuB,EAAQC,UAAY5T,MAAM6T,IACxB,GAAyB,4BAArBA,EAAM/C,MAAMzM,KAAoC,CAO1B,aAND9B,EAAc,oBAAqB,CACxDG,OAAQ,MACRnC,QAAS,CACP,eAAgB,uBAGPM,eACL+B,IACNoH,EAAS,KAEb,GAGK,KACL2J,EAAQG,UAET,CAACvR,EAAeyH,EAAUpH,IAE7BV,EAAU,KACR,MAAM8O,EAAWC,YAAYjR,UAC3B,IAO0B,aANDuC,EAAc,oBAAqB,CACxDG,OAAQ,MACRnC,QAAS,CACP,eAAgB,uBAGPM,eACL+B,IACNoH,EAAS,KAEb,CAAE,MAEF,GACC,KAEH,MAAO,IAAMmH,cAAcH,IAC1B,CAAC/P,EAAS2B,EAAeoH,IAG1B1K,EAAA,MAAA,CAAKkG,UAAWC,GAAgBpG,SAC9BqG,EAAA,MAAA,CAAKF,UAAWC,GAAWpG,SAAA,CACzBqG,EAAA,MAAA,CAAKF,UAAWC,aACdnG,EAAA,MAAA,CAAKkG,UAAWC,KAEhBC,EAAA,MAAA,CACEF,UAAWC,GACXqN,QAAQ,YACRlE,KAAK,OACLoE,OAAO,eACPC,YAAY,MAAK5T,SAAA,CAEjBC,EAAA,OAAA,CAAM4T,EAAE,kBACR5T,EAAA,OAAA,CAAM4T,EAAE,uBAIZ5T,EAAA,KAAA,CAAIkG,UAAWC,GAAcpG,SAAA,qBAE7BC,EAAA,IAAA,CAAGkG,UAAWC,GAAcpG,SAAA,0EAI5BC,EAAA,MAAA,CAAKkG,UAAWC,GAAiBpG,SAAGoK,IAEpCnK,OAAGkG,UAAWC,GAAiBpG,SAAA,4DAI/BC,OAAGkG,UAAWC,GAAiBpG,SAAA,mFAI/BqG,SAAKF,UAAWC,aACdnG,EAAA,SAAA,CACEkG,UAAWC,GACXgH,SAAU+G,EAAW,EACrB5N,QA/FK5F,UACTwT,EAAW,UAETjR,EAAc,cAAe,CACjCG,OAAQ,MACRnC,QAAS,CACP,eAAgB,sBAIpBkT,EAAY,MAqFWpU,SAAA,gBAKhBmU,EAAW,GACV9N,EAAA,MAAA,CAAKF,UAAWC,6BAA+B+N,EAAQ,OAGzDlU,EAAA,SAAA,CAAQkG,UAAWC,GAAmBG,QAAS,IAAMoE,EAAS,UAAS3K,SAAA,mCC7HpE0U,GAAa,IACxBrO,EAACsO,EAAM,CAAA3U,SAAA,CACLC,EAAC2U,EAAK,CAACC,KAAK,SAASC,QAAS7U,EAACyK,GAAK,MACpCzK,EAAC2U,EAAK,CAACC,KAAK,gBAAgBC,QAAS7U,EAACoN,GAAY,MAClDpN,EAAC2U,EAAK,CAACC,KAAK,kBAAkBC,QAAS7U,EAAC2Q,GAAiB,CAAA,KACzD3Q,EAAC2U,EAAK,CAACC,KAAK,kBAAkBC,QAAS7U,EAACoS,GAAiB,CAAA,KACzDpS,EAAC2U,EAAK,CAACC,KAAK,oBAAoBC,QAAS7U,EAACyS,GAAe,CAAA,KACzDzS,EAAC2U,EAAK,CAACC,KAAK,mBAAmBC,QAAS7U,EAAC0N,GAAmB,CAAA,KAC5D1N,EAAC2U,EAAK,CAACC,KAAK,mBAAmBC,QAAS7U,EAAC+T,GAAa,CAAA,KACtD/T,EAAC2U,EAAK,CAACC,KAAK,IAAIC,QAAS7U,EAAC8U,EAAQ,CAACC,GAAG,SAAS1M,SAAO","x_google_ignoreList":[4]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamless-auth/react",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "description": "A drop-in authentication solution for modern React applications.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -22,6 +22,7 @@
22
22
  "scripts": {
23
23
  "build": "rollup -c",
24
24
  "test": "jest",
25
+ "coverage": "npm test -- --coverage",
25
26
  "lint": "eslint ./src",
26
27
  "format": "prettier --write .",
27
28
  "prepare": "husky",