trybeacon 0.1.82 → 0.1.84
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/.claude-plugin/plugin.json +1 -1
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +20 -20
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/@modal/(.)settings/page_client-reference-manifest.js +1 -1
- 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 +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +1 -1
- package/.next/server/app/docs.segments/@modal/__DEFAULT__.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/docs.segments/docs.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 +1 -1
- package/.next/server/app/help.segments/@modal/__DEFAULT__.segment.rsc +1 -1
- package/.next/server/app/help.segments/_full.segment.rsc +1 -1
- package/.next/server/app/help.segments/_head.segment.rsc +1 -1
- package/.next/server/app/help.segments/_index.segment.rsc +1 -1
- package/.next/server/app/help.segments/_tree.segment.rsc +1 -1
- 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/index.html +1 -1
- package/.next/server/app/index.rsc +1 -1
- package/.next/server/app/index.segments/@modal/__DEFAULT__.segment.rsc +1 -1
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/learn/page.js +3 -3
- package/.next/server/app/learn/page.js.nft.json +1 -1
- package/.next/server/app/learn/page_client-reference-manifest.js +1 -1
- package/.next/server/app/map/page.js +1 -1
- 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_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/s/[token]/page.js +1 -1
- package/.next/server/app/s/[token]/page.js.nft.json +1 -1
- package/.next/server/app/s/[token]/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 +20 -20
- package/.next/server/chunks/2933.js +1 -1
- package/.next/server/chunks/9213.js +1 -1
- package/.next/server/chunks/9979.js +1 -0
- 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/3748-ffd46534ace96c3d.js +1 -0
- package/.next/static/chunks/app/learn/{page-c01e1092ca9135e6.js → page-b1bea0ba5fbf4c80.js} +1 -1
- package/.next/static/chunks/app/map/{page-9075091c6ba84c19.js → page-bc44aabbc5a3a261.js} +1 -1
- package/.next/static/chunks/app/plan/{page-6645cae32f5767c2.js → page-2be2dee159981532.js} +2 -2
- package/.next/static/chunks/app/s/[token]/{page-2cf9b4a9b7740e56.js → page-dd148c2090094329.js} +1 -1
- package/.next/trace +47 -47
- package/.next/trace-build +1 -1
- package/dist/bin/remove.js +5 -5
- package/package.json +1 -1
- package/.next/server/chunks/5081.js +0 -1
- package/.next/static/chunks/7437-686839cf9b298bd8.js +0 -1
- /package/.next/static/{32-hn-zWkepUstH6QZVnt → GCYTD3B9xLkKH9uIwlKD-}/_buildManifest.js +0 -0
- /package/.next/static/{32-hn-zWkepUstH6QZVnt → GCYTD3B9xLkKH9uIwlKD-}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=9213,exports.ids=[9213],exports.modules={14643:(a,b,c)=>{c.d(b,{I:()=>i,r:()=>h});let d=/(^|\/)app\/.*\/route\.(ts|tsx|js|jsx|mjs)$/,e=/\.(ts|py)$/,f=/(schema|model)/i,g=/(\.(test|spec)\.[jt]sx?$)|(^|\/)(tests?|__tests__|__mocks__)\/|(^|\/)test_[^/]+\.py$|_test\.py$/;function h(a){return!g.test(a)&&(!!(a.endsWith(".prisma")||d.test(a)||a.endsWith(".java"))||e.test(a)&&f.test(a))}function i(a,b=300){return a.filter(h).slice(0,b)}},21723:(a,b,c)=>{function d(a,b){if(/_JSON_OR_JSONB|\bJSONB\b|\bJSON\b/.test(a))return"jsonb";let c=a.match(/\b(GUID|Uuid|UUID|String|Text|DateTime|Date|Time|BigInteger|SmallInteger|Integer|Boolean|Float|Numeric|Decimal|Vector|TSVECTOR|LargeBinary|Enum)\b\s*(\([^)]*\))?/);if(c){let a=c[2]??"",b=a.match(/\d+/)?.[0];switch(c[1]){case"GUID":case"Uuid":case"UUID":return"uuid";case"String":return b?`varchar(${b})`:"varchar";case"Text":return"text";case"DateTime":return/timezone\s*=\s*True/.test(a)?"timestamptz":"timestamp";case"Date":return"date";case"Time":return"time";case"BigInteger":return"bigint";case"SmallInteger":return"smallint";case"Integer":return"integer";case"Boolean":return"boolean";case"Float":return"float";case"Numeric":case"Decimal":return"numeric";case"Vector":return b?`vector(${b})`:"vector";case"TSVECTOR":return"tsvector";case"LargeBinary":return"bytea";case"Enum":return"varchar"}}let d=b.replace(/\s*\|\s*None/g,"").trim(),e=d.match(/^Optional\[([\s\S]*)\]$/);return(e&&(d=e[1].trim()),/uuid/i.test(d))?"uuid":/datetime/i.test(d)?"timestamptz":/\bint\b/i.test(d)?"integer":/\bbool\b/i.test(d)?"boolean":/\bfloat\b/.test(d)&&!/\blist\b/.test(d)?"float":/\bdict\b|\blist\b|\bAny\b/.test(d)?"jsonb":"text"}function e(a,b){let c=0;for(let d=b;d<a.length;d++)if("("===a[d])c++;else if(")"===a[d]&&0==--c)return a.slice(b+1,d);return""}c.d(b,{Y:()=>k});let f={long:"bigint",Long:"bigint",BigInteger:"bigint",int:"integer",Integer:"integer",short:"smallint",Short:"smallint",String:"varchar",char:"varchar",Character:"varchar",boolean:"boolean",Boolean:"boolean",UUID:"uuid",BigDecimal:"numeric",double:"double",Double:"double",float:"float",Float:"float",LocalDate:"date",LocalDateTime:"timestamp",Instant:"timestamp",Timestamp:"timestamp",Date:"timestamp",OffsetDateTime:"timestamptz",ZonedDateTime:"timestamptz",LocalTime:"time"},g=/^(List|Set|Map|Collection|Iterable)$/;function h(a){return/byte\s*\[\s*\]/.test(a)?"byte[]":(a.replace(/<.*>/,"").trim().split(".").pop()??a).trim()}function i(a,b){return a.match(RegExp(`\\b${b}\\s*=\\s*"([^"]*)"`))?.[1]}function j(a,b){let c=a.match(RegExp(`\\b${b}\\s*=\\s*(true|false)`));return c?"true"===c[1]:void 0}function k(a){let b=function(a){let b=[],c=/(\w+)\s*:\s*(text|integer|real|blob|numeric|varchar|boolean|timestamp|serial|uuid|json|jsonb)\s*\(/g;for(let d of a){let a;if(!/\.(ts|tsx|mts|cts)$/.test(d.path)||!/\b(?:sqliteTable|pgTable|mysqlTable)\s*\(/.test(d.content))continue;let f=/(?:export\s+)?const\s+(\w+)\s*=\s*(?:sqliteTable|pgTable|mysqlTable)\s*\(\s*["']([^"']+)["']\s*,/g;for(;a=f.exec(d.content);){let f=d.content.indexOf("{",a.index+a[0].length);if(f<0)continue;let g=function(a,b){let c=0;for(let d=b;d<a.length;d++)if("{"===a[d])c++;else if("}"===a[d]&&0==--c)return a.slice(b+1,d);return""}(d.content,f),h={varName:a[1],tableName:a[2],columns:[],colByProp:new Map,fks:[]},i=[];for(let a of(c.lastIndex=0,g.matchAll(c)))i.push({prop:a[1],builder:a[2],at:a.index,argOpen:a.index+a[0].length-1});i.forEach((a,b)=>{var c;let d=g.slice(a.at,i[b+1]?.at??g.length),f=e(g,a.argOpen),j=f.match(/^\s*["']([^"']+)["']/)?.[1]??a.prop,k=d.match(/\.references\(\s*\(\)\s*=>\s*(\w+)\.(\w+)/);h.columns.push({name:j,type:(c=a.builder,/mode:\s*["']timestamp/.test(f)?"timestamp":/mode:\s*["']boolean["']/.test(f)?"boolean":/mode:\s*["']json["']/.test(f)?"jsonb":c),isPk:/\.primaryKey\(\)/.test(d)||void 0,isFk:!!k||void 0,nullable:!/\.notNull\(\)/.test(d)}),h.colByProp.set(a.prop,j),k&&h.fks.push({column:j,toVar:k[1],toProp:k[2]})}),b.push(h)}}if(!b.length)return{tables:[],relations:[]};let d=new Map(b.map(a=>[a.varName,a])),f=[];for(let a of b)for(let b of a.fks){let c=d.get(b.toVar);c&&f.push({fromTable:a.tableName,fromColumn:b.column,toTable:c.tableName,toColumn:c.colByProp.get(b.toProp)??b.toProp})}return{tables:b.map(a=>({name:a.tableName,columns:a.columns})),relations:f,tableVars:Object.fromEntries(b.map(a=>[a.varName,a.tableName]))}}(a);if(b.tables.length)return b;let c=function(a){let b=[],c=[];for(let d of a){let a;if(!d.path.endsWith(".prisma"))continue;let e=/model\s+(\w+)\s*\{([\s\S]*?)\}/g;for(;a=e.exec(d.content);){let d=a[1],e=a[2].match(/@@map\(\s*["']([^"']+)["']\s*\)/)?.[1]??d,f=[];for(let b of a[2].split("\n")){let a=b.trim().match(/^(\w+)\s+(\w+(?:\[\])?\??)\s*(.*)$/);if(!a||/^@@/.test(b.trim()))continue;let[,d,g,h]=a,i=/^(String|Int|BigInt|Float|Decimal|Boolean|DateTime|Json|Bytes)(\[\])?\??$/.test(g),j=h.match(/@relation\([^)]*fields:\s*\[(\w+)\][^)]*references:\s*\[(\w+)\]/);j&&c.push({fromTable:e,fromColumn:j[1],toTable:g.replace(/[?[\]]/g,""),toColumn:j[2]}),i&&f.push({name:d,type:function(a){let b=a.replace(/[?[\]]/g,"");return({String:"text",Int:"integer",BigInt:"bigint",Float:"float",Decimal:"numeric",Boolean:"boolean",DateTime:"timestamptz",Json:"jsonb",Bytes:"bytea"})[b]??b.toLowerCase()}(g),isPk:/@id\b/.test(h)||void 0,isFk:/@relation\b/.test(h)||void 0,nullable:g.endsWith("?")})}f.length&&b.push({name:e,columns:f})}}return{tables:b,relations:c}}(a);if(c.tables.length)return c;let k=function(a){let b=new Map,c=[],f=[];for(let g of a){let a;if(!g.path.endsWith(".py")||!/mapped_column\s*\(|__tablename__|\bTable\s*\(\s*["']/.test(g.content))continue;let h=function(a){let b,c=[],f=[],g=/\bTable\s*(\()\s*["']([^"']+)["']\s*,/g;for(;b=g.exec(a);){let g,h=b[2],i=e(a,b.index+b[0].indexOf("("));if(!/\bmetadata\b/.test(i)||!/\bColumn\s*\(/.test(i))continue;let j=[],k=/\bColumn\s*\(/g;for(;g=k.exec(i);){let a=e(i,g.index+g[0].length-1),b=a.match(/^\s*["'](\w+)["']\s*,/)?.[1];if(!b)continue;let c=/primary_key\s*=\s*True/.test(a)||void 0,k=!/nullable\s*=\s*False/.test(a),l=a.match(/ForeignKey\(\s*["']([^"']+?)\.([^"'.]+)["']/);j.push({name:b,type:d(a,""),isPk:c,isFk:!!l||void 0,nullable:k}),l&&f.push({fromTable:h,fromColumn:b,toTable:l[1],toColumn:l[2]})}j.length&&c.push({name:h,columns:j})}return{tables:c,relations:f}}(g.content);c.push(...h.tables),f.push(...h.relations);let i=/^class\s+(\w+)\s*\(([^)]*)\)\s*:/gm,j=[];for(;a=i.exec(g.content);)j.push({name:a[1],bases:a[2].split(",").map(a=>a.trim().split(/[.[]/)[0]).filter(Boolean),at:a.index});for(let a=0;a<j.length;a++){let c=g.content.slice(j[a].at,j[a+1]?.at??g.content.length),f=function(a,b,c){let f,g=c.match(/__tablename__\s*=\s*["']([^"']+)["']/)?.[1],h=[],i=[],j=[],k=/(\w+)\s*:\s*Mapped\s*\[/g;for(;f=k.exec(c);){let a=f.index+f[0].length-1,b=function(a,b){let c=0;for(let d=b;d<a.length;d++)if("["===a[d])c++;else if("]"===a[d]&&0==--c)return a.slice(b+1,d);return null}(c,a);if(null===b)continue;let d=a+b.length+2,e=c.slice(d).match(/^\s*=\s*(\w+)\s*\(/);e&&"mapped_column"===e[1]&&j.push({colName:f[1],pyType:b,argsAt:d+e[0].length-1})}let l=/(\w+)\s*=\s*(mapped_column|Column)\s*\(/g;for(;f=l.exec(c);)j.push({colName:f[1],pyType:"",argsAt:f.index+f[0].length-1});j.sort((a,b)=>a.argsAt-b.argsAt);let m=new Set;for(let a of j){if(m.has(a.colName)||"__tablename__"===a.colName)continue;m.add(a.colName);let b=e(c,a.argsAt),f=/primary_key\s*=\s*True/.test(b)||void 0,g=!/nullable\s*=\s*False/.test(b),j=b.match(/ForeignKey\(\s*["']([^"']+?)\.([^"'.]+)["']/);h.push({name:a.colName,type:d(b,a.pyType),isPk:f,isFk:!!j||void 0,nullable:g}),j&&i.push({column:a.colName,toTable:j[1],toColumn:j[2]})}return{name:a,bases:b,tableName:g,columns:h,fks:i}}(j[a].name,j[a].bases,c);b.set(f.name,f)}}if(![...b.values()].some(a=>a.tableName)&&!c.length)return{tables:[],relations:[]};let g=(a,c=new Set)=>{if(c.has(a.name))return[];c.add(a.name);let d=[];for(let e of a.bases){let a=b.get(e);a&&!a.tableName&&d.push(...g(a,c))}return d.push(...a.columns),d},h=[],i=[];for(let a of b.values()){if(!a.tableName)continue;let b=g(a),c=new Map;for(let a of b)c.has(a.name)||c.set(a.name,a);let d=[...c.values()],e=a=>d.splice(d.findIndex(b=>b.name===a),1)[0],f=d.some(a=>"id"===a.name)?e("id"):null,j=["created_at","updated_at","deleted_at"].filter(a=>d.some(b=>b.name===a)).map(a=>e(a));for(let b of(h.push({name:a.tableName,columns:[...f?[f]:[],...d,...j]}),a.fks))i.push({fromTable:a.tableName,fromColumn:b.column,toTable:b.toTable,toColumn:b.toColumn})}let j=new Set(h.map(a=>a.name));for(let a of c)j.has(a.name)||h.push(a);return i.push(...f.filter(a=>!j.has(a.fromTable))),{tables:h,relations:i}}(a);return k.tables.length?k:function(a){let b=a.filter(a=>a.path.endsWith(".java")&&/@Entity\b/.test(a.content));if(!b.length)return{tables:[],relations:[]};let c=b.flatMap(a=>(function(a){let b,c=[],d=/\bclass\s+(\w+)/g;for(;b=d.exec(a);)c.push({name:b[1],at:b.index});let e=[];for(let b=0;b<c.length;b++){let d=a.slice(0===b?0:c[b-1].at,c[b].at);if(!/@Entity\b/.test(d))continue;let f=i(d.match(/@Table\s*\([^)]*\)/)?.[0]??"","name")??c[b].name,g=function(a){let b=[],c=[];for(let d of a.split("\n")){let a=d.trim();if(!a||a.startsWith("//")||a.startsWith("*")||a.startsWith("/*"))continue;let{annots:e,rest:f}=function(a){let b,c=[],d=a;for(;b=d.match(/^@[\w.]+(\([^)]*\))?\s*/);)c.push(d.slice(0,b[0].length).trim()),d=d.slice(b[0].length);return{annots:c,rest:d.trim()}}(a);if(c.push(...e),!f)continue;let g=f,h="";for(;g!==h;)h=g,g=g.replace(/^(?:public|private|protected|static|final|transient|volatile)\s+/,"");let i=g.includes("(")?null:g.match(/^([\w.$]+(?:<[^>]*>)?(?:\s*\[\s*\])?)\s+(\w+)\s*[;=]/);i&&b.push({annots:c,type:i[1],name:i[2]}),c=[]}return b}(a.slice(c[b].at,c[b+1]?.at??a.length)),h=g.find(a=>a.annots.some(a=>/@Id\b/.test(a))),j=h?i(h.annots.find(a=>/@Column\b/.test(a))??"","name")??h.name:"id";e.push({className:c[b].name,tableName:f,idColumn:j,fields:g})}return e})(a.content));if(!c.length)return{tables:[],relations:[]};let d=new Map(c.map(a=>[a.className,a.tableName])),e=new Map(c.map(a=>[a.className,a.idColumn])),k=[],l=[];for(let a of c){let b=[];for(let c of a.fields){let k=c.annots.join(" ");if(/@Transient\b/.test(k))continue;let m=h(c.type);if(/@ManyToOne\b|@OneToOne\b|@OneToMany\b|@ManyToMany\b/.test(k)||d.has(m)){let f=c.annots.find(a=>/@JoinColumn\b/.test(a)),g=f?i(f,"name"):void 0;if(g){b.push({name:g,type:"bigint",isFk:!0,nullable:j(k,"nullable")??!0});let c=d.get(m);c&&l.push({fromTable:a.tableName,fromColumn:g,toTable:c,toColumn:e.get(m)??"id"})}continue}if(g.test(m))continue;let n=c.annots.find(a=>/@Column\b/.test(a))??"",o=i(n,"name")??c.name,p=c.annots.some(a=>/@Id\b/.test(a)),q=j(n,"nullable");b.push({name:o,type:function(a){let b=h(a);return"byte[]"===b?"bytea":f[b]??b.toLowerCase()}(c.type),...p?{isPk:!0}:{},...void 0!==q?{nullable:q}:{}})}k.push({name:a.tableName,columns:b})}return{tables:k,relations:l}}(a)}},30814:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{ER:()=>n,Rm:()=>m,X2:()=>p,cL:()=>l});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 q=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([])});function k(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}async function l(a,b=g.db){let c=q.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),m=k(d,j),n=new Map,o=new Map;for(let a of j)o.set(a.from,(o.get(a.from)??0)+1),n.set(a.to,(n.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:n.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=m.has(`${a.from}|${a.to}`);return b&&p++,{fromPath:a.from,toPath:a.to,circular:b}}));let r=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:r}}let r=(a,b)=>`${a}\0${b}`;function m(a){let b=q.parse(a),c=b.files.map(a=>a.path),d=new Set(c),e=b.edges.filter(a=>d.has(a.from)&&d.has(a.to)&&a.from!==a.to),f=k(c,e),g=new Map,h=new Map;for(let a of e)h.set(a.from,(h.get(a.from)??0)+1),g.set(a.to,(g.get(a.to)??0)+1);let i=new Map;for(let a of b.files)i.set(a.path,{root:a.root??null,lang:a.lang??null,mtimeMs:a.mtimeMs??null,size:a.size??null,inDegree:g.get(a.path)??0,outDegree:h.get(a.path)??0});let j=new Map;for(let a of e)j.set(r(a.from,a.to),{from:a.from,to:a.to,circular:f.has(`${a.from}|${a.to}`)});return{files:i,edges:j}}let s=(a,b)=>a.root===b.root&&a.lang===b.lang&&a.mtimeMs===b.mtimeMs&&a.size===b.size&&a.inDegree===b.inDegree&&a.outDegree===b.outDegree;async function n(a,b,c=g.db){for(let[d,e]of b.files){let b=a.files.get(d);if(b&&s(b,e))continue;let f={root:e.root,lang:e.lang,mtimeMs:e.mtimeMs,size:e.size,inDegree:e.inDegree,outDegree:e.outDegree};await c.insert(h.codeFile).values({path:d,...f}).onConflictDoUpdate({target:h.codeFile.path,set:f})}let d=[...a.files.keys()].filter(a=>!b.files.has(a));for(let[e,g]of(d.length&&await c.delete(h.codeFile).where((0,f.RV)(h.codeFile.path,d)),a.edges))b.edges.has(e)||await c.delete(h.codeFileEdge).where((0,f.Uo)((0,f.eq)(h.codeFileEdge.fromPath,g.from),(0,f.eq)(h.codeFileEdge.toPath,g.to)));let e=[];for(let[d,g]of b.edges){let b=a.edges.get(d);b?b.circular!==g.circular&&await c.update(h.codeFileEdge).set({circular:g.circular}).where((0,f.Uo)((0,f.eq)(h.codeFileEdge.fromPath,g.from),(0,f.eq)(h.codeFileEdge.toPath,g.to))):e.push({fromPath:g.from,toPath:g.to,circular:g.circular})}e.length&&await c.insert(h.codeFileEdge).values(e);let j=await (0,i.Bx)(c);await c.update(h.syncState).set({codeGraphSyncedAt:new Date}).where((0,f.eq)(h.syncState.id,"singleton"));let k=0;for(let a of b.edges.values())a.circular&&k++;return{files:b.files.size,edges:b.edges.size,circular:k,version:j}}async function o(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 p(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}}),o(a,b,e,"down"),o(a,b,e,"up"),a.query.codeFile.findMany({columns:{inDegree:!0}})]),k=[...new Set([...h.order,...i.order].map(a=>a.path))],l=k.length?await a.query.codeFile.findMany({where:(a,{inArray:b})=>b(a.path,k),columns:{path:!0,lang:!0}}):[],m=new Map(l.map(a=>[a.path,a.lang])),n=a=>({path:a.path,depth:a.depth,lang:m.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(n),downstream:h.order.map(n),truncated:i.truncated||h.truncated}}}d()}catch(a){d(a)}})},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`}}},38920:(a,b,c)=>{c.d(b,{Q2:()=>J});var d=c(73024),e=c(51455),f=c(76760);let g=[".ts",".tsx",".js",".jsx",".mjs",".cjs"],h=[/(?:^|[\n;])\s*(?:import|export)[^'"`\n]{0,4000}?from\s*['"]([^'"`]+)['"]/g,/(?:^|[\n;])\s*import\s*['"]([^'"`]+)['"]/g,/\brequire\(\s*['"]([^'"`]+)['"]\s*\)/g,/\bimport\(\s*['"]([^'"`]+)['"]\s*\)/g];function i(a,b){if(b.has(a))return a;for(let c of g){let d=`${a}${c}`;if(b.has(d))return d}for(let c of g){let d=`${a}/index${c}`;if(b.has(d))return d}return null}function j(a,b){for(let c of[`${a}.py`,`${a}/__init__.py`,`${a}.pyi`])if(b.has(c))return[c];return[]}let k=/(?:^|[\n;])\s*import\s+(?:[\w.]+\s+)?"([^"]+)"/g,l=/(?:^|[\n;])\s*import\s*\(([\s\S]*?)\)/g,m=/"([^"]+)"/g,n=/(?:^|[\n;])\s*(?:pub\s+)?mod\s+(\w+)\s*;/g,o=/(?:^|[\n;])\s*(?:pub\s+)?use\s+([\w:]+)/g;function p(a,b){for(let c of[`${a}.rs`,`${a}/mod.rs`])if(b.has(c))return[c];return[]}let q=new Set(["mod.rs","lib.rs","main.rs"]),r=[".swift",".java",".rb",".kt",".kts",".cs",".php",".scala",".c",".h",".cpp",".hpp",".cc",".hh",".m",".mm",".ex",".exs",".lua",".dart",".vue",".svelte"],s=[/\b(?:require_relative|require|include|import|use|using|from)\s*\(?\s*['"]([^'"`\n]+)['"]/g,/(?:^|[\n;])\s*import\s+([\w.]+)/g,/(?:^|[\n;])\s*from\s+([\w.]+)\s+import\b/g,/(?:^|[\n;])\s*using\s+([\w.]+)\s*;/g,/(?:^|[\n;])\s*use\s+([\w\\]+)/g,/#\s*include\s*[<"]([^>"\n]+)[>"]/g],t=[{id:"ts",extensions:g,specifiers:function(a){let b=new Set;for(let c of h)for(let d of a.matchAll(c))b.add(d[1]);return b},resolve(a,b,c){let d=function(a,b,c,d){if(a.startsWith("."))return i((0,f.resolve)("/",(0,f.dirname)(b),a).split(/[\\/]/).join("/").replace(/^\//,""),c);for(let b of d)if(a.startsWith(b.from)){let d=a.slice(b.from.length),e=i(b.to?`${b.to}/${d}`:d,c);if(e)return e}return null}(a,b,c.fileSet,c.tsAliases??[]);return d?[d]:[]}},{id:"python",extensions:[".py",".pyi"],specifiers:function(a){let b=new Set;for(let c of a.matchAll(/(?:^|[\n;])\s*from\s+(\.*[\w.]*)\s+import\b/g)){let a=c[1].trim();a&&b.add(a)}for(let c of a.matchAll(/(?:^|[\n;])\s*import\s+([\w.]+(?:\s*,\s*[\w.]+)*)/g))for(let a of c[1].split(/\s*,\s*/)){let c=a.trim().split(/\s+as\s+/)[0].trim();c&&b.add(c)}return b},resolve(a,b,c){if(a.startsWith(".")){let d=a.length-a.replace(/^\.+/,"").length,e=a.slice(d),g=(0,f.dirname)(b);for(let a=1;a<d;a++)g=(0,f.dirname)(g);let h=e?(0,f.join)(g,e.replace(/\./g,"/")):g;return j((0,f.normalize)(h).replace(/\\/g,"/"),c.fileSet)}let d=a.replace(/\./g,"/"),e=[],g=(0,f.dirname)(b);for(;g&&"."!==g&&"/"!==g;)e.push(g),g=(0,f.dirname)(g);for(let a of(e.push(""),e)){let b=j(a?`${a}/${d}`:d,c.fileSet);if(b.length)return b}return[]}},{id:"go",extensions:[".go"],resolve(a,b,c){let d=c.goModulePath;if(!d)return[];let e=null;if(a===d?e="":a.startsWith(`${d}/`)&&(e=a.slice(d.length+1)),null===e)return[];let g=[];for(let a of c.fileSet){if(!a.endsWith(".go"))continue;let b=(0,f.dirname)(a);(""===e&&"."===b||b===e)&&g.push(a)}return g.sort()},specifiers:function(a){let b=new Set;for(let c of a.matchAll(k))b.add(c[1]);for(let c of a.matchAll(l))for(let a of c[1].matchAll(m))b.add(a[1]);return b}},{id:"rust",extensions:[".rs"],specifiers:function(a){let b=new Set;for(let c of a.matchAll(n))b.add(`./${c[1]}`);for(let c of a.matchAll(o)){let a=function(a){let b=a.split("::").filter(a=>a&&"*"!==a);return b.length?"crate"===b[0]?["crate",...b.slice(1)].join("/"):"super"===b[0]?["..",...b.slice(1)].join("/"):"self"===b[0]?[".",...b.slice(1)].join("/"):b.join("/"):""}(c[1]);a&&b.add(a)}return b},resolve(a,b,c){let d=c.fileSet;if(a.startsWith("./")||a.startsWith("../")){let c=a.replace(/^\.\//,""),e=p((0,f.normalize)((0,f.join)((0,f.dirname)(b),a)).replace(/\\/g,"/"),d);if(e.length)return e;if(a.startsWith("./")&&!q.has((0,f.basename)(b))){let a=(0,f.join)((0,f.dirname)(b),(0,f.basename)(b,".rs"),c);if((e=p((0,f.normalize)(a).replace(/\\/g,"/"),d)).length)return e}return[]}if(a.startsWith("crate/")){let c=b.split("/"),e=c.lastIndexOf("src"),g=e>=0?c.slice(0,e+1).join("/"):(0,f.dirname)(b),h=a.slice(6).split("/");for(let a of[h.join("/"),h.slice(0,-1).join("/")]){if(!a)continue;let b=p(`${g}/${a}`,d);if(b.length)return b}}return[]}},{id:"fallback",extensions:r,specifiers:function(a){let b=new Set;for(let c of s)for(let d of a.matchAll(c)){let a=d[1].trim();a&&b.add(a)}return b},resolve(a,b,c){let d=[(0,f.extname)(b).toLowerCase(),...r].filter((a,b,c)=>a&&c.indexOf(a)===b),e=a.includes("/")||a.includes("\\"),g=a.startsWith(".")||e?a.replace(/\\/g,"/"):a.replace(/[.:]+/g,"/");for(let a of[(0,f.normalize)((0,f.join)((0,f.dirname)(b),g)).replace(/\\/g,"/"),g.replace(/^\.\//,"")]){if(c.fileSet.has(a))return[a];for(let b of d){let d=a.endsWith(b)?a:`${a}${b}`;if(c.fileSet.has(d))return[d];if(c.fileSet.has(`${a}/index${b}`))return[`${a}/index${b}`]}}return[]}}],u=new Map;for(let a of t)for(let b of a.extensions)u.set(b,a);let v={".ts":"ts",".tsx":"ts",".js":"js",".jsx":"js",".mjs":"js",".cjs":"js",".py":"py",".pyi":"py",".go":"go",".rs":"rs",".swift":"swift",".java":"java",".rb":"ruby",".kt":"kotlin",".kts":"kotlin",".cs":"csharp",".php":"php",".scala":"scala",".c":"c",".h":"c",".cpp":"cpp",".hpp":"cpp",".cc":"cpp",".hh":"cpp",".m":"objc",".mm":"objc",".ex":"elixir",".exs":"elixir",".lua":"lua",".dart":"dart",".vue":"vue",".svelte":"svelte"};function w(a){return u.get((0,f.extname)(a).toLowerCase())??null}function x(){return new Set(u.keys())}let y=new Set(["node_modules",".git",".next","dist","build","__pycache__","target",".venv","venv","env",".turbo","coverage",".beacon",".playwright-mcp","generated","migrations","alembic","migrate"]),z=()=>Promise.resolve();async function A(a,b,c,d,g){let h;try{h=await (0,e.readdir)(b,{withFileTypes:!0})}catch{return}for(let e of h){if(e.name.startsWith(".")||y.has(e.name))continue;let h=(0,f.join)(b,e.name);if(e.isDirectory()){await A(a,h,c,d,g);continue}!(!e.isFile()||e.name.endsWith(".d.ts"))&&c.has((0,f.extname)(e.name).toLowerCase())&&d.push((0,f.relative)(a,h))}await g()}async function B(a,b=z){let c=[];return await A(a,a,x(),c,b),c.map(a=>a.split(/[\\/]/).join("/")).sort()}function C(a){return a.replace(/^\.\/?/,"").replace(/\/$/,"")}function D(a){let b,c=(0,f.join)(a,"tsconfig.json");if(!(0,d.existsSync)(c))return[];try{b=function(a){try{return JSON.parse(a)}catch{}return JSON.parse(a.replace(/\/\*[^"]*?\*\//g,"").replace(/(^|[^:"])\/\/.*$/gm,"$1").replace(/,\s*([}\]])/g,"$1"))}((0,d.readFileSync)(c,"utf8"))}catch{return[]}let e=b.compilerOptions?.paths??{},g=C(b.compilerOptions?.baseUrl??"."),h=[];for(let[a,b]of Object.entries(e)){if(!a.endsWith("/*")||!b.length)continue;let c=b[0];if(!c.endsWith("/*"))continue;let d=a.slice(0,-1),e=[g,C(c.slice(0,-1))].filter(Boolean).join("/");h.push({from:d,to:e})}return h}function E(a){let b=(0,f.join)(a,"go.mod");if(!(0,d.existsSync)(b))return null;try{let a=/^\s*module\s+(\S+)/m.exec((0,d.readFileSync)(b,"utf8"));return a?a[1]:null}catch{return null}}function F(a){return a.split(/[\\/]/).join("/")}function G(a){if(1===a.length)return a[0];let b=a.map(a=>F(a).split("/")),c=b[0],d=0;for(;d<c.length&&b.every(a=>a[d]===c[d]);d++);return c.slice(0,d).join("/")||"/"}async function H(a,b,c){let d=(Array.isArray(a)?a:[a]).map(a=>F((0,f.resolve)(a))),g=F(b?(0,f.resolve)(b):1===d.length?d[0]:G(d)),h=new Map,i=[];for(let a of d){let b=F((0,f.relative)(g,a));for(let c of D(a))i.push({from:c.from,to:[b,c.to].filter(Boolean).join("/")});for(let d of(await B(a,c))){let i=F((0,f.join)(a,d)),j=F((0,f.relative)(g,i));if(!h.has(j)){try{let a=await (0,e.stat)(i);h.set(j,{path:j,abs:i,root:b||null,mtimeMs:a.mtimeMs,size:a.size})}catch{}await c()}}}let j=d.map(E).find(Boolean)??E(g);return{metas:[...h.values()].sort((a,b)=>a.path.localeCompare(b.path)),ctx:{fileSet:new Set(h.keys()),tsAliases:i,goModulePath:j}}}async function I(a){let b=w(a.path);if(!b||a.size>2e5)return new Set;try{let c=await (0,e.readFile)(a.abs,"utf8");if(function(a){let b=0;for(let c=0;c<a.length;c++)if(10===a.charCodeAt(c)){if(c-b>5e4)return!0;b=c+1}return a.length-b>5e4}(c))return new Set;return b.specifiers(c)}catch{return new Set}}function J(a,b){let c=(Array.isArray(a)?a:[a]).map(a=>F((0,f.resolve)(a))),d=F(b?(0,f.resolve)(b):1===c.length?c[0]:G(c)),g=new Map,h=new Map,i=[],j=null;function k(){let a={fileSet:new Set(g.keys()),tsAliases:i,goModulePath:j},b=[...g.values()].sort((a,b)=>a.path.localeCompare(b.path)),c=[];for(let d of b){let b=w(d.path);if(!b)continue;let e=h.get(d.path)??new Set,f=new Set;for(let g of e)for(let e of b.resolve(g,d.path,a))!e||e===d.path||f.has(e)||(f.add(e),c.push({from:d.path,to:e}))}return{files:b.map(a=>{var b;let c;return{path:a.path,lang:(b=a.path,c=(0,f.extname)(b).toLowerCase(),u.has(c)?v[c]??c.slice(1):null),root:a.root,mtimeMs:a.mtimeMs,size:a.size}}),edges:c}}return{seed:async function(){let c=function(a=5){let b=performance.now();return async()=>{performance.now()-b>a&&(await new Promise(a=>setImmediate(a)),b=performance.now())}}(),{metas:d,ctx:e}=await H(a,b,c);for(let a of(g.clear(),h.clear(),d))await c(),g.set(a.path,a),h.set(a.path,await I(a));return i=e.tsAliases??[],j=e.goModulePath??null,k()},applyChange:async function(a){let b,k=F((0,f.resolve)(a));if(!c.some(a=>k===a||k.startsWith(`${a}/`)))return!1;let l=k.split("/").pop()??"";if("tsconfig.json"===l||"go.mod"===l){let a=k.slice(0,k.length-l.length-1);if(c.includes(a)){for(let a of(i=[],c)){let b=F((0,f.relative)(d,a));for(let c of D(a))i.push({from:c.from,to:[b,c.to].filter(Boolean).join("/")})}return j=c.map(E).find(Boolean)??E(d),!0}return!1}let m=function(a){let b=F((0,f.resolve)(a));for(let a of c)if(b===a||b.startsWith(`${a}/`)){if(function(a){let b=a.split("/");for(let a=0;a<b.length;a++){let c=b[a];if(!c||c.startsWith(".")||a<b.length-1&&y.has(c))return!0}let c=b[b.length-1];return!!c.endsWith(".d.ts")||!x().has((0,f.extname)(c).toLowerCase())}(b.slice(a.length).replace(/^\/+/,"")))return null;return{path:F((0,f.relative)(d,b)),root:F((0,f.relative)(d,a))||null}}return null}(a);if(!m)return!1;try{b=await (0,e.stat)(k)}catch{let a=g.delete(m.path);return h.delete(m.path),a}let n=g.get(m.path);if(n&&n.mtimeMs===b.mtimeMs&&n.size===b.size)return!1;let o={path:m.path,abs:k,root:m.root,mtimeMs:b.mtimeMs,size:b.size};return g.set(m.path,o),h.set(m.path,await I(o)),!0},snapshot:k}}},39908:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{F:()=>r});var e=c(73024),f=c(51455),g=c(76760),h=c(38920),i=c(61465),j=c(21723),k=c(54295),l=c(14643),m=c(30814),n=c(19734),o=c(56727),p=c(6716),q=a([m,n,o]);[m,n,o]=q.then?(await q)():q;let s=/[/\\](node_modules|\.git|\.next|dist|build|__pycache__|target|\.venv|venv|\.beacon|\.playwright-mcp|generated|coverage)[/\\]/;function r(a){let b=function(a){try{let b=(0,g.join)(a,"beacon.config.json");if((0,e.existsSync)(b)){let c=JSON.parse((0,e.readFileSync)(b,"utf8"));if(Array.isArray(c.roots)&&c.roots.length)return c.roots.map(b=>(0,g.resolve)(a,b))}}catch{}return[a]}(a.path),c=(0,p.kO)(a.id),d=(0,o.Lf)((0,p.Nx)(a.id)),q=(0,h.Q2)(b,a.path);async function r(){let c=(0,l.I)(q.snapshot().files.map(a=>a.path));for(let a of b)for(let b of["prisma/schema.prisma","schema.prisma"]){let d=(0,g.join)(a,b);(0,e.existsSync)(d)&&c.push(t(d))}let h=[];for(let b of c)try{h.push({path:b,content:await (0,f.readFile)((0,g.join)(a.path,b),"utf8")})}catch{}let m=(0,j.Y)(h),o=(0,k.$)(h);if(!m.tables.length&&!o.length)return;if(o.length&&m.tableVars&&Object.keys(m.tableVars).length){let b=q.snapshot().edges,c=new Set(o.map(a=>a.file)),d=new Map;for(let a of b){let b=d.get(a.from)??[];b.push(a.to),d.set(a.from,b)}for(let a=0;a<2;a++)for(let a of[...c])for(let b of d.get(a)??[])c.add(b);let e=new Map;for(let b of[...c].slice(0,600))try{e.set(b,await (0,f.readFile)((0,g.join)(a.path,b),"utf8"))}catch{}let h=(0,i.R)({routeFiles:[...new Set(o.map(a=>a.file))],edges:b,content:a=>e.get(a)??null,tableVars:m.tableVars});for(let a of o)a.uses=h.get(a.file)??[]}let p=await (0,n.Rw)({tables:m.tables,relations:m.relations,endpoints:o},d,{partial:!0});console.log(`[beacon-inline] schema synced (${a.name}): ${p.tables} tables / ${p.endpoints} endpoints`)}function t(b){return(0,g.relative)(a.path,b).split(/[\\/]/).join("/")}let u=null,v=!1,w=new Set,x=null,y=!1;async function z(){if(y)return void A();y=!0;try{if(await c,v&&(u=null,v=!1),null===u){let b=await q.seed(),c=await (0,m.cL)(b,d);u=(0,m.Rm)(b),console.log(`[beacon-inline] code-graph synced (${a.name}): ${c.files} files / ${c.edges} imports${c.circular>0?` (${c.circular} circular)`:""}`),await r();return}let b=[...w];w.clear();let e=b.some(a=>(0,l.r)(t(a))),f=!1;for(let a of b)await q.applyChange(a)&&(f=!0);if(f){let b=(0,m.Rm)(q.snapshot()),c=await (0,m.ER)(u,b,d);u=b,console.log(`[beacon-inline] code-graph updated (${a.name}): ${c.files} files / ${c.edges} imports${c.circular>0?` (${c.circular} circular)`:""}`)}e&&await r()}catch(b){console.error(`[beacon-inline] error (${a.name}):`,b instanceof Error?b.message:b)}finally{y=!1}}function A(){x&&clearTimeout(x),x=setTimeout(z,600)}let B=[];for(let c of b)try{let b=(0,e.watch)(c,{recursive:!0,persistent:!0},(a,b)=>{if(!b){v=!0,A();return}let d=String(b);s.test(`/${d}`)||(w.add((0,g.join)(c,d)),A())});b.on("error",b=>console.error(`[beacon-inline] watcher error (${a.name}):`,b)),B.push(b)}catch(b){console.error(`[beacon-inline] live watch unavailable for ${c} (${a.name}):`,b instanceof Error?b.message:b)}return console.log(`[beacon-inline] watching ${a.name} (${b.join(", ")}) — initial extract…`),z(),{async stop(){for(let a of(x&&clearTimeout(x),B))a.close()}}}d()}catch(a){d(a)}})},54295:(a,b,c)=>{c.d(b,{$:()=>e});let d=["GET","POST","PUT","PATCH","DELETE"];function e(a){let b=[];for(let c of a){let a=function(a){let b=a.match(/(?:^|\/)app\/(.+)\/route\.(?:ts|tsx|js|jsx|mjs)$/);if(!b)return null;let c=b[1].split("/").filter(a=>!(a.startsWith("(")&&a.endsWith(")"))).map(a=>{let b=a.match(/^\[{1,2}(?:\.\.\.)?([^\]]+)\]{1,2}$/);return b?`{${b[1]}}`:a});return"api"!==c[0]?null:`/${c.join("/")}`}(c.path);if(a)for(let e of d)RegExp(`export\\s+(?:async\\s+)?(?:function|const)\\s+${e}\\b`).test(c.content)&&b.push({method:e,path:a,uses:[],file:c.path})}return b.sort((a,b)=>`${a.path} ${a.method}`.localeCompare(`${b.path} ${b.method}`))}},61465:(a,b,c)=>{c.d(b,{R:()=>d});function d(a){let b=Object.keys(a.tableVars),c=new Map;if(!b.length){for(let b of a.routeFiles)c.set(b,[]);return c}let d=new Map;for(let b of a.edges){let a=d.get(b.from)??[];a.push(b.to),d.set(b.from,a)}let e=new Map(b.map(a=>[a,RegExp(`(?:query\\.${a}\\b|\\.from\\(\\s*${a}\\b)`)])),f=new Map(b.map(a=>[a,RegExp(`(?:insert|update|delete)\\(\\s*${a}\\b`)]));for(let g of a.routeFiles){let h=new Set([g]),i=[g];for(let a=0;a<2&&h.size<25;a++){let a=[];for(let b of i)for(let c of d.get(b)??[])h.has(c)||h.size>=25||(h.add(c),a.push(c));i=a}let j=new Set,k=new Set;for(let c of h){let d=a.content(c);if(d)for(let a of b)!j.has(a)&&e.get(a).test(d)&&j.add(a),!k.has(a)&&f.get(a).test(d)&&k.add(a)}let l=[];for(let c of b){let b=j.has(c),d=k.has(c);(b||d)&&l.push({table:a.tableVars[c],access:b&&d?"read-write":d?"write":"read"})}c.set(g,l)}return c}},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)}},94490:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$r:()=>i,Wn:()=>k,wF:()=>j});var e=c(73024),f=c(6716),g=c(39908),h=a([g]);g=(h.then?(await h)():h)[0];let l=function(a){let b=a.limit??6,c=a.hardCap??12,d=new Map,e=0,f=new Set;function g(a){let b=d.get(a);b&&(b.seq=++e)}async function h(a){let b=d.get(a);b&&(d.delete(a),await b.handle.stop())}async function i(){await Promise.all([...d.values()].map(a=>a.handle.stop())),d.clear()}return{reconcile:function(){let c=a.list().filter(b=>a.exists(b.path)).slice(0,b);for(let b of(f=new Set(c.map(a=>a.id)),c))!function(b){if(d.has(b.id))return g(b.id);a.exists(b.path)&&d.set(b.id,{handle:a.start(b),seq:++e})}(b);for(let[b,c]of[...d]){let e=a.get(b);e&&a.exists(e.path)||(c.handle.stop(),d.delete(b))}},ensureWatcher:function(b){if(d.has(b))return g(b);let h=a.get(b);h&&a.exists(h.path)&&(d.size>=c&&function(){let a=null,b=1/0;for(let[c,e]of d)!f.has(c)&&e.seq<b&&(b=e.seq,a=c);a&&(d.get(a).handle.stop(),d.delete(a))}(),d.size>=c||d.set(b,{handle:a.start(h),seq:++e}))},stopWatcher:h,isWatching:function(a){return d.has(a)},activeIds:function(){return[...d.keys()]},stopAll:i}}({list:f.Y2,get:f.K4,exists:e.existsSync,start:a=>(0,g.F)(a)});function i(a){"1"!==process.env.BEACON_NO_INLINE_WATCH&&l.ensureWatcher(a)}function j(a){return l.isWatching(a)}async function k(a){await l.stopWatcher(a)}d()}catch(a){d(a)}})}};
|
|
1
|
+
"use strict";exports.id=9213,exports.ids=[9213],exports.modules={14643:(a,b,c)=>{c.d(b,{I:()=>i,r:()=>h});let d=/(^|\/)app\/.*\/route\.(ts|tsx|js|jsx|mjs)$/,e=/\.(ts|py)$/,f=/(schema|model)/i,g=/(\.(test|spec)\.[jt]sx?$)|(^|\/)(tests?|__tests__|__mocks__)\/|(^|\/)test_[^/]+\.py$|_test\.py$/;function h(a){return!g.test(a)&&(!!(a.endsWith(".prisma")||d.test(a)||a.endsWith(".java"))||e.test(a)&&f.test(a))}function i(a,b=300){return a.filter(h).slice(0,b)}},21723:(a,b,c)=>{function d(a,b){if(/_JSON_OR_JSONB|\bJSONB\b|\bJSON\b/.test(a))return"jsonb";let c=a.match(/\b(GUID|Uuid|UUID|String|Text|DateTime|Date|Time|BigInteger|SmallInteger|Integer|Boolean|Float|Numeric|Decimal|Vector|TSVECTOR|LargeBinary|Enum)\b\s*(\([^)]*\))?/);if(c){let a=c[2]??"",b=a.match(/\d+/)?.[0];switch(c[1]){case"GUID":case"Uuid":case"UUID":return"uuid";case"String":return b?`varchar(${b})`:"varchar";case"Text":return"text";case"DateTime":return/timezone\s*=\s*True/.test(a)?"timestamptz":"timestamp";case"Date":return"date";case"Time":return"time";case"BigInteger":return"bigint";case"SmallInteger":return"smallint";case"Integer":return"integer";case"Boolean":return"boolean";case"Float":return"float";case"Numeric":case"Decimal":return"numeric";case"Vector":return b?`vector(${b})`:"vector";case"TSVECTOR":return"tsvector";case"LargeBinary":return"bytea";case"Enum":return"varchar"}}let d=b.replace(/\s*\|\s*None/g,"").trim(),e=d.match(/^Optional\[([\s\S]*)\]$/);return(e&&(d=e[1].trim()),/uuid/i.test(d))?"uuid":/datetime/i.test(d)?"timestamptz":/\bint\b/i.test(d)?"integer":/\bbool\b/i.test(d)?"boolean":/\bfloat\b/.test(d)&&!/\blist\b/.test(d)?"float":/\bdict\b|\blist\b|\bAny\b/.test(d)?"jsonb":"text"}function e(a,b){let c=0;for(let d=b;d<a.length;d++)if("("===a[d])c++;else if(")"===a[d]&&0==--c)return a.slice(b+1,d);return""}c.d(b,{Y:()=>k});let f={long:"bigint",Long:"bigint",BigInteger:"bigint",int:"integer",Integer:"integer",short:"smallint",Short:"smallint",String:"varchar",char:"varchar",Character:"varchar",boolean:"boolean",Boolean:"boolean",UUID:"uuid",BigDecimal:"numeric",double:"double",Double:"double",float:"float",Float:"float",LocalDate:"date",LocalDateTime:"timestamp",Instant:"timestamp",Timestamp:"timestamp",Date:"timestamp",OffsetDateTime:"timestamptz",ZonedDateTime:"timestamptz",LocalTime:"time"},g=/^(List|Set|Map|Collection|Iterable)$/;function h(a){return/byte\s*\[\s*\]/.test(a)?"byte[]":(a.replace(/<.*>/,"").trim().split(".").pop()??a).trim()}function i(a,b){return a.match(RegExp(`\\b${b}\\s*=\\s*"([^"]*)"`))?.[1]}function j(a,b){let c=a.match(RegExp(`\\b${b}\\s*=\\s*(true|false)`));return c?"true"===c[1]:void 0}function k(a){let b=function(a){let b=[],c=/(\w+)\s*:\s*(text|integer|real|blob|numeric|varchar|boolean|timestamp|serial|uuid|json|jsonb)\s*\(/g;for(let d of a){let a;if(!/\.(ts|tsx|mts|cts)$/.test(d.path)||!/\b(?:sqliteTable|pgTable|mysqlTable)\s*\(/.test(d.content))continue;let f=/(?:export\s+)?const\s+(\w+)\s*=\s*(?:sqliteTable|pgTable|mysqlTable)\s*\(\s*["']([^"']+)["']\s*,/g;for(;a=f.exec(d.content);){let f=d.content.indexOf("{",a.index+a[0].length);if(f<0)continue;let g=function(a,b){let c=0;for(let d=b;d<a.length;d++)if("{"===a[d])c++;else if("}"===a[d]&&0==--c)return a.slice(b+1,d);return""}(d.content,f),h={varName:a[1],tableName:a[2],columns:[],colByProp:new Map,fks:[]},i=[];for(let a of(c.lastIndex=0,g.matchAll(c)))i.push({prop:a[1],builder:a[2],at:a.index,argOpen:a.index+a[0].length-1});i.forEach((a,b)=>{var c;let d=g.slice(a.at,i[b+1]?.at??g.length),f=e(g,a.argOpen),j=f.match(/^\s*["']([^"']+)["']/)?.[1]??a.prop,k=d.match(/\.references\(\s*\(\)\s*=>\s*(\w+)\.(\w+)/);h.columns.push({name:j,type:(c=a.builder,/mode:\s*["']timestamp/.test(f)?"timestamp":/mode:\s*["']boolean["']/.test(f)?"boolean":/mode:\s*["']json["']/.test(f)?"jsonb":c),isPk:/\.primaryKey\(\)/.test(d)||void 0,isFk:!!k||void 0,nullable:!/\.notNull\(\)/.test(d)}),h.colByProp.set(a.prop,j),k&&h.fks.push({column:j,toVar:k[1],toProp:k[2]})}),b.push(h)}}if(!b.length)return{tables:[],relations:[]};let d=new Map(b.map(a=>[a.varName,a])),f=[];for(let a of b)for(let b of a.fks){let c=d.get(b.toVar);c&&f.push({fromTable:a.tableName,fromColumn:b.column,toTable:c.tableName,toColumn:c.colByProp.get(b.toProp)??b.toProp})}return{tables:b.map(a=>({name:a.tableName,columns:a.columns})),relations:f,tableVars:Object.fromEntries(b.map(a=>[a.varName,a.tableName]))}}(a);if(b.tables.length)return b;let c=function(a){let b=[],c=[];for(let d of a){let a;if(!d.path.endsWith(".prisma"))continue;let e=/model\s+(\w+)\s*\{([\s\S]*?)\}/g;for(;a=e.exec(d.content);){let d=a[1],e=a[2].match(/@@map\(\s*["']([^"']+)["']\s*\)/)?.[1]??d,f=[];for(let b of a[2].split("\n")){let a=b.trim().match(/^(\w+)\s+(\w+(?:\[\])?\??)\s*(.*)$/);if(!a||/^@@/.test(b.trim()))continue;let[,d,g,h]=a,i=/^(String|Int|BigInt|Float|Decimal|Boolean|DateTime|Json|Bytes)(\[\])?\??$/.test(g),j=h.match(/@relation\([^)]*fields:\s*\[(\w+)\][^)]*references:\s*\[(\w+)\]/);j&&c.push({fromTable:e,fromColumn:j[1],toTable:g.replace(/[?[\]]/g,""),toColumn:j[2]}),i&&f.push({name:d,type:function(a){let b=a.replace(/[?[\]]/g,"");return({String:"text",Int:"integer",BigInt:"bigint",Float:"float",Decimal:"numeric",Boolean:"boolean",DateTime:"timestamptz",Json:"jsonb",Bytes:"bytea"})[b]??b.toLowerCase()}(g),isPk:/@id\b/.test(h)||void 0,isFk:/@relation\b/.test(h)||void 0,nullable:g.endsWith("?")})}f.length&&b.push({name:e,columns:f})}}return{tables:b,relations:c}}(a);if(c.tables.length)return c;let k=function(a){let b=new Map,c=[],f=[];for(let g of a){let a;if(!g.path.endsWith(".py")||!/mapped_column\s*\(|__tablename__|\bTable\s*\(\s*["']/.test(g.content))continue;let h=function(a){let b,c=[],f=[],g=/\bTable\s*(\()\s*["']([^"']+)["']\s*,/g;for(;b=g.exec(a);){let g,h=b[2],i=e(a,b.index+b[0].indexOf("("));if(!/\bmetadata\b/.test(i)||!/\bColumn\s*\(/.test(i))continue;let j=[],k=/\bColumn\s*\(/g;for(;g=k.exec(i);){let a=e(i,g.index+g[0].length-1),b=a.match(/^\s*["'](\w+)["']\s*,/)?.[1];if(!b)continue;let c=/primary_key\s*=\s*True/.test(a)||void 0,k=!/nullable\s*=\s*False/.test(a),l=a.match(/ForeignKey\(\s*["']([^"']+?)\.([^"'.]+)["']/);j.push({name:b,type:d(a,""),isPk:c,isFk:!!l||void 0,nullable:k}),l&&f.push({fromTable:h,fromColumn:b,toTable:l[1],toColumn:l[2]})}j.length&&c.push({name:h,columns:j})}return{tables:c,relations:f}}(g.content);c.push(...h.tables),f.push(...h.relations);let i=/^class\s+(\w+)\s*\(([^)]*)\)\s*:/gm,j=[];for(;a=i.exec(g.content);)j.push({name:a[1],bases:a[2].split(",").map(a=>a.trim().split(/[.[]/)[0]).filter(Boolean),at:a.index});for(let a=0;a<j.length;a++){let c=g.content.slice(j[a].at,j[a+1]?.at??g.content.length),f=function(a,b,c){let f,g=c.match(/__tablename__\s*=\s*["']([^"']+)["']/)?.[1],h=[],i=[],j=[],k=/(\w+)\s*:\s*Mapped\s*\[/g;for(;f=k.exec(c);){let a=f.index+f[0].length-1,b=function(a,b){let c=0;for(let d=b;d<a.length;d++)if("["===a[d])c++;else if("]"===a[d]&&0==--c)return a.slice(b+1,d);return null}(c,a);if(null===b)continue;let d=a+b.length+2,e=c.slice(d).match(/^\s*=\s*(\w+)\s*\(/);e&&"mapped_column"===e[1]&&j.push({colName:f[1],pyType:b,argsAt:d+e[0].length-1})}let l=/(\w+)\s*=\s*(mapped_column|Column)\s*\(/g;for(;f=l.exec(c);)j.push({colName:f[1],pyType:"",argsAt:f.index+f[0].length-1});j.sort((a,b)=>a.argsAt-b.argsAt);let m=new Set;for(let a of j){if(m.has(a.colName)||"__tablename__"===a.colName)continue;m.add(a.colName);let b=e(c,a.argsAt),f=/primary_key\s*=\s*True/.test(b)||void 0,g=!/nullable\s*=\s*False/.test(b),j=b.match(/ForeignKey\(\s*["']([^"']+?)\.([^"'.]+)["']/);h.push({name:a.colName,type:d(b,a.pyType),isPk:f,isFk:!!j||void 0,nullable:g}),j&&i.push({column:a.colName,toTable:j[1],toColumn:j[2]})}return{name:a,bases:b,tableName:g,columns:h,fks:i}}(j[a].name,j[a].bases,c);b.set(f.name,f)}}if(![...b.values()].some(a=>a.tableName)&&!c.length)return{tables:[],relations:[]};let g=(a,c=new Set)=>{if(c.has(a.name))return[];c.add(a.name);let d=[];for(let e of a.bases){let a=b.get(e);a&&!a.tableName&&d.push(...g(a,c))}return d.push(...a.columns),d},h=[],i=[];for(let a of b.values()){if(!a.tableName)continue;let b=g(a),c=new Map;for(let a of b)c.has(a.name)||c.set(a.name,a);let d=[...c.values()],e=a=>d.splice(d.findIndex(b=>b.name===a),1)[0],f=d.some(a=>"id"===a.name)?e("id"):null,j=["created_at","updated_at","deleted_at"].filter(a=>d.some(b=>b.name===a)).map(a=>e(a));for(let b of(h.push({name:a.tableName,columns:[...f?[f]:[],...d,...j]}),a.fks))i.push({fromTable:a.tableName,fromColumn:b.column,toTable:b.toTable,toColumn:b.toColumn})}let j=new Set(h.map(a=>a.name));for(let a of c)j.has(a.name)||h.push(a);return i.push(...f.filter(a=>!j.has(a.fromTable))),{tables:h,relations:i}}(a);return k.tables.length?k:function(a){let b=a.filter(a=>a.path.endsWith(".java")&&/@Entity\b/.test(a.content));if(!b.length)return{tables:[],relations:[]};let c=b.flatMap(a=>(function(a){let b,c=[],d=/\bclass\s+(\w+)/g;for(;b=d.exec(a);)c.push({name:b[1],at:b.index});let e=[];for(let b=0;b<c.length;b++){let d=a.slice(0===b?0:c[b-1].at,c[b].at);if(!/@Entity\b/.test(d))continue;let f=i(d.match(/@Table\s*\([^)]*\)/)?.[0]??"","name")??c[b].name,g=function(a){let b=[],c=[];for(let d of a.split("\n")){let a=d.trim();if(!a||a.startsWith("//")||a.startsWith("*")||a.startsWith("/*"))continue;let{annots:e,rest:f}=function(a){let b,c=[],d=a;for(;b=d.match(/^@[\w.]+(\([^)]*\))?\s*/);)c.push(d.slice(0,b[0].length).trim()),d=d.slice(b[0].length);return{annots:c,rest:d.trim()}}(a);if(c.push(...e),!f)continue;let g=f,h="";for(;g!==h;)h=g,g=g.replace(/^(?:public|private|protected|static|final|transient|volatile)\s+/,"");let i=g.includes("(")?null:g.match(/^([\w.$]+(?:<[^>]*>)?(?:\s*\[\s*\])?)\s+(\w+)\s*[;=]/);i&&b.push({annots:c,type:i[1],name:i[2]}),c=[]}return b}(a.slice(c[b].at,c[b+1]?.at??a.length)),h=g.find(a=>a.annots.some(a=>/@Id\b/.test(a))),j=h?i(h.annots.find(a=>/@Column\b/.test(a))??"","name")??h.name:"id";e.push({className:c[b].name,tableName:f,idColumn:j,fields:g})}return e})(a.content));if(!c.length)return{tables:[],relations:[]};let d=new Map(c.map(a=>[a.className,a.tableName])),e=new Map(c.map(a=>[a.className,a.idColumn])),k=[],l=[];for(let a of c){let b=[];for(let c of a.fields){let k=c.annots.join(" ");if(/@Transient\b/.test(k))continue;let m=h(c.type);if(/@ManyToOne\b|@OneToOne\b|@OneToMany\b|@ManyToMany\b/.test(k)||d.has(m)){let f=c.annots.find(a=>/@JoinColumn\b/.test(a)),g=f?i(f,"name"):void 0;if(g){b.push({name:g,type:"bigint",isFk:!0,nullable:j(k,"nullable")??!0});let c=d.get(m);c&&l.push({fromTable:a.tableName,fromColumn:g,toTable:c,toColumn:e.get(m)??"id"})}continue}if(g.test(m))continue;let n=c.annots.find(a=>/@Column\b/.test(a))??"",o=i(n,"name")??c.name,p=c.annots.some(a=>/@Id\b/.test(a)),q=j(n,"nullable");b.push({name:o,type:function(a){let b=h(a);return"byte[]"===b?"bytea":f[b]??b.toLowerCase()}(c.type),...p?{isPk:!0}:{},...void 0!==q?{nullable:q}:{}})}k.push({name:a.tableName,columns:b})}return{tables:k,relations:l}}(a)}},30814:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{ER:()=>n,Rm:()=>m,X2:()=>p,cL:()=>l});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 q=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([])});function k(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}async function l(a,b=g.db){let c=q.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),m=k(d,j),n=new Map,o=new Map;for(let a of j)o.set(a.from,(o.get(a.from)??0)+1),n.set(a.to,(n.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:n.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=m.has(`${a.from}|${a.to}`);return b&&p++,{fromPath:a.from,toPath:a.to,circular:b}}));let r=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:r}}let r=(a,b)=>`${a}\0${b}`;function m(a){let b=q.parse(a),c=b.files.map(a=>a.path),d=new Set(c),e=b.edges.filter(a=>d.has(a.from)&&d.has(a.to)&&a.from!==a.to),f=k(c,e),g=new Map,h=new Map;for(let a of e)h.set(a.from,(h.get(a.from)??0)+1),g.set(a.to,(g.get(a.to)??0)+1);let i=new Map;for(let a of b.files)i.set(a.path,{root:a.root??null,lang:a.lang??null,mtimeMs:a.mtimeMs??null,size:a.size??null,inDegree:g.get(a.path)??0,outDegree:h.get(a.path)??0});let j=new Map;for(let a of e)j.set(r(a.from,a.to),{from:a.from,to:a.to,circular:f.has(`${a.from}|${a.to}`)});return{files:i,edges:j}}let s=(a,b)=>a.root===b.root&&a.lang===b.lang&&a.mtimeMs===b.mtimeMs&&a.size===b.size&&a.inDegree===b.inDegree&&a.outDegree===b.outDegree;async function n(a,b,c=g.db){for(let[d,e]of b.files){let b=a.files.get(d);if(b&&s(b,e))continue;let f={root:e.root,lang:e.lang,mtimeMs:e.mtimeMs,size:e.size,inDegree:e.inDegree,outDegree:e.outDegree};await c.insert(h.codeFile).values({path:d,...f}).onConflictDoUpdate({target:h.codeFile.path,set:f})}let d=[...a.files.keys()].filter(a=>!b.files.has(a));for(let[e,g]of(d.length&&await c.delete(h.codeFile).where((0,f.RV)(h.codeFile.path,d)),a.edges))b.edges.has(e)||await c.delete(h.codeFileEdge).where((0,f.Uo)((0,f.eq)(h.codeFileEdge.fromPath,g.from),(0,f.eq)(h.codeFileEdge.toPath,g.to)));let e=[];for(let[d,g]of b.edges){let b=a.edges.get(d);b?b.circular!==g.circular&&await c.update(h.codeFileEdge).set({circular:g.circular}).where((0,f.Uo)((0,f.eq)(h.codeFileEdge.fromPath,g.from),(0,f.eq)(h.codeFileEdge.toPath,g.to))):e.push({fromPath:g.from,toPath:g.to,circular:g.circular})}e.length&&await c.insert(h.codeFileEdge).values(e);let j=await (0,i.Bx)(c);await c.update(h.syncState).set({codeGraphSyncedAt:new Date}).where((0,f.eq)(h.syncState.id,"singleton"));let k=0;for(let a of b.edges.values())a.circular&&k++;return{files:b.files.size,edges:b.edges.size,circular:k,version:j}}async function o(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 p(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}}),o(a,b,e,"down"),o(a,b,e,"up"),a.query.codeFile.findMany({columns:{inDegree:!0}})]),k=[...new Set([...h.order,...i.order].map(a=>a.path))],l=k.length?await a.query.codeFile.findMany({where:(a,{inArray:b})=>b(a.path,k),columns:{path:!0,lang:!0}}):[],m=new Map(l.map(a=>[a.path,a.lang])),n=a=>({path:a.path,depth:a.depth,lang:m.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(n),downstream:h.order.map(n),truncated:i.truncated||h.truncated}}}d()}catch(a){d(a)}})},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`}}},38920:(a,b,c)=>{c.d(b,{Q2:()=>J});var d=c(73024),e=c(51455),f=c(76760);let g=[".ts",".tsx",".js",".jsx",".mjs",".cjs"],h=[/(?:^|[\n;])\s*(?:import|export)[^'"`\n]{0,4000}?from\s*['"]([^'"`]+)['"]/g,/(?:^|[\n;])\s*import\s*['"]([^'"`]+)['"]/g,/\brequire\(\s*['"]([^'"`]+)['"]\s*\)/g,/\bimport\(\s*['"]([^'"`]+)['"]\s*\)/g];function i(a,b){if(b.has(a))return a;for(let c of g){let d=`${a}${c}`;if(b.has(d))return d}for(let c of g){let d=`${a}/index${c}`;if(b.has(d))return d}return null}function j(a,b){for(let c of[`${a}.py`,`${a}/__init__.py`,`${a}.pyi`])if(b.has(c))return[c];return[]}let k=/(?:^|[\n;])\s*import\s+(?:[\w.]+\s+)?"([^"]+)"/g,l=/(?:^|[\n;])\s*import\s*\(([\s\S]*?)\)/g,m=/"([^"]+)"/g,n=/(?:^|[\n;])\s*(?:pub\s+)?mod\s+(\w+)\s*;/g,o=/(?:^|[\n;])\s*(?:pub\s+)?use\s+([\w:]+)/g;function p(a,b){for(let c of[`${a}.rs`,`${a}/mod.rs`])if(b.has(c))return[c];return[]}let q=new Set(["mod.rs","lib.rs","main.rs"]),r=[".swift",".java",".rb",".kt",".kts",".cs",".php",".scala",".c",".h",".cpp",".hpp",".cc",".hh",".m",".mm",".ex",".exs",".lua",".dart",".vue",".svelte"],s=[/\b(?:require_relative|require|include|import|use|using|from)\s*\(?\s*['"]([^'"`\n]+)['"]/g,/(?:^|[\n;])\s*import\s+([\w.]+)/g,/(?:^|[\n;])\s*from\s+([\w.]+)\s+import\b/g,/(?:^|[\n;])\s*using\s+([\w.]+)\s*;/g,/(?:^|[\n;])\s*use\s+([\w\\]+)/g,/#\s*include\s*[<"]([^>"\n]+)[>"]/g],t=[{id:"ts",extensions:g,specifiers:function(a){let b=new Set;for(let c of h)for(let d of a.matchAll(c))b.add(d[1]);return b},resolve(a,b,c){let d=function(a,b,c,d){if(a.startsWith("."))return i((0,f.resolve)("/",(0,f.dirname)(b),a).split(/[\\/]/).join("/").replace(/^\//,""),c);for(let b of d)if(a.startsWith(b.from)){let d=a.slice(b.from.length),e=i(b.to?`${b.to}/${d}`:d,c);if(e)return e}return null}(a,b,c.fileSet,c.tsAliases??[]);return d?[d]:[]}},{id:"python",extensions:[".py",".pyi"],specifiers:function(a){let b=new Set;for(let c of a.matchAll(/(?:^|[\n;])\s*from\s+(\.*[\w.]*)\s+import\b/g)){let a=c[1].trim();a&&b.add(a)}for(let c of a.matchAll(/(?:^|[\n;])\s*import\s+([\w.]+(?:\s*,\s*[\w.]+)*)/g))for(let a of c[1].split(/\s*,\s*/)){let c=a.trim().split(/\s+as\s+/)[0].trim();c&&b.add(c)}return b},resolve(a,b,c){if(a.startsWith(".")){let d=a.length-a.replace(/^\.+/,"").length,e=a.slice(d),g=(0,f.dirname)(b);for(let a=1;a<d;a++)g=(0,f.dirname)(g);let h=e?(0,f.join)(g,e.replace(/\./g,"/")):g;return j((0,f.normalize)(h).replace(/\\/g,"/"),c.fileSet)}let d=a.replace(/\./g,"/"),e=[],g=(0,f.dirname)(b);for(;g&&"."!==g&&"/"!==g;)e.push(g),g=(0,f.dirname)(g);for(let a of(e.push(""),e)){let b=j(a?`${a}/${d}`:d,c.fileSet);if(b.length)return b}return[]}},{id:"go",extensions:[".go"],resolve(a,b,c){let d=c.goModulePath;if(!d)return[];let e=null;if(a===d?e="":a.startsWith(`${d}/`)&&(e=a.slice(d.length+1)),null===e)return[];let g=[];for(let a of c.fileSet){if(!a.endsWith(".go"))continue;let b=(0,f.dirname)(a);(""===e&&"."===b||b===e)&&g.push(a)}return g.sort()},specifiers:function(a){let b=new Set;for(let c of a.matchAll(k))b.add(c[1]);for(let c of a.matchAll(l))for(let a of c[1].matchAll(m))b.add(a[1]);return b}},{id:"rust",extensions:[".rs"],specifiers:function(a){let b=new Set;for(let c of a.matchAll(n))b.add(`./${c[1]}`);for(let c of a.matchAll(o)){let a=function(a){let b=a.split("::").filter(a=>a&&"*"!==a);return b.length?"crate"===b[0]?["crate",...b.slice(1)].join("/"):"super"===b[0]?["..",...b.slice(1)].join("/"):"self"===b[0]?[".",...b.slice(1)].join("/"):b.join("/"):""}(c[1]);a&&b.add(a)}return b},resolve(a,b,c){let d=c.fileSet;if(a.startsWith("./")||a.startsWith("../")){let c=a.replace(/^\.\//,""),e=p((0,f.normalize)((0,f.join)((0,f.dirname)(b),a)).replace(/\\/g,"/"),d);if(e.length)return e;if(a.startsWith("./")&&!q.has((0,f.basename)(b))){let a=(0,f.join)((0,f.dirname)(b),(0,f.basename)(b,".rs"),c);if((e=p((0,f.normalize)(a).replace(/\\/g,"/"),d)).length)return e}return[]}if(a.startsWith("crate/")){let c=b.split("/"),e=c.lastIndexOf("src"),g=e>=0?c.slice(0,e+1).join("/"):(0,f.dirname)(b),h=a.slice(6).split("/");for(let a of[h.join("/"),h.slice(0,-1).join("/")]){if(!a)continue;let b=p(`${g}/${a}`,d);if(b.length)return b}}return[]}},{id:"fallback",extensions:r,specifiers:function(a){let b=new Set;for(let c of s)for(let d of a.matchAll(c)){let a=d[1].trim();a&&b.add(a)}return b},resolve(a,b,c){let d=[(0,f.extname)(b).toLowerCase(),...r].filter((a,b,c)=>a&&c.indexOf(a)===b),e=a.includes("/")||a.includes("\\"),g=a.startsWith(".")||e?a.replace(/\\/g,"/"):a.replace(/[.:]+/g,"/");for(let a of[(0,f.normalize)((0,f.join)((0,f.dirname)(b),g)).replace(/\\/g,"/"),g.replace(/^\.\//,"")]){if(c.fileSet.has(a))return[a];for(let b of d){let d=a.endsWith(b)?a:`${a}${b}`;if(c.fileSet.has(d))return[d];if(c.fileSet.has(`${a}/index${b}`))return[`${a}/index${b}`]}}return[]}}],u=new Map;for(let a of t)for(let b of a.extensions)u.set(b,a);let v={".ts":"ts",".tsx":"ts",".js":"js",".jsx":"js",".mjs":"js",".cjs":"js",".py":"py",".pyi":"py",".go":"go",".rs":"rs",".swift":"swift",".java":"java",".rb":"ruby",".kt":"kotlin",".kts":"kotlin",".cs":"csharp",".php":"php",".scala":"scala",".c":"c",".h":"c",".cpp":"cpp",".hpp":"cpp",".cc":"cpp",".hh":"cpp",".m":"objc",".mm":"objc",".ex":"elixir",".exs":"elixir",".lua":"lua",".dart":"dart",".vue":"vue",".svelte":"svelte"};function w(a){return u.get((0,f.extname)(a).toLowerCase())??null}function x(){return new Set(u.keys())}let y=new Set(["node_modules",".git",".next","dist","build","__pycache__","target",".venv","venv","env",".turbo","coverage",".beacon",".playwright-mcp","generated","migrations","alembic","migrate"]),z=()=>Promise.resolve();async function A(a,b,c,d,g){let h;try{h=await (0,e.readdir)(b,{withFileTypes:!0})}catch{return}for(let e of h){if(e.name.startsWith(".")||y.has(e.name))continue;let h=(0,f.join)(b,e.name);if(e.isDirectory()){await A(a,h,c,d,g);continue}!(!e.isFile()||e.name.endsWith(".d.ts"))&&c.has((0,f.extname)(e.name).toLowerCase())&&d.push((0,f.relative)(a,h))}await g()}async function B(a,b=z){let c=[];return await A(a,a,x(),c,b),c.map(a=>a.split(/[\\/]/).join("/")).sort()}function C(a){return a.replace(/^\.\/?/,"").replace(/\/$/,"")}function D(a){let b,c=(0,f.join)(a,"tsconfig.json");if(!(0,d.existsSync)(c))return[];try{b=function(a){try{return JSON.parse(a)}catch{}return JSON.parse(a.replace(/\/\*[^"]*?\*\//g,"").replace(/(^|[^:"])\/\/.*$/gm,"$1").replace(/,\s*([}\]])/g,"$1"))}((0,d.readFileSync)(c,"utf8"))}catch{return[]}let e=b.compilerOptions?.paths??{},g=C(b.compilerOptions?.baseUrl??"."),h=[];for(let[a,b]of Object.entries(e)){if(!a.endsWith("/*")||!b.length)continue;let c=b[0];if(!c.endsWith("/*"))continue;let d=a.slice(0,-1),e=[g,C(c.slice(0,-1))].filter(Boolean).join("/");h.push({from:d,to:e})}return h}function E(a){let b=(0,f.join)(a,"go.mod");if(!(0,d.existsSync)(b))return null;try{let a=/^\s*module\s+(\S+)/m.exec((0,d.readFileSync)(b,"utf8"));return a?a[1]:null}catch{return null}}function F(a){return a.split(/[\\/]/).join("/")}function G(a){if(1===a.length)return a[0];let b=a.map(a=>F(a).split("/")),c=b[0],d=0;for(;d<c.length&&b.every(a=>a[d]===c[d]);d++);return c.slice(0,d).join("/")||"/"}async function H(a,b,c){let d=(Array.isArray(a)?a:[a]).map(a=>F((0,f.resolve)(a))),g=F(b?(0,f.resolve)(b):1===d.length?d[0]:G(d)),h=new Map,i=[];for(let a of d){let b=F((0,f.relative)(g,a));for(let c of D(a))i.push({from:c.from,to:[b,c.to].filter(Boolean).join("/")});for(let d of(await B(a,c))){let i=F((0,f.join)(a,d)),j=F((0,f.relative)(g,i));if(!h.has(j)){try{let a=await (0,e.stat)(i);h.set(j,{path:j,abs:i,root:b||null,mtimeMs:a.mtimeMs,size:a.size})}catch{}await c()}}}let j=d.map(E).find(Boolean)??E(g);return{metas:[...h.values()].sort((a,b)=>a.path.localeCompare(b.path)),ctx:{fileSet:new Set(h.keys()),tsAliases:i,goModulePath:j}}}async function I(a){let b=w(a.path);if(!b||a.size>2e5)return new Set;try{let c=await (0,e.readFile)(a.abs,"utf8");if(function(a){let b=0;for(let c=0;c<a.length;c++)if(10===a.charCodeAt(c)){if(c-b>5e4)return!0;b=c+1}return a.length-b>5e4}(c))return new Set;return b.specifiers(c)}catch{return new Set}}function J(a,b){let c=(Array.isArray(a)?a:[a]).map(a=>F((0,f.resolve)(a))),d=F(b?(0,f.resolve)(b):1===c.length?c[0]:G(c)),g=new Map,h=new Map,i=[],j=null;function k(){let a={fileSet:new Set(g.keys()),tsAliases:i,goModulePath:j},b=[...g.values()].sort((a,b)=>a.path.localeCompare(b.path)),c=[];for(let d of b){let b=w(d.path);if(!b)continue;let e=h.get(d.path)??new Set,f=new Set;for(let g of e)for(let e of b.resolve(g,d.path,a))!e||e===d.path||f.has(e)||(f.add(e),c.push({from:d.path,to:e}))}return{files:b.map(a=>{var b;let c;return{path:a.path,lang:(b=a.path,c=(0,f.extname)(b).toLowerCase(),u.has(c)?v[c]??c.slice(1):null),root:a.root,mtimeMs:a.mtimeMs,size:a.size}}),edges:c}}return{seed:async function(){let c=function(a=5){let b=performance.now();return async()=>{performance.now()-b>a&&(await new Promise(a=>setImmediate(a)),b=performance.now())}}(),{metas:d,ctx:e}=await H(a,b,c);for(let a of(g.clear(),h.clear(),d))await c(),g.set(a.path,a),h.set(a.path,await I(a));return i=e.tsAliases??[],j=e.goModulePath??null,k()},applyChange:async function(a){let b,k=F((0,f.resolve)(a));if(!c.some(a=>k===a||k.startsWith(`${a}/`)))return!1;let l=k.split("/").pop()??"";if("tsconfig.json"===l||"go.mod"===l){let a=k.slice(0,k.length-l.length-1);if(c.includes(a)){for(let a of(i=[],c)){let b=F((0,f.relative)(d,a));for(let c of D(a))i.push({from:c.from,to:[b,c.to].filter(Boolean).join("/")})}return j=c.map(E).find(Boolean)??E(d),!0}return!1}let m=function(a){let b=F((0,f.resolve)(a));for(let a of c)if(b===a||b.startsWith(`${a}/`)){if(function(a){let b=a.split("/");for(let a=0;a<b.length;a++){let c=b[a];if(!c||c.startsWith(".")||a<b.length-1&&y.has(c))return!0}let c=b[b.length-1];return!!c.endsWith(".d.ts")||!x().has((0,f.extname)(c).toLowerCase())}(b.slice(a.length).replace(/^\/+/,"")))return null;return{path:F((0,f.relative)(d,b)),root:F((0,f.relative)(d,a))||null}}return null}(a);if(!m)return!1;try{b=await (0,e.stat)(k)}catch{let a=g.delete(m.path);return h.delete(m.path),a}let n=g.get(m.path);if(n&&n.mtimeMs===b.mtimeMs&&n.size===b.size)return!1;let o={path:m.path,abs:k,root:m.root,mtimeMs:b.mtimeMs,size:b.size};return g.set(m.path,o),h.set(m.path,await I(o)),!0},snapshot:k}}},39908:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{F:()=>r});var e=c(73024),f=c(51455),g=c(76760),h=c(38920),i=c(61465),j=c(21723),k=c(54295),l=c(14643),m=c(30814),n=c(19734),o=c(56727),p=c(6716),q=a([m,n,o]);[m,n,o]=q.then?(await q)():q;let s=/[/\\](node_modules|\.git|\.next|dist|build|__pycache__|target|\.venv|venv|\.beacon|\.playwright-mcp|generated|coverage)[/\\]/;function r(a){let b=function(a){try{let b=(0,g.join)(a,"beacon.config.json");if((0,e.existsSync)(b)){let c=JSON.parse((0,e.readFileSync)(b,"utf8"));if(Array.isArray(c.roots)&&c.roots.length)return c.roots.map(b=>(0,g.resolve)(a,b))}}catch{}return[a]}(a.path),c=(0,p.kO)(a.id),d=(0,o.Lf)((0,p.Nx)(a.id)),q=(0,h.Q2)(b,a.path);async function r(){let c=(0,l.I)(q.snapshot().files.map(a=>a.path));for(let a of b)for(let b of["prisma/schema.prisma","schema.prisma"]){let d=(0,g.join)(a,b);(0,e.existsSync)(d)&&c.push(t(d))}let h=[];for(let b of c)try{h.push({path:b,content:await (0,f.readFile)((0,g.join)(a.path,b),"utf8")})}catch{}let m=(0,j.Y)(h),o=(0,k.$)(h);if(!m.tables.length&&!o.length)return;if(o.length&&m.tableVars&&Object.keys(m.tableVars).length){let b=q.snapshot().edges,c=new Set(o.map(a=>a.file)),d=new Map;for(let a of b){let b=d.get(a.from)??[];b.push(a.to),d.set(a.from,b)}for(let a=0;a<2;a++)for(let a of[...c])for(let b of d.get(a)??[])c.add(b);let e=new Map;for(let b of[...c].slice(0,600))try{e.set(b,await (0,f.readFile)((0,g.join)(a.path,b),"utf8"))}catch{}let h=(0,i.R)({routeFiles:[...new Set(o.map(a=>a.file))],edges:b,content:a=>e.get(a)??null,tableVars:m.tableVars});for(let a of o)a.uses=h.get(a.file)??[]}let p=await (0,n.Rw)({tables:m.tables,relations:m.relations,endpoints:o},d,{partial:!0});console.log(`[beacon-inline] schema synced (${a.name}): ${p.tables} tables / ${p.endpoints} endpoints`)}function t(b){return(0,g.relative)(a.path,b).split(/[\\/]/).join("/")}let u=null,v=!1,w=new Set,x=null,y=!1;async function z(){if(y)return void A();y=!0;try{if(await c,v&&(u=null,v=!1),null===u){let b=await q.seed(),c=await (0,m.cL)(b,d);u=(0,m.Rm)(b),console.log(`[beacon-inline] code-graph synced (${a.name}): ${c.files} files / ${c.edges} imports${c.circular>0?` (${c.circular} circular)`:""}`),await r();return}let b=[...w];w.clear();let e=b.some(a=>(0,l.r)(t(a))),f=!1;for(let a of b)await q.applyChange(a)&&(f=!0);if(f){let b=(0,m.Rm)(q.snapshot()),c=await (0,m.ER)(u,b,d);u=b,console.log(`[beacon-inline] code-graph updated (${a.name}): ${c.files} files / ${c.edges} imports${c.circular>0?` (${c.circular} circular)`:""}`)}e&&await r()}catch(b){console.error(`[beacon-inline] error (${a.name}):`,b instanceof Error?b.message:b)}finally{y=!1}}function A(){x&&clearTimeout(x),x=setTimeout(z,600)}let B=[];for(let c of b)try{let b=(0,e.watch)(c,{recursive:!0,persistent:!0},(a,b)=>{if(!b){v=!0,A();return}let d=String(b);s.test(`/${d}`)||(w.add((0,g.join)(c,d)),A())});b.on("error",b=>console.error(`[beacon-inline] watcher error (${a.name}):`,b)),B.push(b)}catch(b){console.error(`[beacon-inline] live watch unavailable for ${c} (${a.name}):`,b instanceof Error?b.message:b)}return console.log(`[beacon-inline] watching ${a.name} (${b.join(", ")}) — initial extract…`),z(),{async stop(){for(let a of(x&&clearTimeout(x),B))a.close()}}}d()}catch(a){d(a)}})},54295:(a,b,c)=>{c.d(b,{$:()=>e});let d=["GET","POST","PUT","PATCH","DELETE"];function e(a){let b=[];for(let c of a){let a=function(a){let b=a.match(/(?:^|\/)app\/(.+)\/route\.(?:ts|tsx|js|jsx|mjs)$/);if(!b)return null;let c=b[1].split("/").filter(a=>!(a.startsWith("(")&&a.endsWith(")"))).map(a=>{let b=a.match(/^\[{1,2}(?:\.\.\.)?([^\]]+)\]{1,2}$/);return b?`{${b[1]}}`:a});return"api"!==c[0]?null:`/${c.join("/")}`}(c.path);if(a)for(let e of d)RegExp(`export\\s+(?:async\\s+)?(?:function|const)\\s+${e}\\b`).test(c.content)&&b.push({method:e,path:a,uses:[],file:c.path})}return b.sort((a,b)=>`${a.path} ${a.method}`.localeCompare(`${b.path} ${b.method}`))}},61465:(a,b,c)=>{c.d(b,{R:()=>d});function d(a){let b=Object.keys(a.tableVars),c=new Map;if(!b.length){for(let b of a.routeFiles)c.set(b,[]);return c}let d=new Map;for(let b of a.edges){let a=d.get(b.from)??[];a.push(b.to),d.set(b.from,a)}let e=new Map(b.map(a=>[a,RegExp(`(?:query\\.${a}\\b|\\.from\\(\\s*${a}\\b)`)])),f=new Map(b.map(a=>[a,RegExp(`(?:insert|update|delete)\\(\\s*${a}\\b`)]));for(let g of a.routeFiles){let h=new Set([g]),i=[g];for(let a=0;a<2&&h.size<25;a++){let a=[];for(let b of i)for(let c of d.get(b)??[])h.has(c)||h.size>=25||(h.add(c),a.push(c));i=a}let j=new Set,k=new Set;for(let c of h){let d=a.content(c);if(d)for(let a of b)!j.has(a)&&e.get(a).test(d)&&j.add(a),!k.has(a)&&f.get(a).test(d)&&k.add(a)}let l=[];for(let c of b){let b=j.has(c),d=k.has(c);(b||d)&&l.push({table:a.tableVars[c],access:b&&d?"read-write":d?"write":"read"})}c.set(g,l)}return c}},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)}},94490:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$r:()=>i,Wn:()=>k,wF:()=>j});var e=c(73024),f=c(6716),g=c(39908),h=a([g]);g=(h.then?(await h)():h)[0];let l=globalThis,m=l.__beaconWatcherManager??=function(a){let b=a.limit??6,c=a.hardCap??12,d=new Map,e=0,f=new Set;function g(a){let b=d.get(a);b&&(b.seq=++e)}async function h(a){let b=d.get(a);b&&(d.delete(a),await b.handle.stop())}async function i(){await Promise.all([...d.values()].map(a=>a.handle.stop())),d.clear()}return{reconcile:function(){let c=a.list().filter(b=>a.exists(b.path)).slice(0,b);for(let b of(f=new Set(c.map(a=>a.id)),c))!function(b){if(d.has(b.id))return g(b.id);a.exists(b.path)&&d.set(b.id,{handle:a.start(b),seq:++e})}(b);for(let[b,c]of[...d]){let e=a.get(b);e&&a.exists(e.path)||(c.handle.stop(),d.delete(b))}},ensureWatcher:function(b){if(d.has(b))return g(b);let h=a.get(b);h&&a.exists(h.path)&&(d.size>=c&&function(){let a=null,b=1/0;for(let[c,e]of d)!f.has(c)&&e.seq<b&&(b=e.seq,a=c);a&&(d.get(a).handle.stop(),d.delete(a))}(),d.size>=c||d.set(b,{handle:a.start(h),seq:++e}))},stopWatcher:h,isWatching:function(a){return d.has(a)},activeIds:function(){return[...d.keys()]},stopAll:i}}({list:f.Y2,get:f.K4,exists:e.existsSync,start:a=>(0,g.F)(a)});function i(a){"1"!==process.env.BEACON_NO_INLINE_WATCH&&m.ensureWatcher(a)}function j(a){return m.isWatching(a)}async function k(a){await m.stopWatcher(a)}d()}catch(a){d(a)}})}};
|