@principal-ai/quality-lens-cli 0.1.38 → 0.1.39
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.js
CHANGED
|
@@ -978,7 +978,7 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis
|
|
|
978
978
|
`+_.map(c=>c.message).join(`
|
|
979
979
|
`)),this.errors=_}},Par=class extends MR{constructor(_){super(_)}},Nlt=Ao.default.build("{{digit}}{4}",{digit:uE}),Olt=Ao.default.build("{{digit}}{2}",{digit:uE}),Llt=Ao.default.build("{{digit}}{2}",{digit:uE}),Rlt=/[Tt ]/,OFe=Ao.default.build("{{digit}}{2}",{digit:uE}),LFe=Ao.default.build("{{digit}}{2}",{digit:uE}),Mlt=Ao.default.build("{{digit}}{2}",{digit:uE}),Nar=Ao.default.build("\\.{{digit}}+",{digit:uE}),Oar=Ao.default.build("[+-]{{timeHour}}:{{timeMinute}}",{timeHour:OFe,timeMinute:LFe}),Lar=Ao.default.build("[Zz]|{{timeNumOffset}}",{timeNumOffset:Oar}),RFe=Ao.default.build("{{timeHour}}:{{timeMinute}}:{{timeSecond}}{{timeSecFrac}}?",{timeHour:OFe,timeMinute:LFe,timeSecond:Mlt,timeSecFrac:Nar}),MFe=Ao.default.build("{{dateFullYear}}-{{dateMonth}}-{{dateMDay}}",{dateFullYear:Nlt,dateMonth:Olt,dateMDay:Llt}),Rar=Ao.default.build("{{partialTime}}{{timeOffset}}",{partialTime:RFe,timeOffset:Lar}),Mar=Ao.default.build("{{fullDate}}{{timeDelim}}{{fullTime}}",{fullDate:MFe,timeDelim:Rlt,fullTime:Rar}),Bar=Ao.default.build("{{fullDate}}{{timeDelim}}{{partialTime}}",{fullDate:MFe,timeDelim:Rlt,partialTime:RFe}),jar=MFe,Blt=RFe,Jar=Ao.default.build("{{offsetDateTime}}|{{localDateTime}}|{{localDate}}|{{localTime}}",{offsetDateTime:Mar,localDateTime:Bar,localDate:jar,localTime:Blt}),ioe=Gu({name:"DateTime",pattern:Jar}),qar=_=>{let c=Ao.default.build("({{dateFullYear}})-({{dateMonth}})-({{dateMDay}})",{dateFullYear:Nlt,dateMonth:Olt,dateMDay:Llt}),f=Ao.default.exec(_,c);if(f){let g=Number(f[1]),S=Number(f[2]),k=Number(f[3]),J=new Date(g,S-1,k);return J.getFullYear()===g&&J.getMonth()+1===S&&J.getDate()===k}return!0},zar=_=>{let c=Ao.default.build("({{timeHour}}):({{timeMinute}}):({{timeSecond}})",{timeHour:OFe,timeMinute:LFe,timeSecond:Mlt}),f=Ao.default.exec(_,c);if(f){let g=Number(f[1]),S=Number(f[2]),k=Number(f[3]),J=new Date(0,0,0,g,S,k);return J.getHours()===g&&J.getMinutes()===S&&J.getSeconds()===k}return!0},War=_=>qar(_)&&zar(_);L1(ioe,_=>{var c;if(!War(_))throw new MR(`Invalid date time: ${_}`);return((c=_.match(Blt))==null?void 0:c.index)===0?_:new Date(_)});var jlt=Gu({name:"DotSeparator",pattern:/\./,label:"."}),AFe=Gu({name:"ExpressionNewLine",pattern:Fk}),Uar=Plt,Jlt=Ao.default.build("{{digit}}({{digit}}|{{underscore}}{{digit}})*",{digit:uE,underscore:r$}),Var=Ao.default.build("({{minus}}|{{plus}})?{{zeroPrefixableInt}}",{minus:PFe,plus:NFe,zeroPrefixableInt:Jlt}),$ar=Ao.default.build("[Ee]{{floatExpPart}}",{floatExpPart:Var}),Gar=/\./,Har=Ao.default.build("{{decimalPoint}}{{zeroPrefixableInt}}",{decimalPoint:Gar,zeroPrefixableInt:Jlt}),Kar=/inf/,Qar=/nan/,Xar=Ao.default.build("({{minus}}|{{plus}})?({{inf}}|{{nan}})",{minus:PFe,plus:NFe,inf:Kar,nan:Qar}),Yar=Ao.default.build("{{floatIntPart}}({{exp}}|{{frac}}{{exp}}?)|{{specialFloat}}",{floatIntPart:Uar,exp:$ar,frac:Har,specialFloat:Xar}),soe=Gu({name:"Float",pattern:Yar}),Zar=_=>_==="inf"||_==="+inf"?1/0:_==="-inf"?-1/0:_==="nan"||_==="+nan"||_==="-nan"?NaN:null;L1(soe,_=>{let c=Zar(_);if(c!==null)return c;let f=_.replace(/_/g,"");return parseFloat(f)});var eor=/}/,FFe=Gu({name:"InlineTableClose",pattern:eor,label:"}",pop_mode:!0}),tor=/{/,qlt=Gu({name:"InlineTableOpen",pattern:tor,label:"{",push_mode:"InlineTable"}),ror=/,/,zlt=Gu({name:"InlineTableSep",pattern:ror,label:",",pop_mode:!0,push_mode:"InlineTable"}),n$=Gu({name:"Integer",pattern:z_.NA});L1(n$,ZV);var BFe=Gu({name:"KeyValueSeparator",pattern:/=/,label:"=",push_mode:"Value"}),Wlt=Gu({name:"Newline",pattern:Fk,pop_mode:!0}),Ak=Gu({name:"SimpleKey",pattern:z_.NA});L1(Ak,ZV);var Ult=Gu({name:"StdTableClose",pattern:/]/,label:"]",push_mode:"Value"}),Vlt=Gu({name:"StdTableOpen",pattern:/\[/,label:"["}),u7=Gu({name:"String",pattern:z_.NA});L1(u7,ZV);var nor=Ao.default.build("{{whiteSpaceChar}}+",{whiteSpaceChar:BR}),$lt=Gu({name:"WhiteSpace",pattern:nor,group:z_.SKIPPED}),ior=Ao.default.build("^{{whiteSpaceChar}}*{{newline}}(?:{{whiteSpaceChar}}|{{newline}})*",{whiteSpaceChar:BR,newline:Fk}),sor=_=>{let c=Ao.default.exec(_,ior);return c?c[0].length:0},Glt=_=>{let c="";for(let f=0;f<_.length;f++){let g=_[f];if(g==="\\"){f++;let S=sor(_.slice(f));if(S>0){f+=S-1;continue}switch(_[f]){case"b":c+="\b";break;case"t":c+=" ";break;case"n":c+=`
|
|
980
980
|
`;break;case"f":c+="\f";break;case"r":c+="\r";break;case'"':c+='"';break;case"\\":c+="\\";break;case"u":{let k=_.slice(f+1,f+5),J=parseInt(k,16);if(J>55295&&J<57344)throw new MR(`Invalid Unicode code point: \\u${k}`);c+=String.fromCodePoint(J),f+=4;break}case"U":{let k=_.slice(f+1,f+9),J=parseInt(k,16);if(J>1114111)throw new MR(`Invalid Unicode code point: \\U${k}`);c+=String.fromCodePoint(J),f+=8;break}case _.match(/^[0-7]{1,3}$/):}}else c+=g}return c},Hlt=_=>_.substring(3,_.length-3).replace(/^(\r\n|\n)/,""),aor=Ao.default.build("{{quotationMark}}{3}",{quotationMark:IFe}),oor=Ao.default.build("{{whiteSpaceChar}}|!|[#-\\x5B]|[\\x5D-~]|{{nonAscii}}",{whiteSpaceChar:BR,nonAscii:t$}),cor=Ao.default.build("{{multiLineBasicUnescaped}}|{{escaped}}",{multiLineBasicUnescaped:oor,escaped:wlt}),uor=Ao.default.build("{{whiteSpaceChar}}*",{whiteSpaceChar:BR}),lor=Ao.default.build("{{escape}}{{whiteSpace}}{{newline}}({{whiteSpaceChar}}|{{newline}})*",{escape:klt,whiteSpace:uor,newline:Fk,whiteSpaceChar:BR}),_or=Ao.default.build("{{multiLineBasicChar}}|{{newline}}|{{multiLineBasicEscapedNewline}}",{multiLineBasicChar:cor,newline:Fk,multiLineBasicEscapedNewline:lor}),por=Ao.default.build("{{quotationMark}}{1,2}",{quotationMark:IFe}),dor=Ao.default.build("{{multiLineBasicContent}}*({{multiLineBasicQuotes}}{{multiLineBasicContent}}+)*{{multiLineBasicQuotes}}?",{multiLineBasicContent:_or,multiLineBasicQuotes:por}),Klt=Gu({name:"MultiLineBasicString",pattern:Ao.default.build("{{multiLineBasicStringDelimiter}}{{newline}}?{{multiLineBasicBody}}{{multiLineBasicStringDelimiter}}",{multiLineBasicStringDelimiter:aor,newline:Fk,multiLineBasicBody:dor}),label:'"""MultiLineBasicString"""',categories:[u7],line_breaks:!0});L1(Klt,_=>{let c=Hlt(_);return Glt(c)});var mor=Ao.default.build("{{apostrophe}}{3}",{apostrophe:wFe}),hor=Ao.default.build(" |[ -&]|[\\x28-~]|{{nonAscii}}",{nonAscii:t$}),gor=Ao.default.build("{{multiLineLiteralChar}}|{{newline}}",{multiLineLiteralChar:hor,newline:Fk}),yor=Ao.default.build("{{apostrophe}}{1,2}",{apostrophe:wFe}),vor=Ao.default.build("{{multiLineLiteralContent}}*({{multiLineLiteralQuotes}}{{multiLineLiteralContent}}+)*{{multiLineLiteralQuotes}}?",{multiLineLiteralContent:gor,multiLineLiteralQuotes:yor}),Qlt=Gu({name:"MultiLineLiteralString",pattern:Ao.default.build("{{multiLineLiteralStringDelimiter}}{{newline}}?{{multiLineLiteralBody}}{{multiLineLiteralStringDelimiter}}",{multiLineLiteralStringDelimiter:mor,newline:Fk,multiLineLiteralBody:vor}),label:"'''MultiLineLiteralString'''",categories:[u7],line_breaks:!0});L1(Qlt,Hlt);var jFe=Gu({name:"QuotedKey",pattern:z_.NA,categories:[Ak]});L1(jFe,ZV);var Dor=Ao.default.build("{{whiteSpaceChar}}|!|[#-\\x5B]|[\\x5D-~]|{{nonAscii}}",{whiteSpaceChar:BR,nonAscii:t$}),bor=Ao.default.build("{{basicUnescaped}}|{{escaped}}",{basicUnescaped:Dor,escaped:wlt}),JFe=Gu({name:"BasicString",pattern:Ao.default.build("{{quotationMark}}{{basicChar}}*{{quotationMark}}",{quotationMark:IFe,basicChar:bor}),label:'"BasicString"',categories:[jFe,u7]});L1(JFe,_=>{let c=_.slice(1,-1);return Glt(c)});var Cor=Ao.default.build(" |[ -&]|[\\x28-~]|{{nonAscii}}",{nonAscii:t$}),qFe=Gu({name:"LiteralString",pattern:Ao.default.build("{{apostrophe}}{{literalChar}}*{{apostrophe}}",{apostrophe:wFe,literalChar:Cor}),label:"'LiteralString'",categories:[jFe,u7]});L1(qFe,_=>_.slice(1,-1));var Sor=/0x/,Eor=/0o/,xor=/0b/,Tor=/[0-7]/,Aor=/[01]/,For=Ao.default.build("{{hexPrefix}}{{hexDigit}}({{hexDigit}}|{{underscore}}{{hexDigit}})*",{hexPrefix:Sor,hexDigit:Ilt,underscore:r$}),kor=Ao.default.build("{{octPrefix}}{{digit0_7}}({{digit0_7}}|{{underscore}}{{digit0_7}})*",{octPrefix:Eor,digit0_7:Tor,underscore:r$}),Ior=Ao.default.build("{{binPrefix}}{{digit0_1}}({{digit0_1}}|{{underscore}}{{digit0_1}})*",{binPrefix:xor,digit0_1:Aor,underscore:r$}),wor=Ao.default.build("{{hexInteger}}|{{octalInteger}}|{{binaryInteger}}",{hexInteger:For,octalInteger:kor,binaryInteger:Ior}),Xlt=Gu({name:"NonDecimalInteger",pattern:wor,categories:[n$]}),Por=(_,c)=>{let f=BigInt(0);for(let g=0;g<_.length;g++){let S=_[g],k=parseInt(S,c);f=f*BigInt(c)+BigInt(k)}return f},Nor=_=>{if(_.startsWith("0x"))return 16;if(_.startsWith("0o"))return 8;if(_.startsWith("0b"))return 2};L1(Xlt,_=>{let c=_.replace(/_/g,"").slice(2),f=Nor(_),g=parseInt(c,f);return Number.isSafeInteger(g)?g:Por(c,f)});var Ylt=Gu({name:"DecimalInteger",pattern:Plt,categories:[n$]});L1(Ylt,_=>{let c=_.replace(/_/g,""),f=parseInt(c);return Number.isSafeInteger(f)?f||0:BigInt(c)});var Oor=/[a-zA-Z]/,Lor=Ao.default.build("({{alpha}}|{{digit}}|-|_)+",{alpha:Oor,digit:uE}),Zlt=Gu({name:"UnquotedKey",pattern:Lor,categories:[Ak]});L1(Zlt,_=>_);var Ror=/#/,Mor=Ao.default.build(" |[ -~]|{{nonAscii}}",{nonAscii:t$}),Bor=Ao.default.build("{{commentStartChar}}{{nonEol}}*",{commentStartChar:Ror,nonEol:Mor}),eft=Gu({name:"Comment",pattern:Bor,group:"comment"}),jor=/true/,tft=Gu({name:"True",pattern:jor,label:"true",categories:[e$]});L1(tft,()=>!0);var Jor=/false/,rft=Gu({name:"False",pattern:Jor,label:"false",categories:[e$]});L1(rft,()=>!1);var qor=Gu({name:"IgnoredNewline",pattern:Fk,group:z_.SKIPPED}),zor=Gu({name:"InlineTableKeyValSep",pattern:/=/,label:"=",push_mode:"Value",pop_mode:!0,categories:[BFe]}),Dlt=[$lt,JFe,qFe,Zlt,jlt,Ak],blt=[$lt,Klt,Qlt,JFe,qFe,tft,rft,ioe,soe,Xlt,Ylt,xlt,qlt,eft],nft={modes:{Key:[eft,AFe,BFe,Flt,Alt,Vlt,Ult,...Dlt],Value:[...blt,Wlt,zlt,FFe],Array:[...blt,qor,Tlt,Elt],InlineTable:[...Dlt,zor,FFe]},defaultMode:"Key"},Wor=new z_(nft,{ensureOptimizations:!0,skipValidations:!noe.isDebug(),traceInitPerf:noe.isDebug()}),Uor=class extends iV{toml=this.RULE("toml",()=>{this.MANY(()=>this.CONSUME(AFe)),this.MANY1(()=>{this.SUBRULE1(this.expression),this.OPTION2(()=>{this.CONSUME1(Wlt),this.MANY3(()=>this.CONSUME2(AFe))})})});valueCache;dottedKey=this.RULE("dottedKey",()=>{this.CONSUME(Ak),this.AT_LEAST_ONE(()=>{this.CONSUME(jlt),this.CONSUME1(Ak)})});key=this.RULE("key",()=>{this.OR({MAX_LOOKAHEAD:2,DEF:[{ALT:()=>this.SUBRULE(this.dottedKey)},{ALT:()=>this.CONSUME(Ak)}]})});inlineTableKeyValues=this.RULE("inlineTableKeyValues",()=>{this.MANY_SEP({SEP:zlt,DEF:()=>this.SUBRULE(this.keyValue)})});inlineTable=this.RULE("inlineTable",()=>{this.CONSUME(qlt),this.OPTION(()=>this.SUBRULE(this.inlineTableKeyValues)),this.CONSUME(FFe)});array=this.RULE("array",()=>{this.CONSUME(xlt),this.OPTION(()=>this.SUBRULE(this.arrayValues)),this.CONSUME(Elt)});value=this.RULE("value",()=>{this.OR(this.valueCache||(this.valueCache=[{ALT:()=>this.CONSUME(u7)},{ALT:()=>this.CONSUME(e$)},{ALT:()=>this.SUBRULE(this.array)},{ALT:()=>this.SUBRULE(this.inlineTable)},{ALT:()=>this.CONSUME(ioe)},{ALT:()=>this.CONSUME(soe)},{ALT:()=>this.CONSUME(n$)}]))});keyValue=this.RULE("keyValue",()=>{this.SUBRULE(this.key),this.CONSUME(BFe),this.SUBRULE(this.value)});arrayValues=this.RULE("arrayValues",()=>{this.SUBRULE(this.value);let _=!0;this.MANY({GATE:()=>_,DEF:()=>{this.CONSUME(Tlt),this.OPTION(()=>this.SUBRULE1(this.value))||(_=!1)}})});stdTable=this.RULE("stdTable",()=>{this.CONSUME(Vlt),this.SUBRULE(this.key),this.CONSUME(Ult)});arrayTable=this.RULE("arrayTable",()=>{this.CONSUME(Flt),this.SUBRULE(this.key),this.CONSUME(Alt)});table=this.RULE("table",()=>{this.OR([{ALT:()=>this.SUBRULE(this.stdTable)},{ALT:()=>this.SUBRULE(this.arrayTable)}])});expression=this.RULE("expression",()=>{this.OR([{ALT:()=>this.SUBRULE(this.keyValue)},{ALT:()=>this.SUBRULE(this.table)}])});constructor(){super(nft,{traceInitPerf:noe.isDebug(),maxLookahead:1,skipValidations:!noe.isDebug()}),this.performSelfAnalysis()}},YV=new Uor,Clt=_=>_&&(_.constructor===Object||_.constructor===void 0),roe=()=>Object.create(null),xFe=(_,c)=>{try{return _()}catch(f){if(f instanceof RR)throw new Par(c)}},RR=class extends Error{},Vor=YV.getBaseCstVisitorConstructor(),TFe=Symbol("explicitlyDeclared"),Slt=Symbol("implicitlyDeclared"),XV=Symbol("notEditable"),$or=class extends Vor{constructor(){super(),this.validateVisitor()}toml(_){var c;let f=roe(),g=f;return(c=_.expression)==null||c.forEach(S=>g=this.visit(S,{current:g,root:f})),this.cleanInternalProperties(f),f}expression(_,{current:c,root:f}){if(_.keyValue)return this.visit(_.keyValue,c),c;if(_.table)return this.visit(_.table,f)}keyValue(_,c){let f=this.visit(_.key),g=this.visit(_.value);xFe(()=>this.assignValue(f,g,c),`Cannot assign value to '${f.join(".")}'`)}key(_){return _.dottedKey?this.visit(_.dottedKey):[this.interpret(_,Ak)]}dottedKey(_){return this.interpret(_,Ak)}inlineTableKeyValues(_,c){_.keyValue&&_.keyValue.forEach(f=>this.visit(f,c))}inlineTable(_){let c=roe();return c[XV]=!0,_.inlineTableKeyValues&&this.visit(_.inlineTableKeyValues,c),c}value(_){return _.array?this.visit(_.array):_.inlineTable?this.visit(_.inlineTable):this.interpret(_,u7,soe,e$,ioe,n$)}arrayValues(_,c){return _.value.forEach(f=>c.push(this.visit(f))),c}array(_){let c=[];return c[XV]=!0,_.arrayValues?this.visit(_.arrayValues,c):c}table(_,c){if(_.stdTable)return this.visit(_.stdTable,c);if(_.arrayTable)return this.visit(_.arrayTable,c)}stdTable(_,c){let f=this.visit(_.key);return xFe(()=>this.createTable(f,c),`Cannot create table '${f.join(".")}'`)}arrayTable(_,c){let f=this.visit(_.key);return xFe(()=>{let g=this.getOrCreateArray(f,c);if(g[XV])throw new RR;let S=roe();return g.push(S),S},`Cannot create array table '${f.join(".")}'`)}cleanInternalProperties(_){for(let c of Object.getOwnPropertySymbols(_))delete _[c];for(let c in _)typeof _[c]=="object"&&this.cleanInternalProperties(_[c]),Array.isArray(_[c])&&_[c].forEach(f=>this.cleanInternalProperties(f))}interpret(_,...c){for(let f of c)if(_[f.name]){let g=_[f.name].map(S=>kFe[f.name](S.image,S,f.name));return g.length===1?g[0]:g}}assignPrimitiveValue(_,c,f){if(_ in f)throw new RR;return Clt(c)&&(c[TFe]=!0),f[_]=c,f}tryCreatingObject(_,c,f,g,S){if(c[_]){if(!Clt(c[_])||!S&&c[_][TFe]||!g&&c[_][Slt]||c[_][XV])throw new RR}else c[_]=roe(),f&&(c[_][f]=!0);return c[_]}assignValue(_,c,f){let[g,...S]=_;return S.length>0?(this.tryCreatingObject(g,f,Slt,!0,!1),this.assignValue(S,c,f[g])):this.assignPrimitiveValue(g,c,f)}createTable(_,c){let[f,...g]=_;if(g.length>0){if(Array.isArray(c[f])){if(c[f][XV])throw new RR;let S=c[f][c[f].length-1];return this.createTable(g,S)}return this.tryCreatingObject(f,c,null,!0,!0),this.createTable(g,c[f])}return this.tryCreatingObject(f,c,TFe,!1,!1)}getOrCreateArray(_,c){let[f,...g]=_;if(g.length>0){if(Array.isArray(c[f])){let S=c[f][c[f].length-1];return this.getOrCreateArray(g,S)}return this.tryCreatingObject(f,c,null,!0,!0),this.getOrCreateArray(g,c[f])}if(c[f]&&!Array.isArray(c[f]))throw new RR;return c[f]=c[f]||[],c[f]}},Gor=new $or,zFe=_=>{let c=Wor.tokenize(_);if(c.errors.length>0)throw new Iar(c.errors);YV.input=c.tokens;let f=YV.toml();if(YV.errors.length>0)throw new war(YV.errors);return Gor.visit(f)};var qft=Kh(Jft(),1);var tur={eslint:"linting",biome:"linting","biome-lint":"linting",oxlint:"linting",typescript:"types",flow:"types",test:"tests",jest:"tests",vitest:"tests","bun-test":"tests",mocha:"tests",playwright:"tests",cypress:"tests",prettier:"formatting","biome-format":"formatting",knip:"deadCode",depcheck:"deadCode",typedoc:"documentation",jsdoc:"documentation",alexandria:"documentation"},rur=[{pattern:/^bun\s+test\b/,lensId:"bun-test"},{pattern:/^bun\s+run\s+test\b/,lensId:"bun-test"},{pattern:/\bbiome\s+(check|lint|ci)\b/,lensId:"biome-lint"},{pattern:/\bbiome\s+format\b/,lensId:"biome-format"},{pattern:/\bvitest\b/,lensId:"vitest"},{pattern:/\bjest\b/,lensId:"jest"}],nur=["eslint","typescript","test","prettier","knip","typedoc","alexandria"],iur={lint:"eslint",eslint:"eslint",typecheck:"typescript","type-check":"typescript",tsc:"typescript",test:"test",jest:"jest",vitest:"vitest",format:"prettier",prettier:"prettier",knip:"knip",unused:"knip",docs:"alexandria",alexandria:"alexandria",typedoc:"typedoc"},c$=class{static detectLensCommands(c){let f=new Map;for(let g of c)if(g.name.startsWith("lens:")){let S=g.name.split(":");if(S.length>=3){let k=S[1],J=S[2];f.has(k)||f.set(k,{lensId:k,operations:new Set}),f.get(k).operations.add(J),g.isLensCommand=!0,g.lensId=k,g.lensOperation=J}}return f.size===0&&this.applyFallbackDetection(c,f),f}static detectLensFromScriptContent(c){if(!c)return null;for(let{pattern:f,lensId:g}of rur)if(f.test(c))return g;return null}static applyFallbackDetection(c,f){for(let g of c){let S=this.detectLensFromScriptContent(g.description);if(S||(S=iur[g.name]||null),S){f.has(S)||f.set(S,{lensId:S,operations:new Set});let k=g.name.includes("coverage")?"coverage":"check";f.get(S).operations.add(k),g.isLensCommand=!0,g.lensId=S,g.lensOperation=k}}}static calculateMetrics(c,f){let g={};for(let[S]of c){let k=tur[S];if(k){let J=f?.get(S);J!==void 0&&(g[k]=J)}}return g}static getAvailableLenses(c){return Array.from(c.keys())}static getMissingLenses(c){let f=new Set(c.keys());return nur.filter(g=>!f.has(g))}static calculateQualityProfile(c,f){let g=this.detectLensCommands(c),S=this.calculateMetrics(g,f),k=this.getAvailableLenses(g),J=this.getMissingLenses(g);return{hexagon:S,availableLenses:k,missingLenses:J}}};var u$=class{manifestFileName="package.json";packageType="node";canParse(c){return c.endsWith("package.json")}parseContent(c){try{return JSON.parse(c)}catch{return null}}extractPackageData(c,f){let g;f==="package.json"?g="":f.endsWith("/package.json")?g=f.slice(0,-13):g=f;let S=this.extractCommands(c,g),k;if(c.author){if(typeof c.author=="string")k=c.author;else if(c.author.name){let ee=c.author.name;c.author.email&&(ee+=` <${c.author.email}>`),c.author.url&&(ee+=` (${c.author.url})`),k=ee}}let J;return c.repository&&(typeof c.repository=="string"?J=c.repository:c.repository.url&&(J=c.repository.url)),{name:c.name||"unnamed",version:c.version,path:g,manifestPath:f,packageManager:"unknown",dependencies:c.dependencies||{},devDependencies:c.devDependencies||{},peerDependencies:c.peerDependencies||{},description:c.description,license:c.license,author:k,repository:J,homepage:c.homepage,keywords:c.keywords,isMonorepoRoot:!!c.workspaces,isWorkspace:!1,parentPackage:void 0,availableCommands:S}}extractCommands(c,f){let g=[];return c.scripts&&Object.entries(c.scripts).forEach(([k,J])=>{g.push({name:k,command:`npm run ${k}`,description:J.length>50?J.substring(0,47)+"...":J,type:"script",workingDirectory:f})}),[{name:"install",command:"npm install",description:"Install dependencies"},{name:"ci",command:"npm ci",description:"Clean install dependencies"},{name:"update",command:"npm update",description:"Update dependencies"}].forEach(k=>{g.push({...k,type:"standard",workingDirectory:f})}),g}detectWorkspaces(c){return Array.isArray(c.workspaces)?c.workspaces:c.workspaces&&typeof c.workspaces=="object"&&"packages"in c.workspaces&&c.workspaces.packages||null}detectPackageManager(c,f){if(c.packageManager){let g=c.packageManager.split("@")[0];if(["npm","yarn","pnpm"].includes(g))return g}return f.some(g=>g.endsWith("yarn.lock"))?"yarn":f.some(g=>g.endsWith("pnpm-lock.yaml"))?"pnpm":(f.some(g=>g.endsWith("package-lock.json")),"npm")}detectConfigs(c,f,g){let S={},k={knip:["knip.json","knip.jsonc",".knip.json","knip.config.js","knip.config.ts","knip.config.mjs"],eslint:[".eslintrc",".eslintrc.js",".eslintrc.json",".eslintrc.yml",".eslintrc.yaml","eslint.config.js","eslint.config.mjs",".eslintrc.cjs"],prettier:[".prettierrc",".prettierrc.js",".prettierrc.json",".prettierrc.yml",".prettierrc.yaml","prettier.config.js",".prettierrc.toml"],typescript:["tsconfig.json","tsconfig.base.json"],jest:["jest.config.js","jest.config.ts","jest.config.mjs","jest.config.cjs","jest.config.json"],vitest:["vitest.config.js","vitest.config.ts","vitest.config.mjs"],webpack:["webpack.config.js","webpack.config.ts","webpack.config.mjs"],vite:["vite.config.js","vite.config.ts","vite.config.mjs"],rollup:["rollup.config.js","rollup.config.ts","rollup.config.mjs"],babel:[".babelrc",".babelrc.js",".babelrc.json","babel.config.js","babel.config.json"],dockerfile:["Dockerfile","dockerfile","Dockerfile.dev","Dockerfile.prod"],gitignore:[".gitignore"],editorconfig:[".editorconfig"]},J=c==="."||c===""?"":c.endsWith("/")?c:c+"/";if(f.allFiles)for(let[ee,le]of Object.entries(k))for(let me of le){let be=J+me;if(f.allFiles.some(X=>X.path===be||X.relativePath===be)){S[ee]={path:be,exists:!0,type:this.getConfigFileType(me)};break}}return g&&(g.eslintConfig&&(S.eslint={path:J+"package.json",exists:!0,type:"json",isInline:!0,inlineField:"eslintConfig"}),g.prettier&&(S.prettier={path:J+"package.json",exists:!0,type:"json",isInline:!0,inlineField:"prettier"}),g.jest&&(S.jest={path:J+"package.json",exists:!0,type:"json",isInline:!0,inlineField:"jest"}),g.babel&&(S.babel={path:J+"package.json",exists:!0,type:"json",isInline:!0,inlineField:"babel"})),S}getConfigFileType(c){return c.endsWith(".json")||c.endsWith(".jsonc")?"json":c.endsWith(".yml")||c.endsWith(".yaml")?"yaml":c.endsWith(".toml")?"toml":c.endsWith(".js")||c.endsWith(".mjs")||c.endsWith(".cjs")?"js":c.endsWith(".ts")||c.endsWith(".mts")||c.endsWith(".cts")?"ts":c.endsWith(".ini")?"ini":"custom"}detectDocsFolder(c,f,g){let S=["docs","documentation","doc"],k=c==="."||c===""?"":c;if(k&&!k.endsWith("/")&&(k+="/"),!f.allFiles)return;for(let me of S){let be=k+me;if(f.allFiles.some(X=>X.path?.toLowerCase().startsWith(be.toLowerCase()+"/"))){let X=f.allFiles.find(rt=>rt.path?.toLowerCase().startsWith(be.toLowerCase()+"/"))?.path;return X?X.substring(0,X.indexOf("/",k.length)).substring(k.length):me}}let J=new Map;for(let me of f.allFiles){if(!me.path||k!==""&&!me.path.startsWith(k))continue;let we=(k===""?me.path:me.path.substring(k.length)).split("/");if(we.length===2){let X=we[0],rt=we[1];J.has(X)||J.set(X,{docFiles:0,totalFiles:0});let We=J.get(X);We.totalFiles++,this.isDocumentationFile(rt)&&We.docFiles++}}let ee,le=.5;for(let[me,be]of Array.from(J.entries()))if(be.docFiles>=2){let we=be.docFiles/be.totalFiles;we>le&&(le=we,ee=me)}return ee}isDocumentationFile(c){let f=c.toLowerCase();return[".md",".mdx",".rst",".txt",".adoc",".asciidoc"].some(J=>f.endsWith(J))?!0:[/^readme/i,/^changelog/i,/^changes/i,/^history/i,/^license/i,/^copying/i,/^install/i,/^usage/i,/^guide/i,/^tutorial/i,/^manual/i,/^faq/i,/^api/i,/^reference/i,/^spec/i,/^specification/i].some(J=>J.test(c))}},_ke=class{manifestFileName="pyproject.toml";packageType="python";canParse(c){return c.endsWith("pyproject.toml")||c.endsWith("setup.py")||c.endsWith("requirements.txt")}parseContent(c){try{return zFe(c)}catch{return null}}extractPackageData(c,f){let g,S=f.split("/").pop()||"";f===S?g="":g=f.substring(0,f.lastIndexOf("/"));let k=c.tool?.poetry,J=c.project,ee=k?.name||J?.name||"unnamed",le=k?.version||J?.version,me={},be={};if(k?.dependencies&&Object.entries(k.dependencies).forEach(([qr,ui])=>{qr!=="python"&&(me[qr]=typeof ui=="string"?ui:JSON.stringify(ui))}),k?.["dev-dependencies"]&&Object.entries(k["dev-dependencies"]).forEach(([qr,ui])=>{be[qr]=typeof ui=="string"?ui:JSON.stringify(ui)}),J?.dependencies&&Array.isArray(J.dependencies))try{let qr=J.dependencies.join(`
|
|
981
|
-
`);(0,qft.parsePipRequirementsFile)(qr).forEach(Li=>{if(Li.type==="ProjectName"&&Li.name){let Ln="*";Li.versionSpec&&Li.versionSpec.length>0&&(Ln=Li.versionSpec[0].version||"*"),me[Li.name]=Ln}})}catch(qr){console.warn("Failed to parse PEP 621 dependencies with pip-requirements-js, falling back to simple parsing:",qr),J.dependencies.forEach(ui=>{let Li=ui.trim(),Ln=Li.indexOf(" ");Ln>0?me[Li.substring(0,Ln)]="*":me[Li]="*"})}let we=this.detectPythonPackageManager(c),X=k?.description||J?.description,rt;k?.license?rt=k.license:J?.license&&(rt=typeof J.license=="string"?J.license:J.license.text);let We,Ue;k?.authors&&k.authors.length>0?(We=k.authors,Ue=k.authors[0]):J?.authors&&J.authors.length>0&&(We=J.authors.map(qr=>qr.name&&qr.email?`${qr.name} <${qr.email}>`:qr.name||qr.email||"").filter(Boolean),Ue=We[0]);let At,Vt;k?(At=k.repository,Vt=k.homepage):J?.urls&&(At=J.urls.repository||J.urls.Repository||J.urls.source||J.urls.Source,Vt=J.urls.homepage||J.urls.Homepage||J.urls.home||J.urls.Home);let Ir=k?.keywords||J?.keywords;return{name:ee,version:le,path:g,manifestPath:f,packageManager:we,dependencies:me,devDependencies:be,peerDependencies:{},description:X,license:rt,author:Ue,authors:We,repository:At,homepage:Vt,keywords:Ir,isMonorepoRoot:!1,isWorkspace:!1,parentPackage:void 0,availableCommands:[]}}detectWorkspaces(c){return null}detectPackageManager(c,f){return this.detectPythonPackageManager(c)}detectPythonPackageManager(c){return c.tool?.poetry?"poetry":"pip"}detectDocsFolder(c,f,g){return new u$().detectDocsFolder(c,f,{})}},pke=class{manifestFileName="Cargo.toml";packageType="cargo";canParse(c){return c.endsWith("Cargo.toml")}parseContent(c){try{return zFe(c)}catch{return null}}extractPackageData(c,f){let g=c.package;if(!g)return null;let S;f==="Cargo.toml"?S="":f.endsWith("/Cargo.toml")?S=f.slice(0,-11):S=f;let k={},J={};c.dependencies&&Object.entries(c.dependencies).forEach(([me,be])=>{k[me]=typeof be=="string"?be:JSON.stringify(be)}),c["dev-dependencies"]&&Object.entries(c["dev-dependencies"]).forEach(([me,be])=>{J[me]=typeof be=="string"?be:JSON.stringify(be)});let ee=g.authors?.[0],le=g.homepage||g.documentation;return{name:g.name||"unnamed",version:g.version,path:S,manifestPath:f,packageManager:"cargo",dependencies:k,devDependencies:J,peerDependencies:{},description:g.description,license:g.license,author:ee,authors:g.authors,repository:g.repository,homepage:le,keywords:g.keywords,isMonorepoRoot:!!c.workspace,isWorkspace:!1,parentPackage:void 0,availableCommands:[]}}detectWorkspaces(c){return c.workspace?.members||null}detectPackageManager(){return"cargo"}detectDocsFolder(c,f,g){return new u$().detectDocsFolder(c,f,{})}},WR=class{parsers=[new u$,new _ke,new pke];async discoverPackages(c,f){let g=[];if(!c.allFiles)return g;let S=c.allFiles.filter(J=>J.path?this.parsers.some(ee=>ee.canParse(J.path)):!1),k=c.allFiles.map(J=>J.path).filter(Boolean);for(let J of S){if(!J.path)continue;let ee=this.parsers.find(Vt=>Vt.canParse(J.path));if(!ee)continue;let le=null;if(f)try{let Vt=await f(J.path);Vt&&(le=ee.parseContent(Vt))}catch(Vt){console.warn(`Could not read or parse ${J.path}:`,Vt);continue}else{let Vt=J.path.split("/").slice(-2,-1)[0]||"unnamed";le=this.createMinimalManifest(ee.packageType,Vt)}if(!le)continue;let me=ee.extractPackageData(le,J.path);if(!me){console.warn(`[PackageLayerModule] extractPackageData returned null for ${J.path}`,{content:le,parser:ee.packageType});continue}let be=J.path.substring(0,J.path.lastIndexOf("/")),we=k.filter(Vt=>Vt.startsWith(be)&&this.isLockFile(Vt));me.packageManager=ee.detectPackageManager(le,we),ee.packageType==="node"&&me.availableCommands&&me.packageManager&&me.packageManager!=="unknown"&&me.packageManager!=="npm"&&(me.availableCommands=me.availableCommands.map(Vt=>{if(Vt.command.includes("npm ")){let Ir=Vt.command;return me.packageManager==="yarn"?Ir=Ir.replace("npm run","yarn").replace("npm install","yarn install").replace("npm ci","yarn install --frozen-lockfile").replace("npm update","yarn upgrade"):me.packageManager==="pnpm"&&(Ir=Ir.replace("npm","pnpm")),{...Vt,command:Ir}}return Vt}));let X={id:`package-manifest-${me.path}`,name:ee.manifestFileName,patterns:[{type:"exact",pattern:J.path,description:`${ee.packageType} package manifest`}],matchedFiles:[J.path],fileCount:1},rt;ee.detectConfigs&&(rt=ee.detectConfigs(me.path,c,le));let We;ee.detectDocsFolder&&(We=ee.detectDocsFolder(me.path,c,le));let Ue=me.availableCommands?c$.calculateQualityProfile(me.availableCommands):void 0,At={id:`package-${ee.packageType}-${me.path.replace(/[^a-zA-Z0-9-]/g,"-")}`,name:me.name,type:ee.packageType,enabled:!0,derivedFrom:{fileSets:[X],derivationType:"content",description:`${ee.packageType} package defined in ${ee.manifestFileName}`,contentExtraction:{method:"parse",parser:{format:ee.manifestFileName.endsWith(".json")?"json":"toml",paths:ee.packageType==="node"?[""]:ee.packageType==="python"?["tool.poetry","project"]:["package"]}}},packageData:me,configFiles:rt,docsFolder:We,qualityMetrics:Ue,pillar:"foundationHealth"};g.push(At)}return this.resolveWorkspaceRelationships(g),g}createPackageLayersFromBoundaries(c){return c.map(f=>{let g={id:`package-manifest-${f.rootPath||"root"}`,name:"package.json",patterns:[{type:"exact",pattern:f.packageJsonPath,description:"Node.js package manifest"}],matchedFiles:[f.packageJsonPath],fileCount:1},S={name:f.packageData?.name||f.name,version:f.packageData?.version,path:f.rootPath||".",manifestPath:f.packageJsonPath,packageManager:"unknown",dependencies:{},devDependencies:{},peerDependencies:{},isMonorepoRoot:!!f.packageData?.workspaces,isWorkspace:!f.isRoot&&c.length>1,parentPackage:f.isRoot?void 0:"root"};return{id:`package-node-${f.id}`,name:S.name,type:"node",enabled:!0,derivedFrom:{fileSets:[g],derivationType:"content",description:"Node.js package defined in package.json"},packageData:S,pillar:"foundationHealth"}})}isLockFile(c){return["package-lock.json","yarn.lock","pnpm-lock.yaml","poetry.lock","Pipfile.lock","Cargo.lock"].some(g=>c.endsWith(g))}resolveWorkspaceRelationships(c){let f=c.filter(g=>g.packageData.path==="."||g.packageData.path==="");c.forEach(g=>{if(g.packageData.path!=="."&&g.packageData.path!==""){g.packageData.isWorkspace=!0;let S=g.packageData.path.includes("/")?g.packageData.path.substring(0,g.packageData.path.lastIndexOf("/")):".",k=c.find(J=>J.packageData.path===S);k&&(g.packageData.parentPackage=k.packageData.name)}})}createMinimalManifest(c,f){switch(c){case"node":return{name:f,version:"0.0.0",dependencies:{},devDependencies:{}};case"python":return{project:{name:f,version:"0.0.0"}};case"cargo":return{package:{name:f,version:"0.0.0"}};default:return{}}}};var M1=Kh(k_t(),1);var j_t=Kh(Toe(),1),U4={basename:_=>_.split("/").pop()||"",join:(..._)=>_.filter(f=>f).join("/").replace(/\/+/g,"/"),relative:(_,c)=>!_||_==="."?c:c.startsWith(_+"/")?c.slice(_.length+1):c===_?".":c,dirname:_=>{let c=_.lastIndexOf("/");return c>0?_.slice(0,c):""},extname:_=>{let c=_.lastIndexOf(".");return c>0?_.slice(c):""}},QR=class{adapter;filterStats={totalFiltered:0,filteredByLayer:{},examples:[],filteredByDirectory:{}};constructor(c){this.adapter=c}async buildFileSystemTreeFromPath(c,f,g){console.time("[FilesystemService] Total build time"),this.filterStats={totalFiltered:0,filteredByLayer:{},examples:[],filteredByDirectory:{}};let S=f||[],k=g?.enableInverseFiltering||!1;if(!this.adapter){let qr={path:c,name:c.split("/").pop()||c,children:[],fileCount:0,totalSize:0,depth:0,relativePath:"."};return{sha:"",root:qr,allFiles:[],allDirectories:[qr],stats:{totalFiles:0,totalDirectories:1,totalSize:0,maxDepth:0},metadata:{id:`fs-${Date.now()}`,timestamp:new Date,sourceType:"filesystem",sourceInfo:{path:c}},filterStats:this.filterStats,appliedFilters:S,inverseMatches:k?[]:void 0}}console.time("[FilesystemService] Build file tree");let J=[],ee;for(let qr of S)qr.enabled&&qr.filterData?.excludedPatterns&&(J.push(...qr.filterData.excludedPatterns.map(ui=>ui.pattern)),qr.filterData.sourceDirectory&&(ee=qr.filterData.sourceDirectory));let le=await this.adapter.buildFilteredFileTree(c,J,ee),me=le.paths,be=le.stats,we=this.createIgnoreInstances(S);for(let qr of me)this.shouldIncludeFile(qr,we,S)||this.filterStats.totalFiltered++;console.timeEnd("[FilesystemService] Build file tree"),console.log(`[FilesystemService] Found ${me.length} paths after filtering`),console.time("[FilesystemService] Convert to tree structure");let{allFiles:X,allDirectories:rt,rootDir:We}=await this.convertPathsToTree(me,c,be);console.timeEnd("[FilesystemService] Convert to tree structure");let Ue=[];k&&(Ue=await this.findInverseMatches(c,we,S));let At=X.reduce((qr,ui)=>qr+(ui.size||0),0),Vt=Math.max(...rt.map(qr=>qr.depth||0));S.forEach(qr=>{qr.enabled&&this.filterStats.filteredByLayer[qr.id]&&(qr.filterData.stats||(qr.filterData.stats={totalFiltered:0,bytesExcluded:0}),qr.filterData.stats.totalFiltered=this.filterStats.filteredByLayer[qr.id])});let Ir={sha:"",root:We||{path:".",name:U4.basename(c)||"root",children:[],fileCount:0,totalSize:0,depth:0,relativePath:"."},allFiles:X,allDirectories:rt,stats:{totalFiles:X.length,totalDirectories:rt.length,totalSize:At,maxDepth:Vt},metadata:{id:`fs-${Date.now()}`,timestamp:new Date,sourceType:"filesystem",sourceInfo:{path:c}},filterStats:this.filterStats,appliedFilters:S,inverseMatches:Ue};return console.timeEnd("[FilesystemService] Total build time"),Ir}createIgnoreInstances(c){let f=new Map;for(let g of c){if(!g.enabled||!g.filterData?.excludedPatterns)continue;let S=g.filterData.sourceDirectory||"",k=`${g.id}:${S}`,J=(0,j_t.default)(),ee=g.filterData.excludedPatterns.map(le=>le.pattern);J.add(ee),f.set(k,{ignore:J,sourceDirectory:S,filterId:g.id,filterName:g.name})}return f}shouldIncludeFile(c,f,g){for(let[,{ignore:S,sourceDirectory:k,filterId:J,filterName:ee}]of f){if(k!==""&&!c.startsWith(k+"/")&&c!==k)continue;let le=c;if(k!==""&&c.startsWith(k+"/")&&(le=c.slice(k.length+1)),!(!le||le===".")&&S.ignores(le)){this.filterStats.totalFiltered++,this.filterStats.filteredByLayer[J]=(this.filterStats.filteredByLayer[J]||0)+1;let me=U4.dirname(c)||".";return this.filterStats.filteredByDirectory[me]||(this.filterStats.filteredByDirectory[me]={count:0,reasons:new Set}),this.filterStats.filteredByDirectory[me].count++,this.filterStats.filteredByDirectory[me].reasons.add(ee),!1}}return!0}async convertPathsToTree(c,f,g){let S=[],k=[],J=new Map,ee=g||new Map;if(!g&&this.adapter&&"getFileStats"in this.adapter){let me=c.map(async be=>{try{let we=U4.join(f,be),X=await this.adapter.getFileStats(we);X&&ee.set(be,{size:X.size||0,lastModified:X.lastModified||new Date,isDirectory:X.isDirectory||!1})}catch{}});await Promise.all(me)}for(let me of c){let be=ee.get(me);if(be?.isDirectory||me.endsWith("/")){let X={path:me||".",name:U4.basename(me)||"root",children:[],fileCount:0,totalSize:0,depth:me.split("/").length-1,relativePath:me||"."};k.push(X),J.set(me,X)}else{let X={path:me,name:U4.basename(me),extension:U4.extname(me).toLowerCase(),size:be?.size||0,lastModified:be?.lastModified||new Date,isDirectory:!1,relativePath:me};S.push(X)}}let le=J.get(".")||J.get("")||{path:".",name:U4.basename(f)||"root",children:[],fileCount:S.length,totalSize:S.reduce((me,be)=>me+(be.size||0),0),depth:0,relativePath:"."};return{allFiles:S,allDirectories:k,rootDir:le}}async findInverseMatches(c,f,g){console.log("[FilesystemService] Running inverse filter analysis...");let S=[];if(!this.adapter)return[];let J=(await this.adapter.buildFilteredFileTree(c)).paths;console.log(`[FilesystemService] Found ${J.length} total paths for inverse analysis`);for(let ee of J){let le=[];for(let[,{ignore:me,sourceDirectory:be,filterName:we}]of f){if(be!==""&&!ee.startsWith(be+"/")&&ee!==be)continue;let X=ee;be!==""&&ee.startsWith(be+"/")&&(X=ee.slice(be.length+1)),!(!X||X===".")&&me.ignores(X)&&le.push(we)}le.length>0&&S.push({path:ee,matchedFilters:le})}return console.log(`[FilesystemService] Inverse analysis complete: ${S.length} files matched filters`),S}getFilterStats(){return{...this.filterStats}}getEmptyTree(c){let f={path:".",name:U4.basename(c)||"root",children:[],fileCount:0,totalSize:0,depth:0,relativePath:"."};return{sha:"",root:f,allFiles:[],allDirectories:[f],stats:{totalFiles:0,totalDirectories:1,totalSize:0,maxDepth:0},metadata:{id:`fs-${Date.now()}`,timestamp:new Date,sourceType:"filesystem",sourceInfo:{path:c}},filterStats:this.filterStats,appliedFilters:[],inverseMatches:[]}}};var bC=Kh(require("fs/promises"),1),$ke=Kh(require("path"),1),J_t=Kh(Toe(),1),m$=class{async readFile(c){try{return{content:await bC.readFile(c,"utf-8")}}catch{return null}}async fileExists(c){try{return await bC.access(c),!0}catch{return!1}}async isDirectory(c){try{return(await bC.stat(c)).isDirectory()}catch{return!1}}async readDirectory(c){try{return await bC.readdir(c)}catch{return[]}}async getFileStats(c){try{let f=await bC.stat(c);return{size:f.size,isDirectory:f.isDirectory(),lastModified:f.mtime}}catch{return null}}async buildFilteredFileTree(c,f,g){let S=[],k=new Map,J=f&&f.length>0?(0,J_t.default)().add(f):null,ee=async(le,me="")=>{try{let be=await bC.readdir(le,{withFileTypes:!0});for(let we of be){let X=$ke.join(le,we.name),rt=me?$ke.join(me,we.name):we.name;if(!(J&&J.ignores(rt))&&!(we.isDirectory()&&this.shouldSkipDirectory(we.name)))if(we.isDirectory()){S.push(rt+"/");let We=await bC.stat(X);k.set(rt+"/",{size:0,isDirectory:!0,lastModified:We.mtime}),await ee(X,rt)}else{S.push(rt);let We=await bC.stat(X);k.set(rt,{size:We.size,isDirectory:!1,lastModified:We.mtime})}}}catch(be){console.warn(`Error walking directory ${le}:`,be)}};return await ee(c),{paths:S,stats:k}}shouldSkipDirectory(c){return["node_modules",".git","dist","build","coverage",".next",".turbo",".cache","tmp",".vscode",".idea"].includes(c)}};var ulr=Kh(Toe(),1);var RT=Kh(require("path")),V4=Kh(require("fs/promises")),Gke=class{constructor(c){this.basePath=c}async readFile(c){try{let f=RT.isAbsolute(c)?c:RT.join(this.basePath,c);return{content:await V4.readFile(f,"utf-8")}}catch(f){return console.error(`[CLIFileSystemAdapter] Failed to read ${c}:`,f),null}}async fileExists(c){try{let f=RT.isAbsolute(c)?c:RT.join(this.basePath,c);return await V4.access(f),!0}catch{return!1}}async readDirectory(c){try{let f=RT.isAbsolute(c)?c:RT.join(this.basePath,c);return await V4.readdir(f)}catch(f){return console.error(`[CLIFileSystemAdapter] Failed to read directory ${c}:`,f),[]}}async isDirectory(c){try{let f=RT.isAbsolute(c)?c:RT.join(this.basePath,c);return(await V4.stat(f)).isDirectory()}catch{return!1}}buildFilteredFileTree(c,f,g){return Promise.resolve({paths:[]})}},h$=class{constructor(){this.packageModule=new WR}async extractPackages(c,f){try{let g=new Gke(f),S=async J=>(await g.readFile(J))?.content||"",k=await this.packageModule.discoverPackages(c,S);return console.info(`[RepositoryScanner] Found ${k.length} packages in ${f}`),k}catch(g){return console.error("[RepositoryScanner] Failed to extract packages:",g),[]}}};var jp=Kh(c6e());var u6e=require("child_process"),l6e=require("stream"),joe=class{constructor(){this.type="node"}async execute(c,f=[],g={}){let S=Date.now();return new Promise(k=>{let J="",ee="",me={...g.env||process.env};delete me.NODE_OPTIONS,delete me.TS_NODE_PROJECT,delete me.TS_NODE_TRANSPILE_ONLY;let be=(0,u6e.spawn)(c,f,{cwd:g.cwd,env:me,shell:!0});be.stdout&&be.stdout.on("data",X=>{J+=X.toString()}),be.stderr&&be.stderr.on("data",X=>{ee+=X.toString()});let we;g.timeout&&(we=setTimeout(()=>{be.kill("SIGTERM")},g.timeout)),be.on("error",X=>{we&&clearTimeout(we),k({stdout:J,stderr:ee||X.message,exitCode:1,duration:Date.now()-S,command:c,args:f,error:X})}),be.on("close",X=>{we&&clearTimeout(we),k({stdout:J,stderr:ee,exitCode:X??0,duration:Date.now()-S,command:c,args:f})})})}stream(c,f=[],g={}){let k={...g.env||process.env};delete k.NODE_OPTIONS,delete k.TS_NODE_PROJECT,delete k.TS_NODE_TRANSPILE_ONLY;let J=(0,u6e.spawn)(c,f,{cwd:g.cwd,env:k,shell:!0}),ee=new Promise(le=>{let me="",be="",we=Date.now();J.stdout&&J.stdout.on("data",X=>{me+=X.toString()}),J.stderr&&J.stderr.on("data",X=>{be+=X.toString()}),J.on("close",X=>{le({stdout:me,stderr:be,exitCode:X??0,duration:Date.now()-we,command:c,args:f})}),J.on("error",X=>{le({stdout:me,stderr:be||X.message,exitCode:1,duration:Date.now()-we,command:c,args:f,error:X})})});return{stdout:J.stdout||new l6e.Readable({read(){}}),stderr:J.stderr||new l6e.Readable({read(){}}),exitPromise:ee,kill:()=>{J.kill("SIGTERM")}}}async isAvailable(c){try{let f=["--version"];return(await this.execute(c,f,{timeout:5e3})).exitCode===0}catch{return!1}}};var Joe=class{constructor(){this.executor=new joe;let c=new m$;this.filesystemService=new QR(c),this.sourceFilesCache=new Map,this.lenses=new Map,this.initializeLenses()}initializeLenses(){console.log("[QualityLensService] Initializing lenses...");let c=new jp.ESLintLens(this.executor);this.lenses.set("eslint",c),this.lenses.set("lint",c);let f=new jp.JestLens(this.executor);this.lenses.set("jest",f),this.lenses.set("test",f);let g=new jp.BunTestLens(this.executor);this.lenses.set("bun-test",g),this.lenses.set("bun",g);let S=new jp.VitestLens(this.executor);this.lenses.set("vitest",S),this.lenses.set("typescript",null),this.lenses.set("typecheck",null),this.lenses.set("tsc",null),this.lenses.set("knip",null),this.lenses.set("deadcode",null);let k=new jp.PrettierLens(this.executor);this.lenses.set("prettier",k),this.lenses.set("format",k);let J=new jp.BiomeLens(this.executor);J.setMode("lint"),this.lenses.set("biome-lint",J),this.lenses.set("biome",J);let ee=new jp.BiomeLens(this.executor);ee.setMode("format"),this.lenses.set("biome-format",ee);let le=new jp.GitLens(this.executor);this.lenses.set("git",le);let me=new jp.AlexandriaLens(this.executor);this.lenses.set("alexandria",me),this.lenses.set("docs",me)}async checkIfBunTestRunner(c,f){try{let g=await import("fs/promises"),k=(await import("path")).join(c,"package.json"),J=await g.readFile(k,"utf-8"),ee=JSON.parse(J),le=f.replace(/^(npm|yarn|pnpm)\s+run\s+/,"").split(" ")[0]||"test",me=ee.scripts?.[le];return!!(me&&(me.startsWith("bun test")||me.startsWith("bun run test")))}catch{return!1}}async discoverSourceFiles(c,f){let g=`${c}:${Array.from(f).join(",")}`;if(this.sourceFilesCache.has(g))return this.sourceFilesCache.get(g);try{let k=(await this.filesystemService.buildFileSystemTreeFromPath(c)).allFiles.filter(J=>f.has(J.extension)).map(J=>J.relativePath);return this.sourceFilesCache.set(g,k),console.log(`[QualityLensService] Discovered ${k.length} source files in ${c}`),k}catch(S){return console.warn(`[QualityLensService] Failed to discover source files in ${c}:`,S),[]}}async getLensForExecution(c,f,g){let S=c.toLowerCase();if(["typescript","typecheck","tsc"].includes(S)){let k=await this.discoverSourceFiles(f,jp.TS_SOURCE_EXTENSIONS);return new jp.TypeScriptLens(this.executor,{sourceFiles:k})}if(["knip","deadcode"].includes(S)){let k=await this.discoverSourceFiles(f,jp.SOURCE_EXTENSIONS);return new jp.KnipLens(this.executor,{sourceFiles:k})}return["test","jest"].includes(S)?g&&g.includes("bun test")?(console.log("[QualityLensService] Detected Bun test runner (from command)"),this.lenses.get("bun-test")||null):await this.checkIfBunTestRunner(f,g||"test")?(console.log("[QualityLensService] Detected Bun test runner (from package.json)"),this.lenses.get("bun-test")||null):this.lenses.get("jest")||null:["bun-test","bun"].includes(S)?this.lenses.get("bun-test")||null:S==="biome-lint"?(console.log("[QualityLensService] Using Biome lint lens"),this.lenses.get("biome-lint")||null):S==="biome-format"?(console.log("[QualityLensService] Using Biome format lens"),this.lenses.get("biome-format")||null):this.lenses.get(S)||null}async executeTool(c){let f=Date.now();if(!c.packageLayer||!c.packageCommand)throw new Error("packageLayer and packageCommand are required. Legacy execution has been removed.");return this.executeWithPackageLayer(c,f)}async executeWithPackageLayer(c,f){let{repoPath:g,packageLayer:S,packageCommand:k}=c;if(!S||!k)throw new Error("packageLayer and packageCommand are required for new execution path");let J=S.packageData.path||"",ee=J?`${g}/${J}`:g;if(!k.isLensCommand||!k.lensId)return console.log(`[QualityLensService] Not a lens command, executing directly: ${k.name}`),this.executeNonLensCommand(c,k,ee,f);let le=await this.getLensForExecution(k.lensId,ee,k.command);if(!le)return console.warn(`[QualityLensService] No lens registered for: ${k.lensId}`),this.executeNonLensCommand(c,k,ee,f);console.log(`[QualityLensService] Using ${le.name} for command: ${k.name} (lensId: ${k.lensId})`);try{let{command:me,args:be}=this.parseCommandString(k.command);le.configure({cwd:ee,tool:{name:k.lensId,command:me,args:be,cwd:ee,available:!0}});let we=await le.run(),{success:X,exitCode:rt}=this.determineLensSuccess(we);return{success:X,toolName:k.lensId,command:k.command,packagePath:J,exitCode:rt,duration:Date.now()-f,stdout:we.raw?.stdout||"",stderr:we.raw?.stderr||we.error?.message||"",lensResult:we,qualityContext:{lensId:k.lensId,operation:k.lensOperation,availableLenses:S.qualityMetrics?.availableLenses,missingLenses:S.qualityMetrics?.missingLenses}}}catch(me){console.error("[QualityLensService] Error:",me);let be=me instanceof Error?me:new Error(String(me));return this.createErrorResponse(k.lensId||k.name,k.command,J,be,f)}}async executeNonLensCommand(c,f,g,S){let{command:k,args:J}=this.parseCommandString(f.command);try{let ee=await this.executor.execute(k,J,{cwd:g});return{success:ee.exitCode===0,toolName:f.name,command:f.command,packagePath:c.packageLayer?.packageData.path,exitCode:ee.exitCode,duration:Date.now()-S,stdout:ee.stdout,stderr:ee.stderr}}catch(ee){let le=ee instanceof Error?ee:new Error(String(ee));return this.createErrorResponse(f.name,f.command,c.packageLayer?.packageData.path,le,S)}}parseCommandString(c){if(c.startsWith("npm run "))return{command:"npm",args:["run",...c.split(" ").slice(2)]};if(c.startsWith("yarn "))return{command:"yarn",args:c.split(" ").slice(1)};if(c.startsWith("pnpm "))return{command:"pnpm",args:c.split(" ").slice(1)};let f=c.split(" ");return{command:f[0]||"",args:f.slice(1)}}determineLensSuccess(c){let f=0;return c.raw?.exitCode!==void 0?f=c.raw.exitCode:(c.error||c.metrics?.issuesBySeverity?.error&&c.metrics.issuesBySeverity.error>0)&&(f=1),{success:f!==127,exitCode:f}}createErrorResponse(c,f,g,S,k){return{success:!1,toolName:c,command:f,packagePath:g,exitCode:1,duration:Date.now()-k,stdout:"",stderr:S.message||"Tool execution failed",error:S.message}}getAvailableLenses(){return Array.from(this.lenses.keys())}hasLensForTool(c){return this.lenses.has(c.toLowerCase())}};var qoe=class{constructor(){this.fileCountsByPackage=new Map}setFileTree(c){this.fileTree=c,this.calculateFileCountsPerPackage()}calculateFileCountsPerPackage(){if(!this.fileTree)return;this.fileCountsByPackage.clear();let c=new Set(["ts","tsx","js","jsx","mts","mjs","cts","cjs",".ts",".tsx",".js",".jsx",".mts",".mjs",".cts",".cjs"]);for(let f of this.fileTree.allFiles){let g=f.extension||"";if(!c.has(g)&&!c.has(g.replace(/^\./,"")))continue;let S=f.relativePath;if(S.includes(".test.")||S.includes(".spec.")||S.includes("__tests__")||S.includes("__mocks__")||S.endsWith(".config.ts")||S.endsWith(".config.js"))continue;let k=this.fileCountsByPackage.get("")||0;this.fileCountsByPackage.set("",k+1);let J=S.split("/"),ee="";for(let le=0;le<J.length-1;le++){let me=J[le]??"";ee=ee?`${ee}/${me}`:me;let be=this.fileCountsByPackage.get(ee)||0;this.fileCountsByPackage.set(ee,be+1)}}}getFileCountForPackage(c){return this.fileCountsByPackage.get(c||"")||0}mapLensToHexagonDimension(c){return{jest:"tests",test:"tests",knip:"deadCode",deadcode:"deadCode",prettier:"formatting",format:"formatting",eslint:"linting",lint:"linting",typescript:"types",typecheck:"types",tsc:"types",alexandria:"documentation"}[c.toLowerCase()]||null}getIssuePath(c){return c.file}findOwningPackage(c,f){let g,S=0;for(let k of f)k.path&&(c.startsWith(k.path+"/")||c===k.path)&&k.path.length>S&&(S=k.path.length,g=k);return g}distributeIssuesToPackages(c){let f=c.filter(k=>!!(k.packagePath&&k.packagePath!=="")).map(k=>({name:k.package,path:k.packagePath})).filter((k,J,ee)=>ee.findIndex(le=>le.path===k.path)===J);if(f.length===0)return c;let g=new Map,S=[];for(let k of c){if(k.packagePath&&k.packagePath!==""){S.push(k);continue}let J=k.result?.lensResult?.issues;if(!J||J.length===0){S.push(k);continue}let ee=[];for(let le of J){let me=this.getIssuePath(le);if(!me){ee.push(le);continue}let be=this.findOwningPackage(me,f);if(be){let we=be.path,X=g.get(we);X||(X=new Map,g.set(we,X));let rt=X.get(k.lens);rt||(rt=[],X.set(k.lens,rt));let We=me.slice(be.path.length+1),Ue={...le,file:We,originalPath:me};rt.push(Ue)}else ee.push(le)}if(k.result?.lensResult){let le={...k,result:{...k.result,lensResult:{...k.result.lensResult,issues:ee,metrics:this.recalculateMetricsFromIssues(k.result.lensResult.metrics,ee)}}};S.push(le)}else S.push(k)}for(let[k,J]of g){let ee=f.find(le=>le.path===k);if(ee)for(let[le,me]of J){let be=S.findIndex(we=>we.packagePath===k&&we.lens===le);if(be>=0){let we=S[be];if(we?.result?.lensResult){let rt=[...we.result.lensResult.issues||[],...me];S[be]={...we,result:{...we.result,lensResult:{...we.result.lensResult,issues:rt,metrics:this.recalculateMetricsFromIssues(we.result.lensResult.metrics,rt)}}}}}else{let we=c.find(rt=>rt.lens===le&&(!rt.packagePath||rt.packagePath==="")),X={lensName:le,tool:le,timestamp:Date.now(),success:!0,issues:me,metrics:this.createMetricsFromIssues(me)};S.push({package:ee.name,packagePath:ee.path,lens:le,command:we?.command||le,timestamp:we?.timestamp||Date.now(),result:{success:!0,toolName:le,command:we?.command||le,packagePath:ee.path,exitCode:me.length>0?1:0,duration:0,stdout:"",stderr:"",lensResult:X}})}}}return S}createMetricsFromIssues(c){let f={error:0,warning:0,info:0,hint:0};for(let S of c){let k=S.severity?.toLowerCase()||"warning";k in f&&f[k]++}return{filesAnalyzed:new Set(c.map(S=>this.getIssuePath(S)).filter(Boolean)).size||1,totalIssues:c.length,issuesBySeverity:f,executionTime:0}}recalculateMetricsFromIssues(c,f){let g=this.createMetricsFromIssues(f);return c?.custom&&(g.custom=c.custom),c?.executionTime&&(g.executionTime=c.executionTime),g}extractQualityScore(c){if(c.result?.lensResult?.qualityScore!==void 0&&c.result.lensResult.qualityScore!==null&&c.result.lensResult.qualityScore>0)return c.result.lensResult.qualityScore;if(!c.result?.success)return 0;let f=c.result?.lensResult?.issues||[];if(f.length===0)return 100;let g=new Set(f.map(le=>le.file)).size,S=c.packagePath||"",k=this.getFileCountForPackage(S);if(k===0){let le=c.result?.lensResult?.metrics?.filesAnalyzed||1,me=Math.max(0,le-g);return Math.round(me/le*100)}let J=Math.max(0,k-g);return Math.round(J/k*100)}calculateHexagonMetrics(c){let f={tests:0,deadCode:0,formatting:0,linting:0,types:0,documentation:0};for(let g of c){let S=this.mapLensToHexagonDimension(g.lens);if(S){let k=this.extractQualityScore(g);S==="deadCode"&&(k=100-k),S==="deadCode"?f[S]=f[S]===0?k:Math.min(f[S],k):f[S]=Math.max(f[S],k)}}return f}getGitMetadata(){let c={};if(process.env.GITHUB_SHA&&(c.commit=process.env.GITHUB_SHA),process.env.GITHUB_REF){let f=process.env.GITHUB_REF;f.startsWith("refs/heads/")?c.branch=f.replace("refs/heads/",""):f.startsWith("refs/pull/")&&(c.branch=f)}if(process.env.GITHUB_REPOSITORY&&(c.repository=process.env.GITHUB_REPOSITORY),Object.keys(c).length!==0)return c}calculatePerPackageMetrics(c){let f=new Map;for(let S of c){let k=f.get(S.package);k?k.results.push(S):f.set(S.package,{path:S.packagePath,results:[S]})}let g=[];for(let[S,{path:k,results:J}]of f)g.push({name:S,path:k,hexagon:this.calculateHexagonMetrics(J)});return g}format(c){let f=this.getGitMetadata(),g=this.distributeIssuesToPackages(c),S=this.calculatePerPackageMetrics(g),k={metadata:{timestamp:new Date().toISOString(),version:"1.0.0",totalPackages:S.length,totalLenses:g.length,...f&&{git:f}},results:g.map(J=>({package:{name:J.package,path:J.packagePath},lens:{id:J.lens,command:J.command},execution:{success:J.result?.success??!1,exitCode:J.result?.exitCode,duration:J.result?.duration,timestamp:J.timestamp},issues:J.result?.lensResult?.issues||[],metrics:J.result?.lensResult?.metrics||{},coverage:J.result?.lensResult?.coverage,fileMetrics:J.result?.lensResult?.fileMetrics,qualityContext:J.result?.qualityContext||{},error:J.error}))};return S.length>0&&(k.qualityMetrics={packages:S}),JSON.stringify(k,null,2)}};var gpt=(_=0)=>c=>`\x1B[${c+_}m`,ypt=(_=0)=>c=>`\x1B[${38+_};5;${c}m`,vpt=(_=0)=>(c,f,g)=>`\x1B[${38+_};2;${c};${f};${g}m`,ed={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},Qwr=Object.keys(ed.modifier),Zlr=Object.keys(ed.color),efr=Object.keys(ed.bgColor),Xwr=[...Zlr,...efr];function tfr(){let _=new Map;for(let[c,f]of Object.entries(ed)){for(let[g,S]of Object.entries(f))ed[g]={open:`\x1B[${S[0]}m`,close:`\x1B[${S[1]}m`},f[g]=ed[g],_.set(S[0],S[1]);Object.defineProperty(ed,c,{value:f,enumerable:!1})}return Object.defineProperty(ed,"codes",{value:_,enumerable:!1}),ed.color.close="\x1B[39m",ed.bgColor.close="\x1B[49m",ed.color.ansi=gpt(),ed.color.ansi256=ypt(),ed.color.ansi16m=vpt(),ed.bgColor.ansi=gpt(10),ed.bgColor.ansi256=ypt(10),ed.bgColor.ansi16m=vpt(10),Object.defineProperties(ed,{rgbToAnsi256:{value(c,f,g){return c===f&&f===g?c<8?16:c>248?231:Math.round((c-8)/247*24)+232:16+36*Math.round(c/255*5)+6*Math.round(f/255*5)+Math.round(g/255*5)},enumerable:!1},hexToRgb:{value(c){let f=/[a-f\d]{6}|[a-f\d]{3}/i.exec(c.toString(16));if(!f)return[0,0,0];let[g]=f;g.length===3&&(g=[...g].map(k=>k+k).join(""));let S=Number.parseInt(g,16);return[S>>16&255,S>>8&255,S&255]},enumerable:!1},hexToAnsi256:{value:c=>ed.rgbToAnsi256(...ed.hexToRgb(c)),enumerable:!1},ansi256ToAnsi:{value(c){if(c<8)return 30+c;if(c<16)return 90+(c-8);let f,g,S;if(c>=232)f=((c-232)*10+8)/255,g=f,S=f;else{c-=16;let ee=c%36;f=Math.floor(c/36)/5,g=Math.floor(ee/6)/5,S=ee%6/5}let k=Math.max(f,g,S)*2;if(k===0)return 30;let J=30+(Math.round(S)<<2|Math.round(g)<<1|Math.round(f));return k===2&&(J+=60),J},enumerable:!1},rgbToAnsi:{value:(c,f,g)=>ed.ansi256ToAnsi(ed.rgbToAnsi256(c,f,g)),enumerable:!1},hexToAnsi:{value:c=>ed.ansi256ToAnsi(ed.hexToAnsi256(c)),enumerable:!1}}),ed}var rfr=tfr(),pE=rfr;var Woe=Kh(require("node:process"),1),bpt=Kh(require("node:os"),1),f6e=Kh(require("node:tty"),1);function xC(_,c=globalThis.Deno?globalThis.Deno.args:Woe.default.argv){let f=_.startsWith("-")?"":_.length===1?"-":"--",g=c.indexOf(f+_),S=c.indexOf("--");return g!==-1&&(S===-1||g<S)}var{env:td}=Woe.default,zoe;xC("no-color")||xC("no-colors")||xC("color=false")||xC("color=never")?zoe=0:(xC("color")||xC("colors")||xC("color=true")||xC("color=always"))&&(zoe=1);function nfr(){if("FORCE_COLOR"in td)return td.FORCE_COLOR==="true"?1:td.FORCE_COLOR==="false"?0:td.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(td.FORCE_COLOR,10),3)}function ifr(_){return _===0?!1:{level:_,hasBasic:!0,has256:_>=2,has16m:_>=3}}function sfr(_,{streamIsTTY:c,sniffFlags:f=!0}={}){let g=nfr();g!==void 0&&(zoe=g);let S=f?zoe:g;if(S===0)return 0;if(f){if(xC("color=16m")||xC("color=full")||xC("color=truecolor"))return 3;if(xC("color=256"))return 2}if("TF_BUILD"in td&&"AGENT_NAME"in td)return 1;if(_&&!c&&S===void 0)return 0;let k=S||0;if(td.TERM==="dumb")return k;if(Woe.default.platform==="win32"){let J=bpt.default.release().split(".");return Number(J[0])>=10&&Number(J[2])>=10586?Number(J[2])>=14931?3:2:1}if("CI"in td)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(J=>J in td)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(J=>J in td)||td.CI_NAME==="codeship"?1:k;if("TEAMCITY_VERSION"in td)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(td.TEAMCITY_VERSION)?1:0;if(td.COLORTERM==="truecolor"||td.TERM==="xterm-kitty"||td.TERM==="xterm-ghostty"||td.TERM==="wezterm")return 3;if("TERM_PROGRAM"in td){let J=Number.parseInt((td.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(td.TERM_PROGRAM){case"iTerm.app":return J>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(td.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(td.TERM)||"COLORTERM"in td?1:k}function Dpt(_,c={}){let f=sfr(_,{streamIsTTY:_&&_.isTTY,...c});return ifr(f)}var afr={stdout:Dpt({isTTY:f6e.default.isatty(1)}),stderr:Dpt({isTTY:f6e.default.isatty(2)})},Cpt=afr;function Spt(_,c,f){let g=_.indexOf(c);if(g===-1)return _;let S=c.length,k=0,J="";do J+=_.slice(k,g)+c+f,k=g+S,g=_.indexOf(c,k);while(g!==-1);return J+=_.slice(k),J}function Ept(_,c,f,g){let S=0,k="";do{let J=_[g-1]==="\r";k+=_.slice(S,J?g-1:g)+c+(J?`\r
|
|
981
|
+
`);(0,qft.parsePipRequirementsFile)(qr).forEach(Li=>{if(Li.type==="ProjectName"&&Li.name){let Ln="*";Li.versionSpec&&Li.versionSpec.length>0&&(Ln=Li.versionSpec[0].version||"*"),me[Li.name]=Ln}})}catch(qr){console.warn("Failed to parse PEP 621 dependencies with pip-requirements-js, falling back to simple parsing:",qr),J.dependencies.forEach(ui=>{let Li=ui.trim(),Ln=Li.indexOf(" ");Ln>0?me[Li.substring(0,Ln)]="*":me[Li]="*"})}let we=this.detectPythonPackageManager(c),X=k?.description||J?.description,rt;k?.license?rt=k.license:J?.license&&(rt=typeof J.license=="string"?J.license:J.license.text);let We,Ue;k?.authors&&k.authors.length>0?(We=k.authors,Ue=k.authors[0]):J?.authors&&J.authors.length>0&&(We=J.authors.map(qr=>qr.name&&qr.email?`${qr.name} <${qr.email}>`:qr.name||qr.email||"").filter(Boolean),Ue=We[0]);let At,Vt;k?(At=k.repository,Vt=k.homepage):J?.urls&&(At=J.urls.repository||J.urls.Repository||J.urls.source||J.urls.Source,Vt=J.urls.homepage||J.urls.Homepage||J.urls.home||J.urls.Home);let Ir=k?.keywords||J?.keywords;return{name:ee,version:le,path:g,manifestPath:f,packageManager:we,dependencies:me,devDependencies:be,peerDependencies:{},description:X,license:rt,author:Ue,authors:We,repository:At,homepage:Vt,keywords:Ir,isMonorepoRoot:!1,isWorkspace:!1,parentPackage:void 0,availableCommands:[]}}detectWorkspaces(c){return null}detectPackageManager(c,f){return this.detectPythonPackageManager(c)}detectPythonPackageManager(c){return c.tool?.poetry?"poetry":"pip"}detectDocsFolder(c,f,g){return new u$().detectDocsFolder(c,f,{})}},pke=class{manifestFileName="Cargo.toml";packageType="cargo";canParse(c){return c.endsWith("Cargo.toml")}parseContent(c){try{return zFe(c)}catch{return null}}extractPackageData(c,f){let g=c.package;if(!g)return null;let S;f==="Cargo.toml"?S="":f.endsWith("/Cargo.toml")?S=f.slice(0,-11):S=f;let k={},J={};c.dependencies&&Object.entries(c.dependencies).forEach(([me,be])=>{k[me]=typeof be=="string"?be:JSON.stringify(be)}),c["dev-dependencies"]&&Object.entries(c["dev-dependencies"]).forEach(([me,be])=>{J[me]=typeof be=="string"?be:JSON.stringify(be)});let ee=g.authors?.[0],le=g.homepage||g.documentation;return{name:g.name||"unnamed",version:g.version,path:S,manifestPath:f,packageManager:"cargo",dependencies:k,devDependencies:J,peerDependencies:{},description:g.description,license:g.license,author:ee,authors:g.authors,repository:g.repository,homepage:le,keywords:g.keywords,isMonorepoRoot:!!c.workspace,isWorkspace:!1,parentPackage:void 0,availableCommands:[]}}detectWorkspaces(c){return c.workspace?.members||null}detectPackageManager(){return"cargo"}detectDocsFolder(c,f,g){return new u$().detectDocsFolder(c,f,{})}},WR=class{parsers=[new u$,new _ke,new pke];async discoverPackages(c,f){let g=[];if(!c.allFiles)return g;let S=c.allFiles.filter(J=>J.path?this.parsers.some(ee=>ee.canParse(J.path)):!1),k=c.allFiles.map(J=>J.path).filter(Boolean);for(let J of S){if(!J.path)continue;let ee=this.parsers.find(Vt=>Vt.canParse(J.path));if(!ee)continue;let le=null;if(f)try{let Vt=await f(J.path);Vt&&(le=ee.parseContent(Vt))}catch(Vt){console.warn(`Could not read or parse ${J.path}:`,Vt);continue}else{let Vt=J.path.split("/").slice(-2,-1)[0]||"unnamed";le=this.createMinimalManifest(ee.packageType,Vt)}if(!le)continue;let me=ee.extractPackageData(le,J.path);if(!me){console.warn(`[PackageLayerModule] extractPackageData returned null for ${J.path}`,{content:le,parser:ee.packageType});continue}let be=J.path.substring(0,J.path.lastIndexOf("/")),we=k.filter(Vt=>Vt.startsWith(be)&&this.isLockFile(Vt));me.packageManager=ee.detectPackageManager(le,we),ee.packageType==="node"&&me.availableCommands&&me.packageManager&&me.packageManager!=="unknown"&&me.packageManager!=="npm"&&(me.availableCommands=me.availableCommands.map(Vt=>{if(Vt.command.includes("npm ")){let Ir=Vt.command;return me.packageManager==="yarn"?Ir=Ir.replace("npm run","yarn").replace("npm install","yarn install").replace("npm ci","yarn install --frozen-lockfile").replace("npm update","yarn upgrade"):me.packageManager==="pnpm"&&(Ir=Ir.replace("npm","pnpm")),{...Vt,command:Ir}}return Vt}));let X={id:`package-manifest-${me.path}`,name:ee.manifestFileName,patterns:[{type:"exact",pattern:J.path,description:`${ee.packageType} package manifest`}],matchedFiles:[J.path],fileCount:1},rt;ee.detectConfigs&&(rt=ee.detectConfigs(me.path,c,le));let We;ee.detectDocsFolder&&(We=ee.detectDocsFolder(me.path,c,le));let Ue=me.availableCommands?c$.calculateQualityProfile(me.availableCommands):void 0,At={id:`package-${ee.packageType}-${me.path.replace(/[^a-zA-Z0-9-]/g,"-")}`,name:me.name,type:ee.packageType,enabled:!0,derivedFrom:{fileSets:[X],derivationType:"content",description:`${ee.packageType} package defined in ${ee.manifestFileName}`,contentExtraction:{method:"parse",parser:{format:ee.manifestFileName.endsWith(".json")?"json":"toml",paths:ee.packageType==="node"?[""]:ee.packageType==="python"?["tool.poetry","project"]:["package"]}}},packageData:me,configFiles:rt,docsFolder:We,qualityMetrics:Ue,pillar:"foundationHealth"};g.push(At)}return this.resolveWorkspaceRelationships(g),g}createPackageLayersFromBoundaries(c){return c.map(f=>{let g={id:`package-manifest-${f.rootPath||"root"}`,name:"package.json",patterns:[{type:"exact",pattern:f.packageJsonPath,description:"Node.js package manifest"}],matchedFiles:[f.packageJsonPath],fileCount:1},S={name:f.packageData?.name||f.name,version:f.packageData?.version,path:f.rootPath||".",manifestPath:f.packageJsonPath,packageManager:"unknown",dependencies:{},devDependencies:{},peerDependencies:{},isMonorepoRoot:!!f.packageData?.workspaces,isWorkspace:!f.isRoot&&c.length>1,parentPackage:f.isRoot?void 0:"root"};return{id:`package-node-${f.id}`,name:S.name,type:"node",enabled:!0,derivedFrom:{fileSets:[g],derivationType:"content",description:"Node.js package defined in package.json"},packageData:S,pillar:"foundationHealth"}})}isLockFile(c){return["package-lock.json","yarn.lock","pnpm-lock.yaml","poetry.lock","Pipfile.lock","Cargo.lock"].some(g=>c.endsWith(g))}resolveWorkspaceRelationships(c){let f=c.filter(g=>g.packageData.path==="."||g.packageData.path==="");c.forEach(g=>{if(g.packageData.path!=="."&&g.packageData.path!==""){g.packageData.isWorkspace=!0;let S=g.packageData.path.includes("/")?g.packageData.path.substring(0,g.packageData.path.lastIndexOf("/")):".",k=c.find(J=>J.packageData.path===S);k&&(g.packageData.parentPackage=k.packageData.name)}})}createMinimalManifest(c,f){switch(c){case"node":return{name:f,version:"0.0.0",dependencies:{},devDependencies:{}};case"python":return{project:{name:f,version:"0.0.0"}};case"cargo":return{package:{name:f,version:"0.0.0"}};default:return{}}}};var M1=Kh(k_t(),1);var j_t=Kh(Toe(),1),U4={basename:_=>_.split("/").pop()||"",join:(..._)=>_.filter(f=>f).join("/").replace(/\/+/g,"/"),relative:(_,c)=>!_||_==="."?c:c.startsWith(_+"/")?c.slice(_.length+1):c===_?".":c,dirname:_=>{let c=_.lastIndexOf("/");return c>0?_.slice(0,c):""},extname:_=>{let c=_.lastIndexOf(".");return c>0?_.slice(c):""}},QR=class{adapter;filterStats={totalFiltered:0,filteredByLayer:{},examples:[],filteredByDirectory:{}};constructor(c){this.adapter=c}async buildFileSystemTreeFromPath(c,f,g){console.time("[FilesystemService] Total build time"),this.filterStats={totalFiltered:0,filteredByLayer:{},examples:[],filteredByDirectory:{}};let S=f||[],k=g?.enableInverseFiltering||!1;if(!this.adapter){let qr={path:c,name:c.split("/").pop()||c,children:[],fileCount:0,totalSize:0,depth:0,relativePath:"."};return{sha:"",root:qr,allFiles:[],allDirectories:[qr],stats:{totalFiles:0,totalDirectories:1,totalSize:0,maxDepth:0},metadata:{id:`fs-${Date.now()}`,timestamp:new Date,sourceType:"filesystem",sourceInfo:{path:c}},filterStats:this.filterStats,appliedFilters:S,inverseMatches:k?[]:void 0}}console.time("[FilesystemService] Build file tree");let J=[],ee;for(let qr of S)qr.enabled&&qr.filterData?.excludedPatterns&&(J.push(...qr.filterData.excludedPatterns.map(ui=>ui.pattern)),qr.filterData.sourceDirectory&&(ee=qr.filterData.sourceDirectory));let le=await this.adapter.buildFilteredFileTree(c,J,ee),me=le.paths,be=le.stats,we=this.createIgnoreInstances(S);for(let qr of me)this.shouldIncludeFile(qr,we,S)||this.filterStats.totalFiltered++;console.timeEnd("[FilesystemService] Build file tree"),console.log(`[FilesystemService] Found ${me.length} paths after filtering`),console.time("[FilesystemService] Convert to tree structure");let{allFiles:X,allDirectories:rt,rootDir:We}=await this.convertPathsToTree(me,c,be);console.timeEnd("[FilesystemService] Convert to tree structure");let Ue=[];k&&(Ue=await this.findInverseMatches(c,we,S));let At=X.reduce((qr,ui)=>qr+(ui.size||0),0),Vt=Math.max(...rt.map(qr=>qr.depth||0));S.forEach(qr=>{qr.enabled&&this.filterStats.filteredByLayer[qr.id]&&(qr.filterData.stats||(qr.filterData.stats={totalFiltered:0,bytesExcluded:0}),qr.filterData.stats.totalFiltered=this.filterStats.filteredByLayer[qr.id])});let Ir={sha:"",root:We||{path:".",name:U4.basename(c)||"root",children:[],fileCount:0,totalSize:0,depth:0,relativePath:"."},allFiles:X,allDirectories:rt,stats:{totalFiles:X.length,totalDirectories:rt.length,totalSize:At,maxDepth:Vt},metadata:{id:`fs-${Date.now()}`,timestamp:new Date,sourceType:"filesystem",sourceInfo:{path:c}},filterStats:this.filterStats,appliedFilters:S,inverseMatches:Ue};return console.timeEnd("[FilesystemService] Total build time"),Ir}createIgnoreInstances(c){let f=new Map;for(let g of c){if(!g.enabled||!g.filterData?.excludedPatterns)continue;let S=g.filterData.sourceDirectory||"",k=`${g.id}:${S}`,J=(0,j_t.default)(),ee=g.filterData.excludedPatterns.map(le=>le.pattern);J.add(ee),f.set(k,{ignore:J,sourceDirectory:S,filterId:g.id,filterName:g.name})}return f}shouldIncludeFile(c,f,g){for(let[,{ignore:S,sourceDirectory:k,filterId:J,filterName:ee}]of f){if(k!==""&&!c.startsWith(k+"/")&&c!==k)continue;let le=c;if(k!==""&&c.startsWith(k+"/")&&(le=c.slice(k.length+1)),!(!le||le===".")&&S.ignores(le)){this.filterStats.totalFiltered++,this.filterStats.filteredByLayer[J]=(this.filterStats.filteredByLayer[J]||0)+1;let me=U4.dirname(c)||".";return this.filterStats.filteredByDirectory[me]||(this.filterStats.filteredByDirectory[me]={count:0,reasons:new Set}),this.filterStats.filteredByDirectory[me].count++,this.filterStats.filteredByDirectory[me].reasons.add(ee),!1}}return!0}async convertPathsToTree(c,f,g){let S=[],k=[],J=new Map,ee=g||new Map;if(!g&&this.adapter&&"getFileStats"in this.adapter){let me=c.map(async be=>{try{let we=U4.join(f,be),X=await this.adapter.getFileStats(we);X&&ee.set(be,{size:X.size||0,lastModified:X.lastModified||new Date,isDirectory:X.isDirectory||!1})}catch{}});await Promise.all(me)}for(let me of c){let be=ee.get(me);if(be?.isDirectory||me.endsWith("/")){let X={path:me||".",name:U4.basename(me)||"root",children:[],fileCount:0,totalSize:0,depth:me.split("/").length-1,relativePath:me||"."};k.push(X),J.set(me,X)}else{let X={path:me,name:U4.basename(me),extension:U4.extname(me).toLowerCase(),size:be?.size||0,lastModified:be?.lastModified||new Date,isDirectory:!1,relativePath:me};S.push(X)}}let le=J.get(".")||J.get("")||{path:".",name:U4.basename(f)||"root",children:[],fileCount:S.length,totalSize:S.reduce((me,be)=>me+(be.size||0),0),depth:0,relativePath:"."};return{allFiles:S,allDirectories:k,rootDir:le}}async findInverseMatches(c,f,g){console.log("[FilesystemService] Running inverse filter analysis...");let S=[];if(!this.adapter)return[];let J=(await this.adapter.buildFilteredFileTree(c)).paths;console.log(`[FilesystemService] Found ${J.length} total paths for inverse analysis`);for(let ee of J){let le=[];for(let[,{ignore:me,sourceDirectory:be,filterName:we}]of f){if(be!==""&&!ee.startsWith(be+"/")&&ee!==be)continue;let X=ee;be!==""&&ee.startsWith(be+"/")&&(X=ee.slice(be.length+1)),!(!X||X===".")&&me.ignores(X)&&le.push(we)}le.length>0&&S.push({path:ee,matchedFilters:le})}return console.log(`[FilesystemService] Inverse analysis complete: ${S.length} files matched filters`),S}getFilterStats(){return{...this.filterStats}}getEmptyTree(c){let f={path:".",name:U4.basename(c)||"root",children:[],fileCount:0,totalSize:0,depth:0,relativePath:"."};return{sha:"",root:f,allFiles:[],allDirectories:[f],stats:{totalFiles:0,totalDirectories:1,totalSize:0,maxDepth:0},metadata:{id:`fs-${Date.now()}`,timestamp:new Date,sourceType:"filesystem",sourceInfo:{path:c}},filterStats:this.filterStats,appliedFilters:[],inverseMatches:[]}}};var bC=Kh(require("fs/promises"),1),$ke=Kh(require("path"),1),J_t=Kh(Toe(),1),m$=class{async readFile(c){try{return{content:await bC.readFile(c,"utf-8")}}catch{return null}}async fileExists(c){try{return await bC.access(c),!0}catch{return!1}}async isDirectory(c){try{return(await bC.stat(c)).isDirectory()}catch{return!1}}async readDirectory(c){try{return await bC.readdir(c)}catch{return[]}}async getFileStats(c){try{let f=await bC.stat(c);return{size:f.size,isDirectory:f.isDirectory(),lastModified:f.mtime}}catch{return null}}async buildFilteredFileTree(c,f,g){let S=[],k=new Map,J=f&&f.length>0?(0,J_t.default)().add(f):null,ee=async(le,me="")=>{try{let be=await bC.readdir(le,{withFileTypes:!0});for(let we of be){let X=$ke.join(le,we.name),rt=me?$ke.join(me,we.name):we.name;if(!(J&&J.ignores(rt))&&!(we.isDirectory()&&this.shouldSkipDirectory(we.name)))if(we.isDirectory()){S.push(rt+"/");let We=await bC.stat(X);k.set(rt+"/",{size:0,isDirectory:!0,lastModified:We.mtime}),await ee(X,rt)}else{S.push(rt);let We=await bC.stat(X);k.set(rt,{size:We.size,isDirectory:!1,lastModified:We.mtime})}}}catch(be){console.warn(`Error walking directory ${le}:`,be)}};return await ee(c),{paths:S,stats:k}}shouldSkipDirectory(c){return["node_modules",".git","dist","build","coverage",".next",".turbo",".cache","tmp",".vscode",".idea"].includes(c)}};var ulr=Kh(Toe(),1);var RT=Kh(require("path")),V4=Kh(require("fs/promises")),Gke=class{constructor(c){this.basePath=c}async readFile(c){try{let f=RT.isAbsolute(c)?c:RT.join(this.basePath,c);return{content:await V4.readFile(f,"utf-8")}}catch(f){return console.error(`[CLIFileSystemAdapter] Failed to read ${c}:`,f),null}}async fileExists(c){try{let f=RT.isAbsolute(c)?c:RT.join(this.basePath,c);return await V4.access(f),!0}catch{return!1}}async readDirectory(c){try{let f=RT.isAbsolute(c)?c:RT.join(this.basePath,c);return await V4.readdir(f)}catch(f){return console.error(`[CLIFileSystemAdapter] Failed to read directory ${c}:`,f),[]}}async isDirectory(c){try{let f=RT.isAbsolute(c)?c:RT.join(this.basePath,c);return(await V4.stat(f)).isDirectory()}catch{return!1}}buildFilteredFileTree(c,f,g){return Promise.resolve({paths:[]})}},h$=class{constructor(){this.packageModule=new WR}async extractPackages(c,f){try{let g=new Gke(f),S=async J=>(await g.readFile(J))?.content||"",k=await this.packageModule.discoverPackages(c,S);return console.info(`[RepositoryScanner] Found ${k.length} packages in ${f}`),k}catch(g){return console.error("[RepositoryScanner] Failed to extract packages:",g),[]}}};var jp=Kh(c6e());var u6e=require("child_process"),l6e=require("stream"),joe=class{constructor(){this.type="node"}async execute(c,f=[],g={}){let S=Date.now();return new Promise(k=>{let J="",ee="",me={...g.env||process.env};delete me.NODE_OPTIONS,delete me.TS_NODE_PROJECT,delete me.TS_NODE_TRANSPILE_ONLY;let be=(0,u6e.spawn)(c,f,{cwd:g.cwd,env:me,shell:!0});be.stdout&&be.stdout.on("data",X=>{J+=X.toString()}),be.stderr&&be.stderr.on("data",X=>{ee+=X.toString()});let we;g.timeout&&(we=setTimeout(()=>{be.kill("SIGTERM")},g.timeout)),be.on("error",X=>{we&&clearTimeout(we),k({stdout:J,stderr:ee||X.message,exitCode:1,duration:Date.now()-S,command:c,args:f,error:X})}),be.on("close",X=>{we&&clearTimeout(we),k({stdout:J,stderr:ee,exitCode:X??0,duration:Date.now()-S,command:c,args:f})})})}stream(c,f=[],g={}){let k={...g.env||process.env};delete k.NODE_OPTIONS,delete k.TS_NODE_PROJECT,delete k.TS_NODE_TRANSPILE_ONLY;let J=(0,u6e.spawn)(c,f,{cwd:g.cwd,env:k,shell:!0}),ee=new Promise(le=>{let me="",be="",we=Date.now();J.stdout&&J.stdout.on("data",X=>{me+=X.toString()}),J.stderr&&J.stderr.on("data",X=>{be+=X.toString()}),J.on("close",X=>{le({stdout:me,stderr:be,exitCode:X??0,duration:Date.now()-we,command:c,args:f})}),J.on("error",X=>{le({stdout:me,stderr:be||X.message,exitCode:1,duration:Date.now()-we,command:c,args:f,error:X})})});return{stdout:J.stdout||new l6e.Readable({read(){}}),stderr:J.stderr||new l6e.Readable({read(){}}),exitPromise:ee,kill:()=>{J.kill("SIGTERM")}}}async isAvailable(c){try{let f=["--version"];return(await this.execute(c,f,{timeout:5e3})).exitCode===0}catch{return!1}}};var Joe=class{constructor(){this.executor=new joe;let c=new m$;this.filesystemService=new QR(c),this.sourceFilesCache=new Map,this.lenses=new Map,this.initializeLenses()}initializeLenses(){console.log("[QualityLensService] Initializing lenses...");let c=new jp.ESLintLens(this.executor);this.lenses.set("eslint",c),this.lenses.set("lint",c);let f=new jp.JestLens(this.executor);this.lenses.set("jest",f),this.lenses.set("test",f);let g=new jp.BunTestLens(this.executor);this.lenses.set("bun-test",g),this.lenses.set("bun",g);let S=new jp.VitestLens(this.executor);this.lenses.set("vitest",S),this.lenses.set("typescript",null),this.lenses.set("typecheck",null),this.lenses.set("tsc",null),this.lenses.set("knip",null),this.lenses.set("deadcode",null);let k=new jp.PrettierLens(this.executor);this.lenses.set("prettier",k),this.lenses.set("format",k);let J=new jp.BiomeLens(this.executor);J.setMode("lint"),this.lenses.set("biome-lint",J),this.lenses.set("biome",J);let ee=new jp.BiomeLens(this.executor);ee.setMode("format"),this.lenses.set("biome-format",ee);let le=new jp.GitLens(this.executor);this.lenses.set("git",le);let me=new jp.AlexandriaLens(this.executor);this.lenses.set("alexandria",me),this.lenses.set("docs",me)}async checkIfBunTestRunner(c,f){try{let g=await import("fs/promises"),k=(await import("path")).join(c,"package.json"),J=await g.readFile(k,"utf-8"),ee=JSON.parse(J),le=f.replace(/^(npm|yarn|pnpm)\s+run\s+/,"").split(" ")[0]||"test",me=ee.scripts?.[le];return!!(me&&(me.startsWith("bun test")||me.startsWith("bun run test")))}catch{return!1}}async discoverSourceFiles(c,f){let g=`${c}:${Array.from(f).join(",")}`;if(this.sourceFilesCache.has(g))return this.sourceFilesCache.get(g);try{let k=(await this.filesystemService.buildFileSystemTreeFromPath(c)).allFiles.filter(J=>f.has(J.extension)).map(J=>J.relativePath);return this.sourceFilesCache.set(g,k),console.log(`[QualityLensService] Discovered ${k.length} source files in ${c}`),k}catch(S){return console.warn(`[QualityLensService] Failed to discover source files in ${c}:`,S),[]}}async getLensForExecution(c,f,g){let S=c.toLowerCase();if(["typescript","typecheck","tsc"].includes(S)){let k=await this.discoverSourceFiles(f,jp.TS_SOURCE_EXTENSIONS);return new jp.TypeScriptLens(this.executor,{sourceFiles:k})}if(["knip","deadcode"].includes(S)){let k=await this.discoverSourceFiles(f,jp.SOURCE_EXTENSIONS);return new jp.KnipLens(this.executor,{sourceFiles:k})}return["test","jest"].includes(S)?g&&g.includes("bun test")?(console.log("[QualityLensService] Detected Bun test runner (from command)"),this.lenses.get("bun-test")||null):await this.checkIfBunTestRunner(f,g||"test")?(console.log("[QualityLensService] Detected Bun test runner (from package.json)"),this.lenses.get("bun-test")||null):this.lenses.get("jest")||null:["bun-test","bun"].includes(S)?this.lenses.get("bun-test")||null:S==="biome-lint"?(console.log("[QualityLensService] Using Biome lint lens"),this.lenses.get("biome-lint")||null):S==="biome-format"?(console.log("[QualityLensService] Using Biome format lens"),this.lenses.get("biome-format")||null):this.lenses.get(S)||null}async executeTool(c){let f=Date.now();if(!c.packageLayer||!c.packageCommand)throw new Error("packageLayer and packageCommand are required. Legacy execution has been removed.");return this.executeWithPackageLayer(c,f)}async executeWithPackageLayer(c,f){let{repoPath:g,packageLayer:S,packageCommand:k}=c;if(!S||!k)throw new Error("packageLayer and packageCommand are required for new execution path");let J=S.packageData.path||"",ee=J?`${g}/${J}`:g;if(!k.isLensCommand||!k.lensId)return console.log(`[QualityLensService] Not a lens command, executing directly: ${k.name}`),this.executeNonLensCommand(c,k,ee,f);let le=await this.getLensForExecution(k.lensId,ee,k.command);if(!le)return console.warn(`[QualityLensService] No lens registered for: ${k.lensId}`),this.executeNonLensCommand(c,k,ee,f);console.log(`[QualityLensService] Using ${le.name} for command: ${k.name} (lensId: ${k.lensId})`);try{let{command:me,args:be}=this.parseCommandString(k.command);le.configure({cwd:ee,tool:{name:k.lensId,command:me,args:be,cwd:ee,available:!0}});let we=await le.run(),{success:X,exitCode:rt}=this.determineLensSuccess(we);return{success:X,toolName:k.lensId,command:k.command,packagePath:J,exitCode:rt,duration:Date.now()-f,stdout:we.raw?.stdout||"",stderr:we.raw?.stderr||we.error?.message||"",lensResult:we,qualityContext:{lensId:k.lensId,operation:k.lensOperation,availableLenses:S.qualityMetrics?.availableLenses,missingLenses:S.qualityMetrics?.missingLenses}}}catch(me){console.error("[QualityLensService] Error:",me);let be=me instanceof Error?me:new Error(String(me));return this.createErrorResponse(k.lensId||k.name,k.command,J,be,f)}}async executeNonLensCommand(c,f,g,S){let{command:k,args:J}=this.parseCommandString(f.command);try{let ee=await this.executor.execute(k,J,{cwd:g});return{success:ee.exitCode===0,toolName:f.name,command:f.command,packagePath:c.packageLayer?.packageData.path,exitCode:ee.exitCode,duration:Date.now()-S,stdout:ee.stdout,stderr:ee.stderr}}catch(ee){let le=ee instanceof Error?ee:new Error(String(ee));return this.createErrorResponse(f.name,f.command,c.packageLayer?.packageData.path,le,S)}}parseCommandString(c){if(c.startsWith("npm run "))return{command:"npm",args:["run",...c.split(" ").slice(2)]};if(c.startsWith("yarn "))return{command:"yarn",args:c.split(" ").slice(1)};if(c.startsWith("pnpm "))return{command:"pnpm",args:c.split(" ").slice(1)};let f=c.split(" ");return{command:f[0]||"",args:f.slice(1)}}determineLensSuccess(c){let f=0;return c.raw?.exitCode!==void 0?f=c.raw.exitCode:(c.error||c.metrics?.issuesBySeverity?.error&&c.metrics.issuesBySeverity.error>0)&&(f=1),{success:f!==127,exitCode:f}}createErrorResponse(c,f,g,S,k){return{success:!1,toolName:c,command:f,packagePath:g,exitCode:1,duration:Date.now()-k,stdout:"",stderr:S.message||"Tool execution failed",error:S.message}}getAvailableLenses(){return Array.from(this.lenses.keys())}hasLensForTool(c){return this.lenses.has(c.toLowerCase())}};var qoe=class{constructor(){this.fileCountsByPackage=new Map}setFileTree(c){this.fileTree=c,this.calculateFileCountsPerPackage()}calculateFileCountsPerPackage(){if(!this.fileTree)return;this.fileCountsByPackage.clear();let c=new Set(["ts","tsx","js","jsx","mts","mjs","cts","cjs",".ts",".tsx",".js",".jsx",".mts",".mjs",".cts",".cjs"]);for(let f of this.fileTree.allFiles){let g=f.extension||"";if(!c.has(g)&&!c.has(g.replace(/^\./,"")))continue;let S=f.relativePath;if(S.includes(".test.")||S.includes(".spec.")||S.includes("__tests__")||S.includes("__mocks__")||S.endsWith(".config.ts")||S.endsWith(".config.js"))continue;let k=this.fileCountsByPackage.get("")||0;this.fileCountsByPackage.set("",k+1);let J=S.split("/"),ee="";for(let le=0;le<J.length-1;le++){let me=J[le]??"";ee=ee?`${ee}/${me}`:me;let be=this.fileCountsByPackage.get(ee)||0;this.fileCountsByPackage.set(ee,be+1)}}}getFileCountForPackage(c){return this.fileCountsByPackage.get(c||"")||0}mapLensToHexagonDimension(c){return{jest:"tests",vitest:"tests","bun-test":"tests",test:"tests",knip:"deadCode",deadcode:"deadCode",prettier:"formatting","biome-format":"formatting",format:"formatting",eslint:"linting","biome-lint":"linting",biome:"linting",lint:"linting",typescript:"types",typecheck:"types",tsc:"types",alexandria:"documentation"}[c.toLowerCase()]||null}getIssuePath(c){return c.file}findOwningPackage(c,f){let g,S=0;for(let k of f)k.path&&(c.startsWith(k.path+"/")||c===k.path)&&k.path.length>S&&(S=k.path.length,g=k);return g}distributeIssuesToPackages(c){let f=c.filter(k=>!!(k.packagePath&&k.packagePath!=="")).map(k=>({name:k.package,path:k.packagePath})).filter((k,J,ee)=>ee.findIndex(le=>le.path===k.path)===J);if(f.length===0)return c;let g=new Map,S=[];for(let k of c){if(k.packagePath&&k.packagePath!==""){S.push(k);continue}let J=k.result?.lensResult?.issues;if(!J||J.length===0){S.push(k);continue}let ee=[];for(let le of J){let me=this.getIssuePath(le);if(!me){ee.push(le);continue}let be=this.findOwningPackage(me,f);if(be){let we=be.path,X=g.get(we);X||(X=new Map,g.set(we,X));let rt=X.get(k.lens);rt||(rt=[],X.set(k.lens,rt));let We=me.slice(be.path.length+1),Ue={...le,file:We,originalPath:me};rt.push(Ue)}else ee.push(le)}if(k.result?.lensResult){let le={...k,result:{...k.result,lensResult:{...k.result.lensResult,issues:ee,metrics:this.recalculateMetricsFromIssues(k.result.lensResult.metrics,ee)}}};S.push(le)}else S.push(k)}for(let[k,J]of g){let ee=f.find(le=>le.path===k);if(ee)for(let[le,me]of J){let be=S.findIndex(we=>we.packagePath===k&&we.lens===le);if(be>=0){let we=S[be];if(we?.result?.lensResult){let rt=[...we.result.lensResult.issues||[],...me];S[be]={...we,result:{...we.result,lensResult:{...we.result.lensResult,issues:rt,metrics:this.recalculateMetricsFromIssues(we.result.lensResult.metrics,rt)}}}}}else{let we=c.find(rt=>rt.lens===le&&(!rt.packagePath||rt.packagePath==="")),X={lensName:le,tool:le,timestamp:Date.now(),success:!0,issues:me,metrics:this.createMetricsFromIssues(me)};S.push({package:ee.name,packagePath:ee.path,lens:le,command:we?.command||le,timestamp:we?.timestamp||Date.now(),result:{success:!0,toolName:le,command:we?.command||le,packagePath:ee.path,exitCode:me.length>0?1:0,duration:0,stdout:"",stderr:"",lensResult:X}})}}}return S}createMetricsFromIssues(c){let f={error:0,warning:0,info:0,hint:0};for(let S of c){let k=S.severity?.toLowerCase()||"warning";k in f&&f[k]++}return{filesAnalyzed:new Set(c.map(S=>this.getIssuePath(S)).filter(Boolean)).size||1,totalIssues:c.length,issuesBySeverity:f,executionTime:0}}recalculateMetricsFromIssues(c,f){let g=this.createMetricsFromIssues(f);return c?.custom&&(g.custom=c.custom),c?.executionTime&&(g.executionTime=c.executionTime),g}extractQualityScore(c){if(c.result?.lensResult?.qualityScore!==void 0&&c.result.lensResult.qualityScore!==null&&c.result.lensResult.qualityScore>0)return c.result.lensResult.qualityScore;if(!c.result?.success)return 0;let f=c.result?.lensResult?.issues||[];if(f.length===0)return 100;let g=new Set(f.map(le=>le.file)).size,S=c.packagePath||"",k=this.getFileCountForPackage(S);if(k===0){let le=c.result?.lensResult?.metrics?.filesAnalyzed||1,me=Math.max(0,le-g);return Math.round(me/le*100)}let J=Math.max(0,k-g);return Math.round(J/k*100)}calculateHexagonMetrics(c){let f={tests:0,deadCode:0,formatting:0,linting:0,types:0,documentation:0};for(let g of c){let S=this.mapLensToHexagonDimension(g.lens);if(S){let k=this.extractQualityScore(g);S==="deadCode"&&(k=100-k),S==="deadCode"?f[S]=f[S]===0?k:Math.min(f[S],k):f[S]=Math.max(f[S],k)}}return f}getGitMetadata(){let c={};if(process.env.GITHUB_SHA&&(c.commit=process.env.GITHUB_SHA),process.env.GITHUB_REF){let f=process.env.GITHUB_REF;f.startsWith("refs/heads/")?c.branch=f.replace("refs/heads/",""):f.startsWith("refs/pull/")&&(c.branch=f)}if(process.env.GITHUB_REPOSITORY&&(c.repository=process.env.GITHUB_REPOSITORY),Object.keys(c).length!==0)return c}calculatePerPackageMetrics(c){let f=new Map;for(let S of c){let k=f.get(S.package);k?k.results.push(S):f.set(S.package,{path:S.packagePath,results:[S]})}let g=[];for(let[S,{path:k,results:J}]of f)g.push({name:S,path:k,hexagon:this.calculateHexagonMetrics(J)});return g}format(c){let f=this.getGitMetadata(),g=this.distributeIssuesToPackages(c),S=this.calculatePerPackageMetrics(g),k={metadata:{timestamp:new Date().toISOString(),version:"1.0.0",totalPackages:S.length,totalLenses:g.length,...f&&{git:f}},results:g.map(J=>({package:{name:J.package,path:J.packagePath},lens:{id:J.lens,command:J.command},execution:{success:J.result?.success??!1,exitCode:J.result?.exitCode,duration:J.result?.duration,timestamp:J.timestamp},issues:J.result?.lensResult?.issues||[],metrics:J.result?.lensResult?.metrics||{},coverage:J.result?.lensResult?.coverage,fileMetrics:J.result?.lensResult?.fileMetrics,qualityContext:J.result?.qualityContext||{},error:J.error}))};return S.length>0&&(k.qualityMetrics={packages:S}),JSON.stringify(k,null,2)}};var gpt=(_=0)=>c=>`\x1B[${c+_}m`,ypt=(_=0)=>c=>`\x1B[${38+_};5;${c}m`,vpt=(_=0)=>(c,f,g)=>`\x1B[${38+_};2;${c};${f};${g}m`,ed={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},Qwr=Object.keys(ed.modifier),Zlr=Object.keys(ed.color),efr=Object.keys(ed.bgColor),Xwr=[...Zlr,...efr];function tfr(){let _=new Map;for(let[c,f]of Object.entries(ed)){for(let[g,S]of Object.entries(f))ed[g]={open:`\x1B[${S[0]}m`,close:`\x1B[${S[1]}m`},f[g]=ed[g],_.set(S[0],S[1]);Object.defineProperty(ed,c,{value:f,enumerable:!1})}return Object.defineProperty(ed,"codes",{value:_,enumerable:!1}),ed.color.close="\x1B[39m",ed.bgColor.close="\x1B[49m",ed.color.ansi=gpt(),ed.color.ansi256=ypt(),ed.color.ansi16m=vpt(),ed.bgColor.ansi=gpt(10),ed.bgColor.ansi256=ypt(10),ed.bgColor.ansi16m=vpt(10),Object.defineProperties(ed,{rgbToAnsi256:{value(c,f,g){return c===f&&f===g?c<8?16:c>248?231:Math.round((c-8)/247*24)+232:16+36*Math.round(c/255*5)+6*Math.round(f/255*5)+Math.round(g/255*5)},enumerable:!1},hexToRgb:{value(c){let f=/[a-f\d]{6}|[a-f\d]{3}/i.exec(c.toString(16));if(!f)return[0,0,0];let[g]=f;g.length===3&&(g=[...g].map(k=>k+k).join(""));let S=Number.parseInt(g,16);return[S>>16&255,S>>8&255,S&255]},enumerable:!1},hexToAnsi256:{value:c=>ed.rgbToAnsi256(...ed.hexToRgb(c)),enumerable:!1},ansi256ToAnsi:{value(c){if(c<8)return 30+c;if(c<16)return 90+(c-8);let f,g,S;if(c>=232)f=((c-232)*10+8)/255,g=f,S=f;else{c-=16;let ee=c%36;f=Math.floor(c/36)/5,g=Math.floor(ee/6)/5,S=ee%6/5}let k=Math.max(f,g,S)*2;if(k===0)return 30;let J=30+(Math.round(S)<<2|Math.round(g)<<1|Math.round(f));return k===2&&(J+=60),J},enumerable:!1},rgbToAnsi:{value:(c,f,g)=>ed.ansi256ToAnsi(ed.rgbToAnsi256(c,f,g)),enumerable:!1},hexToAnsi:{value:c=>ed.ansi256ToAnsi(ed.hexToAnsi256(c)),enumerable:!1}}),ed}var rfr=tfr(),pE=rfr;var Woe=Kh(require("node:process"),1),bpt=Kh(require("node:os"),1),f6e=Kh(require("node:tty"),1);function xC(_,c=globalThis.Deno?globalThis.Deno.args:Woe.default.argv){let f=_.startsWith("-")?"":_.length===1?"-":"--",g=c.indexOf(f+_),S=c.indexOf("--");return g!==-1&&(S===-1||g<S)}var{env:td}=Woe.default,zoe;xC("no-color")||xC("no-colors")||xC("color=false")||xC("color=never")?zoe=0:(xC("color")||xC("colors")||xC("color=true")||xC("color=always"))&&(zoe=1);function nfr(){if("FORCE_COLOR"in td)return td.FORCE_COLOR==="true"?1:td.FORCE_COLOR==="false"?0:td.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(td.FORCE_COLOR,10),3)}function ifr(_){return _===0?!1:{level:_,hasBasic:!0,has256:_>=2,has16m:_>=3}}function sfr(_,{streamIsTTY:c,sniffFlags:f=!0}={}){let g=nfr();g!==void 0&&(zoe=g);let S=f?zoe:g;if(S===0)return 0;if(f){if(xC("color=16m")||xC("color=full")||xC("color=truecolor"))return 3;if(xC("color=256"))return 2}if("TF_BUILD"in td&&"AGENT_NAME"in td)return 1;if(_&&!c&&S===void 0)return 0;let k=S||0;if(td.TERM==="dumb")return k;if(Woe.default.platform==="win32"){let J=bpt.default.release().split(".");return Number(J[0])>=10&&Number(J[2])>=10586?Number(J[2])>=14931?3:2:1}if("CI"in td)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(J=>J in td)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(J=>J in td)||td.CI_NAME==="codeship"?1:k;if("TEAMCITY_VERSION"in td)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(td.TEAMCITY_VERSION)?1:0;if(td.COLORTERM==="truecolor"||td.TERM==="xterm-kitty"||td.TERM==="xterm-ghostty"||td.TERM==="wezterm")return 3;if("TERM_PROGRAM"in td){let J=Number.parseInt((td.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(td.TERM_PROGRAM){case"iTerm.app":return J>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(td.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(td.TERM)||"COLORTERM"in td?1:k}function Dpt(_,c={}){let f=sfr(_,{streamIsTTY:_&&_.isTTY,...c});return ifr(f)}var afr={stdout:Dpt({isTTY:f6e.default.isatty(1)}),stderr:Dpt({isTTY:f6e.default.isatty(2)})},Cpt=afr;function Spt(_,c,f){let g=_.indexOf(c);if(g===-1)return _;let S=c.length,k=0,J="";do J+=_.slice(k,g)+c+f,k=g+S,g=_.indexOf(c,k);while(g!==-1);return J+=_.slice(k),J}function Ept(_,c,f,g){let S=0,k="";do{let J=_[g-1]==="\r";k+=_.slice(S,J?g-1:g)+c+(J?`\r
|
|
982
982
|
`:`
|
|
983
983
|
`)+f,S=g+1,g=_.indexOf(`
|
|
984
984
|
`,S)}while(g!==-1);return k+=_.slice(S),k}var{stdout:xpt,stderr:Tpt}=Cpt,_6e=Symbol("GENERATOR"),tM=Symbol("STYLER"),y$=Symbol("IS_EMPTY"),Apt=["ansi","ansi","ansi256","ansi16m"],rM=Object.create(null),ofr=(_,c={})=>{if(c.level&&!(Number.isInteger(c.level)&&c.level>=0&&c.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let f=xpt?xpt.level:0;_.level=c.level===void 0?f:c.level};var cfr=_=>{let c=(...f)=>f.join(" ");return ofr(c,_),Object.setPrototypeOf(c,v$.prototype),c};function v$(_){return cfr(_)}Object.setPrototypeOf(v$.prototype,Function.prototype);for(let[_,c]of Object.entries(pE))rM[_]={get(){let f=Uoe(this,d6e(c.open,c.close,this[tM]),this[y$]);return Object.defineProperty(this,_,{value:f}),f}};rM.visible={get(){let _=Uoe(this,this[tM],!0);return Object.defineProperty(this,"visible",{value:_}),_}};var p6e=(_,c,f,...g)=>_==="rgb"?c==="ansi16m"?pE[f].ansi16m(...g):c==="ansi256"?pE[f].ansi256(pE.rgbToAnsi256(...g)):pE[f].ansi(pE.rgbToAnsi(...g)):_==="hex"?p6e("rgb",c,f,...pE.hexToRgb(...g)):pE[f][_](...g),ufr=["rgb","hex","ansi256"];for(let _ of ufr){rM[_]={get(){let{level:f}=this;return function(...g){let S=d6e(p6e(_,Apt[f],"color",...g),pE.color.close,this[tM]);return Uoe(this,S,this[y$])}}};let c="bg"+_[0].toUpperCase()+_.slice(1);rM[c]={get(){let{level:f}=this;return function(...g){let S=d6e(p6e(_,Apt[f],"bgColor",...g),pE.bgColor.close,this[tM]);return Uoe(this,S,this[y$])}}}}var lfr=Object.defineProperties(()=>{},{...rM,level:{enumerable:!0,get(){return this[_6e].level},set(_){this[_6e].level=_}}}),d6e=(_,c,f)=>{let g,S;return f===void 0?(g=_,S=c):(g=f.openAll+_,S=c+f.closeAll),{open:_,close:c,openAll:g,closeAll:S,parent:f}},Uoe=(_,c,f)=>{let g=(...S)=>ffr(g,S.length===1?""+S[0]:S.join(" "));return Object.setPrototypeOf(g,lfr),g[_6e]=_,g[tM]=c,g[y$]=f,g},ffr=(_,c)=>{if(_.level<=0||!c)return _[y$]?"":c;let f=_[tM];if(f===void 0)return c;let{openAll:g,closeAll:S}=f;if(c.includes("\x1B"))for(;f!==void 0;)c=Spt(c,f.close,f.open),f=f.parent;let k=c.indexOf(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonFormatter.d.ts","sourceRoot":"","sources":["../../src/output/JsonFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EAIZ,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAG3E,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,CAAC;AAKnD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAKD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,CAAC,EAAE,WAAW,CAAC;KACnB,CAAC;IACF,OAAO,EAAE,KAAK,CAAC;QACb,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QACtC,SAAS,EAAE;YACT,OAAO,EAAE,OAAO,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,MAAM,EAAE,OAAO,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,cAAc,CAAC,EAAE;QACf,QAAQ,EAAE,qBAAqB,EAAE,CAAC;KACnC,CAAC;CACH;AAKD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAoBD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,mBAAmB,CAAkC;IAK7D,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IASrC,OAAO,CAAC,6BAA6B;IAmErC,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAOnD,OAAO,CAAC,yBAAyB;
|
|
1
|
+
{"version":3,"file":"JsonFormatter.d.ts","sourceRoot":"","sources":["../../src/output/JsonFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EAIZ,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAG3E,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,CAAC;AAKnD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAKD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,CAAC,EAAE,WAAW,CAAC;KACnB,CAAC;IACF,OAAO,EAAE,KAAK,CAAC;QACb,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QACtC,SAAS,EAAE;YACT,OAAO,EAAE,OAAO,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,MAAM,EAAE,OAAO,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,cAAc,CAAC,EAAE;QACf,QAAQ,EAAE,qBAAqB,EAAE,CAAC;KACnC,CAAC;CACH;AAKD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAoBD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,mBAAmB,CAAkC;IAK7D,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IASrC,OAAO,CAAC,6BAA6B;IAmErC,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAOnD,OAAO,CAAC,yBAAyB;IAmCjC,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,iBAAiB;IAgCzB,OAAO,CAAC,0BAA0B;IAiLlC,OAAO,CAAC,uBAAuB;IA+B/B,OAAO,CAAC,4BAA4B;IAqBpC,OAAO,CAAC,mBAAmB;IAmD3B,OAAO,CAAC,uBAAuB;IA2C/B,OAAO,CAAC,cAAc;IAiCtB,OAAO,CAAC,0BAA0B;IAmClC,MAAM,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,MAAM;CAkD/C"}
|