@optave/codegraph 3.10.0 → 3.11.1

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 (312) hide show
  1. package/README.md +40 -33
  2. package/dist/ast-analysis/engine.d.ts.map +1 -1
  3. package/dist/ast-analysis/engine.js +91 -60
  4. package/dist/ast-analysis/engine.js.map +1 -1
  5. package/dist/ast-analysis/rules/index.d.ts.map +1 -1
  6. package/dist/ast-analysis/rules/index.js +77 -0
  7. package/dist/ast-analysis/rules/index.js.map +1 -1
  8. package/dist/ast-analysis/visitor-utils.d.ts +3 -0
  9. package/dist/ast-analysis/visitor-utils.d.ts.map +1 -1
  10. package/dist/ast-analysis/visitor-utils.js +83 -49
  11. package/dist/ast-analysis/visitor-utils.js.map +1 -1
  12. package/dist/ast-analysis/visitors/ast-store-visitor.d.ts.map +1 -1
  13. package/dist/ast-analysis/visitors/ast-store-visitor.js +78 -62
  14. package/dist/ast-analysis/visitors/ast-store-visitor.js.map +1 -1
  15. package/dist/ast-analysis/visitors/dataflow-visitor.d.ts.map +1 -1
  16. package/dist/ast-analysis/visitors/dataflow-visitor.js +61 -42
  17. package/dist/ast-analysis/visitors/dataflow-visitor.js.map +1 -1
  18. package/dist/cli/commands/audit.js +1 -1
  19. package/dist/cli/commands/audit.js.map +1 -1
  20. package/dist/cli/commands/build.d.ts.map +1 -1
  21. package/dist/cli/commands/build.js +2 -0
  22. package/dist/cli/commands/build.js.map +1 -1
  23. package/dist/cli/commands/check.js +1 -1
  24. package/dist/cli/commands/check.js.map +1 -1
  25. package/dist/cli/commands/children.js +1 -1
  26. package/dist/cli/commands/children.js.map +1 -1
  27. package/dist/cli/commands/diff-impact.js +1 -1
  28. package/dist/cli/commands/diff-impact.js.map +1 -1
  29. package/dist/cli/commands/embed.d.ts.map +1 -1
  30. package/dist/cli/commands/embed.js +49 -4
  31. package/dist/cli/commands/embed.js.map +1 -1
  32. package/dist/cli/commands/roles.js +1 -1
  33. package/dist/cli/commands/roles.js.map +1 -1
  34. package/dist/cli/commands/structure.js +1 -1
  35. package/dist/cli/commands/structure.js.map +1 -1
  36. package/dist/cli/shared/options.js +1 -1
  37. package/dist/cli/shared/options.js.map +1 -1
  38. package/dist/db/connection.d.ts.map +1 -1
  39. package/dist/db/connection.js +8 -0
  40. package/dist/db/connection.js.map +1 -1
  41. package/dist/domain/analysis/dependencies.d.ts.map +1 -1
  42. package/dist/domain/analysis/dependencies.js +106 -80
  43. package/dist/domain/analysis/dependencies.js.map +1 -1
  44. package/dist/domain/analysis/fn-impact.d.ts.map +1 -1
  45. package/dist/domain/analysis/fn-impact.js +77 -52
  46. package/dist/domain/analysis/fn-impact.js.map +1 -1
  47. package/dist/domain/analysis/module-map.d.ts.map +1 -1
  48. package/dist/domain/analysis/module-map.js +132 -121
  49. package/dist/domain/analysis/module-map.js.map +1 -1
  50. package/dist/domain/graph/builder/helpers.d.ts +4 -4
  51. package/dist/domain/graph/builder/helpers.d.ts.map +1 -1
  52. package/dist/domain/graph/builder/helpers.js +47 -33
  53. package/dist/domain/graph/builder/helpers.js.map +1 -1
  54. package/dist/domain/graph/builder/incremental.d.ts +6 -6
  55. package/dist/domain/graph/builder/incremental.d.ts.map +1 -1
  56. package/dist/domain/graph/builder/incremental.js +148 -99
  57. package/dist/domain/graph/builder/incremental.js.map +1 -1
  58. package/dist/domain/graph/builder/pipeline.d.ts +1 -0
  59. package/dist/domain/graph/builder/pipeline.d.ts.map +1 -1
  60. package/dist/domain/graph/builder/pipeline.js +23 -637
  61. package/dist/domain/graph/builder/pipeline.js.map +1 -1
  62. package/dist/domain/graph/builder/stages/build-edges.d.ts.map +1 -1
  63. package/dist/domain/graph/builder/stages/build-edges.js +141 -98
  64. package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
  65. package/dist/domain/graph/builder/stages/build-structure.d.ts.map +1 -1
  66. package/dist/domain/graph/builder/stages/build-structure.js +82 -65
  67. package/dist/domain/graph/builder/stages/build-structure.js.map +1 -1
  68. package/dist/domain/graph/builder/stages/detect-changes.d.ts.map +1 -1
  69. package/dist/domain/graph/builder/stages/detect-changes.js +84 -56
  70. package/dist/domain/graph/builder/stages/detect-changes.js.map +1 -1
  71. package/dist/domain/graph/builder/stages/finalize.d.ts.map +1 -1
  72. package/dist/domain/graph/builder/stages/finalize.js +60 -51
  73. package/dist/domain/graph/builder/stages/finalize.js.map +1 -1
  74. package/dist/domain/graph/builder/stages/insert-nodes.d.ts +8 -6
  75. package/dist/domain/graph/builder/stages/insert-nodes.d.ts.map +1 -1
  76. package/dist/domain/graph/builder/stages/insert-nodes.js +107 -122
  77. package/dist/domain/graph/builder/stages/insert-nodes.js.map +1 -1
  78. package/dist/domain/graph/builder/stages/native-db-lifecycle.d.ts +14 -0
  79. package/dist/domain/graph/builder/stages/native-db-lifecycle.d.ts.map +1 -0
  80. package/dist/domain/graph/builder/stages/native-db-lifecycle.js +77 -0
  81. package/dist/domain/graph/builder/stages/native-db-lifecycle.js.map +1 -0
  82. package/dist/domain/graph/builder/stages/native-orchestrator.d.ts +62 -0
  83. package/dist/domain/graph/builder/stages/native-orchestrator.d.ts.map +1 -0
  84. package/dist/domain/graph/builder/stages/native-orchestrator.js +747 -0
  85. package/dist/domain/graph/builder/stages/native-orchestrator.js.map +1 -0
  86. package/dist/domain/graph/builder/stages/resolve-imports.d.ts.map +1 -1
  87. package/dist/domain/graph/builder/stages/resolve-imports.js +73 -22
  88. package/dist/domain/graph/builder/stages/resolve-imports.js.map +1 -1
  89. package/dist/domain/graph/cycles.d.ts +6 -4
  90. package/dist/domain/graph/cycles.d.ts.map +1 -1
  91. package/dist/domain/graph/cycles.js +50 -55
  92. package/dist/domain/graph/cycles.js.map +1 -1
  93. package/dist/domain/graph/journal.d.ts.map +1 -1
  94. package/dist/domain/graph/journal.js +89 -70
  95. package/dist/domain/graph/journal.js.map +1 -1
  96. package/dist/domain/graph/watcher.d.ts.map +1 -1
  97. package/dist/domain/graph/watcher.js +28 -20
  98. package/dist/domain/graph/watcher.js.map +1 -1
  99. package/dist/domain/parser.d.ts +12 -23
  100. package/dist/domain/parser.d.ts.map +1 -1
  101. package/dist/domain/parser.js +153 -80
  102. package/dist/domain/parser.js.map +1 -1
  103. package/dist/domain/search/generator.d.ts +3 -1
  104. package/dist/domain/search/generator.d.ts.map +1 -1
  105. package/dist/domain/search/generator.js +68 -45
  106. package/dist/domain/search/generator.js.map +1 -1
  107. package/dist/domain/search/models.d.ts +18 -0
  108. package/dist/domain/search/models.d.ts.map +1 -1
  109. package/dist/domain/search/models.js +72 -4
  110. package/dist/domain/search/models.js.map +1 -1
  111. package/dist/domain/search/search/hybrid.d.ts.map +1 -1
  112. package/dist/domain/search/search/hybrid.js +49 -40
  113. package/dist/domain/search/search/hybrid.js.map +1 -1
  114. package/dist/domain/search/search/semantic.d.ts.map +1 -1
  115. package/dist/domain/search/search/semantic.js +69 -49
  116. package/dist/domain/search/search/semantic.js.map +1 -1
  117. package/dist/domain/wasm-worker-entry.js +209 -137
  118. package/dist/domain/wasm-worker-entry.js.map +1 -1
  119. package/dist/extractors/c.js +25 -6
  120. package/dist/extractors/c.js.map +1 -1
  121. package/dist/extractors/cpp.js +47 -6
  122. package/dist/extractors/cpp.js.map +1 -1
  123. package/dist/extractors/cuda.js +90 -14
  124. package/dist/extractors/cuda.js.map +1 -1
  125. package/dist/extractors/elixir.js +108 -4
  126. package/dist/extractors/elixir.js.map +1 -1
  127. package/dist/extractors/erlang.js +56 -20
  128. package/dist/extractors/erlang.js.map +1 -1
  129. package/dist/extractors/fsharp.d.ts +7 -0
  130. package/dist/extractors/fsharp.d.ts.map +1 -1
  131. package/dist/extractors/fsharp.js +94 -0
  132. package/dist/extractors/fsharp.js.map +1 -1
  133. package/dist/extractors/gleam.d.ts.map +1 -1
  134. package/dist/extractors/gleam.js +29 -33
  135. package/dist/extractors/gleam.js.map +1 -1
  136. package/dist/extractors/groovy.js +41 -1
  137. package/dist/extractors/groovy.js.map +1 -1
  138. package/dist/extractors/haskell.js +48 -4
  139. package/dist/extractors/haskell.js.map +1 -1
  140. package/dist/extractors/helpers.d.ts +79 -1
  141. package/dist/extractors/helpers.d.ts.map +1 -1
  142. package/dist/extractors/helpers.js +137 -0
  143. package/dist/extractors/helpers.js.map +1 -1
  144. package/dist/extractors/java.d.ts.map +1 -1
  145. package/dist/extractors/java.js +37 -49
  146. package/dist/extractors/java.js.map +1 -1
  147. package/dist/extractors/javascript.d.ts.map +1 -1
  148. package/dist/extractors/javascript.js +44 -44
  149. package/dist/extractors/javascript.js.map +1 -1
  150. package/dist/extractors/julia.js +198 -74
  151. package/dist/extractors/julia.js.map +1 -1
  152. package/dist/extractors/kotlin.js +4 -0
  153. package/dist/extractors/kotlin.js.map +1 -1
  154. package/dist/extractors/objc.js +184 -47
  155. package/dist/extractors/objc.js.map +1 -1
  156. package/dist/extractors/python.js +7 -4
  157. package/dist/extractors/python.js.map +1 -1
  158. package/dist/extractors/r.d.ts.map +1 -1
  159. package/dist/extractors/r.js +103 -87
  160. package/dist/extractors/r.js.map +1 -1
  161. package/dist/extractors/scala.d.ts.map +1 -1
  162. package/dist/extractors/scala.js +18 -32
  163. package/dist/extractors/scala.js.map +1 -1
  164. package/dist/extractors/solidity.d.ts.map +1 -1
  165. package/dist/extractors/solidity.js +55 -69
  166. package/dist/extractors/solidity.js.map +1 -1
  167. package/dist/extractors/verilog.js +80 -15
  168. package/dist/extractors/verilog.js.map +1 -1
  169. package/dist/features/boundaries.d.ts.map +1 -1
  170. package/dist/features/boundaries.js +49 -39
  171. package/dist/features/boundaries.js.map +1 -1
  172. package/dist/features/cfg.d.ts.map +1 -1
  173. package/dist/features/cfg.js +90 -63
  174. package/dist/features/cfg.js.map +1 -1
  175. package/dist/features/check.d.ts.map +1 -1
  176. package/dist/features/check.js +43 -34
  177. package/dist/features/check.js.map +1 -1
  178. package/dist/features/cochange.d.ts.map +1 -1
  179. package/dist/features/cochange.js +68 -56
  180. package/dist/features/cochange.js.map +1 -1
  181. package/dist/features/complexity.d.ts.map +1 -1
  182. package/dist/features/complexity.js +105 -75
  183. package/dist/features/complexity.js.map +1 -1
  184. package/dist/features/dataflow.d.ts.map +1 -1
  185. package/dist/features/dataflow.js +37 -29
  186. package/dist/features/dataflow.js.map +1 -1
  187. package/dist/features/flow.d.ts.map +1 -1
  188. package/dist/features/flow.js +31 -22
  189. package/dist/features/flow.js.map +1 -1
  190. package/dist/features/graph-enrichment.d.ts.map +1 -1
  191. package/dist/features/graph-enrichment.js +77 -70
  192. package/dist/features/graph-enrichment.js.map +1 -1
  193. package/dist/features/owners.d.ts +17 -26
  194. package/dist/features/owners.d.ts.map +1 -1
  195. package/dist/features/owners.js +120 -109
  196. package/dist/features/owners.js.map +1 -1
  197. package/dist/features/sequence.d.ts.map +1 -1
  198. package/dist/features/sequence.js +59 -54
  199. package/dist/features/sequence.js.map +1 -1
  200. package/dist/features/structure-query.d.ts.map +1 -1
  201. package/dist/features/structure-query.js +60 -60
  202. package/dist/features/structure-query.js.map +1 -1
  203. package/dist/features/structure.js +28 -36
  204. package/dist/features/structure.js.map +1 -1
  205. package/dist/graph/algorithms/leiden/optimiser.d.ts.map +1 -1
  206. package/dist/graph/algorithms/leiden/optimiser.js +100 -69
  207. package/dist/graph/algorithms/leiden/optimiser.js.map +1 -1
  208. package/dist/graph/classifiers/roles.d.ts.map +1 -1
  209. package/dist/graph/classifiers/roles.js +63 -59
  210. package/dist/graph/classifiers/roles.js.map +1 -1
  211. package/dist/infrastructure/config.d.ts +1 -1
  212. package/dist/infrastructure/config.d.ts.map +1 -1
  213. package/dist/infrastructure/config.js +1 -1
  214. package/dist/infrastructure/config.js.map +1 -1
  215. package/dist/mcp/tool-registry.d.ts.map +1 -1
  216. package/dist/mcp/tool-registry.js +4 -0
  217. package/dist/mcp/tool-registry.js.map +1 -1
  218. package/dist/mcp/tools/semantic-search.d.ts +1 -0
  219. package/dist/mcp/tools/semantic-search.d.ts.map +1 -1
  220. package/dist/mcp/tools/semantic-search.js +1 -0
  221. package/dist/mcp/tools/semantic-search.js.map +1 -1
  222. package/dist/presentation/cfg.d.ts.map +1 -1
  223. package/dist/presentation/cfg.js +44 -29
  224. package/dist/presentation/cfg.js.map +1 -1
  225. package/dist/presentation/flow.d.ts.map +1 -1
  226. package/dist/presentation/flow.js +58 -38
  227. package/dist/presentation/flow.js.map +1 -1
  228. package/dist/types.d.ts +16 -2
  229. package/dist/types.d.ts.map +1 -1
  230. package/grammars/tree-sitter-erlang.wasm +0 -0
  231. package/grammars/tree-sitter-fsharp.wasm +0 -0
  232. package/grammars/tree-sitter-fsharp_signature.wasm +0 -0
  233. package/grammars/tree-sitter-gleam.wasm +0 -0
  234. package/package.json +10 -10
  235. package/src/ast-analysis/engine.ts +145 -61
  236. package/src/ast-analysis/rules/index.ts +87 -0
  237. package/src/ast-analysis/visitor-utils.ts +86 -46
  238. package/src/ast-analysis/visitors/ast-store-visitor.ts +104 -69
  239. package/src/ast-analysis/visitors/dataflow-visitor.ts +86 -47
  240. package/src/cli/commands/audit.ts +1 -1
  241. package/src/cli/commands/build.ts +2 -0
  242. package/src/cli/commands/check.ts +1 -1
  243. package/src/cli/commands/children.ts +1 -1
  244. package/src/cli/commands/diff-impact.ts +1 -1
  245. package/src/cli/commands/embed.ts +54 -4
  246. package/src/cli/commands/roles.ts +1 -1
  247. package/src/cli/commands/structure.ts +1 -1
  248. package/src/cli/shared/options.ts +1 -1
  249. package/src/db/connection.ts +8 -0
  250. package/src/domain/analysis/dependencies.ts +166 -85
  251. package/src/domain/analysis/fn-impact.ts +120 -50
  252. package/src/domain/analysis/module-map.ts +175 -140
  253. package/src/domain/graph/builder/helpers.ts +85 -76
  254. package/src/domain/graph/builder/incremental.ts +223 -131
  255. package/src/domain/graph/builder/pipeline.ts +32 -785
  256. package/src/domain/graph/builder/stages/build-edges.ts +207 -142
  257. package/src/domain/graph/builder/stages/build-structure.ts +115 -82
  258. package/src/domain/graph/builder/stages/detect-changes.ts +107 -64
  259. package/src/domain/graph/builder/stages/finalize.ts +72 -70
  260. package/src/domain/graph/builder/stages/insert-nodes.ts +154 -120
  261. package/src/domain/graph/builder/stages/native-db-lifecycle.ts +74 -0
  262. package/src/domain/graph/builder/stages/native-orchestrator.ts +942 -0
  263. package/src/domain/graph/builder/stages/resolve-imports.ts +79 -25
  264. package/src/domain/graph/cycles.ts +51 -49
  265. package/src/domain/graph/journal.ts +84 -69
  266. package/src/domain/graph/watcher.ts +29 -25
  267. package/src/domain/parser.ts +170 -67
  268. package/src/domain/search/generator.ts +132 -74
  269. package/src/domain/search/models.ts +75 -4
  270. package/src/domain/search/search/hybrid.ts +53 -42
  271. package/src/domain/search/search/semantic.ts +105 -65
  272. package/src/domain/wasm-worker-entry.ts +243 -153
  273. package/src/extractors/c.ts +27 -8
  274. package/src/extractors/cpp.ts +50 -8
  275. package/src/extractors/cuda.ts +90 -16
  276. package/src/extractors/elixir.ts +103 -4
  277. package/src/extractors/erlang.ts +63 -20
  278. package/src/extractors/fsharp.ts +104 -0
  279. package/src/extractors/gleam.ts +40 -39
  280. package/src/extractors/groovy.ts +45 -1
  281. package/src/extractors/haskell.ts +45 -4
  282. package/src/extractors/helpers.ts +205 -1
  283. package/src/extractors/java.ts +42 -45
  284. package/src/extractors/javascript.ts +44 -43
  285. package/src/extractors/julia.ts +191 -77
  286. package/src/extractors/kotlin.ts +4 -0
  287. package/src/extractors/objc.ts +171 -47
  288. package/src/extractors/python.ts +5 -3
  289. package/src/extractors/r.ts +104 -82
  290. package/src/extractors/scala.ts +24 -36
  291. package/src/extractors/solidity.ts +59 -78
  292. package/src/extractors/verilog.ts +83 -15
  293. package/src/features/boundaries.ts +64 -46
  294. package/src/features/cfg.ts +145 -74
  295. package/src/features/check.ts +60 -43
  296. package/src/features/cochange.ts +95 -72
  297. package/src/features/complexity.ts +134 -79
  298. package/src/features/dataflow.ts +57 -34
  299. package/src/features/flow.ts +48 -24
  300. package/src/features/graph-enrichment.ts +105 -70
  301. package/src/features/owners.ts +186 -146
  302. package/src/features/sequence.ts +99 -69
  303. package/src/features/structure-query.ts +94 -79
  304. package/src/features/structure.ts +56 -56
  305. package/src/graph/algorithms/leiden/optimiser.ts +142 -87
  306. package/src/graph/classifiers/roles.ts +64 -54
  307. package/src/infrastructure/config.ts +1 -1
  308. package/src/mcp/tool-registry.ts +5 -0
  309. package/src/mcp/tools/semantic-search.ts +2 -0
  310. package/src/presentation/cfg.ts +48 -32
  311. package/src/presentation/flow.ts +100 -52
  312. package/src/types.ts +16 -1
