1import{q as E,z,ac as A,ag as O,r as _,o as T,d as q,h as y,i as U,t as V,f as D,ah as $,ai as l,aj as F,ak as I,al as S,aa as g,am as j,g as L}from"./DmTICmU9.js";const N={class:"mx-auto max-w-md min-h-[60vh] w-full flex items-center justify-center px-6"},W={class:"w-full border border-black/10 rounded-2xl bg-white p-8 text-center shadow-sm dark:border-white/10 dark:bg-neutral-900"},H={class:"text-sm text-gray-700 dark:text-gray-200"},P={key:0,class:"mt-2 text-xs text-gray-500 dark:text-gray-400"},K=E({__name:"callback",setup(Q){const c=z(),n=A(),{getOnboardingCompleted:k}=O(),p=_(!0),f=_("Bestaetige deine Anmeldung...");function C(e){const i=(e instanceof Error?e.message:String(e||"")).toLowerCase();return i.includes("code verifier")||i.includes("both auth code and code verifier")}async function b(e,r){const i=`/login?messageType=info&message=${encodeURIComponent(r)}${e?`&email=${encodeURIComponent(e)}`:""}`;await g(i,{replace:!0})}function w(e){return e==="/onboarding"?"Weiterleitung zum Onboarding...":"Weiterleitung..."}async function d({email:e,next:r,type:i,message:o}){await g(j({email:e,next:r,type:i,message:o}),{replace:!0})}async function M(){var v;const e=typeof n.query.type=="string"?n.query.type:"",r=typeof n.query.next=="string"?n.query.next:"";let i=typeof n.query.email=="string"?n.query.email:"";i=$(i);const o=F(r,e);try{if(n.query.error){const s=String(n.query.error||""),t=String(n.query.error_code||s||""),m=String(n.query.error_description||n.query.error||"Authentifizierung fehlgeschlagen");if(l({code:t,message:m})){await d({email:i,next:r,type:e,message:o?"Dein Bestätigungslink
1ist abgelaufen oder ungültig. Du kannst dir hier sofort einen neuen Bestätigungslink senden lassen.":"Dein Login-Link ist abgelaufen oder ungültig. Bitte fordere dir einen neuen Magic Link an."});return}throw new Error(m)}const a=typeof n.query.code=="string"?n.query.code:typeof n.query.auth_code=="string"?n.query.auth_code:"",u=typeof n.query.token_hash=="string"?n.query.token_hash:"";if(u){const s=I(e,r),{error:t}=await c.auth.verifyOtp({token_hash:u,type:s});if(t){if(l({code:String((t==null?void 0:t.code)||""),message:t instanceof Error?t.message:String(t||"")})){await d({email:i,next:r,type:e,message:o?"Dein Bestätigungslink ist abgelaufen oder ungültig. Du kannst dir hier sofort einen neuen Bestätigungslink senden lassen.":"Dein Login-Link ist abgelaufen oder ungültig. Bitte fordere dir einen neuen Magic Link an."});return}throw t}}else if(a){const{error:s}=await c.auth.exchangeCodeForSession(a).catch(t=>({data:null,error:t}));if(s){if(C(s)){await b(i,"Dein Bestaetigungslink wurde in einer anderen Browser-Session geoeffnet. Bitte melde dich kurz per Magic Link an, danach geht es automatisch ins Onboarding.");return}if(l({code:String((s==null?void 0:s.code)||""),message:s instanceof Error?s.message:String(s||"")})){await d({email:i,next:r,type:e,message:o?"Dein Bestätigungslink
1ist abgelaufen oder ungültig. Du kannst dir hier sofort einen neuen Bestätigungslink senden lassen.":"Dein Login-Link ist abgelaufen oder ungültig. Bitte fordere dir einen neuen Magic Link an."});return}throw s}}const{data:h}=await c.auth.getSession();if((v=h.session)!=null&&v.user){const s=await k(h.session.user.id,{forceRefresh:!0}),t=S({next:r,type:e,onboardingCompleted:s});f.value=w(t),await g(t,{replace:!0});return}const{data:B}=await c.auth.getUser();if(!B.user){await b(i,o?"Dein Link wurde bestaetigt, aber es konnte keine Sitzung erstellt werden. Bitte melde dich kurz an, danach geht es ins Onboarding.":"Es konnte keine aktive Sitzung hergestellt werden. Bitte melde dich erneut an.");return}const R=await k(B.user.id,{forceRefresh:!0}),x=S({next:r,type:e,onboardingCompleted:R});f.value=w(x),await g(x,{replace:!0})}catch(a){console.error("Auth callback failed:",a);const u=a instanceof Error?a.message:"Authentifizierung fehlgeschlagen";if(l({code:String((a==null?void 0:a.code)||n.query.error_code||""),message:u})){await d({email:i,next:r,type:e,message:o?"Dein Bestätigungslink
1ist abgelaufen oder ungültig. Du kannst dir hier sofort einen neuen Bestätigungslink senden lassen.":"Dein Login-Link ist abgelaufen oder ungültig. Bitte fordere dir einen neuen Magic Link an."});return}await g(`/error?message=${encodeURIComponent(u)}&header=Authentifizierung`,{replace:!0})}finally{p.value=!1}}return T(M),(e,r)=>(L(),q("section",N,[y("div",W,[r[0]||(r[0]=y("div",{class:"mx-auto mb-4 h-8 w-8 animate-spin border-2 border-[hsl(89,48%,56%)] border-t-transparent rounded-full"},null,-1)),y("p",H,V(D(f)),1),D(p)?(L(),q("p",P," Bitte kurz warten. ")):U("",!0)])]))}});export{K as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.