PageSourceSearch

https://qq188.com/chunk-5CRGG2EL.js

js qq188.com collected 2026-10-05 01:17:58 UTC 15,065 bytes, 1 lines download raw bytes

1import{a as D}from"./chunk-7KI7VL6K.js";import{a as A}from"./chunk-MFY6GL67.js";import{a as Q}from"./chunk-FD55Q7R4.js";import{a as P}from"./chunk-BV6CBT7N.js";import"./chunk-LBFZVMBI.js";import{a as U,e as I,f as u,g as d,m as N}from"./chunk-SQXH55RY.js";import"./chunk-FZLMV5FP.js";import{x as R}from"./chunk-2RZNBXEW.js";import"./chunk-WUS6VI32.js";import{ca as C,sa as y}from"./chunk-LKIBVTZY.js";import{b as F}from"./chunk-IXSVJUWF.js";import"./chunk-VXMZGT4Q.js";import{Ia as k,Ja as q,Ka as w,ha as a,nb as S,p as b}from"./chunk-LZGEQQYD.js";import{b as f}from"./chunk-BW2TMJN6.js";import{a as m}from"./chunk-RNQ7BUHW.js";var G=(()=>{let g=class g{constructor(e,i,n,t,r,h,c){this.route=e,this.loginService=i,this.globalData=n,this.appConfigService=t,this.qqtimeRegisterFlow=r,this.httpService=h,this.lineLoginService=c,this.debugTraceStorageKey="qqtime-debug-trace",this.recentNavigateStorageKey="qqtime-login-recent-navigate",this.consumedAuthorizeStorageKey="qqtime-login-consumed-authorize",this.popupNavigateEventName="login-popup-route-change",this.checkInterval=null,this.lineLoginFallbackInterval=null,this.appStateChangeListener=null,this.subscriptions=new f,this.returnUrl=null,this.redirectUri="",this.state="",this.isNavigating=!1,this.isLeavingViaPopupNavigation=!1,this.isCheckingLineLoginFallback=!1,this.lineLoginFallbackCounter=0,this.isWindowFocusLineLoginFallbackListening=!1,this.lineLoginFallbackMaxTimes=20,this.lineLoginFallbackIntervalMs=9e3,this.recentNavigateTtlMs=5e3,this.handlePopupNavigationAway=o=>{this.isLeavingViaPopupNavigation=!0,this.clearCheckInterval();let l=this.getPopupTargetUrl(o);if(this.logQqtimeLogin("popup-navigation",{navigationUrl:l}),this.qqtimeRegisterFlow.isRegisterPage(l)){this.qqtimeRegisterFlow.saveContext({returnUrl:this.returnUrl,redirectUri:this.isRealCallbackRedirect()?this.redirectUri:null});return}this.qqtimeRegisterFlow.clearContext()},this.handleWindowFocusLineLoginFallback=()=>{this.triggerLineLoginFallbackCheck("window-focus")};let s=this.appConfigService.getConfig("hostUrl")||window.location.origin;this.defaultRedirectUrl=new URL("/qqtime/home",s).toString(),this.redirectUri=this.defaultRedirectUrl}logQqtimeLogin(e,i){let n=m({href:window.location.href,returnUrl:this.returnUrl,redirectUri:this.redirectUri,state:this.state,isApp:this.globalData.isApp,isLogin:this.globalData.isLogin,loginPopupOpen:this.loginService.shouldShowLoginPopup,loginPopupRequested:this.loginService.isOpenLogin,loginPopupForced:this.loginService.isQqtimeLoginPopupForcedOpen,isNavigating:this.isNavigating,isLeavingViaPopupNavigation:this.isLeavingViaPopupNavigation},i&&typeof i=="object"?i:{value:i});console.log("[qqtime-login][".concat(e,"]"),n);try{let t=sessionStorage.getItem(this.debugTraceStorageKey),r=t?JSON.parse(t):[];r.push({source:"qqtime-login",step:e,at:new Date().toISOString(),payload:n}),sessionStorage.setItem(this.debugTraceStorageKey,JSON.stringify(r.slice(-50)))}catch(t){}}subscribeLoginState(){let e=!0;this.subscriptions.add(this.globalData.loginSub$.subscribe(i=>{if(e){e=!1;return}this.logQqtimeLogin("login-state-changed",{isLogin:i}),i&&this.globalData.isLogin&&this.navigateAfterLogin()}))}ngOnInit(){window.addEventListener(this.popupNavigateEventName,this.handlePopupNavigationAway),this.qqtimeRegisterFlow.clearContext();let e=this.route.snapshot.queryParamMap,i=e.get("response_type"),n=e.get("
1client_id"),t=e.get("redirect_uri"),r=e.get("state"),h=e.get("prompt"),c=e.get("returnUrl"),s=e.get("resumeLineLogin")==="1",o=u(),l=e.get("lineState")||(o==null?void 0:o.lineState)||"",v=this.resolveReturnUrl(c),L=this.resolveAuthorizeParams(v);if(this.returnUrl=v,this.redirectUri=this.resolveRedirectUrl(t||e.get("redirectUrl")||e.get("url")||L.redirectUri),this.state=r||L.state,this.logQqtimeLogin("init",{responseType:i,clientId:n,redirectUriParam:t,prompt:h,returnUrlParam:c,resumeLineLogin:s,resumeLineState:l,hasStoredLineLoginContext:!!(o!=null&&o.lineState),authorizeParams:L}),this.subscribeLoginState(),s&&l){this.logQqtimeLogin("resume-line-login-start",{resumeLineState:l}),this.loginService.closeLoginPopup(),this.isLeavingViaPopupNavigation=!0,I(l),this.startLineLoginFallbackCheck(!0),this.triggerLineLoginFallbackCheck("resume-line-login");return}if(this.globalData.isLogin&&this.hasConsumedCurrentAuthorizeRequest()){this.logQqtimeLogin("already-login-consumed-authorize-loop"),this.handleConsumedAuthorizeLoop();return}if(this.globalData.isLogin&&this.isRecentNavigateLoop()){this.logQqtimeLogin("already-login-handle-recent-navigate-loop"),this.handleRecentNavigateLoop();return}if(this.globalData.isLogin){this.logQqtimeLogin("already-login-navigate-after-login"),this.navigateAfterLogin();return}this.openLoginPopup()}ngOnDestroy(){this.logQqtimeLogin("destroy"),this.loginService.clearQqtimeLoginPopupForce(),window.removeEventListener(this.popupNavigateEventName,this.handlePopupNavigationAway),this.subscriptions.unsubscribe(),this.clearCheckInterval(),this.clearLineLoginFallbackInterval(),this.removeLineLoginResumeCheck()}navigateAfterLogin(){if(this.isNavigating){this.logQqtimeLogin("navigate-after-login-skipped-already-navigating");return}if(this.isNavigating=!0,this.loginService.clearQqtimeLoginPopupForce(),this.clearCheckInterval(),this.clearLineLoginFallbackInterval(),this.removeLineLoginResumeCheck(),this.qqtimeRegisterFlow.clearContext(),this.reloadRwdWindows(),this.markRecentNavigate(),this.logQqtimeLogin("navigate-after-login-start"),this.returnUrl){this.markConsumedAuthorizeRequest(),this.logQqtimeLogin("navigate-after-login-return-url"),window.location.replace(this.returnUrl);return}if(this.isRealCallbackRedirect()){this.logQqtimeLogin("navigate-after-login-redirect-uri"),window.location.replace(this.redirectUri);return}if(window.history.length>1){this.logQqtimeLogin("navigate-after-login-history-back",{historyLength:window.history.length}),window.history.back();return}this.logQqtimeLogin("navigate-after-login-default-redirect"),window.location.replace(this.defaultRedirectUrl)}handleLoginClosed(){if(this.isNavigating){this.logQqtimeLogin("handle-login-closed-skipped-already-navigating");return}this.isNavigating=!0,this.loginService.clearQqtimeLoginPopupForce(),this.clearCheckInterval(),this.clearLineLoginFallbackInterval(),this.removeLineLoginResumeCheck(),this.qqtimeRegisterFlow.clearContext(),this.logQqtimeLogin("handle-login-closed-start");let e=this.buildLoginRequiredRedirectUrl();if(e){this.logQqtimeLogin("handle-login-closed-login-required-redirect",{loginRequiredRedirectUrl:e}),window.location.replace(e);return}if(window.history.length>1){this.logQqtimeLogin("handle-login-closed-history-back",{historyLength:window.history.length}),window.history.back();return}this.logQqtimeLogin("handle-login-closed-redirect-uri"),window.location.replace(this.redirectUri)}openLoginPopup(){this.loginService.openLoginPopup(!0),this.logQqtimeLogin("open-login-popup"),this.startLineLoginFallbackCheck(),this.startLoginClosePolling()}startLoginClosePolling(){this.clearCheckInterval(),this.checkInterval=setInterval(()=>{!this.loginService.shouldShowLoginPopup&&!this.globalData.isLogin&&!this.isLeavingViaPopupNavigation&&(this.logQqtimeLogin("popup-closed-before-login"),this.handleLoginClosed())},200)}reopenLoginPopupAfterAuthorizeFailure(e){this.clearCheckInterval(),this.clearLineLoginFallbackInterval(),this.removeLineLoginResumeCheck(),this.qqtimeRegisterFlow.clearContext(),this.isLeavingViaPopupNavigation=!1,this.isNavigating=!1;try{sessionStorage.removeItem(this.recentNavigateStorageKey),sessionStorage.removeItem(this.consumedAuthorizeStorageKey)}catch(i){}this.globalData.isLogin=!1,localStorage.setItem("isLogin",String(this.globalData.isLogin)),this.globalData.sessionId=null,this.globalData.token=null,this.globalData.refreshToken=null,this.globalData.acctInfo={loginId:"",currency:"",balance:0,bonus:0,isReferralAccount:!1,isAffiliateAccount:!1,expiryUtcDate:""},this.globalData.loginSub$.next(!1),this.logQqtimeLogin("reopen-login-popup-after-authorize-failure",{reason:e}),this.openLoginPopup()}startLineLoginFallbackCheck(e=!1){!e&&!this.shouldUseLineLoginFallback()||(this.clearLineLoginFallbackInterval(),this.setupLineLoginResumeCheck(),this.lineLoginFallbackCounter=0,this.lineLoginFallbackInterval=setInterval(()=>{this.triggerLineLoginFallbackCheck("interval")},this.lineLoginFallbackIntervalMs))}triggerLineLoginFallbackCheck(e){if(this.globalData.isLogin||this.isNavigating)return;let i=u();if(!(!(i!=null&&i.lineState)||this.isCheckingLineLoginFallback)){if(this.lineLoginFallbackCounter>=this.lineLoginFallbackMaxTimes){this.logQqtimeLogin("line-login-fallback-max-reached",{source:e,lineState:i.lineState}),d(),this.handleLoginClosed();return}this.lineLoginFallbackCounter++,this.checkLineLoginFromQqtimePage(i,e)}}checkLineLoginFromQqtimePage(e,i){this.isCheckingLineLoginFallback=!0;let n={state:e.lineState};this.logQqtimeLogin("line-login-fallback-check-request",m({source:i,attempt:this.lineLoginFallbackCounter},n)),this.httpService.checkLineLogin(n).subscribe(t=>{var s;if(this.isCheckingLineLoginFallback=!1,this.logQqtimeLogin("line-login-fallback-check-response",{source:i,attempt:this.lineLoginFallbackCounter,response:t}),this.globalData.isLogin||this.isNavigating){this.logQqtimeLogin("line-login-fallback-skip-already-handled");return}let r=u();if(!r||r.lineState!==e.lineState){this.logQqtimeLogin("line-login-fallback-skip-context-cleared");return}let h=[70027,70029,1470027,1470029],c=Number(t.code);
1if(h.includes(c)){this.logQqtimeLogin("line-login-fallback-terminal-code",{source:i,attempt:this.lineLoginFallbackCounter,response:t}),this.clearLineLoginFallbackInterval(),this.removeLineLoginResumeCheck(),d(),this.handleLoginClosed();return}if(t.code===0&&((s=t.data)!=null&&s.isLineCallbackFinished)){if(this.clearLineLoginFallbackInterval(),this.removeLineLoginResumeCheck(),d(),t.data.lineUserId){this.logQqtimeLogin("line-login-fallback-line-login",{lineUserId:t.data.lineUserId}),this.lineLoginService.lineLogin(t.data.lineUserId,"");return}this.logQqtimeLogin("line-login-fallback-finished-without-user",t.data),this.handleLoginClosed()}},t=>{this.isCheckingLineLoginFallback=!1,this.logQqtimeLogin("line-login-fallback-check-error",{source:i,attempt:this.lineLoginFallbackCounter,error:t})})}shouldUseLineLoginFallback(){let e=navigator.userAgent||"",i=/;\s*wv\)/i.test(e);return this.globalData.isApp||i}setupLineLoginResumeCheck(){this.appStateChangeListener||(this.appStateChangeListener=U.addListener("appStateChange",({isActive:e})=>{this.logQqtimeLogin("line-login-fallback-app-state-change",{isActive:e}),e&&this.triggerLineLoginFallbackCheck("app-state-change")}),this.isWindowFocusLineLoginFallbackListening||(window.addEventListener("focus",this.handleWindowFocusLineLoginFallback),this.isWindowFocusLineLoginFallbackListening=!0))}removeLineLoginResumeCheck(){this.appStateChangeListener&&(this.appStateChangeListener.remove(),this.appStateChangeListener=null),this.isWindowFocusLineLoginFallbackListening&&(window.removeEventListener("focus",this.handleWindowFocusLineLoginFallback),this.isWindowFocusLineLoginFallbackListening=!1)}resolveRedirectUrl(e){if(!e)return this.defaultRedirectUrl;try{return new URL(e,window.location.origin).toString()}catch(i){return this.defaultRedirectUrl}}resolveReturnUrl(e){if(!e)return null;try{return new URL(e,window.location.origin).toString()}catch(i){return null}}resolveAuthorizeParams(e){if(!e)return{redirectUri:null,state:""};try{let i=new URL(e);return{redirectUri:i.searchParams.get("redirect_uri"),state:i.searchParams.get("state")||""}}catch(i){return{redirectUri:null,state:""}}}buildLoginRequiredRedirectUrl(){if(!this.isRealCallbackRedirect())return this.logQqtimeLogin("build-login-required-redirect-skipped-not-real-callback",{redirectUri:this.redirectUri,defaultRedirectUrl:this.defaultRedirectUrl}),null;let e=new URL(this.redirectUri,window.location.origin);return this.logQqtimeLogin("build-login-required-redirect-start",{redirectUri:this.redirectUri,state:this.state}),e.searchParams.set("error","login_required"),this.state&&e.searchParams.set("state",this.state),this.logQqtimeLogin("build-login-required-redirect-result",{loginRequiredRedirectUrl:e.toString()}),e.toString()}getPopupTargetUrl(e){var t;let n=(t=e.detail)==null?void 0:t.url;return typeof n=="string"&&n.trim().length>0?n:null}clearCheckInterval(){this.checkInterval&&(clearInterval(this.checkInterval),this.checkInterval=null)}clearLineLoginFallbackInterval(){this.lineLoginFallbackInterval&&(clearInterval(this.lineLoginFallbackInterval),this.lineLoginFallbackInterval=null),this.isCheckingLineLoginFallback=!1,this.lineLoginFallbackCounter=0}isRealCallbackRedirect(){return!!this.redirectUri&&this.redirectUri!==this.defaultRedirectUrl}reloadRwdWindows(){if(!(!window.opener||window.opener.closed))try{P(),window.opener.parent.postMessage("reload","*")}catch(e){console.warn("Failed to send reload signal to opener window")}}buildNavigateFingerprint(){return JSON.stringify({returnUrl:this.returnUrl||"",redirectUri:this.redirectUri||"",state:this.state||""})}markRecentNavigate(){try{sessionStorage.setItem(this.recentNavigateStorageKey,JSON.stringify({fingerprint:this.buildNavigateFingerprint(),at:Date.now()}))}catch(e){}}hasConsumedCurrentAuthorizeRequest(){if(!this.returnUrl)return!1;try{let e=sessionStorage.getItem(this.consumedAuthorizeStorageKey);if(!e)return!1;let i=JSON.parse(e);return(i==null?void 0:i.fingerprint)===this.buildNavigateFingerprint()}catch(e){return!1}}markConsumedAuthorizeRequest(){if(this.returnUrl)try{sessionStorage.setItem(this.consumedAuthorizeStorageKey,JSON.stringify({fingerprint:this.buildNavigateFingerprint(),at:Date.now()}))}catch(e){}}isRecentNavigateLoop(){try{let e=sessionStorage.getItem(this.recentNavigateStorageKey);if(!e)return!1;let i=JSON.parse(e);return!(i!=null&&i.fingerprint)||typeof i.at!="number"||Date.now()-i.at>this.recentNavigateTtlMs?(sessionStorage.removeItem(this.recentNavigateStorageKey),!1):i.fingerprint===this.buildNavigateFingerprint()}catch(e){return!1}}handleRecentNavigateLoop(){this.reopenLoginPopupAfterAuthorizeFailure("recent-navigate-loop")}handleConsumedAuthorizeLoop(){this.reopenLoginPopupAfterAuthorizeFailure("consumed-authorize-loop")}};g.\u0275fac=function(i){return new(i||g)(a(C),a(N),a(y),a(F),a(D),a(R),a(Q))},g.\u0275cmp=b({type:g,selectors:[["app-qqtime-login"]],standalone:!0,features:[S],decls:3,vars:0,consts:[[1,"qqtime-login-overlay"],[1,"qqtime-login-container"]],template:function(i,n){i&1&&(k(0,"div",0)(1,"div",1),w(2,"app-login-popup"),q()())},dependencies:[A],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}.qqtime-login-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;display:flex;justify-content:center;align-items:center;z-index:1000}.qqtime-login-container[_ngcontent-%COMP%]{position:relative;z-index:1001}.qqtime-login-container[_ngcontent-%COMP%]     .mask.popup{display:none}"]});let p=g;return p})();export{G as QqtimeLoginComponent};

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.