@selvakumaresra/specship 0.1.2 → 0.1.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 (576) hide show
  1. package/package.json +8 -3
  2. package/scripts/sync-shim-version.mjs +64 -0
  3. package/dist/bin/node-version-check.d.ts +0 -37
  4. package/dist/bin/node-version-check.d.ts.map +0 -1
  5. package/dist/bin/node-version-check.js +0 -79
  6. package/dist/bin/node-version-check.js.map +0 -1
  7. package/dist/bin/specship.d.ts +0 -25
  8. package/dist/bin/specship.d.ts.map +0 -1
  9. package/dist/bin/specship.js +0 -2018
  10. package/dist/bin/specship.js.map +0 -1
  11. package/dist/bin/uninstall.d.ts +0 -13
  12. package/dist/bin/uninstall.d.ts.map +0 -1
  13. package/dist/bin/uninstall.js +0 -35
  14. package/dist/bin/uninstall.js.map +0 -1
  15. package/dist/context/formatter.d.ts +0 -30
  16. package/dist/context/formatter.d.ts.map +0 -1
  17. package/dist/context/formatter.js +0 -263
  18. package/dist/context/formatter.js.map +0 -1
  19. package/dist/context/index.d.ts +0 -119
  20. package/dist/context/index.d.ts.map +0 -1
  21. package/dist/context/index.js +0 -1289
  22. package/dist/context/index.js.map +0 -1
  23. package/dist/context/markers.d.ts +0 -19
  24. package/dist/context/markers.d.ts.map +0 -1
  25. package/dist/context/markers.js +0 -22
  26. package/dist/context/markers.js.map +0 -1
  27. package/dist/db/index.d.ts +0 -101
  28. package/dist/db/index.d.ts.map +0 -1
  29. package/dist/db/index.js +0 -276
  30. package/dist/db/index.js.map +0 -1
  31. package/dist/db/migrations.d.ts +0 -44
  32. package/dist/db/migrations.d.ts.map +0 -1
  33. package/dist/db/migrations.js +0 -427
  34. package/dist/db/migrations.js.map +0 -1
  35. package/dist/db/queries.d.ts +0 -357
  36. package/dist/db/queries.d.ts.map +0 -1
  37. package/dist/db/queries.js +0 -1504
  38. package/dist/db/queries.js.map +0 -1
  39. package/dist/db/schema.sql +0 -410
  40. package/dist/db/spec-queries.d.ts +0 -101
  41. package/dist/db/spec-queries.d.ts.map +0 -1
  42. package/dist/db/spec-queries.js +0 -675
  43. package/dist/db/spec-queries.js.map +0 -1
  44. package/dist/db/sqlite-adapter.d.ts +0 -65
  45. package/dist/db/sqlite-adapter.d.ts.map +0 -1
  46. package/dist/db/sqlite-adapter.js +0 -214
  47. package/dist/db/sqlite-adapter.js.map +0 -1
  48. package/dist/directory.d.ts +0 -57
  49. package/dist/directory.d.ts.map +0 -1
  50. package/dist/directory.js +0 -253
  51. package/dist/directory.js.map +0 -1
  52. package/dist/errors.d.ts +0 -136
  53. package/dist/errors.d.ts.map +0 -1
  54. package/dist/errors.js +0 -219
  55. package/dist/errors.js.map +0 -1
  56. package/dist/extraction/dfm-extractor.d.ts +0 -31
  57. package/dist/extraction/dfm-extractor.d.ts.map +0 -1
  58. package/dist/extraction/dfm-extractor.js +0 -151
  59. package/dist/extraction/dfm-extractor.js.map +0 -1
  60. package/dist/extraction/generated-detection.d.ts +0 -30
  61. package/dist/extraction/generated-detection.d.ts.map +0 -1
  62. package/dist/extraction/generated-detection.js +0 -80
  63. package/dist/extraction/generated-detection.js.map +0 -1
  64. package/dist/extraction/grammars.d.ts +0 -100
  65. package/dist/extraction/grammars.d.ts.map +0 -1
  66. package/dist/extraction/grammars.js +0 -426
  67. package/dist/extraction/grammars.js.map +0 -1
  68. package/dist/extraction/index.d.ts +0 -138
  69. package/dist/extraction/index.d.ts.map +0 -1
  70. package/dist/extraction/index.js +0 -1394
  71. package/dist/extraction/index.js.map +0 -1
  72. package/dist/extraction/languages/c-cpp.d.ts +0 -4
  73. package/dist/extraction/languages/c-cpp.d.ts.map +0 -1
  74. package/dist/extraction/languages/c-cpp.js +0 -171
  75. package/dist/extraction/languages/c-cpp.js.map +0 -1
  76. package/dist/extraction/languages/csharp.d.ts +0 -3
  77. package/dist/extraction/languages/csharp.d.ts.map +0 -1
  78. package/dist/extraction/languages/csharp.js +0 -73
  79. package/dist/extraction/languages/csharp.js.map +0 -1
  80. package/dist/extraction/languages/dart.d.ts +0 -3
  81. package/dist/extraction/languages/dart.d.ts.map +0 -1
  82. package/dist/extraction/languages/dart.js +0 -192
  83. package/dist/extraction/languages/dart.js.map +0 -1
  84. package/dist/extraction/languages/go.d.ts +0 -3
  85. package/dist/extraction/languages/go.d.ts.map +0 -1
  86. package/dist/extraction/languages/go.js +0 -74
  87. package/dist/extraction/languages/go.js.map +0 -1
  88. package/dist/extraction/languages/index.d.ts +0 -10
  89. package/dist/extraction/languages/index.d.ts.map +0 -1
  90. package/dist/extraction/languages/index.js +0 -51
  91. package/dist/extraction/languages/index.js.map +0 -1
  92. package/dist/extraction/languages/java.d.ts +0 -3
  93. package/dist/extraction/languages/java.d.ts.map +0 -1
  94. package/dist/extraction/languages/java.js +0 -70
  95. package/dist/extraction/languages/java.js.map +0 -1
  96. package/dist/extraction/languages/javascript.d.ts +0 -3
  97. package/dist/extraction/languages/javascript.d.ts.map +0 -1
  98. package/dist/extraction/languages/javascript.js +0 -90
  99. package/dist/extraction/languages/javascript.js.map +0 -1
  100. package/dist/extraction/languages/kotlin.d.ts +0 -3
  101. package/dist/extraction/languages/kotlin.d.ts.map +0 -1
  102. package/dist/extraction/languages/kotlin.js +0 -259
  103. package/dist/extraction/languages/kotlin.js.map +0 -1
  104. package/dist/extraction/languages/lua.d.ts +0 -3
  105. package/dist/extraction/languages/lua.d.ts.map +0 -1
  106. package/dist/extraction/languages/lua.js +0 -150
  107. package/dist/extraction/languages/lua.js.map +0 -1
  108. package/dist/extraction/languages/luau.d.ts +0 -3
  109. package/dist/extraction/languages/luau.d.ts.map +0 -1
  110. package/dist/extraction/languages/luau.js +0 -37
  111. package/dist/extraction/languages/luau.js.map +0 -1
  112. package/dist/extraction/languages/objc.d.ts +0 -3
  113. package/dist/extraction/languages/objc.d.ts.map +0 -1
  114. package/dist/extraction/languages/objc.js +0 -133
  115. package/dist/extraction/languages/objc.js.map +0 -1
  116. package/dist/extraction/languages/pascal.d.ts +0 -3
  117. package/dist/extraction/languages/pascal.d.ts.map +0 -1
  118. package/dist/extraction/languages/pascal.js +0 -66
  119. package/dist/extraction/languages/pascal.js.map +0 -1
  120. package/dist/extraction/languages/php.d.ts +0 -3
  121. package/dist/extraction/languages/php.d.ts.map +0 -1
  122. package/dist/extraction/languages/php.js +0 -107
  123. package/dist/extraction/languages/php.js.map +0 -1
  124. package/dist/extraction/languages/python.d.ts +0 -3
  125. package/dist/extraction/languages/python.d.ts.map +0 -1
  126. package/dist/extraction/languages/python.js +0 -56
  127. package/dist/extraction/languages/python.js.map +0 -1
  128. package/dist/extraction/languages/ruby.d.ts +0 -3
  129. package/dist/extraction/languages/ruby.d.ts.map +0 -1
  130. package/dist/extraction/languages/ruby.js +0 -114
  131. package/dist/extraction/languages/ruby.js.map +0 -1
  132. package/dist/extraction/languages/rust.d.ts +0 -3
  133. package/dist/extraction/languages/rust.d.ts.map +0 -1
  134. package/dist/extraction/languages/rust.js +0 -109
  135. package/dist/extraction/languages/rust.js.map +0 -1
  136. package/dist/extraction/languages/scala.d.ts +0 -3
  137. package/dist/extraction/languages/scala.d.ts.map +0 -1
  138. package/dist/extraction/languages/scala.js +0 -139
  139. package/dist/extraction/languages/scala.js.map +0 -1
  140. package/dist/extraction/languages/swift.d.ts +0 -3
  141. package/dist/extraction/languages/swift.d.ts.map +0 -1
  142. package/dist/extraction/languages/swift.js +0 -91
  143. package/dist/extraction/languages/swift.js.map +0 -1
  144. package/dist/extraction/languages/typescript.d.ts +0 -3
  145. package/dist/extraction/languages/typescript.d.ts.map +0 -1
  146. package/dist/extraction/languages/typescript.js +0 -129
  147. package/dist/extraction/languages/typescript.js.map +0 -1
  148. package/dist/extraction/liquid-extractor.d.ts +0 -52
  149. package/dist/extraction/liquid-extractor.d.ts.map +0 -1
  150. package/dist/extraction/liquid-extractor.js +0 -313
  151. package/dist/extraction/liquid-extractor.js.map +0 -1
  152. package/dist/extraction/mybatis-extractor.d.ts +0 -48
  153. package/dist/extraction/mybatis-extractor.d.ts.map +0 -1
  154. package/dist/extraction/mybatis-extractor.js +0 -198
  155. package/dist/extraction/mybatis-extractor.js.map +0 -1
  156. package/dist/extraction/parse-worker.d.ts +0 -8
  157. package/dist/extraction/parse-worker.d.ts.map +0 -1
  158. package/dist/extraction/parse-worker.js +0 -94
  159. package/dist/extraction/parse-worker.js.map +0 -1
  160. package/dist/extraction/specs/markdown-spec-extractor.d.ts +0 -59
  161. package/dist/extraction/specs/markdown-spec-extractor.d.ts.map +0 -1
  162. package/dist/extraction/specs/markdown-spec-extractor.js +0 -327
  163. package/dist/extraction/specs/markdown-spec-extractor.js.map +0 -1
  164. package/dist/extraction/specs/types.d.ts +0 -39
  165. package/dist/extraction/specs/types.d.ts.map +0 -1
  166. package/dist/extraction/specs/types.js +0 -8
  167. package/dist/extraction/specs/types.js.map +0 -1
  168. package/dist/extraction/svelte-extractor.d.ts +0 -56
  169. package/dist/extraction/svelte-extractor.d.ts.map +0 -1
  170. package/dist/extraction/svelte-extractor.js +0 -272
  171. package/dist/extraction/svelte-extractor.js.map +0 -1
  172. package/dist/extraction/tree-sitter-helpers.d.ts +0 -28
  173. package/dist/extraction/tree-sitter-helpers.d.ts.map +0 -1
  174. package/dist/extraction/tree-sitter-helpers.js +0 -103
  175. package/dist/extraction/tree-sitter-helpers.js.map +0 -1
  176. package/dist/extraction/tree-sitter-types.d.ts +0 -193
  177. package/dist/extraction/tree-sitter-types.d.ts.map +0 -1
  178. package/dist/extraction/tree-sitter-types.js +0 -10
  179. package/dist/extraction/tree-sitter-types.js.map +0 -1
  180. package/dist/extraction/tree-sitter.d.ts +0 -317
  181. package/dist/extraction/tree-sitter.d.ts.map +0 -1
  182. package/dist/extraction/tree-sitter.js +0 -3092
  183. package/dist/extraction/tree-sitter.js.map +0 -1
  184. package/dist/extraction/vue-extractor.d.ts +0 -51
  185. package/dist/extraction/vue-extractor.d.ts.map +0 -1
  186. package/dist/extraction/vue-extractor.js +0 -251
  187. package/dist/extraction/vue-extractor.js.map +0 -1
  188. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  189. package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
  190. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  191. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  192. package/dist/extraction/wasm-runtime-flags.d.ts +0 -38
  193. package/dist/extraction/wasm-runtime-flags.d.ts.map +0 -1
  194. package/dist/extraction/wasm-runtime-flags.js +0 -106
  195. package/dist/extraction/wasm-runtime-flags.js.map +0 -1
  196. package/dist/graph/index.d.ts +0 -8
  197. package/dist/graph/index.d.ts.map +0 -1
  198. package/dist/graph/index.js +0 -13
  199. package/dist/graph/index.js.map +0 -1
  200. package/dist/graph/queries.d.ts +0 -106
  201. package/dist/graph/queries.d.ts.map +0 -1
  202. package/dist/graph/queries.js +0 -366
  203. package/dist/graph/queries.js.map +0 -1
  204. package/dist/graph/traversal.d.ts +0 -127
  205. package/dist/graph/traversal.d.ts.map +0 -1
  206. package/dist/graph/traversal.js +0 -531
  207. package/dist/graph/traversal.js.map +0 -1
  208. package/dist/index.d.ts +0 -551
  209. package/dist/index.d.ts.map +0 -1
  210. package/dist/index.js +0 -1165
  211. package/dist/index.js.map +0 -1
  212. package/dist/installer/config-writer.d.ts +0 -28
  213. package/dist/installer/config-writer.d.ts.map +0 -1
  214. package/dist/installer/config-writer.js +0 -91
  215. package/dist/installer/config-writer.js.map +0 -1
  216. package/dist/installer/index.d.ts +0 -87
  217. package/dist/installer/index.d.ts.map +0 -1
  218. package/dist/installer/index.js +0 -409
  219. package/dist/installer/index.js.map +0 -1
  220. package/dist/installer/instructions-template.d.ts +0 -18
  221. package/dist/installer/instructions-template.d.ts.map +0 -1
  222. package/dist/installer/instructions-template.js +0 -21
  223. package/dist/installer/instructions-template.js.map +0 -1
  224. package/dist/installer/targets/claude.d.ts +0 -88
  225. package/dist/installer/targets/claude.d.ts.map +0 -1
  226. package/dist/installer/targets/claude.js +0 -582
  227. package/dist/installer/targets/claude.js.map +0 -1
  228. package/dist/installer/targets/registry.d.ts +0 -19
  229. package/dist/installer/targets/registry.d.ts.map +0 -1
  230. package/dist/installer/targets/registry.js +0 -31
  231. package/dist/installer/targets/registry.js.map +0 -1
  232. package/dist/installer/targets/shared.d.ts +0 -62
  233. package/dist/installer/targets/shared.d.ts.map +0 -1
  234. package/dist/installer/targets/shared.js +0 -207
  235. package/dist/installer/targets/shared.js.map +0 -1
  236. package/dist/installer/targets/types.d.ts +0 -76
  237. package/dist/installer/targets/types.d.ts.map +0 -1
  238. package/dist/installer/targets/types.js +0 -12
  239. package/dist/installer/targets/types.js.map +0 -1
  240. package/dist/isolation/worktree.d.ts +0 -65
  241. package/dist/isolation/worktree.d.ts.map +0 -1
  242. package/dist/isolation/worktree.js +0 -231
  243. package/dist/isolation/worktree.js.map +0 -1
  244. package/dist/mcp/daemon-paths.d.ts +0 -46
  245. package/dist/mcp/daemon-paths.d.ts.map +0 -1
  246. package/dist/mcp/daemon-paths.js +0 -125
  247. package/dist/mcp/daemon-paths.js.map +0 -1
  248. package/dist/mcp/daemon.d.ts +0 -161
  249. package/dist/mcp/daemon.d.ts.map +0 -1
  250. package/dist/mcp/daemon.js +0 -403
  251. package/dist/mcp/daemon.js.map +0 -1
  252. package/dist/mcp/engine.d.ts +0 -105
  253. package/dist/mcp/engine.d.ts.map +0 -1
  254. package/dist/mcp/engine.js +0 -270
  255. package/dist/mcp/engine.js.map +0 -1
  256. package/dist/mcp/index.d.ts +0 -112
  257. package/dist/mcp/index.d.ts.map +0 -1
  258. package/dist/mcp/index.js +0 -477
  259. package/dist/mcp/index.js.map +0 -1
  260. package/dist/mcp/proxy.d.ts +0 -81
  261. package/dist/mcp/proxy.d.ts.map +0 -1
  262. package/dist/mcp/proxy.js +0 -510
  263. package/dist/mcp/proxy.js.map +0 -1
  264. package/dist/mcp/server-instructions.d.ts +0 -18
  265. package/dist/mcp/server-instructions.d.ts.map +0 -1
  266. package/dist/mcp/server-instructions.js +0 -77
  267. package/dist/mcp/server-instructions.js.map +0 -1
  268. package/dist/mcp/session.d.ts +0 -77
  269. package/dist/mcp/session.d.ts.map +0 -1
  270. package/dist/mcp/session.js +0 -294
  271. package/dist/mcp/session.js.map +0 -1
  272. package/dist/mcp/spec-tools.d.ts +0 -39
  273. package/dist/mcp/spec-tools.d.ts.map +0 -1
  274. package/dist/mcp/spec-tools.js +0 -326
  275. package/dist/mcp/spec-tools.js.map +0 -1
  276. package/dist/mcp/tools.d.ts +0 -404
  277. package/dist/mcp/tools.d.ts.map +0 -1
  278. package/dist/mcp/tools.js +0 -3066
  279. package/dist/mcp/tools.js.map +0 -1
  280. package/dist/mcp/transport.d.ts +0 -188
  281. package/dist/mcp/transport.d.ts.map +0 -1
  282. package/dist/mcp/transport.js +0 -343
  283. package/dist/mcp/transport.js.map +0 -1
  284. package/dist/mcp/version.d.ts +0 -19
  285. package/dist/mcp/version.d.ts.map +0 -1
  286. package/dist/mcp/version.js +0 -71
  287. package/dist/mcp/version.js.map +0 -1
  288. package/dist/resolution/callback-synthesizer.d.ts +0 -10
  289. package/dist/resolution/callback-synthesizer.d.ts.map +0 -1
  290. package/dist/resolution/callback-synthesizer.js +0 -1300
  291. package/dist/resolution/callback-synthesizer.js.map +0 -1
  292. package/dist/resolution/frameworks/cargo-workspace.d.ts +0 -18
  293. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +0 -1
  294. package/dist/resolution/frameworks/cargo-workspace.js +0 -225
  295. package/dist/resolution/frameworks/cargo-workspace.js.map +0 -1
  296. package/dist/resolution/frameworks/csharp.d.ts +0 -8
  297. package/dist/resolution/frameworks/csharp.d.ts.map +0 -1
  298. package/dist/resolution/frameworks/csharp.js +0 -241
  299. package/dist/resolution/frameworks/csharp.js.map +0 -1
  300. package/dist/resolution/frameworks/drupal.d.ts +0 -51
  301. package/dist/resolution/frameworks/drupal.d.ts.map +0 -1
  302. package/dist/resolution/frameworks/drupal.js +0 -367
  303. package/dist/resolution/frameworks/drupal.js.map +0 -1
  304. package/dist/resolution/frameworks/expo-modules.d.ts +0 -3
  305. package/dist/resolution/frameworks/expo-modules.d.ts.map +0 -1
  306. package/dist/resolution/frameworks/expo-modules.js +0 -143
  307. package/dist/resolution/frameworks/expo-modules.js.map +0 -1
  308. package/dist/resolution/frameworks/express.d.ts +0 -8
  309. package/dist/resolution/frameworks/express.d.ts.map +0 -1
  310. package/dist/resolution/frameworks/express.js +0 -308
  311. package/dist/resolution/frameworks/express.js.map +0 -1
  312. package/dist/resolution/frameworks/fabric.d.ts +0 -3
  313. package/dist/resolution/frameworks/fabric.d.ts.map +0 -1
  314. package/dist/resolution/frameworks/fabric.js +0 -354
  315. package/dist/resolution/frameworks/fabric.js.map +0 -1
  316. package/dist/resolution/frameworks/go.d.ts +0 -8
  317. package/dist/resolution/frameworks/go.d.ts.map +0 -1
  318. package/dist/resolution/frameworks/go.js +0 -161
  319. package/dist/resolution/frameworks/go.js.map +0 -1
  320. package/dist/resolution/frameworks/index.d.ts +0 -48
  321. package/dist/resolution/frameworks/index.d.ts.map +0 -1
  322. package/dist/resolution/frameworks/index.js +0 -161
  323. package/dist/resolution/frameworks/index.js.map +0 -1
  324. package/dist/resolution/frameworks/java.d.ts +0 -8
  325. package/dist/resolution/frameworks/java.d.ts.map +0 -1
  326. package/dist/resolution/frameworks/java.js +0 -504
  327. package/dist/resolution/frameworks/java.js.map +0 -1
  328. package/dist/resolution/frameworks/laravel.d.ts +0 -13
  329. package/dist/resolution/frameworks/laravel.d.ts.map +0 -1
  330. package/dist/resolution/frameworks/laravel.js +0 -257
  331. package/dist/resolution/frameworks/laravel.js.map +0 -1
  332. package/dist/resolution/frameworks/nestjs.d.ts +0 -26
  333. package/dist/resolution/frameworks/nestjs.d.ts.map +0 -1
  334. package/dist/resolution/frameworks/nestjs.js +0 -698
  335. package/dist/resolution/frameworks/nestjs.js.map +0 -1
  336. package/dist/resolution/frameworks/play.d.ts +0 -19
  337. package/dist/resolution/frameworks/play.d.ts.map +0 -1
  338. package/dist/resolution/frameworks/play.js +0 -111
  339. package/dist/resolution/frameworks/play.js.map +0 -1
  340. package/dist/resolution/frameworks/python.d.ts +0 -10
  341. package/dist/resolution/frameworks/python.d.ts.map +0 -1
  342. package/dist/resolution/frameworks/python.js +0 -396
  343. package/dist/resolution/frameworks/python.js.map +0 -1
  344. package/dist/resolution/frameworks/react-native.d.ts +0 -3
  345. package/dist/resolution/frameworks/react-native.d.ts.map +0 -1
  346. package/dist/resolution/frameworks/react-native.js +0 -360
  347. package/dist/resolution/frameworks/react-native.js.map +0 -1
  348. package/dist/resolution/frameworks/react.d.ts +0 -8
  349. package/dist/resolution/frameworks/react.d.ts.map +0 -1
  350. package/dist/resolution/frameworks/react.js +0 -365
  351. package/dist/resolution/frameworks/react.js.map +0 -1
  352. package/dist/resolution/frameworks/ruby.d.ts +0 -8
  353. package/dist/resolution/frameworks/ruby.d.ts.map +0 -1
  354. package/dist/resolution/frameworks/ruby.js +0 -302
  355. package/dist/resolution/frameworks/ruby.js.map +0 -1
  356. package/dist/resolution/frameworks/rust.d.ts +0 -8
  357. package/dist/resolution/frameworks/rust.d.ts.map +0 -1
  358. package/dist/resolution/frameworks/rust.js +0 -304
  359. package/dist/resolution/frameworks/rust.js.map +0 -1
  360. package/dist/resolution/frameworks/svelte.d.ts +0 -9
  361. package/dist/resolution/frameworks/svelte.d.ts.map +0 -1
  362. package/dist/resolution/frameworks/svelte.js +0 -249
  363. package/dist/resolution/frameworks/svelte.js.map +0 -1
  364. package/dist/resolution/frameworks/swift-objc.d.ts +0 -37
  365. package/dist/resolution/frameworks/swift-objc.d.ts.map +0 -1
  366. package/dist/resolution/frameworks/swift-objc.js +0 -252
  367. package/dist/resolution/frameworks/swift-objc.js.map +0 -1
  368. package/dist/resolution/frameworks/swift.d.ts +0 -10
  369. package/dist/resolution/frameworks/swift.d.ts.map +0 -1
  370. package/dist/resolution/frameworks/swift.js +0 -400
  371. package/dist/resolution/frameworks/swift.js.map +0 -1
  372. package/dist/resolution/frameworks/vue.d.ts +0 -9
  373. package/dist/resolution/frameworks/vue.d.ts.map +0 -1
  374. package/dist/resolution/frameworks/vue.js +0 -306
  375. package/dist/resolution/frameworks/vue.js.map +0 -1
  376. package/dist/resolution/go-module.d.ts +0 -26
  377. package/dist/resolution/go-module.d.ts.map +0 -1
  378. package/dist/resolution/go-module.js +0 -78
  379. package/dist/resolution/go-module.js.map +0 -1
  380. package/dist/resolution/import-resolver.d.ts +0 -68
  381. package/dist/resolution/import-resolver.d.ts.map +0 -1
  382. package/dist/resolution/import-resolver.js +0 -1275
  383. package/dist/resolution/import-resolver.js.map +0 -1
  384. package/dist/resolution/index.d.ts +0 -117
  385. package/dist/resolution/index.d.ts.map +0 -1
  386. package/dist/resolution/index.js +0 -895
  387. package/dist/resolution/index.js.map +0 -1
  388. package/dist/resolution/lru-cache.d.ts +0 -24
  389. package/dist/resolution/lru-cache.d.ts.map +0 -1
  390. package/dist/resolution/lru-cache.js +0 -62
  391. package/dist/resolution/lru-cache.js.map +0 -1
  392. package/dist/resolution/name-matcher.d.ts +0 -32
  393. package/dist/resolution/name-matcher.d.ts.map +0 -1
  394. package/dist/resolution/name-matcher.js +0 -596
  395. package/dist/resolution/name-matcher.js.map +0 -1
  396. package/dist/resolution/path-aliases.d.ts +0 -68
  397. package/dist/resolution/path-aliases.d.ts.map +0 -1
  398. package/dist/resolution/path-aliases.js +0 -238
  399. package/dist/resolution/path-aliases.js.map +0 -1
  400. package/dist/resolution/spec-link-resolver.d.ts +0 -103
  401. package/dist/resolution/spec-link-resolver.d.ts.map +0 -1
  402. package/dist/resolution/spec-link-resolver.js +0 -259
  403. package/dist/resolution/spec-link-resolver.js.map +0 -1
  404. package/dist/resolution/strip-comments.d.ts +0 -27
  405. package/dist/resolution/strip-comments.d.ts.map +0 -1
  406. package/dist/resolution/strip-comments.js +0 -441
  407. package/dist/resolution/strip-comments.js.map +0 -1
  408. package/dist/resolution/swift-objc-bridge.d.ts +0 -134
  409. package/dist/resolution/swift-objc-bridge.d.ts.map +0 -1
  410. package/dist/resolution/swift-objc-bridge.js +0 -256
  411. package/dist/resolution/swift-objc-bridge.js.map +0 -1
  412. package/dist/resolution/types.d.ts +0 -216
  413. package/dist/resolution/types.d.ts.map +0 -1
  414. package/dist/resolution/types.js +0 -8
  415. package/dist/resolution/types.js.map +0 -1
  416. package/dist/resolution/workspace-packages.d.ts +0 -48
  417. package/dist/resolution/workspace-packages.d.ts.map +0 -1
  418. package/dist/resolution/workspace-packages.js +0 -208
  419. package/dist/resolution/workspace-packages.js.map +0 -1
  420. package/dist/search/query-parser.d.ts +0 -57
  421. package/dist/search/query-parser.d.ts.map +0 -1
  422. package/dist/search/query-parser.js +0 -177
  423. package/dist/search/query-parser.js.map +0 -1
  424. package/dist/search/query-utils.d.ts +0 -71
  425. package/dist/search/query-utils.d.ts.map +0 -1
  426. package/dist/search/query-utils.js +0 -380
  427. package/dist/search/query-utils.js.map +0 -1
  428. package/dist/server/cli.js +0 -152
  429. package/dist/server/index.js +0 -12
  430. package/dist/server/ingest/index.js +0 -18
  431. package/dist/server/ingest/ingestor.js +0 -406
  432. package/dist/server/ingest/parser.js +0 -104
  433. package/dist/server/ingest/pricing.js +0 -78
  434. package/dist/server/ingest/types.js +0 -9
  435. package/dist/server/ingest/watcher.js +0 -77
  436. package/dist/server/package.json +0 -3
  437. package/dist/server/project-registry.js +0 -101
  438. package/dist/server/routes/claude.js +0 -480
  439. package/dist/server/routes/graph.js +0 -149
  440. package/dist/server/routes/memory.js +0 -272
  441. package/dist/server/routes/projects.js +0 -197
  442. package/dist/server/routes/spec.js +0 -105
  443. package/dist/server/routes/status.js +0 -35
  444. package/dist/server/routes/workflow.js +0 -184
  445. package/dist/server/server.js +0 -206
  446. package/dist/server/static-handler.js +0 -87
  447. package/dist/sync/git-hooks.d.ts +0 -45
  448. package/dist/sync/git-hooks.d.ts.map +0 -1
  449. package/dist/sync/git-hooks.js +0 -225
  450. package/dist/sync/git-hooks.js.map +0 -1
  451. package/dist/sync/index.d.ts +0 -19
  452. package/dist/sync/index.d.ts.map +0 -1
  453. package/dist/sync/index.js +0 -35
  454. package/dist/sync/index.js.map +0 -1
  455. package/dist/sync/watch-policy.d.ts +0 -48
  456. package/dist/sync/watch-policy.d.ts.map +0 -1
  457. package/dist/sync/watch-policy.js +0 -124
  458. package/dist/sync/watch-policy.js.map +0 -1
  459. package/dist/sync/watcher.d.ts +0 -283
  460. package/dist/sync/watcher.d.ts.map +0 -1
  461. package/dist/sync/watcher.js +0 -606
  462. package/dist/sync/watcher.js.map +0 -1
  463. package/dist/sync/worktree.d.ts +0 -54
  464. package/dist/sync/worktree.d.ts.map +0 -1
  465. package/dist/sync/worktree.js +0 -137
  466. package/dist/sync/worktree.js.map +0 -1
  467. package/dist/types.d.ts +0 -623
  468. package/dist/types.d.ts.map +0 -1
  469. package/dist/types.js +0 -108
  470. package/dist/types.js.map +0 -1
  471. package/dist/ui/glyphs.d.ts +0 -42
  472. package/dist/ui/glyphs.d.ts.map +0 -1
  473. package/dist/ui/glyphs.js +0 -78
  474. package/dist/ui/glyphs.js.map +0 -1
  475. package/dist/ui/shimmer-progress.d.ts +0 -11
  476. package/dist/ui/shimmer-progress.d.ts.map +0 -1
  477. package/dist/ui/shimmer-progress.js +0 -90
  478. package/dist/ui/shimmer-progress.js.map +0 -1
  479. package/dist/ui/shimmer-worker.d.ts +0 -2
  480. package/dist/ui/shimmer-worker.d.ts.map +0 -1
  481. package/dist/ui/shimmer-worker.js +0 -118
  482. package/dist/ui/shimmer-worker.js.map +0 -1
  483. package/dist/ui/types.d.ts +0 -17
  484. package/dist/ui/types.d.ts.map +0 -1
  485. package/dist/ui/types.js +0 -3
  486. package/dist/ui/types.js.map +0 -1
  487. package/dist/utils.d.ts +0 -205
  488. package/dist/utils.d.ts.map +0 -1
  489. package/dist/utils.js +0 -549
  490. package/dist/utils.js.map +0 -1
  491. package/dist/web/chunk-2YZXEHZ2.js +0 -1
  492. package/dist/web/chunk-3GIC555L.js +0 -18
  493. package/dist/web/chunk-3IIIGRMT.js +0 -1
  494. package/dist/web/chunk-47QYKLE5.js +0 -1
  495. package/dist/web/chunk-4LHBWWP7.js +0 -1
  496. package/dist/web/chunk-4OAZLD5W.js +0 -1
  497. package/dist/web/chunk-5OQKAJAE.js +0 -1
  498. package/dist/web/chunk-7B525GKQ.js +0 -1
  499. package/dist/web/chunk-BPDXCOOZ.js +0 -1
  500. package/dist/web/chunk-DT37HTZB.js +0 -1
  501. package/dist/web/chunk-EIMUHJND.js +0 -1
  502. package/dist/web/chunk-FTESTUEO.js +0 -1
  503. package/dist/web/chunk-GLJZV6MU.js +0 -1
  504. package/dist/web/chunk-I7LS67U5.js +0 -1
  505. package/dist/web/chunk-L4TVIPSR.js +0 -1
  506. package/dist/web/chunk-MASCULC2.js +0 -1
  507. package/dist/web/chunk-MW7ICSRM.js +0 -1
  508. package/dist/web/chunk-OI5VP2A3.js +0 -1
  509. package/dist/web/chunk-RA6EBF6I.js +0 -1
  510. package/dist/web/chunk-RP3WU5Y6.js +0 -1
  511. package/dist/web/chunk-RQDRMTXN.js +0 -1
  512. package/dist/web/chunk-TQMT6UDU.js +0 -1
  513. package/dist/web/chunk-U7IYOV7T.js +0 -1
  514. package/dist/web/chunk-UE227MWF.js +0 -1
  515. package/dist/web/chunk-WV573J4K.js +0 -1
  516. package/dist/web/chunk-WVCKOJZL.js +0 -4
  517. package/dist/web/chunk-XZKLVPHE.js +0 -1
  518. package/dist/web/chunk-ZABKKHJ3.js +0 -1
  519. package/dist/web/favicon-16.png +0 -0
  520. package/dist/web/favicon-180.png +0 -0
  521. package/dist/web/favicon-32.png +0 -0
  522. package/dist/web/favicon-512.png +0 -0
  523. package/dist/web/favicon-small.svg +0 -15
  524. package/dist/web/favicon.ico +0 -0
  525. package/dist/web/favicon.svg +0 -20
  526. package/dist/web/index.html +0 -145
  527. package/dist/web/main-RI5CO5Z4.js +0 -1
  528. package/dist/web/styles-CYN7IKT4.css +0 -1
  529. package/dist/workflows/condition-evaluator.d.ts +0 -75
  530. package/dist/workflows/condition-evaluator.d.ts.map +0 -1
  531. package/dist/workflows/condition-evaluator.js +0 -282
  532. package/dist/workflows/condition-evaluator.js.map +0 -1
  533. package/dist/workflows/defaults/index.d.ts +0 -26
  534. package/dist/workflows/defaults/index.d.ts.map +0 -1
  535. package/dist/workflows/defaults/index.js +0 -94
  536. package/dist/workflows/defaults/index.js.map +0 -1
  537. package/dist/workflows/defaults/spec-fix.yaml +0 -110
  538. package/dist/workflows/defaults/spec-implement.yaml +0 -150
  539. package/dist/workflows/defaults/spec-relink.yaml +0 -81
  540. package/dist/workflows/defaults/spec-verify.yaml +0 -51
  541. package/dist/workflows/discovery.d.ts +0 -46
  542. package/dist/workflows/discovery.d.ts.map +0 -1
  543. package/dist/workflows/discovery.js +0 -193
  544. package/dist/workflows/discovery.js.map +0 -1
  545. package/dist/workflows/executor.d.ts +0 -83
  546. package/dist/workflows/executor.d.ts.map +0 -1
  547. package/dist/workflows/executor.js +0 -623
  548. package/dist/workflows/executor.js.map +0 -1
  549. package/dist/workflows/runners/approval.d.ts +0 -18
  550. package/dist/workflows/runners/approval.d.ts.map +0 -1
  551. package/dist/workflows/runners/approval.js +0 -34
  552. package/dist/workflows/runners/approval.js.map +0 -1
  553. package/dist/workflows/runners/bash.d.ts +0 -13
  554. package/dist/workflows/runners/bash.d.ts.map +0 -1
  555. package/dist/workflows/runners/bash.js +0 -143
  556. package/dist/workflows/runners/bash.js.map +0 -1
  557. package/dist/workflows/runners/cancel.d.ts +0 -10
  558. package/dist/workflows/runners/cancel.d.ts.map +0 -1
  559. package/dist/workflows/runners/cancel.js +0 -19
  560. package/dist/workflows/runners/cancel.js.map +0 -1
  561. package/dist/workflows/runners/prompt.d.ts +0 -28
  562. package/dist/workflows/runners/prompt.d.ts.map +0 -1
  563. package/dist/workflows/runners/prompt.js +0 -212
  564. package/dist/workflows/runners/prompt.js.map +0 -1
  565. package/dist/workflows/runners/script.d.ts +0 -17
  566. package/dist/workflows/runners/script.d.ts.map +0 -1
  567. package/dist/workflows/runners/script.js +0 -155
  568. package/dist/workflows/runners/script.js.map +0 -1
  569. package/dist/workflows/runners/types.d.ts +0 -51
  570. package/dist/workflows/runners/types.d.ts.map +0 -1
  571. package/dist/workflows/runners/types.js +0 -13
  572. package/dist/workflows/runners/types.js.map +0 -1
  573. package/dist/workflows/schemas/workflow.d.ts +0 -166
  574. package/dist/workflows/schemas/workflow.d.ts.map +0 -1
  575. package/dist/workflows/schemas/workflow.js +0 -437
  576. package/dist/workflows/schemas/workflow.js.map +0 -1
