1import{inject as be,watch as x,toValue as I,ref as Q,toRaw as ve,toRef as nt,computed as q,onMounted as rt,onBeforeUnmount as at,readonly as st,h as ct}from"vue";import{R as Ie,a as it,u as lt}from"./use-recaptcha-C1-k4II9.js";import{w as de,q as pe,B as R,aZ as he,c8 as ut,c6 as dt,aw as pt,bc as ht,K as Y,af as Te,aW as mt,aN as ft,$ as gt,aq as ne,c7 as Pe,aI as G,aA as vt,bs as wt,a0 as yt,a as _t}from"./logger-B4OCWT-4.js";import{g as Et}from"./test-manager-DesYLJOQ.js";import{u as re}from"./useMutation-Bolfuold.js";import{S as A,u as Ue,f as ce,c as Ne}from"./use-fingerprint-BKylMFtN.js";import{f as we,r as Le}from"./plugin-feature-flags-D9VJsscs.js";import{s as ie}from"./set-window-href-DCDtUMZ_.js";import{u as St}from"./use-i18n-DpxCvEqH.js";import{A as T}from"./index-vSUUMbpI.js";const Rt=(e,t)=>Math.floor(Math.random()*(t-e+1))+e,S={BASE:"GeeTestError",CLOSED_BY_USER:"ClosedByUserError",UNKNOWN:"UnknownError",SCRIPT_LOADING_FAILED:"ScriptLoadingFailedError",INVALID_ENVIRONMENT:"InvalidEnvironmentError",CAPTCHA_ID_NOT_FOUND:"CaptchaIdNotFoundError"};class J extends Error{constructor(t){super(t),this.name=S.BASE}}class De extends J{constructor(){super("GeeTest widget was closed by the user"),this.name=S.CLOSED_BY_USER}}class ae extends J{constructor(){super("An unknown error has occurred while using the GeeTest client"),this.name=S.UNKNOWN}}class Fe extends J{constructor(){super("Unable to load GeeTest script"),this.name=S.SCRIPT_LOADING_FAILED}}class Ct extends J{constructor(){super("GeeTest client API can only work in a browser environment"),this.name=S.INVALID_ENVIRONMENT}}class At extends J{constructor(t){super(`Captcha ID not found for type: ${t}`),this.name=S.CAPTCHA_ID_NOT_FOUND}}const Ot="/resources/v1/app/assets/gt-4.1.8-LQgl4DzC.js";let te;const bt=()=>(te||(te=new Promise((e,t)=>{const o=document.createElement("script");o.src=Ot,o.addEventListener("load",()=>{e()}),o.addEventListener("error",()=>{te=void 0,t(new Fe)}),document.body.append(o)})),te),ke=Symbol("geeTestCaptcha"),It={"en-001":"eng","en-US":"eng","ru-RU":"rus","ar-EG":"ara","es-CL":"spa","es-CO":"spa","es-ES":"spa","es-MX":"spa","de-DE":"deu","fr-CI":"fra","fr-FR":"fra","ja-JP":"jpn","ko-KR":"kor","pt-BR":"por","id-ID":"ind","ur-PK":"urd"},Me=e=>It[e.toString()],B=new Map,ye=(e,t)=>{const o=t?e?.[t]??e?.default:e?.default;if(!o)throw new At(t);return o},Tt=async({locale:e,analytics:t},o,n)=>{if(typeof window>"u")throw t?.onInvalidEnvironment?.(),new Ct;return new Promise((r,a)=>{window.initGeetest4({captchaId:o,product:"bind",timeout:3e4,...e?{language:Me(I(e))}:{},onError:()=>{t?.onError?.(),a(new ae),n()?.reject(new ae)}},l=>{l.onReady(()=>{t?.onReady?.()}),l.onSuccess(()=>{t?.onSuccess?.(),n()?.resolve(l.getValidate())}),l.onClose(()=>{t?.onClose?.(),n()?.reject(new De)}),l.onError(()=>{t?.onError?.(),n()?.reject(new ae)}),l.onFail?.(()=>{t?.onFail?.()}),"onBoxShow"in l&&typeof l.onBoxShow=="function"&&l.onBoxShow(()=>{t?.onBoxShow?.()}),r(l)})})},Pt=(e,t)=>{let o;const n=()=>{const p=o;return o=void 0,p},r=bt().catch(()=>{throw e.analytics?.onScriptLoadFailed?.(),new Fe}).then(()=>Tt(e,t,n));return{instance:r,show:async()=>{const p=await r;if(o)return o.promise;let f,w;const y=new Promise((g,d)=>{f=g,w=d});return o={promise:y,resolve:f,reject:w},p.onReady(()=>{}),p.showCaptcha(),y},cancelPendingShow:()=>{n()?.reject(new De)}}},_e=(e,t)=>{let o=B.get(t);if(!o){const n=Pt(e,t);B.set(t,n),n.instance.catch(()=>{B.get(t)===n&&B.delete(t)}),o=n}return o},Ut=()=>{for(const e of B.values())e.cancelPendingShow(),e.instance.then(t=>{t.destroy()}).catch(()=>{});B.clear()},Nt=e=>{const{locale:t}=e;return t&&x(()=>Me(I(t)),Ut),{getGeeTestCaptcha:async r=>_e(e,ye(e.captchaIds,r)).show(),preloadGeeTestCaptcha:async r=>{await _e(e,ye(e.captchaIds,r)).instance}}},_n={install:(e,t)=>{e.provide(ke,Nt(t))}},Lt=()=>{const e=be(ke);if(!e)throw new Error("It appears the GeeTestCaptchaPlugin is missing. Make sure to install it.");return e},Dt="captcha",Ft=de.extend({stream:pe,category:Dt}),$e=3e4,kt="unknown",Mt="default",$t="yes",Bt="Other",Gt=new Set([...Object.values(Ie),...Object.values(S)]),Kt=(e,t)=>
1Ft.extend({type:e,component:t}),Vt=e=>({service:e.service??"recaptcha",source:e.service?"explicit":"implicit"}),Ht=(e,t)=>{const{service:o,source:n}=Vt(e),r=t??kt;return{service:o,source:n,formId:r,captchaType:e.type??Mt,enabledMode:e.enabled??$t,logger:Kt(o,r)}},jt=e=>{const t=e instanceof Error?e.name:"";return Gt.has(t)?t:Bt},Be=e=>e instanceof Error?e.message:String(e),Wt=e=>e instanceof Error?e:void 0,xt=new Set([S.CLOSED_BY_USER,S.UNKNOWN,S.SCRIPT_LOADING_FAILED,Ie[it.EXPIRED_TOKEN]]),Ge=e=>{const t=Wt(e);return t&&xt.has(t.name)?void 0:t},X=e=>[e.source,e.enabledMode,e.captchaType],Ke=(e,t)=>[e.source,e.enabledMode,jt(t)],Qt=e=>{e.logger.info({name:"captcha_init",params:X(e)})},Ee=(e,t)=>{e.logger.warn({name:"captcha_init_failure",params:Ke(e,t),message:Be(t),error:Ge(t)})},qt=(e,t)=>{e.logger.info({name:"captcha_challenge",params:[...X(e),t]})},zt=(e,t,o)=>{e.logger.info({name:"captcha_success",params:[...X(e),t,Math.round(o)]})},Yt=(e,t,o,n)=>{e.logger.warn({name:"captcha_failure",params:[...Ke(e,n),t,Math.round(o)],message:Be(n),error:Ge(n)})},Jt=(e,t)=>{e.logger.warn({name:"captcha_pending",params:[...X(e),t,$e]})},Xt=(e,t,o)=>{e.logger.info({name:"captcha_abandoned",params:[...X(e),t,Math.round(o)]})},Zt=async(e,t,o)=>{if(o?.aborted)return e;const n=setTimeout(t,$e);o?.addEventListener("abort",()=>{clearTimeout(n)},{once:!0});try{return await e}finally{clearTimeout(n)}},eo=["inputValue"],Se=e=>{if(typeof e.isUserInputEmpty=="boolean")return e.isUserInputEmpty;const t=e.inputValue;return t==null||t===""},to=e=>{const t=new Map;for(const o of e){const n=o.validators?.find(r=>r.type==="anyOf");n&&t.set(n.fields.join("|"),n.fields)}return[...t.values()]},oo=e=>{for(const t of to(e)){const o=e.filter(r=>t.includes(r.id)),n=o.some(r=>!Se(r));for(const r of o)r.isValidationSkipped=n&&Se(r)}},no=({adapters:e,formOptions:t,getCaptchaEnabled:o,onEvent:n,onError:r,onSubmit:a,preserveState:l=!1,preserveFields:p=eo,onFormOptionsChange:f})=>{const w=new Set(p),{getRecaptcha:y,resetRecaptcha:g,initRecaptcha:d}=lt(),{getGeeTestCaptcha:h,preloadGeeTestCaptcha:V}=Lt(),c=Q(structuredClone(ve(I(t)))),L=nt(()=>I(t).captcha),P=s=>Ht(s,c.value.testId),H=async s=>s.enabled!=="questionable"?!0:s.route?o({route:s.route}):!1;let U;const D=()=>(U??=(async()=>{const s=L.value;if(s){try{if(!await H(s))return}catch(i){throw U=void 0,Ee(P(s),i),i}return s}})(),U),O=q(()=>Object.values(c.value.blocks).find(s=>s.type==="submit"));x(()=>I(t),s=>{const i=structuredClone(ve(s));if(!I(l)){c.value=i,f?.();return}c.value={...i,blocks:i.blocks.map(u=>{const m=c.value.blocks.find(E=>E.id===u.id);if(!m)return u;const $={};for(const E of w)E in m&&m[E]!==void 0&&($[E]=m[E]);return{...u,...$}})},f?.()});const N=q(()=>(oo(c.value.blocks),c.value.blocks.map(s=>e[s.type]({block:s,gridArea:c.value.template?s.id:void 0,testId:Et(s.id,c.value.testId),onEvent:n})))),_=q(()=>Object.values(c.value.blocks).some(s=>!!s.errors?.length)),F=(s,i)=>{const u=c.value.blocks.find(m=>m.id===s);return u?(Object.assign(u,i),!0):!1},k=(s,i)=>{const u=c.value.blocks.find(m=>m.id===s);return u&&i in u?u[i]:void 0},M=Q(0);x(()=>c.value.testId,()=>{M.value=0});let C;const b=async s=>{const i=await D();if(!i)return;const u=P(i),m=M.value+=1,$=performance.now(),E=new AbortController,ge=()=>{E.abort(),Xt(u,m,performance.now()-$)};C=ge,qt(u,m);try{const ee=u.service==="geetest"?h(i.type):y();s[i.fieldName]=await Zt(ee,()=>{Jt(u,m)},E.signal),E.signal.aborted||zt(u,m,performance.now()-$)}catch(ee){throw E.signal.aborted||Yt(u,m,performance.now()-$,ee),ee}finally{C===ge&&(C=void 0)}},v=Q(!1),Z=async()=>{if(!a||v.value)return;const s={};for(const i of Object.values(c.value.blocks))for(const[u,m]of Object.entries(i.fieldsMap||{}))i.isValidationSkipped&&m==="inputValue"||(s[u]=i[m]);try{if(_.value){const i=c.value.blocks.find(u=>!u.isTouched&&!!u.errors?.length);i&&(i.isTouched=!0);return}v.value=!0,await b(s),await a(s)}catch(i){r?.(i)}finally{v.value=!1}};x(v,()=>{O.value&&(O.value.pending=v.value)}),x(_,()=>{O.value&&I(t).lockSubmitOnError&&(O.value.disabled=_.value)});const fe=()=>{v.value&&(C?.(),C=void 0,g(),v.value=!1,Z())};return rt(async()=>{window.addEventListener("orientationchange",fe);let s;try{s=await D()}catch{return}if(!s)return;const i=P(s);Qt(i);try{await(i.service==="geetest"?V(s.type):d())}catch(u){Ee(i,u),console.warn(`[FormBuilder] Failed to initialize ${i.service} captcha:`,u)}}),at(()=>{window.removeEventListener("orientationchange",fe)}),{fields:N,submit:Z,isPending:st(v),hasError:_,setFormState:F,getFormState:k,gridTemplate:I(c).template}}
1,Ve=Symbol("formBuilder"),ro=e=>e,En={install:(e,t)=>{e.provide(Ve,ro(t))}},Sn=e=>{const t=be(Ve);if(!t)throw new Error("It appears the FormBuilderPlugin is missing. Make sure to install it.");const{setFormState:o,fields:n,gridTemplate:r,getFormState:a,hasError:l,submit:p,isPending:f}=no({...e,adapters:t.formAdapters,getCaptchaEnabled:t.getCaptchaEnabled}),w=q(()=>ct(t.formComponent,{gridTemplate:r},()=>n.value));return{setFormState:o,form:w,getFormState:a,hasError:l,submit:p,isPending:f}},ao=/\/oauth\/(.*)/,so=e=>e.match(ao)?.[1]||void 0,co="user/socials-config",He="/USER-SERVICE-API/api-v3-oauth-config",me={authorization:"optional",tailoring:"none"},io=async(e,t,o,n)=>await R.fetch(e,He,"GET",{headers:R.headers(),query:t},o,n,he),lo=Y.for(me,A,co),uo={retry:!1},po=(e,t,o)=>{const n=pt(me,{...uo,...t},He);return ht({...n.options,queryKey:[...lo,{tag:e}],queryFn:r=>{const{tag:a}=r.queryKey[4];return io(n.resolveEntrypoint(o),n.resolveArguments(a?{tag:a}:{}),n.resolveFetchOptions(o,r),n.resolveFetchFn(o))}})},ho=(e,t,o)=>{const n=ut(me,t);return dt(po(e,n.options,o))};class je extends Error{constructor(t){super(t)}}const Rn=["cda_login_method","cda_social_method","cda_form_name","cda_login_domain"],mo=e=>{const t={cda_login_method:e.options.login_method,cda_social_method:e.options.social_method,cda_form_name:e.baseOptions.formName,cda_login_domain:window.location.host},o=Object.fromEntries(Object.entries(t).filter(([,n])=>ft(n)));for(const[n,r]of Object.entries(o))gt.set(n,r,{expires:365})},fo=Te(()=>{const e=Q({}),t=w=>{e.value=mt(w)},o=()=>{e.value={}},n=async w=>{if(mo(e.value),await window.cda.tryRedirect(w,e.value))throw new je("CDA redirect executes")};return{cdaLogin:()=>n("login"),cdaLogout:async()=>{await window.cda.tryRedirect("logout")},cdaPasswordRecovery:()=>n("passwordRecovery"),cdaRegister:()=>n("register"),setRedirectData:t,clearRedirectData:o,clearShortcuts:()=>{window.cda.clearShortcut()}}}),go=[/^\/betwave.*$/],We=Te(()=>{const e=Q(),t=a=>{e.value=typeof a=="string"?a:void 0},o=()=>{if(n())return e.value},n=()=>!!(e.value&&typeof e.value=="string"&&go.some(a=>a.test(e.value??"")));return{setStoredRedirect:t,getStoredRedirect:o,isAllowedUri:n,tryRedirect:()=>{if(!(!e.value||!n()))throw window.location.replace(e.value),e.value=void 0,new je("URI redirect executes")}}}),vo="user/oauth-prepare",wo="/USER-SERVICE-API/api-v3-user-new-prepare",xe={authorization:"optional",tailoring:"mandatory"},yo=async(e,t,o,n)=>await R.fetch(e,wo,"POST",{headers:R.headers(),body:t},o,n,he),_o=Y.for(xe,A,vo),Eo=(e,t)=>{const o=ne(xe,e);return re({mutationKey:_o,mutationFn:async n=>{const{locale:r,...a}=n;return await yo(o.resolveEntrypoint(t),{...a,lang:o.resolveLang(r),langBCP47:r?.baseName},o.resolveFetchOptions(t),o.resolveFetchFn(t))},scope:{id:A}})},So="user/oauth-social",Ro="/USER-SERVICE-API/api-v3-oauth-social",Qe={authorization:"optional",tailoring:"mandatory"},Co=(e=>Ue(e)),Ao=async(e,t,o,n)=>await R.fetch(e,Ro,"POST",{headers:R.headers(),body:t},o,n,Co),Oo=Y.for(Qe,A,So),bo=(e,t)=>{const o=Pe(),n=ne(Qe,e);return re({mutationKey:Oo,mutationFn:async r=>await Ao(n.resolveEntrypoint(t),r,n.resolveFetchOptions(t),n.resolveFetchFn(t)),onSuccess:async r=>{await o.cancelQueries({queryKey:ce}),o.setQueryData(ce,r)},scope:{id:A}})},Io="user/sign-in",To="/web/v1/auth/login",qe={authorization:"optional",tailoring:"none"},Po=(e=>Ue(e)),Uo=async(e,t,o,n)=>await R.fetch(e,To,"POST",{headers:R.headers(),body:t},o,n,Po),No=Y.for(qe,A,Io),Cn=(e,t)=>{const o=Pe(),n=ne(qe,e),{cdaLogin:r}=fo(),{tryRedirect:a}=We();return re({mutationKey:No,mutationFn:async l=>await Uo(n.resolveEntrypoint(t),l,n.resolveFetchOptions(t),n.resolveFetchFn(t)),onSuccess:async l=>{a(),await r(),o.setQueryData(ce,l)},scope:{id:A}})},Lo="user/send-fingerprint",Do="/USER/visitor-save",ze={authorization:"required",tailoring:"none"},Fo=async(e,t,o,n)=>await R.fetch(e,Do,"POST",{headers:R.headers(),body:t},o,n,he),ko=Y.for(ze,A,Lo),An=(e,t)=>{const o=ne(ze,e);return re({mutationKey:ko,mutationFn:async n=>Fo(o.resolveEntrypoint(t),n,o.resolveFetchOptions(t),o.resolveFetchFn(t)),scope:{id:A}})},K="oauth_csrf_pending",le="oauth_csrf_used",se="__oauth_csrf_probe__",Ye=1800*1e3,Mo=e=>!!e&&typeof e=="object"&&typeof e.s=="string"&&typeof e.t=="number",z=e=>{try{const t=localStorage.getItem(e);if(!t)return[];const o=JSON.parse(t);return Array.isArray(o)?o.filter(n=>Mo(n)):[]}catch{return[]}},$o=e=>{const t=Date.now()-Ye;return z(e).filter(o=>o.t>t)},ue=(e,t)=>
1{const o=Date.now()-Ye,n=t.filter(r=>r.t>o).slice(-20);try{localStorage.setItem(e,JSON.stringify(n))}catch{}},Re=e=>z(e).map(t=>t.s),Bo=()=>{try{localStorage.setItem(se,"1");const e=localStorage.getItem(se)==="1";return localStorage.removeItem(se),e}catch{return!1}},Go=e=>{const t=z(K).filter(o=>o.s!==e);t.push({s:e,t:Date.now()}),ue(K,t)},Ko=e=>e===void 0?"unknown":Re(K).includes(e)?"pending":Re(le).includes(e)?"used":"unknown",Vo=()=>$o(K).length>0,Ho=e=>{ue(K,z(K).filter(o=>o.s!==e));const t=z(le).filter(o=>o.s!==e);t.push({s:e,t:Date.now()}),ue(le,t)},Je=({protocol:e,isApk:t,isAuthDomain:o})=>e==="OAUTH2"&&!t&&!o,jo=e=>{if(!Je(e))return{action:"skip"};const{storageUsable:t,lookup:o,hadPending:n}=e;return t?o==="pending"?{action:"pass"}:o==="used"?{action:"skip-replay"}:{action:"block",hadPending:n}:{action:"skip-no-storage"}},Wo=35,xo=e=>G()?e.visibleForMobile?e.id==="google"?!!(we&&we.versionCode>=Wo):!0:!1:!0,Qo=new Set(["whatsapp"]),Xe=e=>Qo.has(e),qo=e=>{if(G()){Le(e);return}const t=window.open(e,"_blank");if(t){t.opener=null;return}ie(e)},On=(e,t)=>t==="login"?e.visibleForLogin??!1:e.visibleForRegister??!1,Ze=e=>e==="vk"||e==="steam",zo=e=>{const t=Object.fromEntries(Object.keys(e).sort((o,n)=>o.localeCompare(n,"en")).map(o=>[o,e[o]]));return JSON.stringify(t)},et=({state:e,social:t})=>{const o=zo(e);return Ze(t)?btoa(o):encodeURIComponent(o)},tt=({state:e,social:t})=>{const o=Ze(t)?atob(e):decodeURIComponent(e);try{return JSON.parse(o)}catch{return{state:o}}},Yo=async e=>{const o=new TextEncoder().encode(e),n=await crypto.subtle.digest("SHA-256",o);return yt(n)},Jo=()=>{const e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",t=Rt(43,128),o=new Uint8Array(t);return crypto.getRandomValues(o),Array.from(o,n=>e[n%e.length]).join("")},bn=e=>{const o=new URLSearchParams(window.location.search).get("state");if(!o)return{pathname:"/"};const n=tt({state:o,social:e});if(!n)return{pathname:"/"};if(!n.domainInitiatorRedirect)return n.pathname?{pathname:n.pathname}:{pathname:"/"};const{protocol:r,host:a}=new URL(n.domainInitiatorRedirect);return{url:`${r}//${a}`,pathname:n.pathname??"/"}},Xo=async(e,t,o)=>{const n=et(e),r=new URL(t.socialUrl),a=t.protocol==="OAUTH_VK"?new URL(r.searchParams.get("redirect_uri")??r):r;if(a.searchParams.append("state",n),e.social==="telegram"&&(a.pathname=`/${o}${a.pathname}`),t.protocol==="OAUTH_VK"&&e.social==="vk"&&e.state.codeVerifier){const l=await Yo(e.state.codeVerifier);a.searchParams.append("code_challenge",l),a.searchParams.append("code_challenge_method","S256"),a.searchParams.append("initial_visit","true")}return a.toString()},ot=e=>{if(G()&&e==="google")return"winapp://oauth/google";{const{protocol:t,host:o}=window.location;return`${t}//${o}/oauth/${e}`}},Ce=e=>e.map(t=>({...t,id:t.network,network:t.network,socialUrl:t.socialUrl})),Ae=(e,t)=>{try{return new URL(e).searchParams.get(t)??void 0}catch{return}},Zo=e=>{const t=new URL(e),o=t.searchParams.get("state"),n=t.searchParams.get("openid.return_to");if(n&&o){t.searchParams.delete("state"),t.searchParams.delete("openid.return_to");const r=new URL(n);r.searchParams.append("state",o),t.searchParams.append("openid.return_to",r.toString())}return t.toString()},In=({oauthTag:e})=>{const t=Eo(),{data:o,suspense:n}=ho(e),{getStoredRedirect:r}=We(),{preloadFingerprint:a}=Ne({source:"oauth"}),{locale:l}=St(),p=()=>{a()},f=()=>n(),w=async({social:g,vkLink:d,...h})=>{await f();const c=Ce(o.value?.methods??[]).find(v=>v.id===g);if(!c)throw new Error(`Oauth start. Social config for ${g} not found.`);if(Xe(g)){qo(c.socialUrl);return}const{partner_key:L,visit_domain:P,landing_id:H,sub_ids:U,...D}=h,O={...D,partnerKey:L,visitDomain:P,landingId:H,subIds:U,timezone:vt()},{state:N}=await t.mutateAsync(O);!G()&&c.protocol==="OAUTH2"&&Go(N);const{pathname:_,search:F}=window.location,k=r(),M=g==="vk"?Jo():void 0,C=c.protocol==="OAUTH_VK"?!0:void 0,b=await Xo({social:g,state:{state:N,domainInitiatorRedirect:ot(g),pathname:`${k??_}${F}`,vkLink:d,promocode:"promocode"in h?h.promocode:"",formName:"formName"in h?h.formName:"",initialVisit:C,codeVerifier:M,protocol:c.protocol,redirectUri:Ae(c.socialUrl,"redirect_uri"),clientId:Ae(c.socialUrl,"client_id"),socialUrl:wt(c.socialUrl),socialId:c.socialId}},c,l.value.baseName);if(G()&&c.id==="google"){Le(b);return}if(c.protocol==="OPEN_ID"){const v=Zo(b);ie(v)}else ie(b)},y=q(()=>Ce(o.value?.methods??[]).filter(g=>!!g.socialUrl&&xo(g)));return{preload:p,start:w,socialsConfigPromise:f,availableSocials:y}},en=e=>[...e.keys()].reduce((t,o)=>{if(o.startsWith("openid.")){const n=e.get(o);n&&(t[o]=n)}return t},{}),tn=({locale:e})=>{const t=so(window.location.pathname);if(!t||Xe(t))return;const o=new URLSearchParams(window.location.search),n=o.get("code"),r=o.get("state"),a=o.get("initial_visit"),l=o.get("device_id");if(r){if(t==="telegram"){const p=o.get("tgData");if(!p)return;const f=JSON.parse(p);return{state:r,social:t,tgData:f}}if(t==="steam")return{state:r,social:t,...en(o)};if(a&&!n&&t==="vk")return{state:r,social:t};if(n)return t==="vk"&&l?{code:n,state:r,social:t,device_id:l}:{code:n,state:r,social:t,locale:e}}},j=de.extend({stream:pe,category:"oauth"}),Tn=de.extend({stream:pe,category:"wallet_connect"}),oe="referral-id",Oe="referral_reg_modal_shown",on="r",W={SHOWN:"shown",NOT_SHOWN:"not-shown"};class nn{#e;init=t=>{this.#e=t;
1const o=this.getReferralQueryUrl();if(o&&!localStorage.getItem(oe)){const n={createTime:Date.now(),id:o};localStorage.setItem(oe,JSON.stringify(n))}};getReferralQueryUrl=()=>new URL(location.href).searchParams.get(on);getReferralId=()=>{const t=localStorage.getItem(oe);if(!t)return;const o=JSON.parse(t);if(!(this.#e&&o.createTime+this.#e<Date.now()))return o.id};clearReferralId=()=>{localStorage.removeItem(oe)};getAuthModalShownStatus=()=>sessionStorage.getItem(Oe)===W.SHOWN?W.SHOWN:W.NOT_SHOWN;setAuthModalShownStatus=t=>{sessionStorage.setItem(Oe,t)};checkAuthModalAvailability=({onAvailable:t,onUnavailable:o})=>{if(!this.getReferralQueryUrl()||this.getAuthModalShownStatus()===W.SHOWN){o?.();return}this.setAuthModalShownStatus(W.SHOWN),t()}}const rn=new nn,an=()=>{rn.clearReferralId()},sn=()=>({success:an}),cn=e=>{const t=Object.fromEntries(Object.entries(e).filter(([o])=>o.startsWith("openid")));return{openId:Object.fromEntries(Object.entries(t).map(([o,n])=>[o.replace(/^openid\./,""),n]))}},ln=(e,t)=>et({state:{...e,domainInitiatorRedirect:ot(t)},social:t}),Pn=async({locale:e,onError:t,onRedirect:o,onFinish:n})=>{const{success:r}=sn(),a=bo(),{getFingerprintExtendedData:l}=Ne({source:"oauth"}),p=tn({locale:e});let f=!1;if(!p)return;const w=async d=>{const h=tt(d),V={protocol:h.protocol,isApk:G(),isAuthDomain:!!h.domainInitiatorRedirect},c=Je(V)&&Bo(),L=jo({...V,storageUsable:c,lookup:c?Ko(h.state):"unknown",hadPending:c&&Vo()});switch(L.action){case"skip-no-storage":{j.warn({type:"finish",name:"oauth_state_check_skipped_no_storage",message:`social=${d.social}`});break}case"skip-replay":{j.info({type:"finish",name:"oauth_state_replay",params:[d.social]});break}case"pass":{Ho(h.state);break}case"block":throw j.error({type:"finish",name:"oauth_state_mismatch",message:`social=${d.social}, hadPending=${L.hadPending}`}),new Error("OAuth state mismatch: possible login CSRF")}const{state:P,pathname:H="/",promocode:U,formName:D,vkLink:O,codeVerifier:N,protocol:_,redirectUri:F,socialId:k}=h,{tgData:M,device_id:C,code:b,...v}={...d,tgData:"tgData"in d?d.tgData:void 0,device_id:"device_id"in d?d.device_id:void 0,code:"code"in d?d.code:void 0};if(!O){const Z={..._==="OAUTH_TELEGRAM"?M:{},..._==="OAUTH2"?{redirect_uri:F,code:b}:{},..._==="OPEN_ID"?{initialStateData:ln(h,d.social),...cn(v)}:{},..._==="OAUTH_VK"&&N?{code_verifier:N,device_id:C,redirect_uri:F,code:b}:{}};if(!k)throw new Error("OAuth finish: socialId missing for backend-driven flow.");await a.mutateAsync({network:v.social,socialId:k,preRegKey:P,...Z,fingerprint:await l()})}return{pathname:H,promocode:U,formName:D}};j.info({type:"finish",name:"oauth_finish_started",params:[p.social]});const y=await w(p).catch(d=>{const h=d instanceof _t?d.data.message:void 0;j.error({type:"finish",name:"oauth_finish_error",message:`social=${p.social}, error=${h??d?.message??String(d)}`}),f=!0,t(h)}),g=y?.pathname??"/";return r(),console.info("Redirect after oauth to:",g),o(),window.history.replaceState(void 0,"undefined",g),n?.(f),{...p,promocode:y?.promocode,formName:y?.formName}};class Un extends T{constructor(t,o){super({event:"send_cda_events",eventCat:"cda",eventName:t,...o})}}class Nn extends T{constructor(t,o){super({event:"send_registration_events",eventCat:"registration",eventName:t,payload:{registration_loc:"product",...o}})}}class Ln extends T{constructor(t,o){super({event:"send_login_events",eventCat:"login",eventName:t,payload:{login_loc:"product",...o}})}}class Dn extends T{constructor(t,o){super({event:"send_restore_password_events",eventCat:"restore_password",eventName:t,payload:o})}}class Fn extends T{constructor(t,o){super({event:"send_change_events",eventCat:"change",eventName:t,payload:o})}}class kn extends T{constructor(t,o){super({event:"send_phone_confirmation_events",eventCat:"phone_confirmation",eventName:t,payload:o})}}class Mn extends T{constructor(t,o){super({event:"send_release_events",eventCat:"release",eventName:t,payload:o})}}class $n extends T{constructor(t,o={}){super({event:"send_crypto_wallets_events",eventCat:"crypto_wallets",eventName:t,payload:o})}}export{Un as C,En as F,_n as G,Ln as L,j as O,kn as P,Dn as R,Fn as V,$n as W,De as a,je as b,Nn as c,Mn as d,Tn as e,Rn as f,tt as g,et as h,Yo as i,bn as j,tn as k,Rt as l,On as m,Sn as n,Lt as o,Pn as p,In as q,rn as r,An as s,Cn as t,fo as u,sn as v,We as w};
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.