@colbymchenry/codegraph 0.7.2 → 0.7.4

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 (182) hide show
  1. package/README.md +57 -0
  2. package/dist/bin/codegraph.js +39 -4
  3. package/dist/bin/codegraph.js.map +1 -1
  4. package/dist/bin/node-version-check.d.ts +17 -0
  5. package/dist/bin/node-version-check.d.ts.map +1 -0
  6. package/dist/bin/node-version-check.js +39 -0
  7. package/dist/bin/node-version-check.js.map +1 -0
  8. package/dist/context/index.d.ts.map +1 -1
  9. package/dist/context/index.js +46 -18
  10. package/dist/context/index.js.map +1 -1
  11. package/dist/db/index.d.ts +9 -2
  12. package/dist/db/index.d.ts.map +1 -1
  13. package/dist/db/index.js +17 -7
  14. package/dist/db/index.js.map +1 -1
  15. package/dist/db/migrations.d.ts +1 -1
  16. package/dist/db/migrations.d.ts.map +1 -1
  17. package/dist/db/migrations.js +11 -1
  18. package/dist/db/migrations.js.map +1 -1
  19. package/dist/db/queries.d.ts +16 -0
  20. package/dist/db/queries.d.ts.map +1 -1
  21. package/dist/db/queries.js +144 -7
  22. package/dist/db/queries.js.map +1 -1
  23. package/dist/db/schema.sql +6 -3
  24. package/dist/db/sqlite-adapter.d.ts +23 -4
  25. package/dist/db/sqlite-adapter.d.ts.map +1 -1
  26. package/dist/db/sqlite-adapter.js +51 -11
  27. package/dist/db/sqlite-adapter.js.map +1 -1
  28. package/dist/extraction/grammars.d.ts +1 -1
  29. package/dist/extraction/grammars.d.ts.map +1 -1
  30. package/dist/extraction/grammars.js +12 -4
  31. package/dist/extraction/grammars.js.map +1 -1
  32. package/dist/extraction/index.d.ts +20 -0
  33. package/dist/extraction/index.d.ts.map +1 -1
  34. package/dist/extraction/index.js +111 -7
  35. package/dist/extraction/index.js.map +1 -1
  36. package/dist/extraction/languages/index.d.ts.map +1 -1
  37. package/dist/extraction/languages/index.js +2 -0
  38. package/dist/extraction/languages/index.js.map +1 -1
  39. package/dist/extraction/languages/scala.d.ts +3 -0
  40. package/dist/extraction/languages/scala.d.ts.map +1 -0
  41. package/dist/extraction/languages/scala.js +139 -0
  42. package/dist/extraction/languages/scala.js.map +1 -0
  43. package/dist/extraction/parse-worker.js +39 -2
  44. package/dist/extraction/parse-worker.js.map +1 -1
  45. package/dist/extraction/svelte-extractor.d.ts +9 -0
  46. package/dist/extraction/svelte-extractor.d.ts.map +1 -1
  47. package/dist/extraction/svelte-extractor.js +42 -0
  48. package/dist/extraction/svelte-extractor.js.map +1 -1
  49. package/dist/extraction/tree-sitter.d.ts +32 -16
  50. package/dist/extraction/tree-sitter.d.ts.map +1 -1
  51. package/dist/extraction/tree-sitter.js +266 -67
  52. package/dist/extraction/tree-sitter.js.map +1 -1
  53. package/dist/extraction/vue-extractor.d.ts +36 -0
  54. package/dist/extraction/vue-extractor.d.ts.map +1 -0
  55. package/dist/extraction/vue-extractor.js +163 -0
  56. package/dist/extraction/vue-extractor.js.map +1 -0
  57. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  58. package/dist/graph/traversal.d.ts.map +1 -1
  59. package/dist/graph/traversal.js +7 -1
  60. package/dist/graph/traversal.js.map +1 -1
  61. package/dist/index.d.ts +7 -0
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +9 -0
  64. package/dist/index.js.map +1 -1
  65. package/dist/mcp/index.d.ts.map +1 -1
  66. package/dist/mcp/index.js +6 -1
  67. package/dist/mcp/index.js.map +1 -1
  68. package/dist/mcp/server-instructions.d.ts +19 -0
  69. package/dist/mcp/server-instructions.d.ts.map +1 -0
  70. package/dist/mcp/server-instructions.js +59 -0
  71. package/dist/mcp/server-instructions.js.map +1 -0
  72. package/dist/mcp/tools.d.ts.map +1 -1
  73. package/dist/mcp/tools.js +46 -8
  74. package/dist/mcp/tools.js.map +1 -1
  75. package/dist/resolution/frameworks/csharp.d.ts.map +1 -1
  76. package/dist/resolution/frameworks/csharp.js +72 -78
  77. package/dist/resolution/frameworks/csharp.js.map +1 -1
  78. package/dist/resolution/frameworks/express.d.ts.map +1 -1
  79. package/dist/resolution/frameworks/express.js +47 -26
  80. package/dist/resolution/frameworks/express.js.map +1 -1
  81. package/dist/resolution/frameworks/go.d.ts.map +1 -1
  82. package/dist/resolution/frameworks/go.js +41 -72
  83. package/dist/resolution/frameworks/go.js.map +1 -1
  84. package/dist/resolution/frameworks/index.d.ts +7 -0
  85. package/dist/resolution/frameworks/index.d.ts.map +1 -1
  86. package/dist/resolution/frameworks/index.js +13 -1
  87. package/dist/resolution/frameworks/index.js.map +1 -1
  88. package/dist/resolution/frameworks/java.d.ts.map +1 -1
  89. package/dist/resolution/frameworks/java.js +36 -40
  90. package/dist/resolution/frameworks/java.js.map +1 -1
  91. package/dist/resolution/frameworks/laravel.d.ts.map +1 -1
  92. package/dist/resolution/frameworks/laravel.js +94 -44
  93. package/dist/resolution/frameworks/laravel.js.map +1 -1
  94. package/dist/resolution/frameworks/python.d.ts.map +1 -1
  95. package/dist/resolution/frameworks/python.js +163 -151
  96. package/dist/resolution/frameworks/python.js.map +1 -1
  97. package/dist/resolution/frameworks/react.d.ts.map +1 -1
  98. package/dist/resolution/frameworks/react.js +3 -2
  99. package/dist/resolution/frameworks/react.js.map +1 -1
  100. package/dist/resolution/frameworks/ruby.d.ts.map +1 -1
  101. package/dist/resolution/frameworks/ruby.js +39 -91
  102. package/dist/resolution/frameworks/ruby.js.map +1 -1
  103. package/dist/resolution/frameworks/rust.d.ts.map +1 -1
  104. package/dist/resolution/frameworks/rust.js +50 -43
  105. package/dist/resolution/frameworks/rust.js.map +1 -1
  106. package/dist/resolution/frameworks/svelte.d.ts.map +1 -1
  107. package/dist/resolution/frameworks/svelte.js +3 -2
  108. package/dist/resolution/frameworks/svelte.js.map +1 -1
  109. package/dist/resolution/frameworks/swift.d.ts.map +1 -1
  110. package/dist/resolution/frameworks/swift.js +54 -46
  111. package/dist/resolution/frameworks/swift.js.map +1 -1
  112. package/dist/resolution/frameworks/vue.d.ts +9 -0
  113. package/dist/resolution/frameworks/vue.d.ts.map +1 -0
  114. package/dist/resolution/frameworks/vue.js +306 -0
  115. package/dist/resolution/frameworks/vue.js.map +1 -0
  116. package/dist/resolution/import-resolver.d.ts +17 -1
  117. package/dist/resolution/import-resolver.d.ts.map +1 -1
  118. package/dist/resolution/import-resolver.js +256 -46
  119. package/dist/resolution/import-resolver.js.map +1 -1
  120. package/dist/resolution/index.d.ts +8 -0
  121. package/dist/resolution/index.d.ts.map +1 -1
  122. package/dist/resolution/index.js +60 -1
  123. package/dist/resolution/index.js.map +1 -1
  124. package/dist/resolution/name-matcher.d.ts.map +1 -1
  125. package/dist/resolution/name-matcher.js +21 -0
  126. package/dist/resolution/name-matcher.js.map +1 -1
  127. package/dist/resolution/path-aliases.d.ts +68 -0
  128. package/dist/resolution/path-aliases.d.ts.map +1 -0
  129. package/dist/resolution/path-aliases.js +238 -0
  130. package/dist/resolution/path-aliases.js.map +1 -0
  131. package/dist/resolution/strip-comments.d.ts +27 -0
  132. package/dist/resolution/strip-comments.d.ts.map +1 -0
  133. package/dist/resolution/strip-comments.js +441 -0
  134. package/dist/resolution/strip-comments.js.map +1 -0
  135. package/dist/resolution/types.d.ts +54 -3
  136. package/dist/resolution/types.d.ts.map +1 -1
  137. package/dist/search/query-parser.d.ts +57 -0
  138. package/dist/search/query-parser.d.ts.map +1 -0
  139. package/dist/search/query-parser.js +177 -0
  140. package/dist/search/query-parser.js.map +1 -0
  141. package/dist/types.d.ts +11 -4
  142. package/dist/types.d.ts.map +1 -1
  143. package/dist/types.js +68 -1
  144. package/dist/types.js.map +1 -1
  145. package/package.json +5 -2
  146. package/dist/installer/banner.d.ts +0 -40
  147. package/dist/installer/banner.d.ts.map +0 -1
  148. package/dist/installer/banner.js +0 -165
  149. package/dist/installer/banner.js.map +0 -1
  150. package/dist/installer/prompts.d.ts +0 -18
  151. package/dist/installer/prompts.d.ts.map +0 -1
  152. package/dist/installer/prompts.js +0 -113
  153. package/dist/installer/prompts.js.map +0 -1
  154. package/dist/sentry.d.ts +0 -24
  155. package/dist/sentry.d.ts.map +0 -1
  156. package/dist/sentry.js +0 -166
  157. package/dist/sentry.js.map +0 -1
  158. package/dist/sync/git-hooks.d.ts +0 -66
  159. package/dist/sync/git-hooks.d.ts.map +0 -1
  160. package/dist/sync/git-hooks.js +0 -281
  161. package/dist/sync/git-hooks.js.map +0 -1
  162. package/dist/vectors/embedder.d.ts +0 -140
  163. package/dist/vectors/embedder.d.ts.map +0 -1
  164. package/dist/vectors/embedder.js +0 -338
  165. package/dist/vectors/embedder.js.map +0 -1
  166. package/dist/vectors/index.d.ts +0 -9
  167. package/dist/vectors/index.d.ts.map +0 -1
  168. package/dist/vectors/index.js +0 -20
  169. package/dist/vectors/index.js.map +0 -1
  170. package/dist/vectors/manager.d.ts +0 -119
  171. package/dist/vectors/manager.d.ts.map +0 -1
  172. package/dist/vectors/manager.js +0 -274
  173. package/dist/vectors/manager.js.map +0 -1
  174. package/dist/vectors/search.d.ts +0 -134
  175. package/dist/vectors/search.d.ts.map +0 -1
  176. package/dist/vectors/search.js +0 -411
  177. package/dist/vectors/search.js.map +0 -1
  178. package/dist/visualizer/public/index.html +0 -1994
  179. package/dist/visualizer/server.d.ts +0 -46
  180. package/dist/visualizer/server.d.ts.map +0 -1
  181. package/dist/visualizer/server.js +0 -491
  182. package/dist/visualizer/server.js.map +0 -1
