code-auditor-mcp 3.9.11 → 4.0.0

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.
Files changed (261) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +200 -0
  3. package/dist/analyzers/analyzerUtils.js +2 -2
  4. package/dist/analyzers/analyzerUtils.js.map +1 -1
  5. package/dist/analyzers/applicability.d.ts.map +1 -1
  6. package/dist/analyzers/applicability.js +1 -0
  7. package/dist/analyzers/applicability.js.map +1 -1
  8. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +1 -1
  9. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
  10. package/dist/analyzers/cross-language/DependencyGraphBuilder.js +3 -3
  11. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  12. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +2 -2
  13. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
  14. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +39 -15
  15. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
  16. package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
  17. package/dist/analyzers/documentationAnalyzer.js +14 -16
  18. package/dist/analyzers/documentationAnalyzer.js.map +1 -1
  19. package/dist/analyzers/invariantsAnalyzer.d.ts.map +1 -1
  20. package/dist/analyzers/invariantsAnalyzer.js +30 -25
  21. package/dist/analyzers/invariantsAnalyzer.js.map +1 -1
  22. package/dist/analyzers/reactAnalyzer.d.ts +1 -1
  23. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  24. package/dist/analyzers/reactAnalyzer.js +34 -116
  25. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  26. package/dist/analyzers/ruleRegistry.d.ts +5 -3
  27. package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
  28. package/dist/analyzers/ruleRegistry.js +198 -54
  29. package/dist/analyzers/ruleRegistry.js.map +1 -1
  30. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +2 -2
  31. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
  32. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +10 -17
  33. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
  34. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +6 -6
  35. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +13 -13
  36. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  37. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  38. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +22 -64
  39. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  40. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts +3 -2
  41. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  42. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +14 -13
  43. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  44. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +11 -11
  45. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  46. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +1 -1
  47. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  48. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +18 -7
  49. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  50. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -2
  51. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  52. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +38 -26
  53. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  54. package/dist/analyzers/universal/schema/codeAnalysis.d.ts +37 -13
  55. package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
  56. package/dist/analyzers/universal/schema/codeAnalysis.js +42 -54
  57. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
  58. package/dist/analyzers/universal/schema/jsonSchema.js +1 -1
  59. package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
  60. package/dist/analyzers/universal/schema/violations.d.ts +1 -1
  61. package/dist/analyzers/universal/schema/violations.d.ts.map +1 -1
  62. package/dist/auditRouter.js +7 -7
  63. package/dist/auditRouter.js.map +1 -1
  64. package/dist/auditRunner.d.ts.map +1 -1
  65. package/dist/auditRunner.js +36 -6
  66. package/dist/auditRunner.js.map +1 -1
  67. package/dist/cli.js +23 -17
  68. package/dist/cli.js.map +1 -1
  69. package/dist/codeIndexDB.d.ts +1 -1
  70. package/dist/codeIndexDB.d.ts.map +1 -1
  71. package/dist/codeIndexDB.js +148 -18
  72. package/dist/codeIndexDB.js.map +1 -1
  73. package/dist/componentScanner.d.ts.map +1 -1
  74. package/dist/componentScanner.js +89 -28
  75. package/dist/componentScanner.js.map +1 -1
  76. package/dist/config/configLoader.js +1 -1
  77. package/dist/config/configLoader.js.map +1 -1
  78. package/dist/config/defaults.js +3 -3
  79. package/dist/config/defaults.js.map +1 -1
  80. package/dist/constants.d.ts +1 -1
  81. package/dist/constants.d.ts.map +1 -1
  82. package/dist/conventions/conventionMiner.d.ts.map +1 -1
  83. package/dist/conventions/conventionMiner.js +3 -10
  84. package/dist/conventions/conventionMiner.js.map +1 -1
  85. package/dist/daemon/core.d.ts.map +1 -1
  86. package/dist/daemon/core.js +33 -38
  87. package/dist/daemon/core.js.map +1 -1
  88. package/dist/daemon/lspServer.js +1 -1
  89. package/dist/daemon/lspServer.js.map +1 -1
  90. package/dist/daemon/main.d.ts.map +1 -1
  91. package/dist/daemon/main.js +14 -4
  92. package/dist/daemon/main.js.map +1 -1
  93. package/dist/enforcement/gate.js +2 -2
  94. package/dist/functionScanner.d.ts.map +1 -1
  95. package/dist/functionScanner.js +47 -42
  96. package/dist/functionScanner.js.map +1 -1
  97. package/dist/graph/importClassification.d.ts +76 -0
  98. package/dist/graph/importClassification.d.ts.map +1 -0
  99. package/dist/graph/importClassification.js +221 -0
  100. package/dist/graph/importClassification.js.map +1 -0
  101. package/dist/graph/importGraph.d.ts +1 -0
  102. package/dist/graph/importGraph.d.ts.map +1 -1
  103. package/dist/graph/importGraph.js +1 -1
  104. package/dist/graph/importGraph.js.map +1 -1
  105. package/dist/hooks/codex.d.ts.map +1 -1
  106. package/dist/hooks/codex.js +1 -1
  107. package/dist/hooks/codex.js.map +1 -1
  108. package/dist/hooks/core.d.ts +1 -1
  109. package/dist/hooks/core.d.ts.map +1 -1
  110. package/dist/hooks/core.js +4 -4
  111. package/dist/hooks/core.js.map +1 -1
  112. package/dist/hooks/cursor.d.ts.map +1 -1
  113. package/dist/hooks/cursor.js +2 -2
  114. package/dist/hooks/cursor.js.map +1 -1
  115. package/dist/index.d.ts +1 -1
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js.map +1 -1
  118. package/dist/installer.d.ts +20 -0
  119. package/dist/installer.d.ts.map +1 -1
  120. package/dist/installer.js +58 -0
  121. package/dist/installer.js.map +1 -1
  122. package/dist/invariants/invariant-rules.schema.json +1 -1
  123. package/dist/invariants/ruleValidator.js +1 -1
  124. package/dist/invariants/ruleValidator.js.map +1 -1
  125. package/dist/invariants/types.d.ts +1 -1
  126. package/dist/invariants/types.d.ts.map +1 -1
  127. package/dist/languages/LanguageOrchestrator.d.ts +3 -2
  128. package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
  129. package/dist/languages/LanguageOrchestrator.js +1 -1
  130. package/dist/languages/LanguageOrchestrator.js.map +1 -1
  131. package/dist/languages/RuntimeManager.d.ts +20 -11
  132. package/dist/languages/RuntimeManager.d.ts.map +1 -1
  133. package/dist/languages/RuntimeManager.js +151 -51
  134. package/dist/languages/RuntimeManager.js.map +1 -1
  135. package/dist/languages/adapterBridge.d.ts +10 -0
  136. package/dist/languages/adapterBridge.d.ts.map +1 -1
  137. package/dist/languages/adapterBridge.js +30 -7
  138. package/dist/languages/adapterBridge.js.map +1 -1
  139. package/dist/languages/go/GoAdapter.d.ts +1 -19
  140. package/dist/languages/go/GoAdapter.d.ts.map +1 -1
  141. package/dist/languages/go/GoAdapter.js +33 -116
  142. package/dist/languages/go/GoAdapter.js.map +1 -1
  143. package/dist/languages/go/analyzer +0 -0
  144. package/dist/languages/go/analyzer-src/analyzer.go +8 -8
  145. package/dist/languages/go/analyzer-src/solid.go +5 -5
  146. package/dist/languages/goBinary.d.ts +46 -0
  147. package/dist/languages/goBinary.d.ts.map +1 -0
  148. package/dist/languages/goBinary.js +169 -0
  149. package/dist/languages/goBinary.js.map +1 -0
  150. package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts +1 -28
  151. package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts.map +1 -1
  152. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +3 -42
  153. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -1
  154. package/dist/languages/tree-sitter/converter.d.ts.map +1 -1
  155. package/dist/languages/tree-sitter/converter.js +2 -1
  156. package/dist/languages/tree-sitter/converter.js.map +1 -1
  157. package/dist/languages/tree-sitter/rawNode.d.ts +31 -0
  158. package/dist/languages/tree-sitter/rawNode.d.ts.map +1 -0
  159. package/dist/languages/tree-sitter/rawNode.js +38 -0
  160. package/dist/languages/tree-sitter/rawNode.js.map +1 -0
  161. package/dist/languages/types.d.ts +0 -21
  162. package/dist/languages/types.d.ts.map +1 -1
  163. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +1 -32
  164. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
  165. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +69 -203
  166. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
  167. package/dist/ledger.d.ts +3 -0
  168. package/dist/ledger.d.ts.map +1 -1
  169. package/dist/ledger.js +45 -9
  170. package/dist/ledger.js.map +1 -1
  171. package/dist/mcp-tools/projectTasks.js +2 -2
  172. package/dist/mcp-tools/projectTasks.js.map +1 -1
  173. package/dist/mcp-tools/workflowGuide.js +3 -3
  174. package/dist/mcp-tools/workflowGuide.js.map +1 -1
  175. package/dist/mcp-tools-shared.js +13 -13
  176. package/dist/mcp-tools-shared.js.map +1 -1
  177. package/dist/mcp-ui-simple.js +7 -7
  178. package/dist/mcp-ui-simple.js.map +1 -1
  179. package/dist/mcp.js +14 -14
  180. package/dist/mcp.js.map +1 -1
  181. package/dist/mcpAuditJobs.js +7 -7
  182. package/dist/mcpAuditJobs.js.map +1 -1
  183. package/dist/mcpAutoIndex.js +1 -1
  184. package/dist/mcpAutoIndex.js.map +1 -1
  185. package/dist/nextFile.d.ts +2 -2
  186. package/dist/nextFile.d.ts.map +1 -1
  187. package/dist/nextFile.js +19 -5
  188. package/dist/nextFile.js.map +1 -1
  189. package/dist/nextFileIncremental.d.ts +3 -2
  190. package/dist/nextFileIncremental.d.ts.map +1 -1
  191. package/dist/nextFileIncremental.js +20 -7
  192. package/dist/nextFileIncremental.js.map +1 -1
  193. package/dist/pipelineAdapters.d.ts +17 -0
  194. package/dist/pipelineAdapters.d.ts.map +1 -1
  195. package/dist/pipelineAdapters.js +279 -178
  196. package/dist/pipelineAdapters.js.map +1 -1
  197. package/dist/reporting/csvReportGenerator.js +6 -6
  198. package/dist/reporting/csvReportGenerator.js.map +1 -1
  199. package/dist/reporting/htmlReportGenerator.js +11 -11
  200. package/dist/reporting/htmlReportGenerator.js.map +1 -1
  201. package/dist/reporting/jsonReportGenerator.js +2 -2
  202. package/dist/reporting/jsonReportGenerator.js.map +1 -1
  203. package/dist/reporting/sarifReportGenerator.js +1 -1
  204. package/dist/reporting/sarifReportGenerator.js.map +1 -1
  205. package/dist/scripts/benchmarkWorkers.js +1 -1
  206. package/dist/scripts/benchmarkWorkers.js.map +1 -1
  207. package/dist/styles/cssAstExtractor.d.ts +2 -2
  208. package/dist/styles/cssAstExtractor.d.ts.map +1 -1
  209. package/dist/styles/cssAstExtractor.js +67 -111
  210. package/dist/styles/cssAstExtractor.js.map +1 -1
  211. package/dist/styles/styleIndexer.d.ts.map +1 -1
  212. package/dist/styles/styleIndexer.js +19 -6
  213. package/dist/styles/styleIndexer.js.map +1 -1
  214. package/dist/telemetry.d.ts +1 -1
  215. package/dist/telemetry.d.ts.map +1 -1
  216. package/dist/types/crossLanguage.d.ts +1 -1
  217. package/dist/types/crossLanguage.d.ts.map +1 -1
  218. package/dist/types.d.ts +59 -19
  219. package/dist/types.d.ts.map +1 -1
  220. package/dist/types.js +6 -5
  221. package/dist/types.js.map +1 -1
  222. package/dist/utils/astParser.d.ts +1 -17
  223. package/dist/utils/astParser.d.ts.map +1 -1
  224. package/dist/utils/astParser.js +18 -60
  225. package/dist/utils/astParser.js.map +1 -1
  226. package/dist/utils/astUtils.d.ts +12 -12
  227. package/dist/utils/astUtils.d.ts.map +1 -1
  228. package/dist/utils/astUtils.js +83 -82
  229. package/dist/utils/astUtils.js.map +1 -1
  230. package/dist/utils/componentResponsibility.d.ts +8 -8
  231. package/dist/utils/componentResponsibility.d.ts.map +1 -1
  232. package/dist/utils/componentResponsibility.js +33 -38
  233. package/dist/utils/componentResponsibility.js.map +1 -1
  234. package/dist/utils/dependencyExtractor.d.ts +3 -3
  235. package/dist/utils/dependencyExtractor.d.ts.map +1 -1
  236. package/dist/utils/dependencyExtractor.js +26 -30
  237. package/dist/utils/dependencyExtractor.js.map +1 -1
  238. package/dist/utils/fileDiscovery.d.ts.map +1 -1
  239. package/dist/utils/fileDiscovery.js +65 -0
  240. package/dist/utils/fileDiscovery.js.map +1 -1
  241. package/dist/utils/jsDocParser.d.ts +6 -6
  242. package/dist/utils/jsDocParser.d.ts.map +1 -1
  243. package/dist/utils/jsDocParser.js +18 -21
  244. package/dist/utils/jsDocParser.js.map +1 -1
  245. package/dist/utils/reactDetection.d.ts +7 -7
  246. package/dist/utils/reactDetection.d.ts.map +1 -1
  247. package/dist/utils/reactDetection.js +42 -49
  248. package/dist/utils/reactDetection.js.map +1 -1
  249. package/dist/version.generated.d.ts +1 -1
  250. package/dist/version.generated.d.ts.map +1 -1
  251. package/dist/version.generated.js +1 -1
  252. package/dist/version.generated.js.map +1 -1
  253. package/package.json +1 -1
  254. package/plugin/.claude-plugin/plugin.json +1 -1
  255. package/plugin/README.md +5 -4
  256. package/plugin/hooks/hooks.json +11 -0
  257. package/plugin/scripts/hook-common.sh +129 -26
  258. package/plugin/scripts/hook-warm.sh +44 -0
  259. package/plugin/skills/code-auditor/SKILL-RULE-KINDS.md +28 -21
  260. package/plugin/skills/code-auditor/SKILL.md +10 -10
  261. package/server.json +2 -2
