@nivora/matrix 0.1.0 → 0.1.1
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.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +4 -4
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +2 -2
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/builder/page.js +3 -3
- package/.next/server/app/builder/page_client-reference-manifest.js +1 -1
- package/.next/server/app/guide/page_client-reference-manifest.js +1 -1
- package/.next/server/app/matrix/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/releases/[id]/page.js +15 -15
- package/.next/server/app/releases/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/releases/page.js +2 -2
- package/.next/server/app/releases/page_client-reference-manifest.js +1 -1
- package/.next/server/app/specs/[id]/page.js +2 -2
- package/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +4 -4
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +2 -2
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/app/builder/{page-e10754eb65a4f784.js → page-e0a24ae820fa2c06.js} +2 -2
- package/.next/static/chunks/app/releases/[id]/page-ea66642a6a557b42.js +1 -0
- package/.next/static/chunks/app/releases/page-fc527101f56b36c5.js +1 -0
- package/.next/static/chunks/app/specs/[id]/page-49293bb634997108.js +1 -0
- package/.next/trace +11 -0
- package/.next/trace-build +1 -1
- package/README.md +220 -134
- package/package.json +1 -1
- package/.next/static/chunks/app/releases/[id]/page-d8069a1802686478.js +0 -1
- package/.next/static/chunks/app/releases/page-26a520d9789e69f5.js +0 -1
- package/.next/static/chunks/app/specs/[id]/page-7065af5d4d103f16.js +0 -1
- /package/.next/static/{8ZUFcYHRSRlY1FYWZ33gH → zmL75rl5Hq4TyiNVaXe8R}/_buildManifest.js +0 -0
- /package/.next/static/{8ZUFcYHRSRlY1FYWZ33gH → zmL75rl5Hq4TyiNVaXe8R}/_ssgManifest.js +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
(()=>{var a={};a.id=41,a.ids=[41],a.modules={108:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b)||(0,h.isPrerenderInterruptedError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(8894),e=c(4491),f=c(2880),g=c(6484),h=c(3445),i=c(3449);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},381:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return d}});class c extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class d extends URLSearchParams{append(){throw new c}delete(){throw new c}set(){throw new c}sort(){throw new c}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},402:(a,b,c)=>{Promise.resolve().then(c.bind(c,
|
|
1
|
+
(()=>{var a={};a.id=41,a.ids=[41],a.modules={108:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b)||(0,h.isPrerenderInterruptedError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(8894),e=c(4491),f=c(2880),g=c(6484),h=c(3445),i=c(3449);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},381:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return d}});class c extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class d extends URLSearchParams{append(){throw new c}delete(){throw new c}set(){throw new c}sort(){throw new c}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},402:(a,b,c)=>{Promise.resolve().then(c.bind(c,9392))},722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},755:a=>{"use strict";a.exports=require("node:url")},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},1409:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>k,dynamic:()=>j});var d=c(5735),e=c(1970),f=c(7079),g=c(311);c(9021);var h=c(998),i=c(9575);let j="force-dynamic";async function k({params:a}){let{id:b}=await a,c=(0,f.U)(b);c||(0,e.notFound)();let j=(0,f.g5)(b),k=(0,h.x7)(),l=k.filter(a=>j.includes(a.id)),m=k.filter(a=>!j.includes(a.id)),n=(0,g.Lf)().query(`
|
|
2
2
|
SELECT * FROM test_run WHERE release_id = ? ORDER BY run_date DESC
|
|
3
3
|
`).all(b),o=(0,g.Lf)().query(`
|
|
4
4
|
SELECT * FROM defect
|
|
5
5
|
WHERE release_id = ?
|
|
6
6
|
ORDER BY created_at DESC
|
|
7
|
-
`).all(b);return(0,d.jsx)(i.ReleaseDetailClient,{release:c,taggedFS:l,availableFS:m,testRuns:n,defects:o})}},1455:a=>{"use strict";a.exports=require("node:fs/promises")},1787:a=>{"use strict";a.exports=require("bun:sqlite")},1932:a=>{"use strict";a.exports=require("url")},1970:(a,b,c)=>{"use strict";var d=c(6610);c.o(d,"notFound")&&c.d(b,{notFound:function(){return d.notFound}})},2171:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getRedirectError:function(){return i},getRedirectStatusCodeFromError:function(){return n},getRedirectTypeFromError:function(){return m},getURLFromRedirectError:function(){return l},permanentRedirect:function(){return k},redirect:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(1494),g=c(2220),h=c(9121).actionAsyncStorage;function i(a,b,c=f.RedirectStatusCode.TemporaryRedirect){let d=Object.defineProperty(Error(g.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d.digest=`${g.REDIRECT_ERROR_CODE};${b};${a};${c};`,d}function j(a,b){throw i(a,b??=h?.getStore()?.isAction?g.RedirectType.push:g.RedirectType.replace,f.RedirectStatusCode.TemporaryRedirect)}function k(a,b=g.RedirectType.replace){throw i(a,b,f.RedirectStatusCode.PermanentRedirect)}function l(a){return(0,g.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function m(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function n(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},2283:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return f}});let d=c(7638),e=`${d.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function f(){let a=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=e,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},2606:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(7638).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},3024:a=>{"use strict";a.exports=require("node:fs")},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3275:(a,b,c)=>{"use strict";c.d(b,{ReleaseDetailClient:()=>m});var d=c(8249),e=c(7484),f=c(2116),g=c.n(f),h=c(9829);let i=(0,h.createServerReference)("60b2b1ac09aa309cd62336a9a181a22f6a565110e8",h.callServer,void 0,h.findSourceMapURL,"updateReleaseAction"),j=(0,h.createServerReference)("60a507c03894e522051c1ddbaa648c22f3145f6f7b",h.callServer,void 0,h.findSourceMapURL,"tagFSToReleaseAction"),k=(0,h.createServerReference)("600920c1121365a4e4a2b74f81a2832b96fbcadc12",h.callServer,void 0,h.findSourceMapURL,"untagFSFromReleaseAction"),l=(0,h.createServerReference)("4098c7d1c9ece378d5dbdd69bf4aa352b2d12a9669",h.callServer,void 0,h.findSourceMapURL,"createDefectAction");function m({release:a,taggedFS:b,availableFS:c,testRuns:f,defects:h}){let[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)([]),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)({isOpen:!1}),[w,x]=(0,e.useState)({title:"",description:"",status:"open"}),[y,z]=(0,e.useState)({titleError:!1,descriptionError:!1}),[A,B]=(0,e.useTransition)(),[C,D]=(0,e.useState)({version:a.version,name:a.name,status:a.status,notes:a.notes||""}),E={planning:{bg:"rgba(168, 85, 247, 0.1)",color:"#a855f7"},testing:{bg:"rgba(59, 130, 246, 0.1)",color:"#3b82f6"},released:{bg:"rgba(34, 197, 94, 0.1)",color:"#22c55e"}}[a.status];return(0,d.jsxs)("div",{style:{maxWidth:"1200px",margin:"0 auto",padding:"2rem"},children:[(0,d.jsx)("div",{style:{marginBottom:"1.5rem"},children:(0,d.jsx)(g(),{href:"/releases",style:{color:"var(--text-secondary)",textDecoration:"none"},children:"← Back to Releases"})}),(0,d.jsxs)("header",{style:{marginBottom:"2rem"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem"},children:[(0,d.jsxs)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:E.color},children:[" ",a.id," "]}),(0,d.jsxs)("span",{style:{fontSize:"1.25rem",fontWeight:600},children:["v",a.version]}),(0,d.jsx)("span",{className:"badge",style:{background:E.bg,color:E.color,padding:"0.5rem 1rem"},children:a.status}),(0,d.jsx)("button",{onClick:()=>n(!m),className:"btn btn-primary",style:{marginLeft:"auto"},children:m?"Cancel":"✏️ Edit"})]}),(0,d.jsx)("h1",{style:{fontSize:"2rem",fontWeight:700},children:a.name}),(0,d.jsxs)("p",{style:{color:"var(--text-secondary)"},children:["Created ",a.created_at,a.released_at&&` • Released ${a.released_at}`]})]}),m&&(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"Edit Release"}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 2fr 1fr",gap:"1rem",marginBottom:"1rem"},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Version"}),(0,d.jsx)("input",{type:"text",value:C.version,onChange:a=>D({...C,version:a.target.value}),className:"input"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Name"}),(0,d.jsx)("input",{type:"text",value:C.name,onChange:a=>D({...C,name:a.target.value}),className:"input"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Status"}),(0,d.jsxs)("select",{value:C.status,onChange:a=>D({...C,status:a.target.value}),className:"input",children:[(0,d.jsx)("option",{value:"planning",children:"Planning"}),(0,d.jsx)("option",{value:"testing",children:"Testing"}),(0,d.jsx)("option",{value:"released",children:"Released"})]})]})]}),(0,d.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,d.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Notes"}),(0,d.jsx)("textarea",{value:C.notes,onChange:a=>D({...C,notes:a.target.value}),rows:3,className:"input",style:{resize:"vertical"}})]}),(0,d.jsx)("button",{onClick:()=>{B(async()=>{await i(a.id,C),n(!1)})},className:"btn btn-primary",disabled:A,children:A?"Saving...":"Save Changes"})]}),a.notes&&!m&&(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83D\uDCDD Notes"}),(0,d.jsx)("p",{style:{color:"var(--text-secondary)",whiteSpace:"pre-wrap"},children:a.notes})]}),(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem",borderLeft:"4px solid var(--error)"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,d.jsxs)("h2",{className:"card-title",children:["\uD83D\uDEA8 Defects & Deviations (",h.length,")"]}),(0,d.jsx)("button",{className:"btn",onClick:()=>{v({isOpen:!0,testResultId:void 0,fsId:void 0,scenarioName:void 0}),x({title:"",description:"",status:"open"})},children:"+ Log Defect"})]}),0===h.length?(0,d.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No defects logged. Any failed tests must be resolved or logged as a defect."}):(0,d.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:h.map(a=>(0,d.jsxs)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px",borderLeft:"open"===a.status?"3px solid red":"3px solid green"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"0.5rem"},children:[(0,d.jsxs)("div",{style:{fontWeight:600},children:[a.id,": ",a.title]}),(0,d.jsx)("div",{className:"badge",style:{background:"open"===a.status?"rgba(239, 68, 68, 0.1)":"rgba(34, 197, 94, 0.1)",color:"open"===a.status?"var(--error)":"var(--success)"},children:a.status.toUpperCase()})]}),(0,d.jsx)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)",whiteSpace:"pre-wrap"},children:a.description}),a.test_result_id&&(0,d.jsxs)("div",{style:{marginTop:"0.5rem",fontSize:"0.75rem",color:"var(--warning)"},children:["Linked to failed test result #",a.test_result_id]})]},a.id))})]}),(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,d.jsxs)("h2",{className:"card-title",style:{margin:0},children:["⚙️ Features (",b.length,")"]}),(0,d.jsx)("button",{onClick:()=>p(!0),className:"btn",disabled:0===c.length,children:"+ Add Features"})]}),o&&(0,d.jsxs)("div",{style:{marginBottom:"1rem",padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,d.jsx)("div",{style:{marginBottom:"0.5rem",fontWeight:500},children:"Select features to add:"}),(0,d.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem",marginBottom:"1rem"},children:c.map(a=>(0,d.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"0.5rem",cursor:"pointer"},children:[(0,d.jsx)("input",{type:"checkbox",checked:q.includes(a.id),onChange:b=>{b.target.checked?r([...q,a.id]):r(q.filter(b=>b!==a.id))}}),(0,d.jsx)("code",{style:{color:"var(--warning)"},children:a.id}),(0,d.jsx)("span",{children:a.title})]},a.id))}),(0,d.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,d.jsx)("button",{onClick:()=>{p(!1),r([])},className:"btn",children:"Cancel"}),(0,d.jsx)("button",{onClick:()=>{0!==q.length&&B(async()=>{await j(a.id,q),p(!1),r([])})},className:"btn btn-primary",disabled:A||0===q.length,children:A?"Adding...":`Add ${q.length} Feature${1!==q.length?"s":""}`})]})]}),0===b.length?(0,d.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No features tagged yet. Add features to track them in this release."}):(0,d.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:b.map(b=>(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"0.75rem 1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,d.jsxs)(g(),{href:`/specs/${b.id}`,style:{flex:1,textDecoration:"none"},children:[(0,d.jsx)("code",{style:{fontWeight:600,color:"var(--warning)",marginRight:"0.75rem"},children:b.id}),(0,d.jsx)("span",{style:{color:"var(--text-primary)"},children:b.title}),(0,d.jsxs)("span",{style:{marginLeft:"0.75rem",color:"var(--text-secondary)",fontSize:"0.875rem"},children:[b.scenario_count," scenarios"]})]}),(0,d.jsx)("button",{onClick:()=>{var c;return c=b.id,void B(async()=>{await k(a.id,c)})},className:"btn",style:{padding:"0.25rem 0.5rem",fontSize:"0.75rem"},disabled:A,children:"\xd7"})]},b.id))})]}),(0,d.jsxs)("div",{className:"card",children:[(0,d.jsxs)("h2",{className:"card-title",children:["\uD83E\uDDEA Test Runs (",f.length,")"]}),0===f.length?(0,d.jsxs)("p",{style:{color:"var(--text-secondary)"},children:["No test runs yet. Import Cucumber results: ",(0,d.jsxs)("code",{children:["machine release import-results results.json -r ",a.id]})]}):(0,d.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:f.map(a=>{let b=a.total>0?a.passed/a.total*100:0,c=s===a.id;return(0,d.jsxs)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",cursor:"pointer"},onClick:()=>t(c?null:a.id),children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{fontWeight:600,marginBottom:"0.25rem"},children:[a.failed>0?"❌":"✅"," Run #",a.id," ",c?"\uD83D\uDD3D":"▶"]}),(0,d.jsxs)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)"},children:[a.run_date," • ",a.source]})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:"1rem",textAlign:"center"},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontWeight:700,color:"var(--success)"},children:a.passed}),(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Passed"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontWeight:700,color:"var(--error)"},children:a.failed}),(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Failed"})]}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{fontWeight:700,color:100===b?"var(--success)":b>=80?"var(--warning)":"var(--error)"},children:[b.toFixed(0),"%"]}),(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Pass Rate"})]})]})]}),c&&(0,d.jsx)("div",{style:{marginTop:"1rem",paddingTop:"1rem",borderTop:"1px solid var(--border)"},children:(0,d.jsx)("p",{style:{fontStyle:"italic",color:"var(--text-secondary)"},children:"Detailed results view would go here. For now, check the console logs or database for failure details."})})]},a.id)})})]}),u.isOpen&&(0,d.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0,0,0,0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:100},children:(0,d.jsxs)("div",{className:"card",style:{width:"500px",maxWidth:"90%"},children:[(0,d.jsx)("h2",{className:"card-title",children:"Log Defect / Deviation"}),(0,d.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,d.jsxs)("label",{style:{display:"block",marginBottom:"0.5rem"},children:["Title ",(0,d.jsx)("span",{style:{color:"var(--error)"},children:"*"})]}),(0,d.jsx)("input",{className:"input",value:w.title,onChange:a=>{x({...w,title:a.target.value}),a.target.value&&z(a=>({...a,titleError:!1}))},placeholder:"Defect summary",style:y.titleError?{borderColor:"var(--error)",boxShadow:"0 0 0 2px rgba(239, 68, 68, 0.2)"}:{}}),y.titleError&&(0,d.jsx)("div",{style:{color:"var(--error)",fontSize:"0.75rem",marginTop:"0.25rem"},children:"Title is required"})]}),(0,d.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,d.jsxs)("label",{style:{display:"block",marginBottom:"0.5rem"},children:["Description & Root Cause ",(0,d.jsx)("span",{style:{color:"var(--error)"},children:"*"})]}),(0,d.jsx)("textarea",{className:"input",rows:5,value:w.description,onChange:a=>{x({...w,description:a.target.value}),a.target.value&&z(a=>({...a,descriptionError:!1}))},placeholder:"Describe the failure, root cause, and why it is acceptable (if deviating) or mitigation plan.",style:y.descriptionError?{borderColor:"var(--error)",boxShadow:"0 0 0 2px rgba(239, 68, 68, 0.2)"}:{}}),y.descriptionError&&(0,d.jsx)("div",{style:{color:"var(--error)",fontSize:"0.75rem",marginTop:"0.25rem"},children:"Description is required"})]}),(0,d.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,d.jsx)("label",{style:{display:"block",marginBottom:"0.5rem"},children:"Status"}),(0,d.jsxs)("select",{className:"input",value:w.status,onChange:a=>x({...w,status:a.target.value}),children:[(0,d.jsx)("option",{value:"open",children:"Open (Needs Fix)"}),(0,d.jsx)("option",{value:"resolved",children:"Resolved (Fixed)"}),(0,d.jsx)("option",{value:"accepted",children:"Accepted (Permanent Deviation)"})]})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:"0.5rem",justifyContent:"flex-end"},children:[(0,d.jsx)("button",{className:"btn",onClick:()=>{v({isOpen:!1}),z({titleError:!1,descriptionError:!1})},children:"Cancel"}),(0,d.jsx)("button",{className:"btn btn-primary",onClick:()=>{let b=!w.title.trim(),c=!w.description.trim();b||c?z({titleError:b,descriptionError:c}):B(async()=>{try{await l({releaseId:a.id,testResultId:u.testResultId,title:w.title,description:w.description,status:w.status}),v({isOpen:!1}),x({title:"",description:"",status:"open"})}catch(a){console.error("Failed to create defect:",a),alert("Failed to create defect. Check console for details.")}})},disabled:A,children:A?"Logging...":"Log Defect"})]})]})})]})}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},3873:a=>{"use strict";a.exports=require("path")},3954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},4057:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(7638).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},4494:(a,b,c)=>{"use strict";c.d(b,{Y7:()=>h,Id:()=>j,ct:()=>k,Lk:()=>i});var d=c(5349),e=c(2650),f=c(8864);function g(a){return(0,f.Lf)().query("SELECT * FROM release WHERE id = ?").get(a)}async function h(a){let b,c,d,h,i,j=(b=(0,f.Lf)(),d=(c=(0,f.Lf)()).query(`
|
|
7
|
+
`).all(b);return(0,d.jsx)(i.ReleaseDetailClient,{release:c,taggedFS:l,availableFS:m,testRuns:n,defects:o})}},1455:a=>{"use strict";a.exports=require("node:fs/promises")},1787:a=>{"use strict";a.exports=require("bun:sqlite")},1932:a=>{"use strict";a.exports=require("url")},1970:(a,b,c)=>{"use strict";var d=c(6610);c.o(d,"notFound")&&c.d(b,{notFound:function(){return d.notFound}})},2171:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getRedirectError:function(){return i},getRedirectStatusCodeFromError:function(){return n},getRedirectTypeFromError:function(){return m},getURLFromRedirectError:function(){return l},permanentRedirect:function(){return k},redirect:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(1494),g=c(2220),h=c(9121).actionAsyncStorage;function i(a,b,c=f.RedirectStatusCode.TemporaryRedirect){let d=Object.defineProperty(Error(g.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d.digest=`${g.REDIRECT_ERROR_CODE};${b};${a};${c};`,d}function j(a,b){throw i(a,b??=h?.getStore()?.isAction?g.RedirectType.push:g.RedirectType.replace,f.RedirectStatusCode.TemporaryRedirect)}function k(a,b=g.RedirectType.replace){throw i(a,b,f.RedirectStatusCode.PermanentRedirect)}function l(a){return(0,g.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function m(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function n(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},2283:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return f}});let d=c(7638),e=`${d.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function f(){let a=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=e,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},2606:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(7638).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},3024:a=>{"use strict";a.exports=require("node:fs")},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},3873:a=>{"use strict";a.exports=require("path")},3954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},4057:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(7638).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},4494:(a,b,c)=>{"use strict";c.d(b,{Y7:()=>h,Id:()=>j,ct:()=>k,Lk:()=>i});var d=c(5349),e=c(2650),f=c(8864);function g(a){return(0,f.Lf)().query("SELECT * FROM release WHERE id = ?").get(a)}async function h(a){let b,c,d,h,i,j=(b=(0,f.Lf)(),d=(c=(0,f.Lf)()).query(`
|
|
8
8
|
SELECT r.*,
|
|
9
9
|
(SELECT COUNT(*) FROM release_fs WHERE release_id = r.id) as fs_count,
|
|
10
10
|
(SELECT COUNT(*) FROM test_run WHERE release_id = r.id) as test_runs
|
|
@@ -24,18 +24,7 @@
|
|
|
24
24
|
`).run(b.version??c.version,b.name??c.name,b.status??c.status,e,b.notes??c.notes,a),g(a)}(a,b);return(0,e.revalidatePath)("/releases"),(0,e.revalidatePath)(`/releases/${a}`),c}async function j(a,b){for(let c of b)!function(a,b){let c=(0,f.Lf)(),d=(0,f.lg)();c.query(`
|
|
25
25
|
INSERT OR IGNORE INTO release_fs (release_id, fs_id, added_at)
|
|
26
26
|
VALUES (?, ?, ?)
|
|
27
|
-
`).run(a,b,d)}(a,c);(0,e.revalidatePath)(`/releases/${a}`)}async function k(a,b){(0,f.Lf)().query("DELETE FROM release_fs WHERE release_id = ? AND fs_id = ?").run(a,b),(0,e.revalidatePath)(`/releases/${a}`)}(0,c(9337).D)([h,i,j,k]),(0,d.A)(h,"
|
|
28
|
-
INSERT INTO defect (id, release_id, test_result_id, title, description, status, created_at, updated_at)
|
|
29
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
30
|
-
`).run(i,b.release_id,b.test_result_id||null,b.title,b.description,b.status||"open",e,e),(c=b.release_id,(0,g.Lf)().query(`
|
|
31
|
-
SELECT * FROM defect
|
|
32
|
-
WHERE release_id = ?
|
|
33
|
-
ORDER BY created_at DESC
|
|
34
|
-
`).all(c)).find(a=>a.id===i),(0,f.revalidatePath)(`/releases/${a.releaseId}`)}async function i(a,b,c){let d,e,h;d=(0,g.Lf)(),e=(0,g.lg)(),(h=d.query("SELECT * FROM defect WHERE id = ?").get(a))&&(d.query(`
|
|
35
|
-
UPDATE defect SET
|
|
36
|
-
title = ?, description = ?, status = ?, updated_at = ?
|
|
37
|
-
WHERE id = ?
|
|
38
|
-
`).run(c.title??h.title,c.description??h.description,c.status??h.status,e,a),d.query("SELECT * FROM defect WHERE id = ?").get(a)),(0,f.revalidatePath)(`/releases/${b}`)}async function j(a,b){(0,g.Lf)().query("DELETE FROM defect WHERE id = ?").run(a),(0,f.revalidatePath)(`/releases/${b}`)}(0,c(9337).D)([h,i,j]),(0,e.A)(h,"4098c7d1c9ece378d5dbdd69bf4aa352b2d12a9669",null),(0,e.A)(i,"709382dfa3ad1bf62d6259ec90087ad538fc35afeb",null),(0,e.A)(j,"603dc8471994902b38c86346a8564445cc45765044",null)},6122:(a,b,c)=>{Promise.resolve().then(c.bind(c,9575))},6193:a=>{"use strict";a.exports=require("node:string_decoder")},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6610:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return h.RedirectType},forbidden:function(){return j.forbidden},notFound:function(){return i.notFound},permanentRedirect:function(){return g.permanentRedirect},redirect:function(){return g.redirect},unauthorized:function(){return k.unauthorized},unstable_isUnrecognizedActionError:function(){return m},unstable_rethrow:function(){return l.unstable_rethrow}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(381),g=c(2171),h=c(2220),i=c(2283),j=c(2606),k=c(4057),l=c(8621);function m(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},6713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},6760:a=>{"use strict";a.exports=require("node:path")},7075:a=>{"use strict";a.exports=require("node:stream")},7079:(a,b,c)=>{"use strict";c.d(b,{Cd:()=>e,U:()=>f,g5:()=>g});var d=c(311);function e(){let a=(0,d.Lf)();return a.query(`
|
|
27
|
+
`).run(a,b,d)}(a,c);(0,e.revalidatePath)(`/releases/${a}`)}async function k(a,b){(0,f.Lf)().query("DELETE FROM release_fs WHERE release_id = ? AND fs_id = ?").run(a,b),(0,e.revalidatePath)(`/releases/${a}`)}(0,c(9337).D)([h,i,j,k]),(0,d.A)(h,"408d0995f4be7f259f70dc4565fa2a8791878e6f33",null),(0,d.A)(i,"605d227294f7347b07f597bdeb06346b065d7cb3b4",null),(0,d.A)(j,"60349323a40d1f889ed65a65407fd61937888631f0",null),(0,d.A)(k,"600886c75927f7162206a66e82b10253be2b657f36",null)},6122:(a,b,c)=>{Promise.resolve().then(c.bind(c,9575))},6193:a=>{"use strict";a.exports=require("node:string_decoder")},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6610:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return h.RedirectType},forbidden:function(){return j.forbidden},notFound:function(){return i.notFound},permanentRedirect:function(){return g.permanentRedirect},redirect:function(){return g.redirect},unauthorized:function(){return k.unauthorized},unstable_isUnrecognizedActionError:function(){return m},unstable_rethrow:function(){return l.unstable_rethrow}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(381),g=c(2171),h=c(2220),i=c(2283),j=c(2606),k=c(4057),l=c(8621);function m(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},6713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},6760:a=>{"use strict";a.exports=require("node:path")},7075:a=>{"use strict";a.exports=require("node:stream")},7079:(a,b,c)=>{"use strict";c.d(b,{Cd:()=>e,U:()=>f,g5:()=>g});var d=c(311);function e(){let a=(0,d.Lf)();return a.query(`
|
|
39
28
|
SELECT r.*,
|
|
40
29
|
(SELECT COUNT(*) FROM release_fs WHERE release_id = r.id) as fs_count,
|
|
41
30
|
(SELECT COUNT(*) FROM test_run WHERE release_id = r.id) as test_runs
|
|
@@ -48,4 +37,15 @@
|
|
|
48
37
|
`).get(b.id);return{...b,latest_pass_rate:c&&c.total>0?c.passed/c.total*100:null}})}function f(a){return(0,d.Lf)().query("SELECT * FROM release WHERE id = ?").get(a)}function g(a){return(0,d.Lf)().query(`
|
|
49
38
|
SELECT fs_id FROM release_fs WHERE release_id = ? ORDER BY added_at
|
|
50
39
|
`).all(a).map(a=>a.fs_id)}},8354:a=>{"use strict";a.exports=require("util")},8474:a=>{"use strict";a.exports=require("node:events")},8621:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(108).unstable_rethrow;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},8864:(a,b,c)=>{"use strict";c.d(b,{$C:()=>l,Lf:()=>j,lg:()=>k});var d=c(1787),e=c(9021),f=c(3873),g=c(1932);let h=(0,f.dirname)((0,g.fileURLToPath)("file:///Users/matthew/Code/github/p11o/machine/docs/src/lib/database/index.ts")),i=null;function j(){if(!i){let a=process.env.MACHINE_DB_PATH?process.env.MACHINE_DB_PATH:(0,f.join)(process.cwd(),"machine.db");(i=new d.Database(a,{create:!0})).exec("PRAGMA foreign_keys = ON"),function(){if(!i)return;let a=(0,f.join)(h,"schema.sql"),b=(0,e.readFileSync)(a,"utf-8");i.exec(b)}()}return i}function k(){return new Date().toISOString().split("T")[0]}function l(a,b){let c=b.filter(b=>b.startsWith(a)).map(b=>{let c=b.match(RegExp(`${a}-(\\d+)`));return c?parseInt(c[1],10):0}),d=c.length>0?Math.max(...c):0;return`${a}-${String(d+1).padStart(3,"0")}`}},9018:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>C.a,__next_app__:()=>K,handler:()=>M,routeModule:()=>L});var d=c(7553),e=c(4006),f=c(7798),g=c(4775),h=c(9373),i=c(3461),j=c(1020),k=c(6349),l=c(4365),m=c(6023),n=c(3747),o=c(4235),p=c(3938),q=c(261),r=c(6758),s=c(7243),t=c(6713),u=c(7527),v=c(2820),w=c(8216),x=c(7929),y=c(9551),z=c(9125),A=c(6439),B=c(5547),C=c.n(B),D=c(1287),E=c(1494),F=c(722),G=c(753),H=c(3954),I={};for(let a in D)0>["default","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(I[a]=()=>D[a]);c.d(b,I);let J={children:["",{children:["releases",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,1409)),"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/[id]/page.tsx"]}]},{}]},{metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(c.bind(c,6537)),"/Users/matthew/Code/github/p11o/machine/docs/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,5547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,5091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,5270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,8193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]}.children,K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/releases/[id]/page",pathname:"/releases/[id]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:J},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var B;L.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let I=!!(0,h.getRequestMeta)(a,"minimalMode"),N="/releases/[id]/page";"/index"===N&&(N="/");let O=await L.prepare(a,b,{srcPage:N,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,pageIsDynamic:S,buildManifest:T,nextFontManifest:U,reactLoadableManifest:V,serverActionsManifest:W,clientReferenceManifest:X,subresourceIntegrityManifest:Y,prerenderManifest:Z,isDraftMode:$,resolvedPathname:_,revalidateOnlyGenerated:aa,routerServerContext:ab,nextConfig:ac,parsedUrl:ad,interceptionRoutePatterns:ae,deploymentId:af}=O,ag=(0,q.normalizeAppPath)(N),{isOnDemandRevalidate:ah}=O,ai=ac.experimental.ppr&&!ac.cacheComponents&&(0,H.isInterceptionRouteAppPath)(_)?null:L.match(_,Z),aj=!!Z.routes[_],ak=a.headers["user-agent"]||"",al=(0,t.getBotType)(ak),am=(0,p.isHtmlBotRequest)(a),an=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ao=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ap=(0,r.getIsPossibleServerAction)(a),aq=(0,m.checkIsAppPPREnabled)(ac.experimental.ppr);if(!(0,h.getRequestMeta)(a,"postponed")&&aq&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let b=[];for await(let c of a)b.push(c);let c=Buffer.concat(b).toString("utf8");(0,h.addRequestMeta)(a,"postponed",c)}let ar=aq&&(null==(B=Z.routes[ag]??Z.dynamicRoutes[ag])?void 0:B.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?(0,h.getRequestMeta)(a,"postponed"):void 0,av=ar&&ao&&!an;I&&(av=av&&!!au);let aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=(!am||!ar)&&(!ak||(0,p.shouldServeStreamingMetadata)(ak,ac.htmlLimitedBots)),ay=!!((ai||aj||Z.routes[ag])&&!(am&&ar)),az=ar&&!0===ac.cacheComponents,aA=!0===L.isDev||!ay||"string"==typeof au||(az&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?av&&!I:av),aB=am&&ar,aC=null;$||!ay||aA||ap||au||av||(aC=_);let aD=aC;!aD&&L.isDev&&(aD=_),L.isDev||$||!ay||!ao||av||(0,k.d)(a.headers);let aE={...D,tree:J,GlobalError:C(),handler:M,routeModule:L,__next_app__:K};W&&X&&(0,o.setManifestsSingleton)({page:N,clientReferenceManifest:X,serverActionsManifest:W});let aF=a.method||"GET",aG=(0,g.getTracer)(),aH=aG.getActiveScopeSpan(),aI=async()=>((null==ab?void 0:ab.render404)?await ab.render404(a,b,ad,!1):b.end("This page could not be found"),null);try{let f=L.getVaryHeader(_,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aG.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aF} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aF} ${N}`)})},m=(0,h.getRequestMeta)(a,"incrementalCache"),o=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let l={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aE,Component:(0,j.T)(aE),params:R,routeModule:L,page:N,postponed:f,shouldWaitOnAllReady:aB,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||aA,buildManifest:T,nextFontManifest:U,reactLoadableManifest:V,subresourceIntegrityManifest:Y,setCacheStatus:null==ab?void 0:ab.setCacheStatus,setIsrStatus:null==ab?void 0:ab.setIsrStatus,setReactDebugChannel:null==ab?void 0:ab.setReactDebugChannel,sendErrorsToBrowser:null==ab?void 0:ab.sendErrorsToBrowser,dir:c(3873).join(process.cwd(),L.relativeProjectDir),isDraftMode:$,botType:al,isOnDemandRevalidate:ah,isPossibleServerAction:ap,assetPrefix:ac.assetPrefix,nextConfigOutput:ac.output,crossOrigin:ac.crossOrigin,trailingSlash:ac.trailingSlash,images:ac.images,previewProps:Z.preview,deploymentId:af,enableTainting:ac.experimental.taint,htmlLimitedBots:ac.htmlLimitedBots,reactMaxHeadersLength:ac.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:m,cacheLifeProfiles:ac.cacheLife,basePath:ac.basePath,serverActions:ac.experimental.serverActions,...as||at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:as}:{},cacheComponents:!!ac.cacheComponents,experimental:{isRoutePPREnabled:ar,expireTime:ac.expireTime,staleTimes:ac.experimental.staleTimes,dynamicOnHover:!!ac.experimental.dynamicOnHover,inlineCss:!!ac.experimental.inlineCss,authInterrupts:!!ac.experimental.authInterrupts,clientTraceMetadata:ac.experimental.clientTraceMetadata||[],clientParamParsingOrigins:ac.experimental.clientParamParsingOrigins},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>L.onRequestError(a,b,d,e,ab),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}};as&&(l.renderOpts.nextExport=!0,l.renderOpts.supportsDynamicResponse=!1,l.renderOpts.isDebugDynamicAccesses=as),i&&(l.renderOpts.supportsDynamicResponse=!1);let n=await k(e,l),{metadata:o}=n,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=o;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,ay&&(null==p?void 0:p.revalidate)===0&&!L.isDev&&!ar){let a=o.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${_}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
51
|
-
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:n,headers:q,rscData:o.flightData,postponed:o.postponed,status:o.statusCode,segmentData:o.segmentData},cacheControl:p}},p=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===L.isDev,q=c||b.writableEnded;if(ah&&aa&&!f&&!I)return(null==ab?void 0:ab.render404)?await ab.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(k=(0,v.parseFallbackField)(ai.fallback)),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(ak)&&(!ar||am)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!I&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aD&&!q&&!$&&S&&(l||!aj)){if((l||ai)&&k===v.FallbackMode.NOT_FOUND){if(ac.experimental.adapterPath)return await aI();throw new A.NoFallbackError}if(ar&&(ac.cacheComponents?!av:!ao)){let b=l&&"string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:ag,c=l&&(null==ai?void 0:ai.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ai.fallbackRouteParams):at?(0,n.getFallbackRouteParams)(ag,L):null,f=await L.handleResponse({cacheKey:b,req:a,nextConfig:ac,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:Z,isRoutePPREnabled:ar,responseGenerator:async()=>o({span:i,postponed:void 0,fallbackRouteParams:c,forceStaticRender:!1}),waitUntil:d.waitUntil,isMinimalMode:I});if(null===f)return null;if(f)return delete f.cacheControl,f}}let r=ah||g||!au?void 0:au;if(az&&!I&&m&&av&&!j){let b=await m.get(_,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,G.scheduleOnNextTick)(async()=>{let b=L.getResponseCache(a);try{await b.revalidate(_,m,ar,!1,a=>p({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if(as&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=l&&(null==ai?void 0:ai.fallbackRouteParams)&&(0,h.getRequestMeta)(a,"renderFallbackShell")?(0,n.createOpaqueFallbackRouteParams)(ai.fallbackRouteParams):at?(0,n.getFallbackRouteParams)(ag,L):null;return o({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},q=async c=>{var f,g,i,j,k;let l,m=await L.handleResponse({cacheKey:aC,responseGenerator:a=>p({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ac,prerenderManifest:Z,waitUntil:d.waitUntil,isMinimalMode:I});if($&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!m){if(aC)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ay&&!av&&(!n||an)&&(I||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=m;if(au)l={revalidate:0,expire:void 0};else if(av)l={revalidate:0,expire:void 0};else if(!L.isDev)if($)l={revalidate:0,expire:void 0};else if(ay){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??ac.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===u.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];I&&ay&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=az?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(q.headers){let a={...q.headers};for(let[c,d]of(I&&ay||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=q.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(I&&ay&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!q.status||ao&&ar||(b.statusCode=q.status),!I&&q.status&&E.RedirectStatusCode[q.status]&&ao&&(b.statusCode=200),n&&!av&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ao&&!$){if(void 0===q.rscData){if(q.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(ac.cacheComponents)return b.statusCode=404,(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new F.InvariantError(`Expected RSC response, got ${q.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:q.html,cacheControl:m.cacheControl})}return(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:w.default.fromStatic(q.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=q.html;if(!n||I||ao)return(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:v,cacheControl:m.cacheControl});if(as)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let A=new TransformStream;return v.push(A.readable),o({span:c,postponed:q.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(A.writable)}).catch(a=>{A.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aH)return await aG.withPropagatedContext(a.headers,()=>aG.trace(i.BaseServerSpan.handleRequest,{spanName:`${aF} ${N}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aF,"http.target":a.url}},q));await q(aH)}catch(b){throw b instanceof A.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:N,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:ay,isOnDemandRevalidate:ah})},!1,ab),b}}},9021:a=>{"use strict";a.exports=require("fs")},9121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9575:(a,b,c)=>{"use strict";c.d(b,{ReleaseDetailClient:()=>d});let d=(0,c(7943).registerClientReference)(function(){throw Error("Attempted to call ReleaseDetailClient() from the server but ReleaseDetailClient is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/[id]/release-detail-client.tsx","ReleaseDetailClient")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[445,471,13,390,476,135],()=>b(b.s=9018));module.exports=c})();
|
|
40
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:n,headers:q,rscData:o.flightData,postponed:o.postponed,status:o.statusCode,segmentData:o.segmentData},cacheControl:p}},p=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===L.isDev,q=c||b.writableEnded;if(ah&&aa&&!f&&!I)return(null==ab?void 0:ab.render404)?await ab.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(k=(0,v.parseFallbackField)(ai.fallback)),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(ak)&&(!ar||am)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!I&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aD&&!q&&!$&&S&&(l||!aj)){if((l||ai)&&k===v.FallbackMode.NOT_FOUND){if(ac.experimental.adapterPath)return await aI();throw new A.NoFallbackError}if(ar&&(ac.cacheComponents?!av:!ao)){let b=l&&"string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:ag,c=l&&(null==ai?void 0:ai.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ai.fallbackRouteParams):at?(0,n.getFallbackRouteParams)(ag,L):null,f=await L.handleResponse({cacheKey:b,req:a,nextConfig:ac,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:Z,isRoutePPREnabled:ar,responseGenerator:async()=>o({span:i,postponed:void 0,fallbackRouteParams:c,forceStaticRender:!1}),waitUntil:d.waitUntil,isMinimalMode:I});if(null===f)return null;if(f)return delete f.cacheControl,f}}let r=ah||g||!au?void 0:au;if(az&&!I&&m&&av&&!j){let b=await m.get(_,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,G.scheduleOnNextTick)(async()=>{let b=L.getResponseCache(a);try{await b.revalidate(_,m,ar,!1,a=>p({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if(as&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=l&&(null==ai?void 0:ai.fallbackRouteParams)&&(0,h.getRequestMeta)(a,"renderFallbackShell")?(0,n.createOpaqueFallbackRouteParams)(ai.fallbackRouteParams):at?(0,n.getFallbackRouteParams)(ag,L):null;return o({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},q=async c=>{var f,g,i,j,k;let l,m=await L.handleResponse({cacheKey:aC,responseGenerator:a=>p({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ac,prerenderManifest:Z,waitUntil:d.waitUntil,isMinimalMode:I});if($&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!m){if(aC)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ay&&!av&&(!n||an)&&(I||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=m;if(au)l={revalidate:0,expire:void 0};else if(av)l={revalidate:0,expire:void 0};else if(!L.isDev)if($)l={revalidate:0,expire:void 0};else if(ay){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??ac.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===u.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];I&&ay&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=az?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(q.headers){let a={...q.headers};for(let[c,d]of(I&&ay||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=q.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(I&&ay&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!q.status||ao&&ar||(b.statusCode=q.status),!I&&q.status&&E.RedirectStatusCode[q.status]&&ao&&(b.statusCode=200),n&&!av&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ao&&!$){if(void 0===q.rscData){if(q.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(ac.cacheComponents)return b.statusCode=404,(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new F.InvariantError(`Expected RSC response, got ${q.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:q.html,cacheControl:m.cacheControl})}return(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:w.default.fromStatic(q.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=q.html;if(!n||I||ao)return(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:v,cacheControl:m.cacheControl});if(as)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let A=new TransformStream;return v.push(A.readable),o({span:c,postponed:q.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(A.writable)}).catch(a=>{A.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,z.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aH)return await aG.withPropagatedContext(a.headers,()=>aG.trace(i.BaseServerSpan.handleRequest,{spanName:`${aF} ${N}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aF,"http.target":a.url}},q));await q(aH)}catch(b){throw b instanceof A.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:N,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:ay,isOnDemandRevalidate:ah})},!1,ab),b}}},9021:a=>{"use strict";a.exports=require("fs")},9121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9392:(a,b,c)=>{"use strict";c.d(b,{ReleaseDetailClient:()=>m});var d=c(8249),e=c(7484),f=c(2116),g=c.n(f),h=c(9829);let i=(0,h.createServerReference)("605d227294f7347b07f597bdeb06346b065d7cb3b4",h.callServer,void 0,h.findSourceMapURL,"updateReleaseAction"),j=(0,h.createServerReference)("60349323a40d1f889ed65a65407fd61937888631f0",h.callServer,void 0,h.findSourceMapURL,"tagFSToReleaseAction"),k=(0,h.createServerReference)("600886c75927f7162206a66e82b10253be2b657f36",h.callServer,void 0,h.findSourceMapURL,"untagFSFromReleaseAction"),l=(0,h.createServerReference)("4071ca0ec8ef4365cbe46c411cf888db8018acf2ba",h.callServer,void 0,h.findSourceMapURL,"createDefectAction");function m({release:a,taggedFS:b,availableFS:c,testRuns:f,defects:h}){let[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)([]),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)({isOpen:!1}),[w,x]=(0,e.useState)({title:"",description:"",status:"open"}),[y,z]=(0,e.useState)({titleError:!1,descriptionError:!1}),[A,B]=(0,e.useTransition)(),[C,D]=(0,e.useState)({version:a.version,name:a.name,status:a.status,notes:a.notes||""}),E={planning:{bg:"rgba(168, 85, 247, 0.1)",color:"#a855f7"},testing:{bg:"rgba(59, 130, 246, 0.1)",color:"#3b82f6"},released:{bg:"rgba(34, 197, 94, 0.1)",color:"#22c55e"}}[a.status];return(0,d.jsxs)("div",{style:{maxWidth:"1200px",margin:"0 auto",padding:"2rem"},children:[(0,d.jsx)("div",{style:{marginBottom:"1.5rem"},children:(0,d.jsx)(g(),{href:"/releases",style:{color:"var(--text-secondary)",textDecoration:"none"},children:"← Back to Releases"})}),(0,d.jsxs)("header",{style:{marginBottom:"2rem"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem"},children:[(0,d.jsxs)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:E.color},children:[" ",a.id," "]}),(0,d.jsxs)("span",{style:{fontSize:"1.25rem",fontWeight:600},children:["v",a.version]}),(0,d.jsx)("span",{className:"badge",style:{background:E.bg,color:E.color,padding:"0.5rem 1rem"},children:a.status}),(0,d.jsx)("button",{onClick:()=>n(!m),className:"btn btn-primary",style:{marginLeft:"auto"},children:m?"Cancel":"✏️ Edit"})]}),(0,d.jsx)("h1",{style:{fontSize:"2rem",fontWeight:700},children:a.name}),(0,d.jsxs)("p",{style:{color:"var(--text-secondary)"},children:["Created ",a.created_at,a.released_at&&` • Released ${a.released_at}`]})]}),m&&(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"Edit Release"}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 2fr 1fr",gap:"1rem",marginBottom:"1rem"},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Version"}),(0,d.jsx)("input",{type:"text",value:C.version,onChange:a=>D({...C,version:a.target.value}),className:"input"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Name"}),(0,d.jsx)("input",{type:"text",value:C.name,onChange:a=>D({...C,name:a.target.value}),className:"input"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Status"}),(0,d.jsxs)("select",{value:C.status,onChange:a=>D({...C,status:a.target.value}),className:"input",children:[(0,d.jsx)("option",{value:"planning",children:"Planning"}),(0,d.jsx)("option",{value:"testing",children:"Testing"}),(0,d.jsx)("option",{value:"released",children:"Released"})]})]})]}),(0,d.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,d.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Notes"}),(0,d.jsx)("textarea",{value:C.notes,onChange:a=>D({...C,notes:a.target.value}),rows:3,className:"input",style:{resize:"vertical"}})]}),(0,d.jsx)("button",{onClick:()=>{B(async()=>{await i(a.id,C),n(!1)})},className:"btn btn-primary",disabled:A,children:A?"Saving...":"Save Changes"})]}),a.notes&&!m&&(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83D\uDCDD Notes"}),(0,d.jsx)("p",{style:{color:"var(--text-secondary)",whiteSpace:"pre-wrap"},children:a.notes})]}),(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem",borderLeft:"4px solid var(--error)"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,d.jsxs)("h2",{className:"card-title",children:["\uD83D\uDEA8 Defects & Deviations (",h.length,")"]}),(0,d.jsx)("button",{className:"btn",onClick:()=>{v({isOpen:!0,testResultId:void 0,fsId:void 0,scenarioName:void 0}),x({title:"",description:"",status:"open"})},children:"+ Log Defect"})]}),0===h.length?(0,d.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No defects logged. Any failed tests must be resolved or logged as a defect."}):(0,d.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:h.map(a=>(0,d.jsxs)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px",borderLeft:"open"===a.status?"3px solid red":"3px solid green"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"0.5rem"},children:[(0,d.jsxs)("div",{style:{fontWeight:600},children:[a.id,": ",a.title]}),(0,d.jsx)("div",{className:"badge",style:{background:"open"===a.status?"rgba(239, 68, 68, 0.1)":"rgba(34, 197, 94, 0.1)",color:"open"===a.status?"var(--error)":"var(--success)"},children:a.status.toUpperCase()})]}),(0,d.jsx)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)",whiteSpace:"pre-wrap"},children:a.description}),a.test_result_id&&(0,d.jsxs)("div",{style:{marginTop:"0.5rem",fontSize:"0.75rem",color:"var(--warning)"},children:["Linked to failed test result #",a.test_result_id]})]},a.id))})]}),(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,d.jsxs)("h2",{className:"card-title",style:{margin:0},children:["⚙️ Features (",b.length,")"]}),(0,d.jsx)("button",{onClick:()=>p(!0),className:"btn",disabled:0===c.length,children:"+ Add Features"})]}),o&&(0,d.jsxs)("div",{style:{marginBottom:"1rem",padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,d.jsx)("div",{style:{marginBottom:"0.5rem",fontWeight:500},children:"Select features to add:"}),(0,d.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem",marginBottom:"1rem"},children:c.map(a=>(0,d.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"0.5rem",cursor:"pointer"},children:[(0,d.jsx)("input",{type:"checkbox",checked:q.includes(a.id),onChange:b=>{b.target.checked?r([...q,a.id]):r(q.filter(b=>b!==a.id))}}),(0,d.jsx)("code",{style:{color:"var(--warning)"},children:a.id}),(0,d.jsx)("span",{children:a.title})]},a.id))}),(0,d.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,d.jsx)("button",{onClick:()=>{p(!1),r([])},className:"btn",children:"Cancel"}),(0,d.jsx)("button",{onClick:()=>{0!==q.length&&B(async()=>{await j(a.id,q),p(!1),r([])})},className:"btn btn-primary",disabled:A||0===q.length,children:A?"Adding...":`Add ${q.length} Feature${1!==q.length?"s":""}`})]})]}),0===b.length?(0,d.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No features tagged yet. Add features to track them in this release."}):(0,d.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:b.map(b=>(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"0.75rem 1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,d.jsxs)(g(),{href:`/specs/${b.id}`,style:{flex:1,textDecoration:"none"},children:[(0,d.jsx)("code",{style:{fontWeight:600,color:"var(--warning)",marginRight:"0.75rem"},children:b.id}),(0,d.jsx)("span",{style:{color:"var(--text-primary)"},children:b.title}),(0,d.jsxs)("span",{style:{marginLeft:"0.75rem",color:"var(--text-secondary)",fontSize:"0.875rem"},children:[b.scenario_count," scenarios"]})]}),(0,d.jsx)("button",{onClick:()=>{var c;return c=b.id,void B(async()=>{await k(a.id,c)})},className:"btn",style:{padding:"0.25rem 0.5rem",fontSize:"0.75rem"},disabled:A,children:"\xd7"})]},b.id))})]}),(0,d.jsxs)("div",{className:"card",children:[(0,d.jsxs)("h2",{className:"card-title",children:["\uD83E\uDDEA Test Runs (",f.length,")"]}),0===f.length?(0,d.jsxs)("p",{style:{color:"var(--text-secondary)"},children:["No test runs yet. Import Cucumber results: ",(0,d.jsxs)("code",{children:["machine release import-results results.json -r ",a.id]})]}):(0,d.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:f.map(a=>{let b=a.total>0?a.passed/a.total*100:0,c=s===a.id;return(0,d.jsxs)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",cursor:"pointer"},onClick:()=>t(c?null:a.id),children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{fontWeight:600,marginBottom:"0.25rem"},children:[a.failed>0?"❌":"✅"," Run #",a.id," ",c?"\uD83D\uDD3D":"▶"]}),(0,d.jsxs)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)"},children:[a.run_date," • ",a.source]})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:"1rem",textAlign:"center"},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontWeight:700,color:"var(--success)"},children:a.passed}),(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Passed"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontWeight:700,color:"var(--error)"},children:a.failed}),(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Failed"})]}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{fontWeight:700,color:100===b?"var(--success)":b>=80?"var(--warning)":"var(--error)"},children:[b.toFixed(0),"%"]}),(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Pass Rate"})]})]})]}),c&&(0,d.jsx)("div",{style:{marginTop:"1rem",paddingTop:"1rem",borderTop:"1px solid var(--border)"},children:(0,d.jsx)("p",{style:{fontStyle:"italic",color:"var(--text-secondary)"},children:"Detailed results view would go here. For now, check the console logs or database for failure details."})})]},a.id)})})]}),u.isOpen&&(0,d.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0,0,0,0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:100},children:(0,d.jsxs)("div",{className:"card",style:{width:"500px",maxWidth:"90%"},children:[(0,d.jsx)("h2",{className:"card-title",children:"Log Defect / Deviation"}),(0,d.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,d.jsxs)("label",{style:{display:"block",marginBottom:"0.5rem"},children:["Title ",(0,d.jsx)("span",{style:{color:"var(--error)"},children:"*"})]}),(0,d.jsx)("input",{className:"input",value:w.title,onChange:a=>{x({...w,title:a.target.value}),a.target.value&&z(a=>({...a,titleError:!1}))},placeholder:"Defect summary",style:y.titleError?{borderColor:"var(--error)",boxShadow:"0 0 0 2px rgba(239, 68, 68, 0.2)"}:{}}),y.titleError&&(0,d.jsx)("div",{style:{color:"var(--error)",fontSize:"0.75rem",marginTop:"0.25rem"},children:"Title is required"})]}),(0,d.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,d.jsxs)("label",{style:{display:"block",marginBottom:"0.5rem"},children:["Description & Root Cause ",(0,d.jsx)("span",{style:{color:"var(--error)"},children:"*"})]}),(0,d.jsx)("textarea",{className:"input",rows:5,value:w.description,onChange:a=>{x({...w,description:a.target.value}),a.target.value&&z(a=>({...a,descriptionError:!1}))},placeholder:"Describe the failure, root cause, and why it is acceptable (if deviating) or mitigation plan.",style:y.descriptionError?{borderColor:"var(--error)",boxShadow:"0 0 0 2px rgba(239, 68, 68, 0.2)"}:{}}),y.descriptionError&&(0,d.jsx)("div",{style:{color:"var(--error)",fontSize:"0.75rem",marginTop:"0.25rem"},children:"Description is required"})]}),(0,d.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,d.jsx)("label",{style:{display:"block",marginBottom:"0.5rem"},children:"Status"}),(0,d.jsxs)("select",{className:"input",value:w.status,onChange:a=>x({...w,status:a.target.value}),children:[(0,d.jsx)("option",{value:"open",children:"Open (Needs Fix)"}),(0,d.jsx)("option",{value:"resolved",children:"Resolved (Fixed)"}),(0,d.jsx)("option",{value:"accepted",children:"Accepted (Permanent Deviation)"})]})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:"0.5rem",justifyContent:"flex-end"},children:[(0,d.jsx)("button",{className:"btn",onClick:()=>{v({isOpen:!1}),z({titleError:!1,descriptionError:!1})},children:"Cancel"}),(0,d.jsx)("button",{className:"btn btn-primary",onClick:()=>{let b=!w.title.trim(),c=!w.description.trim();b||c?z({titleError:b,descriptionError:c}):B(async()=>{try{await l({releaseId:a.id,testResultId:u.testResultId,title:w.title,description:w.description,status:w.status}),v({isOpen:!1}),x({title:"",description:"",status:"open"})}catch(a){console.error("Failed to create defect:",a),alert("Failed to create defect. Check console for details.")}})},disabled:A,children:A?"Logging...":"Log Defect"})]})]})})]})}},9575:(a,b,c)=>{"use strict";c.d(b,{ReleaseDetailClient:()=>d});let d=(0,c(7943).registerClientReference)(function(){throw Error("Attempted to call ReleaseDetailClient() from the server but ReleaseDetailClient is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/[id]/release-detail-client.tsx","ReleaseDetailClient")},9883:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"4071ca0ec8ef4365cbe46c411cf888db8018acf2ba":()=>h,"408d0995f4be7f259f70dc4565fa2a8791878e6f33":()=>d.Y7,"600886c75927f7162206a66e82b10253be2b657f36":()=>d.ct,"60349323a40d1f889ed65a65407fd61937888631f0":()=>d.Id,"60421d79d6f889176f453efe0af7b3aebd228297e1":()=>j,"605d227294f7347b07f597bdeb06346b065d7cb3b4":()=>d.Lk,"70c6d786bfba6e1562fff370b33beea1a1532cc13f":()=>i});var d=c(4494),e=c(5349),f=c(2650),g=c(8864);async function h(a){var b,c;let d,e,h,i;b={release_id:a.releaseId,test_result_id:a.testResultId,title:a.title,description:a.description,status:a.status},d=(0,g.Lf)(),e=(0,g.lg)(),h=d.query("SELECT id FROM defect").all(),i=(0,g.$C)("DEF",h.map(a=>a.id)),d.query(`
|
|
41
|
+
INSERT INTO defect (id, release_id, test_result_id, title, description, status, created_at, updated_at)
|
|
42
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
43
|
+
`).run(i,b.release_id,b.test_result_id||null,b.title,b.description,b.status||"open",e,e),(c=b.release_id,(0,g.Lf)().query(`
|
|
44
|
+
SELECT * FROM defect
|
|
45
|
+
WHERE release_id = ?
|
|
46
|
+
ORDER BY created_at DESC
|
|
47
|
+
`).all(c)).find(a=>a.id===i),(0,f.revalidatePath)(`/releases/${a.releaseId}`)}async function i(a,b,c){let d,e,h;d=(0,g.Lf)(),e=(0,g.lg)(),(h=d.query("SELECT * FROM defect WHERE id = ?").get(a))&&(d.query(`
|
|
48
|
+
UPDATE defect SET
|
|
49
|
+
title = ?, description = ?, status = ?, updated_at = ?
|
|
50
|
+
WHERE id = ?
|
|
51
|
+
`).run(c.title??h.title,c.description??h.description,c.status??h.status,e,a),d.query("SELECT * FROM defect WHERE id = ?").get(a)),(0,f.revalidatePath)(`/releases/${b}`)}async function j(a,b){(0,g.Lf)().query("DELETE FROM defect WHERE id = ?").run(a),(0,f.revalidatePath)(`/releases/${b}`)}(0,c(9337).D)([h,i,j]),(0,e.A)(h,"4071ca0ec8ef4365cbe46c411cf888db8018acf2ba",null),(0,e.A)(i,"70c6d786bfba6e1562fff370b33beea1a1532cc13f",null),(0,e.A)(j,"60421d79d6f889176f453efe0af7b3aebd228297e1",null)}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[445,471,13,390,476,135],()=>b(b.s=9018));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/releases/[id]/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/releases/[id]/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"484":{"*":{"id":"664","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"8059","name":"*","chunks":[],"async":false}},"2463":{"*":{"id":"9392","name":"*","chunks":[],"async":false}},"2716":{"*":{"id":"2386","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"1335","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"2265","name":"*","chunks":[],"async":false}},"4839":{"*":{"id":"9981","name":"*","chunks":[],"async":false}},"6161":{"*":{"id":"6981","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"4661","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"5421","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"1921","name":"*","chunks":[],"async":false}},"7708":{"*":{"id":"8593","name":"*","chunks":[],"async":false}},"8169":{"*":{"id":"3291","name":"*","chunks":[],"async":false}},"8312":{"*":{"id":"1761","name":"*","chunks":[],"async":false}},"8500":{"*":{"id":"2116","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"4342","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/app-dir/link.js":{"id":8500,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","974","static/chunks/app/page-9c9dff9c5e3ddefe.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/app-dir/link.js":{"id":8500,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","974","static/chunks/app/page-9c9dff9c5e3ddefe.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/globals.css":{"id":1743,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","177","static/chunks/app/layout-550e25f5579f1a32.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/matrix/client.tsx":{"id":2716,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/builder/builder-tabs.tsx":{"id":7708,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/releases-client.tsx":{"id":8312,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","549","static/chunks/app/releases/page-fc527101f56b36c5.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/risk-detail-client.tsx":{"id":4839,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/scenario-list.tsx":{"id":8169,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/urs-detail-client.tsx":{"id":6161,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/[id]/release-detail-client.tsx":{"id":2463,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","41","static/chunks/app/releases/%5Bid%5D/page-ea66642a6a557b42.js"],"async":false}},"entryCSSFiles":{"/Users/matthew/Code/github/p11o/machine/docs/src/":[],"/Users/matthew/Code/github/p11o/machine/docs/src/app/layout":[{"inlined":false,"path":"static/css/f29e518c867dffaa.css"}],"/Users/matthew/Code/github/p11o/machine/docs/src/app/page":[],"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/page":[],"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/[id]/page":[]},"rscModuleMapping":{"484":{"*":{"id":"8562","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"5098","name":"*","chunks":[],"async":false}},"1743":{"*":{"id":"1135","name":"*","chunks":[],"async":false}},"2463":{"*":{"id":"9575","name":"*","chunks":[],"async":false}},"2716":{"*":{"id":"7652","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"6237","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"3859","name":"*","chunks":[],"async":false}},"4839":{"*":{"id":"9665","name":"*","chunks":[],"async":false}},"6161":{"*":{"id":"7250","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"6675","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"8099","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"5547","name":"*","chunks":[],"async":false}},"7708":{"*":{"id":"1805","name":"*","chunks":[],"async":false}},"8169":{"*":{"id":"7831","name":"*","chunks":[],"async":false}},"8312":{"*":{"id":"4618","name":"*","chunks":[],"async":false}},"8500":{"*":{"id":"3318","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"7644","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{var a={};a.id=549,a.ids=[549],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},311:(a,b,c)=>{"use strict";c.d(b,{G0:()=>k,Lf:()=>j});var d=c(1787),e=c(9021),f=c(3873),g=c(1932);let h=(0,f.dirname)((0,g.fileURLToPath)("file:///Users/matthew/Code/github/p11o/machine/docs/src/lib/database/index.ts")),i=null;function j(){if(!i){let a=process.env.MACHINE_DB_PATH?process.env.MACHINE_DB_PATH:(0,f.join)(process.cwd(),"machine.db");(i=new d.Database(a,{create:!0})).exec("PRAGMA foreign_keys = ON"),function(){if(!i)return;let a=(0,f.join)(h,"schema.sql"),b=(0,e.readFileSync)(a,"utf-8");i.exec(b)}()}return i}function k(){return process.env.MACHINE_SPECS_DIR?process.env.MACHINE_SPECS_DIR:(0,f.join)(process.cwd(),"specs")}},440:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(8868);let e=async a=>[{type:"image/x-icon",sizes:"16x16",url:(0,d.fillMetadataSegment)(".",await a.params,"favicon.ico")+"?603d046c9a6fdfbb"}]},476:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1921,23)),Promise.resolve().then(c.t.bind(c,8059,23)),Promise.resolve().then(c.t.bind(c,4342,23)),Promise.resolve().then(c.t.bind(c,2265,23)),Promise.resolve().then(c.t.bind(c,5421,23)),Promise.resolve().then(c.t.bind(c,1335,23)),Promise.resolve().then(c.t.bind(c,664,23)),Promise.resolve().then(c.bind(c,4661))},619:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1921,23))},722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},1135:()=>{},1787:a=>{"use strict";a.exports=require("bun:sqlite")},1932:a=>{"use strict";a.exports=require("url")},2037:(a,b,c)=>{Promise.resolve().then(c.bind(c,
|
|
1
|
+
(()=>{var a={};a.id=549,a.ids=[549],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},311:(a,b,c)=>{"use strict";c.d(b,{G0:()=>k,Lf:()=>j});var d=c(1787),e=c(9021),f=c(3873),g=c(1932);let h=(0,f.dirname)((0,g.fileURLToPath)("file:///Users/matthew/Code/github/p11o/machine/docs/src/lib/database/index.ts")),i=null;function j(){if(!i){let a=process.env.MACHINE_DB_PATH?process.env.MACHINE_DB_PATH:(0,f.join)(process.cwd(),"machine.db");(i=new d.Database(a,{create:!0})).exec("PRAGMA foreign_keys = ON"),function(){if(!i)return;let a=(0,f.join)(h,"schema.sql"),b=(0,e.readFileSync)(a,"utf-8");i.exec(b)}()}return i}function k(){return process.env.MACHINE_SPECS_DIR?process.env.MACHINE_SPECS_DIR:(0,f.join)(process.cwd(),"specs")}},440:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(8868);let e=async a=>[{type:"image/x-icon",sizes:"16x16",url:(0,d.fillMetadataSegment)(".",await a.params,"favicon.ico")+"?603d046c9a6fdfbb"}]},476:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1921,23)),Promise.resolve().then(c.t.bind(c,8059,23)),Promise.resolve().then(c.t.bind(c,4342,23)),Promise.resolve().then(c.t.bind(c,2265,23)),Promise.resolve().then(c.t.bind(c,5421,23)),Promise.resolve().then(c.t.bind(c,1335,23)),Promise.resolve().then(c.t.bind(c,664,23)),Promise.resolve().then(c.bind(c,4661))},619:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1921,23))},722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},1135:()=>{},1761:(a,b,c)=>{"use strict";c.d(b,{ReleasesClient:()=>j});var d=c(8249),e=c(7484),f=c(2116),g=c.n(f),h=c(9829);let i=(0,h.createServerReference)("408d0995f4be7f259f70dc4565fa2a8791878e6f33",h.callServer,void 0,h.findSourceMapURL,"createReleaseAction");function j({releases:a}){let[b,c]=(0,e.useState)(!1),[f,g]=(0,e.useState)(""),[h,j]=(0,e.useState)(""),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useTransition)();return(0,d.jsxs)("div",{style:{maxWidth:"1200px",margin:"0 auto",padding:"2rem"},children:[(0,d.jsx)("header",{style:{marginBottom:"2rem"},children:(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{style:{fontSize:"2rem",fontWeight:700,marginBottom:"0.5rem"},children:"\uD83D\uDCE6 Releases"}),(0,d.jsx)("p",{style:{color:"var(--text-secondary)"},children:"Manage releases, track test execution, and compare changes"})]}),(0,d.jsx)("button",{onClick:()=>c(!0),className:"btn btn-primary",children:"+ New Release"})]})}),b&&(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"Create New Release"}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 2fr",gap:"1rem",marginBottom:"1rem"},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Version"}),(0,d.jsx)("input",{type:"text",value:f,onChange:a=>g(a.target.value),placeholder:"1.0.0",className:"input"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Name"}),(0,d.jsx)("input",{type:"text",value:h,onChange:a=>j(a.target.value),placeholder:"Initial Release",className:"input"})]})]}),(0,d.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,d.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Notes (optional)"}),(0,d.jsx)("textarea",{value:l,onChange:a=>m(a.target.value),placeholder:"Release notes...",rows:3,className:"input",style:{resize:"vertical"}})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,d.jsx)("button",{onClick:()=>c(!1),className:"btn",disabled:n,children:"Cancel"}),(0,d.jsx)("button",{onClick:()=>{o(async()=>{await i({version:f,name:h,notes:l||void 0}),c(!1),g(""),j(""),m("")})},className:"btn btn-primary",disabled:n||!f||!h,children:n?"Creating...":"Create Release"})]})]}),0===a.length?(0,d.jsxs)("div",{className:"card",style:{textAlign:"center",padding:"3rem"},children:[(0,d.jsx)("p",{style:{fontSize:"3rem",marginBottom:"1rem"},children:"\uD83D\uDCE6"}),(0,d.jsx)("h2",{style:{marginBottom:"0.5rem"},children:"No Releases Yet"}),(0,d.jsx)("p",{style:{color:"var(--text-secondary)",marginBottom:"1rem"},children:"Create your first release to start tracking features and test results."}),(0,d.jsx)("button",{onClick:()=>c(!0),className:"btn btn-primary",children:"Create First Release"})]}):(0,d.jsx)("div",{style:{display:"grid",gap:"1rem"},children:a.map(a=>(0,d.jsx)(k,{release:a},a.id))})]})}function k({release:a}){let b={planning:{bg:"rgba(168, 85, 247, 0.1)",color:"#a855f7"},testing:{bg:"rgba(59, 130, 246, 0.1)",color:"#3b82f6"},released:{bg:"rgba(34, 197, 94, 0.1)",color:"#22c55e"}}[a.status];return(0,d.jsx)(g(),{href:`/releases/${a.id}`,style:{textDecoration:"none"},children:(0,d.jsx)("div",{className:"card",style:{borderLeft:`4px solid ${b.color}`,transition:"transform 0.15s, box-shadow 0.15s",cursor:"pointer"},children:(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start"},children:[(0,d.jsxs)("div",{style:{flex:1},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem",marginBottom:"0.5rem"},children:[(0,d.jsx)("code",{style:{fontSize:"1.25rem",fontWeight:700,color:b.color},children:a.id}),(0,d.jsxs)("span",{style:{fontSize:"1rem",fontWeight:600,color:"var(--text-primary)"},children:["v",a.version]}),(0,d.jsx)("span",{className:"badge",style:{background:b.bg,color:b.color},children:a.status})]}),(0,d.jsx)("h3",{style:{fontSize:"1.125rem",fontWeight:600,marginBottom:"0.5rem",color:"var(--text-primary)"},children:a.name}),(0,d.jsxs)("p",{style:{fontSize:"0.875rem",color:"var(--text-secondary)"},children:["Created ",a.created_at,a.released_at&&` • Released ${a.released_at}`]})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:"1.5rem",textAlign:"center"},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--warning)"},children:a.fs_count}),(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Features"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--accent)"},children:a.test_runs}),(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Test Runs"})]}),null!==a.latest_pass_rate&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{fontSize:"1.5rem",fontWeight:700,color:100===a.latest_pass_rate?"var(--success)":a.latest_pass_rate>=80?"var(--warning)":"var(--error)"},children:[a.latest_pass_rate.toFixed(0),"%"]}),(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Pass Rate"})]})]})]})})})}},1787:a=>{"use strict";a.exports=require("bun:sqlite")},1932:a=>{"use strict";a.exports=require("url")},2037:(a,b,c)=>{Promise.resolve().then(c.bind(c,1761))},2332:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,5547,23)),Promise.resolve().then(c.t.bind(c,5098,23)),Promise.resolve().then(c.t.bind(c,7644,23)),Promise.resolve().then(c.t.bind(c,3859,23)),Promise.resolve().then(c.t.bind(c,8099,23)),Promise.resolve().then(c.t.bind(c,6237,23)),Promise.resolve().then(c.t.bind(c,8562,23)),Promise.resolve().then(c.t.bind(c,6675,23))},2986:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"408d0995f4be7f259f70dc4565fa2a8791878e6f33":()=>d.Y7,"600886c75927f7162206a66e82b10253be2b657f36":()=>d.ct,"60349323a40d1f889ed65a65407fd61937888631f0":()=>d.Id,"605d227294f7347b07f597bdeb06346b065d7cb3b4":()=>d.Lk});var d=c(4494)},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3144:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,2116,23))},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},3873:a=>{"use strict";a.exports=require("path")},3954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},4494:(a,b,c)=>{"use strict";c.d(b,{Y7:()=>h,Id:()=>j,ct:()=>k,Lk:()=>i});var d=c(5349),e=c(2650),f=c(8864);function g(a){return(0,f.Lf)().query("SELECT * FROM release WHERE id = ?").get(a)}async function h(a){let b,c,d,h,i,j=(b=(0,f.Lf)(),d=(c=(0,f.Lf)()).query(`
|
|
2
2
|
SELECT r.*,
|
|
3
3
|
(SELECT COUNT(*) FROM release_fs WHERE release_id = r.id) as fs_count,
|
|
4
4
|
(SELECT COUNT(*) FROM test_run WHERE release_id = r.id) as test_runs
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
`).run(b.version??c.version,b.name??c.name,b.status??c.status,e,b.notes??c.notes,a),g(a)}(a,b);return(0,e.revalidatePath)("/releases"),(0,e.revalidatePath)(`/releases/${a}`),c}async function j(a,b){for(let c of b)!function(a,b){let c=(0,f.Lf)(),d=(0,f.lg)();c.query(`
|
|
19
19
|
INSERT OR IGNORE INTO release_fs (release_id, fs_id, added_at)
|
|
20
20
|
VALUES (?, ?, ?)
|
|
21
|
-
`).run(a,b,d)}(a,c);(0,e.revalidatePath)(`/releases/${a}`)}async function k(a,b){(0,f.Lf)().query("DELETE FROM release_fs WHERE release_id = ? AND fs_id = ?").run(a,b),(0,e.revalidatePath)(`/releases/${a}`)}(0,c(9337).D)([h,i,j,k]),(0,d.A)(h,"
|
|
21
|
+
`).run(a,b,d)}(a,c);(0,e.revalidatePath)(`/releases/${a}`)}async function k(a,b){(0,f.Lf)().query("DELETE FROM release_fs WHERE release_id = ? AND fs_id = ?").run(a,b),(0,e.revalidatePath)(`/releases/${a}`)}(0,c(9337).D)([h,i,j,k]),(0,d.A)(h,"408d0995f4be7f259f70dc4565fa2a8791878e6f33",null),(0,d.A)(i,"605d227294f7347b07f597bdeb06346b065d7cb3b4",null),(0,d.A)(j,"60349323a40d1f889ed65a65407fd61937888631f0",null),(0,d.A)(k,"600886c75927f7162206a66e82b10253be2b657f36",null)},4618:(a,b,c)=>{"use strict";c.d(b,{ReleasesClient:()=>d});let d=(0,c(7943).registerClientReference)(function(){throw Error("Attempted to call ReleasesClient() from the server but ReleasesClient is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/releases-client.tsx","ReleasesClient")},4963:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,5547,23))},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},6537:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,metadata:()=>g});var d=c(5735),e=c(3059),f=c.n(e);c(1135);let g={title:"GAMP 5 Traceability",description:"V-Model Documentation & Test Management"},h=[{href:"/",label:"Dashboard",icon:"\uD83D\uDCCA"},{href:"/matrix",label:"Traceability",icon:"\uD83D\uDD17"},{href:"/releases",label:"Releases",icon:"\uD83D\uDCE6"},{href:"/guide",label:"User Guide",icon:"\uD83D\uDCD6"},{href:"/builder",label:"Builder",icon:"\uD83D\uDD28"}];function i({children:a}){return(0,d.jsx)("html",{lang:"en",children:(0,d.jsx)("body",{children:(0,d.jsxs)("div",{className:"layout",children:[(0,d.jsxs)("aside",{className:"sidebar",children:[(0,d.jsxs)("div",{className:"sidebar-header",children:[(0,d.jsx)("h1",{style:{fontSize:"1.25rem",fontWeight:700,margin:0},children:"GAMP 5"}),(0,d.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"V-Model System"})]}),(0,d.jsx)("nav",{className:"sidebar-nav",children:(0,d.jsx)("ul",{style:{listStyle:"none",padding:0,margin:0},children:h.map(a=>(0,d.jsx)("li",{children:(0,d.jsxs)(f(),{href:a.href,className:"nav-link",children:[(0,d.jsx)("span",{children:a.icon}),(0,d.jsx)("span",{children:a.label})]})},a.href))})}),(0,d.jsxs)("div",{style:{marginTop:"2rem",paddingTop:"2rem",borderTop:"1px solid var(--border)"},children:[(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"GAMP 5 Compliant"}),(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginTop:"0.25rem"},children:"21 CFR Part 11 Ready"})]})]}),(0,d.jsx)("main",{className:"main-content",children:a})]})})})}},6713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},7079:(a,b,c)=>{"use strict";c.d(b,{Cd:()=>e,U:()=>f,g5:()=>g});var d=c(311);function e(){let a=(0,d.Lf)();return a.query(`
|
|
22
22
|
SELECT r.*,
|
|
23
23
|
(SELECT COUNT(*) FROM release_fs WHERE release_id = r.id) as fs_count,
|
|
24
24
|
(SELECT COUNT(*) FROM test_run WHERE release_id = r.id) as test_runs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/releases/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/releases/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"484":{"*":{"id":"664","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"8059","name":"*","chunks":[],"async":false}},"2463":{"*":{"id":"9392","name":"*","chunks":[],"async":false}},"2716":{"*":{"id":"2386","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"1335","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"2265","name":"*","chunks":[],"async":false}},"4839":{"*":{"id":"9981","name":"*","chunks":[],"async":false}},"6161":{"*":{"id":"6981","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"4661","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"5421","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"1921","name":"*","chunks":[],"async":false}},"7708":{"*":{"id":"8593","name":"*","chunks":[],"async":false}},"8169":{"*":{"id":"3291","name":"*","chunks":[],"async":false}},"8312":{"*":{"id":"1761","name":"*","chunks":[],"async":false}},"8500":{"*":{"id":"2116","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"4342","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/app-dir/link.js":{"id":8500,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","974","static/chunks/app/page-9c9dff9c5e3ddefe.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/app-dir/link.js":{"id":8500,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","974","static/chunks/app/page-9c9dff9c5e3ddefe.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/globals.css":{"id":1743,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","177","static/chunks/app/layout-550e25f5579f1a32.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/matrix/client.tsx":{"id":2716,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/builder/builder-tabs.tsx":{"id":7708,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/releases-client.tsx":{"id":8312,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","549","static/chunks/app/releases/page-fc527101f56b36c5.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/risk-detail-client.tsx":{"id":4839,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/scenario-list.tsx":{"id":8169,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/urs-detail-client.tsx":{"id":6161,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/[id]/release-detail-client.tsx":{"id":2463,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/matthew/Code/github/p11o/machine/docs/src/":[],"/Users/matthew/Code/github/p11o/machine/docs/src/app/layout":[{"inlined":false,"path":"static/css/f29e518c867dffaa.css"}],"/Users/matthew/Code/github/p11o/machine/docs/src/app/page":[],"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/page":[]},"rscModuleMapping":{"484":{"*":{"id":"8562","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"5098","name":"*","chunks":[],"async":false}},"1743":{"*":{"id":"1135","name":"*","chunks":[],"async":false}},"2463":{"*":{"id":"9575","name":"*","chunks":[],"async":false}},"2716":{"*":{"id":"7652","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"6237","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"3859","name":"*","chunks":[],"async":false}},"4839":{"*":{"id":"9665","name":"*","chunks":[],"async":false}},"6161":{"*":{"id":"7250","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"6675","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"8099","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"5547","name":"*","chunks":[],"async":false}},"7708":{"*":{"id":"1805","name":"*","chunks":[],"async":false}},"8169":{"*":{"id":"7831","name":"*","chunks":[],"async":false}},"8312":{"*":{"id":"4618","name":"*","chunks":[],"async":false}},"8500":{"*":{"id":"3318","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"7644","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|