@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.
@@ -1,62 +1,56 @@
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')
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import { setToken, setUser, getConfig, clearConfig, isAuthenticated } from '../lib/config.js';
5
+ import { getMe } from '../lib/api.js';
6
+ export const configCommand = new Command('config')
13
7
  .description('Manage CLI configuration');
14
- exports.configCommand
8
+ configCommand
15
9
  .command('set-token <token>')
16
10
  .description('Set the API token manually')
17
11
  .action(async (token) => {
18
12
  if (!token.startsWith('wk_')) {
19
- console.log(chalk_1.default.yellow('Warning: Token should start with "wk_"'));
13
+ console.log(chalk.yellow('Warning: Token should start with "wk_"'));
20
14
  }
21
- const spinner = (0, ora_1.default)('Validating token...').start();
15
+ const spinner = ora('Validating token...').start();
22
16
  // Temporarily set the token to validate it
23
- (0, config_js_1.setToken)(token);
24
- const { data, error } = await (0, api_js_1.getMe)();
17
+ setToken(token);
18
+ const { data, error } = await getMe();
25
19
  if (error) {
26
20
  // Clear invalid token
27
- (0, config_js_1.clearConfig)();
28
- spinner.fail(chalk_1.default.red(`Invalid token: ${error}`));
21
+ clearConfig();
22
+ spinner.fail(chalk.red(`Invalid token: ${error}`));
29
23
  return;
30
24
  }
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'));
25
+ setUser(data.user);
26
+ spinner.succeed(chalk.green(`Authenticated as ${data.user.email}`));
27
+ console.log(chalk.dim('\nYou can now use WorkDynamite CLI commands.'));
28
+ console.log(chalk.dim('Try "workdynamite status" or "workdynamite tasks".\n'));
35
29
  });
36
- exports.configCommand
30
+ configCommand
37
31
  .command('show')
38
32
  .description('Show current configuration')
39
33
  .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)));
34
+ const config = getConfig();
35
+ console.log(chalk.bold('\n⚙️ Configuration\n'));
36
+ console.log(chalk.dim('─'.repeat(40)));
37
+ console.log(` ${chalk.dim('API URL:')} ${config.api_url}`);
38
+ console.log(` ${chalk.dim('Token:')} ${config.token ? `${config.token.substring(0, 12)}...` : chalk.yellow('(not set)')}`);
39
+ console.log(` ${chalk.dim('User:')} ${config.user?.email || chalk.yellow('(not logged in)')}`);
40
+ console.log(` ${chalk.dim('Project:')} ${config.default_project || chalk.dim('(all projects)')}`);
41
+ console.log(chalk.dim('─'.repeat(40)));
48
42
  console.log('');
49
43
  });
50
- exports.configCommand
44
+ configCommand
51
45
  .command('clear')
52
46
  .description('Clear all stored configuration')
53
47
  .action(() => {
54
- if (!(0, config_js_1.isAuthenticated)()) {
55
- console.log(chalk_1.default.yellow('No configuration to clear.'));
48
+ if (!isAuthenticated()) {
49
+ console.log(chalk.yellow('No configuration to clear.'));
56
50
  return;
57
51
  }
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.'));
52
+ clearConfig();
53
+ console.log(chalk.green('✓ Configuration cleared.'));
54
+ console.log(chalk.dim('Run "workdynamite login" to authenticate again.'));
61
55
  });
62
56
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1 +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"}
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,SA4GrB,CAAC"}
@@ -1,97 +1,96 @@
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')
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import open from 'open';
5
+ import { initLogin, pollLogin, getMe } from '../lib/api.js';
6
+ import { setToken, setUser, isAuthenticated, getConfig } from '../lib/config.js';
7
+ export const loginCommand = new Command('login')
14
8
  .description('Authenticate with WorkDynamite')
15
9
  .option('--token <token>', 'Use an existing API token instead of browser auth')
16
10
  .action(async (options) => {
17
11
  // 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.'));
12
+ if (isAuthenticated()) {
13
+ const config = getConfig();
14
+ console.log(chalk.yellow(`Already logged in as ${config.user?.email}`));
15
+ console.log(chalk.dim('Run "workdynamite logout" to sign out first.'));
22
16
  return;
23
17
  }
24
18
  // If token provided directly, use it
25
19
  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)();
20
+ const spinner = ora('Validating token...').start();
21
+ setToken(options.token);
22
+ const { data, error } = await getMe();
29
23
  if (error) {
30
- (0, config_js_1.setToken)('');
31
- spinner.fail(chalk_1.default.red(`Invalid token: ${error}`));
24
+ setToken(null);
25
+ spinner.fail(chalk.red(`Invalid token: ${error}`));
32
26
  return;
33
27
  }
34
- (0, config_js_1.setUser)(data.user);
35
- spinner.succeed(chalk_1.default.green(`Authenticated as ${data.user.email}`));
28
+ setUser(data.user);
29
+ spinner.succeed(chalk.green(`Authenticated as ${data.user.email}`));
36
30
  return;
37
31
  }
38
32
  // 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)();
33
+ console.log(chalk.bold('\n🚀 WorkDynamite CLI Login\n'));
34
+ const initSpinner = ora('Initializing login...').start();
35
+ const { data: initData, error: initError } = await initLogin();
42
36
  if (initError) {
43
- initSpinner.fail(chalk_1.default.red(`Failed to start login: ${initError}`));
37
+ initSpinner.fail(chalk.red(`Failed to start login: ${initError}`));
44
38
  return;
45
39
  }
46
40
  initSpinner.succeed('Login initialized');
47
41
  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('─────────────────────────────────────'));
