@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.
- package/LICENSE +21 -0
- package/README.md +477 -0
- package/dist/cli/commands/comments.d.ts +10 -0
- package/dist/cli/commands/comments.d.ts.map +1 -0
- package/dist/cli/commands/comments.js +81 -0
- package/dist/cli/commands/comments.js.map +1 -0
- package/dist/cli/commands/create.d.ts +11 -0
- package/dist/cli/commands/create.d.ts.map +1 -0
- package/dist/cli/commands/create.js +74 -0
- package/dist/cli/commands/create.js.map +1 -0
- package/dist/cli/commands/delete.d.ts +7 -0
- package/dist/cli/commands/delete.d.ts.map +1 -0
- package/dist/cli/commands/delete.js +61 -0
- package/dist/cli/commands/delete.js.map +1 -0
- package/dist/cli/commands/list.d.ts +16 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +239 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +8 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +52 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +8 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +505 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/show.d.ts +7 -0
- package/dist/cli/commands/show.d.ts.map +1 -0
- package/dist/cli/commands/show.js +84 -0
- package/dist/cli/commands/show.js.map +1 -0
- package/dist/cli/commands/sprint.d.ts +11 -0
- package/dist/cli/commands/sprint.d.ts.map +1 -0
- package/dist/cli/commands/sprint.js +114 -0
- package/dist/cli/commands/sprint.js.map +1 -0
- package/dist/cli/commands/sprints.d.ts +10 -0
- package/dist/cli/commands/sprints.d.ts.map +1 -0
- package/dist/cli/commands/sprints.js +64 -0
- package/dist/cli/commands/sprints.js.map +1 -0
- package/dist/cli/commands/status.d.ts +6 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +48 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/user.d.ts +8 -0
- package/dist/cli/commands/user.d.ts.map +1 -0
- package/dist/cli/commands/user.js +61 -0
- package/dist/cli/commands/user.js.map +1 -0
- package/dist/cli/commands/users.d.ts +7 -0
- package/dist/cli/commands/users.d.ts.map +1 -0
- package/dist/cli/commands/users.js +28 -0
- package/dist/cli/commands/users.js.map +1 -0
- package/dist/cli/commands/version.d.ts +7 -0
- package/dist/cli/commands/version.d.ts.map +1 -0
- package/dist/cli/commands/version.js +94 -0
- package/dist/cli/commands/version.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +146 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/notifier.d.ts +51 -0
- package/dist/core/notifier.d.ts.map +1 -0
- package/dist/core/notifier.js +118 -0
- package/dist/core/notifier.js.map +1 -0
- package/dist/core/storage.d.ts +41 -0
- package/dist/core/storage.d.ts.map +1 -0
- package/dist/core/storage.js +383 -0
- package/dist/core/storage.js.map +1 -0
- package/dist/core/test_getAllTickets.d.ts +2 -0
- package/dist/core/test_getAllTickets.d.ts.map +1 -0
- package/dist/core/test_getAllTickets.js +7 -0
- package/dist/core/test_getAllTickets.js.map +1 -0
- package/dist/core/types.d.ts +67 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/server.d.ts +25 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +489 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/web/_app/immutable/assets/0.47dd68fd.css +1 -0
- package/dist/web/_app/immutable/assets/2.3f11c9a4.css +1 -0
- package/dist/web/_app/immutable/assets/_layout.47e0a118.css +1 -0
- package/dist/web/_app/immutable/assets/_page.3f11c9a4.css +1 -0
- package/dist/web/_app/immutable/chunks/index.23b89654.js +1 -0
- package/dist/web/_app/immutable/chunks/index.f094d695.js +1 -0
- package/dist/web/_app/immutable/chunks/scheduler.81694808.js +1 -0
- package/dist/web/_app/immutable/chunks/singletons.9c246a72.js +1 -0
- package/dist/web/_app/immutable/chunks/stores.48058fce.js +1 -0
- package/dist/web/_app/immutable/entry/app.fea83d45.js +1 -0
- package/dist/web/_app/immutable/entry/start.3fd90366.js +3 -0
- package/dist/web/_app/immutable/nodes/0.e605bf9a.js +1 -0
- package/dist/web/_app/immutable/nodes/1.e3ce54f6.js +1 -0
- package/dist/web/_app/immutable/nodes/2.04dfac64.js +13 -0
- package/dist/web/_app/version.json +1 -0
- package/dist/web/favicon.png +3 -0
- package/dist/web/favicon.svg +10 -0
- package/dist/web/index.html +37 -0
- package/package.json +60 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { createStorage } from '../../core/storage.js';
|
|
3
|
+
export async function manageSprint(args) {
|
|
4
|
+
const [, subcommand, ...rest] = args._; // Skip the 'sprint' command itself
|
|
5
|
+
if (!subcommand || subcommand === 'help') {
|
|
6
|
+
showSprintHelp();
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
switch (subcommand) {
|
|
10
|
+
case 'create':
|
|
11
|
+
await createSprint(rest, args);
|
|
12
|
+
break;
|
|
13
|
+
case 'status':
|
|
14
|
+
await updateSprintStatus(rest);
|
|
15
|
+
break;
|
|
16
|
+
default:
|
|
17
|
+
console.error(chalk.red(`Unknown sprint command: ${subcommand}`));
|
|
18
|
+
console.log(chalk.gray('Use "sprint help" for available commands.'));
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function showSprintHelp() {
|
|
23
|
+
console.log(chalk.blue.bold('Sprint Management Commands:'));
|
|
24
|
+
console.log();
|
|
25
|
+
console.log(chalk.green('Usage:'));
|
|
26
|
+
console.log(' tkxr sprint <command> [options]');
|
|
27
|
+
console.log();
|
|
28
|
+
console.log(chalk.green('Commands:'));
|
|
29
|
+
console.log(' create <name> Create a new sprint');
|
|
30
|
+
console.log(' status <id> <status> Update sprint status');
|
|
31
|
+
console.log();
|
|
32
|
+
console.log(chalk.green('Options:'));
|
|
33
|
+
console.log(' --description <text> Sprint description (optional)');
|
|
34
|
+
console.log(' --goal <text> Sprint goal (optional)');
|
|
35
|
+
console.log(' --start-date <date> Start date (optional)');
|
|
36
|
+
console.log(' --end-date <date> End date (optional)');
|
|
37
|
+
console.log();
|
|
38
|
+
console.log(chalk.green('Status values:'));
|
|
39
|
+
console.log(' planning, active, completed');
|
|
40
|
+
console.log();
|
|
41
|
+
console.log(chalk.green('Examples:'));
|
|
42
|
+
console.log(' tkxr sprint create "Sprint 1"');
|
|
43
|
+
console.log(' tkxr sprint create "Feature Sprint" --description "Add new features" --goal "Complete user auth"');
|
|
44
|
+
console.log(' tkxr sprint status spr-abc123 active');
|
|
45
|
+
}
|
|
46
|
+
async function createSprint(rest, args) {
|
|
47
|
+
const [name] = rest;
|
|
48
|
+
if (!name) {
|
|
49
|
+
console.error(chalk.red('Sprint name is required.'));
|
|
50
|
+
console.log(chalk.gray('Usage: tkxr sprint create <name>'));
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
const storage = await createStorage();
|
|
55
|
+
const options = {};
|
|
56
|
+
if (args.description)
|
|
57
|
+
options.description = args.description;
|
|
58
|
+
if (args.goal)
|
|
59
|
+
options.goal = args.goal;
|
|
60
|
+
if (args['start-date'])
|
|
61
|
+
options.startDate = new Date(args['start-date']);
|
|
62
|
+
if (args['end-date'])
|
|
63
|
+
options.endDate = new Date(args['end-date']);
|
|
64
|
+
const sprint = await storage.createSprint(name, options);
|
|
65
|
+
console.log(chalk.green.bold('✓ Sprint created successfully!'));
|
|
66
|
+
console.log();
|
|
67
|
+
console.log(chalk.white.bold(sprint.name));
|
|
68
|
+
console.log(chalk.gray(` ID: ${sprint.id}`));
|
|
69
|
+
console.log(chalk.gray(` Status: `) + chalk.yellow(sprint.status));
|
|
70
|
+
if (sprint.description) {
|
|
71
|
+
console.log(chalk.gray(` Description: ${sprint.description}`));
|
|
72
|
+
}
|
|
73
|
+
if (sprint.goal) {
|
|
74
|
+
console.log(chalk.gray(` Goal: ${sprint.goal}`));
|
|
75
|
+
}
|
|
76
|
+
console.log(chalk.gray(` Created: ${new Date(sprint.createdAt).toLocaleDateString()}`));
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
console.error(chalk.red('Error creating sprint:'), error instanceof Error ? error.message : String(error));
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async function updateSprintStatus(rest) {
|
|
84
|
+
const [id, status] = rest;
|
|
85
|
+
if (!id || !status) {
|
|
86
|
+
console.error(chalk.red('Sprint ID and status are required.'));
|
|
87
|
+
console.log(chalk.gray('Usage: tkxr sprint status <id> <status>'));
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
if (!['planning', 'active', 'completed'].includes(status)) {
|
|
91
|
+
console.error(chalk.red('Invalid status. Must be: planning, active, or completed'));
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
try {
|
|
95
|
+
const storage = await createStorage();
|
|
96
|
+
const sprint = await storage.updateSprintStatus(id, status);
|
|
97
|
+
if (!sprint) {
|
|
98
|
+
console.error(chalk.red(`Sprint with ID "${id}" not found.`));
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
const statusColor = status === 'completed' ? 'green' :
|
|
102
|
+
status === 'active' ? 'blue' : 'yellow';
|
|
103
|
+
console.log(chalk.green.bold('✓ Sprint status updated!'));
|
|
104
|
+
console.log();
|
|
105
|
+
console.log(chalk.white.bold(sprint.name));
|
|
106
|
+
console.log(chalk.gray(` ID: ${sprint.id}`));
|
|
107
|
+
console.log(chalk.gray(` Status: `) + chalk[statusColor](sprint.status));
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
console.error(chalk.red('Error updating sprint status:'), error instanceof Error ? error.message : String(error));
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=sprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprint.js","sourceRoot":"","sources":["../../../src/cli/commands/sprint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type minimist from 'minimist';
|
|
2
|
+
interface SprintsArgs extends minimist.ParsedArgs {
|
|
3
|
+
_: string[];
|
|
4
|
+
status?: 'planning' | 'active' | 'completed';
|
|
5
|
+
archived?: boolean;
|
|
6
|
+
a?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function listSprints(args: SprintsArgs): Promise<void>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=sprints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprints.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sprints.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAGrC,UAAU,WAAY,SAAQ,QAAQ,CAAC,UAAU;IAC/C,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,MAAM,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,CAAC,EAAE,OAAO,CAAC;CACb;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAoElE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { createStorage } from '../../core/storage.js';
|
|
3
|
+
export async function listSprints(args) {
|
|
4
|
+
try {
|
|
5
|
+
const storage = await createStorage();
|
|
6
|
+
let sprints = await storage.getSprints();
|
|
7
|
+
// Filter by status if provided
|
|
8
|
+
if (args.status) {
|
|
9
|
+
sprints = sprints.filter(sprint => sprint.status === args.status);
|
|
10
|
+
}
|
|
11
|
+
// Get archived sprints if requested
|
|
12
|
+
const archived = args.archived || args.a ? await storage.getArchivedSprints() : [];
|
|
13
|
+
if (sprints.length === 0 && archived.length === 0) {
|
|
14
|
+
const statusText = args.status ? ` with status "${args.status}"` : '';
|
|
15
|
+
console.log(chalk.yellow(`No sprints found${statusText}.`));
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
// Active sprints
|
|
19
|
+
if (sprints.length > 0) {
|
|
20
|
+
const statusText = args.status ? ` (${args.status})` : '';
|
|
21
|
+
console.log(chalk.blue.bold(`Found ${sprints.length} sprint${sprints.length === 1 ? '' : 's'}${statusText}:`));
|
|
22
|
+
console.log();
|
|
23
|
+
for (const sprint of sprints) {
|
|
24
|
+
const statusColor = sprint.status === 'completed' ? 'green' :
|
|
25
|
+
sprint.status === 'active' ? 'blue' : 'yellow';
|
|
26
|
+
console.log(chalk.white.bold(sprint.name));
|
|
27
|
+
console.log(chalk.gray(` ID: ${sprint.id}`));
|
|
28
|
+
console.log(chalk.gray(` Status: `) + chalk[statusColor](sprint.status));
|
|
29
|
+
if (sprint.description) {
|
|
30
|
+
console.log(chalk.gray(` Description: ${sprint.description}`));
|
|
31
|
+
}
|
|
32
|
+
if (sprint.goal) {
|
|
33
|
+
console.log(chalk.gray(` Goal: ${sprint.goal}`));
|
|
34
|
+
}
|
|
35
|
+
console.log(chalk.gray(` Created: ${new Date(sprint.createdAt).toLocaleDateString()}`));
|
|
36
|
+
if (sprint.startDate) {
|
|
37
|
+
console.log(chalk.gray(` Start Date: ${new Date(sprint.startDate).toLocaleDateString()}`));
|
|
38
|
+
}
|
|
39
|
+
if (sprint.endDate) {
|
|
40
|
+
console.log(chalk.gray(` End Date: ${new Date(sprint.endDate).toLocaleDateString()}`));
|
|
41
|
+
}
|
|
42
|
+
console.log();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Archived sprints
|
|
46
|
+
if ((args.archived || args.a) && archived.length > 0) {
|
|
47
|
+
if (sprints.length > 0)
|
|
48
|
+
console.log('─'.repeat(50)); // Add separator
|
|
49
|
+
console.log(chalk.blue.bold(`📁 Archived Sprints (${archived.length}):`));
|
|
50
|
+
console.log();
|
|
51
|
+
for (const sprintId of archived) {
|
|
52
|
+
console.log(chalk.white.bold(`Sprint Archive: ${sprintId}`));
|
|
53
|
+
console.log(chalk.gray(` Archive File: tkxr/archives/archive-${sprintId}.yaml`));
|
|
54
|
+
console.log(chalk.gray(` Status: `) + chalk.green('completed'));
|
|
55
|
+
console.log();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error(chalk.red('Error listing sprints:'), error instanceof Error ? error.message : String(error));
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=sprints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprints.js","sourceRoot":"","sources":["../../../src/cli/commands/sprints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAKrC,UAAU,UAAW,SAAQ,QAAQ,CAAC,UAAU;CAAG;AAInD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDxE"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { createStorage } from '../../core/storage.js';
|
|
3
|
+
import { notifier } from '../../core/notifier.js';
|
|
4
|
+
const VALID_STATUSES = ['todo', 'progress', 'done'];
|
|
5
|
+
export async function updateTicketStatus(args) {
|
|
6
|
+
const [, id, status] = args._;
|
|
7
|
+
if (!id) {
|
|
8
|
+
console.log(chalk.red('Error: Ticket ID is required'));
|
|
9
|
+
console.log('Usage: tkxr status <id> <status>');
|
|
10
|
+
console.log(`Valid statuses: ${VALID_STATUSES.join(', ')}`);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
if (!status) {
|
|
14
|
+
console.log(chalk.red('Error: Status is required'));
|
|
15
|
+
console.log(`Valid statuses: ${VALID_STATUSES.join(', ')}`);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (!VALID_STATUSES.includes(status)) {
|
|
19
|
+
console.log(chalk.red(`Error: Invalid status "${status}"`));
|
|
20
|
+
console.log(`Valid statuses: ${VALID_STATUSES.join(', ')}`);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const storage = await createStorage();
|
|
24
|
+
try {
|
|
25
|
+
const updatedTicket = await storage.updateTicketStatus(id, status);
|
|
26
|
+
if (!updatedTicket) {
|
|
27
|
+
console.log(chalk.red(`Error: No ticket found with ID "${id}"`));
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
// Notify web UI
|
|
31
|
+
await notifier.notifyTicketUpdated(updatedTicket);
|
|
32
|
+
const statusColors = {
|
|
33
|
+
todo: chalk.gray,
|
|
34
|
+
progress: chalk.yellow,
|
|
35
|
+
done: chalk.green,
|
|
36
|
+
};
|
|
37
|
+
const statusColor = statusColors[updatedTicket.status];
|
|
38
|
+
console.log(chalk.green(`✓ Updated ticket status`));
|
|
39
|
+
console.log(` ID: ${chalk.blue(updatedTicket.id)}`);
|
|
40
|
+
console.log(` Title: ${updatedTicket.title}`);
|
|
41
|
+
console.log(` Status: ${statusColor(updatedTicket.status)}`);
|
|
42
|
+
console.log(` Updated: ${updatedTicket.updatedAt.toLocaleString()}`);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.log(chalk.red(`Error updating ticket status: ${error instanceof Error ? error.message : 'Unknown error'}`));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/user.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAGrC,UAAU,QAAS,SAAQ,QAAQ,CAAC,UAAU;IAC5C,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB9D"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { createStorage } from '../../core/storage.js';
|
|
3
|
+
export async function manageUser(args) {
|
|
4
|
+
const [, subcommand, ...rest] = args._; // Skip the 'user' command itself
|
|
5
|
+
if (!subcommand || subcommand === 'help') {
|
|
6
|
+
showUserHelp();
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
switch (subcommand) {
|
|
10
|
+
case 'create':
|
|
11
|
+
await createUser(rest, args);
|
|
12
|
+
break;
|
|
13
|
+
default:
|
|
14
|
+
console.error(chalk.red(`Unknown user command: ${subcommand}`));
|
|
15
|
+
console.log(chalk.gray('Use "user help" for available commands.'));
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function showUserHelp() {
|
|
20
|
+
console.log(chalk.blue.bold('User Management Commands:'));
|
|
21
|
+
console.log();
|
|
22
|
+
console.log(chalk.green('Usage:'));
|
|
23
|
+
console.log(' tkxr user <command> [options]');
|
|
24
|
+
console.log();
|
|
25
|
+
console.log(chalk.green('Commands:'));
|
|
26
|
+
console.log(' create <username> <displayName> Create a new user');
|
|
27
|
+
console.log();
|
|
28
|
+
console.log(chalk.green('Options:'));
|
|
29
|
+
console.log(' --email <email> Email address (optional)');
|
|
30
|
+
console.log();
|
|
31
|
+
console.log(chalk.green('Examples:'));
|
|
32
|
+
console.log(' tkxr user create johndoe "John Doe"');
|
|
33
|
+
console.log(' tkxr user create alice "Alice Smith" --email alice@example.com');
|
|
34
|
+
}
|
|
35
|
+
async function createUser(rest, args) {
|
|
36
|
+
const [username, displayName] = rest;
|
|
37
|
+
if (!username || !displayName) {
|
|
38
|
+
console.error(chalk.red('Username and display name are required.'));
|
|
39
|
+
console.log(chalk.gray('Usage: tkxr user create <username> <displayName>'));
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
const storage = await createStorage();
|
|
44
|
+
const user = await storage.createUser(username, displayName, {
|
|
45
|
+
email: args.email,
|
|
46
|
+
});
|
|
47
|
+
console.log(chalk.green.bold('✓ User created successfully!'));
|
|
48
|
+
console.log();
|
|
49
|
+
console.log(chalk.white.bold(`${user.displayName} (@${user.username})`));
|
|
50
|
+
console.log(chalk.gray(` ID: ${user.id}`));
|
|
51
|
+
if (user.email) {
|
|
52
|
+
console.log(chalk.gray(` Email: ${user.email}`));
|
|
53
|
+
}
|
|
54
|
+
console.log(chalk.gray(` Created: ${new Date(user.createdAt).toLocaleDateString()}`));
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
console.error(chalk.red('Error creating user:'), error instanceof Error ? error.message : String(error));
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/cli/commands/user.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/users.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAGrC,UAAU,SAAU,SAAQ,QAAQ,CAAC,UAAU;IAC7C,CAAC,EAAE,MAAM,EAAE,CAAC;CACb;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B9D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { createStorage } from '../../core/storage.js';
|
|
3
|
+
export async function listUsers(args) {
|
|
4
|
+
try {
|
|
5
|
+
const storage = await createStorage();
|
|
6
|
+
const users = await storage.getUsers();
|
|
7
|
+
if (users.length === 0) {
|
|
8
|
+
console.log(chalk.yellow('No users found.'));
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
console.log(chalk.blue.bold(`Found ${users.length} user${users.length === 1 ? '' : 's'}:`));
|
|
12
|
+
console.log();
|
|
13
|
+
for (const user of users) {
|
|
14
|
+
console.log(chalk.white.bold(`${user.displayName} (@${user.username})`));
|
|
15
|
+
console.log(chalk.gray(` ID: ${user.id}`));
|
|
16
|
+
if (user.email) {
|
|
17
|
+
console.log(chalk.gray(` Email: ${user.email}`));
|
|
18
|
+
}
|
|
19
|
+
console.log(chalk.gray(` Created: ${new Date(user.createdAt).toLocaleDateString()}`));
|
|
20
|
+
console.log();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
console.error(chalk.red('Error listing users:'), error instanceof Error ? error.message : String(error));
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=users.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../../src/cli/commands/users.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAMtD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAe;IAC7C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;QAEvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;YACvF,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/version.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAIrC,UAAU,WAAY,SAAQ,QAAQ,CAAC,UAAU;IAC/C,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CACpC;AAiCD,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAuEpE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { promises as fs } from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
function parseVersion(version) {
|
|
5
|
+
const parts = version.split('.').map(Number);
|
|
6
|
+
return [parts[0] || 0, parts[1] || 0, parts[2] || 0];
|
|
7
|
+
}
|
|
8
|
+
function formatVersion(major, minor, patch) {
|
|
9
|
+
return `${major}.${minor}.${patch}`;
|
|
10
|
+
}
|
|
11
|
+
function bumpVersion(version, type) {
|
|
12
|
+
const [major, minor, patch] = parseVersion(version);
|
|
13
|
+
switch (type) {
|
|
14
|
+
case 'major':
|
|
15
|
+
return formatVersion(major + 1, 0, 0);
|
|
16
|
+
case 'minor':
|
|
17
|
+
return formatVersion(major, minor + 1, 0);
|
|
18
|
+
case 'patch':
|
|
19
|
+
return formatVersion(major, minor, patch + 1);
|
|
20
|
+
default:
|
|
21
|
+
return version;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async function updatePackageVersion(filePath, newVersion) {
|
|
25
|
+
const content = await fs.readFile(filePath, 'utf8');
|
|
26
|
+
const pkg = JSON.parse(content);
|
|
27
|
+
pkg.version = newVersion;
|
|
28
|
+
await fs.writeFile(filePath, JSON.stringify(pkg, null, 2) + '\n', 'utf8');
|
|
29
|
+
}
|
|
30
|
+
export async function manageVersion(args) {
|
|
31
|
+
try {
|
|
32
|
+
const rootPkgPath = path.join(process.cwd(), 'package.json');
|
|
33
|
+
const webPkgPath = path.join(process.cwd(), 'src', 'web', 'package.json');
|
|
34
|
+
// Read current version from root package.json
|
|
35
|
+
const rootPkgContent = await fs.readFile(rootPkgPath, 'utf8');
|
|
36
|
+
const rootPkg = JSON.parse(rootPkgContent);
|
|
37
|
+
const currentVersion = rootPkg.version || '0.0.0';
|
|
38
|
+
// If no bump type specified, just show current version
|
|
39
|
+
if (!args.bump) {
|
|
40
|
+
console.log(chalk.blue('Current version:'), chalk.bold(currentVersion));
|
|
41
|
+
// Check if web version is in sync
|
|
42
|
+
try {
|
|
43
|
+
const webPkgContent = await fs.readFile(webPkgPath, 'utf8');
|
|
44
|
+
const webPkg = JSON.parse(webPkgContent);
|
|
45
|
+
const webVersion = webPkg.version || '0.0.0';
|
|
46
|
+
if (webVersion !== currentVersion) {
|
|
47
|
+
console.log(chalk.yellow('⚠️ Web package version is out of sync:'), webVersion);
|
|
48
|
+
console.log(chalk.gray(' Run "tkxr version --bump patch" to sync versions'));
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
console.log(chalk.green('✓ All packages are in sync'));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
// Web package might not exist
|
|
56
|
+
}
|
|
57
|
+
console.log();
|
|
58
|
+
console.log(chalk.gray('To bump version, use:'));
|
|
59
|
+
console.log(chalk.gray(' tkxr version --bump patch # 1.0.0 → 1.0.1'));
|
|
60
|
+
console.log(chalk.gray(' tkxr version --bump minor # 1.0.0 → 1.1.0'));
|
|
61
|
+
console.log(chalk.gray(' tkxr version --bump major # 1.0.0 → 2.0.0'));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// Validate bump type
|
|
65
|
+
if (!['patch', 'minor', 'major'].includes(args.bump)) {
|
|
66
|
+
console.log(chalk.red('Error: Invalid bump type. Use patch, minor, or major'));
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
// Calculate new version
|
|
70
|
+
const newVersion = bumpVersion(currentVersion, args.bump);
|
|
71
|
+
console.log(chalk.blue('Version bump:'), chalk.dim(currentVersion), '→', chalk.bold.green(newVersion));
|
|
72
|
+
// Update root package.json
|
|
73
|
+
await updatePackageVersion(rootPkgPath, newVersion);
|
|
74
|
+
console.log(chalk.green('✓ Updated root package.json'));
|
|
75
|
+
// Update web package.json
|
|
76
|
+
try {
|
|
77
|
+
await updatePackageVersion(webPkgPath, newVersion);
|
|
78
|
+
console.log(chalk.green('✓ Updated web package.json'));
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
console.log(chalk.yellow('⚠️ Could not update web package.json'));
|
|
82
|
+
}
|
|
83
|
+
console.log();
|
|
84
|
+
console.log(chalk.gray('Next steps:'));
|
|
85
|
+
console.log(chalk.gray(' 1. Commit the changes: git add package.json src/web/package.json'));
|
|
86
|
+
console.log(chalk.gray(` 2. Create a tag: git tag v${newVersion}`));
|
|
87
|
+
console.log(chalk.gray(' 3. Push: git push && git push --tags'));
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
console.log(chalk.red('Error managing version:'), error instanceof Error ? error.message : error);
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/cli/commands/version.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|