hackmate-cli 1.0.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 (314) hide show
  1. package/README.md +420 -0
  2. package/dist/api.d.ts +3 -0
  3. package/dist/api.d.ts.map +1 -0
  4. package/dist/api.js +14 -0
  5. package/dist/api.js.map +1 -0
  6. package/dist/cli.d.ts +3 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +172 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/commands/ComingSoon.d.ts +7 -0
  11. package/dist/commands/ComingSoon.d.ts.map +1 -0
  12. package/dist/commands/ComingSoon.js +4 -0
  13. package/dist/commands/ComingSoon.js.map +1 -0
  14. package/dist/commands/Config.d.ts +8 -0
  15. package/dist/commands/Config.d.ts.map +1 -0
  16. package/dist/commands/Config.js +42 -0
  17. package/dist/commands/Config.js.map +1 -0
  18. package/dist/commands/DataExport.d.ts +2 -0
  19. package/dist/commands/DataExport.d.ts.map +1 -0
  20. package/dist/commands/DataExport.js +49 -0
  21. package/dist/commands/DataExport.js.map +1 -0
  22. package/dist/commands/Discover.d.ts +2 -0
  23. package/dist/commands/Discover.d.ts.map +1 -0
  24. package/dist/commands/Discover.js +93 -0
  25. package/dist/commands/Discover.js.map +1 -0
  26. package/dist/commands/MatchList.d.ts +2 -0
  27. package/dist/commands/MatchList.d.ts.map +1 -0
  28. package/dist/commands/MatchList.js +118 -0
  29. package/dist/commands/MatchList.js.map +1 -0
  30. package/dist/commands/Presence.d.ts +7 -0
  31. package/dist/commands/Presence.d.ts.map +1 -0
  32. package/dist/commands/Presence.js +52 -0
  33. package/dist/commands/Presence.js.map +1 -0
  34. package/dist/commands/Privacy.d.ts +2 -0
  35. package/dist/commands/Privacy.d.ts.map +1 -0
  36. package/dist/commands/Privacy.js +38 -0
  37. package/dist/commands/Privacy.js.map +1 -0
  38. package/dist/commands/Settings.d.ts +2 -0
  39. package/dist/commands/Settings.d.ts.map +1 -0
  40. package/dist/commands/Settings.js +38 -0
  41. package/dist/commands/Settings.js.map +1 -0
  42. package/dist/commands/Stats.d.ts +2 -0
  43. package/dist/commands/Stats.d.ts.map +1 -0
  44. package/dist/commands/Stats.js +38 -0
  45. package/dist/commands/Stats.js.map +1 -0
  46. package/dist/commands/admin/admin.logic.d.ts +12 -0
  47. package/dist/commands/admin/admin.logic.d.ts.map +1 -0
  48. package/dist/commands/admin/admin.logic.js +41 -0
  49. package/dist/commands/admin/admin.logic.js.map +1 -0
  50. package/dist/commands/admin/admin.screen.d.ts +10 -0
  51. package/dist/commands/admin/admin.screen.d.ts.map +1 -0
  52. package/dist/commands/admin/admin.screen.js +19 -0
  53. package/dist/commands/admin/admin.screen.js.map +1 -0
  54. package/dist/commands/admin/index.d.ts +8 -0
  55. package/dist/commands/admin/index.d.ts.map +1 -0
  56. package/dist/commands/admin/index.js +8 -0
  57. package/dist/commands/admin/index.js.map +1 -0
  58. package/dist/commands/auth/Logout.d.ts +2 -0
  59. package/dist/commands/auth/Logout.d.ts.map +1 -0
  60. package/dist/commands/auth/Logout.js +15 -0
  61. package/dist/commands/auth/Logout.js.map +1 -0
  62. package/dist/commands/auth/Verify.d.ts +2 -0
  63. package/dist/commands/auth/Verify.d.ts.map +1 -0
  64. package/dist/commands/auth/Verify.js +16 -0
  65. package/dist/commands/auth/Verify.js.map +1 -0
  66. package/dist/commands/auth/auth.logic.d.ts +31 -0
  67. package/dist/commands/auth/auth.logic.d.ts.map +1 -0
  68. package/dist/commands/auth/auth.logic.js +147 -0
  69. package/dist/commands/auth/auth.logic.js.map +1 -0
  70. package/dist/commands/auth/index.d.ts +3 -0
  71. package/dist/commands/auth/index.d.ts.map +1 -0
  72. package/dist/commands/auth/index.js +17 -0
  73. package/dist/commands/auth/index.js.map +1 -0
  74. package/dist/commands/auth/login.screen.d.ts +15 -0
  75. package/dist/commands/auth/login.screen.d.ts.map +1 -0
  76. package/dist/commands/auth/login.screen.js +10 -0
  77. package/dist/commands/auth/login.screen.js.map +1 -0
  78. package/dist/commands/auth/signup.screen.d.ts +23 -0
  79. package/dist/commands/auth/signup.screen.d.ts.map +1 -0
  80. package/dist/commands/auth/signup.screen.js +13 -0
  81. package/dist/commands/auth/signup.screen.js.map +1 -0
  82. package/dist/commands/auth/verify.logic.d.ts +11 -0
  83. package/dist/commands/auth/verify.logic.d.ts.map +1 -0
  84. package/dist/commands/auth/verify.logic.js +56 -0
  85. package/dist/commands/auth/verify.logic.js.map +1 -0
  86. package/dist/commands/chat/ChatList.d.ts +2 -0
  87. package/dist/commands/chat/ChatList.d.ts.map +1 -0
  88. package/dist/commands/chat/ChatList.js +63 -0
  89. package/dist/commands/chat/ChatList.js.map +1 -0
  90. package/dist/commands/chat/chat.logic.d.ts +15 -0
  91. package/dist/commands/chat/chat.logic.d.ts.map +1 -0
  92. package/dist/commands/chat/chat.logic.js +139 -0
  93. package/dist/commands/chat/chat.logic.js.map +1 -0
  94. package/dist/commands/chat/chat.screen.d.ts +12 -0
  95. package/dist/commands/chat/chat.screen.d.ts.map +1 -0
  96. package/dist/commands/chat/chat.screen.js +12 -0
  97. package/dist/commands/chat/chat.screen.js.map +1 -0
  98. package/dist/commands/chat/index.d.ts +8 -0
  99. package/dist/commands/chat/index.d.ts.map +1 -0
  100. package/dist/commands/chat/index.js +9 -0
  101. package/dist/commands/chat/index.js.map +1 -0
  102. package/dist/commands/group/group.logic.d.ts +26 -0
  103. package/dist/commands/group/group.logic.d.ts.map +1 -0
  104. package/dist/commands/group/group.logic.js +73 -0
  105. package/dist/commands/group/group.logic.js.map +1 -0
  106. package/dist/commands/group/group.screen.d.ts +19 -0
  107. package/dist/commands/group/group.screen.d.ts.map +1 -0
  108. package/dist/commands/group/group.screen.js +22 -0
  109. package/dist/commands/group/group.screen.js.map +1 -0
  110. package/dist/commands/group/index.d.ts +9 -0
  111. package/dist/commands/group/index.d.ts.map +1 -0
  112. package/dist/commands/group/index.js +8 -0
  113. package/dist/commands/group/index.js.map +1 -0
  114. package/dist/commands/network/index.d.ts +8 -0
  115. package/dist/commands/network/index.d.ts.map +1 -0
  116. package/dist/commands/network/index.js +8 -0
  117. package/dist/commands/network/index.js.map +1 -0
  118. package/dist/commands/network/network.logic.d.ts +12 -0
  119. package/dist/commands/network/network.logic.d.ts.map +1 -0
  120. package/dist/commands/network/network.logic.js +69 -0
  121. package/dist/commands/network/network.logic.js.map +1 -0
  122. package/dist/commands/network/network.screen.d.ts +10 -0
  123. package/dist/commands/network/network.screen.d.ts.map +1 -0
  124. package/dist/commands/network/network.screen.js +17 -0
  125. package/dist/commands/network/network.screen.js.map +1 -0
  126. package/dist/commands/notification/index.d.ts +7 -0
  127. package/dist/commands/notification/index.d.ts.map +1 -0
  128. package/dist/commands/notification/index.js +8 -0
  129. package/dist/commands/notification/index.js.map +1 -0
  130. package/dist/commands/notification/notification.logic.d.ts +11 -0
  131. package/dist/commands/notification/notification.logic.d.ts.map +1 -0
  132. package/dist/commands/notification/notification.logic.js +33 -0
  133. package/dist/commands/notification/notification.logic.js.map +1 -0
  134. package/dist/commands/notification/notification.screen.d.ts +10 -0
  135. package/dist/commands/notification/notification.screen.d.ts.map +1 -0
  136. package/dist/commands/notification/notification.screen.js +13 -0
  137. package/dist/commands/notification/notification.screen.js.map +1 -0
  138. package/dist/commands/profile/index.d.ts +6 -0
  139. package/dist/commands/profile/index.d.ts.map +1 -0
  140. package/dist/commands/profile/index.js +14 -0
  141. package/dist/commands/profile/index.js.map +1 -0
  142. package/dist/commands/profile/profile-edit.screen.d.ts +12 -0
  143. package/dist/commands/profile/profile-edit.screen.d.ts.map +1 -0
  144. package/dist/commands/profile/profile-edit.screen.js +66 -0
  145. package/dist/commands/profile/profile-edit.screen.js.map +1 -0
  146. package/dist/commands/profile/profile-view.screen.d.ts +10 -0
  147. package/dist/commands/profile/profile-view.screen.d.ts.map +1 -0
  148. package/dist/commands/profile/profile-view.screen.js +12 -0
  149. package/dist/commands/profile/profile-view.screen.js.map +1 -0
  150. package/dist/commands/profile/profile.logic.d.ts +42 -0
  151. package/dist/commands/profile/profile.logic.d.ts.map +1 -0
  152. package/dist/commands/profile/profile.logic.js +74 -0
  153. package/dist/commands/profile/profile.logic.js.map +1 -0
  154. package/dist/commands/project/index.d.ts +9 -0
  155. package/dist/commands/project/index.d.ts.map +1 -0
  156. package/dist/commands/project/index.js +8 -0
  157. package/dist/commands/project/index.js.map +1 -0
  158. package/dist/commands/project/project.logic.d.ts +29 -0
  159. package/dist/commands/project/project.logic.d.ts.map +1 -0
  160. package/dist/commands/project/project.logic.js +92 -0
  161. package/dist/commands/project/project.logic.js.map +1 -0
  162. package/dist/commands/project/project.screen.d.ts +22 -0
  163. package/dist/commands/project/project.screen.d.ts.map +1 -0
  164. package/dist/commands/project/project.screen.js +27 -0
  165. package/dist/commands/project/project.screen.js.map +1 -0
  166. package/dist/commands/stubs/index.d.ts +9 -0
  167. package/dist/commands/stubs/index.d.ts.map +1 -0
  168. package/dist/commands/stubs/index.js +24 -0
  169. package/dist/commands/stubs/index.js.map +1 -0
  170. package/dist/config.d.ts +14 -0
  171. package/dist/config.d.ts.map +1 -0
  172. package/dist/config.js +29 -0
  173. package/dist/config.js.map +1 -0
  174. package/dist/context/AuthContext.d.ts +18 -0
  175. package/dist/context/AuthContext.d.ts.map +1 -0
  176. package/dist/context/AuthContext.js +49 -0
  177. package/dist/context/AuthContext.js.map +1 -0
  178. package/dist/context/SocketContext.d.ts +12 -0
  179. package/dist/context/SocketContext.d.ts.map +1 -0
  180. package/dist/context/SocketContext.js +44 -0
  181. package/dist/context/SocketContext.js.map +1 -0
  182. package/dist/context/index.d.ts +7 -0
  183. package/dist/context/index.d.ts.map +1 -0
  184. package/dist/context/index.js +9 -0
  185. package/dist/context/index.js.map +1 -0
  186. package/dist/features/admin/components/admin.screen.d.ts +10 -0
  187. package/dist/features/admin/components/admin.screen.d.ts.map +1 -0
  188. package/dist/features/admin/components/admin.screen.js +19 -0
  189. package/dist/features/admin/components/admin.screen.js.map +1 -0
  190. package/dist/features/admin/components/index.d.ts +8 -0
  191. package/dist/features/admin/components/index.d.ts.map +1 -0
  192. package/dist/features/admin/components/index.js +8 -0
  193. package/dist/features/admin/components/index.js.map +1 -0
  194. package/dist/features/admin/hooks/useAdmin.d.ts +12 -0
  195. package/dist/features/admin/hooks/useAdmin.d.ts.map +1 -0
  196. package/dist/features/admin/hooks/useAdmin.js +46 -0
  197. package/dist/features/admin/hooks/useAdmin.js.map +1 -0
  198. package/dist/features/admin/index.d.ts +3 -0
  199. package/dist/features/admin/index.d.ts.map +1 -0
  200. package/dist/features/admin/index.js +3 -0
  201. package/dist/features/admin/index.js.map +1 -0
  202. package/dist/features/chat/components/ChatList.d.ts +2 -0
  203. package/dist/features/chat/components/ChatList.d.ts.map +1 -0
  204. package/dist/features/chat/components/ChatList.js +63 -0
  205. package/dist/features/chat/components/ChatList.js.map +1 -0
  206. package/dist/features/chat/components/chat.screen.d.ts +12 -0
  207. package/dist/features/chat/components/chat.screen.d.ts.map +1 -0
  208. package/dist/features/chat/components/chat.screen.js +12 -0
  209. package/dist/features/chat/components/chat.screen.js.map +1 -0
  210. package/dist/features/chat/components/index.d.ts +9 -0
  211. package/dist/features/chat/components/index.d.ts.map +1 -0
  212. package/dist/features/chat/components/index.js +9 -0
  213. package/dist/features/chat/components/index.js.map +1 -0
  214. package/dist/features/chat/hooks/useChat.d.ts +15 -0
  215. package/dist/features/chat/hooks/useChat.d.ts.map +1 -0
  216. package/dist/features/chat/hooks/useChat.js +150 -0
  217. package/dist/features/chat/hooks/useChat.js.map +1 -0
  218. package/dist/features/chat/index.d.ts +4 -0
  219. package/dist/features/chat/index.d.ts.map +1 -0
  220. package/dist/features/chat/index.js +4 -0
  221. package/dist/features/chat/index.js.map +1 -0
  222. package/dist/features/group/components/group.screen.d.ts +19 -0
  223. package/dist/features/group/components/group.screen.d.ts.map +1 -0
  224. package/dist/features/group/components/group.screen.js +22 -0
  225. package/dist/features/group/components/group.screen.js.map +1 -0
  226. package/dist/features/group/components/index.d.ts +9 -0
  227. package/dist/features/group/components/index.d.ts.map +1 -0
  228. package/dist/features/group/components/index.js +8 -0
  229. package/dist/features/group/components/index.js.map +1 -0
  230. package/dist/features/group/hooks/useGroup.d.ts +26 -0
  231. package/dist/features/group/hooks/useGroup.d.ts.map +1 -0
  232. package/dist/features/group/hooks/useGroup.js +78 -0
  233. package/dist/features/group/hooks/useGroup.js.map +1 -0
  234. package/dist/features/group/index.d.ts +3 -0
  235. package/dist/features/group/index.d.ts.map +1 -0
  236. package/dist/features/group/index.js +3 -0
  237. package/dist/features/group/index.js.map +1 -0
  238. package/dist/features/network/components/UnfriendByUsername.d.ts +7 -0
  239. package/dist/features/network/components/UnfriendByUsername.d.ts.map +1 -0
  240. package/dist/features/network/components/UnfriendByUsername.js +40 -0
  241. package/dist/features/network/components/UnfriendByUsername.js.map +1 -0
  242. package/dist/features/network/components/index.d.ts +8 -0
  243. package/dist/features/network/components/index.d.ts.map +1 -0
  244. package/dist/features/network/components/index.js +9 -0
  245. package/dist/features/network/components/index.js.map +1 -0
  246. package/dist/features/network/components/network.screen.d.ts +10 -0
  247. package/dist/features/network/components/network.screen.d.ts.map +1 -0
  248. package/dist/features/network/components/network.screen.js +17 -0
  249. package/dist/features/network/components/network.screen.js.map +1 -0
  250. package/dist/features/network/hooks/useNetwork.d.ts +12 -0
  251. package/dist/features/network/hooks/useNetwork.d.ts.map +1 -0
  252. package/dist/features/network/hooks/useNetwork.js +74 -0
  253. package/dist/features/network/hooks/useNetwork.js.map +1 -0
  254. package/dist/features/network/hooks/useUnfriend.d.ts +7 -0
  255. package/dist/features/network/hooks/useUnfriend.d.ts.map +1 -0
  256. package/dist/features/network/hooks/useUnfriend.js +24 -0
  257. package/dist/features/network/hooks/useUnfriend.js.map +1 -0
  258. package/dist/features/network/index.d.ts +4 -0
  259. package/dist/features/network/index.d.ts.map +1 -0
  260. package/dist/features/network/index.js +4 -0
  261. package/dist/features/network/index.js.map +1 -0
  262. package/dist/features/notification/components/index.d.ts +7 -0
  263. package/dist/features/notification/components/index.d.ts.map +1 -0
  264. package/dist/features/notification/components/index.js +8 -0
  265. package/dist/features/notification/components/index.js.map +1 -0
  266. package/dist/features/notification/components/notification.screen.d.ts +10 -0
  267. package/dist/features/notification/components/notification.screen.d.ts.map +1 -0
  268. package/dist/features/notification/components/notification.screen.js +13 -0
  269. package/dist/features/notification/components/notification.screen.js.map +1 -0
  270. package/dist/features/notification/hooks/useNotification.d.ts +11 -0
  271. package/dist/features/notification/hooks/useNotification.d.ts.map +1 -0
  272. package/dist/features/notification/hooks/useNotification.js +38 -0
  273. package/dist/features/notification/hooks/useNotification.js.map +1 -0
  274. package/dist/features/notification/index.d.ts +3 -0
  275. package/dist/features/notification/index.d.ts.map +1 -0
  276. package/dist/features/notification/index.js +3 -0
  277. package/dist/features/notification/index.js.map +1 -0
  278. package/dist/features/profile/components/index.d.ts +6 -0
  279. package/dist/features/profile/components/index.d.ts.map +1 -0
  280. package/dist/features/profile/components/index.js +13 -0
  281. package/dist/features/profile/components/index.js.map +1 -0
  282. package/dist/features/profile/components/profile-edit.screen.d.ts +14 -0
  283. package/dist/features/profile/components/profile-edit.screen.d.ts.map +1 -0
  284. package/dist/features/profile/components/profile-edit.screen.js +182 -0
  285. package/dist/features/profile/components/profile-edit.screen.js.map +1 -0
  286. package/dist/features/profile/components/profile-view.screen.d.ts +10 -0
  287. package/dist/features/profile/components/profile-view.screen.d.ts.map +1 -0
  288. package/dist/features/profile/components/profile-view.screen.js +13 -0
  289. package/dist/features/profile/components/profile-view.screen.js.map +1 -0
  290. package/dist/features/profile/hooks/useProfile.d.ts +17 -0
  291. package/dist/features/profile/hooks/useProfile.d.ts.map +1 -0
  292. package/dist/features/profile/hooks/useProfile.js +148 -0
  293. package/dist/features/profile/hooks/useProfile.js.map +1 -0
  294. package/dist/features/profile/index.d.ts +3 -0
  295. package/dist/features/profile/index.d.ts.map +1 -0
  296. package/dist/features/profile/index.js +3 -0
  297. package/dist/features/profile/index.js.map +1 -0
  298. package/dist/features/project/components/index.d.ts +9 -0
  299. package/dist/features/project/components/index.d.ts.map +1 -0
  300. package/dist/features/project/components/index.js +8 -0
  301. package/dist/features/project/components/index.js.map +1 -0
  302. package/dist/features/project/components/project.screen.d.ts +22 -0
  303. package/dist/features/project/components/project.screen.d.ts.map +1 -0
  304. package/dist/features/project/components/project.screen.js +27 -0
  305. package/dist/features/project/components/project.screen.js.map +1 -0
  306. package/dist/features/project/hooks/useProject.d.ts +29 -0
  307. package/dist/features/project/hooks/useProject.d.ts.map +1 -0
  308. package/dist/features/project/hooks/useProject.js +97 -0
  309. package/dist/features/project/hooks/useProject.js.map +1 -0
  310. package/dist/features/project/index.d.ts +3 -0
  311. package/dist/features/project/index.d.ts.map +1 -0
  312. package/dist/features/project/index.js +3 -0
  313. package/dist/features/project/index.js.map +1 -0
  314. package/package.json +58 -0
