ngcompass 0.1.1-beta → 0.1.2-beta
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/README.md +136 -191
- package/dist/cli.cjs +20 -448
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +18 -438
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +20 -448
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +18 -438
- package/dist/index.js.map +1 -1
- package/package.json +10 -10
package/dist/cli.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/exit.ts","../src/commands/init.ts","../src/spinner.ts","../src/commands/analyze.ts","../src/commands/config.ts","../src/commands/cache.ts","../src/commands/rules.ts","../src/commands/index.ts","../src/bin/ngcompass.ts"],"names":["exitWithError","code","process","stdout","isTTY","write","exit","registerInitCommand","program","_cache","command","description","option","cwd","action","options","result","initConfig","force","reporter","getConfigReporter","renderInitResult","success","alreadyExists","error","console","Error","message","String","FRAMES","Spinner","timer","frameIndex","stream","start","render","setInterval","pc","cyan","dim","writeLine","line","stop","clearInterval","frame","length","normalizeReporterFormat","format","formatDuration","ms","Math","max","round","toFixed","registerAnalyzeCommand","cache","startTime","performance","now","getReporter","compact","outputPath","output","quiet","noRecommendation","recommendation","activeCache","exitCode","stats","failOnSeverity","maxWarnings","configResult","loadConfigurationStep","config","createRuntimeCache","reporterFormat","cliFormat","configFormat","outputFormat","files","discoverFilesStep","enabledRules","resolveRulesStep","plan","buildPlanStep","progressStream","stderr","spinner","logFileProgress","expectedTasksByFile","Map","filePath","tasks","map","task","filter","set","get","completedByFile","printedFiles","Set","event","count","has","accumulated","next","taskCount","issueCount","errorCount","warningCount","duration","expectedTasks","add","relativePath","path","relative","hasIssues","status","red","green","toLocaleString","analysis","runAnalysisStep","undefined","maxWorkers","summary","scannedFiles","t","skippedTasks","size","discoveredFiles","totalFiles","totalTasks","cachedTasks","precomputedAnalysis","totalErrors","totalWarnings","parseErrors","report","results","step","saveToCacheStep","flush","tStart","resolveConfig","profile","valid","issueLines","issues","issue","pathString","join","severity","toUpperCase","pluginList","plugins","configDir","loadPlugins","getGlobalRegistry","info","debug","scanResult","scan","rootDir","include","DEFAULT_INCLUDE_PATTERNS","exclude","ignorePatterns","tsConfigPath","parserOptions","project","tsconfigRootDir","resolve","respectGitignore","ok","data","effectiveConfig","rule","rules","extends","rulesResult","resolveRules","getEnabledRules","planResult","buildExecutionPlan","incremental","forceRerun","workerCount","overrides","onProgress","_workerCountForCompatibility","onFileProgress","configureRuleExecutor","executeBatchedNewEngineRules","isNewEngineRule","cliMaxWorkers","parseInt","cliChunkSize","typeAwareChunkSize","runAnalysis","skipTypeCheck","cacheEntries","taskId","push","setMany","registerConfigCommand","validateConfig","renderHealthReport","errorMessage","registerCacheCommand","cacheCmd","getCacheReporter","type","validTypes","includes","resolveRuntimeCache","allowDisabled","clear","clearType","renderClearResult","err","getInfo","renderCacheInfo","getCachePath","fallbackCache","registerRulesCommand","ruleName","opts","preset","isBuiltinPreset","entries","getRuleListEntries","getRulesReporter","find","e","name","renderSingleRule","registerCommands","restoreCursor","shutdownInProgress","gracefulShutdown","flushTimeout","Promise","setTimeout","unref","race","run","Command","version","PACKAGE_VERSION","addHelpText","hook","thisCommand","actionCommand","enableDebug","actionOpts","default","parent","commandName","bgCyan","white","bold","createCacheContext","on","reason","msg","registerAllBuiltinRules","argv","slice","outputHelp","parseAsync","catch"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAsBO,IAAMA,aAAAA,GAAgB,CAACC,EAAAA,GAAO,CAAA,KAAC;AAV7BC,EAAAA,OAAAA,CAAQC,MAAAA,CAAOC,SACpBF,OAAAA,CAAQC,MAAAA,CAAOE,MAAM,WAAA,CAAA,EAWrBH,OAAAA,CAAQI,IAAAA,CAAKL,EAAAA,CAAAA;AACjB,CAAA;;;ACnBO,SAASM,mBAAAA,CAAoBC,IAAkBC,CAAAA,EAAoB;AACtED,EAAAA,EAAAA,CACKE,QAAQ,MAAA,CAAA,CACRC,YAAY,iEAAA,CAAA,CACZC,OAAO,aAAA,EAAe,0CAAA,EACtBA,MAAAA,CAAO,cAAA,EAAgB,6DAA6DV,OAAAA,CAAQW,GAAAA,EAAG,CAAA,CAC/FC,MAAAA,CAAO,OAAOC,EAAAA,KAAAA;AACX,IAAA,IAAI;AACA,MAAA,IAAMC,EAAAA,GAAS,MAAMC,iBAAAA,CAAW;AAC5BJ,QAAAA,GAAAA,EAAKE,EAAAA,CAAQF,GAAAA;AACbK,QAAAA,KAAAA,EAAOH,EAAAA,CAAQG;OACnB,CAAA,EAEMC,KAAWC,2BAAAA,EAAAA;AACjB,MAAA,MAAMD,EAAAA,CAASE,iBAAiBL,EAAAA,CAAAA,EAE3BA,GAAOM,OAAAA,IAAYN,EAAAA,CAAOO,iBAC3BvB,aAAAA,EAAAA;AAER,IAAA,CAAA,CAAA,OAASwB,EAAAA,EAAgB;AACrBC,MAAAA,OAAAA,CAAQD,KAAAA,CAAMA,cAAiBE,KAAAA,GAAQF,EAAAA,CAAMG,UAAUC,MAAAA,CAAOJ,EAAAA,CAAAA,CAAAA,EAC9DxB,aAAAA,EAAAA;AACJ,IAAA;EACJ,CAAA,CAAA;AACR;AC5BA,IAAM6B,MAAAA,GAAS;AAAC,EAAA,QAAA;AAAK,EAAA,QAAA;AAAK,EAAA,QAAA;AAAK,EAAA,QAAA;AAAK,EAAA,QAAA;AAAK,EAAA,QAAA;AAAK,EAAA,QAAA;AAAK,EAAA,QAAA;AAAK,EAAA,QAAA;AAAK,EAAA;;AAGtD,IAAMC,UAAN,MAAMA;;EACDC,KAAAA,GAA+B,IAAA;EAC/BC,UAAAA,GAAa,CAAA;EACbL,OAAAA,GAAU,EAAA;AACDvB,EAAAA,KAAAA;AAEjB,EAAA,WAAA,CAA6B6B,EAAAA,EAA4B;AAA5BA,IAAAA,IAAAA,CAAAA,MAAAA,GAAAA,EAAAA,EACzB,IAAA,CAAK7B,KAAAA,GAAQ,CAAC,CAAC6B,EAAAA,CAAO7B,KAAAA;AAC1B,EAAA;AAEA8B,EAAAA,KAAAA,CAAMP,EAAAA,EAAuB;AAIzB,IAAA,CAHA,KAAKA,OAAAA,GAAUA,EAAAA,EACf,IAAA,CAAKK,UAAAA,GAAa,GAEb,IAAA,CAAK5B,KAAAA,KAKV,IAAA,CAAK6B,MAAAA,CAAO5B,MAAM,WAAA,CAAA,EAClB,IAAA,CAAK8B,MAAAA,IACL,IAAA,CAAKJ,KAAAA,GAAQK,WAAAA,CAAY,MAAM,KAAKD,MAAAA,EAAM,EAvB9B,EAAA,CAAA,IAiBR,KAAKF,MAAAA,CAAO5B,KAAAA,CAAM,CAAA,EAAGgC,mBAAAA,CAAGC,KAAK,QAAA,CAAA,IAAQD,mBAAAA,CAAGE,GAAAA,CAAIZ,EAAAA,CAAAA;AAAY,CAAA,CAAA;AAOhE,EAAA;AAOAa,EAAAA,SAAAA,CAAUC,EAAAA,EAAoB;AACtB,IAAA,IAAA,CAAKrC,KAAAA,IAAS,IAAA,CAAK2B,KAAAA,IACnB,IAAA,CAAKE,MAAAA,CAAO5B,KAAAA,CAAM,UAAA,CAAA,EAClB,IAAA,CAAK4B,MAAAA,CAAO5B,KAAAA,CAAM,CAAA,EAAGoC,EAAAA;AAAQ,CAAA,CAAA,EAC7B,KAAKN,MAAAA,EAAM,IAEX,KAAKF,MAAAA,CAAO5B,KAAAA,CAAM,GAAGoC,EAAAA;AAAQ,CAAA,CAAA;AAErC,EAAA;EAEAC,IAAAA,GAAa;AACL,IAAA,IAAA,CAAKX,UACLY,aAAAA,CAAc,IAAA,CAAKZ,KAAK,CAAA,EACxB,IAAA,CAAKA,QAAQ,IAAA,CAAA,EAGb,IAAA,CAAK3B,KAAAA,KACL,IAAA,CAAK6B,OAAO5B,KAAAA,CAAM,UAAA,GAClB,IAAA,CAAK4B,MAAAA,CAAO5B,MAAM,WAAA,CAAA,CAAA;AAE1B,EAAA;EAEQ8B,MAAAA,GAAe;AACnB,IAAA,IAAMS,EAAAA,GAAQP,oBAAGC,IAAAA,CAAKT,MAAAA,CAAO,KAAKG,UAAAA,GAAaH,MAAAA,CAAOgB,MAAM,CAAC,CAAA;AAC7D,IAAA,IAAA,CAAKb,UAAAA,EAAAA,EACL,IAAA,CAAKC,MAAAA,CAAO5B,KAAAA,CAAM,CAAA,EAAA,EAAKuC,EAAAA,CAAAA,CAAAA,EAASP,mBAAAA,CAAGE,GAAAA,CAAI,IAAA,CAAKZ,OAAO,CAAA,CAAA,CAAG,CAAA;AAC1D,EAAA;AACJ,CAAA;AC9BA,SAASmB,wBAAwBC,EAAAA,EAAkC;SAChD,IAAA,KAAXA,EAAAA,GAAwB,SACrBA,EAAAA,IAAU,SAAA;AACrB;AA0DA,SAASC,eAAeC,EAAAA,EAAU;AAC1BA,EAAAA,OAAAA,EAAAA,GAAK,MAAa,CAAA,EAAGC,IAAAA,CAAKC,GAAAA,CAAI,CAAA,EAAGD,KAAKE,KAAAA,CAAMH,EAAAA,CAAAA,CAAAA,OACzC,CAAA,EAAA,CAAIA,EAAAA,GAAK,GAAA,EAAMI,OAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA;AAClC;AAqDO,SAASC,sBAAAA,CAAuB9C,IAAkB+C,EAAAA,EAAmB;AACxE/C,EAAAA,EAAAA,CACKE,OAAAA,CAAQ,SAAA,CAAA,CACRC,WAAAA,CAAY,wEAAA,CAAA,CACZC,MAAAA,CAAO,sBAAA,EAAwB,8BAAA,CAAA,CAC/BA,MAAAA,CAAO,WAAW,6CAAA,CAAA,CAClBA,MAAAA,CAAO,gBAAA,EAAkB,qDAAA,CAAA,CACzBA,OAAO,WAAA,EAAa,kCAAA,CAAA,CACpBA,MAAAA,CAAO,aAAA,EAAe,sDAAA,EACtBA,MAAAA,CAAO,qBAAA,EAAuB,0CAAA,CAAA,CAC9BA,MAAAA,CAAO,iBAAA,EAAmB,6DAAA,CAAA,CAC1BA,MAAAA,CAAO,aAAA,EAAe,4DAAA,CAAA,CACtBA,MAAAA,CAAO,qBAAqB,8EAAA,CAAA,CAC5BA,MAAAA,CAAO,6BAAA,EAA+B,oEAAA,CAAA,CACtCA,MAAAA,CAAO,mBAAA,EAAqB,8EAAA,CAAA,CAC5BE,MAAAA,CAAO,OAAOC,EAAAA,KAAAA;AACX,IAAA,IAAMyC,EAAAA,GAAYC,YAAYC,GAAAA,EAAG,EAC7BvC,KAAWwC,qBAAAA,CAAYb,uBAAAA,CAAwB/B,EAAAA,CAAQgC,MAAM,CAAA,EAAG;MAChEa,OAAAA,EAAS,CAAC,CAAC7C,EAAAA,CAAQ6C,OAAAA;AACnBC,MAAAA,UAAAA,EAAY9C,EAAAA,CAAQ+C,MAAAA;MACpBC,KAAAA,EAAO,CAAC,CAAChD,EAAAA,CAAQgD,KAAAA;AACjBC,MAAAA,gBAAAA,EAA6C,UAA3BjD,EAAAA,CAAQkD;KAC9B,CAAA,EACIC,EAAAA,GAAwCX,EAAAA,EAExCY,EAAAA,GAAW,CAAA;AAEf,IAAA,IAAI;AAlHZC,MAAAA,IAAAA,EAAAA;AAoHY,MAAA,IAlHNC,GACAC,EAAAA,EAiHYC,EAAAA,GAAe,MAAMC,qBAAAA,CAAsBzD,EAAAA,EAASwC,IAAOpC,EAAAA,CAAAA;AACjE,MAAA,IAAI,CAACoD,EAAAA,EAAc;AAAEJ,QAAAA,EAAAA,GAAW,CAAA;AAAG,QAAA;AAAQ,MAAA;AAE3C,MAAA,IAAM,EAAEM,MAAAA,EAAAA,EAAAA,EAAM,GAAKF,EAAAA;AACnBL,MAAAA,EAAAA,GAAcQ,wBAAAA,CAAmBD,EAAAA,EAAQvE,kBAAAA,CAAQW,KAAG,CAAA;AACpD,MAAA,IAAM8D,EAAAA,GAAAA,CAlJtB,SACIC,EAAAA,EACAC,EAAAA,EAAkE;AAElE,QAAA,IAAID,EAAAA,EACA,OAAO9B,uBAAAA,CAAwB8B,EAAAA,CAAAA;AAGnC,QAAA,QAAQC,EAAAA;UACJ,KAAK,MAAA;AACD,YAAA,OAAO,MAAA;UACX,KAAK,OAAA;AACD,YAAA,OAAO,OAAA;UACX,KAAK,MAAA;AACD,YAAA,OAAO,MAAA;AACX,UAAA;AAEI,YAAA,OAAO,SAAA;AAGf;MACJ,CAAA,EA6H6D9D,EAAAA,CAAQgC,MAAAA,EAAQ0B,EAAAA,CAAOK,YAAY,CAAA;AAChF3D,MAAAA,EAAAA,GAAWwC,sBAAYgB,EAAAA,EAAgB;QACnCf,OAAAA,EAAS,CAAC,CAAC7C,EAAAA,CAAQ6C,OAAAA;QACnBC,UAAAA,EAAY9C,EAAAA,CAAQ+C,UAAUW,EAAAA,CAAOZ,UAAAA;QACrCE,KAAAA,EAAO,CAAC,CAAChD,EAAAA,CAAQgD,KAAAA;AACjBC,QAAAA,gBAAAA,EAA6C,UAA3BjD,EAAAA,CAAQkD;OAC9B,CAAA;AAGA,MAAA,IAAMc,KAAQ,MAAMC,iBAAAA,CAAkBP,EAAAA,EAAQ1D,EAAAA,EAASmD,IAAa/C,EAAAA,CAAAA;AACpE,MAAA,IAAI,CAAC4D,EAAAA,EAAO;AAAEZ,QAAAA,EAAAA,GAAW,CAAA;AAAG,QAAA;AAAQ,MAAA;AAGpC,MAAA,IAAMc,CAAAA,GAAe,MAAMC,gBAAAA,CAAiBT,EAAAA,EAAQ1D,IAASI,EAAAA,CAAAA;AAC7D,MAAA,IAAI,CAAC8D,CAAAA,EAAc;AAAEd,QAAAA,EAAAA,GAAW,CAAA;AAAG,QAAA;AAAQ,MAAA;AAG3C,MAAA,IAAMgB,CAAAA,GAAO,MAAMC,aAAAA,CAAcL,EAAAA,EAAOE,GAAcf,EAAAA,EAAanD,EAAAA,EAASI,IAAUsD,EAAAA,CAAAA;AACtF,MAAA,IAAI,CAACU,CAAAA,EAAM;AAAEhB,QAAAA,EAAAA,GAAW,CAAA;AAAG,QAAA;AAAQ,MAAA;AAGnC,MAAA,IAAMkB,CAAAA,GAAqC,SAAA,KAAnBV,EAAAA,GAA+BzE,kBAAAA,CAAQC,MAAAA,GAASD,mBAAQoF,MAAAA,EAC1EC,CAAAA,GAAU,IAAIzD,OAAAA,CAAQuD,CAAAA,CAAAA;AAC5BE,MAAAA,CAAAA,CAAQrD,MAAM,qBAAA,CAAA;AACd,MAAA,IAAMsD,CAAAA,GAAAA,CAzGtB,SAAkCL,EAAAA,EAA2B3C,EAAAA,EAAmC3B,EAAAA,EAAW;AACvG,QAAA,IAAM4E,EAAAA,uBAA0BC,GAAAA,EAAAA;AAKhC,QAAA,KAAA,IAAWC,EAAAA,IAJiBR,EAAAA,CAAKS,KAAAA,CAC5BC,GAAAA,CAAIC,CAAAA,EAAAA,KAAQA,EAAAA,CAAKH,QAAQ,CAAA,CACzBI,MAAAA,CAAO,CAACJ,EAAAA,KAAqD,QAAA,IAApB,OAAOA,EAAAA,IAAyBA,EAAAA,CAAS9C,MAAAA,GAAS,CAAA,CAAA,EAG5F4C,EAAAA,CAAoBO,GAAAA,CAAIL,EAAAA,EAAAA,CAAWF,EAAAA,CAAoBQ,GAAAA,CAAIN,EAAAA,CAAAA,IAAa,CAAA,IAAK,CAAA,CAAA;AAGjF,QAAA,IAAMO,qBAAkB,IAAIR,GAAAA,EAAAA,EACtBS,EAAAA,uBAAmBC,GAAAA,EAAAA;AAEzB,QAAA,OAAO,CAACC,EAAAA,KAAAA;AAjBOC,UAAAA,IAAAA,EAAAA;AAkBX,UAAA,IAAIH,EAAAA,CAAaI,GAAAA,CAAIF,EAAAA,CAAMV,QAAQ,CAAA,EAAG;AAEtC,UAAA,IAAMa,KAAcN,EAAAA,CAAgBD,GAAAA,CAAII,GAAMV,QAAQ,CAAA,EAChDc,KAA6BD,EAAAA,GAC7B;AACEb,YAAAA,QAAAA,EAAUU,EAAAA,CAAMV,QAAAA;YAChBe,SAAAA,EAAWF,EAAAA,CAAYE,YAAYL,EAAAA,CAAMK,SAAAA;YACzCC,UAAAA,EAAYH,EAAAA,CAAYG,aAAaN,EAAAA,CAAMM,UAAAA;YAC3CC,UAAAA,EAAYJ,EAAAA,CAAYI,aAAaP,EAAAA,CAAMO,UAAAA;YAC3CC,YAAAA,EAAcL,EAAAA,CAAYK,eAAeR,EAAAA,CAAMQ,YAAAA;YAC/CC,QAAAA,EAAUN,EAAAA,CAAYM,WAAWT,EAAAA,CAAMS;WAC3C,GACET,EAAAA;AACNH,UAAAA,EAAAA,CAAgBF,GAAAA,CAAIK,EAAAA,CAAMV,QAAAA,EAAUc,EAAAA,CAAAA;AAEpC,UAAA,IAAMM,KAAgBtB,EAAAA,CAAoBQ,GAAAA,CAAII,EAAAA,CAAMV,QAAQ,KAAKc,EAAAA,CAAKC,SAAAA;AACtE,UAAA,IAAID,EAAAA,CAAKC,YAAYK,EAAAA,EAAe;AACpCZ,UAAAA,EAAAA,CAAaa,GAAAA,CAAIX,EAAAA,CAAMV,QAAQ,CAAA;AAE/B,UAAA,IAAMsB,KAAeC,mBAAAA,CAAKC,QAAAA,CAAStG,EAAAA,EAAKwF,EAAAA,CAAMV,QAAQ,CAAA,IAAKU,EAAAA,CAAMV,QAAAA,EAC3DyB,EAAAA,GAAYX,GAAKE,UAAAA,GAAa,CAAA,EAC9BU,EAAAA,GAASD,EAAAA,GAAY/E,oBAAGiF,GAAAA,CAAI,QAAA,CAAA,GAAOjF,mBAAAA,CAAGkF,MAAM,QAAA,CAAA,EAC5CT,EAAAA,GAAWM,EAAAA,GACX/E,oBAAGiF,GAAAA,CAAItE,cAAAA,CAAeyD,EAAAA,CAAKK,QAAQ,CAAA,CAAA,GACnCzE,mBAAAA,CAAGkF,MAAMvE,cAAAA,CAAeyD,EAAAA,CAAKK,QAAQ,CAAA,CAAA;AAK3CtE,UAAAA,GAJiB4E,EAAAA,GACX,CAAA,EAAGC,EAAAA,CAAAA,CAAAA,EAAUhF,oBAAGiF,GAAAA,CAAIL,EAAAA,CAAAA,CAAAA,EAAAA,EAAkBH,EAAAA,CAAAA,GAAAA,EAAczE,mBAAAA,CAAGiF,KA5ClDhB,EAAAA,GA4CgEG,EAAAA,CAAKE,YA3C7E,CAAA,EAAGL,EAAAA,CAAMkB,cAAAA,EAAc,SAA2B,CAAA,KAAVlB,EAAAA,GAAc,EAAA,GAAK,GAAA,IAAK,CAAA,CAAA,GA4C7D,CAAA,EAAGe,EAAAA,IAAUhF,mBAAAA,CAAGE,GAAAA,CAAI0E,EAAAA,CAAAA,CAAAA,EAAAA,EAAkBH,EAAAA,CAAAA,CAAU,CAAA;AAG1D,QAAA,CAAA;MACJ,CAAA,EA4DiE3B,CAAAA,EAAM1C,CAAAA,EAAAA,KAAQ8C,CAAAA,CAAQ/C,UAAUC,EAAAA,CAAAA,EAAOvC,kBAAAA,CAAQW,GAAAA,EAAG,CAAA,EAC7F4G,IAAW,MAAMC,eAAAA,CAAgBvC,CAAAA,EAAMjB,EAAAA,EAAanD,EAAAA,EAASI,EAAAA,EAAU4D,IAAON,EAAAA,EAAQkD,KAAAA,CAAAA,EAAWlD,EAAAA,CAAOmD,UAAAA,EAAYpC,CAAAA,CAAAA;AAE1H,MAAA,IADAD,CAAAA,CAAQ7C,IAAAA,EAAI,EACR,CAAC+E,CAAAA,EAAU;AAAEtD,QAAAA,EAAAA,GAAW,CAAA;AAAG,QAAA;AAAQ,MAAA;AAEvC,MAAA,IAAM2C,CAAAA,GAAWrD,WAAAA,CAAYC,GAAAA,EAAG,GAAKF,IAS/BqE,CAAAA,GAAyB;AAC3BC,QAAAA,YAAAA,EAAAA,qBANqB1B,GAAAA,CAAI;AACtBjB,UAAAA,GAAAA,CAAAA,CAAKS,KAAAA,CAAMC,GAAAA,CAAIkC,CAAAA,EAAAA,KAAKA,GAAEpC,QAAQ,CAAA;AAC7BR,UAAAA,GAAAA,CAAAA,CAAAA,CAAK6C,gBAAgB,EAAA,EAAInC,IAAIkC,CAAAA,EAAAA,KAAKA,GAAEpC,QAAQ;SACnD,CAAA,EAAEsC,IAAAA;AAICC,QAAAA,eAAAA,EAAiBnD,EAAAA,CAAMlC,MAAAA;AACvBsF,QAAAA,UAAAA,EAAYV,EAASrD,KAAAA,CAAM+D,UAAAA;AAC3BC,QAAAA,UAAAA,EAAYjD,CAAAA,CAAKS,KAAAA,CAAM/C,MAAAA,IAAUsC,CAAAA,CAAK6C,cAAcnF,MAAAA,IAAU,CAAA,CAAA;AAC9DwF,QAAAA,WAAAA,EAAalD,CAAAA,CAAKmD,mBAAAA,GAAsBnD,CAAAA,CAAKS,KAAAA,CAAM/C,MAAAA,GAAS8E,KAAAA,CAAAA;AAC5DY,QAAAA,WAAAA,EAAad,EAASrD,KAAAA,CAAMmE,WAAAA;AAC5BC,QAAAA,aAAAA,EAAef,EAASrD,KAAAA,CAAMoE,aAAAA;AAC9BnE,QAAAA,cAAAA,EAAgBI,EAAAA,CAAOJ,cAAAA;AACvBC,QAAAA,WAAAA,EAAaG,EAAAA,CAAOH,WAAAA;QACpBwC,QAAAA,EAAAA;AACJ,OAAA;AACuB,MAAA,SAAA,KAAnBnC,EAAAA,IACAxD,EAAAA,CAAS0G,OAAAA,CAAQA,CAAAA,CAAAA,EAGrB1G,EAAAA,CAASsH,WAAAA,CAAYhB,CAAAA,CAASgB,WAAW,CAAA,EACzCtH,EAAAA,CAASuH,MAAAA,CAAOjB,CAAAA,CAASkB,OAAO,CAAA,EAET,SAAA,KAAnBhE,EAAAA,KACAxD,EAAAA,CAASyH,IAAAA,CAAK,0BAAA,CAAA,EACdzH,EAAAA,CAAS0G,OAAAA,CAAQA,CAAAA,CAAAA,CAAAA,EAIhB1C,CAAAA,CAAKmD,mBAAAA,IACN,MAAMO,gBAAgBpB,CAAAA,CAASkB,OAAAA,EAASzE,EAAAA,EAAanD,EAAAA,EAASI,EAAAA,CAAAA,EAzL9EiD,EAAAA,GA4L2CqD,CAAAA,CAASrD,KAAAA,EA1L9CC,CAAAA,GA0L6BI,EAAAA,CA1LLJ,cAAAA,IAAkB,OAAA,EAC1CC,EAAAA,GAyL6BG,EAAAA,CAzLRH,WAAAA,IAAe,EAAA,EAAA,CAEtCF,EAAAA,CAAMmE,WAAAA,GAAc,CAAA,IAID,MAAA,KAAnBlE,CAAAA,IAA6BD,EAAAA,CAAMoE,aAAAA,GAAgB,CAAA,IAIhDpE,EAAAA,CAAMoE,aAAAA,GAAgBlE,EAAAA,MAgLbH,EAAAA,GAAW,CAAA,CAAA;AAEnB,IAAA,CAAA,CAAA,OAAS3C,EAAAA,EAAO;AACZL,MAAAA,EAAAA,CAASK,KAAAA,CAAMA,EAAAA,CAAAA,EACf2C,EAAAA,GAAW,CAAA;IACf,CAAA,SAAA;AACQD,MAAAA,EAAAA,IAAeA,EAAAA,KAAgBX,EAAAA,IAC/B,MAAMW,EAAAA,CAAY4E,OAAK,EAEV,CAAA,KAAb3E,EAAAA,IACAnE,aAAAA,CAAcmE,EAAAA,CAAAA;AAEtB,IAAA;EACJ,CAAA,CAAA;AACR;AAEA,eAAeK,qBAAAA,CACXzD,EAAAA,EACAwC,EAAAA,EACApC,EAAAA,EAAkB;AAElB,EAAA,IAAM4H,EAAAA,GAAStF,YAAYC,GAAAA,EAAG;AAC9BvC,EAAAA,EAAAA,CAASyH,KAAK,iCAAA,CAAA;AAEd,EAAA,IAAMrE,EAAAA,GAAe,MAAMyE,oBAAAA,CAAc;AACrCC,IAAAA,OAAAA,EAASlI,EAAAA,CAAQkI,OAAAA;IACjB1F,KAAAA,EAAAA,EAAAA;AACA1C,IAAAA,GAAAA,EAAKX,mBAAQW,GAAAA;GACjB,CAAA;AAEA,EAAA,IAAI,CAAC0D,EAAAA,CAAamE,MAAAA,CAAOQ,KAAAA,EAAO;AAC5B,IAAA,IAAMC,KAAa5E,EAAAA,CAAamE,MAAAA,CAAOU,MAAAA,CAAOvD,GAAAA,CAAI,CAACwD,EAAAA,KAAAA;AAC/C,MAAA,IAAMC,EAAAA,GAAaD,EAAAA,CAAMnC,IAAAA,EAAMqC,IAAAA,CAAK,GAAA,CAAA,IAAQ,MAAA;AAC5C,MAAA,OAAO,CAAA,CAAA,EAAIF,GAAMG,QAAAA,CAASC,WAAAA,EAAW,CAAA,EAAA,EAAOH,EAAAA,CAAAA,EAAAA,EAAeD,EAAAA,CAAM1H,OAAO,CAAA,CAAA;IAC5E,CAAA,CAAA;AAEA,IAAA,OADAR,EAAAA,CAASK,MAAUE,KAAAA,CAAM;AAAC,MAAA,iCAAA;AAAsCyH,MAAAA,GAAAA;MAAYI,IAAAA,CAAK,IAAA,CAAA,CAAA,CAAA,EAC1E,IAAA;AACX,EAAA;AAEA,EAAA,IAAI,CAAChF,GAAaE,MAAAA,EAEd,OADAtD,GAASK,KAAAA,CAAUE,KAAAA,CAAM,wBAAA,CAAA,CAAA,EAClB,IAAA;AAGX,EAAA,IAAMgI,CAAAA,GAAanF,GAAaE,MAAAA,CAAOkF,OAAAA;AACvC,EAAA,IAAID,CAAAA,IAAcA,CAAAA,CAAW7G,MAAAA,GAAS,CAAA,EAAG;AACrC1B,IAAAA,EAAAA,CAASyH,IAAAA,CAAK,CAAA,eAAA,EAAac,CAAAA,CAAW7G,MAAM,CAAA,aAAA,CAAe,CAAA;AAC3D,IAAA,IAAM+G,EAAAA,GAAY1J,mBAAQW,GAAAA,EAAG;AAC7B,IAAA,MAAMgJ,kBAAAA,CAAYH,CAAAA,EAAYE,EAAAA,EAAWE,uBAAAA,EAAAA,CAAAA,EACzC3I,EAAAA,CAAS4I,IAAAA,CAAK,CAAA,OAAA,EAAUL,CAAAA,CAAW7G,MAAM,CAAA,UAAA,CAAY,CAAA;AACzD,EAAA;AAGA,EAAA,OADA1B,EAAAA,CAAS6I,KAAAA,CAAM,CAAA,gBAAA,EAAA,CAAoBvG,WAAAA,CAAYC,GAAAA,EAAG,GAAKqF,EAAAA,EAAQ1F,OAAAA,CAAQ,CAAA,CAAA,CAAA,EAAA,CAAM,CAAA,EACtE;AAAEoB,IAAAA,MAAAA,EAAQF,EAAAA,CAAaE;AAAO,GAAA;AACzC;AAEA,eAAeO,iBAAAA,CACXP,EAAAA,EACA1D,EAAAA,EACAwC,EAAAA,EACApC,CAAAA,EAAkB;AAElB,EAAA,IAAM4H,EAAAA,GAAStF,YAAYC,GAAAA,EAAG;AAC9BvC,EAAAA,CAAAA,CAASyH,KAAK,6BAAA,CAAA;AAEd,EAAA,IAAMqB,EAAAA,GAAa,MAAMC,YAAAA,CAAK;AAC1BC,IAAAA,OAAAA,EAASjK,mBAAQW,GAAAA,EAAG;AACpBuJ,IAAAA,OAAAA,EAAS3F,GAAO2F,OAAAA,IAAW;AAAIC,MAAAA,GAAAA;;IAC/BC,OAAAA,EAAS7F,EAAAA,CAAO6F,WAAW,EAAA;AAC3BC,IAAAA,cAAAA,EAAgB9F,EAAAA,CAAO8F,cAAAA;IACvBC,YAAAA,EAAAA,CAnPR,SACIC,IACA5J,EAAAA,EAAW;AAEX,MAAA,IAAI,CAAC4J,IAAeC,OAAAA,EAChB;AAGJ,MAAA,IAAMP,EAAAA,GAAUM,GAAcE,eAAAA,GACxBzD,mBAAAA,CAAK0D,QAAQ/J,EAAAA,EAAK4J,EAAAA,CAAcE,eAAe,CAAA,GAC/C9J,EAAAA;AAEN,MAAA,OAAOqG,mBAAAA,CAAK0D,OAAAA,CAAQT,EAAAA,EAASM,EAAAA,CAAcC,OAAO,CAAA;AACtD,IAAA,CAAA,EAsO+CjG,EAAAA,CAAOgG,aAAAA,EAAevK,kBAAAA,CAAQW,GAAAA,EAAG,CAAA;IACxEgK,gBAAAA,EAAkB,IAAA;AAClBb,IAAAA,KAAAA,EAAOjJ,EAAAA,CAAQiJ,KAAAA;IACfzG,KAAAA,EAAAA;GACJ,CAAA;AAEK0G,EAAAA,OAAAA,EAAAA,CAAWa,MAKhB3J,CAAAA,CAAS4I,IAAAA,CAAK,gBAAWE,EAAAA,CAAWc,IAAAA,CAAKhG,MAAMlC,MAAM,CAAA,UAAA,EAAA,CAAcY,YAAYC,GAAAA,EAAG,GAAKqF,IAAQ1F,OAAAA,CAAQ,CAAA,CAAA,CAAA,EAAA,CAAM,CAAA,EAC7GlC,EAAS6I,KAAAA,CAAM,CAAA,gBAAA,EAAA,CAAoBvG,WAAAA,CAAYC,GAAAA,KAAQqF,EAAAA,EAAQ1F,OAAAA,CAAQ,CAAA,CAAA,CAAA,EAAA,CAAM,GACtE4G,EAAAA,CAAWc,IAAAA,CAAKhG,UANnB5D,CAAAA,CAASK,KAAAA,CAAUE,MAAM,CAAA,uBAAA,EAA0BuI,EAAAA,CAAWzI,MAAMG,OAAO,CAAA,CAAE,CAAA,CAAA,EACtE,IAAA,CAAA;AAMf;AAEA,eAAeuD,gBAAAA,CACXT,EAAAA,EACA1D,EAAAA,EACAI,EAAAA,EAAkB;AAElB,EAAA,IAAM4H,EAAAA,GAAStF,YAAYC,GAAAA,EAAG;AAC9BvC,EAAAA,EAAAA,CAASyH,KAAK,yBAAA,CAAA;AAEd,EAAA,IAAIoC,EAAAA,GAA4CvG,EAAAA;AAC5C1D,EAAAA,EAAAA,CAAQkK,SACR9J,EAAAA,CAAS4I,IAAAA,CAAK,sCAAsChJ,EAAAA,CAAQkK,IAAI,CAAA,CAAE,CAAA,EAClED,EAAAA,GAAkB;IACd,GAAGvG,EAAAA;IACHyG,KAAAA,EAAO;MACH,CAACnK,EAAAA,CAAQkK,IAAI,GAAG;AACpB,KAAA;AACAE,IAAAA,OAAAA,EAAS;AACb,GAAA,CAAA;AAGJ,EAAA,IAAMC,EAAAA,GAAc,MAAMC,kBAAAA,CAAaL,EAAAA,CAAAA;AAEvC,EAAA,IAAI,CAACI,EAAAA,CAAYN,EAAAA,EAEb,OADA3J,EAAAA,CAASK,KAAAA,CAAUE,KAAAA,CAAM,CAAA,wBAAA,EAA2B0J,EAAAA,CAAY5J,KAAAA,CAAMG,OAAO,CAAA,CAAE,CAAA,CAAA,EACxE,IAAA;AAGX,EAAA,IAAMsD,CAAAA,GAAeqG,qBAAAA,CAAgBF,EAAAA,CAAYL,IAAAA,CAAKG,KAAK,CAAA;AAG3D,EAAA,OAFA/J,EAAAA,CAAS4I,IAAAA,CAAK,CAAA,cAAA,EAAY9E,CAAAA,CAAagD,IAAI,CAAA,iBAAA,EAAA,CAAqBxE,WAAAA,CAAYC,GAAAA,EAAG,GAAKqF,EAAAA,EAAQ1F,OAAAA,CAAQ,CAAA,CAAA,IAAM,CAAA,EAC1GlC,EAAAA,CAAS6I,KAAAA,CAAM,CAAA,iBAAA,EAAA,CAAqBvG,WAAAA,CAAYC,GAAAA,EAAG,GAAKqF,EAAAA,EAAQ1F,OAAAA,CAAQ,CAAA,CAAA,CAAA,EAAA,CAAM,CAAA,EACvE4B,CAAAA;AACX;AAEA,eAAeG,cACXL,EAAAA,EACAmG,EAAAA,EACA3H,EAAAA,EACAxC,EAAAA,EACAI,IACAsD,CAAAA,EAAgC;AAEhC,EAAA,IAAMsE,EAAAA,GAAStF,YAAYC,GAAAA,EAAG;AAC9BvC,EAAAA,EAAAA,CAASyH,KAAK,6BAAA,CAAA;AAEd,EAAA,IAAM2C,EAAAA,GAAa,MAAMC,0BAAAA,CAAmB;IACxCzG,KAAAA,EAAAA,EAAAA;IACAmG,KAAAA,EAAAA,EAAAA;AACAf,IAAAA,OAAAA,EAASjK,mBAAQW,GAAAA,EAAG;IACpB0C,KAAAA,EAAAA,EAAAA;AACAyG,IAAAA,KAAAA,EAAOjJ,EAAAA,CAAQiJ,KAAAA;AACfyB,IAAAA,WAAAA,EAAa1K,GAAQG,KAAAA,GAAQ;MAAEwK,UAAAA,EAAY;KAAK,GAAI/D,MAAAA;AACpDgE,IAAAA,WAAAA,EAAalH,CAAAA,CAAOmD,UAAAA;AACpBgE,IAAAA,SAAAA,EAAWnH,CAAAA,CAAOmH;GACtB,CAAA;SAEKL,EAAAA,CAAWT,EAAAA,IAKZS,GAAWR,IAAAA,CAAKzC,mBAAAA,GAChBnH,GAAS4I,IAAAA,CAAK,oCAAA,CAAA,GAEd5I,EAAAA,CAAS4I,IAAAA,CAAK,CAAA,gBAAA,EAAcwB,GAAWR,IAAAA,CAAKnF,KAAAA,CAAM/C,MAAAA,CAAO2E,cAAAA,EAAc,CAAA,WAAA,EAAA,CAAiB/D,YAAYC,GAAAA,EAAG,GAAKqF,EAAAA,EAAQ1F,OAAAA,CAAQ,CAAA,CAAA,IAAM,CAAA,EAGtIlC,EAAAA,CAAS6I,MAAM,CAAA,YAAA,EAAA,CAAgBvG,WAAAA,CAAYC,KAAG,GAAKqF,EAAAA,EAAQ1F,OAAAA,CAAQ,CAAA,CAAA,CAAA,EAAA,CAAM,GAClEkI,EAAAA,CAAWR,IAAAA,KAXd5J,EAAAA,CAASK,KAAAA,CAAUE,KAAAA,CAAM,CAAA,gCAAA,EAAmC6J,GAAW/J,KAAAA,CAAMG,OAAO,CAAA,CAAE,CAAA,CAAA,EAC/E,IAAA,CAAA;AAWf;AAEA,eAAe+F,eAAAA,CACXvC,IACA5B,EAAAA,EACAxC,EAAAA,EACAI,IACA4D,EAAAA,EACAN,CAAAA,EACAoH,EAAAA,EACAC,EAAAA,EACAC,EAAAA,EAAsD;AAEtD,EAAA,IAAMhD,EAAAA,GAAStF,YAAYC,GAAAA,EAAG;AAG9BsI,EAAAA,4BAAAA,CAAsBC,oCAA8BC,qBAAAA,CAAAA;AAEpD,EAAA,IAAMC,EAAAA,GAAgBpL,GAAQ6G,UAAAA,GAAawE,QAAAA,CAASrL,GAAQ6G,UAAAA,EAAY,EAAA,IAAMD,MAAAA,EACxE0E,EAAAA,GAAetL,GAAQuL,kBAAAA,GAAqBF,QAAAA,CAASrL,GAAQuL,kBAAAA,EAAoB,EAAA,IAAM3E,MAAAA,EACvF3G,EAAAA,GAAS,MAAMuL,kBAAAA,CAAYpH,EAAAA,EAAM;AACnCgF,IAAAA,OAAAA,EAASjK,mBAAQW,GAAAA,EAAG;IACpB0C,KAAAA,EAAAA,EAAAA;AACAyG,IAAAA,KAAAA,EAAOjJ,EAAAA,CAAQiJ,KAAAA;IACfjF,KAAAA,EAAAA,EAAAA;AACA6C,IAAAA,UAAAA,EAAYuE,MAAiB1H,CAAAA,EAAQmD,UAAAA;IACrC0E,kBAAAA,EAAoBD,EAAAA;AACpBG,IAAAA,aAAAA,EAAezL,EAAAA,CAAQyL,aAAAA;AACvB/B,IAAAA,aAAAA,EAAehG,CAAAA,EAAQgG,aAAAA;IACvBoB,UAAAA,EAAAA,EAAAA;IACAE,cAAAA,EAAAA;GACJ,CAAA;SAEK/K,EAAAA,CAAO8J,EAAAA,IAKZ3J,EAAAA,CAAS6I,KAAAA,CAAM,CAAA,WAAA,EAAA,CAAevG,WAAAA,CAAYC,KAAG,GAAKqF,EAAAA,EAAQ1F,OAAAA,CAAQ,CAAA,CAAA,CAAA,EAAA,CAAM,GACjErC,EAAAA,CAAO+J,IAAAA,KALV5J,EAAAA,CAASK,KAAAA,CAAUE,KAAAA,CAAM,CAAA,iBAAA,EAAoBV,GAAOQ,KAAAA,CAAMG,OAAO,CAAA,CAAE,CAAA,CAAA,EAC5D,IAAA,CAAA;AAKf;AAEA,eAAekH,eAAAA,CACXF,EAAAA,EACApF,EAAAA,EACAxC,EAAAA,EACAI,EAAAA,EAAkB;AAElB,EAAA,IAAI,CAACoC,EAAAA,EACD;AAEJ,EAAA,IAAMwF,EAAAA,GAAStF,WAAAA,CAAYC,GAAAA,EAAG,EACxB+I,KAAuC,EAAA;AAE7C,EAAA,KAAA,IAAWzL,MAAU2H,EAAAA,EACb3H,EAAAA,CAAO0L,MAAAA,IACPD,GAAaE,IAAAA,CAAK;IAAC3L,EAAAA,CAAO0L,MAAAA;AAAQ1L,IAAAA;AAAO,GAAA,CAAA;AAI7CyL,EAAAA,EAAAA,CAAa5J,MAAAA,GAAS,CAAA,KACtB,MAAMU,EAAAA,CAAMoF,QAAQiE,OAAAA,CAAQH,EAAAA,CAAAA,EACxB1L,EAAAA,CAAQiJ,KAAAA,IACR7I,EAAAA,CAAS6I,MAAM,CAAA,MAAA,EAASyC,EAAAA,CAAa5J,MAAM,CAAA,mBAAA,EAAA,CAAuBY,WAAAA,CAAYC,GAAAA,KAAQqF,EAAAA,EAAQ1F,OAAAA,CAAQ,CAAA,CAAA,CAAA,GAAA,CAAO,CAAA,CAAA;AAGzH;AChdO,SAASwJ,qBAAAA,CAAsBrM,GAAkB+C,EAAAA,EAAmB;AACnD/C,EAAAA,CAAAA,CACfE,QAAQ,QAAA,CAAA,CACRC,YAAY,8CAAA,CAAA,CAGZD,QAAQ,QAAA,CAAA,CACRC,WAAAA,CAAY,6DAAA,EACZC,MAAAA,CAAO,sBAAA,EAAwB,mCAAA,CAAA,CAC/BE,MAAAA,CAAO,OAAOC,EAAAA,KAAAA;AACX,IAAA,IAAI;AACA,MAAA,IAAMC,EAAAA,GAAS,MAAM8L,qBAAAA,CAAe;QAChCvJ,KAAAA,EAAOxC,EAAAA,CAAQwC,QAAQA,EAAAA,GAAQoE,KAAAA,CAAAA;AAC/BsB,QAAAA,OAAAA,EAASlI,EAAAA,CAAQkI;OACrB,CAAA,EAEM9H,KAAWC,2BAAAA,EAAAA;AACjB,MAAA,MAAMD,EAAAA,CAAS4L,mBAAmB/L,EAAAA,CAAO0H,MAAM,GAE1C1H,EAAAA,CAAO0H,MAAAA,CAAOQ,SACflJ,aAAAA,EAAAA;AAER,IAAA,CAAA,CAAA,OAASwB,EAAAA,EAAgB;AACrB,MAAA,IAAMwL,KAAexL,EAAAA,YAAiBE,KAAAA,GAAQF,EAAAA,CAAMG,OAAAA,GAAUC,OAAOJ,EAAAA,CAAAA;AACrEC,MAAAA,OAAAA,CAAQD,KAAAA,CAAM,CAAA,OAAA,EAAUwL,EAAAA,CAAAA,CAAc,GACtChN,aAAAA,EAAAA;AACJ,IAAA;EACJ,CAAA,CAAA;AACR;AC3BO,SAASiN,oBAAAA,CAAqBzM,IAAkB+C,EAAAA,EAAmB;AACtE,EAAA,IAAM2J,KAAW1M,EAAAA,CACZE,OAAAA,CAAQ,OAAA,CAAA,CACRC,YAAY,wCAAA,CAAA;AAEjBuM,EAAAA,GACKxM,OAAAA,CAAQ,OAAA,EACRC,WAAAA,CAAY,yDAAA,EACZC,MAAAA,CAAO,sBAAA,EAAwB,sDAAA,CAAA,CAC/BA,OAAO,eAAA,EAAiB,mDAAA,EAAqD,KAAA,CAAA,CAC7EE,MAAAA,CAAO,OAAOC,EAAAA,KAAAA;AACX,IAAA,IAAMI,KAAWgM,0BAAAA,EAAAA;AACjBjN,IAAAA,mBAAQC,MAAAA,CAAOE,KAAAA,CAAMgC,mBAAAA,CAAGE,GAAAA,CAAI,8BAAA,CAAA,CAAA;AAE5B,IAAA,IAAM6K,EAAAA,GAAOrM,EAAAA,CAAQqM,IAAAA,EAEfC,EAAAA,GAAa;AAAC,MAAA,KAAA;AAAO,MAAA,QAAA;AAAU,MAAA,SAAA;AAAW,MAAA;;AAC3CA,IAAAA,GAAWC,QAAAA,CAASF,EAAAA,MACrB3L,OAAAA,CAAQD,KAAAA,CAAMa,oBAAGiF,GAAAA,CAAI,CAAA,oBAAA,EAAuB8F,EAAAA,CAAAA,kBAAAA,EAAyBC,GAAW9D,IAAAA,CAAK,IAAA,CAAA,CAAA,CAAO,CAAA,GAC5FvJ,aAAAA,EAAAA,CAAAA;AAGJ,IAAA,IAAI;AACA,MAAA,IAAMkE,EAAAA,GAAc,MAAMqJ,mBAAAA,CAAoBhK,EAAAA,EAAO;AACjD0F,QAAAA,OAAAA,EAASlI,EAAAA,CAAQkI,OAAAA;QACjBuE,aAAAA,EAAe;OACnB,CAAA;AAEa,MAAA,KAAA,KAATJ,EAAAA,GACA,MAAMlJ,EAAAA,CAAYuJ,KAAAA,EAAK,GAEvB,MAAMvJ,EAAAA,CAAYwJ,SAAAA,CAAUN,EAAAA,CAAAA,EAEhCjM,EAAAA,CAASwM,iBAAAA,CAAkBP,EAAAA,CAAAA;AAC/B,IAAA,CAAA,CAAA,OAASQ,EAAAA,EAAK;AACVnM,MAAAA,OAAAA,CAAQD,MAAMa,mBAAAA,CAAGiF,GAAAA,CAAI,uBAAA,CAAA,EAA0BsG,EAAAA,GAC/C5N,aAAAA,EAAAA;AACJ,IAAA;AACJ,EAAA,CAAA,CAAA,EAEJkN,EAAAA,CACKxM,OAAAA,CAAQ,MAAA,EACRC,WAAAA,CAAY,4CAAA,CAAA,CACZC,MAAAA,CAAO,sBAAA,EAAwB,sDAAA,CAAA,CAC/BE,MAAAA,CAAO,OAAOC,EAAAA,KAAAA;AACX,IAAA,IAAMI,KAAWgM,0BAAAA,EAAAA;AACjB,IAAA,IAAI;AACA,MAAA,IAAMjJ,EAAAA,GAAc,MAAMqJ,mBAAAA,CAAoBhK,EAAAA,EAAO;AACjD0F,QAAAA,OAAAA,EAASlI,EAAAA,CAAQkI,OAAAA;QACjBuE,aAAAA,EAAe;AACnB,OAAA,CAAA,EACMzD,EAAAA,GAAO,MAAM7F,EAAAA,CAAY2J,OAAAA,EAAO;AACtC1M,MAAAA,EAAAA,CAAS2M,gBAAgB/D,EAAAA,CAAAA;AAC7B,IAAA,CAAA,CAAA,OAAS6D,EAAAA,EAAK;AACVnM,MAAAA,OAAAA,CAAQD,MAAMa,mBAAAA,CAAGiF,GAAAA,CAAI,2BAAA,CAAA,EAA8BsG,EAAAA,GACnD5N,aAAAA,EAAAA;AACJ,IAAA;AACJ,EAAA,CAAA,CAAA,EAEJkN,EAAAA,CACKxM,OAAAA,CAAQ,MAAA,EACRC,WAAAA,CAAY,yCAAA,CAAA,CACZC,MAAAA,CAAO,sBAAA,EAAwB,sDAAA,CAAA,CAC/BE,MAAAA,CAAO,OAAOC,EAAAA,KAAAA;AACX,IAAA,IAAMmD,EAAAA,GAAc,MAAMqJ,mBAAAA,CAAoBhK,EAAAA,EAAO;AACjD0F,MAAAA,OAAAA,EAASlI,EAAAA,CAAQkI,OAAAA;MACjBuE,aAAAA,EAAe;KACnB,CAAA;AACAtN,IAAAA,mBAAQC,MAAAA,CAAOE,KAAAA,CAAM,CAAA,EAAG6D,EAAAA,CAAY6J,cAAY;AAAM,CAAA,CAAA;EAC1D,CAAA,CAAA;AACR;AAEA,eAAeR,mBAAAA,CACXS,EAAAA,EACAjN,EAAAA,GAAuE,EAAC,EAAC;AAEzE,EAAA,IAAMF,CAAAA,GAAME,EAAAA,CAAQF,GAAAA,IAAOX,kBAAAA,CAAQW,GAAAA,EAAG;AAEtC,EAAA,IAAI;AACA,IAAA,IAAM0D,EAAAA,GAAe,MAAMyE,oBAAAA,CAAc;AACrCC,MAAAA,OAAAA,EAASlI,EAAAA,CAAQkI,OAAAA;MACjB1F,KAAAA,EAAOyK,EAAAA;MACPnN,GAAAA,EAAAA;KACJ,CAAA;AAEA,IAAA,IAAI,CAAC0D,EAAAA,CAAamE,MAAAA,CAAOQ,SAAS,CAAC3E,EAAAA,CAAaE,QAC5C,OAAOuJ,EAAAA;AAGX,IAAA,OAAOtJ,wBAAAA,CAAmBH,EAAAA,CAAaE,MAAAA,EAAQ5D,CAAAA,EAAK;AAAE2M,MAAAA,aAAAA,EAAezM,EAAAA,CAAQyM;AAAc,KAAA,CAAA,IAAMQ,EAAAA;EACrG,CAAA,CAAA,MAAQ;AACJ,IAAA,OAAOA,EAAAA;AACX,EAAA;AACJ;AC9FO,SAASC,qBAAqBzN,CAAAA,EAAgB;AACjDA,EAAAA,CAAAA,CACKE,OAAAA,CAAQ,kBAAA,CAAA,CACRC,WAAAA,CAAY,+DAAA,CAAA,CACZC,MAAAA,CAAO,iBAAA,EAAmB,wEAAA,CAAA,CAC1BE,MAAAA,CAAO,CAACoN,IAA8BC,EAAAA,KAAAA;AAC/BA,IAAAA,EAAAA,CAAKC,MAAAA,IAAU,CAACC,qBAAAA,CAAgBF,EAAAA,CAAKC,MAAM,CAAA,KAC3C3M,OAAAA,CAAQD,KAAAA,CAAMa,mBAAAA,CAAGiF,GAAAA,CAAI,CAAA,iBAAA,EAAoB6G,GAAKC,MAAM,CAAA,EAAA,CAAI,CAAA,CAAA,EACxD3M,OAAAA,CAAQD,KAAAA,CAAMa,oBAAGE,GAAAA,CAAI,sEAAA,CAAA,CAAA,EACrBvC,aAAAA,EAAAA,CAAAA;AAGJ,IAAA,IAAMsO,EAAAA,GAAUC,wBAAAA,EAAAA,EACVpN,EAAAA,GAAWqN,0BAAAA,CAAiB;AAAEJ,MAAAA,MAAAA,EAAQD,EAAAA,CAAKC;KAAO,CAAA;AAExD,IAAA,IAAIF,EAAAA,EAAU;AACV,MAAA,IAAMjD,KAAOqD,EAAAA,CAAQG,IAAAA,CAAKC,CAAAA,EAAAA,KAAKA,EAAAA,CAAEC,SAAST,EAAAA,CAAAA;AAC1C,MAAA,IAAI,CAACjD,EAAAA,EAAM;AACPxJ,QAAAA,OAAAA,CAAQD,KAAAA,CAAMa,mBAAAA,CAAGiF,GAAAA,CAAI,CAAA,MAAA,EAAS4G,EAAAA,CAAAA,YAAAA,CAAsB,CAAA,CAAA,EACpDzM,OAAAA,CAAQD,MAAMa,mBAAAA,CAAGE,GAAAA,CAAI,gDAAA,CAAA,GACrBvC,aAAAA,EAAAA;AACA,QAAA;AACJ,MAAA;AACAmB,MAAAA,EAAAA,CAASyN,iBAAiB3D,EAAAA,CAAAA;IAC9B,CAAA,MACI9J,EAAAA,CAASgB,MAAAA,CAAOmM,EAAAA,CAAAA;EAExB,CAAA,CAAA;AACR;;;ACzBO,SAASO,gBAAAA,CAAiBrO,IAAkB+C,EAAAA,EAAmB;AAClEhD,EAAAA,mBAAAA,CAAoBC,EAAS+C,CAAAA,EAC7BD,sBAAAA,CAAuB9C,EAAAA,EAAS+C,EAAAA,CAAAA,EAChCsJ,qBAAAA,CAAsBrM,EAAAA,EAAS+C,EAAAA,GAC/B0J,oBAAAA,CAAqBzM,EAAAA,EAAS+C,EAAAA,CAAAA,EAC9B0K,qBAAqBzN,EAAAA,CAAAA;AACzB;ACTA,IAAMsO,gBAAgB,MAAA;AACf5O,EAAAA,OAAAA,CAAQC,MAAAA,CAAOC,KAAAA,IACpBF,OAAAA,CAAQC,MAAAA,CAAOE,MAAM,WAAA,CAAA;AACvB,CAAA;AAHA,IAOI0O,kBAAAA,GAAqB,KAAA;AAPzB,IAQMC,gBAAAA,GAAmB,OACvBzL,EAAAA,EACAY,EAAAA,KAAAA;AAEA,EAAA,IAAA,CAAI4K,kBAAAA,EAAAA;AAKJ,IAAA,IAJAA,kBAAAA,GAAqB,IAAA,EAErBD,aAAAA,EAAAA,EAEIvL,IACF,IAAI;AACF,MAAA,IAAM0L,EAAAA,GAAe,IAAIC,OAAAA,CAAc,CAACtE,EAAAA,KACtCuE,WAAWvE,EAAAA,EAfM,GAAA,CAAA,CAeqBwE,KAAAA,EAAK,CAAA;AAE7C,MAAA,MAAMF,QAAQG,IAAAA,CAAK;AAAC9L,QAAAA,EAAAA,CAAMuF,KAAAA,EAAK;AAAImG,QAAAA;AAAa,OAAA,CAAA;IAClD,CAAA,CAAA,MAAQ;AAER,IAAA;AAGF/O,IAAAA,OAAAA,CAAQI,KAAK6D,EAAAA,CAAAA;;AACf,CAAA;AAEA,eAAsBmL,GAAAA,GAAAA;AACpB,EAAA,IAAM9O,EAAAA,GAAU,IAAI+O,iBAAAA,EAAAA;AAEpB/O,EAAAA,EAAAA,CACGmO,IAAAA,CAAK,WAAA,CAAA,CACLhO,WAAAA,CACC,kEAAA,CAAA,CAED6O,OAAAA,CAAQC,sBAAAA,EAAiB,eAAA,EAAiB,2BAAA,CAAA,CAC1C7O,OAAO,SAAA,EAAW,+CAAA,CAAA,CAClB8O,WAAAA,CACC,OAAA,EACA,qGAAA,EAEDC,IAAAA,CAAK,WAAA,EAAa,OAAOC,EAAAA,EAAaC,EAAAA,KAAAA;AACxBD,IAAAA,GAAYzB,IAAAA,EAAI,CACpBnE,KAAAA,IACP8F,kBAAAA,CAAY,SAAS,KAAA,CAAA;AAGvB,IAAA,IAAMC,EAAAA,GAAaF,GAAc1B,IAAAA,EAAI;AACrC,IAAA,IACwB,MAAA,KAAtB4B,EAAAA,CAAWhN,MAAAA,IACW,OAAA,KAAtBgN,EAAAA,CAAWhN,MAAAA,IACW,MAAA,KAAtBgN,EAAAA,CAAWhN,MAAAA,IACW,IAAA,KAAtBgN,EAAAA,CAAWhN,MAAAA,EACX;AACA,MAAA,IAAM,EAAEiN,OAAAA,EAAS3N,EAAAA,EAAE,GAAK,MAAM,OAAO,YAAA,CAAA,EAC/B4N,EAAAA,GAASJ,EAAAA,CAAcI,MAAAA,EACvBC,EAAAA,GAAeD,MAA4B,WAAA,KAAlBA,EAAAA,CAAOtB,IAAAA,EAAI,GACtCsB,EAAAA,CAAOtB,IAAAA,EAAI,GACXkB,EAAAA,CAAclB,IAAAA,EAAI,EAChB9N,EAAAA,GAAMX,OAAAA,CAAQW,GAAAA,EAAG;AACvBX,MAAAA,OAAAA,CAAQC,OAAOE,KAAAA,CACb;AAEKgC,EAAAA,EAAAA,CAAGE,IAAI,GAAA,CAAA,IAAQF,EAAAA,CAAGE,GAAAA,CAAI,aAAakN,sBAAAA,CAAAA,CAAiB,CAAA,CAAA,CAAA,EAAKpN,EAAAA,CAAGE,IAAI2N,EAAAA,CAAAA,IAAgB7N,EAAAA,CAAGE,GAAAA,CAAI1B,EAAAA,CAAAA;AACvFwB,EAAAA,EAAAA,CAAGE,GAAAA,CAAI,GAAA,CAAA,CAAA,CAAA,EAAQF,EAAAA,CAAGE,GAAAA,CAAI,WAAA,CAAA,CAAA,CAAA,EAAgBF,EAAAA,CAAGE,GAAAA,CAAI,KAAA,CAAA;;GAE5CF,EAAAA,CAAG8N,MAAAA,CAAO9N,GAAG+N,KAAAA,CAAM/N,EAAAA,CAAGgO,KAAK,CAAA,CAAA,EAAIH,EAAAA,CAAYzG,WAAAA,EAAW,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,EAAA,EAAQpH,GAAGC,IAAAA,CAAKmN,sBAAAA,CAAAA,CAAAA,EAAAA,EAAqBpN,EAAAA,CAAGE,GAAAA,CAAI1B,EAAAA,CAAAA;;AAG5G,CAAA,CAAA;AAEL,IAAA;EACF,CAAA,CAAA;AAEF,EAAA,IAAM0C,KAAQ+M,wBAAAA,EAAAA;AAEdpQ,EAAAA,OAAAA,CAAQqQ,EAAAA,CAAG,UAAU,MAAM,KAAKvB,iBAAiBzL,EAAAA,EAAO,GAAA,CAAA,CAAA,EACxDrD,OAAAA,CAAQqQ,EAAAA,CAAG,WAAW,MAAM,KAAKvB,gBAAAA,CAAiBzL,EAAAA,EAAO,GAAA,CAAA,GAEzDrD,OAAAA,CAAQqQ,EAAAA,CAAG,mBAAA,EAAqB,CAAC3C,EAAAA,KAAAA;AAC/BkB,IAAAA,aAAAA,EAAAA,EACArN,QAAQD,KAAAA,CAAM;AAAmCoM,8BAAAA,EAAAA,EAAAA,CAAIjM,OAAO,CAAA,CAAE,CAAA,EACzDqN,gBAAAA,CAAiBzL,IAAO,CAAA,CAAA;AAC/B,EAAA,CAAA,CAAA,EAEArD,OAAAA,CAAQqQ,EAAAA,CAAG,oBAAA,EAAsB,CAACC,EAAAA,KAAAA;AAChC1B,IAAAA,aAAAA,EAAAA;AACA,IAAA,IAAM2B,KAAMD,EAAAA,YAAkB9O,KAAAA,GAAQ8O,EAAAA,CAAO7O,OAAAA,GAAUC,OAAO4O,EAAAA,CAAAA;AAC9D/O,IAAAA,OAAAA,CAAQD,KAAAA,CAAM;AAA8CiP,yCAAAA,EAAAA,EAAAA,CAAAA,CAAK,CAAA,EAC5DzB,gBAAAA,CAAiBzL,EAAAA,EAAO,CAAA,CAAA;EAC/B,CAAA,CAAA;AAEA,EAAA,IAAI;AAKF,IAAA,IAJAmN,+BAAAA,EAEA7B,gBAAAA,CAAiBrO,EAAAA,EAAS+C,EAAAA,GAEtB,CAACrD,OAAAA,CAAQyQ,IAAAA,CAAKC,KAAAA,CAAM,CAAA,CAAA,CAAG/N,MAAAA,EAAQ,OAAA,KACjCrC,GAAQqQ,UAAAA,EAAU;AAIpB,IAAA,MAAMrQ,EAAAA,CAAQsQ,UAAAA,CAAW5Q,OAAAA,CAAQyQ,IAAI,CAAA,EAErC,MAAMpN,EAAAA,CAAMuF,KAAAA,EAAK,EAEjB5I,OAAAA,CAAQI,IAAAA,CAAK,CAAA,CAAA;AACf,EAAA,CAAA,CAAA,OAASsN,EAAAA,EAAc;AACrBkB,IAAAA,aAAAA,EAAAA;AACA,IAAA,IAAM2B,KAAM7C,EAAAA,YAAelM,KAAAA,GAAQkM,EAAAA,CAAIjM,OAAAA,GAAUC,OAAOgM,EAAAA,CAAAA;AACxDnM,IAAAA,OAAAA,CAAQD,KAAAA,CAAM,4BAA4BiP,EAAAA,CAAAA,CAAK,GAC/C,MAAMzB,gBAAAA,CAAiBzL,IAAO,CAAA,CAAA;AAChC,EAAA;AACF;AAEA+L,GAAAA,EAAAA,CAAMyB,KAAAA,CAAM,CAACnD,EAAAA,KAAAA;AACXkB,EAAAA,aAAAA,EAAAA;AACA,EAAA,IAAM2B,KAAM7C,EAAAA,YAAelM,KAAAA,GAAQkM,EAAAA,CAAIjM,OAAAA,GAAUC,OAAOgM,EAAAA,CAAAA;AACxDnM,EAAAA,OAAAA,CAAQD,MAAM,CAAA,yBAAA,EAA4BiP,EAAAA,EAAK,CAAA,EAC/CvQ,OAAAA,CAAQI,KAAK,CAAA,CAAA;AACf,CAAA,CAAA","file":"cli.cjs","sourcesContent":["export const exitWithError = (s = 1)=>{\n process.stdout.isTTY && process.stdout.write('\\x1B[?25h'), process.exit(s);\n};\n","import { getConfigReporter as r } from '@ngcompass/reporters';\nimport { initConfig as e } from '@ngcompass/config';\nimport { exitWithError as o } from './exit.js';\nexport function registerInitCommand(t, i) {\n t.command('init').description('Create a starter ngcompass configuration in the current project').option('-f, --force', 'Overwrite an existing configuration file').option('--cwd <path>', 'Project directory where the configuration will be created', process.cwd()).action(async (t)=>{\n try {\n let i = await e({\n cwd: t.cwd,\n force: t.force\n }), c = r();\n await c.renderInitResult(i), i.success || i.alreadyExists || o();\n } catch (r) {\n console.error(r instanceof Error ? r.message : String(r)), o();\n }\n });\n}\n","import t from 'picocolors';\nlet FRAMES = [\n '⠋',\n '⠙',\n '⠹',\n '⠸',\n '⠼',\n '⠴',\n '⠦',\n '⠧',\n '⠇',\n '⠏'\n];\nexport class Spinner {\n stream;\n timer = null;\n frameIndex = 0;\n message = '';\n isTTY;\n constructor(t){\n this.stream = t, this.isTTY = !!t.isTTY;\n }\n start(e) {\n (this.message = e, this.frameIndex = 0, this.isTTY) ? (this.stream.write('\\x1B[?25l'), this.render(), this.timer = setInterval(()=>this.render(), 80)) : this.stream.write(`${t.cyan('❯')} ${t.dim(e)}\\n`);\n }\n writeLine(t) {\n this.isTTY && this.timer ? (this.stream.write('\\r\\x1B[K'), this.stream.write(`${t}\\n`), this.render()) : this.stream.write(`${t}\\n`);\n }\n stop() {\n this.timer && (clearInterval(this.timer), this.timer = null), this.isTTY && (this.stream.write('\\r\\x1B[K'), this.stream.write('\\x1B[?25h'));\n }\n render() {\n let e = t.cyan(FRAMES[this.frameIndex % FRAMES.length]);\n this.frameIndex++, this.stream.write(`\\r${e} ${t.dim(this.message)}`);\n }\n}\n","import e from 'node:path';\nimport r from 'picocolors';\nimport { DEFAULT_INCLUDE_PATTERNS as t } from '@ngcompass/common';\nimport { getReporter as o } from '@ngcompass/reporters';\nimport n from 'node:process';\nimport { createRuntimeCache as a } from '@ngcompass/cache';\nimport { exitWithError as i } from './exit.js';\nimport { Spinner as s } from '../spinner.js';\nimport { getGlobalRegistry as l, executeBatchedNewEngineRules as u, isNewEngineRule as p, resolveRules as c, getEnabledRules as m } from '@ngcompass/rules';\nimport { loadPlugins as f, resolveConfig as d } from '@ngcompass/config';\nimport { runAnalysis as g, configureRuleExecutor as h } from '@ngcompass/engine';\nimport { buildExecutionPlan as w } from '@ngcompass/planner';\nimport { scan as k } from '@ngcompass/scanner';\nfunction normalizeReporterFormat(e) {\n return 'ui' === e ? 'html' : e ?? 'console';\n}\nfunction formatDuration(e) {\n return e < 1000 ? `${Math.max(0, Math.round(e))}ms` : `${(e / 1000).toFixed(1)}s`;\n}\nexport function registerAnalyzeCommand(t, l) {\n t.command('analyze').description('Analyze your project and report rule violations and architecture risks').option('-p, --profile <name>', 'Configuration profile to run').option('--force', 'Ignore cached results and re-run all checks').option('--format <fmt>', 'Reporter format: console | json | sarif | html | ui').option('--compact', 'Use compact, ESLint-style output').option('-q, --quiet', 'Show summary counts only, suppress violation details').option('--no-recommendation', 'Suppress fix recommendations from output').option('--output <path>', 'Output path for UI reports (default: ngcompass-report.html)').option('--rule <id>', 'Run only one rule (useful for debugging or focused checks)').option('--max-workers <n>', 'Cap the number of worker threads (lower = less memory, e.g. --max-workers 2)').option('--type-aware-chunk-size <n>', 'Files per type-aware chunk (default 400; lower = less peak memory)').option('--skip-type-check', 'Skip rules that require the TypeScript type checker (fastest, lowest memory)').action(async (t)=>{\n let u = performance.now(), p = o(normalizeReporterFormat(t.format), {\n compact: !!t.compact,\n outputPath: t.output,\n quiet: !!t.quiet,\n noRecommendation: !1 === t.recommendation\n }), c = l, m = 0;\n try {\n var f;\n let i, d, g = await loadConfigurationStep(t, l, p);\n if (!g) {\n m = 1;\n return;\n }\n let { config: h } = g;\n c = a(h, n.cwd());\n let w = function(e, r) {\n if (e) return normalizeReporterFormat(e);\n switch(r){\n case 'json':\n return 'json';\n case 'sarif':\n return 'sarif';\n case 'html':\n return 'html';\n default:\n return 'console';\n }\n }(t.format, h.outputFormat);\n p = o(w, {\n compact: !!t.compact,\n outputPath: t.output ?? h.outputPath,\n quiet: !!t.quiet,\n noRecommendation: !1 === t.recommendation\n });\n let k = await discoverFilesStep(h, t, c, p);\n if (!k) {\n m = 1;\n return;\n }\n let y = await resolveRulesStep(h, t, p);\n if (!y) {\n m = 1;\n return;\n }\n let $ = await buildPlanStep(k, y, c, t, p, h);\n if (!$) {\n m = 1;\n return;\n }\n let v = 'console' === w ? n.stdout : n.stderr, C = new s(v);\n C.start('Running analysis...');\n let x = function(t, o, n) {\n let a = new Map();\n for (let e of t.tasks.map((e)=>e.filePath).filter((e)=>'string' == typeof e && e.length > 0))a.set(e, (a.get(e) ?? 0) + 1);\n let i = new Map(), s = new Set();\n return (t)=>{\n var l;\n if (s.has(t.filePath)) return;\n let u = i.get(t.filePath), p = u ? {\n filePath: t.filePath,\n taskCount: u.taskCount + t.taskCount,\n issueCount: u.issueCount + t.issueCount,\n errorCount: u.errorCount + t.errorCount,\n warningCount: u.warningCount + t.warningCount,\n duration: u.duration + t.duration\n } : t;\n i.set(t.filePath, p);\n let c = a.get(t.filePath) ?? p.taskCount;\n if (p.taskCount < c) return;\n s.add(t.filePath);\n let m = e.relative(n, t.filePath) || t.filePath, f = p.issueCount > 0, d = f ? r.red('❯') : r.green('❯'), g = f ? r.red(formatDuration(p.duration)) : r.green(formatDuration(p.duration));\n o(f ? `${d} ${r.red(m)} ${g} ${r.red((l = p.issueCount, `${l.toLocaleString()} issue${1 === l ? '' : 's'}`))}` : `${d} ${r.dim(m)} ${g}`);\n };\n }($, (e)=>C.writeLine(e), n.cwd()), S = await runAnalysisStep($, c, t, p, k, h, void 0, h.maxWorkers, x);\n if (C.stop(), !S) {\n m = 1;\n return;\n }\n let F = performance.now() - u, P = {\n scannedFiles: new Set([\n ...$.tasks.map((e)=>e.filePath),\n ...($.skippedTasks ?? []).map((e)=>e.filePath)\n ]).size,\n discoveredFiles: k.length,\n totalFiles: S.stats.totalFiles,\n totalTasks: $.tasks.length + ($.skippedTasks?.length ?? 0),\n cachedTasks: $.precomputedAnalysis ? $.tasks.length : void 0,\n totalErrors: S.stats.totalErrors,\n totalWarnings: S.stats.totalWarnings,\n failOnSeverity: h.failOnSeverity,\n maxWarnings: h.maxWarnings,\n duration: F\n };\n 'console' === w && p.summary(P), p.parseErrors(S.parseErrors), p.report(S.results), 'console' !== w && (p.step('❯ Writing report...'), p.summary(P)), $.precomputedAnalysis || await saveToCacheStep(S.results, c, t, p), f = S.stats, i = h.failOnSeverity ?? 'error', d = h.maxWarnings ?? 10, (f.totalErrors > 0 || 'warn' === i && f.totalWarnings > 0 || f.totalWarnings > d) && (m = 1);\n } catch (e) {\n p.error(e), m = 1;\n } finally{\n c && c !== l && await c.flush(), 0 !== m && i(m);\n }\n });\n}\nasync function loadConfigurationStep(e, r, t) {\n let o = performance.now();\n t.step('❯ Loading configuration...');\n let a = await d({\n profile: e.profile,\n cache: r,\n cwd: n.cwd()\n });\n if (!a.report.valid) {\n let e = a.report.issues.map((e)=>{\n let r = e.path?.join('.') || 'root';\n return `[${e.severity.toUpperCase()}] ${r}: ${e.message}`;\n });\n return t.error(Error([\n 'Configuration validation failed',\n ...e\n ].join('\\n'))), null;\n }\n if (!a.config) return t.error(Error('No configuration found')), null;\n let i = a.config.plugins;\n if (i && i.length > 0) {\n t.step(`❯ Loading ${i.length} plugin(s)...`);\n let e = n.cwd();\n await f(i, e, l()), t.info(`Loaded ${i.length} plugin(s)`);\n }\n return t.debug(`Config resolve: ${(performance.now() - o).toFixed(2)}ms`), {\n config: a.config\n };\n}\nasync function discoverFilesStep(r, o, a, i) {\n let s = performance.now();\n i.step('❯ Discovering files...');\n let l = await k({\n rootDir: n.cwd(),\n include: r.include ?? [\n ...t\n ],\n exclude: r.exclude ?? [],\n ignorePatterns: r.ignorePatterns,\n tsConfigPath: function(r, t) {\n if (!r?.project) return;\n let o = r.tsconfigRootDir ? e.resolve(t, r.tsconfigRootDir) : t;\n return e.resolve(o, r.project);\n }(r.parserOptions, n.cwd()),\n respectGitignore: !0,\n debug: o.debug,\n cache: a\n });\n return l.ok ? (i.info(`❯ Found ${l.data.files.length} files in ${(performance.now() - s).toFixed(0)}ms`), i.debug(`File discovery: ${(performance.now() - s).toFixed(2)}ms`), l.data.files) : (i.error(Error(`File discovery failed: ${l.error.message}`)), null);\n}\nasync function resolveRulesStep(e, r, t) {\n let o = performance.now();\n t.step('❯ Loading rules...');\n let n = e;\n r.rule && (t.info(`Filtering analysis to single rule: ${r.rule}`), n = {\n ...e,\n rules: {\n [r.rule]: 'error'\n },\n extends: []\n });\n let a = await c(n);\n if (!a.ok) return t.error(Error(`Rule resolution failed: ${a.error.message}`)), null;\n let i = m(a.data.rules);\n return t.info(`❯ Loaded ${i.size} active rules in ${(performance.now() - o).toFixed(0)}ms`), t.debug(`Rule resolution: ${(performance.now() - o).toFixed(2)}ms`), i;\n}\nasync function buildPlanStep(e, r, t, o, a, i) {\n let s = performance.now();\n a.step('❯ Planning analysis...');\n let l = await w({\n files: e,\n rules: r,\n rootDir: n.cwd(),\n cache: t,\n debug: o.debug,\n incremental: o.force ? {\n forceRerun: !0\n } : void 0,\n workerCount: i.maxWorkers,\n overrides: i.overrides\n });\n return l.ok ? (l.data.precomputedAnalysis ? a.info('❯ Reused cached analysis plan') : a.info(`❯ Prepared ${l.data.tasks.length.toLocaleString()} checks in ${(performance.now() - s).toFixed(0)}ms`), a.debug(`Plan build: ${(performance.now() - s).toFixed(2)}ms`), l.data) : (a.error(Error(`Execution plan building failed: ${l.error.message}`)), null);\n}\nasync function runAnalysisStep(e, r, t, o, a, i, s, l, c) {\n let m = performance.now();\n h(u, p);\n let f = t.maxWorkers ? parseInt(t.maxWorkers, 10) : void 0, d = t.typeAwareChunkSize ? parseInt(t.typeAwareChunkSize, 10) : void 0, w = await g(e, {\n rootDir: n.cwd(),\n cache: r,\n debug: t.debug,\n files: a,\n maxWorkers: f ?? i?.maxWorkers,\n typeAwareChunkSize: d,\n skipTypeCheck: t.skipTypeCheck,\n parserOptions: i?.parserOptions,\n onProgress: s,\n onFileProgress: c\n });\n return w.ok ? (o.debug(`Execution: ${(performance.now() - m).toFixed(2)}ms`), w.data) : (o.error(Error(`Analysis failed: ${w.error.message}`)), null);\n}\nasync function saveToCacheStep(e, r, t, o) {\n if (!r) return;\n let n = performance.now(), a = [];\n for (let r of e)r.taskId && a.push([\n r.taskId,\n r\n ]);\n a.length > 0 && (await r.results.setMany(a), t.debug && o.debug(`Saved ${a.length} results to cache (${(performance.now() - n).toFixed(2)}ms)`));\n}\n","import { getConfigReporter as o } from '@ngcompass/reporters';\nimport { validateConfig as r } from '@ngcompass/config';\nimport { exitWithError as e } from './exit.js';\nexport function registerConfigCommand(i, t) {\n i.command('config').description('Inspect and validate ngcompass configuration').command('health').description('Run semantic validation checks for the active configuration').option('-p, --profile <name>', 'Configuration profile to validate').action(async (i)=>{\n try {\n let a = await r({\n cache: i.cache ? t : void 0,\n profile: i.profile\n }), n = o();\n await n.renderHealthReport(a.report), a.report.valid || e();\n } catch (r) {\n let o = r instanceof Error ? r.message : String(r);\n console.error(`Error: ${o}`), e();\n }\n });\n}\n","import { createRuntimeCache as e } from '@ngcompass/cache';\nimport { getCacheReporter as o } from '@ngcompass/reporters';\nimport { resolveConfig as a } from '@ngcompass/config';\nimport r from 'picocolors';\nimport t from 'node:process';\nimport { exitWithError as i } from './exit.js';\nexport function registerCacheCommand(e, a) {\n let c = e.command('cache').description('Inspect and manage analysis cache data');\n c.command('clear').description('Clear cached data for one cache type or all cache types').option('-p, --profile <name>', 'Configuration profile used to resolve cache settings').option('--type <type>', 'Cache type to clear: ast | config | results | all', 'all').action(async (e)=>{\n let c = o();\n t.stdout.write(r.dim(' › Clearing cache...\\n'));\n let l = e.type, n = [\n 'ast',\n 'config',\n 'results',\n 'all'\n ];\n n.includes(l) || (console.error(r.red(`Invalid cache type: ${l}. Must be one of: ${n.join(', ')}`)), i());\n try {\n let o = await resolveRuntimeCache(a, {\n profile: e.profile,\n allowDisabled: !0\n });\n 'all' === l ? await o.clear() : await o.clearType(l), c.renderClearResult(l);\n } catch (e) {\n console.error(r.red('Error clearing cache:'), e), i();\n }\n }), c.command('info').description('Show cache status, size, and usage details').option('-p, --profile <name>', 'Configuration profile used to resolve cache settings').action(async (e)=>{\n let t = o();\n try {\n let o = await resolveRuntimeCache(a, {\n profile: e.profile,\n allowDisabled: !0\n }), r = await o.getInfo();\n t.renderCacheInfo(r);\n } catch (e) {\n console.error(r.red('Error getting cache info:'), e), i();\n }\n }), c.command('path').description('Print the resolved cache directory path').option('-p, --profile <name>', 'Configuration profile used to resolve cache settings').action(async (e)=>{\n let o = await resolveRuntimeCache(a, {\n profile: e.profile,\n allowDisabled: !0\n });\n t.stdout.write(`${o.getCachePath()}\\n`);\n });\n}\nasync function resolveRuntimeCache(o, r = {}) {\n let i = r.cwd ?? t.cwd();\n try {\n let t = await a({\n profile: r.profile,\n cache: o,\n cwd: i\n });\n if (!t.report.valid || !t.config) return o;\n return e(t.config, i, {\n allowDisabled: r.allowDisabled\n }) ?? o;\n } catch {\n return o;\n }\n}\n","import { getRulesReporter as e } from '@ngcompass/reporters';\nimport { getRuleListEntries as r, isBuiltinPreset as o } from '@ngcompass/rules';\nimport s from 'picocolors';\nimport { exitWithError as t } from './exit.js';\nexport function registerRulesCommand(i) {\n i.command('rules [ruleName]').description('Browse available rules or inspect details for a specific rule').option('--preset <name>', 'Filter by preset: recommended, strict, performance, reactivity, or all').action((i, l)=>{\n l.preset && !o(l.preset) && (console.error(s.red(`Unknown preset: \"${l.preset}\".`)), console.error(s.dim('Available presets: recommended, strict, all, performance, reactivity')), t());\n let n = r(), m = e({\n preset: l.preset\n });\n if (i) {\n let e = n.find((e)=>e.name === i);\n if (!e) {\n console.error(s.red(`Rule \"${i}\" not found.`)), console.error(s.dim('Run `ngcompass rules` to list available rules.')), t();\n return;\n }\n m.renderSingleRule(e);\n } else m.render(n);\n });\n}\n","import { registerInitCommand as o } from './init.js';\nimport { registerAnalyzeCommand as r } from './analyze.js';\nimport { registerConfigCommand as m } from './config.js';\nimport { registerCacheCommand as i } from './cache.js';\nimport { registerRulesCommand as t } from './rules.js';\nexport function registerCommands(s, f) {\n o(s, f), r(s, f), m(s, f), i(s, f), t(s);\n}\n","import { Command as r } from 'commander';\nimport { registerCommands as o } from '../commands/index.js';\nimport { enableDebug as e, PACKAGE_VERSION as s } from '@ngcompass/common';\nimport { createCacheContext as n } from '@ngcompass/cache';\nimport { registerAllBuiltinRules as t } from '@ngcompass/rules';\nlet restoreCursor = ()=>{\n process.stdout.isTTY && process.stdout.write('\\x1B[?25h');\n}, shutdownInProgress = !1, gracefulShutdown = async (r, o)=>{\n if (!shutdownInProgress) {\n if (shutdownInProgress = !0, restoreCursor(), r) try {\n let o = new Promise((r)=>setTimeout(r, 10_000).unref());\n await Promise.race([\n r.flush(),\n o\n ]);\n } catch {}\n process.exit(o);\n }\n};\nexport async function run() {\n let a = new r();\n a.name('ngcompass').description('Static analysis and architecture insights for Angular codebases.').version(s, '-V, --version', 'Display ngcompass version').option('--debug', 'Enable detailed debug logs across all modules').addHelpText('after', '\\nExamples:\\n $ ngcompass init\\n $ ngcompass analyze --profile strict\\n $ ngcompass cache info\\n').hook('preAction', async (r, o)=>{\n r.opts().debug && e('debug', 'all');\n let n = o.opts();\n if ('json' !== n.format && 'sarif' !== n.format && 'html' !== n.format && 'ui' !== n.format) {\n let { default: r } = await import('picocolors'), e = o.parent, n = e && 'ngcompass' !== e.name() ? e.name() : o.name(), t = process.cwd();\n process.stdout.write(`\\n${r.dim('>')} ${r.dim(`ngcompass@${s}`)} ${r.dim(n)} ${r.dim(t)}\\n${r.dim('>')} ${r.dim('ngcompass')} ${r.dim('run')}\\n\\n ${r.bgCyan(r.white(r.bold(` ${n.toUpperCase()} `)))} ${r.cyan(s)} ${r.dim(t)}\\n\\n`);\n }\n });\n let c = n();\n process.on('SIGINT', ()=>void gracefulShutdown(c, 130)), process.on('SIGTERM', ()=>void gracefulShutdown(c, 143)), process.on('uncaughtException', (r)=>{\n restoreCursor(), console.error(`\\n[ngcompass] Unexpected error: ${r.message}`), gracefulShutdown(c, 1);\n }), process.on('unhandledRejection', (r)=>{\n restoreCursor();\n let o = r instanceof Error ? r.message : String(r);\n console.error(`\\n[ngcompass] Unhandled promise rejection: ${o}`), gracefulShutdown(c, 1);\n });\n try {\n if (t(), o(a, c), !process.argv.slice(2).length) return void a.outputHelp();\n await a.parseAsync(process.argv), await c.flush(), process.exit(0);\n } catch (o) {\n restoreCursor();\n let r = o instanceof Error ? o.message : String(o);\n console.error(`[ngcompass] Fatal error: ${r}`), await gracefulShutdown(c, 1);\n }\n}\nrun().catch((r)=>{\n restoreCursor();\n let o = r instanceof Error ? r.message : String(r);\n console.error(`[ngcompass] Fatal error: ${o}`), process.exit(1);\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/commands/exit.ts","../src/commands/init.ts","../src/spinner.ts","../src/commands/analyze.ts","../src/commands/config.ts","../src/commands/cache.ts","../src/commands/rules.ts","../src/commands/index.ts","../src/bin/ngcompass.ts"],"names":["exitWithError","code","process","stdout","isTTY","write","exit","registerInitCommand","program","_cache","command","description","option","cwd","action","options","result","initConfig","force","getConfigReporter","renderInitResult","success","alreadyExists","error","console","Error","message","String","FRAMES","Spinner","timer","frameIndex","stream","start","render","setInterval","pc","cyan","dim","writeLine","line","stop","clearInterval","frame","length","normalizeReporterFormat","format","formatDuration","ms","Math","max","round","toFixed","registerAnalyzeCommand","cache","startTime","performance","now","reporter","getReporter","compact","outputPath","output","quiet","noRecommendation","recommendation","activeCache","exitCode","stats","failOnSeverity","maxWarnings","configResult","loadConfigurationStep","config","createRuntimeCache","reporterFormat","cliFormat","configFormat","outputFormat","files","discoverFilesStep","enabledRules","resolveRulesStep","plan","buildPlanStep","progressStream","stderr","spinner","logFileProgress","expectedTasksByFile","Map","filePath","tasks","map","task","filter","set","get","completedByFile","printedFiles","Set","event","count","has","accumulated","next","taskCount","issueCount","errorCount","warningCount","duration","expectedTasks","add","relativePath","path","relative","hasIssues","status","red","green","toLocaleString","analysis","runAnalysisStep","undefined","maxWorkers","summary","scannedFiles","t","skippedTasks","size","discoveredFiles","totalFiles","totalTasks","cachedTasks","precomputedAnalysis","totalErrors","totalWarnings","parseErrors","report","results","step","saveToCacheStep","flush","tStart","resolveConfig","profile","valid","issueLines","issues","issue","pathString","join","severity","toUpperCase","pluginList","plugins","configDir","loadPlugins","getGlobalRegistry","info","debug","scanResult","scan","rootDir","include","DEFAULT_INCLUDE_PATTERNS","exclude","ignorePatterns","tsConfigPath","parserOptions","project","tsconfigRootDir","resolve","respectGitignore","ok","data","effectiveConfig","rule","rules","extends","rulesResult","resolveRules","getEnabledRules","planResult","buildExecutionPlan","incremental","forceRerun","workerCount","overrides","onProgress","_workerCountForCompatibility","onFileProgress","configureRuleExecutor","executeBatchedNewEngineRules","isNewEngineRule","cliMaxWorkers","parseInt","cliChunkSize","typeAwareChunkSize","runAnalysis","skipTypeCheck","cacheEntries","taskId","push","setMany","registerConfigCommand","validateConfig","renderHealthReport","errorMessage","registerCacheCommand","cacheCmd","getCacheReporter","type","validTypes","includes","resolveRuntimeCache","allowDisabled","clear","clearType","renderClearResult","err","getInfo","renderCacheInfo","getCachePath","fallbackCache","registerRulesCommand","ruleName","opts","preset","isBuiltinPreset","entries","getRuleListEntries","getRulesReporter","find","e","name","renderSingleRule","registerCommands","restoreCursor","shutdownInProgress","gracefulShutdown","flushTimeout","Promise","setTimeout","unref","race","run","Command","version","PACKAGE_VERSION","addHelpText","hook","thisCommand","actionCommand","enableDebug","actionOpts","default","parent","commandName","bgCyan","white","bold","createCacheContext","on","reason","msg","registerAllBuiltinRules","argv","slice","outputHelp","parseAsync","catch"],"mappings":"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","file":"cli.cjs","sourcesContent":["export const exitWithError = (s = 1)=>{\n process.stdout.isTTY && process.stdout.write('\\x1B[?25h'), process.exit(s);\n};\n","import { getConfigReporter as r } from '@ngcompass/reporters';\nimport { initConfig as e } from '@ngcompass/config';\nimport { exitWithError as o } from './exit.js';\nexport function registerInitCommand(t, i) {\n t.command('init').description('Create a starter ngcompass configuration in the current project').option('-f, --force', 'Overwrite an existing configuration file').option('--cwd <path>', 'Project directory where the configuration will be created', process.cwd()).action(async (t)=>{\n try {\n let i = await e({\n cwd: t.cwd,\n force: t.force\n }), c = r();\n await c.renderInitResult(i), i.success || i.alreadyExists || o();\n } catch (r) {\n console.error(r instanceof Error ? r.message : String(r)), o();\n }\n });\n}\n","import t from 'picocolors';\nlet FRAMES = [\n '⠋',\n '⠙',\n '⠹',\n '⠸',\n '⠼',\n '⠴',\n '⠦',\n '⠧',\n '⠇',\n '⠏'\n];\nexport class Spinner {\n stream;\n timer = null;\n frameIndex = 0;\n message = '';\n isTTY;\n constructor(t){\n this.stream = t, this.isTTY = !!t.isTTY;\n }\n start(e) {\n (this.message = e, this.frameIndex = 0, this.isTTY) ? (this.stream.write('\\x1B[?25l'), this.render(), this.timer = setInterval(()=>this.render(), 80)) : this.stream.write(`${t.cyan('❯')} ${t.dim(e)}\\n`);\n }\n writeLine(t) {\n this.isTTY && this.timer ? (this.stream.write('\\r\\x1B[K'), this.stream.write(`${t}\\n`), this.render()) : this.stream.write(`${t}\\n`);\n }\n stop() {\n this.timer && (clearInterval(this.timer), this.timer = null), this.isTTY && (this.stream.write('\\r\\x1B[K'), this.stream.write('\\x1B[?25h'));\n }\n render() {\n let e = t.cyan(FRAMES[this.frameIndex % FRAMES.length]);\n this.frameIndex++, this.stream.write(`\\r${e} ${t.dim(this.message)}`);\n }\n}\n","import e from 'node:path';\nimport r from 'picocolors';\nimport { DEFAULT_INCLUDE_PATTERNS as t } from '@ngcompass/common';\nimport { getReporter as o } from '@ngcompass/reporters';\nimport n from 'node:process';\nimport { createRuntimeCache as a } from '@ngcompass/cache';\nimport { exitWithError as i } from './exit.js';\nimport { Spinner as s } from '../spinner.js';\nimport { getGlobalRegistry as l, executeBatchedNewEngineRules as u, isNewEngineRule as p, resolveRules as c, getEnabledRules as m } from '@ngcompass/rules';\nimport { loadPlugins as f, resolveConfig as d } from '@ngcompass/config';\nimport { runAnalysis as g, configureRuleExecutor as h } from '@ngcompass/engine';\nimport { buildExecutionPlan as w } from '@ngcompass/planner';\nimport { scan as k } from '@ngcompass/scanner';\nfunction normalizeReporterFormat(e) {\n return 'ui' === e ? 'html' : e ?? 'console';\n}\nfunction formatDuration(e) {\n return e < 1000 ? `${Math.max(0, Math.round(e))}ms` : `${(e / 1000).toFixed(1)}s`;\n}\nexport function registerAnalyzeCommand(t, l) {\n t.command('analyze').description('Analyze your project and report rule violations and architecture risks').option('-p, --profile <name>', 'Configuration profile to run').option('--force', 'Ignore cached results and re-run all checks').option('--format <fmt>', 'Reporter format: console | json | sarif | html | ui').option('--compact', 'Use compact, ESLint-style output').option('-q, --quiet', 'Show summary counts only, suppress violation details').option('--no-recommendation', 'Suppress fix recommendations from output').option('--output <path>', 'Output path for UI reports (default: ngcompass-report.html)').option('--rule <id>', 'Run only one rule (useful for debugging or focused checks)').option('--max-workers <n>', 'Cap the number of worker threads (lower = less memory, e.g. --max-workers 2)').option('--type-aware-chunk-size <n>', 'Files per type-aware chunk (default 400; lower = less peak memory)').option('--skip-type-check', 'Skip rules that require the TypeScript type checker (fastest, lowest memory)').action(async (t)=>{\n let u = performance.now(), p = o(normalizeReporterFormat(t.format), {\n compact: !!t.compact,\n outputPath: t.output,\n quiet: !!t.quiet,\n noRecommendation: !1 === t.recommendation\n }), c = l, m = 0;\n try {\n var f;\n let i, d, g = await loadConfigurationStep(t, l, p);\n if (!g) {\n m = 1;\n return;\n }\n let { config: h } = g;\n c = a(h, n.cwd());\n let w = function(e, r) {\n if (e) return normalizeReporterFormat(e);\n switch(r){\n case 'json':\n return 'json';\n case 'sarif':\n return 'sarif';\n case 'html':\n return 'html';\n default:\n return 'console';\n }\n }(t.format, h.outputFormat);\n p = o(w, {\n compact: !!t.compact,\n outputPath: t.output ?? h.outputPath,\n quiet: !!t.quiet,\n noRecommendation: !1 === t.recommendation\n });\n let k = await discoverFilesStep(h, t, c, p);\n if (!k) {\n m = 1;\n return;\n }\n let y = await resolveRulesStep(h, t, p);\n if (!y) {\n m = 1;\n return;\n }\n let $ = await buildPlanStep(k, y, c, t, p, h);\n if (!$) {\n m = 1;\n return;\n }\n let v = 'console' === w ? n.stdout : n.stderr, C = new s(v);\n C.start('Running analysis...');\n let x = function(t, o, n) {\n let a = new Map();\n for (let e of t.tasks.map((e)=>e.filePath).filter((e)=>'string' == typeof e && e.length > 0))a.set(e, (a.get(e) ?? 0) + 1);\n let i = new Map(), s = new Set();\n return (t)=>{\n var l;\n if (s.has(t.filePath)) return;\n let u = i.get(t.filePath), p = u ? {\n filePath: t.filePath,\n taskCount: u.taskCount + t.taskCount,\n issueCount: u.issueCount + t.issueCount,\n errorCount: u.errorCount + t.errorCount,\n warningCount: u.warningCount + t.warningCount,\n duration: u.duration + t.duration\n } : t;\n i.set(t.filePath, p);\n let c = a.get(t.filePath) ?? p.taskCount;\n if (p.taskCount < c) return;\n s.add(t.filePath);\n let m = e.relative(n, t.filePath) || t.filePath, f = p.issueCount > 0, d = f ? r.red('❯') : r.green('❯'), g = f ? r.red(formatDuration(p.duration)) : r.green(formatDuration(p.duration));\n o(f ? `${d} ${r.red(m)} ${g} ${r.red((l = p.issueCount, `${l.toLocaleString()} issue${1 === l ? '' : 's'}`))}` : `${d} ${r.dim(m)} ${g}`);\n };\n }($, (e)=>C.writeLine(e), n.cwd()), S = await runAnalysisStep($, c, t, p, k, h, void 0, h.maxWorkers, x);\n if (C.stop(), !S) {\n m = 1;\n return;\n }\n let F = performance.now() - u, P = {\n scannedFiles: new Set([\n ...$.tasks.map((e)=>e.filePath),\n ...($.skippedTasks ?? []).map((e)=>e.filePath)\n ]).size,\n discoveredFiles: k.length,\n totalFiles: S.stats.totalFiles,\n totalTasks: $.tasks.length + ($.skippedTasks?.length ?? 0),\n cachedTasks: $.precomputedAnalysis ? $.tasks.length : void 0,\n totalErrors: S.stats.totalErrors,\n totalWarnings: S.stats.totalWarnings,\n failOnSeverity: h.failOnSeverity,\n maxWarnings: h.maxWarnings,\n duration: F\n };\n 'console' === w && p.summary(P), p.parseErrors(S.parseErrors), p.report(S.results), 'console' !== w && (p.step('❯ Writing report...'), p.summary(P)), $.precomputedAnalysis || await saveToCacheStep(S.results, c, t, p), f = S.stats, i = h.failOnSeverity ?? 'error', d = h.maxWarnings ?? 10, (f.totalErrors > 0 || 'warn' === i && f.totalWarnings > 0 || f.totalWarnings > d) && (m = 1);\n } catch (e) {\n p.error(e), m = 1;\n } finally{\n c && c !== l && await c.flush(), 0 !== m && i(m);\n }\n });\n}\nasync function loadConfigurationStep(e, r, t) {\n let o = performance.now();\n t.step('❯ Loading configuration...');\n let a = await d({\n profile: e.profile,\n cache: r,\n cwd: n.cwd()\n });\n if (!a.report.valid) {\n let e = a.report.issues.map((e)=>{\n let r = e.path?.join('.') || 'root';\n return `[${e.severity.toUpperCase()}] ${r}: ${e.message}`;\n });\n return t.error(Error([\n 'Configuration validation failed',\n ...e\n ].join('\\n'))), null;\n }\n if (!a.config) return t.error(Error('No configuration found')), null;\n let i = a.config.plugins;\n if (i && i.length > 0) {\n t.step(`❯ Loading ${i.length} plugin(s)...`);\n let e = n.cwd();\n await f(i, e, l()), t.info(`Loaded ${i.length} plugin(s)`);\n }\n return t.debug(`Config resolve: ${(performance.now() - o).toFixed(2)}ms`), {\n config: a.config\n };\n}\nasync function discoverFilesStep(r, o, a, i) {\n let s = performance.now();\n i.step('❯ Discovering files...');\n let l = await k({\n rootDir: n.cwd(),\n include: r.include ?? [\n ...t\n ],\n exclude: r.exclude ?? [],\n ignorePatterns: r.ignorePatterns,\n tsConfigPath: function(r, t) {\n if (!r?.project) return;\n let o = r.tsconfigRootDir ? e.resolve(t, r.tsconfigRootDir) : t;\n return e.resolve(o, r.project);\n }(r.parserOptions, n.cwd()),\n respectGitignore: !0,\n debug: o.debug,\n cache: a\n });\n return l.ok ? (i.info(`❯ Found ${l.data.files.length} files in ${(performance.now() - s).toFixed(0)}ms`), i.debug(`File discovery: ${(performance.now() - s).toFixed(2)}ms`), l.data.files) : (i.error(Error(`File discovery failed: ${l.error.message}`)), null);\n}\nasync function resolveRulesStep(e, r, t) {\n let o = performance.now();\n t.step('❯ Loading rules...');\n let n = e;\n r.rule && (t.info(`Filtering analysis to single rule: ${r.rule}`), n = {\n ...e,\n rules: {\n [r.rule]: 'error'\n },\n extends: []\n });\n let a = await c(n);\n if (!a.ok) return t.error(Error(`Rule resolution failed: ${a.error.message}`)), null;\n let i = m(a.data.rules);\n return t.info(`❯ Loaded ${i.size} active rules in ${(performance.now() - o).toFixed(0)}ms`), t.debug(`Rule resolution: ${(performance.now() - o).toFixed(2)}ms`), i;\n}\nasync function buildPlanStep(e, r, t, o, a, i) {\n let s = performance.now();\n a.step('❯ Planning analysis...');\n let l = await w({\n files: e,\n rules: r,\n rootDir: n.cwd(),\n cache: t,\n debug: o.debug,\n incremental: o.force ? {\n forceRerun: !0\n } : void 0,\n workerCount: i.maxWorkers,\n overrides: i.overrides\n });\n return l.ok ? (l.data.precomputedAnalysis ? a.info('❯ Reused cached analysis plan') : a.info(`❯ Prepared ${l.data.tasks.length.toLocaleString()} checks in ${(performance.now() - s).toFixed(0)}ms`), a.debug(`Plan build: ${(performance.now() - s).toFixed(2)}ms`), l.data) : (a.error(Error(`Execution plan building failed: ${l.error.message}`)), null);\n}\nasync function runAnalysisStep(e, r, t, o, a, i, s, l, c) {\n let m = performance.now();\n h(u, p);\n let f = t.maxWorkers ? parseInt(t.maxWorkers, 10) : void 0, d = t.typeAwareChunkSize ? parseInt(t.typeAwareChunkSize, 10) : void 0, w = await g(e, {\n rootDir: n.cwd(),\n cache: r,\n debug: t.debug,\n files: a,\n maxWorkers: f ?? i?.maxWorkers,\n typeAwareChunkSize: d,\n skipTypeCheck: t.skipTypeCheck,\n parserOptions: i?.parserOptions,\n onProgress: s,\n onFileProgress: c\n });\n return w.ok ? (o.debug(`Execution: ${(performance.now() - m).toFixed(2)}ms`), w.data) : (o.error(Error(`Analysis failed: ${w.error.message}`)), null);\n}\nasync function saveToCacheStep(e, r, t, o) {\n if (!r) return;\n let n = performance.now(), a = [];\n for (let r of e)r.taskId && a.push([\n r.taskId,\n r\n ]);\n a.length > 0 && (await r.results.setMany(a), t.debug && o.debug(`Saved ${a.length} results to cache (${(performance.now() - n).toFixed(2)}ms)`));\n}\n","import { getConfigReporter as o } from '@ngcompass/reporters';\nimport { validateConfig as r } from '@ngcompass/config';\nimport { exitWithError as e } from './exit.js';\nexport function registerConfigCommand(i, t) {\n i.command('config').description('Inspect and validate ngcompass configuration').command('health').description('Run semantic validation checks for the active configuration').option('-p, --profile <name>', 'Configuration profile to validate').action(async (i)=>{\n try {\n let a = await r({\n cache: i.cache ? t : void 0,\n profile: i.profile\n }), n = o();\n await n.renderHealthReport(a.report), a.report.valid || e();\n } catch (r) {\n let o = r instanceof Error ? r.message : String(r);\n console.error(`Error: ${o}`), e();\n }\n });\n}\n","import { createRuntimeCache as e } from '@ngcompass/cache';\nimport { getCacheReporter as o } from '@ngcompass/reporters';\nimport { resolveConfig as a } from '@ngcompass/config';\nimport r from 'picocolors';\nimport t from 'node:process';\nimport { exitWithError as i } from './exit.js';\nexport function registerCacheCommand(e, a) {\n let c = e.command('cache').description('Inspect and manage analysis cache data');\n c.command('clear').description('Clear cached data for one cache type or all cache types').option('-p, --profile <name>', 'Configuration profile used to resolve cache settings').option('--type <type>', 'Cache type to clear: ast | config | results | all', 'all').action(async (e)=>{\n let c = o();\n t.stdout.write(r.dim(' › Clearing cache...\\n'));\n let l = e.type, n = [\n 'ast',\n 'config',\n 'results',\n 'all'\n ];\n n.includes(l) || (console.error(r.red(`Invalid cache type: ${l}. Must be one of: ${n.join(', ')}`)), i());\n try {\n let o = await resolveRuntimeCache(a, {\n profile: e.profile,\n allowDisabled: !0\n });\n 'all' === l ? await o.clear() : await o.clearType(l), c.renderClearResult(l);\n } catch (e) {\n console.error(r.red('Error clearing cache:'), e), i();\n }\n }), c.command('info').description('Show cache status, size, and usage details').option('-p, --profile <name>', 'Configuration profile used to resolve cache settings').action(async (e)=>{\n let t = o();\n try {\n let o = await resolveRuntimeCache(a, {\n profile: e.profile,\n allowDisabled: !0\n }), r = await o.getInfo();\n t.renderCacheInfo(r);\n } catch (e) {\n console.error(r.red('Error getting cache info:'), e), i();\n }\n }), c.command('path').description('Print the resolved cache directory path').option('-p, --profile <name>', 'Configuration profile used to resolve cache settings').action(async (e)=>{\n let o = await resolveRuntimeCache(a, {\n profile: e.profile,\n allowDisabled: !0\n });\n t.stdout.write(`${o.getCachePath()}\\n`);\n });\n}\nasync function resolveRuntimeCache(o, r = {}) {\n let i = r.cwd ?? t.cwd();\n try {\n let t = await a({\n profile: r.profile,\n cache: o,\n cwd: i\n });\n if (!t.report.valid || !t.config) return o;\n return e(t.config, i, {\n allowDisabled: r.allowDisabled\n }) ?? o;\n } catch {\n return o;\n }\n}\n","import { getRulesReporter as e } from '@ngcompass/reporters';\nimport { getRuleListEntries as r, isBuiltinPreset as o } from '@ngcompass/rules';\nimport s from 'picocolors';\nimport { exitWithError as t } from './exit.js';\nexport function registerRulesCommand(i) {\n i.command('rules [ruleName]').description('Browse available rules or inspect details for a specific rule').option('--preset <name>', 'Filter by preset: recommended, strict, performance, reactivity, or all').action((i, l)=>{\n l.preset && !o(l.preset) && (console.error(s.red(`Unknown preset: \"${l.preset}\".`)), console.error(s.dim('Available presets: recommended, strict, all, performance, reactivity')), t());\n let n = r(), m = e({\n preset: l.preset\n });\n if (i) {\n let e = n.find((e)=>e.name === i);\n if (!e) {\n console.error(s.red(`Rule \"${i}\" not found.`)), console.error(s.dim('Run `ngcompass rules` to list available rules.')), t();\n return;\n }\n m.renderSingleRule(e);\n } else m.render(n);\n });\n}\n","import { registerInitCommand as o } from './init.js';\nimport { registerAnalyzeCommand as r } from './analyze.js';\nimport { registerConfigCommand as m } from './config.js';\nimport { registerCacheCommand as i } from './cache.js';\nimport { registerRulesCommand as t } from './rules.js';\nexport function registerCommands(s, f) {\n o(s, f), r(s, f), m(s, f), i(s, f), t(s);\n}\n","import { Command as r } from 'commander';\nimport { registerCommands as o } from '../commands/index.js';\nimport { enableDebug as e, PACKAGE_VERSION as s } from '@ngcompass/common';\nimport { createCacheContext as n } from '@ngcompass/cache';\nimport { registerAllBuiltinRules as t } from '@ngcompass/rules';\nlet restoreCursor = ()=>{\n process.stdout.isTTY && process.stdout.write('\\x1B[?25h');\n}, shutdownInProgress = !1, gracefulShutdown = async (r, o)=>{\n if (!shutdownInProgress) {\n if (shutdownInProgress = !0, restoreCursor(), r) try {\n let o = new Promise((r)=>setTimeout(r, 10_000).unref());\n await Promise.race([\n r.flush(),\n o\n ]);\n } catch {}\n process.exit(o);\n }\n};\nexport async function run() {\n let a = new r();\n a.name('ngcompass').description('Static analysis and architecture insights for Angular codebases.').version(s, '-V, --version', 'Display ngcompass version').option('--debug', 'Enable detailed debug logs across all modules').addHelpText('after', '\\nExamples:\\n $ ngcompass init\\n $ ngcompass analyze --profile strict\\n $ ngcompass cache info\\n').hook('preAction', async (r, o)=>{\n r.opts().debug && e('debug', 'all');\n let n = o.opts();\n if ('json' !== n.format && 'sarif' !== n.format && 'html' !== n.format && 'ui' !== n.format) {\n let { default: r } = await import('picocolors'), e = o.parent, n = e && 'ngcompass' !== e.name() ? e.name() : o.name(), t = process.cwd();\n process.stdout.write(`\\n${r.dim('>')} ${r.dim(`ngcompass@${s}`)} ${r.dim(n)} ${r.dim(t)}\\n${r.dim('>')} ${r.dim('ngcompass')} ${r.dim('run')}\\n\\n ${r.bgCyan(r.white(r.bold(` ${n.toUpperCase()} `)))} ${r.cyan(s)} ${r.dim(t)}\\n\\n`);\n }\n });\n let c = n();\n process.on('SIGINT', ()=>void gracefulShutdown(c, 130)), process.on('SIGTERM', ()=>void gracefulShutdown(c, 143)), process.on('uncaughtException', (r)=>{\n restoreCursor(), console.error(`\\n[ngcompass] Unexpected error: ${r.message}`), gracefulShutdown(c, 1);\n }), process.on('unhandledRejection', (r)=>{\n restoreCursor();\n let o = r instanceof Error ? r.message : String(r);\n console.error(`\\n[ngcompass] Unhandled promise rejection: ${o}`), gracefulShutdown(c, 1);\n });\n try {\n if (t(), o(a, c), !process.argv.slice(2).length) return void a.outputHelp();\n await a.parseAsync(process.argv), await c.flush(), process.exit(0);\n } catch (o) {\n restoreCursor();\n let r = o instanceof Error ? o.message : String(o);\n console.error(`[ngcompass] Fatal error: ${r}`), await gracefulShutdown(c, 1);\n }\n}\nrun().catch((r)=>{\n restoreCursor();\n let o = r instanceof Error ? r.message : String(r);\n console.error(`[ngcompass] Fatal error: ${o}`), process.exit(1);\n});\n"]}
|