@nivora/matrix 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +3 -3
- 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 +11 -11
- package/.next/server/app/builder/page.js.nft.json +1 -1
- package/.next/server/app/builder/page_client-reference-manifest.js +1 -1
- package/.next/server/app/guide/page.js.nft.json +1 -1
- package/.next/server/app/guide/page_client-reference-manifest.js +1 -1
- package/.next/server/app/matrix/page.js.nft.json +1 -1
- package/.next/server/app/matrix/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/releases/[id]/page.js +16 -16
- package/.next/server/app/releases/[id]/page.js.nft.json +1 -1
- package/.next/server/app/releases/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/releases/page.js +3 -3
- package/.next/server/app/releases/page.js.nft.json +1 -1
- 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.js.nft.json +1 -1
- package/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +3 -3
- package/.next/server/chunks/135.js +1 -1
- package/.next/server/chunks/530.js +1 -1
- 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-29ef0d9ec753466c.js} +3 -3
- package/.next/static/chunks/app/releases/[id]/page-467d1893a4442eed.js +1 -0
- package/.next/static/chunks/app/releases/page-6fc2e948b934fbb5.js +1 -0
- package/.next/static/chunks/app/specs/[id]/page-b5f2c99269d194c4.js +1 -0
- package/README.md +220 -134
- package/bin/cli.js +37 -20
- package/bin/cli.ts +12 -12
- package/package.json +7 -2
- package/.next/diagnostics/build-diagnostics.json +0 -6
- package/.next/diagnostics/framework.json +0 -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/trace-build +0 -1
- package/.next/types/app/builder/page.ts +0 -86
- package/.next/types/app/guide/page.ts +0 -86
- package/.next/types/app/layout.ts +0 -86
- package/.next/types/app/matrix/page.ts +0 -86
- package/.next/types/app/page.ts +0 -86
- package/.next/types/app/releases/[id]/page.ts +0 -86
- package/.next/types/app/releases/page.ts +0 -86
- package/.next/types/app/specs/[id]/page.ts +0 -86
- package/.next/types/package.json +0 -1
- package/.next/types/routes.d.ts +0 -63
- package/.next/types/validator.ts +0 -115
- /package/.next/static/{8ZUFcYHRSRlY1FYWZ33gH → p01ytei1EF9z6WCg6Sbk1}/_buildManifest.js +0 -0
- /package/.next/static/{8ZUFcYHRSRlY1FYWZ33gH → p01ytei1EF9z6WCg6Sbk1}/_ssgManifest.js +0 -0
|
@@ -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(),"
|
|
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(),"matrix.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))},579:(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)("40390e34c6f8a0229b91e5c4921b9fb399908c7adb",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"})]})]})]})})})}},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,579))},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))},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,"40390e34c6f8a0229b91e5c4921b9fb399908c7adb",null),(0,d.A)(i,"6044f37d73f80ced74d04012a4acd2722aa0f5629c",null),(0,d.A)(j,"6087b612d8ae2f92bf9b052a68daaa99ef945e2755",null),(0,d.A)(k,"6044d053c155caff6616ff229bd75461a60befb59b",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
|
|
@@ -30,5 +30,5 @@
|
|
|
30
30
|
ORDER BY run_date DESC LIMIT 1
|
|
31
31
|
`).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(`
|
|
32
32
|
SELECT fs_id FROM release_fs WHERE release_id = ? ORDER BY added_at
|
|
33
|
-
`).all(a).map(a=>a.fs_id)}},8335:()=>{},8354:a=>{"use strict";a.exports=require("util")},8469:(a,b,c)=>{Promise.resolve().then(c.bind(c,4618))},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(),"
|
|
33
|
+
`).all(a).map(a=>a.fs_id)}},7328:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"40390e34c6f8a0229b91e5c4921b9fb399908c7adb":()=>d.Y7,"6044d053c155caff6616ff229bd75461a60befb59b":()=>d.ct,"6044f37d73f80ced74d04012a4acd2722aa0f5629c":()=>d.Lk,"6087b612d8ae2f92bf9b052a68daaa99ef945e2755":()=>d.Id});var d=c(4494)},8335:()=>{},8354:a=>{"use strict";a.exports=require("util")},8469:(a,b,c)=>{Promise.resolve().then(c.bind(c,4618))},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(),"matrix.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")}`}},8959:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h,dynamic:()=>g});var d=c(5735),e=c(7079),f=c(4618);let g="force-dynamic";function h(){let a=(0,e.Cd)();return(0,d.jsx)(f.ReleasesClient,{releases:a})}},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")},9565:(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:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,8959)),"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/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/page",pathname:"/releases",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/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}`:""}
|
|
34
34
|
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}}},9592:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,3318,23))}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[445,471,13,476],()=>b(b.s=9565));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../
|
|
1
|
+
{"version":1,"files":["../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../node_modules/next/dist/shared/lib/segment.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../package.json","../../../../specs/fs/FS-001-login.requirement","../../../../specs/fs/FS-002-session.requirement","../../../../specs/fs/FS-003-registration.requirement","../../../../specs/fs/FS-004-booking.requirement","../../../../specs/fs/FS-005-waitlist.requirement","../../../../specs/fs/FS-006-schedule.requirement","../../../../specs/fs/FS-007-instructor.requirement","../../../../specs/fs/fs-008-something.requirement","../../../../specs/fs/fs-009-bleep-bloop-thing.requirement","../../../../specs/fs/fs-010-asfdlka.requirement","../../../../src/lib/database/schema.sql","../../../package.json","../../chunks/13.js","../../chunks/445.js","../../chunks/471.js","../../chunks/476.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
|
|
@@ -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}},"2716":{"*":{"id":"2386","name":"*","chunks":[],"async":false}},"2940":{"*":{"id":"2796","name":"*","chunks":[],"async":false}},"4491":{"*":{"id":"8737","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"1335","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"2265","name":"*","chunks":[],"async":false}},"5507":{"*":{"id":"8404","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}},"8169":{"*":{"id":"3291","name":"*","chunks":[],"async":false}},"8384":{"*":{"id":"1536","name":"*","chunks":[],"async":false}},"8445":{"*":{"id":"579","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/builder/builder-tabs.tsx":{"id":4491,"name":"*","chunks":[],"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/releases/releases-client.tsx":{"id":8445,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","549","static/chunks/app/releases/page-6fc2e948b934fbb5.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/[id]/release-detail-client.tsx":{"id":2940,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/risk-detail-client.tsx":{"id":5507,"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":8384,"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}},"2716":{"*":{"id":"7652","name":"*","chunks":[],"async":false}},"2940":{"*":{"id":"9575","name":"*","chunks":[],"async":false}},"4491":{"*":{"id":"1805","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"6237","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"3859","name":"*","chunks":[],"async":false}},"5507":{"*":{"id":"9665","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}},"8169":{"*":{"id":"7831","name":"*","chunks":[],"async":false}},"8384":{"*":{"id":"7250","name":"*","chunks":[],"async":false}},"8445":{"*":{"id":"4618","name":"*","chunks":[],"async":false}},"8500":{"*":{"id":"3318","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"7644","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var a={};a.id=385,a.ids=[385],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)},696:(a,b,c)=>{"use strict";c.d(b,{URSDetailClient:()=>j});var d=c(8249),e=c(7484),f=c(2116),g=c.n(f),h=c(9829);let i=(0,h.createServerReference)("603c9bda0fbb0e0ca172cad506bef77f133f0f1640",h.callServer,void 0,h.findSourceMapURL,"updateURSAction");function j({urs:a,linkedFS:b,linkedRisks:c}){let[f,h]=(0,e.useState)(!1),[j,l]=(0,e.useTransition)(),[m,n]=(0,e.useState)({title:a.title,status:a.status,priority:a.priority,owner:a.owner,category:a.category,business_need:a.business_need,intended_use:a.intended_use,acceptance_criteria:a.acceptance_criteria}),o=a.title.includes("(Undefined)"),p=({value:a,onChange:b,multiline:c,placeholder:e})=>f?c?(0,d.jsx)("textarea",{value:a,onChange:a=>b(a.target.value),rows:4,className:"input",style:{width:"100%",resize:"vertical"}}):(0,d.jsx)("input",{type:"text",value:a,onChange:a=>b(a.target.value),className:"input",style:{width:"100%"}}):(0,d.jsx)("span",{style:{whiteSpace:"pre-wrap",color:"var(--text-secondary)",fontStyle:a?"normal":"italic"},children:a||e||"Not defined"}),q=({value:a,onChange:b,options:c})=>f?(0,d.jsx)("select",{value:a,onChange:a=>b(a.target.value),className:"input",children:c.map(a=>(0,d.jsx)("option",{value:a.value,children:a.label},a.value))}):(0,d.jsx)("span",{style:{textTransform:"capitalize"},children:a});return(0,d.jsxs)("div",{children:[(0,d.jsxs)("header",{className:"page-header",children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem",flexWrap:"wrap"},children:[(0,d.jsx)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--success)",background:"rgba(16, 185, 129, 0.1)",padding:"0.5rem 1rem",borderRadius:"8px"},children:a.id}),f?(0,d.jsx)(q,{value:m.status,onChange:a=>n({...m,status:a}),options:[{value:"draft",label:"Draft"},{value:"review",label:"Review"},{value:"approved",label:"Approved"}]}):(0,d.jsx)("span",{className:`badge ${"approved"===a.status?"badge-success":"badge-warning"}`,children:m.status}),f?(0,d.jsx)(q,{value:m.priority,onChange:a=>n({...m,priority:a}),options:[{value:"critical",label:"Critical"},{value:"high",label:"High"},{value:"medium",label:"Medium"},{value:"low",label:"Low"}]}):(0,d.jsx)("span",{className:"badge",style:{background:"var(--bg-hover)"},children:m.priority}),o&&!f&&(0,d.jsx)("span",{className:"badge",style:{background:"rgba(239, 68, 68, 0.2)",color:"var(--error)"},children:"Needs Definition"}),(0,d.jsx)("div",{style:{marginLeft:"auto",display:"flex",gap:"0.5rem"},children:f?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:()=>{n({title:a.title,status:a.status,priority:a.priority,owner:a.owner,category:a.category,business_need:a.business_need,intended_use:a.intended_use,acceptance_criteria:a.acceptance_criteria}),h(!1)},className:"btn",disabled:j,children:"Cancel"}),(0,d.jsx)("button",{onClick:()=>{l(async()=>{await i(a.id,m),h(!1)})},className:"btn btn-primary",disabled:j,children:j?"Saving...":"\uD83D\uDCBE Save"})]}):(0,d.jsx)("button",{onClick:()=>h(!0),className:"btn btn-primary",children:"✏️ Edit"})})]}),f?(0,d.jsx)("input",{type:"text",value:m.title,onChange:a=>n({...m,title:a.target.value}),className:"input",style:{fontSize:"1.5rem",fontWeight:700,width:"100%",marginBottom:"0.5rem"}}):(0,d.jsx)("h1",{className:"page-title",children:m.title}),(0,d.jsxs)("p",{className:"page-subtitle",children:["User Requirement Specification • Owner: ",f?(0,d.jsx)("input",{type:"text",value:m.owner,onChange:a=>n({...m,owner:a.target.value}),className:"input",style:{width:"200px",display:"inline-block"}}):m.owner]})]}),o&&!f&&(0,d.jsx)("div",{className:"card",style:{marginBottom:"1.5rem",background:"rgba(239, 68, 68, 0.1)",borderLeft:"4px solid var(--error)"},children:(0,d.jsxs)("p",{style:{margin:0,color:"var(--error)"},children:["⚠️ This URS was auto-created from FS references. Click ",(0,d.jsx)("strong",{children:"Edit"})," to define its details."]})}),(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83D\uDD17 Traceability"}),(0,d.jsxs)("div",{style:{display:"flex",gap:"2rem",flexWrap:"wrap"},children:[(0,d.jsx)(k,{label:"Functional Specs",count:b.length,color:"var(--warning)"}),(0,d.jsx)(k,{label:"Test Scenarios",count:b.reduce((a,b)=>a+b.scenarios.length,0),color:"var(--accent)"}),(0,d.jsx)(k,{label:"Risk Assessments",count:c.length,color:"#f97316"})]})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1.5rem"},children:[(0,d.jsxs)("div",{className:"card",children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83D\uDCCB Business Need"}),(0,d.jsx)("div",{style:{lineHeight:1.7},children:(0,d.jsx)(p,{value:m.business_need,onChange:a=>n({...m,business_need:a}),multiline:!0,placeholder:"Not defined"})})]}),(0,d.jsxs)("div",{className:"card",children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83C\uDFAF Intended Use"}),(0,d.jsx)("div",{style:{lineHeight:1.7},children:(0,d.jsx)(p,{value:m.intended_use,onChange:a=>n({...m,intended_use:a}),multiline:!0,placeholder:"Not defined"})})]})]}),(0,d.jsxs)("div",{className:"card",style:{marginTop:"1.5rem"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,d.jsx)("h2",{className:"card-title",style:{margin:0},children:"✅ Acceptance Criteria"}),f&&(0,d.jsx)("button",{onClick:()=>n({...m,acceptance_criteria:[...m.acceptance_criteria,""]}),className:"btn",style:{padding:"0.25rem 0.75rem"},children:"+ Add"})]}),0===m.acceptance_criteria.length?(0,d.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No acceptance criteria defined"}):f?(0,d.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:m.acceptance_criteria.map((a,b)=>(0,d.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,d.jsx)("input",{type:"text",value:a,onChange:a=>{let c=[...m.acceptance_criteria];c[b]=a.target.value,n({...m,acceptance_criteria:c})},className:"input",style:{flex:1},placeholder:`Criterion ${b+1}`}),(0,d.jsx)("button",{onClick:()=>n({...m,acceptance_criteria:m.acceptance_criteria.filter((a,c)=>c!==b)}),className:"btn",style:{padding:"0.5rem"},children:"\xd7"})]},b))}):(0,d.jsx)("ul",{style:{margin:0,paddingLeft:"1.5rem"},children:m.acceptance_criteria.map((a,b)=>(0,d.jsx)("li",{style:{marginBottom:"0.5rem",color:"var(--text-secondary)"},children:a},b))})]}),(0,d.jsxs)("div",{className:"card",style:{marginTop:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"⚙️ Linked Functional Specifications"}),0===b.length?(0,d.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No FS linked yet"}):(0,d.jsx)("div",{style:{display:"grid",gap:"1rem"},children:b.map(a=>(0,d.jsx)(g(),{href:`/specs/${a.id}`,style:{textDecoration:"none"},children:(0,d.jsx)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px",borderLeft:"4px solid var(--warning)"},children:(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem"},children:[(0,d.jsx)("code",{style:{fontWeight:600,color:"var(--warning)"},children:a.id}),(0,d.jsx)("span",{style:{color:"var(--text-primary)"},children:a.title}),(0,d.jsxs)("span",{className:"badge badge-success",style:{marginLeft:"auto"},children:[a.scenario_count," tests"]})]})})},a.id))})]})]})}function k({label:a,count:b,color:c}){return(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginBottom:"0.25rem"},children:a}),(0,d.jsx)("div",{style:{fontSize:"1.5rem",fontWeight:700,color:c},children:b})]})}},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")},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)},2926:(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:["specs",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,7071)),"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[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:"/specs/[id]/page",pathname:"/specs/[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="/specs/[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}`:""}
|
|
2
|
-
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}}},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")},3291:(a,b,c)=>{"use strict";c.d(b,{ScenarioList:()=>g});var d=c(8249),e=c(7484);function f({scenario:a,isHighlighted:b}){return(0,d.jsxs)("div",{style:{padding:"1rem",background:b?"rgba(96, 165, 250, 0.1)":"var(--bg-hover)",borderRadius:"8px",border:b?"2px solid var(--accent)":"1px solid var(--border)"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem",marginBottom:"0.75rem"},children:[(0,d.jsx)("span",{style:{color:"var(--accent)"},children:"\uD83E\uDDEA"}),(0,d.jsx)("span",{style:{fontWeight:600},children:a.name}),a.tags.length>0&&(0,d.jsx)("span",{style:{marginLeft:"auto",fontSize:"0.75rem",color:"var(--text-secondary)"},children:a.tags.join(" ")})]}),(0,d.jsx)("div",{style:{fontFamily:"monospace",fontSize:"0.8125rem",lineHeight:1.6},children:a.steps.map((a,b)=>{var c;return(0,d.jsx)("div",{style:{color:(c=a).startsWith("Given")?"#a78bfa":c.startsWith("When")?"#60a5fa":c.startsWith("Then")?"#34d399":"var(--text-secondary)"},children:a},b)})})]})}function g({scenarios:a,highlightScenario:b}){let c=(0,e.useRef)(null);return(0,d.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:a.map((a,e)=>{let g=b===a.name;return(0,d.jsx)("div",{ref:g?c:void 0,children:(0,d.jsx)(f,{scenario:a,isHighlighted:g})},e)})})}c(2116)},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)},5756:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,2116,23)),Promise.resolve().then(c.bind(c,6804)),Promise.resolve().then(c.bind(c,3291)),Promise.resolve().then(c.bind(c,696))},5833:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"6019bc063222ae2970a4725211376e4841d01aea8b":()=>h,"603c9bda0fbb0e0ca172cad506bef77f133f0f1640":()=>g});var d=c(5349),e=c(2650),f=c(9530);async function g(a,b){(0,f.cv)(a,b),(0,e.revalidatePath)(`/specs/${a}`),(0,e.revalidatePath)("/"),(0,e.revalidatePath)("/matrix")}async function h(a,b){(0,f.Nv)(a,b),(0,e.revalidatePath)(`/specs/${a}`),(0,e.revalidatePath)("/"),(0,e.revalidatePath)("/matrix")}(0,c(9337).D)([g,h]),(0,d.A)(g,"603c9bda0fbb0e0ca172cad506bef77f133f0f1640",null),(0,d.A)(h,"6019bc063222ae2970a4725211376e4841d01aea8b",null)},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")},6804:(a,b,c)=>{"use strict";c.d(b,{RiskDetailClient:()=>j});var d=c(8249),e=c(7484),f=c(2116),g=c.n(f),h=c(9829);let i=(0,h.createServerReference)("6019bc063222ae2970a4725211376e4841d01aea8b",h.callServer,void 0,h.findSourceMapURL,"updateRiskAction");function j({risk:a,linkedFS:b}){let[c,f]=(0,e.useState)(!1),[h,j]=(0,e.useTransition)(),[m,n]=(0,e.useState)({title:a.title,status:a.status,category:a.category,impact:a.impact,probability:a.probability,risk_level:a.risk_level,residual_risk:a.residual_risk}),o=a.title.includes("(Undefined)");return(0,d.jsxs)("div",{children:[(0,d.jsxs)("header",{className:"page-header",children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem",flexWrap:"wrap"},children:[(0,d.jsx)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:"#f97316",background:"rgba(249, 115, 22, 0.1)",padding:"0.5rem 1rem",borderRadius:"8px"},children:a.id}),c?(0,d.jsx)(({value:a,onChange:b,options:e})=>c?(0,d.jsx)("select",{value:a,onChange:a=>b(a.target.value),className:"input",children:e.map(a=>(0,d.jsx)("option",{value:a.value,children:a.label},a.value))}):(0,d.jsx)("span",{style:{textTransform:"capitalize"},children:a}),{value:m.status,onChange:a=>n({...m,status:a}),options:[{value:"draft",label:"Draft"},{value:"review",label:"Review"},{value:"approved",label:"Approved"}]}):(0,d.jsx)("span",{className:`badge ${"approved"===a.status?"badge-success":"badge-warning"}`,children:m.status}),(0,d.jsx)(l,{level:m.risk_level}),o&&!c&&(0,d.jsx)("span",{className:"badge",style:{background:"rgba(239, 68, 68, 0.2)",color:"var(--error)"},children:"Needs Definition"}),(0,d.jsx)("div",{style:{marginLeft:"auto",display:"flex",gap:"0.5rem"},children:c?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:()=>{n({title:a.title,status:a.status,category:a.category,impact:a.impact,probability:a.probability,risk_level:a.risk_level,residual_risk:a.residual_risk}),f(!1)},className:"btn",disabled:h,children:"Cancel"}),(0,d.jsx)("button",{onClick:()=>{j(async()=>{await i(a.id,m),f(!1)})},className:"btn btn-primary",disabled:h,children:h?"Saving...":"\uD83D\uDCBE Save"})]}):(0,d.jsx)("button",{onClick:()=>f(!0),className:"btn btn-primary",children:"✏️ Edit"})})]}),c?(0,d.jsx)("input",{type:"text",value:m.title,onChange:a=>n({...m,title:a.target.value}),className:"input",style:{fontSize:"1.5rem",fontWeight:700,width:"100%",marginBottom:"0.5rem"}}):(0,d.jsx)("h1",{className:"page-title",children:m.title}),(0,d.jsxs)("p",{className:"page-subtitle",children:["Risk Assessment • Category: ",c?(0,d.jsx)("input",{type:"text",value:m.category,onChange:a=>n({...m,category:a.target.value}),className:"input",style:{width:"200px",display:"inline-block"}}):m.category," • GAMP Category ",a.gamp_category]})]}),o&&!c&&(0,d.jsx)("div",{className:"card",style:{marginBottom:"1.5rem",background:"rgba(239, 68, 68, 0.1)",borderLeft:"4px solid var(--error)"},children:(0,d.jsxs)("p",{style:{margin:0,color:"var(--error)"},children:["⚠️ This Risk was auto-created from FS references. Click ",(0,d.jsx)("strong",{children:"Edit"})," to define its details."]})}),(0,d.jsx)("div",{className:"card",style:{marginBottom:"1.5rem"},children:(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"1rem"},children:[(0,d.jsx)(k,{label:"Impact",value:m.impact,isEditing:c,onChange:a=>n({...m,impact:a}),options:["low","medium","high","critical"]}),(0,d.jsx)(k,{label:"Probability",value:m.probability,isEditing:c,onChange:a=>n({...m,probability:a}),options:["low","medium","high"]}),(0,d.jsx)(k,{label:"Risk Level",value:m.risk_level,isEditing:c,onChange:a=>n({...m,risk_level:a}),options:["low","medium","high","critical"]}),(0,d.jsx)(k,{label:"Residual Risk",value:m.residual_risk,isEditing:c,onChange:a=>n({...m,residual_risk:a}),options:["acceptable","unacceptable","pending"]})]})}),(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"⚙️ Linked Functional Specifications"}),(0,d.jsx)("div",{style:{display:"flex",gap:"0.5rem",flexWrap:"wrap"},children:b.map(a=>(0,d.jsx)(g(),{href:`/specs/${a.id}`,children:(0,d.jsxs)("span",{className:"badge",style:{background:"rgba(245, 158, 11, 0.15)",color:"var(--warning)",padding:"0.5rem 1rem"},children:[a.id," - ",a.title]})},a.id))})]}),(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83D\uDD34 Identified Risks"}),0===a.risks.length?(0,d.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No risks defined yet"}):(0,d.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:a.risks.map((a,b)=>(0,d.jsxs)("div",{style:{padding:"0.75rem 1rem",background:"var(--bg-hover)",borderRadius:"6px",display:"flex",alignItems:"center",gap:"1rem"},children:[(0,d.jsx)("code",{style:{fontWeight:600,color:"#f97316"},children:a.id}),(0,d.jsx)("span",{style:{flex:1,color:"var(--text-secondary)"},children:a.description}),(0,d.jsx)(l,{level:a.impact,small:!0})]},b))})]}),(0,d.jsxs)("div",{className:"card",children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83D\uDEE1️ Mitigations"}),0===a.mitigations.length?(0,d.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No mitigations defined yet"}):(0,d.jsxs)("table",{className:"table",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{children:[(0,d.jsx)("th",{children:"Risk"}),(0,d.jsx)("th",{children:"Control"}),(0,d.jsx)("th",{children:"Test"})]})}),(0,d.jsx)("tbody",{children:a.mitigations.map((a,b)=>(0,d.jsxs)("tr",{children:[(0,d.jsx)("td",{children:(0,d.jsx)("code",{children:a.risk_id})}),(0,d.jsx)("td",{children:a.control}),(0,d.jsx)("td",{style:{color:"var(--text-secondary)"},children:a.test})]},b))})]})]})]})}function k({label:a,value:b,isEditing:c,onChange:e,options:f}){let g=m(b);return(0,d.jsxs)("div",{style:{textAlign:"center",padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginBottom:"0.25rem"},children:a}),c?(0,d.jsx)("select",{value:b,onChange:a=>e(a.target.value),className:"input",style:{width:"100%",textAlign:"center"},children:f.map(a=>(0,d.jsx)("option",{value:a,style:{textTransform:"capitalize"},children:a},a))}):(0,d.jsx)("div",{style:{fontSize:"1.25rem",fontWeight:700,color:g,textTransform:"capitalize"},children:b})]})}function l({level:a,small:b}){let c=m(a);return(0,d.jsx)("span",{className:"badge",style:{background:`${c}20`,color:c,padding:b?"0.25rem 0.5rem":"0.5rem 1rem",fontSize:b?"0.75rem":"0.875rem",textTransform:"capitalize"},children:a})}function m(a){switch(a){case"critical":case"unacceptable":return"#dc2626";case"high":return"#f97316";case"medium":case"pending":return"#eab308";case"low":case"acceptable":return"#22c55e";default:return"var(--text-secondary)"}}},7071:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>q,dynamic:()=>p});var d=c(5735),e=c(998),f=c(1970),g=c(7250);function h({urs:a}){let b=(0,e.Nn)(a.id),c=(0,e.I1)().filter(a=>b.some(b=>b.risk_ids.includes(a.id))).map(a=>({id:a.id,title:a.title}));return(0,d.jsx)(g.URSDetailClient,{urs:a,linkedFS:b,linkedRisks:c})}var i=c(3059),j=c.n(i);function k({items:a}){return(0,d.jsx)("nav",{style:{marginBottom:"1rem",fontSize:"0.875rem",color:"var(--text-secondary)"},children:a.map((b,c)=>(0,d.jsxs)("span",{children:[b.href?(0,d.jsx)(j(),{href:b.href,style:{color:"var(--accent)"},children:b.label}):(0,d.jsx)("span",{style:{color:"var(--text-primary)"},children:b.label}),c<a.length-1&&(0,d.jsx)("span",{style:{margin:"0 0.5rem"},children:"/"})]},c))})}var l=c(7831);function m({fs:a,highlightScenario:b}){let c=(0,e.I1)().filter(b=>a.risk_ids.includes(b.id));return(0,d.jsxs)("div",{children:[(0,d.jsx)(k,{items:[{label:"Specifications",href:"/specs?type=fs"},{label:a.id}]}),(0,d.jsxs)("header",{className:"page-header",children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem",flexWrap:"wrap"},children:[(0,d.jsx)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--warning)",background:"rgba(245, 158, 11, 0.1)",padding:"0.5rem 1rem",borderRadius:"8px"},children:a.id}),(0,d.jsx)("span",{className:"badge",style:{background:"var(--bg-hover)"},children:"→ OQ"}),a.urs_ids.map(a=>(0,d.jsx)(j(),{href:`/specs/${a}`,children:(0,d.jsx)("span",{className:"badge badge-success",children:a})},a)),a.risk_ids.map(a=>(0,d.jsx)(j(),{href:`/specs/${a}`,children:(0,d.jsx)("span",{className:"badge",style:{background:"rgba(249, 115, 22, 0.15)",color:"#f97316"},children:a})},a))]}),(0,d.jsx)("h1",{className:"page-title",children:a.title}),(0,d.jsxs)("p",{className:"page-subtitle",children:["Functional Specification • ",a.scenario_count," test scenarios"]})]}),(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83D\uDCC4 Description"}),(0,d.jsx)("p",{style:{whiteSpace:"pre-wrap",color:"var(--text-secondary)",lineHeight:1.7},children:a.description})]}),a.requirements.length>0&&(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83D\uDCCB Requirements"}),(0,d.jsx)("ul",{style:{margin:0,paddingLeft:"1.5rem"},children:a.requirements.map((a,b)=>(0,d.jsx)("li",{style:{marginBottom:"0.5rem",color:"var(--text-secondary)",fontFamily:"monospace"},children:a},b))})]}),(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsxs)("h2",{className:"card-title",children:["\uD83E\uDDEA Test Scenarios (",a.scenarios.length,")"]}),(0,d.jsx)(l.ScenarioList,{scenarios:a.scenarios,highlightScenario:b})]}),c.length>0&&(0,d.jsxs)("div",{className:"card",children:[(0,d.jsx)("h2",{className:"card-title",children:"⚠️ Linked Risks"}),(0,d.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:c.map(a=>(0,d.jsx)(j(),{href:`/specs/${a.id}`,style:{textDecoration:"none"},children:(0,d.jsxs)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px",borderLeft:"4px solid #f97316"},children:[(0,d.jsx)("code",{style:{fontWeight:600,color:"#f97316"},children:a.id}),(0,d.jsx)("span",{style:{marginLeft:"0.75rem",color:"var(--text-primary)"},children:a.title}),(0,d.jsxs)("span",{className:"badge",style:{marginLeft:"0.75rem",background:"rgba(249, 115, 22, 0.15)",color:"#f97316"},children:[a.risk_level," risk"]})]})},a.id))})]})]})}var n=c(9665);function o({risk:a}){let b=(0,e.x7)().filter(b=>b.risk_ids.includes(a.id));return(0,d.jsx)(n.RiskDetailClient,{risk:a,linkedFS:b})}let p="force-dynamic";async function q({params:a,searchParams:b}){let{id:c}=await a,{scenario:g}=await b,i=(0,e.Lo)(c);if(i)return(0,d.jsx)(h,{urs:i});let j=(0,e.Ey)(c);if(j)return(0,d.jsx)(m,{fs:j,highlightScenario:g});let k=(0,e.i7)(c);if(k)return(0,d.jsx)(o,{risk:k});(0,f.notFound)()}},7075:a=>{"use strict";a.exports=require("node:stream")},7250:(a,b,c)=>{"use strict";c.d(b,{URSDetailClient:()=>d});let d=(0,c(7943).registerClientReference)(function(){throw Error("Attempted to call URSDetailClient() from the server but URSDetailClient 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/specs/[id]/urs-detail-client.tsx","URSDetailClient")},7831:(a,b,c)=>{"use strict";c.d(b,{ScenarioList:()=>d});let d=(0,c(7943).registerClientReference)(function(){throw Error("Attempted to call ScenarioList() from the server but ScenarioList 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/specs/[id]/scenario-list.tsx","ScenarioList")},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)},8908:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,3318,23)),Promise.resolve().then(c.bind(c,9665)),Promise.resolve().then(c.bind(c,7831)),Promise.resolve().then(c.bind(c,7250))},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")},9665:(a,b,c)=>{"use strict";c.d(b,{RiskDetailClient:()=>d});let d=(0,c(7943).registerClientReference)(function(){throw Error("Attempted to call RiskDetailClient() from the server but RiskDetailClient 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/specs/[id]/risk-detail-client.tsx","RiskDetailClient")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[445,471,13,390,476,870,135,530],()=>b(b.s=2926));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=385,a.ids=[385],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)},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")},1455:a=>{"use strict";a.exports=require("node:fs/promises")},1536:(a,b,c)=>{"use strict";c.d(b,{URSDetailClient:()=>j});var d=c(8249),e=c(7484),f=c(2116),g=c.n(f),h=c(9829);let i=(0,h.createServerReference)("6001d939b150c0d179141b174c280871a1034e995a",h.callServer,void 0,h.findSourceMapURL,"updateURSAction");function j({urs:a,linkedFS:b,linkedRisks:c}){let[f,h]=(0,e.useState)(!1),[j,l]=(0,e.useTransition)(),[m,n]=(0,e.useState)({title:a.title,status:a.status,priority:a.priority,owner:a.owner,category:a.category,business_need:a.business_need,intended_use:a.intended_use,acceptance_criteria:a.acceptance_criteria}),o=a.title.includes("(Undefined)"),p=({value:a,onChange:b,multiline:c,placeholder:e})=>f?c?(0,d.jsx)("textarea",{value:a,onChange:a=>b(a.target.value),rows:4,className:"input",style:{width:"100%",resize:"vertical"}}):(0,d.jsx)("input",{type:"text",value:a,onChange:a=>b(a.target.value),className:"input",style:{width:"100%"}}):(0,d.jsx)("span",{style:{whiteSpace:"pre-wrap",color:"var(--text-secondary)",fontStyle:a?"normal":"italic"},children:a||e||"Not defined"}),q=({value:a,onChange:b,options:c})=>f?(0,d.jsx)("select",{value:a,onChange:a=>b(a.target.value),className:"input",children:c.map(a=>(0,d.jsx)("option",{value:a.value,children:a.label},a.value))}):(0,d.jsx)("span",{style:{textTransform:"capitalize"},children:a});return(0,d.jsxs)("div",{children:[(0,d.jsxs)("header",{className:"page-header",children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem",flexWrap:"wrap"},children:[(0,d.jsx)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--success)",background:"rgba(16, 185, 129, 0.1)",padding:"0.5rem 1rem",borderRadius:"8px"},children:a.id}),f?(0,d.jsx)(q,{value:m.status,onChange:a=>n({...m,status:a}),options:[{value:"draft",label:"Draft"},{value:"review",label:"Review"},{value:"approved",label:"Approved"}]}):(0,d.jsx)("span",{className:`badge ${"approved"===a.status?"badge-success":"badge-warning"}`,children:m.status}),f?(0,d.jsx)(q,{value:m.priority,onChange:a=>n({...m,priority:a}),options:[{value:"critical",label:"Critical"},{value:"high",label:"High"},{value:"medium",label:"Medium"},{value:"low",label:"Low"}]}):(0,d.jsx)("span",{className:"badge",style:{background:"var(--bg-hover)"},children:m.priority}),o&&!f&&(0,d.jsx)("span",{className:"badge",style:{background:"rgba(239, 68, 68, 0.2)",color:"var(--error)"},children:"Needs Definition"}),(0,d.jsx)("div",{style:{marginLeft:"auto",display:"flex",gap:"0.5rem"},children:f?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:()=>{n({title:a.title,status:a.status,priority:a.priority,owner:a.owner,category:a.category,business_need:a.business_need,intended_use:a.intended_use,acceptance_criteria:a.acceptance_criteria}),h(!1)},className:"btn",disabled:j,children:"Cancel"}),(0,d.jsx)("button",{onClick:()=>{l(async()=>{await i(a.id,m),h(!1)})},className:"btn btn-primary",disabled:j,children:j?"Saving...":"\uD83D\uDCBE Save"})]}):(0,d.jsx)("button",{onClick:()=>h(!0),className:"btn btn-primary",children:"✏️ Edit"})})]}),f?(0,d.jsx)("input",{type:"text",value:m.title,onChange:a=>n({...m,title:a.target.value}),className:"input",style:{fontSize:"1.5rem",fontWeight:700,width:"100%",marginBottom:"0.5rem"}}):(0,d.jsx)("h1",{className:"page-title",children:m.title}),(0,d.jsxs)("p",{className:"page-subtitle",children:["User Requirement Specification • Owner: ",f?(0,d.jsx)("input",{type:"text",value:m.owner,onChange:a=>n({...m,owner:a.target.value}),className:"input",style:{width:"200px",display:"inline-block"}}):m.owner]})]}),o&&!f&&(0,d.jsx)("div",{className:"card",style:{marginBottom:"1.5rem",background:"rgba(239, 68, 68, 0.1)",borderLeft:"4px solid var(--error)"},children:(0,d.jsxs)("p",{style:{margin:0,color:"var(--error)"},children:["⚠️ This URS was auto-created from FS references. Click ",(0,d.jsx)("strong",{children:"Edit"})," to define its details."]})}),(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83D\uDD17 Traceability"}),(0,d.jsxs)("div",{style:{display:"flex",gap:"2rem",flexWrap:"wrap"},children:[(0,d.jsx)(k,{label:"Functional Specs",count:b.length,color:"var(--warning)"}),(0,d.jsx)(k,{label:"Test Scenarios",count:b.reduce((a,b)=>a+b.scenarios.length,0),color:"var(--accent)"}),(0,d.jsx)(k,{label:"Risk Assessments",count:c.length,color:"#f97316"})]})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1.5rem"},children:[(0,d.jsxs)("div",{className:"card",children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83D\uDCCB Business Need"}),(0,d.jsx)("div",{style:{lineHeight:1.7},children:(0,d.jsx)(p,{value:m.business_need,onChange:a=>n({...m,business_need:a}),multiline:!0,placeholder:"Not defined"})})]}),(0,d.jsxs)("div",{className:"card",children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83C\uDFAF Intended Use"}),(0,d.jsx)("div",{style:{lineHeight:1.7},children:(0,d.jsx)(p,{value:m.intended_use,onChange:a=>n({...m,intended_use:a}),multiline:!0,placeholder:"Not defined"})})]})]}),(0,d.jsxs)("div",{className:"card",style:{marginTop:"1.5rem"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,d.jsx)("h2",{className:"card-title",style:{margin:0},children:"✅ Acceptance Criteria"}),f&&(0,d.jsx)("button",{onClick:()=>n({...m,acceptance_criteria:[...m.acceptance_criteria,""]}),className:"btn",style:{padding:"0.25rem 0.75rem"},children:"+ Add"})]}),0===m.acceptance_criteria.length?(0,d.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No acceptance criteria defined"}):f?(0,d.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:m.acceptance_criteria.map((a,b)=>(0,d.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,d.jsx)("input",{type:"text",value:a,onChange:a=>{let c=[...m.acceptance_criteria];c[b]=a.target.value,n({...m,acceptance_criteria:c})},className:"input",style:{flex:1},placeholder:`Criterion ${b+1}`}),(0,d.jsx)("button",{onClick:()=>n({...m,acceptance_criteria:m.acceptance_criteria.filter((a,c)=>c!==b)}),className:"btn",style:{padding:"0.5rem"},children:"\xd7"})]},b))}):(0,d.jsx)("ul",{style:{margin:0,paddingLeft:"1.5rem"},children:m.acceptance_criteria.map((a,b)=>(0,d.jsx)("li",{style:{marginBottom:"0.5rem",color:"var(--text-secondary)"},children:a},b))})]}),(0,d.jsxs)("div",{className:"card",style:{marginTop:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"⚙️ Linked Functional Specifications"}),0===b.length?(0,d.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No FS linked yet"}):(0,d.jsx)("div",{style:{display:"grid",gap:"1rem"},children:b.map(a=>(0,d.jsx)(g(),{href:`/specs/${a.id}`,style:{textDecoration:"none"},children:(0,d.jsx)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px",borderLeft:"4px solid var(--warning)"},children:(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem"},children:[(0,d.jsx)("code",{style:{fontWeight:600,color:"var(--warning)"},children:a.id}),(0,d.jsx)("span",{style:{color:"var(--text-primary)"},children:a.title}),(0,d.jsxs)("span",{className:"badge badge-success",style:{marginLeft:"auto"},children:[a.scenario_count," tests"]})]})})},a.id))})]})]})}function k({label:a,count:b,color:c}){return(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginBottom:"0.25rem"},children:a}),(0,d.jsx)("div",{style:{fontSize:"1.5rem",fontWeight:700,color:c},children:b})]})}},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)},2926:(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:["specs",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,7071)),"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[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:"/specs/[id]/page",pathname:"/specs/[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="/specs/[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}`:""}
|
|
2
|
+
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}}},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")},3291:(a,b,c)=>{"use strict";c.d(b,{ScenarioList:()=>g});var d=c(8249),e=c(7484);function f({scenario:a,isHighlighted:b}){return(0,d.jsxs)("div",{style:{padding:"1rem",background:b?"rgba(96, 165, 250, 0.1)":"var(--bg-hover)",borderRadius:"8px",border:b?"2px solid var(--accent)":"1px solid var(--border)"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem",marginBottom:"0.75rem"},children:[(0,d.jsx)("span",{style:{color:"var(--accent)"},children:"\uD83E\uDDEA"}),(0,d.jsx)("span",{style:{fontWeight:600},children:a.name}),a.tags.length>0&&(0,d.jsx)("span",{style:{marginLeft:"auto",fontSize:"0.75rem",color:"var(--text-secondary)"},children:a.tags.join(" ")})]}),(0,d.jsx)("div",{style:{fontFamily:"monospace",fontSize:"0.8125rem",lineHeight:1.6},children:a.steps.map((a,b)=>{var c;return(0,d.jsx)("div",{style:{color:(c=a).startsWith("Given")?"#a78bfa":c.startsWith("When")?"#60a5fa":c.startsWith("Then")?"#34d399":"var(--text-secondary)"},children:a},b)})})]})}function g({scenarios:a,highlightScenario:b}){let c=(0,e.useRef)(null);return(0,d.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:a.map((a,e)=>{let g=b===a.name;return(0,d.jsx)("div",{ref:g?c:void 0,children:(0,d.jsx)(f,{scenario:a,isHighlighted:g})},e)})})}c(2116)},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)},5756:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,2116,23)),Promise.resolve().then(c.bind(c,8404)),Promise.resolve().then(c.bind(c,3291)),Promise.resolve().then(c.bind(c,1536))},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")},7071:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>q,dynamic:()=>p});var d=c(5735),e=c(998),f=c(1970),g=c(7250);function h({urs:a}){let b=(0,e.Nn)(a.id),c=(0,e.I1)().filter(a=>b.some(b=>b.risk_ids.includes(a.id))).map(a=>({id:a.id,title:a.title}));return(0,d.jsx)(g.URSDetailClient,{urs:a,linkedFS:b,linkedRisks:c})}var i=c(3059),j=c.n(i);function k({items:a}){return(0,d.jsx)("nav",{style:{marginBottom:"1rem",fontSize:"0.875rem",color:"var(--text-secondary)"},children:a.map((b,c)=>(0,d.jsxs)("span",{children:[b.href?(0,d.jsx)(j(),{href:b.href,style:{color:"var(--accent)"},children:b.label}):(0,d.jsx)("span",{style:{color:"var(--text-primary)"},children:b.label}),c<a.length-1&&(0,d.jsx)("span",{style:{margin:"0 0.5rem"},children:"/"})]},c))})}var l=c(7831);function m({fs:a,highlightScenario:b}){let c=(0,e.I1)().filter(b=>a.risk_ids.includes(b.id));return(0,d.jsxs)("div",{children:[(0,d.jsx)(k,{items:[{label:"Specifications",href:"/specs?type=fs"},{label:a.id}]}),(0,d.jsxs)("header",{className:"page-header",children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem",flexWrap:"wrap"},children:[(0,d.jsx)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--warning)",background:"rgba(245, 158, 11, 0.1)",padding:"0.5rem 1rem",borderRadius:"8px"},children:a.id}),(0,d.jsx)("span",{className:"badge",style:{background:"var(--bg-hover)"},children:"→ OQ"}),a.urs_ids.map(a=>(0,d.jsx)(j(),{href:`/specs/${a}`,children:(0,d.jsx)("span",{className:"badge badge-success",children:a})},a)),a.risk_ids.map(a=>(0,d.jsx)(j(),{href:`/specs/${a}`,children:(0,d.jsx)("span",{className:"badge",style:{background:"rgba(249, 115, 22, 0.15)",color:"#f97316"},children:a})},a))]}),(0,d.jsx)("h1",{className:"page-title",children:a.title}),(0,d.jsxs)("p",{className:"page-subtitle",children:["Functional Specification • ",a.scenario_count," test scenarios"]})]}),(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83D\uDCC4 Description"}),(0,d.jsx)("p",{style:{whiteSpace:"pre-wrap",color:"var(--text-secondary)",lineHeight:1.7},children:a.description})]}),a.requirements.length>0&&(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83D\uDCCB Requirements"}),(0,d.jsx)("ul",{style:{margin:0,paddingLeft:"1.5rem"},children:a.requirements.map((a,b)=>(0,d.jsx)("li",{style:{marginBottom:"0.5rem",color:"var(--text-secondary)",fontFamily:"monospace"},children:a},b))})]}),(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsxs)("h2",{className:"card-title",children:["\uD83E\uDDEA Test Scenarios (",a.scenarios.length,")"]}),(0,d.jsx)(l.ScenarioList,{scenarios:a.scenarios,highlightScenario:b})]}),c.length>0&&(0,d.jsxs)("div",{className:"card",children:[(0,d.jsx)("h2",{className:"card-title",children:"⚠️ Linked Risks"}),(0,d.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:c.map(a=>(0,d.jsx)(j(),{href:`/specs/${a.id}`,style:{textDecoration:"none"},children:(0,d.jsxs)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px",borderLeft:"4px solid #f97316"},children:[(0,d.jsx)("code",{style:{fontWeight:600,color:"#f97316"},children:a.id}),(0,d.jsx)("span",{style:{marginLeft:"0.75rem",color:"var(--text-primary)"},children:a.title}),(0,d.jsxs)("span",{className:"badge",style:{marginLeft:"0.75rem",background:"rgba(249, 115, 22, 0.15)",color:"#f97316"},children:[a.risk_level," risk"]})]})},a.id))})]})]})}var n=c(9665);function o({risk:a}){let b=(0,e.x7)().filter(b=>b.risk_ids.includes(a.id));return(0,d.jsx)(n.RiskDetailClient,{risk:a,linkedFS:b})}let p="force-dynamic";async function q({params:a,searchParams:b}){let{id:c}=await a,{scenario:g}=await b,i=(0,e.Lo)(c);if(i)return(0,d.jsx)(h,{urs:i});let j=(0,e.Ey)(c);if(j)return(0,d.jsx)(m,{fs:j,highlightScenario:g});let k=(0,e.i7)(c);if(k)return(0,d.jsx)(o,{risk:k});(0,f.notFound)()}},7075:a=>{"use strict";a.exports=require("node:stream")},7250:(a,b,c)=>{"use strict";c.d(b,{URSDetailClient:()=>d});let d=(0,c(7943).registerClientReference)(function(){throw Error("Attempted to call URSDetailClient() from the server but URSDetailClient 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/specs/[id]/urs-detail-client.tsx","URSDetailClient")},7831:(a,b,c)=>{"use strict";c.d(b,{ScenarioList:()=>d});let d=(0,c(7943).registerClientReference)(function(){throw Error("Attempted to call ScenarioList() from the server but ScenarioList 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/specs/[id]/scenario-list.tsx","ScenarioList")},8354:a=>{"use strict";a.exports=require("util")},8404:(a,b,c)=>{"use strict";c.d(b,{RiskDetailClient:()=>j});var d=c(8249),e=c(7484),f=c(2116),g=c.n(f),h=c(9829);let i=(0,h.createServerReference)("6006b5147757be7ff44bdbd037afdf883ea34b681c",h.callServer,void 0,h.findSourceMapURL,"updateRiskAction");function j({risk:a,linkedFS:b}){let[c,f]=(0,e.useState)(!1),[h,j]=(0,e.useTransition)(),[m,n]=(0,e.useState)({title:a.title,status:a.status,category:a.category,impact:a.impact,probability:a.probability,risk_level:a.risk_level,residual_risk:a.residual_risk}),o=a.title.includes("(Undefined)");return(0,d.jsxs)("div",{children:[(0,d.jsxs)("header",{className:"page-header",children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem",flexWrap:"wrap"},children:[(0,d.jsx)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:"#f97316",background:"rgba(249, 115, 22, 0.1)",padding:"0.5rem 1rem",borderRadius:"8px"},children:a.id}),c?(0,d.jsx)(({value:a,onChange:b,options:e})=>c?(0,d.jsx)("select",{value:a,onChange:a=>b(a.target.value),className:"input",children:e.map(a=>(0,d.jsx)("option",{value:a.value,children:a.label},a.value))}):(0,d.jsx)("span",{style:{textTransform:"capitalize"},children:a}),{value:m.status,onChange:a=>n({...m,status:a}),options:[{value:"draft",label:"Draft"},{value:"review",label:"Review"},{value:"approved",label:"Approved"}]}):(0,d.jsx)("span",{className:`badge ${"approved"===a.status?"badge-success":"badge-warning"}`,children:m.status}),(0,d.jsx)(l,{level:m.risk_level}),o&&!c&&(0,d.jsx)("span",{className:"badge",style:{background:"rgba(239, 68, 68, 0.2)",color:"var(--error)"},children:"Needs Definition"}),(0,d.jsx)("div",{style:{marginLeft:"auto",display:"flex",gap:"0.5rem"},children:c?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:()=>{n({title:a.title,status:a.status,category:a.category,impact:a.impact,probability:a.probability,risk_level:a.risk_level,residual_risk:a.residual_risk}),f(!1)},className:"btn",disabled:h,children:"Cancel"}),(0,d.jsx)("button",{onClick:()=>{j(async()=>{await i(a.id,m),f(!1)})},className:"btn btn-primary",disabled:h,children:h?"Saving...":"\uD83D\uDCBE Save"})]}):(0,d.jsx)("button",{onClick:()=>f(!0),className:"btn btn-primary",children:"✏️ Edit"})})]}),c?(0,d.jsx)("input",{type:"text",value:m.title,onChange:a=>n({...m,title:a.target.value}),className:"input",style:{fontSize:"1.5rem",fontWeight:700,width:"100%",marginBottom:"0.5rem"}}):(0,d.jsx)("h1",{className:"page-title",children:m.title}),(0,d.jsxs)("p",{className:"page-subtitle",children:["Risk Assessment • Category: ",c?(0,d.jsx)("input",{type:"text",value:m.category,onChange:a=>n({...m,category:a.target.value}),className:"input",style:{width:"200px",display:"inline-block"}}):m.category," • GAMP Category ",a.gamp_category]})]}),o&&!c&&(0,d.jsx)("div",{className:"card",style:{marginBottom:"1.5rem",background:"rgba(239, 68, 68, 0.1)",borderLeft:"4px solid var(--error)"},children:(0,d.jsxs)("p",{style:{margin:0,color:"var(--error)"},children:["⚠️ This Risk was auto-created from FS references. Click ",(0,d.jsx)("strong",{children:"Edit"})," to define its details."]})}),(0,d.jsx)("div",{className:"card",style:{marginBottom:"1.5rem"},children:(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"1rem"},children:[(0,d.jsx)(k,{label:"Impact",value:m.impact,isEditing:c,onChange:a=>n({...m,impact:a}),options:["low","medium","high","critical"]}),(0,d.jsx)(k,{label:"Probability",value:m.probability,isEditing:c,onChange:a=>n({...m,probability:a}),options:["low","medium","high"]}),(0,d.jsx)(k,{label:"Risk Level",value:m.risk_level,isEditing:c,onChange:a=>n({...m,risk_level:a}),options:["low","medium","high","critical"]}),(0,d.jsx)(k,{label:"Residual Risk",value:m.residual_risk,isEditing:c,onChange:a=>n({...m,residual_risk:a}),options:["acceptable","unacceptable","pending"]})]})}),(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"⚙️ Linked Functional Specifications"}),(0,d.jsx)("div",{style:{display:"flex",gap:"0.5rem",flexWrap:"wrap"},children:b.map(a=>(0,d.jsx)(g(),{href:`/specs/${a.id}`,children:(0,d.jsxs)("span",{className:"badge",style:{background:"rgba(245, 158, 11, 0.15)",color:"var(--warning)",padding:"0.5rem 1rem"},children:[a.id," - ",a.title]})},a.id))})]}),(0,d.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83D\uDD34 Identified Risks"}),0===a.risks.length?(0,d.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No risks defined yet"}):(0,d.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:a.risks.map((a,b)=>(0,d.jsxs)("div",{style:{padding:"0.75rem 1rem",background:"var(--bg-hover)",borderRadius:"6px",display:"flex",alignItems:"center",gap:"1rem"},children:[(0,d.jsx)("code",{style:{fontWeight:600,color:"#f97316"},children:a.id}),(0,d.jsx)("span",{style:{flex:1,color:"var(--text-secondary)"},children:a.description}),(0,d.jsx)(l,{level:a.impact,small:!0})]},b))})]}),(0,d.jsxs)("div",{className:"card",children:[(0,d.jsx)("h2",{className:"card-title",children:"\uD83D\uDEE1️ Mitigations"}),0===a.mitigations.length?(0,d.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No mitigations defined yet"}):(0,d.jsxs)("table",{className:"table",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{children:[(0,d.jsx)("th",{children:"Risk"}),(0,d.jsx)("th",{children:"Control"}),(0,d.jsx)("th",{children:"Test"})]})}),(0,d.jsx)("tbody",{children:a.mitigations.map((a,b)=>(0,d.jsxs)("tr",{children:[(0,d.jsx)("td",{children:(0,d.jsx)("code",{children:a.risk_id})}),(0,d.jsx)("td",{children:a.control}),(0,d.jsx)("td",{style:{color:"var(--text-secondary)"},children:a.test})]},b))})]})]})]})}function k({label:a,value:b,isEditing:c,onChange:e,options:f}){let g=m(b);return(0,d.jsxs)("div",{style:{textAlign:"center",padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,d.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginBottom:"0.25rem"},children:a}),c?(0,d.jsx)("select",{value:b,onChange:a=>e(a.target.value),className:"input",style:{width:"100%",textAlign:"center"},children:f.map(a=>(0,d.jsx)("option",{value:a,style:{textTransform:"capitalize"},children:a},a))}):(0,d.jsx)("div",{style:{fontSize:"1.25rem",fontWeight:700,color:g,textTransform:"capitalize"},children:b})]})}function l({level:a,small:b}){let c=m(a);return(0,d.jsx)("span",{className:"badge",style:{background:`${c}20`,color:c,padding:b?"0.25rem 0.5rem":"0.5rem 1rem",fontSize:b?"0.75rem":"0.875rem",textTransform:"capitalize"},children:a})}function m(a){switch(a){case"critical":case"unacceptable":return"#dc2626";case"high":return"#f97316";case"medium":case"pending":return"#eab308";case"low":case"acceptable":return"#22c55e";default:return"var(--text-secondary)"}}},8428:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"6001d939b150c0d179141b174c280871a1034e995a":()=>g,"6006b5147757be7ff44bdbd037afdf883ea34b681c":()=>h});var d=c(5349),e=c(2650),f=c(9530);async function g(a,b){(0,f.cv)(a,b),(0,e.revalidatePath)(`/specs/${a}`),(0,e.revalidatePath)("/"),(0,e.revalidatePath)("/matrix")}async function h(a,b){(0,f.Nv)(a,b),(0,e.revalidatePath)(`/specs/${a}`),(0,e.revalidatePath)("/"),(0,e.revalidatePath)("/matrix")}(0,c(9337).D)([g,h]),(0,d.A)(g,"6001d939b150c0d179141b174c280871a1034e995a",null),(0,d.A)(h,"6006b5147757be7ff44bdbd037afdf883ea34b681c",null)},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)},8908:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,3318,23)),Promise.resolve().then(c.bind(c,9665)),Promise.resolve().then(c.bind(c,7831)),Promise.resolve().then(c.bind(c,7250))},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")},9665:(a,b,c)=>{"use strict";c.d(b,{RiskDetailClient:()=>d});let d=(0,c(7943).registerClientReference)(function(){throw Error("Attempted to call RiskDetailClient() from the server but RiskDetailClient 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/specs/[id]/risk-detail-client.tsx","RiskDetailClient")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[445,471,13,390,476,870,135,530],()=>b(b.s=2926));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../
|
|
1
|
+
{"version":1,"files":["../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../../specs/fs/FS-001-login.requirement","../../../../../specs/fs/FS-002-session.requirement","../../../../../specs/fs/FS-003-registration.requirement","../../../../../specs/fs/FS-004-booking.requirement","../../../../../specs/fs/FS-005-waitlist.requirement","../../../../../specs/fs/FS-006-schedule.requirement","../../../../../specs/fs/FS-007-instructor.requirement","../../../../../specs/fs/fs-008-something.requirement","../../../../../specs/fs/fs-009-bleep-bloop-thing.requirement","../../../../../specs/fs/fs-010-asfdlka.requirement","../../../../../src/lib/database/schema.sql","../../../../package.json","../../../chunks/13.js","../../../chunks/135.js","../../../chunks/390.js","../../../chunks/445.js","../../../chunks/471.js","../../../chunks/476.js","../../../chunks/530.js","../../../chunks/870.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
|