@ngcompass/rules 0.1.1-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/execution-worker.cjs +1 -1
- package/dist/execution-worker.cjs.map +1 -1
- package/dist/execution-worker.js +1 -1
- package/dist/execution-worker.js.map +1 -1
- package/dist/type-aware-worker.cjs +217 -0
- package/dist/type-aware-worker.cjs.map +1 -0
- package/dist/type-aware-worker.d.cts +2 -0
- package/dist/type-aware-worker.d.ts +2 -0
- package/dist/type-aware-worker.js +217 -0
- package/dist/type-aware-worker.js.map +1 -0
- package/package.json +9 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/execution-worker.ts","../src/registry/rule-registry.ts","../src/engine/adapter.ts","../src/rules/correctness/component-no-manual-detect-changes.rule.ts","../src/rule-utils.ts","../src/recommendations.ts","../src/rules/correctness/signal-no-side-effects-in-computed.rule.ts","../src/rules/correctness/signal-effect-must-be-destroy-scoped.rule.ts","../src/rules/correctness/rxjs-no-nested-subscribe.rule.ts","../src/rules/performance/prefer-on-push.rule.ts","../src/rules/performance/template-no-call-expression.rule.ts","../src/rules/performance/template-trackby-required.rule.ts","../src/rules/performance/template-no-object-literal-binding.rule.ts","../src/rules/performance/template-no-array-literal-binding.rule.ts","../src/rules/security/no-bypass-sanitization.rule.ts","../src/rules/security/template-no-unsafe-bindings.rule.ts","../src/rules/ssr/no-document-access.rule.ts","../src/rules/ssr/prefer-after-render-over-after-view-init.rule.ts","../src/rules/reactivity/rxjs-require-take-until-destroyed.rule.ts","../src/rules/reactivity/rxjs-no-subscribe-in-component.rule.ts","../src/rules/reactivity/rxjs-avoid-subject-as-event-bus.rule.ts","../src/rules/reactivity/rxjs-prefer-to-signal-for-template-state.rule.ts","../src/rules/reactivity/to-signal-require-initial-value.rule.ts","../src/rules/reactivity/signal-prefer-computed-over-sync-effect.rule.ts","../src/rules/reactivity/signal-avoid-untracked-overuse.rule.ts","../src/rules/modern-api/prefer-inject.rule.ts","../src/rules/modern-api/signal-prefer-input-signal.rule.ts","../src/rules/modern-api/signal-prefer-output-function.rule.ts","../src/rules/modern-api/signal-prefer-model.rule.ts","../src/rules/template/template-prefer-control-flow.rule.ts","../src/rules/template/template-no-async-pipe-duplication.rule.ts","../src/rules/testing/spec-no-focused-test.rule.ts","../src/registry/register-all.ts"],"names":["RuleRegistry","_handlers","Map","_meta","register","plugin","opts","has","name","allowOverride","Error","set","handler","meta","get","getRuleNames","Array","from","keys","getAll","getMeta","getMetadata","overrides","description","category","dependencyType","requires","tsAst","filePatterns","getRegistryEntry","metadata","defaultConfig","severity","options","toReadonlyMap","map","entry","size","_globalRegistry","getGlobalRegistry","registerNewEngineRule","debug","isNewEngineRule","ruleName","executeBatchedNewEngineRules","ruleNames","context","registry","handlers","push","length","filePath","results","performance","runSinglePassAnalysis","traversalMs","toFixed","nodesVisited","cacheStats","hits","misses","budgetViolations","_tsModule","unwrapNode","node","current","t","type","expression","isMemberExpressionLike","getStaticPropertyName","member","prop","property","computed","value","getNodeStart","start","span","isCalleeNamed","calleeRaw","callee","getCalleeName","callExprRaw","call","isSubscribeCall","getObjectProperty","objExpr","props","properties","isArray","key","isLiteralTrue","n","Boolean","isLiteralNullOrUndefined","SKIP_CHILD_KEYS","Set","childNodes","el","isConstructorMethod","def","kind","isMethodDefinition","getConstructorMember","classBody","m","getMethodBody","body","getMethodName","getClassBody","classNode","inner","isAllowedEffectCall","callExpr","args","arguments","injectorProp","manualCleanupProp","findEffectCalls","root","stack","pop","child","getCallbackArg","cb","getFunctionBody","fn","collectAllRxjsAliases","sourceText","exportedNames","result","aliasPatternsByName","RegExp","importPattern","importMatch","exec","specifier","split","s","trim","filter","exportedName","aliasPattern","aliasMatch","add","VALID_TEARDOWN_OPERATORS","getOperatorNameFromPipeArg","arg","hasTeardownInPipeCall","pipeCall","hasTeardownInReceiverChain","receiverExpr","object","getTemplateAbsoluteOffset","nodeStart","templateStartOffset","template","Number","isFinite","HTTP_CLIENT_VERBS","HTTP_CLIENT_PROP_NAMES","HTTP_ACTION_PREFIXES","findObservableSourceCall","isLikelyHttpObservable","sourceCall","methodName","receiverObj","httpPropName","lower","toLowerCase","prefix","startsWith","getParamsArray","funcNode","params","items","elements","getParamIdentifierName","param","p","parameter","left","argument","getParamTypeName","typeAnnotation","typeName","right","_tsModuleLoaded","requireTypescript","require","getTsSymbolAtNode","oxcNode","typeChecker","ts","sourceFile","fileContent","createSourceFile","ScriptTarget","Latest","tsNode","pos","getStart","getEnd","forEachChild","c","getSymbolAtLocation","INJECTABLE_SYMBOL_SUFFIXES","isLikelyAngularInjectableSymbol","symbol","getName","some","suffix","endsWith","decls","getDeclarations","decl","canHaveDecorators","dec","getDecorators","expr","isCallExpression","isIdentifier","text","RECOMMENDATIONS","CODE_EXAMPLES","RULE_NAME","DISCOURAGED_CDR_METHODS","HEURISTIC_CDR_NAMES","componentNoManualDetectChangesRule","createAnyAngularClassRule","classNodeWrapper","explicitAliases","hasExplicitAliases","analyzeComponent","isCdrAlias","aliases","ctor","alias","firstArg","token","isOnPush","changeDetection","ChangeDetectionStrategy","OnPush","failures","callNode","target","receiver","propertyName","line","column","locator","location","message","fix","codeExample","SIDE_EFFECT_METHODS","WRITE_METHODS","FUNCTION_NODE_TYPES","signalNoSideEffectsInComputedRule","createCallExpressionRule","callback","violation","operator","violationNode","signalEffectDestroyScopedRule","methodNode","effectCall","propNode","keyNode","OBSERVER_HANDLER_NAMES","isSubscribeHandler","rxjsNoNestedSubscribeRule","getHandlersFromObserver","propertyNode","i","Math","min","getNumberProp","obj","undefined","normalizeFilePath","replace","preferOnPushRule","createComponentRule","className","offset","componentName","moduleContext","project","currentFilePath","ngModuleMap","classToFile","moduleFile","moduleInfo","isStandalone","declarations","declaredFile","siblingComponentCount","declaredClass","moduleName","siblingNote","projectContext","ALLOWED_FREE_CALL_NAMES","ALLOWED_MEMBER_CALL_NAMES","isCallExpressionLike","unwrapped","templateNoCallExpressionRule","createTemplateExpressionRule","looksLikeGetter","crossRef","signalMembers","componentPath","getProgram","getSourceFile","classDecl","statements","find","isClassDeclaration","classType","getTypeAtLocation","getPropertyOfType","isSignalSymbol","valueDeclaration","getTypeOfSymbolAtLocation","typeStr","typeToString","includes","sourceSpan","htmlAst","createFailure","templateTrackByRequiredRule","createTemplateRule","analysis","attributes","microsyntax","match","blocks","parameters","test","templateNoObjectLiteralBindingRule","templateNoArrayLiteralBindingRule","BYPASS_METHODS","noBypassSanitizationRule","UNSAFE","desc","KNOWN_SAFE_PIPES","SANITIZE_METHOD_CALL","templateNoUnsafeBindingsRule","createTemplateAttributeRule","BROWSER_GLOBALS","noDocumentAccessRule","streamNode","browserGuardVars","vars","init","id","reported","guardType","alternate","consequent","rootName","curr","DOM_PATTERNS","DOM_PATTERN_PREFIXES","preferAfterRenderOverAfterViewInitRule","decoratorName","hookName","method","manualTeardownCache","hasManualTeardownInNgOnDestroy","rxjsRequireTakeUntilDestroyedRule","clear","rxjsNoSubscribeInComponentRule","pipeCallee","generic","templateRefs","templateReferences","propName","baseName","slice","SUBJECT_TYPES","TEARDOWN_NAMES","UI_STATE_PATTERN","extractCalls","found","rxjsAvoidSubjectRule","names","bridgeNames","decorators","d","keyName","pipeNames","accessibility","initializer","OBSERVABLE_TYPES","rxjsPreferToSignalRule","modifiers","typeAnn","typeNode","tn","toSignalRequireInitialValueRule","initial","sync","ASYNC_METHODS","signalPreferComputedRule","hasRead","hasWrite","hasAsync","hasLinked","firstWrite","res","inEffect","sym","RENDER_HOOKS","RENDER_HOOK_PATTERN","rangeCache","signalAvoidUntrackedRule","parent","ranges","program","programBody","end","e","DIISH_NAMES","NON_DIISH_NAMES","DIISH_SUFFIXES","PRIMITIVES","preferInjectRule","diParams","readonly","offenders","join","isInputDecorator","signalPreferInputSignalRule","standaloneComponents","String","msg","signalPreferOutputFunctionRule","val","getDecoratorName","hasSignal","signalPreferModelRule","inputs","outputs","_","base","inputNode","LEGACY_DIRECTIVES","templatePreferControlFlowRule","directiveName","modern","seenByTemplateKey","WeakMap","templateNoAsyncPipeDuplicationRule","findAsyncExpression","nodeRaw","stringify","depth","v","a","templateKey","state","seen","FOCUSED_NAMES","Object","SKIPPED_NAMES","getIdentifierName","specNoFocusedTestRule","focusedName","objName","registerAllBuiltinRules","configureRuleExecutor","parentPort","rootDir","tasks","workerData","errors","createAnalysisContext","tasksByFile","task","fileTasks","fileStart","now","batchResults","executeBatchedTasks","postMessage","buildFileProgress","error","evict","taskCount","duration","errorCount","warningCount","failure","issueCount"],"mappings":"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","file":"execution-worker.cjs","sourcesContent":["import { parentPort as e, workerData as r } from \"node:worker_threads\";\nimport { createAnalysisContext as o, executeBatchedTasks as t, configureRuleExecutor as s } from \"@ngcompass/engine\";\nimport { registerAllBuiltinRules as i } from \"./registry/register-all.js\";\nimport { executeBatchedNewEngineRules as l, isNewEngineRule as n } from \"./engine/adapter.js\";\n(async ()=>{\n if (i(), s(l, n), !e) return;\n let { rootDir: f, tasks: a } = r, g = [], p = [], m = o(f), u = new Map();\n for (let e of a){\n let r = u.get(e.filePath) ?? [];\n r.push(e), u.set(e.filePath, r);\n }\n for (let [r, o] of u){\n let s = performance.now();\n try {\n let i = await t(o, m);\n g.push(...i), e.postMessage(buildFileProgress(r, o.length, i, performance.now() - s));\n } catch (t) {\n for (let e of o)p.push({\n task: e,\n error: t instanceof Error ? t.message : String(t)\n });\n e.postMessage(buildFileProgress(r, o.length, [], performance.now() - s));\n } finally{\n m.evict(r);\n }\n }\n e.postMessage({\n results: g,\n errors: p\n });\n})();\nlet buildFileProgress = (e, r, o, t)=>{\n let s = 0, i = 0;\n for (let e of o)for (let r of e.failures)'error' === r.severity ? s++ : 'warn' === r.severity && i++;\n return {\n kind: 'file-progress',\n filePath: e,\n taskCount: r,\n issueCount: s + i,\n errorCount: s,\n warningCount: i,\n duration: t\n };\n};\n","import { RECOMMENDATIONS as e } from '../recommendations.js';\nimport { getPresetsForRule as t } from '../presets/index.js';\nimport { allPreset as r } from '../presets/all.js';\nexport class RuleRegistry {\n _handlers = new Map();\n _meta = new Map();\n register(e, t = {}) {\n if (this._handlers.has(e.name) && !t.allowOverride) throw Error(`[ngcompass] Rule \"${e.name}\" is already registered. Use allowOverride: true to replace an existing rule intentionally.`);\n this._handlers.set(e.name, e.handler), e.meta && this._meta.set(e.name, e.meta);\n }\n get(e) {\n return this._handlers.get(e);\n }\n has(e) {\n return this._handlers.has(e);\n }\n getRuleNames() {\n return Array.from(this._handlers.keys());\n }\n getAll() {\n return this._handlers;\n }\n getMeta(e) {\n return this._meta.get(e);\n }\n getMetadata(e) {\n if (!this._handlers.has(e)) return;\n let t = this._meta.get(e) ?? {};\n return {\n name: e,\n description: t.description || `Rule: ${e}`,\n category: t.category || 'general',\n dependencyType: t.dependencyType || 'standalone',\n requires: {\n tsAst: !0,\n ...t.requires\n },\n filePatterns: t.filePatterns\n };\n }\n getRegistryEntry(e) {\n let t = this.getMetadata(e);\n if (t) return {\n name: e,\n metadata: t,\n defaultConfig: {\n severity: 'warn',\n options: {}\n }\n };\n }\n toReadonlyMap() {\n let e = new Map();\n for (let t of this._handlers.keys()){\n let r = this.getRegistryEntry(t);\n r && e.set(t, r);\n }\n return e;\n }\n get size() {\n return this._handlers.size;\n }\n}\nlet _globalRegistry = null;\nexport const getGlobalRegistry = ()=>(_globalRegistry || (_globalRegistry = new RuleRegistry()), _globalRegistry);\nexport const resetGlobalRegistry = ()=>{\n _globalRegistry = null;\n};\nexport const isKnownRule = (e)=>getGlobalRegistry().has(e);\nexport const getRuleMetadata = (e)=>getGlobalRegistry().getMetadata(e);\nexport const getAllRuleNames = ()=>getGlobalRegistry().getRuleNames();\nexport const getRuleRegistryMap = ()=>getGlobalRegistry().toReadonlyMap();\nexport function getRuleListEntries() {\n let s = getGlobalRegistry(), a = [];\n for (let l of s.getRuleNames()){\n let n = s.getMetadata(l);\n a.push({\n name: l,\n description: e[l] ?? n?.description ?? `Rule: ${l}`,\n domain: n?.category ?? 'general',\n severity: r.rules[l] ?? 'warn',\n presets: t(l)\n });\n }\n return a;\n}\n","import { runSinglePassAnalysis as t } from '@ngcompass/engine';\nimport { debug as e } from '@ngcompass/common';\nimport { getGlobalRegistry as s } from '../registry/rule-registry.js';\nexport const registerNewEngineRule = (t, a)=>{\n let o = {\n name: t.name,\n handler: t,\n meta: {\n dependencyType: 'component',\n ...t.meta,\n category: a ?? t.meta?.category ?? 'best-practice',\n requires: {\n ...t.meta?.requires\n }\n }\n };\n s().register(o), e('engine', `Registered rule: ${t.name}`);\n};\nexport const isNewEngineRule = (t)=>s().has(t);\nexport const getNewEngineRuleNames = ()=>s().getRuleNames();\nexport const executeBatchedNewEngineRules = (a, o)=>{\n let n = s(), i = [];\n for (let t of a){\n let e = n.get(t);\n e && i.push(e);\n }\n if (0 === i.length) return [];\n e('engine', `Executing ${i.length} rules in single pass on ${o.filePath}`);\n let { results: r, performance: l } = t(i, o);\n return e('engine', `Single-pass complete: ${l.traversalMs.toFixed(2)}ms, ${l.nodesVisited} nodes`), e('engine', `Cache hit rate: ${(l.cacheStats.hits / (l.cacheStats.hits + l.cacheStats.misses || 1) * 100).toFixed(1)}%`), l.budgetViolations.length > 0 && e('engine', 'Performance budget violations:', l.budgetViolations), r;\n};\nlet stats = {\n totalExecutions: 0,\n totalBatchedExecutions: 0,\n totalTraversalMs: 0,\n totalCacheHits: 0,\n totalCacheMisses: 0\n};\nexport const getEngineStats = ()=>{\n let t = stats.totalCacheHits + stats.totalCacheMisses || 1;\n return {\n totalExecutions: stats.totalExecutions,\n totalBatchedExecutions: stats.totalBatchedExecutions,\n avgTraversalMs: stats.totalExecutions > 0 ? stats.totalTraversalMs / stats.totalExecutions : 0,\n avgCacheHitRate: stats.totalCacheHits / t * 100\n };\n};\nexport const resetEngineStats = ()=>{\n stats.totalExecutions = 0, stats.totalBatchedExecutions = 0, stats.totalTraversalMs = 0, stats.totalCacheHits = 0, stats.totalCacheMisses = 0;\n};\n","import { ChangeDetectionStrategy as e, analyzeComponent as t } from '@ngcompass/ast';\nimport { createAnyAngularClassRule as n } from '@ngcompass/engine';\nimport { childNodes as r, getClassBody as o, getNodeStart as i, getParamIdentifierName as l, getParamTypeName as a, getParamsArray as c, getStaticPropertyName as f, getConstructorMember as u, isMemberExpressionLike as s, unwrapNode as p } from '../../rule-utils';\nimport { CODE_EXAMPLES as d, RECOMMENDATIONS as m } from '../../recommendations';\nlet RULE_NAME = 'component-no-manual-detect-changes', DISCOURAGED_CDR_METHODS = new Set([\n 'detectChanges',\n 'markForCheck'\n]), HEURISTIC_CDR_NAMES = new Set([\n 'cdr',\n 'cdref',\n 'changedetectorref',\n '_cdr',\n '_cdref',\n 'changedetector',\n '_changedetector',\n 'changedetectionref',\n 'cd',\n '_cd'\n]);\nexport const componentNoManualDetectChangesRule = n(RULE_NAME, (n, h)=>{\n var g, E;\n let C, _, D = n.node;\n if (E = D, t(E)?.type !== 'Component') return null;\n let R = (_ = (g = function(e) {\n let t = new Set(), n = o(e), r = u(n);\n if (r) {\n for (let e of c(r.value ?? r))if ('ChangeDetectorRef' === a(e)) {\n let n = l(e);\n n && t.add(n);\n }\n }\n for (let e of n)if ('PropertyDefinition' === e.type && e.value) {\n let n = p(e.value);\n if (n && function(e) {\n if ('CallExpression' !== e.type) return !1;\n let t = p(e.callee);\n if (t?.type !== 'Identifier' || 'inject' !== t.name) return !1;\n let [n] = e.arguments ?? [], r = p(n);\n return r?.type === 'Identifier' && 'ChangeDetectorRef' === r.name;\n }(n)) {\n let n = e.key;\n n?.type === 'Identifier' && t.add(n.name);\n }\n }\n return t;\n }(D)).size > 0, (e)=>!!g.has(e) || !_ && HEURISTIC_CDR_NAMES.has(e.toLowerCase())), y = (C = t(D), C?.type === 'Component' && C.changeDetection?.kind === 'literal' && C.changeDetection.value === e.OnPush), M = function(e, t, n, l) {\n let a = [], c = [\n ...o(e)\n ];\n for(; c.length > 0;){\n let e = p(c.pop());\n if (!e) continue;\n let o = function(e) {\n if ('CallExpression' !== e.type) return null;\n let t = p(e.callee);\n if (!s(t)) return null;\n let n = f(t);\n return n && DISCOURAGED_CDR_METHODS.has(n) ? n : null;\n }(e);\n for (let u of (o && function(e, t) {\n if ('CallExpression' !== e.type) return !1;\n let n = p(e.callee);\n if (!n || !s(n)) return !1;\n let r = p(n.object);\n if (!r) return !1;\n if ('Identifier' === r.type) return t(r.name);\n if (!s(r)) return !1;\n let o = p(r.object), i = f(r);\n return (o?.type === 'ThisExpression' || o?.type === 'Identifier' && 'this' === o.name) && !!i && t(i);\n }(e, l) && (n && 'markForCheck' === o || a.push(function(e, t, n, r) {\n let o = i(e), { line: l, column: a } = t.locator.location(o);\n return {\n filePath: t.filePath,\n ruleName: RULE_NAME,\n message: r ? 'Manual change detection in an OnPush component couples rendering to imperative calls.' : `Manual change detection (${n}) can hide state-flow bugs and make rendering harder to predict.`,\n line: l,\n column: a,\n severity: r ? 'warn' : 'error',\n fix: m[RULE_NAME],\n codeExample: d[RULE_NAME]\n };\n }(e, t, o, n))), r(e)))c.push(u);\n }\n return a;\n }(D, h, y, R);\n return M.length > 0 ? M : null;\n});\n","let _tsModule;\nexport function unwrapNode(e) {\n let t = e;\n for(; t;){\n let e = t.type;\n if ('ChainExpression' === e || 'TSNonNullExpression' === e || 'TSAsExpression' === e || 'ParenthesizedExpression' === e || 'TSInstantiationExpression' === e || 'TSSatisfiesExpression' === e) {\n t = t.expression;\n continue;\n }\n break;\n }\n return t ?? null;\n}\nexport function isMemberExpressionLike(e) {\n let t = e?.type;\n return 'MemberExpression' === t || 'StaticMemberExpression' === t || 'OptionalMemberExpression' === t;\n}\nexport function getStaticPropertyName(e) {\n if (!e) return '';\n let t = e.property;\n return t ? e.computed ? 'Literal' === t.type && 'string' == typeof t.value ? t.value : '' : t.name ?? '' : '';\n}\nexport function getNodeStart(e) {\n return e ? e.start ?? e.span?.start ?? 0 : 0;\n}\nexport function isCalleeNamed(e, t) {\n let r = unwrapNode(e);\n return !!r && ('Identifier' === r.type ? (r.name ?? '') === t : !!isMemberExpressionLike(r) && getStaticPropertyName(r) === t);\n}\nexport function getCalleeName(e) {\n let t = unwrapNode(e);\n if (!t || 'CallExpression' !== t.type) return '';\n let r = unwrapNode(t.callee);\n return r?.type === 'Identifier' ? r.name ?? '' : isMemberExpressionLike(r) ? getStaticPropertyName(r) : '';\n}\nexport function isSubscribeCall(e) {\n let t = unwrapNode(e?.callee);\n return !!isMemberExpressionLike(t) && 'subscribe' === getStaticPropertyName(t);\n}\nexport function getObjectProperty(e, t) {\n if (!e || 'ObjectExpression' !== e.type) return null;\n let r = e.properties;\n if (!Array.isArray(r)) return null;\n for (let e of r){\n if (!e || 'Property' !== e.type) continue;\n let r = e.key;\n if ((r?.type === 'Identifier' ? r.name : r?.type === 'Literal' && 'string' == typeof r.value ? r.value : '') === t) return e;\n }\n return null;\n}\nexport function isLiteralTrue(e) {\n let t = unwrapNode(e);\n return !!(t && 'Literal' === t.type && !0 === t.value);\n}\nexport function isLiteralNullOrUndefined(e) {\n let t = unwrapNode(e);\n return !t || 'Literal' === t.type && null === t.value || 'Identifier' === t.type && 'undefined' === t.name;\n}\nlet SKIP_CHILD_KEYS = new Set([\n 'parent',\n 'span',\n 'loc',\n 'range',\n 'start',\n 'end',\n 'type'\n]);\nexport function* childNodes(e) {\n if (e && 'object' == typeof e) {\n if (Array.isArray(e)) {\n for (let t of e)t && 'object' == typeof t && (yield t);\n return;\n }\n for(let t in e){\n if (SKIP_CHILD_KEYS.has(t)) continue;\n let r = e[t];\n if (r) if (Array.isArray(r)) for (let e of r)e && 'object' == typeof e && (yield e);\n else 'object' == typeof r && r.type && (yield r);\n }\n }\n}\nexport function isConstructorMethod(e) {\n if (!e) return !1;\n if ('constructor' === e.kind) return !0;\n let t = e.key;\n return t?.type === 'Identifier' && 'constructor' === t.name || t?.type === 'Literal' && 'constructor' === t.value;\n}\nexport function isMethodDefinition(e) {\n if (!e) return !1;\n let t = e.type;\n return 'MethodDefinition' === t || 'TSAbstractMethodDefinition' === t || 'ClassMethod' === t || 'MethodDeclaration' === t;\n}\nexport function getConstructorMember(e) {\n for (let t of e)if (t && isMethodDefinition(t) && isConstructorMethod(t)) return t;\n return null;\n}\nexport function getMethodBody(e) {\n if (!e) return null;\n let t = e.value ?? e;\n return t?.body ?? null;\n}\nexport function getMethodName(e) {\n let t = e?.key;\n return t ? 'Identifier' === t.type ? t.name ?? '<method>' : 'Literal' === t.type && 'string' == typeof t.value ? t.value : '<method>' : '<method>';\n}\nexport function getClassBody(e) {\n if (!e) return [];\n let t = e.body;\n if (Array.isArray(t)) return t;\n if (t && 'object' == typeof t && 'body' in t) {\n let e = t.body;\n if (Array.isArray(e)) return e;\n }\n return [];\n}\nexport function isAllowedEffectCall(e) {\n let t = unwrapNode(e);\n if (!t || 'CallExpression' !== t.type) return !1;\n let r = t.arguments;\n if (!Array.isArray(r) || r.length < 2) return !1;\n let n = unwrapNode(r[1]);\n if (!n || 'ObjectExpression' !== n.type) return !1;\n let i = getObjectProperty(n, 'injector');\n if (i && !isLiteralNullOrUndefined(i.value)) return !0;\n let o = getObjectProperty(n, 'manualCleanup');\n return !!(o && isLiteralTrue(o.value));\n}\nexport function findEffectCalls(e) {\n if (!e) return [];\n let t = [], r = [\n e\n ];\n for(; r.length;){\n let e = unwrapNode(r.pop());\n if (e) for (let n of ('CallExpression' === e.type && isCalleeNamed(e.callee, 'effect') && !isAllowedEffectCall(e) && t.push(e), childNodes(e)))r.push(n);\n }\n return t;\n}\nexport function getCallbackArg(e) {\n let t = e?.arguments;\n if (!Array.isArray(t) || 0 === t.length) return null;\n let r = unwrapNode(t[0]);\n return r && ('ArrowFunctionExpression' === r.type || 'FunctionExpression' === r.type) ? r : null;\n}\nexport function getFunctionBody(e) {\n if (!e) return null;\n let t = e.body;\n return t ? unwrapNode(t) : null;\n}\nexport function collectRxjsAliases(e, t) {\n let r = new Set([\n t\n ]);\n if ('string' != typeof e || 0 === e.length) return r;\n for (let n of [\n /import\\s*\\{\\s*([^}]+)\\s*\\}\\s*from\\s*['\"]rxjs['\"]/g,\n /import\\s*\\{\\s*([^}]+)\\s*\\}\\s*from\\s*['\"]rxjs\\/[^'\"]+['\"]/g\n ]){\n let i;\n for(; null !== (i = n.exec(e));)for (let e of (i[1] ?? '').split(',').map((e)=>e.trim()).filter(Boolean)){\n let n = RegExp(`^${t}(?:\\\\s+as\\\\s+([A-Za-z_$][\\\\w$]*))?$`).exec(e);\n n && r.add(n[1] ?? t);\n }\n }\n return r;\n}\nexport function collectAllRxjsAliases(e, t) {\n let r = new Map([\n ...t\n ].map((e)=>[\n e,\n new Set([\n e\n ])\n ]));\n if ('string' != typeof e || 0 === e.length) return r;\n let n = new Map([\n ...t\n ].map((e)=>[\n e,\n RegExp(`^${e}(?:\\\\s+as\\\\s+([A-Za-z_$][\\\\w$]*))?$`)\n ]));\n for (let t of [\n /import\\s*\\{\\s*([^}]+)\\s*\\}\\s*from\\s*['\"]rxjs['\"]/g,\n /import\\s*\\{\\s*([^}]+)\\s*\\}\\s*from\\s*['\"]rxjs\\/[^'\"]+['\"]/g\n ]){\n let i;\n for(; null !== (i = t.exec(e));)for (let e of (i[1] ?? '').split(',').map((e)=>e.trim()).filter(Boolean))for (let [t, i] of n){\n let n = i.exec(e);\n n && r.get(t).add(n[1] ?? t);\n }\n }\n return r;\n}\nexport const VALID_TEARDOWN_OPERATORS = new Set([\n 'takeUntilDestroyed',\n 'takeUntil',\n 'take',\n 'first',\n 'takeWhile'\n]);\nexport function getOperatorNameFromPipeArg(e) {\n let t = unwrapNode(e);\n if (!t) return '';\n if ('Identifier' === t.type) return t.name ?? '';\n if ('CallExpression' === t.type) {\n let e = unwrapNode(t.callee);\n return e?.type === 'Identifier' ? e.name ?? '' : isMemberExpressionLike(e) ? getStaticPropertyName(e) : '';\n }\n return isMemberExpressionLike(t) ? getStaticPropertyName(t) : '';\n}\nexport function hasTeardownInPipeCall(e) {\n let t = e.arguments;\n if (!Array.isArray(t)) return !1;\n for (let e of t)if (VALID_TEARDOWN_OPERATORS.has(getOperatorNameFromPipeArg(e))) return !0;\n return !1;\n}\nexport function hasTeardownInReceiverChain(e) {\n let t = e;\n for(; t;){\n let e = unwrapNode(t);\n if (!e || 'CallExpression' !== e.type) break;\n let r = unwrapNode(e.callee);\n if (!isMemberExpressionLike(r)) break;\n if ('pipe' === getStaticPropertyName(r) && hasTeardownInPipeCall(e)) return !0;\n t = r?.object;\n }\n return !1;\n}\nexport function getTemplateAbsoluteOffset(e, t) {\n let r = e.template?.templateStartOffset;\n return 'number' == typeof r && Number.isFinite(r) ? t + r : t;\n}\nlet HTTP_CLIENT_VERBS = new Set([\n 'get',\n 'post',\n 'put',\n 'patch',\n 'delete',\n 'head',\n 'options',\n 'jsonp',\n 'request'\n]), HTTP_CLIENT_PROP_NAMES = new Set([\n 'http',\n 'httpClient',\n '_http',\n '_httpClient'\n]), HTTP_ACTION_PREFIXES = [\n 'get',\n 'fetch',\n 'load',\n 'save',\n 'create',\n 'update',\n 'delete',\n 'remove',\n 'submit',\n 'send',\n 'post',\n 'put',\n 'patch',\n 'upload',\n 'download'\n];\nexport function findObservableSourceCall(e) {\n let t = e;\n for(; t;){\n let e = unwrapNode(t);\n if (!e || 'CallExpression' !== e.type) break;\n let r = unwrapNode(e.callee);\n if (!isMemberExpressionLike(r)) break;\n if ('pipe' !== getStaticPropertyName(r)) return e;\n t = r?.object;\n }\n return null;\n}\nexport function isLikelyHttpObservable(e) {\n if (!e) return !1;\n let t = unwrapNode(e);\n if (!t || 'CallExpression' !== t.type) return !1;\n let r = unwrapNode(t.callee);\n if (!isMemberExpressionLike(r)) return !1;\n let n = getStaticPropertyName(r);\n if (!n) return !1;\n let i = unwrapNode(r?.object), o = Array.isArray(t.arguments) ? t.arguments : [];\n if (HTTP_CLIENT_VERBS.has(n) && isMemberExpressionLike(i)) {\n let e = getStaticPropertyName(i);\n if (HTTP_CLIENT_PROP_NAMES.has(e)) return !0;\n }\n if (o.length > 0) {\n let e = n.toLowerCase();\n for (let t of HTTP_ACTION_PREFIXES)if (e.startsWith(t) && n.length > t.length) return !0;\n }\n return !1;\n}\nexport function getParamsArray(e) {\n if (!e) return [];\n let t = e.params;\n if (Array.isArray(t)) return t;\n if (t && 'object' == typeof t) {\n if ('items' in t && Array.isArray(t.items)) return t.items;\n if ('elements' in t && Array.isArray(t.elements)) return t.elements;\n }\n return [];\n}\nexport function getParamIdentifierName(e) {\n let t = unwrapNode(e);\n if (!t) return '';\n if ('Identifier' === t.type) return t.name ?? '';\n if ('TSParameterProperty' === t.type) return getParamIdentifierName(t.parameter);\n if ('AssignmentPattern' === t.type) {\n let e = unwrapNode(t.left);\n return e?.type === 'Identifier' ? e.name ?? '' : '';\n }\n if ('RestElement' === t.type) {\n let e = unwrapNode(t.argument);\n return e?.type === 'Identifier' ? e.name ?? '' : '';\n }\n return '';\n}\nexport function getParamTypeName(e) {\n let t = unwrapNode(e);\n if (!t) return '';\n if ('TSParameterProperty' === t.type) return getParamTypeName(t.parameter);\n let r = t.typeAnnotation, n = unwrapNode(r?.typeAnnotation ?? r);\n if (!n) return '';\n if ('TSTypeReference' === n.type || 'TypeReference' === n.type) {\n let e = n.typeName ?? n.name;\n if (e && 'object' == typeof e) {\n if ('Identifier' === e.type) return e.name ?? '';\n if ('TSQualifiedName' === e.type) return e.right?.name ?? '';\n }\n if ('string' == typeof e) return e;\n }\n return '';\n}\nlet _tsModuleLoaded = !1;\nfunction requireTypescript() {\n if (!_tsModuleLoaded) {\n try {\n _tsModule = require(\"typescript\");\n } catch {}\n _tsModuleLoaded = !0;\n }\n return _tsModule;\n}\nexport function getTsSymbolAtNode(e, t) {\n if (!e || !t.typeChecker) return;\n let r = requireTypescript();\n if (r) try {\n !t.sourceFile && t.fileContent && (t.sourceFile = r.createSourceFile(t.filePath, t.fileContent, r.ScriptTarget.Latest, !0));\n let n = t.sourceFile;\n if (!n) return;\n let i = function(e, t, r) {\n if (t < e.getStart() || t >= e.getEnd()) return;\n let n = e;\n for(;;){\n let e = r.forEachChild(n, (e)=>{\n if (t >= e.getStart() && t < e.getEnd()) return e;\n });\n if (!e) break;\n n = e;\n }\n return n;\n }(n, getNodeStart(e), r);\n if (!i) return;\n return t.typeChecker.getSymbolAtLocation(i);\n } catch {\n return;\n }\n}\nlet INJECTABLE_SYMBOL_SUFFIXES = [\n 'Service',\n 'Facade',\n 'Store',\n 'Client',\n 'Repository',\n 'Adapter',\n 'Controller',\n 'Provider',\n 'Registry',\n 'Logger',\n 'Router',\n 'Injector',\n 'Handler',\n 'Interceptor',\n 'Guard',\n 'Resolver',\n 'Validator'\n];\nexport function isLikelyAngularInjectableSymbol(e) {\n if (!e) return !1;\n let t = requireTypescript();\n if (!t) return !1;\n try {\n let r = e.getName();\n if (INJECTABLE_SYMBOL_SUFFIXES.some((e)=>r.endsWith(e))) return !0;\n let n = e.getDeclarations();\n if (!n || 0 === n.length) return !1;\n let i = n[0];\n if (!t.canHaveDecorators(i)) return !1;\n for (let e of t.getDecorators(i) ?? []){\n let r = e.expression;\n if (t.isCallExpression(r) && t.isIdentifier(r.expression) && 'Injectable' === r.expression.text) return !0;\n }\n return !1;\n } catch {\n return !1;\n }\n}\n","export const RECOMMENDATIONS = {\n 'prefer-on-push-component-change-detection': 'Add `changeDetection: ChangeDetectionStrategy.OnPush` to the component metadata.',\n 'template-no-call-expression': 'Move the value to a pipe, computed signal, or cached component property.',\n 'rxjs-no-subscribe-in-component': \"Use `toSignal()` or the `async` pipe for view state; add `takeUntilDestroyed()` for long-lived imperative subscriptions.\",\n 'template-trackby-required-for-ngfor': 'Add `trackBy` to `*ngFor`, or use `track` when migrating to `@for`.',\n 'template-no-object-literal-binding': 'Move the object to a component property, signal, computed value, or pure pipe.',\n 'template-no-array-literal-binding': 'Move the array to a component property, signal, computed value, or pure pipe.',\n 'toSignal-require-initialValue': 'Pass `{ initialValue }` or `{ requireSync: true }` so the signal has a stable type.',\n 'rxjs-avoid-subject-as-event-bus': 'Use `signal()` for component UI state; move complex async pipelines into a service.',\n 'signal-no-side-effects-in-computed': 'Move side effects to an `effect()` or method, and keep `computed()` pure.',\n 'signal-no-writes-in-computed': 'Move `.set()` or `.update()` calls to an `effect()` or event handler.',\n 'prefer-inject-over-constructor-di': 'Replace constructor parameters with field initializers that call `inject()`.',\n 'component-no-manual-detect-changes': 'Use signals, `async` pipe, or input-driven state instead of calling `detectChanges()` or `markForCheck()`.',\n 'rxjs-require-takeUntilDestroyed': 'Add `takeUntilDestroyed()` or another teardown operator before `subscribe()`.',\n 'template-no-async-pipe-duplication': 'Store the async value once with `@if (... | async; as value)` or a view-model signal.',\n 'rxjs-prefer-toSignal-for-template-state': 'Convert template-used observables to `toSignal()` and read them as signals in the template.',\n 'signal-effect-must-be-destroy-scoped': 'Create the effect in an injection context or pass an explicit `{ injector }`.',\n 'signal-no-effect-in-constructor': 'Move the `effect()` call to a field initializer.',\n 'signal-prefer-computed-over-sync-effect': 'Replace the write-producing `effect()` with a `computed()` signal.',\n 'signal-avoid-untracked-overuse': 'Remove `untracked()` unless the dependency must be intentionally ignored.',\n 'template-prefer-control-flow': 'Replace the legacy directive with the matching `@if`, `@for`, or `@switch` block.',\n 'signal-prefer-input-signal': 'Replace `@Input()` with `input()` or `input.required()`.',\n 'signal-prefer-output-function': 'Replace `@Output() EventEmitter` with `output<T>()`.',\n 'no-bypass-sanitization': 'Use Angular sanitization or a trusted server-side sanitizer instead of `bypassSecurityTrust*`.',\n 'rxjs-no-nested-subscribe': 'Flatten the stream with `switchMap`, `mergeMap`, `concatMap`, or `exhaustMap`.',\n 'no-document-access': 'Inject `DOCUMENT` or move browser-only DOM work into `afterNextRender()`.',\n 'template-no-unsafe-bindings': 'Sanitize the value before binding, or replace the raw HTML binding with structured template content.',\n 'signal-prefer-model': 'Replace the `@Input()` / `@Output()Change` pair with `model()`.',\n 'prefer-after-render-over-after-view-init': 'Move browser-only DOM access into `afterNextRender()`.',\n 'spec-no-focused-test': 'Replace focused or disabled test helpers with normal `describe` and `it` calls.'\n};\nexport const CODE_EXAMPLES = {\n 'prefer-on-push-component-change-detection': `// Before:\n@Component({ selector: 'app-foo', template: '...' })\nexport class FooComponent { }\n\n// After:\n@Component({\n selector: 'app-foo',\n template: '...',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FooComponent { }`,\n 'rxjs-no-subscribe-in-component': `// Reactive state (data derived from a stream) → use toSignal() or async pipe:\n// Before:\nngOnInit() { this.data$.subscribe(val => this.value = val); }\n// After:\nvalue = toSignal(this.data$, { initialValue: defaultVal });\n\n// Imperative action (user-triggered, one-shot) → subscription is fine, add teardown:\n// Before:\nonSave() { this.api.save(this.form.value).subscribe(res => this.notify(res)); }\n// After (HTTP auto-completes — takeUntilDestroyed optional but harmless):\nonSave() {\n this.api.save(this.form.value)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(res => this.notify(res));\n}`,\n 'rxjs-avoid-subject-as-event-bus': `// Case A — UI state: replace with signal()\n// Before:\nprivate loading$ = new Subject<boolean>();\n// After:\nloading = signal(false);\n\n// Case B — complex async pipeline: move to a service\n// Before (in component):\nprivate search$ = new Subject<string>();\nngOnInit() { this.search$.pipe(debounceTime(300), switchMap(...)).subscribe(...); }\n// After:\n// SearchService owns search$ and the pipeline; component calls searchSvc.search(term)\n\n// Note: @Input() setter bridges are intentionally exempt:\n// @Input() set query(v: string) { this.search$.next(v); } ← allowed`,\n 'prefer-inject-over-constructor-di': `// Before:\nconstructor(private http: HttpClient, private router: Router) { }\n\n// After:\nprivate http = inject(HttpClient);\nprivate router = inject(Router);`,\n 'component-no-manual-detect-changes': `// Before:\nthis.cdr.detectChanges();\nthis.cdr.markForCheck();\n\n// After:\n// Use signals for reactive state:\ncount = signal(0);\n// Template automatically updates when signal changes`,\n 'rxjs-require-takeUntilDestroyed': `// Before:\nthis.data$.subscribe(val => this.process(val));\n\n// After:\nthis.data$.pipe(\n takeUntilDestroyed(this.destroyRef)\n).subscribe(val => this.process(val));`,\n 'template-no-async-pipe-duplication': `// Before:\n<div>{{ user$ | async }}</div>\n<span>{{ user$ | async }}</span>\n\n// After:\n@if (user$ | async; as user) {\n <div>{{ user }}</div>\n <span>{{ user }}</span>\n}`,\n 'signal-no-side-effects-in-computed': `// Before:\ntotal = computed(() => {\n this.logger.log('computing'); // side effect!\n return this.price() * this.qty();\n});\n\n// After:\ntotal = computed(() => this.price() * this.qty());`,\n 'signal-no-writes-in-computed': `// Before:\nderived = computed(() => {\n const val = this.source();\n this.other.set(val * 2); // write inside computed!\n return val;\n});\n\n// After:\nderived = computed(() => this.source());\n// Use effect() for the write:\nsyncEffect = effect(() => this.other.set(this.source() * 2));`,\n 'signal-effect-must-be-destroy-scoped': `// Before:\nngAfterViewInit() {\n effect(() => console.log(this.count())); // no injection context!\n}\n\n// After (option A - field initializer):\nlogEffect = effect(() => console.log(this.count()));\n\n// After (option B - explicit injector):\nngAfterViewInit() {\n effect(() => console.log(this.count()), { injector: this.injector });\n}`,\n 'signal-no-effect-in-constructor': `// Before:\nconstructor() {\n effect(() => console.log(this.count()));\n}\n\n// After:\nlogEffect = effect(() => console.log(this.count()));`,\n 'signal-prefer-computed-over-sync-effect': `// Before:\nlogEffect = effect(() => {\n const total = this.price() * this.qty();\n this.total.set(total);\n});\n\n// After:\ntotal = computed(() => this.price() * this.qty());`,\n 'toSignal-require-initialValue': `// Before:\ndata = toSignal(this.data$); // Signal<T | undefined>\n\n// After:\ndata = toSignal(this.data$, { initialValue: [] }); // Signal<T>`,\n 'template-no-call-expression': `// Before:\n<div>{{ getLabel(item) }}</div>\n\n// After (option A - pipe):\n<div>{{ item | labelPipe }}</div>\n\n// After (option B - signal):\nlabel = computed(() => this.getLabel(this.item()));`,\n 'template-no-object-literal-binding': `// Before:\n<app-child [config]=\"{ color: 'red', size: 10 }\"></app-child>\n\n// After:\nchildConfig = signal({ color: 'red', size: 10 });\n// template: <app-child [config]=\"childConfig()\"></app-child>`,\n 'template-no-array-literal-binding': `// Before:\n<app-child [items]=\"[1, 2, 3]\"></app-child>\n\n// After:\nitems = signal([1, 2, 3]);\n// template: <app-child [items]=\"items()\"></app-child>`,\n 'template-trackby-required-for-ngfor': `// Before:\n<div *ngFor=\"let item of items\">{{ item.name }}</div>\n\n// After:\n<div *ngFor=\"let item of items; trackBy: trackById\">{{ item.name }}</div>\n\n// Or with @for (Angular 17+):\n@for (item of items; track item.id) {\n <div>{{ item.name }}</div>\n}`,\n 'rxjs-prefer-toSignal-for-template-state': `// Before:\ndata$ = this.http.get('/api/data').pipe(shareReplay(1));\n// template: {{ data$ | async }}\n\n// After:\ndata = toSignal(this.http.get('/api/data'), { initialValue: null });\n// template: {{ data() }}`,\n 'signal-avoid-untracked-overuse': `// Acceptable:\neffect(() => {\n const value = this.count();\n untracked(() => this.analytics.track(value));\n});\n\n// Questionable (review if untracked is needed):\nconst val = untracked(() => this.count());`,\n 'template-prefer-control-flow': `// Before:\n<div *ngIf=\"isLoggedIn\">Welcome</div>\n<li *ngFor=\"let item of items; trackBy: trackById\">{{ item.name }}</li>\n\n// After:\n@if (isLoggedIn) { <div>Welcome</div> }\n@for (item of items; track item.id) { <li>{{ item.name }}</li> }`,\n 'signal-prefer-input-signal': `// Before:\n@Input() title: string = '';\n@Input() required count!: number;\n\n// After:\ntitle = input('');\ncount = input.required<number>();`,\n 'signal-prefer-output-function': `// Before:\n@Output() selected = new EventEmitter<Item>();\n\n// After:\nselected = output<Item>();`,\n 'rxjs-no-nested-subscribe': `// Before:\nthis.user$.subscribe(user => {\n this.posts$.subscribe(posts => {\n this.render(user, posts);\n });\n});\n\n// After:\nthis.user$.pipe(\n switchMap(user => this.posts$.pipe(map(posts => ({ user, posts }))))\n).subscribe(({ user, posts }) => this.render(user, posts));`,\n 'no-document-access': `// Before:\nngOnInit() {\n document.title = this.title;\n}\n\n// After (inject DOCUMENT):\nprivate doc = inject(DOCUMENT);\nngOnInit() { this.doc.title = this.title; }\n\n// Or (SSR-safe browser-only block):\nafterNextRenderEffect = afterNextRender(() => {\n document.title = this.title;\n});`,\n 'signal-prefer-model': `// Before:\n@Input() value: string = '';\n@Output() valueChange = new EventEmitter<string>();\n\n// After:\nvalue = model('');\n// Parent template: <app-input [(value)]=\"parentValue\" />`,\n 'prefer-after-render-over-after-view-init': `// Before:\nngAfterViewInit() {\n this.el.nativeElement.focus();\n}\n\n// After:\nconstructor() {\n afterNextRender(() => {\n this.el.nativeElement.focus();\n });\n}`,\n 'spec-no-focused-test': `// Before (focused — skips all other tests):\nfdescribe('MyComponent', () => {\n fit('should render', () => { ... });\n});\n\n// Before (disabled — easily forgotten):\nxdescribe('MyComponent', () => {\n xit('should render', () => { ... });\n});\n\n// After:\ndescribe('MyComponent', () => {\n it('should render', () => { ... });\n});`\n};\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from '../../recommendations';\nimport { childNodes as r, getCallbackArg as n, getFunctionBody as i, getNodeStart as o, getStaticPropertyName as l, isCalleeNamed as s, isMemberExpressionLike as u, unwrapNode as p } from '../../rule-utils';\nlet RULE_NAME = 'signal-no-side-effects-in-computed', SIDE_EFFECT_METHODS = new Set([\n 'post',\n 'put',\n 'patch',\n 'subscribe',\n 'unsubscribe',\n 'next',\n 'complete',\n 'setItem',\n 'removeItem',\n 'appendChild',\n 'removeChild',\n 'dispatch'\n]), WRITE_METHODS = new Set([\n 'set',\n 'update',\n 'mutate'\n]), FUNCTION_NODE_TYPES = new Set([\n 'ArrowFunctionExpression',\n 'FunctionExpression',\n 'FunctionDeclaration'\n]);\nexport const signalNoSideEffectsInComputedRule = e(RULE_NAME, (e, a)=>{\n if (!s(e.callee, 'computed')) return null;\n let c = n(e), f = c ? i(c) : null;\n if (!f) return null;\n let E = function(e) {\n let t = [\n e\n ];\n for(; t.length > 0;){\n var n;\n let i = p(t.pop());\n if (i) {\n if (i !== e) {\n if (function(e) {\n let t = p(e);\n if (!t) return !1;\n if ('AssignmentExpression' === t.type) {\n let e = p(t.left);\n return !!e && u(e);\n }\n if ('UpdateExpression' === t.type || 'UnaryExpression' === t.type && 'delete' === t.operator) {\n let e = p(t.argument);\n return !!e && u(e);\n }\n return !1;\n }(i)) return {\n node: i,\n type: 'write'\n };\n if ('CallExpression' === i.type) {\n let e = function(e) {\n let t = p(e);\n if (!t || 'CallExpression' !== t.type) return '';\n let r = p(t.callee);\n return u(r) && l(r) || '';\n }(i);\n if (WRITE_METHODS.has(e)) return {\n node: i,\n type: 'write'\n };\n if (SIDE_EFFECT_METHODS.has(e)) return {\n node: i,\n type: 'effect'\n };\n }\n }\n if (!(i !== e && (n = i).type && FUNCTION_NODE_TYPES.has(n.type))) for (let e of r(i))t.push(e);\n }\n }\n return null;\n }(f);\n return E ? function(e, r, n, i) {\n let l = o(e) || o(r), { line: s, column: u } = n.locator.location(l);\n return {\n filePath: n.filePath,\n ruleName: RULE_NAME,\n message: 'write' === i ? 'computed() writes to state, which can create reactive cycles.' : 'computed() contains a side effect, so it is no longer a pure derivation.',\n line: s,\n column: u,\n severity: 'error',\n fix: t[RULE_NAME]\n };\n }(E.node, e, a, E.type) : null;\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from '../../recommendations';\nimport { findEffectCalls as r, getClassBody as n, getMethodBody as l, getMethodName as i, getNodeStart as o, isConstructorMethod as f, isMethodDefinition as u, isMemberExpressionLike as a, getStaticPropertyName as s, unwrapNode as c } from '../../rule-utils';\nlet RULE_NAME = 'signal-effect-must-be-destroy-scoped';\nexport const signalEffectDestroyScopedRule = e(RULE_NAME, (e, p)=>{\n let m = n(e.node);\n if (0 === m.length) return null;\n let y = [];\n for (let e of m)e && u(e) && !f(e) && y.push(...function(e, n) {\n let f = l(e);\n if (!f) return [];\n let u = i(e), p = [];\n for (let e of r(f))(function(e) {\n if ('CallExpression' !== e.type) return !1;\n let t = c(e.callee);\n return !!t && ('Identifier' === t.type ? 'effect' === t.name : !!a(t) && 'effect' === s(t));\n })(e) && !function(e) {\n let t = c((Array.isArray(e.arguments) ? e.arguments : [])[1]);\n if (!t || 'ObjectExpression' !== t.type) return !1;\n for (let e of Array.isArray(t.properties) ? t.properties : []){\n let t = c(e);\n if (t?.type === 'Property') {\n let e = c(t.key), r = e?.type === 'Identifier' ? e.name : s(e) || '';\n if ('injector' === r) return !0;\n if ('manualCleanup' === r) {\n let e = c(t.value);\n if (e?.type === 'Literal' && !0 === e.value) return !0;\n }\n }\n }\n return !1;\n }(e) && p.push(function(e, r, n) {\n let l = o(e), { line: i, column: f } = n.locator.location(l);\n return {\n filePath: n.filePath,\n ruleName: RULE_NAME,\n message: `effect() inside \"${r}\" has no explicit lifecycle owner, so cleanup can be unclear.`,\n line: i,\n column: f,\n severity: 'error',\n fix: t[RULE_NAME]\n };\n }(e, u, n));\n return p;\n }(e, p));\n return y.length > 0 ? y : null;\n});\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { CODE_EXAMPLES as r, RECOMMENDATIONS as t } from '../../recommendations';\nimport { childNodes as n, getNodeStart as i, getStaticPropertyName as s, isMemberExpressionLike as o, unwrapNode as l } from '../../rule-utils';\nlet RULE_NAME = 'rxjs-no-nested-subscribe', OBSERVER_HANDLER_NAMES = new Set([\n 'next',\n 'error',\n 'complete'\n]), FUNCTION_NODE_TYPES = new Set([\n 'ArrowFunctionExpression',\n 'FunctionExpression',\n 'FunctionDeclaration'\n]);\nfunction isSubscribeCall(e) {\n if ('CallExpression' !== e.type) return !1;\n let r = l(e.callee);\n return !!o(r) && 'subscribe' === s(r);\n}\nfunction isSubscribeHandler(e) {\n return !!e && ('ArrowFunctionExpression' === e.type || 'FunctionExpression' === e.type);\n}\nexport const rxjsNoNestedSubscribeRule = e(RULE_NAME, (e, o)=>{\n if (!isSubscribeCall(e)) return null;\n for (let u of function(e) {\n if (!isSubscribeCall(e)) return [];\n let r = Array.isArray(e.arguments) ? e.arguments : [];\n if (0 === r.length) return [];\n let t = l(r[0]);\n if (t?.type === 'ObjectExpression') {\n if ('ObjectExpression' !== t.type) return [];\n let e = [];\n for (let r of Array.isArray(t.properties) ? t.properties : []){\n let t = l(r);\n if (t?.type === 'Property' && OBSERVER_HANDLER_NAMES.has(function(e) {\n let r = l(e.key);\n return r ? 'Identifier' === r.type ? r.name : s(r) || '' : '';\n }(t))) {\n let r = l(t.value);\n isSubscribeHandler(r) && e.push(r);\n }\n }\n return e;\n }\n let n = [];\n for(let e = 0; e < Math.min(r.length, 3); e++){\n let t = l(r[e]);\n isSubscribeHandler(t) && n.push(t);\n }\n return n;\n }(e)){\n let s = l(u.body);\n if (s && function(e) {\n let r = [\n e\n ];\n for(; r.length > 0;){\n var t;\n let i = l(r.pop());\n if (i) {\n if (i !== e && isSubscribeCall(i)) return !0;\n if (!(i !== e && (t = i).type && FUNCTION_NODE_TYPES.has(t.type))) for (let e of n(i))r.push(e);\n }\n }\n return !1;\n }(s)) return function(e, n) {\n let s = i(e), { line: o, column: l } = n.locator.location(s);\n return {\n filePath: n.filePath,\n ruleName: RULE_NAME,\n message: 'Nested subscribe() calls make stream lifetimes harder to reason about and can leak work.',\n line: o,\n column: l,\n severity: 'error',\n fix: t[RULE_NAME],\n codeExample: r[RULE_NAME]\n };\n }(e, o);\n }\n return null;\n});\n","import { ChangeDetectionStrategy as e } from '@ngcompass/ast';\nimport { createComponentRule as t } from '@ngcompass/engine';\nimport { CODE_EXAMPLES as n, RECOMMENDATIONS as r } from '../../recommendations';\nlet RULE_NAME = 'prefer-on-push-component-change-detection';\nfunction getNumberProp(e, t) {\n let n = e?.[t];\n return 'number' == typeof n ? n : void 0;\n}\nfunction normalizeFilePath(e) {\n return e.replace(/\\\\/g, '/');\n}\nexport const preferOnPushRule = t(RULE_NAME, (t, o)=>{\n let a = t.metadata ?? {};\n return 'Component' !== a.type || !function(t) {\n if (!t || 'object' != typeof t) return !1;\n let { kind: n, value: r } = t;\n return 'non-literal' !== n && ('literal' === n ? r !== e.OnPush : 'missing' === n);\n }(a.changeDetection) ? null : function(e, t) {\n let o, a, i, l, m = (o = e.metadata ?? {}, a = e.node, getNumberProp(o, 'decoratorStart') ?? getNumberProp(o, 'start') ?? getNumberProp(a, 'start') ?? getNumberProp(e, 'start') ?? 0), { line: c, column: u } = t.locator.location(m), s = (i = e.metadata, 'string' == typeof (l = i?.className) ? l : 'AnonymousComponent'), p = function(e, t) {\n if (!t.project) return null;\n let n = e.metadata, r = n?.className;\n if ('string' != typeof r || !r) return null;\n let o = normalizeFilePath(t.filePath), { ngModuleMap: a, classToFile: i } = t.project;\n for (let [e, t] of a){\n var l;\n if (t.isStandalone || !t.declarations.has(r)) continue;\n let n = i.get(r);\n if (n && normalizeFilePath(n) !== o) continue;\n let a = 0;\n for (let e of t.declarations)e !== r && (l = i.get(e)) && normalizeFilePath(l).endsWith('.component.ts') && a++;\n return {\n moduleName: (normalizeFilePath(e).split('/').pop() ?? e).replace(/\\.ts$/, ''),\n siblingComponentCount: a\n };\n }\n return null;\n }(e, t);\n return {\n filePath: t.filePath,\n ruleName: RULE_NAME,\n message: function(e, t) {\n if (!t) return `Component '${e}' uses default change detection, which can re-render more often than needed.`;\n let { moduleName: n, siblingComponentCount: r } = t, o = r > 0 ? ` ${r} other component${1 === r ? '' : 's'} are declared in '${n}'.` : '';\n return `Component '${e}' uses default change detection, which can re-render more often than needed.${o}`;\n }(s, p),\n line: c,\n column: u,\n severity: 'error',\n fix: r[RULE_NAME],\n codeExample: n[RULE_NAME]\n };\n }(t, o);\n}, {\n requires: {\n projectContext: !0\n }\n});\n","import { createTemplateExpressionRule as e } from '@ngcompass/engine';\nimport t from \"typescript\";\nimport { RECOMMENDATIONS as r } from '../../recommendations';\nimport { childNodes as n, getStaticPropertyName as i, isMemberExpressionLike as l, unwrapNode as o, getTemplateAbsoluteOffset as s } from '../../rule-utils';\nlet RULE_NAME = 'template-no-call-expression', ALLOWED_FREE_CALL_NAMES = new Set([\n 'translate',\n '$localize',\n '$any'\n]), ALLOWED_MEMBER_CALL_NAMES = new Set([\n 'slice',\n 'toString',\n 'toFixed',\n 'toUpperCase',\n 'toLowerCase',\n 'trim',\n 'join',\n 'includes',\n 'indexOf',\n 'startsWith',\n 'endsWith',\n 'charAt',\n 'substring',\n 'replace',\n 'split',\n 'concat',\n 'toISOString',\n 'toLocaleDateString',\n 'toLocaleTimeString',\n 'toLocaleString'\n]);\nfunction isCallExpressionLike(e) {\n let t = o(e);\n return !!t && ('CallExpression' === t.type || 'OptionalCallExpression' === t.type);\n}\nexport const templateNoCallExpressionRule = e(RULE_NAME, (e, a)=>!function(e, r) {\n let s = e ? [\n e\n ] : [];\n for(; s.length > 0;){\n let e = o(s.pop());\n if (e) {\n if (isCallExpressionLike(e) && !function(e) {\n let t = o(e);\n if (!t || !isCallExpressionLike(t)) return !1;\n let r = o(t.callee);\n if (!r) return !1;\n if ('Identifier' === r.type) return ALLOWED_FREE_CALL_NAMES.has(r.name);\n if (!l(r)) return !1;\n let n = i(r);\n return !!n && ALLOWED_MEMBER_CALL_NAMES.has(n);\n }(e)) {\n if (function(e) {\n let t;\n return (t = o(e), Array.isArray(t?.arguments) ? t.arguments : []).length > 0;\n }(e)) return !0;\n let n = function(e) {\n let t = o(e);\n if (!t) return '';\n let r = o(t.callee);\n return r ? 'Identifier' === r.type ? r.name ?? '' : l(r) ? i(r) : '' : '';\n }(e);\n if (n && !function(e, r) {\n let n = e.startsWith('get') || e.startsWith('is') || e.startsWith('has');\n if (r.crossRef?.signalMembers?.has(e)) return !0;\n if (r.typeChecker && r.crossRef?.componentPath) try {\n let n = r.typeChecker, i = r.crossRef.componentPath, l = n.getProgram().getSourceFile(i);\n if (l) {\n let r = l.statements.find((e)=>t.isClassDeclaration(e));\n if (r && r.name) {\n let t = n.getTypeAtLocation(r), i = n.getPropertyOfType(t, e);\n if (i) {\n if (!i) return !1;\n let e = i.valueDeclaration ?? i.declarations?.[0];\n if (!e) return !1;\n let t = n.getTypeOfSymbolAtLocation(i, e);\n if (!t) return !1;\n let r = n.typeToString(t);\n return r.includes('Signal') || r.includes('writable') || r.includes('computed');\n }\n }\n }\n } catch {}\n return !n;\n }(n, r)) return !0;\n }\n for (let t of n(e))s.push(t);\n }\n }\n return !1;\n }(e.expression, a) ? null : [\n function(e, t) {\n let n = s(t, e.sourceSpan.start), { line: i, column: l } = t.locator.location(n);\n return {\n filePath: t.filePath,\n ruleName: RULE_NAME,\n message: 'Template method calls run on every change detection cycle and can make rendering slower.',\n line: i,\n column: l,\n severity: 'error',\n fix: r[RULE_NAME]\n };\n }(e, a)\n ], {\n requires: {\n htmlAst: !0,\n typeChecker: !0,\n projectContext: !0\n }\n});\n","import { createTemplateRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as r } from '../../recommendations';\nimport { getTemplateAbsoluteOffset as t } from '../../rule-utils';\nfunction createFailure(e, a, o, n) {\n let i = t(e, a.sourceSpan.start), { line: s, column: l } = e.locator.location(i);\n return {\n filePath: e.filePath,\n ruleName: o,\n message: n,\n line: s,\n column: l,\n severity: 'error',\n fix: r[o]\n };\n}\nexport const templateTrackByRequiredRule = e('template-trackby-required', (e, r)=>{\n let t = [];\n for (let a of e.attributes)'*ngFor' === a.name && !function(e) {\n let r = e.match(/\\btrackBy\\s*:\\s*([^;]+?)\\s*(?:;|$)/);\n return !!r?.[1]?.trim();\n }(a.value ?? '') && t.push(createFailure(r, a, 'template-trackby-required-for-ngfor', '*ngFor without trackBy can recreate DOM nodes unnecessarily when list items change.'));\n for (let a of e.blocks)'for' !== a.name || a.parameters.some((e)=>{\n let r = e.expression?.trim() ?? '';\n return !!r && !!/^track\\b/.test(r) && r.replace(/^track\\b/, '').trim().length > 0;\n }) || t.push(createFailure(r, a, 'template-track-required-for-atfor', '@for without a track expression can recreate DOM nodes unnecessarily when list items change.'));\n return t.length > 0 ? t : null;\n}, {\n requires: {\n htmlAst: !0\n }\n});\n","import { createTemplateExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from '../../recommendations';\nimport { childNodes as r, unwrapNode as n, getTemplateAbsoluteOffset as i } from '../../rule-utils';\nlet RULE_NAME = 'template-no-object-literal-binding';\nexport const templateNoObjectLiteralBindingRule = e(RULE_NAME, (e, o)=>!function(e) {\n let t = e ? [\n e\n ] : [];\n for(; t.length > 0;){\n let e = n(t.pop());\n if (e) {\n if ('ObjectExpression' === e.type) return !0;\n for (let n of r(e))t.push(n);\n }\n }\n return !1;\n }(e.expression) ? null : [\n function(e, r) {\n let n = i(r, e.sourceSpan.start), { line: o, column: l } = r.locator.location(n);\n return {\n filePath: r.filePath,\n ruleName: RULE_NAME,\n message: 'Object literals in template bindings create a new reference on every change detection cycle.',\n line: o,\n column: l,\n severity: 'warn',\n fix: t[RULE_NAME]\n };\n }(e, o)\n ], {\n requires: {\n htmlAst: !0\n }\n});\n","import { createTemplateExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as r } from '../../recommendations';\nimport { childNodes as t, unwrapNode as n, getTemplateAbsoluteOffset as i } from '../../rule-utils';\nlet RULE_NAME = 'template-no-array-literal-binding';\nexport const templateNoArrayLiteralBindingRule = e(RULE_NAME, (e, o)=>!function(e) {\n let r = e ? [\n e\n ] : [];\n for(; r.length > 0;){\n let e = n(r.pop());\n if (e) {\n if ('ArrayExpression' === e.type) return !0;\n for (let n of t(e))r.push(n);\n }\n }\n return !1;\n }(e.expression) ? null : [\n function(e, t) {\n let n = i(t, e.sourceSpan.start), { line: o, column: l } = t.locator.location(n);\n return {\n filePath: t.filePath,\n ruleName: RULE_NAME,\n message: 'Array literals in template bindings create a new reference on every change detection cycle.',\n line: o,\n column: l,\n severity: 'warn',\n fix: r[RULE_NAME]\n };\n }(e, o)\n ], {\n requires: {\n htmlAst: !0\n }\n});\n","import { createCallExpressionRule as t } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as e } from \"../../recommendations\";\nimport { unwrapNode as r, isMemberExpressionLike as s, getStaticPropertyName as n, getNodeStart as i } from \"../../rule-utils\";\nlet BYPASS_METHODS = new Map([\n [\n 'bypassSecurityTrustHtml',\n 'HTML'\n ],\n [\n 'bypassSecurityTrustScript',\n 'Script'\n ],\n [\n 'bypassSecurityTrustStyle',\n 'Style'\n ],\n [\n 'bypassSecurityTrustUrl',\n 'URL'\n ],\n [\n 'bypassSecurityTrustResourceUrl',\n 'Resource URL'\n ]\n]);\nexport const noBypassSanitizationRule = t('no-bypass-sanitization', (t, a)=>{\n let l = function(t) {\n let e = r(t.callee);\n if (!e) return null;\n if ('Identifier' === e.type && e.name) return BYPASS_METHODS.has(e.name) ? e.name : null;\n if (s(e)) {\n let t = n(e);\n return t && BYPASS_METHODS.has(t) ? t : null;\n }\n return null;\n }(t);\n if (!l) return null;\n let { line: o, column: u } = a.locator.location(i(t));\n return {\n filePath: a.filePath,\n ruleName: 'no-bypass-sanitization',\n message: `\\`${l}\\` bypasses Angular's ${BYPASS_METHODS.get(l)} sanitization, which can expose unsafe content.`,\n line: o,\n column: u,\n severity: 'error',\n fix: e['no-bypass-sanitization']\n };\n});\n","import { createTemplateAttributeRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from \"../../recommendations\";\nimport { getTemplateAbsoluteOffset as s } from \"../../rule-utils\";\nlet UNSAFE = new Map([\n [\n '[innerHTML]',\n {\n desc: \"innerHTML directly renders HTML markup and can execute injected scripts\",\n severity: 'error'\n }\n ],\n [\n '[outerHTML]',\n {\n desc: 'outerHTML replaces the element with raw HTML and is susceptible to XSS',\n severity: 'error'\n }\n ],\n [\n '[srcdoc]',\n {\n desc: \"srcdoc embeds raw HTML inside an iframe and can execute injected scripts\",\n severity: 'error'\n }\n ],\n [\n '[style]',\n {\n desc: 'binding complex expressions to [style] can enable CSS injection',\n severity: 'warn'\n }\n ]\n]), KNOWN_SAFE_PIPES = /\\|\\s*(safeHtml|safeStyle|safeUrl|safeResourceUrl|sanitize|sanitizeHtml|sanitizeUrl|trustHtml|trustStyle|trustUrl|trustResourceUrl|bypassSecurity)\\b/i, SANITIZE_METHOD_CALL = /\\b(getSafeHtml|getSafeUrl|getSafeStyle|getSafeResourceUrl|sanitize|sanitizeHtml|sanitizeUrl|trustHtml|bypassSecurity)\\s*\\(/i;\nexport const templateNoUnsafeBindingsRule = e('template-no-unsafe-bindings', (e, r)=>{\n let n = UNSAFE.get(e.name);\n if (!n) return null;\n let i = e.value ?? '';\n if (KNOWN_SAFE_PIPES.test(i) || SANITIZE_METHOD_CALL.test(i) || '[style]' === e.name && !/[.(|?]/.test(i)) return null;\n let { line: a, column: l } = r.locator.location(s(r, e.sourceSpan.start));\n return {\n filePath: r.filePath,\n ruleName: 'template-no-unsafe-bindings',\n message: `\\`${e.name}\\` binds raw content: ${n.desc}. Unsanitized values can create injection risk.`,\n line: a,\n column: l,\n severity: n.severity,\n fix: t['template-no-unsafe-bindings']\n };\n}, {\n requires: {\n htmlAst: !0\n }\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t, CODE_EXAMPLES as r } from \"../../recommendations\";\nimport { unwrapNode as l, isMemberExpressionLike as n, getNodeStart as o, getClassBody as i, childNodes as s, isCalleeNamed as a } from \"../../rule-utils\";\nlet BROWSER_GLOBALS = new Set([\n 'document',\n 'window',\n 'localStorage',\n 'sessionStorage',\n 'navigator',\n 'location'\n]);\nexport const noDocumentAccessRule = e('no-document-access', (e, f)=>{\n let c = i(e.node);\n if (0 === c.length) return null;\n let p = function(e) {\n let t = new Set(), r = [\n ...e\n ];\n for(; r.length;){\n let e = l(r.pop());\n if (e) {\n if ('VariableDeclarator' === e.type && e.init) {\n let r = l(e.init);\n if (r?.type === 'CallExpression' && r.callee && a(r.callee, 'isPlatformBrowser')) {\n let r = e.id ?? e.key;\n r?.type === 'Identifier' && r.name && t.add(r.name);\n }\n }\n if ('AssignmentExpression' === e.type && e.right) {\n let r = l(e.right);\n if (r?.type === 'CallExpression' && r.callee && a(r.callee, 'isPlatformBrowser')) {\n let r = l(e.left);\n if (r && n(r) && l(r.object)?.type === 'ThisExpression') {\n let e = r.property?.name;\n 'string' == typeof e && e && t.add(e);\n }\n }\n }\n for (let t of s(e))r.push(t);\n }\n }\n return t;\n }(c), u = [], m = new Set(), d = [\n ...c\n ];\n for(; d.length;){\n let e = l(d.pop());\n if (e) {\n if ('IfStatement' === e.type && e.test) {\n let t = l(e.test);\n if (t) {\n let r = function(e, t) {\n let r = [\n e\n ];\n for(; r.length;){\n let e = l(r.pop());\n if (e) {\n if ('CallExpression' === e.type && e.callee && a(e.callee, 'isPlatformBrowser')) return 'browser';\n if ('CallExpression' === e.type && e.callee && a(e.callee, 'isPlatformServer')) return 'server';\n if ('UnaryExpression' === e.type && '!' === e.operator && e.argument) {\n let t = l(e.argument);\n if (t?.type === 'CallExpression' && t.callee && a(t.callee, 'isPlatformServer')) return 'browser';\n }\n if ('Identifier' === e.type && t.has(e.name)) return 'browser';\n for (let t of s(e))r.push(t);\n }\n }\n return null;\n }(t, p);\n if ('browser' === r) {\n e.alternate && d.push(e.alternate);\n continue;\n }\n if ('server' === r) {\n e.consequent && d.push(e.consequent);\n continue;\n }\n }\n }\n if ('CallExpression' === e.type && e.callee) {\n let t = l(e.callee);\n if (t && (a(t, 'afterNextRender') || a(t, 'afterRender'))) {\n let t = e.arguments ?? [];\n for(let e = 1; e < t.length; e++)d.push(t[e]);\n continue;\n }\n }\n if (n(e)) {\n let i = function(e) {\n let t = e;\n for(; t && n(t);)t = l(t.object);\n return t?.type === 'Identifier' ? t.name ?? null : null;\n }(e);\n if (i && BROWSER_GLOBALS.has(i)) {\n let s = e;\n for(; s && n(s);)s = l(s.object);\n let a = o(s);\n if (void 0 !== a && !m.has(a)) {\n m.add(a);\n let { line: e, column: l } = f.locator.location(a);\n u.push({\n filePath: f.filePath,\n ruleName: 'no-document-access',\n message: `Direct access to \\`${i}\\` can run during SSR where browser globals do not exist.`,\n line: e,\n column: l,\n severity: 'error',\n fix: t['no-document-access'],\n codeExample: r['no-document-access']\n });\n }\n }\n }\n for (let t of s(e))d.push(t);\n }\n }\n return u.length ? u : null;\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t, CODE_EXAMPLES as r } from \"../../recommendations\";\nimport { unwrapNode as n, getClassBody as i, getNodeStart as o, childNodes as l, getMethodBody as a } from \"../../rule-utils\";\nlet DOM_PATTERNS = new Set([\n 'nativeElement',\n 'getBoundingClientRect',\n 'querySelector',\n 'querySelectorAll',\n 'getElementById',\n 'createElement',\n 'scrollIntoView',\n 'focus',\n 'blur',\n 'offsetWidth',\n 'offsetHeight',\n 'clientWidth',\n 'clientHeight',\n 'scrollTop',\n 'scrollLeft',\n 'innerHTML',\n 'outerHTML',\n 'textContent',\n 'parentElement',\n 'parentNode',\n 'firstChild',\n 'lastChild',\n 'nextSibling',\n 'previousSibling',\n 'children',\n 'ownerDocument',\n 'insertBefore',\n 'appendChild',\n 'removeChild',\n 'replaceChild',\n 'cloneNode',\n 'setAttribute',\n 'getAttribute',\n 'removeAttribute',\n 'hasAttribute',\n 'classList',\n 'dispatchEvent',\n 'contains',\n 'matches',\n 'closest',\n 'getClientRects',\n 'addEventListener',\n 'removeEventListener',\n 'requestAnimationFrame',\n 'cancelAnimationFrame'\n]), DOM_PATTERN_PREFIXES = [\n 'getElementsBy',\n 'offset',\n 'client',\n 'scroll'\n];\nexport const preferAfterRenderOverAfterViewInitRule = e('prefer-after-render-over-after-view-init', (e, f)=>{\n if ('Component' !== e.decoratorName && 'Directive' !== e.decoratorName) return null;\n let s = i(e.node), c = [];\n for (let e of [\n 'ngAfterViewInit',\n 'ngAfterContentInit'\n ]){\n let i = s.find((t)=>t.key?.name === e), m = i ? a(i) : null;\n if (!m || !i || !function(e) {\n let t = [\n e\n ];\n for(; t.length;){\n let e = n(t.pop());\n if (e) {\n if (('MemberExpression' === e.type || 'StaticMemberExpression' === e.type || 'OptionalMemberExpression' === e.type) && !e.computed) {\n let t = e.property?.name ?? '';\n if (DOM_PATTERNS.has(t)) return !0;\n for (let e of DOM_PATTERN_PREFIXES)if (t.startsWith(e)) return !0;\n }\n if ('Identifier' === e.type && ('document' === e.name || 'window' === e.name)) return !0;\n for (let r of l(e))t.push(r);\n }\n }\n return !1;\n }(m)) continue;\n let { line: p, column: u } = f.locator.location(o(i));\n c.push({\n filePath: f.filePath,\n ruleName: 'prefer-after-render-over-after-view-init',\n message: `\\`${e}\\` contains DOM access that can run before browser-only APIs are safe.`,\n line: p,\n column: u,\n severity: 'warn',\n fix: t['prefer-after-render-over-after-view-init'],\n codeExample: r['prefer-after-render-over-after-view-init']\n });\n }\n return c.length ? c : null;\n});\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from \"../../recommendations\";\nimport { isSubscribeCall as n, unwrapNode as r, isMemberExpressionLike as a, hasTeardownInReceiverChain as o, getNodeStart as i, findObservableSourceCall as s, isLikelyHttpObservable as l } from \"../../rule-utils\";\nlet manualTeardownCache = new Map();\nexport function hasManualTeardownInNgOnDestroy(e) {\n return /ngOnDestroy\\s*\\([^)]*\\)\\s*\\{[^}]*\\.unsubscribe\\s*\\(\\)/s.test(e);\n}\nexport const rxjsRequireTakeUntilDestroyedRule = e('rxjs-require-takeUntilDestroyed', (e, u)=>{\n var c, m;\n let d;\n if (!u.filePath.endsWith('.component.ts') && !u.filePath.endsWith('.directive.ts') && !/\\@(Component|Directive)\\s*[\\(\\{]/.test(u.fileContent) || !n(e)) return null;\n let h = r(e.callee), f = a(h) ? h?.object : null;\n if (f && o(f) || l(s(f)) || (c = u.filePath, m = u.fileContent, void 0 !== (d = manualTeardownCache.get(c)) || (d = hasManualTeardownInNgOnDestroy(m), manualTeardownCache.size >= 500 && manualTeardownCache.clear(), manualTeardownCache.set(c, d)), d)) return null;\n let p = i(e), { line: w, column: y } = u.locator.location(p);\n return {\n filePath: u.filePath,\n ruleName: 'rxjs-require-takeUntilDestroyed',\n message: \"A component subscription without teardown can keep running after the component is destroyed.\",\n line: w,\n column: y,\n severity: 'error',\n fix: t['rxjs-require-takeUntilDestroyed']\n };\n});\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t, CODE_EXAMPLES as r } from \"../../recommendations\";\nimport { unwrapNode as n, isMemberExpressionLike as a, isSubscribeCall as l, hasTeardownInReceiverChain as o, getNodeStart as i, getStaticPropertyName as s, findObservableSourceCall as c, isLikelyHttpObservable as u } from \"../../rule-utils\";\nimport { hasManualTeardownInNgOnDestroy as m } from './rxjs-require-take-until-destroyed.rule.js';\nlet manualTeardownCache = new Map(), RULE_NAME = 'rxjs-no-subscribe-in-component';\nexport const rxjsNoSubscribeInComponentRule = e(RULE_NAME, (e, f)=>{\n var p, d;\n let h;\n if (!f.filePath.endsWith('.component.ts') && !f.filePath.endsWith('.directive.ts') && !/\\@(Component|Directive)\\s*[\\(\\{]/.test(f.fileContent) || !l(e) || function(e) {\n let t = n(e.callee);\n if (!t || !a(t)) return !1;\n let r = n(t.object);\n if (!r) return !1;\n if ('CallExpression' === r.type) {\n let e = n(r.callee);\n if (a(e) && 'pipe' === s(e) && (Array.isArray(r.arguments) ? r.arguments : []).some((e)=>{\n let t = n(e);\n if (t?.type !== 'CallExpression') return !1;\n let r = n(t.callee)?.name;\n return 'take' === r || 'first' === r;\n })) return !0;\n }\n return u(c(r));\n }(e)) return null;\n let E = n(e.callee), C = n(E?.object);\n if (C && o(C) || (p = f.filePath, d = f.fileContent, void 0 !== (h = manualTeardownCache.get(p)) || (h = m(d), manualTeardownCache.size >= 500 && manualTeardownCache.clear(), manualTeardownCache.set(p, h)), h)) return null;\n let b = i(e), { line: w, column: x } = f.locator.location(b);\n return {\n filePath: f.filePath,\n ruleName: RULE_NAME,\n message: function(e, t) {\n let r = \"Open-ended subscriptions in components can outlive the component and make state harder to track.\", a = t.crossRef?.templateReferences;\n if (!a) return r;\n let l = n(e.callee), o = n(l?.object), i = o ? s(o) : null;\n if (!i) return r;\n let c = i.endsWith('$') ? i.slice(0, -1) : i;\n return a.has(i) || a.has(c) ? `'${i}' is read by the template, so subscribing manually adds state and teardown work the template can own.` : r;\n }(e, f),\n line: w,\n column: x,\n severity: 'error',\n fix: t[RULE_NAME],\n codeExample: r[RULE_NAME]\n };\n}, {\n requires: {\n projectContext: !0\n }\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t, CODE_EXAMPLES as n } from \"../../recommendations\";\nimport { collectAllRxjsAliases as l, unwrapNode as r, getStaticPropertyName as o, getClassBody as i, getNodeStart as a, isMemberExpressionLike as s, isMethodDefinition as u, getConstructorMember as c, getMethodBody as f, childNodes as p } from \"../../rule-utils\";\nlet RULE_NAME = 'rxjs-avoid-subject-as-event-bus', SUBJECT_TYPES = new Set([\n 'Subject',\n 'ReplaySubject',\n 'AsyncSubject',\n 'BehaviorSubject'\n]), TEARDOWN_NAMES = new Set([\n 'destroy$',\n 'destroyed$',\n 'ondestroy$',\n 'ngondestroy$',\n 'unsubscribe$',\n 'unsub$',\n 'teardown$',\n 'dispose$',\n 'cleanup$',\n 'cleanupsubject$'\n]), UI_STATE_PATTERN = /state|loading|error|active|selected|open|visible|disabled|count|value|data|hidden|expanded|pending|success|failed/i;\nfunction extractCalls(e, t, n) {\n let l = [\n e\n ];\n for(; l.length;){\n let e = r(l.pop());\n if (!e) continue;\n let i = r(e.callee);\n if ('CallExpression' === e.type && o(i) === t) {\n let e = r(i?.object);\n if (e && s(e) && r(e.object)?.type === 'ThisExpression') {\n let t = o(e);\n t && n.add(t);\n }\n }\n for (let t of p(e))l.push(t);\n }\n}\nexport const rxjsAvoidSubjectRule = e(RULE_NAME, (e, p)=>{\n if ('Component' !== e.decoratorName && 'Directive' !== e.decoratorName) return null;\n let d = i(e.node);\n if (0 === d.length) return null;\n let E = function(e) {\n let t = l(e.sourceText, SUBJECT_TYPES), n = new Map();\n for (let [e, l] of t)for (let t of l)n.set(t, e);\n return n;\n }(p), m = function(e) {\n let t = new Set(), n = c(e);\n if (n) {\n let e = f(n);\n e && extractCalls(e, 'next', t);\n }\n for (let n of e)if (u(n)) {\n 'set' === n.kind && function(e) {\n let t = e.decorators;\n if (!Array.isArray(t)) return !1;\n for (let e of t){\n let t = r(e.expression);\n if (t?.name === 'Input') return !0;\n let n = r(t?.callee);\n if (n?.name === 'Input') return !0;\n }\n return !1;\n }(n) && extractCalls(n, 'next', t);\n let e = n.key?.name;\n if ('ngOnChanges' === e) {\n let e = f(n);\n e && extractCalls(e, 'next', t);\n }\n if ('ngOnDestroy' === e) {\n let e = f(n);\n e && extractCalls(e, 'complete', t);\n }\n } else 'PropertyDefinition' === n.type && n.value && extractCalls(n.value, 'next', t);\n return t;\n }(d), y = function(e) {\n let t = new Set();\n for (let n of e){\n let e = u(n) ? f(n) : 'PropertyDefinition' === n.type ? n.value : null;\n e && extractCalls(e, 'pipe', t);\n }\n return t;\n }(d), x = [];\n for (let e of d){\n if ('PropertyDefinition' !== e.type || 'public' === e.accessibility) continue;\n let l = r(e.value ?? e.initializer);\n if (!l || 'NewExpression' !== l.type) continue;\n let i = function(e, t) {\n let n = r(e);\n if (!n) return null;\n if ('Identifier' === n.type) return t.get(n.name) ?? null;\n if (s(n)) {\n let e = o(n);\n return e && SUBJECT_TYPES.has(e) ? e : null;\n }\n return null;\n }(l.callee, E), u = e.key?.name ?? '';\n if (!i || !u || TEARDOWN_NAMES.has(u.toLowerCase()) || m.has(u) || y.has(u)) continue;\n let { line: c, column: f } = p.locator.location(a(e));\n x.push({\n filePath: p.filePath,\n ruleName: RULE_NAME,\n message: UI_STATE_PATTERN.test(u) ? `${i} '${u}' is used for component UI state, which adds stream overhead to local state updates.` : `${i} '${u}' is acting as a local event bus, which makes component interactions harder to trace.`,\n line: c,\n column: f,\n severity: 'warn',\n fix: t[RULE_NAME],\n codeExample: n[RULE_NAME]\n });\n }\n return x.length ? x : null;\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from \"../../recommendations\";\nimport { unwrapNode as r, getCalleeName as n, childNodes as i, getStaticPropertyName as o, getClassBody as a, getNodeStart as l } from \"../../rule-utils\";\nlet RULE_NAME = 'rxjs-prefer-toSignal-for-template-state', OBSERVABLE_TYPES = new Set([\n 'Observable',\n 'Subject',\n 'BehaviorSubject',\n 'ReplaySubject',\n 'AsyncSubject'\n]), TEARDOWN_NAMES = new Set([\n 'destroy$',\n 'destroyed$',\n 'unsub$',\n 'teardown$',\n 'dispose$'\n]);\nexport const rxjsPreferToSignalRule = e(RULE_NAME, (e, s)=>{\n let p = e.metadata;\n if (p?.type !== 'Component') return null;\n let f = s.crossRef?.templateReferences;\n if (void 0 === f) return null;\n let u = a(e.node), y = [];\n for (let e of u){\n if ('PropertyDefinition' !== e.type) continue;\n let a = e.key?.name ?? '';\n if (!a || !a.endsWith('$') || TEARDOWN_NAMES.has(a.toLowerCase()) || function(e) {\n let t = e.modifiers, i = e.decorators ?? (Array.isArray(t) ? t.filter((e)=>'Decorator' === e.type) : void 0);\n return Array.isArray(i) && i.some((e)=>{\n let t = r(e.expression);\n return 'Output' === (t?.type === 'CallExpression' ? n(t) : t?.type === 'Identifier' ? t.name : null);\n });\n }(e)) continue;\n let p = a.slice(0, -1);\n if (!f.has(a) && !f.has(p) || !function(e) {\n if (OBSERVABLE_TYPES.has(function(e) {\n let t = e.typeAnnotation, n = r(t?.typeAnnotation);\n if (!n || 'TSTypeReference' !== n.type && 'TypeReference' !== n.type) return '';\n let i = n.typeName ?? n.name;\n if ('string' == typeof i) return i;\n if (i && 'object' == typeof i) {\n if ('Identifier' === i.type) return i.name ?? '';\n if ('TSQualifiedName' === i.type) return r(i.right)?.name ?? '';\n }\n return '';\n }(e))) return !0;\n let t = r(e.value ?? e.initializer);\n if (!t) return !1;\n let a = n(t);\n if ('toSignal' === a || 'signal' === a || 'computed' === a) return !1;\n if ('NewExpression' === t.type) {\n let e = r(t.callee), n = e?.type === 'Identifier' ? e.name : o(e);\n return !!n && OBSERVABLE_TYPES.has(n);\n }\n let l = [\n t\n ];\n for(; l.length > 0;){\n let e = r(l.pop());\n if (e) {\n if ('CallExpression' === e.type && 'pipe' === n(e)) return !0;\n for (let t of i(e))l.push(t);\n }\n }\n return !1;\n }(e)) continue;\n let { line: u, column: c } = s.locator.location(l(e));\n y.push({\n filePath: s.filePath,\n ruleName: RULE_NAME,\n message: `Observable \"${a}\" is read by the template, which can add async-pipe churn and weaker signal integration.`,\n line: u,\n column: c,\n severity: 'warn',\n fix: t[RULE_NAME]\n });\n }\n return y.length ? y : null;\n}, {\n requires: {\n projectContext: !0,\n htmlAst: !0\n }\n});\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as r } from \"../../recommendations\";\nimport { getObjectProperty as t, isLiteralTrue as l, isLiteralNullOrUndefined as i, isCalleeNamed as n, getNodeStart as a, unwrapNode as u } from \"../../rule-utils\";\nlet RULE_NAME = 'toSignal-require-initialValue';\nexport const toSignalRequireInitialValueRule = e(RULE_NAME, (e, o)=>{\n if (!n(e.callee, 'toSignal')) return null;\n let s = Array.isArray(e.arguments) ? e.arguments : [], m = s[1] ? u(s[1]) : null;\n if (!m || 'ObjectExpression' !== m.type || !function(e) {\n let r = t(e, 'initialValue');\n if (r && !i(r.value)) return !0;\n let n = t(e, 'requireSync');\n return !!n && l(n.value);\n }(m)) {\n let { line: t, column: l } = o.locator.location(a(e));\n return {\n filePath: o.filePath,\n ruleName: RULE_NAME,\n message: 'toSignal() can emit undefined before the observable produces a value.',\n line: t,\n column: l,\n severity: 'warn',\n fix: r[RULE_NAME]\n };\n }\n return null;\n});\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from \"../../recommendations\";\nimport { unwrapNode as r, isMemberExpressionLike as i, getStaticPropertyName as n, getTsSymbolAtNode as s, getCalleeName as l, childNodes as a, isCalleeNamed as c, getCallbackArg as o, getFunctionBody as f, getNodeStart as u } from \"../../rule-utils\";\nlet WRITE_METHODS = new Set([\n 'set',\n 'update',\n 'mutate'\n]), ASYNC_METHODS = new Set([\n 'setTimeout',\n 'setInterval',\n 'queueMicrotask',\n 'requestAnimationFrame',\n 'then',\n 'catch',\n 'finally',\n 'subscribe'\n]);\nexport const signalPreferComputedRule = e('signal-prefer-computed-over-sync-effect', (e, p)=>{\n if (!c(e.callee, 'effect')) return null;\n let h = o(e), y = h ? f(h) : null;\n if (!y) return null;\n let { hasRead: m, hasWrite: d, hasAsync: g, hasLinked: E, firstWrite: S } = function(e, t) {\n let c = {\n hasRead: !1,\n hasWrite: !1,\n hasAsync: !1,\n hasLinked: !1,\n firstWrite: null\n }, o = [\n e\n ];\n for(; o.length;){\n let e = r(o.pop());\n if (e) {\n if (('AwaitExpression' === e.type || 'YieldExpression' === e.type) && (c.hasAsync = !0), 'CallExpression' === e.type) {\n let a = l(e);\n a && ASYNC_METHODS.has(a) && (c.hasAsync = !0), 'linkedSignal' === a && (c.hasLinked = !0), function(e) {\n let t = r(e);\n if (!t || 'CallExpression' !== t.type) return !1;\n let s = r(t.callee);\n return i(s) && WRITE_METHODS.has(n(s) || '');\n }(e) ? (c.hasWrite = !0, c.firstWrite || (c.firstWrite = e)) : function(e, t, n) {\n let l = r(e);\n if (!l || 'CallExpression' !== l.type || Array.isArray(l.arguments) && l.arguments.length > 0) return !1;\n let a = r(l.callee);\n if (!a) return !1;\n if (t.typeChecker) try {\n let e = s(a, t);\n if (e) {\n let r = t.typeChecker.getTypeOfSymbolAtLocation(e, e.valueDeclaration);\n if (r && t.typeChecker.typeToString(r).includes('Signal')) return !0;\n }\n } catch {}\n return i(a) ? r(a.object)?.type === 'ThisExpression' : n && 'Identifier' === a.type;\n }(e, t, !0) && (c.hasRead = !0);\n }\n for (let t of a(e))o.push(t);\n }\n }\n return c;\n }(y, p);\n if (!d || !m || g || E) return null;\n let { line: T, column: v } = p.locator.location(u(S || e));\n return {\n filePath: p.filePath,\n ruleName: 'signal-prefer-computed-over-sync-effect',\n message: 'This effect reads reactive values and writes derived state, which adds extra reactive cycles.',\n line: T,\n column: v,\n severity: 'warn',\n fix: t['signal-prefer-computed-over-sync-effect']\n };\n}, {\n requires: {\n typeChecker: !0\n }\n});\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as r } from \"../../recommendations\";\nimport { getCalleeName as t, getNodeStart as n, isCalleeNamed as a, childNodes as i, unwrapNode as o } from \"../../rule-utils\";\nlet RENDER_HOOKS = new Set([\n 'afterRender',\n 'afterNextRender'\n]), RENDER_HOOK_PATTERN = /\\bafterNextRender\\s*\\(|\\bafterRender\\s*\\(/, rangeCache = new Map();\nexport const signalAvoidUntrackedRule = e('signal-avoid-untracked-overuse', (e, s)=>{\n if (!a(e.callee, 'untracked') || function(e, r) {\n let a = r.sourceText ?? r.fileContent;\n if ('string' == typeof a && !RENDER_HOOK_PATTERN.test(a)) return !1;\n let s = e.parent;\n for(; s;){\n if ('CallExpression' === s.type && RENDER_HOOKS.has(t(s))) return !0;\n s = s.parent;\n }\n let l = n(e);\n return (function(e) {\n let r = rangeCache.get(e.filePath);\n if (void 0 !== r) return r;\n let a = e.program;\n return r = a ? function(e) {\n let r = [], a = e.body, s = Array.isArray(a) ? [\n ...a\n ] : [\n e\n ];\n for(; s.length;){\n let e = o(s.pop());\n if (e) {\n if ('CallExpression' === e.type && RENDER_HOOKS.has(t(e))) {\n let t = o(e.arguments?.[0]);\n if (t) {\n let e = n(t), a = t.end ?? t.span?.end ?? n(t);\n a > e && r.push([\n e,\n a\n ]);\n }\n }\n for (let r of i(e))s.push(r);\n }\n }\n return r;\n }(a) : [], rangeCache.size >= 300 && rangeCache.clear(), rangeCache.set(e.filePath, r), r;\n })(r).some(([e, r])=>l >= e && l < r);\n }(e, s)) return null;\n let { line: l, column: f } = s.locator.location(n(e));\n return {\n filePath: s.filePath,\n ruleName: 'signal-avoid-untracked-overuse',\n message: 'untracked() hides this read from dependency tracking, which can mask stale reactive state.',\n line: l,\n column: f,\n severity: 'warn',\n fix: r['signal-avoid-untracked-overuse']\n };\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { unwrapNode as t, getClassBody as r, getConstructorMember as o, getNodeStart as a, getParamIdentifierName as i, getParamTypeName as n, getParamsArray as l, getTsSymbolAtNode as s, isLikelyAngularInjectableSymbol as c } from '../../rule-utils';\nimport { CODE_EXAMPLES as d, RECOMMENDATIONS as m } from '../../recommendations';\nlet RULE_NAME = 'prefer-inject-over-constructor-di', DIISH_NAMES = new Set([\n 'http',\n 'router',\n 'route',\n 'cdr',\n 'cdref',\n 'changedetectorref',\n 'injector',\n 'ngzone',\n 'zone',\n 'renderer',\n 'renderer2',\n 'elementref',\n 'el',\n 'document',\n 'platform',\n 'location',\n 'dialog',\n 'snack',\n 'toast',\n 'store',\n 'facade',\n 'logger',\n 'translate',\n 'i18n',\n 'auth',\n 'api',\n 'client',\n 'matdialog',\n 'overlay',\n 'breakpointobserver',\n 'snackbar',\n 'matsnackbar',\n 'bottomsheet',\n 'matbottomsheet',\n 'clipboard',\n 'directionality',\n 'focusmonitor',\n 'mediamatcher',\n 'viewportruler',\n 'scrolldispatcher',\n 'dragdrop',\n 'liveannouncer',\n 'activatedroute',\n 'fb',\n 'firestore',\n 'angularfire',\n 'formbuilder',\n 'titleservice',\n 'metaservice',\n 'title',\n 'meta',\n 'sanitizer',\n 'domsanitizer',\n 'compiler',\n 'applicationref',\n 'componentfactoryresolver',\n 'viewcontainerref',\n 'templateref',\n 'destroyref'\n]), NON_DIISH_NAMES = new Set([\n 'data',\n 'config',\n 'options',\n 'opts',\n 'params',\n 'payload',\n 'input',\n 'value',\n 'values',\n 'items',\n 'item',\n 'context',\n 'ctx',\n 'model',\n 'vm',\n 'state',\n 'initialstate',\n 'result',\n 'name',\n 'id',\n 'label',\n 'text',\n 'title',\n 'message',\n 'url',\n 'path',\n 'index',\n 'count',\n 'size',\n 'length',\n 'width',\n 'height',\n 'color',\n 'type',\n 'key',\n 'mode',\n 'flag',\n 'enabled',\n 'disabled',\n 'visible',\n 'hidden'\n]), DIISH_SUFFIXES = [\n 'Service',\n 'Facade',\n 'Store',\n 'Client',\n 'Repository',\n 'Adapter',\n 'Manager',\n 'Controller',\n 'Provider',\n 'Registry',\n 'Logger',\n 'Router',\n 'ActivatedRoute',\n 'ChangeDetectorRef',\n 'DestroyRef',\n 'Injector',\n 'NgZone',\n 'Renderer2',\n 'ElementRef',\n 'HttpClient',\n 'ViewContainerRef',\n 'TemplateRef',\n 'ComponentFactoryResolver',\n 'ApplicationRef',\n 'MatDialog',\n 'MatDialogRef',\n 'MatSnackBar',\n 'MatBottomSheet',\n 'Overlay',\n 'OverlayRef',\n 'BreakpointObserver',\n 'Clipboard',\n 'FocusMonitor',\n 'MediaMatcher',\n 'ScrollDispatcher',\n 'DragDrop',\n 'LiveAnnouncer',\n 'Directionality',\n 'ViewportRuler',\n 'FormBuilder',\n 'DomSanitizer',\n 'Title',\n 'Meta',\n 'Dispatcher',\n 'Gateway',\n 'Handler',\n 'Interceptor',\n 'Guard',\n 'Resolver',\n 'Factory',\n 'Strategy',\n 'Validator'\n], PRIMITIVES = new Set([\n 'string',\n 'number',\n 'boolean',\n 'symbol',\n 'bigint',\n 'any',\n 'unknown',\n 'void'\n]);\nexport const preferInjectRule = e(RULE_NAME, (e, p)=>{\n let u = o(r(e.node));\n if (!u) return null;\n let f = l(u.value ?? u).filter((e)=>(function(e, r) {\n let o = t(e);\n if (!o) return !1;\n if (Array.isArray(o.decorators) && o.decorators.length > 0 || o.accessibility || o.readonly) return !0;\n if (r.typeChecker) {\n let t = s(e, r);\n if (t && c(t)) return !0;\n }\n let a = (i(e) || '').toLowerCase().trim();\n if (!a || NON_DIISH_NAMES.has(a)) return !1;\n if (DIISH_NAMES.has(a)) return !0;\n let l = (n(e) || '').trim();\n return !(!l || PRIMITIVES.has(l.toLowerCase())) && DIISH_SUFFIXES.some((e)=>l.endsWith(e));\n })(e, p));\n if (0 === f.length) return null;\n let { line: g, column: h } = p.locator.location(a(u)), y = f.map((e)=>`${i(e)}: ${n(e)}`).join(', ');\n return {\n filePath: p.filePath,\n ruleName: RULE_NAME,\n message: `Constructor dependency injection makes class setup less composable than inject().${y ? ` Offending params: ${y}.` : ''}`,\n line: g,\n column: h,\n severity: 'warn',\n fix: m[RULE_NAME],\n codeExample: d[RULE_NAME]\n };\n}, {\n requires: {\n typeChecker: !0\n }\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { CODE_EXAMPLES as t, RECOMMENDATIONS as r } from '../../recommendations';\nimport { getClassBody as n, getNodeStart as o, unwrapNode as i } from '../../rule-utils';\nlet RULE_NAME = 'signal-prefer-input-signal';\nfunction isInputDecorator(e) {\n let t = i(e.expression ?? e);\n if (!t) return !1;\n if ('Identifier' === t.type) return 'Input' === t.name;\n if ('CallExpression' === t.type) {\n let e = i(t.callee);\n return e?.type === 'Identifier' && 'Input' === e.name;\n }\n return !1;\n}\nexport const signalPreferInputSignalRule = e(RULE_NAME, (e, a)=>{\n if ('Component' !== e.decoratorName && 'Directive' !== e.decoratorName) return null;\n let s = n(e.node), l = [], p = a.project?.standaloneComponents?.has(a.filePath) ?? !1;\n for (let e of s){\n let n = i(e);\n if (n && ('PropertyDefinition' === n.type || 'AccessorProperty' === n.type) && Array.isArray(n.decorators) && n.decorators.some(isInputDecorator)) {\n let e = o(n), { line: s, column: u } = a.locator.location(e), f = i(n.key), m = (f?.type === 'Identifier' ? f.name : f?.type === 'Literal' ? String(f.value) : '') || '(unknown)', c = `'${m}' uses @Input(), which keeps this input outside Angular's signal graph.`;\n p && (c += ' Standalone declarations benefit most from signal inputs.'), l.push({\n filePath: a.filePath,\n ruleName: RULE_NAME,\n message: c,\n line: s,\n column: u,\n severity: p ? 'error' : 'warn',\n fix: r[RULE_NAME],\n codeExample: t[RULE_NAME]\n });\n }\n }\n return l.length > 0 ? l : null;\n}, {\n requires: {\n projectContext: !0\n }\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { CODE_EXAMPLES as t, RECOMMENDATIONS as r } from '../../recommendations';\nimport { getClassBody as n, getNodeStart as i, getParamTypeName as o, getTsSymbolAtNode as l, unwrapNode as u } from '../../rule-utils';\nlet RULE_NAME = 'signal-prefer-output-function';\nexport const signalPreferOutputFunctionRule = e(RULE_NAME, (e, a)=>{\n if ('Component' !== e.decoratorName && 'Directive' !== e.decoratorName) return null;\n let p = n(e.node), f = [];\n for (let e of p){\n let n = u(e);\n if (n && ('PropertyDefinition' === n.type || 'AccessorProperty' === n.type) && Array.isArray(n.decorators) && n.decorators.some((e)=>{\n let t = u(e.expression ?? e);\n if (!t) return !1;\n if ('Identifier' === t.type) return 'Output' === t.name;\n if ('CallExpression' === t.type) {\n let e = u(t.callee);\n return e?.type === 'Identifier' && 'Output' === e.name;\n }\n return !1;\n }) && function(e, t) {\n let r = u(e.value);\n if (r?.type === 'NewExpression') {\n let e = u(r.callee);\n if (e?.type === 'Identifier' && 'EventEmitter' === e.name) return !0;\n }\n let n = u(e.typeAnnotation);\n if (n && o(n).includes('EventEmitter')) return !0;\n if (t.typeChecker) {\n let r = l(e, t);\n if (r && ('function' == typeof r.getName ? r.getName() : '').includes('EventEmitter')) return !0;\n }\n return !1;\n }(n, a)) {\n let e = i(n), { line: o, column: l } = a.locator.location(e), p = u(n.key), s = (p?.type === 'Identifier' ? p.name : p?.type === 'Literal' ? String(p.value) : '') || '(unknown)';\n f.push({\n filePath: a.filePath,\n ruleName: RULE_NAME,\n message: `'${s}' uses @Output() EventEmitter, which adds boilerplate compared with output().`,\n line: o,\n column: l,\n severity: 'warn',\n fix: r[RULE_NAME],\n codeExample: t[RULE_NAME]\n });\n }\n }\n return f.length > 0 ? f : null;\n}, {\n requires: {\n typeChecker: !0\n }\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { CODE_EXAMPLES as t, RECOMMENDATIONS as r } from '../../recommendations';\nimport { getClassBody as n, getNodeStart as i, isMemberExpressionLike as o, unwrapNode as l } from '../../rule-utils';\nlet RULE_NAME = 'signal-prefer-model';\nfunction getDecoratorName(e, t) {\n return Array.isArray(e.decorators) && e.decorators.some((e)=>{\n let r = l(e.expression ?? e);\n if (!r) return !1;\n if ('Identifier' === r.type) return r.name === t;\n if ('CallExpression' === r.type) {\n let e = l(r.callee);\n return e?.type === 'Identifier' && e.name === t;\n }\n return !1;\n });\n}\nfunction hasSignal(e, t) {\n let r = l(e.value);\n if (!r || 'CallExpression' !== r.type) return !1;\n let n = l(r.callee);\n if (!n) return !1;\n if ('Identifier' === n.type) return n.name === t;\n if (o(n)) {\n let e = l(n.object);\n return e?.type === 'Identifier' && e.name === t;\n }\n return !1;\n}\nexport const signalPreferModelRule = e(RULE_NAME, (e, o)=>{\n if ('Component' !== e.decoratorName && 'Directive' !== e.decoratorName) return null;\n let a = n(e.node), u = new Map(), f = new Map();\n for (let e of a){\n let t = l(e);\n if (!t || 'PropertyDefinition' !== t.type && 'AccessorProperty' !== t.type) continue;\n let r = function(e) {\n let t = l(e.key);\n return t ? 'Identifier' === t.type ? t.name ?? null : 'Literal' === t.type ? String(t.value) : null : null;\n }(t);\n r && ((getDecoratorName(t, 'Input') || hasSignal(t, 'input')) && u.set(r, t), (getDecoratorName(t, 'Output') || hasSignal(t, 'output')) && f.set(r, t));\n }\n let p = [];\n for (let [e, n] of f){\n if (!e.endsWith('Change')) continue;\n let n = e.slice(0, -6), l = u.get(n);\n if (l) {\n let a = i(l), { line: u, column: f } = o.locator.location(a);\n p.push({\n filePath: o.filePath,\n ruleName: RULE_NAME,\n message: `The \\`${n}\\` / \\`${e}\\` pair implements two-way binding with extra wiring that model() avoids.`,\n line: u,\n column: f,\n severity: 'warn',\n fix: r[RULE_NAME],\n codeExample: t[RULE_NAME]\n });\n }\n }\n return p.length > 0 ? p : null;\n});\n","import { createTemplateAttributeRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from \"../../recommendations\";\nimport { getTemplateAbsoluteOffset as r } from \"../../rule-utils\";\nlet LEGACY_DIRECTIVES = new Map([\n [\n '*ngIf',\n '@if'\n ],\n [\n '*ngFor',\n '@for'\n ],\n [\n '*ngSwitch',\n '@switch'\n ],\n [\n '[ngSwitch]',\n '@switch'\n ],\n [\n '*ngSwitchCase',\n '@case'\n ],\n [\n '*ngSwitchDefault',\n '@default'\n ]\n]), RULE_NAME = 'template-prefer-control-flow';\nexport const templatePreferControlFlowRule = e(RULE_NAME, (e, o)=>{\n var l;\n let n = (l = e.name, LEGACY_DIRECTIVES.get(l) ?? null);\n if (!n) return null;\n let i = r(o, e.sourceSpan.start), { line: s, column: a } = o.locator.location(i);\n return {\n filePath: o.filePath,\n ruleName: RULE_NAME,\n message: `\\`${e.name}\\` uses legacy structural directive syntax, so it misses the \\`${n}\\` control flow benefits.`,\n line: s,\n column: a,\n severity: 'error',\n fix: t[RULE_NAME]\n };\n}, {\n requires: {\n htmlAst: !0\n }\n});\n","import { createTemplateExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from \"../../recommendations\";\nimport { unwrapNode as r, isMemberExpressionLike as n, getStaticPropertyName as i, getTemplateAbsoluteOffset as l } from \"../../rule-utils\";\nlet seenByTemplateKey = new WeakMap();\nexport const templateNoAsyncPipeDuplicationRule = e('template-no-async-pipe-duplication', (e, p)=>{\n let a, o, s = function e(t) {\n let n = r(t);\n if (!n) return null;\n if ('BinaryExpression' === n.type && '|' === n.operator) {\n let t = r(n.right);\n return t?.type === 'Identifier' && 'async' === t.name ? r(n.left) : e(n.left);\n }\n return null;\n }(e.expression), u = s ? function e(t, r = 0) {\n if (!t || r > 10) return null;\n if ('Identifier' === t.type) return t.name;\n if ('ThisExpression' === t.type) return 'this';\n if ('Literal' === t.type) {\n let e = t.value;\n return null === e ? 'null' : 'string' == typeof e || 'number' == typeof e || 'boolean' == typeof e || 'bigint' == typeof e ? String(e) : null;\n }\n if ('CallExpression' === t.type) {\n let n = e(t.callee, r + 1), i = (Array.isArray(t.arguments) ? t.arguments : []).map((t)=>e(t, r + 1) ?? '?');\n return `${n}(${i.join(',')})`;\n }\n if (n(t)) {\n let n = e(t.object, r + 1), l = i(t);\n if (n && l) return `${n}.${l}`;\n }\n if ('UnaryExpression' === t.type) return `${t.operator}${e(t.argument, r + 1)}`;\n if ('ConditionalExpression' === t.type) return `${e(t.test, r + 1)}?${e(t.consequent, r + 1)}:${e(t.alternate, r + 1)}`;\n if ('OptionalExpression' === t.type || 'ChainExpression' === t.type) return e(t.expression, r + 1);\n if ('LogicalExpression' === t.type) {\n let n = e(t.left, r + 1), i = e(t.right, r + 1);\n if (n && i) return `${n}${t.operator}${i}`;\n }\n if ('BinaryExpression' === t.type && '|' !== t.operator) {\n let n = e(t.left, r + 1), i = e(t.right, r + 1);\n if (n && i) return `${n}${t.operator}${i}`;\n }\n if ('ArrayExpression' === t.type) {\n let n = (t.elements ?? []).map((t)=>e(t, r + 1) ?? '?');\n return `[${n.join(',')}]`;\n }\n if ('ObjectExpression' === t.type) {\n let n = (t.properties ?? []).map((t)=>{\n let n = t.key ? e(t.key, r + 1) : '?', i = t.value ? e(t.value, r + 1) : '?';\n return `${n}:${i}`;\n });\n return `{${n.join(',')}}`;\n }\n if ('TemplateLiteral' === t.type) return '`tmpl`';\n if ('AssignmentExpression' === t.type) {\n let n = e(t.left, r + 1), i = e(t.right, r + 1);\n if (n && i) return `${n}${t.operator}${i}`;\n }\n return null;\n }(s) : null;\n if (!u) return null;\n let f = (a = p.template, o = a?.templateStartOffset, `${p.filePath}@${'number' == typeof o && Number.isFinite(o) ? o : 0}`), y = seenByTemplateKey.get(p);\n y || (y = new Map(), seenByTemplateKey.set(p, y));\n let m = y.get(f);\n if (m || (m = new Set(), y.set(f, m)), m.has(u)) {\n let r = l(p, e.sourceSpan.start), { line: n, column: i } = p.locator.location(r);\n return {\n filePath: p.filePath,\n ruleName: 'template-no-async-pipe-duplication',\n message: `Duplicate async pipe subscriptions for \"${u}\" can create repeated work and inconsistent loading states.`,\n line: n,\n column: i,\n severity: 'warn',\n fix: t['template-no-async-pipe-duplication']\n };\n }\n return m.add(u), null;\n}, {\n requires: {\n htmlAst: !0\n }\n});\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from \"../../recommendations\";\nimport { unwrapNode as s, getNodeStart as n } from \"../../rule-utils\";\nlet FOCUSED_NAMES = new Set([\n \"fdescribe\",\n \"fit\",\n 'describe.only',\n 'it.only',\n 'test.only',\n 'context.only',\n \"xdescribe\",\n \"xit\",\n \"xtest\",\n \"xcontext\"\n]), SKIPPED_NAMES = new Set([\n 'xdescribe',\n 'xit',\n 'xtest',\n 'xcontext'\n]);\nfunction getIdentifierName(e) {\n return 'Identifier' === e.type ? e.name ?? null : null;\n}\nexport const specNoFocusedTestRule = e('spec-no-focused-test', (e, i)=>{\n var r;\n let o;\n if (!((r = i.filePath).endsWith('.spec.ts') || r.endsWith('.test.ts'))) return null;\n let l = s(e.callee);\n if (!l) return null;\n let c = (o = getIdentifierName(l) || function(e) {\n if ('MemberExpression' === e.type || 'StaticMemberExpression' === e.type || 'OptionalMemberExpression' === e.type) {\n let t = s(e.object), n = e.property?.name ?? '', i = (t?.type === 'Identifier' ? t.name : '') ?? '';\n return i ? `${i}.${n}` : null;\n }\n return null;\n }(l)) && FOCUSED_NAMES.has(o) ? o : null;\n if (!c) {\n if ('pending' === getIdentifierName(l)) {\n let s = n(e), { line: r, column: o } = i.locator.location(s);\n return {\n filePath: i.filePath,\n ruleName: 'spec-no-focused-test',\n message: '`pending()` disables the test body, so the committed suite can miss coverage.',\n line: r,\n column: o,\n severity: 'error',\n fix: t['spec-no-focused-test']\n };\n }\n return null;\n }\n let a = n(e), { line: u, column: f } = i.locator.location(a), p = SKIPPED_NAMES.has(c) ? `\\`${c}\\` disables a test that may be forgotten.` : `\\`${c}\\` is a focused test helper that can skip the rest of the suite in CI.`;\n return {\n filePath: i.filePath,\n ruleName: 'spec-no-focused-test',\n message: p,\n line: u,\n column: f,\n severity: 'error',\n fix: t['spec-no-focused-test']\n };\n}, {\n dependencyType: 'spec',\n requires: {\n tsAst: !0\n }\n});\n","import { registerNewEngineRule as r } from '../engine/adapter.js';\nimport { componentNoManualDetectChangesRule as e } from '../rules/correctness/component-no-manual-detect-changes.rule.js';\nimport { signalNoSideEffectsInComputedRule as t } from '../rules/correctness/signal-no-side-effects-in-computed.rule.js';\nimport { signalEffectDestroyScopedRule as s } from '../rules/correctness/signal-effect-must-be-destroy-scoped.rule.js';\nimport { rxjsNoNestedSubscribeRule as o } from '../rules/correctness/rxjs-no-nested-subscribe.rule.js';\nimport { preferOnPushRule as i } from '../rules/performance/prefer-on-push.rule.js';\nimport { templateNoCallExpressionRule as l } from '../rules/performance/template-no-call-expression.rule.js';\nimport { templateTrackByRequiredRule as m } from '../rules/performance/template-trackby-required.rule.js';\nimport { templateNoObjectLiteralBindingRule as n } from '../rules/performance/template-no-object-literal-binding.rule.js';\nimport { templateNoArrayLiteralBindingRule as u } from '../rules/performance/template-no-array-literal-binding.rule.js';\nimport { noBypassSanitizationRule as p } from '../rules/security/no-bypass-sanitization.rule.js';\nimport { templateNoUnsafeBindingsRule as a } from '../rules/security/template-no-unsafe-bindings.rule.js';\nimport { noDocumentAccessRule as c } from '../rules/ssr/no-document-access.rule.js';\nimport { preferAfterRenderOverAfterViewInitRule as f } from '../rules/ssr/prefer-after-render-over-after-view-init.rule.js';\nimport { rxjsNoSubscribeInComponentRule as j } from '../rules/reactivity/rxjs-no-subscribe-in-component.rule.js';\nimport { rxjsRequireTakeUntilDestroyedRule as d } from '../rules/reactivity/rxjs-require-take-until-destroyed.rule.js';\nimport { rxjsAvoidSubjectRule as y } from '../rules/reactivity/rxjs-avoid-subject-as-event-bus.rule.js';\nimport { rxjsPreferToSignalRule as v } from '../rules/reactivity/rxjs-prefer-to-signal-for-template-state.rule.js';\nimport { toSignalRequireInitialValueRule as g } from '../rules/reactivity/to-signal-require-initial-value.rule.js';\nimport { signalPreferComputedRule as b } from '../rules/reactivity/signal-prefer-computed-over-sync-effect.rule.js';\nimport { signalAvoidUntrackedRule as x } from '../rules/reactivity/signal-avoid-untracked-overuse.rule.js';\nimport { preferInjectRule as k } from '../rules/modern-api/prefer-inject.rule.js';\nimport { signalPreferInputSignalRule as q } from '../rules/modern-api/signal-prefer-input-signal.rule.js';\nimport { signalPreferOutputFunctionRule as h } from '../rules/modern-api/signal-prefer-output-function.rule.js';\nimport { signalPreferModelRule as w } from '../rules/modern-api/signal-prefer-model.rule.js';\nimport { templatePreferControlFlowRule as z } from '../rules/template/template-prefer-control-flow.rule.js';\nimport { templateNoAsyncPipeDuplicationRule as A } from '../rules/template/template-no-async-pipe-duplication.rule.js';\nimport { specNoFocusedTestRule as B } from '../rules/testing/spec-no-focused-test.rule.js';\nexport function registerAllBuiltinRules() {\n r(e, 'correctness'), r(t, 'correctness'), r(s, 'correctness'), r(o, 'correctness'), r(i, 'performance'), r(l, 'performance'), r(m, 'performance'), r(n, 'performance'), r(u, 'performance'), r(p, 'security'), r(a, 'security'), r(c, 'ssr'), r(f, 'ssr'), r(j, 'reactivity'), r(d, 'reactivity'), r(y, 'reactivity'), r(v, 'reactivity'), r(g, 'reactivity'), r(b, 'reactivity'), r(x, 'reactivity'), r(k, 'modern-api'), r(q, 'modern-api'), r(h, 'modern-api'), r(w, 'modern-api'), r(z, 'template'), r(A, 'template'), r(B, 'testing');\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/execution-worker.ts","../src/registry/rule-registry.ts","../src/engine/adapter.ts","../src/rules/correctness/component-no-manual-detect-changes.rule.ts","../src/rule-utils.ts","../src/recommendations.ts","../src/rules/correctness/signal-no-side-effects-in-computed.rule.ts","../src/rules/correctness/signal-effect-must-be-destroy-scoped.rule.ts","../src/rules/correctness/rxjs-no-nested-subscribe.rule.ts","../src/rules/performance/prefer-on-push.rule.ts","../src/rules/performance/template-no-call-expression.rule.ts","../src/rules/performance/template-trackby-required.rule.ts","../src/rules/performance/template-no-object-literal-binding.rule.ts","../src/rules/performance/template-no-array-literal-binding.rule.ts","../src/rules/security/no-bypass-sanitization.rule.ts","../src/rules/security/template-no-unsafe-bindings.rule.ts","../src/rules/ssr/no-document-access.rule.ts","../src/rules/ssr/prefer-after-render-over-after-view-init.rule.ts","../src/rules/reactivity/rxjs-require-take-until-destroyed.rule.ts","../src/rules/reactivity/rxjs-no-subscribe-in-component.rule.ts","../src/rules/reactivity/rxjs-avoid-subject-as-event-bus.rule.ts","../src/rules/reactivity/rxjs-prefer-to-signal-for-template-state.rule.ts","../src/rules/reactivity/to-signal-require-initial-value.rule.ts","../src/rules/reactivity/signal-prefer-computed-over-sync-effect.rule.ts","../src/rules/reactivity/signal-avoid-untracked-overuse.rule.ts","../src/rules/modern-api/prefer-inject.rule.ts","../src/rules/modern-api/signal-prefer-input-signal.rule.ts","../src/rules/modern-api/signal-prefer-output-function.rule.ts","../src/rules/modern-api/signal-prefer-model.rule.ts","../src/rules/template/template-prefer-control-flow.rule.ts","../src/rules/template/template-no-async-pipe-duplication.rule.ts","../src/rules/testing/spec-no-focused-test.rule.ts","../src/registry/register-all.ts"],"names":["RuleRegistry","_handlers","Map","_meta","register","plugin","opts","has","name","allowOverride","Error","set","handler","meta","get","getRuleNames","Array","from","keys","getAll","getMeta","getMetadata","overrides","description","category","dependencyType","requires","tsAst","filePatterns","getRegistryEntry","metadata","defaultConfig","severity","options","toReadonlyMap","map","entry","size","_globalRegistry","getGlobalRegistry","registerNewEngineRule","debug","isNewEngineRule","ruleName","executeBatchedNewEngineRules","ruleNames","context","registry","handlers","push","length","filePath","results","performance","runSinglePassAnalysis","traversalMs","toFixed","nodesVisited","cacheStats","hits","misses","budgetViolations","_tsModule","unwrapNode","node","current","t","type","expression","isMemberExpressionLike","getStaticPropertyName","member","prop","property","computed","value","getNodeStart","start","span","isCalleeNamed","calleeRaw","callee","getCalleeName","callExprRaw","call","isSubscribeCall","getObjectProperty","objExpr","props","properties","isArray","key","isLiteralTrue","n","Boolean","isLiteralNullOrUndefined","SKIP_CHILD_KEYS","Set","childNodes","el","isConstructorMethod","def","kind","isMethodDefinition","getConstructorMember","classBody","m","getMethodBody","body","getMethodName","getClassBody","classNode","inner","isAllowedEffectCall","callExpr","args","arguments","injectorProp","manualCleanupProp","findEffectCalls","root","stack","pop","child","getCallbackArg","cb","getFunctionBody","fn","collectAllRxjsAliases","sourceText","exportedNames","result","aliasPatternsByName","RegExp","importPattern","importMatch","exec","specifier","split","s","trim","filter","exportedName","aliasPattern","aliasMatch","add","VALID_TEARDOWN_OPERATORS","getOperatorNameFromPipeArg","arg","hasTeardownInPipeCall","pipeCall","hasTeardownInReceiverChain","receiverExpr","object","getTemplateAbsoluteOffset","nodeStart","templateStartOffset","template","Number","isFinite","HTTP_CLIENT_VERBS","HTTP_CLIENT_PROP_NAMES","HTTP_ACTION_PREFIXES","findObservableSourceCall","isLikelyHttpObservable","sourceCall","methodName","receiverObj","httpPropName","lower","toLowerCase","prefix","startsWith","getParamsArray","funcNode","params","items","elements","getParamIdentifierName","param","p","parameter","left","argument","getParamTypeName","typeAnnotation","typeName","right","_tsModuleLoaded","requireTypescript","require","getTsSymbolAtNode","oxcNode","typeChecker","ts","sourceFile","fileContent","createSourceFile","ScriptTarget","Latest","tsNode","pos","getStart","getEnd","forEachChild","c","getSymbolAtLocation","INJECTABLE_SYMBOL_SUFFIXES","isLikelyAngularInjectableSymbol","symbol","getName","some","suffix","endsWith","decls","getDeclarations","decl","canHaveDecorators","dec","getDecorators","expr","isCallExpression","isIdentifier","text","RECOMMENDATIONS","CODE_EXAMPLES","RULE_NAME","DISCOURAGED_CDR_METHODS","HEURISTIC_CDR_NAMES","componentNoManualDetectChangesRule","createAnyAngularClassRule","classNodeWrapper","explicitAliases","hasExplicitAliases","analyzeComponent","isCdrAlias","aliases","ctor","alias","firstArg","token","isOnPush","changeDetection","ChangeDetectionStrategy","OnPush","failures","callNode","target","receiver","propertyName","line","column","locator","location","message","fix","codeExample","SIDE_EFFECT_METHODS","WRITE_METHODS","FUNCTION_NODE_TYPES","signalNoSideEffectsInComputedRule","createCallExpressionRule","callback","violation","operator","violationNode","signalEffectDestroyScopedRule","methodNode","effectCall","propNode","keyNode","OBSERVER_HANDLER_NAMES","isSubscribeHandler","rxjsNoNestedSubscribeRule","getHandlersFromObserver","propertyNode","i","Math","min","getNumberProp","obj","undefined","normalizeFilePath","replace","preferOnPushRule","createComponentRule","className","offset","componentName","moduleContext","project","currentFilePath","ngModuleMap","classToFile","moduleFile","moduleInfo","isStandalone","declarations","declaredFile","siblingComponentCount","declaredClass","moduleName","siblingNote","projectContext","ALLOWED_FREE_CALL_NAMES","ALLOWED_MEMBER_CALL_NAMES","isCallExpressionLike","unwrapped","templateNoCallExpressionRule","createTemplateExpressionRule","looksLikeGetter","crossRef","signalMembers","componentPath","getProgram","getSourceFile","classDecl","statements","find","isClassDeclaration","classType","getTypeAtLocation","getPropertyOfType","isSignalSymbol","valueDeclaration","getTypeOfSymbolAtLocation","typeStr","typeToString","includes","sourceSpan","htmlAst","createFailure","templateTrackByRequiredRule","createTemplateRule","analysis","attributes","microsyntax","match","blocks","parameters","test","templateNoObjectLiteralBindingRule","templateNoArrayLiteralBindingRule","BYPASS_METHODS","noBypassSanitizationRule","UNSAFE","desc","KNOWN_SAFE_PIPES","SANITIZE_METHOD_CALL","templateNoUnsafeBindingsRule","createTemplateAttributeRule","BROWSER_GLOBALS","noDocumentAccessRule","streamNode","browserGuardVars","vars","init","id","reported","guardType","alternate","consequent","rootName","curr","DOM_PATTERNS","DOM_PATTERN_PREFIXES","preferAfterRenderOverAfterViewInitRule","decoratorName","hookName","method","manualTeardownCache","hasManualTeardownInNgOnDestroy","rxjsRequireTakeUntilDestroyedRule","clear","rxjsNoSubscribeInComponentRule","pipeCallee","generic","templateRefs","templateReferences","propName","baseName","slice","SUBJECT_TYPES","TEARDOWN_NAMES","UI_STATE_PATTERN","extractCalls","found","rxjsAvoidSubjectRule","names","bridgeNames","decorators","d","keyName","pipeNames","accessibility","initializer","OBSERVABLE_TYPES","rxjsPreferToSignalRule","modifiers","typeAnn","typeNode","tn","toSignalRequireInitialValueRule","initial","sync","ASYNC_METHODS","signalPreferComputedRule","hasRead","hasWrite","hasAsync","hasLinked","firstWrite","res","inEffect","sym","RENDER_HOOKS","RENDER_HOOK_PATTERN","rangeCache","signalAvoidUntrackedRule","parent","ranges","program","programBody","end","e","DIISH_NAMES","NON_DIISH_NAMES","DIISH_SUFFIXES","PRIMITIVES","preferInjectRule","diParams","readonly","offenders","join","isInputDecorator","signalPreferInputSignalRule","standaloneComponents","String","msg","signalPreferOutputFunctionRule","val","getDecoratorName","hasSignal","signalPreferModelRule","inputs","outputs","_","base","inputNode","LEGACY_DIRECTIVES","templatePreferControlFlowRule","directiveName","modern","seenByTemplateKey","WeakMap","templateNoAsyncPipeDuplicationRule","findAsyncExpression","nodeRaw","stringify","depth","v","a","templateKey","state","seen","FOCUSED_NAMES","Object","SKIPPED_NAMES","getIdentifierName","specNoFocusedTestRule","focusedName","objName","registerAllBuiltinRules","configureRuleExecutor","parentPort","rootDir","tasks","workerData","errors","createAnalysisContext","tasksByFile","task","fileTasks","fileStart","now","batchResults","executeBatchedTasks","postMessage","buildFileProgress","error","evict","taskCount","duration","errorCount","warningCount","failure","typeAware","issueCount"],"mappings":"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","file":"execution-worker.cjs","sourcesContent":["import { parentPort as e, workerData as r } from \"node:worker_threads\";\nimport { createAnalysisContext as t, executeBatchedTasks as o, configureRuleExecutor as s } from \"@ngcompass/engine\";\nimport { registerAllBuiltinRules as i } from \"./registry/register-all.js\";\nimport { executeBatchedNewEngineRules as l, isNewEngineRule as n } from \"./engine/adapter.js\";\n(async ()=>{\n if (i(), s(l, n), !e) return;\n let { rootDir: a, tasks: f } = r, p = [], g = [], m = t(a), u = new Map();\n for (let e of f){\n let r = u.get(e.filePath) ?? [];\n r.push(e), u.set(e.filePath, r);\n }\n for (let [r, t] of u){\n let s = performance.now();\n try {\n let i = await o(t, m);\n p.push(...i), e.postMessage(buildFileProgress(r, t.length, i, performance.now() - s));\n } catch (o) {\n for (let e of t)g.push({\n task: e,\n error: o instanceof Error ? o.message : String(o)\n });\n e.postMessage(buildFileProgress(r, t.length, [], performance.now() - s));\n } finally{\n m.evict(r);\n }\n }\n e.postMessage({\n results: p,\n errors: g\n });\n})();\nlet buildFileProgress = (e, r, t, o)=>{\n let s = 0, i = 0;\n for (let e of t)for (let r of e.failures)'error' === r.severity ? s++ : 'warn' === r.severity && i++;\n return {\n kind: 'file-progress',\n filePath: e,\n taskCount: r,\n typeAware: !1,\n issueCount: s + i,\n errorCount: s,\n warningCount: i,\n duration: o\n };\n};\n","import { RECOMMENDATIONS as e } from '../recommendations.js';\nimport { getPresetsForRule as t } from '../presets/index.js';\nimport { allPreset as r } from '../presets/all.js';\nexport class RuleRegistry {\n _handlers = new Map();\n _meta = new Map();\n register(e, t = {}) {\n if (this._handlers.has(e.name) && !t.allowOverride) throw Error(`[ngcompass] Rule \"${e.name}\" is already registered. Use allowOverride: true to replace an existing rule intentionally.`);\n this._handlers.set(e.name, e.handler), e.meta && this._meta.set(e.name, e.meta);\n }\n get(e) {\n return this._handlers.get(e);\n }\n has(e) {\n return this._handlers.has(e);\n }\n getRuleNames() {\n return Array.from(this._handlers.keys());\n }\n getAll() {\n return this._handlers;\n }\n getMeta(e) {\n return this._meta.get(e);\n }\n getMetadata(e) {\n if (!this._handlers.has(e)) return;\n let t = this._meta.get(e) ?? {};\n return {\n name: e,\n description: t.description || `Rule: ${e}`,\n category: t.category || 'general',\n dependencyType: t.dependencyType || 'standalone',\n requires: {\n tsAst: !0,\n ...t.requires\n },\n filePatterns: t.filePatterns\n };\n }\n getRegistryEntry(e) {\n let t = this.getMetadata(e);\n if (t) return {\n name: e,\n metadata: t,\n defaultConfig: {\n severity: 'warn',\n options: {}\n }\n };\n }\n toReadonlyMap() {\n let e = new Map();\n for (let t of this._handlers.keys()){\n let r = this.getRegistryEntry(t);\n r && e.set(t, r);\n }\n return e;\n }\n get size() {\n return this._handlers.size;\n }\n}\nlet _globalRegistry = null;\nexport const getGlobalRegistry = ()=>(_globalRegistry || (_globalRegistry = new RuleRegistry()), _globalRegistry);\nexport const resetGlobalRegistry = ()=>{\n _globalRegistry = null;\n};\nexport const isKnownRule = (e)=>getGlobalRegistry().has(e);\nexport const getRuleMetadata = (e)=>getGlobalRegistry().getMetadata(e);\nexport const getAllRuleNames = ()=>getGlobalRegistry().getRuleNames();\nexport const getRuleRegistryMap = ()=>getGlobalRegistry().toReadonlyMap();\nexport function getRuleListEntries() {\n let s = getGlobalRegistry(), a = [];\n for (let l of s.getRuleNames()){\n let n = s.getMetadata(l);\n a.push({\n name: l,\n description: e[l] ?? n?.description ?? `Rule: ${l}`,\n domain: n?.category ?? 'general',\n severity: r.rules[l] ?? 'warn',\n presets: t(l)\n });\n }\n return a;\n}\n","import { runSinglePassAnalysis as t } from '@ngcompass/engine';\nimport { debug as e } from '@ngcompass/common';\nimport { getGlobalRegistry as s } from '../registry/rule-registry.js';\nexport const registerNewEngineRule = (t, a)=>{\n let o = {\n name: t.name,\n handler: t,\n meta: {\n dependencyType: 'component',\n ...t.meta,\n category: a ?? t.meta?.category ?? 'best-practice',\n requires: {\n ...t.meta?.requires\n }\n }\n };\n s().register(o), e('engine', `Registered rule: ${t.name}`);\n};\nexport const isNewEngineRule = (t)=>s().has(t);\nexport const getNewEngineRuleNames = ()=>s().getRuleNames();\nexport const executeBatchedNewEngineRules = (a, o)=>{\n let n = s(), i = [];\n for (let t of a){\n let e = n.get(t);\n e && i.push(e);\n }\n if (0 === i.length) return [];\n e('engine', `Executing ${i.length} rules in single pass on ${o.filePath}`);\n let { results: r, performance: l } = t(i, o);\n return e('engine', `Single-pass complete: ${l.traversalMs.toFixed(2)}ms, ${l.nodesVisited} nodes`), e('engine', `Cache hit rate: ${(l.cacheStats.hits / (l.cacheStats.hits + l.cacheStats.misses || 1) * 100).toFixed(1)}%`), l.budgetViolations.length > 0 && e('engine', 'Performance budget violations:', l.budgetViolations), r;\n};\nlet stats = {\n totalExecutions: 0,\n totalBatchedExecutions: 0,\n totalTraversalMs: 0,\n totalCacheHits: 0,\n totalCacheMisses: 0\n};\nexport const getEngineStats = ()=>{\n let t = stats.totalCacheHits + stats.totalCacheMisses || 1;\n return {\n totalExecutions: stats.totalExecutions,\n totalBatchedExecutions: stats.totalBatchedExecutions,\n avgTraversalMs: stats.totalExecutions > 0 ? stats.totalTraversalMs / stats.totalExecutions : 0,\n avgCacheHitRate: stats.totalCacheHits / t * 100\n };\n};\nexport const resetEngineStats = ()=>{\n stats.totalExecutions = 0, stats.totalBatchedExecutions = 0, stats.totalTraversalMs = 0, stats.totalCacheHits = 0, stats.totalCacheMisses = 0;\n};\n","import { ChangeDetectionStrategy as e, analyzeComponent as t } from '@ngcompass/ast';\nimport { createAnyAngularClassRule as n } from '@ngcompass/engine';\nimport { childNodes as r, getClassBody as o, getNodeStart as i, getParamIdentifierName as l, getParamTypeName as a, getParamsArray as c, getStaticPropertyName as f, getConstructorMember as u, isMemberExpressionLike as s, unwrapNode as p } from '../../rule-utils';\nimport { CODE_EXAMPLES as d, RECOMMENDATIONS as m } from '../../recommendations';\nlet RULE_NAME = 'component-no-manual-detect-changes', DISCOURAGED_CDR_METHODS = new Set([\n 'detectChanges',\n 'markForCheck'\n]), HEURISTIC_CDR_NAMES = new Set([\n 'cdr',\n 'cdref',\n 'changedetectorref',\n '_cdr',\n '_cdref',\n 'changedetector',\n '_changedetector',\n 'changedetectionref',\n 'cd',\n '_cd'\n]);\nexport const componentNoManualDetectChangesRule = n(RULE_NAME, (n, h)=>{\n var g, E;\n let C, _, D = n.node;\n if (E = D, t(E)?.type !== 'Component') return null;\n let R = (_ = (g = function(e) {\n let t = new Set(), n = o(e), r = u(n);\n if (r) {\n for (let e of c(r.value ?? r))if ('ChangeDetectorRef' === a(e)) {\n let n = l(e);\n n && t.add(n);\n }\n }\n for (let e of n)if ('PropertyDefinition' === e.type && e.value) {\n let n = p(e.value);\n if (n && function(e) {\n if ('CallExpression' !== e.type) return !1;\n let t = p(e.callee);\n if (t?.type !== 'Identifier' || 'inject' !== t.name) return !1;\n let [n] = e.arguments ?? [], r = p(n);\n return r?.type === 'Identifier' && 'ChangeDetectorRef' === r.name;\n }(n)) {\n let n = e.key;\n n?.type === 'Identifier' && t.add(n.name);\n }\n }\n return t;\n }(D)).size > 0, (e)=>!!g.has(e) || !_ && HEURISTIC_CDR_NAMES.has(e.toLowerCase())), y = (C = t(D), C?.type === 'Component' && C.changeDetection?.kind === 'literal' && C.changeDetection.value === e.OnPush), M = function(e, t, n, l) {\n let a = [], c = [\n ...o(e)\n ];\n for(; c.length > 0;){\n let e = p(c.pop());\n if (!e) continue;\n let o = function(e) {\n if ('CallExpression' !== e.type) return null;\n let t = p(e.callee);\n if (!s(t)) return null;\n let n = f(t);\n return n && DISCOURAGED_CDR_METHODS.has(n) ? n : null;\n }(e);\n for (let u of (o && function(e, t) {\n if ('CallExpression' !== e.type) return !1;\n let n = p(e.callee);\n if (!n || !s(n)) return !1;\n let r = p(n.object);\n if (!r) return !1;\n if ('Identifier' === r.type) return t(r.name);\n if (!s(r)) return !1;\n let o = p(r.object), i = f(r);\n return (o?.type === 'ThisExpression' || o?.type === 'Identifier' && 'this' === o.name) && !!i && t(i);\n }(e, l) && (n && 'markForCheck' === o || a.push(function(e, t, n, r) {\n let o = i(e), { line: l, column: a } = t.locator.location(o);\n return {\n filePath: t.filePath,\n ruleName: RULE_NAME,\n message: r ? 'Manual change detection in an OnPush component couples rendering to imperative calls.' : `Manual change detection (${n}) can hide state-flow bugs and make rendering harder to predict.`,\n line: l,\n column: a,\n severity: r ? 'warn' : 'error',\n fix: m[RULE_NAME],\n codeExample: d[RULE_NAME]\n };\n }(e, t, o, n))), r(e)))c.push(u);\n }\n return a;\n }(D, h, y, R);\n return M.length > 0 ? M : null;\n});\n","let _tsModule;\nexport function unwrapNode(e) {\n let t = e;\n for(; t;){\n let e = t.type;\n if ('ChainExpression' === e || 'TSNonNullExpression' === e || 'TSAsExpression' === e || 'ParenthesizedExpression' === e || 'TSInstantiationExpression' === e || 'TSSatisfiesExpression' === e) {\n t = t.expression;\n continue;\n }\n break;\n }\n return t ?? null;\n}\nexport function isMemberExpressionLike(e) {\n let t = e?.type;\n return 'MemberExpression' === t || 'StaticMemberExpression' === t || 'OptionalMemberExpression' === t;\n}\nexport function getStaticPropertyName(e) {\n if (!e) return '';\n let t = e.property;\n return t ? e.computed ? 'Literal' === t.type && 'string' == typeof t.value ? t.value : '' : t.name ?? '' : '';\n}\nexport function getNodeStart(e) {\n return e ? e.start ?? e.span?.start ?? 0 : 0;\n}\nexport function isCalleeNamed(e, t) {\n let r = unwrapNode(e);\n return !!r && ('Identifier' === r.type ? (r.name ?? '') === t : !!isMemberExpressionLike(r) && getStaticPropertyName(r) === t);\n}\nexport function getCalleeName(e) {\n let t = unwrapNode(e);\n if (!t || 'CallExpression' !== t.type) return '';\n let r = unwrapNode(t.callee);\n return r?.type === 'Identifier' ? r.name ?? '' : isMemberExpressionLike(r) ? getStaticPropertyName(r) : '';\n}\nexport function isSubscribeCall(e) {\n let t = unwrapNode(e?.callee);\n return !!isMemberExpressionLike(t) && 'subscribe' === getStaticPropertyName(t);\n}\nexport function getObjectProperty(e, t) {\n if (!e || 'ObjectExpression' !== e.type) return null;\n let r = e.properties;\n if (!Array.isArray(r)) return null;\n for (let e of r){\n if (!e || 'Property' !== e.type) continue;\n let r = e.key;\n if ((r?.type === 'Identifier' ? r.name : r?.type === 'Literal' && 'string' == typeof r.value ? r.value : '') === t) return e;\n }\n return null;\n}\nexport function isLiteralTrue(e) {\n let t = unwrapNode(e);\n return !!(t && 'Literal' === t.type && !0 === t.value);\n}\nexport function isLiteralNullOrUndefined(e) {\n let t = unwrapNode(e);\n return !t || 'Literal' === t.type && null === t.value || 'Identifier' === t.type && 'undefined' === t.name;\n}\nlet SKIP_CHILD_KEYS = new Set([\n 'parent',\n 'span',\n 'loc',\n 'range',\n 'start',\n 'end',\n 'type'\n]);\nexport function* childNodes(e) {\n if (e && 'object' == typeof e) {\n if (Array.isArray(e)) {\n for (let t of e)t && 'object' == typeof t && (yield t);\n return;\n }\n for(let t in e){\n if (SKIP_CHILD_KEYS.has(t)) continue;\n let r = e[t];\n if (r) if (Array.isArray(r)) for (let e of r)e && 'object' == typeof e && (yield e);\n else 'object' == typeof r && r.type && (yield r);\n }\n }\n}\nexport function isConstructorMethod(e) {\n if (!e) return !1;\n if ('constructor' === e.kind) return !0;\n let t = e.key;\n return t?.type === 'Identifier' && 'constructor' === t.name || t?.type === 'Literal' && 'constructor' === t.value;\n}\nexport function isMethodDefinition(e) {\n if (!e) return !1;\n let t = e.type;\n return 'MethodDefinition' === t || 'TSAbstractMethodDefinition' === t || 'ClassMethod' === t || 'MethodDeclaration' === t;\n}\nexport function getConstructorMember(e) {\n for (let t of e)if (t && isMethodDefinition(t) && isConstructorMethod(t)) return t;\n return null;\n}\nexport function getMethodBody(e) {\n if (!e) return null;\n let t = e.value ?? e;\n return t?.body ?? null;\n}\nexport function getMethodName(e) {\n let t = e?.key;\n return t ? 'Identifier' === t.type ? t.name ?? '<method>' : 'Literal' === t.type && 'string' == typeof t.value ? t.value : '<method>' : '<method>';\n}\nexport function getClassBody(e) {\n if (!e) return [];\n let t = e.body;\n if (Array.isArray(t)) return t;\n if (t && 'object' == typeof t && 'body' in t) {\n let e = t.body;\n if (Array.isArray(e)) return e;\n }\n return [];\n}\nexport function isAllowedEffectCall(e) {\n let t = unwrapNode(e);\n if (!t || 'CallExpression' !== t.type) return !1;\n let r = t.arguments;\n if (!Array.isArray(r) || r.length < 2) return !1;\n let n = unwrapNode(r[1]);\n if (!n || 'ObjectExpression' !== n.type) return !1;\n let i = getObjectProperty(n, 'injector');\n if (i && !isLiteralNullOrUndefined(i.value)) return !0;\n let o = getObjectProperty(n, 'manualCleanup');\n return !!(o && isLiteralTrue(o.value));\n}\nexport function findEffectCalls(e) {\n if (!e) return [];\n let t = [], r = [\n e\n ];\n for(; r.length;){\n let e = unwrapNode(r.pop());\n if (e) for (let n of ('CallExpression' === e.type && isCalleeNamed(e.callee, 'effect') && !isAllowedEffectCall(e) && t.push(e), childNodes(e)))r.push(n);\n }\n return t;\n}\nexport function getCallbackArg(e) {\n let t = e?.arguments;\n if (!Array.isArray(t) || 0 === t.length) return null;\n let r = unwrapNode(t[0]);\n return r && ('ArrowFunctionExpression' === r.type || 'FunctionExpression' === r.type) ? r : null;\n}\nexport function getFunctionBody(e) {\n if (!e) return null;\n let t = e.body;\n return t ? unwrapNode(t) : null;\n}\nexport function collectRxjsAliases(e, t) {\n let r = new Set([\n t\n ]);\n if ('string' != typeof e || 0 === e.length) return r;\n for (let n of [\n /import\\s*\\{\\s*([^}]+)\\s*\\}\\s*from\\s*['\"]rxjs['\"]/g,\n /import\\s*\\{\\s*([^}]+)\\s*\\}\\s*from\\s*['\"]rxjs\\/[^'\"]+['\"]/g\n ]){\n let i;\n for(; null !== (i = n.exec(e));)for (let e of (i[1] ?? '').split(',').map((e)=>e.trim()).filter(Boolean)){\n let n = RegExp(`^${t}(?:\\\\s+as\\\\s+([A-Za-z_$][\\\\w$]*))?$`).exec(e);\n n && r.add(n[1] ?? t);\n }\n }\n return r;\n}\nexport function collectAllRxjsAliases(e, t) {\n let r = new Map([\n ...t\n ].map((e)=>[\n e,\n new Set([\n e\n ])\n ]));\n if ('string' != typeof e || 0 === e.length) return r;\n let n = new Map([\n ...t\n ].map((e)=>[\n e,\n RegExp(`^${e}(?:\\\\s+as\\\\s+([A-Za-z_$][\\\\w$]*))?$`)\n ]));\n for (let t of [\n /import\\s*\\{\\s*([^}]+)\\s*\\}\\s*from\\s*['\"]rxjs['\"]/g,\n /import\\s*\\{\\s*([^}]+)\\s*\\}\\s*from\\s*['\"]rxjs\\/[^'\"]+['\"]/g\n ]){\n let i;\n for(; null !== (i = t.exec(e));)for (let e of (i[1] ?? '').split(',').map((e)=>e.trim()).filter(Boolean))for (let [t, i] of n){\n let n = i.exec(e);\n n && r.get(t).add(n[1] ?? t);\n }\n }\n return r;\n}\nexport const VALID_TEARDOWN_OPERATORS = new Set([\n 'takeUntilDestroyed',\n 'takeUntil',\n 'take',\n 'first',\n 'takeWhile'\n]);\nexport function getOperatorNameFromPipeArg(e) {\n let t = unwrapNode(e);\n if (!t) return '';\n if ('Identifier' === t.type) return t.name ?? '';\n if ('CallExpression' === t.type) {\n let e = unwrapNode(t.callee);\n return e?.type === 'Identifier' ? e.name ?? '' : isMemberExpressionLike(e) ? getStaticPropertyName(e) : '';\n }\n return isMemberExpressionLike(t) ? getStaticPropertyName(t) : '';\n}\nexport function hasTeardownInPipeCall(e) {\n let t = e.arguments;\n if (!Array.isArray(t)) return !1;\n for (let e of t)if (VALID_TEARDOWN_OPERATORS.has(getOperatorNameFromPipeArg(e))) return !0;\n return !1;\n}\nexport function hasTeardownInReceiverChain(e) {\n let t = e;\n for(; t;){\n let e = unwrapNode(t);\n if (!e || 'CallExpression' !== e.type) break;\n let r = unwrapNode(e.callee);\n if (!isMemberExpressionLike(r)) break;\n if ('pipe' === getStaticPropertyName(r) && hasTeardownInPipeCall(e)) return !0;\n t = r?.object;\n }\n return !1;\n}\nexport function getTemplateAbsoluteOffset(e, t) {\n let r = e.template?.templateStartOffset;\n return 'number' == typeof r && Number.isFinite(r) ? t + r : t;\n}\nlet HTTP_CLIENT_VERBS = new Set([\n 'get',\n 'post',\n 'put',\n 'patch',\n 'delete',\n 'head',\n 'options',\n 'jsonp',\n 'request'\n]), HTTP_CLIENT_PROP_NAMES = new Set([\n 'http',\n 'httpClient',\n '_http',\n '_httpClient'\n]), HTTP_ACTION_PREFIXES = [\n 'get',\n 'fetch',\n 'load',\n 'save',\n 'create',\n 'update',\n 'delete',\n 'remove',\n 'submit',\n 'send',\n 'post',\n 'put',\n 'patch',\n 'upload',\n 'download'\n];\nexport function findObservableSourceCall(e) {\n let t = e;\n for(; t;){\n let e = unwrapNode(t);\n if (!e || 'CallExpression' !== e.type) break;\n let r = unwrapNode(e.callee);\n if (!isMemberExpressionLike(r)) break;\n if ('pipe' !== getStaticPropertyName(r)) return e;\n t = r?.object;\n }\n return null;\n}\nexport function isLikelyHttpObservable(e) {\n if (!e) return !1;\n let t = unwrapNode(e);\n if (!t || 'CallExpression' !== t.type) return !1;\n let r = unwrapNode(t.callee);\n if (!isMemberExpressionLike(r)) return !1;\n let n = getStaticPropertyName(r);\n if (!n) return !1;\n let i = unwrapNode(r?.object), o = Array.isArray(t.arguments) ? t.arguments : [];\n if (HTTP_CLIENT_VERBS.has(n) && isMemberExpressionLike(i)) {\n let e = getStaticPropertyName(i);\n if (HTTP_CLIENT_PROP_NAMES.has(e)) return !0;\n }\n if (o.length > 0) {\n let e = n.toLowerCase();\n for (let t of HTTP_ACTION_PREFIXES)if (e.startsWith(t) && n.length > t.length) return !0;\n }\n return !1;\n}\nexport function getParamsArray(e) {\n if (!e) return [];\n let t = e.params;\n if (Array.isArray(t)) return t;\n if (t && 'object' == typeof t) {\n if ('items' in t && Array.isArray(t.items)) return t.items;\n if ('elements' in t && Array.isArray(t.elements)) return t.elements;\n }\n return [];\n}\nexport function getParamIdentifierName(e) {\n let t = unwrapNode(e);\n if (!t) return '';\n if ('Identifier' === t.type) return t.name ?? '';\n if ('TSParameterProperty' === t.type) return getParamIdentifierName(t.parameter);\n if ('AssignmentPattern' === t.type) {\n let e = unwrapNode(t.left);\n return e?.type === 'Identifier' ? e.name ?? '' : '';\n }\n if ('RestElement' === t.type) {\n let e = unwrapNode(t.argument);\n return e?.type === 'Identifier' ? e.name ?? '' : '';\n }\n return '';\n}\nexport function getParamTypeName(e) {\n let t = unwrapNode(e);\n if (!t) return '';\n if ('TSParameterProperty' === t.type) return getParamTypeName(t.parameter);\n let r = t.typeAnnotation, n = unwrapNode(r?.typeAnnotation ?? r);\n if (!n) return '';\n if ('TSTypeReference' === n.type || 'TypeReference' === n.type) {\n let e = n.typeName ?? n.name;\n if (e && 'object' == typeof e) {\n if ('Identifier' === e.type) return e.name ?? '';\n if ('TSQualifiedName' === e.type) return e.right?.name ?? '';\n }\n if ('string' == typeof e) return e;\n }\n return '';\n}\nlet _tsModuleLoaded = !1;\nfunction requireTypescript() {\n if (!_tsModuleLoaded) {\n try {\n _tsModule = require(\"typescript\");\n } catch {}\n _tsModuleLoaded = !0;\n }\n return _tsModule;\n}\nexport function getTsSymbolAtNode(e, t) {\n if (!e || !t.typeChecker) return;\n let r = requireTypescript();\n if (r) try {\n !t.sourceFile && t.fileContent && (t.sourceFile = r.createSourceFile(t.filePath, t.fileContent, r.ScriptTarget.Latest, !0));\n let n = t.sourceFile;\n if (!n) return;\n let i = function(e, t, r) {\n if (t < e.getStart() || t >= e.getEnd()) return;\n let n = e;\n for(;;){\n let e = r.forEachChild(n, (e)=>{\n if (t >= e.getStart() && t < e.getEnd()) return e;\n });\n if (!e) break;\n n = e;\n }\n return n;\n }(n, getNodeStart(e), r);\n if (!i) return;\n return t.typeChecker.getSymbolAtLocation(i);\n } catch {\n return;\n }\n}\nlet INJECTABLE_SYMBOL_SUFFIXES = [\n 'Service',\n 'Facade',\n 'Store',\n 'Client',\n 'Repository',\n 'Adapter',\n 'Controller',\n 'Provider',\n 'Registry',\n 'Logger',\n 'Router',\n 'Injector',\n 'Handler',\n 'Interceptor',\n 'Guard',\n 'Resolver',\n 'Validator'\n];\nexport function isLikelyAngularInjectableSymbol(e) {\n if (!e) return !1;\n let t = requireTypescript();\n if (!t) return !1;\n try {\n let r = e.getName();\n if (INJECTABLE_SYMBOL_SUFFIXES.some((e)=>r.endsWith(e))) return !0;\n let n = e.getDeclarations();\n if (!n || 0 === n.length) return !1;\n let i = n[0];\n if (!t.canHaveDecorators(i)) return !1;\n for (let e of t.getDecorators(i) ?? []){\n let r = e.expression;\n if (t.isCallExpression(r) && t.isIdentifier(r.expression) && 'Injectable' === r.expression.text) return !0;\n }\n return !1;\n } catch {\n return !1;\n }\n}\n","export const RECOMMENDATIONS = {\n 'prefer-on-push-component-change-detection': 'Add `changeDetection: ChangeDetectionStrategy.OnPush` to the component metadata.',\n 'template-no-call-expression': 'Move the value to a pipe, computed signal, or cached component property.',\n 'rxjs-no-subscribe-in-component': \"Use `toSignal()` or the `async` pipe for view state; add `takeUntilDestroyed()` for long-lived imperative subscriptions.\",\n 'template-trackby-required-for-ngfor': 'Add `trackBy` to `*ngFor`, or use `track` when migrating to `@for`.',\n 'template-no-object-literal-binding': 'Move the object to a component property, signal, computed value, or pure pipe.',\n 'template-no-array-literal-binding': 'Move the array to a component property, signal, computed value, or pure pipe.',\n 'toSignal-require-initialValue': 'Pass `{ initialValue }` or `{ requireSync: true }` so the signal has a stable type.',\n 'rxjs-avoid-subject-as-event-bus': 'Use `signal()` for component UI state; move complex async pipelines into a service.',\n 'signal-no-side-effects-in-computed': 'Move side effects to an `effect()` or method, and keep `computed()` pure.',\n 'signal-no-writes-in-computed': 'Move `.set()` or `.update()` calls to an `effect()` or event handler.',\n 'prefer-inject-over-constructor-di': 'Replace constructor parameters with field initializers that call `inject()`.',\n 'component-no-manual-detect-changes': 'Use signals, `async` pipe, or input-driven state instead of calling `detectChanges()` or `markForCheck()`.',\n 'rxjs-require-takeUntilDestroyed': 'Add `takeUntilDestroyed()` or another teardown operator before `subscribe()`.',\n 'template-no-async-pipe-duplication': 'Store the async value once with `@if (... | async; as value)` or a view-model signal.',\n 'rxjs-prefer-toSignal-for-template-state': 'Convert template-used observables to `toSignal()` and read them as signals in the template.',\n 'signal-effect-must-be-destroy-scoped': 'Create the effect in an injection context or pass an explicit `{ injector }`.',\n 'signal-no-effect-in-constructor': 'Move the `effect()` call to a field initializer.',\n 'signal-prefer-computed-over-sync-effect': 'Replace the write-producing `effect()` with a `computed()` signal.',\n 'signal-avoid-untracked-overuse': 'Remove `untracked()` unless the dependency must be intentionally ignored.',\n 'template-prefer-control-flow': 'Replace the legacy directive with the matching `@if`, `@for`, or `@switch` block.',\n 'signal-prefer-input-signal': 'Replace `@Input()` with `input()` or `input.required()`.',\n 'signal-prefer-output-function': 'Replace `@Output() EventEmitter` with `output<T>()`.',\n 'no-bypass-sanitization': 'Use Angular sanitization or a trusted server-side sanitizer instead of `bypassSecurityTrust*`.',\n 'rxjs-no-nested-subscribe': 'Flatten the stream with `switchMap`, `mergeMap`, `concatMap`, or `exhaustMap`.',\n 'no-document-access': 'Inject `DOCUMENT` or move browser-only DOM work into `afterNextRender()`.',\n 'template-no-unsafe-bindings': 'Sanitize the value before binding, or replace the raw HTML binding with structured template content.',\n 'signal-prefer-model': 'Replace the `@Input()` / `@Output()Change` pair with `model()`.',\n 'prefer-after-render-over-after-view-init': 'Move browser-only DOM access into `afterNextRender()`.',\n 'spec-no-focused-test': 'Replace focused or disabled test helpers with normal `describe` and `it` calls.'\n};\nexport const CODE_EXAMPLES = {\n 'prefer-on-push-component-change-detection': `// Before:\n@Component({ selector: 'app-foo', template: '...' })\nexport class FooComponent { }\n\n// After:\n@Component({\n selector: 'app-foo',\n template: '...',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FooComponent { }`,\n 'rxjs-no-subscribe-in-component': `// Reactive state (data derived from a stream) → use toSignal() or async pipe:\n// Before:\nngOnInit() { this.data$.subscribe(val => this.value = val); }\n// After:\nvalue = toSignal(this.data$, { initialValue: defaultVal });\n\n// Imperative action (user-triggered, one-shot) → subscription is fine, add teardown:\n// Before:\nonSave() { this.api.save(this.form.value).subscribe(res => this.notify(res)); }\n// After (HTTP auto-completes — takeUntilDestroyed optional but harmless):\nonSave() {\n this.api.save(this.form.value)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(res => this.notify(res));\n}`,\n 'rxjs-avoid-subject-as-event-bus': `// Case A — UI state: replace with signal()\n// Before:\nprivate loading$ = new Subject<boolean>();\n// After:\nloading = signal(false);\n\n// Case B — complex async pipeline: move to a service\n// Before (in component):\nprivate search$ = new Subject<string>();\nngOnInit() { this.search$.pipe(debounceTime(300), switchMap(...)).subscribe(...); }\n// After:\n// SearchService owns search$ and the pipeline; component calls searchSvc.search(term)\n\n// Note: @Input() setter bridges are intentionally exempt:\n// @Input() set query(v: string) { this.search$.next(v); } ← allowed`,\n 'prefer-inject-over-constructor-di': `// Before:\nconstructor(private http: HttpClient, private router: Router) { }\n\n// After:\nprivate http = inject(HttpClient);\nprivate router = inject(Router);`,\n 'component-no-manual-detect-changes': `// Before:\nthis.cdr.detectChanges();\nthis.cdr.markForCheck();\n\n// After:\n// Use signals for reactive state:\ncount = signal(0);\n// Template automatically updates when signal changes`,\n 'rxjs-require-takeUntilDestroyed': `// Before:\nthis.data$.subscribe(val => this.process(val));\n\n// After:\nthis.data$.pipe(\n takeUntilDestroyed(this.destroyRef)\n).subscribe(val => this.process(val));`,\n 'template-no-async-pipe-duplication': `// Before:\n<div>{{ user$ | async }}</div>\n<span>{{ user$ | async }}</span>\n\n// After:\n@if (user$ | async; as user) {\n <div>{{ user }}</div>\n <span>{{ user }}</span>\n}`,\n 'signal-no-side-effects-in-computed': `// Before:\ntotal = computed(() => {\n this.logger.log('computing'); // side effect!\n return this.price() * this.qty();\n});\n\n// After:\ntotal = computed(() => this.price() * this.qty());`,\n 'signal-no-writes-in-computed': `// Before:\nderived = computed(() => {\n const val = this.source();\n this.other.set(val * 2); // write inside computed!\n return val;\n});\n\n// After:\nderived = computed(() => this.source());\n// Use effect() for the write:\nsyncEffect = effect(() => this.other.set(this.source() * 2));`,\n 'signal-effect-must-be-destroy-scoped': `// Before:\nngAfterViewInit() {\n effect(() => console.log(this.count())); // no injection context!\n}\n\n// After (option A - field initializer):\nlogEffect = effect(() => console.log(this.count()));\n\n// After (option B - explicit injector):\nngAfterViewInit() {\n effect(() => console.log(this.count()), { injector: this.injector });\n}`,\n 'signal-no-effect-in-constructor': `// Before:\nconstructor() {\n effect(() => console.log(this.count()));\n}\n\n// After:\nlogEffect = effect(() => console.log(this.count()));`,\n 'signal-prefer-computed-over-sync-effect': `// Before:\nlogEffect = effect(() => {\n const total = this.price() * this.qty();\n this.total.set(total);\n});\n\n// After:\ntotal = computed(() => this.price() * this.qty());`,\n 'toSignal-require-initialValue': `// Before:\ndata = toSignal(this.data$); // Signal<T | undefined>\n\n// After:\ndata = toSignal(this.data$, { initialValue: [] }); // Signal<T>`,\n 'template-no-call-expression': `// Before:\n<div>{{ getLabel(item) }}</div>\n\n// After (option A - pipe):\n<div>{{ item | labelPipe }}</div>\n\n// After (option B - signal):\nlabel = computed(() => this.getLabel(this.item()));`,\n 'template-no-object-literal-binding': `// Before:\n<app-child [config]=\"{ color: 'red', size: 10 }\"></app-child>\n\n// After:\nchildConfig = signal({ color: 'red', size: 10 });\n// template: <app-child [config]=\"childConfig()\"></app-child>`,\n 'template-no-array-literal-binding': `// Before:\n<app-child [items]=\"[1, 2, 3]\"></app-child>\n\n// After:\nitems = signal([1, 2, 3]);\n// template: <app-child [items]=\"items()\"></app-child>`,\n 'template-trackby-required-for-ngfor': `// Before:\n<div *ngFor=\"let item of items\">{{ item.name }}</div>\n\n// After:\n<div *ngFor=\"let item of items; trackBy: trackById\">{{ item.name }}</div>\n\n// Or with @for (Angular 17+):\n@for (item of items; track item.id) {\n <div>{{ item.name }}</div>\n}`,\n 'rxjs-prefer-toSignal-for-template-state': `// Before:\ndata$ = this.http.get('/api/data').pipe(shareReplay(1));\n// template: {{ data$ | async }}\n\n// After:\ndata = toSignal(this.http.get('/api/data'), { initialValue: null });\n// template: {{ data() }}`,\n 'signal-avoid-untracked-overuse': `// Acceptable:\neffect(() => {\n const value = this.count();\n untracked(() => this.analytics.track(value));\n});\n\n// Questionable (review if untracked is needed):\nconst val = untracked(() => this.count());`,\n 'template-prefer-control-flow': `// Before:\n<div *ngIf=\"isLoggedIn\">Welcome</div>\n<li *ngFor=\"let item of items; trackBy: trackById\">{{ item.name }}</li>\n\n// After:\n@if (isLoggedIn) { <div>Welcome</div> }\n@for (item of items; track item.id) { <li>{{ item.name }}</li> }`,\n 'signal-prefer-input-signal': `// Before:\n@Input() title: string = '';\n@Input() required count!: number;\n\n// After:\ntitle = input('');\ncount = input.required<number>();`,\n 'signal-prefer-output-function': `// Before:\n@Output() selected = new EventEmitter<Item>();\n\n// After:\nselected = output<Item>();`,\n 'rxjs-no-nested-subscribe': `// Before:\nthis.user$.subscribe(user => {\n this.posts$.subscribe(posts => {\n this.render(user, posts);\n });\n});\n\n// After:\nthis.user$.pipe(\n switchMap(user => this.posts$.pipe(map(posts => ({ user, posts }))))\n).subscribe(({ user, posts }) => this.render(user, posts));`,\n 'no-document-access': `// Before:\nngOnInit() {\n document.title = this.title;\n}\n\n// After (inject DOCUMENT):\nprivate doc = inject(DOCUMENT);\nngOnInit() { this.doc.title = this.title; }\n\n// Or (SSR-safe browser-only block):\nafterNextRenderEffect = afterNextRender(() => {\n document.title = this.title;\n});`,\n 'signal-prefer-model': `// Before:\n@Input() value: string = '';\n@Output() valueChange = new EventEmitter<string>();\n\n// After:\nvalue = model('');\n// Parent template: <app-input [(value)]=\"parentValue\" />`,\n 'prefer-after-render-over-after-view-init': `// Before:\nngAfterViewInit() {\n this.el.nativeElement.focus();\n}\n\n// After:\nconstructor() {\n afterNextRender(() => {\n this.el.nativeElement.focus();\n });\n}`,\n 'spec-no-focused-test': `// Before (focused — skips all other tests):\nfdescribe('MyComponent', () => {\n fit('should render', () => { ... });\n});\n\n// Before (disabled — easily forgotten):\nxdescribe('MyComponent', () => {\n xit('should render', () => { ... });\n});\n\n// After:\ndescribe('MyComponent', () => {\n it('should render', () => { ... });\n});`\n};\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from '../../recommendations';\nimport { childNodes as r, getCallbackArg as n, getFunctionBody as i, getNodeStart as o, getStaticPropertyName as l, isCalleeNamed as s, isMemberExpressionLike as u, unwrapNode as p } from '../../rule-utils';\nlet RULE_NAME = 'signal-no-side-effects-in-computed', SIDE_EFFECT_METHODS = new Set([\n 'post',\n 'put',\n 'patch',\n 'subscribe',\n 'unsubscribe',\n 'next',\n 'complete',\n 'setItem',\n 'removeItem',\n 'appendChild',\n 'removeChild',\n 'dispatch'\n]), WRITE_METHODS = new Set([\n 'set',\n 'update',\n 'mutate'\n]), FUNCTION_NODE_TYPES = new Set([\n 'ArrowFunctionExpression',\n 'FunctionExpression',\n 'FunctionDeclaration'\n]);\nexport const signalNoSideEffectsInComputedRule = e(RULE_NAME, (e, a)=>{\n if (!s(e.callee, 'computed')) return null;\n let c = n(e), f = c ? i(c) : null;\n if (!f) return null;\n let E = function(e) {\n let t = [\n e\n ];\n for(; t.length > 0;){\n var n;\n let i = p(t.pop());\n if (i) {\n if (i !== e) {\n if (function(e) {\n let t = p(e);\n if (!t) return !1;\n if ('AssignmentExpression' === t.type) {\n let e = p(t.left);\n return !!e && u(e);\n }\n if ('UpdateExpression' === t.type || 'UnaryExpression' === t.type && 'delete' === t.operator) {\n let e = p(t.argument);\n return !!e && u(e);\n }\n return !1;\n }(i)) return {\n node: i,\n type: 'write'\n };\n if ('CallExpression' === i.type) {\n let e = function(e) {\n let t = p(e);\n if (!t || 'CallExpression' !== t.type) return '';\n let r = p(t.callee);\n return u(r) && l(r) || '';\n }(i);\n if (WRITE_METHODS.has(e)) return {\n node: i,\n type: 'write'\n };\n if (SIDE_EFFECT_METHODS.has(e)) return {\n node: i,\n type: 'effect'\n };\n }\n }\n if (!(i !== e && (n = i).type && FUNCTION_NODE_TYPES.has(n.type))) for (let e of r(i))t.push(e);\n }\n }\n return null;\n }(f);\n return E ? function(e, r, n, i) {\n let l = o(e) || o(r), { line: s, column: u } = n.locator.location(l);\n return {\n filePath: n.filePath,\n ruleName: RULE_NAME,\n message: 'write' === i ? 'computed() writes to state, which can create reactive cycles.' : 'computed() contains a side effect, so it is no longer a pure derivation.',\n line: s,\n column: u,\n severity: 'error',\n fix: t[RULE_NAME]\n };\n }(E.node, e, a, E.type) : null;\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from '../../recommendations';\nimport { findEffectCalls as r, getClassBody as n, getMethodBody as l, getMethodName as i, getNodeStart as o, isConstructorMethod as f, isMethodDefinition as u, isMemberExpressionLike as a, getStaticPropertyName as s, unwrapNode as c } from '../../rule-utils';\nlet RULE_NAME = 'signal-effect-must-be-destroy-scoped';\nexport const signalEffectDestroyScopedRule = e(RULE_NAME, (e, p)=>{\n let m = n(e.node);\n if (0 === m.length) return null;\n let y = [];\n for (let e of m)e && u(e) && !f(e) && y.push(...function(e, n) {\n let f = l(e);\n if (!f) return [];\n let u = i(e), p = [];\n for (let e of r(f))(function(e) {\n if ('CallExpression' !== e.type) return !1;\n let t = c(e.callee);\n return !!t && ('Identifier' === t.type ? 'effect' === t.name : !!a(t) && 'effect' === s(t));\n })(e) && !function(e) {\n let t = c((Array.isArray(e.arguments) ? e.arguments : [])[1]);\n if (!t || 'ObjectExpression' !== t.type) return !1;\n for (let e of Array.isArray(t.properties) ? t.properties : []){\n let t = c(e);\n if (t?.type === 'Property') {\n let e = c(t.key), r = e?.type === 'Identifier' ? e.name : s(e) || '';\n if ('injector' === r) return !0;\n if ('manualCleanup' === r) {\n let e = c(t.value);\n if (e?.type === 'Literal' && !0 === e.value) return !0;\n }\n }\n }\n return !1;\n }(e) && p.push(function(e, r, n) {\n let l = o(e), { line: i, column: f } = n.locator.location(l);\n return {\n filePath: n.filePath,\n ruleName: RULE_NAME,\n message: `effect() inside \"${r}\" has no explicit lifecycle owner, so cleanup can be unclear.`,\n line: i,\n column: f,\n severity: 'error',\n fix: t[RULE_NAME]\n };\n }(e, u, n));\n return p;\n }(e, p));\n return y.length > 0 ? y : null;\n});\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { CODE_EXAMPLES as r, RECOMMENDATIONS as t } from '../../recommendations';\nimport { childNodes as n, getNodeStart as i, getStaticPropertyName as s, isMemberExpressionLike as o, unwrapNode as l } from '../../rule-utils';\nlet RULE_NAME = 'rxjs-no-nested-subscribe', OBSERVER_HANDLER_NAMES = new Set([\n 'next',\n 'error',\n 'complete'\n]), FUNCTION_NODE_TYPES = new Set([\n 'ArrowFunctionExpression',\n 'FunctionExpression',\n 'FunctionDeclaration'\n]);\nfunction isSubscribeCall(e) {\n if ('CallExpression' !== e.type) return !1;\n let r = l(e.callee);\n return !!o(r) && 'subscribe' === s(r);\n}\nfunction isSubscribeHandler(e) {\n return !!e && ('ArrowFunctionExpression' === e.type || 'FunctionExpression' === e.type);\n}\nexport const rxjsNoNestedSubscribeRule = e(RULE_NAME, (e, o)=>{\n if (!isSubscribeCall(e)) return null;\n for (let u of function(e) {\n if (!isSubscribeCall(e)) return [];\n let r = Array.isArray(e.arguments) ? e.arguments : [];\n if (0 === r.length) return [];\n let t = l(r[0]);\n if (t?.type === 'ObjectExpression') {\n if ('ObjectExpression' !== t.type) return [];\n let e = [];\n for (let r of Array.isArray(t.properties) ? t.properties : []){\n let t = l(r);\n if (t?.type === 'Property' && OBSERVER_HANDLER_NAMES.has(function(e) {\n let r = l(e.key);\n return r ? 'Identifier' === r.type ? r.name : s(r) || '' : '';\n }(t))) {\n let r = l(t.value);\n isSubscribeHandler(r) && e.push(r);\n }\n }\n return e;\n }\n let n = [];\n for(let e = 0; e < Math.min(r.length, 3); e++){\n let t = l(r[e]);\n isSubscribeHandler(t) && n.push(t);\n }\n return n;\n }(e)){\n let s = l(u.body);\n if (s && function(e) {\n let r = [\n e\n ];\n for(; r.length > 0;){\n var t;\n let i = l(r.pop());\n if (i) {\n if (i !== e && isSubscribeCall(i)) return !0;\n if (!(i !== e && (t = i).type && FUNCTION_NODE_TYPES.has(t.type))) for (let e of n(i))r.push(e);\n }\n }\n return !1;\n }(s)) return function(e, n) {\n let s = i(e), { line: o, column: l } = n.locator.location(s);\n return {\n filePath: n.filePath,\n ruleName: RULE_NAME,\n message: 'Nested subscribe() calls make stream lifetimes harder to reason about and can leak work.',\n line: o,\n column: l,\n severity: 'error',\n fix: t[RULE_NAME],\n codeExample: r[RULE_NAME]\n };\n }(e, o);\n }\n return null;\n});\n","import { ChangeDetectionStrategy as e } from '@ngcompass/ast';\nimport { createComponentRule as t } from '@ngcompass/engine';\nimport { CODE_EXAMPLES as n, RECOMMENDATIONS as r } from '../../recommendations';\nlet RULE_NAME = 'prefer-on-push-component-change-detection';\nfunction getNumberProp(e, t) {\n let n = e?.[t];\n return 'number' == typeof n ? n : void 0;\n}\nfunction normalizeFilePath(e) {\n return e.replace(/\\\\/g, '/');\n}\nexport const preferOnPushRule = t(RULE_NAME, (t, o)=>{\n let a = t.metadata ?? {};\n return 'Component' !== a.type || !function(t) {\n if (!t || 'object' != typeof t) return !1;\n let { kind: n, value: r } = t;\n return 'non-literal' !== n && ('literal' === n ? r !== e.OnPush : 'missing' === n);\n }(a.changeDetection) ? null : function(e, t) {\n let o, a, i, l, m = (o = e.metadata ?? {}, a = e.node, getNumberProp(o, 'decoratorStart') ?? getNumberProp(o, 'start') ?? getNumberProp(a, 'start') ?? getNumberProp(e, 'start') ?? 0), { line: c, column: u } = t.locator.location(m), s = (i = e.metadata, 'string' == typeof (l = i?.className) ? l : 'AnonymousComponent'), p = function(e, t) {\n if (!t.project) return null;\n let n = e.metadata, r = n?.className;\n if ('string' != typeof r || !r) return null;\n let o = normalizeFilePath(t.filePath), { ngModuleMap: a, classToFile: i } = t.project;\n for (let [e, t] of a){\n var l;\n if (t.isStandalone || !t.declarations.has(r)) continue;\n let n = i.get(r);\n if (n && normalizeFilePath(n) !== o) continue;\n let a = 0;\n for (let e of t.declarations)e !== r && (l = i.get(e)) && normalizeFilePath(l).endsWith('.component.ts') && a++;\n return {\n moduleName: (normalizeFilePath(e).split('/').pop() ?? e).replace(/\\.ts$/, ''),\n siblingComponentCount: a\n };\n }\n return null;\n }(e, t);\n return {\n filePath: t.filePath,\n ruleName: RULE_NAME,\n message: function(e, t) {\n if (!t) return `Component '${e}' uses default change detection, which can re-render more often than needed.`;\n let { moduleName: n, siblingComponentCount: r } = t, o = r > 0 ? ` ${r} other component${1 === r ? '' : 's'} are declared in '${n}'.` : '';\n return `Component '${e}' uses default change detection, which can re-render more often than needed.${o}`;\n }(s, p),\n line: c,\n column: u,\n severity: 'error',\n fix: r[RULE_NAME],\n codeExample: n[RULE_NAME]\n };\n }(t, o);\n}, {\n requires: {\n projectContext: !0\n }\n});\n","import { createTemplateExpressionRule as e } from '@ngcompass/engine';\nimport t from \"typescript\";\nimport { RECOMMENDATIONS as r } from '../../recommendations';\nimport { childNodes as n, getStaticPropertyName as i, isMemberExpressionLike as l, unwrapNode as o, getTemplateAbsoluteOffset as s } from '../../rule-utils';\nlet RULE_NAME = 'template-no-call-expression', ALLOWED_FREE_CALL_NAMES = new Set([\n 'translate',\n '$localize',\n '$any'\n]), ALLOWED_MEMBER_CALL_NAMES = new Set([\n 'slice',\n 'toString',\n 'toFixed',\n 'toUpperCase',\n 'toLowerCase',\n 'trim',\n 'join',\n 'includes',\n 'indexOf',\n 'startsWith',\n 'endsWith',\n 'charAt',\n 'substring',\n 'replace',\n 'split',\n 'concat',\n 'toISOString',\n 'toLocaleDateString',\n 'toLocaleTimeString',\n 'toLocaleString'\n]);\nfunction isCallExpressionLike(e) {\n let t = o(e);\n return !!t && ('CallExpression' === t.type || 'OptionalCallExpression' === t.type);\n}\nexport const templateNoCallExpressionRule = e(RULE_NAME, (e, a)=>!function(e, r) {\n let s = e ? [\n e\n ] : [];\n for(; s.length > 0;){\n let e = o(s.pop());\n if (e) {\n if (isCallExpressionLike(e) && !function(e) {\n let t = o(e);\n if (!t || !isCallExpressionLike(t)) return !1;\n let r = o(t.callee);\n if (!r) return !1;\n if ('Identifier' === r.type) return ALLOWED_FREE_CALL_NAMES.has(r.name);\n if (!l(r)) return !1;\n let n = i(r);\n return !!n && ALLOWED_MEMBER_CALL_NAMES.has(n);\n }(e)) {\n if (function(e) {\n let t;\n return (t = o(e), Array.isArray(t?.arguments) ? t.arguments : []).length > 0;\n }(e)) return !0;\n let n = function(e) {\n let t = o(e);\n if (!t) return '';\n let r = o(t.callee);\n return r ? 'Identifier' === r.type ? r.name ?? '' : l(r) ? i(r) : '' : '';\n }(e);\n if (n && !function(e, r) {\n let n = e.startsWith('get') || e.startsWith('is') || e.startsWith('has');\n if (r.crossRef?.signalMembers?.has(e)) return !0;\n if (r.typeChecker && r.crossRef?.componentPath) try {\n let n = r.typeChecker, i = r.crossRef.componentPath, l = n.getProgram().getSourceFile(i);\n if (l) {\n let r = l.statements.find((e)=>t.isClassDeclaration(e));\n if (r && r.name) {\n let t = n.getTypeAtLocation(r), i = n.getPropertyOfType(t, e);\n if (i) {\n if (!i) return !1;\n let e = i.valueDeclaration ?? i.declarations?.[0];\n if (!e) return !1;\n let t = n.getTypeOfSymbolAtLocation(i, e);\n if (!t) return !1;\n let r = n.typeToString(t);\n return r.includes('Signal') || r.includes('writable') || r.includes('computed');\n }\n }\n }\n } catch {}\n return !n;\n }(n, r)) return !0;\n }\n for (let t of n(e))s.push(t);\n }\n }\n return !1;\n }(e.expression, a) ? null : [\n function(e, t) {\n let n = s(t, e.sourceSpan.start), { line: i, column: l } = t.locator.location(n);\n return {\n filePath: t.filePath,\n ruleName: RULE_NAME,\n message: 'Template method calls run on every change detection cycle and can make rendering slower.',\n line: i,\n column: l,\n severity: 'error',\n fix: r[RULE_NAME]\n };\n }(e, a)\n ], {\n requires: {\n htmlAst: !0,\n typeChecker: !0,\n projectContext: !0\n }\n});\n","import { createTemplateRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as r } from '../../recommendations';\nimport { getTemplateAbsoluteOffset as t } from '../../rule-utils';\nfunction createFailure(e, a, o, n) {\n let i = t(e, a.sourceSpan.start), { line: s, column: l } = e.locator.location(i);\n return {\n filePath: e.filePath,\n ruleName: o,\n message: n,\n line: s,\n column: l,\n severity: 'error',\n fix: r[o]\n };\n}\nexport const templateTrackByRequiredRule = e('template-trackby-required', (e, r)=>{\n let t = [];\n for (let a of e.attributes)'*ngFor' === a.name && !function(e) {\n let r = e.match(/\\btrackBy\\s*:\\s*([^;]+?)\\s*(?:;|$)/);\n return !!r?.[1]?.trim();\n }(a.value ?? '') && t.push(createFailure(r, a, 'template-trackby-required-for-ngfor', '*ngFor without trackBy can recreate DOM nodes unnecessarily when list items change.'));\n for (let a of e.blocks)'for' !== a.name || a.parameters.some((e)=>{\n let r = e.expression?.trim() ?? '';\n return !!r && !!/^track\\b/.test(r) && r.replace(/^track\\b/, '').trim().length > 0;\n }) || t.push(createFailure(r, a, 'template-track-required-for-atfor', '@for without a track expression can recreate DOM nodes unnecessarily when list items change.'));\n return t.length > 0 ? t : null;\n}, {\n requires: {\n htmlAst: !0\n }\n});\n","import { createTemplateExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from '../../recommendations';\nimport { childNodes as r, unwrapNode as n, getTemplateAbsoluteOffset as i } from '../../rule-utils';\nlet RULE_NAME = 'template-no-object-literal-binding';\nexport const templateNoObjectLiteralBindingRule = e(RULE_NAME, (e, o)=>!function(e) {\n let t = e ? [\n e\n ] : [];\n for(; t.length > 0;){\n let e = n(t.pop());\n if (e) {\n if ('ObjectExpression' === e.type) return !0;\n for (let n of r(e))t.push(n);\n }\n }\n return !1;\n }(e.expression) ? null : [\n function(e, r) {\n let n = i(r, e.sourceSpan.start), { line: o, column: l } = r.locator.location(n);\n return {\n filePath: r.filePath,\n ruleName: RULE_NAME,\n message: 'Object literals in template bindings create a new reference on every change detection cycle.',\n line: o,\n column: l,\n severity: 'warn',\n fix: t[RULE_NAME]\n };\n }(e, o)\n ], {\n requires: {\n htmlAst: !0\n }\n});\n","import { createTemplateExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as r } from '../../recommendations';\nimport { childNodes as t, unwrapNode as n, getTemplateAbsoluteOffset as i } from '../../rule-utils';\nlet RULE_NAME = 'template-no-array-literal-binding';\nexport const templateNoArrayLiteralBindingRule = e(RULE_NAME, (e, o)=>!function(e) {\n let r = e ? [\n e\n ] : [];\n for(; r.length > 0;){\n let e = n(r.pop());\n if (e) {\n if ('ArrayExpression' === e.type) return !0;\n for (let n of t(e))r.push(n);\n }\n }\n return !1;\n }(e.expression) ? null : [\n function(e, t) {\n let n = i(t, e.sourceSpan.start), { line: o, column: l } = t.locator.location(n);\n return {\n filePath: t.filePath,\n ruleName: RULE_NAME,\n message: 'Array literals in template bindings create a new reference on every change detection cycle.',\n line: o,\n column: l,\n severity: 'warn',\n fix: r[RULE_NAME]\n };\n }(e, o)\n ], {\n requires: {\n htmlAst: !0\n }\n});\n","import { createCallExpressionRule as t } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as e } from \"../../recommendations\";\nimport { unwrapNode as r, isMemberExpressionLike as s, getStaticPropertyName as n, getNodeStart as i } from \"../../rule-utils\";\nlet BYPASS_METHODS = new Map([\n [\n 'bypassSecurityTrustHtml',\n 'HTML'\n ],\n [\n 'bypassSecurityTrustScript',\n 'Script'\n ],\n [\n 'bypassSecurityTrustStyle',\n 'Style'\n ],\n [\n 'bypassSecurityTrustUrl',\n 'URL'\n ],\n [\n 'bypassSecurityTrustResourceUrl',\n 'Resource URL'\n ]\n]);\nexport const noBypassSanitizationRule = t('no-bypass-sanitization', (t, a)=>{\n let l = function(t) {\n let e = r(t.callee);\n if (!e) return null;\n if ('Identifier' === e.type && e.name) return BYPASS_METHODS.has(e.name) ? e.name : null;\n if (s(e)) {\n let t = n(e);\n return t && BYPASS_METHODS.has(t) ? t : null;\n }\n return null;\n }(t);\n if (!l) return null;\n let { line: o, column: u } = a.locator.location(i(t));\n return {\n filePath: a.filePath,\n ruleName: 'no-bypass-sanitization',\n message: `\\`${l}\\` bypasses Angular's ${BYPASS_METHODS.get(l)} sanitization, which can expose unsafe content.`,\n line: o,\n column: u,\n severity: 'error',\n fix: e['no-bypass-sanitization']\n };\n});\n","import { createTemplateAttributeRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from \"../../recommendations\";\nimport { getTemplateAbsoluteOffset as s } from \"../../rule-utils\";\nlet UNSAFE = new Map([\n [\n '[innerHTML]',\n {\n desc: \"innerHTML directly renders HTML markup and can execute injected scripts\",\n severity: 'error'\n }\n ],\n [\n '[outerHTML]',\n {\n desc: 'outerHTML replaces the element with raw HTML and is susceptible to XSS',\n severity: 'error'\n }\n ],\n [\n '[srcdoc]',\n {\n desc: \"srcdoc embeds raw HTML inside an iframe and can execute injected scripts\",\n severity: 'error'\n }\n ],\n [\n '[style]',\n {\n desc: 'binding complex expressions to [style] can enable CSS injection',\n severity: 'warn'\n }\n ]\n]), KNOWN_SAFE_PIPES = /\\|\\s*(safeHtml|safeStyle|safeUrl|safeResourceUrl|sanitize|sanitizeHtml|sanitizeUrl|trustHtml|trustStyle|trustUrl|trustResourceUrl|bypassSecurity)\\b/i, SANITIZE_METHOD_CALL = /\\b(getSafeHtml|getSafeUrl|getSafeStyle|getSafeResourceUrl|sanitize|sanitizeHtml|sanitizeUrl|trustHtml|bypassSecurity)\\s*\\(/i;\nexport const templateNoUnsafeBindingsRule = e('template-no-unsafe-bindings', (e, r)=>{\n let n = UNSAFE.get(e.name);\n if (!n) return null;\n let i = e.value ?? '';\n if (KNOWN_SAFE_PIPES.test(i) || SANITIZE_METHOD_CALL.test(i) || '[style]' === e.name && !/[.(|?]/.test(i)) return null;\n let { line: a, column: l } = r.locator.location(s(r, e.sourceSpan.start));\n return {\n filePath: r.filePath,\n ruleName: 'template-no-unsafe-bindings',\n message: `\\`${e.name}\\` binds raw content: ${n.desc}. Unsanitized values can create injection risk.`,\n line: a,\n column: l,\n severity: n.severity,\n fix: t['template-no-unsafe-bindings']\n };\n}, {\n requires: {\n htmlAst: !0\n }\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t, CODE_EXAMPLES as r } from \"../../recommendations\";\nimport { unwrapNode as l, isMemberExpressionLike as n, getNodeStart as o, getClassBody as i, childNodes as s, isCalleeNamed as a } from \"../../rule-utils\";\nlet BROWSER_GLOBALS = new Set([\n 'document',\n 'window',\n 'localStorage',\n 'sessionStorage',\n 'navigator',\n 'location'\n]);\nexport const noDocumentAccessRule = e('no-document-access', (e, f)=>{\n let c = i(e.node);\n if (0 === c.length) return null;\n let p = function(e) {\n let t = new Set(), r = [\n ...e\n ];\n for(; r.length;){\n let e = l(r.pop());\n if (e) {\n if ('VariableDeclarator' === e.type && e.init) {\n let r = l(e.init);\n if (r?.type === 'CallExpression' && r.callee && a(r.callee, 'isPlatformBrowser')) {\n let r = e.id ?? e.key;\n r?.type === 'Identifier' && r.name && t.add(r.name);\n }\n }\n if ('AssignmentExpression' === e.type && e.right) {\n let r = l(e.right);\n if (r?.type === 'CallExpression' && r.callee && a(r.callee, 'isPlatformBrowser')) {\n let r = l(e.left);\n if (r && n(r) && l(r.object)?.type === 'ThisExpression') {\n let e = r.property?.name;\n 'string' == typeof e && e && t.add(e);\n }\n }\n }\n for (let t of s(e))r.push(t);\n }\n }\n return t;\n }(c), u = [], m = new Set(), d = [\n ...c\n ];\n for(; d.length;){\n let e = l(d.pop());\n if (e) {\n if ('IfStatement' === e.type && e.test) {\n let t = l(e.test);\n if (t) {\n let r = function(e, t) {\n let r = [\n e\n ];\n for(; r.length;){\n let e = l(r.pop());\n if (e) {\n if ('CallExpression' === e.type && e.callee && a(e.callee, 'isPlatformBrowser')) return 'browser';\n if ('CallExpression' === e.type && e.callee && a(e.callee, 'isPlatformServer')) return 'server';\n if ('UnaryExpression' === e.type && '!' === e.operator && e.argument) {\n let t = l(e.argument);\n if (t?.type === 'CallExpression' && t.callee && a(t.callee, 'isPlatformServer')) return 'browser';\n }\n if ('Identifier' === e.type && t.has(e.name)) return 'browser';\n for (let t of s(e))r.push(t);\n }\n }\n return null;\n }(t, p);\n if ('browser' === r) {\n e.alternate && d.push(e.alternate);\n continue;\n }\n if ('server' === r) {\n e.consequent && d.push(e.consequent);\n continue;\n }\n }\n }\n if ('CallExpression' === e.type && e.callee) {\n let t = l(e.callee);\n if (t && (a(t, 'afterNextRender') || a(t, 'afterRender'))) {\n let t = e.arguments ?? [];\n for(let e = 1; e < t.length; e++)d.push(t[e]);\n continue;\n }\n }\n if (n(e)) {\n let i = function(e) {\n let t = e;\n for(; t && n(t);)t = l(t.object);\n return t?.type === 'Identifier' ? t.name ?? null : null;\n }(e);\n if (i && BROWSER_GLOBALS.has(i)) {\n let s = e;\n for(; s && n(s);)s = l(s.object);\n let a = o(s);\n if (void 0 !== a && !m.has(a)) {\n m.add(a);\n let { line: e, column: l } = f.locator.location(a);\n u.push({\n filePath: f.filePath,\n ruleName: 'no-document-access',\n message: `Direct access to \\`${i}\\` can run during SSR where browser globals do not exist.`,\n line: e,\n column: l,\n severity: 'error',\n fix: t['no-document-access'],\n codeExample: r['no-document-access']\n });\n }\n }\n }\n for (let t of s(e))d.push(t);\n }\n }\n return u.length ? u : null;\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t, CODE_EXAMPLES as r } from \"../../recommendations\";\nimport { unwrapNode as n, getClassBody as i, getNodeStart as o, childNodes as l, getMethodBody as a } from \"../../rule-utils\";\nlet DOM_PATTERNS = new Set([\n 'nativeElement',\n 'getBoundingClientRect',\n 'querySelector',\n 'querySelectorAll',\n 'getElementById',\n 'createElement',\n 'scrollIntoView',\n 'focus',\n 'blur',\n 'offsetWidth',\n 'offsetHeight',\n 'clientWidth',\n 'clientHeight',\n 'scrollTop',\n 'scrollLeft',\n 'innerHTML',\n 'outerHTML',\n 'textContent',\n 'parentElement',\n 'parentNode',\n 'firstChild',\n 'lastChild',\n 'nextSibling',\n 'previousSibling',\n 'children',\n 'ownerDocument',\n 'insertBefore',\n 'appendChild',\n 'removeChild',\n 'replaceChild',\n 'cloneNode',\n 'setAttribute',\n 'getAttribute',\n 'removeAttribute',\n 'hasAttribute',\n 'classList',\n 'dispatchEvent',\n 'contains',\n 'matches',\n 'closest',\n 'getClientRects',\n 'addEventListener',\n 'removeEventListener',\n 'requestAnimationFrame',\n 'cancelAnimationFrame'\n]), DOM_PATTERN_PREFIXES = [\n 'getElementsBy',\n 'offset',\n 'client',\n 'scroll'\n];\nexport const preferAfterRenderOverAfterViewInitRule = e('prefer-after-render-over-after-view-init', (e, f)=>{\n if ('Component' !== e.decoratorName && 'Directive' !== e.decoratorName) return null;\n let s = i(e.node), c = [];\n for (let e of [\n 'ngAfterViewInit',\n 'ngAfterContentInit'\n ]){\n let i = s.find((t)=>t.key?.name === e), m = i ? a(i) : null;\n if (!m || !i || !function(e) {\n let t = [\n e\n ];\n for(; t.length;){\n let e = n(t.pop());\n if (e) {\n if (('MemberExpression' === e.type || 'StaticMemberExpression' === e.type || 'OptionalMemberExpression' === e.type) && !e.computed) {\n let t = e.property?.name ?? '';\n if (DOM_PATTERNS.has(t)) return !0;\n for (let e of DOM_PATTERN_PREFIXES)if (t.startsWith(e)) return !0;\n }\n if ('Identifier' === e.type && ('document' === e.name || 'window' === e.name)) return !0;\n for (let r of l(e))t.push(r);\n }\n }\n return !1;\n }(m)) continue;\n let { line: p, column: u } = f.locator.location(o(i));\n c.push({\n filePath: f.filePath,\n ruleName: 'prefer-after-render-over-after-view-init',\n message: `\\`${e}\\` contains DOM access that can run before browser-only APIs are safe.`,\n line: p,\n column: u,\n severity: 'warn',\n fix: t['prefer-after-render-over-after-view-init'],\n codeExample: r['prefer-after-render-over-after-view-init']\n });\n }\n return c.length ? c : null;\n});\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from \"../../recommendations\";\nimport { isSubscribeCall as n, unwrapNode as r, isMemberExpressionLike as a, hasTeardownInReceiverChain as o, getNodeStart as i, findObservableSourceCall as s, isLikelyHttpObservable as l } from \"../../rule-utils\";\nlet manualTeardownCache = new Map();\nexport function hasManualTeardownInNgOnDestroy(e) {\n return /ngOnDestroy\\s*\\([^)]*\\)\\s*\\{[^}]*\\.unsubscribe\\s*\\(\\)/s.test(e);\n}\nexport const rxjsRequireTakeUntilDestroyedRule = e('rxjs-require-takeUntilDestroyed', (e, u)=>{\n var c, m;\n let d;\n if (!u.filePath.endsWith('.component.ts') && !u.filePath.endsWith('.directive.ts') && !/\\@(Component|Directive)\\s*[\\(\\{]/.test(u.fileContent) || !n(e)) return null;\n let h = r(e.callee), f = a(h) ? h?.object : null;\n if (f && o(f) || l(s(f)) || (c = u.filePath, m = u.fileContent, void 0 !== (d = manualTeardownCache.get(c)) || (d = hasManualTeardownInNgOnDestroy(m), manualTeardownCache.size >= 500 && manualTeardownCache.clear(), manualTeardownCache.set(c, d)), d)) return null;\n let p = i(e), { line: w, column: y } = u.locator.location(p);\n return {\n filePath: u.filePath,\n ruleName: 'rxjs-require-takeUntilDestroyed',\n message: \"A component subscription without teardown can keep running after the component is destroyed.\",\n line: w,\n column: y,\n severity: 'error',\n fix: t['rxjs-require-takeUntilDestroyed']\n };\n});\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t, CODE_EXAMPLES as r } from \"../../recommendations\";\nimport { unwrapNode as n, isMemberExpressionLike as a, isSubscribeCall as l, hasTeardownInReceiverChain as o, getNodeStart as i, getStaticPropertyName as s, findObservableSourceCall as c, isLikelyHttpObservable as u } from \"../../rule-utils\";\nimport { hasManualTeardownInNgOnDestroy as m } from './rxjs-require-take-until-destroyed.rule.js';\nlet manualTeardownCache = new Map(), RULE_NAME = 'rxjs-no-subscribe-in-component';\nexport const rxjsNoSubscribeInComponentRule = e(RULE_NAME, (e, f)=>{\n var p, d;\n let h;\n if (!f.filePath.endsWith('.component.ts') && !f.filePath.endsWith('.directive.ts') && !/\\@(Component|Directive)\\s*[\\(\\{]/.test(f.fileContent) || !l(e) || function(e) {\n let t = n(e.callee);\n if (!t || !a(t)) return !1;\n let r = n(t.object);\n if (!r) return !1;\n if ('CallExpression' === r.type) {\n let e = n(r.callee);\n if (a(e) && 'pipe' === s(e) && (Array.isArray(r.arguments) ? r.arguments : []).some((e)=>{\n let t = n(e);\n if (t?.type !== 'CallExpression') return !1;\n let r = n(t.callee)?.name;\n return 'take' === r || 'first' === r;\n })) return !0;\n }\n return u(c(r));\n }(e)) return null;\n let E = n(e.callee), C = n(E?.object);\n if (C && o(C) || (p = f.filePath, d = f.fileContent, void 0 !== (h = manualTeardownCache.get(p)) || (h = m(d), manualTeardownCache.size >= 500 && manualTeardownCache.clear(), manualTeardownCache.set(p, h)), h)) return null;\n let b = i(e), { line: w, column: x } = f.locator.location(b);\n return {\n filePath: f.filePath,\n ruleName: RULE_NAME,\n message: function(e, t) {\n let r = \"Open-ended subscriptions in components can outlive the component and make state harder to track.\", a = t.crossRef?.templateReferences;\n if (!a) return r;\n let l = n(e.callee), o = n(l?.object), i = o ? s(o) : null;\n if (!i) return r;\n let c = i.endsWith('$') ? i.slice(0, -1) : i;\n return a.has(i) || a.has(c) ? `'${i}' is read by the template, so subscribing manually adds state and teardown work the template can own.` : r;\n }(e, f),\n line: w,\n column: x,\n severity: 'error',\n fix: t[RULE_NAME],\n codeExample: r[RULE_NAME]\n };\n}, {\n requires: {\n projectContext: !0\n }\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t, CODE_EXAMPLES as n } from \"../../recommendations\";\nimport { collectAllRxjsAliases as l, unwrapNode as r, getStaticPropertyName as o, getClassBody as i, getNodeStart as a, isMemberExpressionLike as s, isMethodDefinition as u, getConstructorMember as c, getMethodBody as f, childNodes as p } from \"../../rule-utils\";\nlet RULE_NAME = 'rxjs-avoid-subject-as-event-bus', SUBJECT_TYPES = new Set([\n 'Subject',\n 'ReplaySubject',\n 'AsyncSubject',\n 'BehaviorSubject'\n]), TEARDOWN_NAMES = new Set([\n 'destroy$',\n 'destroyed$',\n 'ondestroy$',\n 'ngondestroy$',\n 'unsubscribe$',\n 'unsub$',\n 'teardown$',\n 'dispose$',\n 'cleanup$',\n 'cleanupsubject$'\n]), UI_STATE_PATTERN = /state|loading|error|active|selected|open|visible|disabled|count|value|data|hidden|expanded|pending|success|failed/i;\nfunction extractCalls(e, t, n) {\n let l = [\n e\n ];\n for(; l.length;){\n let e = r(l.pop());\n if (!e) continue;\n let i = r(e.callee);\n if ('CallExpression' === e.type && o(i) === t) {\n let e = r(i?.object);\n if (e && s(e) && r(e.object)?.type === 'ThisExpression') {\n let t = o(e);\n t && n.add(t);\n }\n }\n for (let t of p(e))l.push(t);\n }\n}\nexport const rxjsAvoidSubjectRule = e(RULE_NAME, (e, p)=>{\n if ('Component' !== e.decoratorName && 'Directive' !== e.decoratorName) return null;\n let d = i(e.node);\n if (0 === d.length) return null;\n let E = function(e) {\n let t = l(e.sourceText, SUBJECT_TYPES), n = new Map();\n for (let [e, l] of t)for (let t of l)n.set(t, e);\n return n;\n }(p), m = function(e) {\n let t = new Set(), n = c(e);\n if (n) {\n let e = f(n);\n e && extractCalls(e, 'next', t);\n }\n for (let n of e)if (u(n)) {\n 'set' === n.kind && function(e) {\n let t = e.decorators;\n if (!Array.isArray(t)) return !1;\n for (let e of t){\n let t = r(e.expression);\n if (t?.name === 'Input') return !0;\n let n = r(t?.callee);\n if (n?.name === 'Input') return !0;\n }\n return !1;\n }(n) && extractCalls(n, 'next', t);\n let e = n.key?.name;\n if ('ngOnChanges' === e) {\n let e = f(n);\n e && extractCalls(e, 'next', t);\n }\n if ('ngOnDestroy' === e) {\n let e = f(n);\n e && extractCalls(e, 'complete', t);\n }\n } else 'PropertyDefinition' === n.type && n.value && extractCalls(n.value, 'next', t);\n return t;\n }(d), y = function(e) {\n let t = new Set();\n for (let n of e){\n let e = u(n) ? f(n) : 'PropertyDefinition' === n.type ? n.value : null;\n e && extractCalls(e, 'pipe', t);\n }\n return t;\n }(d), x = [];\n for (let e of d){\n if ('PropertyDefinition' !== e.type || 'public' === e.accessibility) continue;\n let l = r(e.value ?? e.initializer);\n if (!l || 'NewExpression' !== l.type) continue;\n let i = function(e, t) {\n let n = r(e);\n if (!n) return null;\n if ('Identifier' === n.type) return t.get(n.name) ?? null;\n if (s(n)) {\n let e = o(n);\n return e && SUBJECT_TYPES.has(e) ? e : null;\n }\n return null;\n }(l.callee, E), u = e.key?.name ?? '';\n if (!i || !u || TEARDOWN_NAMES.has(u.toLowerCase()) || m.has(u) || y.has(u)) continue;\n let { line: c, column: f } = p.locator.location(a(e));\n x.push({\n filePath: p.filePath,\n ruleName: RULE_NAME,\n message: UI_STATE_PATTERN.test(u) ? `${i} '${u}' is used for component UI state, which adds stream overhead to local state updates.` : `${i} '${u}' is acting as a local event bus, which makes component interactions harder to trace.`,\n line: c,\n column: f,\n severity: 'warn',\n fix: t[RULE_NAME],\n codeExample: n[RULE_NAME]\n });\n }\n return x.length ? x : null;\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from \"../../recommendations\";\nimport { unwrapNode as r, getCalleeName as n, childNodes as i, getStaticPropertyName as o, getClassBody as a, getNodeStart as l } from \"../../rule-utils\";\nlet RULE_NAME = 'rxjs-prefer-toSignal-for-template-state', OBSERVABLE_TYPES = new Set([\n 'Observable',\n 'Subject',\n 'BehaviorSubject',\n 'ReplaySubject',\n 'AsyncSubject'\n]), TEARDOWN_NAMES = new Set([\n 'destroy$',\n 'destroyed$',\n 'unsub$',\n 'teardown$',\n 'dispose$'\n]);\nexport const rxjsPreferToSignalRule = e(RULE_NAME, (e, s)=>{\n let p = e.metadata;\n if (p?.type !== 'Component') return null;\n let f = s.crossRef?.templateReferences;\n if (void 0 === f) return null;\n let u = a(e.node), y = [];\n for (let e of u){\n if ('PropertyDefinition' !== e.type) continue;\n let a = e.key?.name ?? '';\n if (!a || !a.endsWith('$') || TEARDOWN_NAMES.has(a.toLowerCase()) || function(e) {\n let t = e.modifiers, i = e.decorators ?? (Array.isArray(t) ? t.filter((e)=>'Decorator' === e.type) : void 0);\n return Array.isArray(i) && i.some((e)=>{\n let t = r(e.expression);\n return 'Output' === (t?.type === 'CallExpression' ? n(t) : t?.type === 'Identifier' ? t.name : null);\n });\n }(e)) continue;\n let p = a.slice(0, -1);\n if (!f.has(a) && !f.has(p) || !function(e) {\n if (OBSERVABLE_TYPES.has(function(e) {\n let t = e.typeAnnotation, n = r(t?.typeAnnotation);\n if (!n || 'TSTypeReference' !== n.type && 'TypeReference' !== n.type) return '';\n let i = n.typeName ?? n.name;\n if ('string' == typeof i) return i;\n if (i && 'object' == typeof i) {\n if ('Identifier' === i.type) return i.name ?? '';\n if ('TSQualifiedName' === i.type) return r(i.right)?.name ?? '';\n }\n return '';\n }(e))) return !0;\n let t = r(e.value ?? e.initializer);\n if (!t) return !1;\n let a = n(t);\n if ('toSignal' === a || 'signal' === a || 'computed' === a) return !1;\n if ('NewExpression' === t.type) {\n let e = r(t.callee), n = e?.type === 'Identifier' ? e.name : o(e);\n return !!n && OBSERVABLE_TYPES.has(n);\n }\n let l = [\n t\n ];\n for(; l.length > 0;){\n let e = r(l.pop());\n if (e) {\n if ('CallExpression' === e.type && 'pipe' === n(e)) return !0;\n for (let t of i(e))l.push(t);\n }\n }\n return !1;\n }(e)) continue;\n let { line: u, column: c } = s.locator.location(l(e));\n y.push({\n filePath: s.filePath,\n ruleName: RULE_NAME,\n message: `Observable \"${a}\" is read by the template, which can add async-pipe churn and weaker signal integration.`,\n line: u,\n column: c,\n severity: 'warn',\n fix: t[RULE_NAME]\n });\n }\n return y.length ? y : null;\n}, {\n requires: {\n projectContext: !0,\n htmlAst: !0\n }\n});\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as r } from \"../../recommendations\";\nimport { getObjectProperty as t, isLiteralTrue as l, isLiteralNullOrUndefined as i, isCalleeNamed as n, getNodeStart as a, unwrapNode as u } from \"../../rule-utils\";\nlet RULE_NAME = 'toSignal-require-initialValue';\nexport const toSignalRequireInitialValueRule = e(RULE_NAME, (e, o)=>{\n if (!n(e.callee, 'toSignal')) return null;\n let s = Array.isArray(e.arguments) ? e.arguments : [], m = s[1] ? u(s[1]) : null;\n if (!m || 'ObjectExpression' !== m.type || !function(e) {\n let r = t(e, 'initialValue');\n if (r && !i(r.value)) return !0;\n let n = t(e, 'requireSync');\n return !!n && l(n.value);\n }(m)) {\n let { line: t, column: l } = o.locator.location(a(e));\n return {\n filePath: o.filePath,\n ruleName: RULE_NAME,\n message: 'toSignal() can emit undefined before the observable produces a value.',\n line: t,\n column: l,\n severity: 'warn',\n fix: r[RULE_NAME]\n };\n }\n return null;\n});\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from \"../../recommendations\";\nimport { unwrapNode as r, isMemberExpressionLike as i, getStaticPropertyName as n, getTsSymbolAtNode as s, getCalleeName as l, childNodes as a, isCalleeNamed as c, getCallbackArg as o, getFunctionBody as f, getNodeStart as u } from \"../../rule-utils\";\nlet WRITE_METHODS = new Set([\n 'set',\n 'update',\n 'mutate'\n]), ASYNC_METHODS = new Set([\n 'setTimeout',\n 'setInterval',\n 'queueMicrotask',\n 'requestAnimationFrame',\n 'then',\n 'catch',\n 'finally',\n 'subscribe'\n]);\nexport const signalPreferComputedRule = e('signal-prefer-computed-over-sync-effect', (e, p)=>{\n if (!c(e.callee, 'effect')) return null;\n let h = o(e), y = h ? f(h) : null;\n if (!y) return null;\n let { hasRead: m, hasWrite: d, hasAsync: g, hasLinked: E, firstWrite: S } = function(e, t) {\n let c = {\n hasRead: !1,\n hasWrite: !1,\n hasAsync: !1,\n hasLinked: !1,\n firstWrite: null\n }, o = [\n e\n ];\n for(; o.length;){\n let e = r(o.pop());\n if (e) {\n if (('AwaitExpression' === e.type || 'YieldExpression' === e.type) && (c.hasAsync = !0), 'CallExpression' === e.type) {\n let a = l(e);\n a && ASYNC_METHODS.has(a) && (c.hasAsync = !0), 'linkedSignal' === a && (c.hasLinked = !0), function(e) {\n let t = r(e);\n if (!t || 'CallExpression' !== t.type) return !1;\n let s = r(t.callee);\n return i(s) && WRITE_METHODS.has(n(s) || '');\n }(e) ? (c.hasWrite = !0, c.firstWrite || (c.firstWrite = e)) : function(e, t, n) {\n let l = r(e);\n if (!l || 'CallExpression' !== l.type || Array.isArray(l.arguments) && l.arguments.length > 0) return !1;\n let a = r(l.callee);\n if (!a) return !1;\n if (t.typeChecker) try {\n let e = s(a, t);\n if (e) {\n let r = t.typeChecker.getTypeOfSymbolAtLocation(e, e.valueDeclaration);\n if (r && t.typeChecker.typeToString(r).includes('Signal')) return !0;\n }\n } catch {}\n return i(a) ? r(a.object)?.type === 'ThisExpression' : n && 'Identifier' === a.type;\n }(e, t, !0) && (c.hasRead = !0);\n }\n for (let t of a(e))o.push(t);\n }\n }\n return c;\n }(y, p);\n if (!d || !m || g || E) return null;\n let { line: T, column: v } = p.locator.location(u(S || e));\n return {\n filePath: p.filePath,\n ruleName: 'signal-prefer-computed-over-sync-effect',\n message: 'This effect reads reactive values and writes derived state, which adds extra reactive cycles.',\n line: T,\n column: v,\n severity: 'warn',\n fix: t['signal-prefer-computed-over-sync-effect']\n };\n}, {\n requires: {\n typeChecker: !0\n }\n});\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as r } from \"../../recommendations\";\nimport { getCalleeName as t, getNodeStart as n, isCalleeNamed as a, childNodes as i, unwrapNode as o } from \"../../rule-utils\";\nlet RENDER_HOOKS = new Set([\n 'afterRender',\n 'afterNextRender'\n]), RENDER_HOOK_PATTERN = /\\bafterNextRender\\s*\\(|\\bafterRender\\s*\\(/, rangeCache = new Map();\nexport const signalAvoidUntrackedRule = e('signal-avoid-untracked-overuse', (e, s)=>{\n if (!a(e.callee, 'untracked') || function(e, r) {\n let a = r.sourceText ?? r.fileContent;\n if ('string' == typeof a && !RENDER_HOOK_PATTERN.test(a)) return !1;\n let s = e.parent;\n for(; s;){\n if ('CallExpression' === s.type && RENDER_HOOKS.has(t(s))) return !0;\n s = s.parent;\n }\n let l = n(e);\n return (function(e) {\n let r = rangeCache.get(e.filePath);\n if (void 0 !== r) return r;\n let a = e.program;\n return r = a ? function(e) {\n let r = [], a = e.body, s = Array.isArray(a) ? [\n ...a\n ] : [\n e\n ];\n for(; s.length;){\n let e = o(s.pop());\n if (e) {\n if ('CallExpression' === e.type && RENDER_HOOKS.has(t(e))) {\n let t = o(e.arguments?.[0]);\n if (t) {\n let e = n(t), a = t.end ?? t.span?.end ?? n(t);\n a > e && r.push([\n e,\n a\n ]);\n }\n }\n for (let r of i(e))s.push(r);\n }\n }\n return r;\n }(a) : [], rangeCache.size >= 300 && rangeCache.clear(), rangeCache.set(e.filePath, r), r;\n })(r).some(([e, r])=>l >= e && l < r);\n }(e, s)) return null;\n let { line: l, column: f } = s.locator.location(n(e));\n return {\n filePath: s.filePath,\n ruleName: 'signal-avoid-untracked-overuse',\n message: 'untracked() hides this read from dependency tracking, which can mask stale reactive state.',\n line: l,\n column: f,\n severity: 'warn',\n fix: r['signal-avoid-untracked-overuse']\n };\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { unwrapNode as t, getClassBody as r, getConstructorMember as o, getNodeStart as a, getParamIdentifierName as i, getParamTypeName as n, getParamsArray as l, getTsSymbolAtNode as s, isLikelyAngularInjectableSymbol as c } from '../../rule-utils';\nimport { CODE_EXAMPLES as d, RECOMMENDATIONS as m } from '../../recommendations';\nlet RULE_NAME = 'prefer-inject-over-constructor-di', DIISH_NAMES = new Set([\n 'http',\n 'router',\n 'route',\n 'cdr',\n 'cdref',\n 'changedetectorref',\n 'injector',\n 'ngzone',\n 'zone',\n 'renderer',\n 'renderer2',\n 'elementref',\n 'el',\n 'document',\n 'platform',\n 'location',\n 'dialog',\n 'snack',\n 'toast',\n 'store',\n 'facade',\n 'logger',\n 'translate',\n 'i18n',\n 'auth',\n 'api',\n 'client',\n 'matdialog',\n 'overlay',\n 'breakpointobserver',\n 'snackbar',\n 'matsnackbar',\n 'bottomsheet',\n 'matbottomsheet',\n 'clipboard',\n 'directionality',\n 'focusmonitor',\n 'mediamatcher',\n 'viewportruler',\n 'scrolldispatcher',\n 'dragdrop',\n 'liveannouncer',\n 'activatedroute',\n 'fb',\n 'firestore',\n 'angularfire',\n 'formbuilder',\n 'titleservice',\n 'metaservice',\n 'title',\n 'meta',\n 'sanitizer',\n 'domsanitizer',\n 'compiler',\n 'applicationref',\n 'componentfactoryresolver',\n 'viewcontainerref',\n 'templateref',\n 'destroyref'\n]), NON_DIISH_NAMES = new Set([\n 'data',\n 'config',\n 'options',\n 'opts',\n 'params',\n 'payload',\n 'input',\n 'value',\n 'values',\n 'items',\n 'item',\n 'context',\n 'ctx',\n 'model',\n 'vm',\n 'state',\n 'initialstate',\n 'result',\n 'name',\n 'id',\n 'label',\n 'text',\n 'title',\n 'message',\n 'url',\n 'path',\n 'index',\n 'count',\n 'size',\n 'length',\n 'width',\n 'height',\n 'color',\n 'type',\n 'key',\n 'mode',\n 'flag',\n 'enabled',\n 'disabled',\n 'visible',\n 'hidden'\n]), DIISH_SUFFIXES = [\n 'Service',\n 'Facade',\n 'Store',\n 'Client',\n 'Repository',\n 'Adapter',\n 'Manager',\n 'Controller',\n 'Provider',\n 'Registry',\n 'Logger',\n 'Router',\n 'ActivatedRoute',\n 'ChangeDetectorRef',\n 'DestroyRef',\n 'Injector',\n 'NgZone',\n 'Renderer2',\n 'ElementRef',\n 'HttpClient',\n 'ViewContainerRef',\n 'TemplateRef',\n 'ComponentFactoryResolver',\n 'ApplicationRef',\n 'MatDialog',\n 'MatDialogRef',\n 'MatSnackBar',\n 'MatBottomSheet',\n 'Overlay',\n 'OverlayRef',\n 'BreakpointObserver',\n 'Clipboard',\n 'FocusMonitor',\n 'MediaMatcher',\n 'ScrollDispatcher',\n 'DragDrop',\n 'LiveAnnouncer',\n 'Directionality',\n 'ViewportRuler',\n 'FormBuilder',\n 'DomSanitizer',\n 'Title',\n 'Meta',\n 'Dispatcher',\n 'Gateway',\n 'Handler',\n 'Interceptor',\n 'Guard',\n 'Resolver',\n 'Factory',\n 'Strategy',\n 'Validator'\n], PRIMITIVES = new Set([\n 'string',\n 'number',\n 'boolean',\n 'symbol',\n 'bigint',\n 'any',\n 'unknown',\n 'void'\n]);\nexport const preferInjectRule = e(RULE_NAME, (e, p)=>{\n let u = o(r(e.node));\n if (!u) return null;\n let f = l(u.value ?? u).filter((e)=>(function(e, r) {\n let o = t(e);\n if (!o) return !1;\n if (Array.isArray(o.decorators) && o.decorators.length > 0 || o.accessibility || o.readonly) return !0;\n if (r.typeChecker) {\n let t = s(e, r);\n if (t && c(t)) return !0;\n }\n let a = (i(e) || '').toLowerCase().trim();\n if (!a || NON_DIISH_NAMES.has(a)) return !1;\n if (DIISH_NAMES.has(a)) return !0;\n let l = (n(e) || '').trim();\n return !(!l || PRIMITIVES.has(l.toLowerCase())) && DIISH_SUFFIXES.some((e)=>l.endsWith(e));\n })(e, p));\n if (0 === f.length) return null;\n let { line: g, column: h } = p.locator.location(a(u)), y = f.map((e)=>`${i(e)}: ${n(e)}`).join(', ');\n return {\n filePath: p.filePath,\n ruleName: RULE_NAME,\n message: `Constructor dependency injection makes class setup less composable than inject().${y ? ` Offending params: ${y}.` : ''}`,\n line: g,\n column: h,\n severity: 'warn',\n fix: m[RULE_NAME],\n codeExample: d[RULE_NAME]\n };\n}, {\n requires: {\n typeChecker: !0\n }\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { CODE_EXAMPLES as t, RECOMMENDATIONS as r } from '../../recommendations';\nimport { getClassBody as n, getNodeStart as o, unwrapNode as i } from '../../rule-utils';\nlet RULE_NAME = 'signal-prefer-input-signal';\nfunction isInputDecorator(e) {\n let t = i(e.expression ?? e);\n if (!t) return !1;\n if ('Identifier' === t.type) return 'Input' === t.name;\n if ('CallExpression' === t.type) {\n let e = i(t.callee);\n return e?.type === 'Identifier' && 'Input' === e.name;\n }\n return !1;\n}\nexport const signalPreferInputSignalRule = e(RULE_NAME, (e, a)=>{\n if ('Component' !== e.decoratorName && 'Directive' !== e.decoratorName) return null;\n let s = n(e.node), l = [], p = a.project?.standaloneComponents?.has(a.filePath) ?? !1;\n for (let e of s){\n let n = i(e);\n if (n && ('PropertyDefinition' === n.type || 'AccessorProperty' === n.type) && Array.isArray(n.decorators) && n.decorators.some(isInputDecorator)) {\n let e = o(n), { line: s, column: u } = a.locator.location(e), f = i(n.key), m = (f?.type === 'Identifier' ? f.name : f?.type === 'Literal' ? String(f.value) : '') || '(unknown)', c = `'${m}' uses @Input(), which keeps this input outside Angular's signal graph.`;\n p && (c += ' Standalone declarations benefit most from signal inputs.'), l.push({\n filePath: a.filePath,\n ruleName: RULE_NAME,\n message: c,\n line: s,\n column: u,\n severity: p ? 'error' : 'warn',\n fix: r[RULE_NAME],\n codeExample: t[RULE_NAME]\n });\n }\n }\n return l.length > 0 ? l : null;\n}, {\n requires: {\n projectContext: !0\n }\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { CODE_EXAMPLES as t, RECOMMENDATIONS as r } from '../../recommendations';\nimport { getClassBody as n, getNodeStart as i, getParamTypeName as o, getTsSymbolAtNode as l, unwrapNode as u } from '../../rule-utils';\nlet RULE_NAME = 'signal-prefer-output-function';\nexport const signalPreferOutputFunctionRule = e(RULE_NAME, (e, a)=>{\n if ('Component' !== e.decoratorName && 'Directive' !== e.decoratorName) return null;\n let p = n(e.node), f = [];\n for (let e of p){\n let n = u(e);\n if (n && ('PropertyDefinition' === n.type || 'AccessorProperty' === n.type) && Array.isArray(n.decorators) && n.decorators.some((e)=>{\n let t = u(e.expression ?? e);\n if (!t) return !1;\n if ('Identifier' === t.type) return 'Output' === t.name;\n if ('CallExpression' === t.type) {\n let e = u(t.callee);\n return e?.type === 'Identifier' && 'Output' === e.name;\n }\n return !1;\n }) && function(e, t) {\n let r = u(e.value);\n if (r?.type === 'NewExpression') {\n let e = u(r.callee);\n if (e?.type === 'Identifier' && 'EventEmitter' === e.name) return !0;\n }\n let n = u(e.typeAnnotation);\n if (n && o(n).includes('EventEmitter')) return !0;\n if (t.typeChecker) {\n let r = l(e, t);\n if (r && ('function' == typeof r.getName ? r.getName() : '').includes('EventEmitter')) return !0;\n }\n return !1;\n }(n, a)) {\n let e = i(n), { line: o, column: l } = a.locator.location(e), p = u(n.key), s = (p?.type === 'Identifier' ? p.name : p?.type === 'Literal' ? String(p.value) : '') || '(unknown)';\n f.push({\n filePath: a.filePath,\n ruleName: RULE_NAME,\n message: `'${s}' uses @Output() EventEmitter, which adds boilerplate compared with output().`,\n line: o,\n column: l,\n severity: 'warn',\n fix: r[RULE_NAME],\n codeExample: t[RULE_NAME]\n });\n }\n }\n return f.length > 0 ? f : null;\n}, {\n requires: {\n typeChecker: !0\n }\n});\n","import { createAnyAngularClassRule as e } from '@ngcompass/engine';\nimport { CODE_EXAMPLES as t, RECOMMENDATIONS as r } from '../../recommendations';\nimport { getClassBody as n, getNodeStart as i, isMemberExpressionLike as o, unwrapNode as l } from '../../rule-utils';\nlet RULE_NAME = 'signal-prefer-model';\nfunction getDecoratorName(e, t) {\n return Array.isArray(e.decorators) && e.decorators.some((e)=>{\n let r = l(e.expression ?? e);\n if (!r) return !1;\n if ('Identifier' === r.type) return r.name === t;\n if ('CallExpression' === r.type) {\n let e = l(r.callee);\n return e?.type === 'Identifier' && e.name === t;\n }\n return !1;\n });\n}\nfunction hasSignal(e, t) {\n let r = l(e.value);\n if (!r || 'CallExpression' !== r.type) return !1;\n let n = l(r.callee);\n if (!n) return !1;\n if ('Identifier' === n.type) return n.name === t;\n if (o(n)) {\n let e = l(n.object);\n return e?.type === 'Identifier' && e.name === t;\n }\n return !1;\n}\nexport const signalPreferModelRule = e(RULE_NAME, (e, o)=>{\n if ('Component' !== e.decoratorName && 'Directive' !== e.decoratorName) return null;\n let a = n(e.node), u = new Map(), f = new Map();\n for (let e of a){\n let t = l(e);\n if (!t || 'PropertyDefinition' !== t.type && 'AccessorProperty' !== t.type) continue;\n let r = function(e) {\n let t = l(e.key);\n return t ? 'Identifier' === t.type ? t.name ?? null : 'Literal' === t.type ? String(t.value) : null : null;\n }(t);\n r && ((getDecoratorName(t, 'Input') || hasSignal(t, 'input')) && u.set(r, t), (getDecoratorName(t, 'Output') || hasSignal(t, 'output')) && f.set(r, t));\n }\n let p = [];\n for (let [e, n] of f){\n if (!e.endsWith('Change')) continue;\n let n = e.slice(0, -6), l = u.get(n);\n if (l) {\n let a = i(l), { line: u, column: f } = o.locator.location(a);\n p.push({\n filePath: o.filePath,\n ruleName: RULE_NAME,\n message: `The \\`${n}\\` / \\`${e}\\` pair implements two-way binding with extra wiring that model() avoids.`,\n line: u,\n column: f,\n severity: 'warn',\n fix: r[RULE_NAME],\n codeExample: t[RULE_NAME]\n });\n }\n }\n return p.length > 0 ? p : null;\n});\n","import { createTemplateAttributeRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from \"../../recommendations\";\nimport { getTemplateAbsoluteOffset as r } from \"../../rule-utils\";\nlet LEGACY_DIRECTIVES = new Map([\n [\n '*ngIf',\n '@if'\n ],\n [\n '*ngFor',\n '@for'\n ],\n [\n '*ngSwitch',\n '@switch'\n ],\n [\n '[ngSwitch]',\n '@switch'\n ],\n [\n '*ngSwitchCase',\n '@case'\n ],\n [\n '*ngSwitchDefault',\n '@default'\n ]\n]), RULE_NAME = 'template-prefer-control-flow';\nexport const templatePreferControlFlowRule = e(RULE_NAME, (e, o)=>{\n var l;\n let n = (l = e.name, LEGACY_DIRECTIVES.get(l) ?? null);\n if (!n) return null;\n let i = r(o, e.sourceSpan.start), { line: s, column: a } = o.locator.location(i);\n return {\n filePath: o.filePath,\n ruleName: RULE_NAME,\n message: `\\`${e.name}\\` uses legacy structural directive syntax, so it misses the \\`${n}\\` control flow benefits.`,\n line: s,\n column: a,\n severity: 'error',\n fix: t[RULE_NAME]\n };\n}, {\n requires: {\n htmlAst: !0\n }\n});\n","import { createTemplateExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from \"../../recommendations\";\nimport { unwrapNode as r, isMemberExpressionLike as n, getStaticPropertyName as i, getTemplateAbsoluteOffset as l } from \"../../rule-utils\";\nlet seenByTemplateKey = new WeakMap();\nexport const templateNoAsyncPipeDuplicationRule = e('template-no-async-pipe-duplication', (e, p)=>{\n let a, o, s = function e(t) {\n let n = r(t);\n if (!n) return null;\n if ('BinaryExpression' === n.type && '|' === n.operator) {\n let t = r(n.right);\n return t?.type === 'Identifier' && 'async' === t.name ? r(n.left) : e(n.left);\n }\n return null;\n }(e.expression), u = s ? function e(t, r = 0) {\n if (!t || r > 10) return null;\n if ('Identifier' === t.type) return t.name;\n if ('ThisExpression' === t.type) return 'this';\n if ('Literal' === t.type) {\n let e = t.value;\n return null === e ? 'null' : 'string' == typeof e || 'number' == typeof e || 'boolean' == typeof e || 'bigint' == typeof e ? String(e) : null;\n }\n if ('CallExpression' === t.type) {\n let n = e(t.callee, r + 1), i = (Array.isArray(t.arguments) ? t.arguments : []).map((t)=>e(t, r + 1) ?? '?');\n return `${n}(${i.join(',')})`;\n }\n if (n(t)) {\n let n = e(t.object, r + 1), l = i(t);\n if (n && l) return `${n}.${l}`;\n }\n if ('UnaryExpression' === t.type) return `${t.operator}${e(t.argument, r + 1)}`;\n if ('ConditionalExpression' === t.type) return `${e(t.test, r + 1)}?${e(t.consequent, r + 1)}:${e(t.alternate, r + 1)}`;\n if ('OptionalExpression' === t.type || 'ChainExpression' === t.type) return e(t.expression, r + 1);\n if ('LogicalExpression' === t.type) {\n let n = e(t.left, r + 1), i = e(t.right, r + 1);\n if (n && i) return `${n}${t.operator}${i}`;\n }\n if ('BinaryExpression' === t.type && '|' !== t.operator) {\n let n = e(t.left, r + 1), i = e(t.right, r + 1);\n if (n && i) return `${n}${t.operator}${i}`;\n }\n if ('ArrayExpression' === t.type) {\n let n = (t.elements ?? []).map((t)=>e(t, r + 1) ?? '?');\n return `[${n.join(',')}]`;\n }\n if ('ObjectExpression' === t.type) {\n let n = (t.properties ?? []).map((t)=>{\n let n = t.key ? e(t.key, r + 1) : '?', i = t.value ? e(t.value, r + 1) : '?';\n return `${n}:${i}`;\n });\n return `{${n.join(',')}}`;\n }\n if ('TemplateLiteral' === t.type) return '`tmpl`';\n if ('AssignmentExpression' === t.type) {\n let n = e(t.left, r + 1), i = e(t.right, r + 1);\n if (n && i) return `${n}${t.operator}${i}`;\n }\n return null;\n }(s) : null;\n if (!u) return null;\n let f = (a = p.template, o = a?.templateStartOffset, `${p.filePath}@${'number' == typeof o && Number.isFinite(o) ? o : 0}`), y = seenByTemplateKey.get(p);\n y || (y = new Map(), seenByTemplateKey.set(p, y));\n let m = y.get(f);\n if (m || (m = new Set(), y.set(f, m)), m.has(u)) {\n let r = l(p, e.sourceSpan.start), { line: n, column: i } = p.locator.location(r);\n return {\n filePath: p.filePath,\n ruleName: 'template-no-async-pipe-duplication',\n message: `Duplicate async pipe subscriptions for \"${u}\" can create repeated work and inconsistent loading states.`,\n line: n,\n column: i,\n severity: 'warn',\n fix: t['template-no-async-pipe-duplication']\n };\n }\n return m.add(u), null;\n}, {\n requires: {\n htmlAst: !0\n }\n});\n","import { createCallExpressionRule as e } from '@ngcompass/engine';\nimport { RECOMMENDATIONS as t } from \"../../recommendations\";\nimport { unwrapNode as s, getNodeStart as n } from \"../../rule-utils\";\nlet FOCUSED_NAMES = new Set([\n \"fdescribe\",\n \"fit\",\n 'describe.only',\n 'it.only',\n 'test.only',\n 'context.only',\n \"xdescribe\",\n \"xit\",\n \"xtest\",\n \"xcontext\"\n]), SKIPPED_NAMES = new Set([\n 'xdescribe',\n 'xit',\n 'xtest',\n 'xcontext'\n]);\nfunction getIdentifierName(e) {\n return 'Identifier' === e.type ? e.name ?? null : null;\n}\nexport const specNoFocusedTestRule = e('spec-no-focused-test', (e, i)=>{\n var r;\n let o;\n if (!((r = i.filePath).endsWith('.spec.ts') || r.endsWith('.test.ts'))) return null;\n let l = s(e.callee);\n if (!l) return null;\n let c = (o = getIdentifierName(l) || function(e) {\n if ('MemberExpression' === e.type || 'StaticMemberExpression' === e.type || 'OptionalMemberExpression' === e.type) {\n let t = s(e.object), n = e.property?.name ?? '', i = (t?.type === 'Identifier' ? t.name : '') ?? '';\n return i ? `${i}.${n}` : null;\n }\n return null;\n }(l)) && FOCUSED_NAMES.has(o) ? o : null;\n if (!c) {\n if ('pending' === getIdentifierName(l)) {\n let s = n(e), { line: r, column: o } = i.locator.location(s);\n return {\n filePath: i.filePath,\n ruleName: 'spec-no-focused-test',\n message: '`pending()` disables the test body, so the committed suite can miss coverage.',\n line: r,\n column: o,\n severity: 'error',\n fix: t['spec-no-focused-test']\n };\n }\n return null;\n }\n let a = n(e), { line: u, column: f } = i.locator.location(a), p = SKIPPED_NAMES.has(c) ? `\\`${c}\\` disables a test that may be forgotten.` : `\\`${c}\\` is a focused test helper that can skip the rest of the suite in CI.`;\n return {\n filePath: i.filePath,\n ruleName: 'spec-no-focused-test',\n message: p,\n line: u,\n column: f,\n severity: 'error',\n fix: t['spec-no-focused-test']\n };\n}, {\n dependencyType: 'spec',\n requires: {\n tsAst: !0\n }\n});\n","import { registerNewEngineRule as r } from '../engine/adapter.js';\nimport { componentNoManualDetectChangesRule as e } from '../rules/correctness/component-no-manual-detect-changes.rule.js';\nimport { signalNoSideEffectsInComputedRule as t } from '../rules/correctness/signal-no-side-effects-in-computed.rule.js';\nimport { signalEffectDestroyScopedRule as s } from '../rules/correctness/signal-effect-must-be-destroy-scoped.rule.js';\nimport { rxjsNoNestedSubscribeRule as o } from '../rules/correctness/rxjs-no-nested-subscribe.rule.js';\nimport { preferOnPushRule as i } from '../rules/performance/prefer-on-push.rule.js';\nimport { templateNoCallExpressionRule as l } from '../rules/performance/template-no-call-expression.rule.js';\nimport { templateTrackByRequiredRule as m } from '../rules/performance/template-trackby-required.rule.js';\nimport { templateNoObjectLiteralBindingRule as n } from '../rules/performance/template-no-object-literal-binding.rule.js';\nimport { templateNoArrayLiteralBindingRule as u } from '../rules/performance/template-no-array-literal-binding.rule.js';\nimport { noBypassSanitizationRule as p } from '../rules/security/no-bypass-sanitization.rule.js';\nimport { templateNoUnsafeBindingsRule as a } from '../rules/security/template-no-unsafe-bindings.rule.js';\nimport { noDocumentAccessRule as c } from '../rules/ssr/no-document-access.rule.js';\nimport { preferAfterRenderOverAfterViewInitRule as f } from '../rules/ssr/prefer-after-render-over-after-view-init.rule.js';\nimport { rxjsNoSubscribeInComponentRule as j } from '../rules/reactivity/rxjs-no-subscribe-in-component.rule.js';\nimport { rxjsRequireTakeUntilDestroyedRule as d } from '../rules/reactivity/rxjs-require-take-until-destroyed.rule.js';\nimport { rxjsAvoidSubjectRule as y } from '../rules/reactivity/rxjs-avoid-subject-as-event-bus.rule.js';\nimport { rxjsPreferToSignalRule as v } from '../rules/reactivity/rxjs-prefer-to-signal-for-template-state.rule.js';\nimport { toSignalRequireInitialValueRule as g } from '../rules/reactivity/to-signal-require-initial-value.rule.js';\nimport { signalPreferComputedRule as b } from '../rules/reactivity/signal-prefer-computed-over-sync-effect.rule.js';\nimport { signalAvoidUntrackedRule as x } from '../rules/reactivity/signal-avoid-untracked-overuse.rule.js';\nimport { preferInjectRule as k } from '../rules/modern-api/prefer-inject.rule.js';\nimport { signalPreferInputSignalRule as q } from '../rules/modern-api/signal-prefer-input-signal.rule.js';\nimport { signalPreferOutputFunctionRule as h } from '../rules/modern-api/signal-prefer-output-function.rule.js';\nimport { signalPreferModelRule as w } from '../rules/modern-api/signal-prefer-model.rule.js';\nimport { templatePreferControlFlowRule as z } from '../rules/template/template-prefer-control-flow.rule.js';\nimport { templateNoAsyncPipeDuplicationRule as A } from '../rules/template/template-no-async-pipe-duplication.rule.js';\nimport { specNoFocusedTestRule as B } from '../rules/testing/spec-no-focused-test.rule.js';\nexport function registerAllBuiltinRules() {\n r(e, 'correctness'), r(t, 'correctness'), r(s, 'correctness'), r(o, 'correctness'), r(i, 'performance'), r(l, 'performance'), r(m, 'performance'), r(n, 'performance'), r(u, 'performance'), r(p, 'security'), r(a, 'security'), r(c, 'ssr'), r(f, 'ssr'), r(j, 'reactivity'), r(d, 'reactivity'), r(y, 'reactivity'), r(v, 'reactivity'), r(g, 'reactivity'), r(b, 'reactivity'), r(x, 'reactivity'), r(k, 'modern-api'), r(q, 'modern-api'), r(h, 'modern-api'), r(w, 'modern-api'), r(z, 'template'), r(A, 'template'), r(B, 'testing');\n}\n"]}
|