b91cfcc7fa
- Update X/Discord links in docs and frontend dist - Dashboard: report all-time total trades - Notifications: add unread-count endpoint for badge Made-with: Cursor
1 line
43 KiB
JavaScript
1 line
43 KiB
JavaScript
"use strict";(self["webpackChunkvue_antd_pro"]=self["webpackChunkvue_antd_pro"]||[]).push([[24,806],{19908:function(e,r,t){t.r(r),t.d(r,{default:function(){return E}});var s=function(){var e=this,r=e._self._c;return r("div",{staticClass:"main"},[e._m(0),r("div",{staticClass:"auth-card"},[e.oauthProcessing?r("div",{staticClass:"oauth-processing"},[r("a-spin",{attrs:{size:"large"}}),r("p",[e._v(e._s(e.$t("user.oauth.processing")||"Processing login..."))])],1):e._e(),r("div",{directives:[{name:"show",rawName:"v-show",value:!e.oauthProcessing,expression:"!oauthProcessing"}]},[r("a-tabs",{attrs:{animated:!1},model:{value:e.activeTab,callback:function(r){e.activeTab=r},expression:"activeTab"}},[r("a-tab-pane",{key:"login",attrs:{tab:e.$t("user.login.tab")||"Login"}},[r("div",{staticClass:"login-method-switch"},[r("a",{class:{active:"password"===e.loginMethod},on:{click:function(r){e.loginMethod="password"}}},[e._v(e._s(e.$t("user.login.methodPassword")||"Password"))]),r("a-divider",{attrs:{type:"vertical"}}),r("a",{class:{active:"code"===e.loginMethod},on:{click:function(r){e.loginMethod="code"}}},[e._v(e._s(e.$t("user.login.methodCode")||"Email Code"))])],1),r("a-form",{directives:[{name:"show",rawName:"v-show",value:"password"===e.loginMethod,expression:"loginMethod === 'password'"}],ref:"formLogin",staticClass:"auth-form",attrs:{id:"formLogin",form:e.loginForm},on:{submit:e.handleLogin}},[e.loginError?r("a-alert",{staticStyle:{"margin-bottom":"24px"},attrs:{type:"error",showIcon:"",message:e.loginError}}):e._e(),e.oauthError?r("a-alert",{staticStyle:{"margin-bottom":"24px"},attrs:{type:"error",showIcon:"",message:e.oauthError}}):e._e(),r("a-form-item",[r("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["username",{rules:[{required:!0,message:e.$t("user.login.usernameRequired")||"Please enter username"}],validateTrigger:"blur"}],expression:"[\n 'username',\n {rules: [{ required: true, message: $t('user.login.usernameRequired') || 'Please enter username' }], validateTrigger: 'blur'}\n ]"}],attrs:{size:"large",type:"text",placeholder:e.$t("user.login.username")||"Username"}},[r("a-icon",{style:{color:"rgba(0,0,0,.25)"},attrs:{slot:"prefix",type:"user"},slot:"prefix"})],1)],1),r("a-form-item",[r("a-input-password",{directives:[{name:"decorator",rawName:"v-decorator",value:["password",{rules:[{required:!0,message:e.$t("user.login.passwordRequired")||"Please enter password"}],validateTrigger:"blur"}],expression:"[\n 'password',\n {rules: [{ required: true, message: $t('user.login.passwordRequired') || 'Please enter password' }], validateTrigger: 'blur'}\n ]"}],attrs:{size:"large",placeholder:e.$t("user.login.password")||"Password"}},[r("a-icon",{style:{color:"rgba(0,0,0,.25)"},attrs:{slot:"prefix",type:"lock"},slot:"prefix"})],1)],1),r("Turnstile",{ref:"loginTurnstile",attrs:{siteKey:e.securityConfig.turnstile_site_key,enabled:e.securityConfig.turnstile_enabled},on:{success:function(r){return e.loginTurnstileToken=r},error:function(){return e.loginTurnstileToken=null}}}),r("a-form-item",{staticStyle:{"margin-top":"24px"}},[r("a-button",{staticClass:"submit-button",attrs:{size:"large",type:"primary",htmlType:"submit",loading:e.loginLoading,disabled:e.loginLoading||e.securityConfig.turnstile_enabled&&!e.loginTurnstileToken,block:""}},[e._v(e._s(e.$t("user.login.submit")||"Login"))])],1),r("div",{staticClass:"auth-links"},[r("a",{on:{click:function(r){e.showResetModal=!0}}},[e._v(e._s(e.$t("user.login.forgotPassword")||"Forgot Password?"))])])],1),r("a-form",{directives:[{name:"show",rawName:"v-show",value:"code"===e.loginMethod,expression:"loginMethod === 'code'"}],ref:"formCodeLogin",staticClass:"auth-form",attrs:{id:"formCodeLogin",form:e.codeLoginForm},on:{submit:e.handleCodeLogin}},[e.codeLoginError?r("a-alert",{staticStyle:{"margin-bottom":"24px"},attrs:{type:"error",showIcon:"",message:e.codeLoginError}}):e._e(),e.oauthError?r("a-alert",{staticStyle:{"margin-bottom":"24px"},attrs:{type:"error",showIcon:"",message:e.oauthError}}):e._e(),r("a-form-item",[r("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["email",{rules:[{required:!0,message:e.$t("user.login.emailRequired")||"Please enter email"},{type:"email",message:e.$t("user.login.emailInvalid")||"Invalid email format"}],validateTrigger:"blur"}],expression:"[\n 'email',\n {\n rules: [\n { required: true, message: $t('user.login.emailRequired') || 'Please enter email' },\n { type: 'email', message: $t('user.login.emailInvalid') || 'Invalid email format' }\n ],\n validateTrigger: 'blur'\n }\n ]"}],attrs:{size:"large",type:"email",placeholder:e.$t("user.login.email")||"Email"}},[r("a-icon",{style:{color:"rgba(0,0,0,.25)"},attrs:{slot:"prefix",type:"mail"},slot:"prefix"})],1)],1),r("a-form-item",[r("a-row",{attrs:{gutter:12}},[r("a-col",{attrs:{span:16}},[r("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["code",{rules:[{required:!0,message:e.$t("user.login.codeRequired")||"Please enter verification code"}],validateTrigger:"blur"}],expression:"[\n 'code',\n {\n rules: [{ required: true, message: $t('user.login.codeRequired') || 'Please enter verification code' }],\n validateTrigger: 'blur'\n }\n ]"}],attrs:{size:"large",placeholder:e.$t("user.login.verificationCode")||"Verification Code"}},[r("a-icon",{style:{color:"rgba(0,0,0,.25)"},attrs:{slot:"prefix",type:"safety-certificate"},slot:"prefix"})],1)],1),r("a-col",{attrs:{span:8}},[r("a-button",{attrs:{size:"large",block:"",loading:e.codeLoginSendingCode,disabled:e.codeLoginSendingCode||e.codeLoginCountdown>0},on:{click:e.handleCodeLoginSendCode}},[e._v(" "+e._s(e.codeLoginCountdown>0?"".concat(e.codeLoginCountdown,"s"):e.$t("user.login.sendCode")||"Send")+" ")])],1)],1)],1),r("Turnstile",{ref:"codeLoginTurnstile",attrs:{siteKey:e.securityConfig.turnstile_site_key,enabled:e.securityConfig.turnstile_enabled},on:{success:function(r){return e.codeLoginTurnstileToken=r},error:function(){return e.codeLoginTurnstileToken=null}}}),r("a-form-item",{staticStyle:{"margin-top":"24px"}},[r("a-button",{staticClass:"submit-button",attrs:{size:"large",type:"primary",htmlType:"submit",loading:e.codeLoginLoading,disabled:e.codeLoginLoading||e.securityConfig.turnstile_enabled&&!e.codeLoginTurnstileToken,block:""}},[e._v(e._s(e.$t("user.login.submit")||"Login"))])],1),r("div",{staticClass:"code-login-hint"},[r("a-icon",{attrs:{type:"info-circle"}}),r("span",[e._v(e._s(e.$t("user.login.codeLoginHint")||"New users will be automatically registered"))])],1)],1),e.hasOAuth?r("div",{staticClass:"oauth-section"},[r("a-divider",[e._v(e._s(e.$t("user.login.orLoginWith")||"Or login with"))]),r("div",{staticClass:"oauth-buttons"},[e.securityConfig.oauth_google_enabled?r("a-button",{staticClass:"oauth-btn google-btn",on:{click:e.handleGoogleLogin}},[r("svg",{staticClass:"oauth-icon",attrs:{viewBox:"0 0 24 24",width:"18",height:"18"}},[r("path",{attrs:{fill:"#4285F4",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"}}),r("path",{attrs:{fill:"#34A853",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"}}),r("path",{attrs:{fill:"#FBBC05",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"}}),r("path",{attrs:{fill:"#EA4335",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"}})]),e._v(" Google ")]):e._e(),e.securityConfig.oauth_github_enabled?r("a-button",{staticClass:"oauth-btn github-btn",on:{click:e.handleGitHubLogin}},[r("a-icon",{attrs:{type:"github"}}),e._v(" GitHub ")],1):e._e()],1)],1):e._e()],1),e.securityConfig.registration_enabled?r("a-tab-pane",{key:"register",attrs:{tab:e.$t("user.register.tab")||"Register"}},[r("a-form",{ref:"formRegister",staticClass:"auth-form",attrs:{id:"formRegister",form:e.registerForm},on:{submit:e.handleRegister}},[e.registerError?r("a-alert",{staticStyle:{"margin-bottom":"24px"},attrs:{type:"error",showIcon:"",message:e.registerError}}):e._e(),r("a-form-item",[r("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["email",{rules:[{required:!0,message:e.$t("user.register.emailRequired")||"Please enter email"},{type:"email",message:e.$t("user.register.emailInvalid")||"Invalid email format"}],validateTrigger:"blur"}],expression:"[\n 'email',\n {\n rules: [\n { required: true, message: $t('user.register.emailRequired') || 'Please enter email' },\n { type: 'email', message: $t('user.register.emailInvalid') || 'Invalid email format' }\n ],\n validateTrigger: 'blur'\n }\n ]"}],attrs:{size:"large",type:"email",placeholder:e.$t("user.register.email")||"Email"}},[r("a-icon",{style:{color:"rgba(0,0,0,.25)"},attrs:{slot:"prefix",type:"mail"},slot:"prefix"})],1)],1),r("a-form-item",[r("a-row",{attrs:{gutter:12}},[r("a-col",{attrs:{span:16}},[r("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["code",{rules:[{required:!0,message:e.$t("user.register.codeRequired")||"Please enter verification code"}],validateTrigger:"blur"}],expression:"[\n 'code',\n {\n rules: [{ required: true, message: $t('user.register.codeRequired') || 'Please enter verification code' }],\n validateTrigger: 'blur'\n }\n ]"}],attrs:{size:"large",placeholder:e.$t("user.register.verificationCode")||"Verification Code"}},[r("a-icon",{style:{color:"rgba(0,0,0,.25)"},attrs:{slot:"prefix",type:"safety-certificate"},slot:"prefix"})],1)],1),r("a-col",{attrs:{span:8}},[r("a-button",{attrs:{size:"large",block:"",loading:e.registerSendingCode,disabled:e.registerSendingCode||e.registerCountdown>0},on:{click:e.handleRegisterSendCode}},[e._v(" "+e._s(e.registerCountdown>0?"".concat(e.registerCountdown,"s"):e.$t("user.register.sendCode")||"Send")+" ")])],1)],1)],1),r("a-form-item",[r("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["username",{rules:[{required:!0,message:e.$t("user.register.usernameRequired")||"Please enter username"},{min:3,max:30,message:e.$t("user.register.usernameLength")||"Username must be 3-30 characters"},{pattern:/^[a-zA-Z][a-zA-Z0-9_]*$/,message:e.$t("user.register.usernamePattern")||"Start with letter, letters/numbers/underscore only"}],validateTrigger:"blur"}],expression:"[\n 'username',\n {\n rules: [\n { required: true, message: $t('user.register.usernameRequired') || 'Please enter username' },\n { min: 3, max: 30, message: $t('user.register.usernameLength') || 'Username must be 3-30 characters' },\n { pattern: /^[a-zA-Z][a-zA-Z0-9_]*$/, message: $t('user.register.usernamePattern') || 'Start with letter, letters/numbers/underscore only' }\n ],\n validateTrigger: 'blur'\n }\n ]"}],attrs:{size:"large",placeholder:e.$t("user.register.username")||"Username"}},[r("a-icon",{style:{color:"rgba(0,0,0,.25)"},attrs:{slot:"prefix",type:"user"},slot:"prefix"})],1)],1),r("a-form-item",[r("a-popover",{attrs:{placement:"rightTop",trigger:["focus"],visible:e.regPwdFocused&&!e.regPwdValid}},[r("template",{slot:"content"},[r("div",{staticClass:"password-requirements"},[r("div",{class:{valid:e.regHasMinLength}},[r("a-icon",{attrs:{type:e.regHasMinLength?"check-circle":"close-circle"}}),e._v(" "+e._s(e.$t("user.register.pwdMinLength")||"At least 8 characters")+" ")],1),r("div",{class:{valid:e.regHasUppercase}},[r("a-icon",{attrs:{type:e.regHasUppercase?"check-circle":"close-circle"}}),e._v(" "+e._s(e.$t("user.register.pwdUppercase")||"At least one uppercase letter")+" ")],1),r("div",{class:{valid:e.regHasLowercase}},[r("a-icon",{attrs:{type:e.regHasLowercase?"check-circle":"close-circle"}}),e._v(" "+e._s(e.$t("user.register.pwdLowercase")||"At least one lowercase letter")+" ")],1),r("div",{class:{valid:e.regHasNumber}},[r("a-icon",{attrs:{type:e.regHasNumber?"check-circle":"close-circle"}}),e._v(" "+e._s(e.$t("user.register.pwdNumber")||"At least one number")+" ")],1)])]),r("a-input-password",{directives:[{name:"decorator",rawName:"v-decorator",value:["password",{rules:[{required:!0,message:e.$t("user.register.passwordRequired")||"Please enter password"},{validator:e.validateRegPassword}],validateTrigger:"blur"}],expression:"[\n 'password',\n {\n rules: [\n { required: true, message: $t('user.register.passwordRequired') || 'Please enter password' },\n { validator: validateRegPassword }\n ],\n validateTrigger: 'blur'\n }\n ]"}],attrs:{size:"large",placeholder:e.$t("user.register.password")||"Password"},on:{focus:function(r){e.regPwdFocused=!0},blur:function(r){e.regPwdFocused=!1},change:e.checkRegPassword}},[r("a-icon",{style:{color:"rgba(0,0,0,.25)"},attrs:{slot:"prefix",type:"lock"},slot:"prefix"})],1)],2)],1),r("a-form-item",[r("a-input-password",{directives:[{name:"decorator",rawName:"v-decorator",value:["confirmPassword",{rules:[{required:!0,message:e.$t("user.register.confirmPasswordRequired")||"Please confirm password"},{validator:e.validateRegConfirmPassword}],validateTrigger:"blur"}],expression:"[\n 'confirmPassword',\n {\n rules: [\n { required: true, message: $t('user.register.confirmPasswordRequired') || 'Please confirm password' },\n { validator: validateRegConfirmPassword }\n ],\n validateTrigger: 'blur'\n }\n ]"}],attrs:{size:"large",placeholder:e.$t("user.register.confirmPassword")||"Confirm Password"}},[r("a-icon",{style:{color:"rgba(0,0,0,.25)"},attrs:{slot:"prefix",type:"lock"},slot:"prefix"})],1)],1),r("Turnstile",{ref:"registerTurnstile",attrs:{siteKey:e.securityConfig.turnstile_site_key,enabled:e.securityConfig.turnstile_enabled},on:{success:function(r){return e.registerTurnstileToken=r},error:function(){return e.registerTurnstileToken=null}}}),r("a-form-item",{staticStyle:{"margin-top":"24px"}},[r("a-button",{staticClass:"submit-button",attrs:{size:"large",type:"primary",htmlType:"submit",loading:e.registerLoading,disabled:e.registerLoading||e.securityConfig.turnstile_enabled&&!e.registerTurnstileToken,block:""}},[e._v(e._s(e.$t("user.register.submit")||"Create Account"))])],1)],1)],1):e._e()],1),r("div",{staticClass:"legal-wrap"},[r("div",{staticClass:"legal-header"},[r("div",{staticClass:"legal-title"},[e._v(e._s(e.$t("user.login.legal.title")))]),r("a",{staticClass:"legal-toggle",on:{click:function(r){e.showLegal=!e.showLegal}}},[e._v(" "+e._s(e.showLegal?e.$t("user.login.legal.collapse"):e.$t("user.login.legal.view"))+" ")])]),r("div",{directives:[{name:"show",rawName:"v-show",value:e.showLegal,expression:"showLegal"}],staticClass:"legal-content"},[e._v(" "+e._s(e.$t("user.login.legal.content"))+" ")]),r("div",{staticClass:"legal-agree"},[r("a-checkbox",{model:{value:e.legalAgreed,callback:function(r){e.legalAgreed=r},expression:"legalAgreed"}},[e._v(" "+e._s(e.$t("user.login.legal.agree"))+" ")]),e.legalError?r("div",{staticClass:"legal-error"},[e._v(e._s(e.$t("user.login.legal.required")))]):e._e()],1)])],1)]),r("a-modal",{attrs:{title:e.$t("user.resetPassword.title")||"Reset Password",footer:null,width:420,destroyOnClose:!0},on:{cancel:e.resetResetModal},model:{value:e.showResetModal,callback:function(r){e.showResetModal=r},expression:"showResetModal"}},[1===e.resetStep?r("a-form",{staticClass:"auth-form",attrs:{form:e.resetForm},on:{submit:e.handleResetVerify}},[e.resetError?r("a-alert",{staticStyle:{"margin-bottom":"24px"},attrs:{type:"error",showIcon:"",message:e.resetError}}):e._e(),r("a-form-item",[r("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["email",{rules:[{required:!0,message:e.$t("user.resetPassword.emailRequired")||"Please enter email"},{type:"email",message:e.$t("user.resetPassword.emailInvalid")||"Invalid email format"}],validateTrigger:"blur"}],expression:"[\n 'email',\n {\n rules: [\n { required: true, message: $t('user.resetPassword.emailRequired') || 'Please enter email' },\n { type: 'email', message: $t('user.resetPassword.emailInvalid') || 'Invalid email format' }\n ],\n validateTrigger: 'blur'\n }\n ]"}],attrs:{size:"large",type:"email",placeholder:e.$t("user.resetPassword.email")||"Email"}},[r("a-icon",{style:{color:"rgba(0,0,0,.25)"},attrs:{slot:"prefix",type:"mail"},slot:"prefix"})],1)],1),r("a-form-item",[r("a-row",{attrs:{gutter:12}},[r("a-col",{attrs:{span:16}},[r("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["code",{rules:[{required:!0,message:e.$t("user.resetPassword.codeRequired")||"Please enter verification code"}],validateTrigger:"blur"}],expression:"[\n 'code',\n {\n rules: [{ required: true, message: $t('user.resetPassword.codeRequired') || 'Please enter verification code' }],\n validateTrigger: 'blur'\n }\n ]"}],attrs:{size:"large",placeholder:e.$t("user.resetPassword.verificationCode")||"Verification Code"}},[r("a-icon",{style:{color:"rgba(0,0,0,.25)"},attrs:{slot:"prefix",type:"safety-certificate"},slot:"prefix"})],1)],1),r("a-col",{attrs:{span:8}},[r("a-button",{attrs:{size:"large",block:"",loading:e.resetSendingCode,disabled:e.resetSendingCode||e.resetCountdown>0},on:{click:e.handleResetSendCode}},[e._v(" "+e._s(e.resetCountdown>0?"".concat(e.resetCountdown,"s"):e.$t("user.resetPassword.sendCode")||"Send")+" ")])],1)],1)],1),r("Turnstile",{ref:"resetTurnstile",attrs:{siteKey:e.securityConfig.turnstile_site_key,enabled:e.securityConfig.turnstile_enabled},on:{success:function(r){return e.resetTurnstileToken=r},error:function(){return e.resetTurnstileToken=null}}}),r("a-form-item",{staticStyle:{"margin-top":"24px"}},[r("a-button",{staticClass:"submit-button",attrs:{size:"large",type:"primary",htmlType:"submit",disabled:e.securityConfig.turnstile_enabled&&!e.resetTurnstileToken,block:""}},[e._v(e._s(e.$t("user.resetPassword.next")||"Next"))])],1)],1):e._e(),2===e.resetStep?r("a-form",{staticClass:"auth-form",attrs:{form:e.resetPwdForm},on:{submit:e.handleResetPassword}},[e.resetError?r("a-alert",{staticStyle:{"margin-bottom":"24px"},attrs:{type:"error",showIcon:"",message:e.resetError}}):e._e(),r("div",{staticClass:"email-display"},[r("span",[e._v(e._s(e.$t("user.resetPassword.resettingFor")||"Resetting for")+":")]),r("strong",[e._v(e._s(e.resetEmail))])]),r("a-form-item",[r("a-popover",{attrs:{placement:"rightTop",trigger:["focus"],visible:e.resetPwdFocused&&!e.resetPwdValid}},[r("template",{slot:"content"},[r("div",{staticClass:"password-requirements"},[r("div",{class:{valid:e.resetHasMinLength}},[r("a-icon",{attrs:{type:e.resetHasMinLength?"check-circle":"close-circle"}}),e._v(" "+e._s(e.$t("user.register.pwdMinLength")||"At least 8 characters")+" ")],1),r("div",{class:{valid:e.resetHasUppercase}},[r("a-icon",{attrs:{type:e.resetHasUppercase?"check-circle":"close-circle"}}),e._v(" "+e._s(e.$t("user.register.pwdUppercase")||"At least one uppercase letter")+" ")],1),r("div",{class:{valid:e.resetHasLowercase}},[r("a-icon",{attrs:{type:e.resetHasLowercase?"check-circle":"close-circle"}}),e._v(" "+e._s(e.$t("user.register.pwdLowercase")||"At least one lowercase letter")+" ")],1),r("div",{class:{valid:e.resetHasNumber}},[r("a-icon",{attrs:{type:e.resetHasNumber?"check-circle":"close-circle"}}),e._v(" "+e._s(e.$t("user.register.pwdNumber")||"At least one number")+" ")],1)])]),r("a-input-password",{directives:[{name:"decorator",rawName:"v-decorator",value:["new_password",{rules:[{required:!0,message:e.$t("user.resetPassword.passwordRequired")||"Please enter new password"},{validator:e.validateResetPassword}],validateTrigger:"blur"}],expression:"[\n 'new_password',\n {\n rules: [\n { required: true, message: $t('user.resetPassword.passwordRequired') || 'Please enter new password' },\n { validator: validateResetPassword }\n ],\n validateTrigger: 'blur'\n }\n ]"}],attrs:{size:"large",placeholder:e.$t("user.resetPassword.newPassword")||"New Password"},on:{focus:function(r){e.resetPwdFocused=!0},blur:function(r){e.resetPwdFocused=!1},change:e.checkResetPassword}},[r("a-icon",{style:{color:"rgba(0,0,0,.25)"},attrs:{slot:"prefix",type:"lock"},slot:"prefix"})],1)],2)],1),r("a-form-item",[r("a-input-password",{directives:[{name:"decorator",rawName:"v-decorator",value:["confirm_password",{rules:[{required:!0,message:e.$t("user.resetPassword.confirmPasswordRequired")||"Please confirm password"},{validator:e.validateResetConfirmPassword}],validateTrigger:"blur"}],expression:"[\n 'confirm_password',\n {\n rules: [\n { required: true, message: $t('user.resetPassword.confirmPasswordRequired') || 'Please confirm password' },\n { validator: validateResetConfirmPassword }\n ],\n validateTrigger: 'blur'\n }\n ]"}],attrs:{size:"large",placeholder:e.$t("user.resetPassword.confirmPassword")||"Confirm Password"}},[r("a-icon",{style:{color:"rgba(0,0,0,.25)"},attrs:{slot:"prefix",type:"lock"},slot:"prefix"})],1)],1),r("a-form-item",{staticStyle:{"margin-top":"24px"}},[r("a-button",{staticClass:"submit-button",attrs:{size:"large",type:"primary",htmlType:"submit",loading:e.resetLoading,block:""}},[e._v(e._s(e.$t("user.resetPassword.submit")||"Reset Password"))])],1),r("div",{staticClass:"auth-links"},[r("a",{on:{click:function(r){e.resetStep=1}}},[r("a-icon",{attrs:{type:"arrow-left"}}),e._v(" "+e._s(e.$t("user.resetPassword.back")||"Back")+" ")],1)])],1):e._e(),3===e.resetStep?r("div",{staticClass:"success-panel"},[r("a-result",{attrs:{status:"success",title:e.$t("user.resetPassword.successTitle")||"Password Reset Successful","sub-title":e.$t("user.resetPassword.successSubtitle")||"You can now login with your new password"},scopedSlots:e._u([{key:"extra",fn:function(){return[r("a-button",{attrs:{type:"primary"},on:{click:function(r){e.showResetModal=!1,e.activeTab="login"}}},[e._v(" "+e._s(e.$t("user.resetPassword.goToLogin")||"Go to Login")+" ")])]},proxy:!0}],null,!1,1952454462)})],1):e._e()],1)],1)},i=[function(){var e=this,r=e._self._c;return r("div",{staticClass:"auth-intro"},[r("div",{staticClass:"desc"},[e._v("AI driven quantitative insights for global markets")])])}],o=t(68285),a=t(76959),n=t(17654),l=t(57888),u=(t(74423),t(95353)),c=t(61145),d=t(20024),g=function(){var e=this,r=e._self._c;return e.enabled?r("div",{staticClass:"turnstile-container"},[r("div",{ref:"turnstileRef",attrs:{id:e.containerId}}),e.error?r("div",{staticClass:"turnstile-error"},[e._v(" "+e._s(e.error)+" "),r("a",{on:{click:e.reset}},[e._v(e._s(e.$t("user.security.retry")||"Retry"))])]):e._e()]):e._e()},m=[],h=!1,p=!1,f=[];function w(){return new Promise(function(e,r){if(h)e();else if(f.push({resolve:e,reject:r}),!p){p=!0;var t=document.createElement("script");t.src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit",t.async=!0,t.defer=!0,t.onload=function(){h=!0,f.forEach(function(e){return e.resolve()}),f.length=0},t.onerror=function(){p=!1,f.forEach(function(e){return e.reject(new Error("Failed to load Turnstile script"))}),f.length=0},document.head.appendChild(t)}})}var v={name:"Turnstile",props:{siteKey:{type:String,default:""},enabled:{type:Boolean,default:!0},theme:{type:String,default:"auto"},size:{type:String,default:"normal"}},data:function(){return{widgetId:null,token:null,error:null,containerId:"turnstile-".concat(Date.now(),"-").concat(Math.random().toString(36).substr(2,9))}},mounted:function(){this.enabled&&this.siteKey&&this.initTurnstile()},beforeDestroy:function(){this.cleanup()},watch:{siteKey:function(e){e&&this.enabled&&this.initTurnstile()},enabled:function(e){e&&this.siteKey?this.initTurnstile():this.cleanup()}},methods:{initTurnstile:function(){var e=this;return(0,n.A)((0,a.A)().m(function r(){return(0,a.A)().w(function(r){while(1)switch(r.p=r.n){case 0:return r.p=0,r.n=1,w();case 1:e.renderWidget(),r.n=3;break;case 2:r.p=2,r.v,e.error="Failed to load verification";case 3:return r.a(2)}},r,null,[[0,2]])}))()},renderWidget:function(){var e=this;window.turnstile&&this.$refs.turnstileRef&&(this.cleanup(),this.widgetId=window.turnstile.render(this.$refs.turnstileRef,{sitekey:this.siteKey,theme:this.theme,size:this.size,callback:function(r){e.token=r,e.error=null,e.$emit("success",r)},"error-callback":function(){e.token=null,e.error="Verification failed",e.$emit("error")},"expired-callback":function(){e.token=null,e.$emit("expired")}}))},reset:function(){this.token=null,this.error=null,window.turnstile&&null!==this.widgetId?window.turnstile.reset(this.widgetId):this.renderWidget()},getToken:function(){return this.token},cleanup:function(){if(window.turnstile&&null!==this.widgetId){try{window.turnstile.remove(this.widgetId)}catch(e){}this.widgetId=null}}}},b=v,C=t(845),y=(0,C.A)(b,g,m,!1,null,"20437450",null),$=y.exports,_=t(74053),T=t.n(_),L=t(41802),k={name:"Login",components:{Turnstile:$},data:function(){return{activeTab:"login",showLegal:!1,legalAgreed:!0,legalError:!1,securityConfig:{turnstile_enabled:!1,turnstile_site_key:"",registration_enabled:!0,oauth_google_enabled:!1,oauth_github_enabled:!1},oauthProcessing:!1,oauthError:null,referralCode:"",loginMethod:"password",loginForm:this.$form.createForm(this,{name:"loginForm"}),loginError:"",loginLoading:!1,loginTurnstileToken:null,codeLoginForm:this.$form.createForm(this,{name:"codeLoginForm"}),codeLoginError:"",codeLoginLoading:!1,codeLoginTurnstileToken:null,codeLoginSendingCode:!1,codeLoginCountdown:0,codeLoginCountdownTimer:null,registerForm:this.$form.createForm(this,{name:"registerForm"}),registerError:"",registerLoading:!1,registerTurnstileToken:null,registerSendingCode:!1,registerCountdown:0,registerCountdownTimer:null,regPwdFocused:!1,regHasMinLength:!1,regHasUppercase:!1,regHasLowercase:!1,regHasNumber:!1,showResetModal:!1,resetStep:1,resetForm:this.$form.createForm(this,{name:"resetForm"}),resetPwdForm:this.$form.createForm(this,{name:"resetPwdForm"}),resetError:"",resetLoading:!1,resetTurnstileToken:null,resetSendingCode:!1,resetCountdown:0,resetCountdownTimer:null,resetEmail:"",resetCode:"",resetPwdFocused:!1,resetHasMinLength:!1,resetHasUppercase:!1,resetHasLowercase:!1,resetHasNumber:!1}},computed:{hasOAuth:function(){return this.securityConfig.oauth_google_enabled||this.securityConfig.oauth_github_enabled},regPwdValid:function(){return this.regHasMinLength&&this.regHasUppercase&&this.regHasLowercase&&this.regHasNumber},resetPwdValid:function(){return this.resetHasMinLength&&this.resetHasUppercase&&this.resetHasLowercase&&this.resetHasNumber}},created:function(){var e=this;this.loadSecurityConfig(),this.handleOAuthCallback(),this.$nextTick(function(){e.extractReferralCode()})},watch:{"$route.query":function(){this.extractReferralCode()}},beforeDestroy:function(){this.codeLoginCountdownTimer&&clearInterval(this.codeLoginCountdownTimer),this.registerCountdownTimer&&clearInterval(this.registerCountdownTimer),this.resetCountdownTimer&&clearInterval(this.resetCountdownTimer)},methods:(0,l.A)((0,l.A)({},(0,u.i0)(["Login","Logout"])),{},{loadSecurityConfig:function(){var e=this;return(0,n.A)((0,a.A)().m(function r(){var t;return(0,a.A)().w(function(r){while(1)switch(r.p=r.n){case 0:return r.p=0,r.n=1,(0,d.getSecurityConfig)();case 1:t=r.v,1===t.code&&t.data&&(e.securityConfig=(0,l.A)((0,l.A)({},e.securityConfig),t.data)),r.n=3;break;case 2:r.p=2,r.v;case 3:return r.a(2)}},r,null,[[0,2]])}))()},extractReferralCode:function(){var e=new URLSearchParams(window.location.search),r=new URLSearchParams;if(window.location.hash){var t=window.location.hash.split("?");t.length>1&&(r=new URLSearchParams(t[1]))}var s=this.$route.query.ref||this.$route.query.referral_code;this.referralCode=s||e.get("ref")||e.get("referral_code")||r.get("ref")||r.get("referral_code")||"",this.referralCode&&this.securityConfig.registration_enabled&&(this.activeTab="register")},handleOAuthCallback:function(){var e=this,r=new URLSearchParams(window.location.search),t=new URLSearchParams(window.location.hash.split("?")[1]||""),s=r.get("oauth_token")||t.get("oauth_token"),i=r.get("oauth_error")||t.get("oauth_error");if(i)return this.oauthError=this.$t("user.oauth.error.".concat(i))||"OAuth error: ".concat(i),void window.history.replaceState({},document.title,window.location.pathname+window.location.hash.split("?")[0]);s&&(this.oauthProcessing=!0,T().set(L.Xh,s,(new Date).getTime()+6048e5),window.history.replaceState({},document.title,window.location.pathname+window.location.hash.split("?")[0]),this.$store.dispatch("GetInfo").then(function(){e.$router.push({path:"/"}),e.$notification.success({message:"Welcome",description:"".concat((0,c.Z$)(),", welcome back.")})}).catch(function(r){e.oauthProcessing=!1,e.oauthError="Failed to get user info",T().remove(L.Xh)}))},handleLogin:function(e){var r=this;e.preventDefault(),this.legalError=!1,this.legalAgreed?this.loginForm.validateFields(["username","password"],function(e,t){e||(r.loginLoading=!0,r.loginError="",r.Login((0,l.A)((0,l.A)({},t),{},{turnstile_token:r.loginTurnstileToken})).then(function(){r.$router.push({path:"/"}),r.$notification.success({message:"Welcome",description:"".concat((0,c.Z$)(),", welcome back.")})}).catch(function(e){var t=e.response||{},s=t.data||{};r.loginError=s.msg||e.message||"Login failed",r.$refs.loginTurnstile&&r.$refs.loginTurnstile.reset(),r.loginTurnstileToken=null}).finally(function(){r.loginLoading=!1}))}):this.legalError=!0},handleCodeLoginSendCode:function(){var e=this;return(0,n.A)((0,a.A)().m(function r(){return(0,a.A)().w(function(r){while(1)switch(r.n){case 0:e.codeLoginForm.validateFields(["email"],function(){var r=(0,n.A)((0,a.A)().m(function r(t,s){var i,o,n;return(0,a.A)().w(function(r){while(1)switch(r.p=r.n){case 0:if(!t){r.n=1;break}return r.a(2);case 1:return e.codeLoginSendingCode=!0,e.codeLoginError="",r.p=2,r.n=3,(0,d.sendVerificationCode)({email:s.email,type:"login",turnstile_token:e.codeLoginTurnstileToken});case 3:i=r.v,1===i.code?(e.$message.success(e.$t("user.login.codeSent")||"Verification code sent"),e.startCodeLoginCountdown()):e.codeLoginError=i.msg||"Failed to send code",r.n=5;break;case 4:r.p=4,n=r.v,e.codeLoginError=(null===(o=n.response)||void 0===o||null===(o=o.data)||void 0===o?void 0:o.msg)||"Failed to send code";case 5:return r.p=5,e.codeLoginSendingCode=!1,r.f(5);case 6:return r.a(2)}},r,null,[[2,4,5,6]])}));return function(e,t){return r.apply(this,arguments)}}());case 1:return r.a(2)}},r)}))()},startCodeLoginCountdown:function(){var e=this;this.codeLoginCountdown=60,this.codeLoginCountdownTimer=setInterval(function(){e.codeLoginCountdown--,e.codeLoginCountdown<=0&&(clearInterval(e.codeLoginCountdownTimer),e.codeLoginCountdownTimer=null)},1e3)},handleCodeLogin:function(e){var r=this;e.preventDefault(),this.legalError=!1,this.legalAgreed?this.codeLoginForm.validateFields(function(){var e=(0,n.A)((0,a.A)().m(function e(t,s){var i,n,u,g,m,h,p,f,w,v;return(0,a.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(!t){e.n=1;break}return e.a(2);case 1:return r.codeLoginLoading=!0,r.codeLoginError="",e.p=2,e.n=3,(0,d.loginWithCode)({email:s.email,code:s.code,turnstile_token:r.codeLoginTurnstileToken,referral_code:r.referralCode});case 3:if(n=e.v,1!==n.code||null===(i=n.data)||void 0===i||!i.token){e.n=6;break}return u=(new Date).getTime()+6048e5,T().set(L.Xh,n.data.token,u),r.$store.commit("SET_TOKEN",n.data.token),n.data.userinfo&&(g=(0,l.A)({},n.data.userinfo),"undefined"===typeof g.is_demo&&(g.is_demo=!1),T().set(L.nc,g,u),r.$store.commit("SET_INFO",g),g.nickname?r.$store.commit("SET_NAME",{name:g.nickname,welcome:(0,c.Z$)()}):g.username&&r.$store.commit("SET_NAME",{name:g.username,welcome:(0,c.Z$)()}),g.avatar&&r.$store.commit("SET_AVATAR",g.avatar),m=[],m=g.role?Array.isArray(g.role)?g.role:"object"===(0,o.A)(g.role)?[g.role]:[{id:g.role,permissionList:[]}]:[{id:"default",permissionList:[]}],r.$store.commit("SET_ROLES",m),T().set(L.iK,m,u)),e.n=4,r.$nextTick();case 4:return T().get(L.Xh),h=r.$store.getters.roles,0===h.length&&(p=[{id:"default",permissionList:[]}],r.$store.commit("SET_ROLES",p),T().set(L.iK,p,u)),e.n=5,new Promise(function(e){return setTimeout(e,200)});case 5:r.$store.dispatch("ResetRoutes"),f=n.data.is_new_user,r.$router.push({path:"/"}).then(function(){r.$notification.success({message:f?r.$t("user.login.welcomeNew")||"Welcome!":"Welcome",description:f?r.$t("user.login.accountCreated")||"Your account has been created.":"".concat((0,c.Z$)(),", welcome back.")})}).catch(function(e){r.$notification.success({message:f?r.$t("user.login.welcomeNew")||"Welcome!":"Welcome",description:f?r.$t("user.login.accountCreated")||"Your account has been created.":"".concat((0,c.Z$)(),", welcome back.")})}),e.n=7;break;case 6:r.codeLoginError=n.msg||"Login failed",r.$refs.codeLoginTurnstile&&r.$refs.codeLoginTurnstile.reset(),r.codeLoginTurnstileToken=null;case 7:e.n=9;break;case 8:e.p=8,v=e.v,r.codeLoginError=(null===(w=v.response)||void 0===w||null===(w=w.data)||void 0===w?void 0:w.msg)||"Login failed",r.$refs.codeLoginTurnstile&&r.$refs.codeLoginTurnstile.reset(),r.codeLoginTurnstileToken=null;case 9:return e.p=9,r.codeLoginLoading=!1,e.f(9);case 10:return e.a(2)}},e,null,[[2,8,9,10]])}));return function(r,t){return e.apply(this,arguments)}}()):this.legalError=!0},checkRegPassword:function(e){var r=e.target.value||"";this.regHasMinLength=r.length>=8,this.regHasUppercase=/[A-Z]/.test(r),this.regHasLowercase=/[a-z]/.test(r),this.regHasNumber=/[0-9]/.test(r)},validateRegPassword:function(e,r,t){r?r.length<8?t(new Error(this.$t("user.register.pwdMinLength")||"At least 8 characters")):/[A-Z]/.test(r)?/[a-z]/.test(r)?/[0-9]/.test(r)?t():t(new Error(this.$t("user.register.pwdNumber")||"At least one number")):t(new Error(this.$t("user.register.pwdLowercase")||"At least one lowercase letter")):t(new Error(this.$t("user.register.pwdUppercase")||"At least one uppercase letter")):t()},validateRegConfirmPassword:function(e,r,t){var s=this.registerForm.getFieldValue("password");r&&r!==s?t(new Error(this.$t("user.register.passwordMismatch")||"Passwords do not match")):t()},handleRegisterSendCode:function(){var e=this;return(0,n.A)((0,a.A)().m(function r(){return(0,a.A)().w(function(r){while(1)switch(r.n){case 0:e.registerForm.validateFields(["email"],function(){var r=(0,n.A)((0,a.A)().m(function r(t,s){var i,o,n;return(0,a.A)().w(function(r){while(1)switch(r.p=r.n){case 0:if(!t){r.n=1;break}return r.a(2);case 1:return e.registerSendingCode=!0,e.registerError="",r.p=2,r.n=3,(0,d.sendVerificationCode)({email:s.email,type:"register",turnstile_token:e.registerTurnstileToken});case 3:i=r.v,1===i.code?(e.$message.success(e.$t("user.register.codeSent")||"Verification code sent"),e.startRegisterCountdown()):e.registerError=i.msg||"Failed to send code",r.n=5;break;case 4:r.p=4,n=r.v,e.registerError=(null===(o=n.response)||void 0===o||null===(o=o.data)||void 0===o?void 0:o.msg)||"Failed to send code";case 5:return r.p=5,e.registerSendingCode=!1,r.f(5);case 6:return r.a(2)}},r,null,[[2,4,5,6]])}));return function(e,t){return r.apply(this,arguments)}}());case 1:return r.a(2)}},r)}))()},startRegisterCountdown:function(){var e=this;this.registerCountdown=60,this.registerCountdownTimer=setInterval(function(){e.registerCountdown--,e.registerCountdown<=0&&(clearInterval(e.registerCountdownTimer),e.registerCountdownTimer=null)},1e3)},handleRegister:function(e){var r=this;e.preventDefault(),this.legalError=!1,this.legalAgreed?this.registerForm.validateFields(function(){var e=(0,n.A)((0,a.A)().m(function e(t,s){var i,n,u,g,m,h,p,f,w;return(0,a.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(!t){e.n=1;break}return e.a(2);case 1:return r.registerLoading=!0,r.registerError="",e.p=2,e.n=3,(0,d.register)({email:s.email,code:s.code,username:s.username,password:s.password,turnstile_token:r.registerTurnstileToken,referral_code:r.referralCode});case 3:if(i=e.v,1!==i.code){e.n=8;break}if(r.$message.success(r.$t("user.register.success")||"Registration successful"),null===(n=i.data)||void 0===n||!n.token){e.n=6;break}return u=(new Date).getTime()+6048e5,T().set(L.Xh,i.data.token,u),r.$store.commit("SET_TOKEN",i.data.token),i.data.userinfo&&(g=(0,l.A)({},i.data.userinfo),"undefined"===typeof g.is_demo&&(g.is_demo=!1),T().set(L.nc,g,u),r.$store.commit("SET_INFO",g),g.nickname?r.$store.commit("SET_NAME",{name:g.nickname,welcome:(0,c.Z$)()}):g.username&&r.$store.commit("SET_NAME",{name:g.username,welcome:(0,c.Z$)()}),g.avatar&&r.$store.commit("SET_AVATAR",g.avatar),m=[],m=g.role?Array.isArray(g.role)?g.role:"object"===(0,o.A)(g.role)?[g.role]:[{id:g.role,permissionList:[]}]:[{id:"default",permissionList:[]}],r.$store.commit("SET_ROLES",m),T().set(L.iK,m,u)),e.n=4,r.$nextTick();case 4:return T().get(L.Xh),h=r.$store.getters.roles,0===h.length&&(p=[{id:"default",permissionList:[]}],r.$store.commit("SET_ROLES",p),T().set(L.iK,p,u)),e.n=5,new Promise(function(e){return setTimeout(e,200)});case 5:r.$store.dispatch("ResetRoutes"),r.$router.push({path:"/"}).then(function(){r.$notification.success({message:"Welcome",description:"".concat((0,c.Z$)(),", welcome to QuantDinger!")})}).catch(function(e){r.$notification.success({message:"Welcome",description:"".concat((0,c.Z$)(),", welcome to QuantDinger!")})}),e.n=7;break;case 6:r.activeTab="login",r.$message.info(r.$t("user.register.pleaseLogin")||"Please login with your new account");case 7:e.n=9;break;case 8:r.registerError=i.msg||"Registration failed",r.$refs.registerTurnstile&&r.$refs.registerTurnstile.reset(),r.registerTurnstileToken=null;case 9:e.n=11;break;case 10:e.p=10,w=e.v,r.registerError=(null===(f=w.response)||void 0===f||null===(f=f.data)||void 0===f?void 0:f.msg)||"Registration failed",r.$refs.registerTurnstile&&r.$refs.registerTurnstile.reset(),r.registerTurnstileToken=null;case 11:return e.p=11,r.registerLoading=!1,e.f(11);case 12:return e.a(2)}},e,null,[[2,10,11,12]])}));return function(r,t){return e.apply(this,arguments)}}()):this.legalError=!0},resetResetModal:function(){this.resetStep=1,this.resetError="",this.resetEmail="",this.resetCode="",this.resetCountdown=0,this.resetCountdownTimer&&(clearInterval(this.resetCountdownTimer),this.resetCountdownTimer=null)},handleResetSendCode:function(){var e=this;return(0,n.A)((0,a.A)().m(function r(){return(0,a.A)().w(function(r){while(1)switch(r.n){case 0:e.resetForm.validateFields(["email"],function(){var r=(0,n.A)((0,a.A)().m(function r(t,s){var i,o,n;return(0,a.A)().w(function(r){while(1)switch(r.p=r.n){case 0:if(!t){r.n=1;break}return r.a(2);case 1:return e.resetSendingCode=!0,e.resetError="",r.p=2,r.n=3,(0,d.sendVerificationCode)({email:s.email,type:"reset_password",turnstile_token:e.resetTurnstileToken});case 3:i=r.v,1===i.code?(e.$message.success(e.$t("user.resetPassword.codeSent")||"Verification code sent"),e.startResetCountdown()):e.resetError=i.msg||"Failed to send code",r.n=5;break;case 4:r.p=4,n=r.v,e.resetError=(null===(o=n.response)||void 0===o||null===(o=o.data)||void 0===o?void 0:o.msg)||"Failed to send code";case 5:return r.p=5,e.resetSendingCode=!1,r.f(5);case 6:return r.a(2)}},r,null,[[2,4,5,6]])}));return function(e,t){return r.apply(this,arguments)}}());case 1:return r.a(2)}},r)}))()},startResetCountdown:function(){var e=this;this.resetCountdown=60,this.resetCountdownTimer=setInterval(function(){e.resetCountdown--,e.resetCountdown<=0&&(clearInterval(e.resetCountdownTimer),e.resetCountdownTimer=null)},1e3)},handleResetVerify:function(e){var r=this;e.preventDefault(),this.resetError="",this.resetForm.validateFields(function(e,t){e||(r.resetEmail=t.email,r.resetCode=t.code,r.resetStep=2)})},checkResetPassword:function(e){var r=e.target.value||"";this.resetHasMinLength=r.length>=8,this.resetHasUppercase=/[A-Z]/.test(r),this.resetHasLowercase=/[a-z]/.test(r),this.resetHasNumber=/[0-9]/.test(r)},validateResetPassword:function(e,r,t){r?r.length<8?t(new Error(this.$t("user.register.pwdMinLength")||"At least 8 characters")):/[A-Z]/.test(r)?/[a-z]/.test(r)?/[0-9]/.test(r)?t():t(new Error(this.$t("user.register.pwdNumber")||"At least one number")):t(new Error(this.$t("user.register.pwdLowercase")||"At least one lowercase letter")):t(new Error(this.$t("user.register.pwdUppercase")||"At least one uppercase letter")):t()},validateResetConfirmPassword:function(e,r,t){var s=this.resetPwdForm.getFieldValue("new_password");r&&r!==s?t(new Error(this.$t("user.register.passwordMismatch")||"Passwords do not match")):t()},handleResetPassword:function(e){var r=this;return(0,n.A)((0,a.A)().m(function t(){return(0,a.A)().w(function(t){while(1)switch(t.n){case 0:e.preventDefault(),r.resetError="",r.resetPwdForm.validateFields(function(){var e=(0,n.A)((0,a.A)().m(function e(t,s){var i,o,n,l,u;return(0,a.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(!t){e.n=1;break}return e.a(2);case 1:return r.resetLoading=!0,e.p=2,e.n=3,(0,d.resetPassword)({email:r.resetEmail,code:r.resetCode,new_password:s.new_password,turnstile_token:r.resetTurnstileToken});case 3:i=e.v,1===i.code?r.resetStep=3:(r.resetError=i.msg||"Failed to reset password",(null!==(o=i.msg)&&void 0!==o&&o.includes("code")||null!==(n=i.msg)&&void 0!==n&&n.includes("expired"))&&(r.resetStep=1)),e.n=5;break;case 4:e.p=4,u=e.v,r.resetError=(null===(l=u.response)||void 0===l||null===(l=l.data)||void 0===l?void 0:l.msg)||"Failed to reset password";case 5:return e.p=5,r.resetLoading=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(r,t){return e.apply(this,arguments)}}());case 1:return t.a(2)}},t)}))()},handleGoogleLogin:function(){window.location.href=(0,d.getGoogleOAuthUrl)()},handleGitHubLogin:function(){window.location.href=(0,d.getGitHubOAuthUrl)()}})},P=k,A=(0,C.A)(P,s,i,!1,null,"de9678f6",null),E=A.exports},20024:function(e,r,t){t.r(r),t.d(r,{changePassword:function(){return m},getGitHubOAuthUrl:function(){return p},getGoogleOAuthUrl:function(){return h},getSecurityConfig:function(){return o},getUserInfo:function(){return l},login:function(){return a},loginWithCode:function(){return c},logout:function(){return n},register:function(){return d},resetPassword:function(){return g},sendVerificationCode:function(){return u}});var s=t(76471);function i(e){var r="/api".trim(),t=e.startsWith("/")?e:"/".concat(e);if(!r)return t;var s=r.replace(/\/+$/,"");return s.endsWith("/api")&&t.startsWith("/api/")?s+t.slice(4):s+t}function o(){return(0,s.Ay)({url:"/api/auth/security-config",method:"get"})}function a(e){return(0,s.Ay)({url:"/api/auth/login",method:"post",data:e})}function n(){return(0,s.Ay)({url:"/api/auth/logout",method:"post"})}function l(){return(0,s.Ay)({url:"/api/auth/info",method:"get"})}function u(e){return(0,s.Ay)({url:"/api/auth/send-code",method:"post",data:e})}function c(e){return(0,s.Ay)({url:"/api/auth/login-code",method:"post",data:e})}function d(e){return(0,s.Ay)({url:"/api/auth/register",method:"post",data:e})}function g(e){return(0,s.Ay)({url:"/api/auth/reset-password",method:"post",data:e})}function m(e){return(0,s.Ay)({url:"/api/auth/change-password",method:"post",data:e})}function h(){return i("/api/auth/oauth/google")}function p(){return i("/api/auth/oauth/github")}}}]); |