PageSourceSearch

https://app.careerlande.com/_next/static/chunks/0wjhqm4yk1x-k.js

js careerlande.com collected 2026-09-24 14:40:28 UTC 36,722 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,23426,e=>{"use strict";var r=e.i(43476),t=e.i(13172),a=e.i(70065),o=e.i(31987),i=e.i(67881),s=e.i(30374),n=e.i(23750),l=e.i(15760),c=e.i(81515),d=e.i(43007),u=e.i(34728),p=e.i(7761),m=e.i(63020),h=e.i(24392),g=e.i(28354),f=e.i(75856),v=e.i(86606),x=e.i(82568),w=e.i(94814),E=e.i(63727),y=e.i(86536),b=e.i(77705),S=e.i(49685),T=e.i(84614),k=e.i(17255),R=e.i(22016),_=e.i(18566),A=e.i(71645),j=e.i(53145),N=e.i(43004),C=e.i(20122),I=e.i(3872),L=e.i(57347),O=e.i(90167),U=e.i(43767);let P=e=>(e.reasonCode??e.data?.reasonCode??"").trim().toLowerCase(),D=(e,r)=>({audience_mismatch:r("common.errors.unexpected"),token_expired:r("common.errors.unexpected"),nonce_mismatch:r("common.errors.unexpected"),invalid_token:r("common.errors.unexpected")})[e]??r("common.errors.unexpected"),M=(e,r)=>{let t=new URLSearchParams({external:"true",externalProvider:e});return r&&t.set("externalNonce",r),`${c.AUTH_ROUTES.LOGIN}?${t.toString()}`},$=(e,r)=>{let t=e?.getAll(r)??[];return 0===t.length?null:t[t.length-1]},z=e=>{if(e)try{let r=e.split(".");if(r.length<2)return;let t=r[1].replace(/-/g,"+").replace(/_/g,"/"),a=t.padEnd(4*Math.ceil(t.length/4),"="),o=JSON.parse(atob(a));return o?.nonce?.trim()||void 0}catch{return}},q="apple-pending-callback",F="mobile-bridge-redirect-attempted";function B(){let e,{login:a,isLoading:B}=function(){let[e,r]=(0,A.useState)(!1);return{login:async e=>{r(!0);try{return await L.authService.login(e)}finally{r(!1)}},isLoading:e}}(),[H,G]=(0,A.useState)(!1),[V,W]=(0,A.useState)(!1),[Y,X]=(0,A.useState)(!1),[K,Q]=(0,A.useState)(!1),[J,Z]=(0,A.useState)(!1),[ee,er]=(0,A.useState)(!1),[et,ea]=(0,A.useState)(null),[eo,ei]=(0,A.useState)(null),[es,en]=(0,A.useState)(),[el,ec]=(0,A.useState)(null),[ed,eu]=(0,A.useState)(!1),[ep,em]=(0,A.useState)(!1),[eh,eg]=(0,A.useState)(""),[ef,ev]=(0,A.useState)(!1),[ex,ew]=(0,A.useState)(!1),[eE,ey]=(0,A.useState)(!1),[eb,eS]=(0,A.useState)(null),eT=(0,A.useRef)(null),ek="external-login-attempt",{signInWithGoogle:eR,signInWithApple:e_}=(0,I.useGoogleAuth)(),eA=(0,_.useSearchParams)(),{data:ej,status:eN}=(0,k.useSession)(),eC=(0,p.useT)(),{loginSchema:eI,registerSchema:eL}=(0,O.useAuthValidationSchemas)(),{register:eO,handleSubmit:eU,formState:{errors:eP}}=(0,j.useForm)({resolver:(0,w.zodResolver)(eI)}),eD=N.z.object({password:eL.shape.password,confirmPassword:N.z.string().min(1,eC("auth.password_setup.errors.confirm_password_required"))}).refine(e=>e.password===e.confirmPassword,{path:["confirmPassword"],message:eC("common.errors.password_mismatch")}),{register:eM,handleSubmit:e$,reset:ez,formState:{errors:eq}}=(0,j.useForm)({resolver:(0,w.zodResolver)(eD),defaultValues:{password:"",confirmPassword:""}}),eF=(0,_.usePathname)(),eB=(0,_.useRouter)(),{setAccessToken:eH,setTokens:eG}=(0,u.useAuth)(),eV=(0,A.useCallback)(()=>{try{window.sessionStorage.removeItem(ek)}catch{}try{window.localStorage.removeItem(q)}catch{}try{window.sessionStorage.removeItem(F)}catch{}try{let e=new URL(window.location.href);e.searchParams.delete("external"),e.searchParams.delete("externalProvider"),e.searchParams.delete("providerIdToken"),e.searchParams.delete("providerEmail"),e.searchParams.delete("externalNonce");let r=`${e.pathname}${e.search}${e.hash}`;window.history.replaceState(window.history.state,"",r)}catch{}},[ek]),eW=(0,A.useCallback)((e,r,t,a)=>{if(x.Capacitor.isNativePlatform()&&(!t||!a)){(0,m.reportAppError)(Error("Missing mobile refresh token payload after login"),{source:"auth",level:"warning",route:eF,extra:{phase:"native-login-missing-refresh-token",provider:el??void 0,env:"production",hasMobileDeviceId:!!window.localStorage.getItem("careerland-mobile-device-id"),isMobileAuth:!0}}),h.toastService.error(eC("common.errors.unexpected"));return}let o=(0,C.getDashboardRouteFromAccessToken)(e),i=$(eA,"next"),s=i?(0,g.getSafeInternalTarget)(i):o;eV(),(0,k.signOut)({redirect:!1}),l.apiClient.setAuthToken(e,r,t,a),eH(e),eG({accessToken:e,accessTokenExpiration:r}),eB.replace(s)},[eV,eF,el,eB,eA,eH,eG,eC]),eY=async e=>{let r=await a(e),t=(0,C.resolveAuthFlow)(r);if("authenticated"===t.type){(0,v.trackEvent)(f.ANALYTICS_EVENTS.LOGIN,{login_method:"password"}),eW(t.userToken.accessToken,t.userToken.accessTokenExpiration,t.userToken.mobileRefreshToken,t.userToken.mobileRefreshTokenExpiration);return}"email_verification_required"===t.type?eB.push((0,C.getEmailVerificationRoute)(e.email)):"password_setup_required"===t.type&&(eg(e.email),ez(),em(!0))},eX=async e=>{if(eh){ey(!0);try{let r=await L.authService.register({email:eh,password:e.password,userRole:d.USER_ROLES.USER});if(!r.success&&"user_already_exists"===r.message){await h.toastService.show(eC("auth.password_setup.messages.already_active")),em(!1),eg(""),eB.replace(c.AUTH_ROUTES.LOGIN);return}let t=(0,C.resolveAuthFlow)(r);if("authenticated"===t.type){em(!1),eg(""),eW(t.userToken.accessToken,t.userToken.accessTokenExpiration,t.userToken.mobileRefreshToken,t.userToken.mobileRefreshTokenExpiration);return}"email_verification_required"===t.type&&(em(!1),eg(""),eB.push((0,C.getEmailVerificationRoute)(eh)))}finally{ey(!1)}}},eK=()=>{em(!1),eg(""),ez()},eQ=ej?.externalProvider??null,eJ=$(eA,"providerIdToken"),eZ=$(eA,"providerEmail")??void 0,e0=$(eA,"externalNonce")??void 0,e1=$(eA,"error"),e2=e1&&!eJ?eC("common.errors.unexpected"):null,e4=ej?.idToken??null,e3=$(eA,"external"),e7=(e=$(eA,"externalProvider")??eQ,e?.trim().toLowerCase()==="apple"?"apple":"google"),e5=eJ??e4??void 0,e6="apple"===e7?z(e5):void 0,e8=eZ??ej?.user?.email??void 0,e9=!!e1&&!e5,re="authenticated"===eN&&!!e4&&!!eQ,rr=!e9&&"true"===e3&&!!e5||re,rt=!e9&&("true"===e3||"authenticated"===eN&&!!e4&&!!eQ),ra=rt&&!!e5&&!ee&&!J&&("authenticated"===eN||K);(0,A.useEffect)(()=>
1{if(x.Capacitor.isNativePlatform()||"true"===e3||"authenticated"!==eN||!e4||"apple"!==eQ)return;let e=window.localStorage.getItem(q);if(e&&e.startsWith("/")){try{window.sessionStorage.removeItem(F),window.localStorage.removeItem(q)}catch{}window.location.replace(e)}},[e3,eQ,e4,eN]),(0,A.useEffect)(()=>{if(x.Capacitor.isNativePlatform()||!rt||!/Android|iPhone|iPad|iPod/i.test(window.navigator.userAgent))return;let e=`${window.location.pathname}${window.location.search}${window.location.hash}`,r="com.careerland.app".trim(),t=new URLSearchParams({target:e});r&&t.set("scheme",r);let a=`${window.location.origin}${c.AUTH_ROUTES.MOBILE_BRIDGE}?${t.toString()}`;if(window.location.pathname!==c.AUTH_ROUTES.MOBILE_BRIDGE){let e="mobile-bridge-redirect-attempted";if(window.sessionStorage.getItem(e))return;window.sessionStorage.setItem(e,"1"),window.location.replace(a)}},[rt]);let ro=(0,A.useCallback)(async(e,r)=>{if(!r){await h.toastService.error(eC("common.errors.unexpected")),(0,m.reportAppError)(Error("No native attempt returned"),{source:"auth",level:"warning",route:eF,extra:{phase:"native-external-login-no-attempt",provider:e}});return}if("cancelled"===r.status)return;if("unavailable"===r.status){await h.toastService.error(eC("common.errors.unexpected")),(0,m.reportAppError)(Error(`Native ${e} authentication unavailable. User should have been redirected to web flow.`),{source:"auth",level:"warning",route:eF,extra:{phase:"native-external-login-unavailable",provider:e}});return}if("success"!==r.status){await h.toastService.error(eC("common.errors.unexpected")),(0,m.reportAppError)(Error("Unexpected native attempt status"),{source:"auth",level:"warning",route:eF,extra:{phase:"native-external-login-invalid-status",provider:e}});return}let t=r.result.idToken,a=r.result.email??void 0;Q(!0),Z(!1),l.apiClient.markAuthRecoveryWindow(3e4);try{let o=await L.authService.loginWithExternal({provider:e,providerIdToken:t,providerUserId:r.result.providerUserId??void 0,..."apple"===e?{nonce:z(t)??eb??e0}:{}}),i=(0,C.resolveAuthFlow)(o);if("authenticated"===i.type){(0,v.trackEvent)(f.ANALYTICS_EVENTS.EXTERNAL_LOGIN_COMPLETED,{provider:e}),eW(i.userToken.accessToken,i.userToken.accessTokenExpiration,i.userToken.mobileRefreshToken,i.userToken.mobileRefreshTokenExpiration);return}
1if("email_verification_required"===i.type)return void eB.push((0,C.getEmailVerificationRoute)(a));if("role_selection_required"===i.type||!o.success&&"UserNotFound"===o.message){Z(!0),ei(t),en(a),ec(e),er(!0);return}let s=P(o);s&&((0,m.reportAppError)(Error(`External auth failed: ${s}`),{source:"auth",level:"warning",route:eF,extra:{provider:e,reasonCode:s,env:"production",hasMobileDeviceId:!!window.localStorage.getItem("careerland-mobile-device-id"),isMobileAuth:x.Capacitor.isNativePlatform()}}),await h.toastService.error(D(s,eC))),Z(!0),(0,m.reportAppError)(Error(`Unexpected auth flow response: ${i.type}`),{source:"auth",level:"warning",route:eF,extra:{phase:"native-external-login-unexpected-flow",provider:e,response:o}})}catch(t){Z(!0);let r=t instanceof Error?t.message:String(t);await h.toastService.error(eC("common.errors.unexpected")),(0,m.reportAppError)(t,{source:"auth",level:"warning",route:eF,extra:{phase:"native-external-login",provider:e,errorMessage:r}})}finally{Q(!1)}},[eW,e0,eF,eb,eB,eC]);(0,A.useEffect)(()=>{let e=rr&&e5?`${e7}:${e5}`:null,r=e&&1?window.sessionStorage.getItem(ek):null;(async()=>{if(rr&&e5&&(!e||eT.current!==e)&&(!e||r!==e)){eT.current=e,e&&window.sessionStorage.setItem(ek,e),Q(!0),Z(!1);try{(0,v.trackEvent)(f.ANALYTICS_EVENTS.EXTERNAL_LOGIN_STARTED,{provider:e7});let e=await L.authService.loginWithExternal({provider:e7,providerIdToken:e5,..."apple"===e7&&e6?{nonce:e6}:{}}),r=(0,C.resolveAuthFlow)(e);if("authenticated"===r.type){(0,v.trackEvent)(f.ANALYTICS_EVENTS.EXTERNAL_LOGIN_COMPLETED,{provider:e7}),eW(r.userToken.accessToken,r.userToken.accessTokenExpiration,r.userToken.mobileRefreshToken,r.userToken.mobileRefreshTokenExpiration);return}if("email_verification_required"===r.type){eV(),eB.push((0,C.getEmailVerificationRoute)(e8));return}if("role_selection_required"===r.type||!e.success&&"UserNotFound"===e.message){Z(!0),ei(e5),en(e8),ec(e7),er(!0);return}let t=P(e);t&&((0,m.reportAppError)(Error(`External auth failed: ${t}`),{source:"auth",level:"warning",route:eF,extra:{provider:e7,reasonCode:t,env:"production",hasMobileDeviceId:!!window.localStorage.getItem("careerland-mobile-device-id"),isMobileAuth:x.Capacitor.isNativePlatform()}}),await h.toastService.error(D(t,eC))),Z(!0)}catch(e){Z(!0),(0,m.reportAppError)(e,{source:"auth",level:"warning",route:eF,extra:{phase:"external-login"}})}finally{Q(!1);try{window.sessionStorage.removeItem(ek)}catch{}eV()}}})()},[eV,eW,eF,ek,e7,e6,e0,e8,e5,eB,eA,eQ,eN,rr,eH,eG,eC]);let ri=async()=>{if(eo&&et&&el){eu(!0);try{let e=await L.authService.registerWithExternal({provider:el,email:es,providerIdToken:eo,..."apple"===el&&z(eo)?{nonce:z(eo)}:{},userRole:et}),r=(0,C.resolveAuthFlow)(e);if("authenticated"===r.type){(0,v.trackEvent)(f.ANALYTICS_EVENTS.EXTERNAL_LOGIN_COMPLETED,{provider:el,register_role:et}),er(!1),eW(r.userToken.accessToken,r.userToken.accessTokenExpiration,r.userToken.mobileRefreshToken,r.userToken.mobileRefreshTokenExpiration);return}if("email_verification_required"===r.type){Z(!0),er(!1),eV(),eB.push((0,C.getEmailVerificationRoute)(es));return}let t=P(e);t&&((0,m.reportAppError)(Error(`External register failed: ${t}`),{source:"auth",level:"warning",route:eF,extra:{provider:el,reasonCode:t,env:"production",hasMobileDeviceId:!!window.localStorage.getItem("careerland-mobile-device-id"),isMobileAuth:x.Capacitor.isNativePlatform()}}),await h.toastService.error(D(t,eC))),Z(!0)}catch(e){Z(!0),(0,m.reportAppError)(e,{source:"auth",level:"warning",route:eF,extra:{phase:"external-role-selection"}})}finally{eu(!1)}}},rs=()=>{er(!1),ea(null),ei(null),en(void 0),ec(null),Z(!0);let e=eF.startsWith(c.AUTH_ROUTES.REGISTER)?c.AUTH_ROUTES.REGISTER:c.AUTH_ROUTES.LOGIN;eB.replace(e)};return(0,r.jsxs)(r.Fragment,{children:[ra?(0,r.jsx)(U.ExternalAuthLoadingOverlay,{}):null,(0,r.jsxs)("form",{onSubmit:eU(eY),onKeyDown:e=>{if("Enter"!==e.key)return;let r=e.target;"textarea"===r?.tagName?.toLowerCase()||r?.type!=="button"&&(e.preventDefault(),eU(eY)())},className:"space-y-4",children:[e2?(0,r.jsx)("div",{className:"rounded-md border border-red-300 bg-red-50 px-3 py-2 text-sm text-red-700",children:e2}):null,(0,r.jsx)(o.FormField,{label:eC("auth.login.form.email.label"),error:eP.email?.message,required:!0,children:(0,r.jsx)(n.Input,{type:"email",placeholder:eC("auth.login.form.email.placeholder"),...eO("email")})}),(0,r.jsx)(o.FormField,{label:eC("auth.login.form.password.label"),error:eP.password?.message,required:!0,children:(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(n.Input,{type:H?"text":"password",placeholder:eC("auth.login.form.password.placeholder"),...eO("password"),className:"pr-10"}),(0,r.jsx)("button",{type:"button",onClick:()=>G(e=>!e),className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",children:H?(0,r.jsx)(b.EyeOff,{size:18}):(0,r.jsx)(y.Eye,{size:18})})]})}),(0,r.jsx)("div",{className:"flex justify-end",children:(0,r.jsx)(R.default,{href:c.AUTH_ROUTES.FORGOT_PASSWORD,className:"text-sm text-primary hover:underline",children:eC("auth.login.actions.forgot_password")})}),(0,r.jsx)(i.Button,{type:"submit",className:"w-full",disabled:B,children:B?(0,r.jsx)(t.LoadingSpinner,{size:"sm"}):eC("auth.login.actions.submit")}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("div",{className:"absolute inset-0 flex items-center",children:(0,r.jsx)("span",{className:"w-full border-t"})}),(0,r.jsx)("div",{className:"relative flex justify-center text-xs uppercase",children:(0,r.jsx)("span",{className:"bg-background px-2 text-muted-foreground",children:eC("auth.login.or_continue_with")})})]}),(0,r.jsxs)(i.Button,{type:"button",variant:"outline",className:"w-full bg-transparent",disabled:B||V,onClick:async()=>{try{window.sessionStorage.removeItem(ek),eS(null),W(!0),(0,v.trackEvent)(f.ANALYTICS_EVENTS.EXTERNAL_LOGIN_STARTED,{provider:"google"});let e=await eR(M("google"));x.Capacitor.isNativePlatform()&&e&&await ro("google",e)}catch(r){let e=r instanceof Error?r.message:String(r);await h.toastService.error(eC("common.errors.unexpected")),(0,m.reportAppError)(r,{source:"auth",level:"warning",route:eF,extra:{phase:"native-google-button",errorMessage:e}})}finally{W(!1)}},children:[(0,r.jsxs)("svg",{className:"h-5 w-5",viewBox:"0 0 24 24",children:[(0,r.jsx)("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z",fill:"#4285F4"}),(0,r.jsx)("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),(0,r.jsx)("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",fill:"#FBBC05"}),(0,r.jsx)("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]}),V?(0,r.jsx)(t.LoadingSpinner,{size:"sm"}):eC("auth.login.actions.login_with_google")]}),(0,r.jsxs)(i.Button,{type:"button",variant:"outline",className:"w-full bg-transparent",disabled:B||Y,onClick:async()=>{try{window.sessionStorage.removeItem(ek);let e="u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`nonce-${Date.now()}-${Math.random().toString(36).slice(2,12)}`;eS(e),X(!0),(0,v.trackEvent)(f.ANALYTICS_EVENTS.EXTERNAL_LOGIN_STARTED,{provider:"apple"});let r=await e_(M("apple",e),e);x.Capacitor.isNativePlatform()&&r&&await ro("apple",r)}catch(r){let e=r instanceof Error?r.message:String(r);await h.toastService.error(eC("common.errors.unexpected")),(0,m.reportAppError)(r,{source:"auth",level:"warning",route:eF,extra:{phase:"native-apple-button",errorMessage:e}})}finally{X(!1)}},children:[(0,r.jsx)("svg",{className:"h-5 w-5",viewBox:"0 0 24 24",fill:"
1currentColor","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M16.37 1.43c0 1.14-.46 2.26-1.24 3.06-.81.84-2.14 1.5-3.28 1.42-.14-1.09.41-2.22 1.17-2.99.84-.86 2.24-1.48 3.35-1.49zM20.9 17.1c-.53 1.19-.78 1.72-1.46 2.75-.95 1.45-2.29 3.24-3.96 3.25-1.48.02-1.86-.94-3.87-.93-2.01.01-2.43.95-3.91.93-1.67-.01-2.93-1.62-3.88-3.07-2.66-4.07-2.94-8.85-1.3-11.36 1.17-1.8 3.02-2.86 4.76-2.86 1.77 0 2.88.97 4.34.97 1.42 0 2.28-.97 4.33-.97 1.55 0 3.2.84 4.37 2.29-3.84 2.1-3.22 7.59.58 9z"})}),Y?(0,r.jsx)(t.LoadingSpinner,{size:"sm"}):eC("auth.login.actions.login_with_apple")]})]}),(0,r.jsx)(s.Dialog,{open:ee,onOpenChange:e=>{e?er(!0):rs()},children:(0,r.jsxs)(s.DialogContent,{children:[(0,r.jsxs)(s.DialogHeader,{children:[(0,r.jsx)(s.DialogTitle,{children:eC("auth.register.role_selection.label")}),(0,r.jsx)(s.DialogDescription,{children:eC("auth.register.description")})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>ea(d.USER_ROLES.USER),className:`flex min-h-28 flex-col items-center justify-center gap-2 rounded-lg border-2 p-3 transition-colors ${et===d.USER_ROLES.USER?"border-primary bg-primary/5":"border-border hover:border-primary/50"}`,children:[(0,r.jsx)(T.User,{className:"h-8 w-8"}),(0,r.jsx)("span",{className:"font-medium",children:eC("auth.register.role_selection.candidate")})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>ea(d.USER_ROLES.EMPLOYER),className:`flex min-h-28 flex-col items-center justify-center gap-2 rounded-lg border-2 p-3 transition-colors ${et===d.USER_ROLES.EMPLOYER?"border-primary bg-primary/5":"border-border hover:border-primary/50"}`,children:[(0,r.jsx)(E.Briefcase,{className:"h-8 w-8"}),(0,r.jsx)("span",{className:"font-medium",children:eC("auth.register.role_selection.employer")})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>ea(d.USER_ROLES.PARTNER),className:`flex flex-col items-center gap-2 rounded-lg border-2 p-4 transition-colors ${et===d.USER_ROLES.PARTNER?"border-primary bg-primary/5":"border-border hover:border-primary/50"}`,children:[(0,r.jsx)(S.Handshake,{className:"h-8 w-8"}),(0,r.jsx)("span",{className:"font-medium",children:eC("auth.register.role_selection.partner")})]})]}),(0,r.jsxs)(s.DialogFooter,{children:[(0,r.jsx)(i.Button,{type:"button",variant:"outline",onClick:rs,disabled:ed,children:eC("common.actions.cancel")}),(0,r.jsx)(i.Button,{type:"button",onClick:ri,disabled:!et||ed,children:ed?(0,r.jsx)(t.LoadingSpinner,{size:"sm"}):eC("auth.register.actions.submit")})]})]})}),(0,r.jsx)(s.Dialog,{open:ep,onOpenChange:e=>{e?em(!0):eK()},children:(0,r.jsxs)(s.DialogContent,{children:[(0,r.jsxs)(s.DialogHeader,{children:[(0,r.jsx)(s.DialogTitle,{children:eC("auth.password_setup.title")}),(0,r.jsx)(s.DialogDescription,{children:eC("auth.password_setup.description")})]}),(0,r.jsxs)("form",{id:"password-setup-form",onSubmit:e$(eX),className:"space-y-4",children:[(0,r.jsx)(o.FormField,{label:eC("auth.login.form.email.label"),required:!0,children:(0,r.jsx)(n.Input,{type:"email",value:eh,readOnly:!0})}),(0,r.jsx)(o.FormField,{label:eC("auth.register.form.password.label"),error:eq.password?.message,required:!0,children:(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(n.Input,{type:ef?"text":"password",placeholder:eC("auth.register.form.password.placeholder"),...eM("password"),className:"pr-10"}),(0,r.jsx)("button",{type:"button",onClick:()=>ev(e=>!e),className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",children:ef?(0,r.jsx)(b.EyeOff,{size:18}):(0,r.jsx)(y.Eye,{size:18})})]})}),(0,r.jsx)(o.FormField,{label:eC("auth.reset_password.form.confirm_password.label"),error:eq.confirmPassword?.message,required:!0,children:(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(n.Input,{type:ex?"text":"password",placeholder:eC("auth.reset_password.form.confirm_password.placeholder"),...eM("confirmPassword"),className:"pr-10"}),(0,r.jsx)("button",{type:"button",onClick:()=>ew(e=>!e),className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",children:ex?(0,r.jsx)(b.EyeOff,{size:18}):(0,r.jsx)(y.Eye,{size:18})})]})})]}),(0,r.jsxs)(s.DialogFooter,{children:[(0,r.jsx)(i.Button,{type:"button",variant:"outline",onClick:eK,disabled:eE,children:eC("common.actions.cancel")}),(0,r.jsx)(i.Button,{type:"submit",form:"password-setup-form",disabled:eE,children:eE?(0,r.jsx)(t.LoadingSpinner,{size:"sm"}):eC("auth.password_setup.actions.submit")})]})]})})]})}e.s(["default",0,function(){let e=(0,p.useT)();return(0,A.useEffect)(()=>(document.body.classList.add("auth-login-page"),()=>{document.body.classList.remove("auth-login-page")}),[]),(0,r.jsx)("div",{className:"auth-centered-shell auth-login-shell flex min-h-full items-center justify-center py-12",children:(0,r.jsxs)(a.Card,{className:"w-full max-w-md",children:[(0,r.jsxs)(a.CardHeader,{children:[(0,r.jsx)(a.CardTitle,{children:e("auth.login.title")}),(0,r.jsx)(a.CardDescription,{children:e("auth.login.description")})]}),(0,r.jsxs)(a.CardContent,{children:[(0,r.jsx)(A.Suspense,{fallback:(0,r.jsx)("div",{className:"flex justify-center",children:(0,r.jsx)(t.LoadingSpinner,{size:"md"})}),children:(0,r.jsx)(B,{})}),(0,r.jsxs)("p",{className:"mt-4 text-center text-sm text-muted-foreground",children:[e("auth.login.dont_have_account")," ",(0,r.jsx)(R.default,{href:c.AUTH_ROUTES.REGISTER,className:"text-primary hover:underline",children:e("auth.login.actions.register")})]})]})]})})}],23426)},31987,e=>{"use strict";var r=e.i(43476),t=e.i(10708),a=e.i(47163);e.s(["FormField",0,function({label:e,error:o,required:i,children:s,className:n}){return(0,r.jsxs)("div",{className:(0,a.cn)("space-y-2",n),children:[(0,r.jsxs)(t.Label,{children:[e,i&&(0,r.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),s,o&&(0,r.jsx)("p",{className:"text-sm text-red-500",children:o})]})}])},70065,e=>{"use strict";var r=e.i(43476),t=e.i(47163);e.s(["Card",0,function({className:e,...a}){return(0,r.jsx)("div",{"data-slot":"card",className:(0,t.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...a})},"CardContent",0,function({className:e,...a}){return(0,r.jsx)("div",{"data-slot":"card-content",className:(0,t.cn)("px-6",e),...a})},"CardDescription",0,function({className:e,...a}){return(0,r.jsx)("div",{"data-slot":"card-description",className:(0,t.cn)("text-muted-foreground text-sm leading-5",e),...a})},"CardHeader",0,function({className:e,...a}){return(0,r.jsx)("div",{"data-slot":"card-header",className:(0,t.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...a})},"CardTitle",0,function({className:e,...a}){return(0,r.jsx)("div",{"data-slot":"card-title",className:(0,t.cn)("text-base leading-tight font-semibold tracking-tight",e),...a})}])},23750,e=>{"use strict";var r=e.i(43476),t=e.i(47163);e.s(["Input",0,function({className:e,type:a,...o}){return(0,r.jsx)("input",{type:a,"data-slot":"input",className:(0,t.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-sm shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...o})}])},57347,e=>{"use strict";var r=e.i(15760);let t=new class{async login(e){return r.apiClient.postFull("/auth/login",e)}async register(e){return r.apiClient.postFull("/auth/register",e)}async registerWithExternal(e){return r.apiClient.postFull("/auth/register-with-external-provider",e)}async loginWithExternal(e){return r.apiClient.postFull("/auth/login-with-external-provider",e)}async forgotPassword(e){return r.apiClient.post("/auth/forgot-password",e)}async resetPassword(e){return r.apiClient.post("/auth/reset-password",e)}async resendVerificationEmail(e){return r.apiClient.post("/auth/resend-verification-email",e)}async verifyEmail(e){return r.apiClient.post("/auth/verify-email",e)}async logout(){return r.apiClient.post("/auth/logout")}};e.s(["authService",0,t])},90167,e=>{"use strict";var r=e.i(43004),t=e.i(7761),a=e.i(43007);e.s(["useAuthValidationSchemas",0,()=>{let e,o=(e=(0,t.useT)(),{emailSchema:r.z.string().email(e("common.validations.invalid_email")),passwordSchema:r.z.string(),phoneSchema:r.z.string().regex(/^\+?[1-9]\d{1,14}$/,e("common.validations.invalid_phone")),urlSchema:r.z.string().url(e("common.validations.invalid_format")),requiredString:t=>r.z.string().min(1,t||e("common.validations.required"))});return{loginSchema:r.z.object({email:o.emailSchema,password:o.requiredString()}),registerSchema:r.z.object({email:o.emailSchema,password:o.passwordSchema,userRole:r.z.enum([a.USER_ROLES.USER,a.USER_ROLES.EMPLOYER,a.USER_ROLES.PARTNER])}),forgotPasswordSchema:r.z.object({email:o.emailSchema}),resetPasswordSchema:r.z.object({password:o.passwordSchema,confirmPassword:o.requiredString()})}}],90167)},63727,e=>{"use strict";
1let r=(0,e.i(75254).default)("briefcase",[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]);e.s(["Briefcase",0,r],63727)},77705,e=>{"use strict";let r=(0,e.i(75254).default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);e.s(["EyeOff",0,r],77705)},86536,e=>{"use strict";let r=(0,e.i(75254).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",0,r],86536)},49685,20122,3872,43767,e=>{"use strict";let r=(0,e.i(75254).default)("handshake",[["path",{d:"m11 17 2 2a1 1 0 1 0 3-3",key:"efffak"}],["path",{d:"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",key:"9pr0kb"}],["path",{d:"m21 3 1 11h-2",key:"1tisrp"}],["path",{d:"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3",key:"1uvwmv"}],["path",{d:"M3 4h8",key:"1ep09j"}]]);e.s(["Handshake",0,r],49685);var t=e.i(47293),a=e.i(81515),o=e.i(43007);e.s(["getDashboardRouteFromAccessToken",0,function(e){let r=(0,t.jwtDecode)(e);return r.user_role===o.USER_ROLES.ADMIN?a.ADMIN_ROUTES.DASHBOARD:r.user_role===o.USER_ROLES.EMPLOYER?a.EMPLOYER_ROUTES.DASHBOARD:r.user_role===o.USER_ROLES.PARTNER?a.PARTNER_ROUTES.DASHBOARD:a.USER_ROUTES.DASHBOARD},"getEmailVerificationRoute",0,function(e){return e?`${a.AUTH_ROUTES.RESEND_VERIFICATION_EMAIL}?email=${encodeURIComponent(e)}`:a.AUTH_ROUTES.RESEND_VERIFICATION_EMAIL},"resolveAuthFlow",0,function(e){return"EMAIL_VERIFICATION_REQUIRED"===e.nextAction?{type:"email_verification_required"}:"ROLE_SELECTION_REQUIRED"===e.nextAction?{type:"role_selection_required"}:"PASSWORD_SETUP_REQUIRED"===e.nextAction?{type:"password_setup_required"}:e.success&&e.userToken?{type:"authenticated",userToken:e.userToken}:{type:"error"}}],20122);var i=e.i(47167),s=e.i(82568);let n=(0,s.registerPlugin)("SocialLogin",{web:()=>e.A(66265).then(e=>new e.SocialLoginWeb)}),l=new class{constructor(){this.initialize=this.initialize.bind(this),this.refresh=this.refresh.bind(this)}async initialize(e){await n.initialize(e),this.initializeOptions=e}async login(e){return n.login(e)}async logout(e){return n.logout(e)}async isLoggedIn(e){return n.isLoggedIn(e)}async getAuthorizationCode(e){return n.getAuthorizationCode(e)}async refresh(e){var r,t;return"google"===e.provider&&(null==(t=null==(r=this.initializeOptions)?void 0:r.google)?void 0:t.mode)==="offline"&&console.warn("[SocialLogin] Google refresh() is not available when using offline mode. Offline mode only returns serverAuthCode for backend token exchange. Send serverAuthCode to your backend and refresh tokens there, or switch google.mode to 'online' for client-side refresh."),n.refresh(e)}async refreshToken(e){return n.refreshToken(e)}async handleRedirectCallback(){return n.handleRedirectCallback()}async decodeIdToken(e){return n.decodeIdToken(e)}async getAccessTokenExpirationDate(e){return n.getAccessTokenExpirationDate(e)}async isAccessTokenAvailable(e){return n.isAccessTokenAvailable(e)}async isAccessTokenExpired(e){return n.isAccessTokenExpired(e)}async isRefreshTokenAvailable(e){return n.isRefreshTokenAvailable(e)}async providerSpecificCall(e){return n.providerSpecificCall(e)}async getPluginVersion(){return n.getPluginVersion()}async openSecureWindow(e){return n.openSecureWindow(e)}};e.i(90571);var c=e.i(53367),d=e.i(63020);let u=null,p=(0,c.createLogger)("native_auth"),m=e=>"object"==typeof e&&null!==e,h=e=>{if(!m(e))return;let r=e.code;return"string"==typeof r?r:void 0},g=async(e,r)=>{let t=l[e];if("function"!=typeof t)return!1;try{return await t(r),!0}catch{return!1}},f=async e=>{await v();let r={provider:e};for(let t of["logout","logOut","signOut","disconnect","revokeAccess"])if(await g(t,r))return void p.info({event:"request_completed",message:"provider session reset before login",context:{provider:e,method:t,platform:s.Capacitor.getPlatform()}})},v=async()=>u||(u=(async()=>{let e=s.Capacitor.getPlatform(),r="679962696924-32dr50ufglqk5mpiilgguqr9409vhmcq.apps.googleusercontent.com".trim(),t="679962696924-1aqkodbv3evp5ofh3s8tbb51q6fa95hb.apps.googleusercontent.com".trim();try{let a=r?{webClientId:r,..."ios"===e&&t?{iOSClientId:t}:{},mode:"online"}:void 0;await l.initialize({google:a,apple:"ios"===e?{clientId:"com.careerland.app.web".trim()||"com.careerland.app.web",useBroadcastChannel:!1}:void 0})}catch(r){u=null;let e={message:r instanceof Error?r.message:String(r),code:h(r),platform:s.Capacitor.getPlatform()};throw p.error({event:"request_failed",message:"social login initialization failed",context:e,error:r}),(0,d.reportAppError)(r,{source:"auth",level:"error",extra:e}),r}})()),x=async()=>{await v();let e=s.Capacitor.getPlatform();"android"!==e&&await f("google");try{let r=(await l.login("android"===e?{provider:"google",options:{}}:{provider:"google",options:{scopes:["email","profile"]}})).result,t=r.idToken?.trim();if(!t){let e=Error("Google native auth did not return an idToken.");throw p.error({event:"request_failed",message:"google native auth missing id token",context:{result:r},error:e}),e}return{provider:"google",idToken:t,email:r.profile?.email??void 0,providerUserId:r.profile?.id??void 0}}catch(r){let e={message:r instanceof Error?r.message:String(r),code:h(r),platform:s.Capacitor.getPlatform()};throw p.error({event:"request_failed",message:"google native login failed",context:e,error:r}),r}},w=async()=>{await f("apple");try{let e=(await l.login({provider:"apple",options:{scopes:["email","name"],useBroadcastChannel:"android"===s.Capacitor.getPlatform()}})).result,r=e.idToken?.trim();if(!r){let r=Error("Apple native auth did not return an idToken.");throw p.error({event:"request_failed",message:"apple native auth missing id token",context:{result:e},error:r}),r}return{provider:"apple",idToken:r,email:e.profile?.email??void 0,providerUserId:e.profile?.user??void 0}}catch(r){let e={message:r instanceof Error?r.message:String(r),code:h(r),platform:s.Capacitor.getPlatform()};throw p.error({event:"request_failed",message:"apple native login failed",context:e,error:r}),r}},E=async e=>{if(!s.Capacitor.isNativePlatform())return{status:"unavailable"};if("google"===e&&"ios"===s.Capacitor.getPlatform()&&!"679962696924-1aqkodbv3evp5ofh3s8tbb51q6fa95hb.apps.googleusercontent.com".trim())return p.warn({event:"request_failed",message:"ios google client id missing, falling back to web flow"}),{status:"unavailable"};if("apple"===e&&"android"===s.Capacitor.getPlatform())return p.info({event:"request_completed",message:"android apple uses web oauth flow"}),{status:"unavailable"};try{let r="google"===e?await x():await w();if(!r)return{status:"unavailable"};return{status:"success",result:r}}catch(t){if(((e,r)=>{if("google"!==e||"android"!==s.Capacitor.getPlatform())return!1;let t=(e=>{let r=[];if(e instanceof Error?(e.message&&r.push(e.message),e.stack&&r.push(e.stack)):"string"==typeof e&&r.push(e),m(e))for(let t of["message","errorMessage","details","localizedMessage","stack"]){let a=e[t];"string"==typeof a&&a.trim()&&r.push(a)}return r.join(" | ").toLowerCase()})(r);return t.includes("reauth failed")||t.includes("account reauth failed")})(e,t)){let r={provider:e,message:t instanceof Error?t.message:String(t),code:h(t),platform:s.Capacitor.getPlatform()};return p.warn({event:"request_failed",message:"android google reauth failed, falling back to web flow",context:r,error:t}),(0,d.reportAppError)(t,{source:"auth",level:"warning",extra:{...r,category:"android-google-reauth-failed"}}),{status:"unavailable"}}if((e=>{if(m(e)&&"string"==typeof e.code)return"USER_CANCELLED"===e.code;let r=(e instanceof Error?e.message:"string"==typeof e?e:"").toLowerCase();
1return r.includes("cancel")||r.includes("dismiss")||r.includes("closed by user")})(t))return p.info({event:"request_completed",message:"native sign-in cancelled by user",context:{provider:e}}),{status:"cancelled"};let r={provider:e,message:t instanceof Error?t.message:String(t),code:h(t),platform:s.Capacitor.getPlatform()};return p.error({event:"request_failed",message:"native sign-in failed",context:r,error:t}),(0,d.reportAppError)(t,{source:"auth",level:"warning",extra:r}),{status:"unavailable"}}};var y=e.i(3329),b=e.i(17255);let S=e=>e?.trim().replace(/\/+$/,"")??"",T=e=>{try{let r=new URL(e).protocol;return"http:"===r||"https:"===r}catch{return!1}},k=()=>{let e=S("com.careerland.app").toLowerCase(),r=S("production").toLowerCase();return"com.careerland.app.staging"===e||"staging"===r?"https://app-staging.careerlande.com":"com.careerland.app"===e||"production"===r||"prod"===r?"https://app.careerlande.com":""},R=e=>{let r=new URLSearchParams({target:e}),t="com.careerland.app".trim();return t&&r.set("scheme",t),`${a.AUTH_ROUTES.MOBILE_BRIDGE}?${r.toString()}`},_=(e,r,t)=>{let o=`${a.AUTH_ROUTES.GOOGLE_MOBILE}?provider=${e}&callback=${encodeURIComponent(r)}`,s=t?`${o}&nonce=${encodeURIComponent(t)}`:o,n=(()=>{{let e=S(window.location.origin);if(e&&T(e))return e}let e=S("https://app.careerlande.com");if(e&&T(e))return e;let r=S(i.default.env.NEXTAUTH_URL);if(r&&T(r))return r;let t=k();return t&&T(t)?t:""})();return n?`${n}${s}`:s};e.s(["useGoogleAuth",0,function(){let e=async(e,r,t)=>{let a=_(e,R(r),t);if(!/^https?:\/\//i.test(a)){let r=k();if(r&&T(r)){let e=`${r}${a.startsWith("/")?a:`/${a}`}`;await y.Browser.open({url:e});return}throw Error(`Invalid OAuth browser URL for ${e}: ${a}`)}try{await y.Browser.open({url:a})}catch(r){throw Error(`Failed to open ${e} authentication. Please check your app permissions and try again.`)}},r=async(r,t="/",a)=>{let o,i="apple"===r?a??("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`nonce-${Date.now()}-${Math.random().toString(36).slice(2,12)}`):null,n=i?((o=new URL(t,"https://careerland.local")).searchParams.set("externalNonce",i),`${o.pathname}${o.search}${o.hash}`):t;if("apple"===r&&/Android/i.test(window.navigator.userAgent)&&1){let e=_(r,R(n),i);return window.location.replace(e),null}if(s.Capacitor.isNativePlatform()){if("apple"===r&&"android"===s.Capacitor.getPlatform())return await e(r,n,i),null;let t=await E(r);return"success"===t.status||"cancelled"===t.status?t:(await e(r,n,i),null)}return await (0,b.signOut)({redirect:!1}),await (0,b.signIn)(r,{callbackUrl:n,..."apple"===r&&i?{nonce:i}:{},..."google"===r?{prompt:"select_account"}:{}}),null};return{signInWithGoogle:async(e="/")=>r("google",e),signInWithApple:async(e="/",t)=>r("apple",e,t),signInWithProvider:r}}],3872);var A=e.i(43476),j=e.i(13172);e.s(["ExternalAuthLoadingOverlay",0,function(){return(0,A.jsx)("div",{className:"fixed inset-0 z-[70] flex items-center justify-center bg-background/95 backdrop-blur-sm",children:(0,A.jsx)(j.LoadingSpinner,{size:"lg"})})}],43767)},84614,e=>{"use strict";let r=(0,e.i(75254).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);e.s(["User",0,r],84614)}]);

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.