@r_masseater/oxlint-typed-rules 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +23 -5
- package/dist/index.mjs +1 -1
- package/dist/tanstack-start.d.mts +2 -6
- package/dist/tanstack-start.mjs +91 -22
- package/dist/tanstack-start.mjs.map +1 -1
- package/dist/typed-rule-ClHYwCu8.mjs +151 -0
- package/dist/typed-rule-ClHYwCu8.mjs.map +1 -0
- package/package.json +16 -4
- package/dist/typed-rule-Bitx6iIi.mjs +0 -155
- package/dist/typed-rule-Bitx6iIi.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tanstack-start.mjs","names":["globals","name","rule","ESLintUtils","ESLintUtils","name","rule","name$1","rule$1","plugin","tanstackStart"],"sources":["../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/utils/get-docs-url.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/shared/use-client-resolver.js","../../../node_modules/.pnpm/globals@16.4.0/node_modules/globals/globals.json","../../../node_modules/.pnpm/globals@16.4.0/node_modules/globals/index.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-client-code-in-server-component/constants.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-client-code-in-server-component/violation-detector.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-client-code-in-server-component/transitive-analyzer.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/deepMerge.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/applyDefault.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/parserSeemsToBeTSESLint.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/getParserServices.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/InferTypesFromRule.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/nullThrows.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/RuleCreator.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/index.js","../src/typescript-eslint-utils.ts","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-client-code-in-server-component/no-client-code-in-server-component.rule.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-async-client-component/constants.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-async-client-component/render-graph-builder.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-async-client-component/context-analyzer.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-async-client-component/no-async-client-component.rule.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/index.js","../src/tanstack-start.ts"],"sourcesContent":["//#region src/utils/get-docs-url.ts\nvar getDocsUrl = (ruleName) => `https://tanstack.com/start/latest/docs/eslint/${ruleName}`;\n//#endregion\nexport { getDocsUrl };\n\n//# sourceMappingURL=get-docs-url.js.map","import * as ts from \"typescript\";\n//#region src/shared/use-client-resolver.ts\n/**\n* Creates a resolver that checks for 'use client' directive in source files\n*/\nfunction createUseClientResolver(program) {\n\tfunction hasUseClientDirective(fileName) {\n\t\tconst sourceFile = program.getSourceFile(fileName);\n\t\tif (!sourceFile) return false;\n\t\tconst firstStmt = sourceFile.statements[0];\n\t\tif (!firstStmt) return false;\n\t\tif (ts.isExpressionStatement(firstStmt) && ts.isStringLiteral(firstStmt.expression)) return firstStmt.expression.text === \"use client\";\n\t\treturn false;\n\t}\n\treturn { hasUseClientDirective };\n}\n//#endregion\nexport { createUseClientResolver };\n\n//# sourceMappingURL=use-client-resolver.js.map","","'use strict';\nmodule.exports = require('./globals.json');\n","import globals from \"globals\";\n//#region src/rules/no-client-code-in-server-component/constants.ts\n/**\n* Hooks allowed in server components\n*/\nvar DEFAULT_ALLOWED_HOOKS = new Set([\"useId\"]);\n/**\n* Browser-only globals not available in server context\n* Dynamically computed from globals package: browser globals that are NOT in node\n*/\nvar BROWSER_ONLY_GLOBALS = (() => {\n\tconst browserGlobals = Object.keys(globals.browser);\n\tconst nodeGlobals = new Set(Object.keys(globals.node));\n\tconst browserOnly = /* @__PURE__ */ new Set();\n\tfor (const name of browserGlobals) if (!nodeGlobals.has(name)) browserOnly.add(name);\n\treturn browserOnly;\n})();\n/**\n* React event handler props - comprehensive list from React types\n*/\nvar REACT_EVENT_HANDLERS = new Set([\n\t\"onCopy\",\n\t\"onCopyCapture\",\n\t\"onCut\",\n\t\"onCutCapture\",\n\t\"onPaste\",\n\t\"onPasteCapture\",\n\t\"onCompositionEnd\",\n\t\"onCompositionEndCapture\",\n\t\"onCompositionStart\",\n\t\"onCompositionStartCapture\",\n\t\"onCompositionUpdate\",\n\t\"onCompositionUpdateCapture\",\n\t\"onFocus\",\n\t\"onFocusCapture\",\n\t\"onBlur\",\n\t\"onBlurCapture\",\n\t\"onChange\",\n\t\"onChangeCapture\",\n\t\"onBeforeInput\",\n\t\"onBeforeInputCapture\",\n\t\"onInput\",\n\t\"onInputCapture\",\n\t\"onReset\",\n\t\"onResetCapture\",\n\t\"onSubmit\",\n\t\"onSubmitCapture\",\n\t\"onInvalid\",\n\t\"onInvalidCapture\",\n\t\"onLoad\",\n\t\"onLoadCapture\",\n\t\"onError\",\n\t\"onErrorCapture\",\n\t\"onKeyDown\",\n\t\"onKeyDownCapture\",\n\t\"onKeyPress\",\n\t\"onKeyPressCapture\",\n\t\"onKeyUp\",\n\t\"onKeyUpCapture\",\n\t\"onAbort\",\n\t\"onAbortCapture\",\n\t\"onCanPlay\",\n\t\"onCanPlayCapture\",\n\t\"onCanPlayThrough\",\n\t\"onCanPlayThroughCapture\",\n\t\"onDurationChange\",\n\t\"onDurationChangeCapture\",\n\t\"onEmptied\",\n\t\"onEmptiedCapture\",\n\t\"onEncrypted\",\n\t\"onEncryptedCapture\",\n\t\"onEnded\",\n\t\"onEndedCapture\",\n\t\"onLoadedData\",\n\t\"onLoadedDataCapture\",\n\t\"onLoadedMetadata\",\n\t\"onLoadedMetadataCapture\",\n\t\"onLoadStart\",\n\t\"onLoadStartCapture\",\n\t\"onPause\",\n\t\"onPauseCapture\",\n\t\"onPlay\",\n\t\"onPlayCapture\",\n\t\"onPlaying\",\n\t\"onPlayingCapture\",\n\t\"onProgress\",\n\t\"onProgressCapture\",\n\t\"onRateChange\",\n\t\"onRateChangeCapture\",\n\t\"onResize\",\n\t\"onResizeCapture\",\n\t\"onSeeked\",\n\t\"onSeekedCapture\",\n\t\"onSeeking\",\n\t\"onSeekingCapture\",\n\t\"onStalled\",\n\t\"onStalledCapture\",\n\t\"onSuspend\",\n\t\"onSuspendCapture\",\n\t\"onTimeUpdate\",\n\t\"onTimeUpdateCapture\",\n\t\"onVolumeChange\",\n\t\"onVolumeChangeCapture\",\n\t\"onWaiting\",\n\t\"onWaitingCapture\",\n\t\"onAuxClick\",\n\t\"onAuxClickCapture\",\n\t\"onClick\",\n\t\"onClickCapture\",\n\t\"onContextMenu\",\n\t\"onContextMenuCapture\",\n\t\"onDoubleClick\",\n\t\"onDoubleClickCapture\",\n\t\"onDrag\",\n\t\"onDragCapture\",\n\t\"onDragEnd\",\n\t\"onDragEndCapture\",\n\t\"onDragEnter\",\n\t\"onDragEnterCapture\",\n\t\"onDragExit\",\n\t\"onDragExitCapture\",\n\t\"onDragLeave\",\n\t\"onDragLeaveCapture\",\n\t\"onDragOver\",\n\t\"onDragOverCapture\",\n\t\"onDragStart\",\n\t\"onDragStartCapture\",\n\t\"onDrop\",\n\t\"onDropCapture\",\n\t\"onMouseDown\",\n\t\"onMouseDownCapture\",\n\t\"onMouseEnter\",\n\t\"onMouseLeave\",\n\t\"onMouseMove\",\n\t\"onMouseMoveCapture\",\n\t\"onMouseOut\",\n\t\"onMouseOutCapture\",\n\t\"onMouseOver\",\n\t\"onMouseOverCapture\",\n\t\"onMouseUp\",\n\t\"onMouseUpCapture\",\n\t\"onSelect\",\n\t\"onSelectCapture\",\n\t\"onTouchCancel\",\n\t\"onTouchCancelCapture\",\n\t\"onTouchEnd\",\n\t\"onTouchEndCapture\",\n\t\"onTouchMove\",\n\t\"onTouchMoveCapture\",\n\t\"onTouchStart\",\n\t\"onTouchStartCapture\",\n\t\"onPointerDown\",\n\t\"onPointerDownCapture\",\n\t\"onPointerMove\",\n\t\"onPointerMoveCapture\",\n\t\"onPointerUp\",\n\t\"onPointerUpCapture\",\n\t\"onPointerCancel\",\n\t\"onPointerCancelCapture\",\n\t\"onPointerEnter\",\n\t\"onPointerEnterCapture\",\n\t\"onPointerLeave\",\n\t\"onPointerLeaveCapture\",\n\t\"onPointerOver\",\n\t\"onPointerOverCapture\",\n\t\"onPointerOut\",\n\t\"onPointerOutCapture\",\n\t\"onGotPointerCapture\",\n\t\"onGotPointerCaptureCapture\",\n\t\"onLostPointerCapture\",\n\t\"onLostPointerCaptureCapture\",\n\t\"onScroll\",\n\t\"onScrollCapture\",\n\t\"onWheel\",\n\t\"onWheelCapture\",\n\t\"onAnimationStart\",\n\t\"onAnimationStartCapture\",\n\t\"onAnimationEnd\",\n\t\"onAnimationEndCapture\",\n\t\"onAnimationIteration\",\n\t\"onAnimationIterationCapture\",\n\t\"onTransitionEnd\",\n\t\"onTransitionEndCapture\"\n]);\n/**\n* Check if a prop name is a React event handler\n*/\nfunction isReactEventHandler(name) {\n\treturn REACT_EVENT_HANDLERS.has(name);\n}\n/**\n* Check if a hook name is client-only (not allowed in server components)\n*/\nfunction isClientOnlyHook(name, allowedHooks = DEFAULT_ALLOWED_HOOKS) {\n\tif (!/^use[A-Z]/.test(name)) return false;\n\tif (allowedHooks.has(name)) return false;\n\treturn true;\n}\n//#endregion\nexport { BROWSER_ONLY_GLOBALS, DEFAULT_ALLOWED_HOOKS, isClientOnlyHook, isReactEventHandler };\n\n//# sourceMappingURL=constants.js.map","import { BROWSER_ONLY_GLOBALS, DEFAULT_ALLOWED_HOOKS, isClientOnlyHook, isReactEventHandler } from \"./constants.js\";\n//#region src/rules/no-client-code-in-server-component/violation-detector.ts\n/**\n* Get line and column position for a node\n*/\nfunction getPosition(node, sourceFile) {\n\tconst { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n\treturn {\n\t\tline: line + 1,\n\t\tcolumn: character + 1\n\t};\n}\n/**\n* Creates a detector that finds client-only code violations in TypeScript AST\n*/\nfunction createViolationDetector(tsLib, options = {}) {\n\tconst allowedHooks = options.allowedHooks ?? DEFAULT_ALLOWED_HOOKS;\n\tconst checker = options.checker;\n\t/**\n\t* Check if a class declaration extends React.Component or React.PureComponent\n\t*/\n\tfunction isReactClassComponent(node) {\n\t\tif (!node.heritageClauses) return false;\n\t\tfor (const clause of node.heritageClauses) {\n\t\t\tif (clause.token !== tsLib.SyntaxKind.ExtendsKeyword) continue;\n\t\t\tfor (const type of clause.types) {\n\t\t\t\tconst expr = type.expression;\n\t\t\t\tif (tsLib.isPropertyAccessExpression(expr)) {\n\t\t\t\t\tconst propName = expr.name.text;\n\t\t\t\t\tif (propName === \"Component\" || propName === \"PureComponent\") {\n\t\t\t\t\t\tif (tsLib.isIdentifier(expr.expression)) {\n\t\t\t\t\t\t\tif (expr.expression.text === \"React\") return true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (tsLib.isIdentifier(expr)) {\n\t\t\t\t\tconst name = expr.text;\n\t\t\t\t\tif (name === \"Component\" || name === \"PureComponent\") return true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\t/**\n\t* Shared visitor logic that collects violations into the provided array\n\t*/\n\tfunction visitNode(node, sourceFile, violations) {\n\t\tif (tsLib.isClassDeclaration(node) && isReactClassComponent(node)) {\n\t\t\tconst name = node.name?.text ?? \"ClassComponent\";\n\t\t\tviolations.push({\n\t\t\t\ttype: \"class-component\",\n\t\t\t\tname,\n\t\t\t\tnode,\n\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t});\n\t\t}\n\t\tif (tsLib.isCallExpression(node)) {\n\t\t\tconst callee = node.expression;\n\t\t\tlet name = \"\";\n\t\t\tif (tsLib.isIdentifier(callee)) name = callee.text;\n\t\t\telse if (tsLib.isPropertyAccessExpression(callee)) name = callee.name.text;\n\t\t\tif (name && isClientOnlyHook(name, allowedHooks)) violations.push({\n\t\t\t\ttype: \"hook\",\n\t\t\t\tname,\n\t\t\t\tnode,\n\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t});\n\t\t}\n\t\tif (tsLib.isIdentifier(node)) {\n\t\t\tconst name = node.text;\n\t\t\tif (BROWSER_ONLY_GLOBALS.has(name)) {\n\t\t\t\tconst parent = node.parent;\n\t\t\t\tif (tsLib.isPropertyAccessExpression(parent) && parent.name === node) {} else if (tsLib.isPropertyAssignment(parent) && parent.name === node) {} else if (tsLib.isTypeReferenceNode(parent) || tsLib.isInterfaceDeclaration(parent) || tsLib.isTypeAliasDeclaration(parent)) {} else if (tsLib.isParameter(parent) && parent.name === node || tsLib.isVariableDeclaration(parent) && parent.name === node) {} else if (tsLib.isImportSpecifier(parent) || tsLib.isImportClause(parent)) {} else if (checker) {\n\t\t\t\t\tconst symbol = checker.getSymbolAtLocation(node);\n\t\t\t\t\tif (symbol) {\n\t\t\t\t\t\tconst declarations = symbol.getDeclarations();\n\t\t\t\t\t\tif (declarations?.length) if (declarations.some((decl) => {\n\t\t\t\t\t\t\tconst fileName = decl.getSourceFile().fileName;\n\t\t\t\t\t\t\treturn !fileName.includes(\"/node_modules/\") && !fileName.includes(\"/typescript/lib/\");\n\t\t\t\t\t\t})) {} else violations.push({\n\t\t\t\t\t\t\ttype: \"browser-global\",\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t\t\t\t});\n\t\t\t\t\t\telse violations.push({\n\t\t\t\t\t\t\ttype: \"browser-global\",\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t\t\t\t});\n\t\t\t\t\t} else violations.push({\n\t\t\t\t\t\ttype: \"browser-global\",\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t\t\t});\n\t\t\t\t} else violations.push({\n\t\t\t\t\ttype: \"browser-global\",\n\t\t\t\t\tname,\n\t\t\t\t\tnode,\n\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (tsLib.isJsxAttribute(node)) {\n\t\t\tconst attrName = node.name;\n\t\t\tif (tsLib.isIdentifier(attrName)) {\n\t\t\t\tconst name = attrName.text;\n\t\t\t\tconst value = node.initializer;\n\t\t\t\tif (isReactEventHandler(name)) violations.push({\n\t\t\t\t\ttype: \"event-handler\",\n\t\t\t\t\tname,\n\t\t\t\t\tnode,\n\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t\t});\n\t\t\t\telse if (name !== \"style\" && name !== \"className\" && name !== \"key\" && name !== \"ref\" && name !== \"dangerouslySetInnerHTML\" && value && tsLib.isJsxExpression(value) && value.expression) {\n\t\t\t\t\tconst expr = value.expression;\n\t\t\t\t\tif (tsLib.isArrowFunction(expr) || tsLib.isFunctionExpression(expr)) violations.push({\n\t\t\t\t\t\ttype: \"function-prop\",\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ttsLib.forEachChild(node, (child) => visitNode(child, sourceFile, violations));\n\t}\n\tfunction detectViolations(sourceFile) {\n\t\tconst violations = [];\n\t\ttsLib.forEachChild(sourceFile, (child) => visitNode(child, sourceFile, violations));\n\t\treturn violations;\n\t}\n\tfunction detectViolationsInNode(node, sourceFile) {\n\t\tconst violations = [];\n\t\tvisitNode(node, sourceFile, violations);\n\t\treturn violations;\n\t}\n\treturn {\n\t\tdetectViolations,\n\t\tdetectViolationsInNode\n\t};\n}\n//#endregion\nexport { createViolationDetector };\n\n//# sourceMappingURL=violation-detector.js.map","//#region src/rules/no-client-code-in-server-component/transitive-analyzer.ts\n/**\n* Creates an analyzer that follows reachable symbol references\n* to find transitive violations, stopping at 'use client' boundaries.\n*/\nfunction createTransitiveAnalyzer(tsLib, program, checker, useClientResolver, violationDetector) {\n\tconst visitedSymbols = /* @__PURE__ */ new Set();\n\tconst analysisCache = /* @__PURE__ */ new Map();\n\tfunction symbolKey(symbol) {\n\t\treturn `${(symbol.getDeclarations()?.[0])?.getSourceFile().fileName ?? \"unknown\"}::${symbol.getName()}`;\n\t}\n\tfunction analyzeEntrySymbol(entrySymbol) {\n\t\tvisitedSymbols.clear();\n\t\tconst cached = analysisCache.get(symbolKey(entrySymbol));\n\t\tif (cached) return cached;\n\t\tconst violations = [];\n\t\tfunction visitSymbol(symbol, chain) {\n\t\t\tconst key = symbolKey(symbol);\n\t\t\tif (visitedSymbols.has(key)) return false;\n\t\t\tvisitedSymbols.add(key);\n\t\t\tconst decl = symbol.getDeclarations()?.[0];\n\t\t\tif (!decl) return false;\n\t\t\tconst sourceFile = decl.getSourceFile();\n\t\t\tconst fileName = sourceFile.fileName;\n\t\t\tif (fileName.includes(\"/node_modules/\") || fileName.endsWith(\".d.ts\")) return false;\n\t\t\tif (useClientResolver.hasUseClientDirective(fileName)) return true;\n\t\t\tconst traversalRoots = getTraversalRoots(decl);\n\t\t\tfor (const root of traversalRoots) {\n\t\t\t\tconst rootViolations = violationDetector.detectViolationsInNode(root, sourceFile);\n\t\t\t\tfor (const v of rootViolations) violations.push({\n\t\t\t\t\t...v,\n\t\t\t\t\tchain: [...chain]\n\t\t\t\t});\n\t\t\t}\n\t\t\tfor (const root of traversalRoots) {\n\t\t\t\tconst identifiers = collectReachableIdentifiers(root, decl);\n\t\t\t\tfor (const ident of identifiers) {\n\t\t\t\t\tconst refSym = checker.getSymbolAtLocation(ident);\n\t\t\t\t\tif (!refSym) continue;\n\t\t\t\t\tconst aliased = tsLib.SymbolFlags.Alias & refSym.flags ? checker.getAliasedSymbol(refSym) : refSym;\n\t\t\t\t\tconst refFile = (aliased.getDeclarations()?.[0])?.getSourceFile().fileName;\n\t\t\t\t\tif (!refFile) continue;\n\t\t\t\t\tif (refFile.includes(\"/node_modules/\") || refFile.endsWith(\".d.ts\")) continue;\n\t\t\t\t\tconst edge = {\n\t\t\t\t\t\tfromFile: fileName,\n\t\t\t\t\t\ttoFile: refFile,\n\t\t\t\t\t\tviaSymbol: aliased.getName()\n\t\t\t\t\t};\n\t\t\t\t\tvisitSymbol(aliased, [...chain, edge]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\t/**\n\t\t* Get traversal roots based on declaration kind\n\t\t*/\n\t\tfunction getTraversalRoots(decl) {\n\t\t\tif (tsLib.isFunctionDeclaration(decl) && decl.body) return [decl.body];\n\t\t\tif (tsLib.isFunctionExpression(decl)) return [decl.body];\n\t\t\tif (tsLib.isArrowFunction(decl)) return [decl.body];\n\t\t\tif (tsLib.isVariableDeclaration(decl) && decl.initializer) {\n\t\t\t\tif (tsLib.isFunctionExpression(decl.initializer) || tsLib.isArrowFunction(decl.initializer)) return [decl.initializer.body];\n\t\t\t\treturn [decl.initializer];\n\t\t\t}\n\t\t\tif (tsLib.isClassDeclaration(decl) || tsLib.isClassExpression(decl)) {\n\t\t\t\tconst roots = [];\n\t\t\t\tfor (const member of decl.members) {\n\t\t\t\t\tif (tsLib.isMethodDeclaration(member) && member.body) roots.push(member.body);\n\t\t\t\t\tif (tsLib.isPropertyDeclaration(member) && member.initializer) roots.push(member.initializer);\n\t\t\t\t}\n\t\t\t\treturn roots;\n\t\t\t}\n\t\t\treturn [decl];\n\t\t}\n\t\t/**\n\t\t* Collect identifier nodes from a traversal root, skipping:\n\t\t* - The defining identifier for the symbol (avoid self-loop)\n\t\t* - Type-only positions\n\t\t* - Property names when not computed\n\t\t*/\n\t\tfunction collectReachableIdentifiers(root, originalDecl) {\n\t\t\tconst identifiers = [];\n\t\t\tlet declName;\n\t\t\tif (\"name\" in originalDecl && originalDecl.name) {\n\t\t\t\tconst nameNode = originalDecl.name;\n\t\t\t\tif (tsLib.isIdentifier(nameNode)) declName = nameNode.text;\n\t\t\t}\n\t\t\tfunction visit(node) {\n\t\t\t\tif (tsLib.isTypeReferenceNode(node) || tsLib.isInterfaceDeclaration(node) || tsLib.isTypeAliasDeclaration(node) || tsLib.isTypeQueryNode(node) || tsLib.isTypeParameterDeclaration(node)) return;\n\t\t\t\tif (tsLib.isIdentifier(node)) {\n\t\t\t\t\tif (node.text === declName) return;\n\t\t\t\t\tconst parent = node.parent;\n\t\t\t\t\tif (tsLib.isPropertyAccessExpression(parent) && parent.name === node) return;\n\t\t\t\t\tif (tsLib.isPropertyAssignment(parent) && parent.name === node) return;\n\t\t\t\t\tif (tsLib.isParameter(parent) && parent.name === node || tsLib.isVariableDeclaration(parent) && parent.name === node) return;\n\t\t\t\t\tidentifiers.push(node);\n\t\t\t\t}\n\t\t\t\ttsLib.forEachChild(node, visit);\n\t\t\t}\n\t\t\tvisit(root);\n\t\t\treturn identifiers;\n\t\t}\n\t\tconst result = {\n\t\t\tisClientBoundary: visitSymbol(entrySymbol, []),\n\t\t\tviolations\n\t\t};\n\t\tanalysisCache.set(symbolKey(entrySymbol), result);\n\t\treturn result;\n\t}\n\treturn { analyzeEntrySymbol };\n}\n//#endregion\nexport { createTransitiveAnalyzer };\n\n//# sourceMappingURL=transitive-analyzer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isObjectNotArray = isObjectNotArray;\nexports.deepMerge = deepMerge;\n/**\n * Check if the variable contains an object strictly rejecting arrays\n * @returns `true` if obj is an object\n */\nfunction isObjectNotArray(obj) {\n return typeof obj === 'object' && obj != null && !Array.isArray(obj);\n}\n/**\n * Pure function - doesn't mutate either parameter!\n * Merges two objects together deeply, overwriting the properties in first with the properties in second\n * @param first The first object\n * @param second The second object\n * @returns a new object\n */\nfunction deepMerge(first = {}, second = {}) {\n // get the unique set of keys across both objects\n const keys = new Set([...Object.keys(first), ...Object.keys(second)]);\n return Object.fromEntries([...keys].map(key => {\n const firstHasKey = key in first;\n const secondHasKey = key in second;\n const firstValue = first[key];\n const secondValue = second[key];\n let value;\n if (firstHasKey && secondHasKey) {\n if (isObjectNotArray(firstValue) && isObjectNotArray(secondValue)) {\n // object type\n value = deepMerge(firstValue, secondValue);\n }\n else {\n // value type\n value = secondValue;\n }\n }\n else if (firstHasKey) {\n value = firstValue;\n }\n else {\n value = secondValue;\n }\n return [key, value];\n }));\n}\n//# sourceMappingURL=deepMerge.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.applyDefault = applyDefault;\nconst deepMerge_1 = require(\"./deepMerge\");\n/**\n * Pure function - doesn't mutate either parameter!\n * Uses the default options and overrides with the options provided by the user\n * @param defaultOptions the defaults\n * @param userOptions the user opts\n * @returns the options with defaults\n */\nfunction applyDefault(defaultOptions, userOptions) {\n // clone defaults\n const options = structuredClone(defaultOptions);\n if (userOptions == null) {\n return options;\n }\n // For avoiding the type error\n // `This expression is not callable. Type 'unknown' has no call signatures.ts(2349)`\n options.forEach((opt, i) => {\n // eslint-disable-next-line @typescript-eslint/internal/eqeq-nullish\n if (userOptions[i] !== undefined) {\n const userOpt = userOptions[i];\n if ((0, deepMerge_1.isObjectNotArray)(userOpt) && (0, deepMerge_1.isObjectNotArray)(opt)) {\n options[i] = (0, deepMerge_1.deepMerge)(opt, userOpt);\n }\n else {\n options[i] = userOpt;\n }\n }\n });\n return options;\n}\n//# sourceMappingURL=applyDefault.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parserSeemsToBeTSESLint = parserSeemsToBeTSESLint;\nfunction parserSeemsToBeTSESLint(parser) {\n return !!parser && /(?:typescript-eslint|\\.\\.)[\\w/\\\\]*parser/.test(parser);\n}\n//# sourceMappingURL=parserSeemsToBeTSESLint.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getParserServices = getParserServices;\nconst parserSeemsToBeTSESLint_1 = require(\"./parserSeemsToBeTSESLint\");\nconst ERROR_MESSAGE_REQUIRES_PARSER_SERVICES = \"You have used a rule which requires type information, but don't have parserOptions set to generate type information for this file. See https://tseslint.com/typed-linting for enabling linting with type information.\";\nconst ERROR_MESSAGE_UNKNOWN_PARSER = 'Note: detected a parser other than @typescript-eslint/parser. Make sure the parser is configured to forward \"parserOptions.project\" to @typescript-eslint/parser.';\nfunction getParserServices(context, allowWithoutFullTypeInformation = false) {\n const parser = \n // eslint-disable-next-line @typescript-eslint/no-deprecated -- For compatibility with ESLint 8\n context.parserPath || context.languageOptions.parser?.meta?.name;\n // This check is unnecessary if the user is using the latest version of our parser.\n //\n // However the world isn't perfect:\n // - Users often use old parser versions.\n // Old versions of the parser would not return any parserServices unless parserOptions.project was set.\n // - Users sometimes use parsers that aren't @typescript-eslint/parser\n // Other parsers won't return the parser services we expect (if they return any at all).\n //\n // This check allows us to handle bad user setups whilst providing a nice user-facing\n // error message explaining the problem.\n if (context.sourceCode.parserServices?.esTreeNodeToTSNodeMap == null ||\n context.sourceCode.parserServices.tsNodeToESTreeNodeMap == null) {\n throwError(parser);\n }\n // if a rule requires full type information, then hard fail if it doesn't exist\n // this forces the user to supply parserOptions.project\n if (context.sourceCode.parserServices.program == null &&\n !allowWithoutFullTypeInformation) {\n throwError(parser);\n }\n return context.sourceCode.parserServices;\n}\n/* eslint-enable @typescript-eslint/unified-signatures */\nfunction throwError(parser) {\n const messages = [\n ERROR_MESSAGE_REQUIRES_PARSER_SERVICES,\n `Parser: ${parser || '(unknown)'}`,\n !(0, parserSeemsToBeTSESLint_1.parserSeemsToBeTSESLint)(parser) && ERROR_MESSAGE_UNKNOWN_PARSER,\n ].filter(Boolean);\n throw new Error(messages.join('\\n'));\n}\n//# sourceMappingURL=getParserServices.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=InferTypesFromRule.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NullThrowsReasons = void 0;\nexports.nullThrows = nullThrows;\n/**\n * A set of common reasons for calling nullThrows\n */\nexports.NullThrowsReasons = {\n MissingParent: 'Expected node to have a parent.',\n MissingToken: (token, thing) => `Expected to find a ${token} for the ${thing}.`,\n};\n/**\n * Assert that a value must not be null or undefined.\n * This is a nice explicit alternative to the non-null assertion operator.\n */\nfunction nullThrows(value, message) {\n if (value == null) {\n throw new Error(`Non-null Assertion Failed: ${message}`);\n }\n return value;\n}\n//# sourceMappingURL=nullThrows.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RuleCreator = RuleCreator;\nconst applyDefault_1 = require(\"./applyDefault\");\n/**\n * Creates reusable function to create rules with default options and docs URLs.\n *\n * @param urlCreator Creates a documentation URL for a given rule name.\n * @returns Function to create a rule with the docs URL format.\n */\nfunction RuleCreator(urlCreator) {\n // This function will get much easier to call when this is merged https://github.com/Microsoft/TypeScript/pull/26349\n // TODO - when the above PR lands; add type checking for the context.report `data` property\n return function createNamedRule({ meta, name, ...rule }) {\n const ruleWithDocs = createRule({\n meta: {\n ...meta,\n docs: {\n ...meta.docs,\n url: urlCreator(name),\n },\n },\n name,\n ...rule,\n });\n return ruleWithDocs;\n };\n}\nfunction createRule({ create, \n// Keep accepting deprecated defaultOptions for backward compatibility.\n// eslint-disable-next-line @typescript-eslint/no-deprecated\ndefaultOptions, meta, name, }) {\n const resolvedDefaultOptions = (meta.defaultOptions ??\n defaultOptions ??\n []);\n return {\n create(context) {\n const optionsWithDefault = (0, applyDefault_1.applyDefault)(resolvedDefaultOptions, context.options);\n return create(context, optionsWithDefault);\n },\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- For compatibility with ESLint 8, see #12842\n defaultOptions,\n meta,\n name,\n };\n}\n/**\n * Creates a well-typed TSESLint custom ESLint rule without a docs URL.\n *\n * @returns Well-typed TSESLint custom ESLint rule.\n * @remarks It is generally better to provide a docs URL function to RuleCreator.\n */\nRuleCreator.withoutDocs = function withoutDocs(args) {\n return createRule(args);\n};\n//# sourceMappingURL=RuleCreator.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./applyDefault\"), exports);\n__exportStar(require(\"./deepMerge\"), exports);\n__exportStar(require(\"./getParserServices\"), exports);\n__exportStar(require(\"./InferTypesFromRule\"), exports);\n__exportStar(require(\"./nullThrows\"), exports);\n__exportStar(require(\"./RuleCreator\"), exports);\n//# sourceMappingURL=index.js.map","export * as ESLintUtils from \"@typescript-eslint/utils/eslint-utils\";\n","import { getDocsUrl } from \"../../utils/get-docs-url.js\";\nimport { createUseClientResolver } from \"../../shared/use-client-resolver.js\";\nimport { DEFAULT_ALLOWED_HOOKS } from \"./constants.js\";\nimport { createViolationDetector } from \"./violation-detector.js\";\nimport { createTransitiveAnalyzer } from \"./transitive-analyzer.js\";\nimport path from \"node:path\";\nimport { ESLintUtils } from \"@typescript-eslint/utils\";\nimport * as ts from \"typescript\";\n//#region src/rules/no-client-code-in-server-component/no-client-code-in-server-component.rule.ts\nvar name = \"no-client-code-in-server-component\";\nvar TRIGGER_HINT = \"Triggered by rendering \\\"{{entry}}\\\".\";\nvar rule = ESLintUtils.RuleCreator(getDocsUrl)({\n\tname,\n\tmeta: {\n\t\ttype: \"problem\",\n\t\tdocs: {\n\t\t\tdescription: \"Disallow client-only code inside server components\",\n\t\t\trecommended: \"error\"\n\t\t},\n\t\tschema: [{\n\t\t\ttype: \"object\",\n\t\t\tproperties: { allowedServerHooks: {\n\t\t\t\ttype: \"array\",\n\t\t\t\titems: { type: \"string\" },\n\t\t\t\tdescription: \"Additional hooks that are allowed in server components (e.g., custom server-safe hooks)\"\n\t\t\t} },\n\t\t\tadditionalProperties: false\n\t\t}],\n\t\tmessages: {\n\t\t\thookInServerComponent: \"\\\"{{name}}\\\" hook {{location}} cannot be used in server components. \" + TRIGGER_HINT + \" To use client functionality, either: (1) pass the client component as a prop/slot to the server component, or (2) move this code to a separate file and add \\\"use client\\\" directive.\",\n\t\t\tbrowserGlobalInServerComponent: \"\\\"{{name}}\\\" browser API {{location}} is not available in server components. \" + TRIGGER_HINT + \" To use client functionality, either: (1) pass the client component as a prop/slot to the server component, or (2) move this code to a separate file and add \\\"use client\\\" directive.\",\n\t\t\teventHandlerInServerComponent: \"\\\"{{name}}\\\" event handler {{location}} cannot be used in server components. \" + TRIGGER_HINT + \" To use client functionality, either: (1) pass the client component as a prop/slot to the server component, or (2) move this code to a separate file and add \\\"use client\\\" directive.\",\n\t\t\tfunctionPropInServerComponent: \"\\\"{{name}}\\\" function prop {{location}} cannot be passed in server components. Functions cannot be serialized from server to client. \" + TRIGGER_HINT + \" To use client functionality, either: (1) pass the client component as a prop/slot to the server component, or (2) move this code to a separate file and add \\\"use client\\\" directive.\",\n\t\t\tclassComponentInServerComponent: \"\\\"{{name}}\\\" class component {{location}} cannot be used in server components. Class components require client-side lifecycle methods. \" + TRIGGER_HINT + \" To use client functionality, either: (1) pass the client component as a prop/slot to the server component, or (2) move this code to a separate file and add \\\"use client\\\" directive.\"\n\t\t}\n\t},\n\tdefaultOptions: [{ allowedServerHooks: [] }],\n\tcreate(context, [options]) {\n\t\tconst services = ESLintUtils.getParserServices(context);\n\t\tconst program = services.program;\n\t\tconst checker = program.getTypeChecker();\n\t\tconst allowedHooks = new Set([...DEFAULT_ALLOWED_HOOKS, ...options.allowedServerHooks]);\n\t\tconst useClientResolver = createUseClientResolver(program);\n\t\tconst violationDetector = createViolationDetector(ts, {\n\t\t\tallowedHooks,\n\t\t\tchecker\n\t\t});\n\t\tconst transitiveAnalyzer = createTransitiveAnalyzer(ts, program, checker, useClientResolver, violationDetector);\n\t\treturn { CallExpression(node) {\n\t\t\tconst sourceFile = services.esTreeNodeToTSNodeMap.get(node).getSourceFile();\n\t\t\tif (useClientResolver.hasUseClientDirective(sourceFile.fileName)) return;\n\t\t\tconst rootKind = getServerRootKind(node);\n\t\t\tif (!rootKind) return;\n\t\t\tif (rootKind === \"createCompositeComponent\") {\n\t\t\t\tconst callback = node.arguments[0];\n\t\t\t\tif (!callback) return;\n\t\t\t\tconst tsNode = services.esTreeNodeToTSNodeMap.get(callback);\n\t\t\t\tif (ts.isFunctionLike(tsNode)) analyzeServerComponentCallback(tsNode, node, rootKind);\n\t\t\t\telse if (ts.isIdentifier(tsNode)) analyzeDirectComponentReference(tsNode, node, rootKind);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst element = node.arguments[0];\n\t\t\tif (!element) return;\n\t\t\tanalyzeServerComponentNode(services.esTreeNodeToTSNodeMap.get(element), node, rootKind);\n\t\t} };\n\t\tfunction getServerRootKind(node) {\n\t\t\tif (node.callee.type === \"Identifier\") {\n\t\t\t\tif (node.callee.name === \"createCompositeComponent\") return \"createCompositeComponent\";\n\t\t\t\tif (node.callee.name === \"renderServerComponent\") return \"renderServerComponent\";\n\t\t\t}\n\t\t\tif (node.callee.type === \"MemberExpression\" && node.callee.property.type === \"Identifier\") {\n\t\t\t\tif (node.callee.property.name === \"createCompositeComponent\") return \"createCompositeComponent\";\n\t\t\t\tif (node.callee.property.name === \"renderServerComponent\") return \"renderServerComponent\";\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tfunction analyzeServerComponentNode(node, eslintNode, rootKind) {\n\t\t\tconst reportedViolations = /* @__PURE__ */ new Set();\n\t\t\tconst sourceFile = node.getSourceFile();\n\t\t\tconst directViolations = violationDetector.detectViolations(sourceFile);\n\t\t\tconst start = node.getStart();\n\t\t\tconst end = node.getEnd();\n\t\t\tfor (const violation of directViolations) {\n\t\t\t\tconst violationPos = violation.node.getStart();\n\t\t\t\tif (violationPos >= start && violationPos <= end) {\n\t\t\t\t\tconst key = `${violation.fileName}:${violation.line}:${violation.name}`;\n\t\t\t\t\tif (!reportedViolations.has(key)) {\n\t\t\t\t\t\treportedViolations.add(key);\n\t\t\t\t\t\treportViolation(violation, [], rootKind, eslintNode);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst componentRefs = findComponentReferences(node);\n\t\t\tfor (const ref of componentRefs) {\n\t\t\t\tconst symbol = checker.getSymbolAtLocation(ref);\n\t\t\t\tif (!symbol) continue;\n\t\t\t\tconst resolvedSymbol = ts.SymbolFlags.Alias & symbol.flags ? checker.getAliasedSymbol(symbol) : symbol;\n\t\t\t\tconst result = transitiveAnalyzer.analyzeEntrySymbol(resolvedSymbol);\n\t\t\t\tif (result.isClientBoundary) continue;\n\t\t\t\tfor (const violation of result.violations) {\n\t\t\t\t\tconst key = `${violation.fileName}:${violation.line}:${violation.name}`;\n\t\t\t\t\tif (!reportedViolations.has(key)) {\n\t\t\t\t\t\treportedViolations.add(key);\n\t\t\t\t\t\treportViolation(violation, violation.chain, rootKind, eslintNode);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfunction analyzeServerComponentCallback(callback, eslintNode, rootKind) {\n\t\t\tconst reportedViolations = /* @__PURE__ */ new Set();\n\t\t\tconst parameterNames = /* @__PURE__ */ new Set();\n\t\t\tfor (const param of callback.parameters) collectParameterBindings(param.name, parameterNames);\n\t\t\tconst body = callback.body;\n\t\t\tif (body) {\n\t\t\t\tconst sourceFile = callback.getSourceFile();\n\t\t\t\tconst directViolations = violationDetector.detectViolations(sourceFile);\n\t\t\t\tconst callbackStart = body.getStart();\n\t\t\t\tconst callbackEnd = body.getEnd();\n\t\t\t\tfor (const violation of directViolations) {\n\t\t\t\t\tconst violationPos = violation.node.getStart();\n\t\t\t\t\tif (violationPos >= callbackStart && violationPos <= callbackEnd) {\n\t\t\t\t\t\tconst key = `${violation.fileName}:${violation.line}:${violation.name}`;\n\t\t\t\t\t\tif (!reportedViolations.has(key)) {\n\t\t\t\t\t\t\treportedViolations.add(key);\n\t\t\t\t\t\t\treportViolation(violation, [], rootKind, eslintNode);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst componentRefs = findComponentReferences(callback);\n\t\t\tfor (const ref of componentRefs) {\n\t\t\t\tif (parameterNames.has(ref.text)) continue;\n\t\t\t\tconst symbol = checker.getSymbolAtLocation(ref);\n\t\t\t\tif (!symbol) continue;\n\t\t\t\tif (symbol.getDeclarations()?.some((d) => isWithinParameters(d, callback))) continue;\n\t\t\t\tconst resolvedSymbol = ts.SymbolFlags.Alias & symbol.flags ? checker.getAliasedSymbol(symbol) : symbol;\n\t\t\t\tconst result = transitiveAnalyzer.analyzeEntrySymbol(resolvedSymbol);\n\t\t\t\tif (result.isClientBoundary) continue;\n\t\t\t\tfor (const violation of result.violations) {\n\t\t\t\t\tconst key = `${violation.fileName}:${violation.line}:${violation.name}`;\n\t\t\t\t\tif (!reportedViolations.has(key)) {\n\t\t\t\t\t\treportedViolations.add(key);\n\t\t\t\t\t\treportViolation(violation, violation.chain, rootKind, eslintNode);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t/**\n\t\t* Analyze a component passed directly to createCompositeComponent(Component)\n\t\t*/\n\t\tfunction analyzeDirectComponentReference(ref, eslintNode, rootKind = \"createCompositeComponent\") {\n\t\t\tconst symbol = checker.getSymbolAtLocation(ref);\n\t\t\tif (!symbol) return;\n\t\t\tconst resolvedSymbol = ts.SymbolFlags.Alias & symbol.flags ? checker.getAliasedSymbol(symbol) : symbol;\n\t\t\tconst result = transitiveAnalyzer.analyzeEntrySymbol(resolvedSymbol);\n\t\t\tif (result.isClientBoundary) return;\n\t\t\tconst reportedViolations = /* @__PURE__ */ new Set();\n\t\t\tfor (const violation of result.violations) {\n\t\t\t\tconst key = `${violation.fileName}:${violation.line}:${violation.name}`;\n\t\t\t\tif (!reportedViolations.has(key)) {\n\t\t\t\t\treportedViolations.add(key);\n\t\t\t\t\treportViolation(violation, violation.chain, rootKind, eslintNode);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t/**\n\t\t* Collect all binding names from a parameter (handles destructuring)\n\t\t*/\n\t\tfunction collectParameterBindings(bindingName, names) {\n\t\t\tfunction collectFromBinding(node) {\n\t\t\t\tif (ts.isIdentifier(node)) names.add(node.text);\n\t\t\t\telse if (ts.isObjectBindingPattern(node)) for (const element of node.elements) collectFromBinding(element.name);\n\t\t\t\telse if (ts.isArrayBindingPattern(node)) {\n\t\t\t\t\tfor (const element of node.elements) if (ts.isBindingElement(element)) collectFromBinding(element.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcollectFromBinding(bindingName);\n\t\t}\n\t\t/**\n\t\t* Check if a declaration is within the parameters of the callback\n\t\t*/\n\t\tfunction isWithinParameters(decl, callback) {\n\t\t\tlet current = decl;\n\t\t\twhile (current) {\n\t\t\t\tif (ts.isParameter(current)) {\n\t\t\t\t\tconst paramParent = current.parent;\n\t\t\t\t\tif (ts.isFunctionLike(paramParent) && paramParent === callback) return true;\n\t\t\t\t}\n\t\t\t\tcurrent = current.parent;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\tfunction findComponentReferences(node) {\n\t\t\tconst refs = [];\n\t\t\tfunction visit(n) {\n\t\t\t\tif (ts.isJsxOpeningElement(n) || ts.isJsxSelfClosingElement(n)) {\n\t\t\t\t\tconst tagName = n.tagName;\n\t\t\t\t\tif (ts.isIdentifier(tagName) && /^[A-Z]/.test(tagName.text)) refs.push(tagName);\n\t\t\t\t}\n\t\t\t\tif (ts.isCallExpression(n)) {\n\t\t\t\t\tconst callee = n.expression;\n\t\t\t\t\tif (ts.isIdentifier(callee) && /^[A-Z]/.test(callee.text)) refs.push(callee);\n\t\t\t\t}\n\t\t\t\tts.forEachChild(n, visit);\n\t\t\t}\n\t\t\tvisit(node);\n\t\t\treturn refs;\n\t\t}\n\t\tfunction reportViolation(violation, chain, entryComponentName, eslintNode) {\n\t\t\tconst location = formatLocation(violation, chain);\n\t\t\tconst messageId = getMessageId(violation.type);\n\t\t\tcontext.report({\n\t\t\t\tnode: eslintNode,\n\t\t\t\tmessageId,\n\t\t\t\tdata: {\n\t\t\t\t\tname: violation.name,\n\t\t\t\t\tlocation,\n\t\t\t\t\tentry: entryComponentName,\n\t\t\t\t\tfileName: getRelativePath(violation.fileName)\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tfunction getMessageId(type) {\n\t\t\tswitch (type) {\n\t\t\t\tcase \"hook\": return \"hookInServerComponent\";\n\t\t\t\tcase \"browser-global\": return \"browserGlobalInServerComponent\";\n\t\t\t\tcase \"event-handler\": return \"eventHandlerInServerComponent\";\n\t\t\t\tcase \"function-prop\": return \"functionPropInServerComponent\";\n\t\t\t\tcase \"class-component\": return \"classComponentInServerComponent\";\n\t\t\t}\n\t\t}\n\t\tfunction formatLocation(violation, chain) {\n\t\t\tif (chain.length > 0) return `(via ${chain.map((e) => getRelativePath(e.toFile)).join(\" -> \")}) at ${getRelativePath(violation.fileName)}:${violation.line}`;\n\t\t\treturn `at ${getRelativePath(violation.fileName)}:${violation.line}`;\n\t\t}\n\t\tfunction getRelativePath(fileName) {\n\t\t\tconst cwd = context.cwd;\n\t\t\treturn path.relative(cwd, fileName);\n\t\t}\n\t}\n});\n//#endregion\nexport { name, rule };\n\n//# sourceMappingURL=no-client-code-in-server-component.rule.js.map","//#region src/rules/no-async-client-component/constants.ts\n/**\n* Route option names that accept component references.\n* These make the referenced component a \"client root\".\n*/\nvar ROUTE_COMPONENT_OPTION_NAMES = [\n\t\"component\",\n\t\"pendingComponent\",\n\t\"errorComponent\",\n\t\"notFoundComponent\"\n];\n/**\n* Function names that create routes (client entry points).\n*/\nvar ROUTE_CREATOR_NAMES = [\n\t\"createFileRoute\",\n\t\"createRootRoute\",\n\t\"createRootRouteWithContext\"\n];\n/**\n* Function names that create server-component roots.\n*/\nvar SERVER_COMPONENT_ROOTS = [\"renderServerComponent\", \"createCompositeComponent\"];\n//#endregion\nexport { ROUTE_COMPONENT_OPTION_NAMES, ROUTE_CREATOR_NAMES, SERVER_COMPONENT_ROOTS };\n\n//# sourceMappingURL=constants.js.map","import { ROUTE_COMPONENT_OPTION_NAMES, ROUTE_CREATOR_NAMES, SERVER_COMPONENT_ROOTS } from \"./constants.js\";\n//#region src/rules/no-async-client-component/render-graph-builder.ts\n/**\n* Builds a render graph from the TypeScript program.\n* Indexes components, JSX edges, server roots, and client roots.\n*/\nfunction createRenderGraphBuilder(tsLib, program, checker) {\n\tconst graph = {\n\t\tcomponents: /* @__PURE__ */ new Map(),\n\t\tedges: [],\n\t\tserverRoots: /* @__PURE__ */ new Set(),\n\t\tclientRoots: /* @__PURE__ */ new Set(),\n\t\tuseClientFiles: /* @__PURE__ */ new Set(),\n\t\trouteOptionUsages: /* @__PURE__ */ new Map(),\n\t\trouteOptionRootsByFile: /* @__PURE__ */ new Map()\n\t};\n\treturn {\n\t\tbuild() {\n\t\t\tfor (const sourceFile of program.getSourceFiles()) {\n\t\t\t\tif (sourceFile.isDeclarationFile) continue;\n\t\t\t\tif (sourceFile.fileName.includes(\"node_modules\")) continue;\n\t\t\t\tif (!fileCanContribute(sourceFile)) continue;\n\t\t\t\tprocessSourceFile(sourceFile);\n\t\t\t}\n\t\t\treturn graph;\n\t\t},\n\t\tgetGraph() {\n\t\t\treturn graph;\n\t\t}\n\t};\n\t/**\n\t* Quick text-based check to skip files that can't contribute edges or roots.\n\t* A file can contribute if it might have:\n\t* - JSX (components, edges)\n\t* - 'use client' directive (client roots)\n\t* - createFileRoute/createRootRoute (route-option roots)\n\t* - renderServerComponent/createCompositeComponent (server roots)\n\t\n\t*/\n\tfunction fileCanContribute(sourceFile) {\n\t\tconst text = sourceFile.text;\n\t\tconst hasJsx = text.includes(\"<\") && (text.includes(\"/>\") || text.includes(\"</\"));\n\t\tconst hasUseClient = text.includes(\"use client\");\n\t\tconst hasRouteCreator = text.includes(\"createFileRoute\") || text.includes(\"createRootRoute\") || text.includes(\"createRootRouteWithContext\");\n\t\tconst hasServerComponentRoot = SERVER_COMPONENT_ROOTS.some((name) => text.includes(name));\n\t\treturn hasJsx || hasUseClient || hasRouteCreator || hasServerComponentRoot;\n\t}\n\tfunction processSourceFile(sourceFile) {\n\t\tif (hasUseClientDirective(sourceFile)) graph.useClientFiles.add(sourceFile.fileName);\n\t\tvisitNode(sourceFile, sourceFile, null);\n\t}\n\tfunction hasUseClientDirective(sourceFile) {\n\t\tconst firstStatement = sourceFile.statements[0];\n\t\tif (!firstStatement) return false;\n\t\tif (tsLib.isExpressionStatement(firstStatement) && tsLib.isStringLiteral(firstStatement.expression) && firstStatement.expression.text === \"use client\") return true;\n\t\treturn false;\n\t}\n\tfunction visitNode(node, sourceFile, currentComponent) {\n\t\tif (tsLib.isFunctionDeclaration(node) && node.name) {\n\t\t\tif (isPascalCase(node.name.text)) {\n\t\t\t\tconst key = makeKey(sourceFile.fileName, node.name.text);\n\t\t\t\tgraph.components.set(key, {\n\t\t\t\t\tname: node.name.text,\n\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\tnode,\n\t\t\t\t\tisAsync: hasAsyncModifier(node),\n\t\t\t\t\tline: getLine(sourceFile, node)\n\t\t\t\t});\n\t\t\t\tif (graph.useClientFiles.has(sourceFile.fileName)) graph.clientRoots.add(key);\n\t\t\t\tif (node.body) tsLib.forEachChild(node.body, (child) => visitNode(child, sourceFile, key));\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (tsLib.isVariableStatement(node)) {\n\t\t\tfor (const decl of node.declarationList.declarations) if (tsLib.isIdentifier(decl.name) && isPascalCase(decl.name.text) && decl.initializer && isFunctionLike(decl.initializer)) {\n\t\t\t\tconst key = makeKey(sourceFile.fileName, decl.name.text);\n\t\t\t\tgraph.components.set(key, {\n\t\t\t\t\tname: decl.name.text,\n\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\tnode: decl,\n\t\t\t\t\tisAsync: isAsyncFunctionLike(decl.initializer),\n\t\t\t\t\tline: getLine(sourceFile, decl)\n\t\t\t\t});\n\t\t\t\tif (graph.useClientFiles.has(sourceFile.fileName)) graph.clientRoots.add(key);\n\t\t\t\tconst funcNode = decl.initializer;\n\t\t\t\ttsLib.forEachChild(funcNode.body, (child) => visitNode(child, sourceFile, key));\n\t\t\t} else if (decl.initializer) visitNode(decl.initializer, sourceFile, currentComponent);\n\t\t\treturn;\n\t\t}\n\t\tif (tsLib.isCallExpression(node)) {\n\t\t\tconst serverRootKind = getServerRootKind(node, checker);\n\t\t\tif (serverRootKind === \"createCompositeComponent\") {\n\t\t\t\tconst callback = node.arguments[0];\n\t\t\t\tif (callback && isFunctionLike(callback)) collectJsxComponentRefs(callback, sourceFile, currentComponent, true);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (serverRootKind === \"renderServerComponent\") {\n\t\t\t\tconst element = node.arguments[0];\n\t\t\t\tif (element) collectJsxComponentRefs(element, sourceFile, currentComponent, true);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (tsLib.isCallExpression(node)) {\n\t\t\tconst routeOptions = getRouteOptionsObject(node);\n\t\t\tif (routeOptions) {\n\t\t\t\tfor (const prop of routeOptions.properties) if (tsLib.isPropertyAssignment(prop) && tsLib.isIdentifier(prop.name) && ROUTE_COMPONENT_OPTION_NAMES.includes(prop.name.text)) markAsClientRoot(prop.initializer, sourceFile, currentComponent, prop);\n\t\t\t}\n\t\t}\n\t\tif (tsLib.isJsxOpeningElement(node) || tsLib.isJsxSelfClosingElement(node)) {\n\t\t\tconst tagName = node.tagName;\n\t\t\tif (tsLib.isIdentifier(tagName) && isPascalCase(tagName.text)) {\n\t\t\t\tconst symbol = checker.getSymbolAtLocation(tagName);\n\t\t\t\tif (symbol) {\n\t\t\t\t\tconst resolved = resolveSymbol(symbol);\n\t\t\t\t\tif (resolved) {\n\t\t\t\t\t\tconst decls = resolved.getDeclarations();\n\t\t\t\t\t\tif (decls && decls.length > 0) {\n\t\t\t\t\t\t\tconst declFile = decls[0].getSourceFile().fileName;\n\t\t\t\t\t\t\tconst toKey = makeKey(declFile, tagName.text);\n\t\t\t\t\t\t\tif (currentComponent) graph.edges.push({\n\t\t\t\t\t\t\t\tfromFile: sourceFile.fileName,\n\t\t\t\t\t\t\t\tfromComponent: currentComponent.split(\":\")[1],\n\t\t\t\t\t\t\t\ttoFile: declFile,\n\t\t\t\t\t\t\t\ttoComponent: tagName.text,\n\t\t\t\t\t\t\t\ttoComponentKey: toKey,\n\t\t\t\t\t\t\t\tjsxNode: node,\n\t\t\t\t\t\t\t\tjsxLine: getLine(sourceFile, node)\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ttsLib.forEachChild(node, (child) => visitNode(child, sourceFile, currentComponent));\n\t}\n\tfunction getServerRootKind(node, _checker) {\n\t\tif (tsLib.isIdentifier(node.expression)) {\n\t\t\tconst name = node.expression.text;\n\t\t\treturn SERVER_COMPONENT_ROOTS.includes(name) ? name : null;\n\t\t}\n\t\tif (tsLib.isPropertyAccessExpression(node.expression) && tsLib.isIdentifier(node.expression.name)) {\n\t\t\tconst name = node.expression.name.text;\n\t\t\treturn SERVER_COMPONENT_ROOTS.includes(name) ? name : null;\n\t\t}\n\t\treturn null;\n\t}\n\tfunction getRouteOptionsObject(node) {\n\t\tconst optionsArg = node.arguments[0];\n\t\tif (!optionsArg || !tsLib.isObjectLiteralExpression(optionsArg)) return;\n\t\tconst routeCreator = findRouteCreatorFromCallee(node.expression);\n\t\tif (!routeCreator) return;\n\t\tconst routeCreatorName = tsLib.isIdentifier(routeCreator) ? routeCreator.text : routeCreator.name.text;\n\t\tif (ROUTE_CREATOR_NAMES.includes(routeCreatorName)) return optionsArg;\n\t}\n\tfunction findRouteCreatorFromCallee(expr) {\n\t\tif (tsLib.isParenthesizedExpression(expr)) return findRouteCreatorFromCallee(expr.expression);\n\t\tif (tsLib.isCallExpression(expr)) return findRouteCreatorFromCallee(expr.expression);\n\t\tif (tsLib.isPropertyAccessExpression(expr)) {\n\t\t\tif (tsLib.isIdentifier(expr.name)) {\n\t\t\t\tif (ROUTE_CREATOR_NAMES.includes(expr.name.text)) return expr;\n\t\t\t}\n\t\t\treturn findRouteCreatorFromCallee(expr.expression);\n\t\t}\n\t\tif (tsLib.isIdentifier(expr)) return expr;\n\t}\n\tfunction markAsClientRoot(node, sourceFile, _currentComponent, usageNode) {\n\t\tif (tsLib.isIdentifier(node)) {\n\t\t\tconst componentName = node.text;\n\t\t\tconst symbol = checker.getSymbolAtLocation(node);\n\t\t\tif (symbol) {\n\t\t\t\tconst resolved = resolveSymbol(symbol);\n\t\t\t\tif (resolved) {\n\t\t\t\t\tconst decls = resolved.getDeclarations();\n\t\t\t\t\tif (decls && decls.length > 0) {\n\t\t\t\t\t\tconst declFile = decls[0].getSourceFile().fileName;\n\t\t\t\t\t\tconst key = makeKey(declFile, componentName);\n\t\t\t\t\t\tgraph.clientRoots.add(key);\n\t\t\t\t\t\tif (usageNode) {\n\t\t\t\t\t\t\tgraph.routeOptionUsages.set(key, {\n\t\t\t\t\t\t\t\tcomponentKey: key,\n\t\t\t\t\t\t\t\tusageNode,\n\t\t\t\t\t\t\t\tusageLine: getLine(sourceFile, usageNode),\n\t\t\t\t\t\t\t\tfileName: sourceFile.fileName\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\taddToRouteOptionRootsByFile(sourceFile.fileName, key);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst fallbackKey = makeKey(sourceFile.fileName, componentName);\n\t\t\tgraph.clientRoots.add(fallbackKey);\n\t\t\tif (usageNode) {\n\t\t\t\tgraph.routeOptionUsages.set(fallbackKey, {\n\t\t\t\t\tcomponentKey: fallbackKey,\n\t\t\t\t\tusageNode,\n\t\t\t\t\tusageLine: getLine(sourceFile, usageNode),\n\t\t\t\t\tfileName: sourceFile.fileName\n\t\t\t\t});\n\t\t\t\taddToRouteOptionRootsByFile(sourceFile.fileName, fallbackKey);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (isFunctionLike(node)) collectJsxComponentRefs(node, sourceFile, null, false, usageNode);\n\t}\n\tfunction collectJsxComponentRefs(node, sourceFile, _currentComponent, isServerContext, usageNode) {\n\t\tfunction walk(n) {\n\t\t\tif (tsLib.isJsxOpeningElement(n) || tsLib.isJsxSelfClosingElement(n)) {\n\t\t\t\tconst tagName = n.tagName;\n\t\t\t\tif (tsLib.isIdentifier(tagName) && isPascalCase(tagName.text)) {\n\t\t\t\t\tconst symbol = checker.getSymbolAtLocation(tagName);\n\t\t\t\t\tif (symbol) {\n\t\t\t\t\t\tconst resolved = resolveSymbol(symbol);\n\t\t\t\t\t\tif (resolved) {\n\t\t\t\t\t\t\tconst decls = resolved.getDeclarations();\n\t\t\t\t\t\t\tif (decls && decls.length > 0) {\n\t\t\t\t\t\t\t\tconst declFile = decls[0].getSourceFile().fileName;\n\t\t\t\t\t\t\t\tconst key = makeKey(declFile, tagName.text);\n\t\t\t\t\t\t\t\tif (isServerContext) graph.serverRoots.add(key);\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tgraph.clientRoots.add(key);\n\t\t\t\t\t\t\t\t\tconst effectiveUsageNode = usageNode ?? n;\n\t\t\t\t\t\t\t\t\tgraph.routeOptionUsages.set(key, {\n\t\t\t\t\t\t\t\t\t\tcomponentKey: key,\n\t\t\t\t\t\t\t\t\t\tusageNode: effectiveUsageNode,\n\t\t\t\t\t\t\t\t\t\tusageLine: getLine(sourceFile, effectiveUsageNode),\n\t\t\t\t\t\t\t\t\t\tfileName: sourceFile.fileName\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\taddToRouteOptionRootsByFile(sourceFile.fileName, key);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ttsLib.forEachChild(n, walk);\n\t\t}\n\t\twalk(node);\n\t}\n\tfunction resolveSymbol(symbol) {\n\t\tif (symbol.flags & tsLib.SymbolFlags.Alias) return checker.getAliasedSymbol(symbol);\n\t\treturn symbol;\n\t}\n\tfunction isPascalCase(name) {\n\t\treturn /^[A-Z]/.test(name);\n\t}\n\tfunction hasAsyncModifier(node) {\n\t\treturn node.modifiers?.some((mod) => mod.kind === tsLib.SyntaxKind.AsyncKeyword) ?? false;\n\t}\n\tfunction isFunctionLike(node) {\n\t\treturn tsLib.isArrowFunction(node) || tsLib.isFunctionExpression(node) || tsLib.isFunctionDeclaration(node);\n\t}\n\tfunction isAsyncFunctionLike(node) {\n\t\tif (tsLib.isArrowFunction(node) || tsLib.isFunctionExpression(node)) return hasAsyncModifier(node);\n\t\treturn false;\n\t}\n\tfunction makeKey(fileName, componentName) {\n\t\treturn `${fileName}:${componentName}`;\n\t}\n\tfunction getLine(sourceFile, node) {\n\t\treturn sourceFile.getLineAndCharacterOfPosition(node.getStart()).line + 1;\n\t}\n\tfunction addToRouteOptionRootsByFile(fileName, key) {\n\t\tlet set = graph.routeOptionRootsByFile.get(fileName);\n\t\tif (!set) {\n\t\t\tset = /* @__PURE__ */ new Set();\n\t\t\tgraph.routeOptionRootsByFile.set(fileName, set);\n\t\t}\n\t\tset.add(key);\n\t}\n}\n//#endregion\nexport { createRenderGraphBuilder };\n\n//# sourceMappingURL=render-graph-builder.js.map","//#region src/rules/no-async-client-component/context-analyzer.ts\n/**\n* Analyzes the render graph to propagate server/client context.\n*\n* Algorithm:\n* 1. Mark server roots as server context, propagate to descendants\n* 2. Stop propagation at 'use client' boundaries\n* 3. Mark client roots as client context, propagate to descendants\n* 4. Components reachable from both => client wins (tainted)\n\n*/\nfunction analyzeContext(graph) {\n\tconst contexts = /* @__PURE__ */ new Map();\n\tfor (const [key, component] of graph.components) contexts.set(key, {\n\t\tkey,\n\t\tcomponent,\n\t\tisServerContext: false,\n\t\tisClientContext: false\n\t});\n\tconst adjacency = buildAdjacencyList(graph.edges);\n\tconst serverVisited = /* @__PURE__ */ new Set();\n\tfor (const serverRoot of graph.serverRoots) propagateServerContext(serverRoot, serverVisited, graph, contexts, adjacency);\n\tconst clientVisited = /* @__PURE__ */ new Set();\n\tfor (const clientRoot of graph.clientRoots) {\n\t\tconst ctx = contexts.get(clientRoot);\n\t\tif (!ctx) continue;\n\t\tlet reason;\n\t\tif (graph.useClientFiles.has(ctx.component.fileName)) reason = {\n\t\t\ttype: \"use-client\",\n\t\t\tfileName: ctx.component.fileName\n\t\t};\n\t\telse {\n\t\t\tconst routeUsage = graph.routeOptionUsages.get(clientRoot);\n\t\t\treason = {\n\t\t\t\ttype: \"route-option\",\n\t\t\t\tfileName: ctx.component.fileName,\n\t\t\t\tusageFile: routeUsage?.fileName,\n\t\t\t\tusageNode: routeUsage?.usageNode,\n\t\t\t\tusageLine: routeUsage?.usageLine\n\t\t\t};\n\t\t}\n\t\tpropagateClientContext(clientRoot, clientVisited, contexts, adjacency, reason);\n\t}\n\tfor (const [_key, ctx] of contexts) if (graph.useClientFiles.has(ctx.component.fileName) && !ctx.isClientContext) {\n\t\tctx.isClientContext = true;\n\t\tctx.clientReason = {\n\t\t\ttype: \"use-client\",\n\t\t\tfileName: ctx.component.fileName\n\t\t};\n\t}\n\tconst clientEdges = [];\n\tfor (const edge of graph.edges) {\n\t\tconst fromKey = `${edge.fromFile}:${edge.fromComponent}`;\n\t\tif (contexts.get(fromKey)?.isClientContext) clientEdges.push(edge);\n\t}\n\treturn {\n\t\tcontexts,\n\t\tclientEdges\n\t};\n}\nfunction buildAdjacencyList(edges) {\n\tconst adj = /* @__PURE__ */ new Map();\n\tfor (const edge of edges) {\n\t\tconst fromKey = `${edge.fromFile}:${edge.fromComponent}`;\n\t\tif (!adj.has(fromKey)) adj.set(fromKey, []);\n\t\tadj.get(fromKey).push(edge);\n\t}\n\treturn adj;\n}\nfunction propagateServerContext(key, visited, graph, contexts, adjacency) {\n\tif (visited.has(key)) return;\n\tvisited.add(key);\n\tconst ctx = contexts.get(key);\n\tif (!ctx) return;\n\tif (graph.useClientFiles.has(ctx.component.fileName)) {\n\t\tctx.isClientContext = true;\n\t\tctx.clientReason = {\n\t\t\ttype: \"use-client\",\n\t\t\tfileName: ctx.component.fileName\n\t\t};\n\t\treturn;\n\t}\n\tctx.isServerContext = true;\n\tconst edges = adjacency.get(key) ?? [];\n\tfor (const edge of edges) propagateServerContext(edge.toComponentKey, visited, graph, contexts, adjacency);\n}\nfunction propagateClientContext(key, visited, contexts, adjacency, reason) {\n\tif (visited.has(key)) return;\n\tvisited.add(key);\n\tconst ctx = contexts.get(key);\n\tif (!ctx) return;\n\tctx.isClientContext = true;\n\tif (!ctx.clientReason) ctx.clientReason = reason;\n\tconst edges = adjacency.get(key) ?? [];\n\tfor (const edge of edges) propagateClientContext(edge.toComponentKey, visited, contexts, adjacency, {\n\t\ttype: \"rendered-by-client\",\n\t\tparentComponent: ctx.component.name,\n\t\tparentFile: ctx.component.fileName\n\t});\n}\n//#endregion\nexport { analyzeContext };\n\n//# sourceMappingURL=context-analyzer.js.map","import { getDocsUrl } from \"../../utils/get-docs-url.js\";\nimport { createRenderGraphBuilder } from \"./render-graph-builder.js\";\nimport { analyzeContext } from \"./context-analyzer.js\";\nimport path from \"node:path\";\nimport { ESLintUtils } from \"@typescript-eslint/utils\";\nimport * as ts from \"typescript\";\n//#region src/rules/no-async-client-component/no-async-client-component.rule.ts\nvar name = \"no-async-client-component\";\nvar perProgramCache = /* @__PURE__ */ new WeakMap();\nvar onDemandCache = /* @__PURE__ */ new WeakMap();\nvar adjacencyCache = /* @__PURE__ */ new WeakMap();\nvar rule = ESLintUtils.RuleCreator(getDocsUrl)({\n\tname,\n\tmeta: {\n\t\ttype: \"problem\",\n\t\tdocs: {\n\t\t\tdescription: \"Disallow async components in client context. Async components are only valid inside server components.\",\n\t\t\trecommended: \"error\"\n\t\t},\n\t\tschema: [{\n\t\t\ttype: \"object\",\n\t\t\tproperties: { ignorePatterns: {\n\t\t\t\ttype: \"array\",\n\t\t\t\titems: { type: \"string\" },\n\t\t\t\tdescription: \"File patterns to ignore\"\n\t\t\t} },\n\t\t\tadditionalProperties: false\n\t\t}],\n\t\tmessages: {\n\t\t\tasyncClientComponentDefinition: \"Async component \\\"{{name}}\\\" cannot be used in client context. Async components are only valid inside server components. Either remove \\\"async\\\" or ensure this component is only rendered within server components. {{reason}}\",\n\t\t\tasyncClientComponentUsage: \"Async component \\\"{{name}}\\\" is rendered in client context here. Async components are only valid inside server components. Move this to a server component or use a non-async version.\"\n\t\t}\n\t},\n\tdefaultOptions: [{ ignorePatterns: [] }],\n\tcreate(context, [options]) {\n\t\tconst services = ESLintUtils.getParserServices(context);\n\t\tconst program = services.program;\n\t\tconst checker = program.getTypeChecker();\n\t\tconst currentFile = path.isAbsolute(context.filename) ? context.filename : path.resolve(context.cwd, context.filename);\n\t\tif (shouldIgnore(currentFile, [...options.ignorePatterns])) return {};\n\t\tlet cached = perProgramCache.get(program);\n\t\tif (!cached) {\n\t\t\tcached = {\n\t\t\t\tbuilder: createRenderGraphBuilder(ts, program, checker),\n\t\t\t\tgraphBuilt: false\n\t\t\t};\n\t\t\tperProgramCache.set(program, cached);\n\t\t}\n\t\tconst reported = /* @__PURE__ */ new Set();\n\t\treturn { Program() {\n\t\t\tconst sourceFile = program.getSourceFile(currentFile);\n\t\t\tif (!sourceFile) return;\n\t\t\tif (fileContainsRouteOptions(sourceFile)) {}\n\t\t\tconst analysis = getOnDemandAnalysis(currentFile);\n\t\t\tfor (const [key, ctx] of analysis.contexts) {\n\t\t\t\tif (!ctx.component.isAsync || !ctx.isClientContext) continue;\n\t\t\t\tconst reportKey = `def:${key}`;\n\t\t\t\tif (reported.has(reportKey)) continue;\n\t\t\t\tif (ctx.clientReason?.type === \"route-option\") {\n\t\t\t\t\tconst usageFile = ctx.clientReason.usageFile;\n\t\t\t\t\tif (usageFile && usageFile === currentFile) {\n\t\t\t\t\t\tconst usageTsNode = ctx.clientReason.usageNode;\n\t\t\t\t\t\tconst usageEslintNode = services.tsNodeToESTreeNodeMap.get(usageTsNode);\n\t\t\t\t\t\tif (usageEslintNode) {\n\t\t\t\t\t\t\treported.add(reportKey);\n\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\tnode: usageEslintNode,\n\t\t\t\t\t\t\t\tmessageId: \"asyncClientComponentDefinition\",\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\tname: ctx.component.name,\n\t\t\t\t\t\t\t\t\treason: formatReason(ctx.clientReason, context.cwd)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\treported.add(reportKey);\n\t\t\t\tconst tsNode = ctx.component.node;\n\t\t\t\tconst eslintNode = services.tsNodeToESTreeNodeMap.get(tsNode);\n\t\t\t\tif (eslintNode) context.report({\n\t\t\t\t\tnode: eslintNode,\n\t\t\t\t\tmessageId: \"asyncClientComponentDefinition\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tname: ctx.component.name,\n\t\t\t\t\t\treason: ctx.clientReason ? formatReason(ctx.clientReason, context.cwd) : \"\"\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tfor (const edge of analysis.clientEdges) {\n\t\t\t\tif (!analysis.contexts.get(edge.toComponentKey)?.component.isAsync) continue;\n\t\t\t\tif (edge.fromFile !== currentFile) continue;\n\t\t\t\tconst reportKey = `usage:${edge.fromFile}:${edge.jsxLine}:${edge.toComponent}`;\n\t\t\t\tif (reported.has(reportKey)) continue;\n\t\t\t\treported.add(reportKey);\n\t\t\t\tconst eslintNode = services.tsNodeToESTreeNodeMap.get(edge.jsxNode);\n\t\t\t\tif (eslintNode) context.report({\n\t\t\t\t\tnode: eslintNode,\n\t\t\t\t\tmessageId: \"asyncClientComponentUsage\",\n\t\t\t\t\tdata: { name: edge.toComponent }\n\t\t\t\t});\n\t\t\t}\n\t\t} };\n\t\tfunction shouldIgnore(filePath, patterns) {\n\t\t\tfor (const pattern of patterns) if (filePath.includes(pattern)) return true;\n\t\t\treturn false;\n\t\t}\n\t\tfunction formatReason(reason, cwd) {\n\t\t\tswitch (reason.type) {\n\t\t\t\tcase \"use-client\": return `File has \"use client\" directive.`;\n\t\t\t\tcase \"route-option\": return `Component is referenced by a route option (createFileRoute/createRootRoute).`;\n\t\t\t\tcase \"rendered-by-client\": return `Rendered by client component \"${reason.parentComponent}\" in ${path.relative(cwd, reason.parentFile)}.`;\n\t\t\t}\n\t\t}\n\t\tfunction getOnDemandAnalysis(entryFile) {\n\t\t\tlet programCache = onDemandCache.get(program);\n\t\t\tif (!programCache) {\n\t\t\t\tprogramCache = /* @__PURE__ */ new Map();\n\t\t\t\tonDemandCache.set(program, programCache);\n\t\t\t}\n\t\t\tconst cachedResult = programCache.get(entryFile);\n\t\t\tif (cachedResult) return cachedResult.analysis;\n\t\t\tif (!cached.graphBuilt) {\n\t\t\t\tcached.builder.build();\n\t\t\t\tcached.graphBuilt = true;\n\t\t\t}\n\t\t\tconst full = cached.builder.getGraph();\n\t\t\tconst subgraph = sliceGraphForEntryFile(full, entryFile);\n\t\t\tconst entrySourceFile = program.getSourceFile(entryFile);\n\t\t\tconst analysis = !!entrySourceFile && subgraph.clientRoots.size === 0 && subgraph.serverRoots.size === 0 ? analyzeContext(full) : analyzeContext(subgraph);\n\t\t\tprogramCache.set(entryFile, {\n\t\t\t\tgraph: subgraph,\n\t\t\t\tanalysis\n\t\t\t});\n\t\t\treturn analysis;\n\t\t}\n\t\tfunction sliceGraphForEntryFile(full, entryFile) {\n\t\t\tconst components = full.components;\n\t\t\tconst edges = full.edges;\n\t\t\tconst serverRoots = full.serverRoots;\n\t\t\tconst clientRoots = full.clientRoots;\n\t\t\tconst useClientFiles = full.useClientFiles;\n\t\t\tconst routeOptionUsages = full.routeOptionUsages;\n\t\t\tconst entryClientRoots = /* @__PURE__ */ new Set();\n\t\t\tconst entryServerRoots = /* @__PURE__ */ new Set();\n\t\t\tconst routeRootsInFile = routeOptionUsages.size > 0 ? full.routeOptionRootsByFile.get(entryFile) : void 0;\n\t\t\tif (routeRootsInFile) {\n\t\t\t\tfor (const key of routeRootsInFile) if (clientRoots.has(key)) entryClientRoots.add(key);\n\t\t\t}\n\t\t\tfor (const key of serverRoots) if (components.get(key)?.fileName === entryFile) entryServerRoots.add(key);\n\t\t\tif (useClientFiles.has(entryFile)) {\n\t\t\t\tfor (const [key, component] of components) if (component.fileName === entryFile) entryClientRoots.add(key);\n\t\t\t}\n\t\t\tconst reachable = /* @__PURE__ */ new Set();\n\t\t\tconst queue = [];\n\t\t\tfor (const r of entryClientRoots) queue.push(r);\n\t\t\tfor (const r of entryServerRoots) queue.push(r);\n\t\t\tconst adjacency = getAdjacency(full);\n\t\t\twhile (queue.length) {\n\t\t\t\tconst key = queue.pop();\n\t\t\t\tif (reachable.has(key)) continue;\n\t\t\t\treachable.add(key);\n\t\t\t\tconst children = adjacency.get(key);\n\t\t\t\tif (!children) continue;\n\t\t\t\tfor (const toKey of children) if (!reachable.has(toKey)) queue.push(toKey);\n\t\t\t}\n\t\t\tconst subComponents = /* @__PURE__ */ new Map();\n\t\t\tfor (const key of reachable) {\n\t\t\t\tconst comp = components.get(key);\n\t\t\t\tif (comp) subComponents.set(key, comp);\n\t\t\t}\n\t\t\tconst subEdges = edges.filter((edge) => {\n\t\t\t\tconst fromKey = `${edge.fromFile}:${edge.fromComponent}`;\n\t\t\t\treturn reachable.has(fromKey) && reachable.has(edge.toComponentKey);\n\t\t\t});\n\t\t\tconst subServerRoots = new Set([...entryServerRoots].filter((k) => reachable.has(k)));\n\t\t\tconst subClientRoots = new Set([...entryClientRoots].filter((k) => reachable.has(k)));\n\t\t\tconst subRouteOptionUsages = /* @__PURE__ */ new Map();\n\t\t\tconst subRouteOptionRootsByFile = /* @__PURE__ */ new Map();\n\t\t\tfor (const key of subClientRoots) {\n\t\t\t\tconst usage = routeOptionUsages.get(key);\n\t\t\t\tif (usage) {\n\t\t\t\t\tsubRouteOptionUsages.set(key, usage);\n\t\t\t\t\tlet set = subRouteOptionRootsByFile.get(usage.fileName);\n\t\t\t\t\tif (!set) {\n\t\t\t\t\t\tset = /* @__PURE__ */ new Set();\n\t\t\t\t\t\tsubRouteOptionRootsByFile.set(usage.fileName, set);\n\t\t\t\t\t}\n\t\t\t\t\tset.add(key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tcomponents: subComponents,\n\t\t\t\tedges: subEdges,\n\t\t\t\tserverRoots: subServerRoots,\n\t\t\t\tclientRoots: subClientRoots,\n\t\t\t\tuseClientFiles,\n\t\t\t\trouteOptionUsages: subRouteOptionUsages,\n\t\t\t\trouteOptionRootsByFile: subRouteOptionRootsByFile\n\t\t\t};\n\t\t}\n\t\tfunction getAdjacency(full) {\n\t\t\tlet cachedAdjacency = adjacencyCache.get(program);\n\t\t\tif (cachedAdjacency) return cachedAdjacency;\n\t\t\tcachedAdjacency = /* @__PURE__ */ new Map();\n\t\t\tfor (const edge of full.edges) {\n\t\t\t\tconst fromKey = `${edge.fromFile}:${edge.fromComponent}`;\n\t\t\t\tlet set = cachedAdjacency.get(fromKey);\n\t\t\t\tif (!set) {\n\t\t\t\t\tset = /* @__PURE__ */ new Set();\n\t\t\t\t\tcachedAdjacency.set(fromKey, set);\n\t\t\t\t}\n\t\t\t\tset.add(edge.toComponentKey);\n\t\t\t}\n\t\t\tadjacencyCache.set(program, cachedAdjacency);\n\t\t\treturn cachedAdjacency;\n\t\t}\n\t\tfunction fileHasUseClientDirective(sourceFile) {\n\t\t\tconst firstStmt = sourceFile.statements[0];\n\t\t\tif (!firstStmt) return false;\n\t\t\treturn ts.isExpressionStatement(firstStmt) && ts.isStringLiteral(firstStmt.expression) && firstStmt.expression.text === \"use client\";\n\t\t}\n\t\tfunction fileContainsServerComponentRoots(sourceFile) {\n\t\t\tconst text = sourceFile.text;\n\t\t\treturn text.includes(\"renderServerComponent\") || text.includes(\"createCompositeComponent\");\n\t\t}\n\t\tfunction fileContainsRouteOptions(sourceFile) {\n\t\t\tconst text = sourceFile.text;\n\t\t\tif (!text.includes(\"createFileRoute\") && !text.includes(\"createRootRoute\") && !text.includes(\"createRootRouteWithContext\")) return false;\n\t\t\treturn text.includes(\"component\") || text.includes(\"pendingComponent\") || text.includes(\"errorComponent\") || text.includes(\"notFoundComponent\");\n\t\t}\n\t}\n});\n//#endregion\nexport { name, rule };\n\n//# sourceMappingURL=no-async-client-component.rule.js.map","import { name, rule } from \"./rules/no-client-code-in-server-component/no-client-code-in-server-component.rule.js\";\nimport { name as name$1, rule as rule$1 } from \"./rules/no-async-client-component/no-async-client-component.rule.js\";\n//#region src/rules.ts\nvar rules = {\n\t[name]: rule,\n\t[name$1]: rule$1\n};\n//#endregion\nexport { rules };\n\n//# sourceMappingURL=rules.js.map","import { rules } from \"./rules.js\";\n//#region src/index.ts\nvar plugin = {\n\tmeta: { name: \"@tanstack/eslint-plugin-start\" },\n\tconfigs: {},\n\trules\n};\nObject.assign(plugin.configs, {\n\trecommended: {\n\t\tplugins: [\"@tanstack/eslint-plugin-start\"],\n\t\trules: {\n\t\t\t\"@tanstack/start/no-client-code-in-server-component\": \"error\",\n\t\t\t\"@tanstack/start/no-async-client-component\": \"error\"\n\t\t}\n\t},\n\t\"flat/recommended\": [{\n\t\tplugins: { \"@tanstack/start\": plugin },\n\t\trules: {\n\t\t\t\"@tanstack/start/no-client-code-in-server-component\": \"error\",\n\t\t\t\"@tanstack/start/no-async-client-component\": \"error\"\n\t\t}\n\t}]\n});\n//#endregion\nexport { plugin as default };\n\n//# sourceMappingURL=index.js.map","import tanstackStart from \"@tanstack/eslint-plugin-start\";\nimport type { Plugin } from \"vite-plus/lint/plugins\";\n\nimport { typedRules } from \"./typed-rule.ts\";\n\nconst plugin = {\n meta: { name: \"tanstack-start\" },\n rules: typedRules(tanstackStart.rules),\n} as const satisfies Plugin;\n\nexport default plugin;\n"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAI,cAAc,aAAa,iDAAiD;;;;;ACIhF,SAAS,wBAAwB,SAAS;CACzC,SAAS,sBAAsB,UAAU;EACxC,MAAM,aAAa,QAAQ,cAAc,QAAQ;EACjD,IAAI,CAAC,YAAY,OAAO;EACxB,MAAM,YAAY,WAAW,WAAW;EACxC,IAAI,CAAC,WAAW,OAAO;EACvB,IAAI,GAAG,sBAAsB,SAAS,KAAK,GAAG,gBAAgB,UAAU,UAAU,GAAG,OAAO,UAAU,WAAW,SAAS;EAC1H,OAAO;CACR;CACA,OAAO,EAAE,sBAAsB;AAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CEdA,OAAO,UAAA,kBAAA;;;;;ACIP,IAAI,wCAAwB,IAAI,IAAI,CAAC,OAAO,CAAC;;;;;AAK7C,IAAI,8BAA8B;CACjC,MAAM,iBAAiB,OAAO,KAAKA,eAAAA,QAAQ,OAAO;CAClD,MAAM,cAAc,IAAI,IAAI,OAAO,KAAKA,eAAAA,QAAQ,IAAI,CAAC;CACrD,MAAM,8BAA8B,IAAI,IAAI;CAC5C,KAAK,MAAM,QAAQ,gBAAgB,IAAI,CAAC,YAAY,IAAI,IAAI,GAAG,YAAY,IAAI,IAAI;CACnF,OAAO;AACR,EAAA,CAAG;;;;AAIH,IAAI,uCAAuB,IAAI,IAAI;CAClC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CA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"}
|
|
1
|
+
{"version":3,"file":"tanstack-start.mjs","names":["Arr","ts.isExpressionStatement","ts.isStringLiteral","globals","name","rule","ESLintUtils","ts","ts.isFunctionLike","ts.isIdentifier","ts.isObjectBindingPattern","ts.isArrayBindingPattern","ts.isBindingElement","ts.isParameter","ts.isJsxOpeningElement","ts.isJsxSelfClosingElement","ts.isCallExpression","ESLintUtils","ts","name","rule","name$1","rule$1","plugin","tanstackStart"],"sources":["../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/utils/get-docs-url.js","../src/ts-compat.ts","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/shared/use-client-resolver.js","../../../node_modules/.pnpm/globals@16.4.0/node_modules/globals/globals.json","../../../node_modules/.pnpm/globals@16.4.0/node_modules/globals/index.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-client-code-in-server-component/constants.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-client-code-in-server-component/violation-detector.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-client-code-in-server-component/transitive-analyzer.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/deepMerge.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/applyDefault.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/parserSeemsToBeTSESLint.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/getParserServices.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/InferTypesFromRule.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/nullThrows.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/RuleCreator.js","../../../node_modules/.pnpm/@typescript-eslint+utils@8.72.1_eslint@9.39.5_jiti@2.7.0_supports-color@7.2.0__supports-color@7.2.0_typescript@6.0.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/index.js","../src/typescript-eslint-utils.ts","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-client-code-in-server-component/no-client-code-in-server-component.rule.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-async-client-component/constants.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-async-client-component/render-graph-builder.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-async-client-component/context-analyzer.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules/no-async-client-component/no-async-client-component.rule.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/rules.js","../../../node_modules/.pnpm/@tanstack+eslint-plugin-start@0.1.0_patch_hash=364cc40b73326fe59c5d685ac247690de2302e3e_1ecd472b6714c9eeb7d387901cbbf798/node_modules/@tanstack/eslint-plugin-start/dist/esm/index.js","../src/tanstack-start.ts"],"sourcesContent":["//#region src/utils/get-docs-url.ts\nvar getDocsUrl = (ruleName) => `https://tanstack.com/start/latest/docs/eslint/${ruleName}`;\n//#endregion\nexport { getDocsUrl };\n\n//# sourceMappingURL=get-docs-url.js.map","import { Array as Arr, Function, Option, Predicate } from \"effect\";\nimport { SyntaxKind } from \"typescript-7/ast\";\nimport type { Node } from \"typescript-7/ast\";\n\nconst FUNCTION_LIKE_KINDS: ReadonlySet<SyntaxKind> = new Set([\n SyntaxKind.FunctionDeclaration,\n SyntaxKind.MethodDeclaration,\n SyntaxKind.Constructor,\n SyntaxKind.GetAccessor,\n SyntaxKind.SetAccessor,\n SyntaxKind.FunctionExpression,\n SyntaxKind.ArrowFunction,\n SyntaxKind.MethodSignature,\n SyntaxKind.CallSignature,\n SyntaxKind.JSDocSignature,\n SyntaxKind.ConstructSignature,\n SyntaxKind.IndexSignature,\n SyntaxKind.FunctionType,\n SyntaxKind.ConstructorType,\n]);\n\nconst isFunctionLike = (node: Node | null | undefined): boolean =>\n Option.fromNullishOr(node).pipe(Option.exists(({ kind }) => FUNCTION_LIKE_KINDS.has(kind)));\n\nconst forEachChild: {\n <Result>(visit: (child: Node) => Result | undefined): (node: Node) => Result | undefined;\n <Result>(node: Node, visit: (child: Node) => Result | undefined): Result | undefined;\n} = Function.dual(\n (args) =>\n Arr.head(Arr.fromIterable(args)).pipe(Option.exists(Predicate.not(Predicate.isFunction))),\n <Result>(node: Node, visit: (child: Node) => Result | undefined): Result | undefined =>\n node.forEachChild(visit),\n);\n\nexport {\n isArrayBindingPattern,\n isArrowFunction,\n isBindingElement,\n isCallExpression,\n isClassDeclaration,\n isClassExpression,\n isExpressionStatement,\n isFunctionDeclaration,\n isFunctionExpression,\n isIdentifier,\n isImportClause,\n isImportSpecifier,\n isInterfaceDeclaration,\n isJsxAttribute,\n isJsxExpression,\n isJsxOpeningElement,\n isJsxSelfClosingElement,\n isMethodDeclaration,\n isObjectBindingPattern,\n isObjectLiteralExpression,\n isParenthesizedExpression,\n isPropertyAccessExpression,\n isPropertyAssignment,\n isPropertyDeclaration,\n isStringLiteral,\n isTypeAliasDeclaration,\n isTypeParameterDeclaration,\n isTypeQueryNode,\n isTypeReferenceNode,\n isVariableDeclaration,\n isVariableStatement,\n isParameterDeclaration as isParameter,\n} from \"typescript-7/ast/is\";\nexport { SyntaxKind } from \"typescript-7/ast\";\nexport { SymbolFlags } from \"typescript-7/sync\";\nexport { forEachChild, isFunctionLike };\n","import * as ts from \"typescript\";\n//#region src/shared/use-client-resolver.ts\n/**\n* Creates a resolver that checks for 'use client' directive in source files\n*/\nfunction createUseClientResolver(program) {\n\tfunction hasUseClientDirective(fileName) {\n\t\tconst sourceFile = program.getSourceFile(fileName);\n\t\tif (!sourceFile) return false;\n\t\tconst firstStmt = sourceFile.statements[0];\n\t\tif (!firstStmt) return false;\n\t\tif (ts.isExpressionStatement(firstStmt) && ts.isStringLiteral(firstStmt.expression)) return firstStmt.expression.text === \"use client\";\n\t\treturn false;\n\t}\n\treturn { hasUseClientDirective };\n}\n//#endregion\nexport { createUseClientResolver };\n\n//# sourceMappingURL=use-client-resolver.js.map","","'use strict';\nmodule.exports = require('./globals.json');\n","import globals from \"globals\";\n//#region src/rules/no-client-code-in-server-component/constants.ts\n/**\n* Hooks allowed in server components\n*/\nvar DEFAULT_ALLOWED_HOOKS = new Set([\"useId\"]);\n/**\n* Browser-only globals not available in server context\n* Dynamically computed from globals package: browser globals that are NOT in node\n*/\nvar BROWSER_ONLY_GLOBALS = (() => {\n\tconst browserGlobals = Object.keys(globals.browser);\n\tconst nodeGlobals = new Set(Object.keys(globals.node));\n\tconst browserOnly = /* @__PURE__ */ new Set();\n\tfor (const name of browserGlobals) if (!nodeGlobals.has(name)) browserOnly.add(name);\n\treturn browserOnly;\n})();\n/**\n* React event handler props - comprehensive list from React types\n*/\nvar REACT_EVENT_HANDLERS = new Set([\n\t\"onCopy\",\n\t\"onCopyCapture\",\n\t\"onCut\",\n\t\"onCutCapture\",\n\t\"onPaste\",\n\t\"onPasteCapture\",\n\t\"onCompositionEnd\",\n\t\"onCompositionEndCapture\",\n\t\"onCompositionStart\",\n\t\"onCompositionStartCapture\",\n\t\"onCompositionUpdate\",\n\t\"onCompositionUpdateCapture\",\n\t\"onFocus\",\n\t\"onFocusCapture\",\n\t\"onBlur\",\n\t\"onBlurCapture\",\n\t\"onChange\",\n\t\"onChangeCapture\",\n\t\"onBeforeInput\",\n\t\"onBeforeInputCapture\",\n\t\"onInput\",\n\t\"onInputCapture\",\n\t\"onReset\",\n\t\"onResetCapture\",\n\t\"onSubmit\",\n\t\"onSubmitCapture\",\n\t\"onInvalid\",\n\t\"onInvalidCapture\",\n\t\"onLoad\",\n\t\"onLoadCapture\",\n\t\"onError\",\n\t\"onErrorCapture\",\n\t\"onKeyDown\",\n\t\"onKeyDownCapture\",\n\t\"onKeyPress\",\n\t\"onKeyPressCapture\",\n\t\"onKeyUp\",\n\t\"onKeyUpCapture\",\n\t\"onAbort\",\n\t\"onAbortCapture\",\n\t\"onCanPlay\",\n\t\"onCanPlayCapture\",\n\t\"onCanPlayThrough\",\n\t\"onCanPlayThroughCapture\",\n\t\"onDurationChange\",\n\t\"onDurationChangeCapture\",\n\t\"onEmptied\",\n\t\"onEmptiedCapture\",\n\t\"onEncrypted\",\n\t\"onEncryptedCapture\",\n\t\"onEnded\",\n\t\"onEndedCapture\",\n\t\"onLoadedData\",\n\t\"onLoadedDataCapture\",\n\t\"onLoadedMetadata\",\n\t\"onLoadedMetadataCapture\",\n\t\"onLoadStart\",\n\t\"onLoadStartCapture\",\n\t\"onPause\",\n\t\"onPauseCapture\",\n\t\"onPlay\",\n\t\"onPlayCapture\",\n\t\"onPlaying\",\n\t\"onPlayingCapture\",\n\t\"onProgress\",\n\t\"onProgressCapture\",\n\t\"onRateChange\",\n\t\"onRateChangeCapture\",\n\t\"onResize\",\n\t\"onResizeCapture\",\n\t\"onSeeked\",\n\t\"onSeekedCapture\",\n\t\"onSeeking\",\n\t\"onSeekingCapture\",\n\t\"onStalled\",\n\t\"onStalledCapture\",\n\t\"onSuspend\",\n\t\"onSuspendCapture\",\n\t\"onTimeUpdate\",\n\t\"onTimeUpdateCapture\",\n\t\"onVolumeChange\",\n\t\"onVolumeChangeCapture\",\n\t\"onWaiting\",\n\t\"onWaitingCapture\",\n\t\"onAuxClick\",\n\t\"onAuxClickCapture\",\n\t\"onClick\",\n\t\"onClickCapture\",\n\t\"onContextMenu\",\n\t\"onContextMenuCapture\",\n\t\"onDoubleClick\",\n\t\"onDoubleClickCapture\",\n\t\"onDrag\",\n\t\"onDragCapture\",\n\t\"onDragEnd\",\n\t\"onDragEndCapture\",\n\t\"onDragEnter\",\n\t\"onDragEnterCapture\",\n\t\"onDragExit\",\n\t\"onDragExitCapture\",\n\t\"onDragLeave\",\n\t\"onDragLeaveCapture\",\n\t\"onDragOver\",\n\t\"onDragOverCapture\",\n\t\"onDragStart\",\n\t\"onDragStartCapture\",\n\t\"onDrop\",\n\t\"onDropCapture\",\n\t\"onMouseDown\",\n\t\"onMouseDownCapture\",\n\t\"onMouseEnter\",\n\t\"onMouseLeave\",\n\t\"onMouseMove\",\n\t\"onMouseMoveCapture\",\n\t\"onMouseOut\",\n\t\"onMouseOutCapture\",\n\t\"onMouseOver\",\n\t\"onMouseOverCapture\",\n\t\"onMouseUp\",\n\t\"onMouseUpCapture\",\n\t\"onSelect\",\n\t\"onSelectCapture\",\n\t\"onTouchCancel\",\n\t\"onTouchCancelCapture\",\n\t\"onTouchEnd\",\n\t\"onTouchEndCapture\",\n\t\"onTouchMove\",\n\t\"onTouchMoveCapture\",\n\t\"onTouchStart\",\n\t\"onTouchStartCapture\",\n\t\"onPointerDown\",\n\t\"onPointerDownCapture\",\n\t\"onPointerMove\",\n\t\"onPointerMoveCapture\",\n\t\"onPointerUp\",\n\t\"onPointerUpCapture\",\n\t\"onPointerCancel\",\n\t\"onPointerCancelCapture\",\n\t\"onPointerEnter\",\n\t\"onPointerEnterCapture\",\n\t\"onPointerLeave\",\n\t\"onPointerLeaveCapture\",\n\t\"onPointerOver\",\n\t\"onPointerOverCapture\",\n\t\"onPointerOut\",\n\t\"onPointerOutCapture\",\n\t\"onGotPointerCapture\",\n\t\"onGotPointerCaptureCapture\",\n\t\"onLostPointerCapture\",\n\t\"onLostPointerCaptureCapture\",\n\t\"onScroll\",\n\t\"onScrollCapture\",\n\t\"onWheel\",\n\t\"onWheelCapture\",\n\t\"onAnimationStart\",\n\t\"onAnimationStartCapture\",\n\t\"onAnimationEnd\",\n\t\"onAnimationEndCapture\",\n\t\"onAnimationIteration\",\n\t\"onAnimationIterationCapture\",\n\t\"onTransitionEnd\",\n\t\"onTransitionEndCapture\"\n]);\n/**\n* Check if a prop name is a React event handler\n*/\nfunction isReactEventHandler(name) {\n\treturn REACT_EVENT_HANDLERS.has(name);\n}\n/**\n* Check if a hook name is client-only (not allowed in server components)\n*/\nfunction isClientOnlyHook(name, allowedHooks = DEFAULT_ALLOWED_HOOKS) {\n\tif (!/^use[A-Z]/.test(name)) return false;\n\tif (allowedHooks.has(name)) return false;\n\treturn true;\n}\n//#endregion\nexport { BROWSER_ONLY_GLOBALS, DEFAULT_ALLOWED_HOOKS, isClientOnlyHook, isReactEventHandler };\n\n//# sourceMappingURL=constants.js.map","import { BROWSER_ONLY_GLOBALS, DEFAULT_ALLOWED_HOOKS, isClientOnlyHook, isReactEventHandler } from \"./constants.js\";\n//#region src/rules/no-client-code-in-server-component/violation-detector.ts\n/**\n* Get line and column position for a node\n*/\nfunction getPosition(node, sourceFile) {\n\tconst { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n\treturn {\n\t\tline: line + 1,\n\t\tcolumn: character + 1\n\t};\n}\n/**\n* Creates a detector that finds client-only code violations in TypeScript AST\n*/\nfunction createViolationDetector(tsLib, options = {}) {\n\tconst allowedHooks = options.allowedHooks ?? DEFAULT_ALLOWED_HOOKS;\n\tconst checker = options.checker;\n\t/**\n\t* Check if a class declaration extends React.Component or React.PureComponent\n\t*/\n\tfunction isReactClassComponent(node) {\n\t\tif (!node.heritageClauses) return false;\n\t\tfor (const clause of node.heritageClauses) {\n\t\t\tif (clause.token !== tsLib.SyntaxKind.ExtendsKeyword) continue;\n\t\t\tfor (const type of clause.types) {\n\t\t\t\tconst expr = type.expression;\n\t\t\t\tif (tsLib.isPropertyAccessExpression(expr)) {\n\t\t\t\t\tconst propName = expr.name.text;\n\t\t\t\t\tif (propName === \"Component\" || propName === \"PureComponent\") {\n\t\t\t\t\t\tif (tsLib.isIdentifier(expr.expression)) {\n\t\t\t\t\t\t\tif (expr.expression.text === \"React\") return true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (tsLib.isIdentifier(expr)) {\n\t\t\t\t\tconst name = expr.text;\n\t\t\t\t\tif (name === \"Component\" || name === \"PureComponent\") return true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\t/**\n\t* Shared visitor logic that collects violations into the provided array\n\t*/\n\tfunction visitNode(node, sourceFile, violations) {\n\t\tif (tsLib.isClassDeclaration(node) && isReactClassComponent(node)) {\n\t\t\tconst name = node.name?.text ?? \"ClassComponent\";\n\t\t\tviolations.push({\n\t\t\t\ttype: \"class-component\",\n\t\t\t\tname,\n\t\t\t\tnode,\n\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t});\n\t\t}\n\t\tif (tsLib.isCallExpression(node)) {\n\t\t\tconst callee = node.expression;\n\t\t\tlet name = \"\";\n\t\t\tif (tsLib.isIdentifier(callee)) name = callee.text;\n\t\t\telse if (tsLib.isPropertyAccessExpression(callee)) name = callee.name.text;\n\t\t\tif (name && isClientOnlyHook(name, allowedHooks)) violations.push({\n\t\t\t\ttype: \"hook\",\n\t\t\t\tname,\n\t\t\t\tnode,\n\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t});\n\t\t}\n\t\tif (tsLib.isIdentifier(node)) {\n\t\t\tconst name = node.text;\n\t\t\tif (BROWSER_ONLY_GLOBALS.has(name)) {\n\t\t\t\tconst parent = node.parent;\n\t\t\t\tif (tsLib.isPropertyAccessExpression(parent) && parent.name === node) {} else if (tsLib.isPropertyAssignment(parent) && parent.name === node) {} else if (tsLib.isTypeReferenceNode(parent) || tsLib.isInterfaceDeclaration(parent) || tsLib.isTypeAliasDeclaration(parent)) {} else if (tsLib.isParameter(parent) && parent.name === node || tsLib.isVariableDeclaration(parent) && parent.name === node) {} else if (tsLib.isImportSpecifier(parent) || tsLib.isImportClause(parent)) {} else if (checker) {\n\t\t\t\t\tconst symbol = checker.getSymbolAtLocation(node);\n\t\t\t\t\tif (symbol) {\n\t\t\t\t\t\tconst declarations = symbol.getDeclarations();\n\t\t\t\t\t\tif (declarations?.length) if (declarations.some((decl) => {\n\t\t\t\t\t\t\tconst fileName = decl.getSourceFile().fileName;\n\t\t\t\t\t\t\treturn !fileName.includes(\"/node_modules/\") && !fileName.includes(\"/typescript/lib/\");\n\t\t\t\t\t\t})) {} else violations.push({\n\t\t\t\t\t\t\ttype: \"browser-global\",\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t\t\t\t});\n\t\t\t\t\t\telse violations.push({\n\t\t\t\t\t\t\ttype: \"browser-global\",\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t\t\t\t});\n\t\t\t\t\t} else violations.push({\n\t\t\t\t\t\ttype: \"browser-global\",\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t\t\t});\n\t\t\t\t} else violations.push({\n\t\t\t\t\ttype: \"browser-global\",\n\t\t\t\t\tname,\n\t\t\t\t\tnode,\n\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (tsLib.isJsxAttribute(node)) {\n\t\t\tconst attrName = node.name;\n\t\t\tif (tsLib.isIdentifier(attrName)) {\n\t\t\t\tconst name = attrName.text;\n\t\t\t\tconst value = node.initializer;\n\t\t\t\tif (isReactEventHandler(name)) violations.push({\n\t\t\t\t\ttype: \"event-handler\",\n\t\t\t\t\tname,\n\t\t\t\t\tnode,\n\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t\t});\n\t\t\t\telse if (name !== \"style\" && name !== \"className\" && name !== \"key\" && name !== \"ref\" && name !== \"dangerouslySetInnerHTML\" && value && tsLib.isJsxExpression(value) && value.expression) {\n\t\t\t\t\tconst expr = value.expression;\n\t\t\t\t\tif (tsLib.isArrowFunction(expr) || tsLib.isFunctionExpression(expr)) violations.push({\n\t\t\t\t\t\ttype: \"function-prop\",\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\t\t...getPosition(node, sourceFile)\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ttsLib.forEachChild(node, (child) => visitNode(child, sourceFile, violations));\n\t}\n\tfunction detectViolations(sourceFile) {\n\t\tconst violations = [];\n\t\ttsLib.forEachChild(sourceFile, (child) => visitNode(child, sourceFile, violations));\n\t\treturn violations;\n\t}\n\tfunction detectViolationsInNode(node, sourceFile) {\n\t\tconst violations = [];\n\t\tvisitNode(node, sourceFile, violations);\n\t\treturn violations;\n\t}\n\treturn {\n\t\tdetectViolations,\n\t\tdetectViolationsInNode\n\t};\n}\n//#endregion\nexport { createViolationDetector };\n\n//# sourceMappingURL=violation-detector.js.map","//#region src/rules/no-client-code-in-server-component/transitive-analyzer.ts\n/**\n* Creates an analyzer that follows reachable symbol references\n* to find transitive violations, stopping at 'use client' boundaries.\n*/\nfunction createTransitiveAnalyzer(tsLib, program, checker, useClientResolver, violationDetector) {\n\tconst visitedSymbols = /* @__PURE__ */ new Set();\n\tconst analysisCache = /* @__PURE__ */ new Map();\n\tfunction symbolKey(symbol) {\n\t\treturn `${(symbol.getDeclarations()?.[0])?.getSourceFile().fileName ?? \"unknown\"}::${symbol.getName()}`;\n\t}\n\tfunction analyzeEntrySymbol(entrySymbol) {\n\t\tvisitedSymbols.clear();\n\t\tconst cached = analysisCache.get(symbolKey(entrySymbol));\n\t\tif (cached) return cached;\n\t\tconst violations = [];\n\t\tfunction visitSymbol(symbol, chain) {\n\t\t\tconst key = symbolKey(symbol);\n\t\t\tif (visitedSymbols.has(key)) return false;\n\t\t\tvisitedSymbols.add(key);\n\t\t\tconst decl = symbol.getDeclarations()?.[0];\n\t\t\tif (!decl) return false;\n\t\t\tconst sourceFile = decl.getSourceFile();\n\t\t\tconst fileName = sourceFile.fileName;\n\t\t\tif (fileName.includes(\"/node_modules/\") || fileName.endsWith(\".d.ts\")) return false;\n\t\t\tif (useClientResolver.hasUseClientDirective(fileName)) return true;\n\t\t\tconst traversalRoots = getTraversalRoots(decl);\n\t\t\tfor (const root of traversalRoots) {\n\t\t\t\tconst rootViolations = violationDetector.detectViolationsInNode(root, sourceFile);\n\t\t\t\tfor (const v of rootViolations) violations.push({\n\t\t\t\t\t...v,\n\t\t\t\t\tchain: [...chain]\n\t\t\t\t});\n\t\t\t}\n\t\t\tfor (const root of traversalRoots) {\n\t\t\t\tconst identifiers = collectReachableIdentifiers(root, decl);\n\t\t\t\tfor (const ident of identifiers) {\n\t\t\t\t\tconst refSym = checker.getSymbolAtLocation(ident);\n\t\t\t\t\tif (!refSym) continue;\n\t\t\t\t\tconst aliased = tsLib.SymbolFlags.Alias & refSym.flags ? checker.getAliasedSymbol(refSym) : refSym;\n\t\t\t\t\tconst refFile = (aliased.getDeclarations()?.[0])?.getSourceFile().fileName;\n\t\t\t\t\tif (!refFile) continue;\n\t\t\t\t\tif (refFile.includes(\"/node_modules/\") || refFile.endsWith(\".d.ts\")) continue;\n\t\t\t\t\tconst edge = {\n\t\t\t\t\t\tfromFile: fileName,\n\t\t\t\t\t\ttoFile: refFile,\n\t\t\t\t\t\tviaSymbol: aliased.getName()\n\t\t\t\t\t};\n\t\t\t\t\tvisitSymbol(aliased, [...chain, edge]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\t/**\n\t\t* Get traversal roots based on declaration kind\n\t\t*/\n\t\tfunction getTraversalRoots(decl) {\n\t\t\tif (tsLib.isFunctionDeclaration(decl) && decl.body) return [decl.body];\n\t\t\tif (tsLib.isFunctionExpression(decl)) return [decl.body];\n\t\t\tif (tsLib.isArrowFunction(decl)) return [decl.body];\n\t\t\tif (tsLib.isVariableDeclaration(decl) && decl.initializer) {\n\t\t\t\tif (tsLib.isFunctionExpression(decl.initializer) || tsLib.isArrowFunction(decl.initializer)) return [decl.initializer.body];\n\t\t\t\treturn [decl.initializer];\n\t\t\t}\n\t\t\tif (tsLib.isClassDeclaration(decl) || tsLib.isClassExpression(decl)) {\n\t\t\t\tconst roots = [];\n\t\t\t\tfor (const member of decl.members) {\n\t\t\t\t\tif (tsLib.isMethodDeclaration(member) && member.body) roots.push(member.body);\n\t\t\t\t\tif (tsLib.isPropertyDeclaration(member) && member.initializer) roots.push(member.initializer);\n\t\t\t\t}\n\t\t\t\treturn roots;\n\t\t\t}\n\t\t\treturn [decl];\n\t\t}\n\t\t/**\n\t\t* Collect identifier nodes from a traversal root, skipping:\n\t\t* - The defining identifier for the symbol (avoid self-loop)\n\t\t* - Type-only positions\n\t\t* - Property names when not computed\n\t\t*/\n\t\tfunction collectReachableIdentifiers(root, originalDecl) {\n\t\t\tconst identifiers = [];\n\t\t\tlet declName;\n\t\t\tif (\"name\" in originalDecl && originalDecl.name) {\n\t\t\t\tconst nameNode = originalDecl.name;\n\t\t\t\tif (tsLib.isIdentifier(nameNode)) declName = nameNode.text;\n\t\t\t}\n\t\t\tfunction visit(node) {\n\t\t\t\tif (tsLib.isTypeReferenceNode(node) || tsLib.isInterfaceDeclaration(node) || tsLib.isTypeAliasDeclaration(node) || tsLib.isTypeQueryNode(node) || tsLib.isTypeParameterDeclaration(node)) return;\n\t\t\t\tif (tsLib.isIdentifier(node)) {\n\t\t\t\t\tif (node.text === declName) return;\n\t\t\t\t\tconst parent = node.parent;\n\t\t\t\t\tif (tsLib.isPropertyAccessExpression(parent) && parent.name === node) return;\n\t\t\t\t\tif (tsLib.isPropertyAssignment(parent) && parent.name === node) return;\n\t\t\t\t\tif (tsLib.isParameter(parent) && parent.name === node || tsLib.isVariableDeclaration(parent) && parent.name === node) return;\n\t\t\t\t\tidentifiers.push(node);\n\t\t\t\t}\n\t\t\t\ttsLib.forEachChild(node, visit);\n\t\t\t}\n\t\t\tvisit(root);\n\t\t\treturn identifiers;\n\t\t}\n\t\tconst result = {\n\t\t\tisClientBoundary: visitSymbol(entrySymbol, []),\n\t\t\tviolations\n\t\t};\n\t\tanalysisCache.set(symbolKey(entrySymbol), result);\n\t\treturn result;\n\t}\n\treturn { analyzeEntrySymbol };\n}\n//#endregion\nexport { createTransitiveAnalyzer };\n\n//# sourceMappingURL=transitive-analyzer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isObjectNotArray = isObjectNotArray;\nexports.deepMerge = deepMerge;\n/**\n * Check if the variable contains an object strictly rejecting arrays\n * @returns `true` if obj is an object\n */\nfunction isObjectNotArray(obj) {\n return typeof obj === 'object' && obj != null && !Array.isArray(obj);\n}\n/**\n * Pure function - doesn't mutate either parameter!\n * Merges two objects together deeply, overwriting the properties in first with the properties in second\n * @param first The first object\n * @param second The second object\n * @returns a new object\n */\nfunction deepMerge(first = {}, second = {}) {\n // get the unique set of keys across both objects\n const keys = new Set([...Object.keys(first), ...Object.keys(second)]);\n return Object.fromEntries([...keys].map(key => {\n const firstHasKey = key in first;\n const secondHasKey = key in second;\n const firstValue = first[key];\n const secondValue = second[key];\n let value;\n if (firstHasKey && secondHasKey) {\n if (isObjectNotArray(firstValue) && isObjectNotArray(secondValue)) {\n // object type\n value = deepMerge(firstValue, secondValue);\n }\n else {\n // value type\n value = secondValue;\n }\n }\n else if (firstHasKey) {\n value = firstValue;\n }\n else {\n value = secondValue;\n }\n return [key, value];\n }));\n}\n//# sourceMappingURL=deepMerge.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.applyDefault = applyDefault;\nconst deepMerge_1 = require(\"./deepMerge\");\n/**\n * Pure function - doesn't mutate either parameter!\n * Uses the default options and overrides with the options provided by the user\n * @param defaultOptions the defaults\n * @param userOptions the user opts\n * @returns the options with defaults\n */\nfunction applyDefault(defaultOptions, userOptions) {\n // clone defaults\n const options = structuredClone(defaultOptions);\n if (userOptions == null) {\n return options;\n }\n // For avoiding the type error\n // `This expression is not callable. Type 'unknown' has no call signatures.ts(2349)`\n options.forEach((opt, i) => {\n // eslint-disable-next-line @typescript-eslint/internal/eqeq-nullish\n if (userOptions[i] !== undefined) {\n const userOpt = userOptions[i];\n if ((0, deepMerge_1.isObjectNotArray)(userOpt) && (0, deepMerge_1.isObjectNotArray)(opt)) {\n options[i] = (0, deepMerge_1.deepMerge)(opt, userOpt);\n }\n else {\n options[i] = userOpt;\n }\n }\n });\n return options;\n}\n//# sourceMappingURL=applyDefault.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parserSeemsToBeTSESLint = parserSeemsToBeTSESLint;\nfunction parserSeemsToBeTSESLint(parser) {\n return !!parser && /(?:typescript-eslint|\\.\\.)[\\w/\\\\]*parser/.test(parser);\n}\n//# sourceMappingURL=parserSeemsToBeTSESLint.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getParserServices = getParserServices;\nconst parserSeemsToBeTSESLint_1 = require(\"./parserSeemsToBeTSESLint\");\nconst ERROR_MESSAGE_REQUIRES_PARSER_SERVICES = \"You have used a rule which requires type information, but don't have parserOptions set to generate type information for this file. See https://tseslint.com/typed-linting for enabling linting with type information.\";\nconst ERROR_MESSAGE_UNKNOWN_PARSER = 'Note: detected a parser other than @typescript-eslint/parser. Make sure the parser is configured to forward \"parserOptions.project\" to @typescript-eslint/parser.';\nfunction getParserServices(context, allowWithoutFullTypeInformation = false) {\n const parser = \n // eslint-disable-next-line @typescript-eslint/no-deprecated -- For compatibility with ESLint 8\n context.parserPath || context.languageOptions.parser?.meta?.name;\n // This check is unnecessary if the user is using the latest version of our parser.\n //\n // However the world isn't perfect:\n // - Users often use old parser versions.\n // Old versions of the parser would not return any parserServices unless parserOptions.project was set.\n // - Users sometimes use parsers that aren't @typescript-eslint/parser\n // Other parsers won't return the parser services we expect (if they return any at all).\n //\n // This check allows us to handle bad user setups whilst providing a nice user-facing\n // error message explaining the problem.\n if (context.sourceCode.parserServices?.esTreeNodeToTSNodeMap == null ||\n context.sourceCode.parserServices.tsNodeToESTreeNodeMap == null) {\n throwError(parser);\n }\n // if a rule requires full type information, then hard fail if it doesn't exist\n // this forces the user to supply parserOptions.project\n if (context.sourceCode.parserServices.program == null &&\n !allowWithoutFullTypeInformation) {\n throwError(parser);\n }\n return context.sourceCode.parserServices;\n}\n/* eslint-enable @typescript-eslint/unified-signatures */\nfunction throwError(parser) {\n const messages = [\n ERROR_MESSAGE_REQUIRES_PARSER_SERVICES,\n `Parser: ${parser || '(unknown)'}`,\n !(0, parserSeemsToBeTSESLint_1.parserSeemsToBeTSESLint)(parser) && ERROR_MESSAGE_UNKNOWN_PARSER,\n ].filter(Boolean);\n throw new Error(messages.join('\\n'));\n}\n//# sourceMappingURL=getParserServices.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=InferTypesFromRule.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NullThrowsReasons = void 0;\nexports.nullThrows = nullThrows;\n/**\n * A set of common reasons for calling nullThrows\n */\nexports.NullThrowsReasons = {\n MissingParent: 'Expected node to have a parent.',\n MissingToken: (token, thing) => `Expected to find a ${token} for the ${thing}.`,\n};\n/**\n * Assert that a value must not be null or undefined.\n * This is a nice explicit alternative to the non-null assertion operator.\n */\nfunction nullThrows(value, message) {\n if (value == null) {\n throw new Error(`Non-null Assertion Failed: ${message}`);\n }\n return value;\n}\n//# sourceMappingURL=nullThrows.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RuleCreator = RuleCreator;\nconst applyDefault_1 = require(\"./applyDefault\");\n/**\n * Creates reusable function to create rules with default options and docs URLs.\n *\n * @param urlCreator Creates a documentation URL for a given rule name.\n * @returns Function to create a rule with the docs URL format.\n */\nfunction RuleCreator(urlCreator) {\n // This function will get much easier to call when this is merged https://github.com/Microsoft/TypeScript/pull/26349\n // TODO - when the above PR lands; add type checking for the context.report `data` property\n return function createNamedRule({ meta, name, ...rule }) {\n const ruleWithDocs = createRule({\n meta: {\n ...meta,\n docs: {\n ...meta.docs,\n url: urlCreator(name),\n },\n },\n name,\n ...rule,\n });\n return ruleWithDocs;\n };\n}\nfunction createRule({ create, \n// Keep accepting deprecated defaultOptions for backward compatibility.\n// eslint-disable-next-line @typescript-eslint/no-deprecated\ndefaultOptions, meta, name, }) {\n const resolvedDefaultOptions = (meta.defaultOptions ??\n defaultOptions ??\n []);\n return {\n create(context) {\n const optionsWithDefault = (0, applyDefault_1.applyDefault)(resolvedDefaultOptions, context.options);\n return create(context, optionsWithDefault);\n },\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- For compatibility with ESLint 8, see #12842\n defaultOptions,\n meta,\n name,\n };\n}\n/**\n * Creates a well-typed TSESLint custom ESLint rule without a docs URL.\n *\n * @returns Well-typed TSESLint custom ESLint rule.\n * @remarks It is generally better to provide a docs URL function to RuleCreator.\n */\nRuleCreator.withoutDocs = function withoutDocs(args) {\n return createRule(args);\n};\n//# sourceMappingURL=RuleCreator.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./applyDefault\"), exports);\n__exportStar(require(\"./deepMerge\"), exports);\n__exportStar(require(\"./getParserServices\"), exports);\n__exportStar(require(\"./InferTypesFromRule\"), exports);\n__exportStar(require(\"./nullThrows\"), exports);\n__exportStar(require(\"./RuleCreator\"), exports);\n//# sourceMappingURL=index.js.map","export * as ESLintUtils from \"@typescript-eslint/utils/eslint-utils\";\n","import { getDocsUrl } from \"../../utils/get-docs-url.js\";\nimport { createUseClientResolver } from \"../../shared/use-client-resolver.js\";\nimport { DEFAULT_ALLOWED_HOOKS } from \"./constants.js\";\nimport { createViolationDetector } from \"./violation-detector.js\";\nimport { createTransitiveAnalyzer } from \"./transitive-analyzer.js\";\nimport path from \"node:path\";\nimport { ESLintUtils } from \"@typescript-eslint/utils\";\nimport * as ts from \"typescript\";\n//#region src/rules/no-client-code-in-server-component/no-client-code-in-server-component.rule.ts\nvar name = \"no-client-code-in-server-component\";\nvar TRIGGER_HINT = \"Triggered by rendering \\\"{{entry}}\\\".\";\nvar rule = ESLintUtils.RuleCreator(getDocsUrl)({\n\tname,\n\tmeta: {\n\t\ttype: \"problem\",\n\t\tdocs: {\n\t\t\tdescription: \"Disallow client-only code inside server components\",\n\t\t\trecommended: \"error\"\n\t\t},\n\t\tschema: [{\n\t\t\ttype: \"object\",\n\t\t\tproperties: { allowedServerHooks: {\n\t\t\t\ttype: \"array\",\n\t\t\t\titems: { type: \"string\" },\n\t\t\t\tdescription: \"Additional hooks that are allowed in server components (e.g., custom server-safe hooks)\"\n\t\t\t} },\n\t\t\tadditionalProperties: false\n\t\t}],\n\t\tmessages: {\n\t\t\thookInServerComponent: \"\\\"{{name}}\\\" hook {{location}} cannot be used in server components. \" + TRIGGER_HINT + \" To use client functionality, either: (1) pass the client component as a prop/slot to the server component, or (2) move this code to a separate file and add \\\"use client\\\" directive.\",\n\t\t\tbrowserGlobalInServerComponent: \"\\\"{{name}}\\\" browser API {{location}} is not available in server components. \" + TRIGGER_HINT + \" To use client functionality, either: (1) pass the client component as a prop/slot to the server component, or (2) move this code to a separate file and add \\\"use client\\\" directive.\",\n\t\t\teventHandlerInServerComponent: \"\\\"{{name}}\\\" event handler {{location}} cannot be used in server components. \" + TRIGGER_HINT + \" To use client functionality, either: (1) pass the client component as a prop/slot to the server component, or (2) move this code to a separate file and add \\\"use client\\\" directive.\",\n\t\t\tfunctionPropInServerComponent: \"\\\"{{name}}\\\" function prop {{location}} cannot be passed in server components. Functions cannot be serialized from server to client. \" + TRIGGER_HINT + \" To use client functionality, either: (1) pass the client component as a prop/slot to the server component, or (2) move this code to a separate file and add \\\"use client\\\" directive.\",\n\t\t\tclassComponentInServerComponent: \"\\\"{{name}}\\\" class component {{location}} cannot be used in server components. Class components require client-side lifecycle methods. \" + TRIGGER_HINT + \" To use client functionality, either: (1) pass the client component as a prop/slot to the server component, or (2) move this code to a separate file and add \\\"use client\\\" directive.\"\n\t\t}\n\t},\n\tdefaultOptions: [{ allowedServerHooks: [] }],\n\tcreate(context, [options]) {\n\t\tconst services = ESLintUtils.getParserServices(context);\n\t\tconst program = services.program;\n\t\tconst checker = program.getTypeChecker();\n\t\tconst allowedHooks = new Set([...DEFAULT_ALLOWED_HOOKS, ...options.allowedServerHooks]);\n\t\tconst useClientResolver = createUseClientResolver(program);\n\t\tconst violationDetector = createViolationDetector(ts, {\n\t\t\tallowedHooks,\n\t\t\tchecker\n\t\t});\n\t\tconst transitiveAnalyzer = createTransitiveAnalyzer(ts, program, checker, useClientResolver, violationDetector);\n\t\treturn { CallExpression(node) {\n\t\t\tconst sourceFile = services.esTreeNodeToTSNodeMap.get(node).getSourceFile();\n\t\t\tif (useClientResolver.hasUseClientDirective(sourceFile.fileName)) return;\n\t\t\tconst rootKind = getServerRootKind(node);\n\t\t\tif (!rootKind) return;\n\t\t\tif (rootKind === \"createCompositeComponent\") {\n\t\t\t\tconst callback = node.arguments[0];\n\t\t\t\tif (!callback) return;\n\t\t\t\tconst tsNode = services.esTreeNodeToTSNodeMap.get(callback);\n\t\t\t\tif (ts.isFunctionLike(tsNode)) analyzeServerComponentCallback(tsNode, node, rootKind);\n\t\t\t\telse if (ts.isIdentifier(tsNode)) analyzeDirectComponentReference(tsNode, node, rootKind);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst element = node.arguments[0];\n\t\t\tif (!element) return;\n\t\t\tanalyzeServerComponentNode(services.esTreeNodeToTSNodeMap.get(element), node, rootKind);\n\t\t} };\n\t\tfunction getServerRootKind(node) {\n\t\t\tif (node.callee.type === \"Identifier\") {\n\t\t\t\tif (node.callee.name === \"createCompositeComponent\") return \"createCompositeComponent\";\n\t\t\t\tif (node.callee.name === \"renderServerComponent\") return \"renderServerComponent\";\n\t\t\t}\n\t\t\tif (node.callee.type === \"MemberExpression\" && node.callee.property.type === \"Identifier\") {\n\t\t\t\tif (node.callee.property.name === \"createCompositeComponent\") return \"createCompositeComponent\";\n\t\t\t\tif (node.callee.property.name === \"renderServerComponent\") return \"renderServerComponent\";\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tfunction analyzeServerComponentNode(node, eslintNode, rootKind) {\n\t\t\tconst reportedViolations = /* @__PURE__ */ new Set();\n\t\t\tconst sourceFile = node.getSourceFile();\n\t\t\tconst directViolations = violationDetector.detectViolations(sourceFile);\n\t\t\tconst start = node.getStart();\n\t\t\tconst end = node.getEnd();\n\t\t\tfor (const violation of directViolations) {\n\t\t\t\tconst violationPos = violation.node.getStart();\n\t\t\t\tif (violationPos >= start && violationPos <= end) {\n\t\t\t\t\tconst key = `${violation.fileName}:${violation.line}:${violation.name}`;\n\t\t\t\t\tif (!reportedViolations.has(key)) {\n\t\t\t\t\t\treportedViolations.add(key);\n\t\t\t\t\t\treportViolation(violation, [], rootKind, eslintNode);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst componentRefs = findComponentReferences(node);\n\t\t\tfor (const ref of componentRefs) {\n\t\t\t\tconst symbol = checker.getSymbolAtLocation(ref);\n\t\t\t\tif (!symbol) continue;\n\t\t\t\tconst resolvedSymbol = ts.SymbolFlags.Alias & symbol.flags ? checker.getAliasedSymbol(symbol) : symbol;\n\t\t\t\tconst result = transitiveAnalyzer.analyzeEntrySymbol(resolvedSymbol);\n\t\t\t\tif (result.isClientBoundary) continue;\n\t\t\t\tfor (const violation of result.violations) {\n\t\t\t\t\tconst key = `${violation.fileName}:${violation.line}:${violation.name}`;\n\t\t\t\t\tif (!reportedViolations.has(key)) {\n\t\t\t\t\t\treportedViolations.add(key);\n\t\t\t\t\t\treportViolation(violation, violation.chain, rootKind, eslintNode);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfunction analyzeServerComponentCallback(callback, eslintNode, rootKind) {\n\t\t\tconst reportedViolations = /* @__PURE__ */ new Set();\n\t\t\tconst parameterNames = /* @__PURE__ */ new Set();\n\t\t\tfor (const param of callback.parameters) collectParameterBindings(param.name, parameterNames);\n\t\t\tconst body = callback.body;\n\t\t\tif (body) {\n\t\t\t\tconst sourceFile = callback.getSourceFile();\n\t\t\t\tconst directViolations = violationDetector.detectViolations(sourceFile);\n\t\t\t\tconst callbackStart = body.getStart();\n\t\t\t\tconst callbackEnd = body.getEnd();\n\t\t\t\tfor (const violation of directViolations) {\n\t\t\t\t\tconst violationPos = violation.node.getStart();\n\t\t\t\t\tif (violationPos >= callbackStart && violationPos <= callbackEnd) {\n\t\t\t\t\t\tconst key = `${violation.fileName}:${violation.line}:${violation.name}`;\n\t\t\t\t\t\tif (!reportedViolations.has(key)) {\n\t\t\t\t\t\t\treportedViolations.add(key);\n\t\t\t\t\t\t\treportViolation(violation, [], rootKind, eslintNode);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst componentRefs = findComponentReferences(callback);\n\t\t\tfor (const ref of componentRefs) {\n\t\t\t\tif (parameterNames.has(ref.text)) continue;\n\t\t\t\tconst symbol = checker.getSymbolAtLocation(ref);\n\t\t\t\tif (!symbol) continue;\n\t\t\t\tif (symbol.getDeclarations()?.some((d) => isWithinParameters(d, callback))) continue;\n\t\t\t\tconst resolvedSymbol = ts.SymbolFlags.Alias & symbol.flags ? checker.getAliasedSymbol(symbol) : symbol;\n\t\t\t\tconst result = transitiveAnalyzer.analyzeEntrySymbol(resolvedSymbol);\n\t\t\t\tif (result.isClientBoundary) continue;\n\t\t\t\tfor (const violation of result.violations) {\n\t\t\t\t\tconst key = `${violation.fileName}:${violation.line}:${violation.name}`;\n\t\t\t\t\tif (!reportedViolations.has(key)) {\n\t\t\t\t\t\treportedViolations.add(key);\n\t\t\t\t\t\treportViolation(violation, violation.chain, rootKind, eslintNode);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t/**\n\t\t* Analyze a component passed directly to createCompositeComponent(Component)\n\t\t*/\n\t\tfunction analyzeDirectComponentReference(ref, eslintNode, rootKind = \"createCompositeComponent\") {\n\t\t\tconst symbol = checker.getSymbolAtLocation(ref);\n\t\t\tif (!symbol) return;\n\t\t\tconst resolvedSymbol = ts.SymbolFlags.Alias & symbol.flags ? checker.getAliasedSymbol(symbol) : symbol;\n\t\t\tconst result = transitiveAnalyzer.analyzeEntrySymbol(resolvedSymbol);\n\t\t\tif (result.isClientBoundary) return;\n\t\t\tconst reportedViolations = /* @__PURE__ */ new Set();\n\t\t\tfor (const violation of result.violations) {\n\t\t\t\tconst key = `${violation.fileName}:${violation.line}:${violation.name}`;\n\t\t\t\tif (!reportedViolations.has(key)) {\n\t\t\t\t\treportedViolations.add(key);\n\t\t\t\t\treportViolation(violation, violation.chain, rootKind, eslintNode);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t/**\n\t\t* Collect all binding names from a parameter (handles destructuring)\n\t\t*/\n\t\tfunction collectParameterBindings(bindingName, names) {\n\t\t\tfunction collectFromBinding(node) {\n\t\t\t\tif (ts.isIdentifier(node)) names.add(node.text);\n\t\t\t\telse if (ts.isObjectBindingPattern(node)) for (const element of node.elements) collectFromBinding(element.name);\n\t\t\t\telse if (ts.isArrayBindingPattern(node)) {\n\t\t\t\t\tfor (const element of node.elements) if (ts.isBindingElement(element)) collectFromBinding(element.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcollectFromBinding(bindingName);\n\t\t}\n\t\t/**\n\t\t* Check if a declaration is within the parameters of the callback\n\t\t*/\n\t\tfunction isWithinParameters(decl, callback) {\n\t\t\tlet current = decl;\n\t\t\twhile (current) {\n\t\t\t\tif (ts.isParameter(current)) {\n\t\t\t\t\tconst paramParent = current.parent;\n\t\t\t\t\tif (ts.isFunctionLike(paramParent) && paramParent === callback) return true;\n\t\t\t\t}\n\t\t\t\tcurrent = current.parent;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\tfunction findComponentReferences(node) {\n\t\t\tconst refs = [];\n\t\t\tfunction visit(n) {\n\t\t\t\tif (ts.isJsxOpeningElement(n) || ts.isJsxSelfClosingElement(n)) {\n\t\t\t\t\tconst tagName = n.tagName;\n\t\t\t\t\tif (ts.isIdentifier(tagName) && /^[A-Z]/.test(tagName.text)) refs.push(tagName);\n\t\t\t\t}\n\t\t\t\tif (ts.isCallExpression(n)) {\n\t\t\t\t\tconst callee = n.expression;\n\t\t\t\t\tif (ts.isIdentifier(callee) && /^[A-Z]/.test(callee.text)) refs.push(callee);\n\t\t\t\t}\n\t\t\t\tts.forEachChild(n, visit);\n\t\t\t}\n\t\t\tvisit(node);\n\t\t\treturn refs;\n\t\t}\n\t\tfunction reportViolation(violation, chain, entryComponentName, eslintNode) {\n\t\t\tconst location = formatLocation(violation, chain);\n\t\t\tconst messageId = getMessageId(violation.type);\n\t\t\tcontext.report({\n\t\t\t\tnode: eslintNode,\n\t\t\t\tmessageId,\n\t\t\t\tdata: {\n\t\t\t\t\tname: violation.name,\n\t\t\t\t\tlocation,\n\t\t\t\t\tentry: entryComponentName,\n\t\t\t\t\tfileName: getRelativePath(violation.fileName)\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tfunction getMessageId(type) {\n\t\t\tswitch (type) {\n\t\t\t\tcase \"hook\": return \"hookInServerComponent\";\n\t\t\t\tcase \"browser-global\": return \"browserGlobalInServerComponent\";\n\t\t\t\tcase \"event-handler\": return \"eventHandlerInServerComponent\";\n\t\t\t\tcase \"function-prop\": return \"functionPropInServerComponent\";\n\t\t\t\tcase \"class-component\": return \"classComponentInServerComponent\";\n\t\t\t}\n\t\t}\n\t\tfunction formatLocation(violation, chain) {\n\t\t\tif (chain.length > 0) return `(via ${chain.map((e) => getRelativePath(e.toFile)).join(\" -> \")}) at ${getRelativePath(violation.fileName)}:${violation.line}`;\n\t\t\treturn `at ${getRelativePath(violation.fileName)}:${violation.line}`;\n\t\t}\n\t\tfunction getRelativePath(fileName) {\n\t\t\tconst cwd = context.cwd;\n\t\t\treturn path.relative(cwd, fileName);\n\t\t}\n\t}\n});\n//#endregion\nexport { name, rule };\n\n//# sourceMappingURL=no-client-code-in-server-component.rule.js.map","//#region src/rules/no-async-client-component/constants.ts\n/**\n* Route option names that accept component references.\n* These make the referenced component a \"client root\".\n*/\nvar ROUTE_COMPONENT_OPTION_NAMES = [\n\t\"component\",\n\t\"pendingComponent\",\n\t\"errorComponent\",\n\t\"notFoundComponent\"\n];\n/**\n* Function names that create routes (client entry points).\n*/\nvar ROUTE_CREATOR_NAMES = [\n\t\"createFileRoute\",\n\t\"createRootRoute\",\n\t\"createRootRouteWithContext\"\n];\n/**\n* Function names that create server-component roots.\n*/\nvar SERVER_COMPONENT_ROOTS = [\"renderServerComponent\", \"createCompositeComponent\"];\n//#endregion\nexport { ROUTE_COMPONENT_OPTION_NAMES, ROUTE_CREATOR_NAMES, SERVER_COMPONENT_ROOTS };\n\n//# sourceMappingURL=constants.js.map","import { ROUTE_COMPONENT_OPTION_NAMES, ROUTE_CREATOR_NAMES, SERVER_COMPONENT_ROOTS } from \"./constants.js\";\n//#region src/rules/no-async-client-component/render-graph-builder.ts\n/**\n* Builds a render graph from the TypeScript program.\n* Indexes components, JSX edges, server roots, and client roots.\n*/\nfunction createRenderGraphBuilder(tsLib, program, checker) {\n\tconst graph = {\n\t\tcomponents: /* @__PURE__ */ new Map(),\n\t\tedges: [],\n\t\tserverRoots: /* @__PURE__ */ new Set(),\n\t\tclientRoots: /* @__PURE__ */ new Set(),\n\t\tuseClientFiles: /* @__PURE__ */ new Set(),\n\t\trouteOptionUsages: /* @__PURE__ */ new Map(),\n\t\trouteOptionRootsByFile: /* @__PURE__ */ new Map()\n\t};\n\treturn {\n\t\tbuild() {\n\t\t\tfor (const sourceFile of program.getSourceFiles()) {\n\t\t\t\tif (sourceFile.isDeclarationFile) continue;\n\t\t\t\tif (sourceFile.fileName.includes(\"node_modules\")) continue;\n\t\t\t\tif (!fileCanContribute(sourceFile)) continue;\n\t\t\t\tprocessSourceFile(sourceFile);\n\t\t\t}\n\t\t\treturn graph;\n\t\t},\n\t\tgetGraph() {\n\t\t\treturn graph;\n\t\t}\n\t};\n\t/**\n\t* Quick text-based check to skip files that can't contribute edges or roots.\n\t* A file can contribute if it might have:\n\t* - JSX (components, edges)\n\t* - 'use client' directive (client roots)\n\t* - createFileRoute/createRootRoute (route-option roots)\n\t* - renderServerComponent/createCompositeComponent (server roots)\n\t\n\t*/\n\tfunction fileCanContribute(sourceFile) {\n\t\tconst text = sourceFile.text;\n\t\tconst hasJsx = text.includes(\"<\") && (text.includes(\"/>\") || text.includes(\"</\"));\n\t\tconst hasUseClient = text.includes(\"use client\");\n\t\tconst hasRouteCreator = text.includes(\"createFileRoute\") || text.includes(\"createRootRoute\") || text.includes(\"createRootRouteWithContext\");\n\t\tconst hasServerComponentRoot = SERVER_COMPONENT_ROOTS.some((name) => text.includes(name));\n\t\treturn hasJsx || hasUseClient || hasRouteCreator || hasServerComponentRoot;\n\t}\n\tfunction processSourceFile(sourceFile) {\n\t\tif (hasUseClientDirective(sourceFile)) graph.useClientFiles.add(sourceFile.fileName);\n\t\tvisitNode(sourceFile, sourceFile, null);\n\t}\n\tfunction hasUseClientDirective(sourceFile) {\n\t\tconst firstStatement = sourceFile.statements[0];\n\t\tif (!firstStatement) return false;\n\t\tif (tsLib.isExpressionStatement(firstStatement) && tsLib.isStringLiteral(firstStatement.expression) && firstStatement.expression.text === \"use client\") return true;\n\t\treturn false;\n\t}\n\tfunction visitNode(node, sourceFile, currentComponent) {\n\t\tif (tsLib.isFunctionDeclaration(node) && node.name) {\n\t\t\tif (isPascalCase(node.name.text)) {\n\t\t\t\tconst key = makeKey(sourceFile.fileName, node.name.text);\n\t\t\t\tgraph.components.set(key, {\n\t\t\t\t\tname: node.name.text,\n\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\tnode,\n\t\t\t\t\tisAsync: hasAsyncModifier(node),\n\t\t\t\t\tline: getLine(sourceFile, node)\n\t\t\t\t});\n\t\t\t\tif (graph.useClientFiles.has(sourceFile.fileName)) graph.clientRoots.add(key);\n\t\t\t\tif (node.body) tsLib.forEachChild(node.body, (child) => visitNode(child, sourceFile, key));\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (tsLib.isVariableStatement(node)) {\n\t\t\tfor (const decl of node.declarationList.declarations) if (tsLib.isIdentifier(decl.name) && isPascalCase(decl.name.text) && decl.initializer && isFunctionLike(decl.initializer)) {\n\t\t\t\tconst key = makeKey(sourceFile.fileName, decl.name.text);\n\t\t\t\tgraph.components.set(key, {\n\t\t\t\t\tname: decl.name.text,\n\t\t\t\t\tfileName: sourceFile.fileName,\n\t\t\t\t\tnode: decl,\n\t\t\t\t\tisAsync: isAsyncFunctionLike(decl.initializer),\n\t\t\t\t\tline: getLine(sourceFile, decl)\n\t\t\t\t});\n\t\t\t\tif (graph.useClientFiles.has(sourceFile.fileName)) graph.clientRoots.add(key);\n\t\t\t\tconst funcNode = decl.initializer;\n\t\t\t\ttsLib.forEachChild(funcNode.body, (child) => visitNode(child, sourceFile, key));\n\t\t\t} else if (decl.initializer) visitNode(decl.initializer, sourceFile, currentComponent);\n\t\t\treturn;\n\t\t}\n\t\tif (tsLib.isCallExpression(node)) {\n\t\t\tconst serverRootKind = getServerRootKind(node, checker);\n\t\t\tif (serverRootKind === \"createCompositeComponent\") {\n\t\t\t\tconst callback = node.arguments[0];\n\t\t\t\tif (callback && isFunctionLike(callback)) collectJsxComponentRefs(callback, sourceFile, currentComponent, true);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (serverRootKind === \"renderServerComponent\") {\n\t\t\t\tconst element = node.arguments[0];\n\t\t\t\tif (element) collectJsxComponentRefs(element, sourceFile, currentComponent, true);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (tsLib.isCallExpression(node)) {\n\t\t\tconst routeOptions = getRouteOptionsObject(node);\n\t\t\tif (routeOptions) {\n\t\t\t\tfor (const prop of routeOptions.properties) if (tsLib.isPropertyAssignment(prop) && tsLib.isIdentifier(prop.name) && ROUTE_COMPONENT_OPTION_NAMES.includes(prop.name.text)) markAsClientRoot(prop.initializer, sourceFile, currentComponent, prop);\n\t\t\t}\n\t\t}\n\t\tif (tsLib.isJsxOpeningElement(node) || tsLib.isJsxSelfClosingElement(node)) {\n\t\t\tconst tagName = node.tagName;\n\t\t\tif (tsLib.isIdentifier(tagName) && isPascalCase(tagName.text)) {\n\t\t\t\tconst symbol = checker.getSymbolAtLocation(tagName);\n\t\t\t\tif (symbol) {\n\t\t\t\t\tconst resolved = resolveSymbol(symbol);\n\t\t\t\t\tif (resolved) {\n\t\t\t\t\t\tconst decls = resolved.getDeclarations();\n\t\t\t\t\t\tif (decls && decls.length > 0) {\n\t\t\t\t\t\t\tconst declFile = decls[0].getSourceFile().fileName;\n\t\t\t\t\t\t\tconst toKey = makeKey(declFile, tagName.text);\n\t\t\t\t\t\t\tif (currentComponent) graph.edges.push({\n\t\t\t\t\t\t\t\tfromFile: sourceFile.fileName,\n\t\t\t\t\t\t\t\tfromComponent: currentComponent.split(\":\")[1],\n\t\t\t\t\t\t\t\ttoFile: declFile,\n\t\t\t\t\t\t\t\ttoComponent: tagName.text,\n\t\t\t\t\t\t\t\ttoComponentKey: toKey,\n\t\t\t\t\t\t\t\tjsxNode: node,\n\t\t\t\t\t\t\t\tjsxLine: getLine(sourceFile, node)\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ttsLib.forEachChild(node, (child) => visitNode(child, sourceFile, currentComponent));\n\t}\n\tfunction getServerRootKind(node, _checker) {\n\t\tif (tsLib.isIdentifier(node.expression)) {\n\t\t\tconst name = node.expression.text;\n\t\t\treturn SERVER_COMPONENT_ROOTS.includes(name) ? name : null;\n\t\t}\n\t\tif (tsLib.isPropertyAccessExpression(node.expression) && tsLib.isIdentifier(node.expression.name)) {\n\t\t\tconst name = node.expression.name.text;\n\t\t\treturn SERVER_COMPONENT_ROOTS.includes(name) ? name : null;\n\t\t}\n\t\treturn null;\n\t}\n\tfunction getRouteOptionsObject(node) {\n\t\tconst optionsArg = node.arguments[0];\n\t\tif (!optionsArg || !tsLib.isObjectLiteralExpression(optionsArg)) return;\n\t\tconst routeCreator = findRouteCreatorFromCallee(node.expression);\n\t\tif (!routeCreator) return;\n\t\tconst routeCreatorName = tsLib.isIdentifier(routeCreator) ? routeCreator.text : routeCreator.name.text;\n\t\tif (ROUTE_CREATOR_NAMES.includes(routeCreatorName)) return optionsArg;\n\t}\n\tfunction findRouteCreatorFromCallee(expr) {\n\t\tif (tsLib.isParenthesizedExpression(expr)) return findRouteCreatorFromCallee(expr.expression);\n\t\tif (tsLib.isCallExpression(expr)) return findRouteCreatorFromCallee(expr.expression);\n\t\tif (tsLib.isPropertyAccessExpression(expr)) {\n\t\t\tif (tsLib.isIdentifier(expr.name)) {\n\t\t\t\tif (ROUTE_CREATOR_NAMES.includes(expr.name.text)) return expr;\n\t\t\t}\n\t\t\treturn findRouteCreatorFromCallee(expr.expression);\n\t\t}\n\t\tif (tsLib.isIdentifier(expr)) return expr;\n\t}\n\tfunction markAsClientRoot(node, sourceFile, _currentComponent, usageNode) {\n\t\tif (tsLib.isIdentifier(node)) {\n\t\t\tconst componentName = node.text;\n\t\t\tconst symbol = checker.getSymbolAtLocation(node);\n\t\t\tif (symbol) {\n\t\t\t\tconst resolved = resolveSymbol(symbol);\n\t\t\t\tif (resolved) {\n\t\t\t\t\tconst decls = resolved.getDeclarations();\n\t\t\t\t\tif (decls && decls.length > 0) {\n\t\t\t\t\t\tconst declFile = decls[0].getSourceFile().fileName;\n\t\t\t\t\t\tconst key = makeKey(declFile, componentName);\n\t\t\t\t\t\tgraph.clientRoots.add(key);\n\t\t\t\t\t\tif (usageNode) {\n\t\t\t\t\t\t\tgraph.routeOptionUsages.set(key, {\n\t\t\t\t\t\t\t\tcomponentKey: key,\n\t\t\t\t\t\t\t\tusageNode,\n\t\t\t\t\t\t\t\tusageLine: getLine(sourceFile, usageNode),\n\t\t\t\t\t\t\t\tfileName: sourceFile.fileName\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\taddToRouteOptionRootsByFile(sourceFile.fileName, key);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst fallbackKey = makeKey(sourceFile.fileName, componentName);\n\t\t\tgraph.clientRoots.add(fallbackKey);\n\t\t\tif (usageNode) {\n\t\t\t\tgraph.routeOptionUsages.set(fallbackKey, {\n\t\t\t\t\tcomponentKey: fallbackKey,\n\t\t\t\t\tusageNode,\n\t\t\t\t\tusageLine: getLine(sourceFile, usageNode),\n\t\t\t\t\tfileName: sourceFile.fileName\n\t\t\t\t});\n\t\t\t\taddToRouteOptionRootsByFile(sourceFile.fileName, fallbackKey);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (isFunctionLike(node)) collectJsxComponentRefs(node, sourceFile, null, false, usageNode);\n\t}\n\tfunction collectJsxComponentRefs(node, sourceFile, _currentComponent, isServerContext, usageNode) {\n\t\tfunction walk(n) {\n\t\t\tif (tsLib.isJsxOpeningElement(n) || tsLib.isJsxSelfClosingElement(n)) {\n\t\t\t\tconst tagName = n.tagName;\n\t\t\t\tif (tsLib.isIdentifier(tagName) && isPascalCase(tagName.text)) {\n\t\t\t\t\tconst symbol = checker.getSymbolAtLocation(tagName);\n\t\t\t\t\tif (symbol) {\n\t\t\t\t\t\tconst resolved = resolveSymbol(symbol);\n\t\t\t\t\t\tif (resolved) {\n\t\t\t\t\t\t\tconst decls = resolved.getDeclarations();\n\t\t\t\t\t\t\tif (decls && decls.length > 0) {\n\t\t\t\t\t\t\t\tconst declFile = decls[0].getSourceFile().fileName;\n\t\t\t\t\t\t\t\tconst key = makeKey(declFile, tagName.text);\n\t\t\t\t\t\t\t\tif (isServerContext) graph.serverRoots.add(key);\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tgraph.clientRoots.add(key);\n\t\t\t\t\t\t\t\t\tconst effectiveUsageNode = usageNode ?? n;\n\t\t\t\t\t\t\t\t\tgraph.routeOptionUsages.set(key, {\n\t\t\t\t\t\t\t\t\t\tcomponentKey: key,\n\t\t\t\t\t\t\t\t\t\tusageNode: effectiveUsageNode,\n\t\t\t\t\t\t\t\t\t\tusageLine: getLine(sourceFile, effectiveUsageNode),\n\t\t\t\t\t\t\t\t\t\tfileName: sourceFile.fileName\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\taddToRouteOptionRootsByFile(sourceFile.fileName, key);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ttsLib.forEachChild(n, walk);\n\t\t}\n\t\twalk(node);\n\t}\n\tfunction resolveSymbol(symbol) {\n\t\tif (symbol.flags & tsLib.SymbolFlags.Alias) return checker.getAliasedSymbol(symbol);\n\t\treturn symbol;\n\t}\n\tfunction isPascalCase(name) {\n\t\treturn /^[A-Z]/.test(name);\n\t}\n\tfunction hasAsyncModifier(node) {\n\t\treturn node.modifiers?.some((mod) => mod.kind === tsLib.SyntaxKind.AsyncKeyword) ?? false;\n\t}\n\tfunction isFunctionLike(node) {\n\t\treturn tsLib.isArrowFunction(node) || tsLib.isFunctionExpression(node) || tsLib.isFunctionDeclaration(node);\n\t}\n\tfunction isAsyncFunctionLike(node) {\n\t\tif (tsLib.isArrowFunction(node) || tsLib.isFunctionExpression(node)) return hasAsyncModifier(node);\n\t\treturn false;\n\t}\n\tfunction makeKey(fileName, componentName) {\n\t\treturn `${fileName}:${componentName}`;\n\t}\n\tfunction getLine(sourceFile, node) {\n\t\treturn sourceFile.getLineAndCharacterOfPosition(node.getStart()).line + 1;\n\t}\n\tfunction addToRouteOptionRootsByFile(fileName, key) {\n\t\tlet set = graph.routeOptionRootsByFile.get(fileName);\n\t\tif (!set) {\n\t\t\tset = /* @__PURE__ */ new Set();\n\t\t\tgraph.routeOptionRootsByFile.set(fileName, set);\n\t\t}\n\t\tset.add(key);\n\t}\n}\n//#endregion\nexport { createRenderGraphBuilder };\n\n//# sourceMappingURL=render-graph-builder.js.map","//#region src/rules/no-async-client-component/context-analyzer.ts\n/**\n* Analyzes the render graph to propagate server/client context.\n*\n* Algorithm:\n* 1. Mark server roots as server context, propagate to descendants\n* 2. Stop propagation at 'use client' boundaries\n* 3. Mark client roots as client context, propagate to descendants\n* 4. Components reachable from both => client wins (tainted)\n\n*/\nfunction analyzeContext(graph) {\n\tconst contexts = /* @__PURE__ */ new Map();\n\tfor (const [key, component] of graph.components) contexts.set(key, {\n\t\tkey,\n\t\tcomponent,\n\t\tisServerContext: false,\n\t\tisClientContext: false\n\t});\n\tconst adjacency = buildAdjacencyList(graph.edges);\n\tconst serverVisited = /* @__PURE__ */ new Set();\n\tfor (const serverRoot of graph.serverRoots) propagateServerContext(serverRoot, serverVisited, graph, contexts, adjacency);\n\tconst clientVisited = /* @__PURE__ */ new Set();\n\tfor (const clientRoot of graph.clientRoots) {\n\t\tconst ctx = contexts.get(clientRoot);\n\t\tif (!ctx) continue;\n\t\tlet reason;\n\t\tif (graph.useClientFiles.has(ctx.component.fileName)) reason = {\n\t\t\ttype: \"use-client\",\n\t\t\tfileName: ctx.component.fileName\n\t\t};\n\t\telse {\n\t\t\tconst routeUsage = graph.routeOptionUsages.get(clientRoot);\n\t\t\treason = {\n\t\t\t\ttype: \"route-option\",\n\t\t\t\tfileName: ctx.component.fileName,\n\t\t\t\tusageFile: routeUsage?.fileName,\n\t\t\t\tusageNode: routeUsage?.usageNode,\n\t\t\t\tusageLine: routeUsage?.usageLine\n\t\t\t};\n\t\t}\n\t\tpropagateClientContext(clientRoot, clientVisited, contexts, adjacency, reason);\n\t}\n\tfor (const [_key, ctx] of contexts) if (graph.useClientFiles.has(ctx.component.fileName) && !ctx.isClientContext) {\n\t\tctx.isClientContext = true;\n\t\tctx.clientReason = {\n\t\t\ttype: \"use-client\",\n\t\t\tfileName: ctx.component.fileName\n\t\t};\n\t}\n\tconst clientEdges = [];\n\tfor (const edge of graph.edges) {\n\t\tconst fromKey = `${edge.fromFile}:${edge.fromComponent}`;\n\t\tif (contexts.get(fromKey)?.isClientContext) clientEdges.push(edge);\n\t}\n\treturn {\n\t\tcontexts,\n\t\tclientEdges\n\t};\n}\nfunction buildAdjacencyList(edges) {\n\tconst adj = /* @__PURE__ */ new Map();\n\tfor (const edge of edges) {\n\t\tconst fromKey = `${edge.fromFile}:${edge.fromComponent}`;\n\t\tif (!adj.has(fromKey)) adj.set(fromKey, []);\n\t\tadj.get(fromKey).push(edge);\n\t}\n\treturn adj;\n}\nfunction propagateServerContext(key, visited, graph, contexts, adjacency) {\n\tif (visited.has(key)) return;\n\tvisited.add(key);\n\tconst ctx = contexts.get(key);\n\tif (!ctx) return;\n\tif (graph.useClientFiles.has(ctx.component.fileName)) {\n\t\tctx.isClientContext = true;\n\t\tctx.clientReason = {\n\t\t\ttype: \"use-client\",\n\t\t\tfileName: ctx.component.fileName\n\t\t};\n\t\treturn;\n\t}\n\tctx.isServerContext = true;\n\tconst edges = adjacency.get(key) ?? [];\n\tfor (const edge of edges) propagateServerContext(edge.toComponentKey, visited, graph, contexts, adjacency);\n}\nfunction propagateClientContext(key, visited, contexts, adjacency, reason) {\n\tif (visited.has(key)) return;\n\tvisited.add(key);\n\tconst ctx = contexts.get(key);\n\tif (!ctx) return;\n\tctx.isClientContext = true;\n\tif (!ctx.clientReason) ctx.clientReason = reason;\n\tconst edges = adjacency.get(key) ?? [];\n\tfor (const edge of edges) propagateClientContext(edge.toComponentKey, visited, contexts, adjacency, {\n\t\ttype: \"rendered-by-client\",\n\t\tparentComponent: ctx.component.name,\n\t\tparentFile: ctx.component.fileName\n\t});\n}\n//#endregion\nexport { analyzeContext };\n\n//# sourceMappingURL=context-analyzer.js.map","import { getDocsUrl } from \"../../utils/get-docs-url.js\";\nimport { createRenderGraphBuilder } from \"./render-graph-builder.js\";\nimport { analyzeContext } from \"./context-analyzer.js\";\nimport path from \"node:path\";\nimport { ESLintUtils } from \"@typescript-eslint/utils\";\nimport * as ts from \"typescript\";\n//#region src/rules/no-async-client-component/no-async-client-component.rule.ts\nvar name = \"no-async-client-component\";\nvar perProgramCache = /* @__PURE__ */ new WeakMap();\nvar onDemandCache = /* @__PURE__ */ new WeakMap();\nvar adjacencyCache = /* @__PURE__ */ new WeakMap();\nvar rule = ESLintUtils.RuleCreator(getDocsUrl)({\n\tname,\n\tmeta: {\n\t\ttype: \"problem\",\n\t\tdocs: {\n\t\t\tdescription: \"Disallow async components in client context. Async components are only valid inside server components.\",\n\t\t\trecommended: \"error\"\n\t\t},\n\t\tschema: [{\n\t\t\ttype: \"object\",\n\t\t\tproperties: { ignorePatterns: {\n\t\t\t\ttype: \"array\",\n\t\t\t\titems: { type: \"string\" },\n\t\t\t\tdescription: \"File patterns to ignore\"\n\t\t\t} },\n\t\t\tadditionalProperties: false\n\t\t}],\n\t\tmessages: {\n\t\t\tasyncClientComponentDefinition: \"Async component \\\"{{name}}\\\" cannot be used in client context. Async components are only valid inside server components. Either remove \\\"async\\\" or ensure this component is only rendered within server components. {{reason}}\",\n\t\t\tasyncClientComponentUsage: \"Async component \\\"{{name}}\\\" is rendered in client context here. Async components are only valid inside server components. Move this to a server component or use a non-async version.\"\n\t\t}\n\t},\n\tdefaultOptions: [{ ignorePatterns: [] }],\n\tcreate(context, [options]) {\n\t\tconst services = ESLintUtils.getParserServices(context);\n\t\tconst program = services.program;\n\t\tconst checker = program.getTypeChecker();\n\t\tconst currentFile = path.isAbsolute(context.filename) ? context.filename : path.resolve(context.cwd, context.filename);\n\t\tif (shouldIgnore(currentFile, [...options.ignorePatterns])) return {};\n\t\tlet cached = perProgramCache.get(program);\n\t\tif (!cached) {\n\t\t\tcached = {\n\t\t\t\tbuilder: createRenderGraphBuilder(ts, program, checker),\n\t\t\t\tgraphBuilt: false\n\t\t\t};\n\t\t\tperProgramCache.set(program, cached);\n\t\t}\n\t\tconst reported = /* @__PURE__ */ new Set();\n\t\treturn { Program() {\n\t\t\tconst sourceFile = program.getSourceFile(currentFile);\n\t\t\tif (!sourceFile) return;\n\t\t\tif (fileContainsRouteOptions(sourceFile)) {}\n\t\t\tconst analysis = getOnDemandAnalysis(currentFile);\n\t\t\tfor (const [key, ctx] of analysis.contexts) {\n\t\t\t\tif (!ctx.component.isAsync || !ctx.isClientContext) continue;\n\t\t\t\tconst reportKey = `def:${key}`;\n\t\t\t\tif (reported.has(reportKey)) continue;\n\t\t\t\tif (ctx.clientReason?.type === \"route-option\") {\n\t\t\t\t\tconst usageFile = ctx.clientReason.usageFile;\n\t\t\t\t\tif (usageFile && usageFile === currentFile) {\n\t\t\t\t\t\tconst usageTsNode = ctx.clientReason.usageNode;\n\t\t\t\t\t\tconst usageEslintNode = services.tsNodeToESTreeNodeMap.get(usageTsNode);\n\t\t\t\t\t\tif (usageEslintNode) {\n\t\t\t\t\t\t\treported.add(reportKey);\n\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\tnode: usageEslintNode,\n\t\t\t\t\t\t\t\tmessageId: \"asyncClientComponentDefinition\",\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\tname: ctx.component.name,\n\t\t\t\t\t\t\t\t\treason: formatReason(ctx.clientReason, context.cwd)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\treported.add(reportKey);\n\t\t\t\tconst tsNode = ctx.component.node;\n\t\t\t\tconst eslintNode = services.tsNodeToESTreeNodeMap.get(tsNode);\n\t\t\t\tif (eslintNode) context.report({\n\t\t\t\t\tnode: eslintNode,\n\t\t\t\t\tmessageId: \"asyncClientComponentDefinition\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tname: ctx.component.name,\n\t\t\t\t\t\treason: ctx.clientReason ? formatReason(ctx.clientReason, context.cwd) : \"\"\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tfor (const edge of analysis.clientEdges) {\n\t\t\t\tif (!analysis.contexts.get(edge.toComponentKey)?.component.isAsync) continue;\n\t\t\t\tif (edge.fromFile !== currentFile) continue;\n\t\t\t\tconst reportKey = `usage:${edge.fromFile}:${edge.jsxLine}:${edge.toComponent}`;\n\t\t\t\tif (reported.has(reportKey)) continue;\n\t\t\t\treported.add(reportKey);\n\t\t\t\tconst eslintNode = services.tsNodeToESTreeNodeMap.get(edge.jsxNode);\n\t\t\t\tif (eslintNode) context.report({\n\t\t\t\t\tnode: eslintNode,\n\t\t\t\t\tmessageId: \"asyncClientComponentUsage\",\n\t\t\t\t\tdata: { name: edge.toComponent }\n\t\t\t\t});\n\t\t\t}\n\t\t} };\n\t\tfunction shouldIgnore(filePath, patterns) {\n\t\t\tfor (const pattern of patterns) if (filePath.includes(pattern)) return true;\n\t\t\treturn false;\n\t\t}\n\t\tfunction formatReason(reason, cwd) {\n\t\t\tswitch (reason.type) {\n\t\t\t\tcase \"use-client\": return `File has \"use client\" directive.`;\n\t\t\t\tcase \"route-option\": return `Component is referenced by a route option (createFileRoute/createRootRoute).`;\n\t\t\t\tcase \"rendered-by-client\": return `Rendered by client component \"${reason.parentComponent}\" in ${path.relative(cwd, reason.parentFile)}.`;\n\t\t\t}\n\t\t}\n\t\tfunction getOnDemandAnalysis(entryFile) {\n\t\t\tlet programCache = onDemandCache.get(program);\n\t\t\tif (!programCache) {\n\t\t\t\tprogramCache = /* @__PURE__ */ new Map();\n\t\t\t\tonDemandCache.set(program, programCache);\n\t\t\t}\n\t\t\tconst cachedResult = programCache.get(entryFile);\n\t\t\tif (cachedResult) return cachedResult.analysis;\n\t\t\tif (!cached.graphBuilt) {\n\t\t\t\tcached.builder.build();\n\t\t\t\tcached.graphBuilt = true;\n\t\t\t}\n\t\t\tconst full = cached.builder.getGraph();\n\t\t\tconst subgraph = sliceGraphForEntryFile(full, entryFile);\n\t\t\tconst entrySourceFile = program.getSourceFile(entryFile);\n\t\t\tconst analysis = !!entrySourceFile && subgraph.clientRoots.size === 0 && subgraph.serverRoots.size === 0 ? analyzeContext(full) : analyzeContext(subgraph);\n\t\t\tprogramCache.set(entryFile, {\n\t\t\t\tgraph: subgraph,\n\t\t\t\tanalysis\n\t\t\t});\n\t\t\treturn analysis;\n\t\t}\n\t\tfunction sliceGraphForEntryFile(full, entryFile) {\n\t\t\tconst components = full.components;\n\t\t\tconst edges = full.edges;\n\t\t\tconst serverRoots = full.serverRoots;\n\t\t\tconst clientRoots = full.clientRoots;\n\t\t\tconst useClientFiles = full.useClientFiles;\n\t\t\tconst routeOptionUsages = full.routeOptionUsages;\n\t\t\tconst entryClientRoots = /* @__PURE__ */ new Set();\n\t\t\tconst entryServerRoots = /* @__PURE__ */ new Set();\n\t\t\tconst routeRootsInFile = routeOptionUsages.size > 0 ? full.routeOptionRootsByFile.get(entryFile) : void 0;\n\t\t\tif (routeRootsInFile) {\n\t\t\t\tfor (const key of routeRootsInFile) if (clientRoots.has(key)) entryClientRoots.add(key);\n\t\t\t}\n\t\t\tfor (const key of serverRoots) if (components.get(key)?.fileName === entryFile) entryServerRoots.add(key);\n\t\t\tif (useClientFiles.has(entryFile)) {\n\t\t\t\tfor (const [key, component] of components) if (component.fileName === entryFile) entryClientRoots.add(key);\n\t\t\t}\n\t\t\tconst reachable = /* @__PURE__ */ new Set();\n\t\t\tconst queue = [];\n\t\t\tfor (const r of entryClientRoots) queue.push(r);\n\t\t\tfor (const r of entryServerRoots) queue.push(r);\n\t\t\tconst adjacency = getAdjacency(full);\n\t\t\twhile (queue.length) {\n\t\t\t\tconst key = queue.pop();\n\t\t\t\tif (reachable.has(key)) continue;\n\t\t\t\treachable.add(key);\n\t\t\t\tconst children = adjacency.get(key);\n\t\t\t\tif (!children) continue;\n\t\t\t\tfor (const toKey of children) if (!reachable.has(toKey)) queue.push(toKey);\n\t\t\t}\n\t\t\tconst subComponents = /* @__PURE__ */ new Map();\n\t\t\tfor (const key of reachable) {\n\t\t\t\tconst comp = components.get(key);\n\t\t\t\tif (comp) subComponents.set(key, comp);\n\t\t\t}\n\t\t\tconst subEdges = edges.filter((edge) => {\n\t\t\t\tconst fromKey = `${edge.fromFile}:${edge.fromComponent}`;\n\t\t\t\treturn reachable.has(fromKey) && reachable.has(edge.toComponentKey);\n\t\t\t});\n\t\t\tconst subServerRoots = new Set([...entryServerRoots].filter((k) => reachable.has(k)));\n\t\t\tconst subClientRoots = new Set([...entryClientRoots].filter((k) => reachable.has(k)));\n\t\t\tconst subRouteOptionUsages = /* @__PURE__ */ new Map();\n\t\t\tconst subRouteOptionRootsByFile = /* @__PURE__ */ new Map();\n\t\t\tfor (const key of subClientRoots) {\n\t\t\t\tconst usage = routeOptionUsages.get(key);\n\t\t\t\tif (usage) {\n\t\t\t\t\tsubRouteOptionUsages.set(key, usage);\n\t\t\t\t\tlet set = subRouteOptionRootsByFile.get(usage.fileName);\n\t\t\t\t\tif (!set) {\n\t\t\t\t\t\tset = /* @__PURE__ */ new Set();\n\t\t\t\t\t\tsubRouteOptionRootsByFile.set(usage.fileName, set);\n\t\t\t\t\t}\n\t\t\t\t\tset.add(key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tcomponents: subComponents,\n\t\t\t\tedges: subEdges,\n\t\t\t\tserverRoots: subServerRoots,\n\t\t\t\tclientRoots: subClientRoots,\n\t\t\t\tuseClientFiles,\n\t\t\t\trouteOptionUsages: subRouteOptionUsages,\n\t\t\t\trouteOptionRootsByFile: subRouteOptionRootsByFile\n\t\t\t};\n\t\t}\n\t\tfunction getAdjacency(full) {\n\t\t\tlet cachedAdjacency = adjacencyCache.get(program);\n\t\t\tif (cachedAdjacency) return cachedAdjacency;\n\t\t\tcachedAdjacency = /* @__PURE__ */ new Map();\n\t\t\tfor (const edge of full.edges) {\n\t\t\t\tconst fromKey = `${edge.fromFile}:${edge.fromComponent}`;\n\t\t\t\tlet set = cachedAdjacency.get(fromKey);\n\t\t\t\tif (!set) {\n\t\t\t\t\tset = /* @__PURE__ */ new Set();\n\t\t\t\t\tcachedAdjacency.set(fromKey, set);\n\t\t\t\t}\n\t\t\t\tset.add(edge.toComponentKey);\n\t\t\t}\n\t\t\tadjacencyCache.set(program, cachedAdjacency);\n\t\t\treturn cachedAdjacency;\n\t\t}\n\t\tfunction fileHasUseClientDirective(sourceFile) {\n\t\t\tconst firstStmt = sourceFile.statements[0];\n\t\t\tif (!firstStmt) return false;\n\t\t\treturn ts.isExpressionStatement(firstStmt) && ts.isStringLiteral(firstStmt.expression) && firstStmt.expression.text === \"use client\";\n\t\t}\n\t\tfunction fileContainsServerComponentRoots(sourceFile) {\n\t\t\tconst text = sourceFile.text;\n\t\t\treturn text.includes(\"renderServerComponent\") || text.includes(\"createCompositeComponent\");\n\t\t}\n\t\tfunction fileContainsRouteOptions(sourceFile) {\n\t\t\tconst text = sourceFile.text;\n\t\t\tif (!text.includes(\"createFileRoute\") && !text.includes(\"createRootRoute\") && !text.includes(\"createRootRouteWithContext\")) return false;\n\t\t\treturn text.includes(\"component\") || text.includes(\"pendingComponent\") || text.includes(\"errorComponent\") || text.includes(\"notFoundComponent\");\n\t\t}\n\t}\n});\n//#endregion\nexport { name, rule };\n\n//# sourceMappingURL=no-async-client-component.rule.js.map","import { name, rule } from \"./rules/no-client-code-in-server-component/no-client-code-in-server-component.rule.js\";\nimport { name as name$1, rule as rule$1 } from \"./rules/no-async-client-component/no-async-client-component.rule.js\";\n//#region src/rules.ts\nvar rules = {\n\t[name]: rule,\n\t[name$1]: rule$1\n};\n//#endregion\nexport { rules };\n\n//# sourceMappingURL=rules.js.map","import { rules } from \"./rules.js\";\n//#region src/index.ts\nvar plugin = {\n\tmeta: { name: \"@tanstack/eslint-plugin-start\" },\n\tconfigs: {},\n\trules\n};\nObject.assign(plugin.configs, {\n\trecommended: {\n\t\tplugins: [\"@tanstack/eslint-plugin-start\"],\n\t\trules: {\n\t\t\t\"@tanstack/start/no-client-code-in-server-component\": \"error\",\n\t\t\t\"@tanstack/start/no-async-client-component\": \"error\"\n\t\t}\n\t},\n\t\"flat/recommended\": [{\n\t\tplugins: { \"@tanstack/start\": plugin },\n\t\trules: {\n\t\t\t\"@tanstack/start/no-client-code-in-server-component\": \"error\",\n\t\t\t\"@tanstack/start/no-async-client-component\": \"error\"\n\t\t}\n\t}]\n});\n//#endregion\nexport { plugin as default };\n\n//# sourceMappingURL=index.js.map","import tanstackStart from \"@tanstack/eslint-plugin-start\";\nimport type { Plugin } from \"vite-plus/lint/plugins\";\n\nimport { typedRules } from \"./typed-rule.ts\";\n\nconst plugin: Plugin = {\n meta: { name: \"tanstack-start\" },\n rules: typedRules(tanstackStart.rules),\n};\n\nexport default plugin;\n"],"ignoreList":[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,23],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAI,cAAc,aAAa,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGhF,MAAM,sCAA+C,IAAI,IAAI;CAC3D,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;AACb,CAAC;AAED,MAAM,kBAAkB,SACtB,OAAO,cAAc,IAAI,CAAC,CAAC,KAAK,OAAO,QAAQ,EAAE,WAAW,oBAAoB,IAAI,IAAI,CAAC,CAAC;AAE5F,MAAM,eAGF,SAAS,MACV,SACCA,QAAI,KAAKA,QAAI,aAAa,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,OAAO,UAAU,IAAI,UAAU,UAAU,CAAC,CAAC,IACjF,MAAY,UACnB,KAAK,aAAa,KAAK,CAC3B;;;;;AC3BA,SAAS,wBAAwB,SAAS;CACzC,SAAS,sBAAsB,UAAU;EACxC,MAAM,aAAa,QAAQ,cAAc,QAAQ;EACjD,IAAI,CAAC,YAAY,OAAO;EACxB,MAAM,YAAY,WAAW,WAAW;EACxC,IAAI,CAAC,WAAW,OAAO;EACvB,IAAIC,sBAAyB,SAAS,KAAKC,gBAAmB,UAAU,UAAU,GAAG,OAAO,UAAU,WAAW,SAAS;EAC1H,OAAO;CACR;CACA,OAAO,EAAE,sBAAsB;AAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CEdA,OAAO,UAAA,kBAAA;;;;;ACIP,IAAI,wCAAwB,IAAI,IAAI,CAAC,OAAO,CAAC;;;;;AAK7C,IAAI,8BAA8B;CACjC,MAAM,iBAAiB,OAAO,KAAKC,eAAAA,QAAQ,OAAO;CAClD,MAAM,cAAc,IAAI,IAAI,OAAO,KAAKA,eAAAA,QAAQ,IAAI,CAAC;CACrD,MAAM,8BAA8B,IAAI,IAAI;CAC5C,KAAK,MAAM,QAAQ,gBAAgB,IAAI,CAAC,YAAY,IAAI,IAAI,GAAG,YAAY,IAAI,IAAI;CACnF,OAAO;AACR,EAAA,CAAG;;;;AAIH,IAAI,uCAAuB,IAAI,IAAI;CAClC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD,CAAC;;;;AAID,SAAS,oBAAoB,MAAM;CAClC,OAAO,qBAAqB,IAAI,IAAI;AACrC;;;;AAIA,SAAS,iBAAiB,MAAM,eAAe,uBAAuB;CACrE,IAAI,CAAC,YAAY,KAAK,IAAI,GAAG,OAAO;CACpC,IAAI,aAAa,IAAI,IAAI,GAAG,OAAO;CACnC,OAAO;AACR;;;;;AChMA,SAAS,YAAY,MAAM,YAAY;CACtC,MAAM,EAAE,MAAM,cAAc,WAAW,8BAA8B,KAAK,SAAS,CAAC;CACpF,OAAO;EACN,MAAM,OAAO;EACb,QAAQ,YAAY;CACrB;AACD;;;;AAIA,SAAS,wBAAwB,OAAO,UAAU,CAAC,GAAG;CACrD,MAAM,eAAe,QAAQ,gBAAgB;CAC7C,MAAM,UAAU,QAAQ;;;;CAIxB,SAAS,sBAAsB,MAAM;EACpC,IAAI,CAAC,KAAK,iBAAiB,OAAO;EAClC,KAAK,MAAM,UAAU,KAAK,iBAAiB;GAC1C,IAAI,OAAO,UAAU,MAAM,WAAW,gBAAgB;GACtD,KAAK,MAAM,QAAQ,OAAO,OAAO;IAChC,MAAM,OAAO,KAAK;IAClB,IAAI,MAAM,2BAA2B,IAAI,GAAG;KAC3C,MAAM,WAAW,KAAK,KAAK;KAC3B,IAAI,aAAa,eAAe,aAAa,iBACxC;UAAA,MAAM,aAAa,KAAK,UA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"}
|