@@ -105,59 +105,42 @@ export function computeCoChanges(commits, opts = {}) {
105
105
  }
106
106
  return { pairs: results, fileCommitCounts };
107
107
  }
108
- export function analyzeCoChanges(customDbPath, opts = {}) {
109
- const dbPath = findDbPath(customDbPath);
110
- const db = openDb(dbPath);
111
- initSchema(db);
112
- const repoRoot = path.resolve(path.dirname(dbPath), '..');
113
- if (!fs.existsSync(path.join(repoRoot, '.git'))) {
114
- closeDb(db);
115
- return { error: `Not a git repository: ${repoRoot}` };
116
- }
117
- const since = opts.since || '1 year ago';
118
- const minSupport = opts.minSupport ?? 3;
119
- const maxFilesPerCommit = opts.maxFilesPerCommit ?? 50;
120
- // Check for incremental state
121
- let afterSha = null;
122
- if (!opts.full) {
123
- try {
124
- const row = db
125
- .prepare("SELECT value FROM co_change_meta WHERE key = 'last_analyzed_commit'")
126
- .get();
127
- if (row)
128
- afterSha = row.value;
129
- }
130
- catch {
131
- /* table may not exist yet */
132
- }
108
+ /** Read the SHA of the most recently analyzed commit (incremental state). */
109
+ function loadLastAnalyzedSha(db) {
110
+ try {
111
+ const row = db
112
+ .prepare("SELECT value FROM co_change_meta WHERE key = 'last_analyzed_commit'")
113
+ .get();
114
+ return row ? row.value : null;
133
115
  }
134
- // If full re-scan, clear existing data
135
- if (opts.full) {
136
- db.exec('DELETE FROM co_changes');
137
- db.exec('DELETE FROM co_change_meta');
138
- db.exec('DELETE FROM file_commit_counts');
116
+ catch {
117
+ /* table may not exist yet */
118
+ return null;
139
119
  }
140
- // Collect known files from the graph for filtering
141
- let knownFiles = null;
120
+ }
121
+ /** Wipe all co-change tables for a full re-scan. */
122
+ function clearCoChangeTables(db) {
123
+ db.exec('DELETE FROM co_changes');
124
+ db.exec('DELETE FROM co_change_meta');
125
+ db.exec('DELETE FROM file_commit_counts');
126
+ }
127
+ /** Collect the set of files currently tracked by the graph for filtering. */
128
+ function loadKnownFiles(db) {
142
129
  try {
143
130
  const rows = db.prepare('SELECT DISTINCT file FROM nodes').all();
144
- knownFiles = new Set(rows.map((r) => r.file));
131
+ return new Set(rows.map((r) => r.file));
145
132
  }
146
133
  catch {
147
134
  /* nodes table may not exist */
135
+ return null;
148
136
  }
149
- const { commits } = scanGitHistory(repoRoot, { since, afterSha });
150
- const { pairs: coChanges, fileCommitCounts } = computeCoChanges(commits, {
151
- minSupport,
152
- maxFilesPerCommit,
153
- knownFiles,
154
- });
155
- // Upsert per-file commit counts so Jaccard can be recomputed from totals
137
+ }
138
+ /** Upsert per-file commit counts and pair counts (Jaccard recomputed later). */
139
+ function persistCoChangeResults(db, fileCommitCounts, coChanges) {
156
140
  const fileCountUpsert = db.prepare(`
157
141
  INSERT INTO file_commit_counts (file, commit_count) VALUES (?, ?)
158
142
  ON CONFLICT(file) DO UPDATE SET commit_count = commit_count + excluded.commit_count
159
143
  `);
160
- // Upsert pair counts (accumulate commit_count, jaccard placeholder — recomputed below)
161
144
  const pairUpsert = db.prepare(`
162
145
  INSERT INTO co_changes (file_a, file_b, commit_count, jaccard, last_commit_epoch)
163
146
  VALUES (?, ?, ?, 0, ?)
@@ -175,22 +158,25 @@ export function analyzeCoChanges(customDbPath, opts = {}) {
175
158
  }
176
159
  });
177
160
  insertMany();
178
- // Recompute Jaccard for all affected pairs from total file commit counts
179
- const affectedFiles = [...fileCommitCounts.keys()];
180
- if (affectedFiles.length > 0) {
181
- const ph = affectedFiles.map(() => '?').join(',');
182
- db.prepare(`
183
- UPDATE co_changes SET jaccard = (
184
- SELECT CAST(co_changes.commit_count AS REAL) / (
185
- COALESCE(fa.commit_count, 0) + COALESCE(fb.commit_count, 0) - co_changes.commit_count
186
- )
187
- FROM file_commit_counts fa, file_commit_counts fb
188
- WHERE fa.file = co_changes.file_a AND fb.file = co_changes.file_b
161
+ }
162
+ /** Recompute Jaccard for every pair touching any file in `affectedFiles`. */
163
+ function recomputeJaccardForAffected(db, affectedFiles) {
164
+ if (affectedFiles.length === 0)
165
+ return;
166
+ const ph = affectedFiles.map(() => '?').join(',');
167
+ db.prepare(`
168
+ UPDATE co_changes SET jaccard = (
169
+ SELECT CAST(co_changes.commit_count AS REAL) / (
170
+ COALESCE(fa.commit_count, 0) + COALESCE(fb.commit_count, 0) - co_changes.commit_count
189
171
  )
190
- WHERE file_a IN (${ph}) OR file_b IN (${ph})
191
- `).run(...affectedFiles, ...affectedFiles);
192
- }
193
- // Update metadata
172
+ FROM file_commit_counts fa, file_commit_counts fb
173
+ WHERE fa.file = co_changes.file_a AND fb.file = co_changes.file_b
174
+ )
175
+ WHERE file_a IN (${ph}) OR file_b IN (${ph})
176
+ `).run(...affectedFiles, ...affectedFiles);
177
+ }
178
+ /** Update co_change_meta with the latest analyzer run parameters. */
179
+ function updateCoChangeMeta(db, commits, since, minSupport) {
194
180
  const metaUpsert = db.prepare(`
195
181
  INSERT INTO co_change_meta (key, value) VALUES (?, ?)
196
182
  ON CONFLICT(key) DO UPDATE SET value = excluded.value
@@ -201,6 +187,32 @@ export function analyzeCoChanges(customDbPath, opts = {}) {
201
187
  metaUpsert.run('analyzed_at', new Date().toISOString());
202
188
  metaUpsert.run('since', since);
203
189
  metaUpsert.run('min_support', String(minSupport));
190
+ }
191
+ export function analyzeCoChanges(customDbPath, opts = {}) {
192
+ const dbPath = findDbPath(customDbPath);
193
+ const db = openDb(dbPath);
194
+ initSchema(db);
195
+ const repoRoot = path.resolve(path.dirname(dbPath), '..');
196
+ if (!fs.existsSync(path.join(repoRoot, '.git'))) {
197
+ closeDb(db);
198
+ return { error: `Not a git repository: ${repoRoot}` };
199
+ }
200
+ const since = opts.since || '1 year ago';
201
+ const minSupport = opts.minSupport ?? 3;
202
+ const maxFilesPerCommit = opts.maxFilesPerCommit ?? 50;
203
+ const afterSha = opts.full ? null : loadLastAnalyzedSha(db);
204
+ if (opts.full)
205
+ clearCoChangeTables(db);
206
+ const knownFiles = loadKnownFiles(db);
207
+ const { commits } = scanGitHistory(repoRoot, { since, afterSha });
208
+ const { pairs: coChanges, fileCommitCounts } = computeCoChanges(commits, {
209
+ minSupport,
210
+ maxFilesPerCommit,
211
+ knownFiles,
212
+ });
213
+ persistCoChangeResults(db, fileCommitCounts, coChanges);
214
+ recomputeJaccardForAffected(db, [...fileCommitCounts.keys()]);
215
+ updateCoChangeMeta(db, commits, since, minSupport);
204
216
  const totalPairs = db
205
217
  .prepare('SELECT COUNT(*) as cnt FROM co_changes')
206
218
  .get().cnt;
@@ -1 +1 @@
1
- {"version":3,"file":"cochange.js","sourceRoot":"","sources":["../../src/features/cochange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cochange.js","sourceRoot":"","sources":["../../src/features/cochange.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"complexity.d.ts","sourceRoot":"","sources":["../../src/features/complexity.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,IAAI,kBAAkB,EACvC,2BAA2B,IAAI,4BAA4B,EAC5D,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EACL,gBAAgB,IAAI,iBAAiB,EAGtC,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EACV,qBAAqB,EAErB,sBAAsB,EAEtB,UAAU,EACV,cAAc,EACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAO5C,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,cAAc,EAC5B,QAAQ,EAAE,MAAM,GACf,sBAAsB,GAAG,IAAI,CA+D/B;AAID,eAAO,MAAM,iBAAiB,2BAAqB,CAAC;AAIpD,eAAO,MAAM,2BAA2B,qCAA+B,CAAC;AAiKxE,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,cAAc,EAC5B,QAAQ,EAAE,MAAM,GACf;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAoCtE;AAID,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACxC,GAAG,EAAE,UAAU,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,cAAc,EAC5B,MAAM,EAAE,MAAM,GACb,gBAAgB,GAAG,IAAI,CAsCzB;AAID,OAAO,EAAE,iBAAiB,IAAI,gBAAgB,EAAE,CAAC;AAEjD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE;QAAE,QAAQ,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE;YACX,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,QAAQ,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;YACzC,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;SACzB,CAAC;KACH,CAAC,CAAC;CACJ;AAwSD,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,qBAAqB,EACzB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACrC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE;IACX,QAAQ,CAAC,EAAE;QAAE,oBAAoB,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAA;KAAE,CAAC;IACnF,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,GACA,OAAO,CAAC,IAAI,CAAC,CAGf;AAKD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"complexity.d.ts","sourceRoot":"","sources":["../../src/features/complexity.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,IAAI,kBAAkB,EACvC,2BAA2B,IAAI,4BAA4B,EAC5D,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EACL,gBAAgB,IAAI,iBAAiB,EAGtC,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EACV,qBAAqB,EAErB,sBAAsB,EAEtB,UAAU,EACV,cAAc,EACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAkE5C,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,cAAc,EAC5B,QAAQ,EAAE,MAAM,GACf,sBAAsB,GAAG,IAAI,CAoB/B;AAID,eAAO,MAAM,iBAAiB,2BAAqB,CAAC;AAIpD,eAAO,MAAM,2BAA2B,qCAA+B,CAAC;AAiKxE,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,cAAc,EAC5B,QAAQ,EAAE,MAAM,GACf;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAoCtE;AAID,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACxC,GAAG,EAAE,UAAU,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,cAAc,EAC5B,MAAM,EAAE,MAAM,GACb,gBAAgB,GAAG,IAAI,CAsCzB;AAID,OAAO,EAAE,iBAAiB,IAAI,gBAAgB,EAAE,CAAC;AAEjD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE;QAAE,QAAQ,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE;YACX,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,QAAQ,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;YACzC,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;SACzB,CAAC;KACH,CAAC,CAAC;CACJ;AA+UD,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,qBAAqB,EACzB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACrC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE;IACX,QAAQ,CAAC,EAAE;QAAE,oBAAoB,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAA;KAAE,CAAC;IACnF,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,GACA,OAAO,CAAC,IAAI,CAAC,CAGf;AAKD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
@@ -12,37 +12,27 @@ export { COMPLEXITY_RULES, HALSTEAD_RULES };
12
12
  // Extensions whose language has complexity rules — used to skip needless WASM init
13
13
  const COMPLEXITY_EXTENSIONS = buildExtensionSet(COMPLEXITY_RULES);
14
14
  // ─── Halstead Metrics Computation ─────────────────────────────────────────
15
- export function computeHalsteadMetrics(functionNode, language) {
16
- const rules = HALSTEAD_RULES.get(language);
17
- if (!rules)
18
- return null;
19
- const operators = new Map(); // type -> count
20
- const operands = new Map(); // text -> count
21
- function walk(node) {
22
- if (!node)
23
- return;
24
- // Skip type annotation subtrees
25
- if (rules?.skipTypes.has(node.type))
26
- return;
27
- // Compound operators (non-leaf): count the node type as an operator
28
- if (rules?.compoundOperators.has(node.type)) {
15
+ /** Classify a tree-sitter node as a Halstead operator or operand,
16
+ * updating the running counts. Pure helper extracted from computeHalsteadMetrics
17
+ * to keep the dispatcher thin. */
18
+ function classifyHalsteadToken(node, rules, operators, operands) {
19
+ // Compound operators (non-leaf): count the node type as an operator
20
+ if (rules.compoundOperators.has(node.type)) {
21
+ operators.set(node.type, (operators.get(node.type) || 0) + 1);
22
+ }
23
+ // Leaf nodes: classify as operator or operand
24
+ if (node.childCount === 0) {
25
+ if (rules.operatorLeafTypes.has(node.type)) {
29
26
  operators.set(node.type, (operators.get(node.type) || 0) + 1);
30
27
  }
31
- // Leaf nodes: classify as operator or operand
32
- if (node.childCount === 0) {
33
- if (rules?.operatorLeafTypes.has(node.type)) {
34
- operators.set(node.type, (operators.get(node.type) || 0) + 1);
35
- }
36
- else if (rules?.operandLeafTypes.has(node.type)) {
37
- const text = node.text;
38
- operands.set(text, (operands.get(text) || 0) + 1);
39
- }
40
- }
41
- for (let i = 0; i < node.childCount; i++) {
42
- walk(node.child(i));
28
+ else if (rules.operandLeafTypes.has(node.type)) {
29
+ const text = node.text;
30
+ operands.set(text, (operands.get(text) || 0) + 1);
43
31
  }
44
32
  }
45
- walk(functionNode);
33
+ }
34
+ /** Build a HalsteadDerivedMetrics summary from the raw operator/operand counts. */
35
+ function summarizeHalsteadCounts(operators, operands) {
46
36
  const n1 = operators.size; // distinct operators
47
37
  const n2 = operands.size; // distinct operands
48
38
  let bigN1 = 0; // total operators
@@ -53,7 +43,6 @@ export function computeHalsteadMetrics(functionNode, language) {
53
43
  bigN2 += c;
54
44
  const vocabulary = n1 + n2;
55
45
  const length = bigN1 + bigN2;
56
- // Guard against zero
57
46
  const volume = vocabulary > 0 ? length * Math.log2(vocabulary) : 0;
58
47
  const difficulty = n2 > 0 ? (n1 / 2) * (bigN2 / n2) : 0;
59
48
  const effort = difficulty * volume;
@@ -71,6 +60,26 @@ export function computeHalsteadMetrics(functionNode, language) {
71
60
  bugs: +bugs.toFixed(4),
72
61
  };
73
62
  }
63
+ export function computeHalsteadMetrics(functionNode, language) {
64
+ const rules = HALSTEAD_RULES.get(language);
65
+ if (!rules)
66
+ return null;
67
+ const operators = new Map(); // type -> count
68
+ const operands = new Map(); // text -> count
69
+ function walk(node) {
70
+ if (!node)
71
+ return;
72
+ // Skip type annotation subtrees
73
+ if (rules?.skipTypes.has(node.type))
74
+ return;
75
+ classifyHalsteadToken(node, rules, operators, operands);
76
+ for (let i = 0; i < node.childCount; i++) {
77
+ walk(node.child(i));
78
+ }
79
+ }
80
+ walk(functionNode);
81
+ return summarizeHalsteadCounts(operators, operands);
82
+ }
74
83
  // ─── LOC Metrics Computation ──────────────────────────────────────────────
75
84
  // Delegated to ast-analysis/metrics.js; re-exported for backward compatibility.
76
85
  export const computeLOCMetrics = _computeLOCMetrics;
@@ -326,59 +335,80 @@ function upsertAstComplexity(db, upsert, def, relPath, tree, langId, rules) {
326
335
  upsert.run(nodeId, metrics.cognitive, metrics.cyclomatic, metrics.maxNesting, metrics.loc.loc, metrics.loc.sloc, metrics.loc.commentLines, h ? h.n1 : 0, h ? h.n2 : 0, h ? h.bigN1 : 0, h ? h.bigN2 : 0, h ? h.vocabulary : 0, h ? h.length : 0, h ? h.volume : 0, h ? h.difficulty : 0, h ? h.effort : 0, h ? h.bugs : 0, metrics.mi);
327
336
  return 1;
328
337
  }
338
+ /** Classify a definition relative to the native bulk path. Returns
339
+ * 'skip' to ignore it, 'fallback' to bail out, or 'emit' if the row should be added. */
340
+ function classifyDefinitionForNativeBulk(def, langSupported) {
341
+ if (def.kind !== 'function' && def.kind !== 'method')
342
+ return 'skip';
343
+ if (!def.line)
344
+ return 'skip';
345
+ if (!def.complexity) {
346
+ // Interface/type property signatures and single-line stubs are extracted
347
+ // as methods but the native engine correctly never assigns complexity.
348
+ // Mirror the leniency in initWasmParsersIfNeeded to avoid bailing out
349
+ // of the native bulk-insert path for every TypeScript codebase (#846).
350
+ if (def.name.includes('.') || !def.endLine || def.endLine <= def.line)
351
+ return 'skip';
352
+ // Languages without complexity rules will never have data — skip them
353
+ // rather than bailing out of the entire native bulk path.
354
+ if (!langSupported)
355
+ return 'skip';
356
+ return 'fallback'; // genuine function body missing complexity — needs JS fallback
357
+ }
358
+ return 'emit';
359
+ }
360
+ /** Build a single native-bulk row from a definition with complexity data. */
361
+ function buildNativeBulkRow(nodeId, def) {
362
+ const ch = def.complexity?.halstead;
363
+ const cl = def.complexity?.loc;
364
+ return {
365
+ nodeId,
366
+ cognitive: def.complexity?.cognitive ?? 0,
367
+ cyclomatic: def.complexity?.cyclomatic ?? 0,
368
+ maxNesting: def.complexity?.maxNesting ?? 0,
369
+ loc: cl ? cl.loc : 0,
370
+ sloc: cl ? cl.sloc : 0,
371
+ commentLines: cl ? cl.commentLines : 0,
372
+ halsteadN1: ch ? ch.n1 : 0,
373
+ halsteadN2: ch ? ch.n2 : 0,
374
+ halsteadBigN1: ch ? ch.bigN1 : 0,
375
+ halsteadBigN2: ch ? ch.bigN2 : 0,
376
+ halsteadVocabulary: ch ? ch.vocabulary : 0,
377
+ halsteadLength: ch ? ch.length : 0,
378
+ halsteadVolume: ch ? ch.volume : 0,
379
+ halsteadDifficulty: ch ? ch.difficulty : 0,
380
+ halsteadEffort: ch ? ch.effort : 0,
381
+ halsteadBugs: ch ? ch.bugs : 0,
382
+ maintainabilityIndex: def.complexity?.maintainabilityIndex ?? 0,
383
+ };
384
+ }
385
+ /** Try to collect a single file's definitions into native-bulk rows.
386
+ * Returns 'fallback' if any definition forces a JS fallback. */
387
+ function collectFileBulkRows(db, relPath, symbols, rows) {
388
+ const ext = path.extname(relPath).toLowerCase();
389
+ const langId = symbols._langId || '';
390
+ const langSupported = COMPLEXITY_EXTENSIONS.has(ext) || COMPLEXITY_RULES.has(langId);
391
+ for (const def of symbols.definitions) {
392
+ const decision = classifyDefinitionForNativeBulk(def, langSupported);
393
+ if (decision === 'skip')
394
+ continue;
395
+ if (decision === 'fallback')
396
+ return 'fallback';
397
+ const nodeId = getFunctionNodeId(db, def.name, relPath, def.line);
398
+ if (!nodeId)
399
+ continue;
400
+ rows.push(buildNativeBulkRow(nodeId, def));
401
+ }
402
+ return 'emit';
403
+ }
329
404
  /** Collect native bulk-insert rows from precomputed complexity data.
330
405
  * Returns the rows array, or null if any definition is missing complexity
331
406
  * (signalling that JS fallback is needed). */
332
407
  function collectNativeBulkRows(db, fileSymbols) {
333
408
  const rows = [];
334
409
  for (const [relPath, symbols] of fileSymbols) {
335
- const ext = path.extname(relPath).toLowerCase();
336
- const langId = symbols._langId || '';
337
- const langSupported = COMPLEXITY_EXTENSIONS.has(ext) || COMPLEXITY_RULES.has(langId);
338
- for (const def of symbols.definitions) {
339
- if (def.kind !== 'function' && def.kind !== 'method')
340
- continue;
341
- if (!def.line)
342
- continue;
343
- // Interface/type property signatures and single-line stubs are extracted
344
- // as methods but the native engine correctly never assigns complexity.
345
- // Mirror the leniency in initWasmParsersIfNeeded to avoid bailing out
346
- // of the native bulk-insert path for every TypeScript codebase (#846).
347
- if (!def.complexity) {
348
- if (def.name.includes('.') || !def.endLine || def.endLine <= def.line)
349
- continue;
350
- // Languages without complexity rules will never have data — skip them
351
- // rather than bailing out of the entire native bulk path.
352
- if (!langSupported)
353
- continue;
354
- return null; // genuine function body missing complexity — needs JS fallback
355
- }
356
- const nodeId = getFunctionNodeId(db, def.name, relPath, def.line);
357
- if (!nodeId)
358
- continue;
359
- const ch = def.complexity.halstead;
360
- const cl = def.complexity.loc;
361
- rows.push({
362
- nodeId,
363
- cognitive: def.complexity.cognitive ?? 0,
364
- cyclomatic: def.complexity.cyclomatic ?? 0,
365
- maxNesting: def.complexity.maxNesting ?? 0,
366
- loc: cl ? cl.loc : 0,
367
- sloc: cl ? cl.sloc : 0,
368
- commentLines: cl ? cl.commentLines : 0,
369
- halsteadN1: ch ? ch.n1 : 0,
370
- halsteadN2: ch ? ch.n2 : 0,
371
- halsteadBigN1: ch ? ch.bigN1 : 0,
372
- halsteadBigN2: ch ? ch.bigN2 : 0,
373
- halsteadVocabulary: ch ? ch.vocabulary : 0,
374
- halsteadLength: ch ? ch.length : 0,
375
- halsteadVolume: ch ? ch.volume : 0,
376
- halsteadDifficulty: ch ? ch.difficulty : 0,
377
- halsteadEffort: ch ? ch.effort : 0,
378
- halsteadBugs: ch ? ch.bugs : 0,
379
- maintainabilityIndex: def.complexity.maintainabilityIndex ?? 0,
380
- });
381
- }
410
+ if (collectFileBulkRows(db, relPath, symbols, rows) === 'fallback')
411
+ return null;
382
412
  }
383
413
  return rows;
384
414
  }
@@ -1 +1 @@
1
- {"version":3,"file":"complexity.js","sourceRoot":"","sources":["../../src/features/complexity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"complexity.js","sourceRoot":"","sources":["../../src/features/complexity.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dataflow.d.ts","sourceRoot":"","sources":["../../src/features/dataflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataflow.d.ts","sourceRoot":"","sources":["../../src/features/dataflow.ts"],"names":[],"mappings":"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"}