@@ -6,8 +6,10 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.railsResolver = void 0;
9
+ const strip_comments_1 = require("../strip-comments");
9
10
  exports.railsResolver = {
10
11
  name: 'rails',
12
+ languages: ['ruby'],
11
13
  detect(context) {
12
14
  // Check for Gemfile with rails
13
15
  const gemfile = context.readFile('Gemfile');
@@ -73,100 +75,46 @@ exports.railsResolver = {
73
75
  }
74
76
  return null;
75
77
  },
76
- extractNodes(filePath, content) {
78
+ extract(filePath, content) {
79
+ if (!filePath.endsWith('.rb'))
80
+ return { nodes: [], references: [] };
77
81
  const nodes = [];
82
+ const references = [];
78
83
  const now = Date.now();
79
- // Extract route definitions from config/routes.rb
80
- if (filePath.includes('routes.rb')) {
81
- // get/post/put/patch/delete 'path'
82
- const routePatterns = [
83
- /(get|post|put|patch|delete)\s+['"]([^'"]+)['"]/g,
84
- /resources?\s+:(\w+)/g,
85
- /root\s+['"]([^'"]+)['"]/g,
86
- /root\s+to:\s*['"]([^'"]+)['"]/g,
87
- ];
88
- for (const pattern of routePatterns) {
89
- let match;
90
- while ((match = pattern.exec(content)) !== null) {
91
- const line = content.slice(0, match.index).split('\n').length;
92
- if (pattern.source.includes('resources')) {
93
- const [, resourceName] = match;
94
- nodes.push({
95
- id: `route:${filePath}:resource:${resourceName}:${line}`,
96
- kind: 'route',
97
- name: `resource:${resourceName}`,
98
- qualifiedName: `${filePath}::resource:${resourceName}`,
99
- filePath,
100
- startLine: line,
101
- endLine: line,
102
- startColumn: 0,
103
- endColumn: match[0].length,
104
- language: 'ruby',
105
- updatedAt: now,
106
- });
107
- }
108
- else if (pattern.source.includes('root')) {
109
- const [, target] = match;
110
- nodes.push({
111
- id: `route:${filePath}:root:${line}`,
112
- kind: 'route',
113
- name: `/ -> ${target}`,
114
- qualifiedName: `${filePath}::root`,
115
- filePath,
116
- startLine: line,
117
- endLine: line,
118
- startColumn: 0,
119
- endColumn: match[0].length,
120
- language: 'ruby',
121
- updatedAt: now,
122
- });
123
- }
124
- else {
125
- const [, method, path] = match;
126
- nodes.push({
127
- id: `route:${filePath}:${method.toUpperCase()}:${path}:${line}`,
128
- kind: 'route',
129
- name: `${method.toUpperCase()} ${path}`,
130
- qualifiedName: `${filePath}::${method.toUpperCase()}:${path}`,
131
- filePath,
132
- startLine: line,
133
- endLine: line,
134
- startColumn: 0,
135
- endColumn: match[0].length,
136
- language: 'ruby',
137
- updatedAt: now,
138
- });
139
- }
140
- }
141
- }
142
- }
143
- // Extract controller actions
144
- if (filePath.includes('controllers/') && filePath.endsWith('.rb')) {
145
- const actionPattern = /def\s+(\w+)/g;
146
- let match;
147
- while ((match = actionPattern.exec(content)) !== null) {
148
- const [, actionName] = match;
149
- const line = content.slice(0, match.index).split('\n').length;
150
- // Skip private methods and common Rails callbacks
151
- const privateMethods = ['initialize', 'set_', 'before_', 'after_'];
152
- if (!privateMethods.some((p) => actionName.startsWith(p))) {
153
- nodes.push({
154
- id: `action:${filePath}:${actionName}:${line}`,
155
- kind: 'method',
156
- name: actionName,
157
- qualifiedName: `${filePath}::${actionName}`,
158
- filePath,
159
- startLine: line,
160
- endLine: line,
161
- startColumn: 0,
162
- endColumn: match[0].length,
163
- language: 'ruby',
164
- updatedAt: now,
165
- });
166
- }
167
- }
84
+ const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'ruby');
85
+ // get/post/put/patch/delete/match '/path', to: 'controller#action'
86
+ // Also: get '/path' => 'controller#action'
87
+ const routeRegex = /\b(get|post|put|patch|delete|match)\s+['"]([^'"]+)['"]\s*(?:,\s*to:\s*|=>\s*)['"]([^#'"]+)#([^'"]+)['"]/g;
88
+ let match;
89
+ while ((match = routeRegex.exec(safe)) !== null) {
90
+ const [, method, routePath, _controller, action] = match;
91
+ const line = safe.slice(0, match.index).split('\n').length;
92
+ const upper = method.toUpperCase();
93
+ const routeNode = {
94
+ id: `route:${filePath}:${line}:${upper}:${routePath}`,
95
+ kind: 'route',
96
+ name: `${upper} ${routePath}`,
97
+ qualifiedName: `${filePath}::route:${routePath}`,
98
+ filePath,
99
+ startLine: line,
100
+ endLine: line,
101
+ startColumn: 0,
102
+ endColumn: match[0].length,
103
+ language: 'ruby',
104
+ updatedAt: now,
105
+ };
106
+ nodes.push(routeNode);
107
+ references.push({
108
+ fromNodeId: routeNode.id,
109
+ referenceName: action,
110
+ referenceKind: 'references',
111
+ line,
112
+ column: 0,
113
+ filePath,
114
+ language: 'ruby',
115
+ });
168
116
  }
169
- return nodes;
117
+ return { nodes, references };
170
118
  },
171
119
  };
172
120
  // Helper functions
@@ -1 +1 @@
1
- {"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/ruby.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/ruby.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/rust.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAE5F,eAAO,MAAM,YAAY,EAAE,iBAgJ1B,CAAC"}
1
+ {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/rust.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAG5F,eAAO,MAAM,YAAY,EAAE,iBAkJ1B,CAAC"}
@@ -6,8 +6,10 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.rustResolver = void 0;
9
+ const strip_comments_1 = require("../strip-comments");
9
10
  exports.rustResolver = {
10
11
  name: 'rust',
12
+ languages: ['rust'],
11
13
  detect(context) {
12
14
  // Check for Cargo.toml (Rust project signature)
13
15
  return context.fileExists('Cargo.toml');
@@ -63,21 +65,26 @@ exports.rustResolver = {
63
65
  }
64
66
  return null;
65
67
  },
66
- extractNodes(filePath, content) {
68
+ extract(filePath, content) {
69
+ if (!filePath.endsWith('.rs'))
70
+ return { nodes: [], references: [] };
67
71
  const nodes = [];
72
+ const references = [];
68
73
  const now = Date.now();
69
- // Extract Actix-web routes
70
- // #[get("/path")], #[post("/path")], etc.
71
- const actixRoutePattern = /#\[(get|post|put|patch|delete)\s*\(\s*["']([^"']+)["']/g;
74
+ const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'rust');
75
+ // Actix-web / Rocket attribute: #[get("/path")] fn handler(..)
76
+ // Capture the method, path, and the fn identifier that follows.
77
+ const attrRegex = /#\[(get|post|put|patch|delete|head|options)\s*\(\s*["']([^"']+)["'][^\]]*\)\]/g;
72
78
  let match;
73
- while ((match = actixRoutePattern.exec(content)) !== null) {
74
- const [, method, path] = match;
75
- const line = content.slice(0, match.index).split('\n').length;
76
- nodes.push({
77
- id: `route:${filePath}:${method.toUpperCase()}:${path}:${line}`,
79
+ while ((match = attrRegex.exec(safe)) !== null) {
80
+ const [, method, routePath] = match;
81
+ const line = safe.slice(0, match.index).split('\n').length;
82
+ const upper = method.toUpperCase();
83
+ const routeNode = {
84
+ id: `route:${filePath}:${line}:${upper}:${routePath}`,
78
85
  kind: 'route',
79
- name: `${method.toUpperCase()} ${path}`,
80
- qualifiedName: `${filePath}::${method.toUpperCase()}:${path}`,
86
+ name: `${upper} ${routePath}`,
87
+ qualifiedName: `${filePath}::route:${routePath}`,
81
88
  filePath,
82
89
  startLine: line,
83
90
  endLine: line,
@@ -85,43 +92,33 @@ exports.rustResolver = {
85
92
  endColumn: match[0].length,
86
93
  language: 'rust',
87
94
  updatedAt: now,
88
- });
89
- }
90
- // Extract Rocket routes
91
- // #[get("/path")], #[post("/path", ...)]
92
- const rocketRoutePattern = /#\[(get|post|put|patch|delete|head|options)\s*\(\s*["']([^"']+)["']/g;
93
- while ((match = rocketRoutePattern.exec(content)) !== null) {
94
- const [, method, path] = match;
95
- const line = content.slice(0, match.index).split('\n').length;
96
- // Avoid duplicates from actix pattern
97
- const routeId = `route:${filePath}:${method.toUpperCase()}:${path}:${line}`;
98
- if (!nodes.some((n) => n.id === routeId)) {
99
- nodes.push({
100
- id: routeId,
101
- kind: 'route',
102
- name: `${method.toUpperCase()} ${path}`,
103
- qualifiedName: `${filePath}::${method.toUpperCase()}:${path}`,
95
+ };
96
+ nodes.push(routeNode);
97
+ const tail = safe.slice(match.index + match[0].length);
98
+ const fnMatch = tail.match(/\n\s*(?:pub\s+)?(?:async\s+)?fn\s+(\w+)/);
99
+ if (fnMatch) {
100
+ references.push({
101
+ fromNodeId: routeNode.id,
102
+ referenceName: fnMatch[1],
103
+ referenceKind: 'references',
104
+ line,
105
+ column: 0,
104
106
  filePath,
105
- startLine: line,
106
- endLine: line,
107
- startColumn: 0,
108
- endColumn: match[0].length,
109
107
  language: 'rust',
110
- updatedAt: now,
111
108
  });
112
109
  }
113
110
  }
114
- // Extract Axum routes (method chaining style)
115
- // .route("/path", get(handler))
116
- const axumRoutePattern = /\.route\s*\(\s*["']([^"']+)["']\s*,\s*(get|post|put|patch|delete)/g;
117
- while ((match = axumRoutePattern.exec(content)) !== null) {
118
- const [, path, method] = match;
119
- const line = content.slice(0, match.index).split('\n').length;
120
- nodes.push({
121
- id: `route:${filePath}:${method.toUpperCase()}:${path}:${line}`,
111
+ // Axum: .route("/path", get(handler))
112
+ const axumRegex = /\.route\s*\(\s*"([^"]+)"\s*,\s*(get|post|put|patch|delete)\s*\(\s*(\w+)/g;
113
+ while ((match = axumRegex.exec(safe)) !== null) {
114
+ const [, routePath, method, handler] = match;
115
+ const line = safe.slice(0, match.index).split('\n').length;
116
+ const upper = method.toUpperCase();
117
+ const routeNode = {
118
+ id: `route:${filePath}:${line}:${upper}:${routePath}`,
122
119
  kind: 'route',
123
- name: `${method.toUpperCase()} ${path}`,
124
- qualifiedName: `${filePath}::${method.toUpperCase()}:${path}`,
120
+ name: `${upper} ${routePath}`,
121
+ qualifiedName: `${filePath}::route:${routePath}`,
125
122
  filePath,
126
123
  startLine: line,
127
124
  endLine: line,
@@ -129,9 +126,19 @@ exports.rustResolver = {
129
126
  endColumn: match[0].length,
130
127
  language: 'rust',
131
128
  updatedAt: now,
129
+ };
130
+ nodes.push(routeNode);
131
+ references.push({
132
+ fromNodeId: routeNode.id,
133
+ referenceName: handler,
134
+ referenceKind: 'references',
135
+ line,
136
+ column: 0,
137
+ filePath,
138
+ language: 'rust',
132
139
  });
133
140
  }
134
- return nodes;
141
+ return { nodes, references };
135
142
  },
136
143
  };
137
144
  // Directory patterns
@@ -1 +1 @@
1
- {"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/rust.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/rust.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"svelte.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/svelte.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAoC5F,eAAO,MAAM,cAAc,EAAE,iBAsI5B,CAAC"}
1
+ {"version":3,"file":"svelte.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/svelte.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAoC5F,eAAO,MAAM,cAAc,EAAE,iBAuI5B,CAAC"}
@@ -41,6 +41,7 @@ const SVELTEKIT_MODULE_PREFIXES = [
41
41
  ];
42
42
  exports.svelteResolver = {
43
43
  name: 'svelte',
44
+ languages: ['svelte'],
44
45
  detect(context) {
45
46
  // Check for svelte or @sveltejs/kit in package.json
46
47
  const packageJson = context.readFile('package.json');
@@ -131,7 +132,7 @@ exports.svelteResolver = {
131
132
  }
132
133
  return null;
133
134
  },
134
- extractNodes(filePath, _content) {
135
+ extract(filePath, _content) {
135
136
  const nodes = [];
136
137
  const now = Date.now();
137
138
  // Detect SvelteKit route files
@@ -157,7 +158,7 @@ exports.svelteResolver = {
157
158
  });
158
159
  }
159
160
  }
160
- return nodes;
161
+ return { nodes, references: [] };
161
162
  },
162
163
  };
163
164
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"svelte.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/svelte.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"svelte.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/svelte.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAKH;;GAEG;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,UAAU;IACV,aAAa;IACb,SAAS;IACT,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,QAAQ;IACR,WAAW;IACX,UAAU;IACV,OAAO;CACR,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,yBAAyB,GAAG;IAChC,iBAAiB;IACjB,aAAa;IACb,kBAAkB;IAClB,YAAY;IACZ,YAAY;IACZ,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,qBAAqB;CACtB,CAAC;AAEW,QAAA,cAAc,GAAsB;IAC/C,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,CAAC,QAAQ,CAAC;IAErB,MAAM,CAAC,OAA0B;QAC/B,oDAAoD;QACpD,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACpC,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;gBAC7D,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;oBACzC,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,eAAe;YACjB,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,CAAC,GAAkB,EAAE,OAA0B;QACpD,4DAA4D;QAC5D,IAAI,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACvC,gFAAgF;YAChF,sEAAsE;YACtE,6EAA6E;YAC7E,OAAO;gBACL,QAAQ,EAAE,GAAG;gBACb,YAAY,EAAE,GAAG,CAAC,UAAU;gBAC5B,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,WAAW;aACxB,CAAC;QACJ,CAAC;QAED,mDAAmD;QACnD,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7E,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,CACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CACtD,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO;oBACL,QAAQ,EAAE,GAAG;oBACb,YAAY,EAAE,SAAS,CAAC,EAAE;oBAC1B,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,WAAW;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzE,6DAA6D;YAC7D,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBAC/D,wBAAwB;gBACxB,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;oBAC1E,MAAM,QAAQ,GAAG,OAAO,GAAG,GAAG,CAAC;oBAC/B,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACjC,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;wBAC/C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACrB,OAAO;gCACL,QAAQ,EAAE,GAAG;gCACb,YAAY,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE;gCAC1B,UAAU,EAAE,GAAG;gCACf,UAAU,EAAE,WAAW;6BACxB,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,2CAA2C;YAC3C,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACrF,OAAO;oBACL,QAAQ,EAAE,GAAG;oBACb,YAAY,EAAE,GAAG,CAAC,UAAU;oBAC5B,UAAU,EAAE,GAAG;oBACf,UAAU,EAAE,WAAW;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,IAAI,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;YACrE,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC1E,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,QAAQ,EAAE,GAAG;oBACb,YAAY,EAAE,MAAM;oBACpB,UAAU,EAAE,GAAG;oBACf,UAAU,EAAE,WAAW;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,QAAQ,EAAE,QAAQ;QACxB,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAEnD,IAAI,UAAU,EAAE,CAAC;YACf,8CAA8C;YAC9C,2DAA2D;YAC3D,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;YAErD,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,SAAS,QAAQ,IAAI,SAAS,IAAI;oBACtC,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,SAAS;oBACf,aAAa,EAAE,GAAG,QAAQ,WAAW,SAAS,EAAE;oBAChD,QAAQ;oBACR,SAAS,EAAE,CAAC;oBACZ,OAAO,EAAE,CAAC;oBACV,WAAW,EAAE,CAAC;oBACd,SAAS,EAAE,CAAC;oBACZ,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;oBAChE,SAAS,EAAE,GAAG;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACnC,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,uCAAuC;IACvC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,uDAAuD;IACvD,8EAA8E;IAC9E,iDAAiD;IACjD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEhF,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,IAAY,EACZ,QAAgB,EAChB,OAA0B;IAE1B,mCAAmC;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAEpE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,wBAAwB;IACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;IAE9C,OAAO,UAAU,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,qBAAqB,GAA2B;IACpD,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,WAAW;IACvB,UAAU,EAAE,WAAW;IACvB,iBAAiB,EAAE,kBAAkB;IACrC,iBAAiB,EAAE,kBAAkB;IACrC,gBAAgB,EAAE,QAAQ;IAC1B,YAAY,EAAE,aAAa;IAC3B,YAAY,EAAE,aAAa;IAC3B,mBAAmB,EAAE,oBAAoB;IACzC,mBAAmB,EAAE,oBAAoB;IACzC,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,YAAY;CAC9B,CAAC;AAEF;;GAEG;AACH,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,OAAO,qBAAqB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,QAAgB;IAChD,+BAA+B;IAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEhD,4BAA4B;IAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,WAAW,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,iCAAiC;IACjC,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAE1E,uBAAuB;IACvB,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAE5E,mDAAmD;IACnD,IAAI,KAAK,GAAG,GAAG,GAAG,OAAO;SACtB,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAE,qBAAqB;SAC5D,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,6BAA6B;SACpE,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAQ,oBAAoB;IAE/D,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,GAAG,CAAC;IAC9B,wBAAwB;IACxB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/swift.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAE5F,eAAO,MAAM,eAAe,EAAE,iBAwH7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,iBAgI3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,iBAyH3B,CAAC"}
1
+ {"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/swift.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAG5F,eAAO,MAAM,eAAe,EAAE,iBA2H7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,iBAmI3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,iBAoH3B,CAAC"}
@@ -6,8 +6,10 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.vaporResolver = exports.uikitResolver = exports.swiftUIResolver = void 0;
9
+ const strip_comments_1 = require("../strip-comments");
9
10
  exports.swiftUIResolver = {
10
11
  name: 'swiftui',
12
+ languages: ['swift'],
11
13
  detect(context) {
12
14
  // Check for SwiftUI imports in Swift files
13
15
  const allFiles = context.getAllFiles();
@@ -66,16 +68,19 @@ exports.swiftUIResolver = {
66
68
  }
67
69
  return null;
68
70
  },
69
- extractNodes(filePath, content) {
71
+ extract(filePath, content) {
72
+ if (!filePath.endsWith('.swift'))
73
+ return { nodes: [], references: [] };
70
74
  const nodes = [];
71
75
  const now = Date.now();
76
+ const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'swift');
72
77
  // Extract SwiftUI View structs
73
78
  // struct ContentView: View { ... }
74
79
  const viewPattern = /struct\s+(\w+)\s*:\s*(?:\w+\s*,\s*)*View/g;
75
80
  let match;
76
- while ((match = viewPattern.exec(content)) !== null) {
81
+ while ((match = viewPattern.exec(safe)) !== null) {
77
82
  const [, viewName] = match;
78
- const line = content.slice(0, match.index).split('\n').length;
83
+ const line = safe.slice(0, match.index).split('\n').length;
79
84
  nodes.push({
80
85
  id: `view:${filePath}:${viewName}:${line}`,
81
86
  kind: 'component',
@@ -92,9 +97,9 @@ exports.swiftUIResolver = {
92
97
  }
93
98
  // Extract @main App entry point
94
99
  const appPattern = /@main\s+struct\s+(\w+)\s*:\s*App/g;
95
- while ((match = appPattern.exec(content)) !== null) {
100
+ while ((match = appPattern.exec(safe)) !== null) {
96
101
  const [, appName] = match;
97
- const line = content.slice(0, match.index).split('\n').length;
102
+ const line = safe.slice(0, match.index).split('\n').length;
98
103
  nodes.push({
99
104
  id: `app:${filePath}:${appName}:${line}`,
100
105
  kind: 'class',
@@ -109,11 +114,12 @@ exports.swiftUIResolver = {
109
114
  updatedAt: now,
110
115
  });
111
116
  }
112
- return nodes;
117
+ return { nodes, references: [] };
113
118
  },
114
119
  };
115
120
  exports.uikitResolver = {
116
121
  name: 'uikit',
122
+ languages: ['swift'],
117
123
  detect(context) {
118
124
  const allFiles = context.getAllFiles();
119
125
  for (const file of allFiles) {
@@ -179,15 +185,18 @@ exports.uikitResolver = {
179
185
  }
180
186
  return null;
181
187
  },
182
- extractNodes(filePath, content) {
188
+ extract(filePath, content) {
189
+ if (!filePath.endsWith('.swift'))
190
+ return { nodes: [], references: [] };
183
191
  const nodes = [];
184
192
  const now = Date.now();
193
+ const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'swift');
185
194
  // Extract UIViewController subclasses
186
195
  const vcPattern = /class\s+(\w+)\s*:\s*(?:\w+\s*,\s*)*UIViewController/g;
187
196
  let match;
188
- while ((match = vcPattern.exec(content)) !== null) {
197
+ while ((match = vcPattern.exec(safe)) !== null) {
189
198
  const [, vcName] = match;
190
- const line = content.slice(0, match.index).split('\n').length;
199
+ const line = safe.slice(0, match.index).split('\n').length;
191
200
  nodes.push({
192
201
  id: `viewcontroller:${filePath}:${vcName}:${line}`,
193
202
  kind: 'class',
@@ -204,9 +213,9 @@ exports.uikitResolver = {
204
213
  }
205
214
  // Extract UIView subclasses
206
215
  const viewPattern = /class\s+(\w+)\s*:\s*(?:\w+\s*,\s*)*UIView[^C]/g;
207
- while ((match = viewPattern.exec(content)) !== null) {
216
+ while ((match = viewPattern.exec(safe)) !== null) {
208
217
  const [, viewName] = match;
209
- const line = content.slice(0, match.index).split('\n').length;
218
+ const line = safe.slice(0, match.index).split('\n').length;
210
219
  nodes.push({
211
220
  id: `uiview:${filePath}:${viewName}:${line}`,
212
221
  kind: 'class',
@@ -221,11 +230,12 @@ exports.uikitResolver = {
221
230
  updatedAt: now,
222
231
  });
223
232
  }
224
- return nodes;
233
+ return { nodes, references: [] };
225
234
  },
226
235
  };
227
236
  exports.vaporResolver = {
228
237
  name: 'vapor',
238
+ languages: ['swift'],
229
239
  detect(context) {
230
240
  // Check for Package.swift with Vapor dependency
231
241
  const packageSwift = context.readFile('Package.swift');
@@ -283,42 +293,25 @@ exports.vaporResolver = {
283
293
  }
284
294
  return null;
285
295
  },
286
- extractNodes(filePath, content) {
296
+ extract(filePath, content) {
297
+ if (!filePath.endsWith('.swift'))
298
+ return { nodes: [], references: [] };
287
299
  const nodes = [];
300
+ const references = [];
288
301
  const now = Date.now();
289
- // Extract Vapor routes
290
- // app.get("path") { ... }, app.post("path") { ... }
291
- const routePattern = /\.(get|post|put|patch|delete)\s*\(\s*["']([^"']+)["']/g;
302
+ const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'swift');
303
+ // Vapor: (app|router|routes).METHOD("path", use: handler)
304
+ const routeRegex = /\b(?:app|router|routes)\.(get|post|put|patch|delete)\s*\(\s*"([^"]+)"\s*,\s*use:\s*([A-Za-z_][A-Za-z0-9_.]*)/g;
292
305
  let match;
293
- while ((match = routePattern.exec(content)) !== null) {
294
- const [, method, path] = match;
295
- const line = content.slice(0, match.index).split('\n').length;
296
- nodes.push({
297
- id: `route:${filePath}:${method.toUpperCase()}:${path}:${line}`,
298
- kind: 'route',
299
- name: `${method.toUpperCase()} ${path}`,
300
- qualifiedName: `${filePath}::${method.toUpperCase()}:${path}`,
301
- filePath,
302
- startLine: line,
303
- endLine: line,
304
- startColumn: 0,
305
- endColumn: match[0].length,
306
- language: 'swift',
307
- updatedAt: now,
308
- });
309
- }
310
- // Extract grouped routes
311
- // app.grouped("api").get("users") { ... }
312
- const groupedRoutePattern = /\.grouped\s*\(\s*["']([^"']+)["']\s*\)\s*\.(get|post|put|patch|delete)\s*\(\s*["']([^"']+)["']/g;
313
- while ((match = groupedRoutePattern.exec(content)) !== null) {
314
- const [, prefix, method, path] = match;
315
- const line = content.slice(0, match.index).split('\n').length;
316
- const fullPath = `${prefix}/${path}`;
317
- nodes.push({
318
- id: `route:${filePath}:${method.toUpperCase()}:${fullPath}:${line}`,
306
+ while ((match = routeRegex.exec(safe)) !== null) {
307
+ const [, method, routePath, handlerExpr] = match;
308
+ const line = safe.slice(0, match.index).split('\n').length;
309
+ const upper = method.toUpperCase();
310
+ const routeNode = {
311
+ id: `route:${filePath}:${line}:${upper}:${routePath}`,
319
312
  kind: 'route',
320
- name: `${method.toUpperCase()} /${fullPath}`,
321
- qualifiedName: `${filePath}::${method.toUpperCase()}:${fullPath}`,
313
+ name: `${upper} ${routePath}`,
314
+ qualifiedName: `${filePath}::route:${routePath}`,
322
315
  filePath,
323
316
  startLine: line,
324
317
  endLine: line,
@@ -326,9 +319,24 @@ exports.vaporResolver = {
326
319
  endColumn: match[0].length,
327
320
  language: 'swift',
328
321
  updatedAt: now,
329
- });
322
+ };
323
+ nodes.push(routeNode);
324
+ // Last segment of dotted path (e.g. UserController.list -> list)
325
+ const parts = handlerExpr.split('.');
326
+ const handlerName = parts[parts.length - 1];
327
+ if (handlerName) {
328
+ references.push({
329
+ fromNodeId: routeNode.id,
330
+ referenceName: handlerName,
331
+ referenceKind: 'references',
332
+ line,
333
+ column: 0,
334
+ filePath,
335
+ language: 'swift',
336
+ });
337
+ }
330
338
  }
331
- return nodes;
339
+ return { nodes, references };
332
340
  },
333
341
  };
334
342
  // Directory patterns