PageSourceSearch

https://www.maiachess.com/_next/static/chunks/pages/analysis/stream/[gameId]-6c5aba441edf5b13.js

js maiachess.com collected 2026-10-02 04:20:25 UTC 16,225 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[547],{36114:(e,t,a)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/analysis/stream/[gameId]",function(){return a(75767)}])},75767:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>A});var n=a(37876),r=a(14232),i=a(89099),l=a(77328),o=a.n(l),s=a(27212),d=a(9919),c=a(1215),u=a(4363),m=a(34146),h=a(88831),v=a(76084),x=a(94598),g=a(54256),f=a(32711),p=a(72975),w=a(74319),N=a(14362),y=a(56328),b=a(47810),j=a(1453),M=a(86318),k=a(82235),C=a(22498),T=a(88606);let P=e=>{var t,a,i,l;let{game:o,streamState:s,clockState:d,onReconnect:c,onStopStream:u,analysisController:m}=e,{width:h}=(0,r.useContext)(x.lh),v=(0,r.useMemo)(()=>h>0&&h<=x.Ay,[h]),[P,S]=(0,r.useState)(null),[E,A]=(0,r.useState)(null),[B,R]=(0,r.useState)(null),L=(0,r.useMemo)(()=>m.showTopMoveBadges&&m.topHumanMoveBadge?[{square:m.topHumanMoveBadge.square,classification:m.topHumanMoveBadge.classification}]:[],[m.showTopMoveBadges,m.topHumanMoveBadge]);(0,r.useEffect)(()=>{S(null)},[m.currentNode]);let _=e=>{if(!m.currentNode||!o.tree)return;let t=new f.d$(m.currentNode.fen),a=t.move({from:e.slice(0,2),to:e.slice(2,4),promotion:e[4]?e[4]:void 0});if(a){var n;let e=t.fen(),r=a.from+a.to+(a.promotion?a.promotion:""),i=a.san;if((null==(n=m.currentNode.mainChild)?void 0:n.move)===r)m.goToNode(m.currentNode.mainChild);else{let t=o.tree.addVariationNode(m.currentNode,e,r,i,m.currentMaiaModel);m.goToNode(t)}}},U=(0,r.useCallback)(e=>{if(!e)return;let t=[];for(let[e,a]of m.availableMoves.entries())for(let n of a)t.push({from:e,to:n});if(t.filter(t=>t.from===e[0]&&t.to===e[1]).length>1)return void R(e);_(e[0]+e[1])},[m.availableMoves]),I=(0,r.useCallback)(e=>{B&&(R(null),_(B[0]+B[1]+e))},[B,R]),O=(0,r.useCallback)(()=>{var e;let t="/play?fen="+encodeURIComponent(null==(e=m.currentNode)?void 0:e.fen);window.open(t)},[m.currentNode]),q=(0,r.useMemo)(()=>m.currentNode?"w"===new f.d$(m.currentNode.fen).turn()?"white":"black":"white",[m.currentNode]),H=()=>{var e,t,a,r,i;return(0,n.jsxs)("div",{className:"flex w-full flex-col",children:[(0,n.jsxs)("div",{className:"hidden md:block",children:[[o.whitePlayer,o.blackPlayer].map((e,t)=>{var a,r;return(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("div",{className:"h-2 w-2 rounded-full ".concat(0===t?"bg-white":"border-[0.5px] bg-black")}),(0,n.jsx)("p",{className:"text-sm",children:e.name}),(0,n.jsx)("span",{className:"text-xs",children:e.rating?(0,n.jsxs)(n.Fragment,{children:["(",e.rating,")"]}):null})]}),(null==(a=o.termination)?void 0:a.winner)===(0==t?"white":"black")?(0,n.jsx)("p",{className:"text-xs text-engine-3",children:"1"}):(null==(r=o.termination)?void 0:r.winner)!=="none"?(0,n.jsx)("p",{className:"text-xs text-human-3",children:"0"}):void 0===o.termination?(0,n.jsx)(n.Fragment,{}):(0,n.jsx)("p",{className:"text-xs text-secondary",children:"\xbd"})]},t)}),(0,n.jsx)("div",{className:"mt-1 flex items-center justify-center gap-1",children:(0,n.jsxs)("span",{className:"text-xxs text-secondary",children:["Watch on"," ",(0,n.jsx)("a",{href:"https://lichess.org/".concat(o.id),target:"_blank",rel:"noopener noreferrer",className:"text-primary/60 underline hover:text-primary",children:"Lichess"})]})})]}),(0,n.jsxs)("div",{className:"flex w-full items-center justify-between text-xs md:hidden",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)("div",{className:"h-2 w-2 rounded-full bg-white"}),(0,n.jsx)("span",{className:"font-medium",children:o.whitePlayer.name}),o.whitePlayer.rating&&(0,n.jsxs)("span",{className:"text-primary/60",children:["(",o.whitePlayer.rating,")"]}),(0,n.jsx)(N.k,{fen:null==(e=m.currentNode)?void 0:e.fen,color:"white",iconClassName:"!text-xs text-primary/70",textClassName:"text-primary/70"})]}),(0,n.jsx)("div",{className:"flex items-center gap-1",children:s.isLive?(0,n.jsx)("span",{className:"font-medium text-red-400",children:"LIVE"}):(null==(t=o.termination)?void 0:t.winner)==="none"?(0,n.jsx)("span",{className:"font-medium text-primary/80",children:"\xbd-\xbd"}):(0,n.jsxs)("span",{className:"font-medium",children:[(0,n.jsx)("span",{className:"text-primary/70",children:(null==(a=o.termination)?void 0:a.winner)==="white"?"1":"0"}),(0,n.jsx)("span",{className:"text-primary/70",children:"-"}),(0,n.jsx)("span",{className:"text-primary/70",children:(null==(r=o.termination)?void 0:r.winner)==="black"?"1":"0"})]})}),(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)("div",{className:"h-2 w-2 rounded-full border-[0.5px] bg-black"}),(0,n.jsx)("span",{className:"font-medium",children:o.blackPlayer.name}),o.blackPlayer.rating&&(0,n.jsxs)("span",{className:"text-primary/60",children:["(",o.blackPlayer.rating,")"]}),(0,n.jsx)(N.k,{fen:null==(i=m.currentNode)?void 0:i.fen,color:"black",iconClassName:"!text-xs text-primary/70",textClassName:"text-primary/70"})]})]})]})},D={hidden:{opacity:0}
1,visible:{opacity:1,transition:{duration:.2,staggerChildren:.05}}},F={hidden:{opacity:0,y:4},visible:{opacity:1,y:0,transition:{duration:.25,ease:[.25,.46,.45,.94],type:"tween"}},exit:{opacity:0,y:-4,transition:{duration:.2,ease:[.25,.46,.45,.94],type:"tween"}}},K=(0,n.jsx)(g.P.div,{className:"flex h-full w-full flex-col items-center py-4",variants:D,initial:"hidden",animate:"visible",exit:"exit",style:{willChange:"transform, opacity"},children:(0,n.jsxs)("div",{className:"flex h-full w-[90%] flex-row gap-3",children:[(0,n.jsx)(g.P.div,{id:"navigation",className:"desktop-left-column-container flex flex-col overflow-hidden",variants:F,style:{willChange:"transform, opacity"},children:(0,n.jsxs)("div",{className:"flex h-full w-full flex-col overflow-hidden rounded-md border border-glass-border bg-glass backdrop-blur-md",children:[(0,n.jsx)(w.z,{title:"Analysis",icon:"live_tv",type:"analysis",streamState:s,embedded:!0,children:(0,n.jsx)(H,{})}),(0,n.jsxs)("div",{className:"red-scrollbar flex h-full flex-1 flex-col overflow-y-auto",children:[(0,n.jsx)("div",{className:"h-3 border-b border-glass-border"}),(0,n.jsx)(j.M,{game:o,termination:o.termination,showAnnotations:!0,disableKeyboardNavigation:!1,disableMoveClicking:!1,embedded:!0,heightClass:"h-40"}),(0,n.jsx)(M.p,{gameTree:m.gameTree,orientation:m.orientation,setOrientation:m.setOrientation,currentNode:m.currentNode,plyCount:m.plyCount,goToNode:m.goToNode,goToNextNode:m.goToNextNode,goToPreviousNode:m.goToPreviousNode,goToRootNode:m.goToRootNode,disableKeyboardNavigation:!1,disableNavigation:!1,embedded:!0})]})]})}),(0,n.jsxs)(g.P.div,{className:"desktop-middle-column-container flex flex-col gap-2",variants:F,style:{willChange:"transform, opacity"},children:[(0,n.jsxs)("div",{className:"flex w-full flex-col overflow-hidden rounded",children:[(0,n.jsx)(b.c,{name:"white"===m.orientation?o.blackPlayer.name:o.whitePlayer.name,rating:"white"===m.orientation?o.blackPlayer.rating:o.whitePlayer.rating,color:"white"===m.orientation?"black":"white",termination:null==(t=o.termination)?void 0:t.winner,currentFen:null==(a=m.currentNode)?void 0:a.fen,orientation:m.orientation,clock:d?"white"===m.orientation?{timeInSeconds:d.blackTime,isActive:"black"===d.activeColor,lastUpdateTime:d.lastUpdateTime}:{timeInSeconds:d.whiteTime,isActive:"white"===d.activeColor,lastUpdateTime:d.lastUpdateTime}:void 0}),(0,n.jsxs)("div",{className:"desktop-board-container relative flex aspect-square",children:[(0,n.jsx)(y.GameBoard,{game:o,availableMoves:m.availableMoves,setCurrentSquare:A,shapes:(()=>{let e=[...m.arrows];return P&&e.push(P),e})(),currentNode:m.currentNode,orientation:m.orientation,onPlayerMakeMove:U,goToNode:m.goToNode,gameTree:o.tree,destinationBadges:L}),B?(0,n.jsx)(k.e,{player:q,file:B[1].slice(0,1),onPlayerSelectPromotion:I}):null]}),(0,n.jsx)(b.c,{name:"white"===m.orientation?o.whitePlayer.name:o.blackPlayer.name,rating:"white"===m.orientation?o.whitePlayer.rating:o.blackPlayer.rating,color:"white"===m.orientation?"white":"black",termination:null==(i=o.termination)?void 0:i.winner,showArrowLegend:!0,currentFen:null==(l=m.currentNode)?void 0:l.fen,orientation:m.orientation,clock:d?"white"===m.orientation?{timeInSeconds:d.whiteTime,isActive:"white"===d.activeColor,lastUpdateTime:d.lastUpdateTime}:{timeInSeconds:d.blackTime,isActive:"black"===d.activeColor,lastUpdateTime:d.lastUpdateTime}:void 0})]}),(0,n.jsx)(T.f,{currentMaiaModel:m.currentMaiaModel,setCurrentMaiaModel:m.setCurrentMaiaModel,showTopMoveBadges:m.showTopMoveBadges,setShowTopMoveBadges:m.setShowTopMoveBadges,launchContinue:O,MAIA_MODELS:p.YH,game:o,currentNode:m.currentNode})]}),(0,n.jsx)(C.tM,{hover:e=>{e?S({orig:e.slice(0,2),dest:e.slice(2,4),brush:"green",modifiers:{lineWidth:10}}):S(null)},makeMove:_,controller:m,setHoverArrow:S,analysisEnabled:!0,handleToggleAnalysis:()=>{},itemVariants:F})]})}),W=(0,n.jsx)(g.P.div,{variants:D,initial:"hidden",animate:"visible",exit:"exit",style:{willChange:"transform, opacity"},children:(0,n.jsx)("div",{className:"flex h-full flex-1 flex-col justify-center gap-1",children:(0,n.jsxs)(g.P.div,{className:"flex w-full flex-col items-start justify-start gap-1",variants:F,style:{willChange:"transform, opacity"},children:[(0,n.jsx)(w.z,{title:"Analysis",icon:"live_tv",type:"analysis",currentMaiaModel:m.currentMaiaModel,setCurrentMaiaModel:m.setCurrentMaiaModel,MAIA_MODELS:p.YH,streamState:s,children:(0,n.jsx)(H,{})}),(0,n.jsxs)("div",{id:"analysis",className:"relative flex h-[100vw] w-screen",children:[(0,n.jsx)(y.GameBoard,{game:o,availableMoves:m.availableMoves,setCurrentSquare:A,shapes:(()=>{let e=[...m.arrows];return P&&e.push(P),e})(),currentNode:m.currentNode,orientation:m.orientation,onPlayerMakeMove:U,goToNode:m.goToNode,gameTree:o.tree,destinationBadges:L}),B?(0,n.jsx)(k.e,{player:q,file:B[1].slice(0,1),onPlayerSelectPromotion:I}):null]}),(0,n.jsxs)("div",{className:"flex w-full flex-col gap-0",children:[(0,n.jsx)("div",{className:"w-full !flex-grow-0",children:(0,n.jsx)(M.p,{gameTree:m.gameTree,orientation:m.orientation,setOrientation:m.setOrientation,currentNode:m.currentNode,plyCount:m.plyCount,goToNode:m.goToNode,goToNextNode:m.goToNextNode,goToPreviousNode:m.goToPreviousNode,goToRootNode:m.goToRootNode,disableKeyboardNavigation:!1,disableNavigation:!1,embedded:!0})}),(0,n.jsx)("div",{className:"relative bottom-0 h-48 max-h-48 flex-1 overflow-auto overflow-y-hidden",children:(0,n.jsx)(j.M,{game:o,termination:o.termination,showAnnotations:!0,disableKeyboardNavigation:!1,disableMoveClicking:!1})})]}),(0,n.jsx)(T.f,{currentMaiaModel:m.currentMaiaModel,setCurrentMaiaModel:m.setCurrentMaiaModel,showTopMoveBadges:m.showTopMoveBadges,setShowTopMoveBadges:m.setShowTopMoveBadges,launchContinue:O,MAIA_MODELS:p.YH,game:o,currentNode:m.currentNode})]})})});return(0,n.jsx)("div",{children:v?W:K})};var S=a(9186);let E=()=>{var e,t,a,l,c,g;let{gameId:f}=(0,i.useRouter)().query,p=(()=>{let[e,t]=(0,r.useState)(),[a,n]=(0,r.useState)({isConnected:!1,isConnecting:!1,isLive:!1,error:null,gameStarted:!1,gameEnded:!1}),[i,l]=(0,r.useState)({whiteTime:0,blackTime:0,activeColor:null,lastUpdateTime:
1Date.now()}),o=(0,r.useRef)(null),s=(0,r.useRef)(null),d=(0,r.useRef)([]),c=(0,r.useRef)(null),u=(0,r.useRef)(0),v=(0,r.useRef)(null),x=(0,r.useCallback)(()=>{c.current&&(clearTimeout(c.current),c.current=null)},[]),g=(0,r.useCallback)(()=>{x(),o.current&&(o.current.abort(),o.current=null),n({isConnected:!1,isConnecting:!1,isLive:!1,error:null,gameStarted:!1,gameEnded:!1}),s.current=null,d.current=[],u.current=0,l({whiteTime:0,blackTime:0,activeColor:null,lastUpdateTime:Date.now()})},[x]),f=(0,r.useCallback)(e=>{t(t=>{if((null==t?void 0:t.id)===e.id){var a,r;return n(e=>({...e,gameEnded:!0})),l(e=>({...e,activeColor:null,lastUpdateTime:Date.now()})),{...t,termination:{winner:e.winner,result:null!=(r=null==(a=e.status)?void 0:a.name)?r:"none"}}}return(0,h.WG)(e)}),n(e=>({...e,gameStarted:!0,isLive:!0,isConnected:!0,isConnecting:!1,error:null}))},[e]),p=(0,r.useCallback)(e=>{if(d.current.push(e),void 0!==e.wc&&void 0!==e.bc){let t=e.fen,a=(null==t?void 0:t.includes(" w "))?"white":"black";l({whiteTime:e.wc,blackTime:e.bc,activeColor:a,lastUpdateTime:Date.now()})}t(t=>{if(!t)return t;if(t.loaded)try{new Audio("/assets/sound/move.mp3").play().catch(e=>console.log("Could not play move sound:",e))}catch(e){}try{let a=(0,h.xI)(e,t);return{...a,loaded:a.loaded?a.loaded:t.loadedFen===e.fen}}catch(e){return console.error("Error parsing move:",e),t}})},[e]),w=(0,r.useCallback)(()=>{n(e=>({...e,isConnected:!1,isLive:!1,gameEnded:!0}))},[]),N=(0,r.useCallback)(async e=>{o.current&&o.current.abort(),o.current=new AbortController,s.current=e,n(e=>({...e,isConnecting:!0,error:null}));try{await (0,m.og)(e,f,p,w,o.current.signal)}catch(e){console.error("Stream error:",e),n({isConnected:!1,isConnecting:!1,isLive:!1,error:e instanceof Error?e.message:"Unknown streaming error",gameStarted:!1,gameEnded:!1}),o.current=null}},[f,p,w]);(0,r.useEffect)(()=>{v.current=N},[N]);let y=(0,r.useCallback)(e=>{d.current=[],u.current=0,x(),v.current&&v.current(e)},[x]),b=(0,r.useCallback)(()=>{if(s.current&&v.current){let e=v.current,t=s.current;n(a=>(a.isConnecting||(u.current=0,e(t)),a))}},[]);return(0,r.useEffect)(()=>()=>{g()},[g]),(0,r.useMemo)(()=>({game:e,streamState:a,clockState:i,startStream:y,stopStream:g,reconnect:b}),[e,a,i])})();(0,r.useEffect)(()=>{f&&"string"==typeof f&&(console.log("Starting stream for game:",f),p.startStream(f))},[f]);let w=(0,r.useRef)(p);w.current=p,(0,r.useEffect)(()=>()=>{w.current.stopStream()},[]);let N=(0,r.useMemo)(()=>{let e="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1",t=new S.l(e);return{id:"",blackPlayer:{name:"Black"},whitePlayer:{name:"White"},moves:[{board:e,lastMove:void 0,san:void 0,check:!1,maia_values:{}}],availableMoves:[{}],gameType:"blitz",termination:{result:"*",winner:void 0},maiaEvaluations:[{}],stockfishEvaluations:[void 0],tree:t,type:"stream"}},[]),y=p.game||N,b=(0,v.Q0)(y,void 0,!1),j=(0,r.useRef)(0);return(0,r.useEffect)(()=>{var e;if((null==(e=p.game)?void 0:e.tree)&&b)try{let e=p.game.tree.getMainLine().length;if(e>j.current){j.current=e;let t=p.game.tree.getRoot();for(;t.mainChild;)t=t.mainChild;b.currentNode&&t.parent===b.currentNode&&b.setCurrentNode(t)}}catch(e){console.error("Error setting current node:",e)}},[p.game,b]),(0,r.useEffect)(()=>{var e;(null==(e=p.game)?void 0:e.loaded)&&b.setCurrentNode(p.game.tree.getMainLine()[p.game.tree.getMainLine().length-1])},[null==(e=p.game)?void 0:e.loaded]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(o(),{children:[(0,n.jsxs)("title",{children:["Live Analysis: ",(null==(t=p.game)?void 0:t.whitePlayer.name)||"Unknown"," ","vs ",(null==(a=p.game)?void 0:a.blackPlayer.name)||"Unknown"," – Maia Chess"]}),(0,n.jsx)("meta",{name:"description",content:"Watch live analysis of ".concat((null==(l=p.game)?void 0:l.whitePlayer.name)||"Unknown"," vs ").concat((null==(c=p.game)?void 0:c.blackPlayer.name)||"Unknown"," with real-time Maia AI insights.")})]}),(0,n.jsx)(s.N,{children:b&&("no-cache"===b.maia.status||"downloading"===b.maia.status)?(0,n.jsx)(u.j,{progress:b.maia.progress,download:b.maia.downloadModel}):null}),(0,n.jsxs)(x.MR.Provider,{value:b,children:[(null==(g=p.game)?void 0:g.loaded)||!p.game||p.streamState.gameEnded?null:(0,n.jsx)("div",{className:"absolute left-0 top-0 z-40 h-full w-full bg-backdrop/90",children:(0,n.jsx)(d.Rh,{transparent:!0,isLoading:!0,message:(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center",children:[(0,n.jsxs)("p",{className:"text-center tracking-wide text-primary",children:["Connecting to Lichess game ",f,"..."]}
1),(0,n.jsx)("p",{className:"max-w-sm text-center text-sm text-secondary",children:"Lichess intentionally adds a short delay to live move data to reduce engine-assisted cheating. The stream will start soon."})]}),children:(0,n.jsx)(n.Fragment,{})})}),b&&(0,n.jsx)(P,{game:p.game||N,streamState:p.streamState,clockState:p.clockState,onReconnect:p.reconnect,onStopStream:p.stopStream,analysisController:b})]})]})};function A(){return(0,n.jsx)(c.X,{children:(0,n.jsx)(E,{})})}}},e=>{e.O(0,[669,324,367,671,809,572,314,455,433,919,636,593,792],()=>e(e.s=36114)),_N_E=e.O()}]);

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.