42
+ console.log('\n' + chalk.bold('To complete login:'));
43
+ console.log(chalk.dim('─────────────────────────────────────'));
50
44
  console.log(`\n 1. Open this URL in your browser:\n`);
51
- console.log(` ${chalk_1.default.cyan.underline(verification_uri_complete)}\n`);
45
+ console.log(` ${chalk.cyan.underline(verification_uri_complete)}\n`);
52
46
  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'));
47
+ console.log(` ${chalk.bold.yellow(user_code)}\n`);
48
+ console.log(chalk.dim('─────────────────────────────────────\n'));
55
49
  // Try to open browser automatically
56
50
  try {
57
- await (0, open_1.default)(verification_uri_complete);
58
- console.log(chalk_1.default.dim('(Browser opened automatically)\n'));
51
+ await open(verification_uri_complete);
52
+ console.log(chalk.dim('(Browser opened automatically)\n'));
59
53
  }
60
54
  catch {
61
- console.log(chalk_1.default.dim('(Open the URL manually)\n'));
55
+ console.log(chalk.dim('(Open the URL manually)\n'));
62
56
  }
63
57
  // Poll for authorization
64
- const pollSpinner = (0, ora_1.default)('Waiting for authorization...').start();
58
+ const pollSpinner = ora('Waiting for authorization...').start();
65
59
  const maxAttempts = 60; // 5 minutes with 5-second intervals
66
60
  let attempts = 0;
67
61
  while (attempts < maxAttempts) {
68
62
  await sleep(5000); // Wait 5 seconds between polls
69
63
  attempts++;
70
- const { data: pollData, error: pollError } = await (0, api_js_1.pollLogin)(device_code);
64
+ const { data: pollData, error: pollError } = await pollLogin(device_code);
71
65
  if (pollError === 'authorization_pending') {
72
66
  pollSpinner.text = `Waiting for authorization... (${Math.floor((maxAttempts - attempts) * 5 / 60)}m remaining)`;
73
67
  continue;
74
68
  }
75
69
  if (pollError === 'expired_token') {
76
- pollSpinner.fail(chalk_1.default.red('Authorization expired. Please run login again.'));
70
+ pollSpinner.fail(chalk.red('Authorization expired. Please run login again.'));
77
71
  return;
78
72
  }
79
73
  if (pollError) {
80
- pollSpinner.fail(chalk_1.default.red(`Authorization failed: ${pollError}`));
74
+ pollSpinner.fail(chalk.red(`Authorization failed: ${pollError}`));
81
75
  return;
82
76
  }
83
77
  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'));
78
+ // Authorization successful store token + user locally
79
+ if (pollData.access_token) {
80
+ setToken(pollData.access_token);
81
+ }
88
82
  if (pollData.user) {
89
- console.log(chalk_1.default.dim(`Authorized for: ${pollData.user.email}`));
83
+ setUser(pollData.user);
84
+ }
85
+ pollSpinner.succeed(chalk.green('Logged in!'));
86
+ if (pollData.user?.email) {
87
+ console.log(chalk.dim(`Authenticated as: ${pollData.user.email}`));
90
88
  }
89
+ console.log(chalk.dim('You can now run: workdynamite tasks'));
91
90
  return;
92
91
  }
