hzl-cli 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/dist/__tests__/integration/cli-integration.test.js +70 -64
  2. package/dist/__tests__/integration/cli-integration.test.js.map +1 -1
  3. package/dist/__tests__/integration/config.test.js +19 -4
  4. package/dist/__tests__/integration/config.test.js.map +1 -1
  5. package/dist/__tests__/integration/project-workflow.test.d.ts +2 -0
  6. package/dist/__tests__/integration/project-workflow.test.d.ts.map +1 -0
  7. package/dist/__tests__/integration/project-workflow.test.js +50 -0
  8. package/dist/__tests__/integration/project-workflow.test.js.map +1 -0
  9. package/dist/commands/config.test.js +8 -1
  10. package/dist/commands/config.test.js.map +1 -1
  11. package/dist/commands/init.d.ts +3 -0
  12. package/dist/commands/init.d.ts.map +1 -1
  13. package/dist/commands/init.js +45 -10
  14. package/dist/commands/init.js.map +1 -1
  15. package/dist/commands/init.test.js +28 -12
  16. package/dist/commands/init.test.js.map +1 -1
  17. package/dist/commands/project/create.d.ts +17 -0
  18. package/dist/commands/project/create.d.ts.map +1 -0
  19. package/dist/commands/project/create.js +49 -0
  20. package/dist/commands/project/create.js.map +1 -0
  21. package/dist/commands/project/create.test.d.ts +2 -0
  22. package/dist/commands/project/create.test.d.ts.map +1 -0
  23. package/dist/commands/project/create.test.js +36 -0
  24. package/dist/commands/project/create.test.js.map +1 -0
  25. package/dist/commands/project/delete.d.ts +19 -0
  26. package/dist/commands/project/delete.d.ts.map +1 -0
  27. package/dist/commands/project/delete.js +153 -0
  28. package/dist/commands/project/delete.js.map +1 -0
  29. package/dist/commands/project/delete.test.d.ts +2 -0
  30. package/dist/commands/project/delete.test.d.ts.map +1 -0
  31. package/dist/commands/project/delete.test.js +74 -0
  32. package/dist/commands/project/delete.test.js.map +1 -0
  33. package/dist/commands/project/index.d.ts +3 -0
  34. package/dist/commands/project/index.d.ts.map +1 -0
  35. package/dist/commands/project/index.js +16 -0
  36. package/dist/commands/project/index.js.map +1 -0
  37. package/dist/commands/project/list.d.ts +19 -0
  38. package/dist/commands/project/list.d.ts.map +1 -0
  39. package/dist/commands/project/list.js +68 -0
  40. package/dist/commands/project/list.js.map +1 -0
  41. package/dist/commands/project/list.test.d.ts.map +1 -0
  42. package/dist/commands/project/list.test.js +40 -0
  43. package/dist/commands/project/list.test.js.map +1 -0
  44. package/dist/commands/project/rename.d.ts +15 -0
  45. package/dist/commands/project/rename.d.ts.map +1 -0
  46. package/dist/commands/project/rename.js +45 -0
  47. package/dist/commands/project/rename.js.map +1 -0
  48. package/dist/commands/project/rename.test.d.ts +2 -0
  49. package/dist/commands/project/rename.test.d.ts.map +1 -0
  50. package/dist/commands/project/rename.test.js +36 -0
  51. package/dist/commands/project/rename.test.js.map +1 -0
  52. package/dist/commands/project/show.d.ts +25 -0
  53. package/dist/commands/project/show.d.ts.map +1 -0
  54. package/dist/commands/project/show.js +77 -0
  55. package/dist/commands/project/show.js.map +1 -0
  56. package/dist/commands/project/show.test.d.ts.map +1 -0
  57. package/dist/commands/project/show.test.js +46 -0
  58. package/dist/commands/project/show.test.js.map +1 -0
  59. package/dist/commands/sample-project.d.ts.map +1 -1
  60. package/dist/commands/sample-project.js +4 -0
  61. package/dist/commands/sample-project.js.map +1 -1
  62. package/dist/commands/stats.test.js +2 -0
  63. package/dist/commands/stats.test.js.map +1 -1
  64. package/dist/commands/{add-dep.d.ts → task/add-dep.d.ts} +1 -1
  65. package/dist/commands/task/add-dep.d.ts.map +1 -0
  66. package/dist/commands/{add-dep.js → task/add-dep.js} +3 -3
  67. package/dist/commands/task/add-dep.js.map +1 -0
  68. package/dist/commands/task/add-dep.test.d.ts.map +1 -0
  69. package/dist/commands/{add-dep.test.js → task/add-dep.test.js} +1 -1
  70. package/dist/commands/task/add-dep.test.js.map +1 -0
  71. package/dist/commands/{add.d.ts → task/add.d.ts} +1 -1
  72. package/dist/commands/task/add.d.ts.map +1 -0
  73. package/dist/commands/{add.js → task/add.js} +6 -6
  74. package/dist/commands/task/add.js.map +1 -0
  75. package/dist/commands/task/add.test.d.ts.map +1 -0
  76. package/dist/commands/{add.test.js → task/add.test.js} +2 -1
  77. package/dist/commands/task/add.test.js.map +1 -0
  78. package/dist/commands/{archive.d.ts → task/archive.d.ts} +1 -1
  79. package/dist/commands/task/archive.d.ts.map +1 -0
  80. package/dist/commands/{archive.js → task/archive.js} +3 -3
  81. package/dist/commands/task/archive.js.map +1 -0
  82. package/dist/commands/task/archive.test.d.ts.map +1 -0
  83. package/dist/commands/{archive.test.js → task/archive.test.js} +1 -1
  84. package/dist/commands/task/archive.test.js.map +1 -0
  85. package/dist/commands/{checkpoint.d.ts → task/checkpoint.d.ts} +1 -1
  86. package/dist/commands/task/checkpoint.d.ts.map +1 -0
  87. package/dist/commands/{checkpoint.js → task/checkpoint.js} +3 -3
  88. package/dist/commands/task/checkpoint.js.map +1 -0
  89. package/dist/commands/task/checkpoint.test.d.ts.map +1 -0
  90. package/dist/commands/{checkpoint.test.js → task/checkpoint.test.js} +1 -1
  91. package/dist/commands/task/checkpoint.test.js.map +1 -0
  92. package/dist/commands/{claim.d.ts → task/claim.d.ts} +1 -1
  93. package/dist/commands/task/claim.d.ts.map +1 -0
  94. package/dist/commands/{claim.js → task/claim.js} +3 -3
  95. package/dist/commands/task/claim.js.map +1 -0
  96. package/dist/commands/task/claim.test.d.ts.map +1 -0
  97. package/dist/commands/{claim.test.js → task/claim.test.js} +1 -1
  98. package/dist/commands/task/claim.test.js.map +1 -0
  99. package/dist/commands/{comment.d.ts → task/comment.d.ts} +1 -1
  100. package/dist/commands/task/comment.d.ts.map +1 -0
  101. package/dist/commands/{comment.js → task/comment.js} +3 -3
  102. package/dist/commands/task/comment.js.map +1 -0
  103. package/dist/commands/task/comment.test.d.ts.map +1 -0
  104. package/dist/commands/{comment.test.js → task/comment.test.js} +1 -1
  105. package/dist/commands/task/comment.test.js.map +1 -0
  106. package/dist/commands/{complete.d.ts → task/complete.d.ts} +1 -1
  107. package/dist/commands/task/complete.d.ts.map +1 -0
  108. package/dist/commands/{complete.js → task/complete.js} +3 -3
  109. package/dist/commands/task/complete.js.map +1 -0
  110. package/dist/commands/task/complete.test.d.ts.map +1 -0
  111. package/dist/commands/{complete.test.js → task/complete.test.js} +1 -1
  112. package/dist/commands/task/complete.test.js.map +1 -0
  113. package/dist/commands/{history.d.ts → task/history.d.ts} +1 -1
  114. package/dist/commands/task/history.d.ts.map +1 -0
  115. package/dist/commands/{history.js → task/history.js} +3 -3
  116. package/dist/commands/task/history.js.map +1 -0
  117. package/dist/commands/task/history.test.d.ts.map +1 -0
  118. package/dist/commands/{history.test.js → task/history.test.js} +1 -1
  119. package/dist/commands/task/history.test.js.map +1 -0
  120. package/dist/commands/task/index.d.ts +3 -0
  121. package/dist/commands/task/index.d.ts.map +1 -0
  122. package/dist/commands/task/index.js +46 -0
  123. package/dist/commands/task/index.js.map +1 -0
  124. package/dist/commands/{list.d.ts → task/list.d.ts} +1 -1
  125. package/dist/commands/task/list.d.ts.map +1 -0
  126. package/dist/commands/{list.js → task/list.js} +3 -3
  127. package/dist/commands/task/list.js.map +1 -0
  128. package/dist/commands/task/list.test.d.ts +2 -0
  129. package/dist/commands/task/list.test.d.ts.map +1 -0
  130. package/dist/commands/{list.test.js → task/list.test.js} +3 -1
  131. package/dist/commands/task/list.test.js.map +1 -0
  132. package/dist/commands/{move.d.ts → task/move.d.ts} +1 -1
  133. package/dist/commands/task/move.d.ts.map +1 -0
  134. package/dist/commands/{move.js → task/move.js} +5 -15
  135. package/dist/commands/task/move.js.map +1 -0
  136. package/dist/commands/task/move.test.d.ts.map +1 -0
  137. package/dist/commands/{move.test.js → task/move.test.js} +4 -1
  138. package/dist/commands/task/move.test.js.map +1 -0
  139. package/dist/commands/{next.d.ts → task/next.d.ts} +1 -1
  140. package/dist/commands/task/next.d.ts.map +1 -0
  141. package/dist/commands/{next.js → task/next.js} +3 -3
  142. package/dist/commands/task/next.js.map +1 -0
  143. package/dist/commands/task/next.test.d.ts.map +1 -0
  144. package/dist/commands/{next.test.js → task/next.test.js} +3 -1
  145. package/dist/commands/task/next.test.js.map +1 -0
  146. package/dist/commands/{release.d.ts → task/release.d.ts} +1 -1
  147. package/dist/commands/task/release.d.ts.map +1 -0
  148. package/dist/commands/{release.js → task/release.js} +3 -3
  149. package/dist/commands/task/release.js.map +1 -0
  150. package/dist/commands/task/release.test.d.ts.map +1 -0
  151. package/dist/commands/{release.test.js → task/release.test.js} +1 -1
  152. package/dist/commands/task/release.test.js.map +1 -0
  153. package/dist/commands/{remove-dep.d.ts → task/remove-dep.d.ts} +1 -1
  154. package/dist/commands/task/remove-dep.d.ts.map +1 -0
  155. package/dist/commands/{remove-dep.js → task/remove-dep.js} +3 -3
  156. package/dist/commands/task/remove-dep.js.map +1 -0
  157. package/dist/commands/task/remove-dep.test.d.ts.map +1 -0
  158. package/dist/commands/{remove-dep.test.js → task/remove-dep.test.js} +1 -1
  159. package/dist/commands/task/remove-dep.test.js.map +1 -0
  160. package/dist/commands/{reopen.d.ts → task/reopen.d.ts} +1 -1
  161. package/dist/commands/task/reopen.d.ts.map +1 -0
  162. package/dist/commands/{reopen.js → task/reopen.js} +3 -3
  163. package/dist/commands/task/reopen.js.map +1 -0
  164. package/dist/commands/task/reopen.test.d.ts.map +1 -0
  165. package/dist/commands/{reopen.test.js → task/reopen.test.js} +1 -1
  166. package/dist/commands/task/reopen.test.js.map +1 -0
  167. package/dist/commands/{search.d.ts → task/search.d.ts} +1 -1
  168. package/dist/commands/task/search.d.ts.map +1 -0
  169. package/dist/commands/{search.js → task/search.js} +3 -3
  170. package/dist/commands/task/search.js.map +1 -0
  171. package/dist/commands/task/search.test.d.ts.map +1 -0
  172. package/dist/commands/{search.test.js → task/search.test.js} +4 -1
  173. package/dist/commands/task/search.test.js.map +1 -0
  174. package/dist/commands/{set-status.d.ts → task/set-status.d.ts} +1 -1
  175. package/dist/commands/task/set-status.d.ts.map +1 -0
  176. package/dist/commands/{set-status.js → task/set-status.js} +3 -3
  177. package/dist/commands/task/set-status.js.map +1 -0
  178. package/dist/commands/task/set-status.test.d.ts.map +1 -0
  179. package/dist/commands/{set-status.test.js → task/set-status.test.js} +1 -1
  180. package/dist/commands/task/set-status.test.js.map +1 -0
  181. package/dist/commands/{show.d.ts → task/show.d.ts} +2 -2
  182. package/dist/commands/task/show.d.ts.map +1 -0
  183. package/dist/commands/{show.js → task/show.js} +4 -10
  184. package/dist/commands/task/show.js.map +1 -0
  185. package/dist/commands/task/show.test.d.ts +2 -0
  186. package/dist/commands/task/show.test.d.ts.map +1 -0
  187. package/dist/commands/{show.test.js → task/show.test.js} +13 -4
  188. package/dist/commands/task/show.test.js.map +1 -0
  189. package/dist/commands/{steal.d.ts → task/steal.d.ts} +1 -1
  190. package/dist/commands/task/steal.d.ts.map +1 -0
  191. package/dist/commands/{steal.js → task/steal.js} +3 -3
  192. package/dist/commands/task/steal.js.map +1 -0
  193. package/dist/commands/task/steal.test.d.ts.map +1 -0
  194. package/dist/commands/{steal.test.js → task/steal.test.js} +1 -1
  195. package/dist/commands/task/steal.test.js.map +1 -0
  196. package/dist/commands/{stuck.d.ts → task/stuck.d.ts} +1 -1
  197. package/dist/commands/task/stuck.d.ts.map +1 -0
  198. package/dist/commands/{stuck.js → task/stuck.js} +3 -3
  199. package/dist/commands/task/stuck.js.map +1 -0
  200. package/dist/commands/task/stuck.test.d.ts.map +1 -0
  201. package/dist/commands/{stuck.test.js → task/stuck.test.js} +3 -1
  202. package/dist/commands/task/stuck.test.js.map +1 -0
  203. package/dist/commands/{update.d.ts → task/update.d.ts} +1 -1
  204. package/dist/commands/task/update.d.ts.map +1 -0
  205. package/dist/commands/{update.js → task/update.js} +3 -3
  206. package/dist/commands/task/update.js.map +1 -0
  207. package/dist/commands/task/update.test.d.ts.map +1 -0
  208. package/dist/commands/{update.test.js → task/update.test.js} +1 -1
  209. package/dist/commands/task/update.test.js.map +1 -0
  210. package/dist/commands/which-db.d.ts +2 -1
  211. package/dist/commands/which-db.d.ts.map +1 -1
  212. package/dist/commands/which-db.js +4 -25
  213. package/dist/commands/which-db.js.map +1 -1
  214. package/dist/commands/which-db.test.js +8 -1
  215. package/dist/commands/which-db.test.js.map +1 -1
  216. package/dist/config.d.ts +7 -0
  217. package/dist/config.d.ts.map +1 -1
  218. package/dist/config.js +98 -9
  219. package/dist/config.js.map +1 -1
  220. package/dist/config.test.js +9 -1
  221. package/dist/config.test.js.map +1 -1
  222. package/dist/db.d.ts +2 -0
  223. package/dist/db.d.ts.map +1 -1
  224. package/dist/db.js +15 -2
  225. package/dist/db.js.map +1 -1
  226. package/dist/index.d.ts +4 -8
  227. package/dist/index.d.ts.map +1 -1
  228. package/dist/index.js +10 -240
  229. package/dist/index.js.map +1 -1
  230. package/package.json +2 -2
  231. package/dist/commands/add-dep.d.ts.map +0 -1
  232. package/dist/commands/add-dep.js.map +0 -1
  233. package/dist/commands/add-dep.test.d.ts.map +0 -1
  234. package/dist/commands/add-dep.test.js.map +0 -1
  235. package/dist/commands/add.d.ts.map +0 -1
  236. package/dist/commands/add.js.map +0 -1
  237. package/dist/commands/add.test.d.ts.map +0 -1
  238. package/dist/commands/add.test.js.map +0 -1
  239. package/dist/commands/archive.d.ts.map +0 -1
  240. package/dist/commands/archive.js.map +0 -1
  241. package/dist/commands/archive.test.d.ts.map +0 -1
  242. package/dist/commands/archive.test.js.map +0 -1
  243. package/dist/commands/checkpoint.d.ts.map +0 -1
  244. package/dist/commands/checkpoint.js.map +0 -1
  245. package/dist/commands/checkpoint.test.d.ts.map +0 -1
  246. package/dist/commands/checkpoint.test.js.map +0 -1
  247. package/dist/commands/claim.d.ts.map +0 -1
  248. package/dist/commands/claim.js.map +0 -1
  249. package/dist/commands/claim.test.d.ts.map +0 -1
  250. package/dist/commands/claim.test.js.map +0 -1
  251. package/dist/commands/comment.d.ts.map +0 -1
  252. package/dist/commands/comment.js.map +0 -1
  253. package/dist/commands/comment.test.d.ts.map +0 -1
  254. package/dist/commands/comment.test.js.map +0 -1
  255. package/dist/commands/complete.d.ts.map +0 -1
  256. package/dist/commands/complete.js.map +0 -1
  257. package/dist/commands/complete.test.d.ts.map +0 -1
  258. package/dist/commands/complete.test.js.map +0 -1
  259. package/dist/commands/history.d.ts.map +0 -1
  260. package/dist/commands/history.js.map +0 -1
  261. package/dist/commands/history.test.d.ts.map +0 -1
  262. package/dist/commands/history.test.js.map +0 -1
  263. package/dist/commands/list.d.ts.map +0 -1
  264. package/dist/commands/list.js.map +0 -1
  265. package/dist/commands/list.test.d.ts.map +0 -1
  266. package/dist/commands/list.test.js.map +0 -1
  267. package/dist/commands/move.d.ts.map +0 -1
  268. package/dist/commands/move.js.map +0 -1
  269. package/dist/commands/move.test.d.ts.map +0 -1
  270. package/dist/commands/move.test.js.map +0 -1
  271. package/dist/commands/next.d.ts.map +0 -1
  272. package/dist/commands/next.js.map +0 -1
  273. package/dist/commands/next.test.d.ts.map +0 -1
  274. package/dist/commands/next.test.js.map +0 -1
  275. package/dist/commands/projects.d.ts +0 -16
  276. package/dist/commands/projects.d.ts.map +0 -1
  277. package/dist/commands/projects.js +0 -64
  278. package/dist/commands/projects.js.map +0 -1
  279. package/dist/commands/projects.test.d.ts +0 -2
  280. package/dist/commands/projects.test.d.ts.map +0 -1
  281. package/dist/commands/projects.test.js +0 -47
  282. package/dist/commands/projects.test.js.map +0 -1
  283. package/dist/commands/release.d.ts.map +0 -1
  284. package/dist/commands/release.js.map +0 -1
  285. package/dist/commands/release.test.d.ts.map +0 -1
  286. package/dist/commands/release.test.js.map +0 -1
  287. package/dist/commands/remove-dep.d.ts.map +0 -1
  288. package/dist/commands/remove-dep.js.map +0 -1
  289. package/dist/commands/remove-dep.test.d.ts.map +0 -1
  290. package/dist/commands/remove-dep.test.js.map +0 -1
  291. package/dist/commands/rename-project.d.ts +0 -16
  292. package/dist/commands/rename-project.d.ts.map +0 -1
  293. package/dist/commands/rename-project.js +0 -70
  294. package/dist/commands/rename-project.js.map +0 -1
  295. package/dist/commands/rename-project.test.d.ts +0 -2
  296. package/dist/commands/rename-project.test.d.ts.map +0 -1
  297. package/dist/commands/rename-project.test.js +0 -75
  298. package/dist/commands/rename-project.test.js.map +0 -1
  299. package/dist/commands/reopen.d.ts.map +0 -1
  300. package/dist/commands/reopen.js.map +0 -1
  301. package/dist/commands/reopen.test.d.ts.map +0 -1
  302. package/dist/commands/reopen.test.js.map +0 -1
  303. package/dist/commands/search.d.ts.map +0 -1
  304. package/dist/commands/search.js.map +0 -1
  305. package/dist/commands/search.test.d.ts.map +0 -1
  306. package/dist/commands/search.test.js.map +0 -1
  307. package/dist/commands/set-status.d.ts.map +0 -1
  308. package/dist/commands/set-status.js.map +0 -1
  309. package/dist/commands/set-status.test.d.ts.map +0 -1
  310. package/dist/commands/set-status.test.js.map +0 -1
  311. package/dist/commands/show.d.ts.map +0 -1
  312. package/dist/commands/show.js.map +0 -1
  313. package/dist/commands/show.test.d.ts.map +0 -1
  314. package/dist/commands/show.test.js.map +0 -1
  315. package/dist/commands/steal.d.ts.map +0 -1
  316. package/dist/commands/steal.js.map +0 -1
  317. package/dist/commands/steal.test.d.ts.map +0 -1
  318. package/dist/commands/steal.test.js.map +0 -1
  319. package/dist/commands/stuck.d.ts.map +0 -1
  320. package/dist/commands/stuck.js.map +0 -1
  321. package/dist/commands/stuck.test.d.ts.map +0 -1
  322. package/dist/commands/stuck.test.js.map +0 -1
  323. package/dist/commands/task.d.ts +0 -32
  324. package/dist/commands/task.d.ts.map +0 -1
  325. package/dist/commands/task.js +0 -72
  326. package/dist/commands/task.js.map +0 -1
  327. package/dist/commands/update.d.ts.map +0 -1
  328. package/dist/commands/update.js.map +0 -1
  329. package/dist/commands/update.test.d.ts.map +0 -1
  330. package/dist/commands/update.test.js.map +0 -1
  331. /package/dist/commands/{list.test.d.ts → project/list.test.d.ts} +0 -0
  332. /package/dist/commands/{show.test.d.ts → project/show.test.d.ts} +0 -0
  333. /package/dist/commands/{add-dep.test.d.ts → task/add-dep.test.d.ts} +0 -0
  334. /package/dist/commands/{add.test.d.ts → task/add.test.d.ts} +0 -0
  335. /package/dist/commands/{archive.test.d.ts → task/archive.test.d.ts} +0 -0
  336. /package/dist/commands/{checkpoint.test.d.ts → task/checkpoint.test.d.ts} +0 -0
  337. /package/dist/commands/{claim.test.d.ts → task/claim.test.d.ts} +0 -0
  338. /package/dist/commands/{comment.test.d.ts → task/comment.test.d.ts} +0 -0
  339. /package/dist/commands/{complete.test.d.ts → task/complete.test.d.ts} +0 -0
  340. /package/dist/commands/{history.test.d.ts → task/history.test.d.ts} +0 -0
  341. /package/dist/commands/{move.test.d.ts → task/move.test.d.ts} +0 -0
  342. /package/dist/commands/{next.test.d.ts → task/next.test.d.ts} +0 -0
  343. /package/dist/commands/{release.test.d.ts → task/release.test.d.ts} +0 -0
  344. /package/dist/commands/{remove-dep.test.d.ts → task/remove-dep.test.d.ts} +0 -0
  345. /package/dist/commands/{reopen.test.d.ts → task/reopen.test.d.ts} +0 -0
  346. /package/dist/commands/{search.test.d.ts → task/search.test.d.ts} +0 -0
  347. /package/dist/commands/{set-status.test.d.ts → task/set-status.test.d.ts} +0 -0
  348. /package/dist/commands/{steal.test.d.ts → task/steal.test.d.ts} +0 -0
  349. /package/dist/commands/{stuck.test.d.ts → task/stuck.test.d.ts} +0 -0
  350. /package/dist/commands/{update.test.d.ts → task/update.test.d.ts} +0 -0
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createProjectCommand(): Command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/project/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,oBAAoB,IAAI,OAAO,CAU9C"}
@@ -0,0 +1,16 @@
1
+ import { Command } from 'commander';
2
+ import { createProjectCreateCommand } from './create.js';
3
+ import { createProjectDeleteCommand } from './delete.js';
4
+ import { createProjectListCommand } from './list.js';
5
+ import { createProjectRenameCommand } from './rename.js';
6
+ import { createProjectShowCommand } from './show.js';
7
+ export function createProjectCommand() {
8
+ const command = new Command('project').description('Project management commands');
9
+ command.addCommand(createProjectCreateCommand());
10
+ command.addCommand(createProjectDeleteCommand());
11
+ command.addCommand(createProjectListCommand());
12
+ command.addCommand(createProjectRenameCommand());
13
+ command.addCommand(createProjectShowCommand());
14
+ return command;
15
+ }
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/project/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;IAElF,OAAO,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAE/C,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { Command } from 'commander';
2
+ import { type Services } from '../../db.js';
3
+ export interface ProjectListInfo {
4
+ name: string;
5
+ description: string | null;
6
+ is_protected: boolean;
7
+ task_count: number;
8
+ archived_task_count: number;
9
+ active_task_count: number;
10
+ }
11
+ export interface ProjectListResult {
12
+ projects: ProjectListInfo[];
13
+ }
14
+ export declare function runProjectList(options: {
15
+ services: Services;
16
+ json: boolean;
17
+ }): ProjectListResult;
18
+ export declare function createProjectListCommand(): Command;
19
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/project/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAInE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,iBAAiB,CAyDpB;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAelD"}
@@ -0,0 +1,68 @@
1
+ import { Command } from 'commander';
2
+ import { resolveDbPath } from '../../config.js';
3
+ import { initializeDb, closeDb } from '../../db.js';
4
+ import { handleError } from '../../errors.js';
5
+ export function runProjectList(options) {
6
+ const { services, json } = options;
7
+ const rows = services.db
8
+ .prepare(`
9
+ SELECT
10
+ p.name,
11
+ p.description,
12
+ p.is_protected,
13
+ COUNT(tc.task_id) as task_count,
14
+ SUM(CASE WHEN tc.status = 'archived' THEN 1 ELSE 0 END) as archived_task_count
15
+ FROM projects p
16
+ LEFT JOIN tasks_current tc ON tc.project = p.name
17
+ GROUP BY p.name
18
+ ORDER BY p.name
19
+ `)
20
+ .all();
21
+ const projects = rows.map((row) => {
22
+ const archivedCount = row.archived_task_count ?? 0;
23
+ const totalCount = row.task_count ?? 0;
24
+ return {
25
+ name: row.name,
26
+ description: row.description,
27
+ is_protected: row.is_protected === 1,
28
+ task_count: totalCount,
29
+ archived_task_count: archivedCount,
30
+ active_task_count: totalCount - archivedCount,
31
+ };
32
+ });
33
+ const result = { projects };
34
+ if (json) {
35
+ console.log(JSON.stringify(result));
36
+ }
37
+ else {
38
+ if (projects.length === 0) {
39
+ console.log('No projects found');
40
+ }
41
+ else {
42
+ console.log('Projects:');
43
+ for (const project of projects) {
44
+ console.log(` ${project.name}: ${project.active_task_count} active, ${project.archived_task_count} archived`);
45
+ }
46
+ }
47
+ }
48
+ return result;
49
+ }
50
+ export function createProjectListCommand() {
51
+ return new Command('list')
52
+ .description('List projects with task counts')
53
+ .action(function () {
54
+ const globalOpts = this.optsWithGlobals();
55
+ const dbPath = resolveDbPath(globalOpts.db);
56
+ const services = initializeDb(dbPath);
57
+ try {
58
+ runProjectList({ services, json: globalOpts.json ?? false });
59
+ }
60
+ catch (e) {
61
+ handleError(e, globalOpts.json);
62
+ }
63
+ finally {
64
+ closeDb(services);
65
+ }
66
+ });
67
+ }
68
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/project/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAiB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAgB9C,MAAM,UAAU,cAAc,CAAC,OAG9B;IACC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEnC,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE;SACrB,OAAO,CACN;;;;;;;;;;;KAWD,CACA;SACA,GAAG,EAMH,CAAC;IAEJ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAChC,MAAM,aAAa,GAAG,GAAG,CAAC,mBAAmB,IAAI,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;QACvC,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,YAAY,EAAE,GAAG,CAAC,YAAY,KAAK,CAAC;YACpC,UAAU,EAAE,UAAU;YACtB,mBAAmB,EAAE,aAAa;YAClC,iBAAiB,EAAE,UAAU,GAAG,aAAa;SAC9C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAsB,EAAE,QAAQ,EAAE,CAAC;IAE/C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CACT,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,iBAAiB,YAAY,OAAO,CAAC,mBAAmB,WAAW,CAClG,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAmB,CAAC;QAC3D,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.test.d.ts","sourceRoot":"","sources":["../../../src/commands/project/list.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ import os from 'os';
5
+ import { runProjectList } from './list.js';
6
+ import { initializeDb, closeDb } from '../../db.js';
7
+ describe('runProjectList', () => {
8
+ let tempDir;
9
+ let dbPath;
10
+ let services;
11
+ beforeEach(() => {
12
+ tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'hzl-project-list-test-'));
13
+ dbPath = path.join(tempDir, 'test.db');
14
+ services = initializeDb(dbPath);
15
+ });
16
+ afterEach(() => {
17
+ closeDb(services);
18
+ fs.rmSync(tempDir, { recursive: true, force: true });
19
+ });
20
+ it('lists projects including empty ones', () => {
21
+ services.projectService.createProject('alpha');
22
+ const result = runProjectList({ services, json: false });
23
+ const names = result.projects.map((p) => p.name);
24
+ expect(names).toContain('inbox');
25
+ expect(names).toContain('alpha');
26
+ });
27
+ it('includes active and archived task counts', () => {
28
+ services.projectService.createProject('alpha');
29
+ const active = services.taskService.createTask({ title: 'Active', project: 'alpha' });
30
+ const archived = services.taskService.createTask({ title: 'Archived', project: 'alpha' });
31
+ services.taskService.archiveTask(archived.task_id);
32
+ const result = runProjectList({ services, json: false });
33
+ const alpha = result.projects.find((p) => p.name === 'alpha');
34
+ expect(alpha).toBeDefined();
35
+ expect(alpha?.task_count).toBe(2);
36
+ expect(alpha?.archived_task_count).toBe(1);
37
+ expect(alpha?.active_task_count).toBe(1);
38
+ });
39
+ });
40
+ //# sourceMappingURL=list.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.test.js","sourceRoot":"","sources":["../../../src/commands/project/list.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Command } from 'commander';
2
+ import { type Services } from '../../db.js';
3
+ export interface ProjectRenameResult {
4
+ old_name: string;
5
+ new_name: string;
6
+ }
7
+ export interface ProjectRenameOptions {
8
+ services: Services;
9
+ oldName: string;
10
+ newName: string;
11
+ json: boolean;
12
+ }
13
+ export declare function runProjectRename(options: ProjectRenameOptions): ProjectRenameResult;
14
+ export declare function createProjectRenameCommand(): Command;
15
+ //# sourceMappingURL=rename.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename.d.ts","sourceRoot":"","sources":["../../../src/commands/project/rename.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAInE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,oBAAoB,GAC5B,mBAAmB,CAiBrB;AAED,wBAAgB,0BAA0B,IAAI,OAAO,CAsBpD"}
@@ -0,0 +1,45 @@
1
+ import { Command } from 'commander';
2
+ import { resolveDbPath } from '../../config.js';
3
+ import { initializeDb, closeDb } from '../../db.js';
4
+ import { handleError } from '../../errors.js';
5
+ export function runProjectRename(options) {
6
+ const { services, oldName, newName, json } = options;
7
+ services.projectService.renameProject(oldName, newName);
8
+ const result = {
9
+ old_name: oldName,
10
+ new_name: newName,
11
+ };
12
+ if (json) {
13
+ console.log(JSON.stringify(result));
14
+ }
15
+ else {
16
+ console.log(`✓ Renamed project '${oldName}' to '${newName}'`);
17
+ }
18
+ return result;
19
+ }
20
+ export function createProjectRenameCommand() {
21
+ return new Command('rename')
22
+ .description('Rename a project')
23
+ .argument('<oldName>', 'Current project name')
24
+ .argument('<newName>', 'New project name')
25
+ .action(function (oldName, newName) {
26
+ const globalOpts = this.optsWithGlobals();
27
+ const dbPath = resolveDbPath(globalOpts.db);
28
+ const services = initializeDb(dbPath);
29
+ try {
30
+ runProjectRename({
31
+ services,
32
+ oldName,
33
+ newName,
34
+ json: globalOpts.json ?? false,
35
+ });
36
+ }
37
+ catch (e) {
38
+ handleError(e, globalOpts.json);
39
+ }
40
+ finally {
41
+ closeDb(services);
42
+ }
43
+ });
44
+ }
45
+ //# sourceMappingURL=rename.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename.js","sourceRoot":"","sources":["../../../src/commands/project/rename.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAiB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAe9C,MAAM,UAAU,gBAAgB,CAC9B,OAA6B;IAE7B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAErD,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAExD,MAAM,MAAM,GAAwB;QAClC,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,OAAO;KAClB,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,SAAS,OAAO,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,kBAAkB,CAAC;SAC/B,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;SAC7C,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;SACzC,MAAM,CAAC,UAAyB,OAAe,EAAE,OAAe;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAmB,CAAC;QAC3D,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,gBAAgB,CAAC;gBACf,QAAQ;gBACR,OAAO;gBACP,OAAO;gBACP,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,KAAK;aAC/B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rename.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename.test.d.ts","sourceRoot":"","sources":["../../../src/commands/project/rename.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ import os from 'os';
5
+ import { runProjectRename } from './rename.js';
6
+ import { initializeDb, closeDb } from '../../db.js';
7
+ import { ProjectAlreadyExistsError } from 'hzl-core/services/project-service.js';
8
+ describe('runProjectRename', () => {
9
+ let tempDir;
10
+ let dbPath;
11
+ let services;
12
+ beforeEach(() => {
13
+ tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'hzl-project-rename-test-'));
14
+ dbPath = path.join(tempDir, 'test.db');
15
+ services = initializeDb(dbPath);
16
+ });
17
+ afterEach(() => {
18
+ closeDb(services);
19
+ fs.rmSync(tempDir, { recursive: true, force: true });
20
+ });
21
+ it('renames a project', () => {
22
+ services.projectService.createProject('old');
23
+ const result = runProjectRename({ services, oldName: 'old', newName: 'new', json: false });
24
+ expect(result.old_name).toBe('old');
25
+ expect(result.new_name).toBe('new');
26
+ expect(services.projectService.getProject('old')).toBeNull();
27
+ expect(services.projectService.getProject('new')).not.toBeNull();
28
+ });
29
+ it('throws when target project already exists', () => {
30
+ services.projectService.createProject('old');
31
+ services.projectService.createProject('new');
32
+ expect(() => runProjectRename({ services, oldName: 'old', newName: 'new', json: false }))
33
+ .toThrow(ProjectAlreadyExistsError);
34
+ });
35
+ });
36
+ //# sourceMappingURL=rename.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename.test.js","sourceRoot":"","sources":["../../../src/commands/project/rename.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,OAAO,EAAiB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,OAAe,CAAC;IACpB,IAAI,MAAc,CAAC;IACnB,IAAI,QAAkB,CAAC;IAEvB,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC;QAC7E,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7C,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAE3F,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7D,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7C,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7C,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;aACtF,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { Command } from 'commander';
2
+ import { type Services } from '../../db.js';
3
+ export interface ProjectShowResult {
4
+ project: {
5
+ name: string;
6
+ description: string | null;
7
+ created_at: string;
8
+ is_protected: boolean;
9
+ };
10
+ statuses: {
11
+ backlog: number;
12
+ ready: number;
13
+ in_progress: number;
14
+ done: number;
15
+ archived: number;
16
+ };
17
+ }
18
+ export interface ProjectShowOptions {
19
+ services: Services;
20
+ name: string;
21
+ json: boolean;
22
+ }
23
+ export declare function runProjectShow(options: ProjectShowOptions): ProjectShowResult;
24
+ export declare function createProjectShowCommand(): Command;
25
+ //# sourceMappingURL=show.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/commands/project/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAInE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CAiE7E;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAgBlD"}
@@ -0,0 +1,77 @@
1
+ import { Command } from 'commander';
2
+ import { resolveDbPath } from '../../config.js';
3
+ import { initializeDb, closeDb } from '../../db.js';
4
+ import { CLIError, ExitCode, handleError } from '../../errors.js';
5
+ export function runProjectShow(options) {
6
+ const { services, name, json } = options;
7
+ const project = services.projectService.getProject(name);
8
+ if (!project) {
9
+ throw new CLIError(`Project not found: ${name}`, ExitCode.NotFound);
10
+ }
11
+ const row = services.db
12
+ .prepare(`
13
+ SELECT
14
+ SUM(CASE WHEN status = 'backlog' THEN 1 ELSE 0 END) as backlog,
15
+ SUM(CASE WHEN status = 'ready' THEN 1 ELSE 0 END) as ready,
16
+ SUM(CASE WHEN status = 'in_progress' THEN 1 ELSE 0 END) as in_progress,
17
+ SUM(CASE WHEN status = 'done' THEN 1 ELSE 0 END) as done,
18
+ SUM(CASE WHEN status = 'archived' THEN 1 ELSE 0 END) as archived
19
+ FROM tasks_current
20
+ WHERE project = ?
21
+ `)
22
+ .get(name);
23
+ const statuses = {
24
+ backlog: row?.backlog ?? 0,
25
+ ready: row?.ready ?? 0,
26
+ in_progress: row?.in_progress ?? 0,
27
+ done: row?.done ?? 0,
28
+ archived: row?.archived ?? 0,
29
+ };
30
+ const result = {
31
+ project: {
32
+ name: project.name,
33
+ description: project.description,
34
+ created_at: project.created_at,
35
+ is_protected: project.is_protected,
36
+ },
37
+ statuses,
38
+ };
39
+ if (json) {
40
+ console.log(JSON.stringify(result));
41
+ }
42
+ else {
43
+ console.log(`${project.name}`);
44
+ if (project.description) {
45
+ console.log(`Description: ${project.description}`);
46
+ }
47
+ console.log(`Created: ${project.created_at}`);
48
+ console.log(`Protected: ${project.is_protected ? 'yes' : 'no'}`);
49
+ console.log('Status breakdown:');
50
+ console.log(` backlog: ${statuses.backlog}`);
51
+ console.log(` ready: ${statuses.ready}`);
52
+ console.log(` in_progress: ${statuses.in_progress}`);
53
+ console.log(` done: ${statuses.done}`);
54
+ console.log(` archived: ${statuses.archived}`);
55
+ }
56
+ return result;
57
+ }
58
+ export function createProjectShowCommand() {
59
+ return new Command('show')
60
+ .description('Show project details')
61
+ .argument('<name>', 'Project name')
62
+ .action(function (name) {
63
+ const globalOpts = this.optsWithGlobals();
64
+ const dbPath = resolveDbPath(globalOpts.db);
65
+ const services = initializeDb(dbPath);
66
+ try {
67
+ runProjectShow({ services, name, json: globalOpts.json ?? false });
68
+ }
69
+ catch (e) {
70
+ handleError(e, globalOpts.json);
71
+ }
72
+ finally {
73
+ closeDb(services);
74
+ }
75
+ });
76
+ }
77
+ //# sourceMappingURL=show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/commands/project/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAiB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAyBlE,MAAM,UAAU,cAAc,CAAC,OAA2B;IACxD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEzC,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,QAAQ,CAAC,sBAAsB,IAAI,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE;SACpB,OAAO,CACN;;;;;;;;;KASD,CACA;SACA,GAAG,CAAC,IAAI,CAMV,CAAC;IAEF,MAAM,QAAQ,GAAG;QACf,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,CAAC;QAC1B,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QACtB,WAAW,EAAE,GAAG,EAAE,WAAW,IAAI,CAAC;QAClC,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC;QACpB,QAAQ,EAAE,GAAG,EAAE,QAAQ,IAAI,CAAC;KAC7B,CAAC;IAEF,MAAM,MAAM,GAAsB;QAChC,OAAO,EAAE;YACP,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC;QACD,QAAQ;KACT,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,sBAAsB,CAAC;SACnC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;SAClC,MAAM,CAAC,UAAyB,IAAY;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAmB,CAAC;QAC3D,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.test.d.ts","sourceRoot":"","sources":["../../../src/commands/project/show.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ import os from 'os';
5
+ import { runProjectShow } from './show.js';
6
+ import { initializeDb, closeDb } from '../../db.js';
7
+ import { TaskStatus } from 'hzl-core/events/types.js';
8
+ describe('runProjectShow', () => {
9
+ let tempDir;
10
+ let dbPath;
11
+ let services;
12
+ beforeEach(() => {
13
+ tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'hzl-project-show-test-'));
14
+ dbPath = path.join(tempDir, 'test.db');
15
+ services = initializeDb(dbPath);
16
+ });
17
+ afterEach(() => {
18
+ closeDb(services);
19
+ fs.rmSync(tempDir, { recursive: true, force: true });
20
+ });
21
+ it('shows project details and task status breakdown', () => {
22
+ services.projectService.createProject('alpha', { description: 'Alpha project' });
23
+ const backlog = services.taskService.createTask({ title: 'Backlog', project: 'alpha' });
24
+ const ready = services.taskService.createTask({ title: 'Ready', project: 'alpha' });
25
+ const inProgress = services.taskService.createTask({ title: 'In Progress', project: 'alpha' });
26
+ const done = services.taskService.createTask({ title: 'Done', project: 'alpha' });
27
+ const archived = services.taskService.createTask({ title: 'Archived', project: 'alpha' });
28
+ services.taskService.setStatus(ready.task_id, TaskStatus.Ready);
29
+ services.taskService.setStatus(inProgress.task_id, TaskStatus.Ready);
30
+ services.taskService.claimTask(inProgress.task_id);
31
+ services.taskService.setStatus(done.task_id, TaskStatus.Ready);
32
+ services.taskService.claimTask(done.task_id);
33
+ services.taskService.completeTask(done.task_id);
34
+ services.taskService.archiveTask(archived.task_id);
35
+ const result = runProjectShow({ services, name: 'alpha', json: false });
36
+ expect(result.project.name).toBe('alpha');
37
+ expect(result.project.description).toBe('Alpha project');
38
+ expect(result.project.is_protected).toBe(false);
39
+ expect(result.statuses.backlog).toBe(1);
40
+ expect(result.statuses.ready).toBe(1);
41
+ expect(result.statuses.in_progress).toBe(1);
42
+ expect(result.statuses.done).toBe(1);
43
+ expect(result.statuses.archived).toBe(1);
44
+ });
45
+ });
46
+ //# sourceMappingURL=show.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.test.js","sourceRoot":"","sources":["../../../src/commands/project/show.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sample-project.d.ts","sourceRoot":"","sources":["../../src/commands/sample-project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AA+ED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,yBAAyB,CAwC5B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,wBAAwB,CAuB3B;AAED,wBAAgB,0BAA0B,IAAI,OAAO,CAmCpD"}
1
+ {"version":3,"file":"sample-project.d.ts","sourceRoot":"","sources":["../../src/commands/sample-project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAoFD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,yBAAyB,CAwC5B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,wBAAwB,CAuB3B;AAED,wBAAgB,0BAA0B,IAAI,OAAO,CAmCpD"}
@@ -6,6 +6,10 @@ import { resolveDbPath } from '../config.js';
6
6
  import { initializeDb, closeDb } from '../db.js';
7
7
  import { handleError } from '../errors.js';
8
8
  function createSampleProject(services) {
9
+ const existingProject = services.projectService.getProject(SAMPLE_PROJECT_NAME);
10
+ if (!existingProject) {
11
+ services.projectService.createProject(SAMPLE_PROJECT_NAME);
12
+ }
9
13
  const taskIds = [];
10
14
  for (const spec of SAMPLE_TASKS) {
11
15
  const dependsOn = spec.depends_on_indices
@@ -1 +1 @@
1
- {"version":3,"file":"sample-project.js","sourceRoot":"","sources":["../../src/commands/sample-project.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,YAAY,GACb,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,OAAO,EAAiB,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAe3C,SAAS,mBAAmB,CAAC,QAAkB;IAC7C,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB;YACvC,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC/B,MAAM,CAAC,OAAO,CAAyB,CAAC;QAE3C,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC;YAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,mBAAmB;YAC5B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;YAC5B,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7C,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5D,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3B,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1C,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAkB;IACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE;SACzB,OAAO,CAAC,qDAAqD,CAAC;SAC9D,GAAG,CAAC,mBAAmB,CAA0B,CAAC;IAErD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEnC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEvD,QAAQ,CAAC,EAAE;SACR,OAAO,CAAC,mDAAmD,YAAY,0BAA0B,YAAY,GAAG,CAAC;SACjH,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE;SACR,OAAO,CAAC,2CAA2C,YAAY,GAAG,CAAC;SACnE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IACnB,QAAQ,CAAC,EAAE;SACR,OAAO,CAAC,+CAA+C,YAAY,GAAG,CAAC;SACvE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IACnB,QAAQ,CAAC,EAAE;SACR,OAAO,CAAC,kDAAkD,YAAY,GAAG,CAAC;SAC1E,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IACnB,QAAQ,CAAC,EAAE;SACR,OAAO,CAAC,6CAA6C,YAAY,GAAG,CAAC;SACrE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IACnB,QAAQ,CAAC,EAAE;SACR,OAAO,CAAC,+CAA+C,YAAY,GAAG,CAAC;SACvE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAEnB,OAAO,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAGtC;IACC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE;aACzB,OAAO,CAAC,+DAA+D,CAAC;aACxE,GAAG,CAAC,mBAAmB,CAAsB,CAAC;QAEjD,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAA8B;gBACxC,OAAO,EAAE,mBAAmB;gBAC5B,YAAY,EAAE,CAAC;gBACf,OAAO,EAAE,IAAI;aACd,CAAC;YACF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,qBAAqB,mBAAmB,yBAAyB,QAAQ,CAAC,KAAK,iDAAiD,CACjI,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,MAAM,GAA8B;YACxC,OAAO,EAAE,mBAAmB;YAC5B,YAAY;YACZ,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,6BAA6B,mBAAmB,UAAU,YAAY,QAAQ,CAAC,CAAC;QAC9F,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAGrC;IACC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,MAAM,GAA6B;YACvC,OAAO,EAAE,mBAAmB;YAC5B,OAAO;YACP,OAAO;SACR,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,2BAA2B,mBAAmB,cAAc,OAAO,mBAAmB,OAAO,QAAQ,CACtG,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,gBAAgB,CAAC;SAC1C,WAAW,CAAC,4CAA4C,CAAC,CAAC;IAE7D,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAmB,CAAC;QAC3D,IAAI,CAAC;YACH,sBAAsB,CAAC;gBACrB,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,KAAK;aAC/B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAmB,CAAC;QAC3D,IAAI,CAAC;YACH,qBAAqB,CAAC;gBACpB,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,KAAK;aAC/B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"sample-project.js","sourceRoot":"","sources":["../../src/commands/sample-project.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,8 @@ describe('runStats', () => {
32
32
  expect(Object.values(result.by_status).reduce((a, b) => a + b, 0)).toBe(3);
33
33
  });
34
34
  it('counts tasks by project', () => {
35
+ services.projectService.createProject('project-a');
36
+ services.projectService.createProject('project-b');
35
37
  services.taskService.createTask({ title: 'Task A', project: 'project-a' });
36
38
  services.taskService.createTask({ title: 'Task B', project: 'project-a' });
37
39
  services.taskService.createTask({ title: 'Task C', project: 'project-b' });
@@ -1 +1 @@
1
- {"version":3,"file":"stats.test.js","sourceRoot":"","sources":["../../src/commands/stats.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats.test.js","sourceRoot":"","sources":["../../src/commands/stats.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Command } from 'commander';
2
- import { type Services } from '../db.js';
2
+ import { type Services } from '../../db.js';
3
3
  export interface AddDepResult {
4
4
  task_id: string;
5
5
  depends_on_id: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-dep.d.ts","sourceRoot":"","sources":["../../../src/commands/task/add-dep.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKnE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;CAChB;AA2BD,wBAAgB,SAAS,CAAC,OAAO,EAAE;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,YAAY,CAwCf;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAiB7C"}
@@ -1,8 +1,8 @@
1
1
  // packages/hzl-cli/src/commands/add-dep.ts
2
2
  import { Command } from 'commander';
3
- import { resolveDbPath } from '../config.js';
4
- import { initializeDb, closeDb } from '../db.js';
5
- import { handleError, CLIError, ExitCode } from '../errors.js';
3
+ import { resolveDbPath } from '../../config.js';
4
+ import { initializeDb, closeDb } from '../../db.js';
5
+ import { handleError, CLIError, ExitCode } from '../../errors.js';
6
6
  import { EventType } from 'hzl-core/events/types.js';
7
7
  /**
8
8
  * Check if adding taskId -> dependsOnId would create a cycle.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-dep.js","sourceRoot":"","sources":["../../../src/commands/task/add-dep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-dep.test.d.ts","sourceRoot":"","sources":["../../../src/commands/task/add-dep.test.ts"],"names":[],"mappings":""}
@@ -4,7 +4,7 @@ import fs from 'fs';
4
4
  import path from 'path';
5
5
  import os from 'os';
6
6
  import { runAddDep } from './add-dep.js';
7
- import { initializeDb, closeDb } from '../db.js';
7
+ import { initializeDb, closeDb } from '../../db.js';
8
8
  describe('runAddDep', () => {
9
9
  let tempDir;
10
10
  let dbPath;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-dep.test.js","sourceRoot":"","sources":["../../../src/commands/task/add-dep.test.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAiB,MAAM,aAAa,CAAC;AAEnE,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,OAAe,CAAC;IACpB,IAAI,MAAc,CAAC;IACnB,IAAI,QAAkB,CAAC;IAEvB,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACtE,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACrF,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAErF,MAAM,MAAM,GAAG,SAAS,CAAC;YACvB,QAAQ;YACR,MAAM,EAAE,KAAK,CAAC,OAAO;YACrB,WAAW,EAAE,KAAK,CAAC,OAAO;YAC1B,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACrF,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAElH,sFAAsF;QACtF,kIAAkI;QAClI,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;YACrB,QAAQ;YACR,MAAM,EAAE,KAAK,CAAC,OAAO;YACrB,WAAW,EAAE,KAAK,CAAC,OAAO;YAC1B,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Command } from 'commander';
2
- import { type Services } from '../db.js';
2
+ import { type Services } from '../../db.js';
3
3
  export interface AddResult {
4
4
  task_id: string;
5
5
  title: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/task/add.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAInE,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CA4BrD;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CA8B1C"}