MCPcopy Index your code
hub / github.com/ChinaSiro/claude-code-sourcemap / handleSuccessRedirect

Method handleSuccessRedirect

package/cli.js:2111–2111  ·  view source on GitHub ↗
(q,K)

Source from the content-addressed store, hash-verified

21093. Disable OpenTelemetry by unsetting CLAUDE_CODE_ENABLE_TELEMETRY env var
2110
2111Current timeout: ${X}ms
2112`,{level:"error"});throw P}}),J.getMeter("com.anthropic.claude_code",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.88",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.VERSION)}async function Qxz(){let q=Xi8();if(!q)return;let K=parseInt(process.env.CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS||"5000");try{let _=[q.forceFlush()],z=Qb6();if(z)_.push(z.forceFlush());let Y=o36();if(Y)_.push(Y.forceFlush());await Promise.race([Promise.all(_),ml1(K,"OpenTelemetry flush timeout")]),N("Telemetry flushed successfully")}catch(_){if(_ instanceof pl1)N(`Telemetry flush timed out after ${K}ms. Some metrics may not be exported.`,{level:"warn"});else N(`Telemetry flush failed: ${d6(_)}`,{level:"error"})}}function dxz(){let q={},K=process.env.OTEL_EXPORTER_OTLP_HEADERS;if(K)for(let _ of K.split(",")){let[z,...Y]=_.split("=");if(z&&Y.length>0)q[z.trim()]=Y.join("=").trim()}return q}function Bl1(){let q=dh(),K=Ch(),_=Z7(),z={},Y=dxz();if(_?.otelHeadersHelper)z.headers=async()=>{let w=Bv1();return{...Y,...w}};else if(Object.keys(Y).length>0)z.headers=async()=>Y;let $=process.env.OTEL_EXPORTER_OTLP_ENDPOINT;if(!q||$&&b66($)){let w=$I();if(K||w)z.httpAgentOptions={...K,...w&&{ca:w}};return z}let A=$I(),O=(w)=>{return K||A?new ul1.HttpsProxyAgent(q,{...K&&{cert:K.cert,key:K.key,passphrase:K.passphrase},...A&&{ca:A}}):new ul1.HttpsProxyAgent(q)};return z.httpAgentOptions=O,z}var N26,Nt6,Lm,C46,S46,b46,h46,ul1,Ixz=60000,Ut4=5000,Qt4=5000,pl1;var Fl1=y(()=>{v8();G7();vK();Lp6();c9();_8();m8();y8();PI();qv();U1();l8();Cx();Ts6();hg4();Sg4();gN6();w46();N26=O6(nK(),1),Nt6=O6(WV1(),1),Lm=O6(pG6(),1),C46=O6(ZV1(),1),S46=O6(z26(),1),b46=O6(fg4(),1),h46=O6(L$6(),1),ul1=O6(Ep6(),1);pl1=class pl1 extends Error{}});var lt4={};T8(lt4,{performLogout:()=>yt6,clearAuthRelatedCaches:()=>WS8,call:()=>cxz});async function yt6({clearOnboarding:q=!1}){let{flushTelemetry:K}=await Promise.resolve().then(() => (Fl1(),gl1));await K(),await pv1(),c3().delete(),await WS8(),b8((z)=>{let Y={...z};if(q){if(Y.hasCompletedOnboarding=!1,Y.subscriptionNoticeCount=0,Y.hasAvailableSubscription=!1,Y.customApiKeyResponses?.approved)Y.customApiKeyResponses={...Y.customApiKeyResponses,approved:[]}}return Y.oauthAccount=void 0,Y})}async function WS8(){Kq.cache?.clear?.(),LF1(),wD8(),kD8(),hG6(),U$6(),K46.cache?.clear?.(),Hm.cache?.clear?.(),await oF1(),await dL8()}async function cxz(){await yt6({clearOnboarding:!0});let q=Ul1.createElement(k,null,"Successfully logged out from your Anthropic account.");return setTimeout(()=>{eK(0,"logout")},200),q}var Ul1;var Ql1=y(()=>{rw6();s6();o1();lN6();ZD();aN6();G7();HG();V1();RA();$16();VD8();f$6();Ul1=O6(D6(),1)});async function nt4(){try{if(j8().claudeCodeFirstTokenDate!==void 0)return;let K=DJ();if(K.error){H6(Error(`Failed to get auth headers: ${K.error}`));return}let z=`${u7().BASE_API_URL}/api/organization/claude_code_first_token_date`,$=(await $1.get(z,{headers:{...K.headers,"User-Agent":n$()},timeout:1e4})).data?.first_token_date??null;if($!==null){let A=new Date($).getTime();if(isNaN(A)){H6(Error(`Received invalid first_token_date from API: ${$}`));return}}b8((A)=>({...A,claudeCodeFirstTokenDate:$}))}catch(q){H6(q)}}var it4=y(()=>{CK();H3();V1();jG();E8()});import{createServer as lxz}from"http";class dl1{localServer;port=0;promiseResolver=null;promiseRejecter=null;expectedState=null;pendingResponse=null;callbackPath;constructor(q="/callback"){this.localServer=lxz(),this.callbackPath=q}async start(q){return new Promise((K,_)=>{this.localServer.once("error",(z)=>{_(Error(`Failed to start OAuth callback server: ${z.message}`))}),this.localServer.listen(q??0,"localhost",()=>{let z=this.localServer.address();this.port=z.port,K(this.port)})})}getPort(){return this.port}hasPendingResponse(){return this.pendingResponse!==null}async waitForAuthorization(q,K){return new Promise((_,z)=>{this.promiseResolver=_,this.promiseRejecter=z,this.expectedState=q,this.startLocalListener(K)})}handleSuccessRedirect(q,K){if(!this.pendingResponse)return;if(K){K(this.pendingResponse,q),this.pendingResponse=null,d("tengu_oauth_automatic_redirect",{custom_handler:!0});return}let _=KS(q)?u7().CLAUDEAI_SUCCESS_URL:u7().CONSOLE_SUCCESS_URL;this.pendingResponse.writeHead(302,{Location:_}),this.pendingResponse.end(),this.pendingResponse=null,d("tengu_oauth_automatic_redirect",{})}handleErrorRedirect(){if(!this.pendingResponse)return;let q=u7().CLAUDEAI_SUCCESS_URL;this.pendingResponse.writeHead(302,{Location:q}),this.pendingResponse.end(),this.pendingResponse=null,d("tengu_oauth_automatic_redirect_error",{})}startLocalListener(q){this.localServer.on("request",this.handleRedirect.bind(this)),this.localServer.on("error",this.handleError.bind(this)),q()}handleRedirect(q,K){let _=new URL(q.url||"",`http://${q.headers.host||"localhost"}`);if(_.pathname!==this.callbackPath){K.writeHead(404),K.end();return}let z=_.searchParams.get("code")??void 0,Y=_.searchParams.get("state")??void 0;this.validateAndRespond(z,Y,K)}validateAndRespond(q,K,_){if(!q){_.writeHead(400),_.end("Authorization code not found"),this.reject(Error("No authorization code received"));return}if(K!==this.expectedState){_.writeHead(400),_.end("Invalid state parameter"),this.reject(Error("Invalid state parameter"));return}this.pendingResponse=_,this.resolve(q)}handleError(q){H6(q),this.close(),this.reject(q)}resolve(q){if(this.promiseResolver)this.promiseResolver(q),this.promiseResolver=null,this.promiseRejecter=null}reject(q){if(this.promiseRejecter)this.promiseRejecter(q),this.promiseResolver=null,this.promiseRejecter=null}close(){if(this.pendingResponse)this.handleErrorRedirect();if(this.localServer)this.localServer.removeAllListeners(),this.localServer.close()}}var rt4=y(()=>{k8();H3();E8();pW()});import{createHash as nxz,randomBytes as ot4}from"crypto";function cl1(q){return q.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function at4(){return cl1(ot4(32))}function st4(q){let K=nxz("sha256");return K.update(q),cl1(K.digest())}function tt4(){return cl1(ot4(32))}var et4=()=>{};class Eo{codeVerifier;authCodeListener=null;port=null;manualAuthCodeResolver=null;constructor(){this.codeVerifier=at4()}async startOAuthFlow(q,K){this.authCodeListener=new dl1,this.port=await this.authCodeListener.start();let _=st4(this.codeVerifier),z=tt4(),Y={codeChallenge:_,state:z,port:this.port,loginWithClaudeAi:K?.loginWithClaudeAi,inferenceOnly:K?.inferenceOnly,orgUUID:K?.orgUUID,loginHint:K?.loginHint,loginMethod:K?.loginMethod},$=AJ8({...Y,isManual:!0}),A=AJ8({...Y,isManual:!1}),O=await this.waitForAuthorizationCode(z,async()=>{if(K?.skipBrowserOpen)await q($,A);else await q($),await m3(A)}),w=this.authCodeListener?.hasPendingResponse()??!1;d("tengu_oauth_auth_code_received",{automatic:w});try{let j=await NJ1(O,z,this.codeVerifier,this.port,!w,K?.expiresIn),H=await OJ8(j.access_token);if(w){let J=vF6(j.scope);this.authCodeListener?.handleSuccessRedirect(J)}return this.formatTokens(j,H.subscriptionType,H.rateLimitTier,H.rawProfile)}catch(j){if(w)this.authCodeListener?.handleErrorRedirect();throw j}finally{this.authCodeListener?.close()}}async waitForAuthorizationCode(q,K){return new Promise((_,z)=>{this.manualAuthCodeResolver=_,this.authCodeListener?.waitForAuthorization(q,K).then((Y)=>{this.manualAuthCodeResolver=null,_(Y)}).catch((Y)=>{this.manualAuthCodeResolver=null,z(Y)})})}handleManualAuthCodeInput(q){if(this.manualAuthCodeResolver)this.manualAuthCodeResolver(q.authorizationCode),this.manualAuthCodeResolver=null,this.authCodeListener?.close()}formatTokens(q,K,_,z){return{accessToken:q.access_token,refreshToken:q.refresh_token,expiresAt:Date.now()+q.expires_in*1000,scopes:vF6(q.scope),subscriptionType:K,rateLimitTier:_,profile:z,tokenAccount:q.account?{uuid:q.account.uuid,emailAddress:q.account.email_address,organizationUuid:q.organization?.uuid}:void 0}}cleanup(){this.authCodeListener?.close(),this.manualAuthCodeResolver=null}}var Et6=y(()=>{k8();hH();rt4();pW();et4()});import{access as rxz,chmod as oxz,writeFile as axz}from"fs/promises";import{join as Lt6}from"path";function DS8(){return Lt6(c1(),"local")}function Ke4(){return Lt6(DS8(),"claude")}function _e4(){return(process.argv[1]||"").includes("/.claude/local/node_modules/")}async function qe4(q,K,_){try{return await axz(q,K,{encoding:"utf8",flag:"wx",mode:_}),!0}catch(z){if(s1(z)==="EEXIST")return!1;throw z}}async function sxz(){try{let q=DS8();await X8().mkdir(q),await qe4(Lt6(q,"package.json"),g6({name:"claude-local",version:"0.0.1",private:!0},null,2));let K=Lt6(q,"claude");if(await qe4(K,`#!/bin/sh
2113exec "${q}/node_modules/.bin/claude" "$@"`,493))await oxz(K,493);return!0}catch(q){return H6(q),!1}}async function Rt6(q,K){try{if(!await sxz())return"install_failed";let _=K?K:q==="stable"?"stable":"latest",z=await S7("npm",["install",`${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.88",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.PACKAGE_URL}@${_}`],{cwd:DS8(),maxBuffer:1e6});if(z.code!==0){let Y=Error(`Failed to install Claude CLI package: ${z.stderr}`);return H6(Y),z.code===190?"in_progress":"install_failed"}return b8((Y)=>({...Y,installMethod:"local"})),"success"}catch(_){return H6(_),"install_failed"}}async function y26(){try{return await rxz(Lt6(DS8(),"node_modules",".bin","claude")),!0}catch{return!1}}function cy6(){let q=process.env.SHELL||"";if(q.includes("zsh"))return"zsh";if(q.includes("bash"))return"bash";if(q.includes("fish"))return"fish";return"unknown"}var E26=y(()=>{V1();m8();y8();XK();e7();E8();l8()});import{open as txz,readFile as exz,stat as qIz}from"fs/promises";import{homedir as ze4}from"os";import{join as ll1}from"path";function x46(q){let K=q?.homedir??ze4(),z=(q?.env??process.env).ZDOTDIR||K;return{zsh:ll1(z,".zshrc"),bash:ll1(K,".bashrc"),fish:ll1(K,".config/fish/config.fish")}}function fS8(q){let K=!1;return{filtered:q.filter((z)=>{if(Ye4.test(z)){let Y=z.match(/alias\s+claude\s*=\s*["']([^"']+)["']/);if(!Y)Y=z.match(/alias\s+claude\s*=\s*([^#\n]+)/);if(Y&&Y[1]){if(Y[1].trim()===Ke4())return K=!0,!1}}return!0}),hadAlias:K}}async function ht6(q){try{return(await exz(q,{encoding:"utf8"})).split(`
2114`)}catch(K){if(e3(K))return null;throw K}}async function ZS8(q,K){let _=await txz(q,"w");try{await _.writeFile(K.join(`

Callers 1

startOAuthFlowMethod · 0.45

Calls 5

dFunction · 0.85
KSFunction · 0.85
u7Function · 0.85
KFunction · 0.70
endMethod · 0.45

Tested by

no test coverage detected