@leanspec/ui 0.2.5-dev.20251119032109 → 0.2.5-dev.20251120015656

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 (150) hide show
  1. package/.next/standalone/node_modules/.pnpm/tiktoken@1.0.22/node_modules/tiktoken/tiktoken_bg.wasm +0 -0
  2. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  3. package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +1 -0
  4. package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
  5. package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/packages/ui/.next/routes-manifest.json +8 -0
  7. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js +1 -1
  8. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  10. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js +2 -2
  16. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  17. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  19. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +16 -16
  20. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +16 -16
  21. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  22. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  23. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  24. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +5 -5
  25. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js +1 -1
  26. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  27. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js +1 -1
  28. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  29. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js +1 -1
  30. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  31. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  33. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +1 -1
  34. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  35. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route/app-paths-manifest.json +3 -0
  36. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route/build-manifest.json +11 -0
  37. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route/server-reference-manifest.json +4 -0
  38. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js +7 -0
  39. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.map +5 -0
  40. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -0
  41. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route_client-reference-manifest.js +2 -0
  42. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +1 -1
  43. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  44. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +1 -1
  45. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  46. package/.next/standalone/packages/ui/.next/server/app/page.js +2 -2
  47. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  48. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js +2 -2
  50. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  51. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/packages/ui/.next/server/app/specs/page.js +2 -2
  53. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  54. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/packages/ui/.next/server/app/stats/page.js +2 -2
  56. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  57. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +1 -0
  59. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_specs_[id]_status_route_actions_5d700407.js +3 -0
  60. package/.next/standalone/packages/ui/.next/server/chunks/{[root-of-the-server]__d1d92c7c._.js → [root-of-the-server]__175bef84._.js} +2 -2
  61. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3971eae5._.js +3 -0
  62. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__6bca1621._.js +3 -0
  63. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__87a3475a._.js +3 -0
  64. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9f0f4c0b._.js +3 -0
  65. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__c1c9f5f5._.js +3 -0
  66. package/.next/standalone/packages/ui/.next/server/chunks/{[root-of-the-server]__e09ce4bf._.js → [root-of-the-server]__c6689757._.js} +2 -2
  67. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__cd1fb0a2._.js +4 -0
  68. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e2071b2e._.js +3 -0
  69. package/.next/standalone/packages/ui/.next/server/chunks/e0876_tiktoken_3efea2dc._.js +3 -0
  70. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +1 -1
  71. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__c65aedd0._.js → [root-of-the-server]__299c81cc._.js} +2 -2
  72. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__b3633d6e._.js → [root-of-the-server]__41f5b5c0._.js} +2 -2
  73. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__a9d7fd42._.js → [root-of-the-server]__5ca2e973._.js} +2 -2
  74. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__7f55abaa._.js +1 -1
  75. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b2fe773d._.js +3 -0
  76. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__e79a982a._.js +7 -0
  77. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__6e89d129._.js → [root-of-the-server]__ff03fc1e._.js} +2 -2
  78. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  79. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_6cd9a5e0._.js +3 -0
  80. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b483c9fe._.js +3 -0
  81. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b5040d31._.js +5 -0
  82. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_e1889307._.js +3 -0
  83. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +3 -0
  84. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +3 -0
  85. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  86. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  87. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  88. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  89. package/.next/standalone/packages/ui/.next/static/chunks/093ea4b175adb770.js +1 -0
  90. package/.next/standalone/packages/ui/.next/static/chunks/{f2151fb88f8fc70a.js → 3fc323b284db714f.js} +1 -1
  91. package/.next/standalone/packages/ui/.next/static/chunks/5f97d665a4d9dc62.js +3 -0
  92. package/.next/standalone/packages/ui/.next/static/chunks/9b7b7024c39c5f99.js +1 -0
  93. package/.next/standalone/packages/ui/.next/static/chunks/c61cbb6a0ba3b6ab.js +1 -0
  94. package/.next/standalone/packages/ui/.next/static/chunks/cff894805981b496.css +1 -0
  95. package/.next/standalone/packages/ui/.next/static/chunks/d79bf953f0dfb650.js +1 -0
  96. package/.next/standalone/packages/ui/.next/static/chunks/e50fb8d0b728cd35.js +5 -0
  97. package/.next/standalone/packages/ui/.next/static/chunks/e6e238dbf1d3e740.js +1 -0
  98. package/.next/standalone/packages/ui/package.json +1 -1
  99. package/.next/standalone/packages/ui/src/app/api/specs/[id]/status/route.ts +122 -0
  100. package/.next/standalone/packages/ui/src/app/globals.css +10 -0
  101. package/.next/standalone/packages/ui/src/app/specs/page.tsx +2 -2
  102. package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +489 -214
  103. package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +23 -0
  104. package/.next/standalone/packages/ui/src/lib/specs/sources/filesystem-source.ts +46 -6
  105. package/.next/standalone/packages/ui/tsconfig.json +2 -1
  106. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  107. package/.next/standalone/packages/ui/vitest.config.ts +1 -0
  108. package/.next/static/chunks/093ea4b175adb770.js +1 -0
  109. package/.next/static/chunks/{f2151fb88f8fc70a.js → 3fc323b284db714f.js} +1 -1
  110. package/.next/static/chunks/5f97d665a4d9dc62.js +3 -0
  111. package/.next/static/chunks/9b7b7024c39c5f99.js +1 -0
  112. package/.next/static/chunks/c61cbb6a0ba3b6ab.js +1 -0
  113. package/.next/static/chunks/cff894805981b496.css +1 -0
  114. package/.next/static/chunks/d79bf953f0dfb650.js +1 -0
  115. package/.next/static/chunks/e50fb8d0b728cd35.js +5 -0
  116. package/.next/static/chunks/e6e238dbf1d3e740.js +1 -0
  117. package/package.json +1 -1
  118. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__15e8a946._.js +0 -3
  119. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__47b8cab4._.js +0 -3
  120. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9fda1bdb._.js +0 -3
  121. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2c55ffb._.js +0 -3
  122. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__d4193584._.js +0 -3
  123. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__68015eee._.js +0 -3
  124. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__8ae28367._.js +0 -7
  125. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_a527620e._.js +0 -3
  126. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_d7e4bd50._.js +0 -5
  127. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f8b2190a._.js +0 -3
  128. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_ui_input_tsx_190a7701._.js +0 -3
  129. package/.next/standalone/packages/ui/.next/static/chunks/16b2f4261d3a374a.css +0 -1
  130. package/.next/standalone/packages/ui/.next/static/chunks/17ac52d909def83e.js +0 -1
  131. package/.next/standalone/packages/ui/.next/static/chunks/3385e291c49e782d.js +0 -1
  132. package/.next/standalone/packages/ui/.next/static/chunks/5057c3e1e7e13ca3.js +0 -1
  133. package/.next/standalone/packages/ui/.next/static/chunks/88f695d32910a4ac.js +0 -1
  134. package/.next/standalone/packages/ui/.next/static/chunks/dde5d8bddd7fbfcf.js +0 -1
  135. package/.next/standalone/packages/ui/.next/static/chunks/e237e00fd3a84178.js +0 -3
  136. package/.next/standalone/packages/ui/.next/static/chunks/ee4245fe6ba3d6d3.js +0 -5
  137. package/.next/static/chunks/16b2f4261d3a374a.css +0 -1
  138. package/.next/static/chunks/17ac52d909def83e.js +0 -1
  139. package/.next/static/chunks/3385e291c49e782d.js +0 -1
  140. package/.next/static/chunks/5057c3e1e7e13ca3.js +0 -1
  141. package/.next/static/chunks/88f695d32910a4ac.js +0 -1
  142. package/.next/static/chunks/dde5d8bddd7fbfcf.js +0 -1
  143. package/.next/static/chunks/e237e00fd3a84178.js +0 -3
  144. package/.next/static/chunks/ee4245fe6ba3d6d3.js +0 -5
  145. /package/.next/standalone/packages/ui/.next/static/{uj2-H8ytNCFa611gjl5uE → aJb7D9JtV_zRcRPZ0yHNE}/_buildManifest.js +0 -0
  146. /package/.next/standalone/packages/ui/.next/static/{uj2-H8ytNCFa611gjl5uE → aJb7D9JtV_zRcRPZ0yHNE}/_clientMiddlewareManifest.json +0 -0
  147. /package/.next/standalone/packages/ui/.next/static/{uj2-H8ytNCFa611gjl5uE → aJb7D9JtV_zRcRPZ0yHNE}/_ssgManifest.js +0 -0
  148. /package/.next/static/{uj2-H8ytNCFa611gjl5uE → aJb7D9JtV_zRcRPZ0yHNE}/_buildManifest.js +0 -0
  149. /package/.next/static/{uj2-H8ytNCFa611gjl5uE → aJb7D9JtV_zRcRPZ0yHNE}/_clientMiddlewareManifest.json +0 -0
  150. /package/.next/static/{uj2-H8ytNCFa611gjl5uE → aJb7D9JtV_zRcRPZ0yHNE}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},67708,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(92194);let n=[{pattern:/design|ui|ux|mockup|wireframe|prototype/i,iconName:"Palette",color:"text-purple-600"},{pattern:/architecture|structure|system|diagram/i,iconName:"Map",color:"text-indigo-600"},{pattern:/implementation|code|develop|build/i,iconName:"Code",color:"text-green-600"},{pattern:/api|endpoint|integration|interface/i,iconName:"Code",color:"text-blue-600"},{pattern:/test|qa|quality|validation/i,iconName:"TestTube",color:"text-orange-600"},{pattern:/task|todo|checklist|milestone/i,iconName:"CheckSquare",color:"text-gray-600"},{pattern:/config|setup|settings|environment/i,iconName:"Wrench",color:"text-yellow-600"},{pattern:/deploy|devops|ci|cd|pipeline|release/i,iconName:"Wrench",color:"text-orange-600"},{pattern:/migration|upgrade|refactor|transition/i,iconName:"GitBranch",color:"text-cyan-600"},{pattern:/security|auth|permission|access|encryption/i,iconName:"CheckSquare",color:"text-red-600"},{pattern:/performance|optimization|speed|cache|benchmark/i,iconName:"TrendingUp",color:"text-green-600"},{pattern:/database|data|schema|model|query/i,iconName:"FileText",color:"text-blue-600"},{pattern:/doc|guide|manual|reference/i,iconName:"FileText",color:"text-gray-500"},{pattern:/github|git|vcs|version/i,iconName:"GitBranch",color:"text-pink-600"}],o={iconName:"FileText",color:"text-gray-600"};function i(e){let i=[];if(!(0,t.existsSync)(e))return i;try{for(let s of(0,t.readdirSync)(e)){if("README.md"===s||!s.endsWith(".md"))continue;let c=(0,r.join)(e,s);if((0,t.statSync)(c).isFile())try{let e=(0,t.readFileSync)(c,"utf-8"),{content:r}=(0,a.default)(e),l=function(e){let t=e.replace(/\.md$/i,"");for(let{pattern:e,iconName:r,color:a}of n)if(e.test(t))return{iconName:r,color:a};return o}(s);i.push({name:s.replace(/\.md$/i,"").split(/[-_]/).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "),file:s,iconName:l.iconName,color:l.color,content:r})}catch(e){console.error(`Error reading sub-spec ${s}:`,e)}}i.sort((e,t)=>e.file.localeCompare(t.file))}catch(t){console.error(`Error reading spec directory ${e}:`,t)}return i}e.s(["detectSubSpecs",()=>i])},25372,(e,t,r)=>{t.exports=e.x("better-sqlite3",()=>require("better-sqlite3"))},50306,e=>{"use strict";var t=e.i(5271),r=e.i(31585),a=e.i(22124),n=e.i(79174);async function o(){return await t.db.select().from(r.schema.projects).orderBy((0,n.desc)(r.schema.projects.isFeatured),r.schema.projects.displayName)}async function i(e){return(await t.db.select().from(r.schema.specs).where((0,a.eq)(r.schema.specs.projectId,e)).orderBy(r.schema.specs.specNumber)).map(e=>({...e,tags:e.tags?JSON.parse(e.tags):null}))}e.i(67708),e.i(14747),e.s(["getProjects",()=>o,"getSpecsByProjectId",()=>i])},90287,e=>{"use strict";var t=e.i(6169),r=e.i(25864),a=e.i(71648),n=e.i(30064),o=e.i(74222),i=e.i(2043),s=e.i(71408),c=e.i(26527),l=e.i(30592),p=e.i(34639),d=e.i(88935),u=e.i(68515),h=e.i(87166),x=e.i(76718),m=e.i(76529),f=e.i(51151),g=e.i(93695);e.i(59704);var v=e.i(8259),R=e.i(31511),y=e.i(50306);async function w(e,{params:t}){try{let{id:e}=await t,r=await (0,y.getSpecsByProjectId)(e);return R.NextResponse.json({specs:r})}catch(e){return console.error("Error fetching specs:",e),R.NextResponse.json({error:"Failed to fetch specs"},{status:500})}}e.s(["GET",()=>w],41264);var E=e.i(41264);let N=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/[id]/specs/route",pathname:"/api/projects/[id]/specs",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/packages/ui/src/app/api/projects/[id]/specs/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:b,workUnitAsyncStorage:C,serverHooks:j}=N;function q(){return(0,a.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:C})}async function A(e,t,a){N.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/projects/[id]/specs/route";R=R.replace(/\/index$/,"")||"/";let y=await N.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:b,parsedUrl:C,isDraftMode:j,prerenderManifest:q,routerServerContext:A,isOnDemandRevalidate:S,revalidateOnlyGenerated:T,resolvedPathname:k,clientReferenceManifest:P,serverActionsManifest:O}=y,_=(0,c.normalizeAppPath)(R),I=!!(q.dynamicRoutes[_]||q.routes[k]),M=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!j){let e=!!q.routes[k],t=q.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await M();throw new g.NoFallbackError}}let U=null;!I||N.isDev||j||(U="/index"===(U=k)?"/":U);let H=!0===N.isDev||!I,F=I&&!H;O&&P&&(0,i.setReferenceManifestsSingleton)({page:R,clientReferenceManifest:P,serverActionsManifest:O,serverModuleMap:(0,s.createServerModuleMap)({serverActionsManifest:O})});let D=e.method||"GET",$=(0,o.getTracer)(),B=$.getActiveScopeSpan(),K={params:E,prerenderManifest:q,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>N.onRequestError(e,t,a,A)},sharedContext:{buildId:w}},G=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),W=p.NextRequestAdapter.fromNodeNextRequest(G,(0,p.signalFromNodeResponse)(t));try{let i=async e=>N.handle(W,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${D} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${R}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),c=async n=>{var o,c;let l=async({previousCacheEntry:r})=>{try{if(!s&&S&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let c=K.renderOpts.pendingWaitUntil;c&&a.waitUntil&&(a.waitUntil(c),c=void 0);let l=K.renderOpts.collectedTags;if(!I)return await (0,h.sendResponse)(G,L,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,x.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:S})},A),t}},p=await N.handleResponse({req:e,nextConfig:b,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:q,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:s});if(!I)return null;if((null==p||null==(o=p.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(c=p.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",S?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,x.fromNodeOutgoingHttpHeaders)(p.value.headers);return s&&I||d.delete(f.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,m.getCacheControlHeader)(p.cacheControl)),await (0,h.sendResponse)(G,L,new Response(p.value.body,{headers:d,status:p.value.status||200})),null};B?await c(B):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${D} ${R}`,kind:o.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},c))}catch(t){if(t instanceof g.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:S})}),I)throw t;return await (0,h.sendResponse)(G,L,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>q,"routeModule",()=>N,"serverHooks",()=>j,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>C],90287)}];
1
+ module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},67708,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(92194);let n=[{pattern:/design|ui|ux|mockup|wireframe|prototype/i,iconName:"Palette",color:"text-purple-600"},{pattern:/architecture|structure|system|diagram/i,iconName:"Map",color:"text-indigo-600"},{pattern:/implementation|code|develop|build/i,iconName:"Code",color:"text-green-600"},{pattern:/api|endpoint|integration|interface/i,iconName:"Code",color:"text-blue-600"},{pattern:/test|qa|quality|validation/i,iconName:"TestTube",color:"text-orange-600"},{pattern:/task|todo|checklist|milestone/i,iconName:"CheckSquare",color:"text-gray-600"},{pattern:/config|setup|settings|environment/i,iconName:"Wrench",color:"text-yellow-600"},{pattern:/deploy|devops|ci|cd|pipeline|release/i,iconName:"Wrench",color:"text-orange-600"},{pattern:/migration|upgrade|refactor|transition/i,iconName:"GitBranch",color:"text-cyan-600"},{pattern:/security|auth|permission|access|encryption/i,iconName:"CheckSquare",color:"text-red-600"},{pattern:/performance|optimization|speed|cache|benchmark/i,iconName:"TrendingUp",color:"text-green-600"},{pattern:/database|data|schema|model|query/i,iconName:"FileText",color:"text-blue-600"},{pattern:/doc|guide|manual|reference/i,iconName:"FileText",color:"text-gray-500"},{pattern:/github|git|vcs|version/i,iconName:"GitBranch",color:"text-pink-600"}],o={iconName:"FileText",color:"text-gray-600"};function i(e){let i=[];if(!(0,t.existsSync)(e))return i;try{for(let s of(0,t.readdirSync)(e)){if("README.md"===s||!s.endsWith(".md"))continue;let c=(0,r.join)(e,s);if((0,t.statSync)(c).isFile())try{let e=(0,t.readFileSync)(c,"utf-8"),{content:r}=(0,a.default)(e),l=function(e){let t=e.replace(/\.md$/i,"");for(let{pattern:e,iconName:r,color:a}of n)if(e.test(t))return{iconName:r,color:a};return o}(s);i.push({name:s.replace(/\.md$/i,"").split(/[-_]/).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "),file:s,iconName:l.iconName,color:l.color,content:r})}catch(e){console.error(`Error reading sub-spec ${s}:`,e)}}i.sort((e,t)=>e.file.localeCompare(t.file))}catch(t){console.error(`Error reading spec directory ${e}:`,t)}return i}e.s(["detectSubSpecs",()=>i])},25372,(e,t,r)=>{t.exports=e.x("better-sqlite3",()=>require("better-sqlite3"))},50306,e=>{"use strict";var t=e.i(5271),r=e.i(31585),a=e.i(22124),n=e.i(79174);async function o(){return await t.db.select().from(r.schema.projects).orderBy((0,n.desc)(r.schema.projects.isFeatured),r.schema.projects.displayName)}async function i(e){return(await t.db.select().from(r.schema.specs).where((0,a.eq)(r.schema.specs.projectId,e)).orderBy(r.schema.specs.specNumber)).map(e=>({...e,tags:e.tags?JSON.parse(e.tags):null}))}e.i(67708),e.i(14747),e.s(["getProjects",()=>o,"getSpecsByProjectId",()=>i])},90287,e=>{"use strict";var t=e.i(6169),r=e.i(25864),a=e.i(71648),n=e.i(30064),o=e.i(74222),i=e.i(2043),s=e.i(71408),c=e.i(26527),l=e.i(30592),p=e.i(34639),d=e.i(88935),u=e.i(68515),h=e.i(87166),x=e.i(76718),m=e.i(76529),f=e.i(51151),g=e.i(93695);e.i(59704);var v=e.i(8259),R=e.i(31511),y=e.i(50306);async function w(e,{params:t}){try{let{id:e}=await t,r=await (0,y.getSpecsByProjectId)(e);return R.NextResponse.json({specs:r})}catch(e){return console.error("Error fetching specs:",e),R.NextResponse.json({error:"Failed to fetch specs"},{status:500})}}e.s(["GET",()=>w],41264);var E=e.i(41264);let N=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/[id]/specs/route",pathname:"/api/projects/[id]/specs",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/packages/ui/src/app/api/projects/[id]/specs/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:b,workUnitAsyncStorage:C,serverHooks:j}=N;function q(){return(0,a.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:C})}async function A(e,t,a){N.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/projects/[id]/specs/route";R=R.replace(/\/index$/,"")||"/";let y=await N.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:b,parsedUrl:C,isDraftMode:j,prerenderManifest:q,routerServerContext:A,isOnDemandRevalidate:S,revalidateOnlyGenerated:T,resolvedPathname:k,clientReferenceManifest:P,serverActionsManifest:O}=y,_=(0,c.normalizeAppPath)(R),I=!!(q.dynamicRoutes[_]||q.routes[k]),M=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!j){let e=!!q.routes[k],t=q.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await M();throw new g.NoFallbackError}}let U=null;!I||N.isDev||j||(U="/index"===(U=k)?"/":U);let H=!0===N.isDev||!I,F=I&&!H;O&&P&&(0,i.setReferenceManifestsSingleton)({page:R,clientReferenceManifest:P,serverActionsManifest:O,serverModuleMap:(0,s.createServerModuleMap)({serverActionsManifest:O})});let D=e.method||"GET",$=(0,o.getTracer)(),B=$.getActiveScopeSpan(),K={params:E,prerenderManifest:q,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>N.onRequestError(e,t,a,A)},sharedContext:{buildId:w}},G=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),W=p.NextRequestAdapter.fromNodeNextRequest(G,(0,p.signalFromNodeResponse)(t));try{let i=async e=>N.handle(W,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${D} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${R}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),c=async n=>{var o,c;let l=async({previousCacheEntry:r})=>{try{if(!s&&S&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let c=K.renderOpts.pendingWaitUntil;c&&a.waitUntil&&(a.waitUntil(c),c=void 0);let l=K.renderOpts.collectedTags;if(!I)return await (0,h.sendResponse)(G,L,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,x.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:S})},A),t}},p=await N.handleResponse({req:e,nextConfig:b,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:q,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:s});if(!I)return null;if((null==p||null==(o=p.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(c=p.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",S?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,x.fromNodeOutgoingHttpHeaders)(p.value.headers);return s&&I||d.delete(f.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,m.getCacheControlHeader)(p.cacheControl)),await (0,h.sendResponse)(G,L,new Response(p.value.body,{headers:d,status:p.value.status||200})),null};B?await c(B):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${D} ${R}`,kind:o.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},c))}catch(t){if(t instanceof g.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:S})}),I)throw t;return await (0,h.sendResponse)(G,L,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>q,"routeModule",()=>N,"serverHooks",()=>j,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>C],90287)}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__d1d92c7c._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__175bef84._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[18622,(e,r,s)=>{r.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,r,s)=>{r.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,r,s)=>{r.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,r,s)=>{r.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,r,s)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},2157,(e,r,s)=>{r.exports=e.x("node:fs",()=>require("node:fs"))},874,(e,r,s)=>{r.exports=e.x("buffer",()=>require("buffer"))},14747,(e,r,s)=>{r.exports=e.x("path",()=>require("path"))},22734,(e,r,s)=>{r.exports=e.x("fs",()=>require("fs"))},12714,(e,r,s)=>{r.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},50227,(e,r,s)=>{r.exports=e.x("node:path",()=>require("node:path"))},37939,e=>{e.v(r=>Promise.all(["server/chunks/e0876_tiktoken_3efea2dc._.js"].map(r=>e.l(r))).then(()=>r(2141)))},87903,e=>{e.v(e=>Promise.resolve().then(()=>e(12714)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__3971eae5._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},68239,e=>{"use strict";var t=e.i(44271),r=e.i(67708),a=e.i(14747),s=e.i(2157),i=e.i(92194);let n=(0,a.resolve)(process.cwd(),"../../specs");function o(e){return e?Array.isArray(e)?e.map(e=>String(e)):"string"==typeof e?[e]:[]:[]}async function c(e,c){let l=await t.specsService.getSpec(e,c);if(!l)return null;let p={...l,tags:l.tags?"string"==typeof l.tags?JSON.parse(l.tags):l.tags:null};if(!c){let e,t,c=(e=l.filePath.replace(/^specs\//,"").replace(/\/README\.md$/,""),(0,a.join)((t=process.env.SPECS_DIR)?t.startsWith("/")?t:(0,a.resolve)(process.cwd(),t):n,e)),u=(0,r.detectSubSpecs)(c),d=function(e){try{let t=(0,a.join)(e,"README.md"),r=(0,s.readFileSync)(t,"utf-8"),{data:n}=(0,i.default)(r),c=o(n?.depends_on??n?.dependsOn),l=o(n?.related);return{dependsOn:c,related:l}}catch(e){return console.warn("Unable to parse spec relationships",e),{dependsOn:[],related:[]}}}(c);return{...p,subSpecs:u,relationships:d}}return p}async function l(e){let r=await t.specsService.getAllSpecs(e),a=new Map,s=new Map;for(let e of r)e.status&&a.set(e.status,(a.get(e.status)||0)+1),e.priority&&s.set(e.priority,(s.get(e.priority)||0)+1);let i=a.get("complete")||0,n=r.length>0?i/r.length*100:0;return{totalProjects:1,totalSpecs:r.length,specsByStatus:Array.from(a.entries()).map(([e,t])=>({status:e,count:t})),specsByPriority:Array.from(s.entries()).map(([e,t])=>({priority:e,count:t})),completionRate:Math.round(10*n)/10}}e.s(["getSpecById",()=>c,"getStats",()=>l])},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},67708,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(92194);let s=[{pattern:/design|ui|ux|mockup|wireframe|prototype/i,iconName:"Palette",color:"text-purple-600"},{pattern:/architecture|structure|system|diagram/i,iconName:"Map",color:"text-indigo-600"},{pattern:/implementation|code|develop|build/i,iconName:"Code",color:"text-green-600"},{pattern:/api|endpoint|integration|interface/i,iconName:"Code",color:"text-blue-600"},{pattern:/test|qa|quality|validation/i,iconName:"TestTube",color:"text-orange-600"},{pattern:/task|todo|checklist|milestone/i,iconName:"CheckSquare",color:"text-gray-600"},{pattern:/config|setup|settings|environment/i,iconName:"Wrench",color:"text-yellow-600"},{pattern:/deploy|devops|ci|cd|pipeline|release/i,iconName:"Wrench",color:"text-orange-600"},{pattern:/migration|upgrade|refactor|transition/i,iconName:"GitBranch",color:"text-cyan-600"},{pattern:/security|auth|permission|access|encryption/i,iconName:"CheckSquare",color:"text-red-600"},{pattern:/performance|optimization|speed|cache|benchmark/i,iconName:"TrendingUp",color:"text-green-600"},{pattern:/database|data|schema|model|query/i,iconName:"FileText",color:"text-blue-600"},{pattern:/doc|guide|manual|reference/i,iconName:"FileText",color:"text-gray-500"},{pattern:/github|git|vcs|version/i,iconName:"GitBranch",color:"text-pink-600"}],i={iconName:"FileText",color:"text-gray-600"};function n(e){let n=[];if(!(0,t.existsSync)(e))return n;try{for(let o of(0,t.readdirSync)(e)){if("README.md"===o||!o.endsWith(".md"))continue;let c=(0,r.join)(e,o);if((0,t.statSync)(c).isFile())try{let e=(0,t.readFileSync)(c,"utf-8"),{content:r}=(0,a.default)(e),l=function(e){let t=e.replace(/\.md$/i,"");for(let{pattern:e,iconName:r,color:a}of s)if(e.test(t))return{iconName:r,color:a};return i}(o);n.push({name:o.replace(/\.md$/i,"").split(/[-_]/).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "),file:o,iconName:l.iconName,color:l.color,content:r})}catch(e){console.error(`Error reading sub-spec ${o}:`,e)}}n.sort((e,t)=>e.file.localeCompare(t.file))}catch(t){console.error(`Error reading spec directory ${e}:`,t)}return n}e.s(["detectSubSpecs",()=>n])},44271,e=>{"use strict";var t=e.i(12714),r=e.i(50227),a=e.i(92194);let s=parseInt(process.env.CACHE_TTL||"60000",10);class i{cache=new Map;specsDir;constructor(e){this.specsDir=e||r.join(process.cwd(),"../../specs")}async getAllSpecs(){let e="__all_specs__",t=this.cache.get(e);if(t&&Date.now()<t.expiresAt)return t.data;let r=await this.loadSpecsFromFilesystem();return this.cache.set(e,{data:r,expiresAt:Date.now()+s}),r}async getSpec(e){let t=`spec:${e}`,r=this.cache.get(t);if(r&&Date.now()<r.expiresAt)return r.data;let a=parseInt(e.split("-")[0],10);if(isNaN(a))return null;let i=await this.loadSpecByNumber(a);return i&&this.cache.set(t,{data:i,expiresAt:Date.now()+s}),i}async getSpecsByStatus(e){return(await this.getAllSpecs()).filter(t=>t.status===e)}async searchSpecs(e){let t=await this.getAllSpecs(),r=e.toLowerCase();return t.filter(e=>e.specName.toLowerCase().includes(r)||e.title?.toLowerCase().includes(r)||e.contentMd.toLowerCase().includes(r))}invalidateCache(e){e?(this.cache.delete(`spec:${e}`),this.cache.delete("__all_specs__")):this.cache.clear()}async loadSpecsFromFilesystem(){let e=[];try{await t.access(this.specsDir)}catch{return[]}let a=/^(\d{2,})-/;for(let s of(await t.readdir(this.specsDir,{withFileTypes:!0})))if(s.isDirectory()){if("archived"===s.name){let s=r.join(this.specsDir,"archived");for(let i of(await t.readdir(s,{withFileTypes:!0})))if(i.isDirectory()&&a.test(i.name)){let t=r.join(s,i.name),a=await this.loadSpecFromDirectory(t,i.name,!0);a&&e.push(a)}continue}if(a.test(s.name)){let t=r.join(this.specsDir,s.name),a=await this.loadSpecFromDirectory(t,s.name,!1);a&&e.push(a)}}return e.sort((e,t)=>(e.specNumber||0)-(t.specNumber||0))}async loadSpecByNumber(e){try{await t.access(this.specsDir)}catch{return null}let a=await t.readdir(this.specsDir,{withFileTypes:!0}),s=RegExp(`^0*${e}-`);for(let e of a)if(e.isDirectory()&&"archived"!==e.name&&s.test(e.name)){let t=r.join(this.specsDir,e.name);return await this.loadSpecFromDirectory(t,e.name,!1)}try{let e=r.join(this.specsDir,"archived");for(let a of(await t.readdir(e,{withFileTypes:!0})))if(a.isDirectory()&&s.test(a.name)){let t=r.join(e,a.name);return await this.loadSpecFromDirectory(t,a.name,!0)}}catch{}return null}async loadSpecFromDirectory(e,s,i=!1){let n=r.join(e,"README.md");try{let e=await t.readFile(n,"utf-8"),{data:r,content:o}=(0,a.default)(e);if(!r||!r.status)return null;let c=s.match(/^(\d+)/),l=c?parseInt(c[1],10):null,p=`fs-${s}`,u=r.created_at??r.created,d=r.updated_at??r.updated,h=r.completed_at??r.completed,f=e=>{if(!e)return null;let t=new Date(e);return isNaN(t.getTime())?null:t},m=`${i?"specs/archived/":"specs/"}${s}/README.md`;return{id:p,projectId:"leanspec",specNumber:l,specName:s,title:this.extractTitle(o),status:r.status||"planned",priority:r.priority||null,tags:r.tags?JSON.stringify(r.tags):null,assignee:r.assignee||null,contentMd:o,contentHtml:null,createdAt:f(u),updatedAt:f(d),completedAt:f(h),filePath:m,githubUrl:`https://github.com/codervisor/lean-spec/tree/main/${m}`,syncedAt:new Date}}catch{return null}}extractTitle(e){for(let t of e.split("\n")){let e=t.match(/^#\s+(.+)$/);if(e)return e[1].trim()}return null}}let n=null,o=new class{filesystemSource;databaseSource;mode;constructor(){if(this.mode=process.env.SPECS_MODE||"filesystem","filesystem"===this.mode||"both"===this.mode){const e=process.env.SPECS_DIR;this.filesystemSource=new i(e)}}async getDatabaseSource(){if(!this.databaseSource){if(!n){let{DatabaseSource:t}=await e.A(14430);n=t}this.databaseSource=new n}return this.databaseSource}async getAllSpecs(e){let t=await this.getSource(e);return await t.getAllSpecs(e)}async getSpec(e,t){let r=await this.getSource(t);return await r.getSpec(e,t)}async getSpecsByStatus(e,t){let r=await this.getSource(t);return await r.getSpecsByStatus(e,t)}async searchSpecs(e,t){let r=await this.getSource(t);return await r.searchSpecs(e,t)}async invalidateCache(e,t){(await this.getSource(t)).invalidateCache(e)}async getSource(e){if(e&&("database"===this.mode||"both"===this.mode))return await this.getDatabaseSource();if(this.filesystemSource)return this.filesystemSource;throw Error("No spec source configured")}};e.s(["specsService",0,o],44271)},68853,e=>{"use strict";var t=e.i(6169),r=e.i(25864),a=e.i(71648),s=e.i(30064),i=e.i(74222),n=e.i(2043),o=e.i(71408),c=e.i(26527),l=e.i(30592),p=e.i(34639),u=e.i(88935),d=e.i(68515),h=e.i(87166),f=e.i(76718),m=e.i(76529),g=e.i(51151),y=e.i(93695);e.i(59704);var x=e.i(8259),w=e.i(31511),S=e.i(68239);async function v(e,{params:t}){try{let{id:e,file:r}=await t,a=await (0,S.getSpecById)(e);if(!a)return w.NextResponse.json({error:"Spec not found"},{status:404});let s=a.subSpecs?.find(e=>e.file===r);if(!s)return w.NextResponse.json({error:"Sub-spec not found"},{status:404});return w.NextResponse.json({subSpec:s},{headers:{"Cache-Control":"public, s-maxage=60, stale-while-revalidate=120"}})}catch(e){return console.error("Error fetching sub-spec:",e),w.NextResponse.json({error:"Failed to fetch sub-spec"},{status:500})}}e.s(["GET",()=>v],81681);var R=e.i(81681);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/specs/[id]/subspecs/[file]/route",pathname:"/api/specs/[id]/subspecs/[file]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/packages/ui/src/app/api/specs/[id]/subspecs/[file]/route.ts",nextConfigOutput:"standalone",userland:R}),{workAsyncStorage:E,workUnitAsyncStorage:C,serverHooks:N}=b;function A(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:C})}async function _(e,t,a){b.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/specs/[id]/subspecs/[file]/route";w=w.replace(/\/index$/,"")||"/";let S=await b.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:R,nextConfig:E,parsedUrl:C,isDraftMode:N,prerenderManifest:A,routerServerContext:_,isOnDemandRevalidate:D,revalidateOnlyGenerated:T,resolvedPathname:j,clientReferenceManifest:k,serverActionsManifest:P}=S,q=(0,c.normalizeAppPath)(w),F=!!(A.dynamicRoutes[q]||A.routes[j]),M=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,C,!1):t.end("This page could not be found"),null);if(F&&!N){let e=!!A.routes[j],t=A.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await M();throw new y.NoFallbackError}}let O=null;!F||b.isDev||N||(O="/index"===(O=j)?"/":O);let I=!0===b.isDev||!F,$=F&&!I;P&&k&&(0,n.setReferenceManifestsSingleton)({page:w,clientReferenceManifest:k,serverActionsManifest:P,serverModuleMap:(0,o.createServerModuleMap)({serverActionsManifest:P})});let U=e.method||"GET",H=(0,i.getTracer)(),B=H.getActiveScopeSpan(),L={params:R,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>b.onRequestError(e,t,a,_)},sharedContext:{buildId:v}},K=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),W=p.NextRequestAdapter.fromNodeNextRequest(K,(0,p.signalFromNodeResponse)(t));try{let n=async e=>b.handle(W,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${U} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${w}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),c=async s=>{var i,c;let l=async({previousCacheEntry:r})=>{try{if(!o&&D&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await n(s);e.fetchMetrics=L.renderOpts.fetchMetrics;let c=L.renderOpts.pendingWaitUntil;c&&a.waitUntil&&(a.waitUntil(c),c=void 0);let l=L.renderOpts.collectedTags;if(!F)return await (0,h.sendResponse)(K,G,i,L.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:D})},_),t}},p=await b.handleResponse({req:e,nextConfig:E,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:o});if(!F)return null;if((null==p||null==(i=p.value)?void 0:i.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(c=p.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",D?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,f.fromNodeOutgoingHttpHeaders)(p.value.headers);return o&&F||u.delete(g.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(p.cacheControl)),await (0,h.sendResponse)(K,G,new Response(p.value.body,{headers:u,status:p.value.status||200})),null};B?await c(B):await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},c))}catch(t){if(t instanceof y.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:D})}),F)throw t;return await (0,h.sendResponse)(K,G,new Response(null,{status:500})),null}}e.s(["handler",()=>_,"patchFetch",()=>A,"routeModule",()=>b,"serverHooks",()=>N,"workAsyncStorage",()=>E,"workUnitAsyncStorage",()=>C],68853)},14430,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__ae726e9c._.js","server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js"].map(t=>e.l(t))).then(()=>t(18146)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__6bca1621._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},68239,e=>{"use strict";var t=e.i(44271),r=e.i(67708),a=e.i(14747),s=e.i(2157),i=e.i(92194);let n=(0,a.resolve)(process.cwd(),"../../specs");function o(e){return e?Array.isArray(e)?e.map(e=>String(e)):"string"==typeof e?[e]:[]:[]}async function c(e,c){let l=await t.specsService.getSpec(e,c);if(!l)return null;let p={...l,tags:l.tags?"string"==typeof l.tags?JSON.parse(l.tags):l.tags:null};if(!c){let e,t,c=(e=l.filePath.replace(/^specs\//,"").replace(/\/README\.md$/,""),(0,a.join)((t=process.env.SPECS_DIR)?t.startsWith("/")?t:(0,a.resolve)(process.cwd(),t):n,e)),u=(0,r.detectSubSpecs)(c),d=function(e){try{let t=(0,a.join)(e,"README.md"),r=(0,s.readFileSync)(t,"utf-8"),{data:n}=(0,i.default)(r),c=o(n?.depends_on??n?.dependsOn),l=o(n?.related);return{dependsOn:c,related:l}}catch(e){return console.warn("Unable to parse spec relationships",e),{dependsOn:[],related:[]}}}(c);return{...p,subSpecs:u,relationships:d}}return p}async function l(e){let r=await t.specsService.getAllSpecs(e),a=new Map,s=new Map;for(let e of r)e.status&&a.set(e.status,(a.get(e.status)||0)+1),e.priority&&s.set(e.priority,(s.get(e.priority)||0)+1);let i=a.get("complete")||0,n=r.length>0?i/r.length*100:0;return{totalProjects:1,totalSpecs:r.length,specsByStatus:Array.from(a.entries()).map(([e,t])=>({status:e,count:t})),specsByPriority:Array.from(s.entries()).map(([e,t])=>({priority:e,count:t})),completionRate:Math.round(10*n)/10}}e.s(["getSpecById",()=>c,"getStats",()=>l])},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},67708,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(92194);let s=[{pattern:/design|ui|ux|mockup|wireframe|prototype/i,iconName:"Palette",color:"text-purple-600"},{pattern:/architecture|structure|system|diagram/i,iconName:"Map",color:"text-indigo-600"},{pattern:/implementation|code|develop|build/i,iconName:"Code",color:"text-green-600"},{pattern:/api|endpoint|integration|interface/i,iconName:"Code",color:"text-blue-600"},{pattern:/test|qa|quality|validation/i,iconName:"TestTube",color:"text-orange-600"},{pattern:/task|todo|checklist|milestone/i,iconName:"CheckSquare",color:"text-gray-600"},{pattern:/config|setup|settings|environment/i,iconName:"Wrench",color:"text-yellow-600"},{pattern:/deploy|devops|ci|cd|pipeline|release/i,iconName:"Wrench",color:"text-orange-600"},{pattern:/migration|upgrade|refactor|transition/i,iconName:"GitBranch",color:"text-cyan-600"},{pattern:/security|auth|permission|access|encryption/i,iconName:"CheckSquare",color:"text-red-600"},{pattern:/performance|optimization|speed|cache|benchmark/i,iconName:"TrendingUp",color:"text-green-600"},{pattern:/database|data|schema|model|query/i,iconName:"FileText",color:"text-blue-600"},{pattern:/doc|guide|manual|reference/i,iconName:"FileText",color:"text-gray-500"},{pattern:/github|git|vcs|version/i,iconName:"GitBranch",color:"text-pink-600"}],i={iconName:"FileText",color:"text-gray-600"};function n(e){let n=[];if(!(0,t.existsSync)(e))return n;try{for(let o of(0,t.readdirSync)(e)){if("README.md"===o||!o.endsWith(".md"))continue;let c=(0,r.join)(e,o);if((0,t.statSync)(c).isFile())try{let e=(0,t.readFileSync)(c,"utf-8"),{content:r}=(0,a.default)(e),l=function(e){let t=e.replace(/\.md$/i,"");for(let{pattern:e,iconName:r,color:a}of s)if(e.test(t))return{iconName:r,color:a};return i}(o);n.push({name:o.replace(/\.md$/i,"").split(/[-_]/).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "),file:o,iconName:l.iconName,color:l.color,content:r})}catch(e){console.error(`Error reading sub-spec ${o}:`,e)}}n.sort((e,t)=>e.file.localeCompare(t.file))}catch(t){console.error(`Error reading spec directory ${e}:`,t)}return n}e.s(["detectSubSpecs",()=>n])},44271,e=>{"use strict";var t=e.i(12714),r=e.i(50227),a=e.i(92194);let s=parseInt(process.env.CACHE_TTL||"60000",10);class i{cache=new Map;specsDir;constructor(e){this.specsDir=e||r.join(process.cwd(),"../../specs")}async getAllSpecs(){let e="__all_specs__",t=this.cache.get(e);if(t&&Date.now()<t.expiresAt)return t.data;let r=await this.loadSpecsFromFilesystem();return this.cache.set(e,{data:r,expiresAt:Date.now()+s}),r}async getSpec(e){let t=`spec:${e}`,r=this.cache.get(t);if(r&&Date.now()<r.expiresAt)return r.data;let a=parseInt(e.split("-")[0],10);if(isNaN(a))return null;let i=await this.loadSpecByNumber(a);return i&&this.cache.set(t,{data:i,expiresAt:Date.now()+s}),i}async getSpecsByStatus(e){return(await this.getAllSpecs()).filter(t=>t.status===e)}async searchSpecs(e){let t=await this.getAllSpecs(),r=e.toLowerCase();return t.filter(e=>e.specName.toLowerCase().includes(r)||e.title?.toLowerCase().includes(r)||e.contentMd.toLowerCase().includes(r))}invalidateCache(e){e?(this.cache.delete(`spec:${e}`),this.cache.delete("__all_specs__")):this.cache.clear()}async loadSpecsFromFilesystem(){let e=[];try{await t.access(this.specsDir)}catch{return[]}let a=/^(\d{2,})-/;for(let s of(await t.readdir(this.specsDir,{withFileTypes:!0})))if(s.isDirectory()){if("archived"===s.name){let s=r.join(this.specsDir,"archived");for(let i of(await t.readdir(s,{withFileTypes:!0})))if(i.isDirectory()&&a.test(i.name)){let t=r.join(s,i.name),a=await this.loadSpecFromDirectory(t,i.name,!0);a&&e.push(a)}continue}if(a.test(s.name)){let t=r.join(this.specsDir,s.name),a=await this.loadSpecFromDirectory(t,s.name,!1);a&&e.push(a)}}return e.sort((e,t)=>(e.specNumber||0)-(t.specNumber||0))}async loadSpecByNumber(e){try{await t.access(this.specsDir)}catch{return null}let a=await t.readdir(this.specsDir,{withFileTypes:!0}),s=RegExp(`^0*${e}-`);for(let e of a)if(e.isDirectory()&&"archived"!==e.name&&s.test(e.name)){let t=r.join(this.specsDir,e.name);return await this.loadSpecFromDirectory(t,e.name,!1)}try{let e=r.join(this.specsDir,"archived");for(let a of(await t.readdir(e,{withFileTypes:!0})))if(a.isDirectory()&&s.test(a.name)){let t=r.join(e,a.name);return await this.loadSpecFromDirectory(t,a.name,!0)}}catch{}return null}async loadSpecFromDirectory(e,s,i=!1){let n=r.join(e,"README.md");try{let e=await t.readFile(n,"utf-8"),{data:r,content:o}=(0,a.default)(e);if(!r||!r.status)return null;let c=s.match(/^(\d+)/),l=c?parseInt(c[1],10):null,p=`fs-${s}`,u=r.created_at??r.created,d=r.updated_at??r.updated,h=r.completed_at??r.completed,m=e=>{if(!e)return null;let t=new Date(e);return isNaN(t.getTime())?null:t},f=`${i?"specs/archived/":"specs/"}${s}/README.md`;return{id:p,projectId:"leanspec",specNumber:l,specName:s,title:this.extractTitle(o),status:r.status||"planned",priority:r.priority||null,tags:r.tags?JSON.stringify(r.tags):null,assignee:r.assignee||null,contentMd:o,contentHtml:null,createdAt:m(u),updatedAt:m(d),completedAt:m(h),filePath:f,githubUrl:`https://github.com/codervisor/lean-spec/tree/main/${f}`,syncedAt:new Date}}catch{return null}}extractTitle(e){for(let t of e.split("\n")){let e=t.match(/^#\s+(.+)$/);if(e)return e[1].trim()}return null}}let n=null,o=new class{filesystemSource;databaseSource;mode;constructor(){if(this.mode=process.env.SPECS_MODE||"filesystem","filesystem"===this.mode||"both"===this.mode){const e=process.env.SPECS_DIR;this.filesystemSource=new i(e)}}async getDatabaseSource(){if(!this.databaseSource){if(!n){let{DatabaseSource:t}=await e.A(14430);n=t}this.databaseSource=new n}return this.databaseSource}async getAllSpecs(e){let t=await this.getSource(e);return await t.getAllSpecs(e)}async getSpec(e,t){let r=await this.getSource(t);return await r.getSpec(e,t)}async getSpecsByStatus(e,t){let r=await this.getSource(t);return await r.getSpecsByStatus(e,t)}async searchSpecs(e,t){let r=await this.getSource(t);return await r.searchSpecs(e,t)}async invalidateCache(e,t){(await this.getSource(t)).invalidateCache(e)}async getSource(e){if(e&&("database"===this.mode||"both"===this.mode))return await this.getDatabaseSource();if(this.filesystemSource)return this.filesystemSource;throw Error("No spec source configured")}};e.s(["specsService",0,o],44271)},17664,e=>{"use strict";var t=e.i(6169),r=e.i(25864),a=e.i(71648),s=e.i(30064),i=e.i(74222),n=e.i(2043),o=e.i(71408),c=e.i(26527),l=e.i(30592),p=e.i(34639),u=e.i(88935),d=e.i(68515),h=e.i(87166),m=e.i(76718),f=e.i(76529),g=e.i(51151),y=e.i(93695);e.i(59704);var x=e.i(8259),w=e.i(31511),S=e.i(68239);async function v(e,{params:t}){try{let{id:e}=await t,r=await (0,S.getSpecById)(e);if(!r)return w.NextResponse.json({error:"Spec not found"},{status:404});return w.NextResponse.json({spec:r},{headers:{"Cache-Control":"public, s-maxage=60, stale-while-revalidate=120"}})}catch(e){return console.error("Error fetching spec:",e),w.NextResponse.json({error:"Failed to fetch spec"},{status:500})}}e.s(["GET",()=>v],8728);var R=e.i(8728);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/specs/[id]/route",pathname:"/api/specs/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/packages/ui/src/app/api/specs/[id]/route.ts",nextConfigOutput:"standalone",userland:R}),{workAsyncStorage:b,workUnitAsyncStorage:C,serverHooks:A}=E;function N(){return(0,a.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:C})}async function _(e,t,a){E.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/specs/[id]/route";w=w.replace(/\/index$/,"")||"/";let S=await E.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:R,nextConfig:b,parsedUrl:C,isDraftMode:A,prerenderManifest:N,routerServerContext:_,isOnDemandRevalidate:D,revalidateOnlyGenerated:T,resolvedPathname:j,clientReferenceManifest:k,serverActionsManifest:P}=S,q=(0,c.normalizeAppPath)(w),F=!!(N.dynamicRoutes[q]||N.routes[j]),M=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,C,!1):t.end("This page could not be found"),null);if(F&&!A){let e=!!N.routes[j],t=N.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await M();throw new y.NoFallbackError}}let O=null;!F||E.isDev||A||(O="/index"===(O=j)?"/":O);let I=!0===E.isDev||!F,$=F&&!I;P&&k&&(0,n.setReferenceManifestsSingleton)({page:w,clientReferenceManifest:k,serverActionsManifest:P,serverModuleMap:(0,o.createServerModuleMap)({serverActionsManifest:P})});let U=e.method||"GET",H=(0,i.getTracer)(),B=H.getActiveScopeSpan(),L={params:R,prerenderManifest:N,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>E.onRequestError(e,t,a,_)},sharedContext:{buildId:v}},K=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),W=p.NextRequestAdapter.fromNodeNextRequest(K,(0,p.signalFromNodeResponse)(t));try{let n=async e=>E.handle(W,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${U} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${w}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),c=async s=>{var i,c;let l=async({previousCacheEntry:r})=>{try{if(!o&&D&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await n(s);e.fetchMetrics=L.renderOpts.fetchMetrics;let c=L.renderOpts.pendingWaitUntil;c&&a.waitUntil&&(a.waitUntil(c),c=void 0);let l=L.renderOpts.collectedTags;if(!F)return await (0,h.sendResponse)(K,G,i,L.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:D})},_),t}},p=await E.handleResponse({req:e,nextConfig:b,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:o});if(!F)return null;if((null==p||null==(i=p.value)?void 0:i.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(c=p.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",D?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(p.value.headers);return o&&F||u.delete(g.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,f.getCacheControlHeader)(p.cacheControl)),await (0,h.sendResponse)(K,G,new Response(p.value.body,{headers:u,status:p.value.status||200})),null};B?await c(B):await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},c))}catch(t){if(t instanceof y.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:D})}),F)throw t;return await (0,h.sendResponse)(K,G,new Response(null,{status:500})),null}}e.s(["handler",()=>_,"patchFetch",()=>N,"routeModule",()=>E,"serverHooks",()=>A,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>C],17664)},14430,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__ae726e9c._.js","server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js"].map(t=>e.l(t))).then(()=>t(18146)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__87a3475a._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[18622,(e,t,s)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,s)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},22734,(e,t,s)=>{t.exports=e.x("fs",()=>require("fs"))},874,(e,t,s)=>{t.exports=e.x("buffer",()=>require("buffer"))},50227,(e,t,s)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,s)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},44271,e=>{"use strict";var t=e.i(12714),s=e.i(50227),r=e.i(92194);let a=parseInt(process.env.CACHE_TTL||"60000",10);class i{cache=new Map;specsDir;constructor(e){this.specsDir=e||s.join(process.cwd(),"../../specs")}async getAllSpecs(){let e="__all_specs__",t=this.cache.get(e);if(t&&Date.now()<t.expiresAt)return t.data;let s=await this.loadSpecsFromFilesystem();return this.cache.set(e,{data:s,expiresAt:Date.now()+a}),s}async getSpec(e){let t=`spec:${e}`,s=this.cache.get(t);if(s&&Date.now()<s.expiresAt)return s.data;let r=parseInt(e.split("-")[0],10);if(isNaN(r))return null;let i=await this.loadSpecByNumber(r);return i&&this.cache.set(t,{data:i,expiresAt:Date.now()+a}),i}async getSpecsByStatus(e){return(await this.getAllSpecs()).filter(t=>t.status===e)}async searchSpecs(e){let t=await this.getAllSpecs(),s=e.toLowerCase();return t.filter(e=>e.specName.toLowerCase().includes(s)||e.title?.toLowerCase().includes(s)||e.contentMd.toLowerCase().includes(s))}invalidateCache(e){e?(this.cache.delete(`spec:${e}`),this.cache.delete("__all_specs__")):this.cache.clear()}async loadSpecsFromFilesystem(){let e=[];try{await t.access(this.specsDir)}catch{return[]}let r=/^(\d{2,})-/;for(let a of(await t.readdir(this.specsDir,{withFileTypes:!0})))if(a.isDirectory()){if("archived"===a.name){let a=s.join(this.specsDir,"archived");for(let i of(await t.readdir(a,{withFileTypes:!0})))if(i.isDirectory()&&r.test(i.name)){let t=s.join(a,i.name),r=await this.loadSpecFromDirectory(t,i.name,!0);r&&e.push(r)}continue}if(r.test(a.name)){let t=s.join(this.specsDir,a.name),r=await this.loadSpecFromDirectory(t,a.name,!1);r&&e.push(r)}}return e.sort((e,t)=>(e.specNumber||0)-(t.specNumber||0))}async loadSpecByNumber(e){try{await t.access(this.specsDir)}catch{return null}let r=await t.readdir(this.specsDir,{withFileTypes:!0}),a=RegExp(`^0*${e}-`);for(let e of r)if(e.isDirectory()&&"archived"!==e.name&&a.test(e.name)){let t=s.join(this.specsDir,e.name);return await this.loadSpecFromDirectory(t,e.name,!1)}try{let e=s.join(this.specsDir,"archived");for(let r of(await t.readdir(e,{withFileTypes:!0})))if(r.isDirectory()&&a.test(r.name)){let t=s.join(e,r.name);return await this.loadSpecFromDirectory(t,r.name,!0)}}catch{}return null}async loadSpecFromDirectory(e,a,i=!1){let c=s.join(e,"README.md");try{let e=await t.readFile(c,"utf-8"),{data:s,content:n}=(0,r.default)(e);if(!s||!s.status)return null;let o=a.match(/^(\d+)/),l=o?parseInt(o[1],10):null,p=`fs-${a}`,u=s.created_at??s.created,d=s.updated_at??s.updated,h=s.completed_at??s.completed,m=e=>{if(!e)return null;let t=new Date(e);return isNaN(t.getTime())?null:t},f=`${i?"specs/archived/":"specs/"}${a}/README.md`;return{id:p,projectId:"leanspec",specNumber:l,specName:a,title:this.extractTitle(n),status:s.status||"planned",priority:s.priority||null,tags:s.tags?JSON.stringify(s.tags):null,assignee:s.assignee||null,contentMd:n,contentHtml:null,createdAt:m(u),updatedAt:m(d),completedAt:m(h),filePath:f,githubUrl:`https://github.com/codervisor/lean-spec/tree/main/${f}`,syncedAt:new Date}}catch{return null}}extractTitle(e){for(let t of e.split("\n")){let e=t.match(/^#\s+(.+)$/);if(e)return e[1].trim()}return null}}let c=null,n=new class{filesystemSource;databaseSource;mode;constructor(){if(this.mode=process.env.SPECS_MODE||"filesystem","filesystem"===this.mode||"both"===this.mode){const e=process.env.SPECS_DIR;this.filesystemSource=new i(e)}}async getDatabaseSource(){if(!this.databaseSource){if(!c){let{DatabaseSource:t}=await e.A(14430);c=t}this.databaseSource=new c}return this.databaseSource}async getAllSpecs(e){let t=await this.getSource(e);return await t.getAllSpecs(e)}async getSpec(e,t){let s=await this.getSource(t);return await s.getSpec(e,t)}async getSpecsByStatus(e,t){let s=await this.getSource(t);return await s.getSpecsByStatus(e,t)}async searchSpecs(e,t){let s=await this.getSource(t);return await s.searchSpecs(e,t)}async invalidateCache(e,t){(await this.getSource(t)).invalidateCache(e)}async getSource(e){if(e&&("database"===this.mode||"both"===this.mode))return await this.getDatabaseSource();if(this.filesystemSource)return this.filesystemSource;throw Error("No spec source configured")}};e.s(["specsService",0,n],44271)},14430,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__f06435b0._.js","server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js"].map(t=>e.l(t))).then(()=>t(18146)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__9f0f4c0b._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},68239,e=>{"use strict";var t=e.i(44271),r=e.i(67708),a=e.i(14747),s=e.i(2157),n=e.i(92194);let i=(0,a.resolve)(process.cwd(),"../../specs");function o(e){return e?Array.isArray(e)?e.map(e=>String(e)):"string"==typeof e?[e]:[]:[]}async function c(e,c){let l=await t.specsService.getSpec(e,c);if(!l)return null;let p={...l,tags:l.tags?"string"==typeof l.tags?JSON.parse(l.tags):l.tags:null};if(!c){let e,t,c=(e=l.filePath.replace(/^specs\//,"").replace(/\/README\.md$/,""),(0,a.join)((t=process.env.SPECS_DIR)?t.startsWith("/")?t:(0,a.resolve)(process.cwd(),t):i,e)),d=(0,r.detectSubSpecs)(c),u=function(e){try{let t=(0,a.join)(e,"README.md"),r=(0,s.readFileSync)(t,"utf-8"),{data:i}=(0,n.default)(r),c=o(i?.depends_on??i?.dependsOn),l=o(i?.related);return{dependsOn:c,related:l}}catch(e){return console.warn("Unable to parse spec relationships",e),{dependsOn:[],related:[]}}}(c);return{...p,subSpecs:d,relationships:u}}return p}async function l(e){let r=await t.specsService.getAllSpecs(e),a=new Map,s=new Map;for(let e of r)e.status&&a.set(e.status,(a.get(e.status)||0)+1),e.priority&&s.set(e.priority,(s.get(e.priority)||0)+1);let n=a.get("complete")||0,i=r.length>0?n/r.length*100:0;return{totalProjects:1,totalSpecs:r.length,specsByStatus:Array.from(a.entries()).map(([e,t])=>({status:e,count:t})),specsByPriority:Array.from(s.entries()).map(([e,t])=>({priority:e,count:t})),completionRate:Math.round(10*i)/10}}e.s(["getSpecById",()=>c,"getStats",()=>l])},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},67708,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(92194);let s=[{pattern:/design|ui|ux|mockup|wireframe|prototype/i,iconName:"Palette",color:"text-purple-600"},{pattern:/architecture|structure|system|diagram/i,iconName:"Map",color:"text-indigo-600"},{pattern:/implementation|code|develop|build/i,iconName:"Code",color:"text-green-600"},{pattern:/api|endpoint|integration|interface/i,iconName:"Code",color:"text-blue-600"},{pattern:/test|qa|quality|validation/i,iconName:"TestTube",color:"text-orange-600"},{pattern:/task|todo|checklist|milestone/i,iconName:"CheckSquare",color:"text-gray-600"},{pattern:/config|setup|settings|environment/i,iconName:"Wrench",color:"text-yellow-600"},{pattern:/deploy|devops|ci|cd|pipeline|release/i,iconName:"Wrench",color:"text-orange-600"},{pattern:/migration|upgrade|refactor|transition/i,iconName:"GitBranch",color:"text-cyan-600"},{pattern:/security|auth|permission|access|encryption/i,iconName:"CheckSquare",color:"text-red-600"},{pattern:/performance|optimization|speed|cache|benchmark/i,iconName:"TrendingUp",color:"text-green-600"},{pattern:/database|data|schema|model|query/i,iconName:"FileText",color:"text-blue-600"},{pattern:/doc|guide|manual|reference/i,iconName:"FileText",color:"text-gray-500"},{pattern:/github|git|vcs|version/i,iconName:"GitBranch",color:"text-pink-600"}],n={iconName:"FileText",color:"text-gray-600"};function i(e){let i=[];if(!(0,t.existsSync)(e))return i;try{for(let o of(0,t.readdirSync)(e)){if("README.md"===o||!o.endsWith(".md"))continue;let c=(0,r.join)(e,o);if((0,t.statSync)(c).isFile())try{let e=(0,t.readFileSync)(c,"utf-8"),{content:r}=(0,a.default)(e),l=function(e){let t=e.replace(/\.md$/i,"");for(let{pattern:e,iconName:r,color:a}of s)if(e.test(t))return{iconName:r,color:a};return n}(o);i.push({name:o.replace(/\.md$/i,"").split(/[-_]/).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "),file:o,iconName:l.iconName,color:l.color,content:r})}catch(e){console.error(`Error reading sub-spec ${o}:`,e)}}i.sort((e,t)=>e.file.localeCompare(t.file))}catch(t){console.error(`Error reading spec directory ${e}:`,t)}return i}e.s(["detectSubSpecs",()=>i])},44271,e=>{"use strict";var t=e.i(12714),r=e.i(50227),a=e.i(92194);let s=parseInt(process.env.CACHE_TTL||"60000",10);class n{cache=new Map;specsDir;constructor(e){this.specsDir=e||r.join(process.cwd(),"../../specs")}async getAllSpecs(){let e="__all_specs__",t=this.cache.get(e);if(t&&Date.now()<t.expiresAt)return t.data;let r=await this.loadSpecsFromFilesystem();return this.cache.set(e,{data:r,expiresAt:Date.now()+s}),r}async getSpec(e){let t=`spec:${e}`,r=this.cache.get(t);if(r&&Date.now()<r.expiresAt)return r.data;let a=parseInt(e.split("-")[0],10);if(isNaN(a))return null;let n=await this.loadSpecByNumber(a);return n&&this.cache.set(t,{data:n,expiresAt:Date.now()+s}),n}async getSpecsByStatus(e){return(await this.getAllSpecs()).filter(t=>t.status===e)}async searchSpecs(e){let t=await this.getAllSpecs(),r=e.toLowerCase();return t.filter(e=>e.specName.toLowerCase().includes(r)||e.title?.toLowerCase().includes(r)||e.contentMd.toLowerCase().includes(r))}invalidateCache(e){e?(this.cache.delete(`spec:${e}`),this.cache.delete("__all_specs__")):this.cache.clear()}async loadSpecsFromFilesystem(){let e=[];try{await t.access(this.specsDir)}catch{return[]}let a=/^(\d{2,})-/;for(let s of(await t.readdir(this.specsDir,{withFileTypes:!0})))if(s.isDirectory()){if("archived"===s.name){let s=r.join(this.specsDir,"archived");for(let n of(await t.readdir(s,{withFileTypes:!0})))if(n.isDirectory()&&a.test(n.name)){let t=r.join(s,n.name),a=await this.loadSpecFromDirectory(t,n.name,!0);a&&e.push(a)}continue}if(a.test(s.name)){let t=r.join(this.specsDir,s.name),a=await this.loadSpecFromDirectory(t,s.name,!1);a&&e.push(a)}}return e.sort((e,t)=>(e.specNumber||0)-(t.specNumber||0))}async loadSpecByNumber(e){try{await t.access(this.specsDir)}catch{return null}let a=await t.readdir(this.specsDir,{withFileTypes:!0}),s=RegExp(`^0*${e}-`);for(let e of a)if(e.isDirectory()&&"archived"!==e.name&&s.test(e.name)){let t=r.join(this.specsDir,e.name);return await this.loadSpecFromDirectory(t,e.name,!1)}try{let e=r.join(this.specsDir,"archived");for(let a of(await t.readdir(e,{withFileTypes:!0})))if(a.isDirectory()&&s.test(a.name)){let t=r.join(e,a.name);return await this.loadSpecFromDirectory(t,a.name,!0)}}catch{}return null}async loadSpecFromDirectory(e,s,n=!1){let i=r.join(e,"README.md");try{let e=await t.readFile(i,"utf-8"),{data:r,content:o}=(0,a.default)(e);if(!r||!r.status)return null;let c=s.match(/^(\d+)/),l=c?parseInt(c[1],10):null,p=`fs-${s}`,d=r.created_at??r.created,u=r.updated_at??r.updated,h=r.completed_at??r.completed,m=e=>{if(!e)return null;let t=new Date(e);return isNaN(t.getTime())?null:t},f=`${n?"specs/archived/":"specs/"}${s}/README.md`;return{id:p,projectId:"leanspec",specNumber:l,specName:s,title:this.extractTitle(o),status:r.status||"planned",priority:r.priority||null,tags:r.tags?JSON.stringify(r.tags):null,assignee:r.assignee||null,contentMd:o,contentHtml:null,createdAt:m(d),updatedAt:m(u),completedAt:m(h),filePath:f,githubUrl:`https://github.com/codervisor/lean-spec/tree/main/${f}`,syncedAt:new Date}}catch{return null}}extractTitle(e){for(let t of e.split("\n")){let e=t.match(/^#\s+(.+)$/);if(e)return e[1].trim()}return null}}let i=null,o=new class{filesystemSource;databaseSource;mode;constructor(){if(this.mode=process.env.SPECS_MODE||"filesystem","filesystem"===this.mode||"both"===this.mode){const e=process.env.SPECS_DIR;this.filesystemSource=new n(e)}}async getDatabaseSource(){if(!this.databaseSource){if(!i){let{DatabaseSource:t}=await e.A(14430);i=t}this.databaseSource=new i}return this.databaseSource}async getAllSpecs(e){let t=await this.getSource(e);return await t.getAllSpecs(e)}async getSpec(e,t){let r=await this.getSource(t);return await r.getSpec(e,t)}async getSpecsByStatus(e,t){let r=await this.getSource(t);return await r.getSpecsByStatus(e,t)}async searchSpecs(e,t){let r=await this.getSource(t);return await r.searchSpecs(e,t)}async invalidateCache(e,t){(await this.getSource(t)).invalidateCache(e)}async getSource(e){if(e&&("database"===this.mode||"both"===this.mode))return await this.getDatabaseSource();if(this.filesystemSource)return this.filesystemSource;throw Error("No spec source configured")}};e.s(["specsService",0,o],44271)},33368,e=>{"use strict";var t=e.i(6169),r=e.i(25864),a=e.i(71648),s=e.i(30064),n=e.i(74222),i=e.i(2043),o=e.i(71408),c=e.i(26527),l=e.i(30592),p=e.i(34639),d=e.i(88935),u=e.i(68515),h=e.i(87166),m=e.i(76718),f=e.i(76529),y=e.i(51151),g=e.i(93695);e.i(59704);var w=e.i(8259),S=e.i(31511),x=e.i(68239);class v{graph;specs;constructor(e){this.graph=new Map,this.specs=new Map,this.buildGraph(e)}buildGraph(e){for(let t of e)this.specs.set(t.path,t),this.graph.set(t.path,{dependsOn:new Set(t.frontmatter.depends_on||[]),requiredBy:new Set,related:new Set(t.frontmatter.related||[])});for(let[e,t]of this.graph.entries()){for(let r of t.dependsOn){let t=this.graph.get(r);t&&t.requiredBy.add(e)}for(let r of t.related){let t=this.graph.get(r);t&&t.related.add(e)}}}getCompleteGraph(e){let t=this.specs.get(e);if(!t)throw Error(`Spec not found: ${e}`);let r=this.graph.get(e);if(!r)throw Error(`Graph node not found: ${e}`);return{current:t,dependsOn:this.getSpecsByPaths(Array.from(r.dependsOn)),requiredBy:this.getSpecsByPaths(Array.from(r.requiredBy)),related:this.getSpecsByPaths(Array.from(r.related))}}getSpecsByPaths(e){return e.map(e=>this.specs.get(e)).filter(e=>void 0!==e)}}var R=e.i(2157),E=e.i(50227),N=e.i(92194);async function b(e,{params:t}){try{let{id:e}=await t,r=await (0,x.getSpecById)(e);if(!r)return S.NextResponse.json({error:"Spec not found"},{status:404});let a=(0,E.join)(process.cwd(),"../../specs"),s=function(e){let t=[];try{for(let r of(0,R.readdirSync)(e)){let a=(0,E.join)(e,r);if((0,R.statSync)(a).isDirectory()&&"archived"!==r&&/^\d{2,}-/.test(r))try{let e=(0,E.join)(a,"README.md"),s=(0,R.readFileSync)(e,"utf-8"),{data:n}=(0,N.default)(s);if(!n||!n.status)continue;let i={status:n.status||"planned",created:n.created_at||n.created||new Date().toISOString().split("T")[0]};n.depends_on?i.depends_on=Array.isArray(n.depends_on)?n.depends_on:[n.depends_on]:i.depends_on=[],n.related?i.related=Array.isArray(n.related)?n.related:[n.related]:i.related=[],n.priority&&(i.priority=n.priority),n.tags&&(i.tags=n.tags),n.assignee&&(i.assignee=n.assignee),t.push({path:r,fullPath:a,filePath:e,name:r,frontmatter:i})}catch(e){console.warn(`Failed to parse spec ${r}:`,e)}}}catch(e){console.error("Failed to load specs:",e)}return t}(a),n=new v(s).getCompleteGraph(r.specName),i=e=>{let t=e.match(/^(\d+)/);return t?parseInt(t[1],10):null},o=e=>{let t=e.split("-");return t.length>1?t.slice(1).join("-").replace(/-/g," "):e},c={current:{id:r.id,specNumber:r.specNumber,specName:r.specName,title:r.title,status:r.status,priority:r.priority},dependsOn:n.dependsOn.map(e=>({specNumber:i(e.name),specName:e.name,title:o(e.name),status:e.frontmatter.status,priority:e.frontmatter.priority})),requiredBy:n.requiredBy.map(e=>({specNumber:i(e.name),specName:e.name,title:o(e.name),status:e.frontmatter.status,priority:e.frontmatter.priority})),related:n.related.map(e=>({specNumber:i(e.name),specName:e.name,title:o(e.name),status:e.frontmatter.status,priority:e.frontmatter.priority}))};return S.NextResponse.json(c,{headers:{"Cache-Control":"public, s-maxage=60, stale-while-revalidate=120"}})}catch(e){return console.error("Error fetching dependency graph:",e),S.NextResponse.json({error:"Failed to fetch dependency graph"},{status:500})}}e.s(["GET",()=>b],15671);var A=e.i(15671);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/specs/[id]/dependency-graph/route",pathname:"/api/specs/[id]/dependency-graph",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/packages/ui/src/app/api/specs/[id]/dependency-graph/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:_,workUnitAsyncStorage:D,serverHooks:T}=C;function j(){return(0,a.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:D})}async function P(e,t,a){C.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let S="/api/specs/[id]/dependency-graph/route";S=S.replace(/\/index$/,"")||"/";let x=await C.prepare(e,t,{srcPage:S,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:R,nextConfig:E,parsedUrl:N,isDraftMode:b,prerenderManifest:A,routerServerContext:_,isOnDemandRevalidate:D,revalidateOnlyGenerated:T,resolvedPathname:j,clientReferenceManifest:P,serverActionsManifest:q}=x,O=(0,c.normalizeAppPath)(S),k=!!(A.dynamicRoutes[O]||A.routes[j]),F=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,N,!1):t.end("This page could not be found"),null);if(k&&!b){let e=!!A.routes[j],t=A.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await F();throw new g.NoFallbackError}}let M=null;!k||C.isDev||b||(M="/index"===(M=j)?"/":M);let B=!0===C.isDev||!k,I=k&&!B;q&&P&&(0,i.setReferenceManifestsSingleton)({page:S,clientReferenceManifest:P,serverActionsManifest:q,serverModuleMap:(0,o.createServerModuleMap)({serverActionsManifest:q})});let $=e.method||"GET",U=(0,n.getTracer)(),H=U.getActiveScopeSpan(),G={params:R,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:B,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>C.onRequestError(e,t,a,_)},sharedContext:{buildId:v}},L=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),W=p.NextRequestAdapter.fromNodeNextRequest(L,(0,p.signalFromNodeResponse)(t));try{let i=async e=>C.handle(W,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${S}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),c=async s=>{var n,c;let l=async({previousCacheEntry:r})=>{try{if(!o&&D&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(s);e.fetchMetrics=G.renderOpts.fetchMetrics;let c=G.renderOpts.pendingWaitUntil;c&&a.waitUntil&&(a.waitUntil(c),c=void 0);let l=G.renderOpts.collectedTags;if(!k)return await (0,h.sendResponse)(L,K,n,G.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:D})},_),t}},p=await C.handleResponse({req:e,nextConfig:E,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:o});if(!k)return null;if((null==p||null==(n=p.value)?void 0:n.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(c=p.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",D?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,m.fromNodeOutgoingHttpHeaders)(p.value.headers);return o&&k||d.delete(y.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,f.getCacheControlHeader)(p.cacheControl)),await (0,h.sendResponse)(L,K,new Response(p.value.body,{headers:d,status:p.value.status||200})),null};H?await c(H):await U.withPropagatedContext(e.headers,()=>U.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${S}`,kind:n.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},c))}catch(t){if(t instanceof g.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:D})}),k)throw t;return await (0,h.sendResponse)(L,K,new Response(null,{status:500})),null}}e.s(["handler",()=>P,"patchFetch",()=>j,"routeModule",()=>C,"serverHooks",()=>T,"workAsyncStorage",()=>_,"workUnitAsyncStorage",()=>D],33368)},14430,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__ae726e9c._.js","server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js"].map(t=>e.l(t))).then(()=>t(18146)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__c1c9f5f5._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},67708,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(92194);let n=[{pattern:/design|ui|ux|mockup|wireframe|prototype/i,iconName:"Palette",color:"text-purple-600"},{pattern:/architecture|structure|system|diagram/i,iconName:"Map",color:"text-indigo-600"},{pattern:/implementation|code|develop|build/i,iconName:"Code",color:"text-green-600"},{pattern:/api|endpoint|integration|interface/i,iconName:"Code",color:"text-blue-600"},{pattern:/test|qa|quality|validation/i,iconName:"TestTube",color:"text-orange-600"},{pattern:/task|todo|checklist|milestone/i,iconName:"CheckSquare",color:"text-gray-600"},{pattern:/config|setup|settings|environment/i,iconName:"Wrench",color:"text-yellow-600"},{pattern:/deploy|devops|ci|cd|pipeline|release/i,iconName:"Wrench",color:"text-orange-600"},{pattern:/migration|upgrade|refactor|transition/i,iconName:"GitBranch",color:"text-cyan-600"},{pattern:/security|auth|permission|access|encryption/i,iconName:"CheckSquare",color:"text-red-600"},{pattern:/performance|optimization|speed|cache|benchmark/i,iconName:"TrendingUp",color:"text-green-600"},{pattern:/database|data|schema|model|query/i,iconName:"FileText",color:"text-blue-600"},{pattern:/doc|guide|manual|reference/i,iconName:"FileText",color:"text-gray-500"},{pattern:/github|git|vcs|version/i,iconName:"GitBranch",color:"text-pink-600"}],o={iconName:"FileText",color:"text-gray-600"};function i(e){let i=[];if(!(0,t.existsSync)(e))return i;try{for(let s of(0,t.readdirSync)(e)){if("README.md"===s||!s.endsWith(".md"))continue;let c=(0,r.join)(e,s);if((0,t.statSync)(c).isFile())try{let e=(0,t.readFileSync)(c,"utf-8"),{content:r}=(0,a.default)(e),l=function(e){let t=e.replace(/\.md$/i,"");for(let{pattern:e,iconName:r,color:a}of n)if(e.test(t))return{iconName:r,color:a};return o}(s);i.push({name:s.replace(/\.md$/i,"").split(/[-_]/).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "),file:s,iconName:l.iconName,color:l.color,content:r})}catch(e){console.error(`Error reading sub-spec ${s}:`,e)}}i.sort((e,t)=>e.file.localeCompare(t.file))}catch(t){console.error(`Error reading spec directory ${e}:`,t)}return i}e.s(["detectSubSpecs",()=>i])},25372,(e,t,r)=>{t.exports=e.x("better-sqlite3",()=>require("better-sqlite3"))},50306,e=>{"use strict";var t=e.i(5271),r=e.i(31585),a=e.i(22124),n=e.i(79174);async function o(){return await t.db.select().from(r.schema.projects).orderBy((0,n.desc)(r.schema.projects.isFeatured),r.schema.projects.displayName)}async function i(e){return(await t.db.select().from(r.schema.specs).where((0,a.eq)(r.schema.specs.projectId,e)).orderBy(r.schema.specs.specNumber)).map(e=>({...e,tags:e.tags?JSON.parse(e.tags):null}))}e.i(67708),e.i(14747),e.s(["getProjects",()=>o,"getSpecsByProjectId",()=>i])},2821,e=>{"use strict";var t=e.i(6169),r=e.i(25864),a=e.i(71648),n=e.i(30064),o=e.i(74222),i=e.i(2043),s=e.i(71408),c=e.i(26527),l=e.i(30592),p=e.i(34639),d=e.i(88935),u=e.i(68515),h=e.i(87166),x=e.i(76718),m=e.i(76529),f=e.i(51151),g=e.i(93695);e.i(59704);var v=e.i(8259),R=e.i(31511),y=e.i(50306);async function w(){try{let e=await (0,y.getProjects)();return R.NextResponse.json({projects:e})}catch(e){return console.error("Error fetching projects:",e),R.NextResponse.json({error:"Failed to fetch projects"},{status:500})}}e.s(["GET",()=>w],71538);var E=e.i(71538);let N=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/route",pathname:"/api/projects",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/packages/ui/src/app/api/projects/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:b,workUnitAsyncStorage:C,serverHooks:j}=N;function q(){return(0,a.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:C})}async function A(e,t,a){N.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/projects/route";R=R.replace(/\/index$/,"")||"/";let y=await N.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:b,parsedUrl:C,isDraftMode:j,prerenderManifest:q,routerServerContext:A,isOnDemandRevalidate:T,revalidateOnlyGenerated:S,resolvedPathname:k,clientReferenceManifest:P,serverActionsManifest:O}=y,_=(0,c.normalizeAppPath)(R),M=!!(q.dynamicRoutes[_]||q.routes[k]),U=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,C,!1):t.end("This page could not be found"),null);if(M&&!j){let e=!!q.routes[k],t=q.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await U();throw new g.NoFallbackError}}let H=null;!M||N.isDev||j||(H="/index"===(H=k)?"/":H);let I=!0===N.isDev||!M,F=M&&!I;O&&P&&(0,i.setReferenceManifestsSingleton)({page:R,clientReferenceManifest:P,serverActionsManifest:O,serverModuleMap:(0,s.createServerModuleMap)({serverActionsManifest:O})});let D=e.method||"GET",$=(0,o.getTracer)(),B=$.getActiveScopeSpan(),K={params:E,prerenderManifest:q,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>N.onRequestError(e,t,a,A)},sharedContext:{buildId:w}},G=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),W=p.NextRequestAdapter.fromNodeNextRequest(G,(0,p.signalFromNodeResponse)(t));try{let i=async e=>N.handle(W,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${D} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${R}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),c=async n=>{var o,c;let l=async({previousCacheEntry:r})=>{try{if(!s&&T&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let c=K.renderOpts.pendingWaitUntil;c&&a.waitUntil&&(a.waitUntil(c),c=void 0);let l=K.renderOpts.collectedTags;if(!M)return await (0,h.sendResponse)(G,L,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,x.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:T})},A),t}},p=await N.handleResponse({req:e,nextConfig:b,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:q,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:S,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:s});if(!M)return null;if((null==p||null==(o=p.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(c=p.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",T?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,x.fromNodeOutgoingHttpHeaders)(p.value.headers);return s&&M||d.delete(f.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,m.getCacheControlHeader)(p.cacheControl)),await (0,h.sendResponse)(G,L,new Response(p.value.body,{headers:d,status:p.value.status||200})),null};B?await c(B):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${D} ${R}`,kind:o.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},c))}catch(t){if(t instanceof g.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:T})}),M)throw t;return await (0,h.sendResponse)(G,L,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>q,"routeModule",()=>N,"serverHooks",()=>j,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>C],2821)}];
1
+ module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},67708,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(92194);let n=[{pattern:/design|ui|ux|mockup|wireframe|prototype/i,iconName:"Palette",color:"text-purple-600"},{pattern:/architecture|structure|system|diagram/i,iconName:"Map",color:"text-indigo-600"},{pattern:/implementation|code|develop|build/i,iconName:"Code",color:"text-green-600"},{pattern:/api|endpoint|integration|interface/i,iconName:"Code",color:"text-blue-600"},{pattern:/test|qa|quality|validation/i,iconName:"TestTube",color:"text-orange-600"},{pattern:/task|todo|checklist|milestone/i,iconName:"CheckSquare",color:"text-gray-600"},{pattern:/config|setup|settings|environment/i,iconName:"Wrench",color:"text-yellow-600"},{pattern:/deploy|devops|ci|cd|pipeline|release/i,iconName:"Wrench",color:"text-orange-600"},{pattern:/migration|upgrade|refactor|transition/i,iconName:"GitBranch",color:"text-cyan-600"},{pattern:/security|auth|permission|access|encryption/i,iconName:"CheckSquare",color:"text-red-600"},{pattern:/performance|optimization|speed|cache|benchmark/i,iconName:"TrendingUp",color:"text-green-600"},{pattern:/database|data|schema|model|query/i,iconName:"FileText",color:"text-blue-600"},{pattern:/doc|guide|manual|reference/i,iconName:"FileText",color:"text-gray-500"},{pattern:/github|git|vcs|version/i,iconName:"GitBranch",color:"text-pink-600"}],o={iconName:"FileText",color:"text-gray-600"};function i(e){let i=[];if(!(0,t.existsSync)(e))return i;try{for(let s of(0,t.readdirSync)(e)){if("README.md"===s||!s.endsWith(".md"))continue;let c=(0,r.join)(e,s);if((0,t.statSync)(c).isFile())try{let e=(0,t.readFileSync)(c,"utf-8"),{content:r}=(0,a.default)(e),l=function(e){let t=e.replace(/\.md$/i,"");for(let{pattern:e,iconName:r,color:a}of n)if(e.test(t))return{iconName:r,color:a};return o}(s);i.push({name:s.replace(/\.md$/i,"").split(/[-_]/).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "),file:s,iconName:l.iconName,color:l.color,content:r})}catch(e){console.error(`Error reading sub-spec ${s}:`,e)}}i.sort((e,t)=>e.file.localeCompare(t.file))}catch(t){console.error(`Error reading spec directory ${e}:`,t)}return i}e.s(["detectSubSpecs",()=>i])},25372,(e,t,r)=>{t.exports=e.x("better-sqlite3",()=>require("better-sqlite3"))},50306,e=>{"use strict";var t=e.i(5271),r=e.i(31585),a=e.i(22124),n=e.i(79174);async function o(){return await t.db.select().from(r.schema.projects).orderBy((0,n.desc)(r.schema.projects.isFeatured),r.schema.projects.displayName)}async function i(e){return(await t.db.select().from(r.schema.specs).where((0,a.eq)(r.schema.specs.projectId,e)).orderBy(r.schema.specs.specNumber)).map(e=>({...e,tags:e.tags?JSON.parse(e.tags):null}))}e.i(67708),e.i(14747),e.s(["getProjects",()=>o,"getSpecsByProjectId",()=>i])},2821,e=>{"use strict";var t=e.i(6169),r=e.i(25864),a=e.i(71648),n=e.i(30064),o=e.i(74222),i=e.i(2043),s=e.i(71408),c=e.i(26527),l=e.i(30592),p=e.i(34639),d=e.i(88935),u=e.i(68515),h=e.i(87166),x=e.i(76718),m=e.i(76529),f=e.i(51151),g=e.i(93695);e.i(59704);var v=e.i(8259),R=e.i(31511),y=e.i(50306);async function w(){try{let e=await (0,y.getProjects)();return R.NextResponse.json({projects:e})}catch(e){return console.error("Error fetching projects:",e),R.NextResponse.json({error:"Failed to fetch projects"},{status:500})}}e.s(["GET",()=>w],71538);var E=e.i(71538);let N=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/route",pathname:"/api/projects",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/packages/ui/src/app/api/projects/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:b,workUnitAsyncStorage:C,serverHooks:j}=N;function q(){return(0,a.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:C})}async function A(e,t,a){N.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/projects/route";R=R.replace(/\/index$/,"")||"/";let y=await N.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:b,parsedUrl:C,isDraftMode:j,prerenderManifest:q,routerServerContext:A,isOnDemandRevalidate:T,revalidateOnlyGenerated:S,resolvedPathname:k,clientReferenceManifest:P,serverActionsManifest:O}=y,_=(0,c.normalizeAppPath)(R),M=!!(q.dynamicRoutes[_]||q.routes[k]),U=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,C,!1):t.end("This page could not be found"),null);if(M&&!j){let e=!!q.routes[k],t=q.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await U();throw new g.NoFallbackError}}let H=null;!M||N.isDev||j||(H="/index"===(H=k)?"/":H);let I=!0===N.isDev||!M,F=M&&!I;O&&P&&(0,i.setReferenceManifestsSingleton)({page:R,clientReferenceManifest:P,serverActionsManifest:O,serverModuleMap:(0,s.createServerModuleMap)({serverActionsManifest:O})});let D=e.method||"GET",$=(0,o.getTracer)(),B=$.getActiveScopeSpan(),K={params:E,prerenderManifest:q,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>N.onRequestError(e,t,a,A)},sharedContext:{buildId:w}},G=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),W=p.NextRequestAdapter.fromNodeNextRequest(G,(0,p.signalFromNodeResponse)(t));try{let i=async e=>N.handle(W,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${D} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${R}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),c=async n=>{var o,c;let l=async({previousCacheEntry:r})=>{try{if(!s&&T&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let c=K.renderOpts.pendingWaitUntil;c&&a.waitUntil&&(a.waitUntil(c),c=void 0);let l=K.renderOpts.collectedTags;if(!M)return await (0,h.sendResponse)(G,L,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,x.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:T})},A),t}},p=await N.handleResponse({req:e,nextConfig:b,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:q,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:S,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:s});if(!M)return null;if((null==p||null==(o=p.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(c=p.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",T?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,x.fromNodeOutgoingHttpHeaders)(p.value.headers);return s&&M||d.delete(f.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,m.getCacheControlHeader)(p.cacheControl)),await (0,h.sendResponse)(G,L,new Response(p.value.body,{headers:d,status:p.value.status||200})),null};B?await c(B):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${D} ${R}`,kind:o.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},c))}catch(t){if(t instanceof g.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:T})}),M)throw t;return await (0,h.sendResponse)(G,L,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>q,"routeModule",()=>N,"serverHooks",()=>j,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>C],2821)}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__e09ce4bf._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__c6689757._.js.map
@@ -0,0 +1,4 @@
1
+ module.exports=[24868,(e,t,n)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},61372,(e,t,n)=>{e.e,t.exports=function(){"use strict";var e="millisecond",t="second",n="minute",i="hour",r="week",o="month",a="quarter",s="year",u="date",l="Invalid Date",c=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,p=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,d=function(e,t,n){var i=String(e);return!i||i.length>=t?e:""+Array(t+1-i.length).join(n)+e},f="en",h={};h[f]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}};var g="$isDayjsObject",m=function(e){return e instanceof A||!(!e||!e[g])},y=function e(t,n,i){var r;if(!t)return f;if("string"==typeof t){var o=t.toLowerCase();h[o]&&(r=o),n&&(h[o]=n,r=o);var a=t.split("-");if(!r&&a.length>1)return e(a[0])}else{var s=t.name;h[s]=t,r=s}return!i&&r&&(f=r),r||!i&&f},v=function(e,t){if(m(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new A(n)},b={s:d,z:function(e){var t=-e.utcOffset(),n=Math.abs(t);return(t<=0?"+":"-")+d(Math.floor(n/60),2,"0")+":"+d(n%60,2,"0")},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var i=12*(n.year()-t.year())+(n.month()-t.month()),r=t.clone().add(i,o),a=n-r<0,s=t.clone().add(i+(a?-1:1),o);return+(-(i+(n-r)/(a?r-s:s-r))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(l){return({M:o,y:s,w:r,d:"day",D:u,h:i,m:n,s:t,ms:e,Q:a})[l]||String(l||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}};b.l=y,b.i=m,b.w=function(e,t){return v(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var A=function(){function d(e){this.$L=y(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[g]=!0}var f=d.prototype;return f.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(b.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var i=t.match(c);if(i){var r=i[2]-1||0,o=(i[7]||"0").substring(0,3);return n?new Date(Date.UTC(i[1],r,i[3]||1,i[4]||0,i[5]||0,i[6]||0,o)):new Date(i[1],r,i[3]||1,i[4]||0,i[5]||0,i[6]||0,o)}}return new Date(t)}(e),this.init()},f.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},f.$utils=function(){return b},f.isValid=function(){return this.$d.toString()!==l},f.isSame=function(e,t){var n=v(e);return this.startOf(t)<=n&&n<=this.endOf(t)},f.isAfter=function(e,t){return v(e)<this.startOf(t)},f.isBefore=function(e,t){return this.endOf(t)<v(e)},f.$g=function(e,t,n){return b.u(e)?this[t]:this.set(n,e)},f.unix=function(){return Math.floor(this.valueOf()/1e3)},f.valueOf=function(){return this.$d.getTime()},f.startOf=function(e,a){var l=this,c=!!b.u(a)||a,p=b.p(e),d=function(e,t){var n=b.w(l.$u?Date.UTC(l.$y,t,e):new Date(l.$y,t,e),l);return c?n:n.endOf("day")},f=function(e,t){return b.w(l.toDate()[e].apply(l.toDate("s"),(c?[0,0,0,0]:[23,59,59,999]).slice(t)),l)},h=this.$W,g=this.$M,m=this.$D,y="set"+(this.$u?"UTC":"");switch(p){case s:return c?d(1,0):d(31,11);case o:return c?d(1,g):d(0,g+1);case r:var v=this.$locale().weekStart||0,A=(h<v?h+7:h)-v;return d(c?m-A:m+(6-A),g);case"day":case u:return f(y+"Hours",0);case i:return f(y+"Minutes",1);case n:return f(y+"Seconds",2);case t:return f(y+"Milliseconds",3);default:return this.clone()}},f.endOf=function(e){return this.startOf(e,!1)},f.$set=function(r,a){var l,c=b.p(r),p="set"+(this.$u?"UTC":""),d=((l={}).day=p+"Date",l[u]=p+"Date",l[o]=p+"Month",l[s]=p+"FullYear",l[i]=p+"Hours",l[n]=p+"Minutes",l[t]=p+"Seconds",l[e]=p+"Milliseconds",l)[c],f="day"===c?this.$D+(a-this.$W):a;if(c===o||c===s){var h=this.clone().set(u,1);h.$d[d](f),h.init(),this.$d=h.set(u,Math.min(this.$D,h.daysInMonth())).$d}else d&&this.$d[d](f);return this.init(),this},f.set=function(e,t){return this.clone().$set(e,t)},f.get=function(e){return this[b.p(e)]()},f.add=function(e,a){var u,l=this;e=Number(e);var c=b.p(a),p=function(t){var n=v(l);return b.w(n.date(n.date()+Math.round(t*e)),l)};if(c===o)return this.set(o,this.$M+e);if(c===s)return this.set(s,this.$y+e);if("day"===c)return p(1);if(c===r)return p(7);var d=((u={})[n]=6e4,u[i]=36e5,u[t]=1e3,u)[c]||1,f=this.$d.getTime()+e*d;return b.w(f,this)},f.subtract=function(e,t){return this.add(-1*e,t)},f.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var i=e||"YYYY-MM-DDTHH:mm:ssZ",r=b.z(this),o=this.$H,a=this.$m,s=this.$M,u=n.weekdays,c=n.months,d=n.meridiem,f=function(e,n,r,o){return e&&(e[n]||e(t,i))||r[n].slice(0,o)},h=function(e){return b.s(o%12||12,e,"0")},g=d||function(e,t,n){var i=e<12?"AM":"PM";return n?i.toLowerCase():i};return i.replace(p,function(e,i){return i||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return b.s(t.$y,4,"0");case"M":return s+1;case"MM":return b.s(s+1,2,"0");case"MMM":return f(n.monthsShort,s,c,3);case"MMMM":return f(c,s);case"D":return t.$D;case"DD":return b.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return f(n.weekdaysMin,t.$W,u,2);case"ddd":return f(n.weekdaysShort,t.$W,u,3);case"dddd":return u[t.$W];case"H":return String(o);case"HH":return b.s(o,2,"0");case"h":return h(1);case"hh":return h(2);case"a":return g(o,a,!0);case"A":return g(o,a,!1);case"m":return String(a);case"mm":return b.s(a,2,"0");case"s":return String(t.$s);case"ss":return b.s(t.$s,2,"0");case"SSS":return b.s(t.$ms,3,"0");case"Z":return r}return null}(e)||r.replace(":","")})},f.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},f.diff=function(e,u,l){var c,p=this,d=b.p(u),f=v(e),h=(f.utcOffset()-this.utcOffset())*6e4,g=this-f,m=function(){return b.m(p,f)};switch(d){case s:c=m()/12;break;case o:c=m();break;case a:c=m()/3;break;case r:c=(g-h)/6048e5;break;case"day":c=(g-h)/864e5;break;case i:c=g/36e5;break;case n:c=g/6e4;break;case t:c=g/1e3;break;default:c=g}return l?c:b.a(c)},f.daysInMonth=function(){return this.endOf(o).$D},f.$locale=function(){return h[this.$L]},f.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),i=y(e,t,!0);return i&&(n.$L=i),n},f.clone=function(){return b.w(this.$d,this)},f.toDate=function(){return new Date(this.valueOf())},f.toJSON=function(){return this.isValid()?this.toISOString():null},f.toISOString=function(){return this.$d.toISOString()},f.toString=function(){return this.$d.toUTCString()},d}(),w=A.prototype;return v.prototype=w,[["$ms",e],["$s",t],["$m",n],["$H",i],["$W","day"],["$M",o],["$y",s],["$D",u]].forEach(function(e){w[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),v.extend=function(e,t){return e.$i||(e(t,A,v),e.$i=!0),v},v.locale=y,v.isDayjs=m,v.unix=function(e){return v(1e3*e)},v.en=h[f],v.Ls=h,v.p={},v}()},26432,e=>{"use strict";var t=e.i(6169),n=e.i(25864),i=e.i(71648),r=e.i(30064),o=e.i(74222),a=e.i(2043),s=e.i(71408),u=e.i(26527),l=e.i(30592),c=e.i(34639),p=e.i(88935),d=e.i(68515),f=e.i(87166),h=e.i(76718),g=e.i(76529),m=e.i(51151),y=e.i(93695);e.i(59704);var v=e.i(8259),b=e.i(31511),A=e.i(50227),w=e.i(12714),C=e.i(2157),x=e.i(92194),k=function(e,t){var n,i="";for(n=0;n<t;n+=1)i+=e;return i},S=function(e){return 0===e&&-1/0==1/e};function $(e,t){var n="",i=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(n+='in "'+e.mark.name+'" '),n+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!t&&e.mark.snippet&&(n+="\n\n"+e.mark.snippet),i+" "+n):i}function O(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=$(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=Error().stack||""}function M(e,t,n,i,r){var o="",a="",s=Math.floor(r/2)-1;return i-t>s&&(t=i-s+(o=" ... ").length),n-i>s&&(n=i+s-(a=" ...").length),{str:o+e.slice(t,n).replace(/\t/g,"→")+a,pos:i-t+o.length}}function I(e,t){return k(" ",t-e.length)+e}O.prototype=Object.create(Error.prototype),O.prototype.constructor=O,O.prototype.toString=function(e){return this.name+": "+$(this,e)};var T=function(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),"number"!=typeof t.indent&&(t.indent=1),"number"!=typeof t.linesBefore&&(t.linesBefore=3),"number"!=typeof t.linesAfter&&(t.linesAfter=2);for(var n=/\r?\n|\r|\0/g,i=[0],r=[],o=-1;a=n.exec(e.buffer);)r.push(a.index),i.push(a.index+a[0].length),e.position<=a.index&&o<0&&(o=i.length-2);o<0&&(o=i.length-1);var a,s,u,l="",c=Math.min(e.line+t.linesAfter,r.length).toString().length,p=t.maxLength-(t.indent+c+3);for(s=1;s<=t.linesBefore&&!(o-s<0);s++)u=M(e.buffer,i[o-s],r[o-s],e.position-(i[o]-i[o-s]),p),l=k(" ",t.indent)+I((e.line-s+1).toString(),c)+" | "+u.str+"\n"+l;for(u=M(e.buffer,i[o],r[o],e.position,p),l+=k(" ",t.indent)+I((e.line+1).toString(),c)+" | "+u.str+"\n"+k("-",t.indent+c+3+u.pos)+"^\n",s=1;s<=t.linesAfter&&!(o+s>=r.length);s++)u=M(e.buffer,i[o+s],r[o+s],e.position-(i[o]-i[o+s]),p),l+=k(" ",t.indent)+I((e.line+s+1).toString(),c)+" | "+u.str+"\n";return l.replace(/\n$/,"")},E=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],R=["scalar","sequence","mapping"],j=function(e,t){var n,i;if(Object.keys(t=t||{}).forEach(function(t){if(-1===E.indexOf(t))throw new O('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=(n=t.styleAliases||null,i={},null!==n&&Object.keys(n).forEach(function(e){n[e].forEach(function(t){i[String(t)]=e})}),i),-1===R.indexOf(this.kind))throw new O('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')};function D(e,t){var n=[];return e[t].forEach(function(e){var t=n.length;n.forEach(function(n,i){n.tag===e.tag&&n.kind===e.kind&&n.multi===e.multi&&(t=i)}),n[t]=e}),n}function _(e){return this.extend(e)}_.prototype.extend=function(e){var t=[],n=[];if(e instanceof j)n.push(e);else if(Array.isArray(e))n=n.concat(e);else if(e&&(Array.isArray(e.implicit)||Array.isArray(e.explicit)))e.implicit&&(t=t.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit));else throw new O("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");t.forEach(function(e){if(!(e instanceof j))throw new O("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(e.loadKind&&"scalar"!==e.loadKind)throw new O("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(e.multi)throw new O("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),n.forEach(function(e){if(!(e instanceof j))throw new O("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var i=Object.create(_.prototype);return i.implicit=(this.implicit||[]).concat(t),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=D(i,"implicit"),i.compiledExplicit=D(i,"explicit"),i.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function i(e){e.multi?(n.multi[e.kind].push(e),n.multi.fallback.push(e)):n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(i);return n}(i.compiledImplicit,i.compiledExplicit),i};var N=new _({explicit:[new j("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}}),new j("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}}),new j("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})]}),L=new j("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"}),F=new j("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"}),U=new j("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,i,r,o=e.length,a=0,s=!1;if(!o)return!1;if(("-"===(r=e[a])||"+"===r)&&(r=e[++a]),"0"===r){if(a+1===o)return!0;if("b"===(r=e[++a])){for(a++;a<o;a++)if("_"!==(r=e[a])){if("0"!==r&&"1"!==r)return!1;s=!0}return s&&"_"!==r}if("x"===r){for(a++;a<o;a++)if("_"!==(r=e[a])){if(!(48<=(t=e.charCodeAt(a))&&t<=57||65<=t&&t<=70||97<=t&&t<=102))return!1;s=!0}return s&&"_"!==r}if("o"===r){for(a++;a<o;a++)if("_"!==(r=e[a])){if(!(48<=(n=e.charCodeAt(a))&&n<=55))return!1;s=!0}return s&&"_"!==r}}if("_"===r)return!1;for(;a<o;a++)if("_"!==(r=e[a])){if(!(48<=(i=e.charCodeAt(a))&&i<=57))return!1;s=!0}return!!s&&"_"!==r},construct:function(e){var t,n=e,i=1;if(-1!==n.indexOf("_")&&(n=n.replace(/_/g,"")),("-"===(t=n[0])||"+"===t)&&("-"===t&&(i=-1),t=(n=n.slice(1))[0]),"0"===n)return 0;if("0"===t){if("b"===n[1])return i*parseInt(n.slice(2),2);if("x"===n[1])return i*parseInt(n.slice(2),16);if("o"===n[1])return i*parseInt(n.slice(2),8)}return i*parseInt(n,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1==0&&!S(e)},represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),P=RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),q=/^[-+]?[0-9]+e/,H=new j("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!!P.test(e)&&"_"!==e[e.length-1]},construct:function(e){var t,n;return(n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t)?1===n?1/0:-1/0:".nan"===t?NaN:n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||S(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(1/0===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(-1/0===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(S(e))return"-0.0";return n=e.toString(10),q.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"}),Y=N.extend({implicit:[L,F,U,H]}),B=RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),W=RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"),K=new j("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==B.exec(e)||null!==W.exec(e))},construct:function(e){var t,n,i,r,o,a,s,u,l=0,c=null;if(null===(t=B.exec(e))&&(t=W.exec(e)),null===t)throw Error("Date resolve error");if(n=+t[1],i=t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(n,i,r));if(o=+t[4],a=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l*=1}return t[9]&&(c=(60*t[10]+ +(t[11]||0))*6e4,"-"===t[9]&&(c=-c)),u=new Date(Date.UTC(n,i,r,o,a,s,l)),c&&u.setTime(u.getTime()-c),u},instanceOf:Date,represent:function(e){return e.toISOString()}}),G=new j("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}}),z="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r",J=new j("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,i=0,r=e.length;for(n=0;n<r;n++)if(!((t=z.indexOf(e.charAt(n)))>64)){if(t<0)return!1;i+=6}return i%8==0},construct:function(e){var t,n,i=e.replace(/[\r\n=]/g,""),r=i.length,o=0,a=[];for(t=0;t<r;t++)t%4==0&&t&&(a.push(o>>16&255),a.push(o>>8&255),a.push(255&o)),o=o<<6|z.indexOf(i.charAt(t));return 0==(n=r%4*6)?(a.push(o>>16&255),a.push(o>>8&255),a.push(255&o)):18===n?(a.push(o>>10&255),a.push(o>>2&255)):12===n&&a.push(o>>4&255),new Uint8Array(a)},predicate:function(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)},represent:function(e){var t,n,i="",r=0,o=e.length;for(t=0;t<o;t++)t%3==0&&t&&(i+=z[r>>18&63],i+=z[r>>12&63],i+=z[r>>6&63],i+=z[63&r]),r=(r<<8)+e[t];return 0==(n=o%3)?(i+=z[r>>18&63],i+=z[r>>12&63],i+=z[r>>6&63],i+=z[63&r]):2===n?(i+=z[r>>10&63],i+=z[r>>4&63],i+=z[r<<2&63],i+=z[64]):1===n&&(i+=z[r>>2&63],i+=z[r<<4&63],i+=z[64],i+=z[64]),i}}),V=Object.prototype.hasOwnProperty,Z=Object.prototype.toString,X=new j("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,i,r,o,a=[];for(t=0,n=e.length;t<n;t+=1){if(i=e[t],o=!1,"[object Object]"!==Z.call(i))return!1;for(r in i)if(V.call(i,r))if(o)return!1;else o=!0;if(!o||-1!==a.indexOf(r))return!1;a.push(r)}return!0},construct:function(e){return null!==e?e:[]}}),Q=Object.prototype.toString,ee=new j("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){var t,n,i,r,o;if(null===e)return!0;for(t=0,o=Array(e.length),n=e.length;t<n;t+=1){if(i=e[t],"[object Object]"!==Q.call(i)||1!==(r=Object.keys(i)).length)return!1;o[t]=[r[0],i[r[0]]]}return!0},construct:function(e){var t,n,i,r,o;if(null===e)return[];for(t=0,o=Array(e.length),n=e.length;t<n;t+=1)r=Object.keys(i=e[t]),o[t]=[r[0],i[r[0]]];return o}}),et=Object.prototype.hasOwnProperty,en=new j("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){var t;if(null===e)return!0;for(t in e)if(et.call(e,t)&&null!==e[t])return!1;return!0},construct:function(e){return null!==e?e:{}}}),ei=Y.extend({implicit:[K,G],explicit:[J,X,ee,en]}),er=Object.prototype.hasOwnProperty,eo=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,ea=/[\x85\u2028\u2029]/,es=/[,\[\]\{\}]/,eu=/^(?:!|!!|![a-z\-]+!)$/i,el=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function ec(e){return Object.prototype.toString.call(e)}function ep(e){return 10===e||13===e}function ed(e){return 9===e||32===e}function ef(e){return 9===e||32===e||10===e||13===e}function eh(e){return 44===e||91===e||93===e||123===e||125===e}function eg(e){return 48===e?"\0":97===e?"\x07":98===e?"\b":116===e||9===e?" ":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"\x1b":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}for(var em=Array(256),ey=Array(256),ev=0;ev<256;ev++)em[ev]=+!!eg(ev),ey[ev]=eg(ev);function eb(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||ei,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function eA(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=T(n),new O(t,n)}function ew(e,t){throw eA(e,t)}function eC(e,t){e.onWarning&&e.onWarning.call(null,eA(e,t))}var ex={YAML:function(e,t,n){var i,r,o;null!==e.version&&ew(e,"duplication of %YAML directive"),1!==n.length&&ew(e,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&ew(e,"ill-formed argument of the YAML directive"),r=parseInt(i[1],10),o=parseInt(i[2],10),1!==r&&ew(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&eC(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var i,r;2!==n.length&&ew(e,"TAG directive accepts exactly two arguments"),i=n[0],r=n[1],eu.test(i)||ew(e,"ill-formed tag handle (first argument) of the TAG directive"),er.call(e.tagMap,i)&&ew(e,'there is a previously declared suffix for "'+i+'" tag handle'),el.test(r)||ew(e,"ill-formed tag prefix (second argument) of the TAG directive");try{r=decodeURIComponent(r)}catch(t){ew(e,"tag prefix is malformed: "+r)}e.tagMap[i]=r}};function ek(e,t,n,i){var r,o,a,s;if(t<n){if(s=e.input.slice(t,n),i)for(r=0,o=s.length;r<o;r+=1)9===(a=s.charCodeAt(r))||32<=a&&a<=1114111||ew(e,"expected valid JSON character");else eo.test(s)&&ew(e,"the stream contains non-printable characters");e.result+=s}}function eS(e,t,n,i){var r,o,a,s,u;for("object"==typeof(u=n)&&null!==u||ew(e,"cannot merge mappings; the provided source object is unacceptable"),a=0,s=(r=Object.keys(n)).length;a<s;a+=1)o=r[a],er.call(t,o)||(t[o]=n[o],i[o]=!0)}function e$(e,t,n,i,r,o,a,s,u){var l,c;if(Array.isArray(r))for(l=0,c=(r=Array.prototype.slice.call(r)).length;l<c;l+=1)Array.isArray(r[l])&&ew(e,"nested arrays are not supported inside keys"),"object"==typeof r&&"[object Object]"===ec(r[l])&&(r[l]="[object Object]");if("object"==typeof r&&"[object Object]"===ec(r)&&(r="[object Object]"),r=String(r),null===t&&(t={}),"tag:yaml.org,2002:merge"===i)if(Array.isArray(o))for(l=0,c=o.length;l<c;l+=1)eS(e,t,o[l],n);else eS(e,t,o,n);else!e.json&&!er.call(n,r)&&er.call(t,r)&&(e.line=a||e.line,e.lineStart=s||e.lineStart,e.position=u||e.position,ew(e,"duplicated mapping key")),"__proto__"===r?Object.defineProperty(t,r,{configurable:!0,enumerable:!0,writable:!0,value:o}):t[r]=o,delete n[r];return t}function eO(e){var t;10===(t=e.input.charCodeAt(e.position))?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):ew(e,"a line break is expected"),e.line+=1,e.lineStart=e.position,e.firstTabInLine=-1}function eM(e,t,n){for(var i=0,r=e.input.charCodeAt(e.position);0!==r;){for(;ed(r);)9===r&&-1===e.firstTabInLine&&(e.firstTabInLine=e.position),r=e.input.charCodeAt(++e.position);if(t&&35===r)do r=e.input.charCodeAt(++e.position);while(10!==r&&13!==r&&0!==r)if(ep(r))for(eO(e),r=e.input.charCodeAt(e.position),i++,e.lineIndent=0;32===r;)e.lineIndent++,r=e.input.charCodeAt(++e.position);else break}return -1!==n&&0!==i&&e.lineIndent<n&&eC(e,"deficient indentation"),i}function eI(e){var t,n=e.position;return!!((45===(t=e.input.charCodeAt(n))||46===t)&&t===e.input.charCodeAt(n+1)&&t===e.input.charCodeAt(n+2)&&(n+=3,0===(t=e.input.charCodeAt(n))||ef(t)))||!1}function eT(e,t){1===t?e.result+=" ":t>1&&(e.result+=k("\n",t-1))}function eE(e,t){var n,i,r=e.tag,o=e.anchor,a=[],s=!1;if(-1!==e.firstTabInLine)return!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),i=e.input.charCodeAt(e.position);0!==i&&(-1!==e.firstTabInLine&&(e.position=e.firstTabInLine,ew(e,"tab characters must not be used in indentation")),45===i&&ef(e.input.charCodeAt(e.position+1)));){if(s=!0,e.position++,eM(e,!0,-1)&&e.lineIndent<=t){a.push(null),i=e.input.charCodeAt(e.position);continue}if(n=e.line,eR(e,t,3,!1,!0),a.push(e.result),eM(e,!0,-1),i=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==i)ew(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break}return!!s&&(e.tag=r,e.anchor=o,e.kind="sequence",e.result=a,!0)}function eR(e,t,n,i,r){var o,a,s,u,l,c,p,d,f,h=1,g=!1,m=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,o=a=s=4===n||3===n,i&&eM(e,!0,-1)&&(g=!0,e.lineIndent>t?h=1:e.lineIndent===t?h=0:e.lineIndent<t&&(h=-1)),1===h)for(;function(e){var t,n,i,r,o=!1,a=!1;if(33!==(r=e.input.charCodeAt(e.position)))return!1;if(null!==e.tag&&ew(e,"duplication of a tag property"),60===(r=e.input.charCodeAt(++e.position))?(o=!0,r=e.input.charCodeAt(++e.position)):33===r?(a=!0,n="!!",r=e.input.charCodeAt(++e.position)):n="!",t=e.position,o){do r=e.input.charCodeAt(++e.position);while(0!==r&&62!==r)e.position<e.length?(i=e.input.slice(t,e.position),r=e.input.charCodeAt(++e.position)):ew(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==r&&!ef(r);)33===r&&(a?ew(e,"tag suffix cannot contain exclamation marks"):(n=e.input.slice(t-1,e.position+1),eu.test(n)||ew(e,"named tag handle cannot contain such characters"),a=!0,t=e.position+1)),r=e.input.charCodeAt(++e.position);i=e.input.slice(t,e.position),es.test(i)&&ew(e,"tag suffix cannot contain flow indicator characters")}i&&!el.test(i)&&ew(e,"tag name cannot contain such characters: "+i);try{i=decodeURIComponent(i)}catch(t){ew(e,"tag name is malformed: "+i)}return o?e.tag=i:er.call(e.tagMap,n)?e.tag=e.tagMap[n]+i:"!"===n?e.tag="!"+i:"!!"===n?e.tag="tag:yaml.org,2002:"+i:ew(e,'undeclared tag handle "'+n+'"'),!0}(e)||function(e){var t,n;if(38!==(n=e.input.charCodeAt(e.position)))return!1;for(null!==e.anchor&&ew(e,"duplication of an anchor property"),n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!ef(n)&&!eh(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&ew(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}(e);)eM(e,!0,-1)?(g=!0,s=o,e.lineIndent>t?h=1:e.lineIndent===t?h=0:e.lineIndent<t&&(h=-1)):s=!1;if(s&&(s=g||r),(1===h||4===n)&&(d=1===n||2===n?t:t+1,f=e.position-e.lineStart,1===h?s&&(eE(e,f)||function(e,t,n){var i,r,o,a,s,u,l,c=e.tag,p=e.anchor,d={},f=Object.create(null),h=null,g=null,m=null,y=!1,v=!1;if(-1!==e.firstTabInLine)return!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=d),l=e.input.charCodeAt(e.position);0!==l;){if(y||-1===e.firstTabInLine||(e.position=e.firstTabInLine,ew(e,"tab characters must not be used in indentation")),i=e.input.charCodeAt(e.position+1),o=e.line,(63===l||58===l)&&ef(i))63===l?(y&&(e$(e,d,f,h,g,null,a,s,u),h=g=m=null),v=!0,y=!0,r=!0):y?(y=!1,r=!0):ew(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,l=i;else{if(a=e.line,s=e.lineStart,u=e.position,!eR(e,n,2,!1,!0))break;if(e.line===o){for(l=e.input.charCodeAt(e.position);ed(l);)l=e.input.charCodeAt(++e.position);if(58===l)ef(l=e.input.charCodeAt(++e.position))||ew(e,"a whitespace character is expected after the key-value separator within a block mapping"),y&&(e$(e,d,f,h,g,null,a,s,u),h=g=m=null),v=!0,y=!1,r=!1,h=e.tag,g=e.result;else{if(!v)return e.tag=c,e.anchor=p,!0;ew(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!v)return e.tag=c,e.anchor=p,!0;ew(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}if((e.line===o||e.lineIndent>t)&&(y&&(a=e.line,s=e.lineStart,u=e.position),eR(e,t,4,!0,r)&&(y?g=e.result:m=e.result),y||(e$(e,d,f,h,g,m,a,s,u),h=g=m=null),eM(e,!0,-1),l=e.input.charCodeAt(e.position)),(e.line===o||e.lineIndent>t)&&0!==l)ew(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return y&&e$(e,d,f,h,g,null,a,s,u),v&&(e.tag=c,e.anchor=p,e.kind="mapping",e.result=d),v}(e,f,d))||function(e,t){var n,i,r,o,a,s,u,l,c,p,d,f,h=!0,g=e.tag,m=e.anchor,y=Object.create(null);if(91===(f=e.input.charCodeAt(e.position)))a=93,l=!1,o=[];else{if(123!==f)return!1;a=125,l=!0,o={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=o),f=e.input.charCodeAt(++e.position);0!==f;){if(eM(e,!0,t),(f=e.input.charCodeAt(e.position))===a)return e.position++,e.tag=g,e.anchor=m,e.kind=l?"mapping":"sequence",e.result=o,!0;h?44===f&&ew(e,"expected the node content, but found ','"):ew(e,"missed comma between flow collection entries"),p=c=d=null,s=u=!1,63===f&&ef(e.input.charCodeAt(e.position+1))&&(s=u=!0,e.position++,eM(e,!0,t)),n=e.line,i=e.lineStart,r=e.position,eR(e,t,1,!1,!0),p=e.tag,c=e.result,eM(e,!0,t),f=e.input.charCodeAt(e.position),(u||e.line===n)&&58===f&&(s=!0,f=e.input.charCodeAt(++e.position),eM(e,!0,t),eR(e,t,1,!1,!0),d=e.result),l?e$(e,o,y,p,c,d,n,i,r):s?o.push(e$(e,null,y,p,c,d,n,i,r)):o.push(c),eM(e,!0,t),44===(f=e.input.charCodeAt(e.position))?(h=!0,f=e.input.charCodeAt(++e.position)):h=!1}ew(e,"unexpected end of the stream within a flow collection")}(e,d)?m=!0:(a&&function(e,t){var n,i,r,o,a,s=1,u=!1,l=!1,c=t,p=0,d=!1;if(124===(a=e.input.charCodeAt(e.position)))r=!1;else{if(62!==a)return!1;r=!0}for(e.kind="scalar",e.result="";0!==a;)if(43===(a=e.input.charCodeAt(++e.position))||45===a)1===s?s=43===a?3:2:ew(e,"repeat of a chomping mode identifier");else if((o=48<=(n=a)&&n<=57?n-48:-1)>=0)0===o?ew(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?ew(e,"repeat of an indentation width identifier"):(c=t+o-1,l=!0);else break;if(ed(a)){do a=e.input.charCodeAt(++e.position);while(ed(a))if(35===a)do a=e.input.charCodeAt(++e.position);while(!ep(a)&&0!==a)}for(;0!==a;){for(eO(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!l||e.lineIndent<c)&&32===a;)e.lineIndent++,a=e.input.charCodeAt(++e.position);if(!l&&e.lineIndent>c&&(c=e.lineIndent),ep(a)){p++;continue}if(e.lineIndent<c){3===s?e.result+=k("\n",u?1+p:p):1===s&&u&&(e.result+="\n");break}for(r?ed(a)?(d=!0,e.result+=k("\n",u?1+p:p)):d?(d=!1,e.result+=k("\n",p+1)):0===p?u&&(e.result+=" "):e.result+=k("\n",p):e.result+=k("\n",u?1+p:p),u=!0,l=!0,p=0,i=e.position;!ep(a)&&0!==a;)a=e.input.charCodeAt(++e.position);ek(e,i,e.position,!1)}return!0}(e,d)||function(e,t){var n,i,r;if(39!==(n=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,i=r=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(ek(e,i,e.position,!0),39!==(n=e.input.charCodeAt(++e.position)))return!0;i=e.position,e.position++,r=e.position}else ep(n)?(ek(e,i,r,!0),eT(e,eM(e,!1,t)),i=r=e.position):e.position===e.lineStart&&eI(e)?ew(e,"unexpected end of the document within a single quoted scalar"):(e.position++,r=e.position);ew(e,"unexpected end of the stream within a single quoted scalar")}(e,d)||function(e,t){var n,i,r,o,a,s,u,l;if(34!==(s=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;0!==(s=e.input.charCodeAt(e.position));)if(34===s)return ek(e,n,e.position,!0),e.position++,!0;else if(92===s){if(ek(e,n,e.position,!0),ep(s=e.input.charCodeAt(++e.position)))eM(e,!1,t);else if(s<256&&em[s])e.result+=ey[s],e.position++;else if((a=120===(u=s)?2:117===u?4:8*(85===u))>0){for(r=a,o=0;r>0;r--)(a=function(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}(s=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:ew(e,"expected hexadecimal character");e.result+=(l=o)<=65535?String.fromCharCode(l):String.fromCharCode((l-65536>>10)+55296,(l-65536&1023)+56320),e.position++}else ew(e,"unknown escape sequence");n=i=e.position}else ep(s)?(ek(e,n,i,!0),eT(e,eM(e,!1,t)),n=i=e.position):e.position===e.lineStart&&eI(e)?ew(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position);ew(e,"unexpected end of the stream within a double quoted scalar")}(e,d)?m=!0:!function(e){var t,n,i;if(42!==(i=e.input.charCodeAt(e.position)))return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!ef(i)&&!eh(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&ew(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),er.call(e.anchorMap,n)||ew(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],eM(e,!0,-1),!0}(e)?function(e,t,n){var i,r,o,a,s,u,l,c,p=e.kind,d=e.result;if(ef(c=e.input.charCodeAt(e.position))||eh(c)||35===c||38===c||42===c||33===c||124===c||62===c||39===c||34===c||37===c||64===c||96===c||(63===c||45===c)&&(ef(i=e.input.charCodeAt(e.position+1))||n&&eh(i)))return!1;for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==c;){if(58===c){if(ef(i=e.input.charCodeAt(e.position+1))||n&&eh(i))break}else if(35===c){if(ef(e.input.charCodeAt(e.position-1)))break}else if(e.position===e.lineStart&&eI(e)||n&&eh(c))break;else if(ep(c)){if(s=e.line,u=e.lineStart,l=e.lineIndent,eM(e,!1,-1),e.lineIndent>=t){a=!0,c=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=u,e.lineIndent=l;break}a&&(ek(e,r,o,!1),eT(e,e.line-s),r=o=e.position,a=!1),ed(c)||(o=e.position+1),c=e.input.charCodeAt(++e.position)}return ek(e,r,o,!1),!!e.result||(e.kind=p,e.result=d,!1)}(e,d,1===n)&&(m=!0,null===e.tag&&(e.tag="?")):(m=!0,(null!==e.tag||null!==e.anchor)&&ew(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===h&&(m=s&&eE(e,f))),null===e.tag)null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);else if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&ew(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),u=0,l=e.implicitTypes.length;u<l;u+=1)if((p=e.implicitTypes[u]).resolve(e.result)){e.result=p.construct(e.result),e.tag=p.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else if("!"!==e.tag){if(er.call(e.typeMap[e.kind||"fallback"],e.tag))p=e.typeMap[e.kind||"fallback"][e.tag];else for(u=0,p=null,l=(c=e.typeMap.multi[e.kind||"fallback"]).length;u<l;u+=1)if(e.tag.slice(0,c[u].tag.length)===c[u].tag){p=c[u];break}p||ew(e,"unknown tag !<"+e.tag+">"),null!==e.result&&p.kind!==e.kind&&ew(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+p.kind+'", not "'+e.kind+'"'),p.resolve(e.result,e.tag)?(e.result=p.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):ew(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||m}function ej(e,t){e=String(e),t=t||{},0!==e.length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var n=new eb(e,t),i=e.indexOf("\0");for(-1!==i&&(n.position=i,ew(n,"null byte is not allowed in input")),n.input+="\0";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)!function(e){var t,n,i,r,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(r=e.input.charCodeAt(e.position))&&(eM(e,!0,-1),r=e.input.charCodeAt(e.position),!(e.lineIndent>0)&&37===r);){for(a=!0,r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!ef(r);)r=e.input.charCodeAt(++e.position);for(n=e.input.slice(t,e.position),i=[],n.length<1&&ew(e,"directive name must not be less than one character in length");0!==r;){for(;ed(r);)r=e.input.charCodeAt(++e.position);if(35===r){do r=e.input.charCodeAt(++e.position);while(0!==r&&!ep(r))break}if(ep(r))break;for(t=e.position;0!==r&&!ef(r);)r=e.input.charCodeAt(++e.position);i.push(e.input.slice(t,e.position))}0!==r&&eO(e),er.call(ex,n)?ex[n](e,n,i):eC(e,'unknown document directive "'+n+'"')}if(eM(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,eM(e,!0,-1)):a&&ew(e,"directives end mark is expected"),eR(e,e.lineIndent-1,4,!1,!0),eM(e,!0,-1),e.checkLineBreaks&&ea.test(e.input.slice(o,e.position))&&eC(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&eI(e)){46===e.input.charCodeAt(e.position)&&(e.position+=3,eM(e,!0,-1));return}e.position<e.length-1&&ew(e,"end of the stream or a document separator is expected")}(n);return n.documents}var eD=Object.prototype.toString,e_=Object.prototype.hasOwnProperty,eN={};eN[0]="\\0",eN[7]="\\a",eN[8]="\\b",eN[9]="\\t",eN[10]="\\n",eN[11]="\\v",eN[12]="\\f",eN[13]="\\r",eN[27]="\\e",eN[34]='\\"',eN[92]="\\\\",eN[133]="\\N",eN[160]="\\_",eN[8232]="\\L",eN[8233]="\\P";function eL(e,t){return function(){throw Error("Function yaml."+e+" is removed in js-yaml 4. Use yaml."+t+" instead, which is now safe by default.")}}eL("safeLoad","load"),eL("safeLoadAll","loadAll"),eL("safeDump","dump");let eF=function(e,t){var n=ej(e,t);if(0!==n.length){if(1===n.length)return n[0];throw new O("expected a single document in the stream, but found more")}};e.i(24868),e.i(14747),e.i(61372);let eU=["planned","in-progress","complete","archived"],eP=function(){if(process.env.LEANSPEC_REPO_ROOT)return process.env.LEANSPEC_REPO_ROOT;let e=process.cwd();for(let t=0;t<6;t++){if((0,C.existsSync)(A.default.join(e,".lean-spec")))return e;let t=A.default.resolve(e,"..");if(t===e)break;e=t}return A.default.resolve(process.cwd(),"..","..")}();async function eq(t){let n=A.default.join(eP,"specs");if(!(0,C.existsSync)(n))return null;let{readdir:i}=await e.A(87903),r=await i(n,{withFileTypes:!0}),o=/^(\d{2,})-/,a=parseInt(t.split("-")[0],10);for(let e of r)if(e.isDirectory()&&(e.name===t||!isNaN(a)&&o.test(e.name)&&parseInt(e.name.split("-")[0],10)===a))return A.default.join(n,e.name);return null}async function eH(e,{params:t}){try{let{id:n}=await t;if(!n)return b.NextResponse.json({error:"Spec id is required"},{status:400});let i={};try{i=await e.json()}catch{return b.NextResponse.json({error:"Invalid JSON body"},{status:400})}let{status:r}=i;if(!r||!eU.includes(r))return b.NextResponse.json({error:"Invalid status value"},{status:400});let o=decodeURIComponent(n),a=await eq(o);if(!a)return b.NextResponse.json({error:"Spec not found"},{status:404});let s=A.default.join(a,"README.md");if(!(0,C.existsSync)(s))return b.NextResponse.json({error:"Spec README.md not found"},{status:404});let u=await (0,w.readFile)(s,"utf-8"),{content:l}=function(e,t){let n,i=(0,x.default)(e,{engines:{yaml:e=>eF(e,{schema:N})}}),r={...i.data},o={...i.data,...t};for(let e of["created","completed","updated","due"])o[e]instanceof Date&&(o[e]=o[e].toISOString().split("T")[0]);n=new Date().toISOString(),o.created_at||(o.created_at=n),r&&(o.updated_at=n),"complete"===o.status&&r?.status!=="complete"&&!o.completed_at&&(o.completed_at=n,o.completed||(o.completed=new Date().toISOString().split("T")[0])),r&&o.status!==r.status&&(Array.isArray(o.transitions)||(o.transitions=[]),o.transitions.push({status:o.status,at:n})),"complete"!==t.status||o.completed||(o.completed=new Date().toISOString().split("T")[0]),"updated"in i.data&&(o.updated=new Date().toISOString().split("T")[0]);let a=i.content;return a=function(e,t){let n=function(e){switch(e){case"planned":return"📅";case"in-progress":return"⏳";case"complete":return"✅";case"archived":return"📦";default:return"📄"}}(t.status),i=t.status.charAt(0).toUpperCase()+t.status.slice(1).replace("-"," "),r=t.created,o=`> **Status**: ${n} ${i}`;if(t.priority){let e=t.priority.charAt(0).toUpperCase()+t.priority.slice(1);o+=` \xb7 **Priority**: ${e}`}o+=` \xb7 **Created**: ${r}`,t.tags&&t.tags.length>0&&(o+=` \xb7 **Tags**: ${t.tags.join(", ")}`);let a="";if(t.assignee||t.reviewer){let e=t.assignee||"TBD",n=t.reviewer||"TBD";a=`
2
+ > **Assignee**: ${e} \xb7 **Reviewer**: ${n}`}let s=/^>\s+\*\*Status\*\*:.*(?:\n>\s+\*\*Assignee\*\*:.*)?/m;if(s.test(e))return e.replace(s,o+a);{let t=e.match(/^#\s+.+$/m);if(t){let n=t.index+t[0].length;return e.slice(0,n)+"\n\n"+o+a+"\n"+e.slice(n)}}return e}(a,o),{content:x.default.stringify(a,o),frontmatter:o}}(u,{status:r});return await (0,w.writeFile)(s,l,"utf-8"),b.NextResponse.json({success:!0})}catch(e){return console.error("Failed to update spec status:",e),b.NextResponse.json({error:"Failed to update spec status"},{status:500})}}e.s(["PATCH",()=>eH],63082);var eY=e.i(63082);let eB=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/specs/[id]/status/route",pathname:"/api/specs/[id]/status",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/packages/ui/src/app/api/specs/[id]/status/route.ts",nextConfigOutput:"standalone",userland:eY}),{workAsyncStorage:eW,workUnitAsyncStorage:eK,serverHooks:eG}=eB;function ez(){return(0,i.patchFetch)({workAsyncStorage:eW,workUnitAsyncStorage:eK})}async function eJ(e,t,i){eB.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let b="/api/specs/[id]/status/route";b=b.replace(/\/index$/,"")||"/";let A=await eB.prepare(e,t,{srcPage:b,multiZoneDraftMode:!1});if(!A)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:w,params:C,nextConfig:x,parsedUrl:k,isDraftMode:S,prerenderManifest:$,routerServerContext:O,isOnDemandRevalidate:M,revalidateOnlyGenerated:I,resolvedPathname:T,clientReferenceManifest:E,serverActionsManifest:R}=A,j=(0,u.normalizeAppPath)(b),D=!!($.dynamicRoutes[j]||$.routes[T]),_=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,k,!1):t.end("This page could not be found"),null);if(D&&!S){let e=!!$.routes[T],t=$.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(x.experimental.adapterPath)return await _();throw new y.NoFallbackError}}let N=null;!D||eB.isDev||S||(N="/index"===(N=T)?"/":N);let L=!0===eB.isDev||!D,F=D&&!L;R&&E&&(0,a.setReferenceManifestsSingleton)({page:b,clientReferenceManifest:E,serverActionsManifest:R,serverModuleMap:(0,s.createServerModuleMap)({serverActionsManifest:R})});let U=e.method||"GET",P=(0,o.getTracer)(),q=P.getActiveScopeSpan(),H={params:C,prerenderManifest:$,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:(0,r.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:x.cacheLife,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,i)=>eB.onRequestError(e,t,i,O)},sharedContext:{buildId:w}},Y=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),W=c.NextRequestAdapter.fromNodeNextRequest(Y,(0,c.signalFromNodeResponse)(t));try{let a=async e=>eB.handle(W,H).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=P.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=n.get("next.route");if(i){let t=`${U} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${b}`)}),s=!!(0,r.getRequestMeta)(e,"minimalMode"),u=async r=>{var o,u;let l=async({previousCacheEntry:n})=>{try{if(!s&&M&&I&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await a(r);e.fetchMetrics=H.renderOpts.fetchMetrics;let u=H.renderOpts.pendingWaitUntil;u&&i.waitUntil&&(i.waitUntil(u),u=void 0);let l=H.renderOpts.collectedTags;if(!D)return await (0,f.sendResponse)(Y,B,o,H.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&H.renderOpts.collectedRevalidate,i=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:H.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:i}}}}catch(t){throw(null==n?void 0:n.isStale)&&await eB.onRequestError(e,t,{routerKind:"App Router",routePath:b,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:M})},O),t}},c=await eB.handleResponse({req:e,nextConfig:x,cacheKey:N,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:$,isRoutePPREnabled:!1,isOnDemandRevalidate:M,revalidateOnlyGenerated:I,responseGenerator:l,waitUntil:i.waitUntil,isMinimalMode:s});if(!D)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(u=c.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",M?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return s&&D||p.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,f.sendResponse)(Y,B,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};q?await u(q):await P.withPropagatedContext(e.headers,()=>P.trace(p.BaseServerSpan.handleRequest,{spanName:`${U} ${b}`,kind:o.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},u))}catch(t){if(t instanceof y.NoFallbackError||await eB.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:M})}),D)throw t;return await (0,f.sendResponse)(Y,B,new Response(null,{status:500})),null}}e.s(["handler",()=>eJ,"patchFetch",()=>ez,"routeModule",()=>eB,"serverHooks",()=>eG,"workAsyncStorage",()=>eW,"workUnitAsyncStorage",()=>eK],26432)}];
3
+
4
+ //# sourceMappingURL=%5Broot-of-the-server%5D__cd1fb0a2._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},68239,e=>{"use strict";var t=e.i(44271),r=e.i(67708),a=e.i(14747),s=e.i(2157),i=e.i(92194);let n=(0,a.resolve)(process.cwd(),"../../specs");function o(e){return e?Array.isArray(e)?e.map(e=>String(e)):"string"==typeof e?[e]:[]:[]}async function c(e,c){let l=await t.specsService.getSpec(e,c);if(!l)return null;let p={...l,tags:l.tags?"string"==typeof l.tags?JSON.parse(l.tags):l.tags:null};if(!c){let e,t,c=(e=l.filePath.replace(/^specs\//,"").replace(/\/README\.md$/,""),(0,a.join)((t=process.env.SPECS_DIR)?t.startsWith("/")?t:(0,a.resolve)(process.cwd(),t):n,e)),u=(0,r.detectSubSpecs)(c),d=function(e){try{let t=(0,a.join)(e,"README.md"),r=(0,s.readFileSync)(t,"utf-8"),{data:n}=(0,i.default)(r),c=o(n?.depends_on??n?.dependsOn),l=o(n?.related);return{dependsOn:c,related:l}}catch(e){return console.warn("Unable to parse spec relationships",e),{dependsOn:[],related:[]}}}(c);return{...p,subSpecs:u,relationships:d}}return p}async function l(e){let r=await t.specsService.getAllSpecs(e),a=new Map,s=new Map;for(let e of r)e.status&&a.set(e.status,(a.get(e.status)||0)+1),e.priority&&s.set(e.priority,(s.get(e.priority)||0)+1);let i=a.get("complete")||0,n=r.length>0?i/r.length*100:0;return{totalProjects:1,totalSpecs:r.length,specsByStatus:Array.from(a.entries()).map(([e,t])=>({status:e,count:t})),specsByPriority:Array.from(s.entries()).map(([e,t])=>({priority:e,count:t})),completionRate:Math.round(10*n)/10}}e.s(["getSpecById",()=>c,"getStats",()=>l])},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},67708,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(92194);let s=[{pattern:/design|ui|ux|mockup|wireframe|prototype/i,iconName:"Palette",color:"text-purple-600"},{pattern:/architecture|structure|system|diagram/i,iconName:"Map",color:"text-indigo-600"},{pattern:/implementation|code|develop|build/i,iconName:"Code",color:"text-green-600"},{pattern:/api|endpoint|integration|interface/i,iconName:"Code",color:"text-blue-600"},{pattern:/test|qa|quality|validation/i,iconName:"TestTube",color:"text-orange-600"},{pattern:/task|todo|checklist|milestone/i,iconName:"CheckSquare",color:"text-gray-600"},{pattern:/config|setup|settings|environment/i,iconName:"Wrench",color:"text-yellow-600"},{pattern:/deploy|devops|ci|cd|pipeline|release/i,iconName:"Wrench",color:"text-orange-600"},{pattern:/migration|upgrade|refactor|transition/i,iconName:"GitBranch",color:"text-cyan-600"},{pattern:/security|auth|permission|access|encryption/i,iconName:"CheckSquare",color:"text-red-600"},{pattern:/performance|optimization|speed|cache|benchmark/i,iconName:"TrendingUp",color:"text-green-600"},{pattern:/database|data|schema|model|query/i,iconName:"FileText",color:"text-blue-600"},{pattern:/doc|guide|manual|reference/i,iconName:"FileText",color:"text-gray-500"},{pattern:/github|git|vcs|version/i,iconName:"GitBranch",color:"text-pink-600"}],i={iconName:"FileText",color:"text-gray-600"};function n(e){let n=[];if(!(0,t.existsSync)(e))return n;try{for(let o of(0,t.readdirSync)(e)){if("README.md"===o||!o.endsWith(".md"))continue;let c=(0,r.join)(e,o);if((0,t.statSync)(c).isFile())try{let e=(0,t.readFileSync)(c,"utf-8"),{content:r}=(0,a.default)(e),l=function(e){let t=e.replace(/\.md$/i,"");for(let{pattern:e,iconName:r,color:a}of s)if(e.test(t))return{iconName:r,color:a};return i}(o);n.push({name:o.replace(/\.md$/i,"").split(/[-_]/).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "),file:o,iconName:l.iconName,color:l.color,content:r})}catch(e){console.error(`Error reading sub-spec ${o}:`,e)}}n.sort((e,t)=>e.file.localeCompare(t.file))}catch(t){console.error(`Error reading spec directory ${e}:`,t)}return n}e.s(["detectSubSpecs",()=>n])},44271,e=>{"use strict";var t=e.i(12714),r=e.i(50227),a=e.i(92194);let s=parseInt(process.env.CACHE_TTL||"60000",10);class i{cache=new Map;specsDir;constructor(e){this.specsDir=e||r.join(process.cwd(),"../../specs")}async getAllSpecs(){let e="__all_specs__",t=this.cache.get(e);if(t&&Date.now()<t.expiresAt)return t.data;let r=await this.loadSpecsFromFilesystem();return this.cache.set(e,{data:r,expiresAt:Date.now()+s}),r}async getSpec(e){let t=`spec:${e}`,r=this.cache.get(t);if(r&&Date.now()<r.expiresAt)return r.data;let a=parseInt(e.split("-")[0],10);if(isNaN(a))return null;let i=await this.loadSpecByNumber(a);return i&&this.cache.set(t,{data:i,expiresAt:Date.now()+s}),i}async getSpecsByStatus(e){return(await this.getAllSpecs()).filter(t=>t.status===e)}async searchSpecs(e){let t=await this.getAllSpecs(),r=e.toLowerCase();return t.filter(e=>e.specName.toLowerCase().includes(r)||e.title?.toLowerCase().includes(r)||e.contentMd.toLowerCase().includes(r))}invalidateCache(e){e?(this.cache.delete(`spec:${e}`),this.cache.delete("__all_specs__")):this.cache.clear()}async loadSpecsFromFilesystem(){let e=[];try{await t.access(this.specsDir)}catch{return[]}let a=/^(\d{2,})-/;for(let s of(await t.readdir(this.specsDir,{withFileTypes:!0})))if(s.isDirectory()){if("archived"===s.name){let s=r.join(this.specsDir,"archived");for(let i of(await t.readdir(s,{withFileTypes:!0})))if(i.isDirectory()&&a.test(i.name)){let t=r.join(s,i.name),a=await this.loadSpecFromDirectory(t,i.name,!0);a&&e.push(a)}continue}if(a.test(s.name)){let t=r.join(this.specsDir,s.name),a=await this.loadSpecFromDirectory(t,s.name,!1);a&&e.push(a)}}return e.sort((e,t)=>(e.specNumber||0)-(t.specNumber||0))}async loadSpecByNumber(e){try{await t.access(this.specsDir)}catch{return null}let a=await t.readdir(this.specsDir,{withFileTypes:!0}),s=RegExp(`^0*${e}-`);for(let e of a)if(e.isDirectory()&&"archived"!==e.name&&s.test(e.name)){let t=r.join(this.specsDir,e.name);return await this.loadSpecFromDirectory(t,e.name,!1)}try{let e=r.join(this.specsDir,"archived");for(let a of(await t.readdir(e,{withFileTypes:!0})))if(a.isDirectory()&&s.test(a.name)){let t=r.join(e,a.name);return await this.loadSpecFromDirectory(t,a.name,!0)}}catch{}return null}async loadSpecFromDirectory(e,s,i=!1){let n=r.join(e,"README.md");try{let e=await t.readFile(n,"utf-8"),{data:r,content:o}=(0,a.default)(e);if(!r||!r.status)return null;let c=s.match(/^(\d+)/),l=c?parseInt(c[1],10):null,p=`fs-${s}`,u=r.created_at??r.created,d=r.updated_at??r.updated,h=r.completed_at??r.completed,m=e=>{if(!e)return null;let t=new Date(e);return isNaN(t.getTime())?null:t},f=`${i?"specs/archived/":"specs/"}${s}/README.md`;return{id:p,projectId:"leanspec",specNumber:l,specName:s,title:this.extractTitle(o),status:r.status||"planned",priority:r.priority||null,tags:r.tags?JSON.stringify(r.tags):null,assignee:r.assignee||null,contentMd:o,contentHtml:null,createdAt:m(u),updatedAt:m(d),completedAt:m(h),filePath:f,githubUrl:`https://github.com/codervisor/lean-spec/tree/main/${f}`,syncedAt:new Date}}catch{return null}}extractTitle(e){for(let t of e.split("\n")){let e=t.match(/^#\s+(.+)$/);if(e)return e[1].trim()}return null}}let n=null,o=new class{filesystemSource;databaseSource;mode;constructor(){if(this.mode=process.env.SPECS_MODE||"filesystem","filesystem"===this.mode||"both"===this.mode){const e=process.env.SPECS_DIR;this.filesystemSource=new i(e)}}async getDatabaseSource(){if(!this.databaseSource){if(!n){let{DatabaseSource:t}=await e.A(14430);n=t}this.databaseSource=new n}return this.databaseSource}async getAllSpecs(e){let t=await this.getSource(e);return await t.getAllSpecs(e)}async getSpec(e,t){let r=await this.getSource(t);return await r.getSpec(e,t)}async getSpecsByStatus(e,t){let r=await this.getSource(t);return await r.getSpecsByStatus(e,t)}async searchSpecs(e,t){let r=await this.getSource(t);return await r.searchSpecs(e,t)}async invalidateCache(e,t){(await this.getSource(t)).invalidateCache(e)}async getSource(e){if(e&&("database"===this.mode||"both"===this.mode))return await this.getDatabaseSource();if(this.filesystemSource)return this.filesystemSource;throw Error("No spec source configured")}};e.s(["specsService",0,o],44271)},81961,e=>{"use strict";var t=e.i(6169),r=e.i(25864),a=e.i(71648),s=e.i(30064),i=e.i(74222),n=e.i(2043),o=e.i(71408),c=e.i(26527),l=e.i(30592),p=e.i(34639),u=e.i(88935),d=e.i(68515),h=e.i(87166),m=e.i(76718),f=e.i(76529),g=e.i(51151),y=e.i(93695);e.i(59704);var x=e.i(8259),w=e.i(31511),S=e.i(68239);async function v(){try{let e=await (0,S.getStats)();return w.NextResponse.json(e)}catch(e){return console.error("Error fetching stats:",e),w.NextResponse.json({error:"Failed to fetch stats"},{status:500})}}e.s(["GET",()=>v],90210);var R=e.i(90210);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/stats/route",pathname:"/api/stats",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/packages/ui/src/app/api/stats/route.ts",nextConfigOutput:"standalone",userland:R}),{workAsyncStorage:b,workUnitAsyncStorage:A,serverHooks:C}=E;function N(){return(0,a.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:A})}async function _(e,t,a){E.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/stats/route";w=w.replace(/\/index$/,"")||"/";let S=await E.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:R,nextConfig:b,parsedUrl:A,isDraftMode:C,prerenderManifest:N,routerServerContext:_,isOnDemandRevalidate:D,revalidateOnlyGenerated:T,resolvedPathname:j,clientReferenceManifest:k,serverActionsManifest:P}=S,q=(0,c.normalizeAppPath)(w),F=!!(N.dynamicRoutes[q]||N.routes[j]),M=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,A,!1):t.end("This page could not be found"),null);if(F&&!C){let e=!!N.routes[j],t=N.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await M();throw new y.NoFallbackError}}let O=null;!F||E.isDev||C||(O="/index"===(O=j)?"/":O);let I=!0===E.isDev||!F,$=F&&!I;P&&k&&(0,n.setReferenceManifestsSingleton)({page:w,clientReferenceManifest:k,serverActionsManifest:P,serverModuleMap:(0,o.createServerModuleMap)({serverActionsManifest:P})});let U=e.method||"GET",H=(0,i.getTracer)(),B=H.getActiveScopeSpan(),L={params:R,prerenderManifest:N,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>E.onRequestError(e,t,a,_)},sharedContext:{buildId:v}},K=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),W=p.NextRequestAdapter.fromNodeNextRequest(K,(0,p.signalFromNodeResponse)(t));try{let n=async e=>E.handle(W,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${U} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${w}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),c=async s=>{var i,c;let l=async({previousCacheEntry:r})=>{try{if(!o&&D&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await n(s);e.fetchMetrics=L.renderOpts.fetchMetrics;let c=L.renderOpts.pendingWaitUntil;c&&a.waitUntil&&(a.waitUntil(c),c=void 0);let l=L.renderOpts.collectedTags;if(!F)return await (0,h.sendResponse)(K,G,i,L.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:D})},_),t}},p=await E.handleResponse({req:e,nextConfig:b,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:o});if(!F)return null;if((null==p||null==(i=p.value)?void 0:i.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(c=p.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",D?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(p.value.headers);return o&&F||u.delete(g.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,f.getCacheControlHeader)(p.cacheControl)),await (0,h.sendResponse)(K,G,new Response(p.value.body,{headers:u,status:p.value.status||200})),null};B?await c(B):await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},c))}catch(t){if(t instanceof y.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:D})}),F)throw t;return await (0,h.sendResponse)(K,G,new Response(null,{status:500})),null}}e.s(["handler",()=>_,"patchFetch",()=>N,"routeModule",()=>E,"serverHooks",()=>C,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>A],81961)},14430,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__ae726e9c._.js","server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js"].map(t=>e.l(t))).then(()=>t(18146)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__e2071b2e._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[35499,(e,t,n)=>{let _;t.exports.__wbg_set_wasm=function(e){_=e};let r=new("undefined"==typeof TextDecoder?(0,t.require)("util").TextDecoder:TextDecoder)("utf-8",{ignoreBOM:!0,fatal:!0});r.decode();let i=null;function o(){return(null===i||0===i.byteLength)&&(i=new Uint8Array(_.memory.buffer)),i}function d(e,t){return e>>>=0,r.decode(o().subarray(e,e+t))}let l=Array(128).fill(void 0);l.push(void 0,null,!0,!1);let a=l.length;function g(e){a===l.length&&l.push(l.length+1);let t=a;return a=l[t],l[t]=e,t}function s(e,t){try{return e.apply(this,t)}catch(e){_.__wbindgen_export_0(g(e))}}function b(e){let t=l[e];return e<132||(l[e]=a,a=e),t}let u=0,p=new("undefined"==typeof TextEncoder?(0,t.require)("util").TextEncoder:TextEncoder)("utf-8"),w="function"==typeof p.encodeInto?function(e,t){return p.encodeInto(e,t)}:function(e,t){let n=p.encode(e);return t.set(n),{read:e.length,written:n.length}};function f(e,t,n){if(void 0===n){let n=p.encode(e),_=t(n.length,1)>>>0;return o().subarray(_,_+n.length).set(n),u=n.length,_}let _=e.length,r=t(_,1)>>>0,i=o(),d=0;for(;d<_;d++){let t=e.charCodeAt(d);if(t>127)break;i[r+d]=t}if(d!==_){0!==d&&(e=e.slice(d)),r=n(r,_,_=d+3*e.length,1)>>>0;let t=w(e,o().subarray(r+d,r+_));d+=t.written,r=n(r,_,d,1)>>>0}return u=d,r}let c=null;function k(){return(null===c||!0===c.buffer.detached||void 0===c.buffer.detached&&c.buffer!==_.memory.buffer)&&(c=new DataView(_.memory.buffer)),c}let y=null;function h(){return(null===y||0===y.byteLength)&&(y=new Uint32Array(_.memory.buffer)),y}function x(e,t){return e>>>=0,h().subarray(e/4,e/4+t)}function m(e,t){return e>>>=0,o().subarray(e/1,e/1+t)}t.exports.get_encoding=function(e,t){if(null==_)throw Error("tiktoken: WASM binary has not been propery initialized.");try{let i=_.__wbindgen_add_to_stack_pointer(-16),o=f(e,_.__wbindgen_export_1,_.__wbindgen_export_2),d=u;_.get_encoding(i,o,d,g(t));var n=k().getInt32(i+0,!0),r=k().getInt32(i+4,!0);if(k().getInt32(i+8,!0))throw b(r);return v.__wrap(n)}finally{_.__wbindgen_add_to_stack_pointer(16)}},t.exports.encoding_for_model=function(e,t){if(null==_)throw Error("tiktoken: WASM binary has not been propery initialized.");try{let i=_.__wbindgen_add_to_stack_pointer(-16),o=f(e,_.__wbindgen_export_1,_.__wbindgen_export_2),d=u;_.encoding_for_model(i,o,d,g(t));var n=k().getInt32(i+0,!0),r=k().getInt32(i+4,!0);if(k().getInt32(i+8,!0))throw b(r);return v.__wrap(n)}finally{_.__wbindgen_add_to_stack_pointer(16)}},t.exports.get_encoding_name_for_model=function(e){let t,n;if(null==_)throw Error("tiktoken: WASM binary has not been propery initialized.");try{let s=_.__wbindgen_add_to_stack_pointer(-16),p=f(e,_.__wbindgen_export_1,_.__wbindgen_export_2),w=u;_.get_encoding_name_for_model(s,p,w);var r=k().getInt32(s+0,!0),i=k().getInt32(s+4,!0),o=k().getInt32(s+8,!0),l=k().getInt32(s+12,!0),a=r,g=i;if(l)throw a=0,g=0,b(o);return t=a,n=g,d(a,g)}finally{_.__wbindgen_add_to_stack_pointer(16),_.__wbindgen_export_3(t,n,1)}};let I="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>_.__wbg_tiktoken_free(e>>>0,1));class v{constructor(e,t,n){if(null==_)throw Error("tiktoken: WASM binary has not been propery initialized.");const r=f(e,_.__wbindgen_export_1,_.__wbindgen_export_2),i=u,o=f(n,_.__wbindgen_export_1,_.__wbindgen_export_2),d=u,l=_.tiktoken_new(r,i,g(t),o,d);return this.__wbg_ptr=l>>>0,I.register(this,this.__wbg_ptr,this),this}get name(){try{let n,r=_.__wbindgen_add_to_stack_pointer(-16);_.tiktoken_name(r,this.__wbg_ptr);var e=k().getInt32(r+0,!0),t=k().getInt32(r+4,!0);return 0!==e&&(n=d(e,t).slice(),_.__wbindgen_export_3(e,+t,1)),n}finally{_.__wbindgen_add_to_stack_pointer(16)}}static __wrap(e){e>>>=0;let t=Object.create(v.prototype);return t.__wbg_ptr=e,I.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,I.unregister(this),e}free(){if(null==_)throw Error("tiktoken: WASM binary has not been propery initialized.");let e=this.__destroy_into_raw();_.__wbg_tiktoken_free(e,0)}encode(e,t,n){if(null==_)throw Error("tiktoken: WASM binary has not been propery initialized.");try{let l=_.__wbindgen_add_to_stack_pointer(-16),a=f(e,_.__wbindgen_export_1,_.__wbindgen_export_2),s=u;_.tiktoken_encode(l,this.__wbg_ptr,a,s,g(t),g(n));var r=k().getInt32(l+0,!0),i=k().getInt32(l+4,!0),o=k().getInt32(l+8,!0);if(k().getInt32(l+12,!0))throw b(o);var d=x(r,i).slice();return _.__wbindgen_export_3(r,4*i,4),d}finally{_.__wbindgen_add_to_stack_pointer(16)}}encode_ordinary(e){if(null==_)throw Error("tiktoken: WASM binary has not been propery initialized.");try{let i=_.__wbindgen_add_to_stack_pointer(-16),o=f(e,_.__wbindgen_export_1,_.__wbindgen_export_2),d=u;_.tiktoken_encode_ordinary(i,this.__wbg_ptr,o,d);var t=k().getInt32(i+0,!0),n=k().getInt32(i+4,!0),r=x(t,n).slice();return _.__wbindgen_export_3(t,4*n,4),r}finally{_.__wbindgen_add_to_stack_pointer(16)}}encode_with_unstable(e,t,n){if(null==_)throw Error("tiktoken: WASM binary has not been propery initialized.");try{let o=_.__wbindgen_add_to_stack_pointer(-16),d=f(e,_.__wbindgen_export_1,_.__wbindgen_export_2),l=u;_.tiktoken_encode_with_unstable(o,this.__wbg_ptr,d,l,g(t),g(n));var r=k().getInt32(o+0,!0),i=k().getInt32(o+4,!0);if(k().getInt32(o+8,!0))throw b(i);return b(r)}finally{_.__wbindgen_add_to_stack_pointer(16)}}encode_single_token(e){let t;if(null==_)throw Error("tiktoken: WASM binary has not been propery initialized.");let n=(t=(0,_.__wbindgen_export_1)(+e.length,1)>>>0,o().set(e,t/1),u=e.length,t),r=u;return _.tiktoken_encode_single_token(this.__wbg_ptr,n,r)>>>0}decode(e){if(null==_)throw Error("tiktoken: WASM binary has not been propery initialized.");try{let i,o=_.__wbindgen_add_to_stack_pointer(-16),d=(i=(0,_.__wbindgen_export_1)(4*e.length,4)>>>0,h().set(e,i/4),u=e.length,i),l=u;_.tiktoken_decode(o,this.__wbg_ptr,d,l);var t=k().getInt32(o+0,!0),n=k().getInt32(o+4,!0),r=m(t,n).slice();return _.__wbindgen_export_3(t,+n,1),r}finally{_.__wbindgen_add_to_stack_pointer(16)}}decode_single_token_bytes(e){if(null==_)throw Error("tiktoken: WASM binary has not been propery initialized.");try{let i=_.__wbindgen_add_to_stack_pointer(-16);_.tiktoken_decode_single_token_bytes(i,this.__wbg_ptr,e);var t=k().getInt32(i+0,!0),n=k().getInt32(i+4,!0),r=m(t,n).slice();return _.__wbindgen_export_3(t,+n,1),r}finally{_.__wbindgen_add_to_stack_pointer(16)}}token_byte_values(){if(null==_)throw Error("tiktoken: WASM binary has not been propery initialized.");return b(_.tiktoken_token_byte_values(this.__wbg_ptr))}}t.exports.Tiktoken=v,t.exports.__wbg_parse_def2e24ef1252aff=function(){return s(function(e,t){return g(JSON.parse(d(e,t)))},arguments)},t.exports.__wbg_stringify_f7ed6987935b4a24=function(){return s(function(e){return g(JSON.stringify(l[e]))},arguments)},t.exports.__wbindgen_error_new=function(e,t){return g(Error(d(e,t)))},t.exports.__wbindgen_is_undefined=function(e){return void 0===l[e]},t.exports.__wbindgen_object_drop_ref=function(e){b(e)},t.exports.__wbindgen_string_get=function(e,t){if(null==_)throw Error("tiktoken: WASM binary has not been propery initialized.");let n=l[t],r="string"==typeof n?n:void 0;var i=null==r?0:f(r,_.__wbindgen_export_1,_.__wbindgen_export_2),o=u;k().setInt32(e+4,o,!0),k().setInt32(e+0,i,!0)},t.exports.__wbindgen_throw=function(e,t){throw Error(d(e,t))}},2141,(e,t,n)=>{let _=e.r(35499),r={};r["./tiktoken_bg.js"]=_;let i=e.r(14747),o=e.r(22734),d="/ROOT/node_modules/.pnpm/tiktoken@1.0.22/node_modules/tiktoken".split(i.sep).reduce((e,t,n,_)=>{let r=_.slice(0,n+1).join(i.sep)+i.sep;return r.includes("node_modules"+i.sep)||e.unshift(i.join(r,"node_modules","tiktoken","","./tiktoken_bg.wasm")),e},[]);d.unshift(i.join("/ROOT/node_modules/.pnpm/tiktoken@1.0.22/node_modules/tiktoken","./tiktoken_bg.wasm"));let l=null;for(let e of d)try{l=o.readFileSync(e);break}catch{}if(null==l)throw Error("Missing tiktoken_bg.wasm");let a=new WebAssembly.Module(l),g=new WebAssembly.Instance(a,r);_.__wbg_set_wasm(g.exports),n.get_encoding=_.get_encoding,n.encoding_for_model=_.encoding_for_model,n.get_encoding_name_for_model=_.get_encoding_name_for_model,n.Tiktoken=_.Tiktoken}];
2
+
3
+ //# sourceMappingURL=e0876_tiktoken_3efea2dc._.js.map