trybeacon 0.1.7 → 0.1.8
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 +16 -16
- 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 +1 -1
- 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 +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- 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 +2 -2
- package/.next/server/app/api/code-graph/route.js +1 -1
- package/.next/server/app/api/code-graph/route.js.nft.json +1 -1
- package/.next/server/app/api/context/feature/route.js +1 -1
- package/.next/server/app/api/context/feature/route.js.nft.json +1 -1
- package/.next/server/app/api/context/file/route.js +1 -1
- package/.next/server/app/api/context/file/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/activate/route.js +1 -1
- package/.next/server/app/api/workspace/activate/route.js.nft.json +1 -1
- package/.next/server/app/apple-icon.png/route.js +1 -1
- package/.next/server/app/apple-icon.png/route.js.nft.json +1 -1
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +3 -3
- package/.next/server/app/docs.segments/_full.segment.rsc +3 -3
- package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/docs.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
- package/.next/server/app/feedback/page_client-reference-manifest.js +1 -1
- package/.next/server/app/feedback.html +1 -1
- package/.next/server/app/feedback.rsc +2 -2
- package/.next/server/app/feedback.segments/_full.segment.rsc +2 -2
- package/.next/server/app/feedback.segments/_head.segment.rsc +1 -1
- package/.next/server/app/feedback.segments/_index.segment.rsc +2 -2
- package/.next/server/app/feedback.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/feedback.segments/feedback/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/feedback.segments/feedback.segment.rsc +1 -1
- package/.next/server/app/help/page_client-reference-manifest.js +1 -1
- package/.next/server/app/help.html +1 -1
- package/.next/server/app/help.rsc +19 -20
- package/.next/server/app/help.segments/_full.segment.rsc +19 -20
- package/.next/server/app/help.segments/_head.segment.rsc +1 -1
- package/.next/server/app/help.segments/_index.segment.rsc +2 -2
- package/.next/server/app/help.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/help.segments/help.segment.rsc +1 -1
- package/.next/server/app/icon.svg/route.js +1 -1
- package/.next/server/app/icon.svg/route.js.nft.json +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/map/page.js +2 -2
- package/.next/server/app/map/page.js.nft.json +1 -1
- package/.next/server/app/map/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/plan/page.js +2 -2
- package/.next/server/app/plan/page.js.nft.json +1 -1
- package/.next/server/app/plan/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +16 -16
- package/.next/server/chunks/1130.js +1 -1
- package/.next/server/chunks/1172.js +1 -0
- package/.next/server/chunks/1813.js +1 -0
- package/.next/server/chunks/{299.js → 29.js} +2 -2
- package/.next/server/chunks/2933.js +2 -2
- package/.next/server/chunks/3777.js +1 -0
- package/.next/server/chunks/4490.js +1 -1
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/8319-67498a0aab3f714f.js +1 -0
- package/.next/static/chunks/8811-57b200845c2e1f2d.js +1 -0
- package/.next/static/chunks/app/map/{page-a0095fd5d001a673.js → page-7c6a7f7b53bcc669.js} +1 -1
- package/.next/static/chunks/app/page-ccb55081f850db63.js +1 -0
- package/.next/static/chunks/app/plan/{page-ba750d6f084811fa.js → page-d281cb104d352713.js} +1 -1
- package/.next/static/css/c1d125c7e7e0530c.css +1 -0
- package/.next/static/css/e63457bec0b3ee27.css +1 -0
- package/.next/trace +37 -37
- package/.next/trace-build +1 -1
- package/package.json +1 -1
- package/.next/server/chunks/1093.js +0 -1
- package/.next/server/chunks/3530.js +0 -1
- package/.next/server/chunks/5592.js +0 -1
- package/.next/server/chunks/814.js +0 -1
- package/.next/static/chunks/598-236d8c7f0c45d79c.js +0 -1
- package/.next/static/chunks/6946-4322e809b92dc543.js +0 -1
- package/.next/static/chunks/app/page-e0a78bc449569419.js +0 -1
- package/.next/static/css/5f11ad1787eeef64.css +0 -1
- package/.next/static/css/fb92764fca78149e.css +0 -1
- /package/.next/static/{xrzeVVXRkKHe2ydUkBd70 → vkXAuKrDgeKgSM-4XYCAy}/_buildManifest.js +0 -0
- /package/.next/static/{xrzeVVXRkKHe2ydUkBd70 → vkXAuKrDgeKgSM-4XYCAy}/_ssgManifest.js +0 -0
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-webpack","duration":
|
|
1
|
+
[{"name":"run-webpack","duration":6489680,"timestamp":228907402972,"id":14,"parentId":1,"tags":{},"startTime":1781043627444,"traceId":"fecabe74cbc0b06a"},{"name":"run-typescript","duration":3075620,"timestamp":228913894020,"id":3861,"parentId":1,"tags":{},"startTime":1781043633935,"traceId":"fecabe74cbc0b06a"},{"name":"static-check","duration":298286,"timestamp":228916977384,"id":3864,"parentId":1,"tags":{},"startTime":1781043637019,"traceId":"fecabe74cbc0b06a"},{"name":"static-generation","duration":949462,"timestamp":228917616788,"id":3992,"parentId":1,"tags":{},"startTime":1781043637658,"traceId":"fecabe74cbc0b06a"},{"name":"collect-build-traces","duration":3273438,"timestamp":228917276874,"id":3989,"parentId":1,"tags":{},"startTime":1781043637318,"traceId":"fecabe74cbc0b06a"},{"name":"telemetry-flush","duration":17,"timestamp":228920551797,"id":4001,"parentId":1,"tags":{},"startTime":1781043640593,"traceId":"fecabe74cbc0b06a"},{"name":"next-build","duration":13258473,"timestamp":228907293344,"id":1,"tags":{"buildMode":"default","version":"16.2.7","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1781043627334,"traceId":"fecabe74cbc0b06a"}]
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=1093,exports.ids=[1093],exports.modules={526:(a,b,c)=>{},1110:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{HQ:()=>n,Oz:()=>o,cl:()=>s,hY:()=>q,hg:()=>r,pJ:()=>t,t3:()=>p});var e=c(95349),f=c(42650),g=c(39321),h=c(62896),i=c(22443),j=c(3173),k=c(89337),l=a([h,j]);function m(){(0,f.revalidatePath)("/map")}async function n(a){let b=await (0,j.RM)(a);return m(),b}async function o(a,b){let c=await (0,j.OK)(a,b);return m(),c}async function p(a,b){let c=await (0,j.Pj)(a,b);return m(),c}async function q(a){let b=await (0,j.Vp)(a);return m(),b}async function r(a){let b=await (0,j.x$)(a);return m(),b}async function s(a){await (0,j.AC)(a),m()}async function t(a){await h.db.update(i.node).set({source:"MANUAL"}).where((0,g.eq)(i.node.id,a)),m()}[h,j]=l.then?(await l)():l,(0,k.D)([n,o,p,q,r,s,t]),(0,e.A)(n,"4047be9d60c39b71640c17baf01766da4b01e19a20",null),(0,e.A)(o,"60849703cb65183eec81568fa7043918ad8064ae5a",null),(0,e.A)(p,"600fbebf33fe8d678629a57af10471a43e37cc1e6c",null),(0,e.A)(q,"40fd218163d8863e9cd51db63185ef7d7a8e3f0303",null),(0,e.A)(r,"40c10e8f9941f27ba33e2649e916484450fbca7cc3",null),(0,e.A)(s,"406bb7ec685c62215570152097a3704416e332d7ad",null),(0,e.A)(t,"40c7085bde64e63507cb24974d90cc994450b66334",null),d()}catch(a){d(a)}})},2367:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(62896);c(22443);var e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},2942:(a,b,c)=>{c.d(b,{F8:()=>s,NG:()=>o,QH:()=>p,Vq:()=>r,aM:()=>v,cV:()=>x,kz:()=>u,n$:()=>m,pO:()=>g,vB:()=>t});var d=c(48249),e=c(67484),f=c(33191);function g({markdown:a,className:b,variant:c="reading"}){let h=(0,e.useMemo)(()=>m(a),[a]),i="reading"===c;return(0,d.jsx)("div",{className:(0,f.cn)("min-w-0 [overflow-wrap:anywhere]",i?"mx-auto w-full max-w-[66ch] space-y-4 text-[15px] leading-[1.6]":"space-y-3.5 text-[13px] leading-relaxed",b),children:h.map((a,b)=>(0,d.jsx)(w,{block:a,variant:c},b))})}function h(a){let b=a.trim();return b.includes("|")&&b.includes("-")&&/^[\s|:-]+$/.test(b)}function i(a){return""!==a.trim()&&a.includes("|")}function j(a){let b=a.trim();return b.startsWith("|")&&(b=b.slice(1)),b.endsWith("|")&&(b=b.slice(0,-1)),b.split("|").map(a=>a.trim())}function k(a){let b=a.trim(),c=b.startsWith(":"),d=b.endsWith(":");return c&&d?"center":d?"right":c?"left":null}let l=/^\s*```[^\s`]*\s*$/;function m(a){let b=a.split("\n"),c=[],d=[],e=()=>{d.length&&(c.push({kind:"p",text:d.join("\n")}),d=[])},f=null,g=()=>{null!==f&&(c.push({kind:"quote",text:f.join("\n")}),f=null)},m=a=>Math.min(6,Math.floor(a.length/2)),n=null,o=null;for(let a=0;a<b.length;a++){let p=b[a];if(null!==n){l.test(p)?(c.push({kind:"code",text:n.join("\n")}),n=null):n.push(p);continue}let q=p.match(/^>\s?(.*)$/);if(q){e(),o=null,(f??=[]).push(q[1]);continue}if(g(),l.test(p)){e(),o=null,n=[];continue}if(/^\s*$/.test(p)){e(),o=null;continue}let r=p.match(/^#### +(.+)$/);if(r){e(),o=null,c.push({kind:"h4",text:r[1]});continue}let s=p.match(/^### +(.+)$/);if(s){e(),o=null,c.push({kind:"h3",text:s[1]});continue}let t=p.match(/^## +(.+)$/);if(t){e(),o=null,c.push({kind:"h2",text:t[1]});continue}let u=p.match(/^# +(.+)$/);if(u){e(),o=null,c.push({kind:"h1",text:u[1]});continue}if(i(p)&&a+1<b.length&&h(b[a+1])){e(),o=null;let d=[j(p)],f=j(b[a+1]).map(k),g=a+2;for(;g<b.length&&i(b[g])&&!h(b[g]);)d.push(j(b[g])),g++;c.push({kind:"table",text:b.slice(a,g).join("\n"),rows:d,align:f}),a=g-1;continue}let v=p.match(/^(\s*)(\d+)\. +(.+)$/);if(v){e(),c.push({kind:"ol",text:v[3],depth:m(v[1]),marker:v[2]}),o=c.length-1;continue}let w=p.match(/^(\s*)- +(.+)$/);if(w){e(),c.push({kind:"ul",text:w[2],depth:m(w[1])}),o=c.length-1;continue}if(null!==o&&0===d.length){c[o].text+=" "+p.trim();continue}d.push(p)}return e(),g(),null!==n&&c.push({kind:"code",text:n.join("\n")}),c}let n=/("(?:\\.|[^"\\])*")(\s*:)?|\b(true|false|null)\b|(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)/g;function o({text:a}){let b=function(a){let b=a.trim();if(!b||"{"!==b[0]&&"["!==b[0])return null;try{return JSON.stringify(JSON.parse(b),null,2)}catch{return null}}(a);return(0,d.jsx)("pre",{className:"overflow-x-auto rounded-lg border border-white/10 bg-white/[0.06] p-3 text-[12px] leading-relaxed",children:(0,d.jsx)("code",{className:"whitespace-pre font-mono [overflow-wrap:normal]",children:b?function(a){let b,c=[],e=0,f=0,g=a=>(0,d.jsx)("span",{className:"text-foreground/45",children:a},f++);for(n.lastIndex=0;null!==(b=n.exec(a));){if(b.index>e&&c.push(g(a.slice(e,b.index))),void 0!==b[1]){let a=void 0!==b[2];c.push((0,d.jsx)("span",{className:a?"text-sky-300":"text-emerald-300/90",children:b[1]},f++)),a&&b[2]&&c.push(g(b[2]))}else void 0!==b[3]?c.push((0,d.jsx)("span",{className:"text-purple-300",children:b[3]},f++)):void 0!==b[4]&&c.push((0,d.jsx)("span",{className:"text-amber-300",children:b[4]},f++));e=n.lastIndex}return e<a.length&&c.push(g(a.slice(e))),c}(b):(0,d.jsx)("span",{className:"text-foreground/85",children:a})})})}function p({block:a}){let b=a.rows??[];if(0===b.length)return null;let[c,...e]=b,g=a.align??[],h=a=>"center"===g[a]?"text-center":"right"===g[a]?"text-right":"text-left";return(0,d.jsx)("div",{className:"overflow-x-auto rounded-lg border border-white/10",children:(0,d.jsxs)("table",{className:"w-full border-collapse text-[13px] [overflow-wrap:normal]",children:[(0,d.jsx)("thead",{children:(0,d.jsx)("tr",{className:"border-b border-white/15 bg-white/[0.04]",children:c.map((a,b)=>(0,d.jsx)("th",{className:(0,f.cn)("whitespace-nowrap px-3 py-1.5 font-semibold text-foreground",h(b)),children:(0,d.jsx)(x,{text:a})},b))})}),(0,d.jsx)("tbody",{children:e.map((a,b)=>(0,d.jsx)("tr",{className:"border-b border-white/5 last:border-0",children:a.map((a,b)=>(0,d.jsx)("td",{className:(0,f.cn)("px-3 py-1.5 align-top text-foreground/90",h(b)),children:(0,d.jsx)(x,{text:a})},b))},b))})]})})}let q=["h1","h2","h3","h4"];function r(a){return q.includes(a)}function s(a){let b=q.indexOf(a);return b<0?0:b}function t(a){return`plan-h-${a}`}function u(a){return a.replace(/[`*]/g,"").trim()}function v(a,b,c,e){let g="reading"===c;switch(a.kind){case"h1":return(0,d.jsx)("h1",{id:e,className:g?"scroll-mt-24 text-xl font-semibold tracking-tight text-foreground":"text-base font-semibold text-foreground",children:b});case"h2":return(0,d.jsx)("h2",{id:e,className:g?"mt-6 scroll-mt-24 border-b border-white/10 pb-1 text-lg font-semibold text-foreground":"mt-3 text-sm font-semibold text-muted-foreground",children:b});case"h3":return(0,d.jsx)("h3",{id:e,className:g?"mt-4 scroll-mt-24 text-base font-semibold text-foreground":"mt-2 text-[13px] font-semibold text-foreground",children:b});case"h4":return(0,d.jsx)("h4",{id:e,className:g?"mt-3 scroll-mt-24 text-sm font-semibold text-muted-foreground":"mt-2 text-[13px] font-semibold text-muted-foreground",children:b});case"ul":case"ol":{let c=a.depth??0;return(0,d.jsxs)("div",{className:(0,f.cn)("flex gap-2",g?"text-foreground/95":"text-foreground/90"),style:{marginLeft:`${.75+1.25*c}rem`},children:[(0,d.jsx)("span",{className:"shrink-0 select-none text-muted-foreground tabular-nums",children:"ol"===a.kind?`${a.marker}.`:"•"}),(0,d.jsx)("span",{className:"min-w-0 flex-1",children:b})]})}case"quote":return(0,d.jsx)("blockquote",{className:(0,f.cn)("whitespace-pre-wrap border-l-2 pl-3 italic",g?"border-white/15 text-foreground/80":"border-white/10 text-foreground/75"),children:b});default:return(0,d.jsx)("p",{className:(0,f.cn)("whitespace-pre-wrap",g?"text-foreground/95":"text-foreground/90"),children:b})}}function w({block:a,variant:b}){return"code"===a.kind?(0,d.jsx)(o,{text:a.text}):"table"===a.kind?(0,d.jsx)(p,{block:a}):(0,d.jsx)(d.Fragment,{children:v(a,(0,d.jsx)(x,{text:a.text}),b)})}function x({text:a}){let b=a.split(/(`[^`]+`|\*\*[\s\S]+?\*\*|\*[^*]+\*)/g);return(0,d.jsx)(d.Fragment,{children:b.map((a,b)=>/^`[^`]+`$/.test(a)?(0,d.jsx)("code",{className:"rounded bg-white/5 px-1 font-mono text-[12px]",children:a.slice(1,-1)},b):/^\*\*[\s\S]+\*\*$/.test(a)?(0,d.jsx)("strong",{className:"font-semibold text-foreground",children:(0,d.jsx)(x,{text:a.slice(2,-2)})},b):/^\*[^*]+\*$/.test(a)?(0,d.jsx)("em",{className:"text-muted-foreground",children:(0,d.jsx)(x,{text:a.slice(1,-1)})},b):(0,d.jsx)("span",{children:a},b))})}},3173:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AC:()=>p,OK:()=>l,Pj:()=>m,RM:()=>k,Vp:()=>n,x$:()=>o});var e=c(39321),f=c(62896),g=c(22443),h=c(8292),i=c(7913),j=a([f,h]);async function k(a){let b=i.gY.parse(a),c="ARCHITECTURE"===b.view?"REBUILD":"PENDING",[d]=await f.db.insert(g.node).values({view:b.view,title:b.title,cluster:b.cluster??null,role:b.role??null,plain:b.plain??null,parentId:b.parentId??null,status:b.status??c,priority:b.priority??2,x:b.x??0,y:b.y??0,sourceRef:b.sourceRef??null}).returning();return d}async function l(a,b){let c=i.$Y.parse(b),[d]=await f.db.update(g.node).set(c).where((0,e.eq)(g.node.id,a)).returning();return void 0!==c.status&&await (0,h.Nh)(a),d}async function m(a,b){let c=i.M7.parse(b),[d]=await f.db.update(g.node).set({status:c}).where((0,e.eq)(g.node.id,a)).returning();return await (0,h.Nh)(a),d}async function n(a){let[b]=await f.db.update(g.node).set({status:"DEPRIORITIZED",priority:3}).where((0,e.eq)(g.node.id,a)).returning();return await (0,h.Nh)(a),b}async function o(a){let[b]=await f.db.update(g.node).set({status:"CANCELLED"}).where((0,e.eq)(g.node.id,a)).returning();return await (0,h.Nh)(a),b}async function p(a){let[b]=await f.db.delete(g.node).where((0,e.eq)(g.node.id,a)).returning();return b}[f,h]=j.then?(await j)():j,d()}catch(a){d(a)}})},4120:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(62896);c(22443);var e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},4963:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(23873),e=c(62896);c(22443);var f=c(2367),g=c(29303),h=c(50320),i=a([e,f,g,h]);[e,f,g,h]=i.then?(await i)():i,d.Ik({tables:d.YO(d.Ik({name:d.Yj().trim().min(1),domain:d.Yj().nullish(),description:d.Yj().nullish(),columns:d.YO(d.Ik({name:d.Yj().trim().min(1),type:d.Yj().trim().min(1),isPk:d.zM().optional(),isFk:d.zM().optional(),nullable:d.zM().optional(),note:d.Yj().nullish()})).default([])})).default([]),relations:d.YO(d.Ik({fromTable:d.Yj(),fromColumn:d.Yj(),toTable:d.Yj(),toColumn:d.Yj(),label:d.Yj().nullish()})).default([]),endpoints:d.YO(d.Ik({method:d.Yj().trim().min(1),path:d.Yj().trim().min(1),domain:d.Yj().nullish(),description:d.Yj().nullish(),uses:d.YO(d.Ik({table:d.Yj(),access:d.Yj().default("read")})).default([])})).default([])}),b()}catch(a){b(a)}})},7913:(a,b,c)=>{c.d(b,{$Y:()=>h,M7:()=>f,gY:()=>g});var d=c(23873);let e=d.k5(["ROADMAP","ARCHITECTURE"]),f=d.k5(["PENDING","IN_PROGRESS","DONE","BLOCKED","CANCELLED","DEPRIORITIZED","KEEP","REBUILD","REPLACE","DROP"]);d.k5(["DEPENDS","CONTAINS","RELATES","REPLACES"]);let g=d.Ik({view:e,title:d.Yj().trim().min(1).max(200),cluster:d.Yj().trim().max(64).nullish(),role:d.Yj().trim().max(500).nullish(),plain:d.Yj().trim().max(2e3).nullish(),parentId:d.Yj().nullish(),status:f.optional(),priority:d.ai().int().min(0).max(3).optional(),x:d.ai().optional(),y:d.ai().optional(),sourceRef:d.Yj().trim().max(300).nullish()}),h=d.Ik({title:d.Yj().trim().min(1).max(200).optional(),role:d.Yj().trim().max(500).nullish(),plain:d.Yj().trim().max(2e3).nullish(),cluster:d.Yj().trim().max(64).nullish(),status:f.optional(),priority:d.ai().int().min(0).max(3).optional(),sourceRef:d.Yj().trim().max(300).nullish()});d.Ik({x:d.ai(),y:d.ai()}),d.Ik({fromId:d.Yj().min(1),toId:d.Yj().min(1),kind:d.k5(["DEPENDS","RELATES","REPLACES"]).optional(),label:d.Yj().trim().max(80).nullish(),sourceHandle:d.Yj().trim().max(16).nullish(),targetHandle:d.Yj().trim().max(16).nullish()})},8292:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Nh:()=>m});var e=c(23873),f=c(39321),g=c(62896),h=c(22443),i=c(4963);c(526),c(58149),c(26905),c(60569);var j=c(3173);c(50042);var k=c(4120),l=a([g,i,j,k]);[g,i,j,k]=l.then?(await l)():l;let n=new Set(["DONE","CANCELLED","DEPRIORITIZED"]),o=new Set(["IN_PROGRESS","BLOCKED"]),p=new Set(["CANCELLED","DEPRIORITIZED"]);async function m(a){let b=new Set,c=a;for(;!b.has(c);){var d;b.add(c);let a=await g.db.query.node.findFirst({where:(a,{eq:b})=>b(a.id,c),columns:{parentId:!0,view:!0}});if(!a?.parentId||"ROADMAP"!==a.view)return;let e=await g.db.query.node.findFirst({where:(b,{eq:c})=>c(b.id,a.parentId),columns:{id:!0,status:!0,view:!0}});if(!e||"ROADMAP"!==e.view||p.has(e.status))return;let i=(d=(await g.db.query.node.findMany({where:(a,{eq:b})=>b(a.parentId,e.id),columns:{status:!0}})).map(a=>a.status)).length?d.every(a=>n.has(a))?"DONE":d.some(a=>o.has(a))?"IN_PROGRESS":"PENDING":"PENDING";if(e.status===i)return;await g.db.update(h.node).set({status:i}).where((0,f.eq)(h.node.id,e.id)),c=e.id}}e.Ik({title:e.Yj().trim().min(1),domain:e.Yj().trim().min(1),role:e.Yj().nullish(),plain:e.Yj().nullish(),status:e.Yj().nullish(),files:e.YO(e.Yj()).optional(),depends:e.YO(e.Yj()).optional()}),d()}catch(a){d(a)}})},9212:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"4047be9d60c39b71640c17baf01766da4b01e19a20":()=>e.HQ,"406bb7ec685c62215570152097a3704416e332d7ad":()=>e.cl,"40c10e8f9941f27ba33e2649e916484450fbca7cc3":()=>e.hg,"40c7085bde64e63507cb24974d90cc994450b66334":()=>e.pJ,"40fd218163d8863e9cd51db63185ef7d7a8e3f0303":()=>e.hY,"600fbebf33fe8d678629a57af10471a43e37cc1e6c":()=>e.t3,"60849703cb65183eec81568fa7043918ad8064ae5a":()=>e.Oz});var e=c(1110),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},22443:(a,b,c)=>{c.r(b),c.d(b,{appSetting:()=>C,codeFile:()=>z,codeFileEdge:()=>A,dbColumn:()=>s,dbRelation:()=>t,dbTable:()=>r,draftColumn:()=>x,draftRelation:()=>y,draftTable:()=>w,edge:()=>o,endpoint:()=>u,endpointTable:()=>v,node:()=>l,nodeFile:()=>m,nodeTags:()=>p,note:()=>q,projectMeta:()=>D,syncState:()=>B,tag:()=>n});var d=c(16996),e=c(55402),f=c(76003),g=c(24267),h=c(3161),i=c(80822),j=c(96508),k=c(70202);let l=(0,d.D)("Node",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),view:(0,e.Qq)().notNull(),cluster:(0,e.Qq)(),title:(0,e.Qq)().notNull(),role:(0,e.Qq)(),plain:(0,e.Qq)(),status:(0,e.Qq)().default("PENDING").notNull(),priority:(0,f.nd)().default(2).notNull(),progress:(0,f.nd)().default(0).notNull(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),sourceRef:(0,e.Qq)(),externalId:(0,e.Qq)(),source:(0,e.Qq)().default("MANUAL").notNull(),parentId:(0,e.Qq)(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date),embedding:(0,e.Qq)()},a=>[(0,h.Pe)("Node_cluster_idx").on(a.cluster),(0,h.Pe)("Node_parentId_idx").on(a.parentId),(0,h.Pe)("Node_view_idx").on(a.view),(0,i.mt)(()=>({columns:[a.parentId],foreignColumns:[a.id],name:"Node_parentId_Node_id_fk"})).onUpdate("cascade").onDelete("cascade")]),m=(0,d.D)("NodeFile",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),nodeId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),path:(0,e.Qq)().notNull()},a=>[(0,h.GL)("NodeFile_nodeId_path_key").on(a.nodeId,a.path),(0,h.Pe)("NodeFile_nodeId_idx").on(a.nodeId)]),n=(0,d.D)("Tag",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),label:(0,e.Qq)().notNull(),color:(0,e.Qq)()},a=>[(0,h.GL)("Tag_label_key").on(a.label)]),o=(0,d.D)("Edge",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),fromId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),toId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),kind:(0,e.Qq)().default("DEPENDS").notNull(),label:(0,e.Qq)(),sourceHandle:(0,e.Qq)(),targetHandle:(0,e.Qq)()},a=>[(0,h.GL)("Edge_fromId_toId_kind_key").on(a.fromId,a.toId,a.kind),(0,h.Pe)("Edge_toId_idx").on(a.toId),(0,h.Pe)("Edge_fromId_idx").on(a.fromId)]),p=(0,d.D)("_NodeTags",{a:(0,e.Qq)("A").notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),b:(0,e.Qq)("B").notNull().references(()=>n.id,{onDelete:"cascade",onUpdate:"cascade"})},a=>[(0,h.GL)("_NodeTags_AB_unique").on(a.a,a.b),(0,h.Pe)("_NodeTags_B_index").on(a.b)]),q=(0,d.D)("Note",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),title:(0,e.Qq)().default("Untitled").notNull(),body:(0,e.Qq)().default("").notNull(),ord:(0,g.x)().default(0).notNull(),pinned:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.Pe)("Note_updatedAt_idx").on(a.updatedAt)]),r=(0,d.D)("DbTable",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),name:(0,e.Qq)().notNull(),domain:(0,e.Qq)(),description:(0,e.Qq)(),source:(0,e.Qq)().default("MANUAL").notNull(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.Pe)("DbTable_domain_idx").on(a.domain),(0,h.GL)("DbTable_name_key").on(a.name)]),s=(0,d.D)("DbColumn",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),tableId:(0,e.Qq)().notNull().references(()=>r.id,{onDelete:"cascade",onUpdate:"cascade"}),name:(0,e.Qq)().notNull(),type:(0,e.Qq)().notNull(),isPk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),isFk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),nullable:(0,f.nd)({mode:"boolean"}).default(!0).notNull(),note:(0,e.Qq)(),ord:(0,f.nd)().default(0).notNull()},a=>[(0,h.GL)("DbColumn_tableId_name_key").on(a.tableId,a.name),(0,h.Pe)("DbColumn_tableId_idx").on(a.tableId)]),t=(0,d.D)("DbRelation",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),fromTableId:(0,e.Qq)().notNull().references(()=>r.id,{onDelete:"cascade",onUpdate:"cascade"}),toTableId:(0,e.Qq)().notNull().references(()=>r.id,{onDelete:"cascade",onUpdate:"cascade"}),fromColumn:(0,e.Qq)().notNull(),toColumn:(0,e.Qq)().notNull(),label:(0,e.Qq)()},a=>[(0,h.Pe)("DbRelation_toTableId_idx").on(a.toTableId),(0,h.Pe)("DbRelation_fromTableId_idx").on(a.fromTableId)]),u=(0,d.D)("Endpoint",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),method:(0,e.Qq)().notNull(),path:(0,e.Qq)().notNull(),domain:(0,e.Qq)(),description:(0,e.Qq)(),source:(0,e.Qq)().default("MANUAL").notNull(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.GL)("Endpoint_method_path_key").on(a.method,a.path),(0,h.Pe)("Endpoint_domain_idx").on(a.domain)]),v=(0,d.D)("EndpointTable",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),endpointId:(0,e.Qq)().notNull().references(()=>u.id,{onDelete:"cascade",onUpdate:"cascade"}),tableId:(0,e.Qq)().notNull().references(()=>r.id,{onDelete:"cascade",onUpdate:"cascade"}),access:(0,e.Qq)().default("read").notNull()},a=>[(0,h.GL)("EndpointTable_endpointId_tableId_key").on(a.endpointId,a.tableId),(0,h.Pe)("EndpointTable_tableId_idx").on(a.tableId)]),w=(0,d.D)("DraftTable",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),name:(0,e.Qq)().notNull(),domain:(0,e.Qq)(),description:(0,e.Qq)(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date)},a=>[(0,h.GL)("DraftTable_name_key").on(a.name)]),x=(0,d.D)("DraftColumn",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),tableId:(0,e.Qq)().notNull().references(()=>w.id,{onDelete:"cascade",onUpdate:"cascade"}),name:(0,e.Qq)().notNull(),type:(0,e.Qq)().notNull(),isPk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),isFk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),nullable:(0,f.nd)({mode:"boolean"}).default(!0).notNull(),note:(0,e.Qq)(),ord:(0,f.nd)().default(0).notNull()},a=>[(0,h.Pe)("DraftColumn_tableId_idx").on(a.tableId)]),y=(0,d.D)("DraftRelation",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),fromTableId:(0,e.Qq)().notNull().references(()=>w.id,{onDelete:"cascade",onUpdate:"cascade"}),toTableId:(0,e.Qq)().notNull().references(()=>w.id,{onDelete:"cascade",onUpdate:"cascade"}),fromColumn:(0,e.Qq)().notNull(),toColumn:(0,e.Qq)().notNull(),label:(0,e.Qq)()},a=>[(0,h.Pe)("DraftRelation_toTableId_idx").on(a.toTableId),(0,h.Pe)("DraftRelation_fromTableId_idx").on(a.fromTableId)]),z=(0,d.D)("CodeFile",{path:(0,e.Qq)().primaryKey(),root:(0,e.Qq)(),lang:(0,e.Qq)(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),mtimeMs:(0,g.x)(),size:(0,f.nd)(),inDegree:(0,f.nd)().default(0).notNull(),outDegree:(0,f.nd)().default(0).notNull(),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),A=(0,d.D)("CodeFileEdge",{fromPath:(0,e.Qq)().notNull().references(()=>z.path,{onDelete:"cascade",onUpdate:"cascade"}),toPath:(0,e.Qq)().notNull().references(()=>z.path,{onDelete:"cascade",onUpdate:"cascade"}),circular:(0,f.nd)({mode:"boolean"}).default(!1).notNull()},a=>[(0,h.Pe)("CodeFileEdge_circular_idx").on(a.circular),(0,h.Pe)("CodeFileEdge_toPath_idx").on(a.toPath),(0,h.Pe)("CodeFileEdge_fromPath_idx").on(a.fromPath),(0,j.ie)({columns:[a.fromPath,a.toPath],name:"CodeFileEdge_fromPath_toPath_pk"})]),B=(0,d.D)("SyncState",{id:(0,e.Qq)().primaryKey().default("singleton"),version:(0,f.nd)().default(0).notNull(),codeGraphSyncedAt:(0,f.nd)({mode:"timestamp_ms"}),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),C=(0,d.D)("AppSetting",{id:(0,e.Qq)().primaryKey().default("singleton"),intelModel:(0,e.Qq)().default("claude-haiku-4-5").notNull(),intelProvider:(0,e.Qq)().default("auto").notNull(),editor:(0,e.Qq)().default("auto").notNull(),currentFeatureId:(0,e.Qq)(),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),D=(0,d.D)("ProjectMeta",{id:(0,e.Qq)().primaryKey().default("singleton"),overview:(0,e.Qq)(),conventions:(0,e.Qq)().default("[]").notNull(),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)})},23610:(a,b,c)=>{c.d(b,{x:()=>g});var d=c(48249),e=c(56024),f=c(55030);function g(){let a="!h-2 !w-2 !border-0 !bg-zinc-400";return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.h7,{type:"target",position:f.yX.Top,id:"tt",className:a}),(0,d.jsx)(e.h7,{type:"source",position:f.yX.Top,id:"st",className:a}),(0,d.jsx)(e.h7,{type:"target",position:f.yX.Right,id:"tr",className:a}),(0,d.jsx)(e.h7,{type:"source",position:f.yX.Right,id:"sr",className:a}),(0,d.jsx)(e.h7,{type:"target",position:f.yX.Bottom,id:"tb",className:a}),(0,d.jsx)(e.h7,{type:"source",position:f.yX.Bottom,id:"sb",className:a}),(0,d.jsx)(e.h7,{type:"target",position:f.yX.Left,id:"tl",className:a}),(0,d.jsx)(e.h7,{type:"source",position:f.yX.Left,id:"sl",className:a})]})}},26284:(a,b,c)=>{c.d(b,{$:()=>i});var d=c(48249),e=c(70813),f=c(21654),g=c(33191);let h=(0,f.F)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function i({className:a,variant:b="default",size:c="default",...f}){return(0,d.jsx)(e.Button,{"data-slot":"button",className:(0,g.cn)(h({variant:b,size:c,className:a})),...f})}},26905:(a,b,c)=>{},29303:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(62896);c(22443);var e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},34206:(a,b,c)=>{c.d(b,{MapClient:()=>ap});var d=c(48249),e=c(67484),f=c(55030),g=c(56024);c(71763);var h=c(10920),i=c(69473),j=c(28624),k=c(29813),l=c(90498),m=c(30170),n=c(95744),o=c(23610),p=c(25148),q=c(24422),r=c(47578),s=c(97432),t=c(47352),u=c(57684),v=c(83394),w=c(55056);let x=["PENDING","IN_PROGRESS","DONE","BLOCKED","CANCELLED","DEPRIORITIZED"],y=["KEEP","REBUILD","REPLACE","DROP"],z=["IN_PROGRESS","PENDING","BLOCKED","DONE","DEPRIORITIZED","CANCELLED"],A={DONE:{label:"Done",className:"border-emerald-500/30 bg-emerald-500/15 text-emerald-300"},IN_PROGRESS:{label:"In progress",className:"border-sky-500/30 bg-sky-500/15 text-sky-300"},PENDING:{label:"Pending",className:"border-amber-500/30 bg-amber-500/10 text-amber-200"},BLOCKED:{label:"Blocked",className:"border-orange-500/30 bg-orange-500/15 text-orange-300"},CANCELLED:{label:"Cancelled",className:"border-zinc-500/30 bg-zinc-500/10 text-zinc-400 line-through"},DEPRIORITIZED:{label:"Deprioritized",className:"border-zinc-600/40 bg-zinc-600/10 text-zinc-400"},KEEP:{label:"Keep",className:"border-emerald-500/30 bg-emerald-500/15 text-emerald-300"},REBUILD:{label:"Rebuild",className:"border-violet-500/30 bg-violet-500/15 text-violet-300"},REPLACE:{label:"Replace",className:"border-rose-500/30 bg-rose-500/15 text-rose-300"},DROP:{label:"Drop",className:"border-zinc-500/30 bg-zinc-500/10 text-zinc-400 line-through"}},B=["bg-emerald-500/15 text-emerald-300","bg-sky-500/15 text-sky-300","bg-violet-500/15 text-violet-300","bg-amber-500/15 text-amber-200","bg-rose-500/15 text-rose-300","bg-cyan-500/15 text-cyan-300","bg-fuchsia-500/15 text-fuchsia-300","bg-lime-500/15 text-lime-300","bg-orange-500/15 text-orange-300","bg-teal-500/15 text-teal-300","bg-indigo-500/15 text-indigo-300","bg-pink-500/15 text-pink-300"];function C(a){let b=(a??"").trim().toUpperCase();if(!b)return"bg-white/[0.06] text-muted-foreground";let c=0;for(let a=0;a<b.length;a++)c=31*c+b.charCodeAt(a)>>>0;return B[c%B.length]}let D=(0,e.createContext)(null);var E=c(2942),F=c(33191);let G=[{v:0,l:"P0 \xb7 critical"},{v:1,l:"P1 \xb7 high"},{v:2,l:"P2 \xb7 medium"},{v:3,l:"P3 \xb7 low"}],H="nodrag nopan";function I({id:a,data:b,selected:c}){let{categories:f,statuses:g,patch:h,isExpanded:i,toggleExpand:j,openDetailed:k,removeNode:l,editingTitleId:m,onAskAgent:x}=function(){let a=(0,e.useContext)(D);if(!a)throw Error("useNodeEdit must be used inside NodeEditContext");return a}(),y=i(a),[z,B]=(0,e.useState)(!1),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)(b.title),[N,O]=(0,e.useState)(b.cluster??""),[P,Q]=(0,e.useState)(b.plain??""),R=0===b.priority,S="CANCELLED"===b.status||"DROP"===b.status,T="DEPRIORITIZED"===b.status,U="DRAFT"===b.source,V="IN_PROGRESS"===b.status,W="INIT"===b.source&&"ROADMAP"===b.view,X=a=>a.stopPropagation();return(0,d.jsxs)("div",{className:(0,F.cn)("rounded-lg border bg-card px-2.5 py-2 text-card-foreground shadow-sm transition",y?"w-80":b.isChild?"w-56":"w-64",U?"border-dashed border-sky-400/50 bg-sky-500/[0.06]":W?"border-dashed border-violet-400/60 bg-violet-500/[0.07] shadow-[0_0_0_1px_rgba(167,139,250,0.18)]":R?"border-[#ff3860]/60 shadow-[0_0_0_1px_rgba(255,56,96,0.15)]":"border-border",V&&"border-sky-400/60 shadow-[0_0_0_1px_rgba(56,160,255,0.25)]",b.isNext&&"border-emerald-400/70 shadow-[0_0_0_2px_rgba(52,211,153,0.35)]",c&&"ring-2 ring-[var(--accent,#f5b942)]",S&&"opacity-60",T&&"opacity-70 border-dashed"),children:[(0,d.jsx)(o.x,{}),b.isNext&&(0,d.jsx)("div",{className:"mb-1 inline-flex items-center gap-1 rounded bg-emerald-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-emerald-300",children:"work on next"}),(0,d.jsxs)("div",{className:"flex items-start gap-1.5",children:[V&&(0,d.jsx)("span",{title:"em andamento",className:"mt-1.5 inline-block size-2 shrink-0 animate-pulse rounded-full bg-sky-400"}),b.isCriterion&&!V&&(0,d.jsx)("span",{title:"Success criterion",className:"mt-1.5 inline-block size-1.5 shrink-0 rounded-full bg-[var(--accent,#f5b942)]"}),(0,d.jsx)("textarea",{rows:1,value:L,autoFocus:m===a,placeholder:"Title…",onFocus:b=>{m===a&&b.currentTarget.select()},onChange:a=>M(a.target.value),onBlur:()=>{let c=L.trim();c&&c!==b.title&&h(a,{title:c},!0)},onKeyDown:a=>{X(a),"Enter"!==a.key||a.shiftKey||(a.preventDefault(),a.currentTarget.blur())},className:(0,F.cn)(H,"field-sizing-content w-full resize-none bg-transparent text-sm font-medium leading-snug outline-none placeholder:text-muted-foreground/60",S&&"line-through")}),(0,d.jsx)("button",{type:"button",onClick:b=>{X(b),j(a)},title:y?"Collapse":"Expand",className:(0,F.cn)(H,"mt-0.5 shrink-0 text-muted-foreground hover:text-foreground"),children:y?(0,d.jsx)(p.A,{className:"size-3.5"}):(0,d.jsx)(q.A,{className:"size-3.5"})})]}),((b.signals?.untested??0)>0||b.signals?.auth)&&(0,d.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-1",children:[(b.signals?.untested??0)>0&&(0,d.jsxs)("span",{title:`${b.signals.untested} of ${b.signals.total} attached file(s) have no test importing them`,className:"flex items-center gap-1 rounded bg-amber-500/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-amber-300",children:[(0,d.jsx)(r.A,{className:"size-2.5"}),b.signals.untested," untested"]}),b.signals?.auth&&(0,d.jsxs)("span",{title:"touches auth-sensitive files",className:"flex items-center gap-1 rounded bg-red-500/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-red-300",children:[(0,d.jsx)(s.A,{className:"size-2.5"})," auth"]})]}),b.role&&(0,d.jsx)("div",{className:(0,F.cn)("mt-0.5 text-[10px] leading-snug text-muted-foreground",!y&&"line-clamp-1"),children:b.role}),(0,d.jsxs)("div",{className:"mt-2 flex items-center gap-1.5",children:["ROADMAP"===b.view?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{title:b.isChild?"Sub-task of a feature":"Feature — top-level roadmap item",className:(0,F.cn)("shrink-0 rounded px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide",b.isChild?"bg-zinc-500/15 text-zinc-300":"bg-sky-500/15 text-sky-300"),children:b.isChild?"sub-task":"feature"}),W&&(0,d.jsxs)("span",{className:"flex items-center gap-1 rounded bg-violet-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-violet-300",children:[(0,d.jsx)(t.A,{className:"size-2.5"})," IA"]}),(0,d.jsx)("input",{list:`cats-${a}`,value:N,placeholder:"category",onChange:a=>O(a.target.value),onBlur:()=>{let c=N.trim()||null;c!==(b.cluster??null)&&h(a,{cluster:c},!0)},onKeyDown:a=>{X(a),"Enter"===a.key&&a.currentTarget.blur()},className:(0,F.cn)(H,"field-sizing-content min-w-12 max-w-[65%] rounded px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide outline-none focus:brightness-125",C(N))})]}):(0,d.jsxs)(d.Fragment,{children:[b.isChild&&(0,d.jsx)("span",{title:"Sub-component",className:"shrink-0 rounded bg-zinc-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-zinc-300",children:"sub"}),(0,d.jsx)("input",{list:`cats-${a}`,value:N,placeholder:"domain",title:"Architecture domain — the lane this component lives in",onChange:a=>O(a.target.value),onBlur:()=>{let c=N.trim()||null;c!==(b.cluster??null)&&h(a,{cluster:c},!0)},onKeyDown:a=>{X(a),"Enter"===a.key&&a.currentTarget.blur()},className:(0,F.cn)(H,"field-sizing-content min-w-12 max-w-[65%] rounded px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide outline-none focus:brightness-125",C(N))})]}),(0,d.jsx)("datalist",{id:`cats-${a}`,children:f.map(a=>(0,d.jsx)("option",{value:a},a))}),(0,d.jsxs)(w.l6,{value:b.status,onValueChange:b=>h(a,{status:b},!0),children:[(0,d.jsx)(w.bq,{className:(0,F.cn)(H,"ml-auto h-6 shrink-0 gap-1 rounded border px-1.5 py-0 text-[10px] font-medium",A[b.status]?.className??"border-white/10"),children:(0,d.jsx)(w.yv,{children:a=>A[a]?.label??a})}),(0,d.jsx)(w.gC,{alignItemWithTrigger:!1,children:g.map(a=>(0,d.jsx)(w.eb,{value:a,children:A[a]?.label??a},a))})]})]}),y&&(0,d.jsxs)("div",{className:"mt-2 space-y-2 border-t border-white/10 pt-2",children:[J||!P.trim()?(0,d.jsx)("textarea",{autoFocus:J,value:P,placeholder:"Description (markdown)…",onChange:a=>Q(a.target.value),onBlur:()=>{K(!1);let c=P.trim()||null;c!==(b.plain??null)&&h(a,{plain:c},!0)},onKeyDown:X,rows:3,className:(0,F.cn)(H,"field-sizing-content max-h-[24rem] min-h-[4.5rem] w-full resize-y rounded bg-white/[0.04] px-1.5 py-1 text-xs outline-none placeholder:text-muted-foreground/50 focus:bg-white/[0.08]")}):(0,d.jsx)("div",{onClick:a=>{X(a),K(!0)},title:"Click to edit",className:"cursor-text rounded bg-white/[0.02] px-1.5 py-1 text-xs hover:bg-white/[0.05]",children:(0,d.jsx)(E.pO,{markdown:P,variant:"compact",className:"text-[12px]"})}),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,d.jsxs)(w.l6,{value:String(b.priority),onValueChange:b=>h(a,{priority:Number(b)},!0),children:[(0,d.jsx)(w.bq,{className:(0,F.cn)(H,"h-6 gap-1 rounded border-white/10 px-1.5 py-0 text-[10px]"),children:(0,d.jsx)(w.yv,{children:a=>G.find(b=>String(b.v)===a)?.l??a})}),(0,d.jsx)(w.gC,{alignItemWithTrigger:!1,children:G.map(a=>(0,d.jsx)(w.eb,{value:String(a.v),children:a.l},a.v))})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsxs)("button",{type:"button",onClick:b=>{X(b),z?l(a):B(!0)},onBlur:()=>B(!1),title:"Delete node",className:(0,F.cn)(H,"flex items-center gap-1 rounded px-1.5 py-1 text-[10px] transition-colors",z?"bg-red-500/20 text-red-300":"text-muted-foreground hover:bg-white/5 hover:text-red-300"),children:[(0,d.jsx)(u.A,{className:"size-3"}),z&&"Delete?"]}),x&&(0,d.jsxs)("button",{type:"button",onClick:a=>{X(a),x(`feature: ${b.title}`)},title:"Ask the agent a question about this feature (answered in its next round)",className:(0,F.cn)(H,"flex items-center gap-1 rounded px-1.5 py-1 text-[10px] text-sky-300/90 hover:bg-sky-500/15 hover:text-sky-300"),children:[(0,d.jsx)(v.A,{className:"size-3"})," Ask"]}),(0,d.jsxs)("button",{type:"button",onClick:b=>{X(b),k(a)},className:(0,F.cn)(H,"flex items-center gap-1 rounded px-1.5 py-1 text-[10px] text-muted-foreground hover:bg-white/5 hover:text-foreground"),children:[(0,d.jsx)(n.A,{className:"size-3"})," Details"]})]})]})]})]})}var J=c(82145),K=c(19099),L=c(45535),M=c(49783),N=c(48779),O=c(26284),P=c(52351),Q=c(74732);function R({className:a,type:b,...c}){return(0,d.jsx)("input",{type:b,"data-slot":"input",className:(0,F.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...c})}function S({className:a,...b}){return(0,d.jsx)("textarea",{"data-slot":"textarea",className:(0,F.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a),...b})}var T=c(86371);function U({className:a,...b}){return(0,d.jsx)(T.b,{"data-slot":"label",className:(0,F.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...b})}var V=c(99829);let W=(0,V.createServerReference)("4047be9d60c39b71640c17baf01766da4b01e19a20",V.callServer,void 0,V.findSourceMapURL,"createNodeAction"),X=(0,V.createServerReference)("60849703cb65183eec81568fa7043918ad8064ae5a",V.callServer,void 0,V.findSourceMapURL,"updateNodeAction");function Y({open:a,onOpenChange:b,mode:c,view:f,heading:g,nodeId:h,parentId:i,position:j,defaults:k}){let l=(0,K.useRouter)(),[m,n]=(0,e.useState)(k?.title??""),[o,p]=(0,e.useState)(k?.role??""),[q,r]=(0,e.useState)(k?.plain??""),[s,t]=(0,e.useState)(k?.cluster??""),[u,v]=(0,e.useState)(k?.status??("ARCHITECTURE"===f?"REBUILD":"PENDING")),[z,B]=(0,e.useState)(!1),C="ARCHITECTURE"===f?y:x;async function D(){if(m.trim()){B(!0);try{"create"===c?await W({view:f,title:m.trim(),role:o.trim()||null,plain:q.trim()||null,cluster:s.trim()||null,parentId:i??null,status:u,x:j?.x??60,y:j?.y??60}):h&&await X(h,{title:m.trim(),role:o.trim()||null,plain:q.trim()||null,cluster:s.trim()||null,status:u}),b(!1),l.refresh()}finally{B(!1)}}}return(0,d.jsx)(Q.lG,{open:a,onOpenChange:b,children:(0,d.jsxs)(Q.Cf,{children:[(0,d.jsx)(Q.c7,{children:(0,d.jsx)(Q.L3,{children:g})}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(U,{htmlFor:"nf-title",children:"Title"}),(0,d.jsx)(R,{id:"nf-title",value:m,autoFocus:!0,onChange:a=>n(a.target.value)})]}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(U,{htmlFor:"nf-role",children:"Role (one line)"}),(0,d.jsx)(R,{id:"nf-role",value:o,onChange:a=>p(a.target.value)})]}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(U,{htmlFor:"nf-plain",children:"Description"}),(0,d.jsx)(S,{id:"nf-plain",rows:3,value:q,onChange:a=>r(a.target.value)})]}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(U,{children:"Status"}),(0,d.jsxs)(w.l6,{value:u,onValueChange:a=>null!=a&&v(a),children:[(0,d.jsx)(w.bq,{children:(0,d.jsx)(w.yv,{children:a=>A[a]?.label??a})}),(0,d.jsx)(w.gC,{children:C.map(a=>(0,d.jsx)(w.eb,{value:a,children:A[a]?.label??a},a))})]})]}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(U,{htmlFor:"nf-cluster",children:"Cluster / lane"}),(0,d.jsx)(R,{id:"nf-cluster",value:s,onChange:a=>t(a.target.value)})]})]})]}),(0,d.jsxs)(Q.Es,{children:[(0,d.jsx)(O.$,{variant:"outline",onClick:()=>b(!1),children:"Cancel"}),(0,d.jsx)(O.$,{onClick:D,disabled:z||!m.trim(),children:z?"Saving…":"Save"})]})]})})}let Z=(0,V.createServerReference)("40c7085bde64e63507cb24974d90cc994450b66334",V.callServer,void 0,V.findSourceMapURL,"acceptSuggestionAction"),$=(0,V.createServerReference)("406bb7ec685c62215570152097a3704416e332d7ad",V.callServer,void 0,V.findSourceMapURL,"deleteNodeAction"),_=(0,V.createServerReference)("600fbebf33fe8d678629a57af10471a43e37cc1e6c",V.callServer,void 0,V.findSourceMapURL,"setStatusAction"),aa=(0,V.createServerReference)("40c10e8f9941f27ba33e2649e916484450fbca7cc3",V.callServer,void 0,V.findSourceMapURL,"cancelAction"),ab=(0,V.createServerReference)("40fd218163d8863e9cd51db63185ef7d7a8e3f0303",V.callServer,void 0,V.findSourceMapURL,"deprioritizeAction");function ac({view:a,selected:b,allNodes:c,onClose:e,commentsContent:f,commentsCount:g=0,activeTab:h,onTabChange:i,onAddComment:j,topOffset:k}){let l=!!f,m=h??"details";return(0,d.jsxs)(N.b,{className:"absolute bottom-3 right-3 z-10 flex w-80 flex-col rounded-2xl",style:{top:k??12},children:[l?(0,d.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-1 py-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,d.jsx)(ad,{active:"details"===m,onClick:()=>i?.("details"),children:"Details"}),(0,d.jsxs)(ad,{active:"comments"===m,onClick:()=>i?.("comments"),children:["Comments",g>0&&(0,d.jsx)("span",{className:"ml-1 rounded-full bg-white/10 px-1 text-[9px] font-semibold leading-4",children:g})]})]}),(0,d.jsx)("button",{onClick:e,title:"Close panel",className:"mr-1 rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,d.jsx)(L.A,{className:"size-4"})})]}):(0,d.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-3.5 py-2.5",children:[(0,d.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:"Details"}),(0,d.jsx)("button",{onClick:e,title:"Close panel",className:"rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,d.jsx)(L.A,{className:"size-4"})})]}),(0,d.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,d.jsx)("div",{className:"p-3",children:"comments"===m&&l?f:b?(0,d.jsxs)(d.Fragment,{children:[j&&(0,d.jsxs)("button",{type:"button",onClick:()=>j(b.title),className:"mb-3 flex w-full items-center justify-center gap-1.5 rounded-lg border border-white/10 bg-white/[0.03] px-3 py-1.5 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:[(0,d.jsx)(M.A,{className:"size-3.5"}),"Comment on this ","ARCHITECTURE"===a?"component":"feature"]}),(0,d.jsx)(ae,{node:b,view:a},b.id)]}):(0,d.jsx)(af,{view:a,nodes:c})})})]})}function ad({active:a,onClick:b,children:c}){return(0,d.jsx)("button",{type:"button",onClick:b,className:(0,F.cn)("flex items-center gap-1 rounded-md px-2.5 py-1 text-[11px] font-medium transition-colors",a?"bg-white/10 text-foreground":"text-muted-foreground hover:text-foreground"),children:c})}function ae({node:a,view:b}){var c;let f=(0,K.useRouter)(),[g,h]=(0,e.useTransition)(),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(!1),m="ARCHITECTURE"===b?y:x,n=a=>h(async()=>{await a(),f.refresh()});return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:[(c=a.cluster,c?.trim()||"—"),0===a.priority&&(0,d.jsx)("span",{className:"ml-2 text-[#ff7a90]",children:"\xb7 critical path"})]}),(0,d.jsx)("h2",{className:"mt-1 text-lg font-semibold leading-tight",children:a.title})]}),"INIT"===a.source&&(0,d.jsxs)("div",{className:"rounded-lg border border-violet-400/30 bg-violet-500/[0.06] p-2.5",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-semibold text-violet-300",children:[(0,d.jsx)(t.A,{className:"size-3.5"})," AI suggestion"]}),(0,d.jsx)("p",{className:"mt-1 text-[11px] leading-snug text-muted-foreground",children:"Suggested direction surfaced when mapping the repo. Accept to turn it into your own feature, or dismiss."}),(0,d.jsxs)("div",{className:"mt-2 flex gap-1.5",children:[(0,d.jsx)(O.$,{size:"sm",className:"h-7 px-2.5 text-xs",disabled:g,onClick:()=>n(()=>Z(a.id)),children:"Accept"}),(0,d.jsx)(O.$,{size:"sm",variant:"outline",className:"h-7 px-2.5 text-xs text-muted-foreground",disabled:g,onClick:()=>n(()=>$(a.id)),children:"Dismiss"})]})]}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Status"}),(0,d.jsxs)(w.l6,{value:a.status,onValueChange:b=>null!=b&&n(()=>_(a.id,b)),children:[(0,d.jsx)(w.bq,{className:"h-8",disabled:g,children:(0,d.jsx)(w.yv,{children:a=>A[a]?.label??a})}),(0,d.jsx)(w.gC,{children:m.map(a=>(0,d.jsx)(w.eb,{value:a,children:A[a]?.label??a},a))})]})]}),a.plain&&(0,d.jsx)("div",{className:"rounded-md border border-white/5 bg-card/40 px-2.5 py-2 text-sm",children:(0,d.jsx)(E.pO,{markdown:a.plain,variant:"compact",className:"text-[12.5px]"})}),a.sourceRef&&(0,d.jsx)("div",{className:"rounded-md border border-border bg-card px-2 py-1.5 font-mono text-xs text-muted-foreground",children:a.sourceRef}),a.files.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("h3",{className:"mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:["Files (",a.files.length,")"]}),(0,d.jsx)("ul",{className:"space-y-0.5",children:a.files.map(a=>(0,d.jsx)("li",{children:(0,d.jsx)("button",{onClick:()=>fetch(`/api/open?path=${encodeURIComponent(a)}`).catch(()=>{}),title:`Open ${a} in editor`,className:"block w-full truncate rounded px-1.5 py-0.5 text-left font-mono text-[11px] text-muted-foreground transition-colors hover:bg-white/5 hover:text-foreground",children:a})},a))})]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-1.5 pt-1",children:[(0,d.jsx)(O.$,{size:"sm",variant:"outline",onClick:()=>j(!0),children:"Edit"}),(0,d.jsx)(O.$,{size:"sm",variant:"outline",onClick:()=>l(!0),children:"+ Sub-node"}),(0,d.jsx)(O.$,{size:"sm",variant:"outline",disabled:g,onClick:()=>n(()=>aa(a.id)),children:"Cancel"}),(0,d.jsx)(O.$,{size:"sm",variant:"outline",disabled:g,onClick:()=>n(()=>ab(a.id)),children:"Deprioritize"}),(0,d.jsxs)(P.Lt,{children:[(0,d.jsx)(P.tv,{render:(0,d.jsx)(O.$,{size:"sm",variant:"outline",className:"text-red-300",children:"Delete"})}),(0,d.jsxs)(P.EO,{children:[(0,d.jsxs)(P.wd,{children:[(0,d.jsxs)(P.r7,{children:["Delete “",a.title,"”?"]}),(0,d.jsx)(P.$v,{children:"This removes the node and all its sub-nodes. It can’t be undone."})]}),(0,d.jsxs)(P.ck,{children:[(0,d.jsx)(P.Zr,{children:"Cancel"}),(0,d.jsx)(P.Rx,{onClick:()=>n(()=>$(a.id)),children:"Delete"})]})]})]})]}),i&&(0,d.jsx)(Y,{open:!0,onOpenChange:j,mode:"edit",view:b,heading:"Edit node",nodeId:a.id,defaults:{title:a.title,role:a.role,plain:a.plain,status:a.status,cluster:a.cluster}}),k&&(0,d.jsx)(Y,{open:!0,onOpenChange:l,mode:"create",view:b,heading:"New sub-node",parentId:a.id,position:{x:a.x,y:a.y+120},defaults:{cluster:a.cluster}})]})}function af({view:a,nodes:b}){let c=b.filter(a=>0===a.priority).length;return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-sm font-semibold",children:"ROADMAP"===a?"Roadmap":"Architecture"}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Click a node for details and actions. Drag to rearrange — positions are saved."})]}),(0,d.jsxs)("dl",{className:"grid grid-cols-2 gap-2 text-center",children:[(0,d.jsx)(ag,{label:"nodes",value:b.length}),(0,d.jsx)(ag,{label:"critical",value:c})]})]})}function ag({label:a,value:b}){return(0,d.jsxs)("div",{className:"rounded-md border border-border bg-card py-2",children:[(0,d.jsx)("div",{className:"text-lg font-semibold",children:b}),(0,d.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:a})]})}var ah=c(38476),ai=c(55805),aj=c(92994);let ak=[{value:"cluster",label:"Theme"},{value:"status",label:"Status"},{value:"priority",label:"Priority"}],al=new Set(["title","role","plain","cluster","status","priority"]),am={roadmapNode:I,archNode:I},an={deletable:J.I},ao={CONTAINS:{stroke:"#7c7c8a"},DEPENDS:{stroke:"#f5b942",dash:"6 4"},RELATES:{stroke:"#8a8a95",dash:"4 4"},REPLACES:{stroke:"#ff6b9d"}};function ap({view:a,nodes:b,edges:c,workOnNextId:o=null,embedded:p=!1,commentsContent:q,commentsCount:r=0,controlRef:s,onAskAgent:t,onAddComment:u}){let v=(0,e.useMemo)(()=>b.map(a=>({id:a.id,type:"ROADMAP"===a.view?"roadmapNode":"archNode",position:{x:a.x,y:a.y},data:{title:a.title,role:a.role,plain:a.plain,status:a.status,priority:a.priority,cluster:a.cluster,view:a.view,source:a.source,sourceRef:a.sourceRef,isCriterion:a.isCriterion,isChild:null!=a.parentId,parentId:a.parentId,signals:a.signals}})),[b]),w=(0,e.useMemo)(()=>{let a;return a=new Set(b.map(a=>a.id)),[...b.filter(b=>b.parentId&&a.has(b.parentId)).map(a=>({id:`c-${a.id}`,source:a.parentId,sourceHandle:"sb",target:a.id,targetHandle:"tt",type:"smoothstep",style:{stroke:ao.CONTAINS.stroke}})),...c.filter(b=>a.has(b.fromId)&&a.has(b.toId)).map(a=>{let b=ao[a.kind]??ao.RELATES,c="DEPENDS"===a.kind?"depends on":void 0;return{id:a.id,source:a.fromId,sourceHandle:a.sourceHandle??void 0,target:a.toId,targetHandle:a.targetHandle??void 0,label:a.label??c,type:"deletable",markerEnd:{type:f.TG.ArrowClosed,color:b.stroke},style:{stroke:b.stroke,strokeDasharray:b.dash}}})]},[b,c]),[B,C]=(0,e.useState)(v),[E,G]=(0,e.useState)(w),[H,I]=(0,e.useState)(null),[J,K]=(0,e.useState)(null),[L,M]=(0,e.useState)(null),[N,O]=(0,e.useState)(!1),[P,Q]=(0,e.useState)("details");(0,e.useRef)(!1),(0,e.useRef)("details");let[R,S]=(0,e.useState)(new Set),[T,U]=(0,e.useState)(null),[V,W]=(0,e.useState)(!1),X=(0,e.useRef)(0),Y=(0,e.useRef)(null),Z=(0,e.useCallback)((a,b,c)=>{C(c=>c.map(c=>c.id===a?{...c,data:{...c.data,...b}}:c)),c&&fetch(`/api/nodes/${a}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(Object.fromEntries(Object.entries(b).filter(([a])=>al.has(a))))})},[]),$=(0,e.useMemo)(()=>Array.from(new Set(B.map(a=>a.data.cluster).filter(a=>!!a))).sort(),[B]),_=(0,e.useCallback)(a=>S(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c}),[]),aa=(0,e.useCallback)(a=>{I(a),O(!0),Q("details")},[]),ab=(0,e.useCallback)(a=>{C(b=>b.filter(b=>b.id!==a)),I(b=>b===a?null:b),fetch(`/api/nodes/${a}`,{method:"DELETE"})},[]),ad=(0,e.useCallback)(async()=>{let b=X.current++%8*28,c=80+b,d=80+b;try{let b=await fetch("/api/nodes",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({view:a,title:"New node",status:"ARCHITECTURE"===a?"REBUILD":"PENDING",x:c,y:d})});if(!b.ok)return;let e=await b.json();C(b=>[...b,{id:e.id,type:"ROADMAP"===a?"roadmapNode":"archNode",position:{x:c,y:d},data:{title:e.title,role:e.role,plain:e.plain,status:e.status,priority:e.priority,cluster:e.cluster,view:e.view,source:e.source,sourceRef:e.sourceRef,isCriterion:!1,isChild:null!=e.parentId,parentId:e.parentId??null}}]),S(a=>new Set(a).add(e.id)),U(e.id),I(e.id)}catch{}},[a]),ae=(0,e.useMemo)(()=>({view:a,categories:$,statuses:"ARCHITECTURE"===a?y:x,patch:Z,isExpanded:a=>R.has(a),toggleExpand:_,openDetailed:aa,removeNode:ab,editingTitleId:T,onAskAgent:t}),[a,$,Z,R,_,aa,ab,T,t]),[af,ag]=(0,e.useState)(null),[aq,ar]=(0,e.useState)(""),[as,at]=(0,e.useState)(new Set),[au,av]=(0,e.useState)(new Set),[aw,ax]=(0,e.useState)(new Set),ay=(0,e.useMemo)(()=>Array.from(new Set(b.map(a=>a.status))),[b]),az=(0,e.useMemo)(()=>Array.from(new Set(b.map(a=>a.cluster).filter(a=>!!a))).sort(),[b]),aA=(0,e.useMemo)(()=>Array.from(new Set(b.map(a=>a.priority))).sort((a,b)=>a-b),[b]),aB=(0,e.useCallback)(a=>(!as.size||!!as.has(a.status))&&(!au.size||!!a.cluster&&!!au.has(a.cluster))&&(!aw.size||!!aw.has(a.priority)),[as,au,aw]),aC=as.size+au.size+aw.size,aD=(0,e.useCallback)(()=>{at(new Set),av(new Set),ax(new Set)},[]),aE=(0,e.useMemo)(()=>B.map(a=>({...a,hidden:!aB(a.data)})),[B,aB]),aF=(0,e.useMemo)(()=>new Set(aE.filter(a=>a.hidden).map(a=>a.id)),[aE]),aG=(0,e.useMemo)(()=>E.map(a=>({...a,hidden:aF.has(a.source)||aF.has(a.target)})),[E,aF]),aH=(0,e.useMemo)(()=>{if(J){let a=aG.find(a=>a.id===J);return a?new Set([a.source,a.target]):null}return H?(0,ah.F1)(H,aG.filter(a=>!a.hidden)):null},[H,J,aG]),aI=(0,e.useMemo)(()=>aE.map(a=>{let b=o&&a.id===o?{...a,data:{...a.data,isNext:!0}}:a;return!aH||b.hidden?b:{...b,style:{...b.style,opacity:aH.has(a.id)?1:.45,transition:"opacity 120ms"}}}),[aE,aH,o]),aJ=(0,e.useMemo)(()=>{if(!af||"ROADMAP"!==a)return[];let b=new Map(aI.map(a=>[a.id,a])),c=new Map;for(let a of aI){var d;if(a.hidden)continue;let e=(d=((a.data.parentId?b.get(a.data.parentId):void 0)??a).data,"status"===af?A[d.status]?.label??d.status:"priority"===af?`P${d.priority}`:d.cluster?.trim()||"—"),f=a.measured?.width??(a.data.isChild?224:256),g=a.measured?.height??96,h=a.position.x,i=a.position.y,j=c.get(e);j?(j.minX=Math.min(j.minX,h),j.minY=Math.min(j.minY,i),j.maxX=Math.max(j.maxX,h+f),j.maxY=Math.max(j.maxY,i+g)):c.set(e,{label:e,minX:h,minY:i,maxX:h+f,maxY:i+g})}return Array.from(c.values()).map(a=>({label:a.label,x:a.minX-20,y:a.minY-20-26,w:a.maxX-a.minX+40,h:a.maxY-a.minY+40+26}))},[aI,af,a]),aK=(0,e.useMemo)(()=>{let a=H??L;return J||a?aG.map(b=>b.hidden?b:(J?b.id===J:b.source===a||b.target===a)?{...b,zIndex:20,style:{...b.style,opacity:1,strokeWidth:2.5}}:{...b,selectable:!1,label:void 0,markerEnd:void 0,style:{...b.style,opacity:.06}}):aG.map(a=>a.hidden?a:{...a,label:void 0,style:{...a.style,opacity:.18}})},[aG,H,J,L]),aL=(0,e.useCallback)(a=>C(b=>(0,g._0)(a,b)),[]),aM=(0,e.useCallback)(a=>G(b=>(0,g.zW)(a,b)),[]),aN=(0,e.useCallback)(async a=>{if(!a.source||!a.target||a.source===a.target)return;let b=await fetch("/api/edges",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({fromId:a.source,toId:a.target,kind:"DEPENDS",sourceHandle:a.sourceHandle??null,targetHandle:a.targetHandle??null})});if(!b.ok)return;let c=await b.json(),d=ao.DEPENDS;G(b=>b.some(a=>a.id===c.id)?b:[...b,{id:c.id,source:c.fromId,sourceHandle:a.sourceHandle??void 0,target:c.toId,targetHandle:a.targetHandle??void 0,label:"depends on",type:"deletable",markerEnd:{type:f.TG.ArrowClosed,color:d.stroke},style:{stroke:d.stroke,strokeDasharray:d.dash}}])},[]),aO=(0,e.useCallback)(async(b,c,d)=>{let e=await fetch("/api/nodes",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({view:a,title:"New node",parentId:b.id,cluster:b.data.cluster??null,status:"ARCHITECTURE"===a?"REBUILD":"PENDING",x:c,y:d})});if(!e.ok)return;let f=await e.json();C(e=>[...e,{id:f.id,type:"ROADMAP"===a?"roadmapNode":"archNode",position:{x:c,y:d},data:{title:f.title,role:f.role,plain:f.plain,status:f.status,priority:f.priority,cluster:f.cluster,view:f.view,source:f.source,sourceRef:f.sourceRef,isCriterion:!1,isChild:!0,parentId:b.id}}]),G(a=>[...a,{id:`c-${f.id}`,source:b.id,target:f.id,type:"smoothstep",style:{stroke:ao.CONTAINS.stroke}}]),S(a=>new Set(a).add(f.id)),U(f.id),I(f.id)},[a]),aP=(0,e.useCallback)(async(a,b)=>{if(b.isValid||!b.fromNode||!Y.current)return;let c=a.changedTouches,d=c?.[0]?.clientX??a.clientX,e=c?.[0]?.clientY??a.clientY,{x:f,y:g}=Y.current.screenToFlowPosition({x:d,y:e});await aO(b.fromNode,f,g)},[aO]),aQ=(0,e.useMemo)(()=>b.find(a=>a.id===H)??null,[b,H]),aR=(0,e.useCallback)((a,b,c)=>{fetch(`/api/nodes/${a}/position`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({x:b,y:c})})},[]),aS=(0,e.useCallback)(a=>{I(a),K(null);let b=Y.current?.getNode(a);if(!b||!Y.current)return;let c=b.measured?.width??128,d=b.measured?.height??48;Y.current.setCenter(b.position.x+c/2,b.position.y+d/2,{zoom:1.2,duration:600})},[]),aT=(0,e.useCallback)(a=>{let b=function(a,b,c={}){let d=c.colW??320,e=c.rowH??150,f=c.childIndent??24,g=c.laneGap??56,h=c.bandGap??110,i=c.maxCols??4,j=c.maxBandW??6*d,k=new Set(a.map(a=>a.id)),l=a=>!a.parentId||!k.has(a.parentId),m=a.filter(l),n=new Map;for(let b of a){if(l(b))continue;let a=n.get(b.parentId);a?a.push(b):n.set(b.parentId,[b])}let o="status"===b?a=>a.status:"priority"===b?a=>String(a.priority):a=>(a.cluster??"").trim()||"—",p=new Map;for(let a of m){let b=o(a),c=p.get(b);c?c.push(a):p.set(b,[a])}let q=(function(a,b,c){if("status"===a)return[...z];if("priority"===a)return["0","1","2","3"];let d=Array.from(new Set(b.map(c))),e=d.filter(a=>"—"!==a).sort();return d.includes("—")?[...e,"—"]:e})(b,m,o).filter(a=>p.has(a)),r=new Map,s=0,t=0,u=0;for(let a of q){let b=p.get(a),c=Math.max(1,Math.min(i,Math.ceil(Math.sqrt(b.length)))),k=c*d;s>0&&s+k>j&&(s=0,t+=u+h,u=0);let l=Array(c).fill(0);for(let a of b){let b=0;for(let a=1;a<c;a++)l[a]<l[b]&&(b=a);let g=s+b*d,h=t+l[b]*e;r.set(a.id,{x:g,y:h});let i=n.get(a.id)??[];i.forEach((a,b)=>{r.set(a.id,{x:g+f,y:h+(b+1)*e})}),l[b]+=1+i.length}u=Math.max(u,l.reduce((a,b)=>Math.max(a,b),0)*e),s+=k+g}return r}(B.map(a=>({id:a.id,parentId:a.data.parentId??null,cluster:a.data.cluster,status:a.data.status,priority:a.data.priority})),a);C(a=>a.map(a=>{let c=b.get(a.id);return c?{...a,position:c}:a}));let c=Array.from(b,([a,b])=>({id:a,x:b.x,y:b.y}));c.length&&fetch("/api/nodes/positions",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({batch:c})}),ag(a),requestAnimationFrame(()=>Y.current?.fitView({duration:600,padding:.2}))},[B]),aU=(0,e.useMemo)(()=>{let a=aq.trim().toLowerCase();return a?B.filter(b=>aB(b.data)&&b.data.title.toLowerCase().includes(a)).slice(0,8):[]},[B,aq,aB]);function aV(a,b){b(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})}return(0,d.jsx)(D.Provider,{value:ae,children:(0,d.jsxs)("div",{className:(0,F.cn)("relative w-full",p?"h-full":"h-screen"),children:[(0,d.jsxs)(g.Gc,{nodes:aI,edges:aK,nodeTypes:am,edgeTypes:an,connectionMode:f.WZ.Loose,connectionLineStyle:{stroke:"var(--accent-2,#ff7a45)",strokeWidth:1.5,strokeDasharray:"4 4"},onInit:a=>{Y.current=a},onNodesChange:aL,onEdgesChange:aM,onConnect:aN,onConnectEnd:aP,onNodeMouseEnter:(a,b)=>M(b.id),onNodeMouseLeave:()=>M(null),onEdgesDelete:a=>{for(let b of a)b.id.startsWith("c-")||fetch(`/api/edges/${b.id}`,{method:"DELETE"})},onNodesDelete:a=>{for(let b of a)fetch(`/api/nodes/${b.id}`,{method:"DELETE"}),I(a=>a===b.id?null:a)},onNodeClick:(a,b)=>{if(V){if(W(!1),b.data.isChild)return;aO(b,b.position.x+300,b.position.y+60);return}if(I(b.id),K(null),Q("details"),p){let b=a.target;b?.closest("input, textarea, select, button, [role='combobox']")||O(!0)}},onEdgeClick:(a,b)=>{K(b.id),I(null),Q("details")},onPaneClick:()=>{V?W(!1):(I(null),K(null))},onNodeDragStop:(a,b)=>aR(b.id,b.position.x,b.position.y),deleteKeyCode:["Backspace","Delete"],colorMode:"dark",fitView:!0,minZoom:.2,panOnScroll:!0,zoomActivationKeyCode:["Meta","Control"],proOptions:{hideAttribution:!0},children:[(0,d.jsx)(g.VS,{gap:22,color:"#2a2a32"}),aJ.length>0&&(0,d.jsx)(g.DX,{children:aJ.map(a=>(0,d.jsx)("div",{style:{position:"absolute",transform:`translate(${a.x}px, ${a.y}px)`,width:a.w,height:a.h,pointerEvents:"none",zIndex:0},className:"rounded-2xl border border-white/[0.08] bg-white/[0.015]",children:(0,d.jsx)("div",{className:"px-3 py-1 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground/70",children:a.label})},a.label))}),(0,d.jsx)(g.H2,{position:"bottom-right",className:"!overflow-hidden !rounded-xl !border !border-white/10 [&_button]:!border-white/10 [&_button]:!bg-card/70 [&_button]:!text-foreground [&_button]:!backdrop-blur"}),(0,d.jsx)(g.Zk,{position:"bottom-right",style:{marginBottom:152},children:(0,d.jsx)(aj.er,{title:"Legend",trigger:(a,b)=>(0,d.jsx)("button",{type:"button",onClick:b,title:"Legend",className:(0,F.cn)("glass flex size-8 items-center justify-center rounded-lg transition-colors",a?"text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,d.jsx)(h.A,{className:"size-4"})}),children:(0,d.jsxs)("ul",{className:"space-y-1.5 text-[10.5px] text-muted-foreground",children:[(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-block rounded bg-sky-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-sky-300",children:"feature"}),(0,d.jsx)("span",{children:"top-level card \xb7 can have sub-tasks"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-block rounded bg-zinc-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-zinc-300",children:"sub-task"}),(0,d.jsx)("span",{children:"child of a feature"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{"aria-hidden":!0,className:"inline-block h-px w-6 bg-[#33333a]"}),(0,d.jsx)("span",{children:"contains \xb7 drag the bottom handle to empty canvas"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{"aria-hidden":!0,className:"inline-block h-0 w-6 border-t border-dashed",style:{borderColor:"#f5b942"}}),(0,d.jsx)("span",{children:"depends on \xb7 drag between two cards"})]})]})})}),!p&&(0,d.jsx)(g.of,{pannable:!0,zoomable:!0,position:"bottom-left",style:{width:140,height:90},className:"!rounded-xl !border !border-white/10 !bg-card/50 !backdrop-blur",nodeColor:a=>a.data?.priority===0?"#ff3860":"#555"}),(0,d.jsxs)(g.Zk,{position:"bottom-center",className:"!mb-4 flex flex-col items-center gap-2",children:[V&&(0,d.jsxs)("div",{className:"glass rounded-full px-3 py-1 text-[11px] text-muted-foreground",children:["Click a ","ARCHITECTURE"===a?"component":"feature"," to attach the"," ","ARCHITECTURE"===a?"sub-component":"sub-task"," \xb7 Esc to cancel"]}),"ROADMAP"===a&&(0,d.jsxs)("div",{className:"glass flex items-center gap-1 rounded-full p-1",children:[(0,d.jsx)("span",{className:"pl-2 pr-0.5 text-[11px] text-muted-foreground",children:"Group by"}),ak.map(a=>(0,d.jsx)("button",{onClick:()=>aT(a.value),title:`Arrange features into lanes by ${a.label.toLowerCase()}`,className:(0,F.cn)("h-7 rounded-full px-2.5 text-[11px] font-medium transition-colors",af===a.value?"bg-white/[0.12] text-foreground":"text-muted-foreground hover:bg-white/[0.06] hover:text-foreground"),children:a.label},a.value))]}),(0,d.jsxs)("div",{className:"glass flex items-center gap-1 rounded-full p-1",children:[(0,d.jsxs)("button",{onClick:()=>void ad(),title:"ARCHITECTURE"===a?"Add component":"Add feature",className:"flex h-8 items-center gap-1.5 rounded-full px-3 text-[12px] font-medium text-foreground transition-colors hover:bg-white/[0.06]",children:[(0,d.jsx)(i.A,{className:"size-3.5 text-[var(--accent-2,#ff7a45)]"}),"ARCHITECTURE"===a?"Component":"Feature"]}),(0,d.jsx)("span",{"aria-hidden":!0,className:"mx-0.5 h-5 w-px bg-white/10"}),(0,d.jsxs)("button",{onClick:()=>W(a=>!a),title:"ARCHITECTURE"===a?"Add sub-component (click a component next)":"Add sub-task (click a feature next)",className:(0,F.cn)("flex h-8 items-center gap-1.5 rounded-full px-3 text-[12px] font-medium transition-colors",V?"bg-white/[0.1] text-foreground":"text-muted-foreground hover:bg-white/[0.06] hover:text-foreground"),children:[(0,d.jsx)(j.A,{className:"size-3.5"}),"ARCHITECTURE"===a?"Sub-component":"Sub-task"]})]})]}),!p&&(0,d.jsx)(g.Zk,{position:"top-center",className:"glass rounded-full px-1 py-0.5",children:(0,d.jsx)(ai.Z,{active:a,tabs:[{value:"ROADMAP",label:"Roadmap",href:"/map?view=ROADMAP"},{value:"ARCHITECTURE",label:"Architecture",href:"/map?view=ARCHITECTURE"},{value:"FILES",label:"Files",href:"/map?view=FILES"},{value:"DATABASE",label:"Database",href:"/map?view=DATABASE"}]})}),(0,d.jsxs)(g.Zk,{position:"top-right",className:(0,F.cn)("flex items-center gap-1 transition-[margin] duration-200",N&&"!mr-[332px]",p&&"hidden"),children:[(0,d.jsxs)(aj.er,{title:"Search",trigger:(a,b)=>(0,d.jsx)("button",{type:"button",onClick:b,title:"Search features",className:(0,F.cn)("glass flex size-8 items-center justify-center rounded-lg transition-colors",a?"text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,d.jsx)(k.A,{className:"size-4"})}),children:[(0,d.jsx)("input",{autoFocus:!0,value:aq,onChange:a=>ar(a.target.value),placeholder:"Find a feature…",className:"w-full rounded-md border border-white/10 bg-white/[0.04] px-2 py-1 text-[12px] outline-none placeholder:text-muted-foreground/50 focus:bg-white/[0.08]"}),(0,d.jsxs)("div",{className:"mt-2 max-h-64 space-y-0.5 overflow-y-auto",children:[aq.trim()&&0===aU.length&&(0,d.jsx)("div",{className:"px-1 py-1 text-[11px] text-muted-foreground",children:"No matches"}),aU.map(a=>(0,d.jsx)("button",{type:"button",onClick:()=>aS(a.id),className:"block w-full truncate rounded-md px-2 py-1 text-left text-[12px] text-muted-foreground transition-colors hover:bg-white/5 hover:text-foreground",children:a.data.title},a.id))]})]}),"ROADMAP"===a&&o&&(0,d.jsx)("button",{type:"button",onClick:()=>aS(o),title:"Jump to the next feature to work on",className:"glass flex size-8 items-center justify-center rounded-lg text-emerald-300 transition-colors hover:text-emerald-200",children:(0,d.jsx)(l.A,{className:"size-4"})}),(0,d.jsxs)(aj.er,{title:"Filters",trigger:(a,b)=>(0,d.jsxs)("button",{type:"button",onClick:b,title:"Filters",className:(0,F.cn)("glass relative flex size-8 items-center justify-center rounded-lg transition-colors",a||aC>0?"text-foreground":"text-muted-foreground hover:text-foreground"),children:[(0,d.jsx)(m.A,{className:"size-4"}),aC>0&&(0,d.jsx)("span",{className:"absolute -right-1 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-[var(--accent-2,#ff7a45)] px-1 text-[9px] font-semibold text-white",children:aC})]}),children:[ay.length>0&&(0,d.jsx)(aj.r1,{title:"Status",children:ay.map(a=>(0,d.jsx)(aj.vu,{on:as.has(a),onClick:()=>aV(a,at),children:A[a]?.label??a},a))}),az.length>0&&(0,d.jsx)(aj.r1,{title:"Cluster",children:az.map(a=>(0,d.jsx)(aj.vu,{on:au.has(a),onClick:()=>aV(a,av),children:a},a))}),aA.length>0&&(0,d.jsx)(aj.r1,{title:"Priority",children:aA.map(a=>(0,d.jsxs)(aj.vu,{on:aw.has(a),onClick:()=>aV(a,ax),children:["P",a]},a))}),aC>0&&(0,d.jsx)("button",{type:"button",onClick:aD,className:"mt-1 w-full rounded-md border border-white/10 px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/5 hover:text-foreground",children:"clear filters"})]}),!N&&(0,d.jsx)("button",{onClick:()=>{O(!0),Q("details")},title:"Show panel",className:"glass flex size-8 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:text-foreground",children:(0,d.jsx)(n.A,{className:"size-4"})})]})]}),N&&(0,d.jsx)(ac,{view:a,selected:aQ,allNodes:b,onClose:()=>{O(!1),Q("details")},commentsContent:q,commentsCount:r,activeTab:P,onTabChange:Q,onAddComment:u,topOffset:p?64:void 0})]})})}},38476:(a,b,c)=>{c.d(b,{F1:()=>h,e6:()=>f,qA:()=>e,ru:()=>g});let d={auth:"#4ea1ff",firms:"#c792ea",search:"#7bd389",storage:"#ffb86b",petitions:"#ff7a45",monitoring:"#f5b942",admin:"#ff6b9d"};function e(a){return a&&d[a]||"#8a8a8a"}let f={GET:"#7bd389",POST:"#4ea1ff",PUT:"#ffb86b",PATCH:"#ffb86b",DELETE:"#ff3860"},g={read:"#4ea1ff",write:"#ffb86b","read-write":"#c792ea"};function h(a,b){let c=new Set([a]);for(let d of b)d.source===a&&c.add(d.target),d.target===a&&c.add(d.source);return c}},50042:(a,b,c)=>{c(31421),c(77598),c(48161),c(76760),c(80941)},50320:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(62896);c(22443);var e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},52351:(a,b,c)=>{c.d(b,{$v:()=>w,EO:()=>s,Lt:()=>o,Rx:()=>x,Zr:()=>y,ck:()=>u,r7:()=>v,tv:()=>p,wd:()=>t});var d=c(48249);c(67484);var e=c(71523),f=c(99469),g=c(60388),h=c(74283),i=c(25845),j=c(36902),k=c(64230),l=c(87298),m=c(33191),n=c(26284);function o({...a}){return(0,d.jsx)(e.V,{"data-slot":"alert-dialog",...a})}function p({...a}){return(0,d.jsx)(f.t,{"data-slot":"alert-dialog-trigger",...a})}function q({...a}){return(0,d.jsx)(g.Z,{"data-slot":"alert-dialog-portal",...a})}function r({className:a,...b}){return(0,d.jsx)(h.X,{"data-slot":"alert-dialog-overlay",className:(0,m.cn)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",a),...b})}function s({className:a,size:b="default",...c}){return(0,d.jsxs)(q,{children:[(0,d.jsx)(r,{}),(0,d.jsx)(i.h,{"data-slot":"alert-dialog-content","data-size":b,className:(0,m.cn)("group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",a),...c})]})}function t({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,m.cn)("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",a),...b})}function u({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,m.cn)("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",a),...b})}function v({className:a,...b}){return(0,d.jsx)(j.L,{"data-slot":"alert-dialog-title",className:(0,m.cn)("font-heading text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",a),...b})}function w({className:a,...b}){return(0,d.jsx)(k.r,{"data-slot":"alert-dialog-description",className:(0,m.cn)("text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",a),...b})}function x({className:a,variant:b,size:c,...e}){return(0,d.jsx)(l.H,{"data-slot":"alert-dialog-action",className:(0,m.cn)(a),render:(0,d.jsx)(n.$,{variant:b,size:c}),...e})}function y({className:a,variant:b="outline",size:c="default",...e}){return(0,d.jsx)(l.H,{"data-slot":"alert-dialog-cancel",className:(0,m.cn)(a),render:(0,d.jsx)(n.$,{variant:b,size:c}),...e})}},55805:(a,b,c)=>{c.d(b,{Z:()=>m});var d=c(48249),e=c(2116),f=c.n(e),g=c(15996),h=c(41665),i=c(79602),j=c(36274),k=c(33191);let l={ROADMAP:g.A,ARCHITECTURE:h.A,FILES:i.A,DATABASE:j.A};function m({tabs:a,active:b}){return(0,d.jsx)("div",{className:"flex items-center gap-0.5",children:a.map(a=>{let c=a.value===b,e=a.Icon??l[a.value];return(0,d.jsxs)(f(),{href:a.href,className:(0,k.cn)("flex items-center gap-1.5 rounded-md px-2.5 py-1 text-[12px] font-medium tracking-tight transition-colors",c?"bg-white/10 text-foreground":"text-muted-foreground/80 hover:bg-white/5 hover:text-foreground"),children:[e?(0,d.jsx)(e,{className:"size-3"}):null,(0,d.jsx)("span",{children:a.label})]},a.value)})})}},58149:(a,b,c)=>{c(526)},60569:(a,b,c)=>{c(73024),c(76760),c(50042)},62896:(a,b,c)=>{c.a(a,async(a,d)=>{try{let l;c.d(b,{db:()=>r});var e=c(58296),f=c(28855),g=c(22443),h=c(76909),i=c(80941),j=a([f,e]);[f,e]=j.then?(await j)():j;let m={...g,...h},n=(l=process.env.DATABASE_URL)&&/^(file:|libsql:|wss?:|https?:|:memory:)/i.test(l)?l:"file:./dev.db";function k(a){let b=(0,f.createClient)({url:a});return b.execute("PRAGMA foreign_keys = ON;"),(0,e.f)(b,{schema:m})}let o=globalThis,p=o.dzDefault??k(n),q=o.dzByUrl??=new Map,r=new Proxy({},{get(a,b){let c=function(){var a;let b;if(process.env.BEACON_REPO)return p;let c=(0,i.p1)()??(0,i.UP)();return c?(a=(0,i.Nx)(c),(b=q.get(a))||(b=k(a),q.set(a,b)),b):p}(),d=c[b];return"function"==typeof d?d.bind(c):d}});d()}catch(a){d(a)}})},74732:(a,b,c)=>{c.d(b,{Cf:()=>r,Es:()=>t,L3:()=>u,c7:()=>s,lG:()=>o,rr:()=>v});var d=c(48249);c(67484);var e=c(76424),f=c(60388),g=c(74283),h=c(25845),i=c(87298),j=c(36902),k=c(64230),l=c(33191),m=c(26284),n=c(45535);function o({...a}){return(0,d.jsx)(e.D,{"data-slot":"dialog",...a})}function p({...a}){return(0,d.jsx)(f.Z,{"data-slot":"dialog-portal",...a})}function q({className:a,...b}){return(0,d.jsx)(g.X,{"data-slot":"dialog-overlay",className:(0,l.cn)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",a),...b})}function r({className:a,children:b,showCloseButton:c=!0,...e}){return(0,d.jsxs)(p,{children:[(0,d.jsx)(q,{}),(0,d.jsxs)(h.h,{"data-slot":"dialog-content",className:(0,l.cn)("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",a),...e,children:[b,c&&(0,d.jsxs)(i.H,{"data-slot":"dialog-close",render:(0,d.jsx)(m.$,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,d.jsx)(n.A,{}),(0,d.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function s({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"dialog-header",className:(0,l.cn)("flex flex-col gap-2",a),...b})}function t({className:a,showCloseButton:b=!1,children:c,...e}){return(0,d.jsxs)("div",{"data-slot":"dialog-footer",className:(0,l.cn)("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end",a),...e,children:[c,b&&(0,d.jsx)(i.H,{render:(0,d.jsx)(m.$,{variant:"outline"}),children:"Close"})]})}function u({className:a,...b}){return(0,d.jsx)(j.L,{"data-slot":"dialog-title",className:(0,l.cn)("font-heading text-base leading-none font-medium",a),...b})}function v({className:a,...b}){return(0,d.jsx)(k.r,{"data-slot":"dialog-description",className:(0,l.cn)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",a),...b})}},76909:(a,b,c)=>{c.r(b),c.d(b,{codeFileEdgeRelations:()=>t,codeFileRelations:()=>s,dbColumnRelations:()=>l,dbRelationRelations:()=>m,dbTableRelations:()=>k,draftColumnRelations:()=>q,draftRelationRelations:()=>r,draftTableRelations:()=>p,edgeRelations:()=>j,endpointRelations:()=>n,endpointTableRelations:()=>o,nodeFileRelations:()=>g,nodeRelations:()=>f,nodeTagsRelations:()=>i,tagRelations:()=>h});var d=c(74184),e=c(22443);let f=(0,d.K1)(e.node,({one:a,many:b})=>({files:b(e.nodeFile),nodeTags:b(e.nodeTags),edgesOut:b(e.edge,{relationName:"EdgeFrom"}),edgesIn:b(e.edge,{relationName:"EdgeTo"}),parent:a(e.node,{fields:[e.node.parentId],references:[e.node.id],relationName:"NodeTree"}),children:b(e.node,{relationName:"NodeTree"})})),g=(0,d.K1)(e.nodeFile,({one:a})=>({node:a(e.node,{fields:[e.nodeFile.nodeId],references:[e.node.id]})})),h=(0,d.K1)(e.tag,({many:a})=>({nodeTags:a(e.nodeTags)})),i=(0,d.K1)(e.nodeTags,({one:a})=>({node:a(e.node,{fields:[e.nodeTags.a],references:[e.node.id]}),tag:a(e.tag,{fields:[e.nodeTags.b],references:[e.tag.id]})})),j=(0,d.K1)(e.edge,({one:a})=>({from:a(e.node,{fields:[e.edge.fromId],references:[e.node.id],relationName:"EdgeFrom"}),to:a(e.node,{fields:[e.edge.toId],references:[e.node.id],relationName:"EdgeTo"})})),k=(0,d.K1)(e.dbTable,({many:a})=>({columns:a(e.dbColumn),fksOut:a(e.dbRelation,{relationName:"FkFrom"}),fksIn:a(e.dbRelation,{relationName:"FkTo"}),usages:a(e.endpointTable)})),l=(0,d.K1)(e.dbColumn,({one:a})=>({table:a(e.dbTable,{fields:[e.dbColumn.tableId],references:[e.dbTable.id]})})),m=(0,d.K1)(e.dbRelation,({one:a})=>({fromTable:a(e.dbTable,{fields:[e.dbRelation.fromTableId],references:[e.dbTable.id],relationName:"FkFrom"}),toTable:a(e.dbTable,{fields:[e.dbRelation.toTableId],references:[e.dbTable.id],relationName:"FkTo"})})),n=(0,d.K1)(e.endpoint,({many:a})=>({tables:a(e.endpointTable)})),o=(0,d.K1)(e.endpointTable,({one:a})=>({endpoint:a(e.endpoint,{fields:[e.endpointTable.endpointId],references:[e.endpoint.id]}),table:a(e.dbTable,{fields:[e.endpointTable.tableId],references:[e.dbTable.id]})})),p=(0,d.K1)(e.draftTable,({many:a})=>({columns:a(e.draftColumn),fksOut:a(e.draftRelation,{relationName:"DraftFkFrom"}),fksIn:a(e.draftRelation,{relationName:"DraftFkTo"})})),q=(0,d.K1)(e.draftColumn,({one:a})=>({table:a(e.draftTable,{fields:[e.draftColumn.tableId],references:[e.draftTable.id]})})),r=(0,d.K1)(e.draftRelation,({one:a})=>({fromTable:a(e.draftTable,{fields:[e.draftRelation.fromTableId],references:[e.draftTable.id],relationName:"DraftFkFrom"}),toTable:a(e.draftTable,{fields:[e.draftRelation.toTableId],references:[e.draftTable.id],relationName:"DraftFkTo"})})),s=(0,d.K1)(e.codeFile,({many:a})=>({edgesOut:a(e.codeFileEdge,{relationName:"CFEFrom"}),edgesIn:a(e.codeFileEdge,{relationName:"CFETo"})})),t=(0,d.K1)(e.codeFileEdge,({one:a})=>({fromFile:a(e.codeFile,{fields:[e.codeFileEdge.fromPath],references:[e.codeFile.path],relationName:"CFEFrom"}),toFile:a(e.codeFile,{fields:[e.codeFileEdge.toPath],references:[e.codeFile.path],relationName:"CFETo"})}))},80941:(a,b,c)=>{c.d(b,{Nx:()=>i,UP:()=>j,p1:()=>l});var d=c(16698);c(31421),c(77598);var e=c(73024),f=c(48161),g=c(76760);function h(){return process.env.BEACON_HOME||(0,g.join)((0,f.homedir)(),".beacon")}function i(a){return`file:${(0,g.join)((0,g.join)(h(),a),"db.sqlite")}`}function j(){try{return(0,e.readFileSync)((0,g.join)(h(),"active"),"utf8").trim()||null}catch{return null}}let k=new d.AsyncLocalStorage;function l(){return k.getStore()??null}},82145:(a,b,c)=>{c.d(b,{I:()=>k});var d=c(48249),e=c(56024),f=c(55030),g=c(57684);function h(a){let{x:b,y:c}=a.internals.positionAbsolute,d=a.measured?.width??0,e=a.measured?.height??0;return{x:b,y:c,w:d,h:e,cx:b+d/2,cy:c+e/2}}function i(a,b){let c=h(a),d=h(b),e=c.w/2||1,f=c.h/2||1,g=(d.cx-c.cx)/(2*e)-(d.cy-c.cy)/(2*f),i=(d.cx-c.cx)/(2*e)+(d.cy-c.cy)/(2*f),j=1/(Math.abs(g)+Math.abs(i)||1);return{x:e*j*(g+i)+c.cx,y:f*j*(-g+i)+c.cy}}function j(a,b){let c=h(a),d=Math.round(b.x),e=Math.round(b.y);return d<=Math.round(c.x)+1?f.yX.Left:d>=Math.round(c.x+c.w)-1?f.yX.Right:e<=Math.round(c.y)+1?f.yX.Top:f.yX.Bottom}function k(a){let b,c,{deleteElements:h}=(0,e.VH)(),k=(0,e.JY)(a.source),l=(0,e.JY)(a.target),m=k&&l?(b=i(k,l),c=i(l,k),{sx:b.x,sy:b.y,tx:c.x,ty:c.y,sourcePos:j(k,b),targetPos:j(l,c)}):null,[n,o,p]=(0,f.Fp)(m?{sourceX:m.sx,sourceY:m.sy,sourcePosition:m.sourcePos,targetX:m.tx,targetY:m.ty,targetPosition:m.targetPos}:{sourceX:a.sourceX,sourceY:a.sourceY,sourcePosition:a.sourcePosition,targetX:a.targetX,targetY:a.targetY,targetPosition:a.targetPosition});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.tE,{id:a.id,path:n,style:a.style,markerEnd:a.markerEnd,interactionWidth:20}),a.label&&(0,d.jsx)(e.rV,{children:(0,d.jsx)("div",{style:{position:"absolute",transform:`translate(-50%, -120%) translate(${o}px, ${p}px)`,fontSize:11,color:"#cfcfcf",background:"#161616",padding:"1px 4px",borderRadius:4,pointerEvents:"none"},children:a.label})}),a.selected&&(0,d.jsx)(e.rV,{children:(0,d.jsx)("div",{className:"nodrag nopan",style:{position:"absolute",transform:`translate(-50%, 0) translate(${o}px, ${p+14}px)`,pointerEvents:"all",zIndex:1e3},children:(0,d.jsx)("button",{type:"button",onMouseDown:a=>a.stopPropagation(),onClick:b=>{b.stopPropagation(),h({edges:[{id:a.id}]})},title:"Delete (or press Backspace)",className:"flex size-7 items-center justify-center rounded-full border border-white/20 bg-card/95 text-red-300 shadow-lg backdrop-blur-md transition-colors hover:bg-red-500/25 hover:text-red-200",children:(0,d.jsx)(g.A,{className:"size-3.5"})})})})]})}},84853:(a,b,c)=>{c.d(b,{G:()=>f,K:()=>g});var d=c(65573),e=c(6716);async function f(a){let b=(await (0,d.UL)()).get(e.Dk)?.value;return(0,e.X_)(b&&(0,e.K4)(b)?b:null,a)}async function g(a){if(a&&(0,e.K4)(a))return a;let b=(await (0,d.UL)()).get(e.Dk)?.value;return b&&(0,e.K4)(b)?b:null}},86925:(a,b,c)=>{c.d(b,{DbMapClient:()=>_});var d=c(48249),e=c(67484),f=c(19099),g=c(56024),h=c(55030);c(71763);var i=c(90165),j=c(89216),k=c(57684),l=c(45535),m=c(69473),n=c(33191),o=c(38476);let p=(0,e.createContext)(null);function q(){let a=(0,e.useContext)(p);if(!a)throw Error("useDbEdit must be used inside DbEditContext");return a}var r=c(23610);let s={danger:"bg-red-500/15 text-red-300",warn:"bg-amber-500/15 text-amber-300"};function t({badges:a,className:b}){return a.length?(0,d.jsx)("span",{className:(0,n.cn)("flex shrink-0 items-center gap-0.5",b),children:a.map(a=>(0,d.jsx)("span",{title:a.title,className:(0,n.cn)("rounded px-1 text-[8px] font-semibold uppercase tracking-wide",s[a.tone]),children:a.label},a.label))}):null}let u=/pass(word)?|token|secret|api[_-]?key|credential|priv(ate)?[_-]?key|hash|salt/i,v=/auth|login|logout|session|token|password|oauth|sso|credential/i,w="nodrag nopan",x=r.x,y="nodrag nopan",z=["GET","POST","PUT","PATCH","DELETE"];var A=c(49783),B=c(48779),C=c(26284);let D=[{id:"claude",label:"Prompt p/ Claude Code",fn:function(a){let b=["Implement this database schema in this project, following its existing stack and conventions:",""];for(let c of a.tables){let a=`Table \`${c.name}\``+(c.domain?` (domain: ${c.domain})`:"")+(c.description?` — ${c.description}`:"");for(let d of(b.push(a),c.columns)){let a=[d.isPk&&"PK",d.isFk&&"FK",!1===d.nullable&&"NOT NULL"].filter(Boolean).join(", ");b.push(` - ${d.name}: ${d.type}`+(a?` [${a}]`:"")+(d.note?` — ${d.note}`:""))}b.push("")}if(a.relations.length){for(let c of(b.push("Foreign keys:"),a.relations))b.push(` - ${c.fromTable}.${c.fromColumn} -> ${c.toTable}.${c.toColumn}`);b.push("")}return b.push("Create the models/migrations using the project's existing ORM and patterns, wire the relationships, and keep table and column names exactly as given."),b.join("\n")}},{id:"dbml",label:"DBML",fn:function(a){let b=[];for(let c of a.tables){for(let a of(b.push(`Table ${c.name} {`),c.columns)){let c=[a.isPk&&"pk",!1===a.nullable&&!a.isPk&&"not null",a.note&&`note: '${a.note.replace(/'/g,"")}'`].filter(Boolean).join(", ");b.push(` ${a.name} ${a.type}`+(c?` [${c}]`:""))}b.push("}","")}for(let c of a.relations)b.push(`Ref: ${c.fromTable}.${c.fromColumn} > ${c.toTable}.${c.toColumn}`);return b.join("\n").trim()}},{id:"sql",label:"SQL DDL",fn:function(a){let b=[];for(let c of a.tables){b.push(`CREATE TABLE ${c.name} (`);let d=c.columns.map(a=>{let b=[` ${a.name} ${a.type}`];return a.isPk?b.push("PRIMARY KEY"):!1===a.nullable&&b.push("NOT NULL"),b.join(" ")}),e=a.relations.filter(a=>a.fromTable===c.name).map(a=>` FOREIGN KEY (${a.fromColumn}) REFERENCES ${a.toTable}(${a.toColumn})`);b.push([...d,...e].join(",\n")),b.push(");","")}return b.join("\n").trim()}}];function E({draftGraph:a}){let[b,c]=(0,e.useState)(null);if(0===a.tables.length)return null;async function f(b){await navigator.clipboard.writeText(b.fn(a)).catch(()=>{}),c(b.id),setTimeout(()=>c(null),1500)}return(0,d.jsxs)("div",{className:"space-y-2 rounded-xl border border-sky-400/20 bg-sky-500/[0.04] p-3",children:[(0,d.jsxs)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-sky-300",children:["Rascunho \xb7 ",a.tables.length," tabelas"]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:"copiar:"}),D.map(a=>(0,d.jsx)(C.$,{size:"sm",variant:"outline",className:"h-6 px-2 text-[11px]",onClick:()=>f(a),children:b===a.id?"✓":a.label},a.id))]})]})}function F({selected:a,tables:b,relations:c,endpoints:e,draftGraph:f,onClose:g,commentsContent:h,commentsCount:i=0,activeTab:j,onTabChange:k,onAddComment:m,topOffset:n}){let o,p,q=new Map(b.map(a=>[a.id,a.name])),r=!!h,s=j??"details",t=a?.kind==="table"?b.find(b=>b.id===a.id)?.name??null:a?.kind==="endpoint"&&(p=e.find(b=>b.id===a.id))?`${p.method} ${p.path}`:null;if(a?.kind==="table"){let f=b.find(b=>b.id===a.id);o=f?(0,d.jsx)(H,{table:f,relations:c,endpoints:e,nameById:q}):null}else if(a?.kind==="endpoint"){let b=e.find(b=>b.id===a.id);o=b?(0,d.jsx)(I,{ep:b,nameById:q}):null}else o=(0,d.jsx)(J,{tables:b,relations:c,endpoints:e});return(0,d.jsxs)(B.b,{className:"absolute bottom-3 right-3 z-10 flex w-80 flex-col rounded-2xl",style:{top:n??12},children:[r?(0,d.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-1 py-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,d.jsx)(G,{active:"details"===s,onClick:()=>k?.("details"),children:"Details"}),(0,d.jsxs)(G,{active:"comments"===s,onClick:()=>k?.("comments"),children:["Comments",i>0&&(0,d.jsx)("span",{className:"ml-1 rounded-full bg-white/10 px-1 text-[9px] font-semibold leading-4",children:i})]})]}),(0,d.jsx)("button",{onClick:g,title:"Close panel",className:"mr-1 rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,d.jsx)(l.A,{className:"size-4"})})]}):(0,d.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-3.5 py-2.5",children:[(0,d.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:"Panel"}),(0,d.jsx)("button",{onClick:g,title:"Close panel",className:"rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,d.jsx)(l.A,{className:"size-4"})})]}),(0,d.jsx)("div",{className:"flex-1 overflow-y-auto",children:"comments"===s&&r?(0,d.jsx)("div",{className:"p-3",children:h}):(0,d.jsxs)(d.Fragment,{children:[f.tables.length>0&&(0,d.jsx)("div",{className:"border-b border-white/10 p-3.5",children:(0,d.jsx)(E,{draftGraph:f})}),(0,d.jsxs)("div",{className:"p-4",children:[m&&t&&(0,d.jsxs)("button",{type:"button",onClick:()=>m(t),className:"mb-3 flex w-full items-center justify-center gap-1.5 rounded-lg border border-white/10 bg-white/[0.03] px-3 py-1.5 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:[(0,d.jsx)(A.A,{className:"size-3.5"}),"Comment on this ",a?.kind==="endpoint"?"endpoint":"table"]}),o]})]})})]})}function G({active:a,onClick:b,children:c}){return(0,d.jsx)("button",{type:"button",onClick:b,className:(0,n.cn)("flex items-center gap-1 rounded-md px-2.5 py-1 text-[11px] font-medium transition-colors",a?"bg-white/10 text-foreground":"text-muted-foreground hover:text-foreground"),children:c})}function H({table:a,relations:b,endpoints:c,nameById:e}){let f=b.filter(b=>b.fromTableId===a.id),g=b.filter(b=>b.toTableId===a.id),h=c.map(b=>({e:b,u:b.tables.find(b=>b.tableId===a.id)})).filter(a=>a.u);return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-xs uppercase tracking-wide",style:{color:(0,o.qA)(a.domain)},children:a.domain??"table"}),(0,d.jsx)("h2",{className:"font-mono text-lg font-semibold",children:a.name}),a.description&&(0,d.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a.description})]}),(0,d.jsx)(K,{title:`Columns (${a.columns.length})`,children:(0,d.jsx)("ul",{className:"space-y-0.5",children:a.columns.map(a=>(0,d.jsxs)("li",{className:"flex items-center gap-1.5 text-xs",children:[a.isPk?(0,d.jsx)(i.A,{className:"size-3 text-amber-400"}):a.isFk?(0,d.jsx)(j.A,{className:"size-3 text-sky-400"}):(0,d.jsx)("span",{className:"size-3"}),(0,d.jsx)("span",{className:"font-mono",children:a.name}),(0,d.jsxs)("span",{className:"ml-auto font-mono text-[10px] text-muted-foreground",children:[a.type,!a.nullable&&" \xb7NN"]})]},a.name))})}),f.length>0&&(0,d.jsx)(K,{title:"References (FK out)",children:(0,d.jsx)("ul",{className:"space-y-1 text-xs",children:f.map(a=>(0,d.jsxs)("li",{className:"font-mono text-muted-foreground",children:[a.fromColumn," → ",e.get(a.toTableId),".",a.toColumn]},a.id))})}),g.length>0&&(0,d.jsx)(K,{title:"Referenced by (FK in)",children:(0,d.jsx)("ul",{className:"space-y-1 text-xs",children:g.map(a=>(0,d.jsxs)("li",{className:"font-mono text-muted-foreground",children:[e.get(a.fromTableId),".",a.fromColumn]},a.id))})}),h.length>0&&(0,d.jsx)(K,{title:`Used by endpoints (${h.length})`,children:(0,d.jsx)("ul",{className:"space-y-1 text-xs",children:h.map(({e:a,u:b})=>(0,d.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{style:{color:o.e6[a.method]},className:"font-bold",children:a.method}),(0,d.jsx)("span",{className:"truncate font-mono",children:a.path}),(0,d.jsx)("span",{className:"ml-auto",style:{color:o.ru[b.access]},children:b.access})]},a.id))})})]})}function I({ep:a,nameById:b}){return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"rounded px-1.5 py-0.5 text-[11px] font-bold",style:{background:`${o.e6[a.method]}22`,color:o.e6[a.method]},children:a.method}),(0,d.jsx)("h2",{className:"mt-2 font-mono text-base font-semibold",children:a.path}),a.description&&(0,d.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a.description})]}),(0,d.jsx)(K,{title:`Tables used (${a.tables.length})`,children:(0,d.jsx)("ul",{className:"space-y-1 text-xs",children:a.tables.map(a=>(0,d.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"font-mono",children:b.get(a.tableId)}),(0,d.jsx)("span",{className:"ml-auto",style:{color:o.ru[a.access]},children:a.access})]},a.tableId))})})]})}function J({tables:a,relations:b,endpoints:c}){return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-sm font-semibold",children:"Database"}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Live schema derived from your code. Click a table or endpoint to see details. Drag to rearrange — positions are saved."})]}),(0,d.jsxs)("dl",{className:"grid grid-cols-3 gap-2 text-center",children:[(0,d.jsx)(L,{label:"tables",value:a.length}),(0,d.jsx)(L,{label:"FKs",value:b.length}),(0,d.jsx)(L,{label:"endpoints",value:c.length})]}),(0,d.jsx)(K,{title:"Legend",children:(0,d.jsxs)("ul",{className:"space-y-1 text-xs text-muted-foreground",children:[(0,d.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,d.jsx)(i.A,{className:"size-3 text-amber-400"})," primary key"]}),(0,d.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,d.jsx)(j.A,{className:"size-3 text-sky-400"})," foreign key"]}),(0,d.jsx)("li",{children:"— gray line: FK relation between tables"}),(0,d.jsx)("li",{children:"– – dashed line: endpoint uses table (read/write)"})]})})]})}function K({title:a,children:b}){return(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:a}),b]})}function L({label:a,value:b}){return(0,d.jsxs)("div",{className:"rounded-lg border border-white/10 bg-white/[0.03] py-2",children:[(0,d.jsx)("div",{className:"text-lg font-semibold",children:b}),(0,d.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:a})]})}var M=c(92994),N=c(55805);let O=new Set(["GET","HEAD","OPTIONS"]),P=a=>a.trim().toLowerCase();var Q=c(30170),R=c(10920),S=c(95744),T=c(10758),U=c(69680),V=c(35471),W=c(82145);let X={dbTable:function({id:a,data:b,selected:c}){var f;let g,h,p="DRAFT"===b.source,r="added"===b.diffStatus?"#7bd389":"modified"===b.diffStatus?"#ffb86b":"#4ea1ff",s="added"===b.diffStatus?"new":"modified"===b.diffStatus?"changed":"draft",v=b.diffChanges?.length?b.diffChanges.join("\n"):"draft",y=p?r:(0,o.qA)(b.domain),z=(f={domain:b.domain,columns:b.columns},g=[],(h=f.columns.filter(a=>u.test(a.name)).map(a=>a.name)).length&&g.push({label:"secrets",tone:"danger",title:`stores credentials: ${h.join(", ")}`}),f.domain&&/auth/i.test(f.domain)&&g.push({label:"auth",tone:"warn",title:"auth-domain table"}),g),A=q(),[B,C]=(0,e.useState)(b.name),[D,E]=(0,e.useState)(b.columns),[F,G]=(0,e.useState)(!1),H=a=>a.stopPropagation(),I=b=>{E(b),A.patchTable(a,{columns:b})};return p?(0,d.jsxs)("div",{className:(0,n.cn)("w-[252px] overflow-hidden rounded-md border border-dashed bg-card text-card-foreground shadow-sm",c&&"ring-2 ring-[var(--accent,#f5b942)]"),style:{borderColor:`${r}88`},children:[(0,d.jsx)(x,{}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 px-2 py-1.5",style:{background:`${y}1f`},children:[(0,d.jsx)("span",{title:v,className:"inline-block size-1.5 shrink-0 rounded-full",style:{background:r}}),(0,d.jsx)("input",{value:B,onChange:a=>C(a.target.value),onBlur:()=>{let c=B.trim();c&&c!==b.name&&A.patchTable(a,{name:c})},onKeyDown:a=>{H(a),"Enter"===a.key&&a.currentTarget.blur()},placeholder:"table",className:(0,n.cn)(w,"min-w-0 flex-1 bg-transparent font-mono text-sm font-semibold outline-none")}),(0,d.jsx)(t,{badges:z}),(0,d.jsx)("span",{title:v,className:"shrink-0 rounded px-1 text-[9px] uppercase tracking-wide",style:{background:`${r}26`,color:r},children:s}),(0,d.jsx)("button",{type:"button",onClick:b=>{H(b),F?A.deleteTable(a):G(!0)},onBlur:()=>G(!1),title:"Delete table",className:(0,n.cn)(w,"shrink-0 transition-colors",F?"text-red-300":"text-muted-foreground hover:text-red-300"),children:(0,d.jsx)(k.A,{className:"size-3"})})]}),(0,d.jsxs)("div",{className:"divide-y divide-border/40",children:[D.map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center gap-1 px-2 py-0.5 text-[11px]",children:[(0,d.jsx)("button",{type:"button",onClick:a=>{H(a),I(D.map((a,c)=>c===b?{...a,isPk:!a.isPk}:a))},title:"Primary key",className:(0,n.cn)(w,"shrink-0",a.isPk?"text-amber-400":"text-muted-foreground/40 hover:text-amber-400"),children:(0,d.jsx)(i.A,{className:"size-3"})}),(0,d.jsx)("button",{type:"button",onClick:a=>{H(a),I(D.map((a,c)=>c===b?{...a,isFk:!a.isFk}:a))},title:"Foreign key",className:(0,n.cn)(w,"shrink-0",a.isFk?"text-sky-400":"text-muted-foreground/40 hover:text-sky-400"),children:(0,d.jsx)(j.A,{className:"size-3"})}),(0,d.jsx)("input",{value:a.name,onChange:a=>E(c=>c.map((c,d)=>d===b?{...c,name:a.target.value}:c)),onBlur:()=>I(D),onKeyDown:H,placeholder:"column",className:(0,n.cn)(w,"min-w-0 flex-1 bg-transparent font-mono outline-none")}),(0,d.jsx)("input",{value:a.type,onChange:a=>E(c=>c.map((c,d)=>d===b?{...c,type:a.target.value}:c)),onBlur:()=>I(D),onKeyDown:H,placeholder:"type",className:(0,n.cn)(w,"w-16 shrink-0 bg-transparent text-right font-mono text-[10px] text-muted-foreground outline-none")}),(0,d.jsx)("button",{type:"button",onClick:a=>{H(a),I(D.filter((a,c)=>c!==b))},title:"Remove column",className:(0,n.cn)(w,"shrink-0 text-muted-foreground/40 hover:text-red-300"),children:(0,d.jsx)(l.A,{className:"size-3"})})]},b)),(0,d.jsxs)("button",{type:"button",onClick:a=>{H(a),I([...D,{name:"",type:"text",isPk:!1,isFk:!1,nullable:!0,note:null}])},className:(0,n.cn)(w,"flex w-full items-center gap-1 px-2 py-1 text-[10px] text-muted-foreground hover:text-foreground"),children:[(0,d.jsx)(m.A,{className:"size-3"})," column"]})]})]}):(0,d.jsxs)("div",{className:(0,n.cn)("w-[232px] overflow-hidden rounded-md border bg-card text-card-foreground shadow-sm",c&&"ring-2 ring-[var(--accent,#f5b942)]"),style:{borderColor:`${y}55`},children:[(0,d.jsx)(x,{}),(0,d.jsxs)("div",{className:"flex items-center justify-between px-2.5 py-1.5",style:{background:`${y}1f`},children:[(0,d.jsxs)("span",{className:"flex items-center gap-1.5 font-mono text-sm font-semibold",children:["INTROSPECTION"===b.source&&(0,d.jsx)("span",{title:"live — derived from your code",className:"inline-block size-1.5 rounded-full bg-emerald-400"}),b.name]}),(0,d.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,d.jsx)(t,{badges:z}),b.domain&&(0,d.jsx)("span",{className:"text-[10px] uppercase tracking-wide",style:{color:y},children:b.domain})]})]}),(0,d.jsx)("div",{className:"divide-y divide-border/40",children:b.columns.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-1.5 px-2.5 py-1 text-[11px]",children:[a.isPk?(0,d.jsx)(i.A,{className:"size-3 shrink-0 text-amber-400"}):a.isFk?(0,d.jsx)(j.A,{className:"size-3 shrink-0 text-sky-400"}):(0,d.jsx)("span",{className:"size-3 shrink-0"}),(0,d.jsx)("span",{className:(0,n.cn)("font-mono",a.isPk&&"font-semibold"),children:a.name}),(0,d.jsx)("span",{className:"ml-auto truncate font-mono text-[10px] text-muted-foreground",children:a.type})]},a.name))})]})},endpoint:function({id:a,data:b,selected:c}){var f;let g,h=o.e6[b.method]??"#8a8a8a",i="DRAFT"===b.source,j="added"===b.diffStatus?"#7bd389":"modified"===b.diffStatus?"#ffb86b":"#4ea1ff",l="added"===b.diffStatus?"new":"modified"===b.diffStatus?"changed":"draft",m=b.diffChanges?.length?b.diffChanges.join("\n"):"draft",p=(f={method:b.method,domain:b.domain,path:b.path},g=[],/^delete$/i.test(f.method.trim())&&g.push({label:"DELETE",tone:"danger",title:"destructive: deletes data"}),(f.domain&&/auth/i.test(f.domain)||v.test(f.path))&&g.push({label:"auth",tone:"warn",title:"auth-related endpoint"}),g),s=q(),[u,w]=(0,e.useState)(b.path),[x,A]=(0,e.useState)(!1),B=a=>a.stopPropagation();return(0,d.jsxs)("div",{className:(0,n.cn)("group flex w-[240px] items-center gap-2 rounded-md border bg-card px-2.5 py-1.5 text-card-foreground shadow-sm",i?"border-dashed":"border-border",c&&"ring-2 ring-[var(--accent,#f5b942)]"),style:i?{borderColor:`${j}88`,background:`${j}0f`}:void 0,children:[(0,d.jsx)(r.x,{}),"INTROSPECTION"===b.source&&(0,d.jsx)("span",{title:"live — derived from your code",className:"inline-block size-1.5 shrink-0 rounded-full bg-emerald-400"}),i?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("select",{value:b.method,onChange:b=>s.patchEndpoint(a,{method:b.target.value}),onPointerDown:B,className:(0,n.cn)(y,"shrink-0 rounded bg-transparent text-[10px] font-bold outline-none"),style:{color:h},title:"Method",children:z.map(a=>(0,d.jsx)("option",{value:a,className:"bg-card text-foreground",children:a},a))}),(0,d.jsx)("input",{value:u,onChange:a=>w(a.target.value),onBlur:()=>{let c=u.trim();c&&c!==b.path&&s.patchEndpoint(a,{path:c})},onKeyDown:a=>{B(a),"Enter"===a.key&&a.currentTarget.blur()},className:(0,n.cn)(y,"min-w-0 flex-1 bg-transparent font-mono text-[11px] outline-none")}),(0,d.jsx)(t,{badges:p}),(0,d.jsx)("span",{title:m,className:"shrink-0 rounded px-1 py-0.5 text-[8px] font-semibold uppercase",style:{background:`${j}26`,color:j},children:l}),(0,d.jsx)("button",{type:"button",onClick:b=>{B(b),x?s.deleteEndpoint(a):A(!0)},onBlur:()=>A(!1),title:"Delete",className:(0,n.cn)(y,"shrink-0 transition-colors",x?"text-red-300":"text-muted-foreground hover:text-red-300"),children:(0,d.jsx)(k.A,{className:"size-3"})})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"rounded px-1.5 py-0.5 text-[10px] font-bold",style:{background:`${h}22`,color:h},children:b.method}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px]",children:b.path}),(0,d.jsx)(t,{badges:p}),(0,d.jsx)("button",{type:"button",onClick:b=>{B(b),x?s.deleteRealEndpoint(a):A(!0)},onBlur:()=>A(!1),title:x?"Click again to delete":"Delete endpoint",className:(0,n.cn)(y,"shrink-0 opacity-0 transition-opacity group-hover:opacity-100",x?"text-red-300 opacity-100":"text-muted-foreground hover:text-red-300"),children:(0,d.jsx)(k.A,{className:"size-3"})})]})]})}},Y={deletable:W.I},Z="beacon:db-draft",$={proposedAt:0,status:"pending",tables:[],relations:[],endpoints:[]};function _({tables:a,relations:b,endpoints:c,draft:i,workspaceId:j,embedded:l=!1,draftRef:m,onEdit:q,controlRef:r,commentsContent:s,commentsCount:t=0,onAddComment:u}){let v=(0,f.useRouter)(),[w,x]=(0,e.useState)(!0),[y,z]=(0,e.useState)(null),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useState)(!1),[E,G]=(0,e.useState)("details"),[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(new Set),[L,W]=(0,e.useState)(new Set),[aa,ab]=(0,e.useState)(new Set),[ac,ad]=(0,e.useState)(()=>({past:[],present:i??$,future:[],rev:0,edited:!1})),ae=ac.present,af=(0,e.useCallback)(a=>{ad(b=>{let c=a(b.present);return c===b.present?b:{past:[...b.past,b.present].slice(-100),present:c,future:[],rev:b.rev+1,edited:!0}})},[]),ag=(0,e.useCallback)(a=>{ad(b=>{let c=a(b.present);return c===b.present?b:{...b,present:c}})},[]),ah=(0,e.useCallback)(()=>ad(a=>a.past.length?{past:a.past.slice(0,-1),present:a.past[a.past.length-1],future:[a.present,...a.future],rev:a.rev+1,edited:!0}:a),[]),ai=(0,e.useCallback)(()=>ad(a=>a.future.length?{past:[...a.past,a.present],present:a.future[0],future:a.future.slice(1),rev:a.rev+1,edited:!0}:a),[]),aj=(0,e.useCallback)(a=>ad(b=>({past:[],present:a,future:[],rev:b.rev+1,edited:!1})),[]);(0,e.useRef)(!1),i?.proposedAt,(0,e.useRef)(!1);let ak=(0,e.useMemo)(()=>ae.tables.map(a=>({id:a.id,name:a.name,domain:a.domain,description:a.description,source:"DRAFT",x:a.x,y:a.y,columns:a.columns})),[ae]),al=(0,e.useMemo)(()=>ae.endpoints.map(a=>({id:a.id,method:a.method,path:a.path,domain:a.domain,description:a.description,source:"DRAFT",x:a.x,y:a.y,tables:a.links.map(a=>({tableId:a.tableId,access:a.access}))})),[ae]),am=(0,e.useMemo)(()=>[...a,...ak],[a,ak]),an=(0,e.useMemo)(()=>[...c,...al],[c,al]),ao=(0,e.useMemo)(()=>new Map,[]),ap=(0,e.useMemo)(()=>l?function(a,b){let c=new Map(a.map(a=>[P(a.name),a])),d=new Map;for(let a of b){let b=c.get(P(a.name));if(!b){d.set(a.id,{status:"added",changes:["new table"]});continue}let e=function(a,b){let c=new Map(a.map(a=>[P(a.name),a])),d=new Set(b.map(a=>P(a.name))),e=[];for(let a of b){let b=c.get(P(a.name));if(!b){e.push(`+ column ${a.name} (${a.type})`);continue}let d=[];P(b.type)!==P(a.type)&&d.push(`type ${b.type}→${a.type}`),b.isPk!==a.isPk&&d.push(a.isPk?"now PK":"no longer PK"),b.isFk!==a.isFk&&d.push(a.isFk?"now FK":"no longer FK"),b.nullable!==a.nullable&&d.push(a.nullable?"now nullable":"now required"),d.length&&e.push(`~ column ${a.name}: ${d.join(", ")}`)}for(let b of a)d.has(P(b.name))||e.push(`- column ${b.name}`);return e}(b.columns,a.columns);d.set(a.id,{status:e.length?"modified":"unchanged",changes:e})}return d}(a,ak):ao,[l,a,ak,ao]),aq=(0,e.useMemo)(()=>l?function(a,b){let c=a=>`${P(a.method)} ${P(a.path)}`,d=new Set(a.map(c)),e=new Map;for(let a of b)e.set(a.id,d.has(c(a))?{status:"unchanged",changes:[]}:{status:"added",changes:["new endpoint"]});return e}(c,al):ao,[l,c,al,ao]),ar=(0,e.useMemo)(()=>[...b,...ae.relations.map(a=>({id:a.id,fromTableId:a.fromTableId,toTableId:a.toTableId,fromColumn:a.fromColumn,toColumn:a.toColumn,label:a.label}))],[b,ae.relations]),as=(0,e.useMemo)(()=>{let a=new Map;for(let b of an)for(let c of b.tables)a.set(c.tableId,(a.get(c.tableId)??0)+1);return a},[an]),at=(0,e.useMemo)(()=>{let a=new Map;return am.forEach(b=>a.set(b.id,b.x)),an.forEach(b=>a.set(b.id,b.x)),a},[am,an]),au=(0,e.useCallback)((a,b)=>(at.get(a)??0)<=(at.get(b)??0)?{sourceHandle:"sr",targetHandle:"tl"}:{sourceHandle:"sl",targetHandle:"tr"},[at]),av=(0,e.useMemo)(()=>new Set([...ae.tables.map(a=>a.id),...ae.endpoints.map(a=>a.id)]),[ae]),aw=(0,e.useMemo)(()=>new Set(a.map(a=>a.id)),[a]),ax=(0,e.useCallback)(()=>[...am.map(a=>({id:a.id,type:"dbTable",position:{x:a.x,y:a.y},data:{name:a.name,domain:a.domain,columns:a.columns,usageCount:as.get(a.id)??0,source:a.source,rev:ac.rev,diffStatus:ap.get(a.id)?.status,diffChanges:ap.get(a.id)?.changes}})),...an.map(a=>({id:a.id,type:"endpoint",position:{x:a.x,y:a.y},data:{method:a.method,path:a.path,domain:a.domain,source:a.source,rev:ac.rev,diffStatus:aq.get(a.id)?.status,diffChanges:aq.get(a.id)?.changes}}))],[am,an,as,ac.rev,ap,aq]),[ay,az,aA]=(0,g.ck)(ax()),aB=(0,e.useCallback)((a,b,c,d)=>{fetch("/api/db/position",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({kind:a,id:b,x:c,y:d})})},[]),aC=(0,e.useCallback)((a,b)=>{let{x:c,y:d}=b.position;av.has(b.id)?ag(a=>a.tables.some(a=>a.id===b.id)?{...a,tables:a.tables.map(a=>a.id===b.id?{...a,x:c,y:d}:a)}:a.endpoints.some(a=>a.id===b.id)?{...a,endpoints:a.endpoints.map(a=>a.id===b.id?{...a,x:c,y:d}:a)}:a):aB("endpoint"===b.type?"endpoint":"table",b.id,c,d)},[av,ag,aB]),aD=(0,e.useMemo)(()=>ar.map(a=>({id:`fk-${a.id}`,source:a.fromTableId,target:a.toTableId,...au(a.fromTableId,a.toTableId),type:"deletable",label:a.label??void 0,markerEnd:{type:h.TG.ArrowClosed,color:"#6b6b6b"},style:{stroke:"#6b6b6b"}})),[ar,au]),aE=(0,e.useMemo)(()=>an.flatMap(a=>a.tables.map(b=>{let c=o.ru[b.access]??"#5a5a5a";return{id:`u-${a.id}-${b.tableId}`,source:a.id,target:b.tableId,...au(a.id,b.tableId),type:"default",markerEnd:{type:h.TG.ArrowClosed,color:c},style:{stroke:c,strokeDasharray:"4 4",opacity:.7}}})),[an,au]),aF=(0,e.useMemo)(()=>w?[...aD,...aE]:aD,[aD,aE,w]),aG=(0,e.useMemo)(()=>{if(A){let a=aF.find(a=>a.id===A);return a?new Set([a.source,a.target]):null}return y?(0,o.F1)(y.id,aF):null},[y,A,aF]),aH=(0,e.useMemo)(()=>new Map(am.map(a=>[a.id,{domain:a.domain,source:a.source}])),[am]),aI=(0,e.useMemo)(()=>new Map(an.map(a=>[a.id,{method:a.method,source:a.source}])),[an]),aJ=(0,e.useMemo)(()=>{let a=new Set;if(!w)for(let b of aI.keys())a.add(b);for(let[b,c]of aH)!J.size||c.domain&&J.has(c.domain)||a.add(b),L.size&&!L.has(c.source)&&a.add(b);for(let[b,c]of aI)aa.size&&!aa.has(c.method)&&a.add(b),L.size&&!L.has(c.source)&&a.add(b);return a},[w,aH,aI,J,L,aa]),aK=(0,e.useMemo)(()=>ay.map(a=>{let b=aJ.has(a.id);return aG?{...a,hidden:b,style:{...a.style,opacity:aG.has(a.id)?1:.45,transition:"opacity 120ms"}}:b?{...a,hidden:b}:a}),[ay,aJ,aG]),aL=(0,e.useMemo)(()=>aF.map(a=>{let b=aJ.has(a.source)||aJ.has(a.target);return y||A?(A?a.id===A:y&&(a.source===y.id||a.target===y.id))?{...a,hidden:b,zIndex:20,style:{...a.style,opacity:1,strokeWidth:2.5}}:{...a,hidden:b,selectable:!1,label:void 0,markerEnd:void 0,style:{...a.style,opacity:.08}}:b?{...a,hidden:b}:a}),[aF,y,A,aJ]),aM=(0,e.useMemo)(()=>Array.from(new Set(am.map(a=>a.domain).filter(a=>!!a))).sort(),[am]),aN=(0,e.useMemo)(()=>Array.from(new Set([...am.map(a=>a.source),...an.map(a=>a.source)])).sort(),[am,an]),aO=(0,e.useMemo)(()=>Array.from(new Set(an.map(a=>a.method))).sort(),[an]);function aP(a,b){b(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})}let aQ=+!w+J.size+L.size+aa.size,aR=(0,e.useCallback)(()=>{x(!0),K(new Set),W(new Set),ab(new Set)},[]),aS=(0,e.useCallback)(a=>{let{source:b,target:c}=a;b&&c&&b!==c&&af(a=>{if(!(a.tables.some(a=>a.id===c)||aw.has(c)))return a;let d=a.endpoints.find(a=>a.id===b);return d?d.links.some(a=>a.tableId===c)?a:{...a,endpoints:a.endpoints.map(a=>{var d;return a.id===b?{...a,links:[...a.links,{tableId:c,access:(d=a.method,O.has(d.trim().toUpperCase())?"read":"write")}]}:a})}:a.tables.find(a=>a.id===b)?a.relations.some(a=>a.fromTableId===b&&a.toTableId===c)?a:{...a,relations:[...a.relations,{id:crypto.randomUUID(),fromTableId:b,toTableId:c,fromColumn:"fk",toColumn:"id",label:null}]}:a})},[af,aw]),aT=(0,e.useMemo)(()=>({patchEndpoint:(a,b)=>af(c=>({...c,endpoints:c.endpoints.map(c=>c.id===a?{...c,...b}:c)})),deleteEndpoint:a=>af(b=>({...b,endpoints:b.endpoints.filter(b=>b.id!==a)})),patchTable:(a,b)=>af(c=>({...c,tables:c.tables.map(c=>c.id===a?{...c,...b}:c)})),deleteTable:a=>af(b=>({...b,tables:b.tables.filter(b=>b.id!==a),relations:b.relations.filter(b=>b.fromTableId!==a&&b.toTableId!==a),endpoints:b.endpoints.map(b=>({...b,links:b.links.filter(b=>b.tableId!==a)}))})),deleteRealEndpoint:a=>{fetch(`/api/endpoints/${a}`,{method:"DELETE"}).then(a=>{a.ok&&v.refresh()})}}),[af,v]),aU=(0,e.useCallback)(async()=>{I(!0);try{if((await fetch("/api/draft/approve",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(ae)})).ok){try{localStorage.removeItem(Z)}catch{}aj($),v.refresh()}}finally{I(!1)}},[ae,aj,v]),aV=(0,e.useCallback)(async()=>{I(!0);try{await fetch("/api/draft",{method:"DELETE"})}catch{}try{localStorage.removeItem(Z)}catch{}aj($),v.refresh(),I(!1)},[aj,v]),aW=(0,e.useMemo)(()=>{let a;return a=new Map(ae.tables.map(a=>[a.id,a.name])),{tables:ae.tables.map(a=>({name:a.name,domain:a.domain,description:a.description,columns:a.columns.map(a=>({name:a.name,type:a.type,isPk:a.isPk,isFk:a.isFk,nullable:a.nullable,note:a.note}))})),relations:ae.relations.flatMap(b=>{let c=a.get(b.fromTableId),d=a.get(b.toTableId);return c&&d?[{fromTable:c,fromColumn:b.fromColumn,toTable:d,toColumn:b.toColumn,label:b.label}]:[]}),endpoints:ae.endpoints.map(b=>({method:b.method,path:b.path,domain:b.domain,description:b.description,uses:b.links.flatMap(b=>{let c=a.get(b.tableId);return c?[{table:c,access:b.access}]:[]})}))}},[ae]),aX=ae.tables.length>0||ae.endpoints.length>0,aY=ac.past.length>0,aZ=ac.future.length>0;return(0,d.jsx)(p.Provider,{value:aT,children:(0,d.jsxs)("div",{className:(0,n.cn)("relative w-full",l?"h-full":"h-screen"),children:[(0,d.jsxs)(g.Gc,{nodes:aK,edges:aL,nodeTypes:X,edgeTypes:Y,connectionMode:h.WZ.Loose,connectionLineStyle:{stroke:"var(--accent-2,#ff7a45)",strokeWidth:1.5,strokeDasharray:"4 4"},onNodesChange:aA,onConnect:aS,onNodeClick:(a,b)=>{let c="endpoint"===b.type?"endpoint":"table";z({id:b.id,kind:c}),B(null),D(!0),G("details")},onEdgeClick:(a,b)=>{B(b.id),z(null)},onPaneClick:()=>{z(null),B(null)},onNodeDragStop:aC,onEdgesDelete:a=>{for(let b of a)if(b.id.startsWith("fk-")){let a=b.id.slice(3);fetch(`/api/db/relations/${a}`,{method:"DELETE"})}},onNodesDelete:a=>{for(let b of a)av.has(b.id)||("endpoint"===b.type?fetch(`/api/endpoints/${b.id}`,{method:"DELETE"}):"dbTable"===b.type&&fetch(`/api/db/tables/${b.id}`,{method:"DELETE"}))},deleteKeyCode:["Backspace","Delete"],colorMode:"dark",fitView:!0,minZoom:.15,panOnScroll:!0,zoomActivationKeyCode:["Meta","Control"],proOptions:{hideAttribution:!0},children:[(0,d.jsx)(g.VS,{gap:22,color:"#2a2a32"}),(0,d.jsx)(g.H2,{position:"bottom-right",className:"!overflow-hidden !rounded-xl !border !border-white/10 [&_button]:!border-white/10 [&_button]:!bg-card/70 [&_button]:!text-foreground [&_button]:!backdrop-blur"}),!l&&(0,d.jsx)(g.of,{pannable:!0,zoomable:!0,position:"bottom-left",style:{width:140,height:90},className:"!rounded-xl !border !border-white/10 !bg-card/50 !backdrop-blur",nodeColor:"#555"}),!l&&(0,d.jsx)(g.Zk,{position:"top-center",className:"glass rounded-full px-1 py-0.5",children:(0,d.jsx)(N.Z,{active:"DATABASE",tabs:[{value:"ROADMAP",label:"Roadmap",href:"/map?view=ROADMAP"},{value:"ARCHITECTURE",label:"Architecture",href:"/map?view=ARCHITECTURE"},{value:"FILES",label:"Files",href:"/map?view=FILES"},{value:"DATABASE",label:"Database",href:"/map?view=DATABASE"}]})}),(0,d.jsxs)(g.Zk,{position:"top-right",className:(0,n.cn)("flex items-center gap-1 transition-[margin] duration-200",C&&"!mr-[332px]",l&&"hidden"),children:[(0,d.jsxs)(M.er,{title:"Filters",trigger:(a,b)=>(0,d.jsxs)("button",{type:"button",onClick:b,title:"Filters",className:(0,n.cn)("glass relative flex size-8 items-center justify-center rounded-lg transition-colors",a||aQ>0?"text-foreground":"text-muted-foreground hover:text-foreground"),children:[(0,d.jsx)(Q.A,{className:"size-4"}),aQ>0&&(0,d.jsx)("span",{className:"absolute -right-1 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-[var(--accent-2,#ff7a45)] px-1 text-[9px] font-semibold text-white",children:aQ})]}),children:[(0,d.jsx)(M.r1,{title:"Show",children:(0,d.jsx)(M.vu,{tone:"accent",on:w,onClick:()=>x(a=>!a),children:"endpoints"})}),aM.length>0&&(0,d.jsx)(M.r1,{title:"Domain",children:aM.map(a=>(0,d.jsx)(M.vu,{on:J.has(a),onClick:()=>aP(a,K),children:a},a))}),aO.length>0&&(0,d.jsx)(M.r1,{title:"Method",children:aO.map(a=>(0,d.jsx)(M.vu,{on:aa.has(a),onClick:()=>aP(a,ab),children:a},a))}),aN.length>0&&(0,d.jsx)(M.r1,{title:"Source",children:aN.map(a=>(0,d.jsx)(M.vu,{on:L.has(a),onClick:()=>aP(a,W),children:a.toLowerCase()},a))}),aQ>0&&(0,d.jsx)("button",{type:"button",onClick:aR,className:"mt-1 w-full rounded-md border border-white/10 px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/5 hover:text-foreground",children:"clear filters"})]}),(0,d.jsx)(M.er,{title:"Legend",trigger:(a,b)=>(0,d.jsx)("button",{type:"button",onClick:b,title:"Legend",className:(0,n.cn)("glass flex size-8 items-center justify-center rounded-lg transition-colors",a?"text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,d.jsx)(R.A,{className:"size-4"})}),children:(0,d.jsxs)("ul",{className:"space-y-1.5 text-[10.5px] text-muted-foreground",children:[(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{"aria-hidden":!0,className:"inline-block h-px w-6 bg-[#6b6b6b]"}),(0,d.jsx)("span",{children:"foreign key \xb7 drag from a table handle"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{"aria-hidden":!0,className:"inline-block h-0 w-6 border-t border-dashed",style:{borderColor:"#4ea1ff"}}),(0,d.jsx)("span",{children:"endpoint read \xb7 GET / POST / etc"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{"aria-hidden":!0,className:"inline-block h-0 w-6 border-t border-dashed",style:{borderColor:"#ffb86b"}}),(0,d.jsx)("span",{children:"endpoint write"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-block rounded border border-dashed border-sky-400/50 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-sky-300",children:"draft"}),(0,d.jsx)("span",{children:"agent-proposed \xb7 approve to persist"})]})]})}),!C&&(0,d.jsx)("button",{onClick:()=>D(!0),title:"Show panel",className:"glass flex size-8 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:text-foreground",children:(0,d.jsx)(S.A,{className:"size-4"})})]}),aX&&(0,d.jsxs)(g.Zk,{position:"bottom-center",className:"glass flex items-center gap-1 rounded-xl p-1.5",children:[(0,d.jsxs)("button",{onClick:ah,disabled:!aY,title:"Undo (⌘Z)",className:"flex items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground disabled:opacity-30 disabled:hover:bg-transparent",children:[(0,d.jsx)(T.A,{className:"size-3.5"})," undo"]}),(0,d.jsxs)("button",{onClick:ai,disabled:!aZ,title:"Redo (⇧⌘Z)",className:"flex items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground disabled:opacity-30 disabled:hover:bg-transparent",children:[(0,d.jsx)(U.A,{className:"size-3.5"})," redo"]}),!l&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"mx-1 h-4 w-px bg-white/10"}),(0,d.jsxs)("button",{onClick:aV,disabled:H,title:"Discard draft",className:"flex items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-red-500/15 hover:text-red-300 disabled:opacity-40",children:[(0,d.jsx)(k.A,{className:"size-3.5"})," discard"]}),(0,d.jsxs)("button",{onClick:aU,disabled:H,title:"Approve and persist to the schema",className:"flex items-center gap-1 rounded-md border border-emerald-500/40 bg-emerald-500/15 px-2.5 py-1 text-[11px] font-semibold text-emerald-300 transition-colors hover:bg-emerald-500/25 disabled:opacity-40",children:[(0,d.jsx)(V.A,{className:"size-3.5"})," approve draft"]})]})]})]}),C&&(0,d.jsx)(F,{selected:y,tables:am,relations:ar,endpoints:an,draftGraph:aW,onClose:()=>{D(!1),G("details")},commentsContent:s,commentsCount:t,activeTab:E,onTabChange:G,onAddComment:u,topOffset:l?64:void 0})]})})}},92994:(a,b,c)=>{c.d(b,{er:()=>g,r1:()=>h,vu:()=>i});var d=c(48249),e=c(67484),f=c(33191);function g({trigger:a,title:b,align:c="right",children:h}){let[i,j]=(0,e.useState)(!1),k=(0,e.useRef)(null);return(0,d.jsxs)("div",{ref:k,className:"relative",children:[a(i,()=>j(a=>!a)),i&&(0,d.jsxs)("div",{className:(0,f.cn)("glass absolute top-full z-30 mt-1.5 w-64 rounded-xl p-3 shadow-xl","right"===c?"right-0":"left-0"),children:[b&&(0,d.jsx)("div",{className:"mb-2 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:b}),h]})]})}function h({title:a,children:b}){return(0,d.jsxs)("div",{className:"mb-2.5 last:mb-0",children:[(0,d.jsx)("div",{className:"mb-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground/80",children:a}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1",children:b})]})}function i({on:a,onClick:b,children:c,tone:e="default"}){return(0,d.jsx)("button",{type:"button",onClick:b,className:(0,f.cn)("rounded-md border px-2 py-0.5 text-[11px] font-medium transition-colors",{default:a?"border-foreground/40 bg-white/10 text-foreground":"border-white/10 text-muted-foreground hover:text-foreground",danger:a?"border-red-500/40 bg-red-500/15 text-red-300":"border-white/10 text-muted-foreground hover:text-foreground",accent:a?"border-sky-500/40 bg-sky-500/15 text-sky-300":"border-white/10 text-muted-foreground hover:text-foreground"}[e]),children:c})}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=3530,exports.ids=[3530],exports.modules={19225:(a,b,c)=>{a.exports=c(44870)},31059:(a,b,c)=>{c.d(b,{ie:()=>f});var d=c(37096),e=c(71484);function f(...a){return a[0].columns?new g(a[0].columns,a[0].name):new g(a)}class g{static [d.i]="SQLitePrimaryKeyBuilder";columns;name;constructor(a,b){this.columns=a,this.name=b}build(a){return new h(a,this.columns,this.name)}}class h{constructor(a,b,c){this.table=a,this.columns=b,this.name=c}static [d.i]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[e.jo.Symbol.Name]}_${this.columns.map(a=>a.name).join("_")}_pk`}}},40377:(a,b,c)=>{c.d(b,{U9:()=>e});var d=c(91430);function e(a){return(0,d.ll)`count(${a||d.ll.raw("*")})`.mapWith(Number)}},76968:(a,b,c)=>{c.d(b,{GL:()=>i,Pe:()=>h});var d=c(37096);class e{constructor(a,b){this.name=a,this.unique=b}static [d.i]="SQLiteIndexBuilderOn";on(...a){return new f(this.name,a,this.unique)}}class f{static [d.i]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new g(this.config,a)}}class g{static [d.i]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}function h(a){return new e(a,!1)}function i(a){return new e(a,!0)}},84314:(a,b,c)=>{c.d(b,{Ay:()=>ao});var d=c(78474),e=c(73024),f=c(51455),g=c(76760),h=c(57075);let i="files",j="directories",k="files_directories",l={root:".",fileFilter:a=>!0,directoryFilter:a=>!0,type:i,lstat:!1,depth:0x80000000,alwaysStat:!1,highWaterMark:4096};Object.freeze(l);let m="READDIRP_RECURSIVE_ERROR",n=new Set(["ENOENT","EPERM","EACCES","ELOOP",m]),o=[j,"all",k,i],p=new Set([j,"all",k]),q=new Set(["all",k,i]),r="win32"===process.platform,s=a=>!0,t=a=>{if(void 0===a)return s;if("function"==typeof a)return a;if("string"==typeof a){let b=a.trim();return a=>a.basename===b}if(Array.isArray(a)){let b=a.map(a=>a.trim());return a=>b.some(b=>a.basename===b)}return s};class u extends h.Readable{parents;reading;parent;_stat;_maxDepth;_wantsDir;_wantsFile;_wantsEverything;_root;_isDirent;_statsProp;_rdOptions;_fileFilter;_directoryFilter;constructor(a={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:a.highWaterMark});const b={...l,...a},{root:c,type:d}=b;this._fileFilter=t(b.fileFilter),this._directoryFilter=t(b.directoryFilter);const e=b.lstat?f.lstat:f.stat;r?this._stat=a=>e(a,{bigint:!0}):this._stat=e,this._maxDepth=null!=b.depth&&Number.isSafeInteger(b.depth)?b.depth:l.depth,this._wantsDir=!!d&&p.has(d),this._wantsFile=!!d&&q.has(d),this._wantsEverything="all"===d,this._root=(0,g.resolve)(c),this._isDirent=!b.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(c,1)],this.reading=!1,this.parent=void 0}async _read(a){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&a>0;){let b=this.parent,c=b&&b.files;if(c&&c.length>0){let{path:d,depth:e}=b,f=c.splice(0,a).map(a=>this._formatEntry(a,d));for(let b of(await Promise.all(f))){if(!b)continue;if(this.destroyed)return;let c=await this._getEntryType(b);"directory"===c&&this._directoryFilter(b)?(e<=this._maxDepth&&this.parents.push(this._exploreDir(b.fullPath,e+1)),this._wantsDir&&(this.push(b),a--)):("file"===c||this._includeAsFile(b))&&this._fileFilter(b)&&this._wantsFile&&(this.push(b),a--)}}else{let a=this.parents.pop();if(!a){this.push(null);break}if(this.parent=await a,this.destroyed)return}}}catch(a){this.destroy(a)}finally{this.reading=!1}}}async _exploreDir(a,b){let c;try{c=await (0,f.readdir)(a,this._rdOptions)}catch(a){this._onError(a)}return{files:c,depth:b,path:a}}async _formatEntry(a,b){let c,d=this._isDirent?a.name:a;try{let e=(0,g.resolve)((0,g.join)(b,d));(c={path:(0,g.relative)(this._root,e),fullPath:e,basename:d})[this._statsProp]=this._isDirent?a:await this._stat(e)}catch(a){this._onError(a);return}return c}_onError(a){n.has(a.code)&&!this.destroyed?this.emit("warn",a):this.destroy(a)}async _getEntryType(a){if(!a&&this._statsProp in a)return"";let b=a[this._statsProp];if(b.isFile())return"file";if(b.isDirectory())return"directory";if(b&&b.isSymbolicLink()){let b=a.fullPath;try{let a=await (0,f.realpath)(b),c=await (0,f.lstat)(a);if(c.isFile())return"file";if(c.isDirectory()){let c=a.length;if(b.startsWith(a)&&b.substr(c,1)===g.sep){let c=Error(`Circular symlink detected: "${b}" points to "${a}"`);return c.code=m,this._onError(c)}return"directory"}}catch(a){return this._onError(a),""}}}_includeAsFile(a){let b=a&&a[this._statsProp];return b&&this._wantsEverything&&!b.isDirectory()}}var v=c(48161);let w=()=>{},x=process.platform,y="win32"===x,z="darwin"===x,A="linux"===x,B="freebsd"===x,C="OS400"===(0,v.type)(),D="all",E="ready",F="add",G="change",H="addDir",I="unlink",J="unlinkDir",K="raw",L="error",M={lstat:f.lstat,stat:f.stat},N="listeners",O="errHandlers",P="rawEmitters",Q=[N,O,P],R=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),S=(a,b)=>{a instanceof Set?a.forEach(b):b(a)},T=(a,b,c)=>{let d=a[b];d instanceof Set||(a[b]=d=new Set([d])),d.add(c)},U=(a,b,c)=>{let d=a[b];d instanceof Set?d.delete(c):d===c&&delete a[b]},V=a=>a instanceof Set?0===a.size:!a,W=new Map;function X(a,b,c,d,f){try{return(0,e.watch)(a,{persistent:b.persistent},(b,d)=>{c(a),f(b,d,{watchedPath:a}),d&&a!==d&&Y(g.resolve(a,d),N,g.join(a,d))})}catch(a){d(a);return}}let Y=(a,b,c,d,e)=>{let f=W.get(a);f&&S(f[b],a=>{a(c,d,e)})},Z=new Map;class ${fsw;_boundHandleError;constructor(a){this.fsw=a,this._boundHandleError=b=>a._handleError(b)}_watchWithNodeFs(a,b){let c,d=this.fsw.options,h=g.dirname(a),i=g.basename(a);this.fsw._getWatchedDir(h).add(i);let j=g.resolve(a),k={persistent:d.persistent};if(b||(b=w),d.usePolling)k.interval=d.interval!==d.binaryInterval&&R.has(g.extname(i).slice(1).toLowerCase())?d.binaryInterval:d.interval,c=((a,b,c,d)=>{let{listener:f,rawEmitter:g}=d,h=Z.get(b),i=h&&h.options;return i&&(i.persistent<c.persistent||i.interval>c.interval)&&((0,e.unwatchFile)(b),h=void 0),h?(T(h,N,f),T(h,P,g)):(h={listeners:f,rawEmitters:g,options:c,watcher:(0,e.watchFile)(b,c,(c,d)=>{S(h.rawEmitters,a=>{a(G,b,{curr:c,prev:d})});let e=c.mtimeMs;(c.size!==d.size||e>d.mtimeMs||0===e)&&S(h.listeners,b=>b(a,c))})},Z.set(b,h)),()=>{U(h,N,f),U(h,P,g),V(h.listeners)&&(Z.delete(b),(0,e.unwatchFile)(b),h.options=h.watcher=void 0,Object.freeze(h))}})(a,j,k,{listener:b,rawEmitter:this.fsw._emitRaw});else c=((a,b,c,d)=>{let e,{listener:g,errHandler:h,rawEmitter:i}=d,j=W.get(b);if(!c.persistent){if(!(e=X(a,c,g,h,i)))return;return e.close.bind(e)}if(j)T(j,N,g),T(j,O,h),T(j,P,i);else{if(!(e=X(a,c,Y.bind(null,b,N),h,Y.bind(null,b,P))))return;e.on(L,async c=>{let d=Y.bind(null,b,O);if(j&&(j.watcherUnusable=!0),y&&"EPERM"===c.code)try{let b=await (0,f.open)(a,"r");await b.close(),d(c)}catch(a){}else d(c)}),j={listeners:g,errHandlers:h,rawEmitters:i,watcher:e},W.set(b,j)}return()=>{if(U(j,N,g),U(j,O,h),U(j,P,i),V(j.listeners)){let a;j.watcher.close(),W.delete(b),Q.forEach((a=j,b=>{let c=a[b];c instanceof Set?c.clear():delete a[b]})),j.watcher=void 0,Object.freeze(j)}}})(a,j,k,{listener:b,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return c}_handleFile(a,b,c){if(this.fsw.closed)return;let d=g.dirname(a),e=g.basename(a),h=this.fsw._getWatchedDir(d),i=b;if(h.has(e))return;let j=async(b,c)=>{if(this.fsw._throttle("watch",a,5))if(c&&0!==c.mtimeMs){if(h.has(e)){let b=c.atimeMs,d=c.mtimeMs;(!b||b<=d||d!==i.mtimeMs)&&this.fsw._emit(G,a,c),i=c}}else try{let c=await (0,f.stat)(a);if(this.fsw.closed)return;let d=c.atimeMs,e=c.mtimeMs;if((!d||d<=e||e!==i.mtimeMs)&&this.fsw._emit(G,a,c),(z||A||B)&&i.ino!==c.ino){this.fsw._closeFile(b),i=c;let d=this._watchWithNodeFs(a,j);d&&this.fsw._addPathCloser(b,d)}else i=c}catch(a){this.fsw._remove(d,e)}},k=this._watchWithNodeFs(a,j);if(!(c&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(a)){if(!this.fsw._throttle(F,a,0))return;this.fsw._emit(F,a,b)}return k}async _handleSymlink(a,b,c,d){if(this.fsw.closed)return;let e=a.fullPath,g=this.fsw._getWatchedDir(b);if(!this.fsw.options.followSymlinks){let b;this.fsw._incrReadyCount();try{b=await (0,f.realpath)(c)}catch(a){return this.fsw._emitReady(),!0}if(this.fsw.closed)return;return g.has(d)?this.fsw._symlinkPaths.get(e)!==b&&(this.fsw._symlinkPaths.set(e,b),this.fsw._emit(G,c,a.stats)):(g.add(d),this.fsw._symlinkPaths.set(e,b),this.fsw._emit(F,c,a.stats)),this.fsw._emitReady(),!0}if(this.fsw._symlinkPaths.has(e))return!0;this.fsw._symlinkPaths.set(e,!0)}_handleRead(a,b,c,d,e,f,h){a=g.join(a,"");let i=d?`${a}:${d}`:a;if(!(h=this.fsw._throttle("readdir",i,1e3)))return;let j=this.fsw._getWatchedDir(c.path),k=new Set,l=this.fsw._readdirp(a,{fileFilter:a=>c.filterPath(a),directoryFilter:a=>c.filterDir(a)});if(l)return l.on("data",async h=>{if(this.fsw.closed){l=void 0;return}let i=h.path,m=g.join(a,i);if(k.add(i),!(h.stats.isSymbolicLink()&&await this._handleSymlink(h,a,m,i))){if(this.fsw.closed){l=void 0;return}i!==d&&(d||j.has(i))||(this.fsw._incrReadyCount(),m=g.join(e,g.relative(e,m)),this._addToNodeFs(m,b,c,f+1))}}).on(L,this._boundHandleError),new Promise((b,g)=>{if(!l)return g();l.once("end",()=>{if(this.fsw.closed){l=void 0;return}let g=!!h&&h.clear();b(void 0),j.getChildren().filter(b=>b!==a&&!k.has(b)).forEach(b=>{this.fsw._remove(a,b)}),l=void 0,g&&this._handleRead(a,!1,c,d,e,f,h)})})}async _handleDir(a,b,c,d,e,f,h){let i,j,k=this.fsw._getWatchedDir(g.dirname(a)),l=k.has(g.basename(a));c&&this.fsw.options.ignoreInitial||e||l||this.fsw._emit(H,a,b),k.add(g.basename(a)),this.fsw._getWatchedDir(a);let m=this.fsw.options.depth;if((null==m||d<=m)&&!this.fsw._symlinkPaths.has(h)){if(!e&&(await this._handleRead(a,c,f,e,a,d,i),this.fsw.closed))return;j=this._watchWithNodeFs(a,(b,c)=>{c&&0===c.mtimeMs||this._handleRead(b,!1,f,e,a,d,i)})}return j}async _addToNodeFs(a,b,c,d,e){let h=this.fsw._emitReady;if(this.fsw._isIgnored(a)||this.fsw.closed)return h(),!1;let i=this.fsw._getWatchHelpers(a);c&&(i.filterPath=a=>c.filterPath(a),i.filterDir=a=>c.filterDir(a));try{let c,j=await M[i.statMethod](i.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(i.watchPath,j))return h(),!1;let k=this.fsw.options.followSymlinks;if(j.isDirectory()){let h=g.resolve(a),l=k?await (0,f.realpath)(a):a;if(this.fsw.closed||(c=await this._handleDir(i.watchPath,j,b,d,e,i,l),this.fsw.closed))return;h!==l&&void 0!==l&&this.fsw._symlinkPaths.set(h,l)}else if(j.isSymbolicLink()){let e=k?await (0,f.realpath)(a):a;if(this.fsw.closed)return;let h=g.dirname(i.watchPath);if(this.fsw._getWatchedDir(h).add(i.watchPath),this.fsw._emit(F,i.watchPath,j),c=await this._handleDir(h,j,b,d,a,i,e),this.fsw.closed)return;void 0!==e&&this.fsw._symlinkPaths.set(g.resolve(a),e)}else c=this._handleFile(i.watchPath,j,b);return h(),c&&this.fsw._addPathCloser(a,c),!1}catch(b){if(this.fsw._handleError(b))return h(),a}}}let _=/\\/g,aa=/\/\//g,ab=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,ac=/^\.[/\\]/;function ad(a){return Array.isArray(a)?a:[a]}let ae=a=>"object"==typeof a&&null!==a&&!(a instanceof RegExp);function af(a,b,c){let d=function(a){if("string"!=typeof a)throw Error("string expected");a=(a=g.normalize(a)).replace(/\\/g,"/");let b=!1;return a.startsWith("//")&&(b=!0),a=a.replace(aa,"/"),b&&(a="/"+a),a}(b);for(let b=0;b<a.length;b++)if((0,a[b])(d,c))return!0;return!1}let ag=a=>{let b=ad(a).flat();if(!b.every(a=>"string"==typeof a))throw TypeError(`Non-string provided as watch path: ${b}`);return b.map(ai)},ah=a=>{let b=a.replace(_,"/"),c=!1;return b.startsWith("//")&&(c=!0),b=b.replace(aa,"/"),c&&(b="/"+b),b},ai=a=>ah(g.normalize(ah(a))),aj=(a="")=>b=>"string"==typeof b?ai(g.isAbsolute(b)?b:g.join(a,b)):b,ak=Object.freeze(new Set);class al{path;_removeWatcher;items;constructor(a,b){this.path=a,this._removeWatcher=b,this.items=new Set}add(a){let{items:b}=this;b&&"."!==a&&".."!==a&&b.add(a)}async remove(a){let{items:b}=this;if(!b||(b.delete(a),b.size>0))return;let c=this.path;try{await (0,f.readdir)(c)}catch(a){this._removeWatcher&&this._removeWatcher(g.dirname(c),g.basename(c))}}has(a){let{items:b}=this;if(b)return b.has(a)}getChildren(){let{items:a}=this;return a?[...a.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=w,this.items=ak,Object.freeze(this)}}class am{fsw;path;watchPath;fullWatchPath;dirParts;followSymlinks;statMethod;constructor(a,b,c){this.fsw=c;const d=a;this.path=a=a.replace(ac,""),this.watchPath=d,this.fullWatchPath=g.resolve(d),this.dirParts=[],this.dirParts.forEach(a=>{a.length>1&&a.pop()}),this.followSymlinks=b,this.statMethod=b?"stat":"lstat"}entryPath(a){return g.join(this.watchPath,g.relative(this.watchPath,a.fullPath))}filterPath(a){let{stats:b}=a;if(b&&b.isSymbolicLink())return this.filterDir(a);let c=this.entryPath(a);return this.fsw._isntIgnored(c,b)&&this.fsw._hasReadPermissions(b)}filterDir(a){return this.fsw._isntIgnored(this.entryPath(a),a.stats)}}class an extends d.EventEmitter{closed;options;_closers;_ignoredPaths;_throttled;_streams;_symlinkPaths;_watched;_pendingWrites;_pendingUnlinks;_readyCount;_emitReady;_closePromise;_userIgnored;_readyEmitted;_emitRaw;_boundRemove;_nodeFsHandler;constructor(a={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;const b=a.awaitWriteFinish,c={stabilityThreshold:2e3,pollInterval:100},d={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...a,ignored:a.ignored?ad(a.ignored):ad([]),awaitWriteFinish:!0===b?c:"object"==typeof b&&{...c,...b}};C&&(d.usePolling=!0),void 0===d.atomic&&(d.atomic=!d.usePolling);const e=process.env.CHOKIDAR_USEPOLLING;if(void 0!==e){const a=e.toLowerCase();"false"===a||"0"===a?d.usePolling=!1:"true"===a||"1"===a?d.usePolling=!0:d.usePolling=!!a}const f=process.env.CHOKIDAR_INTERVAL;f&&(d.interval=Number.parseInt(f,10));let g=0;this._emitReady=()=>{++g>=this._readyCount&&(this._emitReady=w,this._readyEmitted=!0,process.nextTick(()=>this.emit(E)))},this._emitRaw=(...a)=>this.emit(K,...a),this._boundRemove=this._remove.bind(this),this.options=d,this._nodeFsHandler=new $(this),Object.freeze(d)}_addIgnoredPath(a){if(ae(a)){for(let b of this._ignoredPaths)if(ae(b)&&b.path===a.path&&b.recursive===a.recursive)return}this._ignoredPaths.add(a)}_removeIgnoredPath(a){if(this._ignoredPaths.delete(a),"string"==typeof a)for(let b of this._ignoredPaths)ae(b)&&b.path===a&&this._ignoredPaths.delete(b)}add(a,b,c){let{cwd:d}=this.options;this.closed=!1,this._closePromise=void 0;let e=ag(a);return d&&(e=e.map(a=>g.isAbsolute(a)?a:g.join(d,a))),e.forEach(a=>{this._removeIgnoredPath(a)}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=e.length,Promise.all(e.map(async a=>{let d=await this._nodeFsHandler._addToNodeFs(a,!c,void 0,0,b);return d&&this._emitReady(),d})).then(a=>{this.closed||a.forEach(a=>{a&&this.add(g.dirname(a),g.basename(b||a))})}),this}unwatch(a){if(this.closed)return this;let b=ag(a),{cwd:c}=this.options;return b.forEach(a=>{g.isAbsolute(a)||this._closers.has(a)||(c&&(a=g.join(c,a)),a=g.resolve(a)),this._closePath(a),this._addIgnoredPath(a),this._watched.has(a)&&this._addIgnoredPath({path:a,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let a=[];return this._closers.forEach(b=>b.forEach(b=>{let c=b();c instanceof Promise&&a.push(c)})),this._streams.forEach(a=>a.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(a=>a.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=a.length?Promise.all(a).then(()=>void 0):Promise.resolve(),this._closePromise}getWatched(){let a={};return this._watched.forEach((b,c)=>{a[(this.options.cwd?g.relative(this.options.cwd,c):c)||"."]=b.getChildren().sort()}),a}emitWithAll(a,b){this.emit(a,...b),a!==L&&this.emit(D,a,...b)}async _emit(a,b,c){let d;if(this.closed)return;let e=this.options;y&&(b=g.normalize(b)),e.cwd&&(b=g.relative(e.cwd,b));let h=[b];null!=c&&h.push(c);let i=e.awaitWriteFinish;if(i&&(d=this._pendingWrites.get(b)))return d.lastChange=new Date,this;if(e.atomic){if(a===I)return this._pendingUnlinks.set(b,[a,...h]),setTimeout(()=>{this._pendingUnlinks.forEach((a,b)=>{this.emit(...a),this.emit(D,...a),this._pendingUnlinks.delete(b)})},"number"==typeof e.atomic?e.atomic:100),this;a===F&&this._pendingUnlinks.has(b)&&(a=G,this._pendingUnlinks.delete(b))}if(i&&(a===F||a===G)&&this._readyEmitted){let c=(b,c)=>{b?(a=L,h[0]=b,this.emitWithAll(a,h)):c&&(h.length>1?h[1]=c:h.push(c),this.emitWithAll(a,h))};return this._awaitWriteFinish(b,i.stabilityThreshold,a,c),this}if(a===G&&!this._throttle(G,b,50))return this;if(e.alwaysStat&&void 0===c&&(a===F||a===H||a===G)){let a,c=e.cwd?g.join(e.cwd,b):b;try{a=await (0,f.stat)(c)}catch(a){}if(!a||this.closed)return;h.push(a)}return this.emitWithAll(a,h),this}_handleError(a){let b=a&&a.code;return a&&"ENOENT"!==b&&"ENOTDIR"!==b&&(!this.options.ignorePermissionErrors||"EPERM"!==b&&"EACCES"!==b)&&this.emit(L,a),a||this.closed}_throttle(a,b,c){let d;this._throttled.has(a)||this._throttled.set(a,new Map);let e=this._throttled.get(a);if(!e)throw Error("invalid throttle");let f=e.get(b);if(f)return f.count++,!1;let g=()=>{let a=e.get(b),c=a?a.count:0;return e.delete(b),clearTimeout(d),a&&clearTimeout(a.timeoutObject),c},h={timeoutObject:d=setTimeout(g,c),clear:g,count:0};return e.set(b,h),h}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(a,b,c,d){let f,h=this.options.awaitWriteFinish;if("object"!=typeof h)return;let i=h.pollInterval,j=a;this.options.cwd&&!g.isAbsolute(a)&&(j=g.join(this.options.cwd,a));let k=new Date,l=this._pendingWrites;l.has(a)||(l.set(a,{lastChange:k,cancelWait:()=>(l.delete(a),clearTimeout(f),c)}),f=setTimeout(function c(g){(0,e.stat)(j,(e,h)=>{if(e||!l.has(a)){e&&"ENOENT"!==e.code&&d(e);return}let j=Number(new Date);g&&h.size!==g.size&&(l.get(a).lastChange=j),j-l.get(a).lastChange>=b?(l.delete(a),d(void 0,h)):f=setTimeout(c,i,h)})},i))}_isIgnored(a,b){if(this.options.atomic&&ab.test(a))return!0;if(!this._userIgnored){let{cwd:a}=this.options,b=(this.options.ignored||[]).map(aj(a)),c=[...[...this._ignoredPaths].map(aj(a)),...b];this._userIgnored=function(a,b){if(null==a)throw TypeError("anymatch: specify first argument");let c=ad(a).map(a=>"function"==typeof a?a:"string"==typeof a?b=>a===b:a instanceof RegExp?b=>a.test(b):"object"==typeof a&&null!==a?b=>{if(a.path===b)return!0;if(a.recursive){let c=g.relative(a.path,b);return!!c&&!c.startsWith("..")&&!g.isAbsolute(c)}return!1}:()=>!1);return null==b?(a,b)=>af(c,a,b):af(c,b)}(c,void 0)}return this._userIgnored(a,b)}_isntIgnored(a,b){return!this._isIgnored(a,b)}_getWatchHelpers(a){return new am(a,this.options.followSymlinks,this)}_getWatchedDir(a){let b=g.resolve(a);return this._watched.has(b)||this._watched.set(b,new al(b,this._boundRemove)),this._watched.get(b)}_hasReadPermissions(a){return!!this.options.ignorePermissionErrors||!!(256&Number(a.mode))}_remove(a,b,c){let d=g.join(a,b),e=g.resolve(d);if(c=null!=c?c:this._watched.has(d)||this._watched.has(e),!this._throttle("remove",d,100))return;c||1!==this._watched.size||this.add(a,b,!0),this._getWatchedDir(d).getChildren().forEach(a=>this._remove(d,a));let f=this._getWatchedDir(a),h=f.has(b);f.remove(b),this._symlinkPaths.has(e)&&this._symlinkPaths.delete(e);let i=d;if(this.options.cwd&&(i=g.relative(this.options.cwd,d)),this.options.awaitWriteFinish&&this._pendingWrites.has(i)&&this._pendingWrites.get(i).cancelWait()===F)return;this._watched.delete(d),this._watched.delete(e);let j=c?J:I;h&&!this._isIgnored(d)&&this._emit(j,d),this._closePath(d)}_closePath(a){this._closeFile(a);let b=g.dirname(a);this._getWatchedDir(b).remove(g.basename(a))}_closeFile(a){let b=this._closers.get(a);b&&(b.forEach(a=>a()),this._closers.delete(a))}_addPathCloser(a,b){if(!b)return;let c=this._closers.get(a);c||(c=[],this._closers.set(a,c)),c.push(b)}_readdirp(a,b){if(this.closed)return;let c=function(a,b={}){let c=b.entryType||b.type;if("both"===c&&(c=k),c&&(b.type=c),a){if("string"!=typeof a)throw TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");else if(c&&!o.includes(c))throw Error(`readdirp: Invalid type passed. Use one of ${o.join(", ")}`)}else throw Error("readdirp: root argument is required. Usage: readdirp(root, options)");return b.root=a,new u(b)}(a,{type:D,alwaysStat:!0,lstat:!0,...b,depth:0});return this._streams.add(c),c.once("close",()=>{c=void 0}),c.once("end",()=>{c&&(this._streams.delete(c),c=void 0)}),c}}let ao={watch:function(a,b={}){let c=new an(b);return c.add(a),c},FSWatcher:an}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports.id=5592,exports.ids=[5592],exports.modules={4782:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"connection",{enumerable:!0,get:function(){return k}});let d=c(29294),e=c(63033),f=c(23445),g=c(15693),h=c(48894),i=c(92305);c(65934);let j=c(72339);function k(){let a=d.workAsyncStorage.getStore(),b=e.workUnitAsyncStorage.getStore();if(a){if(b&&"after"===b.phase&&!(0,i.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside \`after()\`. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but \`after()\` executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E827",enumerable:!1,configurable:!0});if(a.forceStatic)return Promise.resolve(void 0);if(a.dynamicShouldError)throw Object.defineProperty(new g.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`connection()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E847",enumerable:!1,configurable:!0});if(b)switch(b.type){case"cache":{let b=Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside "use cache". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual request, but caches must be able to be produced before a request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E841",enumerable:!1,configurable:!0});throw Error.captureStackTrace(b,k),a.invalidDynamicUsageError??=b,b}case"private-cache":{let b=Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside "use cache: private". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual navigation request, but caches must be able to be produced before a navigation request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E837",enumerable:!1,configurable:!0});throw Error.captureStackTrace(b,k),a.invalidDynamicUsageError??=b,b}case"unstable-cache":throw Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside a function cached with \`unstable_cache()\`. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E840",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1125",enumerable:!1,configurable:!0});case"prerender":case"prerender-client":case"prerender-runtime":return(0,h.makeHangingPromise)(b.renderSignal,a.route,"`connection()`");case"validation-client":{let a="`connection`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1063",enumerable:!1,configurable:!0})}case"prerender-ppr":return(0,f.postponeWithTracking)(a.route,"connection",b.dynamicTracking);case"prerender-legacy":return(0,f.throwToInterruptStaticGeneration)("connection",a,b);case"request":if((0,f.trackDynamicDataInDynamicRender)(b),b.asyncApiPromises)return b.asyncApiPromises.connection;return Promise.resolve(void 0)}}(0,e.throwForMissingRequestStore)("connection")}},7909:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"after",{enumerable:!0,get:function(){return e}});let d=c(29294);function e(a){let b=d.workAsyncStorage.getStore();if(!b)throw Object.defineProperty(Error("`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context"),"__NEXT_ERROR_CODE",{value:"E468",enumerable:!1,configurable:!0});let{afterContext:c}=b;return c.after(a)}},22688:(a,b)=>{"use strict";function c(){throw Object.defineProperty(Error('ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead'),"__NEXT_ERROR_CODE",{value:"E183",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ImageResponse",{enumerable:!0,get:function(){return c}})},23211:(a,b,c)=>{"use strict";var d=c(51703);c.o(d,"NextResponse")&&c.d(b,{NextResponse:function(){return d.NextResponse}})},30240:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={isBot:function(){return h},userAgent:function(){return j},userAgentFromString:function(){return i}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=(d=c(42399))&&d.__esModule?d:{default:d};function h(a){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver|GPTBot/i.test(a)}function i(a){return{...(0,g.default)(a),isBot:void 0!==a&&h(a)}}function j({headers:a}){return i(a.get("user-agent")||void 0)}},34327:(a,b,c)=>{"use strict";var d,e;Object.defineProperty(b,"__esModule",{value:!0}),d=c(7909),e=b,Object.keys(d).forEach(function(a){"default"===a||Object.prototype.hasOwnProperty.call(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:function(){return d[a]}})})},38293:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"URLPattern",{enumerable:!0,get:function(){return c}});let c="u"<typeof URLPattern?void 0:URLPattern},42399:(a,b,c)=>{var d,e={226:function(e,f){!function(g){"use strict";var h="function",i="undefined",j="object",k="string",l="major",m="model",n="name",o="type",p="vendor",q="version",r="architecture",s="console",t="mobile",u="tablet",v="smarttv",w="wearable",x="embedded",y="Amazon",z="Apple",A="ASUS",B="BlackBerry",C="Browser",D="Chrome",E="Firefox",F="Google",G="Huawei",H="Microsoft",I="Motorola",J="Opera",K="Samsung",L="Sharp",M="Sony",N="Xiaomi",O="Zebra",P="Facebook",Q="Chromium OS",R="Mac OS",S=function(a,b){var c={};for(var d in a)b[d]&&b[d].length%2==0?c[d]=b[d].concat(a[d]):c[d]=a[d];return c},T=function(a){for(var b={},c=0;c<a.length;c++)b[a[c].toUpperCase()]=a[c];return b},U=function(a,b){return typeof a===k&&-1!==V(b).indexOf(V(a))},V=function(a){return a.toLowerCase()},W=function(a,b){if(typeof a===k)return a=a.replace(/^\s\s*/,""),typeof b===i?a:a.substring(0,350)},X=function(a,b){for(var c,d,e,f,g,i,k=0;k<b.length&&!g;){var l=b[k],m=b[k+1];for(c=d=0;c<l.length&&!g&&l[c];)if(g=l[c++].exec(a))for(e=0;e<m.length;e++)i=g[++d],typeof(f=m[e])===j&&f.length>0?2===f.length?typeof f[1]==h?this[f[0]]=f[1].call(this,i):this[f[0]]=f[1]:3===f.length?typeof f[1]!==h||f[1].exec&&f[1].test?this[f[0]]=i?i.replace(f[1],f[2]):void 0:this[f[0]]=i?f[1].call(this,i,f[2]):void 0:4===f.length&&(this[f[0]]=i?f[3].call(this,i.replace(f[1],f[2])):void 0):this[f]=i||void 0;k+=2}},Y=function(a,b){for(var c in b)if(typeof b[c]===j&&b[c].length>0){for(var d=0;d<b[c].length;d++)if(U(b[c][d],a))return"?"===c?void 0:c}else if(U(b[c],a))return"?"===c?void 0:c;return a},Z={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},$={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[q,[n,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[q,[n,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[n,q],[/opios[\/ ]+([\w\.]+)/i],[q,[n,J+" Mini"]],[/\bopr\/([\w\.]+)/i],[q,[n,J]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,/(heytap|ovi)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[n,q],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[q,[n,"UC"+C]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i],[q,[n,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[q,[n,"WeChat"]],[/konqueror\/([\w\.]+)/i],[q,[n,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[q,[n,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[q,[n,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[n,/(.+)/,"$1 Secure "+C],q],[/\bfocus\/([\w\.]+)/i],[q,[n,E+" Focus"]],[/\bopt\/([\w\.]+)/i],[q,[n,J+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[q,[n,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[q,[n,"Dolphin"]],[/coast\/([\w\.]+)/i],[q,[n,J+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[q,[n,"MIUI "+C]],[/fxios\/([-\w\.]+)/i],[q,[n,E]],[/\bqihu|(qi?ho?o?|360)browser/i],[[n,"360 "+C]],[/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i],[[n,/(.+)/,"$1 "+C],q],[/(comodo_dragon)\/([\w\.]+)/i],[[n,/_/g," "],q],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[n,q],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i,/\[(linkedin)app\]/i],[n],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[n,P],q],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[n,q],[/\bgsa\/([\w\.]+) .*safari\//i],[q,[n,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[q,[n,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[q,[n,D+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[n,D+" WebView"],q],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[q,[n,"Android "+C]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[n,q],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[q,[n,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[q,n],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[n,[q,Y,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\/([\w\.]+)/i],[n,q],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[n,"Netscape"],q],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[q,[n,E+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i,/panasonic;(viera)/i],[n,q],[/(cobalt)\/([\w\.]+)/i],[n,[q,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[r,"amd64"]],[/(ia32(?=;))/i],[[r,V]],[/((?:i[346]|x)86)[;\)]/i],[[r,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[r,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[r,"armhf"]],[/windows (ce|mobile); ppc;/i],[[r,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[r,/ower/,"",V]],[/(sun4\w)[;\)]/i],[[r,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[r,V]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[m,[p,K],[o,u]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[m,[p,K],[o,t]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[m,[p,z],[o,t]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[m,[p,z],[o,u]],[/(macintosh);/i],[m,[p,z]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[m,[p,L],[o,t]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[m,[p,G],[o,u]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[m,[p,G],[o,t]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[m,/_/g," "],[p,N],[o,t]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[m,/_/g," "],[p,N],[o,u]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[m,[p,"OPPO"],[o,t]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[m,[p,"Vivo"],[o,t]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[m,[p,"Realme"],[o,t]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[m,[p,I],[o,t]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[m,[p,I],[o,u]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[m,[p,"LG"],[o,u]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[m,[p,"LG"],[o,t]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[m,[p,"Lenovo"],[o,u]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[m,/_/g," "],[p,"Nokia"],[o,t]],[/(pixel c)\b/i],[m,[p,F],[o,u]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[m,[p,F],[o,t]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[m,[p,M],[o,t]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[m,"Xperia Tablet"],[p,M],[o,u]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[m,[p,"OnePlus"],[o,t]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[m,[p,y],[o,u]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[m,/(.+)/g,"Fire Phone $1"],[p,y],[o,t]],[/(playbook);[-\w\),; ]+(rim)/i],[m,p,[o,u]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[m,[p,B],[o,t]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[m,[p,A],[o,u]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[m,[p,A],[o,t]],[/(nexus 9)/i],[m,[p,"HTC"],[o,u]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[p,[m,/_/g," "],[o,t]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[m,[p,"Acer"],[o,u]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[m,[p,"Meizu"],[o,t]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[p,m,[o,t]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[p,m,[o,u]],[/(surface duo)/i],[m,[p,H],[o,u]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[m,[p,"Fairphone"],[o,t]],[/(u304aa)/i],[m,[p,"AT&T"],[o,t]],[/\bsie-(\w*)/i],[m,[p,"Siemens"],[o,t]],[/\b(rct\w+) b/i],[m,[p,"RCA"],[o,u]],[/\b(venue[\d ]{2,7}) b/i],[m,[p,"Dell"],[o,u]],[/\b(q(?:mv|ta)\w+) b/i],[m,[p,"Verizon"],[o,u]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[m,[p,"Barnes & Noble"],[o,u]],[/\b(tm\d{3}\w+) b/i],[m,[p,"NuVision"],[o,u]],[/\b(k88) b/i],[m,[p,"ZTE"],[o,u]],[/\b(nx\d{3}j) b/i],[m,[p,"ZTE"],[o,t]],[/\b(gen\d{3}) b.+49h/i],[m,[p,"Swiss"],[o,t]],[/\b(zur\d{3}) b/i],[m,[p,"Swiss"],[o,u]],[/\b((zeki)?tb.*\b) b/i],[m,[p,"Zeki"],[o,u]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[p,"Dragon Touch"],m,[o,u]],[/\b(ns-?\w{0,9}) b/i],[m,[p,"Insignia"],[o,u]],[/\b((nxa|next)-?\w{0,9}) b/i],[m,[p,"NextBook"],[o,u]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[p,"Voice"],m,[o,t]],[/\b(lvtel\-)?(v1[12]) b/i],[[p,"LvTel"],m,[o,t]],[/\b(ph-1) /i],[m,[p,"Essential"],[o,t]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[m,[p,"Envizen"],[o,u]],[/\b(trio[-\w\. ]+) b/i],[m,[p,"MachSpeed"],[o,u]],[/\btu_(1491) b/i],[m,[p,"Rotor"],[o,u]],[/(shield[\w ]+) b/i],[m,[p,"Nvidia"],[o,u]],[/(sprint) (\w+)/i],[p,m,[o,t]],[/(kin\.[onetw]{3})/i],[[m,/\./g," "],[p,H],[o,t]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[m,[p,O],[o,u]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[m,[p,O],[o,t]],[/smart-tv.+(samsung)/i],[p,[o,v]],[/hbbtv.+maple;(\d+)/i],[[m,/^/,"SmartTV"],[p,K],[o,v]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[p,"LG"],[o,v]],[/(apple) ?tv/i],[p,[m,z+" TV"],[o,v]],[/crkey/i],[[m,D+"cast"],[p,F],[o,v]],[/droid.+aft(\w)( bui|\))/i],[m,[p,y],[o,v]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[m,[p,L],[o,v]],[/(bravia[\w ]+)( bui|\))/i],[m,[p,M],[o,v]],[/(mitv-\w{5}) bui/i],[m,[p,N],[o,v]],[/Hbbtv.*(technisat) (.*);/i],[p,m,[o,v]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[p,W],[m,W],[o,v]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[o,v]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[p,m,[o,s]],[/droid.+; (shield) bui/i],[m,[p,"Nvidia"],[o,s]],[/(playstation [345portablevi]+)/i],[m,[p,M],[o,s]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[m,[p,H],[o,s]],[/((pebble))app/i],[p,m,[o,w]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[m,[p,z],[o,w]],[/droid.+; (glass) \d/i],[m,[p,F],[o,w]],[/droid.+; (wt63?0{2,3})\)/i],[m,[p,O],[o,w]],[/(quest( 2| pro)?)/i],[m,[p,P],[o,w]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[p,[o,x]],[/(aeobc)\b/i],[m,[p,y],[o,x]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[m,[o,t]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[m,[o,u]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[o,u]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[o,t]],[/(android[-\w\. ]{0,9});.+buil/i],[m,[p,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[q,[n,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[q,[n,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[n,q],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[q,n]],os:[[/microsoft (windows) (vista|xp)/i],[n,q],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[n,[q,Y,Z]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[n,"Windows"],[q,Y,Z]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/ios;fbsv\/([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[q,/_/g,"."],[n,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[n,R],[q,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[q,n],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[n,q],[/\(bb(10);/i],[q,[n,B]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[q,[n,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[q,[n,E+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[q,[n,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[q,[n,"watchOS"]],[/crkey\/([\d\.]+)/i],[q,[n,D+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[n,Q],q],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[n,q],[/(sunos) ?([\w\.\d]*)/i],[[n,"Solaris"],q],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[n,q]]},_=function(a,b){if(typeof a===j&&(b=a,a=void 0),!(this instanceof _))return new _(a,b).getResult();var c=typeof g!==i&&g.navigator?g.navigator:void 0,d=a||(c&&c.userAgent?c.userAgent:""),e=c&&c.userAgentData?c.userAgentData:void 0,f=b?S($,b):$,s=c&&c.userAgent==d;return this.getBrowser=function(){var a,b={};return b[n]=void 0,b[q]=void 0,X.call(b,d,f.browser),b[l]=typeof(a=b[q])===k?a.replace(/[^\d\.]/g,"").split(".")[0]:void 0,s&&c&&c.brave&&typeof c.brave.isBrave==h&&(b[n]="Brave"),b},this.getCPU=function(){var a={};return a[r]=void 0,X.call(a,d,f.cpu),a},this.getDevice=function(){var a={};return a[p]=void 0,a[m]=void 0,a[o]=void 0,X.call(a,d,f.device),s&&!a[o]&&e&&e.mobile&&(a[o]=t),s&&"Macintosh"==a[m]&&c&&typeof c.standalone!==i&&c.maxTouchPoints&&c.maxTouchPoints>2&&(a[m]="iPad",a[o]=u),a},this.getEngine=function(){var a={};return a[n]=void 0,a[q]=void 0,X.call(a,d,f.engine),a},this.getOS=function(){var a={};return a[n]=void 0,a[q]=void 0,X.call(a,d,f.os),s&&!a[n]&&e&&"Unknown"!=e.platform&&(a[n]=e.platform.replace(/chrome os/i,Q).replace(/macos/i,R)),a},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return d},this.setUA=function(a){return d=typeof a===k&&a.length>350?W(a,350):a,this},this.setUA(d),this};_.VERSION="1.0.35",_.BROWSER=T([n,q,l]),_.CPU=T([r]),_.DEVICE=T([m,p,o,s,t,v,u,w,x]),_.ENGINE=_.OS=T([n,q]),typeof f!==i?(e.exports&&(f=e.exports=_),f.UAParser=_):c.amdO?void 0===(d=(function(){return _}).call(b,c,b,a))||(a.exports=d):typeof g!==i&&(g.UAParser=_);var aa=typeof g!==i&&(g.jQuery||g.Zepto);if(aa&&!aa.ua){var ab=new _;aa.ua=ab.getResult(),aa.ua.get=function(){return ab.getUA()},aa.ua.set=function(a){ab.setUA(a);var b=ab.getResult();for(var c in b)aa.ua[c]=b[c]}}}("object"==typeof window?window:this)}},f={};function g(a){var b=f[a];if(void 0!==b)return b.exports;var c=f[a]={exports:{}},d=!0;try{e[a].call(c.exports,c,c.exports,g),d=!1}finally{d&&delete f[a]}return c.exports}g.ab=__dirname+"/",a.exports=g(226)},51703:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ImageResponse:function(){return f.ImageResponse},NextRequest:function(){return g.NextRequest},NextResponse:function(){return h.NextResponse},URLPattern:function(){return j.URLPattern},after:function(){return k.after},connection:function(){return l.connection},userAgent:function(){return i.userAgent},userAgentFromString:function(){return i.userAgentFromString}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(22688),g=c(43690),h=c(70176),i=c(30240),j=c(38293),k=c(34327),l=c(4782)},70176:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextResponse",{enumerable:!0,get:function(){return l}});let d=c(91488),e=c(72642),f=c(62018),g=c(20445),h=c(91488),i=Symbol("internal response"),j=new Set([301,302,303,307,308]);function k(a,b){var c;if(null==a||null==(c=a.request)?void 0:c.headers){if(!(a.request.headers instanceof Headers))throw Object.defineProperty(Error("request.headers must be an instance of Headers"),"__NEXT_ERROR_CODE",{value:"E119",enumerable:!1,configurable:!0});let c=[];for(let[d,e]of a.request.headers)b.set("x-middleware-request-"+d,e),c.push(d);b.set("x-middleware-override-headers",c.join(","))}}class l extends Response{constructor(a,b={}){super(a,b);const c=this.headers,j=new Proxy(new h.ResponseCookies(c),{get(a,e,f){switch(e){case"delete":case"set":return(...f)=>{let g=Reflect.apply(a[e],a,f),i=new Headers(c);return g instanceof h.ResponseCookies&&c.set("x-middleware-set-cookie",g.getAll().map(a=>(0,d.stringifyCookie)(a)).join(",")),k(b,i),g};default:return g.ReflectAdapter.get(a,e,f)}}});this[i]={cookies:j,url:b.url?new e.NextURL(b.url,{headers:(0,f.toNodeOutgoingHttpHeaders)(c),nextConfig:b.nextConfig}):void 0}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,url:this.url,body:this.body,bodyUsed:this.bodyUsed,headers:Object.fromEntries(this.headers),ok:this.ok,redirected:this.redirected,status:this.status,statusText:this.statusText,type:this.type}}get cookies(){return this[i].cookies}static json(a,b){let c=Response.json(a,b);return new l(c.body,c)}static redirect(a,b){let c="number"==typeof b?b:(null==b?void 0:b.status)??307;if(!j.has(c))throw Object.defineProperty(RangeError('Failed to execute "redirect" on "response": Invalid status code'),"__NEXT_ERROR_CODE",{value:"E529",enumerable:!1,configurable:!0});let d="object"==typeof b?b:{},e=new Headers(null==d?void 0:d.headers);return e.set("Location",(0,f.validateURL)(a)),new l(null,{...d,headers:e,status:c})}static rewrite(a,b){let c=new Headers(null==b?void 0:b.headers);return c.set("x-middleware-rewrite",(0,f.validateURL)(a)),k(b,c),new l(null,{...b,headers:c})}static next(a){let b=new Headers(null==a?void 0:a.headers);return b.set("x-middleware-next","1"),k(a,b),new l(null,{...a,headers:b})}}},92305:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15693),g=c(3295);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=814,exports.ids=[814],exports.modules={19734:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bx:()=>p,HF:()=>o,Rw:()=>q,ap:()=>r});var e=c(44046),f=c(91430),g=c(34216),h=c(40377),i=c(56727),j=c(30046),k=c(72658),l=c(35498),m=c(24983),n=a([i,k,l,m]);[i,k,l,m]=n.then?(await n)():n;let r=e.Ik({tables:e.YO(e.Ik({name:e.Yj().trim().min(1),domain:e.Yj().nullish(),description:e.Yj().nullish(),columns:e.YO(e.Ik({name:e.Yj().trim().min(1),type:e.Yj().trim().min(1),isPk:e.zM().optional(),isFk:e.zM().optional(),nullable:e.zM().optional(),note:e.Yj().nullish()})).default([])})).default([]),relations:e.YO(e.Ik({fromTable:e.Yj(),fromColumn:e.Yj(),toTable:e.Yj(),toColumn:e.Yj(),label:e.Yj().nullish()})).default([]),endpoints:e.YO(e.Ik({method:e.Yj().trim().min(1),path:e.Yj().trim().min(1),domain:e.Yj().nullish(),description:e.Yj().nullish(),uses:e.YO(e.Ik({table:e.Yj(),access:e.Yj().default("read")})).default([])})).default([])});async function o(a=i.db){let b=await a.query.syncState.findFirst({where:(a,{eq:b})=>b(a.id,"singleton")});return b?.version??0}async function p(a=i.db){let[b]=await a.insert(j.syncState).values({id:"singleton",version:1}).onConflictDoUpdate({target:j.syncState.id,set:{version:(0,f.ll)`${j.syncState.version} + 1`}}).returning();return b.version}async function q(a,b=i.db){let c=r.parse(a),d=c.tables.map(a=>a.name);await b.delete(j.dbTable).where(d.length?(0,g.Uo)((0,g.eq)(j.dbTable.source,"INTROSPECTION"),(0,g.KL)(j.dbTable.name,d)):(0,g.eq)(j.dbTable.source,"INTROSPECTION"));let e=await b.query.dbTable.findMany({columns:{name:!0,x:!0,y:!0},with:{columns:{columns:{id:!0}}}}),f=new Map(e.map(a=>[a.name,a])),n=(0,m.wx)(c.tables.filter(a=>!f.has(a.name)).map(a=>({key:a.name,columnCount:a.columns.length})),e.map(a=>({x:a.x,y:a.y,columnCount:a.columns.length}))),o=new Map;for(let a of c.tables){let c=f.get(a.name),d=n.get(a.name),e=c?.x??d?.x??0,h=c?.y??d?.y??0,[i]=await b.insert(j.dbTable).values({name:a.name,domain:a.domain??null,description:a.description??null,source:"INTROSPECTION",x:e,y:h}).onConflictDoUpdate({target:j.dbTable.name,set:{domain:a.domain??null,description:a.description??null,source:"INTROSPECTION"}}).returning();o.set(a.name,i.id),await b.delete(j.dbColumn).where((0,g.eq)(j.dbColumn.tableId,i.id)),a.columns.length&&await b.insert(j.dbColumn).values(a.columns.map((a,b)=>({tableId:i.id,name:a.name,type:a.type,isPk:a.isPk??!1,isFk:a.isFk??!1,nullable:a.nullable??!0,note:a.note??null,ord:b})))}let s=[...o.values()];for(let a of(s.length&&await b.delete(j.dbRelation).where((0,g.or)((0,g.RV)(j.dbRelation.fromTableId,s),(0,g.RV)(j.dbRelation.toTableId,s))),c.relations)){let c=o.get(a.fromTable),d=o.get(a.toTable);c&&d&&await b.insert(j.dbRelation).values({fromTableId:c,toTableId:d,fromColumn:a.fromColumn,toColumn:a.toColumn,label:a.label??`${a.fromColumn} → ${a.toTable}.${a.toColumn}`})}let t=new Set(c.endpoints.map(a=>`${a.method} ${a.path}`)),u=(await b.query.endpoint.findMany({where:(a,{eq:b})=>b(a.source,"INTROSPECTION")})).filter(a=>!t.has(`${a.method} ${a.path}`)).map(a=>a.id);u.length&&await b.delete(j.endpoint).where((0,g.RV)(j.endpoint.id,u));let v=(await b.select({n:(0,h.U9)()}).from(j.endpoint))[0].n;for(let a of c.endpoints){let c,d,e=await b.query.endpoint.findFirst({where:(b,{and:c,eq:d})=>c(d(b.method,a.method),d(b.path,a.path))});if(e)c=e.x,d=e.y;else{let a=(0,k.gr)(v);c=a.x,d=a.y,v++}let[f]=await b.insert(j.endpoint).values({method:a.method,path:a.path,domain:a.domain??null,description:a.description??null,source:"INTROSPECTION",x:c,y:d}).onConflictDoUpdate({target:[j.endpoint.method,j.endpoint.path],set:{domain:a.domain??null,description:a.description??null,source:"INTROSPECTION"}}).returning();for(let c of(await b.delete(j.endpointTable).where((0,g.eq)(j.endpointTable.endpointId,f.id)),a.uses)){let a=o.get(c.table)??(await b.query.dbTable.findFirst({where:(a,{eq:b})=>b(a.name,c.table)}))?.id;a&&await b.insert(j.endpointTable).values({endpointId:f.id,tableId:a,access:c.access})}}await (0,l.X)(b);let w=await b.query.dbTable.findMany({where:(a,{eq:b})=>b(a.source,"INTROSPECTION"),columns:{x:!0,y:!0},with:{columns:{columns:{id:!0}}}});(0,m.v4)(w.map(a=>({x:a.x,y:a.y,columnCount:a.columns.length})))&&await (0,m.vk)(b);let x=await b.select({x:j.endpoint.x,y:j.endpoint.y}).from(j.endpoint);(0,k.ie)(x)&&await (0,k.ii)(b);let y=await p(b);return{tables:c.tables.length,relations:c.relations.length,endpoints:c.endpoints.length,version:y}}d()}catch(a){d(a)}})},24983:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{mn:()=>i,v4:()=>k,vk:()=>l,wx:()=>j});var e=c(34216),f=c(56727),g=c(30046),h=a([f]);function i(a){return 36+30*Math.max(0,a)+16}function j(a,b=[]){let c=[,,,,].fill(0);for(let a of b){let b=Math.max(0,Math.min(3,Math.round(a.x/320))),d=a.y+i(a.columnCount)+50;d>c[b]&&(c[b]=d)}let d=new Map;for(let b of a){let a=0;for(let b=1;b<4;b++)c[b]<c[a]&&(a=b);let e=320*a,f=c[a];d.set(b.key,{x:e,y:f}),c[a]=f+i(b.columnCount)+50}return d}function k(a){for(let b=0;b<a.length;b++)for(let c=b+1;c<a.length;c++){let d=a[b],e=a[c],f=i(d.columnCount),g=i(e.columnCount);if(d.x<e.x+300&&d.x+300>e.x&&d.y<e.y+g&&d.y+f>e.y)return!0}return!1}async function l(a=f.db){let b=await a.query.dbTable.findMany({where:(a,{eq:b})=>b(a.source,"INTROSPECTION"),with:{columns:{columns:{id:!0}}},orderBy:(a,{asc:b})=>b(a.name)});if(0===b.length)return 0;let c=j(b.map(a=>({key:a.id,columnCount:a.columns.length}))),d=0;for(let f of b){let b=c.get(f.id);b&&(Math.round(b.x)!==Math.round(f.x)||Math.round(b.y)!==Math.round(f.y))&&(await a.update(g.dbTable).set({x:b.x,y:b.y}).where((0,e.eq)(g.dbTable.id,f.id)),d++)}return d}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},30814:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{X2:()=>m,cL:()=>k});var e=c(44046),f=c(34216),g=c(56727),h=c(30046),i=c(19734),j=a([g,i]);[g,i]=j.then?(await j)():j;let n=e.Ik({files:e.YO(e.Ik({path:e.Yj().trim().min(1),root:e.Yj().nullish(),lang:e.Yj().nullish(),mtimeMs:e.ai().nullish(),size:e.ai().nullish()})).default([]),edges:e.YO(e.Ik({from:e.Yj().trim().min(1),to:e.Yj().trim().min(1)})).default([])});async function k(a,b=g.db){let c=n.parse(a),d=c.files.map(a=>a.path),e=new Set(d),j=c.edges.filter(a=>e.has(a.from)&&e.has(a.to)&&a.from!==a.to),l=function(a,b){let c=new Map;for(let b of a)c.set(b,[]);for(let a of b)c.get(a.from)?.push(a.to);let d=new Map,e=new Map,f=new Set,g=[],h=new Map,i=[],j=0,k=0;for(let b of a){if(d.has(b))continue;let a=[{v:b,iter:0}];for(d.set(b,j),e.set(b,j),j++,g.push(b),f.add(b);a.length;){let b=a[a.length-1],l=c.get(b.v)??[];if(b.iter<l.length){let c=l[b.iter++];d.has(c)?f.has(c)&&e.set(b.v,Math.min(e.get(b.v),d.get(c))):(d.set(c,j),e.set(c,j),j++,g.push(c),f.add(c),a.push({v:c,iter:0}))}else{if(e.get(b.v)===d.get(b.v)){let a,c=0;do a=g.pop(),f.delete(a),h.set(a,k),c++;while(a!==b.v);i.push(c),k++}a.pop();let c=a[a.length-1];c&&e.set(c.v,Math.min(e.get(c.v),e.get(b.v)))}}}let l=new Set;for(let a of b){let b=h.get(a.from);void 0!==b&&b===h.get(a.to)&&i[b]>1&&l.add(`${a.from}|${a.to}`)}return l}(d,j),m=new Map,o=new Map;for(let a of j)o.set(a.from,(o.get(a.from)??0)+1),m.set(a.to,(m.get(a.to)??0)+1);for(let a of(await b.delete(h.codeFile).where((0,f.KL)(h.codeFile.path,d)),c.files)){let c={root:a.root??null,lang:a.lang??null,mtimeMs:a.mtimeMs??null,size:a.size??null,inDegree:m.get(a.path)??0,outDegree:o.get(a.path)??0};await b.insert(h.codeFile).values({path:a.path,...c}).onConflictDoUpdate({target:h.codeFile.path,set:c})}await b.delete(h.codeFileEdge);let p=0;j.length&&await b.insert(h.codeFileEdge).values(j.map(a=>{let b=l.has(`${a.from}|${a.to}`);return b&&p++,{fromPath:a.from,toPath:a.to,circular:b}}));let q=await (0,i.Bx)(b);return await b.update(h.syncState).set({codeGraphSyncedAt:new Date}).where((0,f.eq)(h.syncState.id,"singleton")),{files:c.files.length,edges:j.length,circular:p,version:q}}async function l(a,b,c,d){let e=new Set([b]),f=[],g=[b],h=!1;for(let b=1;b<=c&&g.length;b++){let c="down"===d?(await a.query.codeFileEdge.findMany({where:(a,{inArray:b})=>b(a.toPath,g),columns:{fromPath:!0}})).map(a=>a.fromPath):(await a.query.codeFileEdge.findMany({where:(a,{inArray:b})=>b(a.fromPath,g),columns:{toPath:!0}})).map(a=>a.toPath),i=[];for(let a of c)if(!e.has(a)&&(e.add(a),f.push({path:a,depth:b}),i.push(a),f.length>=200)){h=!0;break}if(h)break;g=i}return{order:f,truncated:h}}async function m(a,b,c={}){let d=await a.query.codeFile.findFirst({where:(a,{eq:c})=>c(a.path,b),columns:{inDegree:!0,outDegree:!0}});if(!d)return{path:b,exists:!1,hub:{inDegree:0,outDegree:0,isHub:!1},imports:[],importedBy:[],transitive:{upstream:[],downstream:[],truncated:!1}};let e=Math.min(Math.max(Math.floor(c.depth??2),1),5),[f,g,h,i,j]=await Promise.all([a.query.codeFileEdge.findMany({where:(a,{eq:c})=>c(a.fromPath,b),columns:{toPath:!0,circular:!0}}),a.query.codeFileEdge.findMany({where:(a,{eq:c})=>c(a.toPath,b),columns:{fromPath:!0,circular:!0}}),l(a,b,e,"down"),l(a,b,e,"up"),a.query.codeFile.findMany({columns:{inDegree:!0}})]),k=[...new Set([...h.order,...i.order].map(a=>a.path))],n=k.length?await a.query.codeFile.findMany({where:(a,{inArray:b})=>b(a.path,k),columns:{path:!0,lang:!0}}):[],o=new Map(n.map(a=>[a.path,a.lang])),p=a=>({path:a.path,depth:a.depth,lang:o.get(a.path)??null}),q=j.map(a=>a.inDegree).filter(a=>a>0).sort((a,b)=>a-b),r=q.length?q[Math.min(q.length-1,Math.floor(.9*q.length))]:0,s=d.inDegree>0&&d.inDegree>=Math.max(3,r);return{path:b,exists:!0,hub:{inDegree:d.inDegree,outDegree:d.outDegree,isHub:s},imports:f.map(a=>({to:a.toPath,circular:a.circular})),importedBy:g.map(a=>({from:a.fromPath,circular:a.circular})),transitive:{upstream:i.order.map(p),downstream:h.order.map(p),truncated:i.truncated||h.truncated}}}d()}catch(a){d(a)}})},35498:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{X:()=>i});var e=c(34216),f=c(56727),g=c(30046),h=a([f]);async function i(a=f.db){let[b,c]=await Promise.all([a.query.endpoint.findMany({where:(a,{ne:b})=>b(a.source,"INTROSPECTION")}),a.query.endpoint.findMany({where:(a,{eq:b})=>b(a.source,"INTROSPECTION")})]),d={collapsed:0,mappings:[]};for(let f of b){let b=c.find(a=>(function(a,b){if(a.method.toUpperCase()!==b.method.toUpperCase())return!1;let c=a.path.replace(/\{[^}]*\}/g,"{}"),d=b.path.replace(/\{[^}]*\}/g,"{}");return d===c||d.endsWith(c)})(f,a));b&&(await a.delete(g.endpoint).where((0,e.eq)(g.endpoint.id,f.id)),d.collapsed++,d.mappings.push({planned:`${f.method} ${f.path}`,code:`${b.method} ${b.path}`}))}return d}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},72658:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{CP:()=>l,gr:()=>j,ie:()=>i,ii:()=>k});var e=c(34216),f=c(56727),g=c(30046),h=a([f]);function i(a){for(let b=0;b<a.length;b++)for(let c=b+1;c<a.length;c++){let d=a[b],e=a[c];if(d.x<e.x+240&&d.x+240>e.x&&d.y<e.y+50&&d.y+50>e.y)return!0}return!1}function j(a){let b=Math.floor(a/12);return{x:-300-280*b,y:a%12*60}}async function k(a=f.db){let b=await a.query.endpoint.findMany({orderBy:(a,{asc:b,desc:c})=>[b(a.y),c(a.x),b(a.id)]});if(0===b.length)return 0;let c=0;for(let d=0;d<b.length;d++){let{x:f,y:h}=j(d),i=b[d];(i.x!==f||i.y!==h)&&(await a.update(g.endpoint).set({x:f,y:h}).where((0,e.eq)(g.endpoint.id,i.id)),c++)}return c}async function l(a=f.db){let[b,c]=await Promise.all([a.query.dbTable.findFirst({orderBy:(a,{desc:b})=>b(a.y)}),a.query.endpoint.findFirst({orderBy:(a,{desc:b})=>b(a.y)})]),d=Math.max(b?.y??0,c?.y??0);return d>0?d+280:0}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})}};
|