diffhub 0.1.22 → 0.1.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/.next/standalone/apps/cli/.next/BUILD_ID +1 -1
  2. package/.next/standalone/apps/cli/.next/app-path-routes-manifest.json +1 -0
  3. package/.next/standalone/apps/cli/.next/build-manifest.json +3 -3
  4. package/.next/standalone/apps/cli/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/apps/cli/.next/routes-manifest.json +6 -0
  6. package/.next/standalone/apps/cli/.next/server/app/_global-error.html +1 -1
  7. package/.next/standalone/apps/cli/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/standalone/apps/cli/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/.next/standalone/apps/cli/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/standalone/apps/cli/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/.next/standalone/apps/cli/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/.next/standalone/apps/cli/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/standalone/apps/cli/.next/server/app/_not-found.html +1 -1
  14. package/.next/standalone/apps/cli/.next/server/app/_not-found.rsc +1 -1
  15. package/.next/standalone/apps/cli/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  16. package/.next/standalone/apps/cli/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/.next/standalone/apps/cli/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  18. package/.next/standalone/apps/cli/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/.next/standalone/apps/cli/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/.next/standalone/apps/cli/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  21. package/.next/standalone/apps/cli/.next/server/app/api/watch/route.js +2 -2
  22. package/.next/standalone/apps/cli/.next/server/app/api/watch/route.js.nft.json +1 -1
  23. package/.next/standalone/apps/cli/.next/server/app/api/watch-events/route/app-paths-manifest.json +3 -0
  24. package/.next/standalone/apps/cli/.next/server/app/api/watch-events/route/build-manifest.json +9 -0
  25. package/.next/standalone/apps/cli/.next/server/app/api/watch-events/route/server-reference-manifest.json +4 -0
  26. package/.next/standalone/apps/cli/.next/server/app/api/watch-events/route.js +8 -0
  27. package/.next/standalone/apps/cli/.next/server/app/api/watch-events/route.js.map +5 -0
  28. package/.next/standalone/apps/cli/.next/server/app/api/watch-events/route.js.nft.json +1 -0
  29. package/.next/standalone/apps/cli/.next/server/app/api/watch-events/route_client-reference-manifest.js +3 -0
  30. package/.next/standalone/apps/cli/.next/server/app/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/apps/cli/.next/server/app-paths-manifest.json +1 -0
  32. package/.next/standalone/apps/cli/.next/server/chunks/[root-of-the-server]__05nbqqx._.js +4 -0
  33. package/.next/standalone/apps/cli/.next/server/chunks/[root-of-the-server]__05wbal-._.js +2 -2
  34. package/.next/standalone/apps/cli/.next/server/chunks/[root-of-the-server]__0qe921e._.js +3 -0
  35. package/.next/standalone/apps/cli/.next/server/chunks/[root-of-the-server]__101690.._.js +9 -0
  36. package/.next/standalone/apps/cli/.next/server/chunks/apps_cli__next-internal_server_app_api_watch-events_route_actions_0i.gzl8.js +3 -0
  37. package/.next/standalone/apps/cli/.next/server/chunks/ssr/_07okxca._.js +2 -2
  38. package/.next/standalone/apps/cli/.next/server/chunks/ssr/_13g0g_e._.js +1 -1
  39. package/.next/standalone/apps/cli/.next/server/functions-config-manifest.json +2 -1
  40. package/.next/standalone/apps/cli/.next/server/middleware-build-manifest.js +3 -3
  41. package/.next/standalone/apps/cli/.next/server/pages/404.html +1 -1
  42. package/.next/standalone/apps/cli/.next/server/pages/500.html +1 -1
  43. package/.next/standalone/apps/cli/.next/server/server-reference-manifest.js +1 -1
  44. package/.next/standalone/apps/cli/.next/server/server-reference-manifest.json +1 -1
  45. package/.next/standalone/apps/cli/.next/static/chunks/{0-le8unvr3s~..js → 0vm79-lt-4syt.js} +5 -5
  46. package/.next/standalone/apps/cli/package.json +1 -1
  47. package/bin/diffhub.mjs +275 -5
  48. package/package.json +1 -1
  49. package/.next/standalone/apps/cli/.next/server/chunks/[root-of-the-server]__01oij46._.js +0 -8
  50. package/.next/standalone/apps/cli/.next/server/chunks/[root-of-the-server]__126jjll._.js +0 -4
  51. /package/.next/standalone/apps/cli/.next/static/{Hr5DhyyWmSFusFY7-HlJ- → XaFUoKZbR-bS9r4T4fiPI}/_buildManifest.js +0 -0
  52. /package/.next/standalone/apps/cli/.next/static/{Hr5DhyyWmSFusFY7-HlJ- → XaFUoKZbR-bS9r4T4fiPI}/_clientMiddlewareManifest.js +0 -0
  53. /package/.next/standalone/apps/cli/.next/static/{Hr5DhyyWmSFusFY7-HlJ- → XaFUoKZbR-bS9r4T4fiPI}/_ssgManifest.js +0 -0