@@ -8,7 +8,7 @@
8
8
  * and adapterBridge utilities. The old `import * as ts from 'typescript'` is removed.
9
9
  */
10
10
  import { discoverFiles, getLanguageFromPath } from './utils/fileDiscovery.js';
11
- import { findNodesByKind, getLineAndColumn, getImports, getImportsDetailed, extractIdentifierUsage, getReExports } from './utils/astUtils.js';
11
+ import { findNodesByKind, getNodeText, getLineAndColumn, getImports, getImportsDetailed, extractIdentifierUsage, getReExports } from './utils/astUtils.js';
12
12
  import { parseFile, walkAST, hasModifier, isExported, calculateComplexity } from './languages/adapterBridge.js';
13
13
  import { isReactComponent, detectComponentType, getComponentName, extractHooks, extractPropTypes } from './utils/reactDetection.js';
14
14
  import { buildImportMap, extractFunctionCalls, getLocalFunctionNames, normalizeCallTarget } from './utils/dependencyExtractor.js';
@@ -17,10 +17,6 @@ import path from 'path';
17
17
  // ---------------------------------------------------------------------------
18
18
  // Helpers
19
19
  // ---------------------------------------------------------------------------
20
- /** Get raw text from a tree-sitter node (stored on ASTNode.raw). */
21
- function rawText(node) {
22
- return node.raw?.text ?? '';
23
- }
24
20
  /** Find the first child of a given type. */