package/README.md ADDED
@@ -0,0 +1,420 @@
1
+ # 🚀 HackMate CLI
2
+
3
+ > **Terminal-based social network & dating platform for developers and hackers**
4
+
5
+ [![npm version](https://img.shields.io/npm/v/hackmate-cli.svg)](https://www.npmjs.com/package/hackmate-cli)
6
+ [![Node.js Version](https://img.shields.io/badge/node-%3E%3D20-brightgreen)](https://nodejs.org)
7
+ [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
8
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue)](https://www.typescriptlang.org/)
9
+
10
+ Build connections, find collaborators, and discover talent—all from your terminal.
11
+
12
+ ---
13
+
14
+ ## ✨ Features
15
+
16
+ | Feature | Description |
17
+ |---------|-------------|
18
+ | 🎨 **Beautiful TUI** | Built with React + Ink for a modern terminal experience |
19
+ | 🔐 **Complete Auth** | Signup → Email verification → Profile setup |
20
+ | 💕 **Smart Matching** | Discover developers based on compatibility score & interests |
21
+ | 💬 **Real-time Chat** | DMs and group messaging powered by Socket.IO |
22
+ | 🤝 **Networking** | Connect with developers, send/accept friend requests |
23
+ | 🛠️ **Projects** | Browse open projects, apply to collaborations |
24
+ | 👥 **Communities** | Join groups based on tech stacks and interests |
25
+ | 🔔 **Notifications** | Get alerts for messages, requests, and matches |
26
+ | 📊 **User Stats** | View profile views, reputation, and engagement |
27
+ | ⚡ **Admin Tools** | Manage users and content (admin-only) |
28
+
29
+ ---
30
+
31
+ ## 🚀 Quick Start
32
+
33
+ ### 1. Install
34
+
35
+ ```bash
36
+ npm install -g hackmate-cli
37
+ ```
38
+
39
+ ### 2. Configure Server (auto)
40
+
41
+ The CLI now defaults to the hosted server:
42
+ `https://hackmateserver-huhcaec4g7eua0hf.centralindia-01.azurewebsites.net`
43
+
44
+ If you need a different backend, override anytime:
45
+
46
+ ```bash
47
+ hackmate config set https://your-server.example.com
48
+ # or per-shell
49
+ export API_URL=https://your-server.example.com
50
+ ```
51
+
52
+ ### 3. Sign Up
53
+
54
+ ```bash
55
+ hackmate auth signup
56
+ ```
57
+
58
+ Follow the prompts to:
59
+ - Create your account
60
+ - Verify your email (OTP sent to console if SMTP not configured)
61
+ - Build your profile (bio, tech stack, interests, etc.)
62
+
63
+ ### 4. Start Exploring
64
+
65
+ ```bash
66
+ # Discover potential matches/collaborators
67
+ hackmate discover
68
+
69
+ # View your profile
70
+ hackmate profile view
71
+
72
+ # Find projects
73
+ hackmate project list
74
+ ```
75
+
76
+ ---
77
+
78
+ ## 📖 Command Reference
79
+
80
+ ### 🔐 Authentication
81
+
82
+ ```bash
83
+ hackmate auth signup # Create new account
84
+ hackmate auth login # Login to existing account
85
+ hackmate auth logout # Logout
86
+ hackmate auth whoami # Check current user
87
+ hackmate auth verify # Verify email with OTP
88
+ ```
89
+
90
+ ### 👤 Profile
91
+
92
+ ```bash
93
+ hackmate profile view [username] # View profile (yours or another user)
94
+ hackmate profile edit # Edit your profile
95
+ ```
96
+
97
+ ### 💕 Matching & Discovery
98
+
99
+ ```bash
100
+ hackmate discover # Find compatible developers
101
+ hackmate match list # View your matches
102
+ ```
103
+
104
+ ### 🤝 Social Network
105
+
106
+ ```bash
107
+ hackmate social list # List friends
108
+ hackmate social requests # View pending friend requests
109
+ hackmate social follow <username> # Send friend request
110
+ hackmate social unfollow <username> # Unfollow user
111
+ hackmate social block <username> # Block user
112
+ ```
113
+
114
+ ### 💬 Chat & Messaging
115
+
116
+ ```bash
117
+ hackmate chat list # List conversations
118
+ hackmate chat dm <username> # Direct message a user
119
+ hackmate chat group <groupname> # Open group chat
120
+ ```
121
+
122
+ ### 🛠️ Projects
123
+
124
+ ```bash
125
+ hackmate project list # Browse open projects
126
+ hackmate project create # Post a new project
127
+ hackmate project view <id> # View project details
128
+ hackmate project apply <id> # Apply to join project
129
+ hackmate project accept <id> <userId> # Accept applicant (owner only)
130
+ ```
131
+
132
+ ### 👥 Groups & Communities
133
+
134
+ ```bash
135
+ hackmate group list # List available groups
136
+ hackmate group create # Create new community
137
+ hackmate group view <id> # View group details
138
+ hackmate group join <id> # Join a group
139
+ hackmate group accept <id> <userId> # Accept join request (admin only)
140
+ ```
141
+
142
+ ### 🔔 Notifications
143
+
144
+ ```bash
145
+ hackmate notification list # View all notifications
146
+ ```
147
+
148
+ ### 📊 User Stats
149
+
150
+ ```bash
151
+ hackmate stats # View your stats (messages, matches, views, etc.)
152
+ ```
153
+
154
+ ### ⚙️ Configuration
155
+
156
+ ```bash
157
+ hackmate config get # Show current config
158
+ hackmate config set <url> # Set server URL
159
+ hackmate settings # Manage app settings
160
+ hackmate privacy # View privacy information
161
+ ```
162
+
163
+ ### ⚡ Admin (requires admin role)
164
+
165
+ ```bash
166
+ hackmate admin users list # List all users
167
+ hackmate admin users view <id> # View user details
168
+ hackmate admin users delete <id> # Delete user
169
+ ```
170
+
171
+ ---
172
+
173
+ ## 🔧 Installation Options
174
+
175
+ ### Option 1: Global Install (Recommended)
176
+
177
+ ```bash
178
+ npm install -g hackmate-cli
179
+
180
+ # Use anywhere
181
+ hackmate --help
182
+ ```
183
+
184
+ ### Option 2: Local Development
185
+
186
+ ```bash
187
+ git clone https://github.com/Sameer-Bagul/hackmate.git
188
+ cd hackmate/cli
189
+
190
+ npm install
191
+ npm run dev # Watch mode
192
+ npm run build # Build for production
193
+ npm start # Run built version
194
+ npm link # Link locally for testing
195
+ ```
196
+
197
+ ---
198
+
199
+ ## ⚙️ Configuration
200
+
201
+ ### Environment Variables
202
+
203
+ Create `.env` in the CLI directory (or set globally):
204
+
205
+ ```bash
206
+ # HackMate Server URL (required after first use)
207
+ API_URL=https://your-server.azurewebsites.net
208
+
209
+ # Optional: Socket.IO server (defaults to API_URL)
210
+ SOCKET_URL=https://your-server.azurewebsites.net
211
+ ```
212
+
213
+ ### Local Config Storage
214
+
215
+ The CLI stores credentials and settings locally:
216
+
217
+ | OS | Location |
218
+ |----|----------|
219
+ | Linux | `~/.config/hackmate-cli/config.json` |
220
+ | macOS | `~/Library/Preferences/hackmate-cli/config.json` |
221
+ | Windows | `%APPDATA%\hackmate-cli\Config\config.json` |
222
+
223
+ To reset configuration:
224
+
225
+ ```bash
226
+ # Linux/macOS
227
+ rm -rf ~/.config/hackmate-cli/
228
+
229
+ # Windows PowerShell
230
+ Remove-Item -Recurse $env:APPDATA\hackmate-cli
231
+ ```
232
+
233
+ ---
234
+
235
+ ## 🎮 Usage Tips
236
+
237
+ | Tip | Shortcut |
238
+ |-----|----------|
239
+ | Navigate menus | ↑ ↓ arrows |
240
+ | Select option | Enter |
241
+ | Exit screen | Esc |
242
+ | Enter text | Type and Enter |
243
+ | Exit CLI | Ctrl+C |
244
+
245
+ ### Interactive Menus
246
+
247
+ Most screens feature interactive menus:
248
+ - Use arrow keys to highlight options
249
+ - Press Enter to select
250
+ - Press Esc to go back
251
+
252
+ ### Real-time Features
253
+
254
+ The CLI auto-refreshes:
255
+ - ✅ New messages appear instantly
256
+ - ✅ Notifications pop up in real-time
257
+ - ✅ Friend requests are live-updated
258
+
259
+ ---
260
+
261
+ ## 🏗️ Architecture
262
+
263
+ ```
264
+ cli/
265
+ ├── src/
266
+ │ ├── features/ # Feature modules
267
+ │ │ ├── auth/ # Authentication (forms, logic)
268
+ │ │ ├── profile/ # Profile viewing & editing
269
+ │ │ ├── match/ # Matching & discovery
270
+ │ │ ├── chat/ # Messaging (DM & groups)
271
+ │ │ ├── network/ # Friend requests & connections
272
+ │ │ ├── project/ # Project browsing & applications
273
+ │ │ ├── group/ # Community management
274
+ │ │ ├── notification/ # Notifications
275
+ │ │ └── admin/ # Admin panel
276
+ │ ├── shared/ # Shared utilities
277
+ │ │ ├── components/ # Reusable UI components
278
+ │ │ ├── hooks/ # Custom React hooks
279
+ │ │ ├── utils/ # Helper functions
280
+ │ │ └── types/ # TypeScript types
281
+ │ ├── context/ # Global state
282
+ │ │ ├── AuthContext.tsx # Authentication state
283
+ │ │ └── SocketContext.tsx # Real-time Socket.IO
284
+ │ ├── api.ts # Axios HTTP client
285
+ │ ├── config.ts # Configuration management
286
+ │ └── cli.tsx # CLI entry point
287
+ ├── scripts/
288
+ │ └── add-shebang.cjs # Build helper
289
+ ├── dist/ # Compiled JavaScript
290
+ ├── package.json
291
+ └── README.md
292
+ ```
293
+
294
+ ---
295
+
296
+ ## 🚨 Troubleshooting
297
+
298
+ ### "Cannot connect to server"
299
+
300
+ ```bash
301
+ # 1. Check if server is running
302
+ curl https://your-server.azurewebsites.net/health
303
+
304
+ # 2. Verify config is correct
305
+ hackmate config get
306
+
307
+ # 3. Reset config and try again
308
+ rm -rf ~/.config/hackmate-cli/
309
+ hackmate config set https://your-server.azurewebsites.net
310
+ ```
311
+
312
+ ### "Login fails / Token expired"
313
+
314
+ ```bash
315
+ # Clear session and login again
316
+ hackmate auth logout
317
+ hackmate auth login
318
+ ```
319
+
320
+ ### "Socket.IO not working (real-time features slow)"
321
+
322
+ 1. Check server logs for Socket.IO errors
323
+ 2. Ensure WebSocket connections aren't blocked by firewall
324
+ 3. Try restarting the CLI
325
+
326
+ ### "OTP not received"
327
+
328
+ If SMTP is not configured on the server:
329
+ - The OTP will be printed in the **server console**
330
+ - Copy the code and enter it in the CLI prompt
331
+
332
+ For production servers with SMTP:
333
+ - Check spam/junk folder
334
+ - Verify email address during signup
335
+
336
+ ---
337
+
338
+ ## 🤝 Contributing
339
+
340
+ We welcome contributions! Here's how to get started:
341
+
342
+ ```bash
343
+ # 1. Clone and install
344
+ git clone https://github.com/Sameer-Bagul/hackmate.git
345
+ cd hackmate/cli
346
+ npm install
347
+
348
+ # 2. Create a feature branch
349
+ git checkout -b feature/amazing-feature
350
+
351
+ # 3. Make changes and test
352
+ npm run dev
353
+ npm run lint
354
+
355
+ # 4. Build and verify
356
+ npm run build
357
+
358
+ # 5. Push and create PR
359
+ git push origin feature/amazing-feature
360
+ ```
361
+
362
+ ### Code Standards
363
+
364
+ - **Language**: TypeScript (strict mode)
365
+ - **UI Framework**: React + Ink
366
+ - **Linting**: ESLint
367
+ - **Format**: Prettier (optional, but recommended)
368
+
369
+ ---
370
+
371
+ ## 📚 Resources
372
+
373
+ - **Server Repository**: [hackmate-server](https://github.com/Sameer-Bagul/hackmate-server)
374
+ - **API Documentation**: [API_ROUTES.md](../API_ROUTES.md)
375
+ - **Issue Tracker**: [GitHub Issues](https://github.com/Sameer-Bagul/hackmate/issues)
376
+
377
+ ---
378
+
379
+ ## 📦 Deployment
380
+
381
+ ### Publish to npm
382
+
383
+ **Via CI (Recommended):**
384
+
385
+ ```bash
386
+ # Create a git tag
387
+ git tag cli-v1.0.1
388
+ git push origin cli-v1.0.1
389
+ ```
390
+
391
+ This triggers automated publishing via GitHub Actions.
392
+
393
+ **Manual:**
394
+
395
+ ```bash
396
+ cd cli
397
+ npm run build
398
+ npm publish --access public
399
+ ```
400
+
401
+ Requires:
402
+ - npm account and `npm login`
403
+ - Package available on npm registry
404
+
405
+ ---
406
+
407
+ ## 📄 License
408
+
409
+ MIT © 2024 HackMate Contributors
410
+
411
+ ---
412
+
413
+ ## 🙌 Support
414
+
415
+ - 🐛 **Report Bugs**: [GitHub Issues](https://github.com/Sameer-Bagul/hackmate/issues)
416
+ - 💡 **Feature Requests**: [Discussions](https://github.com/Sameer-Bagul/hackmate/discussions)
417
+
418
+ ---
419
+
420
+ **Made with ❤️ for developers, by developers.**
package/dist/api.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ declare const api: import("axios").AxiosInstance;
2
+ export default api;
3
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,GAAG,+BAEP,CAAC;AAUH,eAAe,GAAG,CAAC"}
package/dist/api.js ADDED
@@ -0,0 +1,14 @@
1
+ import axios from 'axios';
2
+ import { getToken, getApiUrl } from './config.js';
3
+ const api = axios.create({
4
+ baseURL: `${getApiUrl()}/api`,
5
+ });
6
+ api.interceptors.request.use((config) => {
7
+ const token = getToken();
8
+ if (token) {
9
+ config.headers.Authorization = `Bearer ${token}`;
10
+ }
11
+ return config;
12
+ });
13
+ export default api;
14
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACrB,OAAO,EAAE,GAAG,SAAS,EAAE,MAAM;CAChC,CAAC,CAAC;AAEH,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;IACpC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK,EAAE,CAAC;QACR,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,eAAe,GAAG,CAAC"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import 'dotenv/config';
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC"}
package/dist/cli.js ADDED
@@ -0,0 +1,172 @@
1
+ #!/usr/bin/env node
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import 'dotenv/config';
4
+ import { render, Text, Box } from 'ink';
5
+ import { Command } from 'commander';
6
+ import { AppProvider } from './context/index.js';
7
+ // Commands
8
+ import { Login, Signup } from './commands/auth/index.js';
9
+ import { Admin } from './features/admin/index.js';
10
+ import { Network, UnfriendByUsername } from './features/network/index.js';
11
+ import { Project } from './features/project/index.js';
12
+ import { Group } from './features/group/index.js';
13
+ import { Notification } from './features/notification/index.js';
14
+ import { ProfileView, ProfileEdit } from './features/profile/index.js';
15
+ import { Chat, ChatList } from './features/chat/index.js';
16
+ import { Discover } from './commands/Discover.js';
17
+ import { Config } from './commands/Config.js';
18
+ import { Stats } from './commands/Stats.js';
19
+ import { MatchList } from './commands/MatchList.js';
20
+ import { Privacy } from './commands/Privacy.js';
21
+ import { Settings } from './commands/Settings.js';
22
+ import { DataExport } from './commands/DataExport.js';
23
+ import { Presence } from './commands/Presence.js';
24
+ // import { ComingSoon } from './commands/ComingSoon.js'; // REMOVED
25
+ import { Logout } from './commands/auth/Logout.js';
26
+ import { Verify } from './commands/auth/Verify.js';
27
+ import { BotStub, ConfigStub } from './commands/stubs/index.js';
28
+ const program = new Command();
29
+ program
30
+ .name('hackmate')
31
+ .description('The Terminal Social Network and Dating CLI for Hackers and Developers')
32
+ .version('0.0.1')
33
+ .option('--json', 'Output formatted JSON')
34
+ .option('--debug', 'Enable debug mode')
35
+ .option('--config <path>', 'Path to custom config file')
36
+ .option('--no-color', 'Disable colored output'); // Commander/Ink handle this internally usually, but explicit docs help
37
+ // --- AUTH ---
38
+ const auth = program.command('auth').description('Authentication & Identity');
39
+ auth.command('login')
40
+ .description('Login to HackMate')
41
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(Login, {}) })); });
42
+ auth.command('signup')
43
+ .description('Create a new account')
44
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(Signup, {}) })); });
45
+ auth.command('logout')
46
+ .description('Logout of session')
47
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(Logout, {}) })); });
48
+ auth.command('verify')
49
+ .description('Verify email with OTP')
50
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(Verify, {}) })); });
51
+ auth.command('whoami')
52
+ .description('Current user status')
53
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(ProfileView, {}) })); }); // Reuse profile view
54
+ // --- PROFILE ---
55
+ const profile = program.command('profile').description('Manage your profile');
56
+ profile.command('view [username]')
57
+ .description('View profile')
58
+ .action((username) => {
59
+ render(_jsx(AppProvider, { children: _jsx(ProfileView, { username: username }) }));
60
+ });
61
+ profile.command('edit')
62
+ .description('Edit profile details')
63
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(ProfileEdit, {}) })); });
64
+ // --- DISCOVERY ---
65
+ const discover = program.command('discover').description('Find developers');
66
+ discover.action(() => { render(_jsx(AppProvider, { children: _jsx(Discover, {}) })); });
67
+ discover.command('smart').action(() => { render(_jsx(AppProvider, { children: _jsx(Discover, {}) })); }); // Alias
68
+ discover.command('nearby').action(() => { render(_jsx(AppProvider, { children: _jsx(Discover, {}) })); }); // Reuse discover for now
69
+ // --- MATCHING ---
70
+ const match = program.command('match').description('Matching system');
71
+ match.action(() => { render(_jsx(AppProvider, { children: _jsx(MatchList, {}) })); });
72
+ match.command('list')
73
+ .description('List matches')
74
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(MatchList, {}) })); });
75
+ // --- SOCIAL (Was Network) ---
76
+ const social = program.command('social').description('Social Graph (Friends/Followers)');
77
+ social.command('list') // Friends list
78
+ .description('List friends/following')
79
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(Network, { action: "list" }) })); });
80
+ social.command('requests')
81
+ .description('View pending requests')
82
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(Network, { action: "requests" }) })); });
83
+ social.command('follow <username>') // "Add Friend"
84
+ .description('Follow/Add user')
85
+ .action((username) => { render(_jsx(AppProvider, { children: _jsx(Network, { action: "add", target: username }) })); });
86
+ social.command('unfollow <username>')
87
+ .description('Unfollow user')
88
+ .action((username) => { render(_jsx(AppProvider, { children: _jsx(UnfriendByUsername, { username: username }) })); });
89
+ social.command('block <username>')
90
+ .description('Block user')
91
+ .action((username) => { render(_jsx(AppProvider, { children: _jsx(Network, { action: "block", target: username }) })); });
92
+ // --- CHAT ---
93
+ const chat = program.command('chat').description('Messaging');
94
+ chat.command('list')
95
+ .description('List conversations')
96
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(ChatList, {}) })); });
97
+ chat.command('dm <username>')
98
+ .description('Direct Message')
99
+ .action((username) => { render(_jsx(AppProvider, { children: _jsx(Chat, { targetUsername: username }) })); });
100
+ chat.command('group <groupname>')
101
+ .description('Group Chat')
102
+ .action((groupname) => { render(_jsx(AppProvider, { children: _jsx(Chat, { groupName: groupname }) })); });
103
+ // --- PROJECTS (Added from featuresTodo) ---
104
+ const project = program.command('project').description('Project Collaboration');
105
+ project.command('list')
106
+ .description('List open projects')
107
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(Project, { action: "list" }) })); });
108
+ project.command('create')
109
+ .description('Post a project')
110
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(Project, { action: "create" }) })); });
111
+ project.command('view <id>')
112
+ .description('View project details')
113
+ .action((id) => { render(_jsx(AppProvider, { children: _jsx(Project, { action: "view", id: id }) })); });
114
+ project.command('apply <id>')
115
+ .description('Apply to a project')
116
+ .action((id) => { render(_jsx(AppProvider, { children: _jsx(Project, { action: "apply", id: id }) })); });
117
+ project.command('accept <id> <userId>')
118
+ .description('Accept applicant')
119
+ .action((id, userId) => { render(_jsx(AppProvider, { children: _jsx(Project, { action: "accept", id: id, extraArg: userId }) })); });
120
+ // --- GROUP (Communities) (Added from featuresTodo) ---
121
+ const group = program.command('group').description('Communities');
122
+ group.command('list')
123
+ .description('List groups')
124
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(Group, { action: "list" }) })); });
125
+ group.command('create')
126
+ .description('Create community')
127
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(Group, { action: "create" }) })); });
128
+ group.command('view <id>')
129
+ .description('View group')
130
+ .action((id) => { render(_jsx(AppProvider, { children: _jsx(Group, { action: "view", id: id }) })); });
131
+ group.command('join <id>')
132
+ .description('Join group')
133
+ .action((id) => { render(_jsx(AppProvider, { children: _jsx(Group, { action: "join", id: id }) })); });
134
+ group.command('accept <id> <userId>')
135
+ .description('Accept member')
136
+ .action((id, userId) => { render(_jsx(AppProvider, { children: _jsx(Group, { action: "accept", id: id, extraArg: userId }) })); });
137
+ // --- NOTIFICATIONS ---
138
+ const notification = program.command('notification').description('System Alerts');
139
+ notification.command('list')
140
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(Notification, { action: "list" }) })); });
141
+ // --- ADMIN ---
142
+ const admin = program.command('admin').description('God Mode');
143
+ const users = admin.command('users').description('User Management');
144
+ users.command('list')
145
+ .action(() => { render(_jsx(AppProvider, { children: _jsx(Admin, { action: "list" }) })); });
146
+ users.command('view <id>')
147
+ .action((id) => { render(_jsx(AppProvider, { children: _jsx(Admin, { action: "view", id: id }) })); });
148
+ users.command('delete <id>')
149
+ .action((id) => { render(_jsx(AppProvider, { children: _jsx(Admin, { action: "delete", id: id }) })); });
150
+ // --- COMING SOON SECTIONS -> NOW IMPLEMENTED ---
151
+ program.command('stats').action(() => { render(_jsx(AppProvider, { children: _jsx(Stats, {}) })); });
152
+ program.command('privacy').action(() => { render(_jsx(AppProvider, { children: _jsx(Privacy, {}) })); });
153
+ program.command('settings').action(() => { render(_jsx(AppProvider, { children: _jsx(Settings, {}) })); });
154
+ program.command('ui').action(() => { render(_jsx(AppProvider, { children: _jsx(ConfigStub, {}) })); }); // Show config for UI
155
+ program.command('data').action(() => { render(_jsx(AppProvider, { children: _jsx(DataExport, {}) })); });
156
+ program.command('dev').action(() => { render(_jsx(AppProvider, { children: _jsx(ConfigStub, {}) })); }); // Show config env
157
+ program.command('bot').action(() => { render(_jsx(AppProvider, { children: _jsx(BotStub, {}) })); });
158
+ // Configuration
159
+ const config = program.command('config').description('Configuration');
160
+ config.action(() => { render(_jsx(AppProvider, { children: _jsx(Config, { action: "get" }) })); });
161
+ config.command('get').action(() => { render(_jsx(AppProvider, { children: _jsx(Config, { action: "get" }) })); });
162
+ config.command('set <url>').action((url) => { render(_jsx(AppProvider, { children: _jsx(Config, { action: "set", value: url }) })); });
163
+ // Network Presence (from commands.md, distinct from 'social')
164
+ const net = program.command('network').description('Connection & Presence');
165
+ net.command('online').action(() => { render(_jsx(AppProvider, { children: _jsx(Presence, { status: "online" }) })); });
166
+ net.command('offline').action(() => { render(_jsx(AppProvider, { children: _jsx(Presence, { status: "offline" }) })); });
167
+ // Default
168
+ program.action(() => {
169
+ render(_jsxs(Box, { borderStyle: "round", borderColor: "green", padding: 1, flexDirection: "column", children: [_jsx(Text, { color: "green", bold: true, children: "HackMate CLI 1.0" }), _jsxs(Text, { children: ["Run ", _jsx(Text, { color: "cyan", children: "hackmate --help" }), " to see the new command tree."] })] }));
170
+ });
171
+ program.parse(process.argv);
172
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface ComingSoonProps {
3
+ feature: string;
4
+ }
5
+ export declare const ComingSoon: React.FC<ComingSoonProps>;
6
+ export {};
7
+ //# sourceMappingURL=ComingSoon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComingSoon.d.ts","sourceRoot":"","sources":["../../src/commands/ComingSoon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,eAAe;IACrB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAMhD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text, Box } from 'ink';
3
+ export const ComingSoon = ({ feature }) => (_jsxs(Box, { borderStyle: "round", borderColor: "yellow", padding: 1, flexDirection: "column", children: [_jsxs(Text, { color: "yellow", bold: true, children: ["\uD83D\uDEA7 Feature Under Construction: ", feature] }), _jsx(Text, { children: "This command is part of the HackMate \"Best CLI\" spec but is not yet implemented." }), _jsx(Text, { color: "gray", children: "Stay tuned for updates!" })] }));
4
+ //# sourceMappingURL=ComingSoon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComingSoon.js","sourceRoot":"","sources":["../../src/commands/ComingSoon.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAMhC,MAAM,CAAC,MAAM,UAAU,GAA8B,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAClE,MAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aAC5E,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,gEAAiC,OAAO,IAAQ,EACzE,KAAC,IAAI,qGAAwF,EAC7F,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,wCAA+B,IAC/C,CACT,CAAC"}