devchain-cli 0.23.1 → 0.23.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/dist/drizzle/0083_retire_documents.sql +2 -0
  2. package/dist/drizzle/0084_retire_codebase_overview.sql +1 -0
  3. package/dist/drizzle/0085_clumsy_zodiak.sql +166 -0
  4. package/dist/drizzle/meta/0083_snapshot.json +7422 -0
  5. package/dist/drizzle/meta/0084_snapshot.json +7422 -0
  6. package/dist/drizzle/meta/0085_snapshot.json +7446 -0
  7. package/dist/drizzle/meta/_journal.json +21 -0
  8. package/dist/server/app.main.module.js +0 -4
  9. package/dist/server/app.main.module.js.map +1 -1
  10. package/dist/server/app.normal.module.js +0 -4
  11. package/dist/server/app.normal.module.js.map +1 -1
  12. package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.d.ts +1 -0
  13. package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.js +48 -0
  14. package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.js.map +1 -1
  15. package/dist/server/modules/epic-time/models/epic-time.models.d.ts +10 -0
  16. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.d.ts +4 -1
  17. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js +43 -1
  18. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js.map +1 -1
  19. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.d.ts +1 -0
  20. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js +31 -1
  21. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js.map +1 -1
  22. package/dist/server/modules/external-integrations/connections/stable-integration-connection.d.ts +14 -0
  23. package/dist/server/modules/external-integrations/connections/stable-integration-connection.js +56 -0
  24. package/dist/server/modules/external-integrations/connections/stable-integration-connection.js.map +1 -0
  25. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.d.ts +2 -1
  26. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js +51 -33
  27. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js.map +1 -1
  28. package/dist/server/modules/external-integrations/my-work/external-my-work.controller.js +2 -2
  29. package/dist/server/modules/external-integrations/my-work/external-my-work.controller.js.map +1 -1
  30. package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.d.ts +1 -0
  31. package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.js +33 -1
  32. package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.js.map +1 -1
  33. package/dist/server/modules/external-integrations/my-work/external-my-work.service.d.ts +1 -1
  34. package/dist/server/modules/external-integrations/my-work/external-my-work.service.js +41 -48
  35. package/dist/server/modules/external-integrations/my-work/external-my-work.service.js.map +1 -1
  36. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js +24 -11
  37. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js.map +1 -1
  38. package/dist/server/modules/external-integrations/sessions/external-edit-session.store.js +3 -1
  39. package/dist/server/modules/external-integrations/sessions/external-edit-session.store.js.map +1 -1
  40. package/dist/server/modules/mcp/constants.d.ts +0 -2
  41. package/dist/server/modules/mcp/constants.js +1 -11
  42. package/dist/server/modules/mcp/constants.js.map +1 -1
  43. package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +0 -165
  44. package/dist/server/modules/mcp/dtos/mcp.dto.js +1 -47
  45. package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
  46. package/dist/server/modules/mcp/services/instructions-resolver.d.ts +4 -13
  47. package/dist/server/modules/mcp/services/instructions-resolver.js +26 -166
  48. package/dist/server/modules/mcp/services/instructions-resolver.js.map +1 -1
  49. package/dist/server/modules/mcp/services/mappers/dto-mappers.d.ts +2 -4
  50. package/dist/server/modules/mcp/services/mappers/dto-mappers.js +0 -22
  51. package/dist/server/modules/mcp/services/mappers/dto-mappers.js.map +1 -1
  52. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +1 -2
  53. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -1
  54. package/dist/server/modules/mcp/services/utils/resource-resolver.d.ts +2 -4
  55. package/dist/server/modules/mcp/services/utils/resource-resolver.js +0 -59
  56. package/dist/server/modules/mcp/services/utils/resource-resolver.js.map +1 -1
  57. package/dist/server/modules/mcp/tool-descriptors/index.js +0 -2
  58. package/dist/server/modules/mcp/tool-descriptors/index.js.map +1 -1
  59. package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js +0 -2
  60. package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js.map +1 -1
  61. package/dist/server/modules/projects/helpers/project-import.d.ts +0 -33
  62. package/dist/server/modules/projects/helpers/project-import.js +0 -224
  63. package/dist/server/modules/projects/helpers/project-import.js.map +1 -1
  64. package/dist/server/modules/projects/services/project-registry-import.service.d.ts +3 -6
  65. package/dist/server/modules/projects/services/project-registry-import.service.js +7 -28
  66. package/dist/server/modules/projects/services/project-registry-import.service.js.map +1 -1
  67. package/dist/server/modules/projects/template-codec/codecs/teams.codec.js.map +1 -1
  68. package/dist/server/modules/registry/controllers/registry.controller.js +3 -10
  69. package/dist/server/modules/registry/controllers/registry.controller.js.map +1 -1
  70. package/dist/server/modules/registry/services/registry-orchestration.service.d.ts +11 -3
  71. package/dist/server/modules/registry/services/registry-orchestration.service.js +6 -1
  72. package/dist/server/modules/registry/services/registry-orchestration.service.js.map +1 -1
  73. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +8 -0
  74. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +9 -0
  75. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -1
  76. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +10 -0
  77. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +13 -0
  78. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -1
  79. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +20 -1
  80. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js.map +1 -1
  81. package/dist/server/modules/session-reader/controllers/session-reader.controller.d.ts +21 -1
  82. package/dist/server/modules/session-reader/controllers/session-reader.controller.js +49 -3
  83. package/dist/server/modules/session-reader/controllers/session-reader.controller.js.map +1 -1
  84. package/dist/server/modules/session-reader/data/pricing.json +2052 -178
  85. package/dist/server/modules/session-reader/parsers/bounded-line-read.d.ts +2 -0
  86. package/dist/server/modules/session-reader/parsers/bounded-line-read.js +66 -0
  87. package/dist/server/modules/session-reader/parsers/bounded-line-read.js.map +1 -0
  88. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.d.ts +6 -0
  89. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js +44 -13
  90. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js.map +1 -1
  91. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.d.ts +22 -0
  92. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js +61 -16
  93. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js.map +1 -1
  94. package/dist/server/modules/session-reader/services/bounded-anchor-proof.d.ts +12 -0
  95. package/dist/server/modules/session-reader/services/bounded-anchor-proof.js +103 -0
  96. package/dist/server/modules/session-reader/services/bounded-anchor-proof.js.map +1 -0
  97. package/dist/server/modules/session-reader/services/metrics-merge.d.ts +17 -0
  98. package/dist/server/modules/session-reader/services/metrics-merge.js +114 -0
  99. package/dist/server/modules/session-reader/services/metrics-merge.js.map +1 -0
  100. package/dist/server/modules/session-reader/services/session-cache.service.d.ts +40 -4
  101. package/dist/server/modules/session-reader/services/session-cache.service.js +232 -148
  102. package/dist/server/modules/session-reader/services/session-cache.service.js.map +1 -1
  103. package/dist/server/modules/session-reader/services/session-reader.service.d.ts +15 -1
  104. package/dist/server/modules/session-reader/services/session-reader.service.js +70 -2
  105. package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
  106. package/dist/server/modules/session-reader/services/transcript-watcher.service.d.ts +20 -3
  107. package/dist/server/modules/session-reader/services/transcript-watcher.service.js +538 -197
  108. package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
  109. package/dist/server/modules/sessions/controllers/sessions.controller.d.ts +4 -1
  110. package/dist/server/modules/sessions/controllers/sessions.controller.js +32 -0
  111. package/dist/server/modules/sessions/controllers/sessions.controller.js.map +1 -1
  112. package/dist/server/modules/sessions/services/message-pool.types.d.ts +23 -0
  113. package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +5 -2
  114. package/dist/server/modules/sessions/services/sessions-message-pool.service.js +82 -4
  115. package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
  116. package/dist/server/modules/storage/db/schema.d.ts +57 -219
  117. package/dist/server/modules/storage/db/schema.js +15 -27
  118. package/dist/server/modules/storage/db/schema.js.map +1 -1
  119. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +6 -23
  120. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  121. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.d.ts +6 -1
  122. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js +163 -32
  123. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js.map +1 -1
  124. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js +11 -1
  125. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js.map +1 -1
  126. package/dist/server/modules/storage/local/delegates/integration.delegate.d.ts +1 -1
  127. package/dist/server/modules/storage/local/delegates/integration.delegate.js +17 -13
  128. package/dist/server/modules/storage/local/delegates/integration.delegate.js.map +1 -1
  129. package/dist/server/modules/storage/local/delegates/project.delegate.js +1 -10
  130. package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -1
  131. package/dist/server/modules/storage/local/local-storage.service.d.ts +6 -9
  132. package/dist/server/modules/storage/local/local-storage.service.js +8 -22
  133. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  134. package/dist/server/modules/storage/models/domain.models.d.ts +14 -20
  135. package/dist/server/modules/storage/models/domain.models.js +2 -1
  136. package/dist/server/modules/storage/models/domain.models.js.map +1 -1
  137. package/dist/server/modules/terminal/services/human-prompt-state.service.d.ts +7 -0
  138. package/dist/server/modules/terminal/services/human-prompt-state.service.js +26 -0
  139. package/dist/server/modules/terminal/services/human-prompt-state.service.js.map +1 -1
  140. package/dist/server/modules/terminal/services/terminal-session/terminal-session.js +3 -2
  141. package/dist/server/modules/terminal/services/terminal-session/terminal-session.js.map +1 -1
  142. package/dist/server/modules/terminal/utils/terminal-activity.js +8 -1
  143. package/dist/server/modules/terminal/utils/terminal-activity.js.map +1 -1
  144. package/dist/server/templates/teams-dev.json +2 -2
  145. package/dist/server/tsconfig.tsbuildinfo +1 -1
  146. package/dist/server/ui/assets/{ExternalRichEditor-FwCAalXO.js → ExternalRichEditor-akgwTdms.js} +24 -24
  147. package/dist/server/ui/assets/ReviewDetailPage-10JU-Gdr.js +1 -0
  148. package/dist/server/ui/assets/ReviewsPage-BIVn-pS5.js +6 -0
  149. package/dist/server/ui/assets/index-Bg8fZbSZ.css +32 -0
  150. package/dist/server/ui/assets/index-DHmiffN1.js +1000 -0
  151. package/dist/server/ui/assets/useReviewSubscription-Xua63feT.js +69 -0
  152. package/dist/server/ui/index.html +2 -2
  153. package/dist/templates/teams-dev.json +2 -2
  154. package/package.json +13 -1
  155. package/dist/server/modules/codebase-overview-analyzer/codebase-overview-analyzer.module.d.ts +0 -2
  156. package/dist/server/modules/codebase-overview-analyzer/codebase-overview-analyzer.module.js +0 -52
  157. package/dist/server/modules/codebase-overview-analyzer/codebase-overview-analyzer.module.js.map +0 -1
  158. package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.d.ts +0 -30
  159. package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.js +0 -230
  160. package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.js.map +0 -1
  161. package/dist/server/modules/codebase-overview-analyzer/repositories/overview-scope.repository.d.ts +0 -24
  162. package/dist/server/modules/codebase-overview-analyzer/repositories/overview-scope.repository.js +0 -191
  163. package/dist/server/modules/codebase-overview-analyzer/repositories/overview-scope.repository.js.map +0 -1
  164. package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.d.ts +0 -73
  165. package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.js +0 -1133
  166. package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.js.map +0 -1
  167. package/dist/server/modules/codebase-overview-analyzer/services/dependency-aggregation.service.d.ts +0 -14
  168. package/dist/server/modules/codebase-overview-analyzer/services/dependency-aggregation.service.js +0 -114
  169. package/dist/server/modules/codebase-overview-analyzer/services/dependency-aggregation.service.js.map +0 -1
  170. package/dist/server/modules/codebase-overview-analyzer/services/district-splitting.service.d.ts +0 -8
  171. package/dist/server/modules/codebase-overview-analyzer/services/district-splitting.service.js +0 -200
  172. package/dist/server/modules/codebase-overview-analyzer/services/district-splitting.service.js.map +0 -1
  173. package/dist/server/modules/codebase-overview-analyzer/services/evidence-query.service.d.ts +0 -11
  174. package/dist/server/modules/codebase-overview-analyzer/services/evidence-query.service.js +0 -164
  175. package/dist/server/modules/codebase-overview-analyzer/services/evidence-query.service.js.map +0 -1
  176. package/dist/server/modules/codebase-overview-analyzer/services/go-adapter.d.ts +0 -2
  177. package/dist/server/modules/codebase-overview-analyzer/services/go-adapter.js +0 -166
  178. package/dist/server/modules/codebase-overview-analyzer/services/go-adapter.js.map +0 -1
  179. package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.d.ts +0 -21
  180. package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.js +0 -253
  181. package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.js.map +0 -1
  182. package/dist/server/modules/codebase-overview-analyzer/services/identity-resolver.service.d.ts +0 -24
  183. package/dist/server/modules/codebase-overview-analyzer/services/identity-resolver.service.js +0 -98
  184. package/dist/server/modules/codebase-overview-analyzer/services/identity-resolver.service.js.map +0 -1
  185. package/dist/server/modules/codebase-overview-analyzer/services/java-adapter.d.ts +0 -2
  186. package/dist/server/modules/codebase-overview-analyzer/services/java-adapter.js +0 -155
  187. package/dist/server/modules/codebase-overview-analyzer/services/java-adapter.js.map +0 -1
  188. package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.d.ts +0 -19
  189. package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.js +0 -88
  190. package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.js.map +0 -1
  191. package/dist/server/modules/codebase-overview-analyzer/services/php-adapter.d.ts +0 -2
  192. package/dist/server/modules/codebase-overview-analyzer/services/php-adapter.js +0 -173
  193. package/dist/server/modules/codebase-overview-analyzer/services/php-adapter.js.map +0 -1
  194. package/dist/server/modules/codebase-overview-analyzer/services/python-adapter.d.ts +0 -2
  195. package/dist/server/modules/codebase-overview-analyzer/services/python-adapter.js +0 -171
  196. package/dist/server/modules/codebase-overview-analyzer/services/python-adapter.js.map +0 -1
  197. package/dist/server/modules/codebase-overview-analyzer/services/ruby-adapter.d.ts +0 -2
  198. package/dist/server/modules/codebase-overview-analyzer/services/ruby-adapter.js +0 -158
  199. package/dist/server/modules/codebase-overview-analyzer/services/ruby-adapter.js.map +0 -1
  200. package/dist/server/modules/codebase-overview-analyzer/services/rust-adapter.d.ts +0 -2
  201. package/dist/server/modules/codebase-overview-analyzer/services/rust-adapter.js +0 -222
  202. package/dist/server/modules/codebase-overview-analyzer/services/rust-adapter.js.map +0 -1
  203. package/dist/server/modules/codebase-overview-analyzer/services/scope-auto-detector.service.d.ts +0 -4
  204. package/dist/server/modules/codebase-overview-analyzer/services/scope-auto-detector.service.js +0 -72
  205. package/dist/server/modules/codebase-overview-analyzer/services/scope-auto-detector.service.js.map +0 -1
  206. package/dist/server/modules/codebase-overview-analyzer/services/scope-resolver.service.d.ts +0 -6
  207. package/dist/server/modules/codebase-overview-analyzer/services/scope-resolver.service.js +0 -37
  208. package/dist/server/modules/codebase-overview-analyzer/services/scope-resolver.service.js.map +0 -1
  209. package/dist/server/modules/codebase-overview-analyzer/services/typescript-adapter.d.ts +0 -2
  210. package/dist/server/modules/codebase-overview-analyzer/services/typescript-adapter.js +0 -108
  211. package/dist/server/modules/codebase-overview-analyzer/services/typescript-adapter.js.map +0 -1
  212. package/dist/server/modules/codebase-overview-analyzer/types/index.d.ts +0 -2
  213. package/dist/server/modules/codebase-overview-analyzer/types/index.js +0 -6
  214. package/dist/server/modules/codebase-overview-analyzer/types/index.js.map +0 -1
  215. package/dist/server/modules/codebase-overview-analyzer/types/overview.types.d.ts +0 -231
  216. package/dist/server/modules/codebase-overview-analyzer/types/overview.types.js +0 -3
  217. package/dist/server/modules/codebase-overview-analyzer/types/overview.types.js.map +0 -1
  218. package/dist/server/modules/codebase-overview-analyzer/types/scope-defaults.d.ts +0 -2
  219. package/dist/server/modules/codebase-overview-analyzer/types/scope-defaults.js +0 -13
  220. package/dist/server/modules/codebase-overview-analyzer/types/scope-defaults.js.map +0 -1
  221. package/dist/server/modules/codebase-overview-analyzer/types/scope.schema.d.ts +0 -54
  222. package/dist/server/modules/codebase-overview-analyzer/types/scope.schema.js +0 -27
  223. package/dist/server/modules/codebase-overview-analyzer/types/scope.schema.js.map +0 -1
  224. package/dist/server/modules/codebase-overview-analyzer/types/scope.types.d.ts +0 -12
  225. package/dist/server/modules/codebase-overview-analyzer/types/scope.types.js +0 -3
  226. package/dist/server/modules/codebase-overview-analyzer/types/scope.types.js.map +0 -1
  227. package/dist/server/modules/codebase-overview-analyzer/utils/constants.d.ts +0 -1
  228. package/dist/server/modules/codebase-overview-analyzer/utils/constants.js +0 -5
  229. package/dist/server/modules/codebase-overview-analyzer/utils/constants.js.map +0 -1
  230. package/dist/server/modules/codebase-overview-analyzer/utils/path-matcher.d.ts +0 -2
  231. package/dist/server/modules/codebase-overview-analyzer/utils/path-matcher.js +0 -17
  232. package/dist/server/modules/codebase-overview-analyzer/utils/path-matcher.js.map +0 -1
  233. package/dist/server/modules/documents/controllers/documents.controller.d.ts +0 -12
  234. package/dist/server/modules/documents/controllers/documents.controller.js +0 -174
  235. package/dist/server/modules/documents/controllers/documents.controller.js.map +0 -1
  236. package/dist/server/modules/documents/documents.module.d.ts +0 -2
  237. package/dist/server/modules/documents/documents.module.js +0 -22
  238. package/dist/server/modules/documents/documents.module.js.map +0 -1
  239. package/dist/server/modules/mcp/services/handlers/document-context.d.ts +0 -8
  240. package/dist/server/modules/mcp/services/handlers/document-context.js +0 -3
  241. package/dist/server/modules/mcp/services/handlers/document-context.js.map +0 -1
  242. package/dist/server/modules/mcp/services/handlers/document-tools.d.ts +0 -6
  243. package/dist/server/modules/mcp/services/handlers/document-tools.js +0 -109
  244. package/dist/server/modules/mcp/services/handlers/document-tools.js.map +0 -1
  245. package/dist/server/modules/mcp/services/utils/document-link-resolver.d.ts +0 -10
  246. package/dist/server/modules/mcp/services/utils/document-link-resolver.js +0 -124
  247. package/dist/server/modules/mcp/services/utils/document-link-resolver.js.map +0 -1
  248. package/dist/server/modules/mcp/tool-descriptors/document.bindings.d.ts +0 -1
  249. package/dist/server/modules/mcp/tool-descriptors/document.bindings.js +0 -19
  250. package/dist/server/modules/mcp/tool-descriptors/document.bindings.js.map +0 -1
  251. package/dist/server/modules/mcp/tool-descriptors/document.metadata.d.ts +0 -2
  252. package/dist/server/modules/mcp/tool-descriptors/document.metadata.js +0 -96
  253. package/dist/server/modules/mcp/tool-descriptors/document.metadata.js.map +0 -1
  254. package/dist/server/modules/storage/local/delegates/document.delegate.d.ts +0 -18
  255. package/dist/server/modules/storage/local/delegates/document.delegate.js +0 -275
  256. package/dist/server/modules/storage/local/delegates/document.delegate.js.map +0 -1
  257. package/dist/server/ui/assets/ReviewDetailPage-D8DVpsJm.js +0 -1
  258. package/dist/server/ui/assets/ReviewsPage-DcWpRFbm.js +0 -6
  259. package/dist/server/ui/assets/index-CV8ydm7w.css +0 -32
  260. package/dist/server/ui/assets/index-Cwe7LxcW.js +0 -1197
  261. package/dist/server/ui/assets/useReviewSubscription-CYoSg-88.js +0 -69
