ngcompass 0.1.2-beta → 0.1.3-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/dist/index.js.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","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":"index.js","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","update","writeLine","line","stop","clearInterval","frame","length","PERFORMANCE_MODE_PRESETS","eco","typeAwareConcurrency","typeAwareFileConcurrency","typeAwareChunkSize","typeAwareIsolation","typeAwareChunkStrategy","balanced","turbo","PERFORMANCE_MODES","Object","keys","TYPE_AWARE_ISOLATION_MODES","TYPE_AWARE_CHUNK_STRATEGIES","parsePositiveIntegerOption","value","optionName","undefined","parsed","Number","isInteger","normalizeReporterFormat","format","formatDuration","ms","Math","max","round","toFixed","pluralise","count","singular","toLocaleString","formatAnalysisProgressMessage","mode","completed","total","registerAnalyzeCommand","cache","addOption","Option","hideHelp","startTime","performance","now","reporter","getReporter","compact","outputPath","output","quiet","noRecommendation","recommendation","activeCache","exitCode","stats","preset","cliMaxWorkers","cliChunkSize","cliTypeAwareConcurrency","cliTypeAwareFileConcurrency","failOnSeverity","maxWarnings","configResult","loadConfigurationStep","config","performanceOptions","includes","join","maxWorkers","createRuntimeCache","reporterFormat","cliFormat","configFormat","outputFormat","files","discoverFilesStep","enabledRules","resolveRulesStep","plan","buildPlanStep","progressStream","stderr","spinner","totalChecks","tasks","skippedTasks","logFileProgress","syntaxExpected","Map","typeAwareExpected","task","fp","filePath","needsTypeChecker","needsProjectContext","set","get","syntaxDone","typeAwareDone","syntaxLinePrinted","Set","finalLinePrinted","accumulate","map","event","prev","next","taskCount","issueCount","errorCount","warningCount","duration","printFinalLine","acc","has","add","relativePath","path","relative","hasIssues","status","red","green","dur","typeAware","expected","syntaxAcc","totalExpected","analysis","runAnalysisStep","summary","scannedFiles","t","size","discoveredFiles","totalFiles","totalTasks","cachedTasks","precomputedAnalysis","totalErrors","totalWarnings","parseErrors","report","results","step","saveToCacheStep","flush","tStart","resolveConfig","profile","valid","issueLines","issues","issue","pathString","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","onFileProgress","configureRuleExecutor","executeBatchedNewEngineRules","isNewEngineRule","runAnalysis","skipTypeCheck","cacheEntries","taskId","push","setMany","registerConfigCommand","validateConfig","renderHealthReport","errorMessage","registerCacheCommand","cacheCmd","getCacheReporter","type","validTypes","resolveRuntimeCache","allowDisabled","clear","clearType","renderClearResult","err","getInfo","renderCacheInfo","getCachePath","fallbackCache","registerRulesCommand","ruleName","opts","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":"index.js","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 update(t) {\n this.message = t, this.isTTY && this.timer && this.render();\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\\x1B[K${e} ${t.dim(this.message)}`);\n }\n}\n","import { Option as e } from 'commander';\nimport r from 'node:path';\nimport t from 'picocolors';\nimport { DEFAULT_INCLUDE_PATTERNS as o } from '@ngcompass/common';\nimport { getReporter as n } from '@ngcompass/reporters';\nimport a from 'node:process';\nimport { createRuntimeCache as i } from '@ngcompass/cache';\nimport { exitWithError as s } from './exit.js';\nimport { Spinner as u } from '../spinner.js';\nimport { getGlobalRegistry as l, executeBatchedNewEngineRules as p, isNewEngineRule as c, resolveRules as d, getEnabledRules as m } from '@ngcompass/rules';\nimport { loadPlugins as f, resolveConfig as y } from '@ngcompass/config';\nimport { runAnalysis as g, configureRuleExecutor as w } from '@ngcompass/engine';\nimport { buildExecutionPlan as C } from '@ngcompass/planner';\nimport { scan as h } from '@ngcompass/scanner';\nlet PERFORMANCE_MODE_PRESETS = {\n eco: {\n typeAwareConcurrency: 1,\n typeAwareFileConcurrency: 1,\n typeAwareChunkSize: 100,\n typeAwareIsolation: 'auto',\n typeAwareChunkStrategy: 'dependency'\n },\n balanced: {\n typeAwareConcurrency: 2,\n typeAwareFileConcurrency: 2,\n typeAwareChunkSize: 300,\n typeAwareIsolation: 'auto',\n typeAwareChunkStrategy: 'simple'\n },\n turbo: {\n typeAwareConcurrency: 2,\n typeAwareFileConcurrency: 4,\n typeAwareChunkSize: 500,\n typeAwareIsolation: 'off',\n typeAwareChunkStrategy: 'simple'\n }\n}, PERFORMANCE_MODES = Object.keys(PERFORMANCE_MODE_PRESETS), TYPE_AWARE_ISOLATION_MODES = [\n 'auto',\n 'process',\n 'off'\n], TYPE_AWARE_CHUNK_STRATEGIES = [\n 'dependency',\n 'simple'\n];\nfunction parsePositiveIntegerOption(e, r) {\n if (void 0 === e) return;\n let t = Number(e);\n if (!Number.isInteger(t) || t < 1) throw Error(`${r} must be a positive integer.`);\n return t;\n}\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}\nfunction pluralise(e, r) {\n return `${e.toLocaleString()} ${r}${1 === e ? '' : 's'}`;\n}\nfunction formatAnalysisProgressMessage(e, r, t) {\n return `Running analysis in ${e} mode: ${r.toLocaleString()}/${t.toLocaleString()} checks complete...`;\n}\nexport function registerAnalyzeCommand(o, l) {\n o.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('--mode <mode>', 'Performance mode: eco | balanced | turbo (default: balanced)', 'balanced').option('--max-workers <n>', 'Cap the number of worker threads (lower = less memory, e.g. --max-workers 2)').addOption(new e('--type-aware-chunk-size <n>', 'Files per type-aware chunk').hideHelp()).addOption(new e('--type-aware-concurrency <n>', 'Concurrent type-aware chunks').hideHelp()).addOption(new e('--type-aware-file-concurrency <n>', 'Concurrent files per type-aware chunk').hideHelp()).addOption(new e('--type-aware-isolation <mode>', 'Type-aware isolation: auto | process | off').hideHelp()).addOption(new e('--type-aware-chunk-strategy <mode>', 'Type-aware chunk ordering: dependency | simple').hideHelp()).option('--skip-type-check', 'Skip rules that require the TypeScript type checker (fastest, lowest memory)').action(async (e)=>{\n let o = performance.now(), p = n(normalizeReporterFormat(e.format), {\n compact: !!e.compact,\n outputPath: e.output,\n quiet: !!e.quiet,\n noRecommendation: !1 === e.recommendation\n }), c = l, d = 0;\n try {\n var m;\n let s, f, y, g, w, C, h, k = await loadConfigurationStep(e, l, p);\n if (!k) {\n d = 1;\n return;\n }\n let { config: A } = k, E = (s = PERFORMANCE_MODE_PRESETS[function(e) {\n let r = e ?? 'balanced';\n if (!PERFORMANCE_MODES.includes(r)) throw Error(`Invalid performance mode \"${r}\". Expected one of: ${PERFORMANCE_MODES.join(', ')}.`);\n return r;\n }(e.mode)], f = parsePositiveIntegerOption(e.maxWorkers, '--max-workers'), y = parsePositiveIntegerOption(e.typeAwareChunkSize, '--type-aware-chunk-size'), g = parsePositiveIntegerOption(e.typeAwareConcurrency, '--type-aware-concurrency'), w = parsePositiveIntegerOption(e.typeAwareFileConcurrency, '--type-aware-file-concurrency'), {\n maxWorkers: f ?? A.maxWorkers,\n typeAwareChunkSize: y ?? s.typeAwareChunkSize,\n typeAwareConcurrency: g ?? s.typeAwareConcurrency,\n typeAwareFileConcurrency: w ?? s.typeAwareFileConcurrency,\n typeAwareIsolation: function(e) {\n if (void 0 !== e) {\n if (!TYPE_AWARE_ISOLATION_MODES.includes(e)) throw Error(`Invalid --type-aware-isolation \"${e}\". Expected one of: ${TYPE_AWARE_ISOLATION_MODES.join(', ')}.`);\n return e;\n }\n }(e.typeAwareIsolation) ?? s.typeAwareIsolation,\n typeAwareChunkStrategy: function(e) {\n if (void 0 !== e) {\n if (!TYPE_AWARE_CHUNK_STRATEGIES.includes(e)) throw Error(`Invalid --type-aware-chunk-strategy \"${e}\". Expected one of: ${TYPE_AWARE_CHUNK_STRATEGIES.join(', ')}.`);\n return e;\n }\n }(e.typeAwareChunkStrategy) ?? s.typeAwareChunkStrategy\n });\n c = i(A, a.cwd());\n let S = 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 }(e.format, A.outputFormat);\n p = n(S, {\n compact: !!e.compact,\n outputPath: e.output ?? A.outputPath,\n quiet: !!e.quiet,\n noRecommendation: !1 === e.recommendation\n });\n let $ = await discoverFilesStep(A, e, c, p);\n if (!$) {\n d = 1;\n return;\n }\n let v = await resolveRulesStep(A, e, p);\n if (!v) {\n d = 1;\n return;\n }\n let P = await buildPlanStep($, v, c, e, p, A, E.maxWorkers);\n if (!P) {\n d = 1;\n return;\n }\n let R = 'console' === S ? a.stdout : a.stderr, F = new u(R), O = P.tasks.length + (P.skippedTasks?.length ?? 0), x = e.mode ?? 'balanced';\n F.start(formatAnalysisProgressMessage(x, 0, O));\n let b = function(e, o, n) {\n let a = new Map(), i = new Map();\n for (let r of e.tasks){\n let e = r.filePath;\n 'string' == typeof e && 0 !== e.length && (r.needsTypeChecker || r.needsProjectContext ? i.set(e, (i.get(e) ?? 0) + 1) : a.set(e, (a.get(e) ?? 0) + 1));\n }\n let s = new Map(), u = new Map(), l = new Set(), p = new Set(), c = (e, r)=>{\n let t = e.get(r.filePath), o = t ? {\n taskCount: t.taskCount + r.taskCount,\n issueCount: t.issueCount + r.issueCount,\n errorCount: t.errorCount + r.errorCount,\n warningCount: t.warningCount + r.warningCount,\n duration: t.duration + r.duration\n } : {\n taskCount: r.taskCount,\n issueCount: r.issueCount,\n errorCount: r.errorCount,\n warningCount: r.warningCount,\n duration: r.duration\n };\n return e.set(r.filePath, o), o;\n }, d = (e, a)=>{\n if (p.has(e)) return;\n p.add(e);\n let i = r.relative(n, e) || e, s = a.issueCount > 0, u = s ? t.red('❯') : t.green('❯'), l = s ? t.red(formatDuration(a.duration)) : t.green(formatDuration(a.duration));\n o(s ? `${u} ${t.red(i)} ${l} ${t.red(pluralise(a.issueCount, 'issue'))}` : `${u} ${t.dim(i)} ${l}`);\n };\n return (e)=>{\n let m = e.filePath;\n if (!p.has(m)) if (!1 === e.typeAware) {\n let u = c(s, e), f = a.get(m) ?? u.taskCount;\n if (u.taskCount < f) return;\n i.has(m) ? ((e, a)=>{\n if (l.has(e) || p.has(e)) return;\n l.add(e);\n let i = r.relative(n, e) || e, s = a.issueCount > 0, u = s ? t.red('❯') : t.green('❯'), c = s ? t.red(formatDuration(a.duration)) : t.green(formatDuration(a.duration));\n o(s ? `${u} ${t.red(i)} ${c} ${t.red(pluralise(a.issueCount, 'issue'))}` : `${u} ${t.dim(i)} ${c}`);\n })(m, u) : d(m, u);\n } else if (!0 === e.typeAware) {\n let r = c(u, e), t = i.get(m) ?? r.taskCount;\n if (r.taskCount < t) return;\n let o = s.get(m);\n d(m, o ? {\n taskCount: o.taskCount + r.taskCount,\n issueCount: o.issueCount + r.issueCount,\n errorCount: o.errorCount + r.errorCount,\n warningCount: o.warningCount + r.warningCount,\n duration: o.duration + r.duration\n } : r);\n } else {\n let r = (a.get(m) ?? 0) + (i.get(m) ?? 0), t = c(s, e);\n if (t.taskCount < (r || t.taskCount)) return;\n d(m, t);\n }\n };\n }(P, (e)=>F.writeLine(e), a.cwd()), T = await runAnalysisStep(P, c, E, e, p, $, A, (e, r)=>{\n F.update(formatAnalysisProgressMessage(x, e, r));\n }, b);\n if (F.stop(), !T) {\n d = 1;\n return;\n }\n let I = performance.now() - o, _ = {\n scannedFiles: new Set([\n ...P.tasks.map((e)=>e.filePath),\n ...(P.skippedTasks ?? []).map((e)=>e.filePath)\n ]).size,\n discoveredFiles: $.length,\n totalFiles: T.stats.totalFiles,\n totalTasks: P.tasks.length + (P.skippedTasks?.length ?? 0),\n cachedTasks: P.precomputedAnalysis ? P.tasks.length : void 0,\n totalErrors: T.stats.totalErrors,\n totalWarnings: T.stats.totalWarnings,\n failOnSeverity: A.failOnSeverity,\n maxWarnings: A.maxWarnings,\n duration: I\n };\n 'console' === S && p.summary(_), p.parseErrors(T.parseErrors), p.report(T.results), 'console' !== S && (p.step('❯ Writing report...'), p.summary(_)), P.precomputedAnalysis || await saveToCacheStep(T.results, c, e, p), m = T.stats, C = A.failOnSeverity ?? 'error', h = A.maxWarnings ?? 10, (m.totalErrors > 0 || 'warn' === C && m.totalWarnings > 0 || m.totalWarnings > h) && (d = 1);\n } catch (e) {\n p.error(e), d = 1;\n } finally{\n c && c !== l && await c.flush(), 0 !== d && s(d);\n }\n });\n}\nasync function loadConfigurationStep(e, r, t) {\n let o = performance.now();\n t.step('❯ Loading configuration...');\n let n = await y({\n profile: e.profile,\n cache: r,\n cwd: a.cwd()\n });\n if (!n.report.valid) {\n let e = n.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 (!n.config) return t.error(Error('No configuration found')), null;\n let i = n.config.plugins;\n if (i && i.length > 0) {\n t.step(`❯ Loading ${i.length} plugin(s)...`);\n let e = a.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: n.config\n };\n}\nasync function discoverFilesStep(e, t, n, i) {\n let s = performance.now();\n i.step('❯ Discovering files...');\n let u = await h({\n rootDir: a.cwd(),\n include: e.include ?? [\n ...o\n ],\n exclude: e.exclude ?? [],\n ignorePatterns: e.ignorePatterns,\n tsConfigPath: function(e, t) {\n if (!e?.project) return;\n let o = e.tsconfigRootDir ? r.resolve(t, e.tsconfigRootDir) : t;\n return r.resolve(o, e.project);\n }(e.parserOptions, a.cwd()),\n respectGitignore: !0,\n debug: t.debug,\n cache: n\n });\n return u.ok ? (i.info(`❯ Found ${u.data.files.length} files in ${(performance.now() - s).toFixed(0)}ms`), i.debug(`File discovery: ${(performance.now() - s).toFixed(2)}ms`), u.data.files) : (i.error(Error(`File discovery failed: ${u.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 d(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, n, i, s) {\n let u = performance.now();\n n.step('❯ Planning analysis...');\n let l = await C({\n files: e,\n rules: r,\n rootDir: a.cwd(),\n cache: t,\n debug: o.debug,\n incremental: o.force ? {\n forceRerun: !0\n } : void 0,\n workerCount: s,\n overrides: i.overrides\n });\n return l.ok ? (l.data.precomputedAnalysis ? n.info('❯ Reused cached analysis plan') : n.info(`❯ Prepared ${l.data.tasks.length.toLocaleString()} checks in ${(performance.now() - u).toFixed(0)}ms`), n.debug(`Plan build: ${(performance.now() - u).toFixed(2)}ms`), l.data) : (n.error(Error(`Execution plan building failed: ${l.error.message}`)), null);\n}\nasync function runAnalysisStep(e, r, t, o, n, i, s, u, l) {\n let d = performance.now();\n w(p, c);\n let m = await g(e, {\n rootDir: a.cwd(),\n cache: r,\n debug: o.debug,\n files: i,\n maxWorkers: t.maxWorkers,\n typeAwareChunkSize: t.typeAwareChunkSize,\n typeAwareConcurrency: t.typeAwareConcurrency,\n typeAwareFileConcurrency: t.typeAwareFileConcurrency,\n typeAwareIsolation: t.typeAwareIsolation,\n typeAwareChunkStrategy: t.typeAwareChunkStrategy,\n skipTypeCheck: o.skipTypeCheck,\n parserOptions: s?.parserOptions,\n onProgress: u,\n onFileProgress: l\n });\n return m.ok ? (n.debug(`Execution: ${(performance.now() - d).toFixed(2)}ms`), m.data) : (n.error(Error(`Analysis failed: ${m.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"]}
package/package.json CHANGED
@@ -1,65 +1,66 @@
1
- {
2
- "name": "ngcompass",
3
- "version": "0.1.2-beta",
4
- "description": "Command line interface for ngcompass",
5
- "sideEffects": false,
6
- "bin": {
7
- "ngcompass": "./dist/cli.js"
8
- },
9
- "main": "./dist/index.cjs",
10
- "module": "./dist/index.js",
11
- "types": "./dist/index.d.ts",
12
- "type": "module",
13
- "engines": {
14
- "node": "^20.19.0 || >=22.12.0"
15
- },
16
- "exports": {
17
- ".": {
18
- "types": "./dist/index.d.ts",
19
- "import": "./dist/index.js",
20
- "require": "./dist/index.cjs"
21
- }
22
- },
23
- "files": [
24
- "dist",
25
- "README.md"
26
- ],
27
- "dependencies": {
28
- "commander": "^11.0.0",
29
- "picocolors": "^1.1.1",
30
- "@ngcompass/reporters": "0.1.2-beta",
31
- "@ngcompass/common": "0.1.2-beta",
32
- "@ngcompass/config": "0.1.2-beta",
33
- "@ngcompass/cache": "0.1.2-beta",
34
- "@ngcompass/rules": "0.1.2-beta",
35
- "@ngcompass/engine": "0.1.2-beta",
36
- "@ngcompass/planner": "0.1.2-beta",
37
- "@ngcompass/scanner": "0.1.2-beta",
38
- "@ngcompass/ast": "0.1.2-beta"
39
- },
40
- "keywords": [
41
- "angular",
42
- "analysis",
43
- "cli"
44
- ],
45
- "author": "ngcompass",
46
- "license": "MIT",
47
- "publishConfig": {
48
- "access": "public"
49
- },
50
- "devDependencies": {
51
- "@types/node": "^25.1.0",
52
- "typescript": "5.9.3"
53
- },
54
- "scripts": {
55
- "build": "tsup",
56
- "build:prod": "tsup --minify",
57
- "dev": "tsup --watch",
58
- "test": "vitest run --passWithNoTests",
59
- "test:watch": "vitest --passWithNoTests",
60
- "test:ui": "vitest --ui --passWithNoTests",
61
- "test:coverage": "vitest run --coverage --passWithNoTests",
62
- "typecheck": "tsc --noEmit",
63
- "clean": "rimraf dist .turbo"
64
- }
65
- }
1
+ {
2
+ "name": "ngcompass",
3
+ "version": "0.1.3-beta",
4
+ "description": "Command line interface for ngcompass",
5
+ "sideEffects": false,
6
+ "bin": {
7
+ "ngcompass": "./dist/cli.js"
8
+ },
9
+ "main": "./dist/index.cjs",
10
+ "module": "./dist/index.js",
11
+ "types": "./dist/index.d.ts",
12
+ "type": "module",
13
+ "engines": {
14
+ "node": "^20.19.0 || >=22.12.0"
15
+ },
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "import": "./dist/index.js",
20
+ "require": "./dist/index.cjs"
21
+ }
22
+ },
23
+ "files": [
24
+ "dist",
25
+ "README.md"
26
+ ],
27
+ "scripts": {
28
+ "prepack": "node -e \"require('fs').copyFileSync('../../README.md','./README.md')\"",
29
+ "build": "tsup",
30
+ "build:prod": "tsup --minify",
31
+ "dev": "tsup --watch",
32
+ "test": "vitest run --passWithNoTests",
33
+ "test:watch": "vitest --passWithNoTests",
34
+ "test:ui": "vitest --ui --passWithNoTests",
35
+ "test:coverage": "vitest run --coverage --passWithNoTests",
36
+ "typecheck": "tsc --noEmit",
37
+ "clean": "rimraf dist .turbo"
38
+ },
39
+ "dependencies": {
40
+ "@ngcompass/common": "workspace:*",
41
+ "@ngcompass/reporters": "workspace:*",
42
+ "@ngcompass/rules": "workspace:*",
43
+ "@ngcompass/cache": "workspace:*",
44
+ "@ngcompass/config": "workspace:*",
45
+ "@ngcompass/engine": "workspace:*",
46
+ "@ngcompass/scanner": "workspace:*",
47
+ "@ngcompass/planner": "workspace:*",
48
+ "@ngcompass/ast": "workspace:*",
49
+ "commander": "^11.0.0",
50
+ "picocolors": "^1.1.1"
51
+ },
52
+ "keywords": [
53
+ "angular",
54
+ "analysis",
55
+ "cli"
56
+ ],
57
+ "author": "ngcompass",
58
+ "license": "MIT",
59
+ "publishConfig": {
60
+ "access": "public"
61
+ },
62
+ "devDependencies": {
63
+ "@types/node": "^25.1.0",
64
+ "typescript": "catalog:"
65
+ }
66
+ }