@omfalos/mokosh 0.1.11 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.mjs CHANGED
@@ -1,40 +1,40 @@
1
1
  #!/usr/bin/env node
2
- var it=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var m=(t,e)=>()=>(t&&(e=t(t=0)),e);var Ii=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);import Mi from"path";import{fileURLToPath as Ai}from"url";var Di,Ri,f,c=m(()=>{"use strict";Di=()=>Ai(import.meta.url),Ri=()=>Mi.dirname(Di()),f=Ri()});function Fe(t){jr.push(t)}function _r(t){return[...Oi,...jr].some(e=>typeof e=="string"?t.includes(e):e instanceof RegExp?e.test(t):e(t))}function Pe(t){Wr.push(t)}function se(){return[...Gi,...Wr]}function Te(t){zr.push(t)}function at(){return[...Li,...zr]}function ct(t){$r=t}function lt(){return $r}var Oi,jr,Gi,Wr,Li,zr,$r,U=m(()=>{"use strict";c();Oi=[".config.","biome.json","tsconfig.json","package.json",".prettierrc",".eslintrc"],jr=[];Gi=[".test.",".spec.","-test.","-spec."],Wr=[];Li=["jest","vitest","playwright","cypress","@testing-library/"],zr=[];$r=.8});import pt from"fs";import Ur from"path";function B(t,{allowJs:e=!0,isExplicitPath:r=!1}={}){if(r){let s=Ur.resolve(t);return pt.existsSync(s)?s.endsWith(".json")?Br(s):e?Jr(s):{}:{}}for(let s of ji){let n=Ur.resolve(t,s);if(pt.existsSync(n)){if(s.endsWith(".json"))return Br(n);if(e)return Jr(n)}}return{}}function Br(t){return JSON.parse(pt.readFileSync(t,"utf-8"))}function Jr(t){let e=it(t);return e&&typeof e=="object"&&"default"in e&&(e=e.default),typeof e=="function"?e({}):e}function ft(t){for(let e of t.configMatchers??[])Fe(e);for(let e of t.testPatterns??[])Pe(e);for(let e of t.testLibraries??[])Te(e);t.barrelThreshold!==void 0&&ct(t.barrelThreshold)}function k(t){return{gitStats:t?.gitStats??!1,parallelParsing:t?.parallelParsing,pathAliases:t?.pathAliases}}var ji,mt=m(()=>{"use strict";c();U();ji=["mokosh.config.js","mokosh.config.cjs","mokosh.config.json"]});var ut,gt,dt=m(()=>{"use strict";c();ut=["node_modules",".git","dist","build",".next",".cache","mokosh-cache","coverage"],gt=[".ts",".tsx",".js",".jsx",".mjs",".cjs",".css",".scss",".sass",".less",".styl",".coffee",".ls",".lua",".py",".go",".feature",".md",".mdx"]});import $p from"fs";import Bp from"path";var Kr=m(()=>{"use strict";c()});var Ne,Hr=m(()=>{"use strict";c();Ne={serialize(t){let e=["graph TD"],r=new Set;for(let s of t.nodes.values()){let n=`"${s.path}"`;for(let o of s.imports){if(!o.toPath)continue;let i=`"${o.toPath}"`,a=`${s.path} -> ${o.toPath}`;if(!r.has(a)){let l=o.isStyle?"-- styles -->":"-->";e.push(` ${n} ${l} ${i}`),r.add(a)}}}return e.join(`
3
- `)}}});var Qr=m(()=>{"use strict";c();Hr()});import Vr from"fs";import Wi from"path";function ht(t,e){let r=t.replace(/^\.\//,"");if(e.nodes.has(r))return r;let s=r.replace(/^dist\//,"src/").replace(/\.(js|mjs|cjs)$/,".ts");return e.nodes.has(s)?s:null}function Xr(t,e){if(typeof t=="string")return ht(t,e);if(t&&typeof t=="object"){let r=t;for(let s of["import","require","default"]){let n=Xr(r[s],e);if(n)return n}}return null}function zi(t){if(!t)return"unknown";let e=t.trimStart();return e.startsWith("interface ")?"interface":e.startsWith("class ")?"class":e.startsWith("enum ")?"enum":e.startsWith("type ")?"type":e.startsWith("namespace ")?"namespace":e.startsWith("const ")||e.startsWith("let ")||e.startsWith("var ")||e.startsWith("readonly ")?"const":e.startsWith("(")||e.startsWith("async ")||e.startsWith("function ")||e.includes("=>")?"function":"unknown"}function $i(t,e){let r=new Set,s=new Set,n=[...e];for(;n.length;){let o=n.shift();if(s.has(o))continue;s.add(o);let i=t.nodes.get(o);if(i){for(let a of i.exports)r.add(a.name);for(let a of i.imports){if(a.type!=="re-export"||a.isExternal||!a.toPath)continue;if(!a.symbols?.length||a.symbols.includes("*")){let p=t.nodes.get(a.toPath);if(p)for(let h of p.exports)r.add(h.name);n.push(a.toPath)}else for(let p of a.symbols)r.add(p)}}}return r}function yt(t,e){let r=[],s=Wi.join(e,"package.json");if(Vr.existsSync(s))try{let n=JSON.parse(Vr.readFileSync(s,"utf8"));if(n.exports&&typeof n.exports=="object"&&!Array.isArray(n.exports))for(let o of Object.values(n.exports)){let i=Xr(o,t);i&&!r.includes(i)&&r.push(i)}else if(typeof n.exports=="string"){let o=ht(n.exports,t);o&&r.push(o)}if(r.length===0)for(let o of[n.main,n.module].filter(Boolean)){let i=ht(o,t);i&&!r.includes(i)&&r.push(i)}}catch{}if(r.length===0){for(let n of["src/index.ts","src/index.js","index.ts","index.js"])if(t.nodes.has(n)){r.push(n);break}}return r}function Ui(t,e){let r=new Set(e);for(let s of e)t.traverse(s,n=>(r.add(n.path),!0),{direction:"outgoing"});return r}function Bi(t,e,r){let s=new Map;for(let n of e){if(r.includes(n))continue;let o=t.nodes.get(n);if(!o)continue;let i=o.category==="barrel";for(let a of o.exports){let l=s.get(a.name),p=!!(a.signature||a.doc);(!l||p&&!i)&&s.set(a.name,{file:n,symbol:a})}}return s}function Ji(t,e,r,s){let n=[];for(let o of t){let i=e.get(o),a=s.flatMap(d=>r.nodes.get(d)?.exports??[]).find(d=>d.name===o),l=i?.symbol??a,p=i?.file??s.find(d=>r.nodes.get(d)?.exports.some(S=>S.name===o))??s[0],h={name:o,definedIn:p,kind:zi(l?.signature)};l?.doc&&(h.doc=l.doc),l?.signature&&(h.signature=l.signature),n.push(h)}return n.sort((o,i)=>o.name.localeCompare(i.name)),n}function Ki(t,e,r){let s=l=>t.nodes.get(l)?.category==="test",n=[...e].filter(l=>!r.includes(l)&&!s(l)),o=[...t.nodes.keys()].filter(l=>!e.has(l)),i=o.filter(l=>!s(l)),a=o.filter(l=>s(l));return{internalFiles:n,unreachableFromEntry:i,testFiles:a}}function xt(t,e){if(e.length===0)throw new Error("buildApiSurface requires at least one entry point");for(let p of e)if(!t.nodes.has(p))throw new Error(`Entry point not found in graph: ${p}`);let r=Ui(t,e),s=Bi(t,r,e),n=$i(t,e),o=Ji(n,s,t,e),{internalFiles:i,unreachableFromEntry:a,testFiles:l}=Ki(t,r,e);return{entryPoints:e,publicExports:o,internalFiles:i,unreachableFromEntry:a,testFiles:l}}var St=m(()=>{"use strict";c()});function bt(t,e){let r=null,s=[];for(let o of t.nodes.values()){o.exports.some(i=>i.name===e)&&(r=o.path);for(let i of o.callEdges??[])i.to===e&&s.push({file:o.path,callerFunction:i.from})}let n=[];if(r){let o=t.nodes.get(r);for(let i of o?.callEdges??[])i.from===e&&n.push({file:i.toFile,calleeFunction:i.to})}return{functionName:e,definedIn:r,callers:s,callees:n}}var Ct=m(()=>{"use strict";c()});import of from"fs";import cf from"path";function Yr(t){let e=[...t.nodes.entries()].sort(([s],[n])=>s.localeCompare(n)).map(([s,n])=>`${s}:${n.mtime}:${n.size}`).join("|"),r=2166136261;for(let s=0;s<e.length;s++)r^=e.charCodeAt(s),r=Math.imul(r,16777619)>>>0;return r.toString(16).padStart(8,"0")}function vt(t){let e=new Map;for(let r of t.nodes.keys()){let s=[];t.traverse(r,n=>(n.path!==r&&s.push(n.path),!0),{direction:"incoming"}),e.set(r,s)}return{impact:e,graphHash:Yr(t)}}function kt(t,e){return t.impact.get(e)??[]}var Et=m(()=>{"use strict";c()});import Ie from"path";function Hi(t){let e=new Map;for(let[r,s]of t){let n=s.imports.filter(o=>o.toPath&&!o.isExternal).length;n>0&&e.set(r,n)}return e}function Qi(t,e,r){let s=new Map;for(let[n,o]of e){if(o<r)continue;let i=t.get(n);if(!i||i.category==="test"||i.category==="barrel")continue;let a=Ie.extname(n),l=Ie.basename(n,a),p=l==="index"?Ie.basename(Ie.dirname(n)):l;s.set(n,{path:n,outDegree:o,tag:`feature:${p}`})}return s}function j(t,e){let r=e?.minOutDegree??5;return Qi(t,Hi(t),r)}var Me=m(()=>{"use strict";c()});function Xi(t,e){let r=new Map;for(let s of e.values()){let n=new Set;t.traverse(s.path,o=>(o.path!==s.path&&n.add(o.path),!0),{direction:"outgoing"}),r.set(s.path,n)}return r}function Yi(t,e,r,s){let n=new Map;for(let[o]of t){if(e.has(o))continue;let i=null;for(let a of e.values())r.get(a.path)?.has(o)&&(!i||s(a,i)<0)&&(i=a);i&&n.set(o,i.path)}return n}function qi(t,e){let r=new Map;for(let s of t.values()){let n=s.tag.replace("feature:",""),o=[];for(let[i,a]of e)a===s.path&&o.push(i);r.set(n,{hub:s.path,outDegree:s.outDegree,files:o})}return r}function Zi(t,e,r){let s=[];for(let n of t.keys())!e.has(n)&&!r.has(n)&&s.push(n);return s}function ne(t,e){let r=e?.detectFn??j,s=e?.hubComparator??Vi,n=r(t.nodes,e),o=Xi(t,n),i=Yi(t.nodes,n,o,s);return{features:qi(n,i),unassigned:Zi(t.nodes,n,i)}}var Vi,Ae=m(()=>{"use strict";c();Me();Vi=(t,e)=>t.outDegree-e.outDegree});function wt(t){let e=new Map;for(let r of t.nodes.values())e.set(r.type,(e.get(r.type)??0)+1);return[...e.entries()].map(([r,s])=>({type:r,fileCount:s,exportsTracked:qr.has(r),importSymbolsTracked:De.has(r),callEdgesTracked:Re.has(r)})).sort((r,s)=>s.fileCount-r.fileCount)}var qr,De,Re,Ft=m(()=>{"use strict";c();qr=new Set(["typescript","javascript","python","go"]),De=new Set(["typescript","javascript","python"]),Re=new Set(["typescript","javascript"])});var oe,Zr=m(()=>{"use strict";c();oe=class{constructor(e){this.nodes=e}nodes;findUnusedFiles(e){let r=new Set(this.nodes.keys());return e.filter(s=>!r.has(s))}findHighExportUsage(e){let r=[];for(let s of this.nodes.values()){if(s.maxExportUsage===void 0||s.maxExportUsage<e)continue;let n=s.imports.reduce((o,i)=>(i.exportUsageRatio??0)>(o?.exportUsageRatio??0)?i:o,null);r.push({path:s.path,maxExportUsage:s.maxExportUsage,tightestDep:n?.toPath??""})}return r.sort((s,n)=>n.maxExportUsage-s.maxExportUsage)}findCycles(){let e=[],r=new Set,s=new Set,n=[],o=i=>{r.add(i),s.add(i),n.push(i);let a=this.nodes.get(i);if(a){for(let l of a.imports)if(!(!l.toPath||l.isExternal))if(s.has(l.toPath)){let p=n.indexOf(l.toPath);e.push([...n.slice(p),l.toPath])}else r.has(l.toPath)||o(l.toPath)}s.delete(i),n.pop()};for(let i of this.nodes.keys())r.has(i)||o(i);return e}}});var P,ie=m(()=>{"use strict";c();Zr();P=class t{constructor(e){this.nodes=e}nodes;_incomingEdgesCache=null;_callIncomingCache=null;serialize(){return{nodes:Array.from(this.nodes.values())}}static deserialize(e){let r=new Map;for(let s of e.nodes)r.set(s.path,s);return new t(r)}getIncomingEdgesMap(){if(this._incomingEdgesCache)return this._incomingEdgesCache;let e=new Map;for(let r of this.nodes.values())for(let s of r.imports)if(s.toPath){let n=e.get(s.toPath)||[];n.push(r.path),e.set(s.toPath,n)}return this._incomingEdgesCache=e,e}dfs(e,r,s,n){let o=new Set,i=s.maxDepth??1/0,a=(l,p,h)=>{if(p>i||o.has(l))return;let d=this.nodes.get(l);if(d&&(o.add(l),r(d,p,h)!==!1))for(let S of n(l))a(S,p+1,l)};a(e,0,null)}traverse(e,r,s={}){let n=s.direction??"outgoing",o=n==="incoming"?this.getIncomingEdgesMap():null;this.dfs(e,r,s,i=>n==="outgoing"?this.nodes.get(i)?.imports.map(a=>a.toPath).filter(Boolean)??[]:o?.get(i)??[])}getCallIncomingCache(){if(this._callIncomingCache)return this._callIncomingCache;let e=new Map;for(let r of this.nodes.values())for(let s of r.callEdges??[]){let n=e.get(s.toFile)??[];n.push(r.path),e.set(s.toFile,n)}return this._callIncomingCache=e,e}traverseCalls(e,r,s={}){let n=s.direction??"outgoing",o=n==="incoming"?this.getCallIncomingCache():null;this.dfs(e,r,s,i=>n==="outgoing"?this.nodes.get(i)?.callEdges?.map(a=>a.toFile)??[]:o?.get(i)??[])}getCallers(e){let r=[];return this.traverseCalls(e,s=>(s.path!==e&&r.push(s.path),!0),{direction:"incoming",maxDepth:1}),r}getCallEdgesFor(e){return this.nodes.get(e)?.callEdges??[]}getNeighbors(e){let r=this.nodes.get(e);return r?r.imports.map(s=>this.nodes.get(s.toPath)).filter(s=>s!==void 0):[]}findUnusedFiles(e){return new oe(this.nodes).findUnusedFiles(e)}findCycles(){return new oe(this.nodes).findCycles()}}});var _,Oe=m(()=>{"use strict";c();_=class{affectedSymbols=new Map;constructor(e,r){this.affectedSymbols.set(e,new Set(["default",...r]))}updateAffectedSymbols(e,r){let s=this.affectedSymbols.get(r)||new Set,n=e.imports.find(l=>l.toPath===r);if(!n)return!1;let o=n.symbols||["*"],i=new Set;for(let l of o)(l==="*"||s.has("*")||s.has(l))&&i.add("*");if(i.size===0)return!1;let a=this.affectedSymbols.get(e.path)||new Set;for(let l of i)a.add(l);return this.affectedSymbols.set(e.path,a),!0}}});function W(t,e){let r=t.nodes.get(e);if(r)return{category:r.category,exports:r.exports.map(s=>s.name)}}function Pt(t,e,r=1){let s=[];return t.traverse(e,(n,o,i)=>{if(n.path===e)return!0;let a=i?t.nodes.get(i)?.imports.find(l=>l.toPath===n.path):void 0;return s.push({path:n.path,...a?.symbols?{symbols:a.symbols}:{}}),!0},{direction:"outgoing",maxDepth:r}),s}function ae(t,e){let r=[];return t.traverse(e,s=>{if(s.path===e)return!0;let n=s.imports.find(o=>o.toPath===e);return r.push({path:s.path,...n?.symbols?{symbols:n.symbols}:{}}),!0},{direction:"incoming",maxDepth:1}),r}function Tt(t,e,r={}){let{testsOnly:s=!1,changedSymbols:n}=r,o=n?new _(e,n):null,i=[];return t.traverse(e,(a,l,p)=>{if(a.path===e)return!0;if(o&&p&&!o.updateAffectedSymbols(a,p))return!1;let h=a.category==="test"||a.tags.some(d=>d.name==="test");return(!s||h)&&i.push(a.path),!0},{direction:"incoming"}),i}function Nt(t,e,r={}){let{depth:s=1,withEdgeDetail:n=!1}=r,o=[];return t.traverseCalls(e,i=>{if(i.path===e)return!0;let a={file:i.path};return n&&(a.edges=(i.callEdges??[]).filter(l=>l.toFile===e).map(l=>({from:l.from,to:l.to}))),o.push(a),!0},{direction:"incoming",maxDepth:s}),o}function It(t,e={}){let{metric:r="cognitiveComplexity",threshold:s=10,limit:n=20}=e;return[...t.nodes.values()].flatMap(o=>(o.functions??[]).filter(i=>i[r]>=s).map(i=>({file:o.path,name:i.name,line:i.line,complexity:i.complexity,cognitiveComplexity:i.cognitiveComplexity}))).sort((o,i)=>i[r]-o[r]).slice(0,n)}function Mt(t){return{nodes:t.nodes.map(r=>({path:r.path,type:r.type,category:r.category,exports:r.exports.map(s=>s.name),tags:r.tags.filter(s=>s.kind==="comment-marker"||s.kind==="import").map(s=>s.name),importsFiles:r.imports.filter(s=>!s.isExternal&&s.toPath).map(s=>s.toPath),...r.description!==void 0&&{description:r.description},...r.testedBy!==void 0&&{testedBy:r.testedBy},...r.coveragePct!==void 0&&{coveragePct:r.coveragePct},...r.avgExportUsage!==void 0&&{avgExportUsage:r.avgExportUsage},...r.maxExportUsage!==void 0&&{maxExportUsage:r.maxExportUsage}})),cycles:t.cycles}}function At(t){let e=t.getPackageDependencies(),r=Array.from(t.packages.values()).map(({graph:s,pkg:n})=>({name:n.name,relativeRoot:n.relativeRoot,nodeCount:s.nodes.size,dependsOn:e.get(n.name)??[]}));return{monorepoType:t.type,packageCount:r.length,packages:r}}function Dt(t){return[...t.nodes.values()].some(e=>e.coveragePct!==void 0)}var Rt=m(()=>{"use strict";c();Oe()});function es(t){if(t.category==="test")return"test";if(t.category==="config")return"config";if(t.category==="type-only")return"types";let e=t.path;return x(e,"component")||x(e,"components")?"component":x(e,"controller")||x(e,"controllers")?"controller":x(e,"middleware")?"middleware":x(e,"router")||x(e,"routes")||x(e,"route")?"router":x(e,"store")||x(e,"stores")?"store":x(e,"service")||x(e,"services")?"service":x(e,"handler")||x(e,"handlers")?"handler":x(e,"adapter")||x(e,"adapters")?"adapter":x(e,"plugin")||x(e,"plugins")?"plugin":x(e,"api")?"api":x(e,"cli")||x(e,"commands")||ce(e)==="cli"?"cli":x(e,"util")||x(e,"utils")||x(e,"helper")||x(e,"helpers")?"util":x(e,"model")||x(e,"models")||ce(e)==="model"?"model":x(e,"parser")||x(e,"parsers")||ce(e)==="parser"?"parser":ce(e)==="builder"?"builder":ce(e)==="resolver"?"resolver":"other"}function x(t,e){return t.includes(`/${e}/`)||t.includes(`/${e}.`)}function ce(t){let e=t.slice(t.lastIndexOf("/")+1);return e.slice(0,e.lastIndexOf("."))||e}var ts=m(()=>{"use strict";c()});function Ot(t,e){let r=ne(t,e),s=new Map;for(let[o,i]of r.features){for(let a of i.files)s.set(a,o);s.set(i.hub,o)}let n=new Map;for(let o of t.nodes.values()){let i=s.get(o.path);n.set(o.path,{path:o.path,role:es(o),...o.description?{description:o.description}:{},exports:o.exports.map(a=>a.name),...i?{featureHub:i}:{}})}return n}var Gt=m(()=>{"use strict";c();Ae();ts()});function Lt(t,e){let r=[];for(let s of t.nodes.values())if(s.exports.some(n=>n.name===e))if(Re.has(s.type)){let n=[];for(let o of t.nodes.values())for(let i of o.callEdges??[])i.to===e&&n.push({file:o.path,callerFunction:i.from});r.push({path:s.path,category:s.category,precision:"call",callers:n})}else if(De.has(s.type)){let n=[];for(let o of t.nodes.values())for(let i of o.imports)i.toPath===s.path&&i.symbols?.includes(e)&&n.push({file:o.path,symbols:i.symbols});r.push({path:s.path,category:s.category,precision:"import-symbol",importers:n})}else{let n=ae(t,s.path).map(o=>({file:o.path,...o.symbols?{symbols:o.symbols}:{}}));r.push({path:s.path,category:s.category,precision:"file-level",importers:n})}return r}var rs=m(()=>{"use strict";c();Ft();Rt()});function ea(t){return t?t.startsWith("interface ")?"interface":t.startsWith("class ")?"class":t.startsWith("enum ")?"enum":"type":"type"}function ta(t,e){if(e==="type-only")return!0;let r=t.signature??"";return r.startsWith("interface ")||r.startsWith("class ")||r.startsWith("enum ")}function jt(t){let e=new Map;for(let s of t.nodes.values())if(!(s.type!=="typescript"&&s.type!=="javascript"))for(let n of s.exports){if(!ta(n,s.category))continue;let o=`${s.path}::${n.name}`;e.set(o,{name:n.name,file:s.path,kind:ea(n.signature),...n.doc?{doc:n.doc}:{}})}let r=[];for(let s of t.nodes.values())if(!(s.type!=="typescript"&&s.type!=="javascript")){for(let n of s.imports)if(!(!n.toPath||n.isExternal||!n.symbols?.length))for(let o of n.symbols)e.has(`${n.toPath}::${o}`)&&r.push({fromFile:s.path,toType:o,toFile:n.toPath})}return{types:e,edges:r}}function _t(t,e){let r=null;for(let o of t.types.values())if(o.name===e){r=o;break}if(!r)return{type:null,usedByFiles:[],uses:[]};let s=new Set,n=new Map;for(let o of t.edges)if(o.toType===e&&o.toFile===r.file&&s.add(o.fromFile),o.fromFile===r.file){let i=t.types.get(`${o.toFile}::${o.toType}`);i&&n.set(`${i.file}::${i.name}`,i)}return{type:r,usedByFiles:Array.from(s),uses:Array.from(n.values())}}var Wt=m(()=>{"use strict";c()});import ss from"fs";import Uf from"path";function ns(t){try{return ss.statSync(t,{throwIfNoEntry:!1})?.isDirectory()===!0}catch{return!1}}function Ge(t){try{return ss.statSync(t,{throwIfNoEntry:!1})?.isFile()===!0}catch{return!1}}var Le=m(()=>{"use strict";c()});import le from"fs";import T from"path";function zt(t,e){let r=T.join(e,"package.json");if(!le.existsSync(r))return null;let s={};try{s=JSON.parse(le.readFileSync(r,"utf-8"))}catch{return null}let n=s.name;return n?{name:n,root:e,relativeRoot:T.relative(t,e),entryPoints:ra(e,s)}:null}function ra(t,e){let r=[];if(e.exports){let n=e.exports;if(typeof n=="string")r.push(T.join(t,n));else if(typeof n=="object"&&n!==null){let o=n["."];if(typeof o=="string")r.push(T.join(t,o));else if(typeof o=="object"&&o!==null){let i=o.import??o.require??o.default;typeof i=="string"&&r.push(T.join(t,i))}}}e.main&&r.push(T.join(t,e.main));for(let n of["src/index.ts","src/index.tsx","index.ts","index.tsx","index.js"])r.push(T.join(t,n));let s=r.filter(Ge);return s.length>0?s.slice(0,1):r.slice(0,1)}function J(t,e){let r=[],s=new Set;for(let n of e){let o=n.replace(/\/$/,"").replace(/^\.\//,"");sa(t,o,s,r)}return r}function sa(t,e,r,s){if(!e.includes("*")){na(t,e,r,s);return}let n=e.split("/");n.includes("**")?oa(t,n,r,s):ia(t,n,r,s)}function na(t,e,r,s){let n=T.join(t,e);if(r.has(n)||!ns(n))return;r.add(n);let o=zt(t,n);o&&s.push(o)}function oa(t,e,r,s){let n=T.join(t,e[0]==="**"?"":e[0]??"");os(t,n,r,s)}function ia(t,e,r,s){let n=e.findIndex(a=>a.includes("*")),o=T.join(t,...e.slice(0,n)),i;try{i=le.readdirSync(o,{withFileTypes:!0})}catch{return}for(let a of i){if(!a.isDirectory())continue;let l=T.join(o,a.name);if(r.has(l))continue;r.add(l);let p=zt(t,l);p&&s.push(p)}}function os(t,e,r,s){let n;try{n=le.readdirSync(e,{withFileTypes:!0})}catch{return}for(let o of n){if(!o.isDirectory()||o.name==="node_modules"||o.name.startsWith("."))continue;let i=T.join(e,o.name);if(le.existsSync(T.join(i,"package.json"))&&!r.has(i)){r.add(i);let a=zt(t,i);a&&s.push(a)}else os(t,i,r,s)}}var je=m(()=>{"use strict";c();Le();Le()});import $t from"fs";import is from"path";var as,cs=m(()=>{"use strict";c();je();as={type:"npm",detect(t){let e=is.join(t,"package.json");if(!$t.existsSync(e))return null;let r;try{r=JSON.parse($t.readFileSync(e,"utf-8")).workspaces}catch{return null}if(!r||$t.existsSync(is.join(t,"yarn.lock")))return null;let s=Array.isArray(r)?r:r.packages??[];return s.length===0?null:J(t,s)}}});import K from"fs";import E from"path";function ps(t,e,r,s){if(s>4)return[];let n;try{n=K.readdirSync(e,{withFileTypes:!0})}catch{return[]}let o=[];for(let i of n){if(!i.isDirectory())continue;let a=i.name;if(a.startsWith(".")||a==="node_modules"||a==="dist"||a===".nx")continue;let l=E.join(e,a);K.existsSync(E.join(l,"project.json"))&&!r.has(l)?(r.add(l),o.push(l)):o.push(...ps(t,l,r,s+1))}return o}function aa(t,e,r){let s={};try{s=JSON.parse(K.readFileSync(r,"utf-8"))}catch{return null}let n=s.name,o,i,a=E.join(e,"package.json");if(K.existsSync(a))try{let l=JSON.parse(K.readFileSync(a,"utf-8"));n=l.name??n,o=l.main,i=l.exports}catch{}return n?{name:n,root:e,relativeRoot:E.relative(t,e),entryPoints:ca(e,s,o,i)}:null}function ca(t,e,r,s){let n=[],o=e.targets?.build?.options?.main??e.targets?.build?.options?.entryFile;if(o){let a=E.resolve(t,"../..");n.push(E.resolve(a,o)),n.push(E.resolve(t,o))}if(s){let a=s;if(typeof a=="string")n.push(E.join(t,a));else if(typeof a=="object"&&a!==null){let l=a["."];typeof l=="string"&&n.push(E.join(t,l))}}if(r&&n.push(E.join(t,r)),e.sourceRoot){let a=E.resolve(t,"../.."),l=E.resolve(a,e.sourceRoot);n.push(E.join(l,"index.ts"),E.join(l,"index.tsx"))}for(let a of["src/index.ts","src/index.tsx","index.ts","index.tsx"])n.push(E.join(t,a));let i=n.filter(Ge);return i.length>0?i.slice(0,1):n.slice(0,1)}var ls,fs=m(()=>{"use strict";c();Le();ls={type:"nx",detect(t){return K.existsSync(E.join(t,"nx.json"))?ps(t,t,new Set,0).map(r=>aa(t,r,E.join(r,"project.json"))).filter(r=>r!==null):null}}});import ms from"fs";import la from"path";import{load as pa}from"js-yaml";var us,gs=m(()=>{"use strict";c();je();us={type:"pnpm",detect(t){let e=la.join(t,"pnpm-workspace.yaml");if(!ms.existsSync(e))return null;let r=[];try{r=pa(ms.readFileSync(e,"utf-8"))?.packages??[]}catch{return null}return J(t,r)}}});import fa from"fs";import ma from"path";var ds,hs=m(()=>{"use strict";c();ds={type:"turborepo",detect(t){return fa.existsSync(ma.join(t,"turbo.json"))?[]:null}}});import Ut from"fs";import ys from"path";var xs,Ss=m(()=>{"use strict";c();je();xs={type:"yarn",detect(t){if(!Ut.existsSync(ys.join(t,"yarn.lock")))return null;let e=ys.join(t,"package.json");if(!Ut.existsSync(e))return null;let r;try{r=JSON.parse(Ut.readFileSync(e,"utf-8")).workspaces}catch{return null}if(!r)return null;let s=Array.isArray(r)?r:r.packages??[];return s.length===0?null:J(t,s)}}});function D(t){bs.push(t)}function Cs(){return bs}var bs,_e=m(()=>{"use strict";c();bs=[]});import ua from"path";function Bt(t,e=Cs()){let r=ua.resolve(t),s=new Map,n=[];for(let i of e){let a=i.detect(r);if(a!==null){n.push(i.type);for(let l of a)s.has(l.name)||s.set(l.name,l)}}if(n.length===0)return{root:r,type:"none",types:[],packages:[],packageMap:new Map};let o=Array.from(s.values());return{root:r,type:n[0],types:n,packages:o,packageMap:new Map(o.map(i=>[i.name,i]))}}var Jt=m(()=>{"use strict";c();cs();fs();gs();hs();Ss();_e();_e();D(ds);D(ls);D(us);D(xs);D(as)});var pe,Kt=m(()=>{"use strict";c();ie();pe=class t{constructor(e,r){this.monorepoRoot=e;this.type=r}monorepoRoot;type;packages=new Map;addPackage(e,r){this.packages.set(e.name,{graph:r,pkg:e})}getPackageForFile(e){for(let{pkg:r}of this.packages.values())if(e===r.relativeRoot||e.startsWith(`${r.relativeRoot}/`))return r}getPackageDependencies(){let e=new Map;for(let{graph:r,pkg:s}of this.packages.values()){let n=new Set;for(let o of r.nodes.values())for(let i of o.imports)i.isWorkspace&&i.workspacePackage&&n.add(i.workspacePackage);e.set(s.name,[...n])}return e}getAffectedAcrossPackages(e){let r=this.getPackageForFile(e);if(!r)return[];let s=this.packages.get(r.name);if(!s)return[];let n=[];s.graph.traverse(e,o=>(o.path!==e&&n.push({file:o.path,package:r.name}),!0),{direction:"incoming"});for(let{graph:o,pkg:i}of this.packages.values())if(i.name!==r.name)for(let a of o.nodes.values())a.imports.some(p=>p.isWorkspace&&p.workspacePackage===r.name)&&n.push({file:a.path,package:i.name});return n}serialize(){return{monorepoRoot:this.monorepoRoot,type:this.type,packages:Array.from(this.packages.values()).map(({graph:e,pkg:r})=>({pkg:{name:r.name,relativeRoot:r.relativeRoot,entryPoints:r.entryPoints},nodes:Array.from(e.nodes.values())}))}}static deserialize(e){let r=new t(e.monorepoRoot,e.type);for(let{pkg:s,nodes:n}of e.packages){let o=new Map(n.map(a=>[a.path,a])),i=new P(o);r.packages.set(s.name,{graph:i,pkg:{...s,root:""}})}return r}}});function H(t,e){vs.set(t,e)}function ks(t){return vs.get(t)}var vs,fe=m(()=>{"use strict";c();vs=new Map});function Es(t,e){return e.startsWith("!")?t!==e.slice(1):t===e}function ga(t,e){return e.startsWith("!")?!t.includes(e.slice(1)):t.includes(e)}function me(t,e,r){return $a.every(s=>s(t,e,r))}var da,ha,ya,xa,Sa,ba,Ca,va,ka,Ea,wa,Fa,Pa,Ta,Na,Ia,Ma,Aa,Da,Ra,Oa,Ga,La,ja,_a,Wa,za,$a,Ht=m(()=>{"use strict";c();da=(t,e)=>!e.category||Es(t.category,e.category),ha=(t,e)=>!e.type||Es(t.type,e.type),ya=(t,e)=>e.lastAuthor?e.lastAuthor.startsWith("!")?t.lastAuthor!==e.lastAuthor.slice(1):t.lastAuthor!==void 0&&t.lastAuthor===e.lastAuthor:!0,xa=(t,e)=>!e.path||ga(t.path,e.path),Sa=(t,e)=>e.isExternal===void 0?!0:t.imports.some(s=>s.isExternal)===e.isExternal,ba=(t,e)=>{if(!e.tags||e.tags.length===0)return!0;let r=e.tags.filter(n=>!n.startsWith("!")),s=e.tags.filter(n=>n.startsWith("!")).map(n=>n.slice(1));return!(r.length>0&&!r.some(n=>t.tags.some(o=>o.name===n))||s.some(n=>t.tags.some(o=>o.name===n)))},Ca=(t,e)=>!e.allTags?.length||e.allTags.every(r=>t.tags.some(s=>s.name===r)),va=(t,e)=>!e.importsFile||t.imports.some(r=>r.toPath?.includes(e.importsFile)),ka=(t,e,r)=>e.importedBy===void 0?!0:(r?.get(t.path)??[]).some(n=>n.includes(e.importedBy)),Ea=(t,e)=>e.minImports===void 0||t.imports.length>=e.minImports,wa=(t,e)=>e.maxImports===void 0||t.imports.length<=e.maxImports,Fa=(t,e)=>e.minSize===void 0||t.size>=e.minSize,Pa=(t,e)=>e.maxSize===void 0||t.size<=e.maxSize,Ta=(t,e)=>e.hasDocstring===void 0||!!t.description===e.hasDocstring,Na=(t,e)=>e.isDocumented===void 0||!!t.documentedBy?.length===e.isDocumented,Ia=(t,e)=>e.isStale===void 0||!!t.staleFor?.length===e.isStale,Ma=(t,e)=>e.minCoverage===void 0||(t.coveragePct??101)>=e.minCoverage,Aa=(t,e)=>e.maxCoverage===void 0||(t.coveragePct??0)<=e.maxCoverage,Da=(t,e)=>e.minExportUsage===void 0||(t.avgExportUsage??-1)>=e.minExportUsage,Ra=(t,e)=>e.maxExportUsage===void 0||(t.avgExportUsage??0)<=e.maxExportUsage,Oa=(t,e)=>e.minComplexity===void 0||(t.complexity??-1/0)>=e.minComplexity,Ga=(t,e)=>e.maxComplexity===void 0||(t.complexity??0)<=e.maxComplexity,La=(t,e)=>e.minCognitiveComplexity===void 0||(t.cognitiveComplexity??-1/0)>=e.minCognitiveComplexity,ja=(t,e)=>e.maxCognitiveComplexity===void 0||(t.cognitiveComplexity??0)<=e.maxCognitiveComplexity,_a=(t,e)=>e.minCommits===void 0||(t.commitCount90d??-1/0)>=e.minCommits,Wa=(t,e)=>e.maxCommits===void 0||(t.commitCount90d??0)<=e.maxCommits,za=(t,e,r)=>!e.any?.length||e.any.some(s=>me(t,s,r)),$a=[da,ha,ya,xa,Sa,ba,Ca,va,ka,Ea,wa,Fa,Pa,Ta,Na,Ia,Ma,Aa,Da,Ra,Oa,Ga,La,ja,_a,Wa,za]});function We(t,e){let r=new Map;if(e.importedBy!==void 0){for(let i of t.nodes)for(let a of i.imports)if(a.toPath){let l=r.get(a.toPath)??[];l.push(i.path),r.set(a.toPath,l)}}let s=t.nodes.filter(i=>me(i,e,r)),n=new Set(s.map(i=>i.path)),o=s.map(i=>({...i,imports:i.imports.filter(a=>!a.toPath||n.has(a.toPath))}));if(e.sort){let i=e.sortDir==="asc"?-1:1;o.sort((a,l)=>{let p=0;return e.sort==="size"?p=l.size-a.size:e.sort==="imports"?p=l.imports.length-a.imports.length:e.sort==="commitCount90d"?p=(l.commitCount90d??0)-(a.commitCount90d??0):e.sort==="exportUsage"?p=(l.avgExportUsage??0)-(a.avgExportUsage??0):e.sort==="complexity"?p=(l.complexity??0)-(a.complexity??0):e.sort==="cognitiveComplexity"&&(p=(l.cognitiveComplexity??0)-(a.cognitiveComplexity??0)),p*i})}return e.limit!==void 0&&o.splice(e.limit),{nodes:o,cycles:t.cycles?.filter(i=>i.every(a=>n.has(a)))??void 0}}var ws=m(()=>{"use strict";c();Ht();Ht()});function Fs(t,e){let r=e.indexOf(":");if(r===-1)return;let s=e.slice(0,r).trim().toLowerCase(),n=e.slice(r+1).trim();if(!(!s||!n))switch(s){case"category":t.category=n;break;case"type":t.type=n;break;case"tag":case"tags":n.includes("+")?t.allTags=[...t.allTags??[],...n.split("+")]:t.tags=[...t.tags??[],n];break;case"path":t.path=n;break;case"external":t.isExternal=n.toLowerCase()==="true";break;case"importsfile":t.importsFile=n;break;case"importedby":t.importedBy=n;break;case"minimports":t.minImports=parseInt(n,10);break;case"maximports":t.maxImports=parseInt(n,10);break;case"minsize":t.minSize=parseInt(n,10);break;case"maxsize":t.maxSize=parseInt(n,10);break;case"sort":t.sort=n;break;case"sortdir":t.sortDir=n.toLowerCase()==="asc"?"asc":"desc";break;case"limit":t.limit=parseInt(n,10);break;case"hasdocstring":t.hasDocstring=n.toLowerCase()!=="false";break;case"mincoverage":t.minCoverage=parseInt(n,10);break;case"maxcoverage":t.maxCoverage=parseInt(n,10);break;case"minexportusage":t.minExportUsage=parseFloat(n);break;case"maxexportusage":t.maxExportUsage=parseFloat(n);break;case"mincomplexity":t.minComplexity=parseInt(n,10);break;case"maxcomplexity":t.maxComplexity=parseInt(n,10);break;case"mincognitivecomplexity":t.minCognitiveComplexity=parseInt(n,10);break;case"maxcognitivecomplexity":t.maxCognitiveComplexity=parseInt(n,10);break;case"mincommits":t.minCommits=parseInt(n,10);break;case"maxcommits":t.maxCommits=parseInt(n,10);break;case"isdocumented":t.isDocumented=n.toLowerCase()!=="false";break;case"isstale":t.isStale=n.toLowerCase()!=="false";break;case"lastauthor":t.lastAuthor=n;break}}function Ua(t){let e=[];for(let r of t.split("|")){let s=r.trim();if(!s)continue;let n={};Fs(n,s),Object.keys(n).length>0&&e.push(n)}return e}function ze(t){let e={},r=t.split(",");for(let s of r){let n=s.trim();if(n.toLowerCase().startsWith("any(")&&n.endsWith(")")){let o=n.slice(4,-1),i=Ua(o);i.length>0&&(e.any=[...e.any??[],...i]);continue}Fs(e,s)}return e}var Ps=m(()=>{"use strict";c()});var Ts=m(()=>{"use strict";c();ws();Ps()});import w from"typescript";function Q(t){let e=[];for(let r of t.statements){if(!w.isExpressionStatement(r))continue;let s=r.expression;if(!w.isCallExpression(s))continue;let n=s.expression;w.isIdentifier(n)&&Ns.has(n.text)&&e.push(s),w.isPropertyAccessExpression(n)&&w.isIdentifier(n.expression)&&Ns.has(n.expression.text)&&e.push(s)}return e}function V(t,e,r){for(let s of t.arguments){if(!w.isObjectLiteralExpression(s))continue;let n=s.properties.find(o=>w.isPropertyAssignment(o)&&w.isIdentifier(o.name)&&o.name.text===e);if(!(!n||!w.isArrayLiteralExpression(n.initializer)))return n.initializer.elements.filter(w.isStringLiteral).map(o=>o.text)}return null}function X(t,e,r,s){if(t.arguments.length===0)return null;for(let o=1;o<t.arguments.length;o++){let i=t.arguments[o];if(!w.isObjectLiteralExpression(i))continue;let a=i.properties.find(p=>w.isPropertyAssignment(p)&&w.isIdentifier(p.name)&&p.name.text===e);if(a)return{start:a.initializer.getStart(s),end:a.initializer.getEnd(),text:r};let l=i.getEnd()-1;return{start:l,end:l,text:`${i.properties.length>0?", ":""}${e}: ${r}`}}let n=t.arguments[t.arguments.length-1];return{start:n.getStart(s),end:n.getStart(s),text:`{ ${e}: ${r} }, `}}function Y(t,e,r){let s=t.arguments;for(let n=1;n<s.length;n++){let o=s[n];if(!w.isObjectLiteralExpression(o))continue;let i=o.properties.findIndex(l=>w.isPropertyAssignment(l)&&w.isIdentifier(l.name)&&l.name.text===e);if(i<0)continue;if(o.properties.length===1)return{start:s[n-1].getEnd(),end:o.getEnd(),text:""};let a=o.properties[i];return i===o.properties.length-1?{start:o.properties[i-1].getEnd(),end:a.getEnd(),text:""}:{start:a.getStart(r),end:o.properties[i+1].getStart(r),text:""}}return null}function q(t,e){let r=[...e].sort((n,o)=>o.start-n.start),s=t;for(let n of r)s=s.slice(0,n.start)+n.text+s.slice(n.end);return s}function Z(t){return`[${t.map(e=>JSON.stringify(e)).join(", ")}]`}var Ns,A,ee=m(()=>{"use strict";c();Ns=new Set(["describe","test","it"]);A=new Set([".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"])});import Is from"path";import Ms from"typescript";function Ba(t){return Z(t.map(e=>`@${e}`))}function Ja(t){return t.map(e=>e.startsWith("@")?e.slice(1):e)}var $e,As=m(()=>{"use strict";c();ee();$e=class{name="cypress";canHandle(e){return A.has(Is.extname(e).toLowerCase())}apply(e,r,s){let n=Ms.createSourceFile(Is.basename(e),r,Ms.ScriptTarget.Latest,!0),o=Q(n);if(o.length===0)return r;let i=V(o[0],"tags",n),a=[...s].sort();if(i!==null&&JSON.stringify(Ja(i).sort())===JSON.stringify(a))return r;let l=o.flatMap(p=>{let h=s.length===0?Y(p,"tags",n):X(p,"tags",Ba(a),n);return h?[h]:[]});return l.length>0?q(r,l):r}}});import Ka from"path";function Ha(t){return["# <mokosh-tags>",...t.map(e=>`@${e}`),"# </mokosh-tags>"].join(`
2
+ var pt=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var m=(t,e)=>()=>(t&&(e=t(t=0)),e);var Ri=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);import Oi from"path";import{fileURLToPath as Li}from"url";var Gi,ji,f,c=m(()=>{"use strict";Gi=()=>Li(import.meta.url),ji=()=>Oi.dirname(Gi()),f=ji()});function Pe(t){$r.push(t)}function Ur(t){return[..._i,...$r].some(e=>typeof e=="string"?t.includes(e):e instanceof RegExp?e.test(t):e(t))}function Te(t){Br.push(t)}function se(){return[...Wi,...Br]}function Ne(t){Jr.push(t)}function ft(){return[...zi,...Jr]}function mt(t){Kr=t}function ut(){return Kr}var _i,$r,Wi,Br,zi,Jr,Kr,J=m(()=>{"use strict";c();_i=[".config.","biome.json","tsconfig.json","package.json",".prettierrc",".eslintrc"],$r=[];Wi=[".test.",".spec.","-test.","-spec."],Br=[];zi=["jest","vitest","playwright","cypress","@testing-library/"],Jr=[];Kr=.8});import gt from"fs";import Hr from"path";function K(t,{allowJs:e=!0,isExplicitPath:r=!1}={}){if(r){let n=Hr.resolve(t);return gt.existsSync(n)?n.endsWith(".json")?Vr(n):e?Qr(n):{}:{}}for(let n of $i){let s=Hr.resolve(t,n);if(gt.existsSync(s)){if(n.endsWith(".json"))return Vr(s);if(e)return Qr(s)}}return{}}function Vr(t){return JSON.parse(gt.readFileSync(t,"utf-8"))}function Qr(t){let e=pt(t);return e&&typeof e=="object"&&"default"in e&&(e=e.default),typeof e=="function"?e({}):e}function dt(t){for(let e of t.configMatchers??[])Pe(e);for(let e of t.testPatterns??[])Te(e);for(let e of t.testLibraries??[])Ne(e);t.barrelThreshold!==void 0&&mt(t.barrelThreshold)}function k(t){return{gitStats:t?.gitStats??!1,parallelParsing:t?.parallelParsing,pathAliases:t?.pathAliases}}var $i,ht=m(()=>{"use strict";c();J();$i=["mokosh.config.js","mokosh.config.cjs","mokosh.config.json"]});var yt,xt,bt=m(()=>{"use strict";c();yt=["node_modules",".git","dist","build",".next",".cache","mokosh-cache","coverage"],xt=[".ts",".tsx",".js",".jsx",".mjs",".cjs",".css",".scss",".sass",".less",".styl",".coffee",".ls",".lua",".py",".go",".feature",".md",".mdx"]});import Zp from"fs";import tf from"path";var Xr=m(()=>{"use strict";c()});var Ie,Yr=m(()=>{"use strict";c();Ie={serialize(t){let e=["graph TD"],r=new Set;for(let n of t.nodes.values()){let s=`"${n.path}"`;for(let o of n.imports){if(!o.toPath)continue;let i=`"${o.toPath}"`,a=`${n.path} -> ${o.toPath}`;if(!r.has(a)){let l=o.isStyle?"-- styles -->":"-->";e.push(` ${s} ${l} ${i}`),r.add(a)}}}return e.join(`
3
+ `)}}});var qr=m(()=>{"use strict";c();Yr()});import Zr from"fs";import Bi from"path";function St(t,e){let r=t.replace(/^\.\//,"");if(e.nodes.has(r))return r;let n=r.replace(/^dist\//,"src/").replace(/\.(js|mjs|cjs)$/,".ts");return e.nodes.has(n)?n:null}function en(t,e){if(typeof t=="string")return St(t,e);if(t&&typeof t=="object"){let r=t;for(let n of["import","require","default"]){let s=en(r[n],e);if(s)return s}}return null}function Ji(t){if(!t)return"unknown";let e=t.trimStart();return e.startsWith("interface ")?"interface":e.startsWith("class ")?"class":e.startsWith("enum ")?"enum":e.startsWith("type ")?"type":e.startsWith("namespace ")?"namespace":e.startsWith("const ")||e.startsWith("let ")||e.startsWith("var ")||e.startsWith("readonly ")?"const":e.startsWith("(")||e.startsWith("async ")||e.startsWith("function ")||e.includes("=>")?"function":"unknown"}function Ki(t,e){let r=new Set,n=new Set,s=[...e];for(;s.length;){let o=s.shift();if(n.has(o))continue;n.add(o);let i=t.nodes.get(o);if(i){for(let a of i.exports)r.add(a.name);for(let a of i.imports){if(a.type!=="re-export"||a.isExternal||!a.toPath)continue;if(!a.symbols?.length||a.symbols.includes("*")){let p=t.nodes.get(a.toPath);if(p)for(let h of p.exports)r.add(h.name);s.push(a.toPath)}else for(let p of a.symbols)r.add(p)}}}return r}function Ct(t,e){let r=[],n=Bi.join(e,"package.json");if(Zr.existsSync(n))try{let s=JSON.parse(Zr.readFileSync(n,"utf8"));if(s.exports&&typeof s.exports=="object"&&!Array.isArray(s.exports))for(let o of Object.values(s.exports)){let i=en(o,t);i&&!r.includes(i)&&r.push(i)}else if(typeof s.exports=="string"){let o=St(s.exports,t);o&&r.push(o)}if(r.length===0)for(let o of[s.main,s.module].filter(Boolean)){let i=St(o,t);i&&!r.includes(i)&&r.push(i)}}catch{}if(r.length===0){for(let s of["src/index.ts","src/index.js","index.ts","index.js"])if(t.nodes.has(s)){r.push(s);break}}return r}function Hi(t,e){let r=new Set(e);for(let n of e)t.traverse(n,s=>(r.add(s.path),!0),{direction:"outgoing"});return r}function Vi(t,e,r){let n=new Map;for(let s of e){if(r.includes(s))continue;let o=t.nodes.get(s);if(!o)continue;let i=o.category==="barrel";for(let a of o.exports){let l=n.get(a.name),p=!!(a.signature||a.doc);(!l||p&&!i)&&n.set(a.name,{file:s,symbol:a})}}return n}function Qi(t,e,r,n){let s=[];for(let o of t){let i=e.get(o),a=n.flatMap(d=>r.nodes.get(d)?.exports??[]).find(d=>d.name===o),l=i?.symbol??a,p=i?.file??n.find(d=>r.nodes.get(d)?.exports.some(b=>b.name===o))??n[0],h={name:o,definedIn:p,kind:Ji(l?.signature)};l?.doc&&(h.doc=l.doc),l?.signature&&(h.signature=l.signature),s.push(h)}return s.sort((o,i)=>o.name.localeCompare(i.name)),s}function Xi(t,e,r){let n=l=>t.nodes.get(l)?.category==="test",s=[...e].filter(l=>!r.includes(l)&&!n(l)),o=[...t.nodes.keys()].filter(l=>!e.has(l)),i=o.filter(l=>!n(l)),a=o.filter(l=>n(l));return{internalFiles:s,unreachableFromEntry:i,testFiles:a}}function vt(t,e){if(e.length===0)throw new Error("buildApiSurface requires at least one entry point");for(let p of e)if(!t.nodes.has(p))throw new Error(`Entry point not found in graph: ${p}`);let r=Hi(t,e),n=Vi(t,r,e),s=Ki(t,e),o=Qi(s,n,t,e),{internalFiles:i,unreachableFromEntry:a,testFiles:l}=Xi(t,r,e);return{entryPoints:e,publicExports:o,internalFiles:i,unreachableFromEntry:a,testFiles:l}}var kt=m(()=>{"use strict";c()});function Et(t,e){let r=null,n=[];for(let o of t.nodes.values()){o.exports.some(i=>i.name===e)&&(r=o.path);for(let i of o.callEdges??[])i.to===e&&n.push({file:o.path,callerFunction:i.from})}let s=[];if(r){let o=t.nodes.get(r);for(let i of o?.callEdges??[])i.from===e&&s.push({file:i.toFile,calleeFunction:i.to})}return{functionName:e,definedIn:r,callers:n,callees:s}}var wt=m(()=>{"use strict";c()});import yf from"fs";import bf from"path";function tn(t){let e=[...t.nodes.entries()].sort(([n],[s])=>n.localeCompare(s)).map(([n,s])=>`${n}:${s.mtime}:${s.size}`).join("|"),r=2166136261;for(let n=0;n<e.length;n++)r^=e.charCodeAt(n),r=Math.imul(r,16777619)>>>0;return r.toString(16).padStart(8,"0")}function Ft(t){let e=new Map;for(let r of t.nodes.keys()){let n=[];t.traverse(r,s=>(s.path!==r&&n.push(s.path),!0),{direction:"incoming"}),e.set(r,n)}return{impact:e,graphHash:tn(t)}}function Pt(t,e){return t.impact.get(e)??[]}var Tt=m(()=>{"use strict";c()});import Me from"path";function Yi(t){let e=new Map;for(let[r,n]of t){let s=n.imports.filter(o=>o.toPath&&!o.isExternal).length;s>0&&e.set(r,s)}return e}function qi(t,e,r){let n=new Map;for(let[s,o]of e){if(o<r)continue;let i=t.get(s);if(!i||i.category==="test"||i.category==="barrel")continue;let a=Me.extname(s),l=Me.basename(s,a),p=l==="index"?Me.basename(Me.dirname(s)):l;n.set(s,{path:s,outDegree:o,tag:`feature:${p}`})}return n}function _(t,e){let r=e?.minOutDegree??5;return qi(t,Yi(t),r)}var Ae=m(()=>{"use strict";c()});function ea(t,e){let r=new Map;for(let n of e.values()){let s=new Set;t.traverse(n.path,o=>(o.path!==n.path&&s.add(o.path),!0),{direction:"outgoing"}),r.set(n.path,s)}return r}function ta(t,e,r,n){let s=new Map;for(let[o]of t){if(e.has(o))continue;let i=null;for(let a of e.values())r.get(a.path)?.has(o)&&(!i||n(a,i)<0)&&(i=a);i&&s.set(o,i.path)}return s}function ra(t,e){let r=new Map;for(let n of t.values()){let s=n.tag.replace("feature:",""),o=[];for(let[i,a]of e)a===n.path&&o.push(i);r.set(s,{hub:n.path,outDegree:n.outDegree,files:o})}return r}function na(t,e,r){let n=[];for(let s of t.keys())!e.has(s)&&!r.has(s)&&n.push(s);return n}function oe(t,e){let r=e?.detectFn??_,n=e?.hubComparator??Zi,s=r(t.nodes,e),o=ea(t,s),i=ta(t.nodes,s,o,n);return{features:ra(s,i),unassigned:na(t.nodes,s,i)}}var Zi,De=m(()=>{"use strict";c();Ae();Zi=(t,e)=>t.outDegree-e.outDegree});function Nt(t){let e=new Map;for(let r of t.nodes.values())e.set(r.type,(e.get(r.type)??0)+1);return[...e.entries()].map(([r,n])=>({type:r,fileCount:n,exportsTracked:rn.has(r),importSymbolsTracked:Re.has(r),callEdgesTracked:Oe.has(r)})).sort((r,n)=>n.fileCount-r.fileCount)}var rn,Re,Oe,It=m(()=>{"use strict";c();rn=new Set(["typescript","javascript","python","go","scss","less","lua","coffeescript"]),Re=new Set(["typescript","javascript","python"]),Oe=new Set(["typescript","javascript"])});var ie,nn=m(()=>{"use strict";c();ie=class{constructor(e){this.nodes=e}nodes;findUnusedFiles(e){let r=new Set(this.nodes.keys());return e.filter(n=>!r.has(n))}findHighExportUsage(e){let r=[];for(let n of this.nodes.values()){if(n.maxExportUsage===void 0||n.maxExportUsage<e)continue;let s=n.imports.reduce((o,i)=>(i.exportUsageRatio??0)>(o?.exportUsageRatio??0)?i:o,null);r.push({path:n.path,maxExportUsage:n.maxExportUsage,tightestDep:s?.toPath??""})}return r.sort((n,s)=>s.maxExportUsage-n.maxExportUsage)}findCycles(){let e=[],r=new Set,n=new Set,s=[],o=i=>{r.add(i),n.add(i),s.push(i);let a=this.nodes.get(i);if(a){for(let l of a.imports)if(!(!l.toPath||l.isExternal))if(n.has(l.toPath)){let p=s.indexOf(l.toPath);e.push([...s.slice(p),l.toPath])}else r.has(l.toPath)||o(l.toPath)}n.delete(i),s.pop()};for(let i of this.nodes.keys())r.has(i)||o(i);return e}}});var P,ae=m(()=>{"use strict";c();nn();P=class t{constructor(e){this.nodes=e}nodes;_incomingEdgesCache=null;_callIncomingCache=null;serialize(){return{nodes:Array.from(this.nodes.values())}}static deserialize(e){let r=new Map;for(let n of e.nodes)r.set(n.path,n);return new t(r)}getIncomingEdgesMap(){if(this._incomingEdgesCache)return this._incomingEdgesCache;let e=new Map;for(let r of this.nodes.values())for(let n of r.imports)if(n.toPath){let s=e.get(n.toPath)||[];s.push(r.path),e.set(n.toPath,s)}return this._incomingEdgesCache=e,e}dfs(e,r,n,s){let o=new Set,i=n.maxDepth??1/0,a=(l,p,h)=>{if(p>i||o.has(l))return;let d=this.nodes.get(l);if(d&&(o.add(l),r(d,p,h)!==!1))for(let b of s(l))a(b,p+1,l)};a(e,0,null)}traverse(e,r,n={}){let s=n.direction??"outgoing",o=s==="incoming"?this.getIncomingEdgesMap():null;this.dfs(e,r,n,i=>s==="outgoing"?this.nodes.get(i)?.imports.map(a=>a.toPath).filter(Boolean)??[]:o?.get(i)??[])}getCallIncomingCache(){if(this._callIncomingCache)return this._callIncomingCache;let e=new Map;for(let r of this.nodes.values())for(let n of r.callEdges??[]){let s=e.get(n.toFile)??[];s.push(r.path),e.set(n.toFile,s)}return this._callIncomingCache=e,e}traverseCalls(e,r,n={}){let s=n.direction??"outgoing",o=s==="incoming"?this.getCallIncomingCache():null;this.dfs(e,r,n,i=>s==="outgoing"?this.nodes.get(i)?.callEdges?.map(a=>a.toFile)??[]:o?.get(i)??[])}getCallers(e){let r=[];return this.traverseCalls(e,n=>(n.path!==e&&r.push(n.path),!0),{direction:"incoming",maxDepth:1}),r}getCallEdgesFor(e){return this.nodes.get(e)?.callEdges??[]}getNeighbors(e){let r=this.nodes.get(e);return r?r.imports.map(n=>this.nodes.get(n.toPath)).filter(n=>n!==void 0):[]}findUnusedFiles(e){return new ie(this.nodes).findUnusedFiles(e)}findCycles(){return new ie(this.nodes).findCycles()}}});var W,Le=m(()=>{"use strict";c();W=class{affectedSymbols=new Map;constructor(e,r){this.affectedSymbols.set(e,new Set(["default",...r]))}updateAffectedSymbols(e,r){let n=this.affectedSymbols.get(r)||new Set,s=e.imports.find(l=>l.toPath===r);if(!s)return!1;let o=s.symbols||["*"],i=new Set;for(let l of o)(l==="*"||n.has("*")||n.has(l))&&i.add("*");if(i.size===0)return!1;let a=this.affectedSymbols.get(e.path)||new Set;for(let l of i)a.add(l);return this.affectedSymbols.set(e.path,a),!0}}});function z(t,e){let r=t.nodes.get(e);if(r)return{category:r.category,exports:r.exports.map(n=>n.name)}}function Mt(t,e,r=1){let n=[];return t.traverse(e,(s,o,i)=>{if(s.path===e)return!0;let a=i?t.nodes.get(i)?.imports.find(l=>l.toPath===s.path):void 0;return n.push({path:s.path,...a?.symbols?{symbols:a.symbols}:{}}),!0},{direction:"outgoing",maxDepth:r}),n}function ce(t,e){let r=[];return t.traverse(e,n=>{if(n.path===e)return!0;let s=n.imports.find(o=>o.toPath===e);return r.push({path:n.path,...s?.symbols?{symbols:s.symbols}:{}}),!0},{direction:"incoming",maxDepth:1}),r}function At(t,e,r={}){let{testsOnly:n=!1,changedSymbols:s}=r,o=s?new W(e,s):null,i=[];return t.traverse(e,(a,l,p)=>{if(a.path===e)return!0;if(o&&p&&!o.updateAffectedSymbols(a,p))return!1;let h=a.category==="test"||a.tags.some(d=>d.name==="test");return(!n||h)&&i.push(a.path),!0},{direction:"incoming"}),i}function Dt(t,e,r={}){let{depth:n=1,withEdgeDetail:s=!1}=r,o=[];return t.traverseCalls(e,i=>{if(i.path===e)return!0;let a={file:i.path};return s&&(a.edges=(i.callEdges??[]).filter(l=>l.toFile===e).map(l=>({from:l.from,to:l.to}))),o.push(a),!0},{direction:"incoming",maxDepth:n}),o}function Rt(t,e={}){let{metric:r="cognitiveComplexity",threshold:n=10,limit:s=20}=e;return[...t.nodes.values()].flatMap(o=>(o.functions??[]).filter(i=>i[r]>=n).map(i=>({file:o.path,name:i.name,line:i.line,complexity:i.complexity,cognitiveComplexity:i.cognitiveComplexity}))).sort((o,i)=>i[r]-o[r]).slice(0,s)}function Ot(t){return{nodes:t.nodes.map(r=>({path:r.path,type:r.type,category:r.category,exports:r.exports.map(n=>n.name),tags:r.tags.filter(n=>n.kind==="comment-marker"||n.kind==="import").map(n=>n.name),importsFiles:r.imports.filter(n=>!n.isExternal&&n.toPath).map(n=>n.toPath),...r.description!==void 0&&{description:r.description},...r.testedBy!==void 0&&{testedBy:r.testedBy},...r.coveragePct!==void 0&&{coveragePct:r.coveragePct},...r.avgExportUsage!==void 0&&{avgExportUsage:r.avgExportUsage},...r.maxExportUsage!==void 0&&{maxExportUsage:r.maxExportUsage}})),cycles:t.cycles}}function Lt(t){let e=t.getPackageDependencies(),r=Array.from(t.packages.values()).map(({graph:n,pkg:s})=>({name:s.name,relativeRoot:s.relativeRoot,nodeCount:n.nodes.size,dependsOn:e.get(s.name)??[]}));return{monorepoType:t.type,packageCount:r.length,packages:r}}function Gt(t){return[...t.nodes.values()].some(e=>e.coveragePct!==void 0)}var jt=m(()=>{"use strict";c();Le()});function sn(t){if(t.category==="test")return"test";if(t.category==="config")return"config";if(t.category==="type-only")return"types";let e=t.path;return x(e,"component")||x(e,"components")?"component":x(e,"controller")||x(e,"controllers")?"controller":x(e,"middleware")?"middleware":x(e,"router")||x(e,"routes")||x(e,"route")?"router":x(e,"store")||x(e,"stores")?"store":x(e,"service")||x(e,"services")?"service":x(e,"handler")||x(e,"handlers")?"handler":x(e,"adapter")||x(e,"adapters")?"adapter":x(e,"plugin")||x(e,"plugins")?"plugin":x(e,"api")?"api":x(e,"cli")||x(e,"commands")||le(e)==="cli"?"cli":x(e,"util")||x(e,"utils")||x(e,"helper")||x(e,"helpers")?"util":x(e,"model")||x(e,"models")||le(e)==="model"?"model":x(e,"parser")||x(e,"parsers")||le(e)==="parser"?"parser":le(e)==="builder"?"builder":le(e)==="resolver"?"resolver":"other"}function x(t,e){return t.includes(`/${e}/`)||t.includes(`/${e}.`)}function le(t){let e=t.slice(t.lastIndexOf("/")+1);return e.slice(0,e.lastIndexOf("."))||e}var on=m(()=>{"use strict";c()});function _t(t,e){let r=oe(t,e),n=new Map;for(let[o,i]of r.features){for(let a of i.files)n.set(a,o);n.set(i.hub,o)}let s=new Map;for(let o of t.nodes.values()){let i=n.get(o.path);s.set(o.path,{path:o.path,role:sn(o),...o.description?{description:o.description}:{},exports:o.exports.map(a=>a.name),...i?{featureHub:i}:{}})}return s}var Wt=m(()=>{"use strict";c();De();on()});function zt(t,e){let r=[];for(let n of t.nodes.values())if(n.exports.some(s=>s.name===e))if(Oe.has(n.type)){let s=[];for(let o of t.nodes.values())for(let i of o.callEdges??[])i.to===e&&s.push({file:o.path,callerFunction:i.from});r.push({path:n.path,category:n.category,precision:"call",callers:s})}else if(Re.has(n.type)){let s=[];for(let o of t.nodes.values())for(let i of o.imports)i.toPath===n.path&&i.symbols?.includes(e)&&s.push({file:o.path,symbols:i.symbols});r.push({path:n.path,category:n.category,precision:"import-symbol",importers:s})}else{let s=ce(t,n.path).map(o=>({file:o.path,...o.symbols?{symbols:o.symbols}:{}}));r.push({path:n.path,category:n.category,precision:"file-level",importers:s})}return r}var an=m(()=>{"use strict";c();It();jt()});function sa(t){return t?t.startsWith("interface ")?"interface":t.startsWith("class ")?"class":t.startsWith("enum ")?"enum":"type":"type"}function oa(t,e){if(e==="type-only")return!0;let r=t.signature??"";return r.startsWith("interface ")||r.startsWith("class ")||r.startsWith("enum ")}function $t(t){let e=new Map;for(let n of t.nodes.values())if(!(n.type!=="typescript"&&n.type!=="javascript"))for(let s of n.exports){if(!oa(s,n.category))continue;let o=`${n.path}::${s.name}`;e.set(o,{name:s.name,file:n.path,kind:sa(s.signature),...s.doc?{doc:s.doc}:{}})}let r=[];for(let n of t.nodes.values())if(!(n.type!=="typescript"&&n.type!=="javascript")){for(let s of n.imports)if(!(!s.toPath||s.isExternal||!s.symbols?.length))for(let o of s.symbols)e.has(`${s.toPath}::${o}`)&&r.push({fromFile:n.path,toType:o,toFile:s.toPath})}return{types:e,edges:r}}function Ut(t,e){let r=null;for(let o of t.types.values())if(o.name===e){r=o;break}if(!r)return{type:null,usedByFiles:[],uses:[]};let n=new Set,s=new Map;for(let o of t.edges)if(o.toType===e&&o.toFile===r.file&&n.add(o.fromFile),o.fromFile===r.file){let i=t.types.get(`${o.toFile}::${o.toType}`);i&&s.set(`${i.file}::${i.name}`,i)}return{type:r,usedByFiles:Array.from(n),uses:Array.from(s.values())}}var Bt=m(()=>{"use strict";c()});import cn from"fs";import em from"path";function ln(t){try{return cn.statSync(t,{throwIfNoEntry:!1})?.isDirectory()===!0}catch{return!1}}function Ge(t){try{return cn.statSync(t,{throwIfNoEntry:!1})?.isFile()===!0}catch{return!1}}var je=m(()=>{"use strict";c()});import pe from"fs";import T from"path";function Jt(t,e){let r=T.join(e,"package.json");if(!pe.existsSync(r))return null;let n={};try{n=JSON.parse(pe.readFileSync(r,"utf-8"))}catch{return null}let s=n.name;return s?{name:s,root:e,relativeRoot:T.relative(t,e),entryPoints:ia(e,n)}:null}function ia(t,e){let r=[];if(e.exports){let s=e.exports;if(typeof s=="string")r.push(T.join(t,s));else if(typeof s=="object"&&s!==null){let o=s["."];if(typeof o=="string")r.push(T.join(t,o));else if(typeof o=="object"&&o!==null){let i=o.import??o.require??o.default;typeof i=="string"&&r.push(T.join(t,i))}}}e.main&&r.push(T.join(t,e.main));for(let s of["src/index.ts","src/index.tsx","index.ts","index.tsx","index.js"])r.push(T.join(t,s));let n=r.filter(Ge);return n.length>0?n.slice(0,1):r.slice(0,1)}function H(t,e){let r=[],n=new Set;for(let s of e){let o=s.replace(/\/$/,"").replace(/^\.\//,"");aa(t,o,n,r)}return r}function aa(t,e,r,n){if(!e.includes("*")){ca(t,e,r,n);return}let s=e.split("/");s.includes("**")?la(t,s,r,n):pa(t,s,r,n)}function ca(t,e,r,n){let s=T.join(t,e);if(r.has(s)||!ln(s))return;r.add(s);let o=Jt(t,s);o&&n.push(o)}function la(t,e,r,n){let s=T.join(t,e[0]==="**"?"":e[0]??"");pn(t,s,r,n)}function pa(t,e,r,n){let s=e.findIndex(a=>a.includes("*")),o=T.join(t,...e.slice(0,s)),i;try{i=pe.readdirSync(o,{withFileTypes:!0})}catch{return}for(let a of i){if(!a.isDirectory())continue;let l=T.join(o,a.name);if(r.has(l))continue;r.add(l);let p=Jt(t,l);p&&n.push(p)}}function pn(t,e,r,n){let s;try{s=pe.readdirSync(e,{withFileTypes:!0})}catch{return}for(let o of s){if(!o.isDirectory()||o.name==="node_modules"||o.name.startsWith("."))continue;let i=T.join(e,o.name);if(pe.existsSync(T.join(i,"package.json"))&&!r.has(i)){r.add(i);let a=Jt(t,i);a&&n.push(a)}else pn(t,i,r,n)}}var _e=m(()=>{"use strict";c();je();je()});import Kt from"fs";import fn from"path";var mn,un=m(()=>{"use strict";c();_e();mn={type:"npm",detect(t){let e=fn.join(t,"package.json");if(!Kt.existsSync(e))return null;let r;try{r=JSON.parse(Kt.readFileSync(e,"utf-8")).workspaces}catch{return null}if(!r||Kt.existsSync(fn.join(t,"yarn.lock")))return null;let n=Array.isArray(r)?r:r.packages??[];return n.length===0?null:H(t,n)}}});import V from"fs";import E from"path";function dn(t,e,r,n){if(n>4)return[];let s;try{s=V.readdirSync(e,{withFileTypes:!0})}catch{return[]}let o=[];for(let i of s){if(!i.isDirectory())continue;let a=i.name;if(a.startsWith(".")||a==="node_modules"||a==="dist"||a===".nx")continue;let l=E.join(e,a);V.existsSync(E.join(l,"project.json"))&&!r.has(l)?(r.add(l),o.push(l)):o.push(...dn(t,l,r,n+1))}return o}function fa(t,e,r){let n={};try{n=JSON.parse(V.readFileSync(r,"utf-8"))}catch{return null}let s=n.name,o,i,a=E.join(e,"package.json");if(V.existsSync(a))try{let l=JSON.parse(V.readFileSync(a,"utf-8"));s=l.name??s,o=l.main,i=l.exports}catch{}return s?{name:s,root:e,relativeRoot:E.relative(t,e),entryPoints:ma(e,n,o,i)}:null}function ma(t,e,r,n){let s=[],o=e.targets?.build?.options?.main??e.targets?.build?.options?.entryFile;if(o){let a=E.resolve(t,"../..");s.push(E.resolve(a,o)),s.push(E.resolve(t,o))}if(n){let a=n;if(typeof a=="string")s.push(E.join(t,a));else if(typeof a=="object"&&a!==null){let l=a["."];typeof l=="string"&&s.push(E.join(t,l))}}if(r&&s.push(E.join(t,r)),e.sourceRoot){let a=E.resolve(t,"../.."),l=E.resolve(a,e.sourceRoot);s.push(E.join(l,"index.ts"),E.join(l,"index.tsx"))}for(let a of["src/index.ts","src/index.tsx","index.ts","index.tsx"])s.push(E.join(t,a));let i=s.filter(Ge);return i.length>0?i.slice(0,1):s.slice(0,1)}var gn,hn=m(()=>{"use strict";c();je();gn={type:"nx",detect(t){return V.existsSync(E.join(t,"nx.json"))?dn(t,t,new Set,0).map(r=>fa(t,r,E.join(r,"project.json"))).filter(r=>r!==null):null}}});import yn from"fs";import ua from"path";import{load as ga}from"js-yaml";var xn,bn=m(()=>{"use strict";c();_e();xn={type:"pnpm",detect(t){let e=ua.join(t,"pnpm-workspace.yaml");if(!yn.existsSync(e))return null;let r=[];try{r=ga(yn.readFileSync(e,"utf-8"))?.packages??[]}catch{return null}return H(t,r)}}});import da from"fs";import ha from"path";var Sn,Cn=m(()=>{"use strict";c();Sn={type:"turborepo",detect(t){return da.existsSync(ha.join(t,"turbo.json"))?[]:null}}});import Ht from"fs";import vn from"path";var kn,En=m(()=>{"use strict";c();_e();kn={type:"yarn",detect(t){if(!Ht.existsSync(vn.join(t,"yarn.lock")))return null;let e=vn.join(t,"package.json");if(!Ht.existsSync(e))return null;let r;try{r=JSON.parse(Ht.readFileSync(e,"utf-8")).workspaces}catch{return null}if(!r)return null;let n=Array.isArray(r)?r:r.packages??[];return n.length===0?null:H(t,n)}}});function D(t){wn.push(t)}function Fn(){return wn}var wn,We=m(()=>{"use strict";c();wn=[]});import ya from"path";function Vt(t,e=Fn()){let r=ya.resolve(t),n=new Map,s=[];for(let i of e){let a=i.detect(r);if(a!==null){s.push(i.type);for(let l of a)n.has(l.name)||n.set(l.name,l)}}if(s.length===0)return{root:r,type:"none",types:[],packages:[],packageMap:new Map};let o=Array.from(n.values());return{root:r,type:s[0],types:s,packages:o,packageMap:new Map(o.map(i=>[i.name,i]))}}var Qt=m(()=>{"use strict";c();un();hn();bn();Cn();En();We();We();D(Sn);D(gn);D(xn);D(kn);D(mn)});var fe,Xt=m(()=>{"use strict";c();ae();fe=class t{constructor(e,r){this.monorepoRoot=e;this.type=r}monorepoRoot;type;packages=new Map;addPackage(e,r){this.packages.set(e.name,{graph:r,pkg:e})}getPackageForFile(e){for(let{pkg:r}of this.packages.values())if(e===r.relativeRoot||e.startsWith(`${r.relativeRoot}/`))return r}getPackageDependencies(){let e=new Map;for(let{graph:r,pkg:n}of this.packages.values()){let s=new Set;for(let o of r.nodes.values())for(let i of o.imports)i.isWorkspace&&i.workspacePackage&&s.add(i.workspacePackage);e.set(n.name,[...s])}return e}getAffectedAcrossPackages(e){let r=this.getPackageForFile(e);if(!r)return[];let n=this.packages.get(r.name);if(!n)return[];let s=[];n.graph.traverse(e,o=>(o.path!==e&&s.push({file:o.path,package:r.name}),!0),{direction:"incoming"});for(let{graph:o,pkg:i}of this.packages.values())if(i.name!==r.name)for(let a of o.nodes.values())a.imports.some(p=>p.isWorkspace&&p.workspacePackage===r.name)&&s.push({file:a.path,package:i.name});return s}serialize(){return{monorepoRoot:this.monorepoRoot,type:this.type,packages:Array.from(this.packages.values()).map(({graph:e,pkg:r})=>({pkg:{name:r.name,relativeRoot:r.relativeRoot,entryPoints:r.entryPoints},nodes:Array.from(e.nodes.values())}))}}static deserialize(e){let r=new t(e.monorepoRoot,e.type);for(let{pkg:n,nodes:s}of e.packages){let o=new Map(s.map(a=>[a.path,a])),i=new P(o);r.packages.set(n.name,{graph:i,pkg:{...n,root:""}})}return r}}});function Q(t,e){Pn.set(t,e)}function Tn(t){return Pn.get(t)}var Pn,me=m(()=>{"use strict";c();Pn=new Map});function Nn(t,e){return e.startsWith("!")?t!==e.slice(1):t===e}function xa(t,e){return e.startsWith("!")?!t.includes(e.slice(1)):t.includes(e)}function ue(t,e,r){return Ka.every(n=>n(t,e,r))}var ba,Sa,Ca,va,ka,Ea,wa,Fa,Pa,Ta,Na,Ia,Ma,Aa,Da,Ra,Oa,La,Ga,ja,_a,Wa,za,$a,Ua,Ba,Ja,Ka,Yt=m(()=>{"use strict";c();ba=(t,e)=>!e.category||Nn(t.category,e.category),Sa=(t,e)=>!e.type||Nn(t.type,e.type),Ca=(t,e)=>e.lastAuthor?e.lastAuthor.startsWith("!")?t.lastAuthor!==e.lastAuthor.slice(1):t.lastAuthor!==void 0&&t.lastAuthor===e.lastAuthor:!0,va=(t,e)=>!e.path||xa(t.path,e.path),ka=(t,e)=>e.isExternal===void 0?!0:t.imports.some(n=>n.isExternal)===e.isExternal,Ea=(t,e)=>{if(!e.tags||e.tags.length===0)return!0;let r=e.tags.filter(s=>!s.startsWith("!")),n=e.tags.filter(s=>s.startsWith("!")).map(s=>s.slice(1));return!(r.length>0&&!r.some(s=>t.tags.some(o=>o.name===s))||n.some(s=>t.tags.some(o=>o.name===s)))},wa=(t,e)=>!e.allTags?.length||e.allTags.every(r=>t.tags.some(n=>n.name===r)),Fa=(t,e)=>!e.importsFile||t.imports.some(r=>r.toPath?.includes(e.importsFile)),Pa=(t,e,r)=>e.importedBy===void 0?!0:(r?.get(t.path)??[]).some(s=>s.includes(e.importedBy)),Ta=(t,e)=>e.minImports===void 0||t.imports.length>=e.minImports,Na=(t,e)=>e.maxImports===void 0||t.imports.length<=e.maxImports,Ia=(t,e)=>e.minSize===void 0||t.size>=e.minSize,Ma=(t,e)=>e.maxSize===void 0||t.size<=e.maxSize,Aa=(t,e)=>e.hasDocstring===void 0||!!t.description===e.hasDocstring,Da=(t,e)=>e.isDocumented===void 0||!!t.documentedBy?.length===e.isDocumented,Ra=(t,e)=>e.isStale===void 0||!!t.staleFor?.length===e.isStale,Oa=(t,e)=>e.minCoverage===void 0||(t.coveragePct??101)>=e.minCoverage,La=(t,e)=>e.maxCoverage===void 0||(t.coveragePct??0)<=e.maxCoverage,Ga=(t,e)=>e.minExportUsage===void 0||(t.avgExportUsage??-1)>=e.minExportUsage,ja=(t,e)=>e.maxExportUsage===void 0||(t.avgExportUsage??0)<=e.maxExportUsage,_a=(t,e)=>e.minComplexity===void 0||(t.complexity??-1/0)>=e.minComplexity,Wa=(t,e)=>e.maxComplexity===void 0||(t.complexity??0)<=e.maxComplexity,za=(t,e)=>e.minCognitiveComplexity===void 0||(t.cognitiveComplexity??-1/0)>=e.minCognitiveComplexity,$a=(t,e)=>e.maxCognitiveComplexity===void 0||(t.cognitiveComplexity??0)<=e.maxCognitiveComplexity,Ua=(t,e)=>e.minCommits===void 0||(t.commitCount90d??-1/0)>=e.minCommits,Ba=(t,e)=>e.maxCommits===void 0||(t.commitCount90d??0)<=e.maxCommits,Ja=(t,e,r)=>!e.any?.length||e.any.some(n=>ue(t,n,r)),Ka=[ba,Sa,Ca,va,ka,Ea,wa,Fa,Pa,Ta,Na,Ia,Ma,Aa,Da,Ra,Oa,La,Ga,ja,_a,Wa,za,$a,Ua,Ba,Ja]});function ze(t,e){let r=new Map;if(e.importedBy!==void 0){for(let i of t.nodes)for(let a of i.imports)if(a.toPath){let l=r.get(a.toPath)??[];l.push(i.path),r.set(a.toPath,l)}}let n=t.nodes.filter(i=>ue(i,e,r)),s=new Set(n.map(i=>i.path)),o=n.map(i=>({...i,imports:i.imports.filter(a=>!a.toPath||s.has(a.toPath))}));if(e.sort){let i=e.sortDir==="asc"?-1:1;o.sort((a,l)=>{let p=0;return e.sort==="size"?p=l.size-a.size:e.sort==="imports"?p=l.imports.length-a.imports.length:e.sort==="commitCount90d"?p=(l.commitCount90d??0)-(a.commitCount90d??0):e.sort==="exportUsage"?p=(l.avgExportUsage??0)-(a.avgExportUsage??0):e.sort==="complexity"?p=(l.complexity??0)-(a.complexity??0):e.sort==="cognitiveComplexity"&&(p=(l.cognitiveComplexity??0)-(a.cognitiveComplexity??0)),p*i})}return e.limit!==void 0&&o.splice(e.limit),{nodes:o,cycles:t.cycles?.filter(i=>i.every(a=>s.has(a)))??void 0}}var In=m(()=>{"use strict";c();Yt();Yt()});function Mn(t,e){let r=e.indexOf(":");if(r===-1)return;let n=e.slice(0,r).trim().toLowerCase(),s=e.slice(r+1).trim();if(!(!n||!s))switch(n){case"category":t.category=s;break;case"type":t.type=s;break;case"tag":case"tags":s.includes("+")?t.allTags=[...t.allTags??[],...s.split("+")]:t.tags=[...t.tags??[],s];break;case"path":t.path=s;break;case"external":t.isExternal=s.toLowerCase()==="true";break;case"importsfile":t.importsFile=s;break;case"importedby":t.importedBy=s;break;case"minimports":t.minImports=parseInt(s,10);break;case"maximports":t.maxImports=parseInt(s,10);break;case"minsize":t.minSize=parseInt(s,10);break;case"maxsize":t.maxSize=parseInt(s,10);break;case"sort":t.sort=s;break;case"sortdir":t.sortDir=s.toLowerCase()==="asc"?"asc":"desc";break;case"limit":t.limit=parseInt(s,10);break;case"hasdocstring":t.hasDocstring=s.toLowerCase()!=="false";break;case"mincoverage":t.minCoverage=parseInt(s,10);break;case"maxcoverage":t.maxCoverage=parseInt(s,10);break;case"minexportusage":t.minExportUsage=parseFloat(s);break;case"maxexportusage":t.maxExportUsage=parseFloat(s);break;case"mincomplexity":t.minComplexity=parseInt(s,10);break;case"maxcomplexity":t.maxComplexity=parseInt(s,10);break;case"mincognitivecomplexity":t.minCognitiveComplexity=parseInt(s,10);break;case"maxcognitivecomplexity":t.maxCognitiveComplexity=parseInt(s,10);break;case"mincommits":t.minCommits=parseInt(s,10);break;case"maxcommits":t.maxCommits=parseInt(s,10);break;case"isdocumented":t.isDocumented=s.toLowerCase()!=="false";break;case"isstale":t.isStale=s.toLowerCase()!=="false";break;case"lastauthor":t.lastAuthor=s;break}}function Ha(t){let e=[];for(let r of t.split("|")){let n=r.trim();if(!n)continue;let s={};Mn(s,n),Object.keys(s).length>0&&e.push(s)}return e}function $e(t){let e={},r=t.split(",");for(let n of r){let s=n.trim();if(s.toLowerCase().startsWith("any(")&&s.endsWith(")")){let o=s.slice(4,-1),i=Ha(o);i.length>0&&(e.any=[...e.any??[],...i]);continue}Mn(e,n)}return e}var An=m(()=>{"use strict";c()});var Dn=m(()=>{"use strict";c();In();An()});import w from"typescript";function X(t){let e=[];for(let r of t.statements){if(!w.isExpressionStatement(r))continue;let n=r.expression;if(!w.isCallExpression(n))continue;let s=n.expression;w.isIdentifier(s)&&Rn.has(s.text)&&e.push(n),w.isPropertyAccessExpression(s)&&w.isIdentifier(s.expression)&&Rn.has(s.expression.text)&&e.push(n)}return e}function Y(t,e,r){for(let n of t.arguments){if(!w.isObjectLiteralExpression(n))continue;let s=n.properties.find(o=>w.isPropertyAssignment(o)&&w.isIdentifier(o.name)&&o.name.text===e);if(!(!s||!w.isArrayLiteralExpression(s.initializer)))return s.initializer.elements.filter(w.isStringLiteral).map(o=>o.text)}return null}function q(t,e,r,n){if(t.arguments.length===0)return null;for(let o=1;o<t.arguments.length;o++){let i=t.arguments[o];if(!w.isObjectLiteralExpression(i))continue;let a=i.properties.find(p=>w.isPropertyAssignment(p)&&w.isIdentifier(p.name)&&p.name.text===e);if(a)return{start:a.initializer.getStart(n),end:a.initializer.getEnd(),text:r};let l=i.getEnd()-1;return{start:l,end:l,text:`${i.properties.length>0?", ":""}${e}: ${r}`}}let s=t.arguments[t.arguments.length-1];return{start:s.getStart(n),end:s.getStart(n),text:`{ ${e}: ${r} }, `}}function Z(t,e,r){let n=t.arguments;for(let s=1;s<n.length;s++){let o=n[s];if(!w.isObjectLiteralExpression(o))continue;let i=o.properties.findIndex(l=>w.isPropertyAssignment(l)&&w.isIdentifier(l.name)&&l.name.text===e);if(i<0)continue;if(o.properties.length===1)return{start:n[s-1].getEnd(),end:o.getEnd(),text:""};let a=o.properties[i];return i===o.properties.length-1?{start:o.properties[i-1].getEnd(),end:a.getEnd(),text:""}:{start:a.getStart(r),end:o.properties[i+1].getStart(r),text:""}}return null}function ee(t,e){let r=[...e].sort((s,o)=>o.start-s.start),n=t;for(let s of r)n=n.slice(0,s.start)+s.text+n.slice(s.end);return n}function te(t){return`[${t.map(e=>JSON.stringify(e)).join(", ")}]`}var Rn,A,re=m(()=>{"use strict";c();Rn=new Set(["describe","test","it"]);A=new Set([".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"])});import On from"path";import Ln from"typescript";function Va(t){return te(t.map(e=>`@${e}`))}function Qa(t){return t.map(e=>e.startsWith("@")?e.slice(1):e)}var Ue,Gn=m(()=>{"use strict";c();re();Ue=class{name="cypress";canHandle(e){return A.has(On.extname(e).toLowerCase())}apply(e,r,n){let s=Ln.createSourceFile(On.basename(e),r,Ln.ScriptTarget.Latest,!0),o=X(s);if(o.length===0)return r;let i=Y(o[0],"tags",s),a=[...n].sort();if(i!==null&&JSON.stringify(Qa(i).sort())===JSON.stringify(a))return r;let l=o.flatMap(p=>{let h=n.length===0?Z(p,"tags",s):q(p,"tags",Va(a),s);return h?[h]:[]});return l.length>0?ee(r,l):r}}});import Xa from"path";function Ya(t){return["# <mokosh-tags>",...t.map(e=>`@${e}`),"# </mokosh-tags>"].join(`
4
4
  `)+`
5
5
 
6
- `}function Qa(t){let e=new Set;Vt.lastIndex=0;let r=Vt.exec(t);for(;r!==null;)r[1]&&e.add(r[1]),r=Vt.exec(t);return e}var Qt,Vt,Ue,Ds=m(()=>{"use strict";c();Qt=/# <mokosh-tags>[\s\S]*?# <\/mokosh-tags>\n*/,Vt=/^@([a-zA-Z0-9_-]+)/gm;Ue=class{name="gherkin";canHandle(e){return Ka.extname(e).toLowerCase()===".feature"}apply(e,r,s){let n=r.replace(Qt,""),o=Qa(n),i=s.filter(l=>!o.has(l)),a=i.length>0?Ha(i):"";return Qt.test(r)?r.replace(Qt,a):a?r.replace(/^(Feature:)/m,`${a}$1`):r}}});function Rs(t,e){let r=t.replace(/\\/g,"/"),s=e.replace(/\\/g,"/"),n="";for(let o=0;o<r.length;o++){let i=r[o];i==="*"?r[o+1]==="*"?(n+=".*",o++):n+="[^/]*":i==="?"?n+="[^/]":i!==void 0&&(n+=i.replace(/[.+^${}()|[\]\\]/g,"\\$&"))}return new RegExp(`^${n}$`).test(s)}var Os=m(()=>{"use strict";c()});import Va from"path";function Ya(t){return`//go:build ${t.map(r=>`mokosh_${r}`).join(" || ")}
7
- `}function qa(t){let e=Xt.exec(t);if(!e)return null;let r=e[0],s=/mokosh_([a-zA-Z0-9_-]+)/g,n=[],o=s.exec(r);for(;o!==null;)o[1]&&n.push(o[1]),o=s.exec(r);return n}var Xt,Xa,Be,Gs=m(()=>{"use strict";c();Xt=/^\/\/go:build mokosh_[^\n]+\n/m,Xa=/^package\s+\S+/m;Be=class{name="go";canHandle(e){return Va.basename(e).endsWith("_test.go")}apply(e,r,s){let n=qa(r),o=[...s].sort();if(n!==null&&JSON.stringify([...n].sort())===JSON.stringify(o))return r;if(s.length===0)return r.replace(Xt,"");let i=Ya(o);if(n!==null)return r.replace(Xt,i);let a=Xa.exec(r);if(!a)return r;let l=a.index;return r.slice(0,l)+i+`
8
- `+r.slice(l)}}});import Za from"path";function tc(t){return["/**",...t.map(e=>` * @group ${e}`)," */"].join(`
6
+ `}function qa(t){let e=new Set;Zt.lastIndex=0;let r=Zt.exec(t);for(;r!==null;)r[1]&&e.add(r[1]),r=Zt.exec(t);return e}var qt,Zt,Be,jn=m(()=>{"use strict";c();qt=/# <mokosh-tags>[\s\S]*?# <\/mokosh-tags>\n*/,Zt=/^@([a-zA-Z0-9_-]+)/gm;Be=class{name="gherkin";canHandle(e){return Xa.extname(e).toLowerCase()===".feature"}apply(e,r,n){let s=r.replace(qt,""),o=qa(s),i=n.filter(l=>!o.has(l)),a=i.length>0?Ya(i):"";return qt.test(r)?r.replace(qt,a):a?r.replace(/^(Feature:)/m,`${a}$1`):r}}});function _n(t,e){let r=t.replace(/\\/g,"/"),n=e.replace(/\\/g,"/"),s="";for(let o=0;o<r.length;o++){let i=r[o];i==="*"?r[o+1]==="*"?(s+=".*",o++):s+="[^/]*":i==="?"?s+="[^/]":i!==void 0&&(s+=i.replace(/[.+^${}()|[\]\\]/g,"\\$&"))}return new RegExp(`^${s}$`).test(n)}var Wn=m(()=>{"use strict";c()});import Za from"path";function tc(t){return`//go:build ${t.map(r=>`mokosh_${r}`).join(" || ")}
7
+ `}function rc(t){let e=er.exec(t);if(!e)return null;let r=e[0],n=/mokosh_([a-zA-Z0-9_-]+)/g,s=[],o=n.exec(r);for(;o!==null;)o[1]&&s.push(o[1]),o=n.exec(r);return s}var er,ec,Je,zn=m(()=>{"use strict";c();er=/^\/\/go:build mokosh_[^\n]+\n/m,ec=/^package\s+\S+/m;Je=class{name="go";canHandle(e){return Za.basename(e).endsWith("_test.go")}apply(e,r,n){let s=rc(r),o=[...n].sort();if(s!==null&&JSON.stringify([...s].sort())===JSON.stringify(o))return r;if(n.length===0)return r.replace(er,"");let i=tc(o);if(s!==null)return r.replace(er,i);let a=ec.exec(r);if(!a)return r;let l=a.index;return r.slice(0,l)+i+`
8
+ `+r.slice(l)}}});import nc from"path";function oc(t){return["/**",...t.map(e=>` * @group ${e}`)," */"].join(`
9
9
  `)+`
10
10
 
11
- `}function rc(t){let e=[];Yt.lastIndex=0;let r=Yt.exec(t);for(;r!==null;)r[1]&&e.push(r[1]),r=Yt.exec(t);return e}var ec,Yt,Je,Ls=m(()=>{"use strict";c();ee();ec=/^\/\*\*\n(?: \* @group .+\n)+ \*\/\n+/,Yt=/^ \* @group (.+)$/gm;Je=class{name="jest";canHandle(e){return A.has(Za.extname(e).toLowerCase())}apply(e,r,s){let n=ec.exec(r),o=n?rc(n[0]):null,i=[...s].sort();if(o!==null&&JSON.stringify([...o].sort())===JSON.stringify(i))return r;let a=n?r.slice(n[0].length):r;return s.length===0?a:tc(i)+a}}});import js from"path";import _s from"typescript";function sc(t){return Z(t.map(e=>`@${e}`))}function nc(t){return t.map(e=>e.startsWith("@")?e.slice(1):e)}var Ke,Ws=m(()=>{"use strict";c();ee();Ke=class{name="playwright";canHandle(e){return A.has(js.extname(e).toLowerCase())}apply(e,r,s){let n=_s.createSourceFile(js.basename(e),r,_s.ScriptTarget.Latest,!0),o=Q(n);if(o.length===0)return r;let i=V(o[0],"tag",n),a=[...s].sort();if(i!==null&&JSON.stringify(nc(i).sort())===JSON.stringify(a))return r;let l=o.flatMap(p=>{let h=s.length===0?Y(p,"tag",n):X(p,"tag",sc(a),n);return h?[h]:[]});return l.length>0?q(r,l):r}}});import oc from"path";function ac(t){let e=t.map(r=>`pytest.mark.${r}`).join(", ");return t.length===1?`pytestmark = pytest.mark.${t[0]}`:`pytestmark = [${e}]`}function cc(t){let e=qt.exec(t);if(!e)return null;let r=e[0],s=[],n=/pytest\.mark\.([a-zA-Z0-9_-]+)/g,o=n.exec(r);for(;o!==null;)o[1]&&s.push(o[1]),o=n.exec(r);return s}function lc(t){let e=t.split(`
12
- `),r=-1;for(let n=0;n<e.length;n++){let o=e[n].trimStart();(o.startsWith("import ")||o.startsWith("from "))&&(r=n)}if(r<0)return 0;let s=0;for(let n=0;n<=r;n++)s+=e[n].length+1;return s}var qt,ic,He,zs=m(()=>{"use strict";c();qt=/^pytestmark\s*=\s*.+$/m,ic=/^import pytest\s*$/m;He=class{name="pytest";canHandle(e){return oc.extname(e).toLowerCase()===".py"}apply(e,r,s){let n=cc(r),o=[...s].sort();if(n!==null&&JSON.stringify([...n].sort())===JSON.stringify(o))return r;if(s.length===0)return r.replace(qt,"").replace(/\n{3,}/g,`
11
+ `}function ic(t){let e=[];tr.lastIndex=0;let r=tr.exec(t);for(;r!==null;)r[1]&&e.push(r[1]),r=tr.exec(t);return e}var sc,tr,Ke,$n=m(()=>{"use strict";c();re();sc=/^\/\*\*\n(?: \* @group .+\n)+ \*\/\n+/,tr=/^ \* @group (.+)$/gm;Ke=class{name="jest";canHandle(e){return A.has(nc.extname(e).toLowerCase())}apply(e,r,n){let s=sc.exec(r),o=s?ic(s[0]):null,i=[...n].sort();if(o!==null&&JSON.stringify([...o].sort())===JSON.stringify(i))return r;let a=s?r.slice(s[0].length):r;return n.length===0?a:oc(i)+a}}});import Un from"path";import Bn from"typescript";function ac(t){return te(t.map(e=>`@${e}`))}function cc(t){return t.map(e=>e.startsWith("@")?e.slice(1):e)}var He,Jn=m(()=>{"use strict";c();re();He=class{name="playwright";canHandle(e){return A.has(Un.extname(e).toLowerCase())}apply(e,r,n){let s=Bn.createSourceFile(Un.basename(e),r,Bn.ScriptTarget.Latest,!0),o=X(s);if(o.length===0)return r;let i=Y(o[0],"tag",s),a=[...n].sort();if(i!==null&&JSON.stringify(cc(i).sort())===JSON.stringify(a))return r;let l=o.flatMap(p=>{let h=n.length===0?Z(p,"tag",s):q(p,"tag",ac(a),s);return h?[h]:[]});return l.length>0?ee(r,l):r}}});import lc from"path";function fc(t){let e=t.map(r=>`pytest.mark.${r}`).join(", ");return t.length===1?`pytestmark = pytest.mark.${t[0]}`:`pytestmark = [${e}]`}function mc(t){let e=rr.exec(t);if(!e)return null;let r=e[0],n=[],s=/pytest\.mark\.([a-zA-Z0-9_-]+)/g,o=s.exec(r);for(;o!==null;)o[1]&&n.push(o[1]),o=s.exec(r);return n}function uc(t){let e=t.split(`
12
+ `),r=-1;for(let s=0;s<e.length;s++){let o=e[s].trimStart();(o.startsWith("import ")||o.startsWith("from "))&&(r=s)}if(r<0)return 0;let n=0;for(let s=0;s<=r;s++)n+=e[s].length+1;return n}var rr,pc,Ve,Kn=m(()=>{"use strict";c();rr=/^pytestmark\s*=\s*.+$/m,pc=/^import pytest\s*$/m;Ve=class{name="pytest";canHandle(e){return lc.extname(e).toLowerCase()===".py"}apply(e,r,n){let s=mc(r),o=[...n].sort();if(s!==null&&JSON.stringify([...s].sort())===JSON.stringify(o))return r;if(n.length===0)return r.replace(rr,"").replace(/\n{3,}/g,`
13
13
 
14
- `);let i=ac(o);if(n!==null)return r.replace(qt,i);let a=ic.test(r),l=lc(r),p=r.slice(0,l),h=r.slice(l),d=a?"":`import pytest
15
- `,S=p.endsWith(`
14
+ `);let i=fc(o);if(s!==null)return r.replace(rr,i);let a=pc.test(r),l=uc(r),p=r.slice(0,l),h=r.slice(l),d=a?"":`import pytest
15
+ `,b=p.endsWith(`
16
16
 
17
17
  `)?"":`
18
- `;return p+S+d+i+`
19
- `+h}}});import $s from"path";import Us from"typescript";var pc,Qe,Bs=m(()=>{"use strict";c();ee();pc=/\/\/ <mokosh-tags>[\s\S]*?\/\/ <\/mokosh-tags>\n*/,Qe=class{name="vitest";canHandle(e){return A.has($s.extname(e).toLowerCase())}apply(e,r,s){let n=r.replace(pc,""),o=Us.createSourceFile($s.basename(e),n,Us.ScriptTarget.Latest,!0),i=Q(o);if(i.length===0)return n;let a=V(i[0],"tags",o),l=[...s].sort();if(a!==null&&JSON.stringify([...a].sort())===JSON.stringify(l))return n;let p=i.flatMap(h=>{let d=s.length===0?Y(h,"tags",o):X(h,"tags",Z(l),o);return d?[d]:[]});return p.length>0?q(n,p):n}}});import Zt from"path";import Ve from"typescript";function mc(t){let e=Ve.createSourceFile("detect.ts",t,Ve.ScriptTarget.Latest,!0);for(let r of e.statements){if(!Ve.isImportDeclaration(r)||!Ve.isStringLiteral(r.moduleSpecifier))continue;let s=fc[r.moduleSpecifier.text];if(s)return s}return null}function Ks(t="vitest",e={},r=process.cwd()){return[new Ue,new He,new Be,new er(r,t,Object.entries(e))]}function Hs(t,e){return e.find(r=>r.canHandle(t))??null}var Js,fc,er,Qs=m(()=>{"use strict";c();As();Ds();Os();Gs();Ls();Ws();zs();ee();Bs();Js={vitest:()=>new Qe,playwright:()=>new Ke,cypress:()=>new $e,jest:()=>new Je},fc={"@playwright/test":"playwright",cypress:"cypress","@jest/globals":"jest",vitest:"vitest"};er=class{constructor(e,r,s){this.rootDir=e;this.defaultFramework=r;this.frameworkOverrides=s}rootDir;defaultFramework;frameworkOverrides;name="auto";canHandle(e){return A.has(Zt.extname(e).toLowerCase())}apply(e,r,s){let n=mc(r)??this.matchOverride(e)??this.defaultFramework;return(Js[n]??Js.vitest)().apply(e,r,s)}matchOverride(e){let r=Zt.relative(this.rootDir,e).split(Zt.sep).join("/");for(let[s,n]of this.frameworkOverrides)if(Rs(s,r))return n;return null}}});import Vs from"fs/promises";import uc from"path";async function yc(t,e,r,s){let n;try{n=await Vs.readFile(t,"utf8")}catch(a){return{path:t,status:"error",error:String(a)}}let o=Hs(t,s);if(!o)return{path:t,status:"unchanged"};let i=o.apply(t,n,e);return i===n?{path:t,status:"unchanged"}:(r||await Vs.writeFile(t,i,"utf8"),{path:t,status:"updated"})}async function tr(t,e,r){let s=B(e),n=s.tagApplier?.framework??"vitest",o=s.tagApplier?.frameworkOverrides??{},i=Ks(n,o,e),a={updated:0,unchanged:0,errors:0,files:[]};for(let l of t.nodes.values()){if(l.category!=="test")continue;let p=new Set,h=[];for(let v of l.tags)dc.has(v.kind)&&gc.test(v.name)&&(hc.has(v.name.toLowerCase())||p.has(v.name)||(p.add(v.name),h.push(v.name)));h.sort();let d=uc.resolve(e,l.path),S=await yc(d,h,r.dryRun,i);S.path=l.path,a.files.push(S),S.status==="updated"?a.updated++:S.status==="unchanged"?a.unchanged++:a.errors++}return a}var gc,dc,hc,Xs=m(()=>{"use strict";c();mt();Qs();gc=/^[a-zA-Z][a-zA-Z0-9_-]{1,}$/,dc=new Set(["import"]),hc=new Set(["common","fixture","fixtures","helper","helpers","index","main","mock","mocks","setup","shared","spec","test","tests","types","util","utils"])});var Xe,rr=m(()=>{"use strict";c();Xe=class{isTestNode(e){return e.category==="test"||e.tags.some(r=>r.name==="test")}}});import{execFileSync as sr}from"child_process";function Zs(t,e){let r="",s=0;for(let n of t.split(`
20
- `)){if(n.startsWith("\0")){let[,l,p]=n.slice(1).split(" ");r=l??"",s=p?Number(p)*1e3:0;continue}if(n==="")continue;let o=n.split(" "),i=o[0];if(!i)continue;let a=i.startsWith("R")||i.startsWith("C")?o[2]:o[1];a&&e(a,r,s)}}function en(t){let e=new Map;try{let r=sr("git",["-C",t,"log","--since=90 days ago","--name-status","-M",`--format=${Ys}`],{encoding:"utf-8",stdio:["ignore","pipe","ignore"],maxBuffer:qs});Zs(r,(s,n,o)=>{let i=e.get(s);if(i){i.commitCount90d+=1;return}e.set(s,{commitCount90d:1,lastAuthor:n||void 0,lastCommitAt:o||void 0})})}catch{return e}try{let r=sr("git",["-C",t,"log","--name-status","-M",`--format=${Ys}`],{encoding:"utf-8",stdio:["ignore","pipe","ignore"],maxBuffer:qs});Zs(r,(s,n,o)=>{e.has(s)||e.set(s,{commitCount90d:0,lastAuthor:void 0,lastCommitAt:o||void 0})})}catch{}return e}var Ye,Ys,qs,nr=m(()=>{"use strict";c();Ye=class{getChangedFiles(){try{let r=[["diff","--name-only"],["diff","--cached","--name-only"],["ls-files","--others","--exclude-standard"]].flatMap(s=>{try{return sr("git",s,{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).split(`
21
- `).map(o=>o.trim()).filter(o=>o!=="")}catch{return[]}});return Array.from(new Set(r))}catch(e){return console.error("Error getting git diff:",e),[]}}},Ys="%x00%H%x09%ae%x09%at",qs=256*1024*1024});import qe from"fs";import xc from"path";import{load as tn}from"js-yaml";function rn(t){let e=t.lastIndexOf("@");return e>0?t.substring(0,e):t}function Sc(t){return t.replace(/:$/,"").split(",").map(e=>{let r=e.trim();return r.startsWith('"')&&(r=r.slice(1)),r.endsWith('"')&&(r=r.slice(0,-1)),rn(r)}).filter(Boolean)}function bc(t,e){let r=t.startsWith("/")?t.slice(1):t,s=r.lastIndexOf("@");return s>0?{name:r.substring(0,s),version:e||r.substring(s+1)}:{name:r,version:e}}function Cc(t){try{let e=tn(t),r={dependencies:{}};for(let[s,n]of Object.entries(e))if(!(s==="__metadata"||!n?.version))for(let o of s.split(", ")){let i=rn(o);i&&(r.dependencies[i]={version:n.version,...n.dependencies!==void 0&&{dependencies:n.dependencies}})}return r}catch{return null}}function vc(t){let e={dependencies:{}};for(let r of t.split(/\n\n+/)){let s=r.split(`
22
- `).filter(l=>l.trim().length>0&&!l.trim().startsWith("#"));if(s.length<2)continue;let n=s[0];if(!n||n.startsWith(" "))continue;let o=Sc(n);if(o.length===0)continue;let a=s.find(l=>l.trim().startsWith('version "'))?.match(/version "(.*?)"/)?.[1]??"";for(let l of o)e.dependencies[l]={version:a}}return e}function kc(t){let e=qe.readFileSync(t,"utf-8"),r=JSON.parse(e),s={dependencies:{}};if(r.packages)for(let[n,o]of Object.entries(r.packages)){if(!n.startsWith("node_modules/"))continue;let i=n.replace("node_modules/","");i.includes("node_modules/")||(s.dependencies[i]={version:o.version,...o.dependencies!==void 0&&{dependencies:o.dependencies}})}else if(r.dependencies)for(let[n,o]of Object.entries(r.dependencies))s.dependencies[n]={version:o.version,...o.dependencies!==void 0&&{dependencies:o.dependencies}};return s}function Ec(t){let e=qe.readFileSync(t,"utf-8");if(e.includes("__metadata:")){let r=Cc(e);if(r!==null)return r}return vc(e)}function wc(t){let e=qe.readFileSync(t,"utf-8"),r={dependencies:{}};try{let s=tn(e);if(s.packages)for(let[n,o]of Object.entries(s.packages)){let{name:i,version:a}=bc(n,o.version);i&&(r.dependencies[i]={version:a,...o.dependencies!==void 0&&{dependencies:o.dependencies}})}if(s.dependencies)for(let[n,o]of Object.entries(s.dependencies)){if(r.dependencies[n])continue;let i=typeof o=="string"?o:o.version;r.dependencies[n]={version:i||""}}}catch{}return r}function sn(t){let e=[["package-lock.json",kc],["yarn.lock",Ec],["pnpm-lock.yaml",wc]];for(let[r,s]of e){let n=xc.join(t,r);if(qe.existsSync(n))return s(n)}return null}var nn=m(()=>{"use strict";c()});import on from"path";function R(t){switch(on.extname(t).toLowerCase()){case".js":case".jsx":case".mjs":case".cjs":return"javascript";case".ts":case".tsx":return"typescript";case".css":return"css";case".scss":case".sass":return"scss";case".less":return"less";case".styl":return"stylus";case".coffee":return"coffeescript";case".ls":return"livescript";case".lua":return"lua";case".py":return"python";case".go":return"go";case".java":case".cpp":case".cc":case".cxx":case".c":return"unknown";case".feature":return"gherkin";case".md":case".mdx":return"markdown";default:return"unknown"}}function N(t){let e=on.extname(t).toLowerCase();return[".css",".scss",".sass",".less",".styl"].includes(e)}var O=m(()=>{"use strict";c()});import Fc from"coffeescript";function Pc(t){let e=new Set,r=/@tag\s+([a-zA-Z0-9_-]+)/g,s=r.exec(t);for(;s!==null;)s[1]&&e.add(s[1]),s=r.exec(t);return e}function Tc(t,e){let r=t.toLowerCase();return r.includes(".test.")||r.includes(".spec.")||e.has("test")?"test":"logic"}function Nc(t,e){let r=e.source?.value;return r?{fromPath:t,toPath:"",rawSpecifier:r,isStyle:N(r),type:"static"}:null}function Ic(t,e){let r=e.variable?.base?.value==="require",s=e.args?.[0]?.base?.value;return!r||!s?null:{fromPath:t,toPath:"",rawSpecifier:s,isStyle:N(s),type:"require"}}function Mc(t,e,r){let s=e.constructor?.name;if(s==="ImportDeclaration"){let n=Nc(t,e);n&&r.push(n)}else if(s==="Call"){let n=Ic(t,e);n&&r.push(n)}}function or(t,e,r){if(!(!e||typeof e!="object")){Mc(t,e,r);for(let s in e){if(s==="locationData")continue;let n=e[s];if(!(!n||typeof n!="object"))if(Array.isArray(n))for(let o of n)or(t,o,r);else or(t,n,r)}}}function an(t,e){let r=Pc(e),s=Tc(t,r),n=[];try{or(t,Fc.nodes(e),n)}catch{}return{imports:n,exports:[],tags:Array.from(r).map(o=>({name:o,kind:"comment-marker"})),category:s}}var cn=m(()=>{"use strict";c();O()});import{AstBuilder as Ac,GherkinClassicTokenMatcher as Dc,Parser as Rc}from"@cucumber/gherkin";import{IdGenerator as Oc}from"@cucumber/messages";function ir(t,e){let r=new Set;try{let s=new Ac(Gc),n=new Dc,i=new Rc(s,n).parse(e);i.feature&&(i.feature.tags.forEach(a=>{r.add(a.name.startsWith("@")?a.name.slice(1):a.name)}),i.feature.children.forEach(a=>{a.scenario&&(a.scenario.tags.forEach(l=>{r.add(l.name.startsWith("@")?l.name.slice(1):l.name)}),a.scenario.examples.forEach(l=>{l.tags.forEach(p=>{r.add(p.name.startsWith("@")?p.name.slice(1):p.name)})})),a.rule&&a.rule.children.forEach(l=>{l.scenario&&l.scenario.tags.forEach(p=>{r.add(p.name.startsWith("@")?p.name.slice(1):p.name)})})}))}catch(s){console.warn(`[GherkinParser] Failed to parse ${t}:`,s)}return{imports:[],exports:[],tags:Array.from(r).map(s=>({name:s,kind:"comment-marker"})),category:"test"}}var Gc,ln=m(()=>{"use strict";c();fe();Gc=Oc.uuid();H("gherkin",ir)});import Lc from"path";import{parser as jc}from"@lezer/go";function fn(t,e){let r=[],s=new Map,n=new Set,o=new Set,a=jc.parse(e).cursor();do switch(a.name){case"LineComment":{let d=e.slice(a.from,a.to),S=d.match(_c);S?.[1]&&n.add(S[1]);let v=d.match(Wc);v&&pn(v[1],o);let L=d.match(zc);L&&pn(L[1],o);break}case"ImportSpec":{let d=a.node.getChild("String");if(d){let v=e.slice(d.from,d.to).slice(1,-1);r.push({fromPath:t,toPath:"",rawSpecifier:v,isExternal:!0,isStyle:!1,type:"static"})}break}case"FunctionDecl":case"TypeDecl":case"VarDecl":case"ConstDecl":{let d=a.node.getChild("DefName")??a.node.getChild("TypeSpec")?.getChild("DefName")??a.node.getChild("VarSpec")?.getChild("DefName")??a.node.getChild("ConstSpec")?.getChild("DefName");if(d){let S=e.slice(d.from,d.to);S!=="_"&&/^[A-Z]/.test(S)&&!s.has(S)&&s.set(S,{name:S})}break}}while(a.next());let l=r.some(d=>d.rawSpecifier==="testing"),p=Lc.basename(t).endsWith("_test.go")||n.has("test")||l?"test":"logic",h=new Set([...n,...o]);return{imports:r,exports:Array.from(s.values()),tags:Array.from(h).map(d=>({name:d,kind:"comment-marker"})),category:p}}function pn(t,e){for(let r of t.split(/[\s,&|!()]+/)){let s=r.trim();s&&s!=="ignore"&&e.add(s)}}var _c,Wc,zc,mn=m(()=>{"use strict";c();_c=/\/\/\s*@tag\s+([a-zA-Z0-9_-]+)/,Wc=/^\/\/go:build\s+(.+)$/,zc=/^\/\/\s*\+build\s+(.+)$/});function te(t){return t.startsWith("'")||t.startsWith('"')?t.slice(1,-1):t}var ar=m(()=>{"use strict";c()});import $c from"livescript";function Uc(t){let e=new Set,r=/@tag\s+([a-zA-Z0-9_-]+)/g,s=r.exec(t);for(;s!==null;)s[1]&&e.add(s[1]),s=r.exec(t);return e}function Bc(t,e){let r=t.toLowerCase();return r.includes(".test.")||r.includes(".spec.")||e.has("test")?"test":"logic"}function Kc(t,e){let r=t.constructor?.name||t.type;if(r==="Import"){let s=t.right?.value;if(typeof s=="string"){let n=te(s);return{fromPath:e,toPath:"",rawSpecifier:n,isStyle:N(n),type:"static"}}}if(r==="Chain"&&t.head?.value==="require"){let s=t.tails?.[0];if(s?.constructor?.name==="Call"||s?.type==="Call"){let n=s.args?.[0]?.value;if(typeof n=="string"){let o=te(n);return{fromPath:e,toPath:"",rawSpecifier:o,isStyle:N(o),type:"require"}}}}return null}function cr(t,e){if(!t||typeof t!="object")return[];let r=[],s=Kc(t,e);s&&r.push(s);for(let n in t){if(Jc.has(n))continue;let o=t[n];if(!(!o||typeof o!="object"))if(Array.isArray(o))for(let i of o)r.push(...cr(i,e));else r.push(...cr(o,e))}return r}function un(t,e){let r=Uc(e),s=Bc(t,r),n=[];try{n=cr($c.ast(e),t)}catch{}return{imports:n,exports:[],tags:Array.from(r).map(o=>({name:o,kind:"comment-marker"})),category:s}}var Jc,gn=m(()=>{"use strict";c();O();ar();Jc=new Set(["first_line","first_column","last_line","last_column","line","column"])});import Hc from"luaparse";function Qc(t){let e=new Set,r=/@tag\s+([a-zA-Z0-9_-]+)/g,s=r.exec(t);for(;s!==null;)s[1]&&e.add(s[1]),s=r.exec(t);return e}function Vc(t,e){let r=t.toLowerCase();return r.includes(".test.")||r.includes(".spec.")||e.has("test")?"test":"logic"}function Xc(t,e){let r=[];function s(n){if(!(!n||typeof n!="object")){if((n.type==="CallExpression"||n.type==="StringCallExpression")&&n.base?.type==="Identifier"&&n.base?.name==="require"){let o;if(n.type==="CallExpression"){let i=n.arguments?.[0];i?.type==="StringLiteral"&&(o=te(i.raw))}else if(n.type==="StringCallExpression"){let i=n.argument;i?.type==="StringLiteral"&&(o=te(i.raw))}o&&r.push({fromPath:e,toPath:"",rawSpecifier:o,isStyle:N(o),type:"require"})}for(let o in n){if(o==="loc")continue;let i=n[o];if(i&&typeof i=="object")if(Array.isArray(i))for(let a of i)s(a);else s(i)}}}return s(t),r}function dn(t,e){let r=Qc(e),s=Vc(t,r),n=[];try{let o=Hc.parse(e);n=Xc(o,t)}catch{}return{imports:n,exports:[],tags:Array.from(r).map(o=>({name:o,kind:"comment-marker"})),category:s}}var hn=m(()=>{"use strict";c();O();ar()});async function el(){return yn??=(async()=>{let{unified:t}=await import("unified"),e=(await import("remark-parse")).default;return t().use(e)})(),yn}function tl(t){let e=t.trim();return e.length===0||e.startsWith("#")||Yc.some(r=>e.startsWith(r))}function rl(t,e){let r=t.match(Zc);return r?r.map(s=>({fromPath:e,toPath:"",rawSpecifier:s,isStyle:!1,type:"static"})):[]}function xn(t,e,r){if(t.type==="link"&&typeof t.url=="string"&&!tl(t.url)&&r.push({fromPath:e,toPath:"",rawSpecifier:t.url,isStyle:!1,type:"static"}),(t.type==="code"||t.type==="inlineCode")&&typeof t.value=="string"&&r.push(...rl(t.value,e)),Array.isArray(t.children))for(let s of t.children)xn(s,e,r)}async function Sn(t,e){let s=(await el()).parse(e),n=[];xn(s,t,n);let o=new Set;return{imports:n.filter(a=>o.has(a.rawSpecifier)?!1:(o.add(a.rawSpecifier),!0)),exports:[],tags:[],category:"other"}}var Yc,qc,Zc,yn,bn=m(()=>{"use strict";c();Yc=["http://","https://","mailto:","//"],qc="ts|tsx|js|jsx|mjs|cjs|py|go|lua|css|scss|less|styl|coffee|ls|feature|md|mdx|json",Zc=new RegExp(`(?:\\.{1,2}/)?[\\w.-]+(?:/[\\w.-]+)*\\.(?:${qc})\\b`,"g")});import sl from"path";import{parser as nl}from"@lezer/python";function Cn(t,e){let r=[],s=[],n=new Set,o=sl.basename(t).toLowerCase(),a=nl.parse(e).cursor();do switch(a.name){case"Comment":{let p=e.slice(a.from,a.to).match(/#\s*@tag\s+([a-zA-Z0-9_-]+)/);p?.[1]&&n.add(p[1]);break}case"ImportStatement":{for(let p of il(a.node,e,t))r.push(p);break}case"FunctionDefinition":case"ClassDefinition":{let p=a.node.parent;if(p?.name==="Script"||p?.name==="DecoratedStatement"&&p.parent?.name==="Script"){let d=a.node.getChild("VariableName");d&&s.push({name:e.slice(d.from,d.to)})}break}case"AssignStatement":{if(a.node.parent?.name==="Script"){let p=a.node.firstChild;p?.name==="VariableName"&&s.push({name:e.slice(p.from,p.to)})}break}}while(a.next());let l=pl(o,r,n);return l==="test"&&n.add("test"),{imports:r,exports:s,tags:Array.from(n).map(p=>({name:p,kind:"comment-marker"})),category:l}}function il(t,e,r){let s=t.firstChild;return s?s.name==="from"?al(t,e,r):cl(t,e,r):[]}function al(t,e,r){let s=t.firstChild;if(!s)return[];let n=s.nextSibling;for(;n&&n.name!=="import";)n=n.nextSibling;if(!n)return[];let o=e.slice(s.to,n.from).trim(),i=ll(n.nextSibling,e);if(!i.length)return[];let a=0;for(;a<o.length&&o[a]===".";)a++;let l=o.slice(a);if(a===0)return[ue(r,o,i,!0)];let p=a===1?"./":"../".repeat(a-1);return l?[ue(r,p+l.replace(/\./g,"/"),i,!1)]:i[0]==="*"?[ue(r,p.slice(0,-1),["*"],!1)]:i.map(h=>ue(r,p+h,[h],!1))}function cl(t,e,r){let s=[],n=t.firstChild?.nextSibling??null;for(;n;){if(n.name==="VariableName"){let o=e.slice(n.from,n.to);for(;n.nextSibling?.name==="."&&n.nextSibling.nextSibling?.name==="VariableName";)n=n.nextSibling.nextSibling,o+=`.${e.slice(n.from,n.to)}`;n.nextSibling?.name==="as"&&(n=n.nextSibling.nextSibling??n.nextSibling),s.push(ue(r,o,["*"],!0))}n=n.nextSibling}return s}function ll(t,e){let r=[],s=t;for(;s;)s.name==="*"?r.push("*"):s.name==="VariableName"&&(r.push(e.slice(s.from,s.to)),s.nextSibling?.name==="as"&&(s=s.nextSibling.nextSibling??s.nextSibling)),s=s.nextSibling;return r}function ue(t,e,r,s){return{fromPath:t,toPath:"",rawSpecifier:e,isStyle:!1,isExternal:s,type:"static",symbols:r.length>0?r:void 0}}function pl(t,e,r){return t.startsWith("test_")||t.endsWith("_test.py")?"test":t==="conftest.py"||t==="setup.py"?"config":r.has("test")||e.some(s=>ol.has(s.rawSpecifier))?"test":"logic"}var ol,vn=m(()=>{"use strict";c();ol=new Set(["pytest","unittest","nose","hypothesis"])});import y from"typescript";function fl(t){let e=1;function r(s){switch(s.kind){case y.SyntaxKind.IfStatement:case y.SyntaxKind.ConditionalExpression:case y.SyntaxKind.ForStatement:case y.SyntaxKind.ForInStatement:case y.SyntaxKind.ForOfStatement:case y.SyntaxKind.WhileStatement:case y.SyntaxKind.DoStatement:case y.SyntaxKind.CatchClause:case y.SyntaxKind.CaseClause:e++;break;case y.SyntaxKind.BinaryExpression:{let n=s.operatorToken.kind;(n===y.SyntaxKind.AmpersandAmpersandToken||n===y.SyntaxKind.BarBarToken||n===y.SyntaxKind.QuestionQuestionToken)&&e++;break}}y.forEachChild(s,r)}return r(t),e}function ml(t){let e=0;function r(s,n,o){if(y.isIfStatement(s)){e+=o?1:1+n;let a=o?n:n+1;r(s.expression,a,!1),r(s.thenStatement,a,!1),s.elseStatement&&(y.isIfStatement(s.elseStatement)?r(s.elseStatement,n,!0):(e+=1,r(s.elseStatement,n+1,!1)));return}if(y.isForStatement(s)||y.isForInStatement(s)||y.isForOfStatement(s)||y.isWhileStatement(s)||y.isDoStatement(s)||y.isSwitchStatement(s)){e+=1+n,y.forEachChild(s,a=>r(a,n+1,!1));return}if(y.isCatchClause(s)){e+=1+n,y.forEachChild(s,a=>r(a,n,!1));return}if(y.isConditionalExpression(s)&&(e+=1),y.isBinaryExpression(s)){let a=s.operatorToken.kind;(a===y.SyntaxKind.AmpersandAmpersandToken||a===y.SyntaxKind.BarBarToken||a===y.SyntaxKind.QuestionQuestionToken)&&(e+=1)}if(n>0&&(y.isFunctionDeclaration(s)||y.isFunctionExpression(s)||y.isArrowFunction(s))){e+=1+n,y.forEachChild(s,a=>r(a,n+1,!1));return}y.forEachChild(s,a=>r(a,n,!1))}return r(t,0,!1),e}function lr(t){return{complexity:fl(t),cognitiveComplexity:ml(t)}}var kn=m(()=>{"use strict";c()});import C from"typescript";function En(t,e){ul(t,e),dl(t,e),hl(t,e),yl(t,e)}function ul(t,e){if((C.isFunctionDeclaration(t)||C.isVariableDeclaration(t))&&t.name&&C.isIdentifier(t.name)&&gl(t)){let r;if(C.isFunctionDeclaration(t))r="function";else{let s=t.initializer;r=s&&(C.isArrowFunction(s)||C.isFunctionExpression(s))?"function":"variable"}e.tags.add({name:t.name.text,kind:r})}}function gl(t){if(C.isFunctionDeclaration(t))return C.isSourceFile(t.parent);let e=t.parent?.parent;return!!e&&C.isSourceFile(e.parent)}function dl(t,e){if(!C.isStringLiteral(t))return;let r=t.text.match(/@[\w-]+/g);if(r)for(let s of r)e.tags.add({name:s.substring(1),kind:"comment-marker"})}function hl(t,e){if(!C.isSourceFile(t))return;let r=/@tag\s+([a-zA-Z0-9_-]+)/g,s=t.getFullText(),n=r.exec(s);for(;n!==null;)n[1]&&e.tags.add({name:n[1],kind:"comment-marker"}),n=r.exec(s)}function yl(t,e){if(C.isCallExpression(t)&&xl(t.expression))for(let r of t.arguments)C.isObjectLiteralExpression(r)&&Sl(r,e)}function xl(t){return C.isIdentifier(t)?pr.has(t.text):!!(C.isPropertyAccessExpression(t)&&(pr.has(t.name.text)||C.isIdentifier(t.expression)&&pr.has(t.expression.text)))}function Sl(t,e){for(let r of t.properties){if(!C.isPropertyAssignment(r)||!C.isIdentifier(r.name)||r.name.text!=="tags"&&r.name.text!=="tag")continue;let{initializer:s}=r,n=C.isArrayLiteralExpression(s)?s.elements.filter(C.isStringLiteral):r.name.text==="tag"&&C.isStringLiteral(s)?[s]:[];for(let o of n)e.tags.add({name:o.text.replace(/^@/,""),kind:"comment-marker"})}}var pr,wn=m(()=>{"use strict";c();pr=new Set(["test","describe","it"])});import Fn from"path";import g from"typescript";function fr(t,e,r){let s=[],n=new Map,o=new Set,i=g.createSourceFile(t,e,g.ScriptTarget.Latest,!0,r==="typescript"?g.ScriptKind.TSX:g.ScriptKind.JSX),a={filePath:t,imports:s,exports:n,tags:o,rawCallEdges:[],sourceFile:i,hasUI:!1,hasTypesOnly:!0,totalStatements:0,exportStatements:0},l=Lr=>{kl(Lr,a),g.forEachChild(Lr,l)};l(i);let p=Rl(t,a);(p==="test"||p==="barrel")&&o.add({name:p,kind:"comment-marker"}),p!=="test"&&Ol(a,i);let h=i.statements[0],d=h?Tn(h):void 0,{complexity:S,cognitiveComplexity:v}=lr(i),L=bl(i);return{imports:s,exports:Array.from(n.values()),tags:Array.from(o),category:p,rawCallEdges:a.rawCallEdges??[],complexity:S,cognitiveComplexity:v,...L.length>0?{functions:L}:{},...d!==void 0?{description:d}:{}}}function bl(t){let e=[],r=(n,o)=>{let{complexity:i,cognitiveComplexity:a}=lr(o),l=t.getLineAndCharacterOfPosition(o.getStart(t)).line+1;e.push({name:n,line:l,complexity:i,cognitiveComplexity:a})},s=(n,o)=>{if(g.isFunctionDeclaration(n)&&n.name&&n.body?r(n.name.text,n):g.isVariableDeclaration(n)&&g.isIdentifier(n.name)&&n.initializer&&(g.isArrowFunction(n.initializer)||g.isFunctionExpression(n.initializer))?r(n.name.text,n.initializer):o&&g.isMethodDeclaration(n)&&g.isIdentifier(n.name)&&n.body?r(`${o}.${n.name.text}`,n):o&&g.isConstructorDeclaration(n)&&n.body?r(`${o}.constructor`,n):o&&g.isGetAccessorDeclaration(n)&&g.isIdentifier(n.name)&&n.body?r(`${o}.get ${n.name.text}`,n):o&&g.isSetAccessorDeclaration(n)&&g.isIdentifier(n.name)&&n.body&&r(`${o}.set ${n.name.text}`,n),g.isClassDeclaration(n)&&n.name){let i=n.name.text;g.forEachChild(n,a=>s(a,i));return}g.forEachChild(n,i=>s(i,o))};return s(t,void 0),e}function Pn(t,e,r,s){let n={name:t},o=Tn(r);o!==void 0&&(n.doc=o);let i=Cl(e);i!==void 0&&(n.flags=i);let a=vl(e,s);return a!==void 0&&(n.signature=a),n}function Tn(t){let e=g.getJSDocCommentsAndTags(t);for(let r of e)if(g.isJSDoc(r)&&r.comment)return g.getTextOfJSDocComment(r.comment)||void 0}function Cl(t){let e=new Set(["deprecated","internal","public","alpha","beta"]),r=g.getJSDocTags(t).map(s=>s.tagName.text).filter(s=>e.has(s));return r.length>0?r:void 0}function vl(t,e){let r=g.createPrinter({removeComments:!0}),s=n=>r.printNode(g.EmitHint.Unspecified,n,e);if(g.isFunctionDeclaration(t)||g.isMethodDeclaration(t)){let n=t.parameters.map(s).join(", "),o=t.type?s(t.type):"void";return`${t.typeParameters?`<${t.typeParameters.map(a=>a.name.text).join(", ")}>`:""}(${n}) => ${o}`}if(g.isVariableDeclaration(t)){if(t.type)return s(t.type);if(t.initializer&&(g.isArrowFunction(t.initializer)||g.isFunctionExpression(t.initializer))){let n=t.initializer,o=n.parameters.map(s).join(", "),i=n.type?s(n.type):"unknown";return`(${o}) => ${i}`}return}if(g.isClassDeclaration(t)&&t.name)return`class ${t.name.text}`;if(g.isInterfaceDeclaration(t))return`interface ${t.name.text}`;if(g.isTypeAliasDeclaration(t))return s(t.type);if(g.isEnumDeclaration(t))return`enum ${t.name.text}`}function kl(t,e){El(t,e),wl(t,e),Pl(t,e),Tl(t,e),Dl(t,e),En(t,e)}function El(t,e){if(!g.isSourceFile(t))return;let r=t.statements.filter(s=>!g.isEmptyStatement(s));e.totalStatements=r.length,e.exportStatements=r.filter(s=>g.isExportDeclaration(s)||g.isExportAssignment(s)||mr(s)).length}function wl(t,e){if(g.isJsxElement(t)||g.isJsxSelfClosingElement(t)||g.isJsxFragment(t)){e.hasUI=!0,e.hasTypesOnly=!1;return}if(g.isFunctionDeclaration(t)||g.isMethodDeclaration(t)||g.isArrowFunction(t)||g.isClassDeclaration(t)||g.isVariableStatement(t)||g.isEnumDeclaration(t)){e.hasTypesOnly=!1;return}g.isExportDeclaration(t)&&!Fl(t)&&(e.hasTypesOnly=!1)}function Fl(t){return t.isTypeOnly?!0:!t.exportClause||!g.isNamedExports(t.exportClause)?!1:t.exportClause.elements.every(e=>e.isTypeOnly)}function Pl(t,e){if(!g.isImportDeclaration(t)||!t.moduleSpecifier||!g.isStringLiteral(t.moduleSpecifier))return;let r=[];if(t.importClause&&(t.importClause.name&&r.push("default"),t.importClause.namedBindings))if(g.isNamedImports(t.importClause.namedBindings))for(let n of t.importClause.namedBindings.elements)r.push(n.name.text);else g.isNamespaceImport(t.importClause.namedBindings)&&r.push("*");let s=r.length>0?"static":"side-effect";e.imports.push({fromPath:e.filePath,toPath:"",rawSpecifier:t.moduleSpecifier.text,isStyle:N(t.moduleSpecifier.text),type:s,symbols:r.length>0?r:void 0})}function Tl(t,e){g.isExportDeclaration(t)?Nl(t,e):g.isExportAssignment(t)?e.exports.set("default",{name:"default"}):mr(t)&&Al(t,e)}function Nl(t,e){if(t.moduleSpecifier&&g.isStringLiteral(t.moduleSpecifier))Il(t,t.moduleSpecifier.text,e);else if(t.exportClause&&g.isNamedExports(t.exportClause))for(let r of t.exportClause.elements){let s=r.name.text;e.exports.set(s,{name:s})}}function Il(t,e,r){let s=Ml(t),n={fromPath:r.filePath,toPath:"",rawSpecifier:e,isStyle:N(e),type:"re-export"};s.length>0&&(n.symbols=s),r.imports.push(n)}function Ml(t){return t.exportClause?g.isNamedExports(t.exportClause)?t.exportClause.elements.map(e=>e.name.text):[]:["*"]}function Al(t,e){if((g.isFunctionDeclaration(t)||g.isClassDeclaration(t)||g.isInterfaceDeclaration(t)||g.isTypeAliasDeclaration(t)||g.isEnumDeclaration(t))&&t.name){let s=t.name.text;e.exports.set(s,Pn(s,t,t,e.sourceFile));return}if(g.isVariableStatement(t)){for(let s of t.declarationList.declarations)if(g.isIdentifier(s.name)){let n=s.name.text;e.exports.set(n,Pn(n,s,t,e.sourceFile))}}}function Dl(t,e){if(!g.isCallExpression(t))return;let r=t.arguments[0];!r||!g.isStringLiteral(r)||(t.expression.kind===g.SyntaxKind.ImportKeyword?e.imports.push({fromPath:e.filePath,toPath:"",rawSpecifier:r.text,isStyle:N(r.text),type:"dynamic"}):g.isIdentifier(t.expression)&&t.expression.text==="require"&&e.imports.push({fromPath:e.filePath,toPath:"",rawSpecifier:r.text,isStyle:N(r.text),type:"require"}))}function Rl(t,e){let r=Fn.basename(t).toLowerCase(),s=Fn.extname(t).toLowerCase();return se().some(o=>r.includes(o))?"test":_r(r)?"config":e.imports.some(o=>at().some(i=>o.rawSpecifier.includes(i)))?"test":s===".tsx"||s===".jsx"||e.hasUI?"ui":e.hasTypesOnly&&e.totalStatements>0?"type-only":e.totalStatements>0&&e.exportStatements/e.totalStatements>lt()?"barrel":"logic"}function mr(t){return g.canHaveModifiers(t)&&g.getModifiers(t)?.some(e=>e.kind===g.SyntaxKind.ExportKeyword)===!0}function Ol(t,e){let r=t.rawCallEdges??[];t.rawCallEdges=r;let s=new Map;for(let n of e.statements){if(!g.isImportDeclaration(n)||!g.isStringLiteral(n.moduleSpecifier))continue;let o=n.moduleSpecifier.text,i=n.importClause;if(i&&(i.name&&s.set(i.name.text,o),i.namedBindings&&g.isNamedImports(i.namedBindings)))for(let a of i.namedBindings.elements)s.set(a.name.text,o)}if(s.size!==0)for(let n of e.statements){let o=Ll(n);if(o){let i=jl(n);i&&Ze(i,o,s,r);continue}g.isClassDeclaration(n)&&n.name&&Gl(n,s,r)}}function Gl(t,e,r){let s=t.name.text;for(let n of t.members)g.isMethodDeclaration(n)&&n.body&&g.isIdentifier(n.name)?Ze(n.body,`${s}.${n.name.text}`,e,r):g.isConstructorDeclaration(n)&&n.body&&Ze(n.body,`${s}.constructor`,e,r)}function Ll(t){if(mr(t)){if(g.isFunctionDeclaration(t)&&t.name)return t.name.text;if(g.isVariableStatement(t)){for(let e of t.declarationList.declarations)if(g.isIdentifier(e.name)&&e.initializer&&(g.isArrowFunction(e.initializer)||g.isFunctionExpression(e.initializer)))return e.name.text}}}function jl(t){if(g.isFunctionDeclaration(t))return t.body;if(g.isVariableStatement(t)){for(let e of t.declarationList.declarations)if(e.initializer&&(g.isArrowFunction(e.initializer)||g.isFunctionExpression(e.initializer)))return e.initializer}}function Ze(t,e,r,s){if(g.isCallExpression(t)&&g.isIdentifier(t.expression)){let n=t.expression.text,o=r.get(n);o&&!s.some(i=>i.from===e&&i.to===n&&i.toSpecifier===o)&&s.push({from:e,to:n,toSpecifier:o})}g.forEachChild(t,n=>Ze(n,e,r,s))}var Nn=m(()=>{"use strict";c();U();kn();O();wn()});function et(t,e){if(e.length===0)return"ui";let r=!1;return t.walk(s=>{if(s.type==="rule")return r=!0,!1}),r?"ui":"barrel"}var In=m(()=>{"use strict";c()});import An from"postcss";import*as _l from"postcss-less";function Mn(t){return t.startsWith("~")||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//")||t.startsWith("data:")}function zl(t){let e=t.trim();return e.length>0&&!e.startsWith("http://")&&!e.startsWith("https://")&&!e.startsWith("//")&&!e.startsWith("data:")&&!e.startsWith("#")}function $l(t,e){let r=t.match(/^\(([^)]+)\)\s+['"]([^'"]+)['"]/);if(r){let o=r[1]?.trim()??"",i=r[2]??"";if(!i)return null;let a=Dn.has(o)?"side-effect":"static";return{fromPath:e,toPath:"",rawSpecifier:i,isStyle:!0,type:a,...Mn(i)?{isExternal:!0}:{}}}let s=t.match(/^url\(['"]?([^'")]+)['"]?\)/),n=s?s[1]?.trim()??"":t.match(/^['"]([^'"]+)['"]/)?.[1]??"";return n?{fromPath:e,toPath:"",rawSpecifier:n,isStyle:!0,type:"static",...Mn(n)?{isExternal:!0}:{}}:null}function Ul(t,e){let r=[],s=/url\(['"]?([^'")]+)['"]?\)/g,n=s.exec(t);for(;n!==null;){let o=n[1]?.trim()??"";zl(o)&&r.push({fromPath:e,toPath:"",rawSpecifier:o,isStyle:!0,type:"static"}),n=s.exec(t)}return r}function Rn(t,e){let r=[];return t.walk(s=>{if(s.type==="atrule"&&s.name==="import"){let n=$l(s.params,e);n&&r.push(n)}s.type==="decl"&&r.push(...Ul(s.value,e))}),r}function Bl(t){return t.replace(/(?<!:)\/\/.*/g,"")}function Jl(t,e){let r=[],s=/@import\s+(?:\(([^)]+)\)\s+)?['"]([^'"]+)['"]/g,n=s.exec(t);for(;n!==null;){let o=n[1]?.trim()??"",i=n[2]??"";if(i){let a=Dn.has(o)?"side-effect":"static";r.push({fromPath:e,toPath:"",rawSpecifier:i,isStyle:!0,type:a})}n=s.exec(t)}return r}function On(t,e){let r=An.parse(Bl(t));return{imports:Rn(r,e),root:r}}function Gn(t,e){try{let r=Wl.parse(t);return{imports:Rn(r,e),root:r}}catch{return{imports:Jl(t,e),root:An.parse("")}}}var Wl,Dn,Ln=m(()=>{"use strict";c();Wl=_l,Dn=new Set(["reference","inline"])});import{parse as Kl}from"postcss-scss";function Hl(t){return!!(t.startsWith("sass:")||t.startsWith("~")||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//")||!t.startsWith(".")&&!t.startsWith("/")&&!t.startsWith("_"))}function Ql(t){let e=t.match(/^['"]([^'"]+)['"]/);if(!e?.[1])return{specifier:""};let r=e[1],n=t.match(/\bas\s+(\S+)/)?.[1];return n!==void 0?{specifier:r,alias:n}:{specifier:r}}function jn(t,e){let r=Kl(t),s=[];return r.walk(n=>{if(n.type!=="atrule")return;let{name:o,params:i}=n;if(o!=="import"&&o!=="use"&&o!=="forward")return;let{specifier:a,alias:l}=Ql(i);if(!a)return;let p={fromPath:e,toPath:"",rawSpecifier:a,isStyle:!0,type:o==="forward"?"re-export":"static",...Hl(a)?{isExternal:!0}:{}};l&&(p.symbols=[l]),s.push(p)}),{imports:s,root:r}}var _n=m(()=>{"use strict";c()});function Wn(t,e){let r=[],s=/@require\s+['"]([^'"]+)['"]/g,n=s.exec(t);for(;n!==null;){let i=n[1];i&&r.push({fromPath:e,toPath:"",rawSpecifier:i,isStyle:!0,type:"require"}),n=s.exec(t)}let o=/(?<!@)(?:import|require)\s*\(?\s*['"]([^'"]+)['"]/g;for(n=o.exec(t);n!==null;){let i=n[1];i&&r.push({fromPath:e,toPath:"",rawSpecifier:i,isStyle:!0,type:"static"}),n=o.exec(t)}return r}function zn(t,e){if(e.length===0)return"ui";try{let r=it("stylus");return new r.Parser(t).parse().nodes.some(o=>o.constructor.name!=="Import")?"ui":"barrel"}catch{return t.replace(/^\s*@?(?:require|import)\b.*/gm,"").trim().length>0?"ui":"barrel"}}var $n=m(()=>{"use strict";c()});function ge(t,e){let r=R(t);if(r==="stylus"){let o=Wn(e,t);return{imports:o,exports:[],tags:[],category:zn(e,o)}}if(r==="scss"){let{imports:o,root:i}=jn(e,t);return{imports:o,exports:[],tags:[],category:et(i,o)}}if(r==="less"){let{imports:o,root:i}=Gn(e,t);return{imports:o,exports:[],tags:[],category:et(i,o)}}let{imports:s,root:n}=On(e,t);return{imports:s,exports:[],tags:[],category:et(n,s)}}var Un=m(()=>{"use strict";c();O();In();Ln();_n();$n()});async function Bn(t,e){let r=R(t),s=ks(r);return s?s(t,e):{imports:[],exports:[],tags:[],category:"other"}}var Jn=m(()=>{"use strict";c();O();cn();ln();mn();gn();hn();bn();vn();Nn();fe();Un();U();O();fe();for(let[t,e]of[["javascript",(r,s)=>fr(r,s,"javascript")],["typescript",(r,s)=>fr(r,s,"typescript")],["css",ge],["scss",ge],["less",ge],["stylus",ge],["coffeescript",an],["livescript",un],["lua",dn],["python",Cn],["go",fn],["gherkin",ir],["markdown",Sn]])H(t,e)});import Kn from"path";function Qn(t,e){for(let r of t.values()){let s=e.get(r.path);s!==void 0&&(r.coveragePct=s)}}function Vn(t,e){for(let r of t)if(r.isExternal){let s=r.rawSpecifier.startsWith("@")?r.rawSpecifier.split("/").slice(0,2).join("/"):r.rawSpecifier.split("/")[0];s&&!e.some(n=>n.name===s)&&e.push({name:s,kind:"library"})}}function Xn(t){for(let e of t.values())if(e.category==="test")for(let r of e.imports){if(r.isExternal||!r.toPath)continue;let s=t.get(r.toPath);s&&(s.category!=="logic"&&s.category!=="barrel"||(s.testedBy??=[],s.testedBy.includes(e.path)||s.testedBy.push(e.path)))}}function Yn(t){for(let e of t.values())if(e.type==="markdown")for(let r of e.imports){if(r.isExternal||!r.toPath)continue;let s=t.get(r.toPath);!s||s===e||(s.documentedBy??=[],s.documentedBy.includes(e.path)||s.documentedBy.push(e.path),s.category==="logic"&&(s.lastCommitAt??0)>(e.lastCommitAt??0)&&(e.staleFor??=[],e.staleFor.includes(s.path)||e.staleFor.push(s.path)))}}function Hn(t){return Math.round(t*1e4)/1e4}function qn(t){for(let e of t.values()){let r=[];for(let s of e.imports){if(s.isExternal||!s.toPath)continue;let n=t.get(s.toPath);if(!n||n.exports.length===0)continue;let o;if(s.symbols===void 0){if(s.type==="side-effect")continue;o=1}else s.symbols.includes("*")?o=1:o=s.symbols.length/n.exports.length;s.exportUsageRatio=Hn(Math.min(1,o)),r.push(s.exportUsageRatio)}r.length>0&&(e.avgExportUsage=Hn(r.reduce((s,n)=>s+n,0)/r.length),e.maxExportUsage=Math.max(...r))}}function ur(t,e,r){e&&(t.some(s=>s.name===e&&s.kind===r)||t.push({name:e,kind:r}))}function Vl(t,e){let r=e.toPath,s=Kn.basename(r,Kn.extname(r)).replace(/\.(test|spec)$/,"");ur(t.tags,s,"import")}function Xl(t,e){if(!(!e.symbols||e.symbols.includes("*")))for(let r of e.symbols)ur(t.tags,r,"import")}function Yl(t,e,r){let s=r.get(e.toPath);if(!(!s||s.category==="test"))for(let n of s.tags)n.kind==="comment-marker"&&ur(t.tags,n.name,"comment-marker")}function Zn(t){for(let e of t.values())if(e.category==="test")for(let r of e.imports)!r.toPath||r.isExternal||(Vl(e,r),Xl(e,r),Yl(e,r,t))}var eo=m(()=>{"use strict";c()});import so from"fs";import re from"path";function ql(t,e){let r=t.split(`
23
- `),s=null,n=new Map,o=!1;for(let i of r){let a=i.trim();if(a.startsWith("module ")){s=a.slice(7).trim();continue}if(/^replace\s*\(/.test(a)){o=!0;continue}if(o&&a===")"){o=!1;continue}if(o&&a.includes("=>")){to(a,e,n);continue}!o&&/^replace\s+/.test(a)&&a.includes("=>")&&to(a.replace(/^replace\s+/,""),e,n)}return{mod:s,replaces:n}}function to(t,e,r){let[s,n]=t.split("=>").map(a=>a.trim());if(!s||!n)return;let o=s.split(/\s+/)[0];if(!n.startsWith(".")&&!n.startsWith("/"))return;let i=re.isAbsolute(n)?n:re.resolve(e,n);r.set(o,i)}function ro(t){let e;try{e=so.readdirSync(t,{withFileTypes:!0})}catch{return null}let r=e.filter(s=>s.isFile()&&s.name.endsWith(".go")&&!s.name.endsWith("_test.go")).map(s=>({path:re.join(t,s.name),isExternal:!1})).sort((s,n)=>s.path.localeCompare(n.path));return r.length>0?r:null}var de,no=m(()=>{"use strict";c();de=class{extensions=[".go"];goModCache=new Map;resolve(e,r,s,n){let{mod:o,replaces:i}=this.readGoMod(s);if(!o)return null;let a=this.applyReplace(r,i,s);if(a!==void 0)return ro(a);if(r!==o&&!r.startsWith(`${o}/`))return null;let l=r.slice(o.length).replace(/^\//,"");return l?ro(re.join(s,l)):null}readGoMod(e){let r=this.goModCache.get(e);if(r!==void 0)return r;let s={mod:null,replaces:new Map};try{let n=so.readFileSync(re.join(e,"go.mod"),"utf-8"),o=ql(n,e);return this.goModCache.set(e,o),o}catch{return this.goModCache.set(e,s),s}}applyReplace(e,r,s){for(let[n,o]of r){if(e===n)return o;if(e.startsWith(`${n}/`)){let i=e.slice(n.length+1);return re.join(o,i)}}}}});import Zl from"fs";import gr from"path";var he,oo=m(()=>{"use strict";c();he=class{extensions=[".lua"];resolve(e,r,s,n){let o=r.replace(/\./g,gr.sep),i=[s,gr.join(s,"lib")];for(let a of i){if(!Zl.existsSync(a))continue;let l=n(gr.join(a,"_dummy.lua"),o);if(l)return[l]}return null}}});import ep from"path";var ye,io=m(()=>{"use strict";c();ye=class{extensions=[".md",".mdx"];resolve(e,r,s,n){let o=n(ep.join(s,"_dummy"),`./${r}`);return o?[o]:null}}});import tp from"fs";import dr from"path";function ao(t){try{return tp.statSync(t,{throwIfNoEntry:!1})?.isFile()===!0}catch{return!1}}var xe,co=m(()=>{"use strict";c();xe=class{extensions=[".py"];resolve(e,r,s,n){let o=r.replace(/\./g,dr.sep),i=dr.join(s,`${o}.py`);if(ao(i))return[{path:i,isExternal:!1}];let a=dr.join(s,o,"__init__.py");return ao(a)?[{path:a,isExternal:!1}]:null}}});import lo from"path";var rp,Se,po=m(()=>{"use strict";c();rp=["~","http://","https://","//","data:","sass:"],Se=class{extensions=[".css",".scss",".sass",".less",".styl"];resolve(e,r,s,n){if(rp.some(h=>r.startsWith(h)))return null;let o=n(e,r);if(o)return[o];let i=lo.dirname(r),a=lo.basename(r),l=i==="."?`_${a}`:`${i}/_${a}`,p=n(e,l);return p?[p]:null}}});var fo=m(()=>{"use strict";c();no();oo();io();co();po()});import tt from"fs";import G from"path";var z,hr=m(()=>{"use strict";c();fo();z=class{constructor(e,r={}){this.rootDir=e;this.workspaceMap=r.workspaceMap??new Map,this.tsconfigSearchPaths=r.tsconfigSearchPaths??[e],this.pathAliases=r.pathAliases,this.langResolvers=r.langResolvers??[new xe,new he,new de,new Se,new ye]}rootDir;workspaceMap;tsconfigSearchPaths;pathAliases;langResolvers;resolveAll(e,r){let s=this.resolvePathAlias(r);if(s)return[s];if(r.startsWith(".")||r.startsWith("/")){let i=this.resolveLocalPath(e,r);return i?[i]:[]}let n=(i,a)=>this.resolveLocalPath(i,a);for(let i of this.langResolvers)if(i.extensions.some(a=>e.endsWith(a))){let a=i.resolve(e,r,this.rootDir,n);if(a)return a}let o=this.resolveWorkspaceImport(r);return o?[o]:[{path:r,isExternal:!0}]}resolve(e,r){let s=this.resolvePathAlias(r);if(s)return s;if(r.startsWith(".")||r.startsWith("/"))return this.resolveLocalPath(e,r);let n=(i,a)=>this.resolveLocalPath(i,a);for(let i of this.langResolvers)if(i.extensions.some(a=>e.endsWith(a))){let a=i.resolve(e,r,this.rootDir,n);if(a)return a[0]??null}let o=this.resolveWorkspaceImport(r);return o||{path:r,isExternal:!0}}resolveLocalPath(e,r){let s=G.dirname(e),n=r.startsWith("/")?r:G.resolve(s,r),o=!n.startsWith(this.rootDir),i=["",".ts",".tsx",".js",".jsx",".mjs",".cjs",".css",".scss",".sass",".less",".styl",".coffee",".ls",".lua",".py",".feature",".md",".mdx"],a=n.match(/\.(js|mjs|cjs)$/);if(a){let l=n.slice(0,-a[0].length);for(let p of[".ts",".tsx"]){let h=this.tryExtensions(l,p,o);if(h)return h}}for(let l of i){let p=this.tryExtensions(n,l,o);if(p)return p}return o?{path:n,isExternal:!0}:null}tryExtensions(e,r,s){let n=e+r;if(this.isFile(n))return{path:n,isExternal:s};let o=G.join(e,`index${r}`);if(this.isFile(o))return{path:o,isExternal:s};if(r===".py"){let i=G.join(e,"__init__.py");if(this.isFile(i))return{path:i,isExternal:s}}return null}isFile(e){try{return tt.statSync(e,{throwIfNoEntry:!1})?.isFile()===!0}catch{return!1}}resolvePathAlias(e){if(this.pathAliases)for(let r in this.pathAliases){let s=this.matchAliasPattern(r,e),n=this.pathAliases[r];if(s&&n){let o=this.tryAliasSubstitutions(n,s[1]||"");if(o)return o}}for(let r of this.tsconfigSearchPaths){let s=G.join(r,"tsconfig.json");if(tt.existsSync(s))try{let o=JSON.parse(tt.readFileSync(s,"utf-8")).compilerOptions?.paths;if(!o)continue;for(let i in o){let a=this.matchAliasPattern(i,e);if(a){let l=this.tryAliasSubstitutions(o[i],a[1]||"",r);if(l)return l}}}catch{}}return null}aliasRegexCache=new Map;matchAliasPattern(e,r){let s=this.aliasRegexCache.get(e);if(!s){let n=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace("\\*","(.*)");s=new RegExp(`^${n}$`),this.aliasRegexCache.set(e,s)}return r.match(s)}tryAliasSubstitutions(e,r,s=this.rootDir){let n=["",".ts",".tsx",".js",".jsx",".coffee",".ls",".lua",".feature"];for(let o of e){let i=o.replace("*",r),a=G.resolve(s,i);for(let l of n){let p=this.tryExtensions(a,l,!1);if(p)return p}}return null}resolveWorkspaceImport(e){if(this.workspaceMap.size===0)return null;for(let[r,s]of this.workspaceMap){if(e!==r&&!e.startsWith(`${r}/`))continue;let n=e.slice(r.length),o={path:"",isExternal:!1,isWorkspace:!0,workspacePackage:r};if(!n){for(let a of["src/index.ts","src/index.tsx","index.ts","index.tsx","index.js"]){let l=G.join(s,a);try{if(tt.statSync(l,{throwIfNoEntry:!1})?.isFile())return{...o,path:l}}catch{}}return{...o,path:s}}let i=this.resolveLocalPath(G.join(s,"_dummy"),n.slice(1));return i?{...o,path:i.path}:null}return null}}});import be from"fs";import F from"path";import sp from"piscina";function ip(t,e){if(t.length===0)return e;let r=t.map(i=>F.dirname(i).split(F.sep)),s=r[0];for(let i of r.slice(1)){let a=0;for(;a<s.length&&a<i.length&&s[a]===i[a];)a++;s=s.slice(0,a)}let n=s.join(F.sep)||F.sep,o=F.relative(e,n);return o.startsWith("..")||F.isAbsolute(o)?e:n}var np,mo,op,Ce,uo=m(()=>{"use strict";c();nr();U();nn();Jn();eo();ie();hr();np=["tests","test","__tests__","specs","spec"],mo=new Set(["node_modules",".git","dist","build",".next",".cache","mokosh-cache","coverage"]),op=20;Ce=class{constructor(e,r=null,s,n,o=!1,i=new Map,a=!0){this.rootDir=e;this.enableGitStats=o;this.coverageMap=i;this.parallelParsing=a;this.previousGraph=r,this.resolver=s||new z(e),this.lockFile=sn(e),n&&(this.progressCallback=n)}rootDir;enableGitStats;coverageMap;parallelParsing;graph={nodes:new Map};visited=new Set;queue=[];previousGraph=null;resolver;lockFile=null;progressCallback;pool=null;gitStatsMap=null;async build(e){let r=e.map(s=>F.isAbsolute(s)?s:F.resolve(this.rootDir,s));await this.initPool(),this.enableGitStats&&(this.gitStatsMap=en(this.rootDir));try{for(let s of r)this.enqueue(s);return await this.drain(),await this.processTestFiles(ip(r,this.rootDir)),await this.processDocFiles(),this.progressCallback&&this.visited.size>=100&&process.stderr.write(`
18
+ `;return p+b+d+i+`
19
+ `+h}}});import Hn from"path";import Vn from"typescript";var gc,Qe,Qn=m(()=>{"use strict";c();re();gc=/\/\/ <mokosh-tags>[\s\S]*?\/\/ <\/mokosh-tags>\n*/,Qe=class{name="vitest";canHandle(e){return A.has(Hn.extname(e).toLowerCase())}apply(e,r,n){let s=r.replace(gc,""),o=Vn.createSourceFile(Hn.basename(e),s,Vn.ScriptTarget.Latest,!0),i=X(o);if(i.length===0)return s;let a=Y(i[0],"tags",o),l=[...n].sort();if(a!==null&&JSON.stringify([...a].sort())===JSON.stringify(l))return s;let p=i.flatMap(h=>{let d=n.length===0?Z(h,"tags",o):q(h,"tags",te(l),o);return d?[d]:[]});return p.length>0?ee(s,p):s}}});import nr from"path";import Xe from"typescript";function hc(t){let e=Xe.createSourceFile("detect.ts",t,Xe.ScriptTarget.Latest,!0);for(let r of e.statements){if(!Xe.isImportDeclaration(r)||!Xe.isStringLiteral(r.moduleSpecifier))continue;let n=dc[r.moduleSpecifier.text];if(n)return n}return null}function Yn(t="vitest",e={},r=process.cwd()){return[new Be,new Ve,new Je,new sr(r,t,Object.entries(e))]}function qn(t,e){return e.find(r=>r.canHandle(t))??null}var Xn,dc,sr,Zn=m(()=>{"use strict";c();Gn();jn();Wn();zn();$n();Jn();Kn();re();Qn();Xn={vitest:()=>new Qe,playwright:()=>new He,cypress:()=>new Ue,jest:()=>new Ke},dc={"@playwright/test":"playwright",cypress:"cypress","@jest/globals":"jest",vitest:"vitest"};sr=class{constructor(e,r,n){this.rootDir=e;this.defaultFramework=r;this.frameworkOverrides=n}rootDir;defaultFramework;frameworkOverrides;name="auto";canHandle(e){return A.has(nr.extname(e).toLowerCase())}apply(e,r,n){let s=hc(r)??this.matchOverride(e)??this.defaultFramework;return(Xn[s]??Xn.vitest)().apply(e,r,n)}matchOverride(e){let r=nr.relative(this.rootDir,e).split(nr.sep).join("/");for(let[n,s]of this.frameworkOverrides)if(_n(n,r))return s;return null}}});import es from"fs/promises";import yc from"path";async function Cc(t,e,r,n){let s;try{s=await es.readFile(t,"utf8")}catch(a){return{path:t,status:"error",error:String(a)}}let o=qn(t,n);if(!o)return{path:t,status:"unchanged"};let i=o.apply(t,s,e);return i===s?{path:t,status:"unchanged"}:(r||await es.writeFile(t,i,"utf8"),{path:t,status:"updated"})}async function or(t,e,r){let n=K(e),s=n.tagApplier?.framework??"vitest",o=n.tagApplier?.frameworkOverrides??{},i=Yn(s,o,e),a={updated:0,unchanged:0,errors:0,files:[]};for(let l of t.nodes.values()){if(l.category!=="test")continue;let p=new Set,h=[];for(let v of l.tags)bc.has(v.kind)&&xc.test(v.name)&&(Sc.has(v.name.toLowerCase())||p.has(v.name)||(p.add(v.name),h.push(v.name)));h.sort();let d=yc.resolve(e,l.path),b=await Cc(d,h,r.dryRun,i);b.path=l.path,a.files.push(b),b.status==="updated"?a.updated++:b.status==="unchanged"?a.unchanged++:a.errors++}return a}var xc,bc,Sc,ts=m(()=>{"use strict";c();ht();Zn();xc=/^[a-zA-Z][a-zA-Z0-9_-]{1,}$/,bc=new Set(["import"]),Sc=new Set(["common","fixture","fixtures","helper","helpers","index","main","mock","mocks","setup","shared","spec","test","tests","types","util","utils"])});var Ye,ir=m(()=>{"use strict";c();Ye=class{isTestNode(e){return e.category==="test"||e.tags.some(r=>r.name==="test")}}});import{execFileSync as ar}from"child_process";function ss(t,e){let r="",n=0;for(let s of t.split(`
20
+ `)){if(s.startsWith("\0")){let[,l,p]=s.slice(1).split(" ");r=l??"",n=p?Number(p)*1e3:0;continue}if(s==="")continue;let o=s.split(" "),i=o[0];if(!i)continue;let a=i.startsWith("R")||i.startsWith("C")?o[2]:o[1];a&&e(a,r,n)}}function os(t){let e=new Map;try{let r=ar("git",["-C",t,"log","--since=90 days ago","--name-status","-M",`--format=${rs}`],{encoding:"utf-8",stdio:["ignore","pipe","ignore"],maxBuffer:ns});ss(r,(n,s,o)=>{let i=e.get(n);if(i){i.commitCount90d+=1;return}e.set(n,{commitCount90d:1,lastAuthor:s||void 0,lastCommitAt:o||void 0})})}catch{return e}try{let r=ar("git",["-C",t,"log","--name-status","-M",`--format=${rs}`],{encoding:"utf-8",stdio:["ignore","pipe","ignore"],maxBuffer:ns});ss(r,(n,s,o)=>{e.has(n)||e.set(n,{commitCount90d:0,lastAuthor:void 0,lastCommitAt:o||void 0})})}catch{}return e}var qe,rs,ns,cr=m(()=>{"use strict";c();qe=class{getChangedFiles(){try{let r=[["diff","--name-only"],["diff","--cached","--name-only"],["ls-files","--others","--exclude-standard"]].flatMap(n=>{try{return ar("git",n,{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).split(`
21
+ `).map(o=>o.trim()).filter(o=>o!=="")}catch{return[]}});return Array.from(new Set(r))}catch(e){return console.error("Error getting git diff:",e),[]}}},rs="%x00%H%x09%ae%x09%at",ns=256*1024*1024});import Ze from"fs";import vc from"path";import{load as is}from"js-yaml";function as(t){let e=t.lastIndexOf("@");return e>0?t.substring(0,e):t}function kc(t){return t.replace(/:$/,"").split(",").map(e=>{let r=e.trim();return r.startsWith('"')&&(r=r.slice(1)),r.endsWith('"')&&(r=r.slice(0,-1)),as(r)}).filter(Boolean)}function Ec(t,e){let r=t.startsWith("/")?t.slice(1):t,n=r.lastIndexOf("@");return n>0?{name:r.substring(0,n),version:e||r.substring(n+1)}:{name:r,version:e}}function wc(t){try{let e=is(t),r={dependencies:{}};for(let[n,s]of Object.entries(e))if(!(n==="__metadata"||!s?.version))for(let o of n.split(", ")){let i=as(o);i&&(r.dependencies[i]={version:s.version,...s.dependencies!==void 0&&{dependencies:s.dependencies}})}return r}catch{return null}}function Fc(t){let e={dependencies:{}};for(let r of t.split(/\n\n+/)){let n=r.split(`
22
+ `).filter(l=>l.trim().length>0&&!l.trim().startsWith("#"));if(n.length<2)continue;let s=n[0];if(!s||s.startsWith(" "))continue;let o=kc(s);if(o.length===0)continue;let a=n.find(l=>l.trim().startsWith('version "'))?.match(/version "(.*?)"/)?.[1]??"";for(let l of o)e.dependencies[l]={version:a}}return e}function Pc(t){let e=Ze.readFileSync(t,"utf-8"),r=JSON.parse(e),n={dependencies:{}};if(r.packages)for(let[s,o]of Object.entries(r.packages)){if(!s.startsWith("node_modules/"))continue;let i=s.replace("node_modules/","");i.includes("node_modules/")||(n.dependencies[i]={version:o.version,...o.dependencies!==void 0&&{dependencies:o.dependencies}})}else if(r.dependencies)for(let[s,o]of Object.entries(r.dependencies))n.dependencies[s]={version:o.version,...o.dependencies!==void 0&&{dependencies:o.dependencies}};return n}function Tc(t){let e=Ze.readFileSync(t,"utf-8");if(e.includes("__metadata:")){let r=wc(e);if(r!==null)return r}return Fc(e)}function Nc(t){let e=Ze.readFileSync(t,"utf-8"),r={dependencies:{}};try{let n=is(e);if(n.packages)for(let[s,o]of Object.entries(n.packages)){let{name:i,version:a}=Ec(s,o.version);i&&(r.dependencies[i]={version:a,...o.dependencies!==void 0&&{dependencies:o.dependencies}})}if(n.dependencies)for(let[s,o]of Object.entries(n.dependencies)){if(r.dependencies[s])continue;let i=typeof o=="string"?o:o.version;r.dependencies[s]={version:i||""}}}catch{}return r}function cs(t){let e=[["package-lock.json",Pc],["yarn.lock",Tc],["pnpm-lock.yaml",Nc]];for(let[r,n]of e){let s=vc.join(t,r);if(Ze.existsSync(s))return n(s)}return null}var ls=m(()=>{"use strict";c()});import ps from"path";function R(t){switch(ps.extname(t).toLowerCase()){case".js":case".jsx":case".mjs":case".cjs":return"javascript";case".ts":case".tsx":return"typescript";case".css":return"css";case".scss":case".sass":return"scss";case".less":return"less";case".styl":return"stylus";case".coffee":return"coffeescript";case".ls":return"livescript";case".lua":return"lua";case".py":return"python";case".go":return"go";case".java":case".cpp":case".cc":case".cxx":case".c":return"unknown";case".feature":return"gherkin";case".md":case".mdx":return"markdown";default:return"unknown"}}function N(t){let e=ps.extname(t).toLowerCase();return[".css",".scss",".sass",".less",".styl"].includes(e)}var O=m(()=>{"use strict";c()});function L(t){return t.startsWith("'")||t.startsWith('"')?t.slice(1,-1):t}var et=m(()=>{"use strict";c()});import Ic from"coffeescript";function ms(t){if(t){if(typeof t.originalValue=="string")return t.originalValue;if(typeof t.value=="string")return L(t.value)}}function $(t){if(t){if(typeof t.value=="string")return t.value;if(typeof t.base?.value=="string")return t.base.value}}function Mc(t){let e=new Set,r=/@tag\s+([a-zA-Z0-9_-]+)/g,n=r.exec(t);for(;n!==null;)n[1]&&e.add(n[1]),n=r.exec(t);return e}function Ac(t,e){let r=t.toLowerCase();return r.includes(".test.")||r.includes(".spec.")||e.has("test")?"test":"logic"}function Dc(t,e){let r=ms(e.source);return r?{fromPath:t,toPath:"",rawSpecifier:r,isStyle:N(r),type:"static"}:null}function Rc(t,e){let r=e.variable?.base?.value==="require",n=ms(e.args?.[0]?.base);return!r||!n?null:{fromPath:t,toPath:"",rawSpecifier:n,isStyle:N(n),type:"require"}}function fs(t,e){if(e)return[{name:e}];let r=t.value;if(r?.constructor?.name==="Class"){let s=$(r.variable);return s?[{name:s}]:[]}if(r?.base?.constructor?.name==="Obj"&&Array.isArray(r.base.properties))return r.base.properties.map(s=>$(s.variable)??$(s)).filter(s=>!!s).map(s=>({name:s}));let n=$(r);return n?[{name:n}]:[]}function Oc(t){if(Array.isArray(t.specifiers))return t.specifiers.map(r=>r.identifier??r.original?.value).filter(r=>!!r).map(r=>({name:r}));let e=$(t.variable)??$(t.variable?.base);return e?[{name:e}]:[]}function Lc(t,e,r,n){let s=e.constructor?.name;if(s==="ImportDeclaration"){let o=Dc(t,e);o&&r.push(o)}else if(s==="Call"){let o=Rc(t,e);o&&r.push(o)}else if(s==="Assign"){let o=$(e.variable?.base),i=e.variable?.properties?.[0]?.name?.value;o==="module"&&i==="exports"?n.push(...fs(e,void 0)):o==="exports"&&typeof i=="string"&&n.push(...fs(e,i))}else s==="ExportNamedDeclaration"&&e.clause?n.push(...Oc(e.clause)):s==="ExportDefaultDeclaration"&&n.push({name:"default"})}function lr(t,e,r,n){if(!(!e||typeof e!="object")){Lc(t,e,r,n);for(let s in e){if(s==="locationData")continue;let o=e[s];if(!(!o||typeof o!="object"))if(Array.isArray(o))for(let i of o)lr(t,i,r,n);else lr(t,o,r,n)}}}function us(t,e){let r=Mc(e),n=Ac(t,r),s=[],o=[];try{lr(t,Ic.nodes(e),s,o)}catch{}let i=new Set,a=o.filter(l=>i.has(l.name)?!1:(i.add(l.name),!0));return{imports:s,exports:a,tags:Array.from(r).map(l=>({name:l,kind:"comment-marker"})),category:n}}var gs=m(()=>{"use strict";c();O();et()});import{AstBuilder as Gc,GherkinClassicTokenMatcher as jc,Parser as _c}from"@cucumber/gherkin";import{IdGenerator as Wc}from"@cucumber/messages";function pr(t,e){let r=new Set;try{let n=new Gc(zc),s=new jc,i=new _c(n,s).parse(e);i.feature&&(i.feature.tags.forEach(a=>{r.add(a.name.startsWith("@")?a.name.slice(1):a.name)}),i.feature.children.forEach(a=>{a.scenario&&(a.scenario.tags.forEach(l=>{r.add(l.name.startsWith("@")?l.name.slice(1):l.name)}),a.scenario.examples.forEach(l=>{l.tags.forEach(p=>{r.add(p.name.startsWith("@")?p.name.slice(1):p.name)})})),a.rule&&a.rule.children.forEach(l=>{l.scenario&&l.scenario.tags.forEach(p=>{r.add(p.name.startsWith("@")?p.name.slice(1):p.name)})})}))}catch(n){console.warn(`[GherkinParser] Failed to parse ${t}:`,n)}return{imports:[],exports:[],tags:Array.from(r).map(n=>({name:n,kind:"comment-marker"})),category:"test"}}var zc,ds=m(()=>{"use strict";c();me();zc=Wc.uuid();Q("gherkin",pr)});import $c from"path";import{parser as Uc}from"@lezer/go";function ys(t,e){let r=[],n=new Map,s=new Set,o=new Set,a=Uc.parse(e).cursor();do switch(a.name){case"LineComment":{let d=e.slice(a.from,a.to),b=d.match(Bc);b?.[1]&&s.add(b[1]);let v=d.match(Jc);v&&hs(v[1],o);let j=d.match(Kc);j&&hs(j[1],o);break}case"ImportSpec":{let d=a.node.getChild("String");if(d){let v=e.slice(d.from,d.to).slice(1,-1);r.push({fromPath:t,toPath:"",rawSpecifier:v,isExternal:!0,isStyle:!1,type:"static"})}break}case"FunctionDecl":case"TypeDecl":case"VarDecl":case"ConstDecl":{let d=a.node.getChild("DefName")??a.node.getChild("TypeSpec")?.getChild("DefName")??a.node.getChild("VarSpec")?.getChild("DefName")??a.node.getChild("ConstSpec")?.getChild("DefName");if(d){let b=e.slice(d.from,d.to);b!=="_"&&/^[A-Z]/.test(b)&&!n.has(b)&&n.set(b,{name:b})}break}}while(a.next());let l=r.some(d=>d.rawSpecifier==="testing"),p=$c.basename(t).endsWith("_test.go")||s.has("test")||l?"test":"logic",h=new Set([...s,...o]);return{imports:r,exports:Array.from(n.values()),tags:Array.from(h).map(d=>({name:d,kind:"comment-marker"})),category:p}}function hs(t,e){for(let r of t.split(/[\s,&|!()]+/)){let n=r.trim();n&&n!=="ignore"&&e.add(n)}}var Bc,Jc,Kc,xs=m(()=>{"use strict";c();Bc=/\/\/\s*@tag\s+([a-zA-Z0-9_-]+)/,Jc=/^\/\/go:build\s+(.+)$/,Kc=/^\/\/\s*\+build\s+(.+)$/});import Hc from"livescript";function Vc(t){let e=new Set,r=/@tag\s+([a-zA-Z0-9_-]+)/g,n=r.exec(t);for(;n!==null;)n[1]&&e.add(n[1]),n=r.exec(t);return e}function Qc(t,e){let r=t.toLowerCase();return r.includes(".test.")||r.includes(".spec.")||e.has("test")?"test":"logic"}function Yc(t,e){let r=t.constructor?.name||t.type;if(r==="Import"){let n=t.right?.value;if(typeof n=="string"){let s=L(n);return{fromPath:e,toPath:"",rawSpecifier:s,isStyle:N(s),type:"static"}}}if(r==="Chain"&&t.head?.value==="require"){let n=t.tails?.[0];if(n?.constructor?.name==="Call"||n?.type==="Call"){let s=n.args?.[0]?.value;if(typeof s=="string"){let o=L(s);return{fromPath:e,toPath:"",rawSpecifier:o,isStyle:N(o),type:"require"}}}}return null}function fr(t,e){if(!t||typeof t!="object")return[];let r=[],n=Yc(t,e);n&&r.push(n);for(let s in t){if(Xc.has(s))continue;let o=t[s];if(!(!o||typeof o!="object"))if(Array.isArray(o))for(let i of o)r.push(...fr(i,e));else r.push(...fr(o,e))}return r}function bs(t,e){let r=Vc(e),n=Qc(t,r),s=[];try{s=fr(Hc.ast(e),t)}catch{}return{imports:s,exports:[],tags:Array.from(r).map(o=>({name:o,kind:"comment-marker"})),category:n}}var Xc,Ss=m(()=>{"use strict";c();O();et();Xc=new Set(["first_line","first_column","last_line","last_column","line","column"])});import qc from"luaparse";function Zc(t){let e=new Set,r=/@tag\s+([a-zA-Z0-9_-]+)/g,n=r.exec(t);for(;n!==null;)n[1]&&e.add(n[1]),n=r.exec(t);return e}function el(t,e){let r=t.toLowerCase();return r.includes(".test.")||r.includes(".spec.")||e.has("test")?"test":"logic"}function tl(t,e){let r=[];function n(s){if(!(!s||typeof s!="object")){if((s.type==="CallExpression"||s.type==="StringCallExpression")&&s.base?.type==="Identifier"&&s.base?.name==="require"){let o;if(s.type==="CallExpression"){let i=s.arguments?.[0];i?.type==="StringLiteral"&&(o=L(i.raw))}else if(s.type==="StringCallExpression"){let i=s.argument;i?.type==="StringLiteral"&&(o=L(i.raw))}o&&r.push({fromPath:e,toPath:"",rawSpecifier:o,isStyle:N(o),type:"require"})}for(let o in s){if(o==="loc")continue;let i=s[o];if(i&&typeof i=="object")if(Array.isArray(i))for(let a of i)n(a);else n(i)}}}return n(t),r}function rl(t){let e=new Set;for(let r of t)r.type==="LocalStatement"&&r.variables.forEach((n,s)=>{r.init[s]?.type==="TableConstructorExpression"&&e.add(n.name)});return e}function nl(t){let e=t[t.length-1];if(e?.type!=="ReturnStatement")return[];let r=e.arguments[0];if(r?.type!=="TableConstructorExpression")return[];let n=[];for(let s of r.fields)s.type==="TableKeyString"&&n.push({name:s.key.name});return n}function sl(t){let e=t.body,r=rl(e),n=nl(e);for(let o of e)if(o.type==="FunctionDeclaration")o.identifier?.type==="MemberExpression"?o.identifier.base.type==="Identifier"&&r.has(o.identifier.base.name)&&n.push({name:o.identifier.identifier.name}):o.identifier?.type==="Identifier"&&!o.isLocal&&n.push({name:o.identifier.name});else if(o.type==="AssignmentStatement")for(let i of o.variables)i.type==="MemberExpression"&&i.base.type==="Identifier"&&r.has(i.base.name)&&n.push({name:i.identifier.name});let s=new Set;return n.filter(o=>s.has(o.name)?!1:(s.add(o.name),!0))}function Cs(t,e){let r=Zc(e),n=el(t,r),s=[],o=[];try{let i=qc.parse(e);s=tl(i,t),o=sl(i)}catch{}return{imports:s,exports:o,tags:Array.from(r).map(i=>({name:i,kind:"comment-marker"})),category:n}}var vs=m(()=>{"use strict";c();O();et()});async function cl(){return ks??=(async()=>{let{unified:t}=await import("unified"),e=(await import("remark-parse")).default;return t().use(e)})(),ks}function ll(t){let e=t.trim();return e.length===0||e.startsWith("#")||ol.some(r=>e.startsWith(r))}function pl(t,e){let r=t.match(al);return r?r.map(n=>({fromPath:e,toPath:"",rawSpecifier:n,isStyle:!1,type:"static"})):[]}function Es(t,e,r){if(t.type==="link"&&typeof t.url=="string"&&!ll(t.url)&&r.push({fromPath:e,toPath:"",rawSpecifier:t.url,isStyle:!1,type:"static"}),(t.type==="code"||t.type==="inlineCode")&&typeof t.value=="string"&&r.push(...pl(t.value,e)),Array.isArray(t.children))for(let n of t.children)Es(n,e,r)}async function ws(t,e){let n=(await cl()).parse(e),s=[];Es(n,t,s);let o=new Set;return{imports:s.filter(a=>o.has(a.rawSpecifier)?!1:(o.add(a.rawSpecifier),!0)),exports:[],tags:[],category:"other"}}var ol,il,al,ks,Fs=m(()=>{"use strict";c();ol=["http://","https://","mailto:","//"],il="ts|tsx|js|jsx|mjs|cjs|py|go|lua|css|scss|less|styl|coffee|ls|feature|md|mdx|json",al=new RegExp(`(?:\\.{1,2}/)?[\\w.-]+(?:/[\\w.-]+)*\\.(?:${il})\\b`,"g")});import fl from"path";import{parser as ml}from"@lezer/python";function Ps(t,e){let r=[],n=[],s=new Set,o=fl.basename(t).toLowerCase(),a=ml.parse(e).cursor();do switch(a.name){case"Comment":{let p=e.slice(a.from,a.to).match(/#\s*@tag\s+([a-zA-Z0-9_-]+)/);p?.[1]&&s.add(p[1]);break}case"ImportStatement":{for(let p of gl(a.node,e,t))r.push(p);break}case"FunctionDefinition":case"ClassDefinition":{let p=a.node.parent;if(p?.name==="Script"||p?.name==="DecoratedStatement"&&p.parent?.name==="Script"){let d=a.node.getChild("VariableName");d&&n.push({name:e.slice(d.from,d.to)})}break}case"AssignStatement":{if(a.node.parent?.name==="Script"){let p=a.node.firstChild;p?.name==="VariableName"&&n.push({name:e.slice(p.from,p.to)})}break}}while(a.next());let l=xl(o,r,s);return l==="test"&&s.add("test"),{imports:r,exports:n,tags:Array.from(s).map(p=>({name:p,kind:"comment-marker"})),category:l}}function gl(t,e,r){let n=t.firstChild;return n?n.name==="from"?dl(t,e,r):hl(t,e,r):[]}function dl(t,e,r){let n=t.firstChild;if(!n)return[];let s=n.nextSibling;for(;s&&s.name!=="import";)s=s.nextSibling;if(!s)return[];let o=e.slice(n.to,s.from).trim(),i=yl(s.nextSibling,e);if(!i.length)return[];let a=0;for(;a<o.length&&o[a]===".";)a++;let l=o.slice(a);if(a===0)return[ge(r,o,i,!0)];let p=a===1?"./":"../".repeat(a-1);return l?[ge(r,p+l.replace(/\./g,"/"),i,!1)]:i[0]==="*"?[ge(r,p.slice(0,-1),["*"],!1)]:i.map(h=>ge(r,p+h,[h],!1))}function hl(t,e,r){let n=[],s=t.firstChild?.nextSibling??null;for(;s;){if(s.name==="VariableName"){let o=e.slice(s.from,s.to);for(;s.nextSibling?.name==="."&&s.nextSibling.nextSibling?.name==="VariableName";)s=s.nextSibling.nextSibling,o+=`.${e.slice(s.from,s.to)}`;s.nextSibling?.name==="as"&&(s=s.nextSibling.nextSibling??s.nextSibling),n.push(ge(r,o,["*"],!0))}s=s.nextSibling}return n}function yl(t,e){let r=[],n=t;for(;n;)n.name==="*"?r.push("*"):n.name==="VariableName"&&(r.push(e.slice(n.from,n.to)),n.nextSibling?.name==="as"&&(n=n.nextSibling.nextSibling??n.nextSibling)),n=n.nextSibling;return r}function ge(t,e,r,n){return{fromPath:t,toPath:"",rawSpecifier:e,isStyle:!1,isExternal:n,type:"static",symbols:r.length>0?r:void 0}}function xl(t,e,r){return t.startsWith("test_")||t.endsWith("_test.py")?"test":t==="conftest.py"||t==="setup.py"?"config":r.has("test")||e.some(n=>ul.has(n.rawSpecifier))?"test":"logic"}var ul,Ts=m(()=>{"use strict";c();ul=new Set(["pytest","unittest","nose","hypothesis"])});import y from"typescript";function bl(t){let e=1;function r(n){switch(n.kind){case y.SyntaxKind.IfStatement:case y.SyntaxKind.ConditionalExpression:case y.SyntaxKind.ForStatement:case y.SyntaxKind.ForInStatement:case y.SyntaxKind.ForOfStatement:case y.SyntaxKind.WhileStatement:case y.SyntaxKind.DoStatement:case y.SyntaxKind.CatchClause:case y.SyntaxKind.CaseClause:e++;break;case y.SyntaxKind.BinaryExpression:{let s=n.operatorToken.kind;(s===y.SyntaxKind.AmpersandAmpersandToken||s===y.SyntaxKind.BarBarToken||s===y.SyntaxKind.QuestionQuestionToken)&&e++;break}}y.forEachChild(n,r)}return r(t),e}function Sl(t){let e=0;function r(n,s,o){if(y.isIfStatement(n)){e+=o?1:1+s;let a=o?s:s+1;r(n.expression,a,!1),r(n.thenStatement,a,!1),n.elseStatement&&(y.isIfStatement(n.elseStatement)?r(n.elseStatement,s,!0):(e+=1,r(n.elseStatement,s+1,!1)));return}if(y.isForStatement(n)||y.isForInStatement(n)||y.isForOfStatement(n)||y.isWhileStatement(n)||y.isDoStatement(n)||y.isSwitchStatement(n)){e+=1+s,y.forEachChild(n,a=>r(a,s+1,!1));return}if(y.isCatchClause(n)){e+=1+s,y.forEachChild(n,a=>r(a,s,!1));return}if(y.isConditionalExpression(n)&&(e+=1),y.isBinaryExpression(n)){let a=n.operatorToken.kind;(a===y.SyntaxKind.AmpersandAmpersandToken||a===y.SyntaxKind.BarBarToken||a===y.SyntaxKind.QuestionQuestionToken)&&(e+=1)}if(s>0&&(y.isFunctionDeclaration(n)||y.isFunctionExpression(n)||y.isArrowFunction(n))){e+=1+s,y.forEachChild(n,a=>r(a,s+1,!1));return}y.forEachChild(n,a=>r(a,s,!1))}return r(t,0,!1),e}function mr(t){return{complexity:bl(t),cognitiveComplexity:Sl(t)}}var Ns=m(()=>{"use strict";c()});import C from"typescript";function Is(t,e){Cl(t,e),kl(t,e),El(t,e),wl(t,e)}function Cl(t,e){if((C.isFunctionDeclaration(t)||C.isVariableDeclaration(t))&&t.name&&C.isIdentifier(t.name)&&vl(t)){let r;if(C.isFunctionDeclaration(t))r="function";else{let n=t.initializer;r=n&&(C.isArrowFunction(n)||C.isFunctionExpression(n))?"function":"variable"}e.tags.add({name:t.name.text,kind:r})}}function vl(t){if(C.isFunctionDeclaration(t))return C.isSourceFile(t.parent);let e=t.parent?.parent;return!!e&&C.isSourceFile(e.parent)}function kl(t,e){if(!C.isStringLiteral(t))return;let r=t.text.match(/@[\w-]+/g);if(r)for(let n of r)e.tags.add({name:n.substring(1),kind:"comment-marker"})}function El(t,e){if(!C.isSourceFile(t))return;let r=/@tag\s+([a-zA-Z0-9_-]+)/g,n=t.getFullText(),s=r.exec(n);for(;s!==null;)s[1]&&e.tags.add({name:s[1],kind:"comment-marker"}),s=r.exec(n)}function wl(t,e){if(C.isCallExpression(t)&&Fl(t.expression))for(let r of t.arguments)C.isObjectLiteralExpression(r)&&Pl(r,e)}function Fl(t){return C.isIdentifier(t)?ur.has(t.text):!!(C.isPropertyAccessExpression(t)&&(ur.has(t.name.text)||C.isIdentifier(t.expression)&&ur.has(t.expression.text)))}function Pl(t,e){for(let r of t.properties){if(!C.isPropertyAssignment(r)||!C.isIdentifier(r.name)||r.name.text!=="tags"&&r.name.text!=="tag")continue;let{initializer:n}=r,s=C.isArrayLiteralExpression(n)?n.elements.filter(C.isStringLiteral):r.name.text==="tag"&&C.isStringLiteral(n)?[n]:[];for(let o of s)e.tags.add({name:o.text.replace(/^@/,""),kind:"comment-marker"})}}var ur,Ms=m(()=>{"use strict";c();ur=new Set(["test","describe","it"])});import As from"path";import g from"typescript";function gr(t,e,r){let n=[],s=new Map,o=new Set,i=g.createSourceFile(t,e,g.ScriptTarget.Latest,!0,r==="typescript"?g.ScriptKind.TSX:g.ScriptKind.JSX),a={filePath:t,imports:n,exports:s,tags:o,rawCallEdges:[],sourceFile:i,hasUI:!1,hasTypesOnly:!0,totalStatements:0,exportStatements:0},l=zr=>{Ml(zr,a),g.forEachChild(zr,l)};l(i);let p=$l(t,a);(p==="test"||p==="barrel")&&o.add({name:p,kind:"comment-marker"}),p!=="test"&&Ul(a,i);let h=i.statements[0],d=h?Rs(h):void 0,{complexity:b,cognitiveComplexity:v}=mr(i),j=Tl(i);return{imports:n,exports:Array.from(s.values()),tags:Array.from(o),category:p,rawCallEdges:a.rawCallEdges??[],complexity:b,cognitiveComplexity:v,...j.length>0?{functions:j}:{},...d!==void 0?{description:d}:{}}}function Tl(t){let e=[],r=(s,o)=>{let{complexity:i,cognitiveComplexity:a}=mr(o),l=t.getLineAndCharacterOfPosition(o.getStart(t)).line+1;e.push({name:s,line:l,complexity:i,cognitiveComplexity:a})},n=(s,o)=>{if(g.isFunctionDeclaration(s)&&s.name&&s.body?r(s.name.text,s):g.isVariableDeclaration(s)&&g.isIdentifier(s.name)&&s.initializer&&(g.isArrowFunction(s.initializer)||g.isFunctionExpression(s.initializer))?r(s.name.text,s.initializer):o&&g.isMethodDeclaration(s)&&g.isIdentifier(s.name)&&s.body?r(`${o}.${s.name.text}`,s):o&&g.isConstructorDeclaration(s)&&s.body?r(`${o}.constructor`,s):o&&g.isGetAccessorDeclaration(s)&&g.isIdentifier(s.name)&&s.body?r(`${o}.get ${s.name.text}`,s):o&&g.isSetAccessorDeclaration(s)&&g.isIdentifier(s.name)&&s.body&&r(`${o}.set ${s.name.text}`,s),g.isClassDeclaration(s)&&s.name){let i=s.name.text;g.forEachChild(s,a=>n(a,i));return}g.forEachChild(s,i=>n(i,o))};return n(t,void 0),e}function Ds(t,e,r,n){let s={name:t},o=Rs(r);o!==void 0&&(s.doc=o);let i=Nl(e);i!==void 0&&(s.flags=i);let a=Il(e,n);return a!==void 0&&(s.signature=a),s}function Rs(t){let e=g.getJSDocCommentsAndTags(t);for(let r of e)if(g.isJSDoc(r)&&r.comment)return g.getTextOfJSDocComment(r.comment)||void 0}function Nl(t){let e=new Set(["deprecated","internal","public","alpha","beta"]),r=g.getJSDocTags(t).map(n=>n.tagName.text).filter(n=>e.has(n));return r.length>0?r:void 0}function Il(t,e){let r=g.createPrinter({removeComments:!0}),n=s=>r.printNode(g.EmitHint.Unspecified,s,e);if(g.isFunctionDeclaration(t)||g.isMethodDeclaration(t)){let s=t.parameters.map(n).join(", "),o=t.type?n(t.type):"void";return`${t.typeParameters?`<${t.typeParameters.map(a=>a.name.text).join(", ")}>`:""}(${s}) => ${o}`}if(g.isVariableDeclaration(t)){if(t.type)return n(t.type);if(t.initializer&&(g.isArrowFunction(t.initializer)||g.isFunctionExpression(t.initializer))){let s=t.initializer,o=s.parameters.map(n).join(", "),i=s.type?n(s.type):"unknown";return`(${o}) => ${i}`}return}if(g.isClassDeclaration(t)&&t.name)return`class ${t.name.text}`;if(g.isInterfaceDeclaration(t))return`interface ${t.name.text}`;if(g.isTypeAliasDeclaration(t))return n(t.type);if(g.isEnumDeclaration(t))return`enum ${t.name.text}`}function Ml(t,e){Al(t,e),Dl(t,e),Ol(t,e),Ll(t,e),zl(t,e),Is(t,e)}function Al(t,e){if(!g.isSourceFile(t))return;let r=t.statements.filter(n=>!g.isEmptyStatement(n));e.totalStatements=r.length,e.exportStatements=r.filter(n=>g.isExportDeclaration(n)||g.isExportAssignment(n)||dr(n)).length}function Dl(t,e){if(g.isJsxElement(t)||g.isJsxSelfClosingElement(t)||g.isJsxFragment(t)){e.hasUI=!0,e.hasTypesOnly=!1;return}if(g.isFunctionDeclaration(t)||g.isMethodDeclaration(t)||g.isArrowFunction(t)||g.isClassDeclaration(t)||g.isVariableStatement(t)||g.isEnumDeclaration(t)){e.hasTypesOnly=!1;return}g.isExportDeclaration(t)&&!Rl(t)&&(e.hasTypesOnly=!1)}function Rl(t){return t.isTypeOnly?!0:!t.exportClause||!g.isNamedExports(t.exportClause)?!1:t.exportClause.elements.every(e=>e.isTypeOnly)}function Ol(t,e){if(!g.isImportDeclaration(t)||!t.moduleSpecifier||!g.isStringLiteral(t.moduleSpecifier))return;let r=[];if(t.importClause&&(t.importClause.name&&r.push("default"),t.importClause.namedBindings))if(g.isNamedImports(t.importClause.namedBindings))for(let s of t.importClause.namedBindings.elements)r.push(s.name.text);else g.isNamespaceImport(t.importClause.namedBindings)&&r.push("*");let n=r.length>0?"static":"side-effect";e.imports.push({fromPath:e.filePath,toPath:"",rawSpecifier:t.moduleSpecifier.text,isStyle:N(t.moduleSpecifier.text),type:n,symbols:r.length>0?r:void 0})}function Ll(t,e){g.isExportDeclaration(t)?Gl(t,e):g.isExportAssignment(t)?e.exports.set("default",{name:"default"}):dr(t)&&Wl(t,e)}function Gl(t,e){if(t.moduleSpecifier&&g.isStringLiteral(t.moduleSpecifier))jl(t,t.moduleSpecifier.text,e);else if(t.exportClause&&g.isNamedExports(t.exportClause))for(let r of t.exportClause.elements){let n=r.name.text;e.exports.set(n,{name:n})}}function jl(t,e,r){let n=_l(t),s={fromPath:r.filePath,toPath:"",rawSpecifier:e,isStyle:N(e),type:"re-export"};n.length>0&&(s.symbols=n),r.imports.push(s)}function _l(t){return t.exportClause?g.isNamedExports(t.exportClause)?t.exportClause.elements.map(e=>e.name.text):[]:["*"]}function Wl(t,e){if((g.isFunctionDeclaration(t)||g.isClassDeclaration(t)||g.isInterfaceDeclaration(t)||g.isTypeAliasDeclaration(t)||g.isEnumDeclaration(t))&&t.name){let n=t.name.text;e.exports.set(n,Ds(n,t,t,e.sourceFile));return}if(g.isVariableStatement(t)){for(let n of t.declarationList.declarations)if(g.isIdentifier(n.name)){let s=n.name.text;e.exports.set(s,Ds(s,n,t,e.sourceFile))}}}function zl(t,e){if(!g.isCallExpression(t))return;let r=t.arguments[0];!r||!g.isStringLiteral(r)||(t.expression.kind===g.SyntaxKind.ImportKeyword?e.imports.push({fromPath:e.filePath,toPath:"",rawSpecifier:r.text,isStyle:N(r.text),type:"dynamic"}):g.isIdentifier(t.expression)&&t.expression.text==="require"&&e.imports.push({fromPath:e.filePath,toPath:"",rawSpecifier:r.text,isStyle:N(r.text),type:"require"}))}function $l(t,e){let r=As.basename(t).toLowerCase(),n=As.extname(t).toLowerCase();return se().some(o=>r.includes(o))?"test":Ur(r)?"config":e.imports.some(o=>ft().some(i=>o.rawSpecifier.includes(i)))?"test":n===".tsx"||n===".jsx"||e.hasUI?"ui":e.hasTypesOnly&&e.totalStatements>0?"type-only":e.totalStatements>0&&e.exportStatements/e.totalStatements>ut()?"barrel":"logic"}function dr(t){return g.canHaveModifiers(t)&&g.getModifiers(t)?.some(e=>e.kind===g.SyntaxKind.ExportKeyword)===!0}function Ul(t,e){let r=t.rawCallEdges??[];t.rawCallEdges=r;let n=new Map;for(let s of e.statements){if(!g.isImportDeclaration(s)||!g.isStringLiteral(s.moduleSpecifier))continue;let o=s.moduleSpecifier.text,i=s.importClause;if(i&&(i.name&&n.set(i.name.text,o),i.namedBindings&&g.isNamedImports(i.namedBindings)))for(let a of i.namedBindings.elements)n.set(a.name.text,o)}if(n.size!==0)for(let s of e.statements){let o=Jl(s);if(o){let i=Kl(s);i&&tt(i,o,n,r);continue}g.isClassDeclaration(s)&&s.name&&Bl(s,n,r)}}function Bl(t,e,r){let n=t.name.text;for(let s of t.members)g.isMethodDeclaration(s)&&s.body&&g.isIdentifier(s.name)?tt(s.body,`${n}.${s.name.text}`,e,r):g.isConstructorDeclaration(s)&&s.body&&tt(s.body,`${n}.constructor`,e,r)}function Jl(t){if(dr(t)){if(g.isFunctionDeclaration(t)&&t.name)return t.name.text;if(g.isVariableStatement(t)){for(let e of t.declarationList.declarations)if(g.isIdentifier(e.name)&&e.initializer&&(g.isArrowFunction(e.initializer)||g.isFunctionExpression(e.initializer)))return e.name.text}}}function Kl(t){if(g.isFunctionDeclaration(t))return t.body;if(g.isVariableStatement(t)){for(let e of t.declarationList.declarations)if(e.initializer&&(g.isArrowFunction(e.initializer)||g.isFunctionExpression(e.initializer)))return e.initializer}}function tt(t,e,r,n){if(g.isCallExpression(t)&&g.isIdentifier(t.expression)){let s=t.expression.text,o=r.get(s);o&&!n.some(i=>i.from===e&&i.to===s&&i.toSpecifier===o)&&n.push({from:e,to:s,toSpecifier:o})}g.forEachChild(t,s=>tt(s,e,r,n))}var Os=m(()=>{"use strict";c();J();Ns();O();Ms()});function rt(t,e){if(e.length===0)return"ui";let r=!1;return t.walk(n=>{if(n.type==="rule")return r=!0,!1}),r?"ui":"barrel"}var Ls=m(()=>{"use strict";c()});import js from"postcss";import*as Hl from"postcss-less";function Gs(t){return t.startsWith("~")||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//")||t.startsWith("data:")}function Ql(t){let e=t.trim();return e.length>0&&!e.startsWith("http://")&&!e.startsWith("https://")&&!e.startsWith("//")&&!e.startsWith("data:")&&!e.startsWith("#")}function Xl(t,e){let r=t.match(/^\(([^)]+)\)\s+['"]([^'"]+)['"]/);if(r){let o=r[1]?.trim()??"",i=r[2]??"";if(!i)return null;let a=_s.has(o)?"side-effect":"static";return{fromPath:e,toPath:"",rawSpecifier:i,isStyle:!0,type:a,...Gs(i)?{isExternal:!0}:{}}}let n=t.match(/^url\(['"]?([^'")]+)['"]?\)/),s=n?n[1]?.trim()??"":t.match(/^['"]([^'"]+)['"]/)?.[1]??"";return s?{fromPath:e,toPath:"",rawSpecifier:s,isStyle:!0,type:"static",...Gs(s)?{isExternal:!0}:{}}:null}function Yl(t,e){let r=[],n=/url\(['"]?([^'")]+)['"]?\)/g,s=n.exec(t);for(;s!==null;){let o=s[1]?.trim()??"";Ql(o)&&r.push({fromPath:e,toPath:"",rawSpecifier:o,isStyle:!0,type:"static"}),s=n.exec(t)}return r}function Ws(t,e){let r=[];return t.walk(n=>{if(n.type==="atrule"&&n.name==="import"){let s=Xl(n.params,e);s&&r.push(s)}n.type==="decl"&&r.push(...Yl(n.value,e))}),r}function ql(t){return t.replace(/(?<!:)\/\/.*/g,"")}function Zl(t,e){let r=[],n=/@import\s+(?:\(([^)]+)\)\s+)?['"]([^'"]+)['"]/g,s=n.exec(t);for(;s!==null;){let o=s[1]?.trim()??"",i=s[2]??"";if(i){let a=_s.has(o)?"side-effect":"static";r.push({fromPath:e,toPath:"",rawSpecifier:i,isStyle:!0,type:a})}s=n.exec(t)}return r}function zs(t,e){let r=js.parse(ql(t));return{imports:Ws(r,e),root:r}}function ep(t){let e=[],r=[];for(let n of t.nodes??[]){if(n.type!=="atrule")continue;let{value:s}=n;if(s===void 0)continue;let o=n.name;o&&(e.push({name:o}),r.push({name:o,kind:"variable"}))}return{exports:e,tags:r}}function $s(t,e){try{let r=Vl.parse(t),{exports:n,tags:s}=ep(r);return{imports:Ws(r,e),root:r,exports:n,tags:s}}catch{return{imports:Zl(t,e),root:js.parse(""),exports:[],tags:[]}}}var Vl,_s,Us=m(()=>{"use strict";c();Vl=Hl,_s=new Set(["reference","inline"])});import{parse as tp}from"postcss-scss";function Bs(t){return t.startsWith("_")||t.startsWith("-")}function rp(t){return!!(t.startsWith("sass:")||t.startsWith("~")||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//")||!t.startsWith(".")&&!t.startsWith("/")&&!t.startsWith("_"))}function np(t){let e=t.match(/^['"]([^'"]+)['"]/);if(!e?.[1])return{specifier:""};let r=e[1],s=t.match(/\bas\s+(\S+)/)?.[1];return s!==void 0?{specifier:r,alias:s}:{specifier:r}}function sp(t){let e=[],r=[];for(let n of t.nodes??[]){if(n.type==="decl"&&n.prop.startsWith("$")){let s=n.prop.slice(1);if(!s||Bs(s))continue;e.push({name:s}),r.push({name:s,kind:"variable"});continue}if(n.type==="atrule"&&(n.name==="mixin"||n.name==="function")){let o=n.params.match(/^([\w-]+)/)?.[1];if(!o||Bs(o))continue;let i=n.params.trim();e.push(i.includes("(")?{name:o,signature:i}:{name:o}),r.push({name:o,kind:"function"})}}return{exports:e,tags:r}}function Js(t,e){let r=tp(t),n=[];r.walk(i=>{if(i.type!=="atrule")return;let{name:a,params:l}=i;if(a!=="import"&&a!=="use"&&a!=="forward")return;let{specifier:p,alias:h}=np(l);if(!p)return;let d={fromPath:e,toPath:"",rawSpecifier:p,isStyle:!0,type:a==="forward"?"re-export":"static",...rp(p)?{isExternal:!0}:{}};h&&(d.symbols=[h]),n.push(d)});let{exports:s,tags:o}=sp(r);return{imports:n,root:r,exports:s,tags:o}}var Ks=m(()=>{"use strict";c()});function Hs(t,e){let r=[],n=/@require\s+['"]([^'"]+)['"]/g,s=n.exec(t);for(;s!==null;){let i=s[1];i&&r.push({fromPath:e,toPath:"",rawSpecifier:i,isStyle:!0,type:"require"}),s=n.exec(t)}let o=/(?<!@)(?:import|require)\s*\(?\s*['"]([^'"]+)['"]/g;for(s=o.exec(t);s!==null;){let i=s[1];i&&r.push({fromPath:e,toPath:"",rawSpecifier:i,isStyle:!0,type:"static"}),s=o.exec(t)}return r}function Vs(t,e){if(e.length===0)return"ui";try{let r=pt("stylus");return new r.Parser(t).parse().nodes.some(o=>o.constructor.name!=="Import")?"ui":"barrel"}catch{return t.replace(/^\s*@?(?:require|import)\b.*/gm,"").trim().length>0?"ui":"barrel"}}var Qs=m(()=>{"use strict";c()});function de(t,e){let r=R(t);if(r==="stylus"){let o=Hs(e,t);return{imports:o,exports:[],tags:[],category:Vs(e,o)}}if(r==="scss"){let{imports:o,root:i,exports:a,tags:l}=Js(e,t);return{imports:o,exports:a,tags:l,category:rt(i,o)}}if(r==="less"){let{imports:o,root:i,exports:a,tags:l}=$s(e,t);return{imports:o,exports:a,tags:l,category:rt(i,o)}}let{imports:n,root:s}=zs(e,t);return{imports:n,exports:[],tags:[],category:rt(s,n)}}var Xs=m(()=>{"use strict";c();O();Ls();Us();Ks();Qs()});async function Ys(t,e){let r=R(t),n=Tn(r);return n?n(t,e):{imports:[],exports:[],tags:[],category:"other"}}var qs=m(()=>{"use strict";c();O();gs();ds();xs();Ss();vs();Fs();Ts();Os();me();Xs();J();O();me();for(let[t,e]of[["javascript",(r,n)=>gr(r,n,"javascript")],["typescript",(r,n)=>gr(r,n,"typescript")],["css",de],["scss",de],["less",de],["stylus",de],["coffeescript",us],["livescript",bs],["lua",Cs],["python",Ps],["go",ys],["gherkin",pr],["markdown",ws]])Q(t,e)});import Zs from"path";function to(t,e){for(let r of t.values()){let n=e.get(r.path);n!==void 0&&(r.coveragePct=n)}}function ro(t,e){for(let r of t)if(r.isExternal){let n=r.rawSpecifier.startsWith("@")?r.rawSpecifier.split("/").slice(0,2).join("/"):r.rawSpecifier.split("/")[0];n&&!e.some(s=>s.name===n)&&e.push({name:n,kind:"library"})}}function no(t){for(let e of t.values())if(e.category==="test")for(let r of e.imports){if(r.isExternal||!r.toPath)continue;let n=t.get(r.toPath);n&&(n.category!=="logic"&&n.category!=="barrel"||(n.testedBy??=[],n.testedBy.includes(e.path)||n.testedBy.push(e.path)))}}function so(t){for(let e of t.values())if(e.type==="markdown")for(let r of e.imports){if(r.isExternal||!r.toPath)continue;let n=t.get(r.toPath);!n||n===e||(n.documentedBy??=[],n.documentedBy.includes(e.path)||n.documentedBy.push(e.path),n.category==="logic"&&(n.lastCommitAt??0)>(e.lastCommitAt??0)&&(e.staleFor??=[],e.staleFor.includes(n.path)||e.staleFor.push(n.path)))}}function eo(t){return Math.round(t*1e4)/1e4}function oo(t){for(let e of t.values()){let r=[];for(let n of e.imports){if(n.isExternal||!n.toPath)continue;let s=t.get(n.toPath);if(!s||s.exports.length===0)continue;let o;if(n.symbols===void 0){if(n.type==="side-effect")continue;o=1}else n.symbols.includes("*")?o=1:o=n.symbols.length/s.exports.length;n.exportUsageRatio=eo(Math.min(1,o)),r.push(n.exportUsageRatio)}r.length>0&&(e.avgExportUsage=eo(r.reduce((n,s)=>n+s,0)/r.length),e.maxExportUsage=Math.max(...r))}}function hr(t,e,r){e&&(t.some(n=>n.name===e&&n.kind===r)||t.push({name:e,kind:r}))}function op(t,e){let r=e.toPath,n=Zs.basename(r,Zs.extname(r)).replace(/\.(test|spec)$/,"");hr(t.tags,n,"import")}function ip(t,e){if(!(!e.symbols||e.symbols.includes("*")))for(let r of e.symbols)hr(t.tags,r,"import")}function ap(t,e,r){let n=r.get(e.toPath);if(!(!n||n.category==="test"))for(let s of n.tags)s.kind==="comment-marker"&&hr(t.tags,s.name,"comment-marker")}function io(t){for(let e of t.values())if(e.category==="test")for(let r of e.imports)!r.toPath||r.isExternal||(op(e,r),ip(e,r),ap(e,r,t))}var ao=m(()=>{"use strict";c()});import po from"fs";import ne from"path";function cp(t,e){let r=t.split(`
23
+ `),n=null,s=new Map,o=!1;for(let i of r){let a=i.trim();if(a.startsWith("module ")){n=a.slice(7).trim();continue}if(/^replace\s*\(/.test(a)){o=!0;continue}if(o&&a===")"){o=!1;continue}if(o&&a.includes("=>")){co(a,e,s);continue}!o&&/^replace\s+/.test(a)&&a.includes("=>")&&co(a.replace(/^replace\s+/,""),e,s)}return{mod:n,replaces:s}}function co(t,e,r){let[n,s]=t.split("=>").map(a=>a.trim());if(!n||!s)return;let o=n.split(/\s+/)[0];if(!s.startsWith(".")&&!s.startsWith("/"))return;let i=ne.isAbsolute(s)?s:ne.resolve(e,s);r.set(o,i)}function lo(t){let e;try{e=po.readdirSync(t,{withFileTypes:!0})}catch{return null}let r=e.filter(n=>n.isFile()&&n.name.endsWith(".go")&&!n.name.endsWith("_test.go")).map(n=>({path:ne.join(t,n.name),isExternal:!1})).sort((n,s)=>n.path.localeCompare(s.path));return r.length>0?r:null}var he,fo=m(()=>{"use strict";c();he=class{extensions=[".go"];goModCache=new Map;resolve(e,r,n,s){let{mod:o,replaces:i}=this.readGoMod(n);if(!o)return null;let a=this.applyReplace(r,i,n);if(a!==void 0)return lo(a);if(r!==o&&!r.startsWith(`${o}/`))return null;let l=r.slice(o.length).replace(/^\//,"");return l?lo(ne.join(n,l)):null}readGoMod(e){let r=this.goModCache.get(e);if(r!==void 0)return r;let n={mod:null,replaces:new Map};try{let s=po.readFileSync(ne.join(e,"go.mod"),"utf-8"),o=cp(s,e);return this.goModCache.set(e,o),o}catch{return this.goModCache.set(e,n),n}}applyReplace(e,r,n){for(let[s,o]of r){if(e===s)return o;if(e.startsWith(`${s}/`)){let i=e.slice(s.length+1);return ne.join(o,i)}}}}});import lp from"fs";import yr from"path";var ye,mo=m(()=>{"use strict";c();ye=class{extensions=[".lua"];resolve(e,r,n,s){let o=r.replace(/\./g,yr.sep),i=[n,yr.join(n,"lib")];for(let a of i){if(!lp.existsSync(a))continue;let l=s(yr.join(a,"_dummy.lua"),o);if(l)return[l]}return null}}});import pp from"path";var xe,uo=m(()=>{"use strict";c();xe=class{extensions=[".md",".mdx"];resolve(e,r,n,s){let o=s(pp.join(n,"_dummy"),`./${r}`);return o?[o]:null}}});import fp from"fs";import xr from"path";function go(t){try{return fp.statSync(t,{throwIfNoEntry:!1})?.isFile()===!0}catch{return!1}}var be,ho=m(()=>{"use strict";c();be=class{extensions=[".py"];resolve(e,r,n,s){let o=r.replace(/\./g,xr.sep),i=xr.join(n,`${o}.py`);if(go(i))return[{path:i,isExternal:!1}];let a=xr.join(n,o,"__init__.py");return go(a)?[{path:a,isExternal:!1}]:null}}});import yo from"path";var mp,Se,xo=m(()=>{"use strict";c();mp=["~","http://","https://","//","data:","sass:"],Se=class{extensions=[".css",".scss",".sass",".less",".styl"];resolve(e,r,n,s){if(mp.some(h=>r.startsWith(h)))return null;let o=s(e,r);if(o)return[o];let i=yo.dirname(r),a=yo.basename(r),l=i==="."?`_${a}`:`${i}/_${a}`,p=s(e,l);return p?[p]:null}}});var bo=m(()=>{"use strict";c();fo();mo();uo();ho();xo()});import nt from"fs";import G from"path";var U,br=m(()=>{"use strict";c();bo();U=class{constructor(e,r={}){this.rootDir=e;this.workspaceMap=r.workspaceMap??new Map,this.tsconfigSearchPaths=r.tsconfigSearchPaths??[e],this.pathAliases=r.pathAliases,this.langResolvers=r.langResolvers??[new be,new ye,new he,new Se,new xe]}rootDir;workspaceMap;tsconfigSearchPaths;pathAliases;langResolvers;resolveAll(e,r){let n=this.resolvePathAlias(r);if(n)return[n];if(r.startsWith(".")||r.startsWith("/")){let i=this.resolveLocalPath(e,r);return i?[i]:[]}let s=(i,a)=>this.resolveLocalPath(i,a);for(let i of this.langResolvers)if(i.extensions.some(a=>e.endsWith(a))){let a=i.resolve(e,r,this.rootDir,s);if(a)return a}let o=this.resolveWorkspaceImport(r);return o?[o]:[{path:r,isExternal:!0}]}resolve(e,r){let n=this.resolvePathAlias(r);if(n)return n;if(r.startsWith(".")||r.startsWith("/"))return this.resolveLocalPath(e,r);let s=(i,a)=>this.resolveLocalPath(i,a);for(let i of this.langResolvers)if(i.extensions.some(a=>e.endsWith(a))){let a=i.resolve(e,r,this.rootDir,s);if(a)return a[0]??null}let o=this.resolveWorkspaceImport(r);return o||{path:r,isExternal:!0}}resolveLocalPath(e,r){let n=G.dirname(e),s=r.startsWith("/")?r:G.resolve(n,r),o=!s.startsWith(this.rootDir),i=["",".ts",".tsx",".js",".jsx",".mjs",".cjs",".css",".scss",".sass",".less",".styl",".coffee",".ls",".lua",".py",".feature",".md",".mdx"],a=s.match(/\.(js|mjs|cjs)$/);if(a){let l=s.slice(0,-a[0].length);for(let p of[".ts",".tsx"]){let h=this.tryExtensions(l,p,o);if(h)return h}}for(let l of i){let p=this.tryExtensions(s,l,o);if(p)return p}return o?{path:s,isExternal:!0}:null}tryExtensions(e,r,n){let s=e+r;if(this.isFile(s))return{path:s,isExternal:n};let o=G.join(e,`index${r}`);if(this.isFile(o))return{path:o,isExternal:n};if(r===".py"){let i=G.join(e,"__init__.py");if(this.isFile(i))return{path:i,isExternal:n}}return null}isFile(e){try{return nt.statSync(e,{throwIfNoEntry:!1})?.isFile()===!0}catch{return!1}}resolvePathAlias(e){if(this.pathAliases)for(let r in this.pathAliases){let n=this.matchAliasPattern(r,e),s=this.pathAliases[r];if(n&&s){let o=this.tryAliasSubstitutions(s,n[1]||"");if(o)return o}}for(let r of this.tsconfigSearchPaths){let n=G.join(r,"tsconfig.json");if(nt.existsSync(n))try{let o=JSON.parse(nt.readFileSync(n,"utf-8")).compilerOptions?.paths;if(!o)continue;for(let i in o){let a=this.matchAliasPattern(i,e);if(a){let l=this.tryAliasSubstitutions(o[i],a[1]||"",r);if(l)return l}}}catch{}}return null}aliasRegexCache=new Map;matchAliasPattern(e,r){let n=this.aliasRegexCache.get(e);if(!n){let s=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace("\\*","(.*)");n=new RegExp(`^${s}$`),this.aliasRegexCache.set(e,n)}return r.match(n)}tryAliasSubstitutions(e,r,n=this.rootDir){let s=["",".ts",".tsx",".js",".jsx",".coffee",".ls",".lua",".feature"];for(let o of e){let i=o.replace("*",r),a=G.resolve(n,i);for(let l of s){let p=this.tryExtensions(a,l,!1);if(p)return p}}return null}resolveWorkspaceImport(e){if(this.workspaceMap.size===0)return null;for(let[r,n]of this.workspaceMap){if(e!==r&&!e.startsWith(`${r}/`))continue;let s=e.slice(r.length),o={path:"",isExternal:!1,isWorkspace:!0,workspacePackage:r};if(!s){for(let a of["src/index.ts","src/index.tsx","index.ts","index.tsx","index.js"]){let l=G.join(n,a);try{if(nt.statSync(l,{throwIfNoEntry:!1})?.isFile())return{...o,path:l}}catch{}}return{...o,path:n}}let i=this.resolveLocalPath(G.join(n,"_dummy"),s.slice(1));return i?{...o,path:i.path}:null}return null}}});import Ce from"fs";import F from"path";import up from"piscina";function hp(t,e){if(t.length===0)return e;let r=t.map(i=>F.dirname(i).split(F.sep)),n=r[0];for(let i of r.slice(1)){let a=0;for(;a<n.length&&a<i.length&&n[a]===i[a];)a++;n=n.slice(0,a)}let s=n.join(F.sep)||F.sep,o=F.relative(e,s);return o.startsWith("..")||F.isAbsolute(o)?e:s}var gp,So,dp,ve,Co=m(()=>{"use strict";c();cr();J();ls();qs();ao();ae();br();gp=["tests","test","__tests__","specs","spec"],So=new Set(["node_modules",".git","dist","build",".next",".cache","mokosh-cache","coverage"]),dp=20;ve=class{constructor(e,r=null,n,s,o=!1,i=new Map,a=!0){this.rootDir=e;this.enableGitStats=o;this.coverageMap=i;this.parallelParsing=a;this.previousGraph=r,this.resolver=n||new U(e),this.lockFile=cs(e),s&&(this.progressCallback=s)}rootDir;enableGitStats;coverageMap;parallelParsing;graph={nodes:new Map};visited=new Set;queue=[];previousGraph=null;resolver;lockFile=null;progressCallback;pool=null;gitStatsMap=null;async build(e){let r=e.map(n=>F.isAbsolute(n)?n:F.resolve(this.rootDir,n));await this.initPool(),this.enableGitStats&&(this.gitStatsMap=os(this.rootDir));try{for(let n of r)this.enqueue(n);return await this.drain(),await this.processTestFiles(hp(r,this.rootDir)),await this.processDocFiles(),this.progressCallback&&this.visited.size>=100&&process.stderr.write(`
24
24
  Done. Total processed: ${this.visited.size} nodes.
25
- `),Zn(this.graph.nodes),Xn(this.graph.nodes),qn(this.graph.nodes),Yn(this.graph.nodes),this.coverageMap.size>0&&Qn(this.graph.nodes,this.coverageMap),new P(this.graph.nodes)}finally{this.pool&&(await this.pool.destroy(),this.pool=null)}}async initPool(){if(this.parallelParsing===!1)return;let e=typeof this.parallelParsing=="object"?this.parallelParsing:{},r=e.minFiles??op;if(!(r>0&&!this.hasAtLeastFiles(this.rootDir,r)))try{let s=F.join(f,"parse-worker.js");this.pool=new sp({filename:s,...e.maxThreads!==void 0?{maxThreads:e.maxThreads}:{}})}catch(s){process.stderr.write(`
26
- Warning: failed to start parse worker pool, falling back to synchronous parsing: ${s}
27
- `),this.pool=null}}hasAtLeastFiles(e,r){let s=0,n=[e];for(;n.length>0;){let o=n.pop(),i;try{i=be.readdirSync(o,{withFileTypes:!0})}catch{continue}for(let a of i)if(a.isDirectory())mo.has(a.name)||n.push(F.join(o,a.name));else if(a.isFile()&&(s++,s>=r))return!0}return s>=r}async processTestFiles(e){let r=se(),s=o=>r.some(i=>o.name.includes(i));this.walkProject(e,s);let n=e;for(;n!==this.rootDir;){let o=F.dirname(n);if(o===n)break;for(let i of np){let a=F.join(o,i);try{be.statSync(a).isDirectory()&&this.walkProject(a,s)}catch{}}n=o}await this.drain()}async processDocFiles(){this.walkProject(this.rootDir,e=>e.name.endsWith(".md")||e.name.endsWith(".mdx")),await this.drain()}walkProject(e,r){let s;try{s=be.readdirSync(e,{withFileTypes:!0})}catch{return}for(let n of s){let o=F.join(e,n.name);n.isDirectory()?mo.has(n.name)||this.walkProject(o,r):n.isFile()&&r(n)&&this.enqueue(o)}}enqueue(e){this.visited.has(e)||(this.visited.add(e),this.showProgress(),this.queue.push(e))}async drain(){for(;this.queue.length>0;){let e=this.queue;this.queue=[],await Promise.all(e.map(r=>this.finishFile(r)))}}async finishFile(e){let r=be.statSync(e,{throwIfNoEntry:!1});if(!r?.isFile())return;let s=F.relative(this.rootDir,e),n=await this.getNode(e,s,r);n.imports=await this.resolveImports(e,n.imports),Vn(n.imports,n.tags),this.graph.nodes.set(n.path,n)}async getNode(e,r,s){let n=this.previousGraph?.nodes.get(r);if(n&&n.mtime===s.mtimeMs&&n.size===s.size)return{...n};let o=await this.tryParse(e,r);if(!o)return this.makeStubNode(e,r,s);let i=this.resolveCallEdges(e,o.rawCallEdges),a=this.buildNode(e,r,s,o,i);return this.attachGitStats(a,r),a}async tryParse(e,r){let s=be.readFileSync(e,"utf-8");try{return await this.parseContent(e,s)}catch(n){return process.stderr.write(`
28
- Warning: failed to parse ${r}: ${n}
29
- `),null}}parseContent(e,r){return this.pool?this.pool.run({filePath:e,content:r}):Bn(e,r)}makeStubNode(e,r,s){return{path:r,type:R(e),category:"other",imports:[],exports:[],tags:[],mtime:s.mtimeMs,size:s.size}}resolveCallEdges(e,r){let s=[];for(let n of r??[])try{let o=this.resolver.resolve(e,n.toSpecifier);o&&!o.isExternal&&s.push({from:n.from,to:n.to,toFile:F.relative(this.rootDir,o.path)})}catch{}return s}buildNode(e,r,s,n,o){let{imports:i,exports:a,tags:l,category:p,description:h,complexity:d,cognitiveComplexity:S,functions:v}=n;return{path:r,type:R(e),category:p,imports:i,exports:a,tags:l,mtime:s.mtimeMs,size:s.size,...h!==void 0?{description:h}:{},...o.length>0?{callEdges:o}:{},...d!==void 0?{complexity:d}:{},...S!==void 0?{cognitiveComplexity:S}:{},...v!==void 0?{functions:v}:{}}}attachGitStats(e,r){let s=this.gitStatsMap?.get(r);s&&(e.commitCount90d=s.commitCount90d,s.lastAuthor!==void 0&&(e.lastAuthor=s.lastAuthor),s.lastCommitAt!==void 0&&(e.lastCommitAt=s.lastCommitAt))}async resolveImports(e,r){let s=[];for(let n of r){let o=this.resolver.resolveAll(e,n.rawSpecifier);if(o.length!==0)for(let i of o){let a={...n,toPath:i.isExternal?i.path:F.relative(this.rootDir,i.path),isExternal:i.isExternal};i.isWorkspace&&(a.isWorkspace=!0,a.workspacePackage=i.workspacePackage),i.isExternal?this.attachLockfileVersion(a):this.enqueue(i.path),s.push(a)}}return s}attachLockfileVersion(e){if(!this.lockFile)return;let r=e.rawSpecifier.startsWith("@")?e.rawSpecifier.split("/").slice(0,2).join("/"):e.rawSpecifier.split("/")[0],s=r?this.lockFile.dependencies[r]:void 0;s&&(e.version=s.version)}showProgress(){this.progressCallback&&this.visited.size%100===0&&this.progressCallback(this.visited.size)}}});var go=m(()=>{"use strict";c();St();uo();Ct();Et();Me();Ae();ie();hr();Gt();Oe();Wt();Jt();Kt()});var yr=m(()=>{"use strict";c();go()});function ho(t,e){return{identifier:e?.identifier??new Xe,featureMap:e?.featureDetection===!1?new Map:j(t.nodes,e?.featureDetection??void 0)}}function yo(t,e,r,s,n){for(let o of e){let i=t.nodes.get(o);if(!i)continue;let a=new _(o,["*",...i.exports.map(l=>l.name)]);t.traverse(o,(l,p,h)=>{if(!h)return!0;if(!a.updateAffectedSymbols(l,h))return!1;if(p>0){let d=r.get(l.path);if(d)return s(d),!1}return n(l),!0},{direction:"incoming"})}}function xr(t,e,r){let{identifier:s,featureMap:n}=ho(t,r),o=new Set;for(let i of e){let a=n.get(i);a&&o.add(a.tag)}return yo(t,e,n,i=>o.add(i.tag),i=>{if(s.isTestNode(i))for(let a of i.tags)o.add(a.name)}),Array.from(o)}function Sr(t,e,r){let{identifier:s,featureMap:n}=ho(t,r),o=new Set;return yo(t,e,n,()=>{},i=>{s.isTestNode(i)&&o.add(i.path)}),Array.from(o)}var xo=m(()=>{"use strict";c();yr();rr()});var So=m(()=>{"use strict";c();Xs();rr();xo()});import ap from"fs";import ve from"path";async function I(t,e,r=null,s={}){let n=s.silent?void 0:a=>{process.stderr.write(`Processed ${a} files...\r`)},o=ve.resolve(t);return await new Ce(o,r,s.pathAliases?new z(o,{pathAliases:s.pathAliases}):void 0,n,s.gitStats??!1,s.coverageMap??new Map,s.parallelParsing??!0).build(e)}async function bo(t,e={}){let r=ve.resolve(t),s=Bt(r),n=e.packages?s.packages.filter(a=>e.packages?.includes(a.name)||e.packages?.includes(a.relativeRoot)):s.packages,o=new Map(s.packages.map(a=>[a.name,a.root])),i=new pe(r,s.type);for(let a of n){let l=e.silent?void 0:d=>{process.stderr.write(`[${a.name}] Processed ${d} files...\r`)},h=await new Ce(r,null,new z(r,{workspaceMap:o,tsconfigSearchPaths:[a.root,r],pathAliases:e.pathAliases}),l,e.gitStats??!1,new Map,e.parallelParsing??!0).build(a.entryPoints);i.addPackage(a,h)}return i}function M(t,e={}){let r=[],s=new Set([...e.ignoreDirs??ut,...e.additionalIgnoreDirs??[]]),n=new Set([...e.extensions??gt,...e.additionalExtensions??[]]);function o(i){try{let a=ap.readdirSync(i,{withFileTypes:!0});for(let l of a){let p=ve.join(i,l.name);l.isDirectory()?s.has(l.name)||o(p):l.isFile()&&n.has(ve.extname(l.name).toLowerCase())&&r.push(ve.relative(t,p))}}catch{}}return o(t),r}var b=m(()=>{"use strict";c();mt();dt();Kr();Qr();St();Ct();Et();Me();Ae();Ft();ie();Rt();Gt();rs();Oe();Wt();Jt();_e();Kt();U();fe();Ts();So();dt();yr()});var Co,vo,ko=m(()=>{"use strict";c();Co="mokosh-cache",vo="graph.json"});import Ee from"path";import{parseArgs as cp}from"util";function lp(t){for(let e=0;e<t.length;e++)if(t[e]==="--root"&&t[e+1])return Ee.resolve(t[e+1]);return process.cwd()}function ke(t){return t?parseInt(t,10):void 0}function Eo(t){return t?t.split(",").map(e=>e.trim()):void 0}function fp(t){let e=[];for(let r=0;r<t.length;r++){let s=t[r];if(!s.startsWith("--"))e.push(s);else if(pp.has(s)){let n=t[r+1];n!==void 0&&!n.startsWith("--")&&(e.push(s,n),r++)}else s.slice(2)in br&&e.push(s)}return e}function wo(t){let e=lp(t),r=Ee.join(Ee.resolve(e,Co),vo),{values:s,positionals:n}=cp({args:fp(t),allowPositionals:!0,options:br}),o=s.cache,i=s.config,a=s.metric;return{rootDir:e,cachePath:o?Ee.resolve(e,o):r,configPath:i?Ee.resolve(e,i):void 0,query:s.query,file:s.file,typeFilter:s.type,functionName:s.function,filterPaths:Eo(s.paths),featureThreshold:ke(s["feature-threshold"]),minOutDegree:ke(s["min-out-degree"]),mermaid:s.mermaid??!1,proposeTags:s["propose-tags"]??!1,plain:s.plain??!1,affectedTests:s["affected-tests"]??!1,detectFeatures:s["detect-features"]??!1,findUnused:s["find-unused"]??!1,excludeTests:s["exclude-tests"]??!1,checkCycles:s["check-cycles"]??!1,checkDocDrift:s["check-doc-drift"]??!1,findUncovered:s["find-uncovered"]??!1,callers:s.callers??!1,silent:s.silent??!1,queryHelp:s["query-help"]??!1,help:t.length===0||(s.help??!1),typeGraph:s["type-graph"]??!1,moduleResponsibility:s["module-responsibility"]??!1,featureGraph:s["feature-graph"]??!1,callGraph:s["call-graph"]??!1,findSymbol:s["find-symbol"]??!1,apiSurface:s["api-surface"]??!1,applyTags:s["apply-tags"]??!1,dryRun:s["dry-run"]??!1,initSkill:s["init-skill"]??!1,initConfig:s["init-config"]??!1,force:s.force??!1,dependencies:s.dependencies??!1,dependents:s.dependents??!1,affected:s.affected??!1,testsOnly:s["tests-only"]??!1,changedSymbols:Eo(s["changed-symbols"]),cached:s.cached??!1,depth:ke(s.depth),withMeta:s["with-meta"]??!1,withEdgeDetail:s["with-edge-detail"]??!1,findComplexFunctions:s["find-complex-functions"]??!1,metric:a==="complexity"||a==="cognitiveComplexity"?a:void 0,complexityThreshold:ke(s["complexity-threshold"]),limit:ke(s.limit),workspacePackages:s["workspace-packages"]??!1,workspaceAffected:s["workspace-affected"]??!1,clearCache:s["clear-cache"]??!1,slim:s.slim??!1,watch:s.watch??!1,entryPoints:n}}var br,pp,Fo=m(()=>{"use strict";c();ko();br={root:{type:"string"},cache:{type:"string"},config:{type:"string"},query:{type:"string"},file:{type:"string"},type:{type:"string"},paths:{type:"string"},function:{type:"string"},"feature-threshold":{type:"string"},"min-out-degree":{type:"string"},mermaid:{type:"boolean"},"propose-tags":{type:"boolean"},plain:{type:"boolean"},"affected-tests":{type:"boolean"},"detect-features":{type:"boolean"},"find-unused":{type:"boolean"},"exclude-tests":{type:"boolean"},"check-cycles":{type:"boolean"},"check-doc-drift":{type:"boolean"},"find-uncovered":{type:"boolean"},callers:{type:"boolean"},silent:{type:"boolean"},"query-help":{type:"boolean"},help:{type:"boolean"},"type-graph":{type:"boolean"},"module-responsibility":{type:"boolean"},"feature-graph":{type:"boolean"},"call-graph":{type:"boolean"},"find-symbol":{type:"boolean"},"api-surface":{type:"boolean"},"apply-tags":{type:"boolean"},"dry-run":{type:"boolean"},"init-skill":{type:"boolean"},"init-config":{type:"boolean"},force:{type:"boolean"},dependencies:{type:"boolean"},dependents:{type:"boolean"},affected:{type:"boolean"},"tests-only":{type:"boolean"},"changed-symbols":{type:"string"},cached:{type:"boolean"},depth:{type:"string"},"with-meta":{type:"boolean"},"with-edge-detail":{type:"boolean"},"find-complex-functions":{type:"boolean"},metric:{type:"string"},"complexity-threshold":{type:"string"},limit:{type:"string"},"workspace-packages":{type:"boolean"},"workspace-affected":{type:"boolean"},"clear-cache":{type:"boolean"},slim:{type:"boolean"},watch:{type:"boolean"}},pp=new Set(Object.entries(br).filter(([,t])=>t.type==="string").map(([t])=>`--${t}`))});async function Cr(t){let{graph:e,file:r,testsOnly:s,changedSymbols:n,cached:o,withMeta:i}=t;r||(console.error("Error: --affected requires --file <path>"),process.exit(1));let a=h=>i?h.map(d=>({path:d,...W(e,d)})):h;if(o){let h=vt(e),d=kt(h,r),S=s?d.filter(L=>e.nodes.get(L)?.category==="test"):d,v=a(S);console.log(JSON.stringify({file:r,affected:v,count:v.length},null,2));return}let l=Tt(e,r,{testsOnly:s,changedSymbols:n}),p=a(l);console.log(JSON.stringify({file:r,affected:p,count:p.length},null,2))}var Po=m(()=>{"use strict";c();b()});import vr from"path";function $(t){return t.filter(e=>{let r=vr.basename(e).toLowerCase();return mp.some(s=>r.includes(s))})}function rt(t){return new Ye().getChangedFiles().map(e=>vr.relative(t,vr.resolve(t,e)))}var mp,st=m(()=>{"use strict";c();nr();mp=[".test.",".spec.","-test.","-spec."]});async function To(t){let{graph:e}=t,{rootDir:r,scanOptions:s,featureThreshold:n,rawConfig:o}=t,i=rt(r);if(![...e.nodes.values()].some(p=>$([p.path]).length>0)){let p=M(r,s);e=await I(r,$(p),e,k(o))}let l=Sr(e,i,{...n!==void 0&&{featureDetection:{minOutDegree:n}}});console.log(l.join(`
30
- `))}var No=m(()=>{"use strict";c();b();st()});async function Io(t){let{graph:e,rootDir:r,entryPoints:s}=t,n=s.length?s:yt(e,r);n.length===0&&(console.error("Error: No entry points found. Pass entry points as positional args or ensure package.json has a main/exports field."),process.exit(1));let o=xt(e,n);console.log(JSON.stringify(o,null,2))}var Mo=m(()=>{"use strict";c();b()});async function Ao(t){let{graph:e}=t,{rootDir:r,scanOptions:s,dryRun:n,plain:o,rawConfig:i}=t;if(o||console.log(n?"Dry run: computing tag changes...":"Applying tags to test files..."),e.nodes.size===0){let l=M(r,s);e=await I(r,$(l),e,k(i))}let a=await tr(e,r,{dryRun:n});console.log(JSON.stringify(a,null,2))}var Do=m(()=>{"use strict";c();b();st()});async function Ro(t){let{graph:e,functionName:r}=t;r||(console.error("Error: --call-graph requires --function <name>"),process.exit(1));let s=bt(e,r);console.log(JSON.stringify(s,null,2))}var Oo=m(()=>{"use strict";c();b()});async function kr(t){let{graph:e,file:r,plain:s,depth:n,withEdgeDetail:o}=t;r||(console.error("Error: --callers requires --file <path>"),process.exit(1));let i=Nt(e,r,{depth:n??1,withEdgeDetail:o});console.log(s?i.map(a=>a.file).join(`
31
- `):JSON.stringify({file:r,callers:i,count:i.length},null,2))}var Go=m(()=>{"use strict";c();b()});async function Er(t){let{graph:e}=t,r=e.findCycles();if(r.length>0){process.stderr.write(`Found ${r.length} cycle(s):
32
- `);for(let s of r)process.stderr.write(` ${s.join(" \u2192 ")}
33
- `);process.exit(1)}console.log("No cycles detected.")}var Lo=m(()=>{"use strict";c()});async function wr(t){let{graph:e}=t,r=[...e.nodes.values()].filter(s=>s.type==="markdown"&&s.staleFor&&s.staleFor.length>0).map(s=>({doc:s.path,staleFor:s.staleFor}));if(r.length>0){process.stderr.write(`Found ${r.length} doc(s) that may be out of date:
34
- `);for(let{doc:s,staleFor:n}of r)process.stderr.write(` ${s} \u2014 references changed more recently: ${n.join(", ")}
35
- `);process.exit(1)}console.log("No doc drift detected.")}var jo=m(()=>{"use strict";c()});import _o from"fs";function Wo(t){_o.existsSync(t)?(_o.unlinkSync(t),console.log(`Cache cleared: ${t}`)):console.log(`No cache file present at ${t}`)}var zo=m(()=>{"use strict";c()});async function Fr(t){let{graph:e,file:r,depth:s,withMeta:n}=t;r||(console.error("Error: --dependencies requires --file <path>"),process.exit(1));let o=Pt(e,r,s??1),i=n?o.map(a=>({...a,...W(e,a.path)})):o;console.log(JSON.stringify({file:r,dependencies:i},null,2))}var $o=m(()=>{"use strict";c();b()});async function Pr(t){let{graph:e,file:r,withMeta:s}=t;r||(console.error("Error: --dependents requires --file <path>"),process.exit(1));let n=ae(e,r),o=s?n.map(i=>({...i,...W(e,i.path)})):n;console.log(JSON.stringify({file:r,dependents:o},null,2))}var Uo=m(()=>{"use strict";c();b()});async function Bo(t){let{graph:e}=t,{rootDir:r,scanOptions:s,featureThreshold:n,rawConfig:o}=t;if(e.nodes.size===0){let l=M(r,s);e=await I(r,l,e,k(o))}let i=j(e.nodes,n!==void 0?{minOutDegree:n}:void 0),a=Array.from(i.values()).sort((l,p)=>p.outDegree-l.outDegree);console.log(JSON.stringify({features:a},null,2))}var Jo=m(()=>{"use strict";c();b()});async function Ko(t){let{graph:e}=t,{rootDir:r,scanOptions:s,minOutDegree:n,rawConfig:o}=t;if(e.nodes.size===0){let l=M(r,s);e=await I(r,l,e,k(o))}let i=ne(e,n!==void 0?{minOutDegree:n}:void 0),a=Object.fromEntries(i.features);console.log(JSON.stringify({features:a,unassigned:i.unassigned},null,2))}var Ho=m(()=>{"use strict";c();b()});async function Tr(t){let{graph:e,metric:r,complexityThreshold:s,limit:n}=t,o=s??10,i=It(e,{metric:r,threshold:o,limit:n});console.log(JSON.stringify({metric:r??"cognitiveComplexity",threshold:o,functions:i,count:i.length},null,2))}var Qo=m(()=>{"use strict";c();b()});async function Vo(t){let{graph:e,functionName:r,plain:s}=t;r||(console.error("Error: --find-symbol requires --function <name>"),process.exit(1));let n=Lt(e,r);console.log(s?n.map(o=>o.path).join(`
36
- `):JSON.stringify({name:r,matches:n,count:n.length},null,2))}var Xo=m(()=>{"use strict";c();b()});async function Nr(t){let{graph:e,featureThreshold:r,rawConfig:s,plain:n}=t,o=r??s.coverageThreshold??80;if(!Dt(e)){console.log(JSON.stringify({error:"No coverage data available. Set coverageReportPath in mokosh.config and rebuild the graph."},null,2));return}let i=[...e.nodes.values()].filter(a=>a.category!=="test"&&a.category!=="config").filter(a=>a.coveragePct!==void 0&&a.coveragePct<o).map(a=>({file:a.path,coveragePct:a.coveragePct}));console.log(n?i.map(a=>a.file).join(`
37
- `):JSON.stringify({threshold:o,uncovered:i,count:i.length},null,2))}var Yo=m(()=>{"use strict";c();b()});import up from"path";function dp(t){let e=up.basename(t).toLowerCase();return gp.some(r=>e.includes(r))}async function qo(t){let{graph:e,rootDir:r,scanOptions:s,excludeTests:n}=t,o=M(r,s),i=e.findUnusedFiles(o);n&&(i=i.filter(a=>!dp(a))),console.log(JSON.stringify({unusedFiles:i},null,2))}var gp,Zo=m(()=>{"use strict";c();b();gp=[".test.",".spec.","-test.","-spec.",".stories."]});async function Ir(t){let{graph:e,queryStr:r,mermaidOutput:s,slim:n}=t,o=e.serialize();if(r){let l=ze(r);o=We(o,l)}if(s){let l=P.deserialize(o);console.log(Ne.serialize(l));return}let i=e.findCycles();i.length>0&&(o.cycles=i);let a=wt(e);console.log(JSON.stringify(n?{...Mt(o),languageCoverage:a}:{...o,languageCoverage:a},null,2))}var ei=m(()=>{"use strict";c();b()});import hp from"fs";import Mr from"path";function nt(t,e,r){let s=t;for(let n=0;n<6;n++){let o=Mr.join(s,"templates",...e);if(hp.existsSync(Mr.join(o,r)))return o;let i=Mr.dirname(s);if(i===s)break;s=i}throw new Error(`Could not locate mokosh templates/${e.join("/")}`)}var Ar=m(()=>{"use strict";c()});import ti from"fs";import ri from"path";function si(t,e=process.cwd()){let r=nt(f,["config"],"mokosh.config.js"),s=ri.join(r,"mokosh.config.js"),n=ri.join(e,"mokosh.config.js");if(ti.existsSync(n)&&!t){console.log("skipped mokosh.config.js (already exists, use --force to overwrite)");return}ti.copyFileSync(s,n),console.log("wrote mokosh.config.js")}var ni=m(()=>{"use strict";c();Ar()});import Dr from"fs";import ot from"path";function oi(t,e=process.cwd()){let r=nt(f,["skill"],"SKILL.md");for(let s of yp){let n=ot.join(r,s.templateFile),o=ot.join(e,...s.destPath),i=ot.join(...s.destPath);if(Dr.existsSync(o)&&!t){console.log(`skipped ${i} (already exists, use --force to overwrite)`);continue}Dr.mkdirSync(ot.dirname(o),{recursive:!0}),Dr.copyFileSync(n,o),console.log(`wrote ${i}`)}}var yp,ii=m(()=>{"use strict";c();Ar();yp=[{templateFile:"SKILL.md",destPath:[".claude","skills","mokosh","SKILL.md"]},{templateFile:"mokosh.md",destPath:[".claude","commands","mokosh.md"]}]});async function ai(t){let{graph:e,filterPaths:r,minOutDegree:s}=t,n=Ot(e,s!==void 0?{minOutDegree:s}:void 0);if(r?.length){let o=r.map(i=>n.get(i)).filter(Boolean);console.log(JSON.stringify({count:o.length,modules:o},null,2))}else{let o=Array.from(n.values());console.log(JSON.stringify({count:o.length,modules:o},null,2))}}var ci=m(()=>{"use strict";c();b()});async function li(t){let{graph:e}=t,{rootDir:r,scanOptions:s,featureThreshold:n,plain:o,rawConfig:i}=t;o||console.log("Proposing test tags based on git diff...");let a=rt(r);if(e.nodes.size===0){let p=M(r,s);e=await I(r,$(p),e,k(i))}let l=xr(e,a,{...n!==void 0&&{featureDetection:{minOutDegree:n}}});console.log(o?l.join(" "):JSON.stringify({proposedTags:l},null,2))}var pi=m(()=>{"use strict";c();b();st()});async function fi(t){let{graph:e,typeFilter:r}=t,s=jt(e);if(r){let n=_t(s,r);console.log(JSON.stringify(n,null,2))}else{let n=Array.from(s.types.values());console.log(JSON.stringify({count:n.length,types:n},null,2))}}var mi=m(()=>{"use strict";c();b()});function ui(t,e){let r=t.getAffectedAcrossPackages(e);console.log(JSON.stringify({file:e,affected:r,count:r.length},null,2))}var gi=m(()=>{"use strict";c()});function di(t){console.log(JSON.stringify(At(t),null,2))}var hi=m(()=>{"use strict";c();b()});import Rr from"path";function yi(t){let{rootDir:e,entryPoints:r,cachePath:s,configPath:n}=t,o=n?B(n,{isExplicitPath:!0}):B(e),i=Rr.join(Rr.resolve(e,"mokosh-cache"),"graph.json"),a=r.length>0?r:o.entryPoints??[],l=s!==i?s??i:o.cachePath?Rr.resolve(e,o.cachePath):s??i,p={...o.ignoreDirs!==void 0&&{additionalIgnoreDirs:o.ignoreDirs},...o.extensions!==void 0&&{additionalExtensions:o.extensions}};return{rootDir:e,resolvedEntryPoints:a,resolvedCachePath:l,scanOptions:p,rawConfig:o}}var xi=m(()=>{"use strict";c();b()});import we from"fs";import xp from"path";function Si(t){if(!we.existsSync(t))return null;let e=we.readFileSync(t,"utf-8");return P.deserialize(JSON.parse(e))}function Or(t,e){let r=xp.dirname(e);we.existsSync(r)||we.mkdirSync(r,{recursive:!0}),we.writeFileSync(e,JSON.stringify(t.serialize(),null,2))}async function Gr(t,e,r,s={silent:!1,...k(void 0)}){return I(t,e,r,s)}var bi=m(()=>{"use strict";c();b()});var Ci,vi,ki=m(()=>{"use strict";c();Ci=`
25
+ `),io(this.graph.nodes),no(this.graph.nodes),oo(this.graph.nodes),so(this.graph.nodes),this.coverageMap.size>0&&to(this.graph.nodes,this.coverageMap),new P(this.graph.nodes)}finally{this.pool&&(await this.pool.destroy(),this.pool=null)}}async initPool(){if(this.parallelParsing===!1)return;let e=typeof this.parallelParsing=="object"?this.parallelParsing:{},r=e.minFiles??dp;if(!(r>0&&!this.hasAtLeastFiles(this.rootDir,r)))try{let n=F.join(f,"parse-worker.js");this.pool=new up({filename:n,...e.maxThreads!==void 0?{maxThreads:e.maxThreads}:{}})}catch(n){process.stderr.write(`
26
+ Warning: failed to start parse worker pool, falling back to synchronous parsing: ${n}
27
+ `),this.pool=null}}hasAtLeastFiles(e,r){let n=0,s=[e];for(;s.length>0;){let o=s.pop(),i;try{i=Ce.readdirSync(o,{withFileTypes:!0})}catch{continue}for(let a of i)if(a.isDirectory())So.has(a.name)||s.push(F.join(o,a.name));else if(a.isFile()&&(n++,n>=r))return!0}return n>=r}async processTestFiles(e){let r=se(),n=o=>r.some(i=>o.name.includes(i));this.walkProject(e,n);let s=e;for(;s!==this.rootDir;){let o=F.dirname(s);if(o===s)break;for(let i of gp){let a=F.join(o,i);try{Ce.statSync(a).isDirectory()&&this.walkProject(a,n)}catch{}}s=o}await this.drain()}async processDocFiles(){this.walkProject(this.rootDir,e=>e.name.endsWith(".md")||e.name.endsWith(".mdx")),await this.drain()}walkProject(e,r){let n;try{n=Ce.readdirSync(e,{withFileTypes:!0})}catch{return}for(let s of n){let o=F.join(e,s.name);s.isDirectory()?So.has(s.name)||this.walkProject(o,r):s.isFile()&&r(s)&&this.enqueue(o)}}enqueue(e){this.visited.has(e)||(this.visited.add(e),this.showProgress(),this.queue.push(e))}async drain(){for(;this.queue.length>0;){let e=this.queue;this.queue=[],await Promise.all(e.map(r=>this.finishFile(r)))}}async finishFile(e){let r=Ce.statSync(e,{throwIfNoEntry:!1});if(!r?.isFile())return;let n=F.relative(this.rootDir,e),s=await this.getNode(e,n,r);s.imports=await this.resolveImports(e,s.imports),ro(s.imports,s.tags),this.graph.nodes.set(s.path,s)}async getNode(e,r,n){let s=this.previousGraph?.nodes.get(r);if(s&&s.mtime===n.mtimeMs&&s.size===n.size)return{...s};let o=await this.tryParse(e,r);if(!o)return this.makeStubNode(e,r,n);let i=this.resolveCallEdges(e,o.rawCallEdges),a=this.buildNode(e,r,n,o,i);return this.attachGitStats(a,r),a}async tryParse(e,r){let n=Ce.readFileSync(e,"utf-8");try{return await this.parseContent(e,n)}catch(s){return process.stderr.write(`
28
+ Warning: failed to parse ${r}: ${s}
29
+ `),null}}parseContent(e,r){return this.pool?this.pool.run({filePath:e,content:r}):Ys(e,r)}makeStubNode(e,r,n){return{path:r,type:R(e),category:"other",imports:[],exports:[],tags:[],mtime:n.mtimeMs,size:n.size}}resolveCallEdges(e,r){let n=[];for(let s of r??[])try{let o=this.resolver.resolve(e,s.toSpecifier);o&&!o.isExternal&&n.push({from:s.from,to:s.to,toFile:F.relative(this.rootDir,o.path)})}catch{}return n}buildNode(e,r,n,s,o){let{imports:i,exports:a,tags:l,category:p,description:h,complexity:d,cognitiveComplexity:b,functions:v}=s;return{path:r,type:R(e),category:p,imports:i,exports:a,tags:l,mtime:n.mtimeMs,size:n.size,...h!==void 0?{description:h}:{},...o.length>0?{callEdges:o}:{},...d!==void 0?{complexity:d}:{},...b!==void 0?{cognitiveComplexity:b}:{},...v!==void 0?{functions:v}:{}}}attachGitStats(e,r){let n=this.gitStatsMap?.get(r);n&&(e.commitCount90d=n.commitCount90d,n.lastAuthor!==void 0&&(e.lastAuthor=n.lastAuthor),n.lastCommitAt!==void 0&&(e.lastCommitAt=n.lastCommitAt))}async resolveImports(e,r){let n=[];for(let s of r){let o=this.resolver.resolveAll(e,s.rawSpecifier);if(o.length!==0)for(let i of o){let a={...s,toPath:i.isExternal?i.path:F.relative(this.rootDir,i.path),isExternal:i.isExternal};i.isWorkspace&&(a.isWorkspace=!0,a.workspacePackage=i.workspacePackage),i.isExternal?this.attachLockfileVersion(a):this.enqueue(i.path),n.push(a)}}return n}attachLockfileVersion(e){if(!this.lockFile)return;let r=e.rawSpecifier.startsWith("@")?e.rawSpecifier.split("/").slice(0,2).join("/"):e.rawSpecifier.split("/")[0],n=r?this.lockFile.dependencies[r]:void 0;n&&(e.version=n.version)}showProgress(){this.progressCallback&&this.visited.size%100===0&&this.progressCallback(this.visited.size)}}});var vo=m(()=>{"use strict";c();kt();Co();wt();Tt();Ae();De();ae();br();Wt();Le();Bt();Qt();Xt()});var Sr=m(()=>{"use strict";c();vo()});function ko(t,e){return{identifier:e?.identifier??new Ye,featureMap:e?.featureDetection===!1?new Map:_(t.nodes,e?.featureDetection??void 0)}}function Eo(t,e,r,n,s){for(let o of e){let i=t.nodes.get(o);if(!i)continue;let a=new W(o,["*",...i.exports.map(l=>l.name)]);t.traverse(o,(l,p,h)=>{if(!h)return!0;if(!a.updateAffectedSymbols(l,h))return!1;if(p>0){let d=r.get(l.path);if(d)return n(d),!1}return s(l),!0},{direction:"incoming"})}}function Cr(t,e,r){let{identifier:n,featureMap:s}=ko(t,r),o=new Set;for(let i of e){let a=s.get(i);a&&o.add(a.tag)}return Eo(t,e,s,i=>o.add(i.tag),i=>{if(n.isTestNode(i))for(let a of i.tags)o.add(a.name)}),Array.from(o)}function vr(t,e,r){let{identifier:n,featureMap:s}=ko(t,r),o=new Set;return Eo(t,e,s,()=>{},i=>{n.isTestNode(i)&&o.add(i.path)}),Array.from(o)}var wo=m(()=>{"use strict";c();Sr();ir()});var Fo=m(()=>{"use strict";c();ts();ir();wo()});import yp from"fs";import ke from"path";async function I(t,e,r=null,n={}){let s=n.silent?void 0:a=>{process.stderr.write(`Processed ${a} files...\r`)},o=ke.resolve(t);return await new ve(o,r,n.pathAliases?new U(o,{pathAliases:n.pathAliases}):void 0,s,n.gitStats??!1,n.coverageMap??new Map,n.parallelParsing??!0).build(e)}async function Po(t,e={}){let r=ke.resolve(t),n=Vt(r),s=e.packages?n.packages.filter(a=>e.packages?.includes(a.name)||e.packages?.includes(a.relativeRoot)):n.packages,o=new Map(n.packages.map(a=>[a.name,a.root])),i=new fe(r,n.type);for(let a of s){let l=e.silent?void 0:d=>{process.stderr.write(`[${a.name}] Processed ${d} files...\r`)},h=await new ve(r,null,new U(r,{workspaceMap:o,tsconfigSearchPaths:[a.root,r],pathAliases:e.pathAliases}),l,e.gitStats??!1,new Map,e.parallelParsing??!0).build(a.entryPoints);i.addPackage(a,h)}return i}function M(t,e={}){let r=[],n=new Set([...e.ignoreDirs??yt,...e.additionalIgnoreDirs??[]]),s=new Set([...e.extensions??xt,...e.additionalExtensions??[]]);function o(i){try{let a=yp.readdirSync(i,{withFileTypes:!0});for(let l of a){let p=ke.join(i,l.name);l.isDirectory()?n.has(l.name)||o(p):l.isFile()&&s.has(ke.extname(l.name).toLowerCase())&&r.push(ke.relative(t,p))}}catch{}}return o(t),r}var S=m(()=>{"use strict";c();ht();bt();Xr();qr();kt();wt();Tt();Ae();De();It();ae();jt();Wt();an();Le();Bt();Qt();We();Xt();J();me();Dn();Fo();bt();Sr()});var st,ot,kr=m(()=>{"use strict";c();st="mokosh-cache",ot="graph.json"});import we from"path";import{parseArgs as xp}from"util";function bp(t){for(let e=0;e<t.length;e++)if(t[e]==="--root"&&t[e+1])return we.resolve(t[e+1]);return process.cwd()}function Ee(t){return t?parseInt(t,10):void 0}function To(t){return t?t.split(",").map(e=>e.trim()):void 0}function Cp(t){let e=[];for(let r=0;r<t.length;r++){let n=t[r];if(!n.startsWith("--"))e.push(n);else if(Sp.has(n)){let s=t[r+1];s!==void 0&&!s.startsWith("--")&&(e.push(n,s),r++)}else n.slice(2)in Er&&e.push(n)}return e}function No(t){let e=bp(t),r=we.join(we.resolve(e,st),ot),{values:n,positionals:s}=xp({args:Cp(t),allowPositionals:!0,options:Er}),o=n.cache,i=n.config,a=n.metric;return{rootDir:e,cachePath:o?we.resolve(e,o):r,configPath:i?we.resolve(e,i):void 0,query:n.query,file:n.file,typeFilter:n.type,functionName:n.function,filterPaths:To(n.paths),featureThreshold:Ee(n["feature-threshold"]),minOutDegree:Ee(n["min-out-degree"]),mermaid:n.mermaid??!1,proposeTags:n["propose-tags"]??!1,plain:n.plain??!1,affectedTests:n["affected-tests"]??!1,detectFeatures:n["detect-features"]??!1,findUnused:n["find-unused"]??!1,excludeTests:n["exclude-tests"]??!1,checkCycles:n["check-cycles"]??!1,checkDocDrift:n["check-doc-drift"]??!1,findUncovered:n["find-uncovered"]??!1,callers:n.callers??!1,silent:n.silent??!1,queryHelp:n["query-help"]??!1,help:t.length===0||(n.help??!1),typeGraph:n["type-graph"]??!1,moduleResponsibility:n["module-responsibility"]??!1,featureGraph:n["feature-graph"]??!1,callGraph:n["call-graph"]??!1,findSymbol:n["find-symbol"]??!1,apiSurface:n["api-surface"]??!1,applyTags:n["apply-tags"]??!1,dryRun:n["dry-run"]??!1,initSkill:n["init-skill"]??!1,initConfig:n["init-config"]??!1,force:n.force??!1,dependencies:n.dependencies??!1,dependents:n.dependents??!1,affected:n.affected??!1,testsOnly:n["tests-only"]??!1,changedSymbols:To(n["changed-symbols"]),cached:n.cached??!1,depth:Ee(n.depth),withMeta:n["with-meta"]??!1,withEdgeDetail:n["with-edge-detail"]??!1,findComplexFunctions:n["find-complex-functions"]??!1,metric:a==="complexity"||a==="cognitiveComplexity"?a:void 0,complexityThreshold:Ee(n["complexity-threshold"]),limit:Ee(n.limit),workspacePackages:n["workspace-packages"]??!1,workspaceAffected:n["workspace-affected"]??!1,clearCache:n["clear-cache"]??!1,slim:n.slim??!1,watch:n.watch??!1,entryPoints:s}}var Er,Sp,Io=m(()=>{"use strict";c();kr();Er={root:{type:"string"},cache:{type:"string"},config:{type:"string"},query:{type:"string"},file:{type:"string"},type:{type:"string"},paths:{type:"string"},function:{type:"string"},"feature-threshold":{type:"string"},"min-out-degree":{type:"string"},mermaid:{type:"boolean"},"propose-tags":{type:"boolean"},plain:{type:"boolean"},"affected-tests":{type:"boolean"},"detect-features":{type:"boolean"},"find-unused":{type:"boolean"},"exclude-tests":{type:"boolean"},"check-cycles":{type:"boolean"},"check-doc-drift":{type:"boolean"},"find-uncovered":{type:"boolean"},callers:{type:"boolean"},silent:{type:"boolean"},"query-help":{type:"boolean"},help:{type:"boolean"},"type-graph":{type:"boolean"},"module-responsibility":{type:"boolean"},"feature-graph":{type:"boolean"},"call-graph":{type:"boolean"},"find-symbol":{type:"boolean"},"api-surface":{type:"boolean"},"apply-tags":{type:"boolean"},"dry-run":{type:"boolean"},"init-skill":{type:"boolean"},"init-config":{type:"boolean"},force:{type:"boolean"},dependencies:{type:"boolean"},dependents:{type:"boolean"},affected:{type:"boolean"},"tests-only":{type:"boolean"},"changed-symbols":{type:"string"},cached:{type:"boolean"},depth:{type:"string"},"with-meta":{type:"boolean"},"with-edge-detail":{type:"boolean"},"find-complex-functions":{type:"boolean"},metric:{type:"string"},"complexity-threshold":{type:"string"},limit:{type:"string"},"workspace-packages":{type:"boolean"},"workspace-affected":{type:"boolean"},"clear-cache":{type:"boolean"},slim:{type:"boolean"},watch:{type:"boolean"}},Sp=new Set(Object.entries(Er).filter(([,t])=>t.type==="string").map(([t])=>`--${t}`))});async function wr(t){let{graph:e,file:r,testsOnly:n,changedSymbols:s,cached:o,withMeta:i}=t;r||(console.error("Error: --affected requires --file <path>"),process.exit(1));let a=h=>i?h.map(d=>({path:d,...z(e,d)})):h;if(o){let h=Ft(e),d=Pt(h,r),b=n?d.filter(j=>e.nodes.get(j)?.category==="test"):d,v=a(b);console.log(JSON.stringify({file:r,affected:v,count:v.length},null,2));return}let l=At(e,r,{testsOnly:n,changedSymbols:s}),p=a(l);console.log(JSON.stringify({file:r,affected:p,count:p.length},null,2))}var Mo=m(()=>{"use strict";c();S()});import Fr from"path";function B(t){return t.filter(e=>{let r=Fr.basename(e).toLowerCase();return vp.some(n=>r.includes(n))})}function it(t){return new qe().getChangedFiles().map(e=>Fr.relative(t,Fr.resolve(t,e)))}var vp,at=m(()=>{"use strict";c();cr();vp=[".test.",".spec.","-test.","-spec."]});async function Ao(t){let{graph:e}=t,{rootDir:r,scanOptions:n,featureThreshold:s,rawConfig:o}=t,i=it(r);if(![...e.nodes.values()].some(p=>B([p.path]).length>0)){let p=M(r,n);e=await I(r,B(p),e,k(o))}let l=vr(e,i,{...s!==void 0&&{featureDetection:{minOutDegree:s}}});console.log(l.join(`
30
+ `))}var Do=m(()=>{"use strict";c();S();at()});async function Ro(t){let{graph:e,rootDir:r,entryPoints:n}=t,s=n.length?n:Ct(e,r);s.length===0&&(console.error("Error: No entry points found. Pass entry points as positional args or ensure package.json has a main/exports field."),process.exit(1));let o=vt(e,s);console.log(JSON.stringify(o,null,2))}var Oo=m(()=>{"use strict";c();S()});async function Lo(t){let{graph:e}=t,{rootDir:r,scanOptions:n,dryRun:s,plain:o,rawConfig:i}=t;if(o||console.log(s?"Dry run: computing tag changes...":"Applying tags to test files..."),e.nodes.size===0){let l=M(r,n);e=await I(r,B(l),e,k(i))}let a=await or(e,r,{dryRun:s});console.log(JSON.stringify(a,null,2))}var Go=m(()=>{"use strict";c();S();at()});async function jo(t){let{graph:e,functionName:r}=t;r||(console.error("Error: --call-graph requires --function <name>"),process.exit(1));let n=Et(e,r);console.log(JSON.stringify(n,null,2))}var _o=m(()=>{"use strict";c();S()});async function Pr(t){let{graph:e,file:r,plain:n,depth:s,withEdgeDetail:o}=t;r||(console.error("Error: --callers requires --file <path>"),process.exit(1));let i=Dt(e,r,{depth:s??1,withEdgeDetail:o});console.log(n?i.map(a=>a.file).join(`
31
+ `):JSON.stringify({file:r,callers:i,count:i.length},null,2))}var Wo=m(()=>{"use strict";c();S()});async function Tr(t){let{graph:e}=t,r=e.findCycles();if(r.length>0){process.stderr.write(`Found ${r.length} cycle(s):
32
+ `);for(let n of r)process.stderr.write(` ${n.join(" \u2192 ")}
33
+ `);process.exit(1)}console.log("No cycles detected.")}var zo=m(()=>{"use strict";c()});async function Nr(t){let{graph:e}=t,r=[...e.nodes.values()].filter(n=>n.type==="markdown"&&n.staleFor&&n.staleFor.length>0).map(n=>({doc:n.path,staleFor:n.staleFor}));if(r.length>0){process.stderr.write(`Found ${r.length} doc(s) that may be out of date:
34
+ `);for(let{doc:n,staleFor:s}of r)process.stderr.write(` ${n} \u2014 references changed more recently: ${s.join(", ")}
35
+ `);process.exit(1)}console.log("No doc drift detected.")}var $o=m(()=>{"use strict";c()});import Uo from"fs";function Bo(t){Uo.existsSync(t)?(Uo.unlinkSync(t),console.log(`Cache cleared: ${t}`)):console.log(`No cache file present at ${t}`)}var Jo=m(()=>{"use strict";c()});async function Ir(t){let{graph:e,file:r,depth:n,withMeta:s}=t;r||(console.error("Error: --dependencies requires --file <path>"),process.exit(1));let o=Mt(e,r,n??1),i=s?o.map(a=>({...a,...z(e,a.path)})):o;console.log(JSON.stringify({file:r,dependencies:i},null,2))}var Ko=m(()=>{"use strict";c();S()});async function Mr(t){let{graph:e,file:r,withMeta:n}=t;r||(console.error("Error: --dependents requires --file <path>"),process.exit(1));let s=ce(e,r),o=n?s.map(i=>({...i,...z(e,i.path)})):s;console.log(JSON.stringify({file:r,dependents:o},null,2))}var Ho=m(()=>{"use strict";c();S()});async function Vo(t){let{graph:e}=t,{rootDir:r,scanOptions:n,featureThreshold:s,rawConfig:o}=t;if(e.nodes.size===0){let l=M(r,n);e=await I(r,l,e,k(o))}let i=_(e.nodes,s!==void 0?{minOutDegree:s}:void 0),a=Array.from(i.values()).sort((l,p)=>p.outDegree-l.outDegree);console.log(JSON.stringify({features:a},null,2))}var Qo=m(()=>{"use strict";c();S()});async function Xo(t){let{graph:e}=t,{rootDir:r,scanOptions:n,minOutDegree:s,rawConfig:o}=t;if(e.nodes.size===0){let l=M(r,n);e=await I(r,l,e,k(o))}let i=oe(e,s!==void 0?{minOutDegree:s}:void 0),a=Object.fromEntries(i.features);console.log(JSON.stringify({features:a,unassigned:i.unassigned},null,2))}var Yo=m(()=>{"use strict";c();S()});async function Ar(t){let{graph:e,metric:r,complexityThreshold:n,limit:s}=t,o=n??10,i=Rt(e,{metric:r,threshold:o,limit:s});console.log(JSON.stringify({metric:r??"cognitiveComplexity",threshold:o,functions:i,count:i.length},null,2))}var qo=m(()=>{"use strict";c();S()});async function Zo(t){let{graph:e,functionName:r,plain:n}=t;r||(console.error("Error: --find-symbol requires --function <name>"),process.exit(1));let s=zt(e,r);console.log(n?s.map(o=>o.path).join(`
36
+ `):JSON.stringify({name:r,matches:s,count:s.length},null,2))}var ei=m(()=>{"use strict";c();S()});async function Dr(t){let{graph:e,featureThreshold:r,rawConfig:n,plain:s}=t,o=r??n.coverageThreshold??80;if(!Gt(e)){console.log(JSON.stringify({error:"No coverage data available. Set coverageReportPath in mokosh.config and rebuild the graph."},null,2));return}let i=[...e.nodes.values()].filter(a=>a.category!=="test"&&a.category!=="config").filter(a=>a.coveragePct!==void 0&&a.coveragePct<o).map(a=>({file:a.path,coveragePct:a.coveragePct}));console.log(s?i.map(a=>a.file).join(`
37
+ `):JSON.stringify({threshold:o,uncovered:i,count:i.length},null,2))}var ti=m(()=>{"use strict";c();S()});import kp from"path";function wp(t){let e=kp.basename(t).toLowerCase();return Ep.some(r=>e.includes(r))}async function ri(t){let{graph:e,rootDir:r,scanOptions:n,excludeTests:s}=t,o=M(r,n),i=e.findUnusedFiles(o);s&&(i=i.filter(a=>!wp(a))),console.log(JSON.stringify({unusedFiles:i},null,2))}var Ep,ni=m(()=>{"use strict";c();S();Ep=[".test.",".spec.","-test.","-spec.",".stories."]});async function Rr(t){let{graph:e,queryStr:r,mermaidOutput:n,slim:s}=t,o=e.serialize();if(r){let l=$e(r);o=ze(o,l)}if(n){let l=P.deserialize(o);console.log(Ie.serialize(l));return}let i=e.findCycles();i.length>0&&(o.cycles=i);let a=Nt(e);console.log(JSON.stringify(s?{...Ot(o),languageCoverage:a}:{...o,languageCoverage:a},null,2))}var si=m(()=>{"use strict";c();S()});import Fp from"fs";import Or from"path";function ct(t,e,r){let n=t;for(let s=0;s<6;s++){let o=Or.join(n,"templates",...e);if(Fp.existsSync(Or.join(o,r)))return o;let i=Or.dirname(n);if(i===n)break;n=i}throw new Error(`Could not locate mokosh templates/${e.join("/")}`)}var Lr=m(()=>{"use strict";c()});import oi from"fs";import ii from"path";function ai(t,e=process.cwd()){let r=ct(f,["config"],"mokosh.config.js"),n=ii.join(r,"mokosh.config.js"),s=ii.join(e,"mokosh.config.js");if(oi.existsSync(s)&&!t){console.log("skipped mokosh.config.js (already exists, use --force to overwrite)");return}oi.copyFileSync(n,s),console.log("wrote mokosh.config.js")}var ci=m(()=>{"use strict";c();Lr()});import Gr from"fs";import lt from"path";function li(t,e=process.cwd()){let r=ct(f,["skill"],"SKILL.md");for(let n of Pp){let s=lt.join(r,n.templateFile),o=lt.join(e,...n.destPath),i=lt.join(...n.destPath);if(Gr.existsSync(o)&&!t){console.log(`skipped ${i} (already exists, use --force to overwrite)`);continue}Gr.mkdirSync(lt.dirname(o),{recursive:!0}),Gr.copyFileSync(s,o),console.log(`wrote ${i}`)}}var Pp,pi=m(()=>{"use strict";c();Lr();Pp=[{templateFile:"SKILL.md",destPath:[".claude","skills","mokosh","SKILL.md"]},{templateFile:"mokosh.md",destPath:[".claude","commands","mokosh.md"]}]});async function fi(t){let{graph:e,filterPaths:r,minOutDegree:n}=t,s=_t(e,n!==void 0?{minOutDegree:n}:void 0);if(r?.length){let o=r.map(i=>s.get(i)).filter(Boolean);console.log(JSON.stringify({count:o.length,modules:o},null,2))}else{let o=Array.from(s.values());console.log(JSON.stringify({count:o.length,modules:o},null,2))}}var mi=m(()=>{"use strict";c();S()});async function ui(t){let{graph:e}=t,{rootDir:r,scanOptions:n,featureThreshold:s,plain:o,rawConfig:i}=t;o||console.log("Proposing test tags based on git diff...");let a=it(r);if(e.nodes.size===0){let p=M(r,n);e=await I(r,B(p),e,k(i))}let l=Cr(e,a,{...s!==void 0&&{featureDetection:{minOutDegree:s}}});console.log(o?l.join(" "):JSON.stringify({proposedTags:l},null,2))}var gi=m(()=>{"use strict";c();S();at()});async function di(t){let{graph:e,typeFilter:r}=t,n=$t(e);if(r){let s=Ut(n,r);console.log(JSON.stringify(s,null,2))}else{let s=Array.from(n.types.values());console.log(JSON.stringify({count:s.length,types:s},null,2))}}var hi=m(()=>{"use strict";c();S()});function yi(t,e){let r=t.getAffectedAcrossPackages(e);console.log(JSON.stringify({file:e,affected:r,count:r.length},null,2))}var xi=m(()=>{"use strict";c()});function bi(t){console.log(JSON.stringify(Lt(t),null,2))}var Si=m(()=>{"use strict";c();S()});import jr from"path";function Tp(t,e,r,n){return t!==e?t:r?jr.resolve(n,r):e}function Ci(t){let{rootDir:e,entryPoints:r,cachePath:n,configPath:s}=t,o=s?K(s,{isExplicitPath:!0}):K(e),i=jr.join(jr.resolve(e,st),ot),a=r.length>0?r:o.entryPoints??[],l=Tp(n,i,o.cachePath,e),p={...o.ignoreDirs!==void 0&&{additionalIgnoreDirs:o.ignoreDirs},...o.extensions!==void 0&&{additionalExtensions:o.extensions}};return{rootDir:e,resolvedEntryPoints:a,resolvedCachePath:l,scanOptions:p,rawConfig:o}}var vi=m(()=>{"use strict";c();S();kr()});import Fe from"fs";import Np from"path";function ki(t){if(!Fe.existsSync(t))return null;let e=Fe.readFileSync(t,"utf-8");return P.deserialize(JSON.parse(e))}function _r(t,e){let r=Np.dirname(e);Fe.existsSync(r)||Fe.mkdirSync(r,{recursive:!0}),Fe.writeFileSync(e,JSON.stringify(t.serialize(),null,2))}async function Wr(t,e,r,n={silent:!1,...k(void 0)}){return I(t,e,r,n)}var Ei=m(()=>{"use strict";c();S()});var wi,Fi,Pi=m(()=>{"use strict";c();wi=`
38
38
  Usage: mokosh [options] <entry-point1> <entry-point2> ...
39
39
 
40
40
  Options:
@@ -111,7 +111,7 @@ Notes:
111
111
  server only loads JSON config (allowJs: false) for security. This is intentional.
112
112
  --workspace-packages/--workspace-affected require explicit opt-in (unlike MCP's analyze tool,
113
113
  which auto-detects a monorepo when entryPoints is empty); other commands remain single-package.
114
- `,vi=`
114
+ `,Fi=`
115
115
  Query filter reference (--query "key:value,key:value,...")
116
116
  All keys are case-insensitive. Multiple keys are AND'd together.
117
117
 
@@ -234,5 +234,5 @@ COMMON PATTERNS
234
234
 
235
235
  Large TypeScript logic files:
236
236
  --query "type:typescript,category:logic,sort:size,limit:5"
237
- `});var Ei,wi=m(()=>{"use strict";c();Ei=/(?:^|[/\\])(?:node_modules|\.git|dist|build|coverage)(?:[/\\]|$)/});import Sp from"fs";function Fi(t,e,r){let s=null,n=!1,o=!1,i=async()=>{if(n){o=!0;return}n=!0;try{await r()}finally{n=!1,o&&(o=!1,i())}};i();let a=null;try{a=Sp.watch(t,{recursive:!0},(l,p)=>{!p||Ei.test(p)||(s&&clearTimeout(s),s=setTimeout(()=>{i()},e))})}catch(l){console.error(`Warning: unable to watch ${t}: ${l.message}`)}process.on("SIGINT",()=>{s&&clearTimeout(s),a?.close(),process.exit(0)})}var Pi=m(()=>{"use strict";c();wi()});function Cp(t){t.help&&(console.log(Ci),process.exit(0)),t.queryHelp&&(console.log(vi),process.exit(0)),t.initSkill&&(oi(t.force),process.exit(0)),t.initConfig&&(si(t.force),process.exit(0)),t.clearCache&&(Wo(t.cachePath),process.exit(0))}async function vp(t,e,r){if(!t.workspacePackages&&!t.workspaceAffected)return!1;t.watch&&(console.error("Error: --watch is not supported with --workspace-packages/--workspace-affected"),process.exit(1));let s=await bo(r,k(e.rawConfig));return t.workspacePackages?di(s):(t.file||(console.error("Error: --workspace-affected requires --file <path>"),process.exit(1)),ui(s,t.file)),!0}function kp(t){return t.proposeTags||t.affectedTests||t.applyTags||t.callers||t.dependencies||t.dependents||t.affected||t.findUncovered||t.findComplexFunctions||t.typeGraph||t.moduleResponsibility||t.callGraph||t.findSymbol||t.apiSurface}function Ep(t){let r=[{name:"--propose-tags",flag:t.proposeTags,handler:li},{name:"--apply-tags",flag:t.applyTags,handler:Ao},{name:"--affected-tests",flag:t.affectedTests,handler:To},{name:"--detect-features",flag:t.detectFeatures,handler:Bo},{name:"--find-unused",flag:t.findUnused,handler:qo},{name:"--check-cycles",flag:t.checkCycles,handler:Er},{name:"--check-doc-drift",flag:t.checkDocDrift,handler:wr},{name:"--find-uncovered",flag:t.findUncovered,handler:Nr},{name:"--callers",flag:t.callers,handler:kr},{name:"--dependencies",flag:t.dependencies,handler:Fr},{name:"--dependents",flag:t.dependents,handler:Pr},{name:"--affected",flag:t.affected,handler:Cr},{name:"--find-complex-functions",flag:t.findComplexFunctions,handler:Tr},{name:"--type-graph",flag:t.typeGraph,handler:fi},{name:"--module-responsibility",flag:t.moduleResponsibility,handler:ai},{name:"--feature-graph",flag:t.featureGraph,handler:Ko},{name:"--call-graph",flag:t.callGraph,handler:Ro},{name:"--find-symbol",flag:t.findSymbol,handler:Vo},{name:"--api-surface",flag:t.apiSurface,handler:Io}].filter(s=>s.flag);return r.length>1&&(console.error(`Error: conflicting flags: ${r.map(s=>s.name).join(", ")} (pass only one command flag)`),process.exit(1)),r[0]?.handler??Ir}async function wp(t,e,r,s,n,o,i){bp.has(t)||(console.error("Error: --watch is only supported with the default output, --query, --callers, --dependencies, --dependents, --affected, --find-uncovered, --find-complex-functions, --check-cycles, and --check-doc-drift"),process.exit(1)),Fi(r,300,async()=>{let a=await Gr(r,s,e.graph,{silent:o,...k(i)});Or(a,n),console.log(`--- rebuilt at ${new Date().toISOString()} ---`),await t({...e,graph:a})})}async function Ti(){let t=process.argv.slice(2),e=wo(t);Cp(e);let r=yi(e);ft(r.rawConfig);let{rootDir:s,resolvedEntryPoints:n,resolvedCachePath:o,scanOptions:i}=r;if(await vp(e,r,s))return;let a=kp(e),l=Si(o)??new P(new Map);(n.length>0||!a)&&(n.length===0&&!a&&!e.findUnused&&!e.detectFeatures&&!e.checkCycles&&!e.checkDocDrift&&(console.error("Error: No entry points provided"),process.exit(1)),l=await Gr(s,n,l,{silent:e.silent,...k(r.rawConfig)}),Or(l,o));let p={graph:l,rootDir:s,entryPoints:n.map(d=>d.replace(s+"/","")),scanOptions:i,rawConfig:r.rawConfig,featureThreshold:e.featureThreshold,queryStr:e.query,mermaidOutput:e.mermaid,plain:e.plain,excludeTests:e.excludeTests,file:e.file,typeFilter:e.typeFilter,filterPaths:e.filterPaths,minOutDegree:e.minOutDegree,functionName:e.functionName,dryRun:e.dryRun,depth:e.depth,cached:e.cached,changedSymbols:e.changedSymbols,withMeta:e.withMeta,withEdgeDetail:e.withEdgeDetail,metric:e.metric,complexityThreshold:e.complexityThreshold,limit:e.limit,slim:e.slim,testsOnly:e.testsOnly},h=Ep(e);if(e.watch){await wp(h,p,s,n,o,e.silent,r.rawConfig);return}await h(p)}var bp,Ni=m(()=>{"use strict";c();b();Fo();Po();No();Mo();Do();Oo();Go();Lo();jo();zo();$o();Uo();Jo();Ho();Qo();Xo();Yo();Zo();ei();ni();ii();ci();pi();mi();gi();hi();xi();bi();ki();Pi();bp=new Set([Ir,kr,Fr,Pr,Cr,Nr,Tr,Er,wr])});var Fp=Ii(()=>{c();Ni();Ti().catch(t=>{console.error(t),process.exit(1)})});export default Fp();
237
+ `});var Ti,Ni=m(()=>{"use strict";c();Ti=/(?:^|[/\\])(?:node_modules|\.git|dist|build|coverage)(?:[/\\]|$)/});import Ip from"fs";function Ii(t,e,r){let n=null,s=!1,o=!1,i=async()=>{if(s){o=!0;return}s=!0;try{await r()}finally{s=!1,o&&(o=!1,i())}};i();let a=null;try{a=Ip.watch(t,{recursive:!0},(l,p)=>{!p||Ti.test(p)||(n&&clearTimeout(n),n=setTimeout(()=>{i()},e))})}catch(l){console.error(`Warning: unable to watch ${t}: ${l.message}`)}process.on("SIGINT",()=>{n&&clearTimeout(n),a?.close(),process.exit(0)})}var Mi=m(()=>{"use strict";c();Ni()});function Ap(t){t.help&&(console.log(wi),process.exit(0)),t.queryHelp&&(console.log(Fi),process.exit(0)),t.initSkill&&(li(t.force),process.exit(0)),t.initConfig&&(ai(t.force),process.exit(0)),t.clearCache&&(Bo(t.cachePath),process.exit(0))}async function Dp(t,e,r){if(!t.workspacePackages&&!t.workspaceAffected)return!1;t.watch&&(console.error("Error: --watch is not supported with --workspace-packages/--workspace-affected"),process.exit(1));let n=await Po(r,k(e.rawConfig));return t.workspacePackages?bi(n):(t.file||(console.error("Error: --workspace-affected requires --file <path>"),process.exit(1)),yi(n,t.file)),!0}function Rp(t){return t.proposeTags||t.affectedTests||t.applyTags||t.callers||t.dependencies||t.dependents||t.affected||t.findUncovered||t.findComplexFunctions||t.typeGraph||t.moduleResponsibility||t.callGraph||t.findSymbol||t.apiSurface}function Op(t){let r=[{name:"--propose-tags",flag:t.proposeTags,handler:ui},{name:"--apply-tags",flag:t.applyTags,handler:Lo},{name:"--affected-tests",flag:t.affectedTests,handler:Ao},{name:"--detect-features",flag:t.detectFeatures,handler:Vo},{name:"--find-unused",flag:t.findUnused,handler:ri},{name:"--check-cycles",flag:t.checkCycles,handler:Tr},{name:"--check-doc-drift",flag:t.checkDocDrift,handler:Nr},{name:"--find-uncovered",flag:t.findUncovered,handler:Dr},{name:"--callers",flag:t.callers,handler:Pr},{name:"--dependencies",flag:t.dependencies,handler:Ir},{name:"--dependents",flag:t.dependents,handler:Mr},{name:"--affected",flag:t.affected,handler:wr},{name:"--find-complex-functions",flag:t.findComplexFunctions,handler:Ar},{name:"--type-graph",flag:t.typeGraph,handler:di},{name:"--module-responsibility",flag:t.moduleResponsibility,handler:fi},{name:"--feature-graph",flag:t.featureGraph,handler:Xo},{name:"--call-graph",flag:t.callGraph,handler:jo},{name:"--find-symbol",flag:t.findSymbol,handler:Zo},{name:"--api-surface",flag:t.apiSurface,handler:Ro}].filter(n=>n.flag);return r.length>1&&(console.error(`Error: conflicting flags: ${r.map(n=>n.name).join(", ")} (pass only one command flag)`),process.exit(1)),r[0]?.handler??Rr}async function Lp(t,e,r,n,s,o,i){Mp.has(t)||(console.error("Error: --watch is only supported with the default output, --query, --callers, --dependencies, --dependents, --affected, --find-uncovered, --find-complex-functions, --check-cycles, and --check-doc-drift"),process.exit(1)),Ii(r,300,async()=>{let a=await Wr(r,n,e.graph,{silent:o,...k(i)});_r(a,s),console.log(`--- rebuilt at ${new Date().toISOString()} ---`),await t({...e,graph:a})})}async function Ai(){let t=process.argv.slice(2),e=No(t);Ap(e);let r=Ci(e);dt(r.rawConfig);let{rootDir:n,resolvedEntryPoints:s,resolvedCachePath:o,scanOptions:i}=r;if(await Dp(e,r,n))return;let a=Rp(e),l=ki(o)??new P(new Map);(s.length>0||!a)&&(s.length===0&&!a&&!e.findUnused&&!e.detectFeatures&&!e.checkCycles&&!e.checkDocDrift&&(console.error("Error: No entry points provided"),process.exit(1)),l=await Wr(n,s,l,{silent:e.silent,...k(r.rawConfig)}),_r(l,o));let p={graph:l,rootDir:n,entryPoints:s.map(d=>d.replace(n+"/","")),scanOptions:i,rawConfig:r.rawConfig,featureThreshold:e.featureThreshold,queryStr:e.query,mermaidOutput:e.mermaid,plain:e.plain,excludeTests:e.excludeTests,file:e.file,typeFilter:e.typeFilter,filterPaths:e.filterPaths,minOutDegree:e.minOutDegree,functionName:e.functionName,dryRun:e.dryRun,depth:e.depth,cached:e.cached,changedSymbols:e.changedSymbols,withMeta:e.withMeta,withEdgeDetail:e.withEdgeDetail,metric:e.metric,complexityThreshold:e.complexityThreshold,limit:e.limit,slim:e.slim,testsOnly:e.testsOnly},h=Op(e);if(e.watch){await Lp(h,p,n,s,o,e.silent,r.rawConfig);return}await h(p)}var Mp,Di=m(()=>{"use strict";c();S();Io();Mo();Do();Oo();Go();_o();Wo();zo();$o();Jo();Ko();Ho();Qo();Yo();qo();ei();ti();ni();si();ci();pi();mi();gi();hi();xi();Si();vi();Ei();Pi();Mi();Mp=new Set([Rr,Pr,Ir,Mr,wr,Dr,Ar,Tr,Nr])});var Gp=Ri(()=>{c();Di();Ai().catch(t=>{console.error(t),process.exit(1)})});export default Gp();
238
238
  //# sourceMappingURL=cli.mjs.map