@@ -1 +0,0 @@
1
- {"version":3,"file":"evidence-query.service.js","sourceRoot":"","sources":["../../../../src/modules/codebase-overview-analyzer/services/evidence-query.service.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { LanguageAdapter } from '../types/overview.types';
2
- export declare const goAdapter: LanguageAdapter;
@@ -1,166 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.goAdapter = void 0;
4
- const path_1 = require("path");
5
- const GO_EXTENSIONS = ['.go'];
6
- const IMPORT_BLOCK_RE = /import\s*\(\s*([\s\S]*?)\)/g;
7
- const IMPORT_SINGLE_RE = /^import\s+(?:[\w.]+\s+)?"([^"]+)"/gm;
8
- const IMPORT_LINE_RE = /(?:[\w.]+\s+)?"([^"]+)"/g;
9
- function extractGoImports(content) {
10
- const specifiers = new Set();
11
- IMPORT_BLOCK_RE.lastIndex = 0;
12
- let blockMatch;
13
- while ((blockMatch = IMPORT_BLOCK_RE.exec(content)) !== null) {
14
- const block = blockMatch[1];
15
- IMPORT_LINE_RE.lastIndex = 0;
16
- let lineMatch;
17
- while ((lineMatch = IMPORT_LINE_RE.exec(block)) !== null) {
18
- if (lineMatch[1])
19
- specifiers.add(lineMatch[1]);
20
- }
21
- }
22
- IMPORT_SINGLE_RE.lastIndex = 0;
23
- let singleMatch;
24
- while ((singleMatch = IMPORT_SINGLE_RE.exec(content)) !== null) {
25
- if (singleMatch[1])
26
- specifiers.add(singleMatch[1]);
27
- }
28
- return [...specifiers];
29
- }
30
- const FUNC_RE = /^func\s+(?:\([^)]*\)\s+)?([A-Za-z_]\w*)/gm;
31
- const TYPE_DECL_RE = /^type\s+([A-Za-z_]\w*)\s+/gm;
32
- const TYPE_BLOCK_RE = /^type\s*\(\s*([\s\S]*?)\)/gm;
33
- const VAR_CONST_BLOCK_RE = /^(?:var|const)\s*\(\s*([\s\S]*?)\)/gm;
34
- const VAR_CONST_SINGLE_RE = /^(?:var|const)\s+([A-Za-z_]\w*)/gm;
35
- const BLOCK_NAME_RE = /^\s*([A-Za-z_]\w*)\s+/gm;
36
- function countGoSymbols(content) {
37
- const symbols = new Set();
38
- for (const re of [FUNC_RE, TYPE_DECL_RE, VAR_CONST_SINGLE_RE]) {
39
- re.lastIndex = 0;
40
- let m;
41
- while ((m = re.exec(content)) !== null) {
42
- if (m[1])
43
- symbols.add(m[1]);
44
- }
45
- }
46
- for (const blockRe of [TYPE_BLOCK_RE, VAR_CONST_BLOCK_RE]) {
47
- blockRe.lastIndex = 0;
48
- let blockMatch;
49
- while ((blockMatch = blockRe.exec(content)) !== null) {
50
- const block = blockMatch[1];
51
- BLOCK_NAME_RE.lastIndex = 0;
52
- let nameMatch;
53
- while ((nameMatch = BLOCK_NAME_RE.exec(block)) !== null) {
54
- if (nameMatch[1] && nameMatch[1] !== '//' && nameMatch[1] !== '/*') {
55
- symbols.add(nameMatch[1]);
56
- }
57
- }
58
- }
59
- }
60
- return symbols.size;
61
- }
62
- const GO_BRANCH_RE = /\b(?:if|else|for|case|default)\b/g;
63
- const GO_LOGICAL_RE = /&&|\|\|/g;
64
- function computeGoComplexity(content) {
65
- if (!content)
66
- return 1;
67
- let complexity = 1;
68
- complexity += (content.match(GO_BRANCH_RE) ?? []).length;
69
- complexity += (content.match(GO_LOGICAL_RE) ?? []).length;
70
- return complexity;
71
- }
72
- function detectGoTestPair(filePath, allPaths) {
73
- const ext = (0, path_1.extname)(filePath);
74
- const dir = (0, path_1.dirname)(filePath);
75
- const base = (0, path_1.basename)(filePath, ext);
76
- if (base.endsWith('_test')) {
77
- const sourceBase = base.slice(0, -5);
78
- const sourcePath = (0, path_1.join)(dir, `${sourceBase}${ext}`);
79
- if (allPaths.has(sourcePath))
80
- return sourcePath;
81
- return null;
82
- }
83
- const testPath = (0, path_1.join)(dir, `${base}_test${ext}`);
84
- if (allPaths.has(testPath))
85
- return testPath;
86
- return null;
87
- }
88
- const GO_TEST_RE = /^func\s+Test[A-Z]/m;
89
- const GO_HANDLER_RE = /func\s+\(\s*\w+\s+\*?\w*(?:Handler|Server|Controller)\s*\)\s+(?:ServeHTTP|Handle)/;
90
- const GO_HTTP_FRAMEWORK_RE = /\b(?:gin\.Context|echo\.Context|chi\.Router|mux\.Router|fiber\.Ctx)\b/;
91
- const GO_HTTP_HANDLER_FUNC_RE = /\bfunc\s+\w+\s*\(\s*\w+\s+http\.ResponseWriter\s*,\s*\w+\s+\*http\.Request\s*\)/;
92
- const GO_MODEL_RE = /\b(?:gorm\.Model|sqlx\b|`db:"|`json:.*`\s*$)/m;
93
- const GO_STRUCT_DB_TAG_RE = /`(?:db|gorm|bson):/;
94
- const GO_CONFIG_RE = /\b(?:viper\.|envconfig\.|godotenv\.)/;
95
- const GO_SERVICE_RE = /(?:Service|Svc)\b/;
96
- function classifyGoRole(filePath, content) {
97
- const base = (0, path_1.basename)(filePath);
98
- if (base.endsWith('_test.go'))
99
- return 'test';
100
- if (GO_TEST_RE.test(content))
101
- return 'test';
102
- if (GO_HANDLER_RE.test(content) ||
103
- GO_HTTP_FRAMEWORK_RE.test(content) ||
104
- GO_HTTP_HANDLER_FUNC_RE.test(content))
105
- return 'controller';
106
- if (GO_STRUCT_DB_TAG_RE.test(content) || GO_MODEL_RE.test(content))
107
- return 'model';
108
- if (base === 'config.go' || GO_CONFIG_RE.test(content))
109
- return 'config';
110
- if (GO_SERVICE_RE.test(content))
111
- return 'service';
112
- return null;
113
- }
114
- function isStdlib(specifier) {
115
- const firstSegment = specifier.split('/')[0];
116
- return !firstSegment.includes('.');
117
- }
118
- function resolveGoImport(specifier, importerPath, allPaths) {
119
- if (!specifier)
120
- return null;
121
- if (isStdlib(specifier))
122
- return null;
123
- const segments = specifier.split('/');
124
- for (let start = 1; start < segments.length; start++) {
125
- const suffix = segments.slice(start).join('/');
126
- const candidates = [];
127
- for (const p of allPaths) {
128
- if (!p.endsWith('.go'))
129
- continue;
130
- const pDir = (0, path_1.dirname)(p);
131
- if (pDir === suffix || pDir.endsWith('/' + suffix)) {
132
- candidates.push(p);
133
- }
134
- }
135
- if (candidates.length === 0)
136
- continue;
137
- const dirs = new Set(candidates.map((c) => (0, path_1.dirname)(c)));
138
- if (dirs.size === 1)
139
- return candidates[0];
140
- return null;
141
- }
142
- return null;
143
- }
144
- exports.goAdapter = {
145
- id: 'go',
146
- extensions: GO_EXTENSIONS,
147
- classifyRole(filePath, content) {
148
- return classifyGoRole(filePath, content);
149
- },
150
- extractImports(content) {
151
- return extractGoImports(content);
152
- },
153
- countSymbols(content) {
154
- return countGoSymbols(content);
155
- },
156
- computeComplexity(content) {
157
- return computeGoComplexity(content);
158
- },
159
- resolveImport(specifier, importerPath, allPaths) {
160
- return resolveGoImport(specifier, importerPath, allPaths);
161
- },
162
- detectTestPair(filePath, allPaths) {
163
- return detectGoTestPair(filePath, allPaths);
164
- },
165
- };
166
- //# sourceMappingURL=go-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"go-adapter.js","sourceRoot":"","sources":["../../../../src/modules/codebase-overview-analyzer/services/go-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import type { DistrictNode, HotspotEntry, ActivitySummary } from '../types/overview.types';
2
- import type { FileAdapterEnrichment } from './language-adapter-registry.service';
3
- export interface FileChurnData {
4
- path: string;
5
- loc: number;
6
- lastModified: number;
7
- churn1d: number;
8
- churn7d: number;
9
- churn30d: number;
10
- isTest: boolean;
11
- }
12
- export declare function isTestFile(filePath: string): boolean;
13
- export declare class HotspotScoringService {
14
- enrichDistrictMetrics(districts: DistrictNode[], districtFiles: ReadonlyMap<string, FileChurnData[]>): void;
15
- enrichDistrictAdapterMetrics(districts: DistrictNode[], districtFiles: ReadonlyMap<string, FileChurnData[]>, enrichments: ReadonlyMap<string, FileAdapterEnrichment>): void;
16
- enrichDistrictOwnership(districts: DistrictNode[], districtFiles: ReadonlyMap<string, FileChurnData[]>, fileAuthors: ReadonlyMap<string, Map<string, number>>): void;
17
- rankHotspots(districts: ReadonlyArray<DistrictNode>, districtFiles: ReadonlyMap<string, FileChurnData[]>): HotspotEntry[];
18
- private static readonly CONTRIBUTORS_PER_DISTRICT;
19
- computeActivitySummaries(districts: ReadonlyArray<DistrictNode>, districtFiles: ReadonlyMap<string, FileChurnData[]>, dailyChurnFileMap?: ReadonlyMap<string, ReadonlyMap<string, number>> | null, windowedAuthor7d?: ReadonlyMap<string, ReadonlyMap<string, number>> | null, windowedAuthor30d?: ReadonlyMap<string, ReadonlyMap<string, number>> | null): ActivitySummary[];
20
- private aggregateContributors;
21
- }
@@ -1,253 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var HotspotScoringService_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.HotspotScoringService = void 0;
11
- exports.isTestFile = isTestFile;
12
- const common_1 = require("@nestjs/common");
13
- const district_splitting_service_1 = require("./district-splitting.service");
14
- const TOP_N = 10;
15
- const TEST_NAME_RE = /[.\-_](test|spec)\.[^/\\]+$/i;
16
- const TEST_DIR_RE = /(^|[/\\])(__tests__|tests?)[/\\]/i;
17
- function isTestFile(filePath) {
18
- return TEST_NAME_RE.test(filePath) || TEST_DIR_RE.test(filePath);
19
- }
20
- let HotspotScoringService = class HotspotScoringService {
21
- static { HotspotScoringService_1 = this; }
22
- enrichDistrictMetrics(districts, districtFiles) {
23
- for (const district of districts) {
24
- const files = districtFiles.get(district.id) ?? [];
25
- let churn7d = 0;
26
- let churn30d = 0;
27
- let testFileCount = 0;
28
- const roleCounts = new Map();
29
- for (const f of files) {
30
- churn7d += f.churn7d;
31
- churn30d += f.churn30d;
32
- if (f.isTest)
33
- testFileCount++;
34
- const role = (0, district_splitting_service_1.classifyFileRole)(f.path);
35
- roleCounts.set(role, (roleCounts.get(role) ?? 0) + 1);
36
- }
37
- district.churn7d = churn7d;
38
- district.churn30d = churn30d;
39
- district.testFileCount = testFileCount;
40
- district.testFileRatio = files.length > 0 ? testFileCount / files.length : null;
41
- if (files.length > 0) {
42
- district.role = dominantRole(roleCounts);
43
- }
44
- }
45
- }
46
- enrichDistrictAdapterMetrics(districts, districtFiles, enrichments) {
47
- for (const district of districts) {
48
- const files = districtFiles.get(district.id) ?? [];
49
- if (files.length === 0)
50
- continue;
51
- let complexitySum = 0;
52
- let complexityCount = 0;
53
- let measuredSourceFiles = 0;
54
- let coveredFiles = 0;
55
- for (const f of files) {
56
- const enrichment = enrichments.get(f.path);
57
- if (enrichment?.complexity != null) {
58
- complexitySum += enrichment.complexity;
59
- complexityCount++;
60
- }
61
- if (!f.isTest && enrichment !== undefined) {
62
- measuredSourceFiles++;
63
- if (enrichment.testPair != null)
64
- coveredFiles++;
65
- }
66
- }
67
- district.complexityAvg =
68
- complexityCount > 0 ? Math.round((complexitySum / complexityCount) * 10) / 10 : null;
69
- district.testCoverageRate =
70
- measuredSourceFiles > 0
71
- ? Math.round((coveredFiles / measuredSourceFiles) * 100) / 100
72
- : null;
73
- }
74
- }
75
- enrichDistrictOwnership(districts, districtFiles, fileAuthors) {
76
- for (const district of districts) {
77
- const files = districtFiles.get(district.id) ?? [];
78
- if (files.length === 0)
79
- continue;
80
- const authorCounts = new Map();
81
- for (const f of files) {
82
- const authors = fileAuthors.get(f.path);
83
- if (!authors)
84
- continue;
85
- for (const [author, count] of authors) {
86
- authorCounts.set(author, (authorCounts.get(author) ?? 0) + count);
87
- }
88
- }
89
- if (authorCounts.size === 0) {
90
- district.ownershipConcentration = null;
91
- district.primaryAuthorName = null;
92
- district.primaryAuthorShare = null;
93
- continue;
94
- }
95
- const totalCommits = [...authorCounts.values()].reduce((a, b) => a + b, 0);
96
- let hhi = 0;
97
- let primaryAuthorName = '';
98
- let primaryAuthorMaxCount = 0;
99
- for (const [author, count] of authorCounts) {
100
- const share = count / totalCommits;
101
- hhi += share * share;
102
- if (count > primaryAuthorMaxCount) {
103
- primaryAuthorMaxCount = count;
104
- primaryAuthorName = author;
105
- }
106
- }
107
- district.ownershipConcentration = Math.round(hhi * 100) / 100;
108
- district.primaryAuthorName = primaryAuthorName;
109
- district.primaryAuthorShare = Math.round((primaryAuthorMaxCount / totalCommits) * 100) / 100;
110
- }
111
- }
112
- rankHotspots(districts, districtFiles) {
113
- if (districts.length === 0)
114
- return [];
115
- const entries = [];
116
- const nowMs = Date.now();
117
- addRankedEntries(entries, districts, 'size', (d) => (districtFiles.get(d.id) ?? []).reduce((s, f) => s + f.loc, 0), (d, score) => `${d.name} — ${score.toLocaleString()} LOC`);
118
- addRankedEntries(entries, districts, 'churn', (d) => d.churn30d, (d, score) => `${d.name} — ${score} commits in 30d`);
119
- const districtsWithFiles = districts.filter((d) => d.totalFiles > 0);
120
- addRankedEntries(entries, districtsWithFiles, 'tests', (d) => {
121
- const ratio = d.testFileRatio ?? 0;
122
- return Math.round((1 - ratio) * 100);
123
- }, (d) => {
124
- const pct = d.testFileRatio != null ? Math.round(d.testFileRatio * 100) : 0;
125
- return `${d.name} — ${pct}% test files`;
126
- });
127
- const stalenessMap = new Map();
128
- for (const district of districts) {
129
- const files = districtFiles.get(district.id) ?? [];
130
- if (files.length === 0)
131
- continue;
132
- const mostRecent = Math.max(...files.map((f) => f.lastModified));
133
- const staleDays = Math.max(0, Math.floor((nowMs - mostRecent) / (1000 * 86400)));
134
- stalenessMap.set(district.id, staleDays);
135
- }
136
- addRankedEntries(entries, districts, 'staleness', (d) => stalenessMap.get(d.id) ?? 0, (d, score) => `${d.name} — last modified ${score}d ago`);
137
- addRankedEntries(entries, districts, 'coupling', (d) => d.couplingScore, (d, score) => `${d.name} — coupling ${score} (${d.inboundWeight} in, ${d.outboundWeight} out)`);
138
- const complexDistricts = districts.filter((d) => d.complexityAvg != null);
139
- addRankedEntries(entries, complexDistricts, 'complexity', (d) => d.complexityAvg, (d, score) => `${d.name} — avg complexity ${score}`);
140
- const ownedDistricts = districts.filter((d) => d.ownershipConcentration != null);
141
- addRankedEntries(entries, ownedDistricts, 'ownership', (d) => Math.round(d.ownershipConcentration * 100), (d) => {
142
- const pct = Math.round(d.ownershipConcentration * 100);
143
- return `${d.name} — ${pct}% ownership concentration`;
144
- });
145
- return entries;
146
- }
147
- static CONTRIBUTORS_PER_DISTRICT = 5;
148
- computeActivitySummaries(districts, districtFiles, dailyChurnFileMap, windowedAuthor7d, windowedAuthor30d) {
149
- return districts.map((district) => {
150
- const files = districtFiles.get(district.id) ?? [];
151
- let modifiedCount1d = 0;
152
- let modifiedCount7d = 0;
153
- let latestTimestamp = null;
154
- for (const f of files) {
155
- if (f.churn1d > 0)
156
- modifiedCount1d++;
157
- if (f.churn7d > 0)
158
- modifiedCount7d++;
159
- if (latestTimestamp == null || f.lastModified > latestTimestamp) {
160
- latestTimestamp = f.lastModified;
161
- }
162
- }
163
- const result = {
164
- targetId: district.id,
165
- targetKind: 'district',
166
- modifiedCount1d,
167
- modifiedCount7d,
168
- buildFailures7d: null,
169
- testFailures7d: null,
170
- latestTimestamp: latestTimestamp != null ? Math.floor(latestTimestamp / 1000) : null,
171
- recentContributors7d: [],
172
- recentContributors30d: [],
173
- };
174
- if (dailyChurnFileMap) {
175
- const dailyChurn = {};
176
- for (const f of files) {
177
- const dateMap = dailyChurnFileMap.get(f.path);
178
- if (!dateMap)
179
- continue;
180
- for (const [dateStr, count] of dateMap) {
181
- dailyChurn[dateStr] = (dailyChurn[dateStr] ?? 0) + count;
182
- }
183
- }
184
- if (Object.keys(dailyChurn).length > 0) {
185
- result.dailyChurn = dailyChurn;
186
- }
187
- }
188
- if (windowedAuthor7d) {
189
- result.recentContributors7d = this.aggregateContributors(files, windowedAuthor7d);
190
- }
191
- if (windowedAuthor30d) {
192
- result.recentContributors30d = this.aggregateContributors(files, windowedAuthor30d);
193
- }
194
- return result;
195
- });
196
- }
197
- aggregateContributors(files, authorMap) {
198
- const totals = new Map();
199
- for (const f of files) {
200
- const fileAuthors = authorMap.get(f.path);
201
- if (!fileAuthors)
202
- continue;
203
- for (const [author, count] of fileAuthors) {
204
- totals.set(author, (totals.get(author) ?? 0) + count);
205
- }
206
- }
207
- return [...totals.entries()]
208
- .sort((a, b) => b[1] - a[1])
209
- .slice(0, HotspotScoringService_1.CONTRIBUTORS_PER_DISTRICT)
210
- .map(([authorName, commitCount]) => ({ authorName, commitCount }));
211
- }
212
- };
213
- exports.HotspotScoringService = HotspotScoringService;
214
- exports.HotspotScoringService = HotspotScoringService = HotspotScoringService_1 = __decorate([
215
- (0, common_1.Injectable)()
216
- ], HotspotScoringService);
217
- function dominantRole(roleCounts) {
218
- let maxRole = 'mixed';
219
- let maxCount = 0;
220
- let knownCount = 0;
221
- for (const [role, count] of roleCounts) {
222
- if (role === 'unknown')
223
- continue;
224
- knownCount += count;
225
- if (count > maxCount) {
226
- maxCount = count;
227
- maxRole = role;
228
- }
229
- }
230
- if (knownCount === 0)
231
- return 'mixed';
232
- return maxCount > knownCount * 0.5 ? maxRole : 'mixed';
233
- }
234
- function addRankedEntries(entries, districts, metric, scoreFn, labelFn) {
235
- const scored = districts
236
- .map((d) => ({ district: d, score: scoreFn(d) }))
237
- .filter((item) => item.score > 0)
238
- .sort((a, b) => b.score - a.score);
239
- const count = Math.min(scored.length, TOP_N);
240
- for (let i = 0; i < count; i++) {
241
- const { district, score } = scored[i];
242
- entries.push({
243
- id: `hotspot:${metric}:${i + 1}`,
244
- kind: 'district',
245
- targetId: district.id,
246
- metric,
247
- rank: i + 1,
248
- score,
249
- label: labelFn(district, score),
250
- });
251
- }
252
- }
253
- //# sourceMappingURL=hotspot-scoring.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hotspot-scoring.service.js","sourceRoot":"","sources":["../../../../src/modules/codebase-overview-analyzer/services/hotspot-scoring.service.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- export interface GitRename {
2
- oldPath: string;
3
- newPath: string;
4
- similarity: number;
5
- }
6
- export interface PreviousIdentityState {
7
- commitSha: string | null;
8
- files: ReadonlyMap<string, string>;
9
- districts: ReadonlyMap<string, DistrictIdentityEntry>;
10
- regions: ReadonlyMap<string, string>;
11
- }
12
- export interface DistrictIdentityEntry {
13
- id: string;
14
- memberFileIds: ReadonlySet<string>;
15
- }
16
- export interface DistrictCandidate {
17
- key: string;
18
- memberFileIds: string[];
19
- }
20
- export declare class IdentityResolverService {
21
- resolveFileIds(currentPaths: string[], previous: PreviousIdentityState | null, gitRenames: GitRename[]): Map<string, string>;
22
- resolveDistrictIds(currentDistricts: DistrictCandidate[], previous: PreviousIdentityState | null): Map<string, string>;
23
- resolveRegionIds(currentRegionNames: string[], previous: PreviousIdentityState | null): Map<string, string>;
24
- }
@@ -1,98 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.IdentityResolverService = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const crypto_1 = require("crypto");
12
- const DISTRICT_OVERLAP_THRESHOLD = 0.5;
13
- let IdentityResolverService = class IdentityResolverService {
14
- resolveFileIds(currentPaths, previous, gitRenames) {
15
- const result = new Map();
16
- const prevFiles = previous?.files ?? new Map();
17
- const renameMap = new Map();
18
- for (const r of gitRenames) {
19
- renameMap.set(r.newPath, r.oldPath);
20
- }
21
- for (const path of currentPaths) {
22
- const exactId = prevFiles.get(path);
23
- if (exactId) {
24
- result.set(path, exactId);
25
- continue;
26
- }
27
- const oldPath = renameMap.get(path);
28
- if (oldPath) {
29
- const renamedId = prevFiles.get(oldPath);
30
- if (renamedId) {
31
- result.set(path, renamedId);
32
- continue;
33
- }
34
- }
35
- result.set(path, (0, crypto_1.randomUUID)());
36
- }
37
- return result;
38
- }
39
- resolveDistrictIds(currentDistricts, previous) {
40
- const result = new Map();
41
- const prevDistricts = previous?.districts ?? new Map();
42
- const matchedPrevious = new Set();
43
- for (const district of currentDistricts) {
44
- const currentMemberSet = new Set(district.memberFileIds);
45
- const exactMatch = prevDistricts.get(district.key);
46
- if (exactMatch) {
47
- const overlap = computeOverlap(exactMatch.memberFileIds, currentMemberSet);
48
- if (overlap >= DISTRICT_OVERLAP_THRESHOLD) {
49
- result.set(district.key, exactMatch.id);
50
- matchedPrevious.add(district.key);
51
- continue;
52
- }
53
- }
54
- let bestMatch = null;
55
- for (const [prevKey, prevData] of prevDistricts) {
56
- if (matchedPrevious.has(prevKey))
57
- continue;
58
- const overlap = computeOverlap(prevData.memberFileIds, currentMemberSet);
59
- if (overlap >= DISTRICT_OVERLAP_THRESHOLD && (!bestMatch || overlap > bestMatch.ratio)) {
60
- bestMatch = { key: prevKey, id: prevData.id, ratio: overlap };
61
- }
62
- }
63
- if (bestMatch) {
64
- result.set(district.key, bestMatch.id);
65
- matchedPrevious.add(bestMatch.key);
66
- continue;
67
- }
68
- result.set(district.key, (0, crypto_1.randomUUID)());
69
- }
70
- return result;
71
- }
72
- resolveRegionIds(currentRegionNames, previous) {
73
- const result = new Map();
74
- const prevRegions = previous?.regions ?? new Map();
75
- for (const name of currentRegionNames) {
76
- const prevId = prevRegions.get(name);
77
- result.set(name, prevId ?? (0, crypto_1.randomUUID)());
78
- }
79
- return result;
80
- }
81
- };
82
- exports.IdentityResolverService = IdentityResolverService;
83
- exports.IdentityResolverService = IdentityResolverService = __decorate([
84
- (0, common_1.Injectable)()
85
- ], IdentityResolverService);
86
- function computeOverlap(previousMembers, currentMembers) {
87
- if (previousMembers.size === 0 && currentMembers.size === 0)
88
- return 1;
89
- if (previousMembers.size === 0 || currentMembers.size === 0)
90
- return 0;
91
- let intersectionCount = 0;
92
- for (const id of previousMembers) {
93
- if (currentMembers.has(id))
94
- intersectionCount++;
95
- }
96
- return intersectionCount / Math.max(previousMembers.size, currentMembers.size);
97
- }
98
- //# sourceMappingURL=identity-resolver.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identity-resolver.service.js","sourceRoot":"","sources":["../../../../src/modules/codebase-overview-analyzer/services/identity-resolver.service.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { LanguageAdapter } from '../types/overview.types';
2
- export declare const javaAdapter: LanguageAdapter;