@workdynamite/cli 1.0.0 ā 1.1.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.
- package/dist/commands/config.js +32 -38
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +45 -46
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.js +11 -17
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/pick.js +33 -39
- package/dist/commands/pick.js.map +1 -1
- package/dist/commands/projects.js +44 -50
- package/dist/commands/projects.js.map +1 -1
- package/dist/commands/status.js +35 -41
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/tasks.js +33 -39
- package/dist/commands/tasks.js.map +1 -1
- package/dist/index.js +18 -20
- package/dist/index.js.map +1 -1
- package/dist/lib/api.js +9 -17
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/config.d.ts +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +10 -23
- package/dist/lib/config.js.map +1 -1
- package/package.json +3 -3
- package/src/commands/login.ts +14 -10
- package/src/lib/api.ts +1 -1
- package/src/lib/config.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/status.js
CHANGED
|
@@ -1,35 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const commander_1 = require("commander");
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const ora_1 = __importDefault(require("ora"));
|
|
10
|
-
const api_js_1 = require("../lib/api.js");
|
|
11
|
-
const config_js_1 = require("../lib/config.js");
|
|
12
|
-
exports.statusCommand = new commander_1.Command('status')
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import { getMe, getProjects, getTasks } from '../lib/api.js';
|
|
5
|
+
import { isAuthenticated, getConfig } from '../lib/config.js';
|
|
6
|
+
export const statusCommand = new Command('status')
|
|
13
7
|
.description('Show current login status and context')
|
|
14
8
|
.action(async () => {
|
|
15
|
-
const config =
|
|
16
|
-
console.log(
|
|
17
|
-
console.log(
|
|
18
|
-
if (!
|
|
19
|
-
console.log('\n ' +
|
|
20
|
-
console.log(
|
|
9
|
+
const config = getConfig();
|
|
10
|
+
console.log(chalk.bold('\nš§ WorkDynamite CLI Status\n'));
|
|
11
|
+
console.log(chalk.dim('ā'.repeat(50)));
|
|
12
|
+
if (!isAuthenticated()) {
|
|
13
|
+
console.log('\n ' + chalk.red('ā') + ' Not logged in');
|
|
14
|
+
console.log(chalk.dim('\n Run "workdynamite login" to authenticate.\n'));
|
|
21
15
|
return;
|
|
22
16
|
}
|
|
23
|
-
const spinner = (
|
|
17
|
+
const spinner = ora('Fetching status...').start();
|
|
24
18
|
// Fetch user info
|
|
25
|
-
const { data: meData, error: meError } = await
|
|
19
|
+
const { data: meData, error: meError } = await getMe();
|
|
26
20
|
if (meError) {
|
|
27
|
-
spinner.fail(
|
|
21
|
+
spinner.fail(chalk.red(`Failed to fetch status: ${meError}`));
|
|
28
22
|
return;
|
|
29
23
|
}
|
|
30
24
|
// Fetch projects and tasks count
|
|
31
|
-
const { data: projectsData } = await
|
|
32
|
-
const { data: tasksData } = await
|
|
25
|
+
const { data: projectsData } = await getProjects();
|
|
26
|
+
const { data: tasksData } = await getTasks({ limit: 100 });
|
|
33
27
|
spinner.stop();
|
|
34
28
|
const user = meData.user;
|
|
35
29
|
const projects = projectsData?.projects || [];
|
|
@@ -40,41 +34,41 @@ exports.statusCommand = new commander_1.Command('status')
|
|
|
40
34
|
acc[state] = (acc[state] || 0) + 1;
|
|
41
35
|
return acc;
|
|
42
36
|
}, {});
|
|
43
|
-
console.log('\n ' +
|
|
37
|
+
console.log('\n ' + chalk.green('ā') + ' Logged in');
|
|
44
38
|
console.log('');
|
|
45
|
-
console.log(' ' +
|
|
46
|
-
console.log(' ' +
|
|
47
|
-
console.log(' ' +
|
|
39
|
+
console.log(' ' + chalk.dim('User: ') + chalk.bold(user.name || user.email));
|
|
40
|
+
console.log(' ' + chalk.dim('Email: ') + user.email);
|
|
41
|
+
console.log(' ' + chalk.dim('Projects: ') + projects.length);
|
|
48
42
|
console.log('');
|
|
49
43
|
// Default project
|
|
50
44
|
if (config.default_project) {
|
|
51
45
|
const defaultProject = projects.find(p => p.id === config.default_project);
|
|
52
|
-
console.log(' ' +
|
|
46
|
+
console.log(' ' + chalk.dim('Default Project: ') + chalk.cyan(defaultProject?.name || 'Unknown'));
|
|
53
47
|
}
|
|
54
48
|
else {
|
|
55
|
-
console.log(' ' +
|
|
49
|
+
console.log(' ' + chalk.dim('Default Project: ') + chalk.yellow('(none set)'));
|
|
56
50
|
}
|
|
57
51
|
console.log('');
|
|
58
|
-
console.log(
|
|
59
|
-
console.log(
|
|
52
|
+
console.log(chalk.dim('ā'.repeat(50)));
|
|
53
|
+
console.log(chalk.bold('\nš Task Summary\n'));
|
|
60
54
|
if (tasks.length === 0) {
|
|
61
|
-
console.log(' ' +
|
|
55
|
+
console.log(' ' + chalk.dim('No tasks assigned'));
|
|
62
56
|
}
|
|
63
57
|
else {
|
|
64
58
|
const inProgress = tasksByState['in_progress'] || 0;
|
|
65
59
|
const open = tasksByState['open'] || tasksByState['todo'] || 0;
|
|
66
60
|
const done = tasksByState['done'] || tasksByState['completed'] || 0;
|
|
67
|
-
console.log(' ' +
|
|
68
|
-
console.log(' ' +
|
|
69
|
-
console.log(' ' +
|
|
70
|
-
console.log(' ' +
|
|
61
|
+
console.log(' ' + chalk.yellow(`In Progress: ${inProgress}`));
|
|
62
|
+
console.log(' ' + chalk.blue(`Open: ${open}`));
|
|
63
|
+
console.log(' ' + chalk.green(`Done: ${done}`));
|
|
64
|
+
console.log(' ' + chalk.dim(`Total: ${tasks.length}`));
|
|
71
65
|
}
|
|
72
66
|
console.log('');
|
|
73
|
-
console.log(
|
|
74
|
-
console.log(
|
|
75
|
-
console.log(
|
|
76
|
-
console.log(
|
|
77
|
-
console.log(
|
|
67
|
+
console.log(chalk.dim('ā'.repeat(50)));
|
|
68
|
+
console.log(chalk.dim('\nQuick commands:'));
|
|
69
|
+
console.log(chalk.dim(' workdynamite tasks List your tasks'));
|
|
70
|
+
console.log(chalk.dim(' workdynamite pick <#> Copy task ref to clipboard'));
|
|
71
|
+
console.log(chalk.dim(' workdynamite projects List your projects'));
|
|
78
72
|
console.log('');
|
|
79
73
|
});
|
|
80
74
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/tasks.js
CHANGED
|
@@ -1,41 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const commander_1 = require("commander");
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const ora_1 = __importDefault(require("ora"));
|
|
10
|
-
const api_js_1 = require("../lib/api.js");
|
|
11
|
-
const config_js_1 = require("../lib/config.js");
|
|
12
|
-
exports.tasksCommand = new commander_1.Command('tasks')
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import { getTasks } from '../lib/api.js';
|
|
5
|
+
import { isAuthenticated, getConfig } from '../lib/config.js';
|
|
6
|
+
export const tasksCommand = new Command('tasks')
|
|
13
7
|
.description('List your assigned tasks')
|
|
14
8
|
.option('-p, --project <id>', 'Filter by project ID')
|
|
15
9
|
.option('-s, --state <state>', 'Filter by state (open, in_progress, done)')
|
|
16
10
|
.option('-l, --limit <number>', 'Maximum number of tasks', '20')
|
|
17
11
|
.action(async (options) => {
|
|
18
|
-
if (!
|
|
19
|
-
console.log(
|
|
12
|
+
if (!isAuthenticated()) {
|
|
13
|
+
console.log(chalk.red('Not logged in. Run "workdynamite login" first.'));
|
|
20
14
|
return;
|
|
21
15
|
}
|
|
22
|
-
const spinner = (
|
|
23
|
-
const config =
|
|
16
|
+
const spinner = ora('Fetching tasks...').start();
|
|
17
|
+
const config = getConfig();
|
|
24
18
|
const projectId = options.project || config.default_project;
|
|
25
|
-
const { data, error } = await
|
|
19
|
+
const { data, error } = await getTasks({
|
|
26
20
|
project: projectId,
|
|
27
21
|
state: options.state,
|
|
28
22
|
limit: parseInt(options.limit, 10),
|
|
29
23
|
});
|
|
30
24
|
if (error) {
|
|
31
|
-
spinner.fail(
|
|
25
|
+
spinner.fail(chalk.red(`Failed to fetch tasks: ${error}`));
|
|
32
26
|
return;
|
|
33
27
|
}
|
|
34
28
|
spinner.stop();
|
|
35
29
|
const tasks = data.tasks;
|
|
36
30
|
if (tasks.length === 0) {
|
|
37
|
-
console.log(
|
|
38
|
-
console.log(
|
|
31
|
+
console.log(chalk.yellow('\nNo tasks assigned to you.'));
|
|
32
|
+
console.log(chalk.dim('Create tasks in the web app to see them here.'));
|
|
39
33
|
return;
|
|
40
34
|
}
|
|
41
35
|
// Group tasks by project
|
|
@@ -46,57 +40,57 @@ exports.tasksCommand = new commander_1.Command('tasks')
|
|
|
46
40
|
acc[project].push(task);
|
|
47
41
|
return acc;
|
|
48
42
|
}, {});
|
|
49
|
-
console.log(
|
|
43
|
+
console.log(chalk.bold('\nš Your Assigned Tasks\n'));
|
|
50
44
|
for (const [project, projectTasks] of Object.entries(tasksByProject)) {
|
|
51
|
-
console.log(
|
|
52
|
-
console.log(
|
|
45
|
+
console.log(chalk.bold.blue(`${project}`));
|
|
46
|
+
console.log(chalk.dim('ā'.repeat(50)));
|
|
53
47
|
for (const task of projectTasks) {
|
|
54
48
|
const stateColor = getStateColor(task.state);
|
|
55
49
|
const priorityBadge = getPriorityBadge(task.priority);
|
|
56
|
-
console.log(` ${
|
|
50
|
+
console.log(` ${chalk.dim('#')}${chalk.bold(String(task.number).padEnd(5))} ` +
|
|
57
51
|
`${priorityBadge} ` +
|
|
58
52
|
`${task.title.substring(0, 40)}${task.title.length > 40 ? '...' : ''} ` +
|
|
59
53
|
`${stateColor(task.state)}`);
|
|
60
54
|
}
|
|
61
55
|
console.log('');
|
|
62
56
|
}
|
|
63
|
-
console.log(
|
|
64
|
-
console.log(
|
|
65
|
-
console.log(
|
|
66
|
-
console.log(
|
|
67
|
-
console.log(
|
|
57
|
+
console.log(chalk.dim('ā'.repeat(50)));
|
|
58
|
+
console.log(chalk.dim(`Showing ${tasks.length} task(s)`));
|
|
59
|
+
console.log(chalk.dim('\nCommands:'));
|
|
60
|
+
console.log(chalk.dim(' workdynamite pick <number> Copy task ref to clipboard'));
|
|
61
|
+
console.log(chalk.dim(' workdynamite pick <number> -w Copy as WIP'));
|
|
68
62
|
console.log('');
|
|
69
63
|
});
|
|
70
64
|
function getStateColor(state) {
|
|
71
65
|
switch (state.toLowerCase()) {
|
|
72
66
|
case 'open':
|
|
73
67
|
case 'todo':
|
|
74
|
-
return
|
|
68
|
+
return chalk.gray;
|
|
75
69
|
case 'in_progress':
|
|
76
70
|
case 'in progress':
|
|
77
|
-
return
|
|
71
|
+
return chalk.yellow;
|
|
78
72
|
case 'done':
|
|
79
73
|
case 'completed':
|
|
80
|
-
return
|
|
74
|
+
return chalk.green;
|
|
81
75
|
case 'blocked':
|
|
82
|
-
return
|
|
76
|
+
return chalk.red;
|
|
83
77
|
default:
|
|
84
|
-
return
|
|
78
|
+
return chalk.white;
|
|
85
79
|
}
|
|
86
80
|
}
|
|
87
81
|
function getPriorityBadge(priority) {
|
|
88
82
|
switch (priority?.toLowerCase()) {
|
|
89
83
|
case 'critical':
|
|
90
84
|
case 'highest':
|
|
91
|
-
return
|
|
85
|
+
return chalk.bgRed.white(' !! ');
|
|
92
86
|
case 'high':
|
|
93
|
-
return
|
|
87
|
+
return chalk.red('[H]');
|
|
94
88
|
case 'medium':
|
|
95
|
-
return
|
|
89
|
+
return chalk.yellow('[M]');
|
|
96
90
|
case 'low':
|
|
97
|
-
return
|
|
91
|
+
return chalk.green('[L]');
|
|
98
92
|
default:
|
|
99
|
-
return
|
|
93
|
+
return chalk.dim('[ā]');
|
|
100
94
|
}
|
|
101
95
|
}
|
|
102
96
|
//# sourceMappingURL=tasks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/commands/tasks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/commands/tasks.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,32 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
const config_js_1 = require("./commands/config.js");
|
|
11
|
-
const program = new commander_1.Command();
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { loginCommand } from './commands/login.js';
|
|
3
|
+
import { logoutCommand } from './commands/logout.js';
|
|
4
|
+
import { tasksCommand } from './commands/tasks.js';
|
|
5
|
+
import { pickCommand } from './commands/pick.js';
|
|
6
|
+
import { projectsCommand } from './commands/projects.js';
|
|
7
|
+
import { statusCommand } from './commands/status.js';
|
|
8
|
+
import { configCommand } from './commands/config.js';
|
|
9
|
+
const program = new Command();
|
|
12
10
|
program
|
|
13
11
|
.name('workdynamite')
|
|
14
12
|
.description('WorkDynamite CLI - Manage tasks from your terminal')
|
|
15
13
|
.version('1.0.0');
|
|
16
14
|
// Register commands
|
|
17
|
-
program.addCommand(
|
|
18
|
-
program.addCommand(
|
|
19
|
-
program.addCommand(
|
|
20
|
-
program.addCommand(
|
|
21
|
-
program.addCommand(
|
|
22
|
-
program.addCommand(
|
|
23
|
-
program.addCommand(
|
|
15
|
+
program.addCommand(loginCommand);
|
|
16
|
+
program.addCommand(logoutCommand);
|
|
17
|
+
program.addCommand(tasksCommand);
|
|
18
|
+
program.addCommand(pickCommand);
|
|
19
|
+
program.addCommand(projectsCommand);
|
|
20
|
+
program.addCommand(statusCommand);
|
|
21
|
+
program.addCommand(configCommand);
|
|
24
22
|
// Aliases
|
|
25
23
|
program
|
|
26
24
|
.command('ls')
|
|
27
25
|
.description('Alias for "tasks" - list your assigned tasks')
|
|
28
26
|
.action(async () => {
|
|
29
|
-
await
|
|
27
|
+
await tasksCommand.parseAsync(['tasks'], { from: 'user' });
|
|
30
28
|
});
|
|
31
29
|
program
|
|
32
30
|
.command('p <number>')
|
|
@@ -45,7 +43,7 @@ program
|
|
|
45
43
|
args.push('--closes');
|
|
46
44
|
if (options.refs)
|
|
47
45
|
args.push('--refs');
|
|
48
|
-
await
|
|
46
|
+
await pickCommand.parseAsync(args, { from: 'user' });
|
|
49
47
|
});
|
|
50
48
|
program.parse();
|
|
51
49
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,cAAc,CAAC;KACpB,WAAW,CAAC,oDAAoD,CAAC;KACjE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,UAAU;AACV,OAAO;KACJ,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC;KACrC,MAAM,CAAC,aAAa,EAAE,4BAA4B,CAAC;KACnD,MAAM,CAAC,cAAc,EAAE,mBAAmB,CAAC;KAC3C,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC;KACvC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IAChC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,IAAI,OAAO,CAAC,GAAG;QAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/lib/api.js
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.initLogin = initLogin;
|
|
4
|
-
exports.pollLogin = pollLogin;
|
|
5
|
-
exports.getMe = getMe;
|
|
6
|
-
exports.getProjects = getProjects;
|
|
7
|
-
exports.getTasks = getTasks;
|
|
8
|
-
exports.getTask = getTask;
|
|
9
|
-
const config_js_1 = require("./config.js");
|
|
1
|
+
import { getToken, getApiUrl } from './config.js';
|
|
10
2
|
async function request(endpoint, options = {}) {
|
|
11
|
-
const token =
|
|
12
|
-
const apiUrl =
|
|
3
|
+
const token = getToken();
|
|
4
|
+
const apiUrl = getApiUrl();
|
|
13
5
|
if (!token && !endpoint.startsWith('login/')) {
|
|
14
6
|
return { error: 'Not authenticated. Run "workdynamite login" first.' };
|
|
15
7
|
}
|
|
@@ -36,25 +28,25 @@ async function request(endpoint, options = {}) {
|
|
|
36
28
|
return { error: error.message || 'Network request failed' };
|
|
37
29
|
}
|
|
38
30
|
}
|
|
39
|
-
async function initLogin() {
|
|
31
|
+
export async function initLogin() {
|
|
40
32
|
return request('login/init', {
|
|
41
33
|
method: 'POST',
|
|
42
34
|
body: JSON.stringify({}),
|
|
43
35
|
});
|
|
44
36
|
}
|
|
45
|
-
async function pollLogin(deviceCode) {
|
|
37
|
+
export async function pollLogin(deviceCode) {
|
|
46
38
|
return request('login/poll', {
|
|
47
39
|
method: 'POST',
|
|
48
40
|
body: JSON.stringify({ device_code: deviceCode }),
|
|
49
41
|
});
|
|
50
42
|
}
|
|
51
|
-
async function getMe() {
|
|
43
|
+
export async function getMe() {
|
|
52
44
|
return request('me');
|
|
53
45
|
}
|
|
54
|
-
async function getProjects() {
|
|
46
|
+
export async function getProjects() {
|
|
55
47
|
return request('projects');
|
|
56
48
|
}
|
|
57
|
-
async function getTasks(options = {}) {
|
|
49
|
+
export async function getTasks(options = {}) {
|
|
58
50
|
const params = new URLSearchParams();
|
|
59
51
|
if (options.project)
|
|
60
52
|
params.set('project', options.project);
|
|
@@ -65,7 +57,7 @@ async function getTasks(options = {}) {
|
|
|
65
57
|
const query = params.toString();
|
|
66
58
|
return request(`tasks${query ? `?${query}` : ''}`);
|
|
67
59
|
}
|
|
68
|
-
async function getTask(taskId) {
|
|
60
|
+
export async function getTask(taskId) {
|
|
69
61
|
return request(`tasks/${taskId}`);
|
|
70
62
|
}
|
|
71
63
|
//# sourceMappingURL=api.js.map
|
package/dist/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ interface ConfigSchema {
|
|
|
9
9
|
} | null;
|
|
10
10
|
}
|
|
11
11
|
export declare function getConfig(): ConfigSchema;
|
|
12
|
-
export declare function setToken(token: string): void;
|
|
12
|
+
export declare function setToken(token: string | null): void;
|
|
13
13
|
export declare function setUser(user: ConfigSchema['user']): void;
|
|
14
14
|
export declare function setDefaultProject(projectId: string | null): void;
|
|
15
15
|
export declare function clearConfig(): void;
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,IAAI,CAAC;CACV;AAYD,wBAAgB,SAAS,IAAI,YAAY,CAOxC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,IAAI,CAAC;CACV;AAYD,wBAAgB,SAAS,IAAI,YAAY,CAOxC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEnD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,IAAI,CAExD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEhE;AAED,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAExC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
|
package/dist/lib/config.js
CHANGED
|
@@ -1,18 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getConfig = getConfig;
|
|
7
|
-
exports.setToken = setToken;
|
|
8
|
-
exports.setUser = setUser;
|
|
9
|
-
exports.setDefaultProject = setDefaultProject;
|
|
10
|
-
exports.clearConfig = clearConfig;
|
|
11
|
-
exports.isAuthenticated = isAuthenticated;
|
|
12
|
-
exports.getToken = getToken;
|
|
13
|
-
exports.getApiUrl = getApiUrl;
|
|
14
|
-
const conf_1 = __importDefault(require("conf"));
|
|
15
|
-
const config = new conf_1.default({
|
|
1
|
+
import Conf from 'conf';
|
|
2
|
+
const config = new Conf({
|
|
16
3
|
projectName: 'workdynamite',
|
|
17
4
|
defaults: {
|
|
18
5
|
api_url: 'https://tovgfzknrookxgmvibsk.supabase.co/functions/v1/cli-api',
|
|
@@ -21,7 +8,7 @@ const config = new conf_1.default({
|
|
|
21
8
|
user: null,
|
|
22
9
|
},
|
|
23
10
|
});
|
|
24
|
-
function getConfig() {
|
|
11
|
+
export function getConfig() {
|
|
25
12
|
return {
|
|
26
13
|
api_url: config.get('api_url'),
|
|
27
14
|
token: config.get('token'),
|
|
@@ -29,27 +16,27 @@ function getConfig() {
|
|
|
29
16
|
user: config.get('user'),
|
|
30
17
|
};
|
|
31
18
|
}
|
|
32
|
-
function setToken(token) {
|
|
19
|
+
export function setToken(token) {
|
|
33
20
|
config.set('token', token);
|
|
34
21
|
}
|
|
35
|
-
function setUser(user) {
|
|
22
|
+
export function setUser(user) {
|
|
36
23
|
config.set('user', user);
|
|
37
24
|
}
|
|
38
|
-
function setDefaultProject(projectId) {
|
|
25
|
+
export function setDefaultProject(projectId) {
|
|
39
26
|
config.set('default_project', projectId);
|
|
40
27
|
}
|
|
41
|
-
function clearConfig() {
|
|
28
|
+
export function clearConfig() {
|
|
42
29
|
config.set('token', null);
|
|
43
30
|
config.set('user', null);
|
|
44
31
|
config.set('default_project', null);
|
|
45
32
|
}
|
|
46
|
-
function isAuthenticated() {
|
|
33
|
+
export function isAuthenticated() {
|
|
47
34
|
return !!config.get('token');
|
|
48
35
|
}
|
|
49
|
-
function getToken() {
|
|
36
|
+
export function getToken() {
|
|
50
37
|
return config.get('token');
|
|
51
38
|
}
|
|
52
|
-
function getApiUrl() {
|
|
39
|
+
export function getApiUrl() {
|
|
53
40
|
return config.get('api_url');
|
|
54
41
|
}
|
|
55
42
|
//# sourceMappingURL=config.js.map
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAaxB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAe;IACpC,WAAW,EAAE,cAAc;IAC3B,QAAQ,EAAE;QACR,OAAO,EAAE,+DAA+D;QACxE,KAAK,EAAE,IAAI;QACX,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,IAAI;KACX;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,SAAS;IACvB,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;QAC9B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC9C,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAA0B;IAChD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAwB;IACxD,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workdynamite/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "WorkDynamite CLI - Manage tasks from your terminal",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"main": "dist/index.js",
|
|
6
7
|
"bin": {
|
|
7
8
|
"workdynamite": "./bin/workdynamite.js",
|
|
@@ -32,7 +33,6 @@
|
|
|
32
33
|
"commander": "^11.1.0",
|
|
33
34
|
"conf": "^12.0.0",
|
|
34
35
|
"inquirer": "^9.2.12",
|
|
35
|
-
"node-fetch": "^3.3.2",
|
|
36
36
|
"open": "^10.0.3",
|
|
37
37
|
"ora": "^8.0.1"
|
|
38
38
|
},
|
|
@@ -44,4 +44,4 @@
|
|
|
44
44
|
"engines": {
|
|
45
45
|
"node": ">=18.0.0"
|
|
46
46
|
}
|
|
47
|
-
}
|
|
47
|
+
}
|
package/src/commands/login.ts
CHANGED
|
@@ -20,12 +20,12 @@ export const loginCommand = new Command('login')
|
|
|
20
20
|
// If token provided directly, use it
|
|
21
21
|
if (options.token) {
|
|
22
22
|
const spinner = ora('Validating token...').start();
|
|
23
|
-
|
|
23
|
+
|
|
24
24
|
setToken(options.token);
|
|
25
25
|
const { data, error } = await getMe();
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
if (error) {
|
|
28
|
-
setToken(
|
|
28
|
+
setToken(null);
|
|
29
29
|
spinner.fail(chalk.red(`Invalid token: ${error}`));
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
@@ -95,15 +95,19 @@ export const loginCommand = new Command('login')
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
if (pollData) {
|
|
98
|
-
// Authorization successful
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
console.log(chalk.dim('Then run: workdynamite config set-token <your-token>\n'));
|
|
103
|
-
|
|
98
|
+
// Authorization successful ā store token + user locally
|
|
99
|
+
if (pollData.access_token) {
|
|
100
|
+
setToken(pollData.access_token);
|
|
101
|
+
}
|
|
104
102
|
if (pollData.user) {
|
|
105
|
-
|
|
103
|
+
setUser(pollData.user);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
pollSpinner.succeed(chalk.green('Logged in!'));
|
|
107
|
+
if (pollData.user?.email) {
|
|
108
|
+
console.log(chalk.dim(`Authenticated as: ${pollData.user.email}`));
|
|
106
109
|
}
|
|
110
|
+
console.log(chalk.dim('You can now run: workdynamite tasks'));
|
|
107
111
|
return;
|
|
108
112
|
}
|
|
109
113
|
}
|