@legdev/tkxr 1.1.11

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 (101) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +477 -0
  3. package/dist/cli/commands/comments.d.ts +10 -0
  4. package/dist/cli/commands/comments.d.ts.map +1 -0
  5. package/dist/cli/commands/comments.js +81 -0
  6. package/dist/cli/commands/comments.js.map +1 -0
  7. package/dist/cli/commands/create.d.ts +11 -0
  8. package/dist/cli/commands/create.d.ts.map +1 -0
  9. package/dist/cli/commands/create.js +74 -0
  10. package/dist/cli/commands/create.js.map +1 -0
  11. package/dist/cli/commands/delete.d.ts +7 -0
  12. package/dist/cli/commands/delete.d.ts.map +1 -0
  13. package/dist/cli/commands/delete.js +61 -0
  14. package/dist/cli/commands/delete.js.map +1 -0
  15. package/dist/cli/commands/list.d.ts +16 -0
  16. package/dist/cli/commands/list.d.ts.map +1 -0
  17. package/dist/cli/commands/list.js +239 -0
  18. package/dist/cli/commands/list.js.map +1 -0
  19. package/dist/cli/commands/mcp.d.ts +8 -0
  20. package/dist/cli/commands/mcp.d.ts.map +1 -0
  21. package/dist/cli/commands/mcp.js +52 -0
  22. package/dist/cli/commands/mcp.js.map +1 -0
  23. package/dist/cli/commands/serve.d.ts +8 -0
  24. package/dist/cli/commands/serve.d.ts.map +1 -0
  25. package/dist/cli/commands/serve.js +505 -0
  26. package/dist/cli/commands/serve.js.map +1 -0
  27. package/dist/cli/commands/show.d.ts +7 -0
  28. package/dist/cli/commands/show.d.ts.map +1 -0
  29. package/dist/cli/commands/show.js +84 -0
  30. package/dist/cli/commands/show.js.map +1 -0
  31. package/dist/cli/commands/sprint.d.ts +11 -0
  32. package/dist/cli/commands/sprint.d.ts.map +1 -0
  33. package/dist/cli/commands/sprint.js +114 -0
  34. package/dist/cli/commands/sprint.js.map +1 -0
  35. package/dist/cli/commands/sprints.d.ts +10 -0
  36. package/dist/cli/commands/sprints.d.ts.map +1 -0
  37. package/dist/cli/commands/sprints.js +64 -0
  38. package/dist/cli/commands/sprints.js.map +1 -0
  39. package/dist/cli/commands/status.d.ts +6 -0
  40. package/dist/cli/commands/status.d.ts.map +1 -0
  41. package/dist/cli/commands/status.js +48 -0
  42. package/dist/cli/commands/status.js.map +1 -0
  43. package/dist/cli/commands/user.d.ts +8 -0
  44. package/dist/cli/commands/user.d.ts.map +1 -0
  45. package/dist/cli/commands/user.js +61 -0
  46. package/dist/cli/commands/user.js.map +1 -0
  47. package/dist/cli/commands/users.d.ts +7 -0
  48. package/dist/cli/commands/users.d.ts.map +1 -0
  49. package/dist/cli/commands/users.js +28 -0
  50. package/dist/cli/commands/users.js.map +1 -0
  51. package/dist/cli/commands/version.d.ts +7 -0
  52. package/dist/cli/commands/version.d.ts.map +1 -0
  53. package/dist/cli/commands/version.js +94 -0
  54. package/dist/cli/commands/version.js.map +1 -0
  55. package/dist/cli/index.d.ts +3 -0
  56. package/dist/cli/index.d.ts.map +1 -0
  57. package/dist/cli/index.js +146 -0
  58. package/dist/cli/index.js.map +1 -0
  59. package/dist/core/notifier.d.ts +51 -0
  60. package/dist/core/notifier.d.ts.map +1 -0
  61. package/dist/core/notifier.js +118 -0
  62. package/dist/core/notifier.js.map +1 -0
  63. package/dist/core/storage.d.ts +41 -0
  64. package/dist/core/storage.d.ts.map +1 -0
  65. package/dist/core/storage.js +383 -0
  66. package/dist/core/storage.js.map +1 -0
  67. package/dist/core/test_getAllTickets.d.ts +2 -0
  68. package/dist/core/test_getAllTickets.d.ts.map +1 -0
  69. package/dist/core/test_getAllTickets.js +7 -0
  70. package/dist/core/test_getAllTickets.js.map +1 -0
  71. package/dist/core/types.d.ts +67 -0
  72. package/dist/core/types.d.ts.map +1 -0
  73. package/dist/core/types.js +2 -0
  74. package/dist/core/types.js.map +1 -0
  75. package/dist/index.d.ts +3 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +3 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/mcp/server.d.ts +25 -0
  80. package/dist/mcp/server.d.ts.map +1 -0
  81. package/dist/mcp/server.js +489 -0
  82. package/dist/mcp/server.js.map +1 -0
  83. package/dist/web/_app/immutable/assets/0.47dd68fd.css +1 -0
  84. package/dist/web/_app/immutable/assets/2.3f11c9a4.css +1 -0
  85. package/dist/web/_app/immutable/assets/_layout.47e0a118.css +1 -0
  86. package/dist/web/_app/immutable/assets/_page.3f11c9a4.css +1 -0
  87. package/dist/web/_app/immutable/chunks/index.23b89654.js +1 -0
  88. package/dist/web/_app/immutable/chunks/index.f094d695.js +1 -0
  89. package/dist/web/_app/immutable/chunks/scheduler.81694808.js +1 -0
  90. package/dist/web/_app/immutable/chunks/singletons.9c246a72.js +1 -0
  91. package/dist/web/_app/immutable/chunks/stores.48058fce.js +1 -0
  92. package/dist/web/_app/immutable/entry/app.fea83d45.js +1 -0
  93. package/dist/web/_app/immutable/entry/start.3fd90366.js +3 -0
  94. package/dist/web/_app/immutable/nodes/0.e605bf9a.js +1 -0
  95. package/dist/web/_app/immutable/nodes/1.e3ce54f6.js +1 -0
  96. package/dist/web/_app/immutable/nodes/2.04dfac64.js +13 -0
  97. package/dist/web/_app/version.json +1 -0
  98. package/dist/web/favicon.png +3 -0
  99. package/dist/web/favicon.svg +10 -0
  100. package/dist/web/index.html +37 -0
  101. package/package.json +60 -0