93
92
  }
94
- pollSpinner.fail(chalk_1.default.red('Authorization timed out. Please try again.'));
93
+ pollSpinner.fail(chalk.red('Authorization timed out. Please try again.'));
95
94
  });
96
95
  function sleep(ms) {
97
96
  return new Promise(resolve => setTimeout(resolve, ms));
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,18 @@
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')
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { clearConfig, isAuthenticated, getConfig } from '../lib/config.js';
4
+ export const logoutCommand = new Command('logout')
11
5
  .description('Sign out of WorkDynamite')
12
6
  .action(async () => {
13
- if (!(0, config_js_1.isAuthenticated)()) {
14
- console.log(chalk_1.default.yellow('Not currently logged in.'));
7
+ if (!isAuthenticated()) {
8
+ console.log(chalk.yellow('Not currently logged in.'));
15
9
  return;
16
10
  }
17
- const config = (0, config_js_1.getConfig)();
11
+ const config = getConfig();
18
12
  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.'));
13
+ clearConfig();
14
+ console.log(chalk.green(`✓ Logged out from ${email}`));
15
+ console.log(chalk.dim('Your API token has been removed from local storage.'));
16
+ console.log(chalk.dim('To revoke the token entirely, visit Workspace Settings in the web app.'));
23
17
  });
24
18
  //# sourceMappingURL=logout.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE3E,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,SAAS,CAAC;IAE9C,WAAW,EAAE,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC"}
@@ -1,16 +1,10 @@
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')
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import clipboard from 'clipboardy';
5
+ import { getTasks } from '../lib/api.js';
6
+ import { isAuthenticated, getConfig } from '../lib/config.js';
7
+ export const pickCommand = new Command('pick')
14
8
  .description('Copy a task reference to clipboard for commit messages')
15
9
  .argument('<number>', 'Task number to pick')
16
10
  .option('-w, --wip', 'Use WIP prefix')
@@ -18,26 +12,26 @@ exports.pickCommand = new commander_1.Command('pick')
18
12
  .option('-c, --closes', 'Use Closes prefix')
19
13
  .option('-r, --refs', 'Use Refs prefix')
20
14
  .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.'));
15
+ if (!isAuthenticated()) {
16
+ console.log(chalk.red('Not logged in. Run "workdynamite login" first.'));
23
17
  return;
24
18
  }
25
- const spinner = (0, ora_1.default)('Finding task...').start();
26
- const config = (0, config_js_1.getConfig)();
19
+ const spinner = ora('Finding task...').start();
20
+ const config = getConfig();
27
21
  // Fetch tasks to find the one matching the number
28
- const { data, error } = await (0, api_js_1.getTasks)({
22
+ const { data, error } = await getTasks({
29
23
  project: config.default_project || undefined,
30
24
  limit: 100,
31
25
  });
32
26
  if (error) {
33
- spinner.fail(chalk_1.default.red(`Failed to fetch tasks: ${error}`));
27
+ spinner.fail(chalk.red(`Failed to fetch tasks: ${error}`));
34
28
  return;
35
29
  }
36
30
  const task = data.tasks.find(t => t.number === parseInt(taskNumber, 10));
37
31
  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.'));
32
+ spinner.fail(chalk.red(`Task #${taskNumber} not found in your assigned tasks.`));
33
+ console.log(chalk.dim('Make sure you\'re looking at the right project.'));
34
+ console.log(chalk.dim('Run "workdynamite tasks" to see available tasks.'));
41
35
  return;
42
36
  }
43
37
  // Determine which prefix to use
@@ -51,31 +45,31 @@ exports.pickCommand = new commander_1.Command('pick')
51
45
  // else default to fixes
52
46
  const reference = task.refs[refType];
53
47
  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'));
48
+ await clipboard.write(reference);
49
+ spinner.succeed(chalk.green('Copied to clipboard!'));
50
+ console.log('\n' + chalk.dim('─'.repeat(50)));
51
+ console.log('\n ' + chalk.bold(reference));
52
+ console.log('\n' + chalk.dim('─'.repeat(50)));
53
+ console.log(chalk.dim('\nPaste this in your commit message or PR title.'));
54
+ console.log(chalk.dim('The webhook will automatically update the task.\n'));
61
55
  // Show other options
62
- console.log(chalk_1.default.dim('Other formats:'));
56
+ console.log(chalk.dim('Other formats:'));
63
57
  if (refType !== 'wip')
64
- console.log(chalk_1.default.dim(` -w, --wip → ${task.refs.wip}`));
58
+ console.log(chalk.dim(` -w, --wip → ${task.refs.wip}`));
65
59
  if (refType !== 'fixes')
66
- console.log(chalk_1.default.dim(` -f, --fixes → ${task.refs.fixes}`));
60
+ console.log(chalk.dim(` -f, --fixes → ${task.refs.fixes}`));
67
61
  if (refType !== 'closes')
68
- console.log(chalk_1.default.dim(` -c, --closes → ${task.refs.closes}`));
62
+ console.log(chalk.dim(` -c, --closes → ${task.refs.closes}`));
69
63
  if (refType !== 'refs')
70
- console.log(chalk_1.default.dim(` -r, --refs → ${task.refs.refs}`));
64
+ console.log(chalk.dim(` -r, --refs → ${task.refs.refs}`));
71
65
  console.log('');
72
66
  }
73
67
  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'));
68
+ spinner.warn(chalk.yellow('Could not copy to clipboard.'));
69
+ console.log('\n' + chalk.dim('─'.repeat(50)));
70
+ console.log('\n ' + chalk.bold(reference));
71
+ console.log('\n' + chalk.dim('─'.repeat(50)));
72
+ console.log(chalk.dim('\nCopy the text above manually.\n'));
79
73
  }
80
74
  });
