heartbeads 0.4.0

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 (205) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-build-manifest.json +49 -0
  3. package/.next/app-path-routes-manifest.json +1 -0
  4. package/.next/build-manifest.json +32 -0
  5. package/.next/export-marker.json +1 -0
  6. package/.next/images-manifest.json +1 -0
  7. package/.next/next-minimal-server.js.nft.json +1 -0
  8. package/.next/next-server.js.nft.json +1 -0
  9. package/.next/package.json +1 -0
  10. package/.next/prerender-manifest.json +1 -0
  11. package/.next/react-loadable-manifest.json +8 -0
  12. package/.next/required-server-files.json +1 -0
  13. package/.next/routes-manifest.json +1 -0
  14. package/.next/server/app/_not-found/page.js +1 -0
  15. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  17. package/.next/server/app/_not-found.html +1 -0
  18. package/.next/server/app/_not-found.meta +6 -0
  19. package/.next/server/app/_not-found.rsc +9 -0
  20. package/.next/server/app/api/auth/route.js +1 -0
  21. package/.next/server/app/api/auth/route.js.nft.json +1 -0
  22. package/.next/server/app/api/beads/route.js +8 -0
  23. package/.next/server/app/api/beads/route.js.nft.json +1 -0
  24. package/.next/server/app/api/beads/stream/route.js +10 -0
  25. package/.next/server/app/api/beads/stream/route.js.nft.json +1 -0
  26. package/.next/server/app/api/beads.body +1 -0
  27. package/.next/server/app/api/beads.meta +1 -0
  28. package/.next/server/app/api/config/route.js +8 -0
  29. package/.next/server/app/api/config/route.js.nft.json +1 -0
  30. package/.next/server/app/api/docs/page.js +120 -0
  31. package/.next/server/app/api/docs/page.js.nft.json +1 -0
  32. package/.next/server/app/api/docs/page_client-reference-manifest.js +1 -0
  33. package/.next/server/app/api/docs.html +120 -0
  34. package/.next/server/app/api/docs.meta +5 -0
  35. package/.next/server/app/api/docs.rsc +70 -0
  36. package/.next/server/app/api/login/route.js +1 -0
  37. package/.next/server/app/api/login/route.js.nft.json +1 -0
  38. package/.next/server/app/api/logout/route.js +1 -0
  39. package/.next/server/app/api/logout/route.js.nft.json +1 -0
  40. package/.next/server/app/api/oauth/callback/route.js +1 -0
  41. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -0
  42. package/.next/server/app/api/oauth/client-metadata.json/route.js +1 -0
  43. package/.next/server/app/api/oauth/client-metadata.json/route.js.nft.json +1 -0
  44. package/.next/server/app/api/oauth/jwks.json/route.js +1 -0
  45. package/.next/server/app/api/oauth/jwks.json/route.js.nft.json +1 -0
  46. package/.next/server/app/api/records/route.js +1 -0
  47. package/.next/server/app/api/records/route.js.nft.json +1 -0
  48. package/.next/server/app/api/status/route.js +1 -0
  49. package/.next/server/app/api/status/route.js.nft.json +1 -0
  50. package/.next/server/app/api/v1/graph/route.js +1 -0
  51. package/.next/server/app/api/v1/graph/route.js.nft.json +1 -0
  52. package/.next/server/app/api/v1/issues/[id]/route.js +1 -0
  53. package/.next/server/app/api/v1/issues/[id]/route.js.nft.json +1 -0
  54. package/.next/server/app/api/v1/ready/route.js +1 -0
  55. package/.next/server/app/api/v1/ready/route.js.nft.json +1 -0
  56. package/.next/server/app/index.html +1 -0
  57. package/.next/server/app/index.meta +5 -0
  58. package/.next/server/app/index.rsc +9 -0
  59. package/.next/server/app/login/page.js +1 -0
  60. package/.next/server/app/login/page.js.nft.json +1 -0
  61. package/.next/server/app/login/page_client-reference-manifest.js +1 -0
  62. package/.next/server/app/login.html +1 -0
  63. package/.next/server/app/login.meta +5 -0
  64. package/.next/server/app/login.rsc +9 -0
  65. package/.next/server/app/opengraph-image.png/route.js +1 -0
  66. package/.next/server/app/opengraph-image.png/route.js.nft.json +1 -0
  67. package/.next/server/app/opengraph-image.png.body +0 -0
  68. package/.next/server/app/opengraph-image.png.meta +1 -0
  69. package/.next/server/app/page.js +24 -0
  70. package/.next/server/app/page.js.nft.json +1 -0
  71. package/.next/server/app/page_client-reference-manifest.js +1 -0
  72. package/.next/server/app/twitter-image.png/route.js +1 -0
  73. package/.next/server/app/twitter-image.png/route.js.nft.json +1 -0
  74. package/.next/server/app/twitter-image.png.body +0 -0
  75. package/.next/server/app/twitter-image.png.meta +1 -0
  76. package/.next/server/app-paths-manifest.json +22 -0
  77. package/.next/server/chunks/247.js +12 -0
  78. package/.next/server/chunks/29.js +1 -0
  79. package/.next/server/chunks/343.js +1 -0
  80. package/.next/server/chunks/460.js +12 -0
  81. package/.next/server/chunks/533.js +38 -0
  82. package/.next/server/chunks/542.js +27 -0
  83. package/.next/server/chunks/590.js +6 -0
  84. package/.next/server/chunks/615.js +15 -0
  85. package/.next/server/chunks/696.js +25 -0
  86. package/.next/server/chunks/719.js +2 -0
  87. package/.next/server/chunks/739.js +1 -0
  88. package/.next/server/chunks/950.js +2 -0
  89. package/.next/server/chunks/font-manifest.json +1 -0
  90. package/.next/server/edge-runtime-webpack.js +2 -0
  91. package/.next/server/edge-runtime-webpack.js.map +1 -0
  92. package/.next/server/font-manifest.json +1 -0
  93. package/.next/server/functions-config-manifest.json +1 -0
  94. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  95. package/.next/server/middleware-build-manifest.js +1 -0
  96. package/.next/server/middleware-manifest.json +32 -0
  97. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  98. package/.next/server/middleware.js +14 -0
  99. package/.next/server/middleware.js.map +1 -0
  100. package/.next/server/next-font-manifest.js +1 -0
  101. package/.next/server/next-font-manifest.json +1 -0
  102. package/.next/server/pages/404.html +1 -0
  103. package/.next/server/pages/500.html +1 -0
  104. package/.next/server/pages/_app.js +1 -0
  105. package/.next/server/pages/_app.js.nft.json +1 -0
  106. package/.next/server/pages/_document.js +1 -0
  107. package/.next/server/pages/_document.js.nft.json +1 -0
  108. package/.next/server/pages/_error.js +1 -0
  109. package/.next/server/pages/_error.js.nft.json +1 -0
  110. package/.next/server/pages-manifest.json +1 -0
  111. package/.next/server/server-reference-manifest.js +1 -0
  112. package/.next/server/server-reference-manifest.json +1 -0
  113. package/.next/server/webpack-runtime.js +1 -0
  114. package/.next/static/chunks/149.a3e3a5dc03e21086.js +1 -0
  115. package/.next/static/chunks/2200cc46-7c93a0e00b0bb825.js +1 -0
  116. package/.next/static/chunks/788-aa413085174e935a.js +1 -0
  117. package/.next/static/chunks/945-3ff1d381a0af1ecd.js +2 -0
  118. package/.next/static/chunks/971-bb44d52bcd9ee2a9.js +1 -0
  119. package/.next/static/chunks/app/_not-found/page-200b7a7a6cfc29df.js +1 -0
  120. package/.next/static/chunks/app/api/docs/page-1dc18f40154cdce6.js +1 -0
  121. package/.next/static/chunks/app/layout-13e3cdaaa416edb6.js +1 -0
  122. package/.next/static/chunks/app/login/page-60d930d64f021753.js +1 -0
  123. package/.next/static/chunks/app/not-found-ae1139bed2018dd8.js +1 -0
  124. package/.next/static/chunks/app/page-583300dd8af66e5a.js +1 -0
  125. package/.next/static/chunks/framework-6e06c675866dc992.js +1 -0
  126. package/.next/static/chunks/main-app-8b0c4a1007dbb7f4.js +1 -0
  127. package/.next/static/chunks/main-e680fb049d7426e1.js +1 -0
  128. package/.next/static/chunks/pages/_app-0c3037849002a4aa.js +1 -0
  129. package/.next/static/chunks/pages/_error-a647cd2c75dc4dc7.js +1 -0
  130. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  131. package/.next/static/chunks/webpack-117444a4bfe51057.js +1 -0
  132. package/.next/static/css/8c1b520a38ba4ccd.css +3 -0
  133. package/.next/static/vFM69sDrBUf_9ULwPmVAE/_buildManifest.js +1 -0
  134. package/.next/static/vFM69sDrBUf_9ULwPmVAE/_ssgManifest.js +1 -0
  135. package/README.md +389 -0
  136. package/app/api/auth/route.ts +103 -0
  137. package/app/api/beads/route.ts +27 -0
  138. package/app/api/beads/stream/route.ts +83 -0
  139. package/app/api/config/route.ts +48 -0
  140. package/app/api/docs/page.tsx +497 -0
  141. package/app/api/login/route.ts +42 -0
  142. package/app/api/logout/route.ts +14 -0
  143. package/app/api/oauth/callback/route.ts +97 -0
  144. package/app/api/oauth/client-metadata.json/route.ts +33 -0
  145. package/app/api/oauth/jwks.json/route.ts +32 -0
  146. package/app/api/records/route.ts +168 -0
  147. package/app/api/status/route.ts +25 -0
  148. package/app/api/v1/graph/route.ts +251 -0
  149. package/app/api/v1/issues/[id]/route.ts +158 -0
  150. package/app/api/v1/ready/route.ts +229 -0
  151. package/app/globals.css +230 -0
  152. package/app/layout.tsx +51 -0
  153. package/app/login/page.tsx +164 -0
  154. package/app/not-found.tsx +91 -0
  155. package/app/opengraph-image.png +0 -0
  156. package/app/page.tsx +2041 -0
  157. package/app/twitter-image.png +0 -0
  158. package/bin/heartbeads.mjs +225 -0
  159. package/components/ActivityItem.tsx +326 -0
  160. package/components/ActivityOverlay.tsx +125 -0
  161. package/components/ActivityPanel.tsx +345 -0
  162. package/components/AllCommentsPanel.tsx +270 -0
  163. package/components/AuthButton.tsx +202 -0
  164. package/components/BeadTooltip.tsx +246 -0
  165. package/components/BeadsGraph.tsx +2493 -0
  166. package/components/BeadsLogo.tsx +94 -0
  167. package/components/CommentTooltip.tsx +338 -0
  168. package/components/ContextMenu.tsx +272 -0
  169. package/components/DescriptionModal.tsx +595 -0
  170. package/components/GraphStats.tsx +121 -0
  171. package/components/HeartIcon.tsx +33 -0
  172. package/components/HelpPanel.tsx +339 -0
  173. package/components/MobileActionSheet.tsx +255 -0
  174. package/components/NodeDetail.tsx +793 -0
  175. package/components/SettingsModal.tsx +315 -0
  176. package/components/StatusLegend.tsx +99 -0
  177. package/components/TimelineBar.tsx +116 -0
  178. package/components/TutorialOverlay.tsx +235 -0
  179. package/hooks/useBeadsComments.ts +81 -0
  180. package/hooks/useIsMobile.ts +19 -0
  181. package/lib/activity.ts +377 -0
  182. package/lib/agent.ts +29 -0
  183. package/lib/api-helpers.ts +46 -0
  184. package/lib/auth/client.ts +221 -0
  185. package/lib/auth.tsx +159 -0
  186. package/lib/comments.ts +413 -0
  187. package/lib/diff-beads.ts +128 -0
  188. package/lib/discover.ts +228 -0
  189. package/lib/env.ts +33 -0
  190. package/lib/gate.ts +55 -0
  191. package/lib/parse-beads.ts +234 -0
  192. package/lib/session.ts +52 -0
  193. package/lib/settings.ts +42 -0
  194. package/lib/timeline.ts +138 -0
  195. package/lib/tts.ts +397 -0
  196. package/lib/types.ts +271 -0
  197. package/lib/utils.ts +48 -0
  198. package/lib/watch-beads.ts +97 -0
  199. package/next.config.mjs +4 -0
  200. package/package.json +81 -0
  201. package/postcss.config.mjs +9 -0
  202. package/public/image.png +0 -0
  203. package/scripts/generate-jwk.js +38 -0
  204. package/tailwind.config.ts +41 -0
  205. package/tsconfig.json +24 -0
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../node_modules/next","../../../../../package.json","../../../../package.json","../../../chunks/247.js","../../../chunks/696.js","../../../chunks/719.js","../../../webpack-runtime.js"]}
@@ -0,0 +1,10 @@
1
+ "use strict";(()=>{var e={};e.id=594,e.ids=[594],e.modules={20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{e.exports=require("buffer")},61282:e=>{e.exports=require("child_process")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},35816:e=>{e.exports=require("process")},27491:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>b,requestAsyncStorage:()=>h,routeModule:()=>f,serverHooks:()=>g,staticGenerationAsyncStorage:()=>y});var s={};r.r(s),r.d(s,{GET:()=>p,dynamic:()=>u});var n=r(12085),i=r(31650),a=r(85980),o=r(32933),d=r(8162),l=r(92048),c=r(55315);let u="force-dynamic";async function p(e){let t=null;return new Response(new ReadableStream({start(r){let s=new TextEncoder;function n(e){try{r.enqueue(s.encode(`data: ${JSON.stringify(e)}
2
+
3
+ `))}catch{}}try{let{beadsDir:i}=(0,o.M)(),a=(0,d.do)(i);n(a),t=function(e,t,r=300){let s=function(e){let t=[],r=(0,c.join)(e,"issues.jsonl");for(let s of((0,l.existsSync)(r)&&t.push(r),(0,d.Yg)(e))){let e=(0,c.join)(s,".beads","issues.jsonl");(0,l.existsSync)(e)&&t.push(e)}return t}(e),n=null,i=[],a=new Map;for(let e of s){let t=(0,c.dirname)(e),r=(0,c.basename)(e);a.has(t)||a.set(t,new Set),a.get(t).add(r)}console.log(`[heartbeads] Watching ${s.length} file(s) in ${a.size} dir(s) for changes`);let o=()=>{n&&clearTimeout(n),n=setTimeout(()=>{console.log("[heartbeads] File change detected, pushing update"),t()},r)};for(let[e,t]of a)try{let r=(0,l.watch)(e,{persistent:!0},(e,r)=>{r&&t.has(r)&&o()});i.push(r),console.log(`[heartbeads] Watching dir: ${e} for [${[...t].join(", ")}]`)}catch(t){console.warn(`[heartbeads] Failed to watch ${e}:`,t)}return 0===s.length&&console.warn("[heartbeads] No issues.jsonl files found to watch"),()=>{for(let e of(n&&clearTimeout(n),i))e.close();console.log("[heartbeads] File watchers closed")}}(i,()=>{try{let e=(0,d.do)(i);n(e)}catch(e){console.error("Failed to reload beads data:",e)}});let u=setInterval(()=>{try{r.enqueue(s.encode(": heartbeat\n\n"))}catch{clearInterval(u)}},3e4);e.signal.addEventListener("abort",()=>{clearInterval(u),t&&t();try{r.close()}catch{}})}catch(e){n({error:e instanceof Error?e.message:"Unknown error"}),r.close()}},cancel(){t&&t()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}let f=new n.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/beads/stream/route",pathname:"/api/beads/stream",filename:"route",bundlePath:"app/api/beads/stream/route"},resolvedPagePath:"/Users/david/Projects/gainforest/beads-map/app/api/beads/stream/route.ts",nextConfigOutput:"",userland:s}),{requestAsyncStorage:h,staticGenerationAsyncStorage:y,serverHooks:g}=f,m="/api/beads/stream/route";function b(){return(0,a.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:y})}},32933:(e,t,r)=>{r.d(t,{K:()=>c,M:()=>d});var s=r(92048),n=r(55315),i=r(61282),a=r(90696);function o(e){let t=(0,n.join)(e,"config.yaml");try{if(!(0,s.existsSync)(t))return{additionalRepos:0};let e=(0,s.readFileSync)(t,"utf-8"),r=(0,a.Qc)(e),n=r?.["issue-prefix"]||void 0,i=r?.repos?.additional,o=Array.isArray(i)?i.length:0;return{issuePrefix:n,additionalRepos:o}}catch{return{additionalRepos:0}}}function d(e){let t=process.env.BEADS_DIR;if(t){let e;let r=(0,n.resolve)(t);e=".beads"===(0,n.basename)(r)?r:(0,s.existsSync)((0,n.join)(r,".beads"))?(0,n.join)(r,".beads"):r;try{e=(0,s.realpathSync)(e)}catch{}let i=(0,n.dirname)(e),a=(0,n.basename)(i),d=o(e);return{beadsDir:e,repoRoot:i,repoName:a,...d}}let r=(0,n.resolve)(e||process.cwd()),{root:i}=(0,n.parse)(r);for(;;){let t=(0,n.join)(r,".beads");if((0,s.existsSync)(t)&&(0,s.statSync)(t).isDirectory()){let e;try{e=(0,s.realpathSync)(t)}catch{e=t}let r=(0,n.dirname)(e),i=(0,n.basename)(r),a=o(e);return{beadsDir:e,repoRoot:r,repoName:i,...a}}if(r===i)throw Error(`No .beads/ directory found.
4
+ Searched from: ${(0,n.resolve)(e||process.cwd())}
5
+
6
+ To initialize beads in your project, run:
7
+ bd init
8
+
9
+ Or set the BEADS_DIR environment variable:
10
+ BEADS_DIR=/path/to/project/.beads heartbeads`);r=(0,n.dirname)(r)}}function l(e){try{let t=(0,i.execSync)("git config --get remote.origin.url",{cwd:e,encoding:"utf-8",timeout:3e3,stdio:["pipe","pipe","pipe"]});return function(e){let t=e.trim().replace(/\.git$/,""),r=t.match(/^git@([^:]+):(.+)$/);return r?`https://${r[1]}/${r[2]}`:t.startsWith("https://")||t.startsWith("http://")?t:null}(t)}catch{return null}}function c(e){let t;let r={},i=(0,n.dirname)(e),o=l(i),d=(0,n.join)(e,"config.yaml"),c=[];try{if((0,s.existsSync)(d)){let e=(0,s.readFileSync)(d,"utf-8"),r=(0,a.Qc)(e);t=r?.["issue-prefix"]||void 0;let o=r?.repos?.additional;Array.isArray(o)&&(c=o.map(e=>(0,n.resolve)(i,e)).filter(e=>(0,s.existsSync)((0,n.join)(e,".beads"))))}}catch{}let u=t||(0,n.basename)(i);for(let e of(o&&(r[u]=o),c)){let t=l(e);if(!t)continue;let i=(0,n.join)(e,".beads","config.yaml"),o=(0,n.basename)(e);try{if((0,s.existsSync)(i)){let e=(0,s.readFileSync)(i,"utf-8"),t=(0,a.Qc)(e);t?.["issue-prefix"]&&(o=t["issue-prefix"])}}catch{}r[o]=t}return r}},8162:(e,t,r)=>{r.d(t,{Yg:()=>d,do:()=>c});var s=r(92048),n=r(55315),i=r(90696),a=r(32933);function o(e){let t=e.lastIndexOf("-");return -1===t?e:e.substring(0,t)}function d(e){let t=(0,n.join)(e,"config.yaml");try{let r=(0,s.readFileSync)(t,"utf-8"),a=(0,i.Qc)(r),o=a?.repos?.additional;if(Array.isArray(o))return o.map(t=>(0,n.resolve)(e,"..",t)).filter(e=>(0,s.existsSync)((0,n.join)(e,".beads","issues.jsonl")))}catch(e){console.error("Failed to read config.yaml:",e)}return[]}function l(e){try{return(0,s.readFileSync)(e,"utf-8").split("\n").filter(e=>e.trim().length>0).map(e=>JSON.parse(e))}catch(t){return console.error(`Failed to parse ${e}:`,t),[]}}function c(e){let t=function(e){let t=e||(0,a.M)().beadsDir,r=l((0,n.join)(t,"issues.jsonl"));for(let e of d(t)){let t=l((0,n.join)(e,".beads","issues.jsonl"));r.push(...t)}let s=new Set;return r.filter(e=>!s.has(e.id)&&(s.add(e.id),"tombstone"!==e.status))}(e),r=function(e){let t=[],r=new Set;for(let s of e)if(s.dependencies)for(let e of s.dependencies){let s=`${e.issue_id}->${e.depends_on_id}:${e.type}`;r.has(s)||(r.add(s),t.push(e))}return t}(t),s=function(e,t){let r=new Map(e.map(e=>[e.id,e])),s=new Map,n=new Map;for(let e of t)("blocks"===e.type||"parent-child"===e.type)&&(s.has(e.depends_on_id)||s.set(e.depends_on_id,[]),s.get(e.depends_on_id).push(e.issue_id),n.has(e.issue_id)||n.set(e.issue_id,[]),n.get(e.issue_id).push(e.depends_on_id));return{nodes:e.map(e=>({id:e.id,title:e.title,description:e.description,status:e.status,priority:e.priority,issueType:e.issue_type,owner:e.owner,assignee:e.assignee,createdBy:e.created_by,createdAt:e.created_at,updatedAt:e.updated_at,closedAt:e.closed_at,closeReason:e.close_reason,prefix:o(e.id),blockerCount:s.get(e.id)?.length||0,dependentCount:n.get(e.id)?.length||0,blockerIds:s.get(e.id)||[],dependentIds:n.get(e.id)||[]})),links:t.filter(e=>("blocks"===e.type||"parent-child"===e.type)&&r.has(e.issue_id)&&r.has(e.depends_on_id)).map(e=>({source:e.depends_on_id,target:e.issue_id,type:e.type,createdAt:e.created_at}))}}(t,r),i=function(e,t,r){let s=[...new Set(e.map(e=>o(e.id)))],n=new Set(e.filter(e=>"closed"!==e.status).map(e=>e.id)),i=new Set;for(let e of t)"blocks"===e.type&&n.has(e.depends_on_id)&&i.add(e.issue_id);let a=e.filter(e=>("open"===e.status||"in_progress"===e.status)&&!i.has(e.id)).length;return{total:e.length,open:e.filter(e=>"open"===e.status).length,inProgress:e.filter(e=>"in_progress"===e.status).length,blocked:e.filter(e=>"blocked"===e.status).length,closed:e.filter(e=>"closed"===e.status).length,actionable:a,edges:r.links.length,prefixes:s}}(t,r,s);return{issues:t,dependencies:r,graphData:s,stats:i}}},12085:(e,t,r)=>{e.exports=r(30517)}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[719,696],()=>r(27491));module.exports=s})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/696.js","../../../../chunks/719.js","../../../../webpack-runtime.js"]}