@@ -0,0 +1,505 @@
1
+ import chalk from 'chalk';
2
+ import express from 'express';
3
+ import { WebSocketServer } from 'ws';
4
+ import { createServer } from 'http';
5
+ import { promises as fs, unlinkSync } from 'fs';
6
+ import path from 'path';
7
+ import { createStorage } from '../../core/storage.js';
8
+ import { notifier } from '../../core/notifier.js';
9
+ export async function startServer(args) {
10
+ const port = args.port || 8080;
11
+ const host = args.host || 'localhost';
12
+ const app = express();
13
+ const server = createServer(app);
14
+ const wss = new WebSocketServer({ server });
15
+ const storage = await createStorage();
16
+ // Read version from package.json
17
+ let version = '1.0.0'; // fallback
18
+ try {
19
+ const pkgPath = path.join(process.cwd(), 'package.json');
20
+ const pkgContent = await fs.readFile(pkgPath, 'utf8');
21
+ const pkg = JSON.parse(pkgContent);
22
+ version = pkg.version || '1.0.0';
23
+ }
24
+ catch (error) {
25
+ console.debug('Could not read package.json version:', error);
26
+ }
27
+ // Update notifier URL for this server instance
28
+ const serverUrl = `http://${host}:${port}`;
29
+ notifier.setServerUrl(serverUrl);
30
+ // Save server config for other CLI commands to use
31
+ try {
32
+ const configPath = path.join(process.cwd(), '.env.tkxr');
33
+ const envContent = `TKXR_HOST=${host}\nTKXR_PORT=${port}\n`;
34
+ await fs.writeFile(configPath, envContent, 'utf8');
35
+ }
36
+ catch (error) {
37
+ // Don't fail if we can't write config
38
+ console.debug('Could not save .env.tkxr config:', error);
39
+ }
40
+ // Middleware
41
+ app.use(express.json());
42
+ app.use(express.static(path.join(process.cwd(), 'dist', 'web')));
43
+ // API Routes
44
+ app.get('/api/tickets', async (req, res) => {
45
+ try {
46
+ // Reload data from disk to ensure we have the latest changes
47
+ await storage.loadProject();
48
+ const tickets = await storage.getAllTickets();
49
+ res.json(tickets);
50
+ }
51
+ catch (error) {
52
+ res.status(500).json({ error: 'Failed to load tickets' });
53
+ }
54
+ });
55
+ app.get('/api/tickets/:type', async (req, res) => {
56
+ try {
57
+ const { type } = req.params;
58
+ if (type !== 'task' && type !== 'bug') {
59
+ return res.status(400).json({ error: 'Invalid ticket type' });
60
+ }
61
+ const tickets = await storage.getTicketsByType(type);
62
+ res.json(tickets);
63
+ }
64
+ catch (error) {
65
+ res.status(500).json({ error: 'Failed to load tickets' });
66
+ }
67
+ });
68
+ app.get('/api/sprints', async (req, res) => {
69
+ try { // Reload data from disk to ensure we have the latest changes
70
+ await storage.loadProject();
71
+ const sprints = await storage.getSprints();
72
+ res.json(sprints);
73
+ }
74
+ catch (error) {
75
+ res.status(500).json({ error: 'Failed to load sprints' });
76
+ }
77
+ });
78
+ app.get('/api/users', async (req, res) => {
79
+ try { // Reload data from disk to ensure we have the latest changes
80
+ await storage.loadProject();
81
+ const users = await storage.getUsers();
82
+ res.json(users);
83
+ }
84
+ catch (error) {
85
+ res.status(500).json({ error: 'Failed to load users' });
86
+ }
87
+ });
88
+ // Serve server configuration for dynamic client discovery
89
+ app.get('/api/config', async (req, res) => {
90
+ try {
91
+ res.json({
92
+ host: 'localhost',
93
+ port: port,
94
+ url: `http://localhost:${port}`,
95
+ version: version
96
+ });
97
+ }
98
+ catch (error) {
99
+ res.status(500).json({ error: 'Failed to get server config' });
100
+ }
101
+ });
102
+ app.post('/api/tickets', async (req, res) => {
103
+ try {
104
+ const { type, title, ...options } = req.body;
105
+ if (!type || !title) {
106
+ return res.status(400).json({ error: 'Type and title are required' });
107
+ }
108
+ if (type !== 'task' && type !== 'bug') {
109
+ return res.status(400).json({ error: 'Invalid ticket type' });
110
+ }
111
+ const ticket = await storage.createTicket(type, title, options);
112
+ // Broadcast to WebSocket clients
113
+ broadcast(wss, {
114
+ type: 'ticket_created',
115
+ data: ticket
116
+ });
117
+ res.json(ticket);
118
+ }
119
+ catch (error) {
120
+ res.status(500).json({ error: 'Failed to create ticket' });
121
+ }
122
+ });
123
+ app.put('/api/tickets/:id', async (req, res) => {
124
+ try {
125
+ const { id } = req.params;
126
+ const updates = req.body;
127
+ // Update ticket using the simplified interface
128
+ const updatedTicket = await storage.updateTicket(id, updates);
129
+ if (!updatedTicket) {
130
+ return res.status(404).json({ error: 'Ticket not found' });
131
+ }
132
+ // Broadcast to WebSocket clients
133
+ broadcast(wss, {
134
+ type: 'ticket_updated',
135
+ data: updatedTicket
136
+ });
137
+ res.json(updatedTicket);
138
+ }
139
+ catch (error) {
140
+ res.status(500).json({ error: 'Failed to update ticket' });
141
+ }
142
+ });
143
+ app.delete('/api/tickets/:id', async (req, res) => {
144
+ try {
145
+ const { id } = req.params;
146
+ // First, delete all comments associated with this ticket
147
+ const comments = await storage.getComments(id);
148
+ for (const comment of comments) {
149
+ await storage.deleteComment(comment.id);
150
+ }
151
+ // Try to delete from tasks first, then bugs
152
+ let deleted = await storage.deleteEntity('tasks', id);
153
+ if (!deleted) {
154
+ deleted = await storage.deleteEntity('bugs', id);
155
+ }
156
+ if (!deleted) {
157
+ return res.status(404).json({ error: 'Ticket not found' });
158
+ }
159
+ // Broadcast to WebSocket clients
160
+ broadcast(wss, {
161
+ type: 'ticket_deleted',
162
+ data: { id }
163
+ });
164
+ res.json({ success: true });
165
+ }
166
+ catch (error) {
167
+ res.status(500).json({ error: 'Failed to delete ticket' });
168
+ }
169
+ });
170
+ app.post('/api/users', async (req, res) => {
171
+ try {
172
+ const { username, displayName, email } = req.body;
173
+ if (!username || !displayName) {
174
+ return res.status(400).json({ error: 'Username and display name are required' });
175
+ }
176
+ const user = await storage.createUser(username, displayName, { email });
177
+ res.json(user);
178
+ }
179
+ catch (error) {
180
+ res.status(500).json({ error: 'Failed to create user' });
181
+ }
182
+ });
183
+ app.delete('/api/users/:id', async (req, res) => {
184
+ try {
185
+ const { id } = req.params;
186
+ const deleted = await storage.deleteEntity('users', id);
187
+ if (!deleted) {
188
+ return res.status(404).json({ error: 'User not found' });
189
+ }
190
+ res.json({ success: true });
191
+ }
192
+ catch (error) {
193
+ res.status(500).json({ error: 'Failed to delete user' });
194
+ }
195
+ });
196
+ // Comments API
197
+ app.get('/api/tickets/:ticketId/comments', async (req, res) => {
198
+ try {
199
+ // Reload data from disk to ensure we have the latest changes
200
+ await storage.loadProject();
201
+ const { ticketId } = req.params;
202
+ const comments = await storage.getComments(ticketId);
203
+ res.json(comments);
204
+ }
205
+ catch (error) {
206
+ res.status(500).json({ error: 'Failed to load comments' });
207
+ }
208
+ });
209
+ app.post('/api/tickets/:ticketId/comments', async (req, res) => {
210
+ try {
211
+ const { ticketId } = req.params;
212
+ const { content, author } = req.body;
213
+ if (!content || !content.trim()) {
214
+ return res.status(400).json({ error: 'Comment content is required' });
215
+ }
216
+ if (!author) {
217
+ return res.status(400).json({ error: 'Comment author is required' });
218
+ }
219
+ const comment = await storage.createComment(ticketId, author, content.trim());
220
+ // Broadcast to WebSocket clients
221
+ broadcast(wss, {
222
+ type: 'comment_created',
223
+ data: comment
224
+ });
225
+ res.json(comment);
226
+ }
227
+ catch (error) {
228
+ res.status(500).json({ error: 'Failed to create comment' });
229
+ }
230
+ });
231
+ app.delete('/api/comments/:id', async (req, res) => {
232
+ try {
233
+ const { id } = req.params;
234
+ const deleted = await storage.deleteComment(id);
235
+ if (!deleted) {
236
+ return res.status(404).json({ error: 'Comment not found' });
237
+ }
238
+ // Broadcast to WebSocket clients
239
+ broadcast(wss, {
240
+ type: 'comment_deleted',
241
+ data: { id }
242
+ });
243
+ res.json({ success: true });
244
+ }
245
+ catch (error) {
246
+ res.status(500).json({ error: 'Failed to delete comment' });
247
+ }
248
+ });
249
+ app.post('/api/sprints', async (req, res) => {
250
+ try {
251
+ const { name, description, goal } = req.body;
252
+ if (!name) {
253
+ return res.status(400).json({ error: 'Sprint name is required' });
254
+ }
255
+ const sprint = await storage.createSprint(name, { description, goal });
256
+ res.json(sprint);
257
+ }
258
+ catch (error) {
259
+ res.status(500).json({ error: 'Failed to create sprint' });
260
+ }
261
+ });
262
+ app.delete('/api/sprints/:id', async (req, res) => {
263
+ try {
264
+ const { id } = req.params;
265
+ const deleted = await storage.deleteEntity('sprints', id);
266
+ if (!deleted) {
267
+ return res.status(404).json({ error: 'Sprint not found' });
268
+ }
269
+ res.json({ success: true });
270
+ }
271
+ catch (error) {
272
+ res.status(500).json({ error: 'Failed to delete sprint' });
273
+ }
274
+ });
275
+ app.put('/api/sprints/:id', async (req, res) => {
276
+ try {
277
+ const { id } = req.params;
278
+ const { name, description, goal } = req.body;
279
+ if (!name) {
280
+ return res.status(400).json({ error: 'Sprint name is required' });
281
+ }
282
+ const sprint = await storage.updateSprint(id, { name, description, goal });
283
+ if (!sprint) {
284
+ return res.status(404).json({ error: 'Sprint not found' });
285
+ }
286
+ res.json(sprint);
287
+ }
288
+ catch (error) {
289
+ res.status(500).json({ error: 'Failed to update sprint' });
290
+ }
291
+ });
292
+ app.put('/api/users/:id', async (req, res) => {
293
+ try {
294
+ const { id } = req.params;
295
+ const { username, displayName, email } = req.body;
296
+ if (!username || !displayName) {
297
+ return res.status(400).json({ error: 'Username and display name are required' });
298
+ }
299
+ const user = await storage.updateUser(id, { username, displayName, email });
300
+ if (!user) {
301
+ return res.status(404).json({ error: 'User not found' });
302
+ }
303
+ res.json(user);
304
+ }
305
+ catch (error) {
306
+ res.status(500).json({ error: 'Failed to update user' });
307
+ }
308
+ });
309
+ app.put('/api/sprints/:id/status', async (req, res) => {
310
+ try {
311
+ const { id } = req.params;
312
+ const { status } = req.body;
313
+ if (!['planning', 'active', 'completed'].includes(status)) {
314
+ return res.status(400).json({ error: 'Invalid status. Must be planning, active, or completed' });
315
+ }
316
+ const sprint = await storage.updateSprintStatus(id, status);
317
+ if (!sprint) {
318
+ return res.status(404).json({ error: 'Sprint not found' });
319
+ }
320
+ res.json(sprint);
321
+ }
322
+ catch (error) {
323
+ res.status(500).json({ error: 'Failed to update sprint status' });
324
+ }
325
+ });
326
+ app.put('/api/tickets/:id/status', async (req, res) => {
327
+ try {
328
+ const { id } = req.params;
329
+ const { status } = req.body;
330
+ if (!status) {
331
+ return res.status(400).json({ error: 'Status is required' });
332
+ }
333
+ const ticket = await storage.updateTicketStatus(id, status);
334
+ if (!ticket) {
335
+ return res.status(404).json({ error: 'Ticket not found' });
336
+ }
337
+ // Broadcast to WebSocket clients
338
+ broadcast(wss, {
339
+ type: 'ticket_updated',
340
+ data: ticket
341
+ });
342
+ res.json(ticket);
343
+ }
344
+ catch (error) {
345
+ res.status(500).json({ error: 'Failed to update ticket' });
346
+ }
347
+ });
348
+ // CLI Notification endpoints - allow CLI to notify web server of changes
349
+ app.post('/api/cli-notifications/ticket-created', async (req, res) => {
350
+ try {
351
+ const ticket = req.body;
352
+ // Broadcast to WebSocket clients
353
+ broadcast(wss, {
354
+ type: 'ticket_created',
355
+ data: ticket
356
+ });
357
+ res.json({ success: true });
358
+ }
359
+ catch (error) {
360
+ res.status(500).json({ error: 'Failed to process notification' });
361
+ }
362
+ });
363
+ app.post('/api/cli-notifications/ticket-updated', async (req, res) => {
364
+ try {
365
+ const ticket = req.body;
366
+ // Broadcast to WebSocket clients
367
+ broadcast(wss, {
368
+ type: 'ticket_updated',
369
+ data: ticket
370
+ });
371
+ res.json({ success: true });
372
+ }
373
+ catch (error) {
374
+ res.status(500).json({ error: 'Failed to process notification' });
375
+ }
376
+ });
377
+ app.post('/api/cli-notifications/ticket-deleted', async (req, res) => {
378
+ try {
379
+ const { id } = req.body;
380
+ // Broadcast to WebSocket clients
381
+ broadcast(wss, {
382
+ type: 'ticket_deleted',
383
+ data: { id }
384
+ });
385
+ res.json({ success: true });
386
+ }
387
+ catch (error) {
388
+ res.status(500).json({ error: 'Failed to process notification' });
389
+ }
390
+ });
391
+ app.post('/api/cli-notifications/sprint-created', async (req, res) => {
392
+ try {
393
+ const sprint = req.body;
394
+ // Broadcast to WebSocket clients
395
+ broadcast(wss, {
396
+ type: 'sprint_created',
397
+ data: sprint
398
+ });
399
+ res.json({ success: true });
400
+ }
401
+ catch (error) {
402
+ res.status(500).json({ error: 'Failed to process notification' });
403
+ }
404
+ });
405
+ app.post('/api/cli-notifications/sprint-updated', async (req, res) => {
406
+ try {
407
+ const sprint = req.body;
408
+ // Broadcast to WebSocket clients
409
+ broadcast(wss, {
410
+ type: 'sprint_updated',
411
+ data: sprint
412
+ });
413
+ res.json({ success: true });
414
+ }
415
+ catch (error) {
416
+ res.status(500).json({ error: 'Failed to process notification' });
417
+ }
418
+ });
419
+ app.post('/api/cli-notifications/user-created', async (req, res) => {
420
+ try {
421
+ const user = req.body;
422
+ // Broadcast to WebSocket clients
423
+ broadcast(wss, {
424
+ type: 'user_created',
425
+ data: user
426
+ });
427
+ res.json({ success: true });
428
+ }
429
+ catch (error) {
430
+ res.status(500).json({ error: 'Failed to process notification' });
431
+ }
432
+ });
433
+ app.post('/api/cli-notifications/comment-created', async (req, res) => {
434
+ try {
435
+ const comment = req.body;
436
+ // Broadcast to WebSocket clients
437
+ broadcast(wss, {
438
+ type: 'comment_created',
439
+ data: comment
440
+ });
441
+ res.json({ success: true });
442
+ }
443
+ catch (error) {
444
+ res.status(500).json({ error: 'Failed to process notification' });
445
+ }
446
+ });
447
+ app.post('/api/cli-notifications/comment-deleted', async (req, res) => {
448
+ try {
449
+ const { id, ticketId } = req.body;
450
+ // Broadcast to WebSocket clients
451
+ broadcast(wss, {
452
+ type: 'comment_deleted',
453
+ data: { id, ticketId }
454
+ });
455
+ res.json({ success: true });
456
+ }
457
+ catch (error) {
458
+ res.status(500).json({ error: 'Failed to process notification' });
459
+ }
460
+ });
461
+ // Serve web app for all other routes
462
+ app.get('*', (req, res) => {
463
+ res.sendFile(path.join(process.cwd(), 'dist', 'web', 'index.html'));
464
+ });
465
+ // WebSocket connection handling
466
+ wss.on('connection', (ws) => {
467
+ console.log(chalk.dim('WebSocket client connected'));
468
+ ws.on('close', () => {
469
+ console.log(chalk.dim('WebSocket client disconnected'));
470
+ });
471
+ });
472
+ // Start server
473
+ server.listen(port, host, () => {
474
+ console.log(chalk.green('🚀 tkxr server started'));
475
+ console.log(` Local: http://${host}:${port}`);
476
+ console.log(` API: http://${host}:${port}/api`);
477
+ console.log();
478
+ console.log(chalk.dim('Press Ctrl+C to stop'));
479
+ });
480
+ // Graceful shutdown
481
+ process.on('SIGINT', () => {
482
+ console.log(chalk.yellow('\n⏹️ Shutting down server...'));
483
+ // Clean up server config file
484
+ try {
485
+ const configPath = path.join(process.cwd(), '.env.tkxr');
486
+ unlinkSync(configPath);
487
+ }
488
+ catch (error) {
489
+ // Ignore cleanup errors
490
+ }
491
+ server.close(() => {
492
+ console.log(chalk.green('Server stopped'));
493
+ process.exit(0);
494
+ });
495
+ });
496
+ }
497
+ function broadcast(wss, message) {
498
+ const data = JSON.stringify(message);
499
+ wss.clients.forEach(client => {
500
+ if (client.readyState === client.OPEN) {
501
+ client.send(data);
502
+ }
503
+ });
504
+ }
505
+ //# sourceMappingURL=serve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type minimist from 'minimist';
2
+ interface ShowArgs extends minimist.ParsedArgs {
3
+ _: string[];
4
+ }
5
+ export declare function showTicket(args: ShowArgs): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=show.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/show.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAIrC,UAAU,QAAS,SAAQ,QAAQ,CAAC,UAAU;IAC5C,CAAC,EAAE,MAAM,EAAE,CAAC;CACb;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAiG9D"}
@@ -0,0 +1,84 @@
1
+ import chalk from 'chalk';
2
+ import { createStorage } from '../../core/storage.js';
3
+ export async function showTicket(args) {
4
+ const [, ticketId] = args._;
5
+ if (!ticketId) {
6
+ console.log(chalk.red('Error: Please provide a ticket ID'));
7
+ console.log(chalk.dim('Usage: tkxr show <ticket-id>'));
8
+ return;
9
+ }
10
+ const storage = await createStorage();
11
+ try {
12
+ // Find the ticket using the new storage method
13
+ const result = await storage.findTicket(ticketId);
14
+ if (!result) {
15
+ console.log(chalk.red(`Ticket '${ticketId}' not found`));
16
+ return;
17
+ }
18
+ const ticket = result.ticket;
19
+ // Load related data for display names
20
+ const users = await storage.getUsers();
21
+ const sprints = await storage.getSprints();
22
+ // Helper functions to get display names
23
+ const getUserDisplayName = (userId) => {
24
+ if (!userId)
25
+ return undefined;
26
+ const user = users.find(u => u.id === userId);
27
+ return user?.displayName || userId;
28
+ };
29
+ const getSprintName = (sprintId) => {
30
+ if (!sprintId)
31
+ return undefined;
32
+ const sprint = sprints.find(s => s.id === sprintId);
33
+ return sprint?.name || sprintId;
34
+ };
35
+ const statusColors = {
36
+ todo: chalk.gray,
37
+ progress: chalk.yellow,
38
+ done: chalk.green,
39
+ };
40
+ const priorityColors = {
41
+ low: chalk.blue,
42
+ medium: chalk.yellow,
43
+ high: chalk.magenta,
44
+ critical: chalk.red,
45
+ };
46
+ const typeIcon = ticket.type === 'task' ? '📋' : '🐛';
47
+ const statusColor = statusColors[ticket.status] || chalk.white;
48
+ const priorityColor = ticket.priority ? priorityColors[ticket.priority] || chalk.white : chalk.white;
49
+ console.log();
50
+ console.log(chalk.bold(`${typeIcon} ${ticket.title}`));
51
+ console.log(chalk.dim('─'.repeat(50)));
52
+ console.log(`${chalk.blue('ID:')} ${ticket.id}`);
53
+ console.log(`${chalk.blue('Type:')} ${ticket.type}`);
54
+ console.log(`${chalk.blue('Status:')} ${statusColor(ticket.status)}`);
55
+ if (ticket.priority) {
56
+ console.log(`${chalk.blue('Priority:')} ${priorityColor(ticket.priority)}`);
57
+ }
58
+ if (ticket.assignee) {
59
+ console.log(`${chalk.blue('Assignee:')} ${getUserDisplayName(ticket.assignee)}`);
60
+ }
61
+ if (ticket.sprint) {
62
+ console.log(`${chalk.blue('Sprint:')} ${getSprintName(ticket.sprint)}`);
63
+ }
64
+ if (ticket.estimate) {
65
+ console.log(`${chalk.blue('Estimate:')} ${ticket.estimate} ${ticket.estimate === 1 ? 'point' : 'points'}`);
66
+ }
67
+ if (ticket.labels && ticket.labels.length > 0) {
68
+ console.log(`${chalk.blue('Labels:')} ${ticket.labels.join(', ')}`);
69
+ }
70
+ if (ticket.description) {
71
+ console.log();
72
+ console.log(chalk.blue('Description:'));
73
+ console.log(ticket.description);
74
+ }
75
+ console.log();
76
+ console.log(chalk.dim(`Created: ${new Date(ticket.createdAt).toLocaleString()}`));
77
+ console.log(chalk.dim(`Updated: ${new Date(ticket.updatedAt).toLocaleString()}`));
78
+ console.log();
79
+ }
80
+ catch (error) {
81
+ console.log(chalk.red(`Error showing ticket: ${error instanceof Error ? error.message : 'Unknown error'}`));
82
+ }
83
+ }
84
+ //# sourceMappingURL=show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/cli/commands/show.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAOtD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAE5B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,+CAA+C;QAC/C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,QAAQ,aAAa,CAAC,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE7B,sCAAsC;QACtC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QAE3C,wCAAwC;QACxC,MAAM,kBAAkB,GAAG,CAAC,MAA0B,EAAE,EAAE;YACxD,IAAI,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;YAC9C,OAAO,IAAI,EAAE,WAAW,IAAI,MAAM,CAAC;QACrC,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,QAA4B,EAAE,EAAE;YACrD,IAAI,CAAC,QAAQ;gBAAE,OAAO,SAAS,CAAC;YAChC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YACpD,OAAO,MAAM,EAAE,IAAI,IAAI,QAAQ,CAAC;QAClC,CAAC,CAAC;QAEF,MAAM,YAAY,GAAmD;YACnE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,MAAM;YACtB,IAAI,EAAE,KAAK,CAAC,KAAK;SAClB,CAAC;QAEF,MAAM,cAAc,GAAG;YACrB,GAAG,EAAE,KAAK,CAAC,IAAI;YACf,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,OAAO;YACnB,QAAQ,EAAE,KAAK,CAAC,GAAG;SACpB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACtD,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC;QAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QAErG,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEzE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9G,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,EAAE,CAAC;IAEhB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAC9G,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type minimist from 'minimist';
2
+ interface SprintArgs extends minimist.ParsedArgs {
3
+ _: string[];
4
+ description?: string;
5
+ goal?: string;
6
+ 'start-date'?: string;
7
+ 'end-date'?: string;
8
+ }
9
+ export declare function manageSprint(args: SprintArgs): Promise<void>;
10
+ export {};
11
+ //# sourceMappingURL=sprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sprint.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sprint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAGrC,UAAU,UAAW,SAAQ,QAAQ,CAAC,UAAU;IAC9C,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBlE"}