@@ -36,7 +36,7 @@ ${b.join("\n")}`})(g);if(await navigator.clipboard.writeText(a),!await h())retur
36
36
  --diffs-fg-number-addition-override: ${e.addition};
37
37
  --diffs-fg-number-deletion-override: ${e.deletion};
38
38
  }
39
- `)},lineAnnotations:x,renderAnnotation:y,renderGutterUtility:z},a)})}else C=(0,o.jsx)(ht,{onRender:A,variant:h?"large":"auto",changes:g?.changes});else C=(0,o.jsx)("div",{className:"px-4 py-6 text-sm text-muted-foreground",children:"No textual patch available for this file."});return(0,o.jsxs)("div",{"data-filename":a,className:"font-sans",children:[(0,o.jsx)(hd,{file:a,insertions:g?.insertions??0,deletions:g?.deletions??0,commentCount:f.length,repoPath:m,collapsed:i,active:j,onToggleCollapse:l,headingId:v,panelId:w}),(0,o.jsx)("div",{id:w,role:"region","aria-labelledby":v,hidden:B,children:C})]})}),hB=(0,g9.memo)(function({file:a,filePatch:b,layout:c,prerenderedHTML:d,deferPatchRendering:e,isLargeFile:f,forceRender:g,comments:h,fileStat:i,collapsed:j,active:k,onToggleCollapse:l,onVisible:m,repoPath:n,onAddComment:p,onDeleteComment:q}){let r=(0,g9.useRef)(null),[s,t]=(0,g9.useState)(null),u=e||f,[v,w]=(0,g9.useState)(()=>!u||g);!v&&(g||null!==s)&&w(!0);let x=(0,g9.useCallback)(()=>{w(!0)},[]),y=v||g||null!==s||!u,z=(0,g9.useRef)(m);(0,g9.useEffect)(()=>{z.current=m},[m]),(0,g9.useEffect)(()=>{let b=r.current;if(!b||"u"<typeof IntersectionObserver)return;let c=new IntersectionObserver(b=>{let[c]=b;if(c){var d;c.isIntersecting&&c.intersectionRatio>=.35&&(d=z.current,hp=a,hq=d,0===hr&&(hr=requestAnimationFrame(()=>{hr=0;let a=hp,b=hq;hp=null,hq=null,a&&b&&b(a)})))}},{rootMargin:"-52px 0px -55% 0px",threshold:[.35,.6]});return c.observe(b),()=>c.disconnect()},[a]);let A=hy(a),B=(0,g9.useMemo)(()=>j||y?{}:{minHeight:Math.min(960,Math.max(128,22*(i?.changes??1)))},[j,i,y]);return(0,g9.useEffect)(()=>{let a=r.current;if(!a||"u"<typeof ResizeObserver||j||null!==s||!y)return;let b=null,c=a.getBoundingClientRect().height,d=new ResizeObserver(([e])=>{if(!e)return;let f=e.contentRect.height;f!==c&&(c=f,b&&clearTimeout(b),b=setTimeout(()=>{b=null,a.style.minHeight=`${a.getBoundingClientRect().height}px`,d.disconnect()},200))});return d.observe(a),()=>{b&&clearTimeout(b),d.disconnect(),a.style.minHeight=""}},[j,s,c,y]),(0,o.jsx)("section",{ref:r,id:A,"data-file-section":a,className:"scroll-mt-[52px]",style:B,children:(0,o.jsx)(hA,{file:a,filePatch:b,layout:c,prerenderedHTML:d?.[c],shouldRenderPatch:y,comments:h,fileStat:i,isLargeFile:f,collapsed:j,active:k,sectionId:A,onToggleCollapse:l,repoPath:n,commentTarget:s,onCommentTargetChange:t,onRenderPatch:x,onAddComment:p,onDeleteComment:q})})}),hC=({patchesByFile:a,prerenderedHTMLByFile:b,layout:c,comments:d,onAddComment:e,onDeleteComment:f,activeFileId:g,fileStats:h,collapsedFiles:i,onToggleCollapse:j,onActiveFileChange:k,forceRenderFiles:l,repoPath:m})=>{let n=(0,g9.useMemo)(()=>{let a=new Map;for(let b of h)a.set(b.file,b);return a},[h]),p=(0,g9.useMemo)(()=>(a=>{let b={files:[],folders:new Map};for(let c of a){let a=c.split("/"),d=b;for(let b=0;b<a.length-1;b+=1){let c=a[b];d.folders.has(c)||d.folders.set(c,{files:[],folders:new Map});let e=d.folders.get(c);e&&(d=e)}d.files.push(c)}let c=[],d=a=>{for(let[,b]of[...a.folders.entries()].toSorted((a,b)=>a[0].localeCompare(b[0])))d(b);let b=[...a.files].toSorted((a,b)=>{let c=a.split("/").at(-1)??a,d=b.split("/").at(-1)??b;return c.localeCompare(d)});c.push(...b)};return d(b),c})([...h.map(a=>a.file),...Object.keys(a).filter(a=>!n.has(a))]),[n,h,a]),q=(0,g9.useMemo)(()=>{let a=new Map;for(let b of d){let c=a.get(b.file);c?c.push(b):a.set(b.file,[b])}return a},[d]),r=p.length>=24&&0===Object.keys(b??{}).length,s=(0,g9.useMemo)(()=>{let a=new Map;for(let b of p)a.set(b,()=>j(b));return a},[p,j]);return 0===p.length?(0,o.jsxs)(hg,{className:"h-full",children:[(0,o.jsxs)(hh,{children:[(0,o.jsx)(hj,{variant:"icon",children:(0,o.jsx)(he,{})}),(0,o.jsx)(hk,{children:"No changes"}),(0,o.jsx)(hl,{children:"The working tree is clean relative to the base branch"})]}),(0,o.jsx)(hm,{children:(0,o.jsxs)("p",{className:"text-xs text-muted-foreground/60",children:["Press ",(0,o.jsx)(a8,{children:"r"})," to force refresh"]})})]}):(0,o.jsx)("div",{id:"diff-container",children:p.map(d=>{var h;let j=n.get(d),p=a[d]??"",t=void 0!==j&&(h=p.length,!j.binary&&(j.changes>=500||void 0!==h&&h>=5e5));return(0,o.jsx)(hB,{file:d,filePatch:p,layout:c,prerenderedHTML:b?.[d],deferPatchRendering:r,isLargeFile:t,forceRender:l?.has(d)??!1,comments:q.get(d)??ho,fileStat:j,collapsed:i.has(d),active:g===d,onToggleCollapse:s.get(d),onVisible:k,repoPath:m,onAddComment:e,onDeleteComment:f},d)})})},hD=(a,b,c)=>{let[d,e]=(0,q.useState)(b);return(0,q.useEffect)(()=>{try{let b=localStorage.getItem(a);null!==b&&(!c||c.includes(b))&&e(b)}catch{}},[a,c]),[d,(0,q.useCallback)(b=>{e(c=>{let d="function"==typeof b?b(c):b;try{localStorage.setItem(a,d)}catch{}return d})},[a])]},hE="change",hF="watch-error",hG="ready",hH=["split","stacked"],hI=["all","uncommitted"],hJ=({text:a,pulse:b=!1})=>(0,o.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,o.jsx)("div",{className:`text-muted-foreground text-sm${b?" animate-pulse":""}`,children:a})}),hK=a=>{let b=hy(a).replaceAll(/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g,"\\$&");return`#${b}`},hL=({notice:a})=>{let b="border-border bg-muted/40 text-muted-foreground";return"destructive"===a.tone?b="border-destructive/30 bg-destructive/10 text-destructive":"warning"===a.tone&&(b="border-amber-500/30 bg-amber-500/10 text-amber-600 dark:text-amber-400"),(0,o.jsx)("div",{className:`border-b px-4 py-2 text-xs ${b}`,children:(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)("span",{className:"font-medium",children:a.label}),a.detail&&(0,o.jsx)("span",{className:"text-xs opacity-80",children:a.detail})]})})},hM=({filesData:a,deferredDiffData:b,diffError:c,syncNotice:d,layout:e,comments:f,onAddComment:g,onDeleteComment:h,selectedFile:i,collapsedFiles:j,forceRenderFiles:k,onToggleCollapse:l,onActiveFileChange:m,repoPath:n,diffWatchdogTripped:p,diffHintShown:q,onRetryDiff:r})=>null===a?(0,o.jsx)(hJ,{text:"Loading diff…",pulse:!0}):0===a.files.length?(0,o.jsx)(hJ,{text:"No changes"}):b?(0,o.jsxs)(o.Fragment,{children:[d&&(0,o.jsx)(hL,{notice:d}),(0,o.jsx)(hC,{patchesByFile:b.patchesByFile,prerenderedHTMLByFile:b.prerenderedHTMLByFile,layout:e,comments:f,onAddComment:g,onDeleteComment:h,activeFileId:i,fileStats:a.files,collapsedFiles:j,forceRenderFiles:k,onToggleCollapse:l,onActiveFileChange:m,repoPath:n})]}):c?(0,o.jsx)(hJ,{text:c}):p?(0,o.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-3",children:[(0,o.jsx)("div",{className:"text-muted-foreground text-sm",children:"Still loading the diff…"}),(0,o.jsx)("div",{className:"text-muted-foreground text-xs opacity-80",children:"Large diffs take longer on first load."}),(0,o.jsx)(a7,{size:"sm",variant:"default",onClick:r,children:"Retry"})]}):q?(0,o.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2",children:[(0,o.jsx)("div",{className:"text-muted-foreground animate-pulse text-sm",children:`Loading diff${a?` (${a.files.length} files)…`:"…"}`}),(0,o.jsx)("div",{className:"text-muted-foreground text-xs opacity-80",children:"Large diffs take longer on first load."})]}):(0,o.jsx)(hJ,{text:`Loading diff${a?` (${a.files.length} files)…`:"…"}`,pulse:!0});a.s(["DiffApp",0,({repoPath:a,defaultSidebarOpen:b=!0})=>{let[c,d]=(0,q.useState)(null),e=(0,q.useRef)(null),[f,g]=(0,q.useState)([]),h=(0,q.useRef)([]),[i,j]=(0,q.useState)(null),k=(0,q.useRef)(null),[l,m]=(0,q.useState)(null),[n,r]=hD("diffhub-layout","stacked",hH),{resolvedTheme:s}=(0,p.useTheme)(),t="light"===s?"light":"dark",u=(0,q.useRef)(n),v=(0,q.useRef)(t),[w,x]=(0,q.useState)(""),[y,z]=(0,q.useState)(256),[A,B]=(0,q.useState)(!1),[C,D]=(0,q.useState)("connecting"),E=(0,q.useRef)(null),[F,G]=(0,q.useState)(null),[H,I]=(0,q.useState)(null),[J,K]=(0,q.useState)(!1),[L,M]=hD("diffhub-diffMode","all",hI),N=(0,q.useRef)(L),O=(0,q.useRef)(null),P=(0,q.useRef)(null),Q=(0,q.useRef)(null),R=(0,q.useRef)(null),S=(0,q.useRef)(!1),T=(0,q.useRef)(!1),U=(0,q.useRef)(!1),V=(0,q.useRef)(!1),W=(0,q.useRef)(0),[X,Y]=(0,q.useState)(!1),[Z,$]=(0,q.useState)(!1),[,_]=(0,q.useTransition)(),[aa,ab]=(0,q.useState)(()=>new Set),[ac,ad]=(0,q.useState)(()=>new Set);(0,q.useEffect)(()=>{N.current=L},[L]),(0,q.useEffect)(()=>{e.current=c},[c]),(0,q.useEffect)(()=>{h.current=f},[f]),(0,q.useEffect)(()=>{ab(new Set([]))},[a]);let ae=(0,q.useCallback)(b=>{ab(c=>{let d=b(c);if(d===c)return c;try{localStorage.setItem(`diffhub-collapsed:${a}`,JSON.stringify([...d]))}catch{}return d})},[a]),af=(0,q.useRef)(l),ag=(0,q.useRef)(H);(0,q.useEffect)(()=>{af.current=l},[l]),(0,q.useEffect)(()=>{ag.current=H},[H]),(({selector:a,rootRef:b})=>{(0,q.useEffect)(()=>{if("u"<typeof ResizeObserver||"u"<typeof MutationObserver)return;let c=new WeakMap,d=0,e=0,f=()=>{if(e=0,0===d)return;let a=d;d=0,window.scrollBy({behavior:"instant",left:0,top:a})},g=new ResizeObserver(a=>{for(let b of a){let a=b.contentRect.height,e=c.get(b.target);c.set(b.target,a),void 0!==e&&e!==a&&b.target.getBoundingClientRect().bottom<=0&&(d+=a-e)}0!==d&&0===e&&(e=requestAnimationFrame(f))}),h=new WeakSet,i=()=>{for(let c of(b?.current??document.body).querySelectorAll(a))h.has(c)||(h.add(c),g.observe(c))};i();let j=new MutationObserver(i),k=b?.current??document.body;return j.observe(k,{childList:!0,subtree:!0}),()=>{0!==e&&cancelAnimationFrame(e),g.disconnect(),j.disconnect()}},[a,b])})({selector:"[data-file-section]"});let ah=(0,q.useCallback)(()=>{let a=new URLSearchParams;"uncommitted"===N.current&&a.set("mode","uncommitted");let b=a.toString();return b?`?${b}`:""},[]),ai=(0,q.useCallback)(()=>{let a=new URLSearchParams;R.current&&a.set("generation",R.current),"uncommitted"===N.current&&a.set("mode","uncommitted"),a.set("layout",u.current),a.set("theme",v.current);let b=a.toString();return b?`?${b}`:""},[]),aj=(0,q.useCallback)(async a=>{let b=R.current,c=Q.current;Y(!1),I(null),console.info("[diffhub] fetchDiff start",{fingerprint:c,generation:b,mode:N.current,requestId:a});let d=new AbortController,e=setTimeout(()=>{d.abort(Error("Diff request timed out"))},15e3);try{var f,g;let e,h,i=await fetch(`/api/diff${ai()}`,{signal:d.signal});if(!i.ok){let d=(await i.json().catch(()=>({error:"Failed to load diff"}))).error??`Failed to load diff (${i.status})`;console.error("[diffhub] fetchDiff non-ok response",{fingerprint:c,generation:b,mode:N.current,requestId:a,responseStatus:i.status,responseStatusText:i.statusText,serverError:d}),a===W.current&&I(d);return}let j=(f=await i.json(),g=c??"unknown",e=f.patchesByFile??Object.fromEntries((a=>{let b=new Map,c=/^diff --git a\/(.+?) b\/(.+)$/gm,d=[],e=c.exec(a);for(;e;)d.push({file:e[2],start:e.index}),e=c.exec(a);for(let[c,e]of d.entries()){let f=d[c+1]?.start??a.length,g=a.slice(e.start,f).trimEnd();b.set(e.file,g?`${g}
40
- `:"")}return b})(f.patch??"")),{baseBranch:f.baseBranch,branch:f.branch,generation:f.generation,mergeBase:f.mergeBase,patchesByFile:e,prerenderedHTMLByFile:f.prerenderedHTMLByFile,reviewKeysByFile:f.reviewKeysByFile??(h=f.generation,Object.fromEntries(Object.entries(e).map(([a,b])=>[a,`${h}:${(a=>{let b=0;for(let c=0;c<a.length;c+=1)b=Math.trunc(Math.imul(31,b)+(a.codePointAt(c)??0));return Math.abs(b).toString(36)})(`${a}:${b}`)}`]))),sourceFingerprint:g});if(a!==W.current||c!==Q.current||b!==R.current){console.info("[diffhub] fetchDiff response stale",{fingerprint:c,generation:b,latestRequestId:W.current,requestId:a}),null!==R.current&&(V.current=!0);return}console.info("[diffhub] fetchDiff success",{fileCount:Object.keys(j.patchesByFile).length,fingerprint:c,generation:j.generation,requestId:a}),_(()=>m(j))}catch(d){console.error("[diffhub] fetchDiff threw",{error:d,fingerprint:c,generation:b,mode:N.current,requestId:a}),a===W.current&&I(d instanceof Error?d.message:String(d))}finally{clearTimeout(e)}},[ai,_]),ak=(0,q.useCallback)(async()=>{if(V.current=!0,!U.current){for(U.current=!0,K(!0);V.current;)V.current=!1,W.current+=1,await aj(W.current);U.current=!1,K(!1)}},[aj]);(0,q.useEffect)(()=>{(u.current!==n||v.current!==t)&&(u.current=n,v.current=t,W.current+=1,P.current=null,I(null),ak())},[n,t,ak]);let al=(0,q.useCallback)(a=>{ad(b=>{let c=null;for(let d of a)!d||b.has(d)||(c??=new Set(b)).add(d);return c??b})},[]),am=(0,q.useCallback)(a=>{if(Q.current=a.fingerprint,R.current=a.generation,0===a.files.length){k.current=null,W.current+=1,(0,q.startTransition)(()=>{j(null),m(null)}),I(null),P.current=a.fingerprint;return}let b=k.current;b&&a.files.some(a=>a.file===b)||(k.current=b=a.files[0]?.file??null,(0,q.startTransition)(()=>j(b))),al([b]);let c=a.fingerprint!==P.current,d=af.current?.generation===a.generation;(c||!d||null!==ag.current)&&(P.current=a.fingerprint,c&&(W.current+=1),ak())},[al,ak]),an=(0,q.useCallback)(()=>{W.current+=1,P.current=null,Q.current=null,R.current=null,m(null),I(null)},[]),ao=(0,q.useRef)(()=>Promise.resolve()),ap=(0,q.useCallback)(async(a={})=>{var b,c;let f=a.includeComments??!0,i=()=>{B(!1),S.current=!1,T.current&&(T.current=!1,queueMicrotask(()=>{ao.current()}))};if(S.current){T.current=!0;return}S.current=!0,B(!0),G(null);let j=await Promise.all([fetch(`/api/files${ah()}`),f?fetch("/api/comments").then(async a=>{if(!a.ok)throw Error(`Failed to load comments (${a.status})`);return await a.json()}).catch(a=>(console.error("[diffhub] comments refresh failed",{error:a}),null)):Promise.resolve(null)]).catch(a=>(G(a instanceof Error?a.message:String(a)),null));if(!j)return void i();let[k,l]=j;if(!k.ok){G((await k.json().catch(()=>({error:"Network error"}))).error??"Failed to load files"),i();return}let m=await k.json(),n=(b=e.current,!(b&&b.baseBranch===m.baseBranch&&b.branch===m.branch&&b.deletions===m.deletions&&b.fingerprint===m.fingerprint&&b.generation===m.generation&&b.insertions===m.insertions&&b.files.length===m.files.length&&b.files.every((a,b)=>{let c=m.files[b];return void 0!==c&&a.binary===c.binary&&a.changes===c.changes&&a.deletions===c.deletions&&a.file===c.file&&a.insertions===c.insertions}))),o=null!==l&&(c=h.current,!(c.length===l.length&&c.every((a,b)=>{let c=l[b];return void 0!==c&&a.body===c.body&&a.createdAt===c.createdAt&&a.file===c.file&&a.id===c.id&&a.lineNumber===c.lineNumber&&a.side===c.side&&a.tag===c.tag})));(n||o)&&(n&&(e.current=m),o&&null!==l&&(h.current=l),(0,q.startTransition)(()=>{n&&d(m),o&&null!==l&&g(l)})),am(m),i()},[ah,am]);(0,q.useEffect)(()=>{ao.current=ap},[ap]),(0,q.useEffect)(()=>{if("u"<typeof EventSource)return void D("offline");let a=!0;D("connecting");let b=new EventSource("/api/watch"),c=()=>{E.current&&(clearTimeout(E.current),E.current=null)},d=()=>{c(),D("live")},e=()=>{c(),(async()=>{await ao.current({includeComments:!1}),a&&(D("updated"),E.current=setTimeout(()=>{a&&D("live")},2500))})()},f=a=>{console.error("[diffhub] file watch stream reported an error",{event:a}),c(),D("offline")},g=()=>{c(),D("offline")};return b.addEventListener(hG,d),b.addEventListener(hE,e),b.addEventListener(hF,f),b.addEventListener("error",g),()=>{a=!1,c(),b.removeEventListener(hG,d),b.removeEventListener(hE,e),b.removeEventListener(hF,f),b.removeEventListener("error",g),b.close()}},[a]);let aq=(0,q.useCallback)(()=>{Y(!1),$(!1),I(null),W.current+=1,P.current=null},[]),ar=(0,q.useCallback)(()=>{ap()},[ap]),as=(0,q.useCallback)(()=>{aq(),ap()},[aq,ap]),at=(0,q.useCallback)(()=>{aq(),null===af.current&&m(null),ak()},[ak,aq]);(0,q.useEffect)(()=>{ap()},[ap]),(0,q.useEffect)(()=>{if(!c||0===c.files.length||l||H)return void Y(!1);let a=setTimeout(()=>Y(!0),2e4);return()=>clearTimeout(a)},[c,l,H]),(0,q.useEffect)(()=>{if(!c||0===c.files.length||l||H)return void $(!1);let a=setTimeout(()=>$(!0),1e4);return()=>clearTimeout(a)},[c,l,H]);let au=(0,q.useCallback)((a,b=800)=>{O.current={file:a,until:Date.now()+b},k.current=a,(0,q.startTransition)(()=>j(a))},[]),av=(0,q.useCallback)((a,b="smooth")=>{au(a);let d=c?.files.map(a=>a.file)??[],e=d.indexOf(a);al([a,d[e-1],d[e+1]]),ae(b=>{if(b.has(a)){let c=new Set(b);return c.delete(a),c}return b});let f=a=>{a.scrollIntoView({behavior:b,block:"start"})},g=document.querySelector(hK(a));if(g)return void f(g);let h=document.querySelector("#diff-container");if(!h)return;let i=new MutationObserver(()=>{let b=document.querySelector(hK(a));b&&(i.disconnect(),f(b))});i.observe(h,{childList:!0,subtree:!0}),setTimeout(()=>i.disconnect(),5e3)},[al,c,au,ae]),aw=(0,q.useCallback)(a=>{let b=O.current;if(b){if(Date.now()>b.until)O.current=null;else if(b.file!==a)return}k.current!==a&&(k.current=a,(0,q.startTransition)(()=>j(a)))},[]),ax=(0,q.useCallback)(a=>{au(a),ae(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[au,ae]),ay=(0,q.useCallback)(()=>{ae(()=>new Set((c?.files??[]).map(a=>a.file)))},[c,ae]),az=(0,q.useCallback)(()=>{ae(()=>new Set)},[ae]);(0,q.useEffect)(()=>{let a=a=>{if(!(a.target instanceof HTMLTextAreaElement||a.target instanceof HTMLInputElement)){if("s"!==a.key||a.metaKey||a.ctrlKey||r(a=>"split"===a?"stacked":"split"),"/"!==a.key&&"t"!==a.key.toLowerCase()||a.metaKey||a.ctrlKey||(a.preventDefault(),document.querySelector('input[placeholder="Filter files…"]')?.focus()),"c"===a.key.toLowerCase()&&!a.metaKey&&!a.ctrlKey&&i){if(a.shiftKey)return void ay();ax(i)}if("e"!==a.key.toLowerCase()||!a.shiftKey||a.metaKey||a.ctrlKey||az(),"r"!==a.key||a.metaKey||a.ctrlKey||as(),"j"===a.key||"k"===a.key){let b=c?.files??[];if(0===b.length)return;let d=b.findIndex(a=>a.file===i),e="j"===a.key?b[d+1]:b[d-1];e&&av(e.file)}}};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[ay,az,c,as,av,i,r,ax]);let aA=(0,q.useCallback)(a=>{N.current=a,M(a),an(),ap()},[an,ap,M]),aB=(0,q.useCallback)(async(a,b,c,d,e)=>{let f=await fetch("/api/comments",{body:JSON.stringify({body:d,file:a,lineNumber:b,side:"deletions"===c?"left":"right",tag:e}),headers:{"Content-Type":"application/json"},method:"POST"});if(!f.ok)return console.error("[diffhub] add comment failed",{error:(await f.json().catch(()=>({error:"Failed to save comment"}))).error??`Failed to save comment (${f.status})`}),!1;let h=await f.json();return g(a=>[...a,h]),!0},[]),aC=(0,q.useCallback)(async a=>{let b=await fetch(`/api/comments?id=${a}`,{method:"DELETE"});return b.ok?(g(b=>b.filter(b=>b.id!==a)),!0):(console.error("[diffhub] delete comment failed",{error:(await b.json().catch(()=>({error:"Failed to delete comment"}))).error??`Failed to delete comment (${b.status})`}),!1)},[]),aD=(0,q.useCallback)(async()=>{if(0===h.current.length)return!0;let a=await fetch("/api/comments?all=1",{method:"DELETE"});return a.ok?(h.current=[],g([]),!0):(console.error("[diffhub] clear comments failed",{error:(await a.json().catch(()=>({error:"Failed to clear comments"}))).error??`Failed to clear comments (${a.status})`}),!1)},[]),aE=F&&null!==c?{detail:F,label:"Background refresh failed",tone:"destructive"}:H&&l?{detail:H,label:"Diff refresh failed",tone:"destructive"}:null;return F&&null===c?(0,o.jsx)(gI,{className:"min-h-svh",defaultOpen:b,children:(0,o.jsxs)(gL,{className:"flex flex-col h-svh items-center justify-center gap-4",children:[(0,o.jsxs)("div",{className:"rounded-lg border border-destructive/30 bg-destructive/10 px-6 py-4 text-sm text-destructive max-w-md text-center",children:[(0,o.jsx)("p",{className:"font-semibold mb-1",children:"Failed to load diff"}),(0,o.jsx)("p",{className:"text-xs opacity-80",children:F})]}),(0,o.jsx)(a7,{variant:"outline",onClick:ar,children:"Retry"})]})}):(0,o.jsxs)(gI,{className:"min-h-svh",defaultOpen:b,style:{"--sidebar-width":`${y}px`},children:[(0,o.jsx)(g7,{files:c?.files??[],selectedFile:i,onSelectFile:av,comments:f,filterQuery:w,onFilterChange:x,isLoading:null===c,insertions:c?.insertions??0,deletions:c?.deletions??0,sidebarWidth:y,onSidebarWidthChange:z}),(0,o.jsxs)(gL,{className:"flex flex-col min-h-svh",children:[(0,o.jsx)("div",{className:"sticky top-0 z-20",children:(0,o.jsx)(gU,{branch:c?.branch??"…",baseBranch:c?.baseBranch??"main",refreshing:A||J,onRefresh:as,watchStatus:C,comments:f,onClearComments:aD,diffMode:L,onDiffModeChange:aA,layout:n,onLayoutChange:r,syncNotice:aE})}),(0,o.jsx)(hM,{filesData:c,deferredDiffData:l,diffError:H,syncNotice:aE,layout:n,comments:f,onAddComment:aB,onDeleteComment:aC,selectedFile:i,collapsedFiles:aa,forceRenderFiles:ac,onToggleCollapse:ax,onActiveFileChange:aw,repoPath:a,diffWatchdogTripped:X,diffHintShown:Z,onRetryDiff:at})]})]})}],85340)}];
39
+ `)},lineAnnotations:x,renderAnnotation:y,renderGutterUtility:z},a)})}else C=(0,o.jsx)(ht,{onRender:A,variant:h?"large":"auto",changes:g?.changes});else C=(0,o.jsx)("div",{className:"px-4 py-6 text-sm text-muted-foreground",children:"No textual patch available for this file."});return(0,o.jsxs)("div",{"data-filename":a,className:"font-sans",children:[(0,o.jsx)(hd,{file:a,insertions:g?.insertions??0,deletions:g?.deletions??0,commentCount:f.length,repoPath:m,collapsed:i,active:j,onToggleCollapse:l,headingId:v,panelId:w}),(0,o.jsx)("div",{id:w,role:"region","aria-labelledby":v,hidden:B,children:C})]})}),hB=(0,g9.memo)(function({file:a,filePatch:b,layout:c,prerenderedHTML:d,deferPatchRendering:e,isLargeFile:f,forceRender:g,comments:h,fileStat:i,collapsed:j,active:k,onToggleCollapse:l,onVisible:m,repoPath:n,onAddComment:p,onDeleteComment:q}){let r=(0,g9.useRef)(null),[s,t]=(0,g9.useState)(null),u=e||f,[v,w]=(0,g9.useState)(()=>!u||g);!v&&(g||null!==s)&&w(!0);let x=(0,g9.useCallback)(()=>{w(!0)},[]),y=v||g||null!==s||!u,z=(0,g9.useRef)(m);(0,g9.useEffect)(()=>{z.current=m},[m]),(0,g9.useEffect)(()=>{let b=r.current;if(!b||"u"<typeof IntersectionObserver)return;let c=new IntersectionObserver(b=>{let[c]=b;if(c){var d;c.isIntersecting&&c.intersectionRatio>=.35&&(d=z.current,hp=a,hq=d,0===hr&&(hr=requestAnimationFrame(()=>{hr=0;let a=hp,b=hq;hp=null,hq=null,a&&b&&b(a)})))}},{rootMargin:"-52px 0px -55% 0px",threshold:[.35,.6]});return c.observe(b),()=>c.disconnect()},[a]);let A=hy(a),B=(0,g9.useMemo)(()=>j||y?{}:{minHeight:Math.min(960,Math.max(128,22*(i?.changes??1)))},[j,i,y]);return(0,g9.useEffect)(()=>{let a=r.current;if(!a||"u"<typeof ResizeObserver||j||null!==s||!y)return;let b=null,c=a.getBoundingClientRect().height,d=new ResizeObserver(([e])=>{if(!e)return;let f=e.contentRect.height;f!==c&&(c=f,b&&clearTimeout(b),b=setTimeout(()=>{b=null,a.style.minHeight=`${a.getBoundingClientRect().height}px`,d.disconnect()},200))});return d.observe(a),()=>{b&&clearTimeout(b),d.disconnect(),a.style.minHeight=""}},[j,s,c,y]),(0,o.jsx)("section",{ref:r,id:A,"data-file-section":a,className:"scroll-mt-[52px]",style:B,children:(0,o.jsx)(hA,{file:a,filePatch:b,layout:c,prerenderedHTML:d?.[c],shouldRenderPatch:y,comments:h,fileStat:i,isLargeFile:f,collapsed:j,active:k,sectionId:A,onToggleCollapse:l,repoPath:n,commentTarget:s,onCommentTargetChange:t,onRenderPatch:x,onAddComment:p,onDeleteComment:q})})}),hC=({patchesByFile:a,prerenderedHTMLByFile:b,layout:c,comments:d,onAddComment:e,onDeleteComment:f,activeFileId:g,fileStats:h,collapsedFiles:i,onToggleCollapse:j,onActiveFileChange:k,forceRenderFiles:l,repoPath:m})=>{let n=(0,g9.useMemo)(()=>{let a=new Map;for(let b of h)a.set(b.file,b);return a},[h]),p=(0,g9.useMemo)(()=>(a=>{let b={files:[],folders:new Map};for(let c of a){let a=c.split("/"),d=b;for(let b=0;b<a.length-1;b+=1){let c=a[b];d.folders.has(c)||d.folders.set(c,{files:[],folders:new Map});let e=d.folders.get(c);e&&(d=e)}d.files.push(c)}let c=[],d=a=>{for(let[,b]of[...a.folders.entries()].toSorted((a,b)=>a[0].localeCompare(b[0])))d(b);let b=[...a.files].toSorted((a,b)=>{let c=a.split("/").at(-1)??a,d=b.split("/").at(-1)??b;return c.localeCompare(d)});c.push(...b)};return d(b),c})([...h.map(a=>a.file),...Object.keys(a).filter(a=>!n.has(a))]),[n,h,a]),q=(0,g9.useMemo)(()=>{let a=new Map;for(let b of d){let c=a.get(b.file);c?c.push(b):a.set(b.file,[b])}return a},[d]),r=p.length>=24&&0===Object.keys(b??{}).length,s=(0,g9.useMemo)(()=>{let a=new Map;for(let b of p)a.set(b,()=>j(b));return a},[p,j]);return 0===p.length?(0,o.jsxs)(hg,{className:"h-full",children:[(0,o.jsxs)(hh,{children:[(0,o.jsx)(hj,{variant:"icon",children:(0,o.jsx)(he,{})}),(0,o.jsx)(hk,{children:"No changes"}),(0,o.jsx)(hl,{children:"The working tree is clean relative to the base branch"})]}),(0,o.jsx)(hm,{children:(0,o.jsxs)("p",{className:"text-xs text-muted-foreground/60",children:["Press ",(0,o.jsx)(a8,{children:"r"})," to force refresh"]})})]}):(0,o.jsx)("div",{id:"diff-container",children:p.map(d=>{var h;let j=n.get(d),p=a[d]??"",t=void 0!==j&&(h=p.length,!j.binary&&(j.changes>=500||void 0!==h&&h>=5e5));return(0,o.jsx)(hB,{file:d,filePatch:p,layout:c,prerenderedHTML:b?.[d],deferPatchRendering:r,isLargeFile:t,forceRender:l?.has(d)??!1,comments:q.get(d)??ho,fileStat:j,collapsed:i.has(d),active:g===d,onToggleCollapse:s.get(d),onVisible:k,repoPath:m,onAddComment:e,onDeleteComment:f},d)})})},hD=(a,b,c)=>{let[d,e]=(0,q.useState)(b);return(0,q.useEffect)(()=>{try{let b=localStorage.getItem(a);null!==b&&(!c||c.includes(b))&&e(b)}catch{}},[a,c]),[d,(0,q.useCallback)(b=>{e(c=>{let d="function"==typeof b?b(c):b;try{localStorage.setItem(a,d)}catch{}return d})},[a])]},hE="change",hF="watch-error",hG="ready",hH=2e3,hI=["split","stacked"],hJ=["all","uncommitted"],hK=({text:a,pulse:b=!1})=>(0,o.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,o.jsx)("div",{className:`text-muted-foreground text-sm${b?" animate-pulse":""}`,children:a})}),hL=a=>{let b=hy(a).replaceAll(/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g,"\\$&");return`#${b}`},hM=({notice:a})=>{let b="border-border bg-muted/40 text-muted-foreground";return"destructive"===a.tone?b="border-destructive/30 bg-destructive/10 text-destructive":"warning"===a.tone&&(b="border-amber-500/30 bg-amber-500/10 text-amber-600 dark:text-amber-400"),(0,o.jsx)("div",{className:`border-b px-4 py-2 text-xs ${b}`,children:(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)("span",{className:"font-medium",children:a.label}),a.detail&&(0,o.jsx)("span",{className:"text-xs opacity-80",children:a.detail})]})})},hN=({filesData:a,deferredDiffData:b,diffError:c,syncNotice:d,layout:e,comments:f,onAddComment:g,onDeleteComment:h,selectedFile:i,collapsedFiles:j,forceRenderFiles:k,onToggleCollapse:l,onActiveFileChange:m,repoPath:n,diffWatchdogTripped:p,diffHintShown:q,onRetryDiff:r})=>null===a?(0,o.jsx)(hK,{text:"Loading diff…",pulse:!0}):0===a.files.length?(0,o.jsx)(hK,{text:"No changes"}):b?(0,o.jsxs)(o.Fragment,{children:[d&&(0,o.jsx)(hM,{notice:d}),(0,o.jsx)(hC,{patchesByFile:b.patchesByFile,prerenderedHTMLByFile:b.prerenderedHTMLByFile,layout:e,comments:f,onAddComment:g,onDeleteComment:h,activeFileId:i,fileStats:a.files,collapsedFiles:j,forceRenderFiles:k,onToggleCollapse:l,onActiveFileChange:m,repoPath:n})]}):c?(0,o.jsx)(hK,{text:c}):p?(0,o.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-3",children:[(0,o.jsx)("div",{className:"text-muted-foreground text-sm",children:"Still loading the diff…"}),(0,o.jsx)("div",{className:"text-muted-foreground text-xs opacity-80",children:"Large diffs take longer on first load."}),(0,o.jsx)(a7,{size:"sm",variant:"default",onClick:r,children:"Retry"})]}):q?(0,o.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2",children:[(0,o.jsx)("div",{className:"text-muted-foreground animate-pulse text-sm",children:`Loading diff${a?` (${a.files.length} files)…`:"…"}`}),(0,o.jsx)("div",{className:"text-muted-foreground text-xs opacity-80",children:"Large diffs take longer on first load."})]}):(0,o.jsx)(hK,{text:`Loading diff${a?` (${a.files.length} files)…`:"…"}`,pulse:!0});a.s(["DiffApp",0,({repoPath:a,defaultSidebarOpen:b=!0,watchMode:c="stream",watchPollMs:d=hH})=>{let[e,f]=(0,q.useState)(null),g=(0,q.useRef)(null),[h,i]=(0,q.useState)([]),j=(0,q.useRef)([]),[k,l]=(0,q.useState)(null),m=(0,q.useRef)(null),[n,r]=(0,q.useState)(null),[s,t]=hD("diffhub-layout","stacked",hI),{resolvedTheme:u}=(0,p.useTheme)(),v="light"===u?"light":"dark",w=(0,q.useRef)(s),x=(0,q.useRef)(v),[y,z]=(0,q.useState)(""),[A,B]=(0,q.useState)(256),[C,D]=(0,q.useState)(!1),[E,F]=(0,q.useState)("connecting"),G=(0,q.useRef)(null),[H,I]=(0,q.useState)(null),[J,K]=(0,q.useState)(null),[L,M]=(0,q.useState)(!1),[N,O]=hD("diffhub-diffMode","all",hJ),P=(0,q.useRef)(N),Q=(0,q.useRef)(null),R=(0,q.useRef)(null),S=(0,q.useRef)(null),T=(0,q.useRef)(null),U=(0,q.useRef)(!1),V=(0,q.useRef)(!1),W=(0,q.useRef)(!1),X=(0,q.useRef)(!1),Y=(0,q.useRef)(0),[Z,$]=(0,q.useState)(!1),[_,aa]=(0,q.useState)(!1),[,ab]=(0,q.useTransition)(),[ac,ad]=(0,q.useState)(()=>new Set),[ae,af]=(0,q.useState)(()=>new Set);(0,q.useEffect)(()=>{P.current=N},[N]),(0,q.useEffect)(()=>{g.current=e},[e]),(0,q.useEffect)(()=>{j.current=h},[h]),(0,q.useEffect)(()=>{ad(new Set([]))},[a]);let ag=(0,q.useCallback)(b=>{ad(c=>{let d=b(c);if(d===c)return c;try{localStorage.setItem(`diffhub-collapsed:${a}`,JSON.stringify([...d]))}catch{}return d})},[a]),ah=(0,q.useRef)(n),ai=(0,q.useRef)(J);(0,q.useEffect)(()=>{ah.current=n},[n]),(0,q.useEffect)(()=>{ai.current=J},[J]),(({selector:a,rootRef:b})=>{(0,q.useEffect)(()=>{if("u"<typeof ResizeObserver||"u"<typeof MutationObserver)return;let c=new WeakMap,d=0,e=0,f=()=>{if(e=0,0===d)return;let a=d;d=0,window.scrollBy({behavior:"instant",left:0,top:a})},g=new ResizeObserver(a=>{for(let b of a){let a=b.contentRect.height,e=c.get(b.target);c.set(b.target,a),void 0!==e&&e!==a&&b.target.getBoundingClientRect().bottom<=0&&(d+=a-e)}0!==d&&0===e&&(e=requestAnimationFrame(f))}),h=new WeakSet,i=()=>{for(let c of(b?.current??document.body).querySelectorAll(a))h.has(c)||(h.add(c),g.observe(c))};i();let j=new MutationObserver(i),k=b?.current??document.body;return j.observe(k,{childList:!0,subtree:!0}),()=>{0!==e&&cancelAnimationFrame(e),g.disconnect(),j.disconnect()}},[a,b])})({selector:"[data-file-section]"});let aj=(0,q.useCallback)((a={})=>{let b=new URLSearchParams;"uncommitted"===P.current&&b.set("mode","uncommitted"),a.forceRefresh&&b.set("refresh","1");let c=b.toString();return c?`?${c}`:""},[]),ak=(0,q.useCallback)(()=>{let a=new URLSearchParams;T.current&&a.set("generation",T.current),"uncommitted"===P.current&&a.set("mode","uncommitted"),a.set("layout",w.current),a.set("theme",x.current);let b=a.toString();return b?`?${b}`:""},[]),al=(0,q.useCallback)(async a=>{let b=T.current,c=S.current;$(!1),K(null),console.info("[diffhub] fetchDiff start",{fingerprint:c,generation:b,mode:P.current,requestId:a});let d=new AbortController,e=setTimeout(()=>{d.abort(Error("Diff request timed out"))},15e3);try{var f,g;let e,h,i=await fetch(`/api/diff${ak()}`,{signal:d.signal});if(!i.ok){let d=(await i.json().catch(()=>({error:"Failed to load diff"}))).error??`Failed to load diff (${i.status})`;console.error("[diffhub] fetchDiff non-ok response",{fingerprint:c,generation:b,mode:P.current,requestId:a,responseStatus:i.status,responseStatusText:i.statusText,serverError:d}),a===Y.current&&K(d);return}let j=(f=await i.json(),g=c??"unknown",e=f.patchesByFile??Object.fromEntries((a=>{let b=new Map,c=/^diff --git a\/(.+?) b\/(.+)$/gm,d=[],e=c.exec(a);for(;e;)d.push({file:e[2],start:e.index}),e=c.exec(a);for(let[c,e]of d.entries()){let f=d[c+1]?.start??a.length,g=a.slice(e.start,f).trimEnd();b.set(e.file,g?`${g}
40
+ `:"")}return b})(f.patch??"")),{baseBranch:f.baseBranch,branch:f.branch,generation:f.generation,mergeBase:f.mergeBase,patchesByFile:e,prerenderedHTMLByFile:f.prerenderedHTMLByFile,reviewKeysByFile:f.reviewKeysByFile??(h=f.generation,Object.fromEntries(Object.entries(e).map(([a,b])=>[a,`${h}:${(a=>{let b=0;for(let c=0;c<a.length;c+=1)b=Math.trunc(Math.imul(31,b)+(a.codePointAt(c)??0));return Math.abs(b).toString(36)})(`${a}:${b}`)}`]))),sourceFingerprint:g});if(a!==Y.current||c!==S.current||b!==T.current){console.info("[diffhub] fetchDiff response stale",{fingerprint:c,generation:b,latestRequestId:Y.current,requestId:a}),null!==T.current&&(X.current=!0);return}console.info("[diffhub] fetchDiff success",{fileCount:Object.keys(j.patchesByFile).length,fingerprint:c,generation:j.generation,requestId:a}),ab(()=>r(j))}catch(d){console.error("[diffhub] fetchDiff threw",{error:d,fingerprint:c,generation:b,mode:P.current,requestId:a}),a===Y.current&&K(d instanceof Error?d.message:String(d))}finally{clearTimeout(e)}},[ak,ab]),am=(0,q.useCallback)(async()=>{if(X.current=!0,!W.current){for(W.current=!0,M(!0);X.current;)X.current=!1,Y.current+=1,await al(Y.current);W.current=!1,M(!1)}},[al]);(0,q.useEffect)(()=>{(w.current!==s||x.current!==v)&&(w.current=s,x.current=v,Y.current+=1,R.current=null,K(null),am())},[s,v,am]);let an=(0,q.useCallback)(a=>{af(b=>{let c=null;for(let d of a)!d||b.has(d)||(c??=new Set(b)).add(d);return c??b})},[]),ao=(0,q.useCallback)(a=>{if(S.current=a.fingerprint,T.current=a.generation,0===a.files.length){m.current=null,Y.current+=1,(0,q.startTransition)(()=>{l(null),r(null)}),K(null),R.current=a.fingerprint;return}let b=m.current;b&&a.files.some(a=>a.file===b)||(m.current=b=a.files[0]?.file??null,(0,q.startTransition)(()=>l(b))),an([b]);let c=a.fingerprint!==R.current,d=ah.current?.generation===a.generation;(c||!d||null!==ai.current)&&(R.current=a.fingerprint,c&&(Y.current+=1),am())},[an,am]),ap=(0,q.useCallback)(()=>{Y.current+=1,R.current=null,S.current=null,T.current=null,r(null),K(null)},[]),aq=(0,q.useRef)(()=>Promise.resolve(!1)),ar=(0,q.useCallback)(async(a={})=>{var b,c;let d=a.forceRefresh??!1,e=a.includeComments??!0,h=()=>{D(!1),U.current=!1,V.current&&(V.current=!1,queueMicrotask(()=>{aq.current()}))};if(U.current)return V.current=!0,!1;U.current=!0,D(!0),I(null);let k=await Promise.all([fetch(`/api/files${aj({forceRefresh:d})}`),e?fetch("/api/comments").then(async a=>{if(!a.ok)throw Error(`Failed to load comments (${a.status})`);return await a.json()}).catch(a=>(console.error("[diffhub] comments refresh failed",{error:a}),null)):Promise.resolve(null)]).catch(a=>(I(a instanceof Error?a.message:String(a)),null));if(!k)return h(),!1;let[l,m]=k;if(!l.ok)return I((await l.json().catch(()=>({error:"Network error"}))).error??"Failed to load files"),h(),!1;let n=await l.json(),o=(b=g.current,!(b&&b.baseBranch===n.baseBranch&&b.branch===n.branch&&b.deletions===n.deletions&&b.fingerprint===n.fingerprint&&b.generation===n.generation&&b.insertions===n.insertions&&b.files.length===n.files.length&&b.files.every((a,b)=>{let c=n.files[b];return void 0!==c&&a.binary===c.binary&&a.changes===c.changes&&a.deletions===c.deletions&&a.file===c.file&&a.insertions===c.insertions}))),p=null!==m&&(c=j.current,!(c.length===m.length&&c.every((a,b)=>{let c=m[b];return void 0!==c&&a.body===c.body&&a.createdAt===c.createdAt&&a.file===c.file&&a.id===c.id&&a.lineNumber===c.lineNumber&&a.side===c.side&&a.tag===c.tag})));return(o||p)&&(o&&(g.current=n),p&&null!==m&&(j.current=m),(0,q.startTransition)(()=>{o&&f(n),p&&null!==m&&i(m)})),ao(n),h(),o},[aj,ao]);(0,q.useEffect)(()=>{aq.current=ar},[ar]),(0,q.useEffect)(()=>{if("poll"===c){let a=!0;F("live");let b=setInterval(()=>{a&&(async()=>{let b=await aq.current({forceRefresh:!0,includeComments:!1});!a||b&&(F("updated"),G.current&&clearTimeout(G.current),G.current=setTimeout(()=>{a&&F("live")},2500))})()},d);return()=>{a=!1,clearInterval(b),G.current&&(clearTimeout(G.current),G.current=null)}}if("u"<typeof EventSource)return void F("offline");let a=!0;F("connecting");let b=new EventSource("/api/watch"),e=()=>{G.current&&(clearTimeout(G.current),G.current=null)},f=()=>{e(),F("live")},g=()=>{e(),(async()=>{await aq.current({forceRefresh:!0,includeComments:!1}),a&&(F("updated"),G.current=setTimeout(()=>{a&&F("live")},2500))})()},h=a=>{console.error("[diffhub] file watch stream reported an error",{event:a}),e(),F("offline")},i=()=>{e(),F("offline")};return b.addEventListener(hG,f),b.addEventListener(hE,g),b.addEventListener(hF,h),b.addEventListener("error",i),()=>{a=!1,e(),b.removeEventListener(hG,f),b.removeEventListener(hE,g),b.removeEventListener(hF,h),b.removeEventListener("error",i),b.close()}},[a,c,d]);let as=(0,q.useCallback)(()=>{$(!1),aa(!1),K(null),Y.current+=1,R.current=null},[]),at=(0,q.useCallback)(()=>{ar({forceRefresh:!0})},[ar]),au=(0,q.useCallback)(()=>{as(),ar({forceRefresh:!0})},[as,ar]),av=(0,q.useCallback)(()=>{as(),null===ah.current&&r(null),am()},[am,as]);(0,q.useEffect)(()=>{ar()},[ar]),(0,q.useEffect)(()=>{if(!e||0===e.files.length||n||J)return void $(!1);let a=setTimeout(()=>$(!0),2e4);return()=>clearTimeout(a)},[e,n,J]),(0,q.useEffect)(()=>{if(!e||0===e.files.length||n||J)return void aa(!1);let a=setTimeout(()=>aa(!0),1e4);return()=>clearTimeout(a)},[e,n,J]);let aw=(0,q.useCallback)((a,b=800)=>{Q.current={file:a,until:Date.now()+b},m.current=a,(0,q.startTransition)(()=>l(a))},[]),ax=(0,q.useCallback)((a,b="smooth")=>{aw(a);let c=e?.files.map(a=>a.file)??[],d=c.indexOf(a);an([a,c[d-1],c[d+1]]),ag(b=>{if(b.has(a)){let c=new Set(b);return c.delete(a),c}return b});let f=a=>{a.scrollIntoView({behavior:b,block:"start"})},g=document.querySelector(hL(a));if(g)return void f(g);let h=document.querySelector("#diff-container");if(!h)return;let i=new MutationObserver(()=>{let b=document.querySelector(hL(a));b&&(i.disconnect(),f(b))});i.observe(h,{childList:!0,subtree:!0}),setTimeout(()=>i.disconnect(),5e3)},[an,e,aw,ag]),ay=(0,q.useCallback)(a=>{let b=Q.current;if(b){if(Date.now()>b.until)Q.current=null;else if(b.file!==a)return}m.current!==a&&(m.current=a,(0,q.startTransition)(()=>l(a)))},[]),az=(0,q.useCallback)(a=>{aw(a),ag(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[aw,ag]),aA=(0,q.useCallback)(()=>{ag(()=>new Set((e?.files??[]).map(a=>a.file)))},[e,ag]),aB=(0,q.useCallback)(()=>{ag(()=>new Set)},[ag]);(0,q.useEffect)(()=>{let a=a=>{if(!(a.target instanceof HTMLTextAreaElement||a.target instanceof HTMLInputElement)){if("s"!==a.key||a.metaKey||a.ctrlKey||t(a=>"split"===a?"stacked":"split"),"/"!==a.key&&"t"!==a.key.toLowerCase()||a.metaKey||a.ctrlKey||(a.preventDefault(),document.querySelector('input[placeholder="Filter files…"]')?.focus()),"c"===a.key.toLowerCase()&&!a.metaKey&&!a.ctrlKey&&k){if(a.shiftKey)return void aA();az(k)}if("e"!==a.key.toLowerCase()||!a.shiftKey||a.metaKey||a.ctrlKey||aB(),"r"!==a.key||a.metaKey||a.ctrlKey||au(),"j"===a.key||"k"===a.key){let b=e?.files??[];if(0===b.length)return;let c=b.findIndex(a=>a.file===k),d="j"===a.key?b[c+1]:b[c-1];d&&ax(d.file)}}};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[aA,aB,e,au,ax,k,t,az]);let aC=(0,q.useCallback)(a=>{P.current=a,O(a),ap(),ar({forceRefresh:!0})},[ap,ar,O]),aD=(0,q.useCallback)(async(a,b,c,d,e)=>{let f=await fetch("/api/comments",{body:JSON.stringify({body:d,file:a,lineNumber:b,side:"deletions"===c?"left":"right",tag:e}),headers:{"Content-Type":"application/json"},method:"POST"});if(!f.ok)return console.error("[diffhub] add comment failed",{error:(await f.json().catch(()=>({error:"Failed to save comment"}))).error??`Failed to save comment (${f.status})`}),!1;let g=await f.json();return i(a=>[...a,g]),!0},[]),aE=(0,q.useCallback)(async a=>{let b=await fetch(`/api/comments?id=${a}`,{method:"DELETE"});return b.ok?(i(b=>b.filter(b=>b.id!==a)),!0):(console.error("[diffhub] delete comment failed",{error:(await b.json().catch(()=>({error:"Failed to delete comment"}))).error??`Failed to delete comment (${b.status})`}),!1)},[]),aF=(0,q.useCallback)(async()=>{if(0===j.current.length)return!0;let a=await fetch("/api/comments?all=1",{method:"DELETE"});return a.ok?(j.current=[],i([]),!0):(console.error("[diffhub] clear comments failed",{error:(await a.json().catch(()=>({error:"Failed to clear comments"}))).error??`Failed to clear comments (${a.status})`}),!1)},[]),aG=H&&null!==e?{detail:H,label:"Background refresh failed",tone:"destructive"}:J&&n?{detail:J,label:"Diff refresh failed",tone:"destructive"}:null;return H&&null===e?(0,o.jsx)(gI,{className:"min-h-svh",defaultOpen:b,children:(0,o.jsxs)(gL,{className:"flex flex-col h-svh items-center justify-center gap-4",children:[(0,o.jsxs)("div",{className:"rounded-lg border border-destructive/30 bg-destructive/10 px-6 py-4 text-sm text-destructive max-w-md text-center",children:[(0,o.jsx)("p",{className:"font-semibold mb-1",children:"Failed to load diff"}),(0,o.jsx)("p",{className:"text-xs opacity-80",children:H})]}),(0,o.jsx)(a7,{variant:"outline",onClick:at,children:"Retry"})]})}):(0,o.jsxs)(gI,{className:"min-h-svh",defaultOpen:b,style:{"--sidebar-width":`${A}px`},children:[(0,o.jsx)(g7,{files:e?.files??[],selectedFile:k,onSelectFile:ax,comments:h,filterQuery:y,onFilterChange:z,isLoading:null===e,insertions:e?.insertions??0,deletions:e?.deletions??0,sidebarWidth:A,onSidebarWidthChange:B}),(0,o.jsxs)(gL,{className:"flex flex-col min-h-svh",children:[(0,o.jsx)("div",{className:"sticky top-0 z-20",children:(0,o.jsx)(gU,{branch:e?.branch??"…",baseBranch:e?.baseBranch??"main",refreshing:C||L,onRefresh:au,watchStatus:E,comments:h,onClearComments:aF,diffMode:N,onDiffModeChange:aC,layout:s,onLayoutChange:t,syncNotice:aG})}),(0,o.jsx)(hN,{filesData:e,deferredDiffData:n,diffError:J,syncNotice:aG,layout:s,comments:h,onAddComment:aD,onDeleteComment:aE,selectedFile:k,collapsedFiles:ac,forceRenderFiles:ae,onToggleCollapse:az,onActiveFileChange:ay,repoPath:a,diffWatchdogTripped:Z,diffHintShown:_,onRetryDiff:av})]})]})}],85340)}];
41
41
 
42
42
  //# sourceMappingURL=_07okxca._.js.map
@@ -1,6 +1,6 @@
1
1
  module.exports=[63681,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(36226)},51409,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReflectAdapter",{enumerable:!0,get:function(){return d}});class d{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},4712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ActionDidNotRevalidate:function(){return f},ActionDidRevalidateDynamicOnly:function(){return h},ActionDidRevalidateStaticAndDynamic:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=0,g=1,h=2},14896,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63681),g=a.r(51409),h=a.r(56704),i=a.r(4712);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},96556,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DynamicServerError:function(){return g},isDynamicServerError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="DYNAMIC_SERVER_USAGE";class g extends Error{constructor(a){super(`Dynamic server usage: ${a}`),this.description=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===f}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},60312,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={StaticGenBailoutError:function(){return g},isStaticGenBailoutError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="NEXT_STATIC_GEN_BAILOUT";class g extends Error{constructor(...a){super(...a),this.code=f}}function h(a){return"object"==typeof a&&null!==a&&"code"in a&&a.code===f}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},28340,(a,b,c)=>{"use strict";function d(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return{resolve:a,reject:b,promise:c}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createPromiseWithResolvers",{enumerable:!0,get:function(){return d}})},31382,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e={RenderStage:function(){return i},StagedRenderingController:function(){return j}};for(var f in e)Object.defineProperty(c,f,{enumerable:!0,get:e[f]});let g=a.r(50640),h=a.r(28340);var i=((d={})[d.Before=1]="Before",d[d.EarlyStatic=2]="EarlyStatic",d[d.Static=3]="Static",d[d.EarlyRuntime=4]="EarlyRuntime",d[d.Runtime=5]="Runtime",d[d.Dynamic=6]="Dynamic",d[d.Abandoned=7]="Abandoned",d);class j{constructor(a,b,c){this.abortSignal=a,this.abandonController=b,this.shouldTrackSyncIO=c,this.currentStage=1,this.syncInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.staticStageListeners=[],this.earlyRuntimeStageListeners=[],this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.staticStagePromise=(0,h.createPromiseWithResolvers)(),this.earlyRuntimeStagePromise=(0,h.createPromiseWithResolvers)(),this.runtimeStagePromise=(0,h.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,h.createPromiseWithResolvers)(),a&&a.addEventListener("abort",()=>{let{reason:b}=a;this.staticStagePromise.promise.catch(k),this.staticStagePromise.reject(b),this.earlyRuntimeStagePromise.promise.catch(k),this.earlyRuntimeStagePromise.reject(b),this.runtimeStagePromise.promise.catch(k),this.runtimeStagePromise.reject(b),this.dynamicStagePromise.promise.catch(k),this.dynamicStagePromise.reject(b)},{once:!0}),b&&b.signal.addEventListener("abort",()=>{this.abandonRender()},{once:!0})}onStage(a,b){if(this.currentStage>=a)b();else if(3===a)this.staticStageListeners.push(b);else if(4===a)this.earlyRuntimeStageListeners.push(b);else if(5===a)this.runtimeStageListeners.push(b);else if(6===a)this.dynamicStageListeners.push(b);else throw Object.defineProperty(new g.InvariantError(`Invalid render stage: ${a}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}shouldTrackSyncInterrupt(){if(!this.shouldTrackSyncIO)return!1;switch(this.currentStage){case 1:case 5:case 6:case 7:default:return!1;case 2:case 3:case 4:return!0}}syncInterruptCurrentStageWithReason(a){if(1!==this.currentStage&&7!==this.currentStage){if(this.abandonController)return void this.abandonController.abort();if(this.abortSignal){this.syncInterruptReason=a,this.currentStage=7;return}switch(this.currentStage){case 2:case 3:case 4:this.syncInterruptReason=a,this.advanceStage(6);return;case 5:return}}}getSyncInterruptReason(){return this.syncInterruptReason}getStaticStageEndTime(){return this.staticStageEndTime}getRuntimeStageEndTime(){return this.runtimeStageEndTime}abandonRender(){let{currentStage:a}=this;switch(a){case 2:this.resolveStaticStage();case 3:this.resolveEarlyRuntimeStage();case 4:this.resolveRuntimeStage();case 5:this.currentStage=7;return}}advanceStage(a){if(a<=this.currentStage)return;let b=this.currentStage;if(this.currentStage=a,b<3&&a>=3&&this.resolveStaticStage(),b<4&&a>=4&&this.resolveEarlyRuntimeStage(),b<5&&a>=5&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),b<6&&a>=6){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveStaticStage(){let a=this.staticStageListeners;for(let b=0;b<a.length;b++)a[b]();a.length=0,this.staticStagePromise.resolve()}resolveEarlyRuntimeStage(){let a=this.earlyRuntimeStageListeners;for(let b=0;b<a.length;b++)a[b]();a.length=0,this.earlyRuntimeStagePromise.resolve()}resolveRuntimeStage(){let a=this.runtimeStageListeners;for(let b=0;b<a.length;b++)a[b]();a.length=0,this.runtimeStagePromise.resolve()}resolveDynamicStage(){let a=this.dynamicStageListeners;for(let b=0;b<a.length;b++)a[b]();a.length=0,this.dynamicStagePromise.resolve()}getStagePromise(a){switch(a){case 3:return this.staticStagePromise.promise;case 4:return this.earlyRuntimeStagePromise.promise;case 5:return this.runtimeStagePromise.promise;case 6:return this.dynamicStagePromise.promise;default:throw Object.defineProperty(new g.InvariantError(`Invalid render stage: ${a}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}}waitForStage(a){return this.getStagePromise(a)}delayUntilStage(a,b,c){var d,e,f;let g,h=(d=this.getStagePromise(a),e=b,f=c,g=new Promise((a,b)=>{d.then(a.bind(null,f),b)}),void 0!==e&&(g.displayName=e),g);return this.abortSignal&&h.catch(k),h}}function k(){}},13091,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={delayUntilRuntimeStage:function(){return o},getRuntimeStage:function(){return n},isHangingPromiseRejectionError:function(){return g},makeDevtoolsIOAwarePromise:function(){return m},makeHangingPromise:function(){return k}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(31382);function g(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===h}let h="HANGING_PROMISE_REJECTION";class i extends Error{constructor(a,b){super(`During prerendering, ${b} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${b} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${a}".`),this.route=a,this.expression=b,this.digest=h}}let j=new WeakMap;function k(a,b,c){if(a.aborted)return Promise.reject(new i(b,c));{let d=new Promise((d,e)=>{let f=e.bind(null,new i(b,c)),g=j.get(a);if(g)g.push(f);else{let b=[f];j.set(a,b),a.addEventListener("abort",()=>{for(let a=0;a<b.length;a++)b[a]()},{once:!0})}});return d.catch(l),d}}function l(){}function m(a,b,c){return b.stagedRendering?b.stagedRendering.delayUntilStage(c,void 0,a):new Promise(b=>{setTimeout(()=>{b(a)},0)})}function n(a){return a.currentStage===f.RenderStage.EarlyStatic||a.currentStage===f.RenderStage.EarlyRuntime?f.RenderStage.EarlyRuntime:f.RenderStage.Runtime}function o(a,b){let{stagedRendering:c}=a;return c?c.waitForStage(n(c)).then(()=>b):b}},17491,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={METADATA_BOUNDARY_NAME:function(){return f},OUTLET_BOUNDARY_NAME:function(){return h},ROOT_LAYOUT_BOUNDARY_NAME:function(){return i},VIEWPORT_BOUNDARY_NAME:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="__next_metadata_boundary__",g="__next_viewport_boundary__",h="__next_outlet_boundary__",i="__next_root_layout_boundary__"},61933,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={atLeastOneTask:function(){return h},scheduleImmediate:function(){return g},scheduleOnNextTick:function(){return f},waitAtLeastOneReactRenderTask:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a=>{Promise.resolve().then(()=>{process.nextTick(a)})},g=a=>{setImmediate(a)};function h(){return new Promise(a=>g(a))}function i(){return new Promise(a=>setImmediate(a))}},49640,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={BailoutToCSRError:function(){return g},isBailoutToCSRError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="BAILOUT_TO_CLIENT_SIDE_RENDERING";class g extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===f}},99195,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"INSTANT_VALIDATION_BOUNDARY_NAME",{enumerable:!0,get:function(){return d}});let d="__next_instant_validation_boundary__"},60384,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e,f,g={DynamicHoleKind:function(){return $},Postpone:function(){return D},PreludeState:function(){return af},abortAndThrowOnSynchronousRequestDataAccess:function(){return C},abortOnSynchronousPlatformIOAccess:function(){return B},accessedDynamicData:function(){return L},annotateDynamicAccess:function(){return Q},consumeDynamicAccess:function(){return M},createDynamicTrackingState:function(){return u},createDynamicValidationState:function(){return v},createHangingInputAbortSignal:function(){return P},createInstantValidationState:function(){return _},createRenderInBrowserAbortSignal:function(){return O},formatDynamicAPIAccesses:function(){return N},getFirstDynamicReason:function(){return w},getNavigationDisallowedDynamicReasons:function(){return aj},getStaticShellDisallowedDynamicReasons:function(){return ai},isDynamicPostpone:function(){return G},isPrerenderInterruptedError:function(){return K},logDisallowedDynamicError:function(){return ag},markCurrentScopeAsDynamic:function(){return x},postponeWithTracking:function(){return E},throwIfDisallowedDynamic:function(){return ah},throwToInterruptStaticGeneration:function(){return y},trackAllowedDynamicAccess:function(){return Z},trackDynamicDataInDynamicRender:function(){return z},trackDynamicHoleInNavigation:function(){return aa},trackDynamicHoleInRuntimeShell:function(){return ac},trackDynamicHoleInStaticShell:function(){return ad},trackThrownErrorInNavigation:function(){return ab},useDynamicRouteParams:function(){return R},useDynamicSearchParams:function(){return S}};for(var h in g)Object.defineProperty(c,h,{enumerable:!0,get:g[h]});let i=(d=a.r(717))&&d.__esModule?d:{default:d},j=a.r(96556),k=a.r(60312),l=a.r(32319),m=a.r(56704),n=a.r(13091),o=a.r(17491),p=a.r(61933),q=a.r(49640),r=a.r(50640),s=a.r(99195),t="function"==typeof i.default.unstable_postpone;function u(a){return{isDebugDynamicAccesses:a,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function v(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function w(a){var b;return null==(b=a.dynamicAccesses[0])?void 0:b.expression}function x(a,b,c){if(b)switch(b.type){case"cache":case"unstable-cache":case"private-cache":return}if(!a.forceDynamic&&!a.forceStatic){if(a.dynamicShouldError)throw Object.defineProperty(new k.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${c}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(b)switch(b.type){case"prerender-ppr":return E(a.route,c,b.dynamicTracking);case"prerender-legacy":b.revalidate=0;let d=Object.defineProperty(new j.DynamicServerError(`Route ${a.route} couldn't be rendered statically because it used ${c}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw a.dynamicUsageDescription=c,a.dynamicUsageStack=d.stack,d}}}function y(a,b,c){let d=Object.defineProperty(new j.DynamicServerError(`Route ${b.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.revalidate=0,b.dynamicUsageDescription=a,b.dynamicUsageStack=d.stack,d}function z(a){switch(a.type){case"cache":case"unstable-cache":case"private-cache":return}}function A(a,b,c){let d=J(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`);c.controller.abort(d);let e=c.dynamicTracking;e&&e.dynamicAccesses.push({stack:e.isDebugDynamicAccesses?Error().stack:void 0,expression:b})}function B(a,b,c,d){let e=d.dynamicTracking;A(a,b,d),e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}function C(a,b,c,d){if(!1===d.controller.signal.aborted){A(a,b,d);let e=d.dynamicTracking;e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}throw J(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`)}function D({reason:a,route:b}){let c=l.workUnitAsyncStorage.getStore();E(b,a,c&&"prerender-ppr"===c.type?c.dynamicTracking:null)}function E(a,b,c){(function(){if(!t)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:b}),i.default.unstable_postpone(F(a,b))}function F(a,b){return`Route ${a} needs to bail out of prerendering at this point because it used ${b}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function G(a){return"object"==typeof a&&null!==a&&"string"==typeof a.message&&H(a.message)}function H(a){return a.includes("needs to bail out of prerendering at this point because it used")&&a.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===H(F("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let I="NEXT_PRERENDER_INTERRUPTED";function J(a){let b=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return b.digest=I,b}function K(a){return"object"==typeof a&&null!==a&&a.digest===I&&"name"in a&&"message"in a&&a instanceof Error}function L(a){return a.length>0}function M(a,b){return a.dynamicAccesses.push(...b.dynamicAccesses),a.dynamicAccesses}function N(a){return a.filter(a=>"string"==typeof a.stack&&a.stack.length>0).map(({expression:a,stack:b})=>(b=b.split("\n").slice(4).filter(a=>!(a.includes("node_modules/next/")||a.includes(" (<anonymous>)")||a.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${a}:
2
2
  ${b}`))}function O(){let a=new AbortController;return a.abort(Object.defineProperty(new q.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),a.signal}function P(a){switch(a.type){case"prerender":case"prerender-runtime":let b=new AbortController;if(a.cacheSignal)a.cacheSignal.inputReady().then(()=>{b.abort()});else if("prerender-runtime"===a.type&&a.stagedRendering){let{stagedRendering:c}=a;c.waitForStage((0,n.getRuntimeStage)(c)).then(()=>(0,p.scheduleOnNextTick)(()=>b.abort()))}else(0,p.scheduleOnNextTick)(()=>b.abort());return b.signal;case"prerender-client":case"validation-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":return}}function Q(a,b){let c=b.dynamicTracking;c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:a})}function R(a){let b=m.workAsyncStorage.getStore(),c=l.workUnitAsyncStorage.getStore();if(b&&c)switch(c.type){case"prerender-client":case"prerender":{let d=c.fallbackRouteParams;d&&d.size>0&&i.default.use((0,n.makeHangingPromise)(c.renderSignal,b.route,a));break}case"prerender-ppr":{let d=c.fallbackRouteParams;if(d&&d.size>0)return E(b.route,a,c.dynamicTracking);break}case"validation-client":case"prerender-legacy":case"request":case"unstable-cache":break;case"prerender-runtime":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called during a runtime prerender. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called in \`generateStaticParams\`. Next.js should be preventing ${a} from being included in server component files statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1130",enumerable:!1,configurable:!0})}}function S(a){let b=m.workAsyncStorage.getStore(),c=l.workUnitAsyncStorage.getStore();if(b)switch(!c&&(0,l.throwForMissingRequestStore)(a),c.type){case"validation-client":case"request":return;case"prerender-client":i.default.use((0,n.makeHangingPromise)(c.renderSignal,b.route,a));break;case"prerender-legacy":case"prerender-ppr":if(b.forceStatic)return;throw Object.defineProperty(new q.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called from a Server Component. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called in \`generateStaticParams\`. Next.js should be preventing ${a} from being included in server component files statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1130",enumerable:!1,configurable:!0})}}let T=/\n\s+at Suspense \(<anonymous>\)/,U=RegExp(`\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at ${o.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),V=RegExp(`\\n\\s+at ${o.METADATA_BOUNDARY_NAME}[\\n\\s]`),W=RegExp(`\\n\\s+at ${o.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),X=RegExp(`\\n\\s+at ${o.OUTLET_BOUNDARY_NAME}[\\n\\s]`),Y=RegExp(`\\n\\s+at ${s.INSTANT_VALIDATION_BOUNDARY_NAME}[\\n\\s]`);function Z(a,b,c,d){if(!X.test(b)){if(V.test(b)){c.hasDynamicMetadata=!0;return}if(W.test(b)){c.hasDynamicViewport=!0;return}if(U.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(T.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=ae(Object.defineProperty(Error(`Route "${a.route}": Uncached data was accessed outside of <Suspense>. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1079",enumerable:!1,configurable:!0}),b,null);return void c.dynamicErrors.push(e)}}}var $=((e={})[e.Runtime=1]="Runtime",e[e.Dynamic=2]="Dynamic",e);function _(a){return{hasDynamicMetadata:!1,hasAllowedClientDynamicAboveBoundary:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[],validationPreventingErrors:[],thrownErrorsOutsideBoundary:[],createInstantStack:a}}function aa(a,b,c,d,e,f){if(X.test(b))return;if(V.test(b)){let d=ae(Object.defineProperty(Error(`Route "${a.route}": ${1===e?"Runtime data such as `cookies()`, `headers()`, `params`, or `searchParams` was accessed inside `generateMetadata` or you have file-based metadata such as icons that depend on dynamic params segments.":"Uncached data or `connection()` was accessed inside `generateMetadata`."} Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),"__NEXT_ERROR_CODE",{value:"E1076",enumerable:!1,configurable:!0}),b,c.createInstantStack);c.dynamicMetadata=d;return}if(W.test(b)){let d=ae(Object.defineProperty(Error(`Route "${a.route}": ${1===e?"Runtime data such as `cookies()`, `headers()`, `params`, or `searchParams` was accessed inside `generateViewport`.":"Uncached data or `connection()` was accessed inside `generateViewport`."} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),"__NEXT_ERROR_CODE",{value:"E1086",enumerable:!1,configurable:!0}),b,c.createInstantStack);c.dynamicErrors.push(d);return}let g=Y.exec(b);if(g){let a=T.exec(b);if(a&&a.index<g.index){c.hasAllowedDynamic=!0;return}}else if(f.expectedIds.size===f.renderedIds.size){c.hasAllowedClientDynamicAboveBoundary=!0,c.hasAllowedDynamic=!0;return}else{let d=ae(Object.defineProperty(Error(`Route "${a.route}": Could not validate \`unstable_instant\` because a Client Component in a parent segment prevented the page from rendering.`),"__NEXT_ERROR_CODE",{value:"E1082",enumerable:!1,configurable:!0}),b,c.createInstantStack);c.validationPreventingErrors.push(d);return}if(d.syncDynamicErrorWithStack){let a=d.syncDynamicErrorWithStack;null!==c.createInstantStack&&void 0===a.cause&&(a.cause=c.createInstantStack()),c.dynamicErrors.push(a);return}let h=ae(Object.defineProperty(Error(`Route "${a.route}": ${1===e?"Runtime data such as `cookies()`, `headers()`, `params`, or `searchParams` was accessed outside of `<Suspense>`.":"Uncached data or `connection()` was accessed outside of `<Suspense>`."} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1078",enumerable:!1,configurable:!0}),b,c.createInstantStack);c.dynamicErrors.push(h)}function ab(a,b,c,d){let e=Y.exec(d);if(e){let f=T.exec(d);if(f&&f.index<e.index)return;let g=ae(Object.defineProperty(Error(`Route "${a.route}": Could not validate \`unstable_instant\` because an error prevented the target segment from rendering.`,{cause:c}),"__NEXT_ERROR_CODE",{value:"E1112",enumerable:!1,configurable:!0}),d,null);b.validationPreventingErrors.push(g)}else{let a=ae(Object.defineProperty(Error("An error occurred while attempting to validate instant UI. This error may be preventing the validation from completing.",{cause:c}),"__NEXT_ERROR_CODE",{value:"E1118",enumerable:!1,configurable:!0}),d,null);b.thrownErrorsOutsideBoundary.push(a)}}function ac(a,b,c,d){if(X.test(b))return;if(V.test(b)){c.dynamicMetadata=ae(Object.defineProperty(Error(`Route "${a.route}": Uncached data or \`connection()\` was accessed inside \`generateMetadata\`. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),"__NEXT_ERROR_CODE",{value:"E1080",enumerable:!1,configurable:!0}),b,null);return}if(W.test(b)){let d=ae(Object.defineProperty(Error(`Route "${a.route}": Uncached data or \`connection()\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),"__NEXT_ERROR_CODE",{value:"E1077",enumerable:!1,configurable:!0}),b,null);c.dynamicErrors.push(d);return}if(U.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}if(T.test(b)){c.hasAllowedDynamic=!0;return}else if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=ae(Object.defineProperty(Error(`Route "${a.route}": Uncached data or \`connection()\` was accessed outside of \`<Suspense>\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1084",enumerable:!1,configurable:!0}),b,null);c.dynamicErrors.push(e)}function ad(a,b,c,d){if(!X.test(b)){if(V.test(b)){c.dynamicMetadata=ae(Object.defineProperty(Error(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateMetadata\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),"__NEXT_ERROR_CODE",{value:"E1085",enumerable:!1,configurable:!0}),b,null);return}if(W.test(b)){let d=ae(Object.defineProperty(Error(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),"__NEXT_ERROR_CODE",{value:"E1081",enumerable:!1,configurable:!0}),b,null);c.dynamicErrors.push(d);return}if(U.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(T.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=ae(Object.defineProperty(Error(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed outside of \`<Suspense>\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1083",enumerable:!1,configurable:!0}),b,null);return void c.dynamicErrors.push(e)}}}function ae(a,b,c){return null!==c&&(a.cause=c()),a.stack=a.name+": "+a.message+b,a}var af=((f={})[f.Full=0]="Full",f[f.Empty=1]="Empty",f[f.Errored=2]="Errored",f);function ag(a,b){console.error(b),console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:
3
3
  - Start the app in development mode by running \`next dev\`, then open "${a.route}" in your browser to investigate the error.
4
- - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`)}function ah(a,b,c,d){if(d.syncDynamicErrorWithStack)throw ag(a,d.syncDynamicErrorWithStack),new k.StaticGenBailoutError;if(0!==b){if(c.hasSuspenseAboveBody)return;let d=c.dynamicErrors;if(d.length>0){for(let b=0;b<d.length;b++)ag(a,d[b]);throw new k.StaticGenBailoutError}if(c.hasDynamicViewport)throw console.error(`Route "${a.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),new k.StaticGenBailoutError;if(1===b)throw console.error(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`),new k.StaticGenBailoutError}else if(!1===c.hasAllowedDynamic&&c.hasDynamicMetadata)throw console.error(`Route "${a.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),new k.StaticGenBailoutError}function ai(a,b,c,d){if(d||c.hasSuspenseAboveBody)return[];if(0!==b){let d=c.dynamicErrors;if(d.length>0)return d;if(1===b)return[Object.defineProperty(new r.InvariantError(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E936",enumerable:!1,configurable:!0})]}else if(!1===c.hasAllowedDynamic&&0===c.dynamicErrors.length&&c.dynamicMetadata)return[c.dynamicMetadata];return[]}function aj(a,b,c,d,e){if(d){let{missingSampleErrors:a}=d;if(a.length>0)return a}let{validationPreventingErrors:f}=c;if(f.length>0)return f;if(e.renderedIds.size<e.expectedIds.size){let{thrownErrorsOutsideBoundary:b,createInstantStack:d}=c;if(0===b.length){let b=`Route "${a.route}": Could not validate \`unstable_instant\` because the target segment was prevented from rendering for an unknown reason.`,c=null!==d?d():Error();return c.name="Error",c.message=b,[c]}if(1===b.length){let c=`Route "${a.route}": Could not validate \`unstable_instant\` because the target segment was prevented from rendering, likely due to the following error.`,e=null!==d?d():Error();return e.name="Error",e.message=c,[e,b[0]]}{let c=`Route "${a.route}": Could not validate \`unstable_instant\` because the target segment was prevented from rendering, likely due to one of the following errors.`,e=null!==d?d():Error();return e.name="Error",e.message=c,[e,...b]}}if(0!==b){let d=c.dynamicErrors;if(d.length>0)return d;if(1===b)return c.hasAllowedClientDynamicAboveBoundary?[]:[Object.defineProperty(new r.InvariantError(`Route "${a.route}" failed to render during instant validation and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E1055",enumerable:!1,configurable:!0})]}else{let a=c.dynamicErrors;if(a.length>0)return a;if(!1===c.hasAllowedDynamic&&c.dynamicMetadata)return[c.dynamicMetadata]}return[]}},8018,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(a.r(717));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},28091,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(60312),g=a.r(24725);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},81740,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cookies",{enumerable:!0,get:function(){return n}});let d=a.r(14896),e=a.r(63681),f=a.r(56704),g=a.r(32319),h=a.r(60384),i=a.r(60312),j=a.r(13091),k=a.r(8018),l=a.r(28091),m=a.r(50640);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E843",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let r=o.get(q);if(r)return r;let s=(0,j.makeHangingPromise)(q.renderSignal,k.route,"`cookies()`");return o.set(q,s),s;case"prerender-client":case"validation-client":let t="`cookies`";throw Object.defineProperty(new m.InvariantError(`${t} must not be used within a Client Component. Next.js should be preventing ${t} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,j.delayUntilRuntimeStage)(c,p(c.cookies));case"private-cache":return p(c.cookies);case"request":let u;if((0,h.trackDynamicDataInDynamicRender)(c),u=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(u);{let a=(0,g.isInEarlyRenderStage)(c);if(u===c.mutableCookies)return a?c.asyncApiPromises.earlyMutableCookies:c.asyncApiPromises.mutableCookies;return a?c.asyncApiPromises.earlyCookies:c.asyncApiPromises.cookies}}}(0,g.throwForMissingRequestStore)(a)}a.r(31382);let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},29927,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HeadersAdapter:function(){return h},ReadonlyHeadersError:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(51409);class g extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new g}}class h extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,d){if("symbol"==typeof c)return f.ReflectAdapter.get(b,c,d);let e=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===e);if(void 0!==g)return f.ReflectAdapter.get(b,g,d)},set(b,c,d,e){if("symbol"==typeof c)return f.ReflectAdapter.set(b,c,d,e);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return f.ReflectAdapter.set(b,h??c,d,e)},has(b,c){if("symbol"==typeof c)return f.ReflectAdapter.has(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0!==e&&f.ReflectAdapter.has(b,e)},deleteProperty(b,c){if("symbol"==typeof c)return f.ReflectAdapter.deleteProperty(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0===e||f.ReflectAdapter.deleteProperty(b,e)}})}static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"append":case"delete":case"set":return g.callable;default:return f.ReflectAdapter.get(a,b,c)}}})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new h(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},35754,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"headers",{enumerable:!0,get:function(){return m}});let d=a.r(29927),e=a.r(56704),f=a.r(32319),g=a.r(60384),h=a.r(60312),i=a.r(13091),j=a.r(8018),k=a.r(28091),l=a.r(50640);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,k.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E839",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":var j=b,p=c;let e=n.get(p);if(e)return e;let q=(0,i.makeHangingPromise)(p.renderSignal,j.route,"`headers()`");return n.set(p,q),q;case"prerender-client":case"validation-client":let r="`headers`";throw Object.defineProperty(new l.InvariantError(`${r} must not be used within a client component. Next.js should be preventing ${r} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,i.delayUntilRuntimeStage)(c,o(c.headers));case"private-cache":return o(c.headers);case"request":if((0,g.trackDynamicDataInDynamicRender)(c),c.asyncApiPromises)return(0,f.isInEarlyRenderStage)(c)?c.asyncApiPromises.earlyHeaders:c.asyncApiPromises.headers;return o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}a.r(31382);let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},51125,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"draftMode",{enumerable:!0,get:function(){return l}});let d=a.r(32319),e=a.r(56704),f=a.r(60384),g=a.r(8018),h=a.r(60312),i=a.r(96556),j=a.r(50640),k=a.r(13091);function l(){let a="draftMode",b=e.workAsyncStorage.getStore(),c=d.workUnitAsyncStorage.getStore();switch((!b||!c)&&(0,d.throwForMissingRequestStore)(a),c.type){case"prerender-runtime":return(0,k.delayUntilRuntimeStage)(c,m(c.draftMode,b));case"request":return m(c.draftMode,b);case"cache":case"private-cache":case"unstable-cache":let f=(0,d.getDraftModeProviderForCacheScope)(b,c);if(f)return m(f,b);case"prerender":case"prerender-ppr":case"prerender-legacy":return m(null,b);case"prerender-client":case"validation-client":{let a="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0})}case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`${a}()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1132",enumerable:!1,configurable:!0});default:return c}}function m(a,b){let c=o.get(a??n);return c||Promise.resolve(new p(a))}a.r(51409);let n={},o=new WeakMap;class p{constructor(a){this._provider=a}get isEnabled(){return null!==this._provider&&this._provider.isEnabled}enable(){q("draftMode().enable()",this.enable),null!==this._provider&&this._provider.enable()}disable(){q("draftMode().disable()",this.disable),null!==this._provider&&this._provider.disable()}}function q(a,b){let c=e.workAsyncStorage.getStore(),g=d.workUnitAsyncStorage.getStore();if(c){if((null==g?void 0:g.phase)==="after")throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside \`after()\`. The enabled status of \`draftMode()\` can be read inside \`after()\` but you cannot enable or disable \`draftMode()\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E845",enumerable:!1,configurable:!0});if(c.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${c.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(g)switch(g.type){case"cache":case"private-cache":{let d=Object.defineProperty(Error(`Route ${c.route} used "${a}" inside "use cache". The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E829",enumerable:!1,configurable:!0});throw Error.captureStackTrace(d,b),c.invalidDynamicUsageError??=d,d}case"unstable-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside a function cached with \`unstable_cache()\`. The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E844",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":{let b=Object.defineProperty(Error(`Route ${c.route} used ${a} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`),"__NEXT_ERROR_CODE",{value:"E126",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(c.route,a,b,g)}case"prerender-client":case"validation-client":let d="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${d} must not be used within a Client Component. Next.js should be preventing ${d} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(c.route,a,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let e=Object.defineProperty(new i.DynamicServerError(`Route ${c.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.dynamicUsageDescription=a,c.dynamicUsageStack=e.stack,e;case"request":(0,f.trackDynamicDataInDynamicRender)(g);break;case"generate-static-params":throw Object.defineProperty(Error(`Route ${c.route} used \`${a}\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1121",enumerable:!1,configurable:!0})}}}(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},5246,(a,b,c)=>{b.exports.cookies=a.r(81740).cookies,b.exports.headers=a.r(35754).headers,b.exports.draftMode=a.r(51125).draftMode},40194,a=>{"use strict";a.s(["DiffApp",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call DiffApp() from the server but DiffApp is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/cli/components/DiffApp.tsx <module evaluation>","DiffApp")},84070,a=>{"use strict";a.s(["DiffApp",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call DiffApp() from the server but DiffApp is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/cli/components/DiffApp.tsx","DiffApp")},69349,a=>{"use strict";a.i(40194);var b=a.i(84070);a.n(b)},78001,a=>{"use strict";var b=a.i(7997),c=a.i(5246),d=a.i(69349),e=a.i(2157);async function f(){let a=(()=>{if(process.env.DIFFHUB_REPO)return process.env.DIFFHUB_REPO;let a=(()=>{try{let a=(0,e.readFileSync)("/tmp/diffhub-active-repo","utf-8").trim();if(a)return a}catch{}return null})();return a||process.cwd()})(),f=await (0,c.cookies)(),g=f.get("sidebar_state")?.value!=="false";return(0,b.jsx)(d.DiffApp,{repoPath:a,defaultSidebarOpen:g})}a.s(["default",0,f],78001)},44870,a=>{a.n(a.i(78001))}];
4
+ - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`)}function ah(a,b,c,d){if(d.syncDynamicErrorWithStack)throw ag(a,d.syncDynamicErrorWithStack),new k.StaticGenBailoutError;if(0!==b){if(c.hasSuspenseAboveBody)return;let d=c.dynamicErrors;if(d.length>0){for(let b=0;b<d.length;b++)ag(a,d[b]);throw new k.StaticGenBailoutError}if(c.hasDynamicViewport)throw console.error(`Route "${a.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),new k.StaticGenBailoutError;if(1===b)throw console.error(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`),new k.StaticGenBailoutError}else if(!1===c.hasAllowedDynamic&&c.hasDynamicMetadata)throw console.error(`Route "${a.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),new k.StaticGenBailoutError}function ai(a,b,c,d){if(d||c.hasSuspenseAboveBody)return[];if(0!==b){let d=c.dynamicErrors;if(d.length>0)return d;if(1===b)return[Object.defineProperty(new r.InvariantError(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E936",enumerable:!1,configurable:!0})]}else if(!1===c.hasAllowedDynamic&&0===c.dynamicErrors.length&&c.dynamicMetadata)return[c.dynamicMetadata];return[]}function aj(a,b,c,d,e){if(d){let{missingSampleErrors:a}=d;if(a.length>0)return a}let{validationPreventingErrors:f}=c;if(f.length>0)return f;if(e.renderedIds.size<e.expectedIds.size){let{thrownErrorsOutsideBoundary:b,createInstantStack:d}=c;if(0===b.length){let b=`Route "${a.route}": Could not validate \`unstable_instant\` because the target segment was prevented from rendering for an unknown reason.`,c=null!==d?d():Error();return c.name="Error",c.message=b,[c]}if(1===b.length){let c=`Route "${a.route}": Could not validate \`unstable_instant\` because the target segment was prevented from rendering, likely due to the following error.`,e=null!==d?d():Error();return e.name="Error",e.message=c,[e,b[0]]}{let c=`Route "${a.route}": Could not validate \`unstable_instant\` because the target segment was prevented from rendering, likely due to one of the following errors.`,e=null!==d?d():Error();return e.name="Error",e.message=c,[e,...b]}}if(0!==b){let d=c.dynamicErrors;if(d.length>0)return d;if(1===b)return c.hasAllowedClientDynamicAboveBoundary?[]:[Object.defineProperty(new r.InvariantError(`Route "${a.route}" failed to render during instant validation and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E1055",enumerable:!1,configurable:!0})]}else{let a=c.dynamicErrors;if(a.length>0)return a;if(!1===c.hasAllowedDynamic&&c.dynamicMetadata)return[c.dynamicMetadata]}return[]}},8018,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(a.r(717));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},28091,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(60312),g=a.r(24725);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},81740,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cookies",{enumerable:!0,get:function(){return n}});let d=a.r(14896),e=a.r(63681),f=a.r(56704),g=a.r(32319),h=a.r(60384),i=a.r(60312),j=a.r(13091),k=a.r(8018),l=a.r(28091),m=a.r(50640);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E843",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let r=o.get(q);if(r)return r;let s=(0,j.makeHangingPromise)(q.renderSignal,k.route,"`cookies()`");return o.set(q,s),s;case"prerender-client":case"validation-client":let t="`cookies`";throw Object.defineProperty(new m.InvariantError(`${t} must not be used within a Client Component. Next.js should be preventing ${t} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,j.delayUntilRuntimeStage)(c,p(c.cookies));case"private-cache":return p(c.cookies);case"request":let u;if((0,h.trackDynamicDataInDynamicRender)(c),u=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(u);{let a=(0,g.isInEarlyRenderStage)(c);if(u===c.mutableCookies)return a?c.asyncApiPromises.earlyMutableCookies:c.asyncApiPromises.mutableCookies;return a?c.asyncApiPromises.earlyCookies:c.asyncApiPromises.cookies}}}(0,g.throwForMissingRequestStore)(a)}a.r(31382);let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},29927,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HeadersAdapter:function(){return h},ReadonlyHeadersError:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(51409);class g extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new g}}class h extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,d){if("symbol"==typeof c)return f.ReflectAdapter.get(b,c,d);let e=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===e);if(void 0!==g)return f.ReflectAdapter.get(b,g,d)},set(b,c,d,e){if("symbol"==typeof c)return f.ReflectAdapter.set(b,c,d,e);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return f.ReflectAdapter.set(b,h??c,d,e)},has(b,c){if("symbol"==typeof c)return f.ReflectAdapter.has(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0!==e&&f.ReflectAdapter.has(b,e)},deleteProperty(b,c){if("symbol"==typeof c)return f.ReflectAdapter.deleteProperty(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0===e||f.ReflectAdapter.deleteProperty(b,e)}})}static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"append":case"delete":case"set":return g.callable;default:return f.ReflectAdapter.get(a,b,c)}}})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new h(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},35754,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"headers",{enumerable:!0,get:function(){return m}});let d=a.r(29927),e=a.r(56704),f=a.r(32319),g=a.r(60384),h=a.r(60312),i=a.r(13091),j=a.r(8018),k=a.r(28091),l=a.r(50640);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,k.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E839",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":var j=b,p=c;let e=n.get(p);if(e)return e;let q=(0,i.makeHangingPromise)(p.renderSignal,j.route,"`headers()`");return n.set(p,q),q;case"prerender-client":case"validation-client":let r="`headers`";throw Object.defineProperty(new l.InvariantError(`${r} must not be used within a client component. Next.js should be preventing ${r} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,i.delayUntilRuntimeStage)(c,o(c.headers));case"private-cache":return o(c.headers);case"request":if((0,g.trackDynamicDataInDynamicRender)(c),c.asyncApiPromises)return(0,f.isInEarlyRenderStage)(c)?c.asyncApiPromises.earlyHeaders:c.asyncApiPromises.headers;return o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}a.r(31382);let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},51125,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"draftMode",{enumerable:!0,get:function(){return l}});let d=a.r(32319),e=a.r(56704),f=a.r(60384),g=a.r(8018),h=a.r(60312),i=a.r(96556),j=a.r(50640),k=a.r(13091);function l(){let a="draftMode",b=e.workAsyncStorage.getStore(),c=d.workUnitAsyncStorage.getStore();switch((!b||!c)&&(0,d.throwForMissingRequestStore)(a),c.type){case"prerender-runtime":return(0,k.delayUntilRuntimeStage)(c,m(c.draftMode,b));case"request":return m(c.draftMode,b);case"cache":case"private-cache":case"unstable-cache":let f=(0,d.getDraftModeProviderForCacheScope)(b,c);if(f)return m(f,b);case"prerender":case"prerender-ppr":case"prerender-legacy":return m(null,b);case"prerender-client":case"validation-client":{let a="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0})}case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`${a}()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1132",enumerable:!1,configurable:!0});default:return c}}function m(a,b){let c=o.get(a??n);return c||Promise.resolve(new p(a))}a.r(51409);let n={},o=new WeakMap;class p{constructor(a){this._provider=a}get isEnabled(){return null!==this._provider&&this._provider.isEnabled}enable(){q("draftMode().enable()",this.enable),null!==this._provider&&this._provider.enable()}disable(){q("draftMode().disable()",this.disable),null!==this._provider&&this._provider.disable()}}function q(a,b){let c=e.workAsyncStorage.getStore(),g=d.workUnitAsyncStorage.getStore();if(c){if((null==g?void 0:g.phase)==="after")throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside \`after()\`. The enabled status of \`draftMode()\` can be read inside \`after()\` but you cannot enable or disable \`draftMode()\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E845",enumerable:!1,configurable:!0});if(c.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${c.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(g)switch(g.type){case"cache":case"private-cache":{let d=Object.defineProperty(Error(`Route ${c.route} used "${a}" inside "use cache". The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E829",enumerable:!1,configurable:!0});throw Error.captureStackTrace(d,b),c.invalidDynamicUsageError??=d,d}case"unstable-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside a function cached with \`unstable_cache()\`. The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E844",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":{let b=Object.defineProperty(Error(`Route ${c.route} used ${a} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`),"__NEXT_ERROR_CODE",{value:"E126",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(c.route,a,b,g)}case"prerender-client":case"validation-client":let d="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${d} must not be used within a Client Component. Next.js should be preventing ${d} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(c.route,a,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let e=Object.defineProperty(new i.DynamicServerError(`Route ${c.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.dynamicUsageDescription=a,c.dynamicUsageStack=e.stack,e;case"request":(0,f.trackDynamicDataInDynamicRender)(g);break;case"generate-static-params":throw Object.defineProperty(Error(`Route ${c.route} used \`${a}\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1121",enumerable:!1,configurable:!0})}}}(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},5246,(a,b,c)=>{b.exports.cookies=a.r(81740).cookies,b.exports.headers=a.r(35754).headers,b.exports.draftMode=a.r(51125).draftMode},40194,a=>{"use strict";a.s(["DiffApp",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call DiffApp() from the server but DiffApp is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/cli/components/DiffApp.tsx <module evaluation>","DiffApp")},84070,a=>{"use strict";a.s(["DiffApp",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call DiffApp() from the server but DiffApp is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/cli/components/DiffApp.tsx","DiffApp")},69349,a=>{"use strict";a.i(40194);var b=a.i(84070);a.n(b)},78001,a=>{"use strict";var b=a.i(7997),c=a.i(5246),d=a.i(69349),e=a.i(2157);async function f(){let a=(()=>{if(process.env.DIFFHUB_REPO)return process.env.DIFFHUB_REPO;let a=(()=>{try{let a=(0,e.readFileSync)("/tmp/diffhub-active-repo","utf-8").trim();if(a)return a}catch{}return null})();return a||process.cwd()})(),f=await (0,c.cookies)(),g=f.get("sidebar_state")?.value!=="false",h="1"===process.env.DIFFHUB_CMUX&&"1"!==process.env.DIFFHUB_EXTERNAL_WATCHER?"poll":"stream";return(0,b.jsx)(d.DiffApp,{repoPath:a,defaultSidebarOpen:g,watchMode:h})}a.s(["default",0,f],78001)},44870,a=>{a.n(a.i(78001))}];
5
5
 
6
6
  //# sourceMappingURL=_13g0g_e._.js.map
@@ -11,6 +11,7 @@
11
11
  ]
12
12
  },
13
13
  "/api/health": {},
14
- "/api/watch": {}
14
+ "/api/watch": {},
15
+ "/api/watch-events": {}
15
16
  }
16
17
  }
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
7
7
  "static/chunks/03~yq9q893hmn.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/Hr5DhyyWmSFusFY7-HlJ-/_buildManifest.js",
11
- "static/Hr5DhyyWmSFusFY7-HlJ-/_ssgManifest.js",
12
- "static/Hr5DhyyWmSFusFY7-HlJ-/_clientMiddlewareManifest.js"
10
+ "static/XaFUoKZbR-bS9r4T4fiPI/_buildManifest.js",
11
+ "static/XaFUoKZbR-bS9r4T4fiPI/_ssgManifest.js",
12
+ "static/XaFUoKZbR-bS9r4T4fiPI/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/0ijev3dgvkfb8.js",
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" class="glide_d2f847e3-module__jCZlzq__variable operatormono_ed74845e-module__g9tX8G__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0sf7ki_q88l_a.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0ijev3dgvkfb8.js"/><script src="/_next/static/chunks/075fg87~fo-89.js" async=""></script><script src="/_next/static/chunks/0mstyq17cbf8-.js" async=""></script><script src="/_next/static/chunks/turbopack-0j~ashtj9wbn4.js" async=""></script><script src="/_next/static/chunks/13t_ihnxxnv7q.js" async=""></script><script src="/_next/static/chunks/029-i5m87mr_j.js" async=""></script><script src="/_next/static/chunks/0dpr.umiw20gr.js" async=""></script><script src="/_next/static/chunks/11jy8da-iayqc.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>DiffHub</title><meta name="description" content="GitHub PR-style local diff viewer"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><title>404: This page could not be found.</title><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="bg-background antialiased"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","dark",null,["light","dark"],null,true,true)</script><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0ijev3dgvkfb8.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[87710,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"ThemeProvider\"]\n3:I[71249,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"DiffsWorkerProvider\",1]\n4:I[39756,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"default\"]\n5:I[37457,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"default\"]\n6:I[97367,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[97367,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"ViewportBoundary\"]\nc:I[97367,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"MetadataBoundary\"]\ne:I[68027,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0sf7ki_q88l_a.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0sf7ki_q88l_a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/029-i5m87mr_j.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0dpr.umiw20gr.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/11jy8da-iayqc.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"glide_d2f847e3-module__jCZlzq__variable operatormono_ed74845e-module__g9tX8G__variable\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"bg-background antialiased\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"dark\",\"enableSystem\":true,\"disableTransitionOnChange\":true,\"children\":[[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],false]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:0:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:0:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:0:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:0:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0sf7ki_q88l_a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Hr5DhyyWmSFusFY7-HlJ-\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[27201,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"IconMark\"]\n8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"DiffHub\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"GitHub PR-style local diff viewer\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L10\",\"3\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en" class="glide_d2f847e3-module__jCZlzq__variable operatormono_ed74845e-module__g9tX8G__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0sf7ki_q88l_a.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0ijev3dgvkfb8.js"/><script src="/_next/static/chunks/075fg87~fo-89.js" async=""></script><script src="/_next/static/chunks/0mstyq17cbf8-.js" async=""></script><script src="/_next/static/chunks/turbopack-0j~ashtj9wbn4.js" async=""></script><script src="/_next/static/chunks/13t_ihnxxnv7q.js" async=""></script><script src="/_next/static/chunks/029-i5m87mr_j.js" async=""></script><script src="/_next/static/chunks/0dpr.umiw20gr.js" async=""></script><script src="/_next/static/chunks/11jy8da-iayqc.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>DiffHub</title><meta name="description" content="GitHub PR-style local diff viewer"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><title>404: This page could not be found.</title><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="bg-background antialiased"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","dark",null,["light","dark"],null,true,true)</script><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0ijev3dgvkfb8.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[87710,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"ThemeProvider\"]\n3:I[71249,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"DiffsWorkerProvider\",1]\n4:I[39756,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"default\"]\n5:I[37457,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"default\"]\n6:I[97367,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[97367,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"ViewportBoundary\"]\nc:I[97367,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"MetadataBoundary\"]\ne:I[68027,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0sf7ki_q88l_a.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0sf7ki_q88l_a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/029-i5m87mr_j.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0dpr.umiw20gr.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/11jy8da-iayqc.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"glide_d2f847e3-module__jCZlzq__variable operatormono_ed74845e-module__g9tX8G__variable\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"bg-background antialiased\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"dark\",\"enableSystem\":true,\"disableTransitionOnChange\":true,\"children\":[[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],false]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:0:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:0:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:0:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:0:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0sf7ki_q88l_a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"XaFUoKZbR-bS9r4T4fiPI\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[27201,[\"/_next/static/chunks/13t_ihnxxnv7q.js\",\"/_next/static/chunks/029-i5m87mr_j.js\",\"/_next/static/chunks/0dpr.umiw20gr.js\",\"/_next/static/chunks/11jy8da-iayqc.js\"],\"IconMark\"]\n8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"DiffHub\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"GitHub PR-style local diff viewer\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L10\",\"3\",{}]]\n"])</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0ijev3dgvkfb8.js"/><script src="/_next/static/chunks/075fg87~fo-89.js" async=""></script><script src="/_next/static/chunks/0mstyq17cbf8-.js" async=""></script><script src="/_next/static/chunks/turbopack-0j~ashtj9wbn4.js" async=""></script><script src="/_next/static/chunks/029-i5m87mr_j.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0ijev3dgvkfb8.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/029-i5m87mr_j.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/029-i5m87mr_j.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/029-i5m87mr_j.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/029-i5m87mr_j.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/029-i5m87mr_j.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/029-i5m87mr_j.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Hr5DhyyWmSFusFY7-HlJ-\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[27201,[\"/_next/static/chunks/029-i5m87mr_j.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0ijev3dgvkfb8.js"/><script src="/_next/static/chunks/075fg87~fo-89.js" async=""></script><script src="/_next/static/chunks/0mstyq17cbf8-.js" async=""></script><script src="/_next/static/chunks/turbopack-0j~ashtj9wbn4.js" async=""></script><script src="/_next/static/chunks/029-i5m87mr_j.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0ijev3dgvkfb8.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/029-i5m87mr_j.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/029-i5m87mr_j.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/029-i5m87mr_j.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/029-i5m87mr_j.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/029-i5m87mr_j.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/029-i5m87mr_j.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"XaFUoKZbR-bS9r4T4fiPI\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[27201,[\"/_next/static/chunks/029-i5m87mr_j.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"UGUvprCHZdGX4RjEdecQ3I5B8P1B6+tffntmznCmwkU=\"\n}"
1
+ self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"lgMDNBsrGPvM/m/sWtNH+VSaeqVXUhJRyGMP1t+73Do=\"\n}"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "node": {},
3
3
  "edge": {},
4
- "encryptionKey": "UGUvprCHZdGX4RjEdecQ3I5B8P1B6+tffntmznCmwkU="
4
+ "encryptionKey": "lgMDNBsrGPvM/m/sWtNH+VSaeqVXUhJRyGMP1t+73Do="
5
5
  }