@seamless-auth/react 0.15.0 → 0.15.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/README.md +17 -9
- package/dist/routes.js +1 -1
- package/dist/routes.js.map +1 -1
- package/dist/views/VerifyMagicLink.d.ts +10 -0
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @seamless-auth/react
|
|
2
2
|
|
|
3
|
+
## 0.15.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 19f8f1b: Depend on `@seamless-auth/types` `^0.28.0` (was `^0.26.0`), so the SDK's wire types track the current auth API contract. No SDK request or response shape changes; 0.27.0 and 0.28.0 only add admin system config and dashboard metrics fields.
|
|
8
|
+
- Updated dependencies [19f8f1b]
|
|
9
|
+
- @seamless-auth/client@0.3.2
|
|
10
|
+
|
|
11
|
+
## 0.15.1
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 4a2d6ff: Support Node 22 and newer. The `engines` field now requires `>=22` instead of `>=24.0.0 <25.0.0`, and CI runs on Node 22, 24, and the latest release (fells-code/seamless-auth-api#339).
|
|
16
|
+
- 929f7d5: Fix the bundled magic-link screen (`/verify-magiclink`) under React Strict Mode. Strict Mode runs effects twice in development, and the screen sent the single-use link to the server twice: the first request consumed it, the second was refused, and the screen showed "Failed to verify token" for a link that worked. It now sends one request per link.
|
|
17
|
+
|
|
18
|
+
The screen also no longer assumes that verifying a link signs in the tab that opened it. The session belongs to the browser that requested the link. After verifying, the screen signs in when the link was opened in that same browser, and otherwise tells the reader to return to the device that asked.
|
|
19
|
+
|
|
20
|
+
- Updated dependencies [4a2d6ff]
|
|
21
|
+
- @seamless-auth/client@0.3.1
|
|
22
|
+
|
|
3
23
|
## 0.15.0
|
|
4
24
|
|
|
5
25
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
`@seamless-auth/react` is a React SDK for Seamless Auth. It gives you a provider for auth state, a headless client and hooks for custom auth UIs, and optional prebuilt auth routes when you want a faster drop-in flow.
|
|
10
10
|
|
|
11
|
+
## Start here
|
|
12
|
+
|
|
13
|
+
New to Seamless Auth? The [self-hosted quickstart](https://docs.seamlessauth.com/start/quickstart/) runs the full stack locally with Docker. If Seamless hosts your auth instance, follow the [managed quickstart](https://docs.seamlessauth.com/start/managed-quickstart/) instead. The [compatibility matrix](https://docs.seamlessauth.com/build/ecosystem/#compatibility-matrix) lists which package versions work together.
|
|
14
|
+
|
|
11
15
|
## What It Exports
|
|
12
16
|
|
|
13
17
|
- `AuthProvider`
|
|
@@ -462,17 +466,17 @@ function OAuthButtons() {
|
|
|
462
466
|
const [providers, setProviders] = useState<OAuthProvider[]>([]);
|
|
463
467
|
|
|
464
468
|
useEffect(() => {
|
|
465
|
-
void listOAuthProviders().then(
|
|
469
|
+
void listOAuthProviders().then(({ data }) => setProviders(data?.providers ?? []));
|
|
466
470
|
}, [listOAuthProviders]);
|
|
467
471
|
|
|
468
472
|
async function signIn(providerId: string) {
|
|
469
|
-
const
|
|
473
|
+
const { data, error } = await startOAuthLogin({
|
|
470
474
|
providerId,
|
|
471
475
|
redirectUri: `${window.location.origin}/oauth/callback`,
|
|
472
476
|
returnTo: `${window.location.origin}/dashboard`,
|
|
473
477
|
});
|
|
474
478
|
|
|
475
|
-
window.location.assign(
|
|
479
|
+
if (!error) window.location.assign(data.authorizationUrl);
|
|
476
480
|
}
|
|
477
481
|
|
|
478
482
|
return (
|
|
@@ -549,13 +553,17 @@ The bundled `AuthRoutes` callback screen already maps these three codes to actio
|
|
|
549
553
|
For fully custom UI without `useAuth()`, call the headless client directly:
|
|
550
554
|
|
|
551
555
|
```ts
|
|
552
|
-
const
|
|
553
|
-
const
|
|
554
|
-
providerId: providers.providers[0].id,
|
|
555
|
-
redirectUri: `${window.location.origin}/oauth/callback`,
|
|
556
|
-
});
|
|
556
|
+
const { data: listed } = await authClient.listOAuthProviders();
|
|
557
|
+
const provider = listed?.providers[0];
|
|
557
558
|
|
|
558
|
-
|
|
559
|
+
if (provider) {
|
|
560
|
+
const { data: started, error } = await authClient.startOAuthLogin({
|
|
561
|
+
providerId: provider.id,
|
|
562
|
+
redirectUri: `${window.location.origin}/oauth/callback`,
|
|
563
|
+
});
|
|
564
|
+
|
|
565
|
+
if (!error) window.location.assign(started.authorizationUrl);
|
|
566
|
+
}
|
|
559
567
|
```
|
|
560
568
|
|
|
561
569
|
OAuth must be enabled on the Seamless Auth API with `LOGIN_METHODS` including `oauth` and at least
|
package/dist/routes.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsxs as e,jsx as r,Fragment as a}from"react/jsx-runtime";import{useHref as o,useNavigate as i,useLocation as t,useSearchParams as s,Routes as n,Route as l,Navigate as c}from"react-router-dom";import{u as d,a as _,c as m,b as u,F as g,h as p}from"./chunks/shared-BzrBuR0z.js";import{useState as h,useEffect as f,useRef as v,useCallback as b}from"react";import y from"libphonenumber-js";import{isUnauthenticated as k,getPasskeyPolicyErrorCode as x,getOAuthErrorCode as w}from"@seamless-auth/client";const N="/login",P="/passkey-login",C="/verify-phone-otp",I="/verify-email-otp",T="/verify-magiclink",M="/oauth/callback",O="/register-passkey",S="/magic-link-sent";function z(e,r){void 0===r&&(r={});var a=r.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===a&&o.firstChild?o.insertBefore(i,o.firstChild):o.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var A="login-module__container___YggDx",B="login-module__card___Ub-Py",q="login-module__heading___neEqb",E="login-module__inputGroup___P6qgS",L="login-module__label___mx5vu",F="login-module__input___U07lW",j="login-module__helperText___kDQ4-",D="login-module__error___40zxh",R="login-module__button___0kFBs",V="login-module__submitHint___qOS5Z",G="login-module__toggle___1JiG1",W="login-module__fallbackCard___HdIk-",U="login-module__fallbackHeader___-il2v",K="login-module__fallbackDescription___ea5EB",Y="login-module__fallbackActions___AD3ni",$="login-module__fallbackActionButton___lFgWf",H="login-module__actionTitle___ycrMp",J="login-module__actionSubtext___opaIV",Z="login-module__linkButton___5lsoe";z(".login-module__container___YggDx{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center}.login-module__card___Ub-Py{background-color:var(--seamless-surface,#1f2937);border-radius:.5rem;box-shadow:0 4px 6px var(--seamless-shadow,rgba(0,0,0,.1));max-width:28rem;padding:2rem;width:100%}.login-module__heading___neEqb{color:var(--seamless-text,#fff);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:center}.login-module__message___qSejT{color:var(--seamless-success,#68d391);text-align:center}.login-module__inputGroup___P6qgS{margin-bottom:1rem}.login-module__label___mx5vu{color:var(--seamless-text-muted,#d1d5db);display:block}.login-module__input___U07lW{background-color:var(--seamless-surface-raised,#4b5563);border:1px solid var(--seamless-border,#d1d5db);border-radius:.375rem;margin-top:.25rem;padding:.5rem;width:100%}.login-module__input___U07lW:focus{box-shadow:0 0 0 2px var(--seamless-accent,#3b82f6);outline:none}.login-module__helperText___kDQ4-{color:var(--seamless-text-muted,#9ca3af);font-size:.75rem;margin-top:.5rem}.login-module__error___40zxh{color:var(--seamless-danger,#f87171);font-size:.875rem}.login-module__button___0kFBs{background-color:var(--seamless-accent,#2563eb);border-radius:.375rem;color:var(--seamless-accent-contrast,#fff);cursor:pointer;margin-top:1rem;padding:.5rem;transition:background-color .3s,opacity .3s;width:100%}.login-module__button___0kFBs:hover:not(:disabled){background-color:var(--seamless-accent-hover,#1d4ed8)}.login-module__button___0kFBs:disabled{cursor:not-allowed;opacity:.6}.login-module__submitHint___qOS5Z{color:var(--seamless-text-muted,#9ca3af);font-size:.75rem;margin-top:.5rem;text-align:center}.login-module__toggle___1JiG1{background:none;border:none;color:var(--seamless-accent-soft,#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:var(--seamless-surface-raised,#4b5563);border:1px solid var(--seamless-border,#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:var(--seamless-surface-raised,hsla(0,0%,100%,.04));border:1px solid var(--seamless-border,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:var(--seamless-text,#f3f4f6);font-size:.95rem;font-weight:600}.login-module__fallbackDescription___ea5EB{color:var(--seamless-text-muted,#9ca3af);font-size:.85rem;line-height:1.4}.login-module__fallbackActions___AD3ni{display:flex;flex-direction:column;gap:10px}.login-module__fallbackActionButton___lFgWf{background:var(--seamless-surface,rgba(0,0,0,.25));border:1px solid var(--seamless-border,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:var(--seamless-surface-hover,hsla(0,0%,100%,.06));border-color:var(--seamless-border,hsla(0,0%,100%,.15))}.login-module__actionTitle___ycrMp{color:var(--seamless-text,#f9fafb);font-size:.9rem;font-weight:500}.login-module__actionSubtext___opaIV{color:var(--seamless-text-muted,#9ca3af);font-size:.75rem;margin-top:2px}.login-module__linkButton___5lsoe{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.8rem;margin-top:6px}.login-module__linkButton___5lsoe:hover{text-decoration:underline}");const Q=e=>{if("string"!=typeof e)return!1;const r=e.trim();if(r.length<3||r.length>320)return!1;const a=r.split("@");if(2!==a.length)return!1;const[o,i]=a;return!(!/^[A-Za-z0-9._%+-]+$/.test(o)||o.startsWith(".")||o.endsWith(".")||o.includes(".."))&&!(!/^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/.test(i)||i.startsWith("-")||i.endsWith("-")||i.startsWith(".")||i.endsWith(".")||i.includes(".."))},X=e=>{const r=y(e);return r?.isValid()||!1};const ee=({identifier:a,onMagicLink:o,onEmailOtp:i,onPhoneOtp:t,onPasskeyRetry:s,loginMethods:n})=>{const l=new Set(n??["passkey","magic_link","phone_otp"]),c=l.has("magic_link")&&Q(a),d=l.has("email_otp")&&Boolean(i)&&Q(a),_=l.has("phone_otp")&&X(a),m=l.has("passkey")&&Boolean(s);return c||d||_||m?e("div",{className:W,children:[r("div",{className:U,children:"Choose a sign-in method"}),r("p",{className:K,children:"Choose another secure sign-in method."}),e("div",{className:Y,children:[c&&e("button",{type:"button",className:$,onClick:o,children:[r("span",{className:H,children:"Email Magic Link"}),r("span",{className:J,children:"Send a secure sign-in link to your email"})]}),d&&e("button",{type:"button",className:$,onClick:i,children:[r("span",{className:H,children:"Email Code"}),r("span",{className:J,children:"Receive a one-time code by email"})]}),_&&e("button",{type:"button",className:$,onClick:t,children:[r("span",{className:H,children:"Text Message Code"}),r("span",{className:J,children:"Receive a one-time code via SMS"})]})]}),m&&r("button",{type:"button",className:Z,onClick:s,children:"Try passkey anyway"})]}):null},re="seamless:oauth:provider",ae=()=>{const{listOAuthProviders:a,startOAuthLogin:i,finishOAuthLogin:t,ports:s}=d(),n=o("/oauth/callback"),[l,c]=h([]),[_,m]=h("");if(f(()=>{let e=!0;return a().then(({data:r})=>{e&&c(r?.providers??[])}),()=>{e=!1}},[a]),0===l.length)return null;return e("div",{className:Y,children:[l.map(a=>r("button",{type:"button",className:$,onClick:()=>(async e=>{m(""),sessionStorage.setItem(re,e);const r=new URL(n,window.location.origin).toString(),{data:a,error:o}=await i({providerId:e,redirectUri:r});if(o)return void m("Could not start sign-in with this provider.");const l=await s.oauthRedirect.open(a.authorizationUrl,r);"callback"===l.type&&(await t({providerId:e,code:l.code,state:l.state})).error&&m("Could not finish sign-in with this provider.")})(a.id),children:e("span",{className:H,children:["Continue with ",a.name]})},a.id)),_&&r("p",{className:D,children:_})]})},oe=()=>{const o=i(),{hasSignedInBefore:t,login:s,handlePasskeyLogin:n}=d(),l=_(),{passkeySupported:c}=m(),{loginMethods:p}=u(),[v,b]=h(""),[y,k]=h(""),[x,w]=h("register"),[N,P]=h(""),[T,M]=h(""),[O,z]=h(""),[W,U]=h(!1),[K,Y]=h(null);f(()=>{t&&w("login")},[t]);const $=()=>"login"===x?Q(v)||X(v):Q(y);return r("div",{className:A,children:e("div",{className:B,children:[r("h2",{className:q,children:"login"===x?"Sign In":"Create Account"}),e(a,{children:[e("form",{onSubmit:async e=>{e.preventDefault(),P(""),U(!1);try{if("login"===x){const{data:e,error:r}=await s(v,c);if(r)return void P("Failed to start sign-in. Please try again.");const a=e?.loginMethods?.length?e.loginMethods:p??g;if(Y(a),c&&a.includes("passkey")){const{error:e}=await n();return e?(U(!0),void P("Passkey sign-in could not be completed. Choose another sign-in method.")):void o("/")}return void U(!0)}"register"===x&&await(async()=>{P("");const{data:e,error:r}=await l.register({email:y});r?P("Failed to register. Please try again."):"Success"===e.message?o(I):P("An unexpected error occurred. Try again. If the problem persists, contact support.")})()}catch{console.error("Failed to continue sign-in."),P("Failed to continue sign-in. Please try again.")}},children:["login"===x&&e("div",{className:E,children:[r("label",{htmlFor:"identifier",className:L,children:"Email Address / Phone Number"}),r("input",{id:"identifier",type:"text",value:v,onChange:e=>{const r=e.target.value;b(r)},autoComplete:"off",placeholder:"Email or Phone Number",className:F,onBlur:()=>{if(v){const e=Q(v)||X(v);z(e?"":"Please enter a valid email or phone number")}},required:!0}),r("p",{className:j,children:"Phone numbers must include a country code e.g. +1"}),W&&r(ee,{identifier:v,onMagicLink:async()=>{const{error:e}=await l.requestMagicLink();e?P("Failed to send magic link."):o(S,{state:{identifier:v}})},onEmailOtp:async()=>{const{error:e}=await l.requestLoginEmailOtp();e?P("Failed to send email code."):o(I,{state:{flow:"login"}})},onPhoneOtp:async()=>{const{error:e}=await l.requestLoginPhoneOtp();e?P("Failed to send OTP."):o(C,{state:{flow:"login"}})},onPasskeyRetry:c?n:void 0,loginMethods:K}),O&&r("p",{className:D,children:O})]}),"register"===x&&e("div",{className:E,children:[r("label",{htmlFor:"email",className:L,children:"Email Address"}),r("input",{id:"email",type:"email",value:y,onChange:e=>{const r=e.target.value;k(r)},autoComplete:"off",className:F,onBlur:()=>{if(y){const e=Q(y);M(e?"":"Please enter a valid email")}},required:!0}),T&&r("p",{className:D,children:T})]}),r("button",{type:"submit",className:R,disabled:!$(),"aria-describedby":"seamless-submit-hint",children:"login"===x?"Login":"Register"}),r("p",{id:"seamless-submit-hint",role:"status",className:V,children:"login"===x?v?$()?"Ready to continue.":"This does not look like a complete email or phone number yet.":"Enter your email or phone number to continue.":y?$()?"Ready to continue.":"This does not look like a complete email address yet.":"Enter your email address to continue."}),N&&r("p",{className:D,children:N}),r("button",{type:"button",onClick:()=>w("login"===x?"register":"login"),className:G,children:"login"===x?"Don't have an account? Create one":"Already have an account? Sign in"})]}),r(ae,{})]})]})})};var ie={container:"passKeyLogin-module__container___IUKxF",card:"passKeyLogin-module__card___2sKM1",title:"passKeyLogin-module__title___HZxvc",button:"passKeyLogin-module__button___FvR4I"};z(".passKeyLogin-module__container___IUKxF{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.passKeyLogin-module__card___2sKM1{background-color:var(--seamless-surface,#1f2937);border-radius:1rem;box-shadow:0 4px 20px var(--seamless-shadow,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:var(--seamless-text,#fff);font-size:1.5rem;font-weight:600;text-align:center}.passKeyLogin-module__button___FvR4I{background-color:var(--seamless-accent,#2563eb);border:1px solid var(--seamless-accent,#3b82f6);border-radius:.5rem;color:var(--seamless-accent-contrast,#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:var(--seamless-accent-hover,#1d4ed8)}@media (max-width:480px){.passKeyLogin-module__card___2sKM1{padding:1.25rem}.passKeyLogin-module__button___FvR4I{font-size:1rem}}");const te=()=>{const a=i(),{handlePasskeyLogin:o}=d(),[t,s]=h("");return r("div",{className:ie.container,children:e("div",{className:ie.card,children:[r("h2",{className:ie.title,children:"Login with Passkey"}),r("button",{onClick:async()=>{s("");const{error:e}=await o();e?s("Passkey sign-in could not be completed. Try another sign-in method."):a("/")},className:ie.button,children:"Use Passkey"}),t&&r("p",{className:ie.error,children:t})]})})};var se="registerPasskey-module__container___jqEh8",ne="registerPasskey-module__card___MJAyC",le="registerPasskey-module__loading___Q4i1x",ce="registerPasskey-module__spinner___V1nhd",de="registerPasskey-module__supported___ihTih",_e="registerPasskey-module__title___vn2Qu",me="registerPasskey-module__description___AWmO-",ue="registerPasskey-module__button___D3b4B",ge="registerPasskey-module__message___RiOw-",pe="registerPasskey-module__success___HP5aX",he="registerPasskey-module__error___hGiqE",fe="registerPasskey-module__skip___1hDyU",ve="registerPasskey-module__secondary___bnOB4";z(".registerPasskey-module__container___jqEh8{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.registerPasskey-module__card___MJAyC{background-color:var(--seamless-surface,#1f2937);border-radius:1rem;box-shadow:0 4px 20px var(--seamless-shadow,rgba(0,0,0,.4));max-width:400px;padding:1.5rem;width:100%}.registerPasskey-module__loading___Q4i1x{align-items:center;background-color:var(--seamless-surface,#f9fafb);border-radius:.75rem;box-shadow:0 2px 8px var(--seamless-shadow,rgba(0,0,0,.1));color:var(--seamless-text,#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-bottom:2px solid var(--seamless-accent,#3b82f6);border-left:2px solid transparent;border-radius:9999px;border-right:2px solid transparent;border-top:2px solid var(--seamless-accent,#3b82f6);height:1.5rem;width:1.5rem}@keyframes registerPasskey-module__spin___oYcsC{to{transform:rotate(1turn)}}.registerPasskey-module__supported___ihTih{background-color:var(--seamless-surface,#ecfdf5);border-radius:.75rem;box-shadow:0 2px 12px var(--seamless-shadow,rgba(0,0,0,.1));color:var(--seamless-text,#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:var(--seamless-accent,#059669);border:none;border-radius:.5rem;color:var(--seamless-accent-contrast,#fff);cursor:pointer;font-weight:500;padding:.75rem 1rem;transition:background-color .2s ease;width:100%}.registerPasskey-module__button___D3b4B:hover{background-color:var(--seamless-accent-hover,#047857)}.registerPasskey-module__message___RiOw-{font-size:.875rem;margin-top:1rem}.registerPasskey-module__success___HP5aX{color:var(--seamless-success,#6ee7b7)}.registerPasskey-module__error___hGiqE{color:var(--seamless-danger,#f87171)}.registerPasskey-module__skip___1hDyU{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}.registerPasskey-module__skip___1hDyU:disabled{cursor:default;opacity:.6}.registerPasskey-module__secondary___bnOB4{background:none;border:1px solid var(--seamless-accent,#059669);border-radius:.5rem;color:var(--seamless-accent,#059669);cursor:pointer;font-weight:500;margin-top:.75rem;padding:.75rem 1rem;transition:background-color .2s ease;width:100%}.registerPasskey-module__secondary___bnOB4:hover:not(:disabled){background-color:var(--seamless-accent-muted,rgba(5,150,105,.1))}.registerPasskey-module__secondary___bnOB4:disabled{cursor:default;opacity:.6}");const be={attachment_not_allowed:"This application does not accept that kind of authenticator. Try the other option.",synced_passkey_not_allowed:"This passkey syncs to a password manager, and this application requires one that stays on a single device, such as a security key.",authenticator_not_allowed:"This application does not accept this authenticator.",prf_required:"This authenticator does not support a feature this application requires."};const ye=()=>{const{refreshSession:a}=d(),o=_(),{passkeySupported:s,loading:n}=m(),{loginMethods:l,loading:c}=u(),g=i(),f=function(e){const r=e?.returnTo;return"string"!=typeof r||!r.startsWith("/")||r.startsWith("//")||r.startsWith("/\\")?"/":r}(t().state),[v,b]=h("idle"),[y,w]=h(""),N=p(l),P=async()=>{await a(),g(f)},C=async e=>{const{platform:r,browser:i,deviceInfo:t}=function(){const e=navigator.userAgent.toLowerCase();let r="unknown",a="unknown";return/iphone|ipad|ipod/.test(e)?r="ios":/android/.test(e)?r="android":/mac os/.test(e)?r="mac":/windows/.test(e)?r="windows":/linux/.test(e)&&(r="linux"),navigator.brave?a="brave":/edg\/|edgios/.test(e)?a="edge":/opr\/|opt\/|opera/.test(e)?a="opera":/vivaldi/.test(e)?a="vivaldi":/samsungbrowser/.test(e)?a="samsung":/firefox|fxios/.test(e)?a="firefox":/chrome|crios/.test(e)?a="chrome":/safari/.test(e)&&(a="safari"),{platform:r,browser:a,deviceInfo:`${r} • ${a}`}}(),s={friendlyName:t,platform:r,browser:i,deviceInfo:t};b("loading");try{const{error:r}=await o.registerPasskey({metadata:s,attachment:e});if(r)throw r;await a(),b("success"),w("Passkey registered successfully."),g(f)}catch(e){console.error("Passkey registration failed."),b("error"),w(function(e){const r=x(e);return r?be[r]:void 0}(e)??(k(e)?"Your session expired before the passkey was saved. Sign in again to add one.":"Error registering passkey."))}};return r("div",{className:se,children:r("div",{className:ne,children:e("div",n||c?{className:le,children:[r("div",{className:ce}),r("span",{children:"Checking for Passkey Support..."})]}:s?{className:de,children:[r("h2",{className:_e,children:"Secure Your Account with a Passkey"}),r("p",{className:me,children:"Your device supports passkeys! Register one to skip passwords forever."}),r("button",{onClick:()=>C(),disabled:"loading"===v,className:ue,children:"loading"===v?"Registering...":"Register Passkey"}),r("button",{type:"button",onClick:()=>C("cross-platform"),disabled:"loading"===v,className:ve,children:"Use a security key instead"}),y&&r("p",{className:`${ge} ${"success"===v?pe:he}`,children:y}),N&&r("button",{type:"button",onClick:P,disabled:"loading"===v,className:fe,children:"Skip for now"})]}:{className:de,children:[r("h2",{className:_e,children:"Passkeys are not available here"}),r("p",{className:me,children:N?"This device does not support passkeys. You can continue without one and add a passkey later from a device that does.":"This device does not support passkeys, and this application requires one to sign in. Try again from a device or browser that supports them."}),N&&r("button",{type:"button",onClick:P,className:ue,children:"Continue"})]})})})};var ke="verifyOTP-module__container___wgoDE",xe="verifyOTP-module__card___3cs2p",we="verifyOTP-module__title___fZ-1d",Ne="verifyOTP-module__subtitle___dGSu3",Pe="verifyOTP-module__error___GEtlG",Ce="verifyOTP-module__success___46TjG",Ie="verifyOTP-module__form___jiGG-",Te="verifyOTP-module__label___Zq5Mi",Me="verifyOTP-module__timer___smq-a",Oe="verifyOTP-module__resend___PlmkG",Se="verifyOTP-module__button___8pIuO",ze="verifyOTP-module__toggle___wbzVa";z(".verifyOTP-module__container___wgoDE{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.verifyOTP-module__card___3cs2p{background-color:var(--seamless-surface,#1f2937);border-radius:.5rem;box-shadow:0 0 10px var(--seamless-shadow,rgba(0,0,0,.3));max-width:28rem;padding:1.5rem;width:100%}.verifyOTP-module__title___fZ-1d{color:var(--seamless-text,#fff);font-size:1.5rem;font-weight:700;margin-bottom:1rem;text-align:center}.verifyOTP-module__subtitle___dGSu3{color:var(--seamless-text-muted,#9ca3af);font-size:.875rem;margin-bottom:1.5rem;text-align:center}.verifyOTP-module__error___GEtlG{color:var(--seamless-danger,#f87171);margin-bottom:1rem;text-align:center}.verifyOTP-module__success___46TjG{color:var(--seamless-success,#34d399);margin-bottom:.75rem;text-align:center}.verifyOTP-module__form___jiGG-{display:flex;flex-direction:column;gap:1rem}.verifyOTP-module__label___Zq5Mi{color:var(--seamless-text-muted,#d1d5db);display:block;font-size:.875rem;margin-bottom:.25rem}.verifyOTP-module__timer___smq-a{color:var(--seamless-warning,#facc15);font-size:.875rem}.verifyOTP-module__input___yqIXM{background-color:var(--seamless-surface-raised,#374151);border:1px solid var(--seamless-border,#4b5563);border-radius:.375rem;color:var(--seamless-text,#fff);outline:none;padding:.5rem;width:100%}.verifyOTP-module__input___yqIXM:focus{box-shadow:0 0 0 2px var(--seamless-accent,#3b82f6)}.verifyOTP-module__resend___PlmkG{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.75rem;margin-top:.25rem;text-decoration:underline}.verifyOTP-module__resend___PlmkG:hover{color:var(--seamless-accent,#3b82f6)}.verifyOTP-module__button___8pIuO{background-color:var(--seamless-accent,#2563eb);border:none;border-radius:.375rem;color:var(--seamless-accent-contrast,#fff);cursor:pointer;padding:.5rem;transition:background-color .2s;width:100%}.verifyOTP-module__button___8pIuO:hover{background-color:var(--seamless-accent-hover,#1d4ed8)}.verifyOTP-module__toggle___wbzVa{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}");var Ae="otpInput-module__otpContainer___MUjby",Be="otpInput-module__otpInput___3YMVm";z(".otpInput-module__otpContainer___MUjby{display:flex;gap:8px;justify-content:center;margin-top:8px}.otpInput-module__otpInput___3YMVm{background:var(--seamless-surface-raised,#374151);border:1px solid var(--seamless-border,#4b5563);border-radius:8px;color:var(--seamless-text,#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:var(--seamless-accent,#60a5fa);box-shadow:0 0 0 2px var(--seamless-accent,rgba(96,165,250,.25));outline:none}");const qe=({length:e=6,value:a,inputMode:o="numeric",onChange:i,name:t="otp"})=>{const s=v([]),n=a.split("").concat(Array(e).fill("")).slice(0,e),l=(e,r)=>{var a;if(r.length>1)c(e,r);else if(!r||(a=r,"numeric"===o?/^\d$/.test(a):/^[a-zA-Z]$/.test(a))){const a=[...n];a[e]=r;const o=a.join("");i(o),r&&s.current[e+1]&&s.current[e+1]?.focus()}},c=(r,a)=>{let t=a;t="numeric"===o?a.replace(/\D/g,""):a.replace(/[^a-zA-Z]/g,"");const l=t.slice(0,e).split(""),c=[...n];l.forEach((a,o)=>{r+o<e&&(c[r+o]=a)}),i(c.join("")),s.current[Math.min(r+l.length,e-1)]?.focus()};return r("div",{className:Ae,role:"group","aria-label":"One-time password input",onPaste:e=>{e.preventDefault(),c(0,e.clipboardData.getData("text"))},children:n.map((a,c)=>r("input",{ref:e=>s.current[c]=e,type:"text",inputMode:"numeric"===o?"numeric":"text",autoComplete:"one-time-code",name:`${t}-${c}`,maxLength:1,value:a,className:Be,onChange:e=>l(c,e.target.value),onKeyDown:r=>((r,a)=>{if("Backspace"===a.key){a.preventDefault();const e=[...n];n[r]?(e[r]="",i(e.join(""))):r>0&&(e[r-1]="",i(e.join("")),s.current[r-1]?.focus())}"ArrowLeft"===a.key&&r>0&&s.current[r-1]?.focus(),"ArrowRight"===a.key&&r<e-1&&s.current[r+1]?.focus()})(c,r),"aria-label":`Digit ${c+1}`},c))})},Ee=()=>{const a=i(),o=t(),{refreshSession:s}=d(),n="login"===o.state?.flow,[l,c]=h(""),[m,u]=h(null),[g,p]=h(""),[v,b]=h(!1),[y,k]=h(""),[x,w]=h(300),N=_(),P=async()=>{if(b(!0),!m){const{error:e}=n?await N.verifyLoginPhoneOtp(l):await N.verifyPhoneOtp(l);if(e)p("Verification failed.");else{if(n)return await s(),void a("/");u(!0)}}b(!1)},C=async()=>{k(""),await(async()=>{p("");const{error:e}=n?await N.requestLoginPhoneOtp():await N.requestPhoneOtp();e?p("Failed to send SMS code. If this persists, refresh the page and try again."):k("Verification SMS has been resent.")})(),k("Verification SMS has been resent.")};return f(()=>{const e=setInterval(()=>{w(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),f(()=>{m&&!n&&(async()=>{const{error:e}=await N.requestEmailOtp();e?p("Failed to send Email code. If this persists, refresh the page and try registering again."):a(I)})()},[m,n,a,N]),r("div",{className:ke,children:e("div",{className:xe,children:[r("h2",{className:we,children:"Verify Your Phone Number"}),r("p",{className:Ne,children:"Enter the code sent to your phone number."}),g&&r("p",{className:Pe,children:g}),y&&r("p",{className:Ce,children:y}),e("form",{onSubmit:async e=>{if(e.preventDefault(),p(""),6===l.length){b(!0);try{await P()}catch{p("Unexpected error occurred.")}finally{b(!1)}}else p("Please enter a valid code.")},className:Ie,children:[e("div",{children:[e("label",{htmlFor:"phoneCode",className:Te,children:["Phone Verification Code ",(M=m,!0===M?r("span",{className:"text-green-400 ml-2",children:"✅"}):!1===M?r("span",{className:"text-red-400 ml-2",children:"❌"}):null)," -"," ",e("span",{className:Me,children:["Code expires in: ",(T=x,`${Math.floor(T/60).toString().padStart(2,"0")}:${(T%60).toString().padStart(2,"0")}`)]})]}),r(qe,{length:6,value:l,onChange:c}),r("button",{type:"button",onClick:()=>C(),className:Oe,children:"Resend code to phone"})]}),r("button",{type:"submit",className:Se,children:v?"Verifying...":"Verify & Continue"}),r("button",{type:"button",onClick:()=>a("/login"),className:ze,children:"Back to login"})]})]})});var T,M},Le=()=>{const a=i(),o=t(),{refreshSession:s}=d(),n=_(),{passkeySupported:l}=m(),c="login"===o.state?.flow,[u,g]=h(!1),[p,v]=h(""),[b,y]=h(300),[k,x]=h(""),[w,N]=h("");return f(()=>{const e=setInterval(()=>{y(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),r("div",{className:ke,children:e("div",{className:xe,children:[r("h2",{className:we,children:"Verify Your Email"}),r("p",{className:Ne,children:"We sent you a verification email. Enter the code below."}),k&&r("p",{className:Pe,children:k}),w&&r("p",{className:Ce,children:w}),e("form",{onSubmit:async e=>{if(e.preventDefault(),x(""),6===p.length){g(!0);try{const{error:e}=c?await n.verifyLoginEmailOtp(p):await n.verifyEmailOtp(p);if(e)return void x("Verification failed.");if(c)return await s(),void a("/");l?a(O):(await s(),a("/"))}catch{console.error("Email OTP verification failed."),x("Verification failed.")}finally{g(!1)}}else x("Please enter a valid code.")},className:Ie,children:[e("div",{children:[e("label",{htmlFor:"emailCode",className:Te,children:["Email Verification Code",e("span",{className:Me,children:[" ","— Code expires in ",(P=b,`${Math.floor(P/60).toString().padStart(2,"0")}:${(P%60).toString().padStart(2,"0")}`)]})]}),r(qe,{length:6,value:p,onChange:v,inputMode:"text"}),r("button",{type:"button",onClick:async()=>{x(""),N("");const{error:e}=c?await n.requestLoginEmailOtp():await n.requestEmailOtp();e?x("Failed to send Email code. If this persists, refresh the page and try again."):N("Verification email has been resent.")},className:Oe,children:"Resend code to email"})]}),r("button",{type:"submit",className:Se,disabled:u,children:u?"Verifying...":"Verify & Continue"}),r("button",{type:"button",onClick:()=>a("/login"),className:ze,children:"Back to login"})]})]})});var P};var Fe={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"};z(".verifyMagiclink-module__container___qrSXf{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.verifyMagiclink-module__card___niKgr{background-color:var(--seamless-surface,#1f2937);border-radius:.5rem;box-shadow:0 0 10px var(--seamless-shadow,rgba(0,0,0,.3));max-width:28rem;padding:1.5rem;width:100%}.verifyMagiclink-module__title___SumxD{color:var(--seamless-text,#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 var(--seamless-border,hsla(0,0%,100%,.15));border-radius:50%;border-top-color:var(--seamless-accent,#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:var(--seamless-success,#34d399);height:22px;width:22px}.verifyMagiclink-module__successText___lO5Qq{color:var(--seamless-success,#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 je=()=>{const[a]=s(),o=i(),t=a.get("token"),[n,l]=h(""),[c,m]=h(""),u=_(),{refreshSession:g}=d();return f(()=>{let e=!0,r=null,a=null;return(async()=>{if(!t)return e&&l("Missing token for verification."),void console.error("No magic-link token found.");const{error:i}=await u.verifyMagicLink(t);if(i)return console.error("Failed to verify token"),void(e&&l("Failed to verify token"));await g(),e&&(r=new BroadcastChannel("seamless-auth"),r.postMessage({type:"MAGIC_LINK_AUTH_SUCCESS"}),m("You have been verified on the device and browser that initiated this request"),a=setTimeout(()=>{e&&o("/")},900))})(),()=>{e=!1,r?.close(),a&&clearTimeout(a)}},[t,u,o,g]),r("div",{className:Fe.container,children:e("div",{className:Fe.card,children:[r("h1",{className:Fe.title,children:"Verifying your login"}),e("div",{className:Fe.verificationContent,children:[!c&&!n&&r("div",{className:Fe.spinner}),c&&r("div",{className:Fe.successIcon,children:r("svg",{viewBox:"0 0 24 24",className:Fe.checkIcon,fill:"none",stroke:"currentColor",strokeWidth:"2",children:r("path",{d:"M5 13l4 4L19 7"})})}),!c&&!n&&r("p",{className:Fe.helperText,children:"Please wait while we securely verify your sign-in link."}),c&&r("p",{className:Fe.successText,children:"Login verified. Redirecting…"}),n&&r("p",{className:Fe.error,children:n})]})]})})};const De={oauth_missing_email:"Your provider account did not share an email address. Add an email to that account and make it visible, then try again.",oauth_email_not_verified:"The email address on your provider account is not verified. Verify it with your provider, then try again.",oauth_missing_subject:"Your provider did not return a usable account identifier. Try again, or sign in with a different method.",oauth_invalid_id_token:"Your provider sent a sign-in response that could not be verified. Try again, or sign in with a different method.",oauth_provider_retired:"Your organization no longer signs in with this provider. Sign in with your passkey or another method instead."},Re=()=>{const{finishOAuthLogin:o}=d(),t=i(),[n]=s(),[l,c]=h(""),_=v(!1);return f(()=>{if(_.current)return;_.current=!0;const e=n.get("code"),r=n.get("state"),a=sessionStorage.getItem(re);e&&r&&a?o({providerId:a,code:e,state:r}).then(({data:e,error:r})=>{if(r){const e=w(r);return void c(e?De[e]:"We could not complete sign-in. Please try again.")}sessionStorage.removeItem(re);const a=function(e){if(!e)return null;try{const r=new URL(e,window.location.origin);return r.origin!==window.location.origin?null:`${r.pathname}${r.search}${r.hash}`}catch{return null}}(e?.returnTo)??"/";"enroll_passkey"!==e?.nextStep?t(a):t(O,{state:{returnTo:a}})}):c("This sign-in link is missing required information.")},[o,t,n]),e("div",{className:Fe.container,children:[r("h2",{className:Fe.title,children:l?"Sign-in failed":"Completing sign-in..."}),l&&e(a,{children:[r("p",{children:l}),r("button",{type:"button",onClick:()=>t("/login"),children:"Back to login"})]})]})};var Ve="magiclink-module__container___45zcA",Ge="magiclink-module__card___Au9oN",We="magiclink-module__iconWrapper___k5ndr",Ue="magiclink-module__mailIcon___Pwb7q",Ke="magiclink-module__iconRing___bdLvf",Ye="magiclink-module__heading___b9cre",$e="magiclink-module__message___kiVFj",He="magiclink-module__identifier___JtcFM",Je="magiclink-module__helperText___7Mlfh",Ze="magiclink-module__actions___64I-3",Qe="magiclink-module__secondaryButton___BntAI",Xe="magiclink-module__cooldown___Ib4rm",er="magiclink-module__linkButton___maJiv";z(".magiclink-module__container___45zcA{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center}.magiclink-module__card___Au9oN{background-color:var(--seamless-surface,#1f2937);border-radius:.75rem;box-shadow:0 10px 25px var(--seamless-shadow,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:var(--seamless-accent-soft,#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:var(--seamless-text-muted,#d1d5db);font-size:.95rem;line-height:1.4;margin-bottom:1rem}.magiclink-module__identifier___JtcFM{background:var(--seamless-surface-raised,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:var(--seamless-text-muted,#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:var(--seamless-surface,#111827);border:1px solid var(--seamless-border,#374151);border-radius:8px;color:var(--seamless-text,#fff);cursor:pointer;font-weight:500;padding:.65rem}.magiclink-module__secondaryButton___BntAI:hover:not(:disabled){background:var(--seamless-surface-hover,#1f2937)}.magiclink-module__secondaryButton___BntAI:disabled{cursor:not-allowed;opacity:.5}.magiclink-module__cooldown___Ib4rm{color:var(--seamless-text-muted,#9ca3af);font-size:.8rem}.magiclink-module__linkButton___maJiv{background:none;border:none;color:var(--seamless-accent-soft,#a5b4fc);cursor:pointer;font-size:.85rem;margin-top:.4rem}.magiclink-module__linkButton___maJiv:hover{text-decoration:underline}");const rr=()=>{const{refreshSession:a}=d(),o=i(),s=t(),n=_(),l=s.state?.identifier,[c,m]=h(30);f(()=>{const e=setInterval(()=>{m(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]);const u=b(async()=>{const{data:e,error:r}=await n.checkMagicLink();return!r&&"Success"===e?.message},[n]);return f(()=>{const e=new BroadcastChannel("seamless-auth");return e.onmessage=async e=>{"MAGIC_LINK_AUTH_SUCCESS"===e.data?.type&&await u()&&(await a(),o("/"))},()=>{e.close()}},[u,o,a]),f(()=>{const e=setInterval(async()=>{try{await u()&&(await a(),o("/"))}catch{}},5e3);return()=>clearInterval(e)},[u,a,o]),r("div",{className:Ve,children:e("div",{className:Ge,children:[e("div",{className:We,children:[r("div",{className:Ke}),e("svg",{className:Ue,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[r("path",{d:"M4 6h16v12H4z"}),r("path",{d:"m4 6 8 6 8-6"})]})]}),r("h2",{className:Ye,children:"Check your email"}),r("p",{className:$e,children:"If an account exists for this address, we sent a secure sign-in link."}),l&&r("div",{className:He,children:l}),r("p",{className:Je,children:"Open the email and click the link to finish signing in."}),r("p",{className:Je,children:"Didn’t receive anything? Check your spam folder or try creating a new account."}),e("div",{className:Ze,children:[r("button",{className:Qe,disabled:c>0,onClick:async()=>{c>0||(await n.requestMagicLink(),m(30))},children:"Resend link"}),c>0&&e("div",{className:Xe,children:["Available in ",c,"s"]}),r("button",{className:er,onClick:()=>o("/login"),children:"Change email or phone"})]})]})})},ar=()=>e(n,{children:[r(l,{path:N,element:r(oe,{})}),r(l,{path:P,element:r(te,{})}),r(l,{path:C,element:r(Ee,{})}),r(l,{path:I,element:r(Le,{})}),r(l,{path:T,element:r(je,{})}),r(l,{path:M,element:r(Re,{})}),r(l,{path:O,element:r(ye,{})}),r(l,{path:S,element:r(rr,{})}),r(l,{path:"*",element:r(c,{to:N,replace:!0})})]});export{ar as AuthRoutes};
|
|
2
|
+
import{jsxs as e,jsx as r,Fragment as a}from"react/jsx-runtime";import{useHref as o,useNavigate as i,useLocation as t,useSearchParams as n,Routes as s,Route as l,Navigate as c}from"react-router-dom";import{u as d,a as _,c as m,b as u,F as g,h as p}from"./chunks/shared-BzrBuR0z.js";import{useState as h,useEffect as f,useRef as v,useCallback as b}from"react";import y from"libphonenumber-js";import{isUnauthenticated as k,getPasskeyPolicyErrorCode as x,getOAuthErrorCode as w}from"@seamless-auth/client";const N="/login",P="/passkey-login",C="/verify-phone-otp",T="/verify-email-otp",I="/verify-magiclink",M="/oauth/callback",O="/register-passkey",S="/magic-link-sent";function z(e,r){void 0===r&&(r={});var a=r.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===a&&o.firstChild?o.insertBefore(i,o.firstChild):o.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var A="login-module__container___YggDx",B="login-module__card___Ub-Py",q="login-module__heading___neEqb",L="login-module__inputGroup___P6qgS",E="login-module__label___mx5vu",F="login-module__input___U07lW",j="login-module__helperText___kDQ4-",R="login-module__error___40zxh",D="login-module__button___0kFBs",V="login-module__submitHint___qOS5Z",G="login-module__toggle___1JiG1",W="login-module__fallbackCard___HdIk-",U="login-module__fallbackHeader___-il2v",K="login-module__fallbackDescription___ea5EB",Y="login-module__fallbackActions___AD3ni",$="login-module__fallbackActionButton___lFgWf",H="login-module__actionTitle___ycrMp",J="login-module__actionSubtext___opaIV",Z="login-module__linkButton___5lsoe";z(".login-module__container___YggDx{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center}.login-module__card___Ub-Py{background-color:var(--seamless-surface,#1f2937);border-radius:.5rem;box-shadow:0 4px 6px var(--seamless-shadow,rgba(0,0,0,.1));max-width:28rem;padding:2rem;width:100%}.login-module__heading___neEqb{color:var(--seamless-text,#fff);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:center}.login-module__message___qSejT{color:var(--seamless-success,#68d391);text-align:center}.login-module__inputGroup___P6qgS{margin-bottom:1rem}.login-module__label___mx5vu{color:var(--seamless-text-muted,#d1d5db);display:block}.login-module__input___U07lW{background-color:var(--seamless-surface-raised,#4b5563);border:1px solid var(--seamless-border,#d1d5db);border-radius:.375rem;margin-top:.25rem;padding:.5rem;width:100%}.login-module__input___U07lW:focus{box-shadow:0 0 0 2px var(--seamless-accent,#3b82f6);outline:none}.login-module__helperText___kDQ4-{color:var(--seamless-text-muted,#9ca3af);font-size:.75rem;margin-top:.5rem}.login-module__error___40zxh{color:var(--seamless-danger,#f87171);font-size:.875rem}.login-module__button___0kFBs{background-color:var(--seamless-accent,#2563eb);border-radius:.375rem;color:var(--seamless-accent-contrast,#fff);cursor:pointer;margin-top:1rem;padding:.5rem;transition:background-color .3s,opacity .3s;width:100%}.login-module__button___0kFBs:hover:not(:disabled){background-color:var(--seamless-accent-hover,#1d4ed8)}.login-module__button___0kFBs:disabled{cursor:not-allowed;opacity:.6}.login-module__submitHint___qOS5Z{color:var(--seamless-text-muted,#9ca3af);font-size:.75rem;margin-top:.5rem;text-align:center}.login-module__toggle___1JiG1{background:none;border:none;color:var(--seamless-accent-soft,#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:var(--seamless-surface-raised,#4b5563);border:1px solid var(--seamless-border,#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:var(--seamless-surface-raised,hsla(0,0%,100%,.04));border:1px solid var(--seamless-border,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:var(--seamless-text,#f3f4f6);font-size:.95rem;font-weight:600}.login-module__fallbackDescription___ea5EB{color:var(--seamless-text-muted,#9ca3af);font-size:.85rem;line-height:1.4}.login-module__fallbackActions___AD3ni{display:flex;flex-direction:column;gap:10px}.login-module__fallbackActionButton___lFgWf{background:var(--seamless-surface,rgba(0,0,0,.25));border:1px solid var(--seamless-border,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:var(--seamless-surface-hover,hsla(0,0%,100%,.06));border-color:var(--seamless-border,hsla(0,0%,100%,.15))}.login-module__actionTitle___ycrMp{color:var(--seamless-text,#f9fafb);font-size:.9rem;font-weight:500}.login-module__actionSubtext___opaIV{color:var(--seamless-text-muted,#9ca3af);font-size:.75rem;margin-top:2px}.login-module__linkButton___5lsoe{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.8rem;margin-top:6px}.login-module__linkButton___5lsoe:hover{text-decoration:underline}");const Q=e=>{if("string"!=typeof e)return!1;const r=e.trim();if(r.length<3||r.length>320)return!1;const a=r.split("@");if(2!==a.length)return!1;const[o,i]=a;return!(!/^[A-Za-z0-9._%+-]+$/.test(o)||o.startsWith(".")||o.endsWith(".")||o.includes(".."))&&!(!/^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/.test(i)||i.startsWith("-")||i.endsWith("-")||i.startsWith(".")||i.endsWith(".")||i.includes(".."))},X=e=>{const r=y(e);return r?.isValid()||!1};const ee=({identifier:a,onMagicLink:o,onEmailOtp:i,onPhoneOtp:t,onPasskeyRetry:n,loginMethods:s})=>{const l=new Set(s??["passkey","magic_link","phone_otp"]),c=l.has("magic_link")&&Q(a),d=l.has("email_otp")&&Boolean(i)&&Q(a),_=l.has("phone_otp")&&X(a),m=l.has("passkey")&&Boolean(n);return c||d||_||m?e("div",{className:W,children:[r("div",{className:U,children:"Choose a sign-in method"}),r("p",{className:K,children:"Choose another secure sign-in method."}),e("div",{className:Y,children:[c&&e("button",{type:"button",className:$,onClick:o,children:[r("span",{className:H,children:"Email Magic Link"}),r("span",{className:J,children:"Send a secure sign-in link to your email"})]}),d&&e("button",{type:"button",className:$,onClick:i,children:[r("span",{className:H,children:"Email Code"}),r("span",{className:J,children:"Receive a one-time code by email"})]}),_&&e("button",{type:"button",className:$,onClick:t,children:[r("span",{className:H,children:"Text Message Code"}),r("span",{className:J,children:"Receive a one-time code via SMS"})]})]}),m&&r("button",{type:"button",className:Z,onClick:n,children:"Try passkey anyway"})]}):null},re="seamless:oauth:provider",ae=()=>{const{listOAuthProviders:a,startOAuthLogin:i,finishOAuthLogin:t,ports:n}=d(),s=o("/oauth/callback"),[l,c]=h([]),[_,m]=h("");if(f(()=>{let e=!0;return a().then(({data:r})=>{e&&c(r?.providers??[])}),()=>{e=!1}},[a]),0===l.length)return null;return e("div",{className:Y,children:[l.map(a=>r("button",{type:"button",className:$,onClick:()=>(async e=>{m(""),sessionStorage.setItem(re,e);const r=new URL(s,window.location.origin).toString(),{data:a,error:o}=await i({providerId:e,redirectUri:r});if(o)return void m("Could not start sign-in with this provider.");const l=await n.oauthRedirect.open(a.authorizationUrl,r);"callback"===l.type&&(await t({providerId:e,code:l.code,state:l.state})).error&&m("Could not finish sign-in with this provider.")})(a.id),children:e("span",{className:H,children:["Continue with ",a.name]})},a.id)),_&&r("p",{className:R,children:_})]})},oe=()=>{const o=i(),{hasSignedInBefore:t,login:n,handlePasskeyLogin:s}=d(),l=_(),{passkeySupported:c}=m(),{loginMethods:p}=u(),[v,b]=h(""),[y,k]=h(""),[x,w]=h("register"),[N,P]=h(""),[I,M]=h(""),[O,z]=h(""),[W,U]=h(!1),[K,Y]=h(null);f(()=>{t&&w("login")},[t]);const $=()=>"login"===x?Q(v)||X(v):Q(y);return r("div",{className:A,children:e("div",{className:B,children:[r("h2",{className:q,children:"login"===x?"Sign In":"Create Account"}),e(a,{children:[e("form",{onSubmit:async e=>{e.preventDefault(),P(""),U(!1);try{if("login"===x){const{data:e,error:r}=await n(v,c);if(r)return void P("Failed to start sign-in. Please try again.");const a=e?.loginMethods?.length?e.loginMethods:p??g;if(Y(a),c&&a.includes("passkey")){const{error:e}=await s();return e?(U(!0),void P("Passkey sign-in could not be completed. Choose another sign-in method.")):void o("/")}return void U(!0)}"register"===x&&await(async()=>{P("");const{data:e,error:r}=await l.register({email:y});r?P("Failed to register. Please try again."):"Success"===e.message?o(T):P("An unexpected error occurred. Try again. If the problem persists, contact support.")})()}catch{console.error("Failed to continue sign-in."),P("Failed to continue sign-in. Please try again.")}},children:["login"===x&&e("div",{className:L,children:[r("label",{htmlFor:"identifier",className:E,children:"Email Address / Phone Number"}),r("input",{id:"identifier",type:"text",value:v,onChange:e=>{const r=e.target.value;b(r)},autoComplete:"off",placeholder:"Email or Phone Number",className:F,onBlur:()=>{if(v){const e=Q(v)||X(v);z(e?"":"Please enter a valid email or phone number")}},required:!0}),r("p",{className:j,children:"Phone numbers must include a country code e.g. +1"}),W&&r(ee,{identifier:v,onMagicLink:async()=>{const{error:e}=await l.requestMagicLink();e?P("Failed to send magic link."):o(S,{state:{identifier:v}})},onEmailOtp:async()=>{const{error:e}=await l.requestLoginEmailOtp();e?P("Failed to send email code."):o(T,{state:{flow:"login"}})},onPhoneOtp:async()=>{const{error:e}=await l.requestLoginPhoneOtp();e?P("Failed to send OTP."):o(C,{state:{flow:"login"}})},onPasskeyRetry:c?s:void 0,loginMethods:K}),O&&r("p",{className:R,children:O})]}),"register"===x&&e("div",{className:L,children:[r("label",{htmlFor:"email",className:E,children:"Email Address"}),r("input",{id:"email",type:"email",value:y,onChange:e=>{const r=e.target.value;k(r)},autoComplete:"off",className:F,onBlur:()=>{if(y){const e=Q(y);M(e?"":"Please enter a valid email")}},required:!0}),I&&r("p",{className:R,children:I})]}),r("button",{type:"submit",className:D,disabled:!$(),"aria-describedby":"seamless-submit-hint",children:"login"===x?"Login":"Register"}),r("p",{id:"seamless-submit-hint",role:"status",className:V,children:"login"===x?v?$()?"Ready to continue.":"This does not look like a complete email or phone number yet.":"Enter your email or phone number to continue.":y?$()?"Ready to continue.":"This does not look like a complete email address yet.":"Enter your email address to continue."}),N&&r("p",{className:R,children:N}),r("button",{type:"button",onClick:()=>w("login"===x?"register":"login"),className:G,children:"login"===x?"Don't have an account? Create one":"Already have an account? Sign in"})]}),r(ae,{})]})]})})};var ie={container:"passKeyLogin-module__container___IUKxF",card:"passKeyLogin-module__card___2sKM1",title:"passKeyLogin-module__title___HZxvc",button:"passKeyLogin-module__button___FvR4I"};z(".passKeyLogin-module__container___IUKxF{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.passKeyLogin-module__card___2sKM1{background-color:var(--seamless-surface,#1f2937);border-radius:1rem;box-shadow:0 4px 20px var(--seamless-shadow,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:var(--seamless-text,#fff);font-size:1.5rem;font-weight:600;text-align:center}.passKeyLogin-module__button___FvR4I{background-color:var(--seamless-accent,#2563eb);border:1px solid var(--seamless-accent,#3b82f6);border-radius:.5rem;color:var(--seamless-accent-contrast,#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:var(--seamless-accent-hover,#1d4ed8)}@media (max-width:480px){.passKeyLogin-module__card___2sKM1{padding:1.25rem}.passKeyLogin-module__button___FvR4I{font-size:1rem}}");const te=()=>{const a=i(),{handlePasskeyLogin:o}=d(),[t,n]=h("");return r("div",{className:ie.container,children:e("div",{className:ie.card,children:[r("h2",{className:ie.title,children:"Login with Passkey"}),r("button",{onClick:async()=>{n("");const{error:e}=await o();e?n("Passkey sign-in could not be completed. Try another sign-in method."):a("/")},className:ie.button,children:"Use Passkey"}),t&&r("p",{className:ie.error,children:t})]})})};var ne="registerPasskey-module__container___jqEh8",se="registerPasskey-module__card___MJAyC",le="registerPasskey-module__loading___Q4i1x",ce="registerPasskey-module__spinner___V1nhd",de="registerPasskey-module__supported___ihTih",_e="registerPasskey-module__title___vn2Qu",me="registerPasskey-module__description___AWmO-",ue="registerPasskey-module__button___D3b4B",ge="registerPasskey-module__message___RiOw-",pe="registerPasskey-module__success___HP5aX",he="registerPasskey-module__error___hGiqE",fe="registerPasskey-module__skip___1hDyU",ve="registerPasskey-module__secondary___bnOB4";z(".registerPasskey-module__container___jqEh8{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.registerPasskey-module__card___MJAyC{background-color:var(--seamless-surface,#1f2937);border-radius:1rem;box-shadow:0 4px 20px var(--seamless-shadow,rgba(0,0,0,.4));max-width:400px;padding:1.5rem;width:100%}.registerPasskey-module__loading___Q4i1x{align-items:center;background-color:var(--seamless-surface,#f9fafb);border-radius:.75rem;box-shadow:0 2px 8px var(--seamless-shadow,rgba(0,0,0,.1));color:var(--seamless-text,#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-bottom:2px solid var(--seamless-accent,#3b82f6);border-left:2px solid transparent;border-radius:9999px;border-right:2px solid transparent;border-top:2px solid var(--seamless-accent,#3b82f6);height:1.5rem;width:1.5rem}@keyframes registerPasskey-module__spin___oYcsC{to{transform:rotate(1turn)}}.registerPasskey-module__supported___ihTih{background-color:var(--seamless-surface,#ecfdf5);border-radius:.75rem;box-shadow:0 2px 12px var(--seamless-shadow,rgba(0,0,0,.1));color:var(--seamless-text,#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:var(--seamless-accent,#059669);border:none;border-radius:.5rem;color:var(--seamless-accent-contrast,#fff);cursor:pointer;font-weight:500;padding:.75rem 1rem;transition:background-color .2s ease;width:100%}.registerPasskey-module__button___D3b4B:hover{background-color:var(--seamless-accent-hover,#047857)}.registerPasskey-module__message___RiOw-{font-size:.875rem;margin-top:1rem}.registerPasskey-module__success___HP5aX{color:var(--seamless-success,#6ee7b7)}.registerPasskey-module__error___hGiqE{color:var(--seamless-danger,#f87171)}.registerPasskey-module__skip___1hDyU{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}.registerPasskey-module__skip___1hDyU:disabled{cursor:default;opacity:.6}.registerPasskey-module__secondary___bnOB4{background:none;border:1px solid var(--seamless-accent,#059669);border-radius:.5rem;color:var(--seamless-accent,#059669);cursor:pointer;font-weight:500;margin-top:.75rem;padding:.75rem 1rem;transition:background-color .2s ease;width:100%}.registerPasskey-module__secondary___bnOB4:hover:not(:disabled){background-color:var(--seamless-accent-muted,rgba(5,150,105,.1))}.registerPasskey-module__secondary___bnOB4:disabled{cursor:default;opacity:.6}");const be={attachment_not_allowed:"This application does not accept that kind of authenticator. Try the other option.",synced_passkey_not_allowed:"This passkey syncs to a password manager, and this application requires one that stays on a single device, such as a security key.",authenticator_not_allowed:"This application does not accept this authenticator.",prf_required:"This authenticator does not support a feature this application requires."};const ye=()=>{const{refreshSession:a}=d(),o=_(),{passkeySupported:n,loading:s}=m(),{loginMethods:l,loading:c}=u(),g=i(),f=function(e){const r=e?.returnTo;return"string"!=typeof r||!r.startsWith("/")||r.startsWith("//")||r.startsWith("/\\")?"/":r}(t().state),[v,b]=h("idle"),[y,w]=h(""),N=p(l),P=async()=>{await a(),g(f)},C=async e=>{const{platform:r,browser:i,deviceInfo:t}=function(){const e=navigator.userAgent.toLowerCase();let r="unknown",a="unknown";return/iphone|ipad|ipod/.test(e)?r="ios":/android/.test(e)?r="android":/mac os/.test(e)?r="mac":/windows/.test(e)?r="windows":/linux/.test(e)&&(r="linux"),navigator.brave?a="brave":/edg\/|edgios/.test(e)?a="edge":/opr\/|opt\/|opera/.test(e)?a="opera":/vivaldi/.test(e)?a="vivaldi":/samsungbrowser/.test(e)?a="samsung":/firefox|fxios/.test(e)?a="firefox":/chrome|crios/.test(e)?a="chrome":/safari/.test(e)&&(a="safari"),{platform:r,browser:a,deviceInfo:`${r} • ${a}`}}(),n={friendlyName:t,platform:r,browser:i,deviceInfo:t};b("loading");try{const{error:r}=await o.registerPasskey({metadata:n,attachment:e});if(r)throw r;await a(),b("success"),w("Passkey registered successfully."),g(f)}catch(e){console.error("Passkey registration failed."),b("error"),w(function(e){const r=x(e);return r?be[r]:void 0}(e)??(k(e)?"Your session expired before the passkey was saved. Sign in again to add one.":"Error registering passkey."))}};return r("div",{className:ne,children:r("div",{className:se,children:e("div",s||c?{className:le,children:[r("div",{className:ce}),r("span",{children:"Checking for Passkey Support..."})]}:n?{className:de,children:[r("h2",{className:_e,children:"Secure Your Account with a Passkey"}),r("p",{className:me,children:"Your device supports passkeys! Register one to skip passwords forever."}),r("button",{onClick:()=>C(),disabled:"loading"===v,className:ue,children:"loading"===v?"Registering...":"Register Passkey"}),r("button",{type:"button",onClick:()=>C("cross-platform"),disabled:"loading"===v,className:ve,children:"Use a security key instead"}),y&&r("p",{className:`${ge} ${"success"===v?pe:he}`,children:y}),N&&r("button",{type:"button",onClick:P,disabled:"loading"===v,className:fe,children:"Skip for now"})]}:{className:de,children:[r("h2",{className:_e,children:"Passkeys are not available here"}),r("p",{className:me,children:N?"This device does not support passkeys. You can continue without one and add a passkey later from a device that does.":"This device does not support passkeys, and this application requires one to sign in. Try again from a device or browser that supports them."}),N&&r("button",{type:"button",onClick:P,className:ue,children:"Continue"})]})})})};var ke="verifyOTP-module__container___wgoDE",xe="verifyOTP-module__card___3cs2p",we="verifyOTP-module__title___fZ-1d",Ne="verifyOTP-module__subtitle___dGSu3",Pe="verifyOTP-module__error___GEtlG",Ce="verifyOTP-module__success___46TjG",Te="verifyOTP-module__form___jiGG-",Ie="verifyOTP-module__label___Zq5Mi",Me="verifyOTP-module__timer___smq-a",Oe="verifyOTP-module__resend___PlmkG",Se="verifyOTP-module__button___8pIuO",ze="verifyOTP-module__toggle___wbzVa";z(".verifyOTP-module__container___wgoDE{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.verifyOTP-module__card___3cs2p{background-color:var(--seamless-surface,#1f2937);border-radius:.5rem;box-shadow:0 0 10px var(--seamless-shadow,rgba(0,0,0,.3));max-width:28rem;padding:1.5rem;width:100%}.verifyOTP-module__title___fZ-1d{color:var(--seamless-text,#fff);font-size:1.5rem;font-weight:700;margin-bottom:1rem;text-align:center}.verifyOTP-module__subtitle___dGSu3{color:var(--seamless-text-muted,#9ca3af);font-size:.875rem;margin-bottom:1.5rem;text-align:center}.verifyOTP-module__error___GEtlG{color:var(--seamless-danger,#f87171);margin-bottom:1rem;text-align:center}.verifyOTP-module__success___46TjG{color:var(--seamless-success,#34d399);margin-bottom:.75rem;text-align:center}.verifyOTP-module__form___jiGG-{display:flex;flex-direction:column;gap:1rem}.verifyOTP-module__label___Zq5Mi{color:var(--seamless-text-muted,#d1d5db);display:block;font-size:.875rem;margin-bottom:.25rem}.verifyOTP-module__timer___smq-a{color:var(--seamless-warning,#facc15);font-size:.875rem}.verifyOTP-module__input___yqIXM{background-color:var(--seamless-surface-raised,#374151);border:1px solid var(--seamless-border,#4b5563);border-radius:.375rem;color:var(--seamless-text,#fff);outline:none;padding:.5rem;width:100%}.verifyOTP-module__input___yqIXM:focus{box-shadow:0 0 0 2px var(--seamless-accent,#3b82f6)}.verifyOTP-module__resend___PlmkG{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.75rem;margin-top:.25rem;text-decoration:underline}.verifyOTP-module__resend___PlmkG:hover{color:var(--seamless-accent,#3b82f6)}.verifyOTP-module__button___8pIuO{background-color:var(--seamless-accent,#2563eb);border:none;border-radius:.375rem;color:var(--seamless-accent-contrast,#fff);cursor:pointer;padding:.5rem;transition:background-color .2s;width:100%}.verifyOTP-module__button___8pIuO:hover{background-color:var(--seamless-accent-hover,#1d4ed8)}.verifyOTP-module__toggle___wbzVa{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}");var Ae="otpInput-module__otpContainer___MUjby",Be="otpInput-module__otpInput___3YMVm";z(".otpInput-module__otpContainer___MUjby{display:flex;gap:8px;justify-content:center;margin-top:8px}.otpInput-module__otpInput___3YMVm{background:var(--seamless-surface-raised,#374151);border:1px solid var(--seamless-border,#4b5563);border-radius:8px;color:var(--seamless-text,#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:var(--seamless-accent,#60a5fa);box-shadow:0 0 0 2px var(--seamless-accent,rgba(96,165,250,.25));outline:none}");const qe=({length:e=6,value:a,inputMode:o="numeric",onChange:i,name:t="otp"})=>{const n=v([]),s=a.split("").concat(Array(e).fill("")).slice(0,e),l=(e,r)=>{var a;if(r.length>1)c(e,r);else if(!r||(a=r,"numeric"===o?/^\d$/.test(a):/^[a-zA-Z]$/.test(a))){const a=[...s];a[e]=r;const o=a.join("");i(o),r&&n.current[e+1]&&n.current[e+1]?.focus()}},c=(r,a)=>{let t=a;t="numeric"===o?a.replace(/\D/g,""):a.replace(/[^a-zA-Z]/g,"");const l=t.slice(0,e).split(""),c=[...s];l.forEach((a,o)=>{r+o<e&&(c[r+o]=a)}),i(c.join("")),n.current[Math.min(r+l.length,e-1)]?.focus()};return r("div",{className:Ae,role:"group","aria-label":"One-time password input",onPaste:e=>{e.preventDefault(),c(0,e.clipboardData.getData("text"))},children:s.map((a,c)=>r("input",{ref:e=>n.current[c]=e,type:"text",inputMode:"numeric"===o?"numeric":"text",autoComplete:"one-time-code",name:`${t}-${c}`,maxLength:1,value:a,className:Be,onChange:e=>l(c,e.target.value),onKeyDown:r=>((r,a)=>{if("Backspace"===a.key){a.preventDefault();const e=[...s];s[r]?(e[r]="",i(e.join(""))):r>0&&(e[r-1]="",i(e.join("")),n.current[r-1]?.focus())}"ArrowLeft"===a.key&&r>0&&n.current[r-1]?.focus(),"ArrowRight"===a.key&&r<e-1&&n.current[r+1]?.focus()})(c,r),"aria-label":`Digit ${c+1}`},c))})},Le=()=>{const a=i(),o=t(),{refreshSession:n}=d(),s="login"===o.state?.flow,[l,c]=h(""),[m,u]=h(null),[g,p]=h(""),[v,b]=h(!1),[y,k]=h(""),[x,w]=h(300),N=_(),P=async()=>{if(b(!0),!m){const{error:e}=s?await N.verifyLoginPhoneOtp(l):await N.verifyPhoneOtp(l);if(e)p("Verification failed.");else{if(s)return await n(),void a("/");u(!0)}}b(!1)},C=async()=>{k(""),await(async()=>{p("");const{error:e}=s?await N.requestLoginPhoneOtp():await N.requestPhoneOtp();e?p("Failed to send SMS code. If this persists, refresh the page and try again."):k("Verification SMS has been resent.")})(),k("Verification SMS has been resent.")};return f(()=>{const e=setInterval(()=>{w(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),f(()=>{m&&!s&&(async()=>{const{error:e}=await N.requestEmailOtp();e?p("Failed to send Email code. If this persists, refresh the page and try registering again."):a(T)})()},[m,s,a,N]),r("div",{className:ke,children:e("div",{className:xe,children:[r("h2",{className:we,children:"Verify Your Phone Number"}),r("p",{className:Ne,children:"Enter the code sent to your phone number."}),g&&r("p",{className:Pe,children:g}),y&&r("p",{className:Ce,children:y}),e("form",{onSubmit:async e=>{if(e.preventDefault(),p(""),6===l.length){b(!0);try{await P()}catch{p("Unexpected error occurred.")}finally{b(!1)}}else p("Please enter a valid code.")},className:Te,children:[e("div",{children:[e("label",{htmlFor:"phoneCode",className:Ie,children:["Phone Verification Code ",(M=m,!0===M?r("span",{className:"text-green-400 ml-2",children:"✅"}):!1===M?r("span",{className:"text-red-400 ml-2",children:"❌"}):null)," -"," ",e("span",{className:Me,children:["Code expires in: ",(I=x,`${Math.floor(I/60).toString().padStart(2,"0")}:${(I%60).toString().padStart(2,"0")}`)]})]}),r(qe,{length:6,value:l,onChange:c}),r("button",{type:"button",onClick:()=>C(),className:Oe,children:"Resend code to phone"})]}),r("button",{type:"submit",className:Se,children:v?"Verifying...":"Verify & Continue"}),r("button",{type:"button",onClick:()=>a("/login"),className:ze,children:"Back to login"})]})]})});var I,M},Ee=()=>{const a=i(),o=t(),{refreshSession:n}=d(),s=_(),{passkeySupported:l}=m(),c="login"===o.state?.flow,[u,g]=h(!1),[p,v]=h(""),[b,y]=h(300),[k,x]=h(""),[w,N]=h("");return f(()=>{const e=setInterval(()=>{y(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),r("div",{className:ke,children:e("div",{className:xe,children:[r("h2",{className:we,children:"Verify Your Email"}),r("p",{className:Ne,children:"We sent you a verification email. Enter the code below."}),k&&r("p",{className:Pe,children:k}),w&&r("p",{className:Ce,children:w}),e("form",{onSubmit:async e=>{if(e.preventDefault(),x(""),6===p.length){g(!0);try{const{error:e}=c?await s.verifyLoginEmailOtp(p):await s.verifyEmailOtp(p);if(e)return void x("Verification failed.");if(c)return await n(),void a("/");l?a(O):(await n(),a("/"))}catch{console.error("Email OTP verification failed."),x("Verification failed.")}finally{g(!1)}}else x("Please enter a valid code.")},className:Te,children:[e("div",{children:[e("label",{htmlFor:"emailCode",className:Ie,children:["Email Verification Code",e("span",{className:Me,children:[" ","— Code expires in ",(P=b,`${Math.floor(P/60).toString().padStart(2,"0")}:${(P%60).toString().padStart(2,"0")}`)]})]}),r(qe,{length:6,value:p,onChange:v,inputMode:"text"}),r("button",{type:"button",onClick:async()=>{x(""),N("");const{error:e}=c?await s.requestLoginEmailOtp():await s.requestEmailOtp();e?x("Failed to send Email code. If this persists, refresh the page and try again."):N("Verification email has been resent.")},className:Oe,children:"Resend code to email"})]}),r("button",{type:"submit",className:Se,disabled:u,children:u?"Verifying...":"Verify & Continue"}),r("button",{type:"button",onClick:()=>a("/login"),className:ze,children:"Back to login"})]})]})});var P};var Fe={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"};z(".verifyMagiclink-module__container___qrSXf{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.verifyMagiclink-module__card___niKgr{background-color:var(--seamless-surface,#1f2937);border-radius:.5rem;box-shadow:0 0 10px var(--seamless-shadow,rgba(0,0,0,.3));max-width:28rem;padding:1.5rem;width:100%}.verifyMagiclink-module__title___SumxD{color:var(--seamless-text,#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 var(--seamless-border,hsla(0,0%,100%,.15));border-radius:50%;border-top-color:var(--seamless-accent,#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:var(--seamless-success,#34d399);height:22px;width:22px}.verifyMagiclink-module__successText___lO5Qq{color:var(--seamless-success,#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 je=()=>{const[a]=n(),o=i(),t=a.get("token"),[s,l]=h(""),[c,m]=h(null),u=_(),{refreshSession:g}=d(),p=v(null);return f(()=>{let e=!0,r=null;return(async()=>{if(!t)return e&&l("Missing token for verification."),void console.error("No magic-link token found.");p.current?.token!==t&&(p.current={token:t,result:u.verifyMagicLink(t)});const{error:a}=await p.current.result;if(!e)return;if(a)return console.error("Failed to verify token"),void l("Failed to verify token");const i=new BroadcastChannel("seamless-auth");i.postMessage({type:"MAGIC_LINK_AUTH_SUCCESS"}),i.close();let n=await g({background:!0});n.error&&(await u.checkMagicLink(),n=await g({background:!0})),e&&(n.error?m("elsewhere"):(m("signed-in"),r=setTimeout(()=>{e&&o("/")},900)))})(),()=>{e=!1,r&&clearTimeout(r)}},[t,u,o,g]),r("div",{className:Fe.container,children:e("div",{className:Fe.card,children:[r("h1",{className:Fe.title,children:"Verifying your login"}),e("div",{className:Fe.verificationContent,children:[!c&&!s&&r("div",{className:Fe.spinner}),c&&r("div",{className:Fe.successIcon,children:r("svg",{viewBox:"0 0 24 24",className:Fe.checkIcon,fill:"none",stroke:"currentColor",strokeWidth:"2",children:r("path",{d:"M5 13l4 4L19 7"})})}),!c&&!s&&r("p",{className:Fe.helperText,children:"Please wait while we securely verify your sign-in link."}),"signed-in"===c&&r("p",{className:Fe.successText,children:"Login verified. Redirecting…"}),"elsewhere"===c&&r("p",{className:Fe.successText,children:"Login verified. Return to the device where you requested this link to continue."}),s&&r("p",{className:Fe.error,children:s})]})]})})};const Re={oauth_missing_email:"Your provider account did not share an email address. Add an email to that account and make it visible, then try again.",oauth_email_not_verified:"The email address on your provider account is not verified. Verify it with your provider, then try again.",oauth_missing_subject:"Your provider did not return a usable account identifier. Try again, or sign in with a different method.",oauth_invalid_id_token:"Your provider sent a sign-in response that could not be verified. Try again, or sign in with a different method.",oauth_provider_retired:"Your organization no longer signs in with this provider. Sign in with your passkey or another method instead."},De=()=>{const{finishOAuthLogin:o}=d(),t=i(),[s]=n(),[l,c]=h(""),_=v(!1);return f(()=>{if(_.current)return;_.current=!0;const e=s.get("code"),r=s.get("state"),a=sessionStorage.getItem(re);e&&r&&a?o({providerId:a,code:e,state:r}).then(({data:e,error:r})=>{if(r){const e=w(r);return void c(e?Re[e]:"We could not complete sign-in. Please try again.")}sessionStorage.removeItem(re);const a=function(e){if(!e)return null;try{const r=new URL(e,window.location.origin);return r.origin!==window.location.origin?null:`${r.pathname}${r.search}${r.hash}`}catch{return null}}(e?.returnTo)??"/";"enroll_passkey"!==e?.nextStep?t(a):t(O,{state:{returnTo:a}})}):c("This sign-in link is missing required information.")},[o,t,s]),e("div",{className:Fe.container,children:[r("h2",{className:Fe.title,children:l?"Sign-in failed":"Completing sign-in..."}),l&&e(a,{children:[r("p",{children:l}),r("button",{type:"button",onClick:()=>t("/login"),children:"Back to login"})]})]})};var Ve="magiclink-module__container___45zcA",Ge="magiclink-module__card___Au9oN",We="magiclink-module__iconWrapper___k5ndr",Ue="magiclink-module__mailIcon___Pwb7q",Ke="magiclink-module__iconRing___bdLvf",Ye="magiclink-module__heading___b9cre",$e="magiclink-module__message___kiVFj",He="magiclink-module__identifier___JtcFM",Je="magiclink-module__helperText___7Mlfh",Ze="magiclink-module__actions___64I-3",Qe="magiclink-module__secondaryButton___BntAI",Xe="magiclink-module__cooldown___Ib4rm",er="magiclink-module__linkButton___maJiv";z(".magiclink-module__container___45zcA{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center}.magiclink-module__card___Au9oN{background-color:var(--seamless-surface,#1f2937);border-radius:.75rem;box-shadow:0 10px 25px var(--seamless-shadow,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:var(--seamless-accent-soft,#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:var(--seamless-text-muted,#d1d5db);font-size:.95rem;line-height:1.4;margin-bottom:1rem}.magiclink-module__identifier___JtcFM{background:var(--seamless-surface-raised,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:var(--seamless-text-muted,#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:var(--seamless-surface,#111827);border:1px solid var(--seamless-border,#374151);border-radius:8px;color:var(--seamless-text,#fff);cursor:pointer;font-weight:500;padding:.65rem}.magiclink-module__secondaryButton___BntAI:hover:not(:disabled){background:var(--seamless-surface-hover,#1f2937)}.magiclink-module__secondaryButton___BntAI:disabled{cursor:not-allowed;opacity:.5}.magiclink-module__cooldown___Ib4rm{color:var(--seamless-text-muted,#9ca3af);font-size:.8rem}.magiclink-module__linkButton___maJiv{background:none;border:none;color:var(--seamless-accent-soft,#a5b4fc);cursor:pointer;font-size:.85rem;margin-top:.4rem}.magiclink-module__linkButton___maJiv:hover{text-decoration:underline}");const rr=()=>{const{refreshSession:a}=d(),o=i(),n=t(),s=_(),l=n.state?.identifier,[c,m]=h(30);f(()=>{const e=setInterval(()=>{m(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]);const u=b(async()=>{const{data:e,error:r}=await s.checkMagicLink();return!r&&"Success"===e?.message},[s]);return f(()=>{const e=new BroadcastChannel("seamless-auth");return e.onmessage=async e=>{"MAGIC_LINK_AUTH_SUCCESS"===e.data?.type&&await u()&&(await a(),o("/"))},()=>{e.close()}},[u,o,a]),f(()=>{const e=setInterval(async()=>{try{await u()&&(await a(),o("/"))}catch{}},5e3);return()=>clearInterval(e)},[u,a,o]),r("div",{className:Ve,children:e("div",{className:Ge,children:[e("div",{className:We,children:[r("div",{className:Ke}),e("svg",{className:Ue,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[r("path",{d:"M4 6h16v12H4z"}),r("path",{d:"m4 6 8 6 8-6"})]})]}),r("h2",{className:Ye,children:"Check your email"}),r("p",{className:$e,children:"If an account exists for this address, we sent a secure sign-in link."}),l&&r("div",{className:He,children:l}),r("p",{className:Je,children:"Open the email and click the link to finish signing in."}),r("p",{className:Je,children:"Didn’t receive anything? Check your spam folder or try creating a new account."}),e("div",{className:Ze,children:[r("button",{className:Qe,disabled:c>0,onClick:async()=>{c>0||(await s.requestMagicLink(),m(30))},children:"Resend link"}),c>0&&e("div",{className:Xe,children:["Available in ",c,"s"]}),r("button",{className:er,onClick:()=>o("/login"),children:"Change email or phone"})]})]})})},ar=()=>e(s,{children:[r(l,{path:N,element:r(oe,{})}),r(l,{path:P,element:r(te,{})}),r(l,{path:C,element:r(Le,{})}),r(l,{path:T,element:r(Ee,{})}),r(l,{path:I,element:r(je,{})}),r(l,{path:M,element:r(De,{})}),r(l,{path:O,element:r(ye,{})}),r(l,{path:S,element:r(rr,{})}),r(l,{path:"*",element:r(c,{to:N,replace:!0})})]});export{ar as AuthRoutes};
|
|
3
3
|
//# sourceMappingURL=routes.js.map
|
package/dist/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sources":["../src/authRoutePaths.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../src/utils.ts","../src/components/AuthFallbackOptions.tsx","../src/components/OAuthProviderButtons.tsx","../src/views/Login.tsx","../src/views/PassKeyLogin.tsx","../src/views/PassKeyRegistration.tsx","../src/components/OtpInput.tsx","../src/views/PhoneRegistration.tsx","../src/views/EmailRegistration.tsx","../src/views/VerifyMagicLink.tsx","../src/views/OAuthCallback.tsx","../src/components/MagicLinkSent.tsx","../src/AuthRoutes.tsx"],"sourcesContent":[null,"function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n",null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["authRoutePaths","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","isValidEmail","email","normalized","trim","length","parts","split","localPart","domainPart","test","startsWith","endsWith","includes","isValidPhoneNumber","phone","phoneNumber","parsePhoneNumberFromString","isValid","AuthFallbackOptions","identifier","onMagicLink","onEmailOtp","onPhoneOtp","onPasskeyRetry","loginMethods","allowedMethods","Set","showMagicLink","has","showEmailOtp","Boolean","showPhoneOtp","showPasskeyRetry","_jsxs","className","styles","children","_jsx","onClick","OAUTH_PROVIDER_STORAGE_KEY","OAuthProviderButtons","listOAuthProviders","startOAuthLogin","finishOAuthLogin","ports","useAuth","callbackHref","useHref","providers","setProviders","useState","error","setError","useEffect","active","then","data","map","provider","async","providerId","sessionStorage","setItem","redirectUri","URL","window","location","origin","toString","outcome","oauthRedirect","open","authorizationUrl","code","state","handleSelect","id","name","Login","navigate","useNavigate","hasSignedInBefore","login","handlePasskeyLogin","authClient","useAuthClient","passkeySupported","usePasskeySupport","configuredMethods","useLoginMethods","setIdentifier","setEmail","mode","setMode","formErrors","setFormErrors","emailError","setEmailError","identifierError","setIdentifierError","showFallbackOptions","setShowFallbackOptions","setLoginMethods","canSubmit","_Fragment","onSubmit","e","preventDefault","loginStart","availableMethods","FALLBACK_LOGIN_METHODS","passkeyError","register","message","console","htmlFor","value","onChange","target","autoComplete","placeholder","onBlur","required","requestMagicLink","requestLoginEmailOtp","flow","requestLoginPhoneOtp","undefined","disabled","role","PassKeyLogin","runPasskeyLogin","container","card","title","button","POLICY_REFUSAL_MESSAGES","attachment_not_allowed","synced_passkey_not_allowed","authenticator_not_allowed","prf_required","PasskeyRegistration","refreshSession","loading","passkeySupportLoading","loginMethodsLoading","destination","returnTo","destinationFrom","useLocation","status","setStatus","setMessage","canSkip","hasNonPasskeyLoginMethod","finishWithoutPasskey","registerPasskey","attachment","platform","browser","deviceInfo","ua","navigator","userAgent","toLowerCase","brave","parseUserAgent","metadata","friendlyName","getPasskeyPolicyErrorCode","policyRefusalMessage","isUnauthenticated","OtpInput","inputMode","inputs","useRef","values","concat","Array","fill","slice","handleChange","index","input","char","handleBulkInput","newValueArr","newValue","join","current","focus","cleaned","replace","chars","forEach","i","Math","min","onPaste","clipboardData","getData","el","maxLength","onKeyDown","key","handleKeyDown","PhoneRegistration","isLoginFlow","phoneOtp","setPhoneOtp","phoneVerified","setPhoneVerified","setLoading","resendMsg","setResendMsg","phoneTimeLeft","setPhoneTimeLeft","verifyPhoneOTP","verifyLoginPhoneOtp","verifyPhoneOtp","handleResend","requestPhoneOtp","onResendPhone","interval","setInterval","prev","clearInterval","requestEmailOtp","nextStep","verified","seconds","floor","padStart","EmailRegistration","emailOtp","setEmailOtp","emailTimeLeft","setEmailTimeLeft","verifyLoginEmailOtp","verifyEmailOtp","VerifyMagicLink","searchParams","useSearchParams","token","get","successMsg","setSuccessMsg","mounted","channel","redirectTimeout","verifyMagicLink","BroadcastChannel","postMessage","setTimeout","verify","close","clearTimeout","verificationContent","spinner","successIcon","viewBox","checkIcon","stroke","strokeWidth","d","helperText","successText","CODE_ERRORS","oauth_missing_email","oauth_email_not_verified","oauth_missing_subject","oauth_invalid_id_token","oauth_provider_retired","OAuthCallback","startedRef","getItem","finishError","getOAuthErrorCode","removeItem","pathname","search","hash","inAppPath","MagicLinkSent","cooldown","setCooldown","timer","c","magicLinkCompleted","useCallback","checkMagicLink","onmessage","event","AuthRoutes","Routes","Route","path","element","Navigate","to"],"mappings":"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","x_google_ignoreList":[1]}
|
|
1
|
+
{"version":3,"file":"routes.js","sources":["../src/authRoutePaths.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../src/utils.ts","../src/components/AuthFallbackOptions.tsx","../src/components/OAuthProviderButtons.tsx","../src/views/Login.tsx","../src/views/PassKeyLogin.tsx","../src/views/PassKeyRegistration.tsx","../src/components/OtpInput.tsx","../src/views/PhoneRegistration.tsx","../src/views/EmailRegistration.tsx","../src/views/VerifyMagicLink.tsx","../src/views/OAuthCallback.tsx","../src/components/MagicLinkSent.tsx","../src/AuthRoutes.tsx"],"sourcesContent":[null,"function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n",null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["authRoutePaths","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","isValidEmail","email","normalized","trim","length","parts","split","localPart","domainPart","test","startsWith","endsWith","includes","isValidPhoneNumber","phone","phoneNumber","parsePhoneNumberFromString","isValid","AuthFallbackOptions","identifier","onMagicLink","onEmailOtp","onPhoneOtp","onPasskeyRetry","loginMethods","allowedMethods","Set","showMagicLink","has","showEmailOtp","Boolean","showPhoneOtp","showPasskeyRetry","_jsxs","className","styles","children","_jsx","onClick","OAUTH_PROVIDER_STORAGE_KEY","OAuthProviderButtons","listOAuthProviders","startOAuthLogin","finishOAuthLogin","ports","useAuth","callbackHref","useHref","providers","setProviders","useState","error","setError","useEffect","active","then","data","map","provider","async","providerId","sessionStorage","setItem","redirectUri","URL","window","location","origin","toString","outcome","oauthRedirect","open","authorizationUrl","code","state","handleSelect","id","name","Login","navigate","useNavigate","hasSignedInBefore","login","handlePasskeyLogin","authClient","useAuthClient","passkeySupported","usePasskeySupport","configuredMethods","useLoginMethods","setIdentifier","setEmail","mode","setMode","formErrors","setFormErrors","emailError","setEmailError","identifierError","setIdentifierError","showFallbackOptions","setShowFallbackOptions","setLoginMethods","canSubmit","_Fragment","onSubmit","e","preventDefault","loginStart","availableMethods","FALLBACK_LOGIN_METHODS","passkeyError","register","message","console","htmlFor","value","onChange","target","autoComplete","placeholder","onBlur","required","requestMagicLink","requestLoginEmailOtp","flow","requestLoginPhoneOtp","undefined","disabled","role","PassKeyLogin","runPasskeyLogin","container","card","title","button","POLICY_REFUSAL_MESSAGES","attachment_not_allowed","synced_passkey_not_allowed","authenticator_not_allowed","prf_required","PasskeyRegistration","refreshSession","loading","passkeySupportLoading","loginMethodsLoading","destination","returnTo","destinationFrom","useLocation","status","setStatus","setMessage","canSkip","hasNonPasskeyLoginMethod","finishWithoutPasskey","registerPasskey","attachment","platform","browser","deviceInfo","ua","navigator","userAgent","toLowerCase","brave","parseUserAgent","metadata","friendlyName","getPasskeyPolicyErrorCode","policyRefusalMessage","isUnauthenticated","OtpInput","inputMode","inputs","useRef","values","concat","Array","fill","slice","handleChange","index","input","char","handleBulkInput","newValueArr","newValue","join","current","focus","cleaned","replace","chars","forEach","i","Math","min","onPaste","clipboardData","getData","el","maxLength","onKeyDown","key","handleKeyDown","PhoneRegistration","isLoginFlow","phoneOtp","setPhoneOtp","phoneVerified","setPhoneVerified","setLoading","resendMsg","setResendMsg","phoneTimeLeft","setPhoneTimeLeft","verifyPhoneOTP","verifyLoginPhoneOtp","verifyPhoneOtp","handleResend","requestPhoneOtp","onResendPhone","interval","setInterval","prev","clearInterval","requestEmailOtp","nextStep","verified","seconds","floor","padStart","EmailRegistration","emailOtp","setEmailOtp","emailTimeLeft","setEmailTimeLeft","verifyLoginEmailOtp","verifyEmailOtp","VerifyMagicLink","searchParams","useSearchParams","token","get","setOutcome","verification","mounted","redirectTimeout","result","verifyMagicLink","channel","BroadcastChannel","postMessage","close","session","background","checkMagicLink","setTimeout","verify","clearTimeout","verificationContent","spinner","successIcon","viewBox","checkIcon","stroke","strokeWidth","d","helperText","successText","CODE_ERRORS","oauth_missing_email","oauth_email_not_verified","oauth_missing_subject","oauth_invalid_id_token","oauth_provider_retired","OAuthCallback","startedRef","getItem","finishError","getOAuthErrorCode","removeItem","pathname","search","hash","inAppPath","MagicLinkSent","cooldown","setCooldown","timer","c","magicLinkCompleted","useCallback","onmessage","event","AuthRoutes","Routes","Route","path","element","Navigate","to"],"mappings":"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","x_google_ignoreList":[1]}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Where an emailed magic link lands.
|
|
4
|
+
*
|
|
5
|
+
* Verifying the link does not sign in this tab. The session belongs to the
|
|
6
|
+
* browser that asked for the link, which collects it from `/magic-link/check`
|
|
7
|
+
* with its pre-auth cookie. So once the link is verified, this screen tells
|
|
8
|
+
* that tab, then signs in here too when it can: when the link was opened in
|
|
9
|
+
* the same browser, which holds the same pre-auth cookie. Opened on another
|
|
10
|
+
* device there is nothing to collect, and the screen says to go back.
|
|
11
|
+
*/
|
|
2
12
|
declare const VerifyMagicLink: React.FC;
|
|
3
13
|
export default VerifyMagicLink;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seamless-auth/react",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.2",
|
|
4
4
|
"description": "A drop-in authentication solution for modern React applications.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"LICENSE"
|
|
22
22
|
],
|
|
23
23
|
"engines": {
|
|
24
|
-
"node": ">=
|
|
24
|
+
"node": ">=22",
|
|
25
25
|
"npm": ">=9.0.0 <13.0.0"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
}
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@seamless-auth/client": "^0.3.
|
|
60
|
-
"@seamless-auth/types": "^0.
|
|
59
|
+
"@seamless-auth/client": "^0.3.2",
|
|
60
|
+
"@seamless-auth/types": "^0.28.0",
|
|
61
61
|
"@simplewebauthn/browser": "^13.1.0",
|
|
62
62
|
"libphonenumber-js": "^1.12.7"
|
|
63
63
|
},
|