81
75
  //# sourceMappingURL=pick.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pick.js","sourceRoot":"","sources":["../../src/commands/pick.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pick.js","sourceRoot":"","sources":["../../src/commands/pick.ts"],"names":[],"mappings":"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"}
@@ -1,40 +1,34 @@
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')
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import inquirer from 'inquirer';
5
+ import { getProjects } from '../lib/api.js';
6
+ import { isAuthenticated, getConfig, setDefaultProject } from '../lib/config.js';
7
+ export const projectsCommand = new Command('projects')
14
8
  .description('List and manage projects')
15
9
  .option('--set', 'Interactively set the default project')
16
10
  .action(async (options) => {
17
- if (!(0, config_js_1.isAuthenticated)()) {
18
- console.log(chalk_1.default.red('Not logged in. Run "workdynamite login" first.'));
11
+ if (!isAuthenticated()) {
12
+ console.log(chalk.red('Not logged in. Run "workdynamite login" first.'));
19
13
  return;
20
14
  }
21
- const spinner = (0, ora_1.default)('Fetching projects...').start();
22
- const { data, error } = await (0, api_js_1.getProjects)();
15
+ const spinner = ora('Fetching projects...').start();
16
+ const { data, error } = await getProjects();
23
17
  if (error) {
24
- spinner.fail(chalk_1.default.red(`Failed to fetch projects: ${error}`));
18
+ spinner.fail(chalk.red(`Failed to fetch projects: ${error}`));
25
19
  return;
26
20
  }
27
21
  spinner.stop();
28
22
  const projects = data.projects;
29
- const config = (0, config_js_1.getConfig)();
23
+ const config = getConfig();
30
24
  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.'));
25
+ console.log(chalk.yellow('\nNo projects found.'));
26
+ console.log(chalk.dim('Create a project in the web app to see it here.'));
33
27
  return;
34
28
  }
35
29
  if (options.set) {
36
30
  // Interactive project selection
37
- const { selectedProject } = await inquirer_1.default.prompt([
31
+ const { selectedProject } = await inquirer.prompt([
38
32
  {
39
33
  type: 'list',
40
34
  name: 'selectedProject',
@@ -48,72 +42,72 @@ exports.projectsCommand = new commander_1.Command('projects')
48
42
  ],
49
43
  },
50
44
  ]);
51
- (0, config_js_1.setDefaultProject)(selectedProject);
45
+ setDefaultProject(selectedProject);
52
46
  if (selectedProject) {
53
47
  const project = projects.find(p => p.id === selectedProject);
54
- console.log(chalk_1.default.green(`\n✓ Default project set to: ${project?.name}`));
48
+ console.log(chalk.green(`\n✓ Default project set to: ${project?.name}`));
55
49
  }
56
50
  else {
57
- console.log(chalk_1.default.green('\n✓ Default project cleared. Tasks from all projects will be shown.'));
51
+ console.log(chalk.green('\n✓ Default project cleared. Tasks from all projects will be shown.'));
58
52
  }
59
53
  return;
60
54
  }
61
55
  // List projects
62
- console.log(chalk_1.default.bold('\n📁 Your Projects\n'));
63
- console.log(chalk_1.default.dim('─'.repeat(60)));
56
+ console.log(chalk.bold('\n📁 Your Projects\n'));
57
+ console.log(chalk.dim('─'.repeat(60)));
64
58
  for (const project of projects) {
65
59
  const isDefault = project.id === config.default_project;
66
60
  const statusColor = getStatusColor(project.status);
67
- console.log(` ${isDefault ? chalk_1.default.green('→') : ' '} ` +
68
- `${chalk_1.default.bold(project.name.padEnd(30))} ` +
61
+ console.log(` ${isDefault ? chalk.green('→') : ' '} ` +
62
+ `${chalk.bold(project.name.padEnd(30))} ` +
69
63
  `${statusColor(project.status.padEnd(12))} ` +
70
- `${chalk_1.default.dim(`${project.progress}%`)} ` +
71
- `${chalk_1.default.dim(`[${project.role}]`)}`);
64
+ `${chalk.dim(`${project.progress}%`)} ` +
65
+ `${chalk.dim(`[${project.role}]`)}`);
72
66
  }
73
- console.log(chalk_1.default.dim('─'.repeat(60)));
74
- console.log(chalk_1.default.dim(`\n${projects.length} project(s)`));
67
+ console.log(chalk.dim('─'.repeat(60)));
68
+ console.log(chalk.dim(`\n${projects.length} project(s)`));
75
69
  if (config.default_project) {
76
70
  const defaultProject = projects.find(p => p.id === config.default_project);
77
- console.log(chalk_1.default.dim(`Default: ${defaultProject?.name || 'Unknown'}`));
71
+ console.log(chalk.dim(`Default: ${defaultProject?.name || 'Unknown'}`));
78
72
  }
79
- console.log(chalk_1.default.dim('\nRun "workdynamite projects --set" to change the default project.\n'));
73
+ console.log(chalk.dim('\nRun "workdynamite projects --set" to change the default project.\n'));
80
74
  });
81
- exports.projectsCommand
75
+ projectsCommand
82
76
  .command('set <name>')
83
77
  .description('Set default project by name')
84
78
  .action(async (name) => {
85
- if (!(0, config_js_1.isAuthenticated)()) {
86
- console.log(chalk_1.default.red('Not logged in. Run "workdynamite login" first.'));
79
+ if (!isAuthenticated()) {
80
+ console.log(chalk.red('Not logged in. Run "workdynamite login" first.'));
87
81
  return;
88
82
  }
89
- const spinner = (0, ora_1.default)('Fetching projects...').start();
90
- const { data, error } = await (0, api_js_1.getProjects)();
83
+ const spinner = ora('Fetching projects...').start();
84
+ const { data, error } = await getProjects();
91
85
  if (error) {
92
- spinner.fail(chalk_1.default.red(`Failed to fetch projects: ${error}`));
86
+ spinner.fail(chalk.red(`Failed to fetch projects: ${error}`));
93
87
  return;
94
88
  }
95
89
  const project = data.projects.find(p => p.name.toLowerCase() === name.toLowerCase() || p.id === name);
96
90
  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.'));
91
+ spinner.fail(chalk.red(`Project "${name}" not found.`));
92
+ console.log(chalk.dim('Run "workdynamite projects" to see available projects.'));
99
93
  return;
100
94
  }
101
- (0, config_js_1.setDefaultProject)(project.id);
102
- spinner.succeed(chalk_1.default.green(`Default project set to: ${project.name}`));
95
+ setDefaultProject(project.id);
96
+ spinner.succeed(chalk.green(`Default project set to: ${project.name}`));
103
97
  });
104
98
  function getStatusColor(status) {
105
99
  switch (status.toLowerCase()) {
106
100
  case 'active':
107
101
  case 'in_progress':
108
- return chalk_1.default.green;
102
+ return chalk.green;
109
103
  case 'planning':
110
- return chalk_1.default.blue;
104
+ return chalk.blue;
111
105
  case 'on_hold':
112
- return chalk_1.default.yellow;
106
+ return chalk.yellow;
113
107
  case 'completed':
114
- return chalk_1.default.gray;
108
+ return chalk.gray;
115
109
  default:
116
- return chalk_1.default.white;
110
+ return chalk.white;
117
111
  }
118
112
  }
119
113
  //# sourceMappingURL=projects.js.map