@ngcompass/engine 0.1.1-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/LICENSE +21 -0
- package/dist/index.cjs +3 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +578 -0
- package/dist/index.d.ts +578 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/rule-handler.ts","../src/visitor-registry.ts","../src/constants.ts","../src/single-pass-engine.ts","../src/rule-context-factory.ts","../src/analysis-context.ts","../src/project-context-builder.ts","../src/type-aware-context.ts","../src/analysis-stats.ts","../src/rule-executor.ts","../src/runner.ts","../src/worker-pool.ts","../src/orchestrator.ts","../src/spinner.ts"],"names":["createComponentRule","name","handler","meta","streamType","handle","createAnyAngularClassRule","createDecoratedPropertyRule","createTemplateExpressionRule","createTemplateAttributeRule","createCallExpressionRule","createNewExpressionRule","createTemplateBlockRule","createTemplateRule","STREAM_TO_NODE_TYPE","AngularClass","AnyAngularClass","DecoratedProperty","TemplateExpression","TemplateAttribute","TemplateBlock","Template","CallExpression","NewExpression","buildVisitorMap","handlers","streamFilters","mutable","Map","nodeType","startsWith","filter","entry","ruleName","bind","existing","get","push","set","MIN_WORKER_COUNT","SPINNER_FRAME_INTERVAL_MS","WORKER_TIMEOUT_MS","BUDGET_MS_PER_FILE_WITHOUT_TYPES","BUDGET_MS_PER_FILE_WITH_TYPES","dispatchTemplateHandlers","nodes","context","failuresByRule","ruleTimings","errorCollector","length","templateNode","i","ruleStart","performance","now","failure","Array","isArray","e","record","createInfrastructureError","cause","Error","message","String","recoverable","phase","details","errorName","undefined","elapsed","timing","totalMs","invocations","runSinglePassAnalysis","rules","options","program","results","map","rule","failures","traversalMs","nodesVisited","cacheStats","hits","misses","budgetViolations","hasBudgetViolations","startTime","visitorMap","toAngularClassStream","toAnyAngularClassStream","toDecoratedPropertyStream","toCallExpressionStream","toNewExpressionStream","templateExpressionHandlers","r","templateAttributeHandlers","templateBlockHandlers","templateHandlers","resetComponentCacheStats","walkProgram","node","type","visitors","streamNode","template","templateAnalysis","analyzeTemplate","templateContext","templateFilePath","templateFileContent","templateLocator","filePath","fileContent","locator","expressions","attributes","blocks","budget","typeChecker","toFixed","values","avgMs","from","getComponentCacheStats","RuleContextFactory","build","needsTemplate","Promise","all","readFile","getProgram","Locator","getTypeChecker","getTemplate","project","getProjectContext","resolveExternalTemplatePath","crossRef","buildCrossRef","componentPath","endsWith","templateToComponent","componentGraph","templatePath","loadedTemplate","publicMembers","signalMembers","templateReferences","cluster","stylePaths","specPath","tsSourceFile","getComponentSourceFile","sourceFile","members","Set","statement","statements","ts","isClassDeclaration","member","mods","canHaveModifiers","getModifiers","some","m","kind","SyntaxKind","PrivateKeyword","ProtectedKeyword","isPrivateIdentifier","isIdentifier","isStringLiteral","add","text","isPropertyDeclaration","initializer","factoryName","expr","unwrapped","isAsExpression","isSatisfiesExpression","expression","isCallExpression","callee","isPropertyAccessExpression","SIGNAL_FACTORY_NAMES","has","effectiveTemplate","templateAst","refs","INTERPOLATION_RE","rootNodes","walkNode","attr","value","extractIdentifiersFromExprString","lastIndex","exec","child","getTsSourceFile","source","createSourceFile","ScriptTarget","Latest","TEMPLATE_IDENT_RE","match","CSS_EXTENSIONS","createAnalysisContext","rootDir","fileCache","LRUCache","max","programCache","templateCache","styleCache","readFileCached","cached","promise","readFileSafe","parseTs","extracted","resolveTemplateContent","content","parseHtml","startOffset","getStyle","ext","extname","toLowerCase","resolve","parseCss","evict","delete","msg","extractTemplateFromProgram","buildProjectContext","files","componentFiles","start","projectFileSet","dir","f","normRoot","sep","sf","getSourceFiles","isDeclarationFile","fileName","importGraph","reverseImportGraph","externalDeps","compilerOptions","getCompilerOptions","file","fromFile","specifier","specifiers","forEachChild","visit","isImportDeclaration","moduleSpecifier","isExportDeclaration","ImportKeyword","arguments","isStringLiteralLike","resolved","resolveModuleName","sys","toFile","resolvedModule","resolvedFileName","reverseSet","pkgName","isAbsolute","scopeSlash","indexOf","nameSlash","slice","slash","extSet","barrelFiles","every","stmt","graph","styleExts","dirname","base","basename","htmlPath","join","stylePath","specCandidate","tsPath","ngModuleMap","standaloneComponents","classToFile","ExportKeyword","decorators","canHaveDecorators","getDecorators","decorator","info","firstArg","arg","isObjectLiteralExpression","declarations","extractArrayElements","imports","exports","providers","isStandalone","extractBoolProp","edgeCount","n","s","size","debug","projectFiles","propName","prop","properties","isPropertyAssignment","init","isArrayLiteralExpression","names","el","elements","extractClassNameFromExpression","TrueKeyword","createTypeAwareAnalysisContext","parserOptions","projectContext","baseContext","tsStart","tsconfigRootDir","path","configPath","findConfigFile","fileExists","configFile","readConfigFile","parsedCommandLine","parseJsonConfigFileContent","config","tsFileRoots","programRoots","fileNames","createProgram","rootNames","err","_filePath","getSourceFile","warmup","calculateStats","cacheHitRate","duration","flatMap","uniqueFiles","totalErrors","isErrorSeverity","severity","totalWarnings","isWarningSeverity","totalFiles","_executor","_checker","configureRuleExecutor","executor","checker","getConfiguredExecutor","getConfiguredChecker","executeBatchedTasks","tasks","factory","batches","task","optionsKey","taskId","stableSerialize","serErr","SerializationError","batch","ruleNames","taskIds","severities","batchTaskIdSet","t","inputs","needsAst","ruleContext","batchResults","taskIdMap","id","ids","result","configuredSeverity","finalResult","shift","runAnalysisParallel","maxWorkers","concurrency","onFileProgress","chunkResults","Worker","workerCount","Math","os","cpus","workerPath","resolveWorkerPath","runLocalFallback","chunks","distributeTasks","completedWorkers","markWorkerComplete","workers","promises","chunk","reject","settled","worker","workerData","settle","clearTimeout","timeoutId","removeAllListeners","setTimeout","terminate","on","isWorkerFileProgress","errors","forEach","error","code","infraErr","exitCode","allSettled","w","successful","flat","Ok","parseErrors","stats","limit","pLimit","tasksByFile","groupTasksByFile","fileTasks","fileStart","buildFileProgress","taskCount","errorCount","warningCount","issueCount","__dirname","fileURLToPath","url","workerFromRules","createRequire","existsSync","candidate","sortedFiles","sort","a","b","buckets","bucketLoads","fill","minLoadIndex","minLoad","isRuleResult","runAnalysis","plan","precomputedAnalysis","skippedTasks","cachedResults","cpuCount","effectiveMaxWorkers","min","parallelThreshold","typeAwareTasks","needsTypeChecker","needsProjectContext","workerTasks","grandTotal","globalDone","notifyProgress","delta","onProgress","executedResults","ok","data","executeTasksLocally","skipTypeCheck","chunkSize","typeAwareChunkSize","typeAwareResults","executeTypeAwareTasks","skippedResults","retrieveSkippedResults","cache","totalTasks","globalHash","Object","keys","analysis","Err","useTypeAwareContext","onDelta","fileEntries","entries","allResults","ci","chunkTasks","chunkFiles","tasksToFetch","cachedEntries","getMany","FRAMES","Spinner","frameIndex","interval","process","stdout","write","setInterval","update","stop","finalMessage","clearInterval"],"mappings":"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","file":"index.js","sourcesContent":["export const createComponentRule = (e, t, a)=>({\n name: e,\n streamType: 'AngularClass',\n handle: t,\n meta: a\n });\nexport const createAnyAngularClassRule = (e, t, a)=>({\n name: e,\n streamType: 'AnyAngularClass',\n handle: t,\n meta: a\n });\nexport const createDecoratedPropertyRule = (e, t)=>({\n name: e,\n streamType: 'DecoratedProperty',\n handle: t\n });\nexport const createTemplateExpressionRule = (e, t, a)=>({\n name: e,\n streamType: 'TemplateExpression',\n handle: t,\n meta: a\n });\nexport const createTemplateAttributeRule = (e, t, a)=>({\n name: e,\n streamType: 'TemplateAttribute',\n handle: t,\n meta: a\n });\nexport const createCallExpressionRule = (e, t, a)=>({\n name: e,\n streamType: 'CallExpression',\n handle: t,\n meta: a\n });\nexport const createNewExpressionRule = (e, t, a)=>({\n name: e,\n streamType: 'NewExpression',\n handle: t,\n meta: a\n });\nexport const createTemplateBlockRule = (e, t, a)=>({\n name: e,\n streamType: 'TemplateBlock',\n handle: t,\n meta: a\n });\nexport const createTemplateRule = (e, t, a)=>({\n name: e,\n streamType: 'Template',\n handle: t,\n meta: a\n });\n","export const STREAM_TO_NODE_TYPE = {\n AngularClass: 'ClassDeclaration',\n AnyAngularClass: 'ClassDeclaration',\n DecoratedProperty: 'PropertyDefinition',\n TemplateExpression: '__template_expression__',\n TemplateAttribute: '__template_attribute__',\n TemplateBlock: '__template_block__',\n Template: '__template_analysis__',\n CallExpression: 'CallExpression',\n NewExpression: 'NewExpression'\n};\nexport function buildVisitorMap(e, t) {\n let a = new Map();\n for (let l of e){\n let e = STREAM_TO_NODE_TYPE[l.streamType];\n if (!e || e.startsWith('__')) continue;\n let s = t[l.streamType];\n if (!s) continue;\n let _ = {\n ruleName: l.name,\n filter: s,\n handle: l.handle.bind(l)\n }, n = a.get(e);\n n ? n.push(_) : a.set(e, [\n _\n ]);\n }\n return a;\n}\n","export const MIN_WORKER_COUNT = 2;\nexport const SPINNER_FRAME_INTERVAL_MS = 80;\nexport const WORKER_TIMEOUT_MS = 60_000;\nexport const BUDGET_MS_PER_FILE_WITHOUT_TYPES = 2;\nexport const BUDGET_MS_PER_FILE_WITH_TYPES = 5;\n","import { walkProgram as e, toAngularClassStream as t, toAnyAngularClassStream as r, toDecoratedPropertyStream as a, toCallExpressionStream as l, toNewExpressionStream as o, resetComponentCacheStats as s, getComponentCacheStats as n, analyzeTemplate as i } from '@ngcompass/ast';\nimport { buildVisitorMap as m } from './visitor-registry.js';\nimport { createInfrastructureError as p } from '@ngcompass/common';\nimport { BUDGET_MS_PER_FILE_WITHOUT_TYPES as c, BUDGET_MS_PER_FILE_WITH_TYPES as u } from './constants.js';\nlet dispatchTemplateHandlers = (e, t, r, a, l, o)=>{\n if (0 !== t.length) for (let s of e)for(let e = 0; e < t.length; e++){\n let n = t[e], i = performance.now();\n try {\n let e = n.handle(s, r);\n if (e) {\n let t = a.get(n.name) ?? [];\n Array.isArray(e) ? t.push(...e) : t.push(e), a.set(n.name, t);\n }\n } catch (e) {\n o?.record(p('RuleExecutionError', {\n cause: `Rule ${n.name} failed on template node: ${e instanceof Error ? e.message : String(e)}`,\n recoverable: !0,\n phase: 'engine',\n details: {\n ruleName: n.name,\n errorName: e instanceof Error ? e.name : void 0\n }\n }));\n }\n let m = performance.now() - i, c = l.get(n.name);\n c && (c.totalMs += m, c.invocations++);\n }\n};\nexport const runSinglePassAnalysis = (f, h, g)=>{\n let { program: d } = h;\n if (!d) return {\n results: f.map((e)=>({\n ruleName: e.name,\n failures: []\n })),\n performance: {\n traversalMs: 0,\n nodesVisited: 0,\n ruleTimings: [],\n cacheStats: {\n hits: 0,\n misses: 0\n },\n budgetViolations: [],\n hasBudgetViolations: !1\n }\n };\n let y = performance.now(), v = m(f, {\n AngularClass: t,\n AnyAngularClass: r,\n DecoratedProperty: a,\n CallExpression: l,\n NewExpression: o\n }), T = f.filter((e)=>'TemplateExpression' === e.streamType), N = f.filter((e)=>'TemplateAttribute' === e.streamType), C = f.filter((e)=>'TemplateBlock' === e.streamType), E = f.filter((e)=>'Template' === e.streamType), x = new Map(), A = new Map(), w = 0;\n for (let e of f)A.set(e.name, {\n ruleName: e.name,\n totalMs: 0,\n invocations: 0\n });\n if (s(), e(d, (e)=>{\n if (!e?.type) return;\n w++;\n let t = v.get(e.type);\n if (t) for(let r = 0; r < t.length; r++){\n let a = t[r], l = performance.now();\n try {\n let t = a.filter(e);\n if (null !== t) {\n let e = a.handle(t, h);\n if (e) {\n let t = x.get(a.ruleName) ?? [];\n Array.isArray(e) ? t.push(...e) : t.push(e), x.set(a.ruleName, t);\n }\n }\n } catch (e) {\n g?.errorCollector?.record(p('RuleExecutionError', {\n cause: `Rule ${a.ruleName} failed: ${e instanceof Error ? e.message : String(e)}`,\n recoverable: !0,\n phase: 'engine',\n details: {\n ruleName: a.ruleName,\n errorName: e instanceof Error ? e.name : void 0\n }\n }));\n }\n let o = performance.now() - l, s = A.get(a.ruleName);\n s && (s.totalMs += o, s.invocations++);\n }\n }), h.template && (T.length > 0 || N.length > 0 || C.length > 0 || E.length > 0)) {\n let e = i(h.template), t = h.templateFilePath && h.templateFileContent && h.templateLocator ? {\n ...h,\n filePath: h.templateFilePath,\n fileContent: h.templateFileContent,\n locator: h.templateLocator\n } : h;\n dispatchTemplateHandlers(e.expressions, T, t, x, A, g?.errorCollector), dispatchTemplateHandlers(e.attributes, N, t, x, A, g?.errorCollector), dispatchTemplateHandlers(e.blocks, C, t, x, A, g?.errorCollector), dispatchTemplateHandlers([\n e\n ], E, t, x, A, g?.errorCollector);\n }\n let $ = [];\n for (let e of f)$.push({\n ruleName: e.name,\n failures: x.get(e.name) ?? []\n });\n let b = performance.now() - y, M = [], F = h.typeChecker ? u : c;\n for (let e of (b > F && M.push(`Total traversal time ${b.toFixed(2)}ms exceeds budget ${F}ms`), A.values())){\n if (0 === e.invocations) continue;\n let t = e.totalMs / e.invocations;\n t > 1 && M.push(`Rule ${e.ruleName} averages ${t.toFixed(2)}ms per invocation (threshold: 1ms)`);\n }\n return {\n results: $,\n performance: {\n traversalMs: b,\n nodesVisited: w,\n ruleTimings: Array.from(A.values()),\n cacheStats: n(),\n budgetViolations: M,\n hasBudgetViolations: M.length > 0\n }\n };\n};\n","import { Locator as t } from '@ngcompass/common';\nimport e from \"typescript\";\nexport class RuleContextFactory {\n context;\n constructor(t){\n this.context = t;\n }\n async build(e, i, n) {\n let r, o, a, s, l, [c, f] = await Promise.all([\n this.context.readFile(e),\n this.context.getProgram(e)\n ]), p = new t(c);\n this.context.getTypeChecker && (r = await this.context.getTypeChecker(e)), n && (o = await this.context.getTemplate(e));\n let m = this.context.getProjectContext?.();\n n && !o && m && (a = this.resolveExternalTemplatePath(e, m)) && (o = await this.context.getTemplate(a), l = new t(s = await this.context.readFile(a)));\n let d = m ? await this.buildCrossRef(e, o, m) : void 0;\n return {\n filePath: e,\n fileContent: c,\n locator: p,\n program: f,\n typeChecker: r,\n template: o,\n templateFilePath: a,\n templateFileContent: s,\n templateLocator: l,\n options: i,\n project: m,\n crossRef: d\n };\n }\n resolveExternalTemplatePath(t, e) {\n let i = t.endsWith('.component.ts') ? t : e.templateToComponent.get(t);\n if (i) return e.componentGraph.get(i)?.templatePath;\n }\n async buildCrossRef(t, i, n) {\n let r, o, a, s = t.endsWith('.component.ts') ? t : n.templateToComponent.get(t);\n if (!s) return;\n let l = n.componentGraph.get(s), c = l?.templatePath, f = l?.stylePaths ?? [], p = l?.specPath;\n try {\n let t = await this.getComponentSourceFile(s);\n t && (r = function(t) {\n let i = new Set();\n for (let n of t.statements)if (e.isClassDeclaration(n)) for (let t of n.members){\n let n = e.canHaveModifiers(t) ? e.getModifiers(t) : void 0;\n if (n && n.some((t)=>t.kind === e.SyntaxKind.PrivateKeyword || t.kind === e.SyntaxKind.ProtectedKeyword)) continue;\n let r = t.name;\n r && !e.isPrivateIdentifier(r) && (e.isIdentifier(r) ? i.add(r.text) : e.isStringLiteral(r) && i.add(r.text));\n }\n return i;\n }(t), o = function(t) {\n let i = new Set();\n for (let n of t.statements)if (e.isClassDeclaration(n)) for (let t of n.members){\n if (!e.isPropertyDeclaration(t) || !t.initializer || !t.name || e.isPrivateIdentifier(t.name)) continue;\n let n = function(t) {\n let i = e.isAsExpression(t) || e.isSatisfiesExpression(t) ? t.expression : t;\n if (!e.isCallExpression(i)) return;\n let n = i.expression;\n return e.isIdentifier(n) ? n.text : e.isPropertyAccessExpression(n) ? e.isIdentifier(n.expression) && 'input' === n.expression.text ? 'input' : n.name.text : void 0;\n }(t.initializer);\n n && SIGNAL_FACTORY_NAMES.has(n) && (e.isIdentifier(t.name) || e.isStringLiteral(t.name)) && i.add(t.name.text);\n }\n return i;\n }(t));\n } catch {}\n let m = i;\n if (!m && c) try {\n m = await this.context.getTemplate(c);\n } catch {}\n if (m) try {\n a = function(t) {\n let e = new Set(), i = /\\{\\{([\\s\\S]*?)\\}\\}/g;\n for (let n of t.rootNodes)!function t(n) {\n if (n && 'object' == typeof n) {\n if (Array.isArray(n.attrs)) for (let t of n.attrs){\n if (('string' == typeof t.name ? t.name : '').startsWith('(')) continue;\n let i = t.value;\n 'string' == typeof i && i && extractIdentifiersFromExprString(i, e);\n }\n if ('string' == typeof n.value && n.value) {\n let t;\n for(i.lastIndex = 0; null !== (t = i.exec(n.value));)extractIdentifiersFromExprString(t[1], e);\n }\n if (Array.isArray(n.children)) for (let e of n.children)t(e);\n }\n }(n);\n return e;\n }(m);\n } catch {}\n return {\n componentPath: s,\n templatePath: c,\n stylePaths: f,\n specPath: p,\n publicMembers: r,\n signalMembers: o,\n templateReferences: a\n };\n }\n async getComponentSourceFile(t) {\n let i = this.context.getTsSourceFile?.(t);\n if (i) return i;\n let n = await this.context.readFile(t);\n return e.createSourceFile(t, n, e.ScriptTarget.Latest, !0);\n }\n}\nlet SIGNAL_FACTORY_NAMES = new Set([\n 'signal',\n 'computed',\n 'linkedSignal',\n 'input',\n 'model',\n 'toSignal'\n]), TEMPLATE_IDENT_RE = /\\b([a-zA-Z_$][a-zA-Z0-9_$]*)\\b/g;\nfunction extractIdentifiersFromExprString(t, e) {\n let i;\n for(TEMPLATE_IDENT_RE.lastIndex = 0; null !== (i = TEMPLATE_IDENT_RE.exec(t));)e.add(i[1]);\n}\n","import { readFile as e } from \"node:fs/promises\";\nimport * as t from \"node:path\";\nimport { LRUCache as r } from \"lru-cache\";\nimport { parseTs as n, parseHtml as a, parseCss as s, extractTemplateFromProgram as l } from \"@ngcompass/ast\";\nlet CSS_EXTENSIONS = new Set([\n '.css',\n '.scss',\n '.sass',\n '.less'\n]);\nexport const createAnalysisContext = (e)=>{\n let l = new r({\n max: 128\n }), o = new Map(), i = new Map(), f = new Map(), c = (t)=>{\n let r = l.get(t);\n if (r) return r;\n let n = readFileSafe(e, t);\n return l.set(t, n), n;\n }, m = (e)=>{\n let t = o.get(e);\n if (t) return t;\n let r = (async ()=>n(await c(e), e).program)();\n return o.set(e, r), r;\n };\n return {\n rootDir: e,\n readFile: c,\n getProgram: m,\n getTemplate: (e)=>{\n let t = i.get(e);\n if (t) return t;\n let r = (async ()=>{\n let t = await resolveTemplateContent(e, c, m);\n if (t && t.content) return a(t.content, t.startOffset);\n })();\n return i.set(e, r), r;\n },\n getStyle: (e)=>{\n let r = f.get(e);\n if (r) return r;\n let n = t.extname(e).toLowerCase();\n if (!CSS_EXTENSIONS.has(n)) {\n let t = Promise.resolve(void 0);\n return f.set(e, t), t;\n }\n let a = (async ()=>s(await c(e), e))();\n return f.set(e, a), a;\n },\n evict: (e)=>{\n l.delete(e), o.delete(e), i.delete(e), f.delete(e);\n }\n };\n};\nlet readFileSafe = async (r, n)=>{\n try {\n return await e(t.resolve(r, n), \"utf-8\");\n } catch (t) {\n let e = t instanceof Error ? t.message : String(t);\n throw Error(`Cannot read file: ${n}. ${e}`);\n }\n}, resolveTemplateContent = async (e, r, n)=>{\n let a = t.extname(e);\n if (\".html\" === a) return {\n content: await r(e),\n startOffset: 0\n };\n if (\".ts\" === a) {\n let t = l(await n(e));\n return t.content ? t : null;\n }\n return null;\n};\n","import e from \"typescript\";\nimport * as t from 'node:path';\nimport { debug as i } from '@ngcompass/common';\nexport function buildProjectContext(r, n, o, s) {\n let l = performance.now(), a = function(e, i, r) {\n var n;\n let o = new Set();\n for (let r of e)o.add(t.resolve(i, r));\n let s = (n = i).endsWith(t.sep) ? n : n + t.sep;\n for (let e of r.getSourceFiles())!e.isDeclarationFile && e.fileName.startsWith(s) && o.add(e.fileName);\n return o;\n }(n, o, r), { importGraph: f, reverseImportGraph: p, externalDeps: c } = function(i, r) {\n let n = i.getCompilerOptions(), o = new Map(), s = new Map(), l = new Map();\n for (let e of r)o.set(e, new Set()), s.set(e, new Set());\n for (let a of i.getSourceFiles()){\n if (a.isDeclarationFile || !r.has(a.fileName)) continue;\n let i = a.fileName;\n for (let f of function(t) {\n let i = [];\n return e.forEachChild(t, function t(r) {\n e.isImportDeclaration(r) && e.isStringLiteral(r.moduleSpecifier) || e.isExportDeclaration(r) && r.moduleSpecifier && e.isStringLiteral(r.moduleSpecifier) ? i.push(r.moduleSpecifier.text) : (e.isCallExpression(r) && r.expression.kind === e.SyntaxKind.ImportKeyword && r.arguments.length > 0 && e.isStringLiteralLike(r.arguments[0]) && i.push(r.arguments[0].text), e.forEachChild(r, t));\n }), i;\n }(a)){\n let a = e.resolveModuleName(f, i, n, e.sys), p = a.resolvedModule?.resolvedFileName;\n if (p && r.has(p)) {\n o.get(i).add(p);\n let e = s.get(p);\n e || (e = new Set(), s.set(p, e)), e.add(i);\n } else {\n let e = function(e) {\n if (e.startsWith('.') || t.isAbsolute(e)) return null;\n if (e.startsWith('@')) {\n let t = e.indexOf('/', 1);\n if (-1 === t) return null;\n let i = e.indexOf('/', t + 1);\n return -1 === i ? e : e.slice(0, i);\n }\n let i = e.indexOf('/');\n return -1 === i ? e : e.slice(0, i);\n }(f);\n if (e) {\n let t = l.get(i);\n t || (t = new Set(), l.set(i, t)), t.add(e);\n }\n }\n }\n }\n return {\n importGraph: o,\n reverseImportGraph: s,\n externalDeps: l\n };\n }(r, a), m = function(t, i) {\n let r = new Set();\n for (let n of t.getSourceFiles()){\n if (n.isDeclarationFile || !i.has(n.fileName)) continue;\n let { statements: t } = n;\n 0 !== t.length && t.every((t)=>e.isExportDeclaration(t) && null != t.moduleSpecifier) && r.add(n.fileName);\n }\n return r;\n }(r, a), u = s ?? function(e) {\n let i = new Map(), r = [\n '.scss',\n '.sass',\n '.css',\n '.less'\n ];\n for (let n of e){\n if (!n.endsWith('.component.ts')) continue;\n let o = t.dirname(n), s = t.basename(n, '.ts'), l = t.join(o, s + '.html'), a = e.has(l) ? l : void 0, f = [];\n for (let i of r){\n let r = t.join(o, s + i);\n e.has(r) && f.push(r);\n }\n let p = t.join(o, s + '.spec.ts'), c = e.has(p) ? p : void 0;\n i.set(n, {\n tsPath: n,\n templatePath: a,\n stylePaths: f,\n specPath: c\n });\n }\n return i;\n }(a), d = function(e) {\n let t = new Map();\n for (let [i, r] of e)r.templatePath && t.set(r.templatePath, i);\n return t;\n }(u), { ngModuleMap: x, standaloneComponents: h, classToFile: S } = function(t, i) {\n let r = new Map(), n = new Set(), o = function(t, i) {\n let r = new Map();\n for (let n of t.getSourceFiles())if (!n.isDeclarationFile && i.has(n.fileName)) for (let t of n.statements){\n if (!e.isClassDeclaration(t) || !t.name) continue;\n let i = e.canHaveModifiers(t) ? e.getModifiers(t) : void 0;\n i?.some((t)=>t.kind === e.SyntaxKind.ExportKeyword) && r.set(t.name.text, n.fileName);\n }\n return r;\n }(t, i);\n for (let o of t.getSourceFiles())if (!o.isDeclarationFile && i.has(o.fileName)) for (let t of o.statements){\n if (!e.isClassDeclaration(t)) continue;\n let i = e.canHaveDecorators(t) ? e.getDecorators(t) : void 0;\n if (i?.length) for (let t of i){\n let i = function(t) {\n let i = t.expression;\n if (!e.isCallExpression(i)) return;\n let r = i.expression;\n if (!e.isIdentifier(r)) return;\n let n = i.arguments[0], o = n && e.isObjectLiteralExpression(n) ? n : void 0;\n return {\n name: r.text,\n arg: o\n };\n }(t);\n if (!i) continue;\n let { name: s, arg: l } = i;\n if ('NgModule' === s) {\n l && r.set(o.fileName, {\n filePath: o.fileName,\n declarations: new Set(extractArrayElements(l, 'declarations')),\n imports: new Set(extractArrayElements(l, 'imports')),\n exports: new Set(extractArrayElements(l, 'exports')),\n providers: new Set(extractArrayElements(l, 'providers')),\n isStandalone: !1\n });\n break;\n }\n if ('Component' === s) {\n l && extractBoolProp(l, 'standalone') && (n.add(o.fileName), r.set(o.fileName, {\n filePath: o.fileName,\n declarations: new Set(),\n imports: new Set(l ? extractArrayElements(l, 'imports') : []),\n exports: new Set(),\n providers: new Set(l ? extractArrayElements(l, 'providers') : []),\n isStandalone: !0\n }));\n break;\n }\n if ('Directive' === s || 'Pipe' === s) {\n l && extractBoolProp(l, 'standalone') && n.add(o.fileName);\n break;\n }\n }\n }\n return {\n ngModuleMap: r,\n standaloneComponents: n,\n classToFile: o\n };\n }(r, a), g = function(e) {\n let t = 0;\n for (let i of e.values())t += i.size;\n return t;\n }(f);\n return i('engine', `ProjectContext built in ${(performance.now() - l).toFixed(2)}ms — ${a.size} files, ${g} import edges, ${m.size} barrels, ${c.size} files with ext deps, ${u.size} components, ${d.size} template↔component links, ${x.size} NgModules/standalone, ${h.size} standalone`), {\n importGraph: f,\n reverseImportGraph: p,\n ngModuleMap: x,\n standaloneComponents: h,\n classToFile: S,\n componentGraph: u,\n projectFiles: a,\n rootDir: o,\n barrelFiles: m,\n externalDeps: c,\n templateToComponent: d\n };\n}\nfunction extractArrayElements(t, i) {\n for (let r of t.properties){\n if (!e.isPropertyAssignment(r) || !e.isIdentifier(r.name) || r.name.text !== i) continue;\n let t = r.initializer;\n if (!e.isArrayLiteralExpression(t)) break;\n let n = [];\n for (let i of t.elements)n.push(...function t(i) {\n return e.isIdentifier(i) ? [\n i.text\n ] : e.isPropertyAccessExpression(i) || e.isCallExpression(i) ? t(i.expression) : [];\n }(i));\n return n;\n }\n return [];\n}\nfunction extractBoolProp(t, i) {\n for (let r of t.properties)if (e.isPropertyAssignment(r) && e.isIdentifier(r.name) && r.name.text === i) return r.initializer.kind === e.SyntaxKind.TrueKeyword;\n return !1;\n}\n","import e from \"node:path\";\nimport t from \"typescript\";\nimport { createAnalysisContext as o } from \"./analysis-context.js\";\nimport { buildProjectContext as n } from \"./project-context-builder.js\";\nimport { debug as i } from \"@ngcompass/common\";\nexport const createTypeAwareAnalysisContext = (r, s = [], a)=>{\n let c, l, g = o(r);\n i('engine', 'Initializing Type-Aware Context (ts.createProgram)...');\n let f = performance.now(), p = a?.tsconfigRootDir ? e.resolve(r, a.tsconfigRootDir) : r, m = a?.project ? e.resolve(p, a.project) : t.findConfigFile(p, t.sys.fileExists, \"tsconfig.json\");\n if (m) {\n let e = t.readConfigFile(m, t.sys.readFile), o = t.parseJsonConfigFileContent(e.config, t.sys, p), n = s.filter((e)=>(e.endsWith('.ts') || e.endsWith('.tsx')) && !e.endsWith('.d.ts')), r = n.length > 0 ? n : o.fileNames;\n c = t.createProgram({\n rootNames: r,\n options: o.options\n }), i('engine', `TypeScript Program initialized in ${(performance.now() - f).toFixed(2)}ms with ${r.length} roots (tsconfig had ${o.fileNames.length})`);\n } else i('engine', 'Could not find tsconfig.json; TypeChecker and ProjectContext will be unavailable.');\n let d = c?.getTypeChecker();\n if (c) try {\n l = n(c, s, r);\n } catch (t) {\n let e = t instanceof Error ? t.message : String(t);\n i('engine', `ProjectContext build failed (non-fatal): ${e}`);\n }\n return {\n ...g,\n getTypeChecker: async (e)=>d,\n getProjectContext: ()=>l,\n getTsSourceFile: (e)=>c?.getSourceFile(e),\n warmup: async ()=>{\n i('engine', `Type-aware context ready: ${c ? `ts.Program with ${c.getSourceFiles().length} source files` : 'no tsconfig found, TypeChecker unavailable'}`);\n }\n };\n};\n","export const calculateStats = (e, r, t)=>{\n let i = performance.now() - r, a = e.flatMap((e)=>e.failures), l = new Set(a.map((e)=>e.filePath)), n = a.filter((e)=>isErrorSeverity(e.severity)).length, s = a.filter((e)=>isWarningSeverity(e.severity)).length;\n return {\n totalFiles: l.size,\n totalErrors: n,\n totalWarnings: s,\n duration: i,\n cacheHitRate: t\n };\n};\nlet isErrorSeverity = (e)=>\"error\" === e, isWarningSeverity = (e)=>\"warn\" === e;\n","let _executor = ()=>{\n throw Error(\"[ngcompass] Rule executor not configured. Call configureRuleExecutor(executeBatchedNewEngineRules, isNewEngineRule) before running analysis.\");\n}, _checker = ()=>!1;\nexport const configureRuleExecutor = (e, r)=>{\n _executor = e, _checker = r;\n};\nexport const getConfiguredExecutor = ()=>_executor;\nexport const getConfiguredChecker = ()=>_checker;\n","import { stableSerialize as e, SerializationError as t, createInfrastructureError as s, debug as r } from \"@ngcompass/common\";\nimport { RuleContextFactory as a } from \"./rule-context-factory.js\";\nimport { getConfiguredExecutor as l, getConfiguredChecker as i } from \"./rule-executor.js\";\nexport const executeBatchedTasks = async (n, o, u)=>{\n if (0 === n.length) return [];\n let m = n[0].filePath, p = new a(o), f = new Map(), c = [];\n for (let a of n){\n let l;\n if (!i()(a.ruleName)) {\n r(\"engine\", `Skipping task ${a.taskId}: Rule \"${a.ruleName}\" not registered in engine.`), c.push({\n ruleName: a.ruleName,\n taskId: a.taskId,\n failures: []\n });\n continue;\n }\n try {\n l = e(a.options || {});\n } catch (l) {\n let e = l instanceof t ? l.message : String(l);\n r(\"engine\", `Skipping task ${a.taskId}: failed to serialize options — ${e}`), u?.record(s('SerializationError', {\n cause: e,\n phase: 'engine',\n recoverable: !0\n })), c.push({\n ruleName: a.ruleName,\n taskId: a.taskId,\n failures: []\n });\n continue;\n }\n let n = f.get(l) ?? {\n options: a.options,\n ruleNames: [],\n taskIds: [],\n severities: new Map()\n };\n n.ruleNames.push(a.ruleName), n.taskIds.push(a.taskId), n.severities.set(a.ruleName, a.severity), f.set(l, n);\n }\n for (let e of f.values())try {\n let t = new Set(e.taskIds), s = n.some((e)=>t.has(e.taskId) && e.inputs.template?.needsAst), r = await p.build(m, e.options, s), a = l()(e.ruleNames, r), i = new Map();\n for(let t = 0; t < e.ruleNames.length; t++){\n let s = e.ruleNames[t], r = e.taskIds[t], a = i.get(s) ?? [];\n a.push(r), i.set(s, a);\n }\n for (let t of a){\n let s = i.get(t.ruleName), r = e.severities.get(t.ruleName), a = r ? {\n ...t,\n failures: t.failures.map((e)=>({\n ...e,\n severity: r\n }))\n } : t;\n if (s && s.length > 0) {\n let e = s.shift();\n c.push({\n ...a,\n taskId: e\n });\n } else c.push(a);\n }\n } catch (a) {\n let t = a instanceof Error ? a.message : String(a);\n r(\"engine\", `Failed to execute batch for ${m}: ${t}`), u?.record(s('ParseError', {\n filePath: m,\n cause: t,\n phase: 'engine',\n recoverable: !0\n }));\n for(let t = 0; t < e.ruleNames.length; t++)c.push({\n ruleName: e.ruleNames[t],\n failures: [],\n taskId: e.taskIds[t]\n });\n }\n return c;\n};\n","import { createRequire as r } from \"node:module\";\nimport e from \"node:os\";\nimport { fileURLToPath as o } from \"node:url\";\nimport { dirname as t, join as s } from \"node:path\";\nimport { existsSync as a } from \"node:fs\";\nimport { createInfrastructureError as l, Ok as i, debug as n } from \"@ngcompass/common\";\nimport { MIN_WORKER_COUNT as m, WORKER_TIMEOUT_MS as u } from \"./constants.js\";\nimport { createAnalysisContext as f } from \"./analysis-context.js\";\nimport { calculateStats as c } from \"./analysis-stats.js\";\nimport { executeBatchedTasks as p } from \"./runner.js\";\nimport { groupTasksByFile as k } from \"@ngcompass/planner\";\nimport d from \"p-limit\";\nexport const runAnalysisParallel = async (r, o, t, s, a, f)=>{\n let p, { Worker: k } = await import(\"node:worker_threads\"), d = s ?? Math.max(m, e.cpus().length), h = await resolveWorkerPath();\n if (!h) return n(\"workers\", \"Execution worker not found, falling back to local execution.\"), runLocalFallback(r, o, t, a ?? d, f);\n let w = distributeTasks(r, d), g = 0, y = ()=>{\n g++, n(\"workers\", `Worker progress: ${g}/${d} complete`);\n }, P = [], x = w.map((r)=>new Promise((e, t)=>{\n let s = !1, a = new k(h, {\n workerData: {\n rootDir: o,\n tasks: r\n }\n });\n P.push(a);\n let i = ()=>{\n clearTimeout(m), a.removeAllListeners();\n }, m = setTimeout(()=>{\n s || (s = !0, i(), y(), a.terminate(), t(Error(`Worker timed out after ${u / 1000}s`)));\n }, u);\n a.on(\"message\", (r)=>{\n isWorkerFileProgress(r) ? f?.(r) : s || (s = !0, i(), r.errors && r.errors.length > 0 && r.errors.forEach((r)=>{\n n(\"workers\", `Worker failed task ${r.task.taskId}: ${r.error}`);\n }), y(), e(r.results));\n }), a.on(\"error\", (r)=>{\n s || (s = !0, i(), y(), t(r instanceof Error ? r : Error(String(r))));\n }), a.on(\"exit\", (r)=>{\n if (s || 0 === r) return;\n s = !0, i();\n let e = l('WorkerCrash', {\n cause: `Worker exited with code ${r}`,\n phase: 'engine',\n recoverable: !0,\n details: {\n exitCode: r\n }\n });\n n(\"workers\", `Worker crashed: ${e.cause}`), t(Error(e.cause));\n });\n }));\n try {\n p = await Promise.all(x);\n } catch (r) {\n throw await Promise.allSettled(P.map((r)=>r.terminate())), r;\n }\n let v = p.flat();\n return i({\n results: v,\n parseErrors: [],\n stats: c(v, t)\n });\n};\nlet runLocalFallback = async (r, e, o, t, s)=>{\n let a = f(e), l = d(t), n = k(r), m = (await Promise.all(Array.from(n.values()).map((r)=>l(async ()=>{\n let e = r[0]?.filePath, o = performance.now(), t = await p(r, a);\n return e && a.evict(e), e && s?.(buildFileProgress(e, r.length, t, performance.now() - o)), t;\n })))).flat();\n return i({\n results: m,\n parseErrors: [],\n stats: c(m, o)\n });\n}, isWorkerFileProgress = (r)=>!!r && 'object' == typeof r && 'file-progress' === r.kind, buildFileProgress = (r, e, o, t)=>{\n let s = 0, a = 0;\n for (let r of o)for (let e of r.failures)'error' === e.severity ? s++ : 'warn' === e.severity && a++;\n return {\n filePath: r,\n taskCount: e,\n issueCount: s + a,\n errorCount: s,\n warningCount: a,\n duration: t\n };\n}, resolveWorkerPath = async ()=>{\n let e = t(o(import.meta.url));\n try {\n let e = r(import.meta.url).resolve('@ngcompass/rules/execution-worker');\n if (a(e)) return e;\n } catch {}\n for (let r of [\n s(e, \"..\", \"..\", \"rules\", \"dist\", \"execution-worker.js\"),\n s(e, \"..\", \"..\", \"rules\", \"dist\", \"execution-worker.cjs\")\n ])if (a(r)) return r;\n return null;\n}, distributeTasks = (r, e)=>{\n let o = Array.from(k(r).values()).sort((r, e)=>e.length - r.length), t = Array.from({\n length: e\n }, ()=>[]), s = Array(e).fill(0);\n for (let r of o){\n let o = 0, a = s[0];\n for(let r = 1; r < e; r++)s[r] < a && (a = s[r], o = r);\n t[o].push(...r), s[o] += r.length;\n }\n return t;\n};\n","import e from \"node:os\";\nimport t from \"p-limit\";\nimport { groupTasksByFile as r } from \"@ngcompass/planner\";\nimport { Ok as s, Err as n, debug as a, createInfrastructureError as l } from \"@ngcompass/common\";\nimport { createAnalysisContext as o } from \"./analysis-context.js\";\nimport { createTypeAwareAnalysisContext as i } from \"./type-aware-context.js\";\nimport { runAnalysisParallel as c } from \"./worker-pool.js\";\nimport { calculateStats as g } from \"./analysis-stats.js\";\nimport { executeBatchedTasks as u } from \"./runner.js\";\nexport { createAnalysisContext } from \"./analysis-context.js\";\nfunction isRuleResult(e) {\n if (!e || 'object' != typeof e || 'string' != typeof e.ruleName || !Array.isArray(e.failures)) return !1;\n for (let t of e.failures)if (!t || 'object' != typeof t || 'string' != typeof t.filePath || 'number' != typeof t.line || 'number' != typeof t.column || 'string' != typeof t.severity) return !1;\n return !0;\n}\nexport const runAnalysis = async (t, r)=>{\n try {\n if (t.precomputedAnalysis) if (function(e) {\n if (!e || 'object' != typeof e || !Array.isArray(e.results) || !Array.isArray(e.parseErrors) || !e.stats || 'object' != typeof e.stats) return !1;\n let t = e.stats;\n return 'number' == typeof t.totalFiles && 'number' == typeof t.totalErrors && 'number' == typeof t.totalWarnings && 'number' == typeof t.duration;\n }(t.precomputedAnalysis)) return a(\"engine\", \"Returning precomputed analysis from cache (global hash match)\"), s(t.precomputedAnalysis);\n else a(\"engine\", \"Precomputed analysis failed schema validation — discarding stale cache entry and re-running analysis\");\n let n = performance.now(), { tasks: o, skippedTasks: i, cachedResults: u } = t, h = e.cpus().length, p = Math.max(1, Math.min(r.maxWorkers ?? h, h)), f = r.parallelThreshold ?? 150, y = o.filter((e)=>!!e.needsTypeChecker || !!e.needsProjectContext), m = o.filter((e)=>!e.needsTypeChecker && !e.needsProjectContext);\n a(\"engine\", `workerTasks: ${m.length}, typeAwareTasks: ${y.length}`);\n let d = o.length + i.length, k = i.length, w = (e)=>{\n k = Math.min(k + e, d), r.onProgress?.(k, d);\n };\n i.length > 0 && r.onProgress?.(k, d);\n let $ = [];\n if (m.length > 0) if (m.length > f) {\n a(\"engine\", `Running analysis on ${m.length} syntax-only tasks using workers (max: ${p})...`);\n let e = await c(m, r.rootDir, n, p, void 0, r.onFileProgress);\n if (!e.ok) return e;\n $ = e.data.results, w(m.length);\n } else a(\"engine\", `Running analysis on ${m.length} syntax-only tasks locally with batching (concurrency: ${p})...`), $ = await executeTasksLocally(m, r.rootDir, p, !1, r.errorCollector, void 0, void 0, w, r.onFileProgress);\n if (y.length > 0 && !r.skipTypeCheck) {\n let e = r.typeAwareChunkSize ?? 400, t = await executeTypeAwareTasks(y, r.rootDir, p, e, r, w, r.onFileProgress);\n $ = [\n ...$,\n ...t\n ];\n } else y.length > 0 && r.skipTypeCheck && a(\"engine\", `Skipping ${y.length} type-aware tasks (--skip-type-check)`);\n let b = await retrieveSkippedResults(i, u, r.cache), x = [\n ...$,\n ...b\n ], v = o.length + i.length, A = v > 0 ? b.length / v : void 0, P = {\n results: x,\n parseErrors: [],\n stats: g(x, n, A)\n };\n if (r.cache && t.globalHash) {\n a(\"engine\", \"Caching full analysis result for global hash...\"), r.debug && (a(\"engine\", `Analysis Results: ${P.results.length} items`), P.results.length > 0 && a(\"engine\", `Sample item keys: ${Object.keys(P.results[0]).join(', ')}`));\n try {\n await r.cache.analysis.set(t.globalHash, P);\n } catch (t) {\n let e = t instanceof Error ? t.message : String(t);\n a(\"engine\", `Failed to cache analysis result: ${e}`), r.errorCollector?.record(l('IOError', {\n cause: `Failed to write analysis cache: ${e}`,\n phase: 'engine',\n recoverable: !0\n }));\n }\n }\n return s(P);\n } catch (e) {\n return n(e instanceof Error ? e : Error(String(e)));\n }\n};\nlet executeTasksLocally = async (e, s, n, c, g, h, p, f, y)=>{\n let m = c ? i(s, h ?? [], p) : o(s);\n c && (await m.warmup(), a(\"engine\", `Phase 1 complete — TypeScript Program ready. Starting Phase 2: ${n} concurrent file batches.`));\n let d = r(e);\n a(\"engine\", `Grouped ${e.length} tasks into ${d.size} file batches`);\n let k = t(n);\n return (await Promise.all(Array.from(d.values()).map((e)=>k(async ()=>{\n let t = e[0]?.filePath, r = performance.now();\n try {\n let s = await u(e, m);\n return m.evict(t), f?.(e.length), t && y?.(buildFileProgress(t, e.length, s, performance.now() - r)), s;\n } catch (n) {\n let s = n instanceof Error ? n.message : String(n);\n return m.evict(t), f?.(e.length), t && y?.(buildFileProgress(t, e.length, [], performance.now() - r)), g?.record(l('IOError', {\n filePath: t,\n cause: `Batch execution failed: ${s}`,\n phase: 'engine',\n recoverable: !0\n })), [];\n }\n })))).flat().filter((e)=>null !== e);\n}, executeTypeAwareTasks = async (e, t, s, n, l, o, i)=>{\n let c = Array.from(r(e).entries()), g = [];\n for(let e = 0; e < c.length; e += n)g.push(c.slice(e, e + n));\n a(\"engine\", `Type-aware: ${e.length} tasks across ${c.length} files → ${g.length} chunk(s) of ≤${n} files`);\n let u = [];\n for(let e = 0; e < g.length; e++){\n let r = g[e], n = r.flatMap(([, e])=>e), c = r.map(([e])=>e);\n a(\"engine\", `Type-aware chunk ${e + 1}/${g.length}: ${c.length} files, ${n.length} tasks`);\n let h = await executeTasksLocally(n, t, s, !0, l.errorCollector, c, l.parserOptions, o, i);\n u.push(...h);\n }\n return u;\n}, buildFileProgress = (e, t, r, s)=>{\n let n = 0, a = 0;\n for (let e of r)for (let t of e.failures)'error' === t.severity ? n++ : 'warn' === t.severity && a++;\n return {\n filePath: e,\n taskCount: t,\n issueCount: n + a,\n errorCount: n,\n warningCount: a,\n duration: s\n };\n}, retrieveSkippedResults = async (e, t, r)=>{\n if (0 === e.length) return [];\n a(\"engine\", `Retrieving results for ${e.length} skipped tasks...`);\n let s = [], n = [];\n if (t) for (let r of e){\n let e = t.get(r.taskId);\n e && isRuleResult(e) ? s.push(e) : n.push(r);\n }\n else n.push(...e);\n if (n.length > 0 && r) {\n a(\"engine\", `Fetching ${n.length} results from cache service...`);\n let e = n.map((e)=>e.taskId), t = await r.results.getMany(e);\n for (let e of n){\n let r = t.get(e.taskId);\n r && isRuleResult(r) && s.push(r);\n }\n }\n return a(\"engine\", `Retrieved ${s.length} results from cache`), s;\n};\n","import { SPINNER_FRAME_INTERVAL_MS as t } from './constants.js';\nlet FRAMES = [\n '⠋',\n '⠙',\n '⠹',\n '⠸',\n '⠼',\n '⠴',\n '⠦',\n '⠧',\n '⠇',\n '⠏'\n];\nexport class Spinner {\n frameIndex = 0;\n interval = null;\n message = '';\n start(e) {\n this.message = e, this.frameIndex = 0, process.stdout.write('\\x1B[?25l'), this.interval = setInterval(()=>{\n process.stdout.write(`\\r${FRAMES[this.frameIndex]} ${this.message}`), this.frameIndex = (this.frameIndex + 1) % FRAMES.length;\n }, t);\n }\n update(t) {\n this.message = t;\n }\n stop(t) {\n this.interval && (clearInterval(this.interval), this.interval = null), process.stdout.write('\\r\\x1B[K'), t && process.stdout.write(t + '\\n'), process.stdout.write('\\x1B[?25h');\n }\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ngcompass/engine",
|
|
3
|
+
"version": "0.1.1-beta",
|
|
4
|
+
"description": "Rule execution engine for ngcompass",
|
|
5
|
+
"sideEffects": false,
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"type": "module",
|
|
10
|
+
"engines": {
|
|
11
|
+
"node": "^20.19.0 || >=22.12.0"
|
|
12
|
+
},
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"import": "./dist/index.js",
|
|
17
|
+
"require": "./dist/index.cjs"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist"
|
|
22
|
+
],
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"lru-cache": "^11.2.5",
|
|
25
|
+
"oxc-parser": "^0.112.0",
|
|
26
|
+
"p-limit": "^6.1.0",
|
|
27
|
+
"@ngcompass/common": "0.1.1-beta",
|
|
28
|
+
"@ngcompass/ast": "0.1.1-beta",
|
|
29
|
+
"@ngcompass/cache": "0.1.1-beta",
|
|
30
|
+
"@ngcompass/planner": "0.1.1-beta"
|
|
31
|
+
},
|
|
32
|
+
"peerDependencies": {
|
|
33
|
+
"typescript": "5.9.3"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/node": "^25.1.0"
|
|
37
|
+
},
|
|
38
|
+
"keywords": [
|
|
39
|
+
"angular",
|
|
40
|
+
"engine",
|
|
41
|
+
"rules",
|
|
42
|
+
"ngcompass"
|
|
43
|
+
],
|
|
44
|
+
"author": "ngcompass",
|
|
45
|
+
"license": "MIT",
|
|
46
|
+
"publishConfig": {
|
|
47
|
+
"access": "public"
|
|
48
|
+
},
|
|
49
|
+
"scripts": {
|
|
50
|
+
"build": "tsup",
|
|
51
|
+
"build:prod": "tsup --minify",
|
|
52
|
+
"dev": "tsup --watch",
|
|
53
|
+
"test": "vitest run --passWithNoTests",
|
|
54
|
+
"test:watch": "vitest --passWithNoTests",
|
|
55
|
+
"typecheck": "tsc --noEmit",
|
|
56
|
+
"clean": "rimraf dist .turbo"
|
|
57
|
+
}
|
|
58
|
+
}
|