@workdynamite/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.
- package/README.md +39 -0
- package/bin/workdynamite.js +3 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +62 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/login.d.ts +3 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +99 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +3 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +24 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/pick.d.ts +3 -0
- package/dist/commands/pick.d.ts.map +1 -0
- package/dist/commands/pick.js +81 -0
- package/dist/commands/pick.js.map +1 -0
- package/dist/commands/projects.d.ts +3 -0
- package/dist/commands/projects.d.ts.map +1 -0
- package/dist/commands/projects.js +119 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +80 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/tasks.d.ts +3 -0
- package/dist/commands/tasks.d.ts.map +1 -0
- package/dist/commands/tasks.js +102 -0
- package/dist/commands/tasks.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +70 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +71 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/config.d.ts +20 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +55 -0
- package/dist/lib/config.js.map +1 -0
- package/package.json +47 -0
- package/src/commands/config.ts +69 -0
- package/src/commands/login.ts +116 -0
- package/src/commands/logout.ts +21 -0
- package/src/commands/pick.ts +80 -0
- package/src/commands/projects.ts +139 -0
- package/src/commands/status.ts +87 -0
- package/src/commands/tasks.ts +112 -0
- package/src/index.ts +50 -0
- package/src/lib/api.ts +128 -0
- package/src/lib/config.ts +61 -0
- package/tsconfig.json +20 -0
package/README.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# WorkDynamite CLI
|
|
2
|
+
|
|
3
|
+
A command-line interface for managing WorkDynamite tasks directly from your terminal.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# From the cli directory
|
|
9
|
+
cd cli
|
|
10
|
+
npm install
|
|
11
|
+
npm run build
|
|
12
|
+
npm link
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Login
|
|
19
|
+
workdynamite login
|
|
20
|
+
|
|
21
|
+
# List tasks
|
|
22
|
+
workdynamite tasks
|
|
23
|
+
|
|
24
|
+
# Pick a task reference for commits
|
|
25
|
+
workdynamite pick 42
|
|
26
|
+
|
|
27
|
+
# Check status
|
|
28
|
+
workdynamite status
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Commands
|
|
32
|
+
|
|
33
|
+
- `login` - Authenticate with WorkDynamite
|
|
34
|
+
- `logout` - Sign out
|
|
35
|
+
- `tasks` - List your assigned tasks
|
|
36
|
+
- `pick <number>` - Copy task reference to clipboard
|
|
37
|
+
- `projects` - List and manage projects
|
|
38
|
+
- `status` - Show current status
|
|
39
|
+
- `config` - Manage CLI configuration
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,aAAa,SACgB,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.configCommand = void 0;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const ora_1 = __importDefault(require("ora"));
|
|
10
|
+
const config_js_1 = require("../lib/config.js");
|
|
11
|
+
const api_js_1 = require("../lib/api.js");
|
|
12
|
+
exports.configCommand = new commander_1.Command('config')
|
|
13
|
+
.description('Manage CLI configuration');
|
|
14
|
+
exports.configCommand
|
|
15
|
+
.command('set-token <token>')
|
|
16
|
+
.description('Set the API token manually')
|
|
17
|
+
.action(async (token) => {
|
|
18
|
+
if (!token.startsWith('wk_')) {
|
|
19
|
+
console.log(chalk_1.default.yellow('Warning: Token should start with "wk_"'));
|
|
20
|
+
}
|
|
21
|
+
const spinner = (0, ora_1.default)('Validating token...').start();
|
|
22
|
+
// Temporarily set the token to validate it
|
|
23
|
+
(0, config_js_1.setToken)(token);
|
|
24
|
+
const { data, error } = await (0, api_js_1.getMe)();
|
|
25
|
+
if (error) {
|
|
26
|
+
// Clear invalid token
|
|
27
|
+
(0, config_js_1.clearConfig)();
|
|
28
|
+
spinner.fail(chalk_1.default.red(`Invalid token: ${error}`));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
(0, config_js_1.setUser)(data.user);
|
|
32
|
+
spinner.succeed(chalk_1.default.green(`Authenticated as ${data.user.email}`));
|
|
33
|
+
console.log(chalk_1.default.dim('\nYou can now use WorkDynamite CLI commands.'));
|
|
34
|
+
console.log(chalk_1.default.dim('Try "workdynamite status" or "workdynamite tasks".\n'));
|
|
35
|
+
});
|
|
36
|
+
exports.configCommand
|
|
37
|
+
.command('show')
|
|
38
|
+
.description('Show current configuration')
|
|
39
|
+
.action(() => {
|
|
40
|
+
const config = (0, config_js_1.getConfig)();
|
|
41
|
+
console.log(chalk_1.default.bold('\nāļø Configuration\n'));
|
|
42
|
+
console.log(chalk_1.default.dim('ā'.repeat(40)));
|
|
43
|
+
console.log(` ${chalk_1.default.dim('API URL:')} ${config.api_url}`);
|
|
44
|
+
console.log(` ${chalk_1.default.dim('Token:')} ${config.token ? `${config.token.substring(0, 12)}...` : chalk_1.default.yellow('(not set)')}`);
|
|
45
|
+
console.log(` ${chalk_1.default.dim('User:')} ${config.user?.email || chalk_1.default.yellow('(not logged in)')}`);
|
|
46
|
+
console.log(` ${chalk_1.default.dim('Project:')} ${config.default_project || chalk_1.default.dim('(all projects)')}`);
|
|
47
|
+
console.log(chalk_1.default.dim('ā'.repeat(40)));
|
|
48
|
+
console.log('');
|
|
49
|
+
});
|
|
50
|
+
exports.configCommand
|
|
51
|
+
.command('clear')
|
|
52
|
+
.description('Clear all stored configuration')
|
|
53
|
+
.action(() => {
|
|
54
|
+
if (!(0, config_js_1.isAuthenticated)()) {
|
|
55
|
+
console.log(chalk_1.default.yellow('No configuration to clear.'));
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
(0, config_js_1.clearConfig)();
|
|
59
|
+
console.log(chalk_1.default.green('ā Configuration cleared.'));
|
|
60
|
+
console.log(chalk_1.default.dim('Run "workdynamite login" to authenticate again.'));
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,YAAY,SAwGrB,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.loginCommand = void 0;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const ora_1 = __importDefault(require("ora"));
|
|
10
|
+
const open_1 = __importDefault(require("open"));
|
|
11
|
+
const api_js_1 = require("../lib/api.js");
|
|
12
|
+
const config_js_1 = require("../lib/config.js");
|
|
13
|
+
exports.loginCommand = new commander_1.Command('login')
|
|
14
|
+
.description('Authenticate with WorkDynamite')
|
|
15
|
+
.option('--token <token>', 'Use an existing API token instead of browser auth')
|
|
16
|
+
.action(async (options) => {
|
|
17
|
+
// Check if already authenticated
|
|
18
|
+
if ((0, config_js_1.isAuthenticated)()) {
|
|
19
|
+
const config = (0, config_js_1.getConfig)();
|
|
20
|
+
console.log(chalk_1.default.yellow(`Already logged in as ${config.user?.email}`));
|
|
21
|
+
console.log(chalk_1.default.dim('Run "workdynamite logout" to sign out first.'));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
// If token provided directly, use it
|
|
25
|
+
if (options.token) {
|
|
26
|
+
const spinner = (0, ora_1.default)('Validating token...').start();
|
|
27
|
+
(0, config_js_1.setToken)(options.token);
|
|
28
|
+
const { data, error } = await (0, api_js_1.getMe)();
|
|
29
|
+
if (error) {
|
|
30
|
+
(0, config_js_1.setToken)('');
|
|
31
|
+
spinner.fail(chalk_1.default.red(`Invalid token: ${error}`));
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
(0, config_js_1.setUser)(data.user);
|
|
35
|
+
spinner.succeed(chalk_1.default.green(`Authenticated as ${data.user.email}`));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
// Start device authorization flow
|
|
39
|
+
console.log(chalk_1.default.bold('\nš WorkDynamite CLI Login\n'));
|
|
40
|
+
const initSpinner = (0, ora_1.default)('Initializing login...').start();
|
|
41
|
+
const { data: initData, error: initError } = await (0, api_js_1.initLogin)();
|
|
42
|
+
if (initError) {
|
|
43
|
+
initSpinner.fail(chalk_1.default.red(`Failed to start login: ${initError}`));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
initSpinner.succeed('Login initialized');
|
|
47
|
+
const { device_code, user_code, verification_uri_complete } = initData;
|
|
48
|
+
console.log('\n' + chalk_1.default.bold('To complete login:'));
|
|
49
|
+
console.log(chalk_1.default.dim('āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā'));
|
|
50
|
+
console.log(`\n 1. Open this URL in your browser:\n`);
|
|
51
|
+
console.log(` ${chalk_1.default.cyan.underline(verification_uri_complete)}\n`);
|
|
52
|
+
console.log(` 2. Enter this code if prompted:\n`);
|
|
53
|
+
console.log(` ${chalk_1.default.bold.yellow(user_code)}\n`);
|
|
54
|
+
console.log(chalk_1.default.dim('āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\n'));
|
|
55
|
+
// Try to open browser automatically
|
|
56
|
+
try {
|
|
57
|
+
await (0, open_1.default)(verification_uri_complete);
|
|
58
|
+
console.log(chalk_1.default.dim('(Browser opened automatically)\n'));
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
console.log(chalk_1.default.dim('(Open the URL manually)\n'));
|
|
62
|
+
}
|
|
63
|
+
// Poll for authorization
|
|
64
|
+
const pollSpinner = (0, ora_1.default)('Waiting for authorization...').start();
|
|
65
|
+
const maxAttempts = 60; // 5 minutes with 5-second intervals
|
|
66
|
+
let attempts = 0;
|
|
67
|
+
while (attempts < maxAttempts) {
|
|
68
|
+
await sleep(5000); // Wait 5 seconds between polls
|
|
69
|
+
attempts++;
|
|
70
|
+
const { data: pollData, error: pollError } = await (0, api_js_1.pollLogin)(device_code);
|
|
71
|
+
if (pollError === 'authorization_pending') {
|
|
72
|
+
pollSpinner.text = `Waiting for authorization... (${Math.floor((maxAttempts - attempts) * 5 / 60)}m remaining)`;
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
if (pollError === 'expired_token') {
|
|
76
|
+
pollSpinner.fail(chalk_1.default.red('Authorization expired. Please run login again.'));
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (pollError) {
|
|
80
|
+
pollSpinner.fail(chalk_1.default.red(`Authorization failed: ${pollError}`));
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (pollData) {
|
|
84
|
+
// Authorization successful - but we need the token from the web UI
|
|
85
|
+
pollSpinner.succeed(chalk_1.default.green('Authorization complete!'));
|
|
86
|
+
console.log(chalk_1.default.yellow('\nā ļø Please copy the API token shown in your browser.'));
|
|
87
|
+
console.log(chalk_1.default.dim('Then run: workdynamite config set-token <your-token>\n'));
|
|
88
|
+
if (pollData.user) {
|
|
89
|
+
console.log(chalk_1.default.dim(`Authorized for: ${pollData.user.email}`));
|
|
90
|
+
}
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
pollSpinner.fail(chalk_1.default.red('Authorization timed out. Please try again.'));
|
|
95
|
+
});
|
|
96
|
+
function sleep(ms) {
|
|
97
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,aAAa,SAgBtB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.logoutCommand = void 0;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const config_js_1 = require("../lib/config.js");
|
|
10
|
+
exports.logoutCommand = new commander_1.Command('logout')
|
|
11
|
+
.description('Sign out of WorkDynamite')
|
|
12
|
+
.action(async () => {
|
|
13
|
+
if (!(0, config_js_1.isAuthenticated)()) {
|
|
14
|
+
console.log(chalk_1.default.yellow('Not currently logged in.'));
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const config = (0, config_js_1.getConfig)();
|
|
18
|
+
const email = config.user?.email || 'unknown';
|
|
19
|
+
(0, config_js_1.clearConfig)();
|
|
20
|
+
console.log(chalk_1.default.green(`ā Logged out from ${email}`));
|
|
21
|
+
console.log(chalk_1.default.dim('Your API token has been removed from local storage.'));
|
|
22
|
+
console.log(chalk_1.default.dim('To revoke the token entirely, visit Workspace Settings in the web app.'));
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=logout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,gDAA2E;AAE9D,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC,IAAA,2BAAe,GAAE,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,qBAAS,GAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,SAAS,CAAC;IAE9C,IAAA,uBAAW,GAAE,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../../src/commands/pick.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,WAAW,SAwEpB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.pickCommand = void 0;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const ora_1 = __importDefault(require("ora"));
|
|
10
|
+
const clipboardy_1 = __importDefault(require("clipboardy"));
|
|
11
|
+
const api_js_1 = require("../lib/api.js");
|
|
12
|
+
const config_js_1 = require("../lib/config.js");
|
|
13
|
+
exports.pickCommand = new commander_1.Command('pick')
|
|
14
|
+
.description('Copy a task reference to clipboard for commit messages')
|
|
15
|
+
.argument('<number>', 'Task number to pick')
|
|
16
|
+
.option('-w, --wip', 'Use WIP prefix')
|
|
17
|
+
.option('-f, --fixes', 'Use Fixes prefix (default)')
|
|
18
|
+
.option('-c, --closes', 'Use Closes prefix')
|
|
19
|
+
.option('-r, --refs', 'Use Refs prefix')
|
|
20
|
+
.action(async (taskNumber, options) => {
|
|
21
|
+
if (!(0, config_js_1.isAuthenticated)()) {
|
|
22
|
+
console.log(chalk_1.default.red('Not logged in. Run "workdynamite login" first.'));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const spinner = (0, ora_1.default)('Finding task...').start();
|
|
26
|
+
const config = (0, config_js_1.getConfig)();
|
|
27
|
+
// Fetch tasks to find the one matching the number
|
|
28
|
+
const { data, error } = await (0, api_js_1.getTasks)({
|
|
29
|
+
project: config.default_project || undefined,
|
|
30
|
+
limit: 100,
|
|
31
|
+
});
|
|
32
|
+
if (error) {
|
|
33
|
+
spinner.fail(chalk_1.default.red(`Failed to fetch tasks: ${error}`));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const task = data.tasks.find(t => t.number === parseInt(taskNumber, 10));
|
|
37
|
+
if (!task) {
|
|
38
|
+
spinner.fail(chalk_1.default.red(`Task #${taskNumber} not found in your assigned tasks.`));
|
|
39
|
+
console.log(chalk_1.default.dim('Make sure you\'re looking at the right project.'));
|
|
40
|
+
console.log(chalk_1.default.dim('Run "workdynamite tasks" to see available tasks.'));
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
// Determine which prefix to use
|
|
44
|
+
let refType = 'fixes';
|
|
45
|
+
if (options.wip)
|
|
46
|
+
refType = 'wip';
|
|
47
|
+
else if (options.closes)
|
|
48
|
+
refType = 'closes';
|
|
49
|
+
else if (options.refs)
|
|
50
|
+
refType = 'refs';
|
|
51
|
+
// else default to fixes
|
|
52
|
+
const reference = task.refs[refType];
|
|
53
|
+
try {
|
|
54
|
+
await clipboardy_1.default.write(reference);
|
|
55
|
+
spinner.succeed(chalk_1.default.green('Copied to clipboard!'));
|
|
56
|
+
console.log('\n' + chalk_1.default.dim('ā'.repeat(50)));
|
|
57
|
+
console.log('\n ' + chalk_1.default.bold(reference));
|
|
58
|
+
console.log('\n' + chalk_1.default.dim('ā'.repeat(50)));
|
|
59
|
+
console.log(chalk_1.default.dim('\nPaste this in your commit message or PR title.'));
|
|
60
|
+
console.log(chalk_1.default.dim('The webhook will automatically update the task.\n'));
|
|
61
|
+
// Show other options
|
|
62
|
+
console.log(chalk_1.default.dim('Other formats:'));
|
|
63
|
+
if (refType !== 'wip')
|
|
64
|
+
console.log(chalk_1.default.dim(` -w, --wip ā ${task.refs.wip}`));
|
|
65
|
+
if (refType !== 'fixes')
|
|
66
|
+
console.log(chalk_1.default.dim(` -f, --fixes ā ${task.refs.fixes}`));
|
|
67
|
+
if (refType !== 'closes')
|
|
68
|
+
console.log(chalk_1.default.dim(` -c, --closes ā ${task.refs.closes}`));
|
|
69
|
+
if (refType !== 'refs')
|
|
70
|
+
console.log(chalk_1.default.dim(` -r, --refs ā ${task.refs.refs}`));
|
|
71
|
+
console.log('');
|
|
72
|
+
}
|
|
73
|
+
catch (clipboardError) {
|
|
74
|
+
spinner.warn(chalk_1.default.yellow('Could not copy to clipboard.'));
|
|
75
|
+
console.log('\n' + chalk_1.default.dim('ā'.repeat(50)));
|
|
76
|
+
console.log('\n ' + chalk_1.default.bold(reference));
|
|
77
|
+
console.log('\n' + chalk_1.default.dim('ā'.repeat(50)));
|
|
78
|
+
console.log(chalk_1.default.dim('\nCopy the text above manually.\n'));
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=pick.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pick.js","sourceRoot":"","sources":["../../src/commands/pick.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,eAAe,SAmFxB,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.projectsCommand = void 0;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const ora_1 = __importDefault(require("ora"));
|
|
10
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
11
|
+
const api_js_1 = require("../lib/api.js");
|
|
12
|
+
const config_js_1 = require("../lib/config.js");
|
|
13
|
+
exports.projectsCommand = new commander_1.Command('projects')
|
|
14
|
+
.description('List and manage projects')
|
|
15
|
+
.option('--set', 'Interactively set the default project')
|
|
16
|
+
.action(async (options) => {
|
|
17
|
+
if (!(0, config_js_1.isAuthenticated)()) {
|
|
18
|
+
console.log(chalk_1.default.red('Not logged in. Run "workdynamite login" first.'));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const spinner = (0, ora_1.default)('Fetching projects...').start();
|
|
22
|
+
const { data, error } = await (0, api_js_1.getProjects)();
|
|
23
|
+
if (error) {
|
|
24
|
+
spinner.fail(chalk_1.default.red(`Failed to fetch projects: ${error}`));
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
spinner.stop();
|
|
28
|
+
const projects = data.projects;
|
|
29
|
+
const config = (0, config_js_1.getConfig)();
|
|
30
|
+
if (projects.length === 0) {
|
|
31
|
+
console.log(chalk_1.default.yellow('\nNo projects found.'));
|
|
32
|
+
console.log(chalk_1.default.dim('Create a project in the web app to see it here.'));
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (options.set) {
|
|
36
|
+
// Interactive project selection
|
|
37
|
+
const { selectedProject } = await inquirer_1.default.prompt([
|
|
38
|
+
{
|
|
39
|
+
type: 'list',
|
|
40
|
+
name: 'selectedProject',
|
|
41
|
+
message: 'Select default project:',
|
|
42
|
+
choices: [
|
|
43
|
+
{ name: '(None - show all projects)', value: null },
|
|
44
|
+
...projects.map(p => ({
|
|
45
|
+
name: `${p.name} (${p.status})`,
|
|
46
|
+
value: p.id,
|
|
47
|
+
})),
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
]);
|
|
51
|
+
(0, config_js_1.setDefaultProject)(selectedProject);
|
|
52
|
+
if (selectedProject) {
|
|
53
|
+
const project = projects.find(p => p.id === selectedProject);
|
|
54
|
+
console.log(chalk_1.default.green(`\nā Default project set to: ${project?.name}`));
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
console.log(chalk_1.default.green('\nā Default project cleared. Tasks from all projects will be shown.'));
|
|
58
|
+
}
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
// List projects
|
|
62
|
+
console.log(chalk_1.default.bold('\nš Your Projects\n'));
|
|
63
|
+
console.log(chalk_1.default.dim('ā'.repeat(60)));
|
|
64
|
+
for (const project of projects) {
|
|
65
|
+
const isDefault = project.id === config.default_project;
|
|
66
|
+
const statusColor = getStatusColor(project.status);
|
|
67
|
+
console.log(` ${isDefault ? chalk_1.default.green('ā') : ' '} ` +
|
|
68
|
+
`${chalk_1.default.bold(project.name.padEnd(30))} ` +
|
|
69
|
+
`${statusColor(project.status.padEnd(12))} ` +
|
|
70
|
+
`${chalk_1.default.dim(`${project.progress}%`)} ` +
|
|
71
|
+
`${chalk_1.default.dim(`[${project.role}]`)}`);
|
|
72
|
+
}
|
|
73
|
+
console.log(chalk_1.default.dim('ā'.repeat(60)));
|
|
74
|
+
console.log(chalk_1.default.dim(`\n${projects.length} project(s)`));
|
|
75
|
+
if (config.default_project) {
|
|
76
|
+
const defaultProject = projects.find(p => p.id === config.default_project);
|
|
77
|
+
console.log(chalk_1.default.dim(`Default: ${defaultProject?.name || 'Unknown'}`));
|
|
78
|
+
}
|
|
79
|
+
console.log(chalk_1.default.dim('\nRun "workdynamite projects --set" to change the default project.\n'));
|
|
80
|
+
});
|
|
81
|
+
exports.projectsCommand
|
|
82
|
+
.command('set <name>')
|
|
83
|
+
.description('Set default project by name')
|
|
84
|
+
.action(async (name) => {
|
|
85
|
+
if (!(0, config_js_1.isAuthenticated)()) {
|
|
86
|
+
console.log(chalk_1.default.red('Not logged in. Run "workdynamite login" first.'));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const spinner = (0, ora_1.default)('Fetching projects...').start();
|
|
90
|
+
const { data, error } = await (0, api_js_1.getProjects)();
|
|
91
|
+
if (error) {
|
|
92
|
+
spinner.fail(chalk_1.default.red(`Failed to fetch projects: ${error}`));
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const project = data.projects.find(p => p.name.toLowerCase() === name.toLowerCase() || p.id === name);
|
|
96
|
+
if (!project) {
|
|
97
|
+
spinner.fail(chalk_1.default.red(`Project "${name}" not found.`));
|
|
98
|
+
console.log(chalk_1.default.dim('Run "workdynamite projects" to see available projects.'));
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
(0, config_js_1.setDefaultProject)(project.id);
|
|
102
|
+
spinner.succeed(chalk_1.default.green(`Default project set to: ${project.name}`));
|
|
103
|
+
});
|
|
104
|
+
function getStatusColor(status) {
|
|
105
|
+
switch (status.toLowerCase()) {
|
|
106
|
+
case 'active':
|
|
107
|
+
case 'in_progress':
|
|
108
|
+
return chalk_1.default.green;
|
|
109
|
+
case 'planning':
|
|
110
|
+
return chalk_1.default.blue;
|
|
111
|
+
case 'on_hold':
|
|
112
|
+
return chalk_1.default.yellow;
|
|
113
|
+
case 'completed':
|
|
114
|
+
return chalk_1.default.gray;
|
|
115
|
+
default:
|
|
116
|
+
return chalk_1.default.white;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,aAAa,SAgFtB,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.statusCommand = void 0;
|
|
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')
|
|
13
|
+
.description('Show current login status and context')
|
|
14
|
+
.action(async () => {
|
|
15
|
+
const config = (0, config_js_1.getConfig)();
|
|
16
|
+
console.log(chalk_1.default.bold('\nš§ WorkDynamite CLI Status\n'));
|
|
17
|
+
console.log(chalk_1.default.dim('ā'.repeat(50)));
|
|
18
|
+
if (!(0, config_js_1.isAuthenticated)()) {
|
|
19
|
+
console.log('\n ' + chalk_1.default.red('ā') + ' Not logged in');
|
|
20
|
+
console.log(chalk_1.default.dim('\n Run "workdynamite login" to authenticate.\n'));
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const spinner = (0, ora_1.default)('Fetching status...').start();
|
|
24
|
+
// Fetch user info
|
|
25
|
+
const { data: meData, error: meError } = await (0, api_js_1.getMe)();
|
|
26
|
+
if (meError) {
|
|
27
|
+
spinner.fail(chalk_1.default.red(`Failed to fetch status: ${meError}`));
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
// Fetch projects and tasks count
|
|
31
|
+
const { data: projectsData } = await (0, api_js_1.getProjects)();
|
|
32
|
+
const { data: tasksData } = await (0, api_js_1.getTasks)({ limit: 100 });
|
|
33
|
+
spinner.stop();
|
|
34
|
+
const user = meData.user;
|
|
35
|
+
const projects = projectsData?.projects || [];
|
|
36
|
+
const tasks = tasksData?.tasks || [];
|
|
37
|
+
// Count tasks by state
|
|
38
|
+
const tasksByState = tasks.reduce((acc, task) => {
|
|
39
|
+
const state = task.state || 'unknown';
|
|
40
|
+
acc[state] = (acc[state] || 0) + 1;
|
|
41
|
+
return acc;
|
|
42
|
+
}, {});
|
|
43
|
+
console.log('\n ' + chalk_1.default.green('ā') + ' Logged in');
|
|
44
|
+
console.log('');
|
|
45
|
+
console.log(' ' + chalk_1.default.dim('User: ') + chalk_1.default.bold(user.name || user.email));
|
|
46
|
+
console.log(' ' + chalk_1.default.dim('Email: ') + user.email);
|
|
47
|
+
console.log(' ' + chalk_1.default.dim('Projects: ') + projects.length);
|
|
48
|
+
console.log('');
|
|
49
|
+
// Default project
|
|
50
|
+
if (config.default_project) {
|
|
51
|
+
const defaultProject = projects.find(p => p.id === config.default_project);
|
|
52
|
+
console.log(' ' + chalk_1.default.dim('Default Project: ') + chalk_1.default.cyan(defaultProject?.name || 'Unknown'));
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
console.log(' ' + chalk_1.default.dim('Default Project: ') + chalk_1.default.yellow('(none set)'));
|
|
56
|
+
}
|
|
57
|
+
console.log('');
|
|
58
|
+
console.log(chalk_1.default.dim('ā'.repeat(50)));
|
|
59
|
+
console.log(chalk_1.default.bold('\nš Task Summary\n'));
|
|
60
|
+
if (tasks.length === 0) {
|
|
61
|
+
console.log(' ' + chalk_1.default.dim('No tasks assigned'));
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
const inProgress = tasksByState['in_progress'] || 0;
|
|
65
|
+
const open = tasksByState['open'] || tasksByState['todo'] || 0;
|
|
66
|
+
const done = tasksByState['done'] || tasksByState['completed'] || 0;
|
|
67
|
+
console.log(' ' + chalk_1.default.yellow(`In Progress: ${inProgress}`));
|
|
68
|
+
console.log(' ' + chalk_1.default.blue(`Open: ${open}`));
|
|
69
|
+
console.log(' ' + chalk_1.default.green(`Done: ${done}`));
|
|
70
|
+
console.log(' ' + chalk_1.default.dim(`Total: ${tasks.length}`));
|
|
71
|
+
}
|
|
72
|
+
console.log('');
|
|
73
|
+
console.log(chalk_1.default.dim('ā'.repeat(50)));
|
|
74
|
+
console.log(chalk_1.default.dim('\nQuick commands:'));
|
|
75
|
+
console.log(chalk_1.default.dim(' workdynamite tasks List your tasks'));
|
|
76
|
+
console.log(chalk_1.default.dim(' workdynamite pick <#> Copy task ref to clipboard'));
|
|
77
|
+
console.log(chalk_1.default.dim(' workdynamite projects List your projects'));
|
|
78
|
+
console.log('');
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/commands/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,YAAY,SAuErB,CAAC"}
|