@ngcompass/rules 0.1.1-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../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/presets/recommended.ts","../src/presets/strict.ts","../src/presets/all.ts","../src/presets/performance.ts","../src/presets/reactivity.ts","../src/presets/security.ts","../src/presets/ssr.ts","../src/presets/index.ts","../src/registry/rule-registry.ts","../src/engine/adapter.ts","../src/registry/register-all.ts","../src/resolution/loader.ts","../src/resolution/normalize.ts","../src/resolution/merger.ts","../src/resolution/resolver.ts","../src/index.ts"],"names":["_tsModule","unwrapNode","node","current","t","type","expression","isMemberExpressionLike","getStaticPropertyName","member","prop","property","computed","value","name","getNodeStart","start","span","isCalleeNamed","calleeRaw","callee","getCalleeName","callExprRaw","call","isSubscribeCall","getObjectProperty","objExpr","props","properties","Array","isArray","key","isLiteralTrue","n","Boolean","isLiteralNullOrUndefined","SKIP_CHILD_KEYS","Set","childNodes","el","has","isConstructorMethod","def","kind","isMethodDefinition","getConstructorMember","classBody","m","getMethodBody","body","getMethodName","getClassBody","classNode","inner","isAllowedEffectCall","callExpr","args","arguments","length","options","injectorProp","manualCleanupProp","findEffectCalls","root","hits","stack","pop","child","push","getCallbackArg","cb","getFunctionBody","fn","collectAllRxjsAliases","sourceText","exportedNames","result","Map","map","aliasPatternsByName","RegExp","importPattern","importMatch","exec","specifier","split","s","trim","filter","exportedName","aliasPattern","aliasMatch","get","add","VALID_TEARDOWN_OPERATORS","getOperatorNameFromPipeArg","arg","hasTeardownInPipeCall","pipeCall","hasTeardownInReceiverChain","receiverExpr","object","getTemplateAbsoluteOffset","context","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","filePath","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","metadata","hasExplicitAliases","analyzeComponent","isCdrAlias","aliases","ctor","alias","firstArg","token","size","isOnPush","changeDetection","ChangeDetectionStrategy","OnPush","failures","callNode","target","receiver","propertyName","line","column","locator","location","ruleName","message","severity","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","handler","getHandlersFromObserver","handlers","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","requires","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","entry","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","set","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","dependencyType","tsAst","recommendedPreset","description","rules","strictPreset","allPreset","performancePreset","reactivityPreset","securityPreset","ssrPreset","builtinPresets","isBuiltinPreset","normalized","getBuiltinPreset","getPresetsForRule","presetName","preset","RuleRegistry","_handlers","_meta","register","plugin","opts","allowOverride","Error","meta","getRuleNames","from","keys","getAll","getMeta","getMetadata","overrides","category","filePatterns","getRegistryEntry","defaultConfig","toReadonlyMap","_globalRegistry","getGlobalRegistry","resetGlobalRegistry","isKnownRule","getRuleMetadata","getAllRuleNames","getRuleRegistryMap","getRuleListEntries","registry","entries","domain","presets","registerNewEngineRule","debug","isNewEngineRule","executeBatchedNewEngineRules","ruleNames","results","performance","runSinglePassAnalysis","traversalMs","toFixed","nodesVisited","cacheStats","misses","budgetViolations","registerAllBuiltinRules","loadPreset","reference","configDir","process","cwd","Ok","Err","presetPath","path","resolve","content","fs","readFile","JSON","parse","error","resolveExtendsChain","extendsValue","references","chain","presetResult","ok","data","extends","chainResult","normalizeRuleConfig","config","isRuleEnabled","normalizeAllRules","mergeRuleConfig","override","baseNormalized","overrideNormalized","mergeRulesConfigs","configs","merged","ruleConfig","existing","applyOverrides","resolveRules","time","presetsResult","timeEnd","presetRulesConfigs","mergedPresetRules","finalRules","resolvedRules","enabledCount","disabledCount","unknownRules","resolvedRule","resolutionTime","totalRules","enabledRules","disabledRules","presetsLoaded","getEnabledRules","enabled","rule","getRulesByCategory","byCategory","values","getRulesByDependencyType","byType","depType","collectRxjsAliases","re","part"],"mappings":"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","file":"index.js","sourcesContent":["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","export const recommendedPreset = {\n name: 'ngcompass:recommended',\n description: 'High-confidence rules that prevent real bugs and regressions in any Angular project',\n rules: {\n 'component-no-manual-detect-changes': 'error',\n 'rxjs-no-nested-subscribe': 'error',\n 'signal-no-side-effects-in-computed': 'error',\n 'signal-effect-must-be-destroy-scoped': 'error',\n 'rxjs-no-subscribe-in-component': 'error',\n 'rxjs-require-takeUntilDestroyed': 'error',\n 'prefer-on-push-component-change-detection': 'error',\n 'template-no-call-expression': 'error',\n 'template-trackby-required': 'error',\n 'template-no-object-literal-binding': 'warn',\n 'template-no-array-literal-binding': 'warn',\n 'template-no-async-pipe-duplication': 'warn',\n 'no-bypass-sanitization': 'error',\n 'template-no-unsafe-bindings': 'error',\n 'spec-no-focused-test': 'error'\n }\n};\n","export const strictPreset = {\n name: 'ngcompass:strict',\n description: 'All rules at error severity — zero tolerance mode',\n rules: {\n 'component-no-manual-detect-changes': 'error',\n 'rxjs-no-nested-subscribe': 'error',\n 'signal-no-side-effects-in-computed': 'error',\n 'signal-effect-must-be-destroy-scoped': 'error',\n 'prefer-on-push-component-change-detection': 'error',\n 'prefer-inject-over-constructor-di': 'error',\n 'rxjs-no-subscribe-in-component': 'error',\n 'rxjs-require-takeUntilDestroyed': 'error',\n 'rxjs-avoid-subject-as-event-bus': 'error',\n 'rxjs-prefer-toSignal-for-template-state': 'error',\n 'toSignal-require-initialValue': 'error',\n 'signal-prefer-computed-over-sync-effect': 'error',\n 'signal-avoid-untracked-overuse': 'error',\n 'signal-prefer-input-signal': 'error',\n 'signal-prefer-output-function': 'error',\n 'signal-prefer-model': 'error',\n 'template-no-call-expression': 'error',\n 'template-trackby-required': 'error',\n 'template-no-object-literal-binding': 'error',\n 'template-no-array-literal-binding': 'error',\n 'template-no-async-pipe-duplication': 'error',\n 'template-prefer-control-flow': 'error',\n 'no-bypass-sanitization': 'error',\n 'template-no-unsafe-bindings': 'error',\n 'no-document-access': 'error',\n 'prefer-after-render-over-after-view-init': 'error',\n 'spec-no-focused-test': 'error'\n }\n};\n","export const allPreset = {\n name: 'ngcompass:all',\n description: 'All available rules enabled at their default severity',\n rules: {\n 'prefer-on-push-component-change-detection': 'error',\n 'component-no-manual-detect-changes': 'error',\n 'prefer-inject-over-constructor-di': 'warn',\n 'rxjs-no-subscribe-in-component': 'error',\n 'rxjs-require-takeUntilDestroyed': 'error',\n 'rxjs-avoid-subject-as-event-bus': 'warn',\n 'rxjs-prefer-toSignal-for-template-state': 'warn',\n 'toSignal-require-initialValue': 'warn',\n 'rxjs-no-nested-subscribe': 'warn',\n 'signal-no-side-effects-in-computed': 'error',\n 'signal-prefer-computed-over-sync-effect': 'warn',\n 'signal-effect-must-be-destroy-scoped': 'error',\n 'signal-avoid-untracked-overuse': 'warn',\n 'signal-prefer-input-signal': 'warn',\n 'signal-prefer-output-function': 'warn',\n 'signal-prefer-model': 'warn',\n 'template-no-call-expression': 'error',\n 'template-trackby-required': 'error',\n 'template-no-object-literal-binding': 'warn',\n 'template-no-array-literal-binding': 'warn',\n 'template-no-async-pipe-duplication': 'warn',\n 'template-prefer-control-flow': 'warn',\n 'no-bypass-sanitization': 'warn',\n 'template-no-unsafe-bindings': 'warn',\n 'no-document-access': 'warn',\n 'prefer-after-render-over-after-view-init': 'warn',\n 'spec-no-focused-test': 'error'\n }\n};\n","export const performancePreset = {\n name: 'ngcompass:performance',\n description: 'Rules that directly impact Angular rendering and change-detection performance',\n rules: {\n 'prefer-on-push-component-change-detection': 'error',\n 'component-no-manual-detect-changes': 'error',\n 'template-no-call-expression': 'error',\n 'template-trackby-required': 'error',\n 'template-no-object-literal-binding': 'warn',\n 'template-no-array-literal-binding': 'warn',\n 'template-no-async-pipe-duplication': 'warn',\n 'rxjs-prefer-toSignal-for-template-state': 'warn'\n }\n};\n","export const reactivityPreset = {\n name: 'ngcompass:reactivity',\n description: 'Signals correctness and RxJS → Signals migration rules for Angular 17+ projects',\n rules: {\n 'rxjs-no-nested-subscribe': 'error',\n 'rxjs-no-subscribe-in-component': 'error',\n 'rxjs-require-takeUntilDestroyed': 'error',\n 'rxjs-avoid-subject-as-event-bus': 'warn',\n 'rxjs-prefer-toSignal-for-template-state': 'warn',\n 'toSignal-require-initialValue': 'warn',\n 'signal-no-side-effects-in-computed': 'error',\n 'signal-effect-must-be-destroy-scoped': 'error',\n 'signal-prefer-computed-over-sync-effect': 'warn',\n 'signal-avoid-untracked-overuse': 'warn',\n 'signal-prefer-input-signal': 'warn',\n 'signal-prefer-output-function': 'warn',\n 'signal-prefer-model': 'warn'\n }\n};\n","export const securityPreset = {\n name: 'ngcompass:security',\n description: 'XSS and sanitization bypass prevention rules',\n rules: {\n 'no-bypass-sanitization': 'error',\n 'template-no-unsafe-bindings': 'error'\n }\n};\n","export const ssrPreset = {\n name: 'ngcompass:ssr',\n description: 'Platform safety rules for Angular SSR / Universal applications',\n rules: {\n 'no-document-access': 'warn',\n 'prefer-after-render-over-after-view-init': 'warn'\n }\n};\n","import { recommendedPreset as r } from './recommended.js';\nimport { strictPreset as e } from './strict.js';\nimport { allPreset as t } from './all.js';\nimport { performancePreset as s } from './performance.js';\nimport { reactivityPreset as o } from './reactivity.js';\nimport { securityPreset as i } from './security.js';\nimport { ssrPreset as m } from './ssr.js';\nexport const builtinPresets = new Map([\n [\n 'recommended',\n r\n ],\n [\n 'strict',\n e\n ],\n [\n 'performance',\n s\n ],\n [\n 'reactivity',\n o\n ],\n [\n 'security',\n i\n ],\n [\n 'ssr',\n m\n ],\n [\n 'all',\n t\n ]\n]);\nexport const isBuiltinPreset = (r)=>{\n let e = r.replace(/^ngcompass:/, '');\n return builtinPresets.has(e);\n};\nexport const getBuiltinPreset = (r)=>{\n let e = r.replace(/^ngcompass:/, '');\n return builtinPresets.get(e);\n};\nexport function getPresetsForRule(r) {\n let e = [];\n for (let [t, s] of builtinPresets)r in s.rules && e.push(t);\n return e;\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 { 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","import { Ok as e, Err as r, debug as t } from '@ngcompass/common';\nimport o from 'fs/promises';\nimport s from 'path';\nimport { isBuiltinPreset as a, getBuiltinPreset as i } from '../presets';\nexport const loadPreset = async (n, d = process.cwd())=>{\n if (t('loader', `Loading preset: ${n}`), a(n)) {\n let o = i(n);\n return o ? (t('loader', `Loaded built-in preset: ${n}`), e(o)) : r(Error(`Built-in preset not found: ${n}`));\n }\n try {\n let r = s.resolve(d, n);\n t('loader', `Loading preset from file: ${r}`);\n let a = await o.readFile(r, 'utf8'), i = JSON.parse(a);\n return t('loader', `Loaded file-based preset: ${n}`), e(i);\n } catch (e) {\n return r(Error(`Failed to load preset \"${n}\": ${e.message}`));\n }\n};\nexport const resolveExtendsChain = async (t, o, s = [])=>{\n if (!t) return e([]);\n let a = Array.isArray(t) ? t : [\n t\n ], i = [];\n for (let e of a){\n if (s.includes(e)) {\n let t = [\n ...s,\n e\n ].join(' -> ');\n return r(Error(`Circular extends detected: ${t}`));\n }\n let t = await loadPreset(e, o);\n if (!t.ok) return t;\n let a = t.data;\n if (a.extends) {\n let r = await resolveExtendsChain(a.extends, o, [\n ...s,\n e\n ]);\n if (!r.ok) return r;\n i.push(...r.data);\n }\n i.push(a);\n }\n return e(i);\n};\n","export const isShorthand = (e)=>'string' == typeof e;\nexport const normalizeRuleConfig = (e)=>'string' == typeof e ? {\n severity: e,\n options: {}\n } : {\n severity: e.severity,\n options: e.options || {}\n };\nexport const isRuleEnabled = (e)=>'off' !== normalizeRuleConfig(e).severity;\nexport const normalizeAllRules = (e)=>{\n let o = new Map();\n for (let [t, n] of Object.entries(e))o.set(t, normalizeRuleConfig(n));\n return o;\n};\n","import { normalizeRuleConfig as e } from './normalize.js';\nexport const mergeRuleConfig = (t, o)=>{\n let r = e(t), n = e(o);\n return {\n severity: n.severity,\n options: {\n ...r.options,\n ...n.options\n }\n };\n};\nexport const mergeRulesConfigs = (t)=>{\n let o = new Map();\n for (let r of t)for (let [t, n] of Object.entries(r)){\n let r = o.get(t);\n r ? o.set(t, mergeRuleConfig(r, n)) : o.set(t, e(n));\n }\n return o;\n};\nexport const applyOverrides = (t, o)=>{\n let r = new Map(t);\n for (let [t, n] of Object.entries(o)){\n let o = r.get(t);\n o ? r.set(t, mergeRuleConfig(o, n)) : r.set(t, e(n));\n }\n return r;\n};\n","import { Ok as e, Err as r, debug as t, time as l, timeEnd as o } from '@ngcompass/common';\nimport { resolveExtendsChain as s } from './loader.js';\nimport { mergeRulesConfigs as a, applyOverrides as n } from './merger.js';\nimport { isRuleEnabled as i } from './normalize.js';\nimport { isKnownRule as u, getRuleMetadata as d } from '../registry/rule-registry.js';\nexport const resolveRules = async (p, m = process.cwd())=>{\n l('rule-resolution'), t('loader', 'Starting rule resolution');\n try {\n t('loader', `Resolving extends: ${JSON.stringify(p.extends)}`);\n let r = await s(p.extends, m);\n if (!r.ok) return o('rule-resolution'), r;\n let l = r.data;\n t('loader', `Loaded ${l.length} preset(s)`);\n let g = l.map((e)=>e.rules);\n t('loader', 'Merging preset rules');\n let f = a(g);\n t('loader', `Merged rules from presets: ${f.size} rules`), t('loader', 'Applying user config rules');\n let c = n(f, p.rules || {});\n t('loader', `Final merged rules: ${c.size} rules`);\n let y = new Map(), R = 0, $ = 0, w = 0;\n for (let [e, r] of c){\n if (!u(e)) {\n t('loader', `Warning: Unknown rule \"${e}\" (will be skipped)`), w++;\n continue;\n }\n let l = d(e), o = {\n name: e,\n severity: r.severity,\n options: r.options || {},\n metadata: l\n };\n y.set(e, o), i(r) ? R++ : $++;\n }\n let x = o('rule-resolution');\n t('loader', \"Rule resolution complete:\"), t('loader', ` Total rules: ${y.size}`), t('loader', ` Enabled: ${R}`), t('loader', ` Disabled: ${$}`), t('loader', ` Unknown (skipped): ${w}`), t('loader', ` Resolution time: ${x.toFixed(1)}ms`);\n let v = {\n rules: y,\n metadata: {\n totalRules: y.size,\n enabledRules: R,\n disabledRules: $,\n presetsLoaded: l.map((e)=>e.name),\n resolutionTime: x\n }\n };\n return e(v);\n } catch (e) {\n return o('rule-resolution'), r(Error(`Rule resolution failed: ${e.message}`));\n }\n};\nexport const getEnabledRules = (e)=>{\n let r = new Map();\n for (let [t, l] of e)'off' !== l.severity && r.set(t, l);\n return r;\n};\nexport const getRulesByCategory = (e)=>{\n let r = new Map();\n for (let t of e.values()){\n let e = t.metadata.category, l = r.get(e) || [];\n l.push(t), r.set(e, l);\n }\n return r;\n};\nexport const getRulesByDependencyType = (e)=>{\n let r = new Map();\n for (let t of e.values()){\n let e = t.metadata.dependencyType, l = r.get(e) || [];\n l.push(t), r.set(e, l);\n }\n return r;\n};\n","export const rules = '@ngcompass/rules';\nexport * from './rules/correctness/component-no-manual-detect-changes.rule.js';\nexport * from './rules/correctness/signal-no-side-effects-in-computed.rule.js';\nexport * from './rules/correctness/signal-effect-must-be-destroy-scoped.rule.js';\nexport * from './rules/correctness/rxjs-no-nested-subscribe.rule.js';\nexport * from './rules/performance/prefer-on-push.rule.js';\nexport * from './rules/performance/template-no-call-expression.rule.js';\nexport * from './rules/performance/template-trackby-required.rule.js';\nexport * from './rules/performance/template-no-object-literal-binding.rule.js';\nexport * from './rules/performance/template-no-array-literal-binding.rule.js';\nexport * from './rules/security/no-bypass-sanitization.rule.js';\nexport * from './rules/security/template-no-unsafe-bindings.rule.js';\nexport * from './rules/ssr/no-document-access.rule.js';\nexport * from './rules/ssr/prefer-after-render-over-after-view-init.rule.js';\nexport * from './rules/reactivity/rxjs-no-subscribe-in-component.rule.js';\nexport * from './rules/reactivity/rxjs-require-take-until-destroyed.rule.js';\nexport * from './rules/reactivity/rxjs-avoid-subject-as-event-bus.rule.js';\nexport * from './rules/reactivity/rxjs-prefer-to-signal-for-template-state.rule.js';\nexport * from './rules/reactivity/to-signal-require-initial-value.rule.js';\nexport * from './rules/reactivity/signal-prefer-computed-over-sync-effect.rule.js';\nexport * from './rules/reactivity/signal-avoid-untracked-overuse.rule.js';\nexport * from './rules/modern-api/prefer-inject.rule.js';\nexport * from './rules/modern-api/signal-prefer-input-signal.rule.js';\nexport * from './rules/modern-api/signal-prefer-output-function.rule.js';\nexport * from './rules/modern-api/signal-prefer-model.rule.js';\nexport * from './rules/template/template-prefer-control-flow.rule.js';\nexport * from './rules/template/template-no-async-pipe-duplication.rule.js';\nexport * from './rules/testing/spec-no-focused-test.rule.js';\nexport { isKnownRule, getRuleMetadata, getAllRuleNames, getRuleRegistryMap as ruleRegistry, getRuleListEntries, RuleRegistry, getGlobalRegistry, resetGlobalRegistry } from './registry/rule-registry.js';\nexport { registerAllBuiltinRules } from './registry/register-all.js';\nexport { executeBatchedNewEngineRules, isNewEngineRule } from './engine/adapter.js';\nexport { RuleContextFactory } from '@ngcompass/engine';\nexport { resolveRules, getEnabledRules, getRulesByCategory, getRulesByDependencyType } from './resolution/resolver.js';\nexport { loadPreset, resolveExtendsChain } from './resolution/loader.js';\nexport { normalizeRuleConfig, isRuleEnabled, normalizeAllRules } from './resolution/normalize.js';\nexport { mergeRuleConfig, mergeRulesConfigs, applyOverrides } from './resolution/merger.js';\nexport { builtinPresets, isBuiltinPreset, getBuiltinPreset, getPresetsForRule } from './presets/index.js';\nexport * from './recommendations.js';\nexport * from './rule-utils.js';\n"]}