@@ -1,698 +0,0 @@
1
- "use strict";
2
- /**
3
- * NestJS Framework Resolver
4
- *
5
- * Handles NestJS decorator-based routing across its transport layers:
6
- * - HTTP: @Controller(prefix) + @Get/@Post/@Put/@Patch/@Delete/@Head/@Options/@All
7
- * - GraphQL: @Resolver + @Query/@Mutation/@Subscription
8
- * - Microservices: @MessagePattern / @EventPattern
9
- * - WebSockets: @WebSocketGateway(namespace) + @SubscribeMessage(event)
10
- *
11
- * Like the other framework extractors this is regex-over-source (comment-
12
- * stripped), not AST traversal. NestJS differs from Spring/ASP.NET in two ways
13
- * that this resolver has to account for:
14
- *
15
- * 1. An HTTP route's path is split across TWO decorators — the class-level
16
- * `@Controller` prefix and the method-level `@Get`/`@Post` path — and both
17
- * are frequently empty (`@Controller()`, `@Get()`). We pair each method
18
- * decorator with its enclosing class and join the two paths.
19
- *
20
- * 2. `@Query()` is overloaded: it's a GraphQL *method* decorator (from
21
- * `@nestjs/graphql`) AND a REST *parameter* decorator (from
22
- * `@nestjs/common`). We only treat it as GraphQL when it sits inside an
23
- * `@Resolver` class, which is what disambiguates the two.
24
- */
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.nestjsResolver = void 0;
27
- const strip_comments_1 = require("../strip-comments");
28
- const HTTP_METHODS = ['Get', 'Post', 'Put', 'Patch', 'Delete', 'Head', 'Options', 'All'];
29
- const GQL_OPS = ['Query', 'Mutation', 'Subscription'];
30
- exports.nestjsResolver = {
31
- name: 'nestjs',
32
- languages: ['typescript', 'javascript'],
33
- detect(context) {
34
- // Primary, fast path: any @nestjs/* dependency in package.json.
35
- const packageJson = context.readFile('package.json');
36
- if (packageJson) {
37
- try {
38
- const pkg = JSON.parse(packageJson);
39
- const deps = { ...pkg.dependencies, ...pkg.devDependencies };
40
- if (Object.keys(deps).some((k) => k.startsWith('@nestjs/'))) {
41
- return true;
42
- }
43
- }
44
- catch {
45
- // Invalid JSON — fall through to the source scan.
46
- }
47
- }
48
- // Fallback: NestJS-specific decorators in conventionally named files.
49
- const allFiles = context.getAllFiles();
50
- for (const file of allFiles) {
51
- if (file.endsWith('.controller.ts') ||
52
- file.endsWith('.controller.js') ||
53
- file.endsWith('.module.ts') ||
54
- file.endsWith('.resolver.ts') ||
55
- file.endsWith('.gateway.ts')) {
56
- const content = context.readFile(file);
57
- if (content &&
58
- (content.includes('@nestjs/') ||
59
- content.includes('@Controller') ||
60
- content.includes('@Module(') ||
61
- content.includes('@Resolver(') ||
62
- content.includes('@WebSocketGateway('))) {
63
- return true;
64
- }
65
- }
66
- }
67
- return false;
68
- },
69
- resolve(ref, context) {
70
- // Resolve provider/controller references (e.g. constructor-injected
71
- // `UsersService`) to their class, preferring the Nest file-name
72
- // convention (`*.service.ts`, `*.controller.ts`, …).
73
- for (const [suffix, convention] of PROVIDER_CONVENTIONS) {
74
- if (!suffix.test(ref.referenceName))
75
- continue;
76
- const candidates = context
77
- .getNodesByName(ref.referenceName)
78
- .filter((n) => n.kind === 'class');
79
- if (candidates.length === 0)
80
- return null;
81
- const preferred = candidates.find((n) => n.filePath.includes(convention));
82
- const target = preferred ?? candidates[0];
83
- return {
84
- original: ref,
85
- targetNodeId: target.id,
86
- confidence: preferred ? 0.85 : 0.7,
87
- resolvedBy: 'framework',
88
- };
89
- }
90
- return null;
91
- },
92
- extract(filePath, content) {
93
- if (!/\.(m?js|tsx?|cjs)$/.test(filePath))
94
- return { nodes: [], references: [] };
95
- const nodes = [];
96
- const references = [];
97
- const now = Date.now();
98
- const lang = detectLanguage(filePath);
99
- const safe = (0, strip_comments_1.stripCommentsForRegex)(content, lang);
100
- const addRoute = (index, method, path, length, handler) => {
101
- const line = lineAt(safe, index);
102
- const node = {
103
- id: `route:${filePath}:${line}:${method}:${path}`,
104
- kind: 'route',
105
- name: `${method} ${path}`,
106
- qualifiedName: `${filePath}::${method}:${path}`,
107
- filePath,
108
- startLine: line,
109
- endLine: line,
110
- startColumn: 0,
111
- endColumn: length,
112
- language: lang,
113
- updatedAt: now,
114
- };
115
- nodes.push(node);
116
- if (handler) {
117
- references.push({
118
- fromNodeId: node.id,
119
- referenceName: handler,
120
- referenceKind: 'references',
121
- line,
122
- column: 0,
123
- filePath,
124
- language: lang,
125
- });
126
- }
127
- };
128
- const scopes = buildClassScopes(safe);
129
- // HTTP routes: method decorator path joined onto the enclosing controller's prefix.
130
- for (const hit of findDecorators(safe, HTTP_METHODS)) {
131
- const scope = scopeFor(scopes, hit.index);
132
- const prefix = scope && scope.kind === 'controller' ? scope.prefix : '';
133
- const path = joinHttpPath(prefix, parseStringArg(hit.args));
134
- addRoute(hit.index, hit.name.toUpperCase(), path, hit.length, methodNameAfter(safe, hit.end));
135
- }
136
- // GraphQL operations: only inside an @Resolver class (disambiguates the
137
- // REST `@Query()` parameter decorator, which lives inside @Controller classes).
138
- for (const hit of findDecorators(safe, GQL_OPS)) {
139
- const scope = scopeFor(scopes, hit.index);
140
- if (!scope || scope.kind !== 'resolver')
141
- continue;
142
- const handler = methodNameAfter(safe, hit.end);
143
- const name = parseGraphqlName(hit.args, handler);
144
- addRoute(hit.index, hit.name.toUpperCase(), name, hit.length, handler);
145
- }
146
- // Microservice message/event handlers.
147
- for (const hit of findDecorators(safe, ['MessagePattern', 'EventPattern'])) {
148
- const verb = hit.name === 'EventPattern' ? 'EVENT' : 'MESSAGE';
149
- const handler = methodNameAfter(safe, hit.end);
150
- addRoute(hit.index, verb, parseStringArg(hit.args) || handler || '', hit.length, handler);
151
- }
152
- // WebSocket message handlers, prefixed with the gateway namespace when present.
153
- for (const hit of findDecorators(safe, ['SubscribeMessage'])) {
154
- const scope = scopeFor(scopes, hit.index);
155
- const namespace = scope && scope.kind === 'gateway' ? scope.prefix : '';
156
- const handler = methodNameAfter(safe, hit.end);
157
- const event = parseStringArg(hit.args) || handler || '';
158
- addRoute(hit.index, 'WS', namespace ? `${namespace}:${event}` : event, hit.length, handler);
159
- }
160
- return { nodes, references };
161
- },
162
- /**
163
- * Cross-file finalization for `RouterModule.register([...])`. The per-file
164
- * extract() above only sees `@Controller(prefix) + @Get(path)` — it can't
165
- * learn about the route prefix supplied by a sibling `app.module.ts` like:
166
- *
167
- * RouterModule.register([
168
- * { path: 'admin', module: AdminModule, children: [
169
- * { path: 'users', module: UsersModule } ] } ])
170
- *
171
- * This pass scans every `*.module.{ts,js}` file, walks the registration
172
- * tree to build a `Module → /full/prefix` map, walks each `@Module({
173
- * controllers: [...] })` to build a `Controller → Module` map, and rewrites
174
- * affected route nodes so `GET /` becomes `GET /admin/users` (and
175
- * `@Controller('foo') + @Get(':id')` under that same module becomes
176
- * `GET /admin/users/foo/:id`).
177
- *
178
- * The route node's `id` and `qualifiedName` are deliberately preserved
179
- * across the update: `id` because existing route→handler edges reference
180
- * it, `qualifiedName` because it still encodes the *original* in-file
181
- * `method:path` — which keeps this pass idempotent (a second run recovers
182
- * the same input regardless of how many times it has already prefixed).
183
- */
184
- postExtract(context) {
185
- const moduleToPrefix = new Map();
186
- const controllerToModule = new Map();
187
- for (const filePath of context.getAllFiles()) {
188
- if (!/\.module\.(m?[jt]s|cjs)$/.test(filePath))
189
- continue;
190
- const content = context.readFile(filePath);
191
- if (!content)
192
- continue;
193
- const safe = (0, strip_comments_1.stripCommentsForRegex)(content, detectLanguage(filePath));
194
- collectRouterModuleRegistrations(safe, moduleToPrefix);
195
- collectModuleControllers(safe, controllerToModule);
196
- }
197
- const controllerToPrefix = new Map();
198
- for (const [controller, module] of controllerToModule) {
199
- const prefix = moduleToPrefix.get(module);
200
- // `''` and `'/'` are no-op prefixes; skip them so we don't run updates
201
- // that would set name to the value it already has.
202
- if (prefix && prefix !== '' && prefix !== '/') {
203
- controllerToPrefix.set(controller, prefix);
204
- }
205
- }
206
- if (controllerToPrefix.size === 0)
207
- return [];
208
- const updates = [];
209
- for (const [controllerName, prefix] of controllerToPrefix) {
210
- const classes = context
211
- .getNodesByName(controllerName)
212
- .filter((n) => n.kind === 'class');
213
- for (const cls of classes) {
214
- const routes = context
215
- .getNodesInFile(cls.filePath)
216
- .filter((n) => n.kind === 'route');
217
- for (const route of routes) {
218
- // Multiple controllers can live in one file (covered by the
219
- // existing "attributes methods to the right controller" test);
220
- // each route must be associated with the controller whose line
221
- // range contains it.
222
- if (route.startLine < cls.startLine || route.startLine > cls.endLine) {
223
- continue;
224
- }
225
- const updated = applyModulePrefix(route, prefix);
226
- if (updated && updated.name !== route.name)
227
- updates.push(updated);
228
- }
229
- }
230
- }
231
- return updates;
232
- },
233
- };
234
- // ---------------------------------------------------------------------------
235
- // Provider resolution conventions
236
- // ---------------------------------------------------------------------------
237
- const PROVIDER_CONVENTIONS = [
238
- [/Service$/, '.service.'],
239
- [/Controller$/, '.controller.'],
240
- [/Resolver$/, '.resolver.'],
241
- [/Gateway$/, '.gateway.'],
242
- [/Repository$/, '.repository.'],
243
- [/Guard$/, '.guard.'],
244
- [/Interceptor$/, '.interceptor.'],
245
- [/Pipe$/, '.pipe.'],
246
- [/Module$/, '.module.'],
247
- ];
248
- /**
249
- * Find every `@Name(...)` decorator whose name is in `names`. Uses a
250
- * string-aware balanced-paren reader for the argument list so type thunks
251
- * like `@Query(() => [User])` are captured whole rather than truncated at the
252
- * inner `()`.
253
- */
254
- function findDecorators(safe, names) {
255
- const hits = [];
256
- const re = new RegExp(`@(${names.join('|')})\\s*\\(`, 'g');
257
- let m;
258
- while ((m = re.exec(safe)) !== null) {
259
- const openIndex = m.index + m[0].length - 1; // position of '('
260
- const parsed = readArgs(safe, openIndex);
261
- if (!parsed)
262
- continue;
263
- hits.push({
264
- name: m[1],
265
- args: parsed.args,
266
- index: m.index,
267
- end: parsed.end,
268
- length: parsed.end - m.index,
269
- });
270
- re.lastIndex = parsed.end; // resume past the args so nested text isn't re-scanned
271
- }
272
- return hits;
273
- }
274
- /**
275
- * Read a balanced `(...)` starting at `openIndex` (which must point at `(`).
276
- * String-aware, so parens inside string literals don't unbalance the count.
277
- * Returns the inner text and the index just past the closing `)`.
278
- */
279
- function readArgs(s, openIndex) {
280
- if (s[openIndex] !== '(')
281
- return null;
282
- let depth = 0;
283
- let inStr = null;
284
- for (let i = openIndex; i < s.length; i++) {
285
- const ch = s[i];
286
- if (inStr) {
287
- if (ch === '\\') {
288
- i++;
289
- continue;
290
- }
291
- if (ch === inStr)
292
- inStr = null;
293
- continue;
294
- }
295
- if (ch === '"' || ch === "'" || ch === '`') {
296
- inStr = ch;
297
- continue;
298
- }
299
- if (ch === '(')
300
- depth++;
301
- else if (ch === ')') {
302
- depth--;
303
- if (depth === 0)
304
- return { args: s.slice(openIndex + 1, i), end: i + 1 };
305
- }
306
- }
307
- return null;
308
- }
309
- /**
310
- * Starting just after a method decorator's `)`, return the name of the method
311
- * it decorates. Skips any further stacked decorators (`@UseGuards(...)`,
312
- * `@HttpCode(204)`, …) and access/async modifiers in between.
313
- */
314
- function methodNameAfter(safe, start) {
315
- let i = start;
316
- const ws = /\s*/y;
317
- const decoName = /@[\w.]+/y;
318
- const modifier = /(?:public|private|protected|async|static)\b/y;
319
- const ident = /([A-Za-z_$][\w$]*)\s*\(/y;
320
- const eatWs = () => {
321
- ws.lastIndex = i;
322
- if (ws.exec(safe))
323
- i = ws.lastIndex;
324
- };
325
- // Skip stacked decorators.
326
- for (;;) {
327
- eatWs();
328
- if (safe[i] !== '@')
329
- break;
330
- decoName.lastIndex = i;
331
- if (!decoName.exec(safe))
332
- break;
333
- i = decoName.lastIndex;
334
- eatWs();
335
- if (safe[i] === '(') {
336
- const parsed = readArgs(safe, i);
337
- if (!parsed)
338
- return null;
339
- i = parsed.end;
340
- }
341
- }
342
- // Skip access/async/static modifiers.
343
- for (;;) {
344
- eatWs();
345
- modifier.lastIndex = i;
346
- if (modifier.exec(safe) && modifier.lastIndex > i) {
347
- i = modifier.lastIndex;
348
- continue;
349
- }
350
- break;
351
- }
352
- eatWs();
353
- ident.lastIndex = i;
354
- const m = ident.exec(safe);
355
- return m ? m[1] : null;
356
- }
357
- /**
358
- * Build the list of class-level decorator scopes, sorted by position. Each
359
- * scope runs from its decorator up to the next class decorator (of any kind),
360
- * which lets a method decorator find its enclosing class regardless of how
361
- * many classes share a file.
362
- */
363
- function buildClassScopes(safe) {
364
- const defs = [
365
- { kind: 'controller', name: 'Controller', prefixOf: parseControllerPrefix },
366
- { kind: 'resolver', name: 'Resolver', prefixOf: () => '' },
367
- { kind: 'gateway', name: 'WebSocketGateway', prefixOf: parseGatewayNamespace },
368
- { kind: 'other', name: 'Injectable', prefixOf: () => '' },
369
- { kind: 'other', name: 'Module', prefixOf: () => '' },
370
- { kind: 'other', name: 'Catch', prefixOf: () => '' },
371
- ];
372
- const raw = [];
373
- for (const def of defs) {
374
- for (const hit of findDecorators(safe, [def.name])) {
375
- raw.push({ kind: def.kind, prefix: def.prefixOf(hit.args), index: hit.index });
376
- }
377
- }
378
- raw.sort((a, b) => a.index - b.index);
379
- return raw.map((r, i) => ({
380
- kind: r.kind,
381
- prefix: r.prefix,
382
- start: r.index,
383
- end: i + 1 < raw.length ? raw[i + 1].index : safe.length,
384
- }));
385
- }
386
- function scopeFor(scopes, index) {
387
- for (const s of scopes) {
388
- if (index >= s.start && index < s.end)
389
- return s;
390
- }
391
- return null;
392
- }
393
- // ---------------------------------------------------------------------------
394
- // Argument parsing
395
- // ---------------------------------------------------------------------------
396
- /** First string literal anywhere in the args, or '' (covers `'x'`, `{ k: 'x' }`). */
397
- function parseStringArg(args) {
398
- const m = args.match(/['"`]([^'"`]*)['"`]/);
399
- return m ? m[1] : '';
400
- }
401
- /** `@Controller('users')` | `@Controller({ path: 'users', host })` | `@Controller(['a','b'])` | `@Controller()`. */
402
- function parseControllerPrefix(args) {
403
- const obj = args.match(/path\s*:\s*['"`]([^'"`]*)['"`]/);
404
- if (obj)
405
- return obj[1];
406
- return parseStringArg(args);
407
- }
408
- /** `@WebSocketGateway({ namespace: 'chat' })` | `@WebSocketGateway(81, { namespace: '/chat' })` | `@WebSocketGateway()`. */
409
- function parseGatewayNamespace(args) {
410
- const m = args.match(/namespace\s*:\s*['"`]([^'"`]*)['"`]/);
411
- return m ? m[1] : '';
412
- }
413
- /**
414
- * GraphQL operation name. Prefers an explicit `{ name: 'x' }` or a leading
415
- * string literal (`@Query('users')`); otherwise the field name defaults to the
416
- * handler method name. Avoids mistaking a `description` string for the name.
417
- */
418
- function parseGraphqlName(args, handler) {
419
- const named = args.match(/name\s*:\s*['"`]([^'"`]*)['"`]/);
420
- if (named)
421
- return named[1];
422
- const lead = args.match(/^\s*['"`]([^'"`]*)['"`]/);
423
- if (lead)
424
- return lead[1];
425
- return handler ?? '';
426
- }
427
- // ---------------------------------------------------------------------------
428
- // Path helpers
429
- // ---------------------------------------------------------------------------
430
- /** Join a controller prefix and method path into a single normalised `/path`. */
431
- function joinHttpPath(prefix, sub) {
432
- const parts = [prefix, sub]
433
- .map((p) => p.trim().replace(/^\/+|\/+$/g, ''))
434
- .filter((p) => p.length > 0);
435
- return '/' + parts.join('/');
436
- }
437
- function lineAt(safe, index) {
438
- return safe.slice(0, index).split('\n').length;
439
- }
440
- function detectLanguage(filePath) {
441
- if (filePath.endsWith('.ts') || filePath.endsWith('.tsx'))
442
- return 'typescript';
443
- return 'javascript';
444
- }
445
- // ---------------------------------------------------------------------------
446
- // RouterModule + @Module walkers (used by postExtract above)
447
- // ---------------------------------------------------------------------------
448
- /**
449
- * Walk every `RouterModule.register([...])` call (and the equivalent
450
- * `RouterModule.forRoot([...])` and `forChild([...])` aliases) and populate
451
- * `out` with `Module → /full/prefix`. Recursive `children` arrays inherit
452
- * their parent's prefix.
453
- *
454
- * First-write-wins: if the same module appears in two registrations we keep
455
- * the first prefix seen rather than overwriting. NestJS itself does the same.
456
- */
457
- function collectRouterModuleRegistrations(safe, out) {
458
- const re = /\bRouterModule\s*\.\s*(?:register|forRoot|forChild)\s*\(/g;
459
- let m;
460
- while ((m = re.exec(safe)) !== null) {
461
- const openIndex = m.index + m[0].length - 1;
462
- const parsed = readArgs(safe, openIndex);
463
- if (!parsed)
464
- continue;
465
- const items = parseRoutesArray(parsed.args);
466
- walkRoutesTree(items, '', out);
467
- re.lastIndex = parsed.end;
468
- }
469
- }
470
- /**
471
- * Parse a `[ {...}, {...} ]` argument list into a list of `RouteItem`s. The
472
- * args are expected to be an inline literal — references to a `const routes:
473
- * Routes = [...]` declared earlier in the file aren't followed (rare in
474
- * practice; the registration is usually inline).
475
- */
476
- function parseRoutesArray(args) {
477
- const trimmed = args.trim();
478
- if (!trimmed.startsWith('['))
479
- return [];
480
- // Strip outer [ ... ] respecting balanced brackets.
481
- const close = matchingClose(trimmed, 0);
482
- if (close < 0)
483
- return [];
484
- return parseRouteObjects(trimmed.slice(1, close));
485
- }
486
- function parseRouteObjects(s) {
487
- const items = [];
488
- for (const obj of splitTopLevelObjects(s)) {
489
- const path = parseStringField(obj, 'path');
490
- const moduleName = parseIdentField(obj, 'module');
491
- const childrenStr = parseArrayField(obj, 'children');
492
- const children = childrenStr ? parseRouteObjects(childrenStr) : [];
493
- items.push({ path, moduleName, children });
494
- }
495
- return items;
496
- }
497
- function walkRoutesTree(items, parentPrefix, out) {
498
- for (const item of items) {
499
- const myPrefix = joinHttpPath(parentPrefix, item.path);
500
- if (item.moduleName && !out.has(item.moduleName)) {
501
- out.set(item.moduleName, myPrefix);
502
- }
503
- if (item.children.length > 0) {
504
- walkRoutesTree(item.children, myPrefix, out);
505
- }
506
- }
507
- }
508
- /**
509
- * Walk every `@Module(...)` decorator and populate `out` with
510
- * `Controller → enclosingModuleClassName`, based on the decorator's
511
- * `controllers: [...]` field and the class declaration that follows the
512
- * decorator (skipping stacked decorators and export/default/abstract
513
- * modifiers).
514
- */
515
- function collectModuleControllers(safe, out) {
516
- for (const hit of findDecorators(safe, ['Module'])) {
517
- const className = classNameAfter(safe, hit.end);
518
- if (!className)
519
- continue;
520
- for (const controller of parseControllersField(hit.args)) {
521
- // First-write-wins, same as RouterModule, so a controller listed in two
522
- // modules picks up the one declared earliest in source.
523
- if (!out.has(controller))
524
- out.set(controller, className);
525
- }
526
- }
527
- }
528
- function parseControllersField(args) {
529
- const inner = parseArrayField(args, 'controllers');
530
- if (inner === null)
531
- return [];
532
- return inner
533
- .split(',')
534
- .map((s) => s.trim())
535
- .filter((s) => /^[A-Za-z_$][\w$]*$/.test(s));
536
- }
537
- /**
538
- * Starting just after a class decorator's `)`, return the name of the class
539
- * it decorates. Mirrors `methodNameAfter` for methods: skips stacked
540
- * decorators and `export`/`default`/`abstract` modifiers.
541
- */
542
- function classNameAfter(safe, start) {
543
- let i = start;
544
- const ws = /\s*/y;
545
- const decoName = /@[\w.]+/y;
546
- const classDecl = /(?:export\s+)?(?:default\s+)?(?:abstract\s+)?class\s+([A-Za-z_$][\w$]*)/y;
547
- const eatWs = () => {
548
- ws.lastIndex = i;
549
- if (ws.exec(safe))
550
- i = ws.lastIndex;
551
- };
552
- for (;;) {
553
- eatWs();
554
- if (safe[i] !== '@')
555
- break;
556
- decoName.lastIndex = i;
557
- if (!decoName.exec(safe))
558
- break;
559
- i = decoName.lastIndex;
560
- eatWs();
561
- if (safe[i] === '(') {
562
- const parsed = readArgs(safe, i);
563
- if (!parsed)
564
- return null;
565
- i = parsed.end;
566
- }
567
- }
568
- eatWs();
569
- classDecl.lastIndex = i;
570
- const m = classDecl.exec(safe);
571
- return m ? m[1] : null;
572
- }
573
- /**
574
- * Recompute a route node's `name` by prepending `prefix` to the *original*
575
- * in-file path. The original is recovered from `qualifiedName`, which the
576
- * per-file extract emits as `${filePath}::${method}:${path}` and which this
577
- * pass deliberately never mutates — that's what keeps the update idempotent.
578
- */
579
- function applyModulePrefix(route, prefix) {
580
- const sep = '::';
581
- const idx = route.qualifiedName.indexOf(sep);
582
- if (idx < 0)
583
- return null;
584
- const tail = route.qualifiedName.slice(idx + sep.length);
585
- const colon = tail.indexOf(':');
586
- if (colon < 0)
587
- return null;
588
- const method = tail.slice(0, colon);
589
- const original = tail.slice(colon + 1);
590
- const newName = `${method} ${joinHttpPath(prefix, original)}`;
591
- return { ...route, name: newName, updatedAt: Date.now() };
592
- }
593
- // ---------------------------------------------------------------------------
594
- // Small string utilities (object/array literal splitters)
595
- // ---------------------------------------------------------------------------
596
- /** Return the index of the bracket that closes the one at `open`, or -1. */
597
- function matchingClose(s, open) {
598
- const opener = s[open];
599
- if (opener !== '[' && opener !== '{' && opener !== '(')
600
- return -1;
601
- let depth = 0;
602
- let inStr = null;
603
- for (let i = open; i < s.length; i++) {
604
- const ch = s[i];
605
- if (inStr) {
606
- if (ch === '\\') {
607
- i++;
608
- continue;
609
- }
610
- if (ch === inStr)
611
- inStr = null;
612
- continue;
613
- }
614
- if (ch === '"' || ch === "'" || ch === '`') {
615
- inStr = ch;
616
- continue;
617
- }
618
- if (ch === '{' || ch === '[' || ch === '(')
619
- depth++;
620
- else if (ch === '}' || ch === ']' || ch === ')') {
621
- depth--;
622
- if (depth === 0)
623
- return i;
624
- }
625
- }
626
- return -1;
627
- }
628
- /**
629
- * Split `s` into the contents of each top-level object literal. Brackets and
630
- * string literals are balanced so nested arrays/objects/strings inside an
631
- * object don't cause an early split.
632
- */
633
- function splitTopLevelObjects(s) {
634
- const out = [];
635
- let depth = 0;
636
- let objStart = -1;
637
- let inStr = null;
638
- for (let i = 0; i < s.length; i++) {
639
- const ch = s[i];
640
- if (inStr) {
641
- if (ch === '\\') {
642
- i++;
643
- continue;
644
- }
645
- if (ch === inStr)
646
- inStr = null;
647
- continue;
648
- }
649
- if (ch === '"' || ch === "'" || ch === '`') {
650
- inStr = ch;
651
- continue;
652
- }
653
- if (depth === 0 && ch === '{') {
654
- depth = 1;
655
- objStart = i;
656
- continue;
657
- }
658
- if (ch === '{' || ch === '[' || ch === '(')
659
- depth++;
660
- else if (ch === '}' || ch === ']' || ch === ')') {
661
- depth--;
662
- if (depth === 0 && objStart >= 0 && ch === '}') {
663
- out.push(s.slice(objStart + 1, i));
664
- objStart = -1;
665
- }
666
- }
667
- }
668
- return out;
669
- }
670
- /**
671
- * Read a string-valued field — `key: 'value'` — out of one object literal's
672
- * body. Returns `''` if not present. The leading character class guards
673
- * against matching a field whose name *contains* the target as a suffix.
674
- */
675
- function parseStringField(obj, name) {
676
- const re = new RegExp(`(?:^|[,{\\s])${name}\\s*:\\s*['"\`]([^'"\`]*)['"\`]`);
677
- const m = obj.match(re);
678
- return m ? m[1] : '';
679
- }
680
- /** Read an identifier-valued field — `key: SomeIdent` — out of one object body. */
681
- function parseIdentField(obj, name) {
682
- const re = new RegExp(`(?:^|[,{\\s])${name}\\s*:\\s*([A-Za-z_$][\\w$]*)`);
683
- const m = obj.match(re);
684
- return m ? m[1] : null;
685
- }
686
- /** Read an array-valued field — `key: [ ... ]` — as the raw inner text. */
687
- function parseArrayField(obj, name) {
688
- const re = new RegExp(`(?:^|[,{\\s])${name}\\s*:\\s*\\[`);
689
- const m = re.exec(obj);
690
- if (!m)
691
- return null;
692
- const open = m.index + m[0].length - 1;
693
- const close = matchingClose(obj, open);
694
- if (close < 0)
695
- return null;
696
- return obj.slice(open + 1, close);
697
- }
698
- //# sourceMappingURL=nestjs.js.map