25
21
  function findChildOfType(node, type) {
26
22
  return node.children?.find(c => c.type === type);
@@ -80,20 +76,20 @@ export function extractFunctionsFromSource(content, filePath, options) {
80
76
  return functions;
81
77
  const root = ast.root;
82
78
  // Get file dependencies
83
- const imports = getImports(root);
79
+ const imports = getImports(root, content);
84
80
  const dependencies = imports
85
- .map(imp => imp.moduleSpecifier)
81
+ .map(imp => imp.source)
86
82
  .filter(spec => !spec.startsWith('.') && !spec.startsWith('/'))
87
83
  .filter((v, i, a) => a.indexOf(v) === i); // Unique only
88
84
  // Build import map for dependency tracking
89
- const importMap = buildImportMap(root);
90
- const detailedImports = getImportsDetailed(root);
91
- const localFunctions = getLocalFunctionNames(root);
85
+ const importMap = buildImportMap(root, content);
86
+ const detailedImports = getImportsDetailed(root, content);
87
+ const localFunctions = getLocalFunctionNames(root, content);
92
88
  // Track import usage across the file
93
89
  const importNames = new Set(detailedImports.map(imp => imp.localName));
94
90
  const fileUsageMap = extractIdentifierUsage(root, content, importNames);
95
91
  // Track re-exports - these imports are used even if not referenced in code
96
- const reExports = getReExports(root);
92
+ const reExports = getReExports(root, content);
97
93
  for (const reExport of reExports) {
98
94
  // Find imports that match re-exported names
99
95
  for (const imp of detailedImports) {
@@ -123,6 +119,7 @@ export function extractFunctionsFromSource(content, filePath, options) {
123
119
  if (!nameNode)
124
120
  continue;
125
121
  const { line } = getLineAndColumn(func);
122
+ const endLine = func.location?.end?.line ?? line;
126
123
  // Extract function calls
127
124
  const body = findChildOfType(func, 'statement_block');
128
125
  const functionCalls = body ? extractFunctionCalls(body, content, importMap) : [];
@@ -153,13 +150,16 @@ export function extractFunctionsFromSource(content, filePath, options) {
153
150
  const params = findChildOfType(func, 'formal_parameters');
154
151
  const paramCount = params?.children?.filter(c => c.type === 'required_parameter' || c.type === 'optional_parameter' || c.type === 'rest_parameter').length ?? 0;
155
152
  functions.push({
156
- name: rawText(nameNode),
153
+ name: getNodeText(nameNode, content),
157
154
  filePath,
158
155
  lineNumber: line,
156
+ startLine: line,
157
+ endLine,
159
158
  language: getLanguageFromPath(filePath),
160
159
  dependencies,
161
- purpose: `Function ${rawText(nameNode)} implementation`,
160
+ purpose: `Function ${getNodeText(nameNode, content)} implementation`,
162
161
  context: `Located in ${path.basename(filePath)}`,
162
+ body: body ? getNodeText(body, content) : undefined,
163
163
  metadata: {
164
164
  kind: 'function',
165
165
  isAsync: hasModifier(func, 'async'),
@@ -169,7 +169,6 @@ export function extractFunctionsFromSource(content, filePath, options) {
169
169
  usedImports,
170
170
  unusedImports: unusedImports.length > 0 ? unusedImports : undefined,
171
171
  complexity: calculateComplexity(func),
172
- body: body ? rawText(body) : undefined,
173
172
  dependencies
174
173
  }
175
174
  });
@@ -188,6 +187,7 @@ export function extractFunctionsFromSource(content, filePath, options) {
188
187
  if (!nameNode || !arrowFunc)
189
188
  continue;
190
189
  const { line } = getLineAndColumn(varDecl);
190
+ const endLine = arrowFunc.location?.end?.line ?? line;
191
191
  // Extract function calls
192
192
  const body = findChildOfType(arrowFunc, 'statement_block');
193
193
  const functionCalls = body ? extractFunctionCalls(body, content, importMap) : [];
@@ -213,13 +213,16 @@ export function extractFunctionsFromSource(content, filePath, options) {
213
213
  const arrowParams = findChildOfType(arrowFunc, 'formal_parameters');
214
214
  const arrowParamCount = arrowParams?.children?.filter(c => c.type === 'required_parameter' || c.type === 'optional_parameter' || c.type === 'rest_parameter').length ?? 0;
215
215
  functions.push({
216
- name: rawText(nameNode),
216
+ name: getNodeText(nameNode, content),
217
217
  filePath,
218
218
  lineNumber: line,
219
+ startLine: line,
220
+ endLine,
219
221
  language: getLanguageFromPath(filePath),
220
222
  dependencies,
221
- purpose: `Arrow function ${rawText(nameNode)}`,
223
+ purpose: `Arrow function ${getNodeText(nameNode, content)}`,
222
224
  context: `Defined in ${path.basename(filePath)}`,
225
+ body: body ? getNodeText(body, content) : undefined,
223
226
  metadata: {
224
227
  kind: 'arrow',
225
228
  isAsync: hasModifier(arrowFunc, 'async'),
@@ -229,7 +232,6 @@ export function extractFunctionsFromSource(content, filePath, options) {
229
232
  usedImports,
230
233
  unusedImports: unusedImports.length > 0 ? unusedImports : undefined,
231
234
  complexity: calculateComplexity(arrowFunc),
232
- body: body ? rawText(body) : undefined,
233
235
  dependencies
234
236
  }
235
237
  });
@@ -239,7 +241,7 @@ export function extractFunctionsFromSource(content, filePath, options) {
239
241
  const classDeclarations = findNodesByKind(root, 'class_declaration');
240
242
  for (const classDecl of classDeclarations) {
241
243
  const classNameNode = findChildOfType(classDecl, 'identifier');
242
- const className = classNameNode ? rawText(classNameNode) : 'AnonymousClass';
244
+ const className = classNameNode ? getNodeText(classNameNode, content) : 'AnonymousClass';
243
245
  const classBody = findChildOfType(classDecl, 'class_body');
244
246
  const methods = classBody?.children?.filter(m => m.type === 'method_definition') ?? [];
245
247
  for (const method of methods) {
@@ -247,6 +249,7 @@ export function extractFunctionsFromSource(content, filePath, options) {
247
249
  if (!methodNameNode)
248
250
  continue;
249
251
  const { line } = getLineAndColumn(method);
252
+ const endLine = method.location?.end?.line ?? line;
250
253
  // Extract function calls
251
254
  const body = findChildOfType(method, 'statement_block');
252
255
  const functionCalls = body ? extractFunctionCalls(body, content, importMap) : [];
@@ -272,13 +275,16 @@ export function extractFunctionsFromSource(content, filePath, options) {
272
275
  const methodParams = findChildOfType(method, 'formal_parameters');
273
276
  const methodParamCount = methodParams?.children?.filter(c => c.type === 'required_parameter' || c.type === 'optional_parameter' || c.type === 'rest_parameter').length ?? 0;
274
277
  functions.push({
275
- name: `${className}.${rawText(methodNameNode)}`,
278
+ name: `${className}.${getNodeText(methodNameNode, content)}`,
276
279
  filePath,
277
280
  lineNumber: line,
281
+ startLine: line,
282
+ endLine,
278
283
  language: getLanguageFromPath(filePath),
279
284
  dependencies,
280
- purpose: `Method ${rawText(methodNameNode)} of class ${className}`,
285
+ purpose: `Method ${getNodeText(methodNameNode, content)} of class ${className}`,
281
286
  context: `Class method in ${path.basename(filePath)}`,
287
+ body: body ? getNodeText(body, content) : undefined,
282
288
  metadata: {
283
289
  kind: 'method',
284
290
  className,
@@ -290,7 +296,6 @@ export function extractFunctionsFromSource(content, filePath, options) {
290
296
  usedImports,
291
297
  unusedImports: unusedImports.length > 0 ? unusedImports : undefined,
292
298
  complexity: calculateComplexity(method),
293
- body: body ? rawText(body) : undefined,
294
299
  dependencies
295
300
  }
296
301
  });
@@ -301,12 +306,12 @@ export function extractFunctionsFromSource(content, filePath, options) {
301
306
  (filePath.endsWith('.js') && dependencies.includes('react'))) {
302
307
  // Walk all nodes for React components
303
308
  walkAST(root, (node) => {
304
- if (!isReactComponent(node))
309
+ if (!isReactComponent(node, content))
305
310
  return;
306
- const componentType = detectComponentType(node);
311
+ const componentType = detectComponentType(node, content);
307
312
  if (!componentType)
308
313
  return;
309
- const componentName = getComponentName(node);
314
+ const componentName = getComponentName(node, content);
310
315
  const { line } = getLineAndColumn(node);
311
316
  const endLine = node.location?.end?.line ?? line;
312
317
  // Determine which node to use for prop extraction
@@ -340,16 +345,16 @@ export function extractFunctionsFromSource(content, filePath, options) {
340
345
  if (existingFunc) {
341
346
  // Update the existing function with component metadata
342
347
  existingFunc.purpose = `React ${componentType} component`;
348
+ existingFunc.body = getComponentBody(node, content);
343
349
  existingFunc.metadata = {
344
350
  ...existingFunc.metadata,
345
351
  entityType: 'component',
346
352
  componentType,
347
- props: extractPropTypes(nodeForProps),
348
- hooks: extractHooks(node),
349
- jsxElements: extractJSXElements(node),
353
+ props: extractPropTypes(nodeForProps, content),
354
+ hooks: extractHooks(node, content),
355
+ jsxElements: extractJSXElements(node, content),
350
356
  isExported: isComponentExported(node),
351
357
  complexity: calculateComplexity(node),
352
- body: getComponentBody(node)
353
358
  };
354
359
  }
355
360
  else {
@@ -364,15 +369,15 @@ export function extractFunctionsFromSource(content, filePath, options) {
364
369
  dependencies,
365
370
  purpose: `React ${componentType} component`,
366
371
  context: `Located in ${path.basename(filePath)}`,
372
+ body: getComponentBody(node, content),
367
373
  metadata: {
368
374
  entityType: 'component',
369
375
  componentType,
370
- props: extractPropTypes(nodeForProps),
371
- hooks: extractHooks(node),
372
- jsxElements: extractJSXElements(node),
376
+ props: extractPropTypes(nodeForProps, content),
377
+ hooks: extractHooks(node, content),
378
+ jsxElements: extractJSXElements(node, content),
373
379
  isExported: isComponentExported(node),
374
380
  complexity: calculateComplexity(node),
375
- body: getComponentBody(node),
376
381
  usedImports,
377
382
  unusedImports: unusedImports.length > 0 ? unusedImports : undefined,
378
383
  calledBy: [],
@@ -431,7 +436,7 @@ export function extractFunctionsFromSource(content, filePath, options) {
431
436
  // ---------------------------------------------------------------------------
432
437
  // Helper functions for React component extraction
433
438
  // ---------------------------------------------------------------------------
434
- function extractJSXElements(node) {
439
+ function extractJSXElements(node, content) {
435
440
  const elements = new Set();
436
441
  walkAST(node, (child) => {
437
442
  if (child.type === 'jsx_element') {
@@ -440,10 +445,10 @@ function extractJSXElements(node) {
440
445
  const tagNameNode = openTag.children?.find(c => c.type === 'identifier' || c.type === 'member_expression');
441
446
  if (tagNameNode) {
442
447
  if (tagNameNode.type === 'identifier') {
443
- elements.add(rawText(tagNameNode));
448
+ elements.add(getNodeText(tagNameNode, content));
444
449
  }
445
450
  else if (tagNameNode.type === 'member_expression') {
446
- elements.add(rawText(tagNameNode));
451
+ elements.add(getNodeText(tagNameNode, content));
447
452
  }
448
453
  }
449
454
  }
@@ -452,10 +457,10 @@ function extractJSXElements(node) {
452
457
  const tagNameNode = child.children?.find(c => c.type === 'identifier' || c.type === 'member_expression');
453
458
  if (tagNameNode) {
454
459
  if (tagNameNode.type === 'identifier') {
455
- elements.add(rawText(tagNameNode));
460
+ elements.add(getNodeText(tagNameNode, content));
456
461
  }
457
462
  else if (tagNameNode.type === 'member_expression') {
458
- elements.add(rawText(tagNameNode));
463
+ elements.add(getNodeText(tagNameNode, content));
459
464
  }
460
465
  }
461
466
  }
@@ -499,14 +504,14 @@ export class FunctionScanner {
499
504
  // ---------------------------------------------------------------------------
500
505
  // Helper function to get component body
501
506
  // ---------------------------------------------------------------------------
502
- function getComponentBody(node) {
507
+ function getComponentBody(node, content) {
503
508
  if (node.type === 'function_declaration' || node.type === 'function_expression') {
504
509
  const body = findChildOfType(node, 'statement_block');
505
- return body ? rawText(body) : undefined;
510
+ return body ? getNodeText(body, content) : undefined;
506
511
  }
507
512
  else if (node.type === 'arrow_function') {
508
513
  const body = findChildOfType(node, 'statement_block');
509
- return body ? rawText(body) : undefined;
514
+ return body ? getNodeText(body, content) : undefined;
510
515
  }
511
516
  else if (node.type === 'class_declaration') {
512
517
  // For class components, get the render method body
@@ -517,9 +522,9 @@ function getComponentBody(node) {
517
522
  if (member.type !== 'method_definition')
518
523
  continue;
519
524
  const mNameNode = findChildOfType(member, 'identifier');
520
- if (mNameNode && rawText(mNameNode) === 'render') {
525
+ if (mNameNode && getNodeText(mNameNode, content) === 'render') {
521
526
  const body = findChildOfType(member, 'statement_block');
522
- return body ? rawText(body) : undefined;
527
+ return body ? getNodeText(body, content) : undefined;
523
528
  }
524
529
  }
525
530
  }
@@ -1 +1 @@
1
- {"version":3,"file":"functionScanner.js","sourceRoot":"","sources":["../src/functionScanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functionScanner.js","sourceRoot":"","sources":["../src/functionScanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EACL,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EAEtB,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEhH,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,4CAA4C;AAC5C,SAAS,eAAe,CAAC,IAAa,EAAE,IAAY;IAClD,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,8DAA8D;AAC9D,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,KAAK,qBAAqB,IAAI,IAAI,KAAK,sBAAsB,CAAC;AAC3E,CAAC;AAQD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAe,EACf,OAAqF;IAErF,MAAM,SAAS,GAAuB,EAAE,CAAC;IAEzC,IAAI,CAAC;QACH,2CAA2C;QAC3C,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,MAAM,aAAa,CAC/B,OAAO,EACP;YACE,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,CAAC,MAAM,CAAC;YAC/C,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,CAAC,oBAAoB,EAAE,YAAY,EAAE,aAAa,CAAC;SAC3F,CACF,CAAC;QAEF,uBAAuB;QACvB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CACtC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAC/C,CAAC;QAEF,oBAAoB;QACpB,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAAC,QAAQ,EAAE;oBAC7D,mBAAmB,EAAE,OAAO,EAAE,mBAAmB;iBAClD,CAAC,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,oBAAoB,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3G,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAgB,EAChB,OAAuE;IAEvE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,0BAA0B,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAe,EACf,QAAgB,EAChB,OAAuE;IAEvE,MAAM,SAAS,GAAuB,EAAE,CAAC;IAEzC,gBAAgB;IAChB,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAE3B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAEtB,wBAAwB;IACxB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,OAAO;SACzB,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;SACtB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc;IAE1D,2CAA2C;IAC3C,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE5D,qCAAqC;IACrC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAExE,2EAA2E;IAC3E,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,4CAA4C;QAC5C,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAClC,IAAI,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC,IAAI;gBAClC,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClE,yCAAyC;gBACzC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBACrC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE;wBAC9B,SAAS,EAAE,UAAU;wBACrB,UAAU,EAAE,CAAC;wBACb,WAAW,EAAE,EAAE;qBAChB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;oBAC/C,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;wBACnC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,MAAM,oBAAoB,GAAG,eAAe,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IAC3E,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC;QAEjD,yBAAyB;QACzB,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAC/C,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,CAC3D,CAAC;QAEF,yCAAyC;QACzC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;QAExD,qCAAqC;QACrC,MAAM,MAAM,GAAG,OAAO,EAAE,mBAAmB,CAAC;QAC5C,IAAI,aAAa,GAAG,eAAe;aAChC,MAAM,CAAC,GAAG,CAAC,EAAE;YACZ,oDAAoD;YACpD,IAAK,GAAG,CAAC,UAAkB,KAAK,aAAa;gBAAE,OAAO,KAAK,CAAC;YAE5D,8DAA8D;YAC9D,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,OAAO,KAAK,CAAC;YAEzF,gCAAgC;YAChC,IAAI,CAAC,MAAM,EAAE,sBAAsB,IAAI,GAAG,CAAC,UAAU;gBAAE,OAAO,KAAK,CAAC;YAEpE,wBAAwB;YACxB,IAAI,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CACzC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAE1D,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7B,6CAA6C;QAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAC9C,CAAC,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAClG,CAAC,MAAM,IAAI,CAAC,CAAC;QAEd,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC;YACpC,QAAQ;YACR,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;YACf,OAAO;YACP,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC;YACvC,YAAY;YACZ,OAAO,EAAE,YAAY,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,iBAAiB;YACpE,OAAO,EAAE,cAAc,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAChD,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;YACnD,QAAQ,EAAE;gBACR,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;gBACnC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC;gBAC5B,cAAc,EAAE,UAAU;gBAC1B,aAAa,EAAE,eAAe;gBAC9B,WAAW;gBACX,aAAa,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;gBACnE,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC;gBACrC,YAAY;aACb;SACF,CAAC,CAAC;IACL,CAAC;IAED,6CAA6C;IAC7C,MAAM,QAAQ,GAAc;QAC1B,GAAG,eAAe,CAAC,IAAI,EAAE,qBAAqB,CAAC;QAC/C,GAAG,eAAe,CAAC,IAAI,EAAE,sBAAsB,CAAC;KACjD,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB;gBAAE,SAAS;YAErD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;YAC3E,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEtC,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC;YAEtD,yBAAyB;YACzB,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;YAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAC/C,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,CAC3D,CAAC;YAEF,yCAAyC;YACzC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YACjF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;YAExD,qCAAqC;YACrC,MAAM,OAAO,GAAG,OAAO,EAAE,mBAAmB,CAAC;YAC7C,IAAI,aAAa,GAAG,eAAe;iBAChC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACZ,IAAK,GAAG,CAAC,UAAkB,KAAK,aAAa;oBAAE,OAAO,KAAK,CAAC;gBAC5D,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACzF,IAAI,CAAC,OAAO,EAAE,sBAAsB,IAAI,GAAG,CAAC,UAAU;oBAAE,OAAO,KAAK,CAAC;gBACrE,IAAI,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAC1C,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAC1D,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;iBACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE7B,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;YACpE,MAAM,eAAe,GAAG,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CACxD,CAAC,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAClG,CAAC,MAAM,IAAI,CAAC,CAAC;YAEd,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC;gBACpC,QAAQ;gBACR,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,IAAI;gBACf,OAAO;gBACP,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC;gBACvC,YAAY;gBACZ,OAAO,EAAE,kBAAkB,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;gBAC3D,OAAO,EAAE,cAAc,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAChD,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnD,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC;oBACxC,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC;oBAC/B,cAAc,EAAE,eAAe;oBAC/B,aAAa,EAAE,eAAe;oBAC9B,WAAW;oBACX,aAAa,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;oBACnE,UAAU,EAAE,mBAAmB,CAAC,SAAS,CAAC;oBAC1C,YAAY;iBACb;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACrE,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACzF,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAEvF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC7D,IAAI,CAAC,cAAc;gBAAE,SAAS;YAE9B,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC;YAEnD,yBAAyB;YACzB,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAC/C,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,CAC3D,CAAC;YAEF,uCAAuC;YACvC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YAC9E,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;YAExD,qCAAqC;YACrC,MAAM,OAAO,GAAG,OAAO,EAAE,mBAAmB,CAAC;YAC7C,IAAI,aAAa,GAAG,eAAe;iBAChC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACZ,IAAK,GAAG,CAAC,UAAkB,KAAK,aAAa;oBAAE,OAAO,KAAK,CAAC;gBAC5D,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACzF,IAAI,CAAC,OAAO,EAAE,sBAAsB,IAAI,GAAG,CAAC,UAAU;oBAAE,OAAO,KAAK,CAAC;gBACrE,IAAI,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAC1C,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAC1D,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;iBACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE7B,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YAClE,MAAM,gBAAgB,GAAG,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAC1D,CAAC,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAClG,CAAC,MAAM,IAAI,CAAC,CAAC;YAEd,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,GAAG,SAAS,IAAI,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE;gBAC5D,QAAQ;gBACR,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,IAAI;gBACf,OAAO;gBACP,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC;gBACvC,YAAY;gBACZ,OAAO,EAAE,UAAU,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,aAAa,SAAS,EAAE;gBAC/E,OAAO,EAAE,mBAAmB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACrD,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,SAAS;oBACT,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;oBACrC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;oBACvC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC;oBACzC,cAAc,EAAE,gBAAgB;oBAChC,aAAa,EAAE,eAAe;oBAC9B,WAAW;oBACX,aAAa,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;oBACnE,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC;oBACvC,YAAY;iBACb;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtD,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAEjE,sCAAsC;QACtC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC;gBAAE,OAAO;YAE7C,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACzD,IAAI,CAAC,aAAa;gBAAE,OAAO;YAE3B,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC;YAEjD,kDAAkD;YAClD,0DAA0D;YAC1D,IAAI,YAAY,GAAG,IAAI,CAAC;YACxB,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB;gBAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,qBAAqB;gBACxD,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACxC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7B,CAAC;YAED,0CAA0C;YAC1C,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YAC7E,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;YAEzD,qCAAqC;YACrC,MAAM,OAAO,GAAG,OAAO,EAAE,mBAAmB,CAAC;YAC7C,IAAI,aAAa,GAAG,eAAe;iBAChC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACZ,IAAK,GAAG,CAAC,UAAkB,KAAK,aAAa;oBAAE,OAAO,KAAK,CAAC;gBAC5D,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAC1F,IAAI,CAAC,OAAO,EAAE,sBAAsB,IAAI,GAAG,CAAC,UAAU;oBAAE,OAAO,KAAK,CAAC;gBACrE,IAAI,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAC1C,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAC1D,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;iBACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE7B,yDAAyD;YACzD,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;YAC5F,IAAI,YAAY,EAAE,CAAC;gBACjB,uDAAuD;gBACvD,YAAY,CAAC,OAAO,GAAG,SAAS,aAAa,YAAY,CAAC;gBAE1D,YAAY,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACpD,YAAY,CAAC,QAAQ,GAAG;oBACtB,GAAG,YAAY,CAAC,QAAQ;oBACxB,UAAU,EAAE,WAAW;oBACvB,aAAa;oBACb,KAAK,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC;oBAC9C,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;oBAClC,WAAW,EAAE,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC;oBAC9C,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC;oBACrC,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC;iBACtC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,oBAAoB;gBACpB,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,aAAa;oBACnB,QAAQ;oBACR,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,IAAI;oBACf,OAAO;oBACP,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC;oBACvC,YAAY;oBACZ,OAAO,EAAE,SAAS,aAAa,YAAY;oBAC3C,OAAO,EAAE,cAAc,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBAChD,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC;oBACrC,QAAQ,EAAE;wBACR,UAAU,EAAE,WAAW;wBACvB,aAAa;wBACb,KAAK,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC;wBAC9C,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;wBAClC,WAAW,EAAE,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC;wBAC9C,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC;wBACrC,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC;wBACrC,WAAW;wBACX,aAAa,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;wBACnE,QAAQ,EAAE,EAAE;wBACZ,YAAY;qBACb;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sDAAsD;IACtD,IAAI,OAAO,EAAE,mBAAmB,EAAE,UAAU,KAAK,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChF,wDAAwD;QACxD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;gBAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC5C,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC;QAC7C,MAAM,iBAAiB,GAAG,eAAe;aACtC,MAAM,CAAC,GAAG,CAAC,EAAE;YACZ,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpD,IAAI,CAAC,QAAQ,EAAE,sBAAsB,IAAI,GAAG,CAAC,UAAU;gBAAE,OAAO,KAAK,CAAC;YACtE,IAAI,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAC3C,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7B,6DAA6D;QAC7D,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,yBAAyB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACxD,QAAQ;gBACR,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC;gBACvC,YAAY;gBACZ,OAAO,EAAE,oCAAoC;gBAC7C,OAAO,EAAE,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uCAAuC;gBAC/E,QAAQ,EAAE;oBACR,IAAI,EAAE,eAAe;oBACrB,aAAa,EAAE,iBAAiB;oBAChC,YAAY,EAAE,eAAe,CAAC,MAAM;oBACpC,gBAAgB,EAAE,cAAc,CAAC,IAAI;oBACrC,YAAY;iBACb;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,kDAAkD;AAClD,8EAA8E;AAE9E,SAAS,kBAAkB,CAAC,IAAa,EAAE,OAAe;IACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;QACtB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACnD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAC7C,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC;gBAC7D,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBACtC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;oBAClD,CAAC;yBAAM,IAAI,WAAW,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;wBACpD,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;YACrD,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAC3C,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC;YAC7D,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACtC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,WAAW,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;oBACpD,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAa;IACxC,+CAA+C;IAC/C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yCAAyC;IACzC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,OAAO,MAAM,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YAC/E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uCAAuC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAe,EACf,OAAuD;IAEvD,OAAO,yBAAyB,CAAC,OAAO,EAAE;QACxC,cAAc,EAAE,OAAO,EAAE,SAAS;QAClC,YAAY,EAAE,OAAO,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;KAC9D,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,eAAe;IAC1B,KAAK,CAAC,aAAa,CACjB,OAAe,EACf,QAAgB,EAChB,QAAgB;QAEhB,wEAAwE;QACxE,sEAAsE;QACtE,8CAA8C;QAC9C,OAAO,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;CACF;AAED,8EAA8E;AAC9E,wCAAwC;AACxC,8EAA8E;AAE9E,SAAS,gBAAgB,CAAC,IAAa,EAAE,OAAe;IACtD,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;QAChF,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QAC7C,mDAAmD;QACnD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAEjC,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC9C,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB;gBAAE,SAAS;YAClD,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACxD,IAAI,SAAS,IAAI,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC9D,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;gBACxD,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Spec 60.1 — import specifier classification at emission (five classes).
3
+ *
4
+ * Supersedes Spec 60's three-class scheme. Every import specifier is exactly one of
5
+ * five classes:
6
+ *
7
+ * - `package` — does not begin with `.` or `/`, does not match a tsconfig
8
+ * `paths` pattern, and does not begin with `@/`. A complete
9
+ * answer (Node builtin, npm package, scoped package); never
10
+ * an edge.
11
+ * - `unresolved-alias` — does not begin with `.` or `/`, and *does* match a tsconfig
12
+ * `paths` pattern or begins with `@/`. A gap in this tool's
13
+ * coverage of the project, not a defect in the project. Never
14
+ * an edge until alias resolution exists (out of scope here).
15
+ * - `internal-resolved` — begins with `.` or `/`, and normalization finds exactly one
16
+ * existing file in the corpus file set. Carries that path.
17
+ * - `internal-broken` — begins with `.` or `/`, and normalization finds no existing
18
+ * file. A real defect in the audited project.
19
+ * - `unresolved-virtual` — begins with `.` or `/`, and the specifier exactly matches a
20
+ * configured virtual-module entry (e.g. Blitz's `.blitz`).
21
+ *
22
+ * This deliberately does NOT use `resolveDependency` (src/graph/importGraph.ts) — that
23
+ * function's basename / path-segment fallback produced blitz tested=350 against a truth
24
+ * of 39, and is exactly what this spec exists to replace. It reuses only `normalizePath`,
25
+ * which the spec forbids reimplementing.
26
+ */
27
+ export type SpecifierClassification = 'package' | 'unresolved-alias' | 'internal-resolved' | 'internal-broken' | 'unresolved-virtual';
28
+ export interface ClassifiedSpecifier {
29
+ classification: SpecifierClassification;
30
+ /** Absolute path when `classification` is 'internal-resolved'; undefined otherwise. */
31
+ resolvedPath?: string;
32
+ }
33
+ /** Options threaded in by the caller (pure-function inputs — no I/O here). */
34
+ export interface ClassifyOptions {
35
+ /** Virtual-module specifiers matched exactly. Defaults to DEFAULT_VIRTUAL_MODULES. */
36
+ virtualModules?: readonly string[];
37
+ /** tsconfig `compilerOptions.paths` keys, used for pattern matching only. */
38
+ aliasPatterns?: readonly string[];
39
+ }
40
+ /** Default virtual-module list. A project overrides via config (not code). */
41
+ export declare const DEFAULT_VIRTUAL_MODULES: readonly string[];
42
+ /**
43
+ * Classify a single import specifier against the corpus file set.
44
+ *
45
+ * @param specifier The raw specifier as written (quotes stripped), e.g. `react`,
46
+ * `./types.js`, `@/components/Button`, `.blitz`, `./x.jsonl?raw`.
47
+ * @param sourceFile The absolute path of the file the specifier is written in.
48
+ * @param corpusFiles The in-memory set of absolute paths in the corpus (the stage-1
49
+ * discovery file list). Existence is checked against this set —
50
+ * never `fs.existsSync`.
51
+ * @param options `virtualModules` (exact-match virtual list) and `aliasPatterns`
52
+ * (tsconfig `paths` keys). Both default to empty; the caller
53
+ * supplies them from config/tsconfig.
54
+ */
55
+ export declare function classifyImportSpecifier(specifier: string, sourceFile: string, corpusFiles: ReadonlySet<string>, options?: ClassifyOptions): ClassifiedSpecifier;
56
+ export interface TsconfigAliases {
57
+ /** Keys of `compilerOptions.paths` (e.g. `['@/*', '~/*']`). */
58
+ pathPatterns: string[];
59
+ /** Raw `compilerOptions.baseUrl` string, if present (reported, not used to resolve). */
60
+ baseUrl?: string;
61
+ /** Whether a readable, parseable tsconfig.json existed at projectRoot. */
62
+ hasTsconfig: boolean;
63
+ }
64
+ /**
65
+ * Read `compilerOptions.paths` + `baseUrl` from the project's tsconfig.json for
66
+ * pattern matching only. Behavior:
67
+ * - absent — returns `{ hasTsconfig: false, pathPatterns: [] }` (a project with no
68
+ * tsconfig still classifies `@/`-prefixed specifiers as alias, independent of this).
69
+ * - malformed (JSON parse fails, or comments the stripper can't recover from) —
70
+ * same as absent.
71
+ * - `extends` — the extended config is read first (relative to the extending file),
72
+ * then this config's `paths`/`baseUrl` override it. A cycle or a non-relative
73
+ * (package-name) extends that can't be read yields the base as empty.
74
+ */
75
+ export declare function readTsconfigAliases(projectRoot: string): TsconfigAliases;
76
+ //# sourceMappingURL=importClassification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importClassification.d.ts","sourceRoot":"","sources":["../../src/graph/importClassification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH,MAAM,MAAM,uBAAuB,GAC/B,SAAS,GACT,kBAAkB,GAClB,mBAAmB,GACnB,iBAAiB,GACjB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,uBAAuB,CAAC;IACxC,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,sFAAsF;IACtF,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,6EAA6E;IAC7E,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAoBD,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAAe,CAAC;AA8BrE;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,OAAO,GAAE,eAAoB,GAC5B,mBAAmB,CA8CrB;AAID,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAGxE"}