taskin 0.1.0-beta.1 → 0.1.0-beta.2
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 +91 -12
- package/dist/index.d.ts +380 -5
- package/dist/index.js +1372 -25
- package/package.json +13 -4
- package/dist/commands/commands.types.d.ts +0 -13
- package/dist/commands/commands.types.js +0 -6
- package/dist/commands/commands.types.js.map +0 -1
- package/dist/commands/define-command/define-command.d.ts +0 -6
- package/dist/commands/define-command/define-command.js +0 -27
- package/dist/commands/define-command/define-command.js.map +0 -1
- package/dist/commands/define-command/define-command.test.d.ts +0 -4
- package/dist/commands/define-command/define-command.test.js +0 -125
- package/dist/commands/define-command/define-command.test.js.map +0 -1
- package/dist/commands/define-command/define-command.types.d.ts +0 -49
- package/dist/commands/define-command/define-command.types.js +0 -5
- package/dist/commands/define-command/define-command.types.js.map +0 -1
- package/dist/commands/define-command/index.d.ts +0 -5
- package/dist/commands/define-command/index.js +0 -6
- package/dist/commands/define-command/index.js.map +0 -1
- package/dist/commands/finish.d.ts +0 -4
- package/dist/commands/finish.js +0 -69
- package/dist/commands/finish.js.map +0 -1
- package/dist/commands/index.d.ts +0 -9
- package/dist/commands/index.js +0 -10
- package/dist/commands/index.js.map +0 -1
- package/dist/commands/init.d.ts +0 -4
- package/dist/commands/init.js +0 -192
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/lint.d.ts +0 -4
- package/dist/commands/lint.js +0 -31
- package/dist/commands/lint.js.map +0 -1
- package/dist/commands/list.d.ts +0 -4
- package/dist/commands/list.js +0 -132
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/pause.d.ts +0 -4
- package/dist/commands/pause.js +0 -69
- package/dist/commands/pause.js.map +0 -1
- package/dist/commands/start.d.ts +0 -4
- package/dist/commands/start.js +0 -70
- package/dist/commands/start.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/colors.d.ts +0 -26
- package/dist/lib/colors.js +0 -42
- package/dist/lib/colors.js.map +0 -1
- package/dist/lib/file-system-task-linter/file-system-task-linter.d.ts +0 -36
- package/dist/lib/file-system-task-linter/file-system-task-linter.js +0 -219
- package/dist/lib/file-system-task-linter/file-system-task-linter.js.map +0 -1
- package/dist/lib/file-system-task-linter/file-system-task-linter.mock.d.ts +0 -81
- package/dist/lib/file-system-task-linter/file-system-task-linter.mock.js +0 -152
- package/dist/lib/file-system-task-linter/file-system-task-linter.mock.js.map +0 -1
- package/dist/lib/file-system-task-linter/file-system-task-linter.test.d.ts +0 -4
- package/dist/lib/file-system-task-linter/file-system-task-linter.test.js +0 -146
- package/dist/lib/file-system-task-linter/file-system-task-linter.test.js.map +0 -1
- package/dist/lib/file-system-task-linter/file-system-task-linter.types.d.ts +0 -52
- package/dist/lib/file-system-task-linter/file-system-task-linter.types.js +0 -6
- package/dist/lib/file-system-task-linter/file-system-task-linter.types.js.map +0 -1
- package/dist/lib/file-system-task-linter/index.d.ts +0 -6
- package/dist/lib/file-system-task-linter/index.js +0 -7
- package/dist/lib/file-system-task-linter/index.js.map +0 -1
- package/dist/lib/help.d.ts +0 -4
- package/dist/lib/help.js +0 -104
- package/dist/lib/help.js.map +0 -1
- package/dist/lib/index.d.ts +0 -6
- package/dist/lib/index.js +0 -7
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/provider-installer/index.d.ts +0 -5
- package/dist/lib/provider-installer/index.js +0 -6
- package/dist/lib/provider-installer/index.js.map +0 -1
- package/dist/lib/provider-installer/provider-installer.d.ts +0 -28
- package/dist/lib/provider-installer/provider-installer.js +0 -86
- package/dist/lib/provider-installer/provider-installer.js.map +0 -1
- package/dist/lib/provider-installer/provider-installer.types.d.ts +0 -4
- package/dist/lib/provider-installer/provider-installer.types.js +0 -5
- package/dist/lib/provider-installer/provider-installer.types.js.map +0 -1
- package/dist/lib/provider-installer.d.ts +0 -27
- package/dist/lib/provider-installer.js +0 -86
- package/dist/lib/provider-installer.js.map +0 -1
- package/dist/lib/provider-registry/index.d.ts +0 -5
- package/dist/lib/provider-registry/index.js +0 -6
- package/dist/lib/provider-registry/index.js.map +0 -1
- package/dist/lib/provider-registry/provider-registry.d.ts +0 -9
- package/dist/lib/provider-registry/provider-registry.js +0 -111
- package/dist/lib/provider-registry/provider-registry.js.map +0 -1
- package/dist/lib/provider-registry/provider-registry.types.d.ts +0 -5
- package/dist/lib/provider-registry/provider-registry.types.js +0 -6
- package/dist/lib/provider-registry/provider-registry.types.js.map +0 -1
- package/dist/lib/provider-registry.d.ts +0 -26
- package/dist/lib/provider-registry.js +0 -111
- package/dist/lib/provider-registry.js.map +0 -1
- package/dist/lib/task-linter/index.d.ts +0 -5
- package/dist/lib/task-linter/index.js +0 -6
- package/dist/lib/task-linter/index.js.map +0 -1
- package/dist/lib/task-linter/task-linter.d.ts +0 -36
- package/dist/lib/task-linter/task-linter.js +0 -219
- package/dist/lib/task-linter/task-linter.js.map +0 -1
- package/dist/lib/task-linter/task-linter.types.d.ts +0 -52
- package/dist/lib/task-linter/task-linter.types.js +0 -6
- package/dist/lib/task-linter/task-linter.types.js.map +0 -1
- package/dist/lib/task-linter.d.ts +0 -29
- package/dist/lib/task-linter.js +0 -215
- package/dist/lib/task-linter.js.map +0 -1
- package/dist/lib/task-linter.types.d.ts +0 -38
- package/dist/lib/task-linter.types.js +0 -5
- package/dist/lib/task-linter.types.js.map +0 -1
- package/dist/main.d.ts +0 -14
- package/dist/main.js +0 -29
- package/dist/main.js.map +0 -1
- package/dist/taskin.d.ts +0 -33
- package/dist/taskin.js +0 -101
- package/dist/taskin.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "taskin",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.2",
|
|
4
4
|
"description": "Task management system integrated with Git workflows",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"task",
|
|
@@ -39,8 +39,16 @@
|
|
|
39
39
|
"access": "public"
|
|
40
40
|
},
|
|
41
41
|
"type": "module",
|
|
42
|
+
"main": "./dist/index.js",
|
|
43
|
+
"types": "./dist/index.d.ts",
|
|
44
|
+
"exports": {
|
|
45
|
+
".": {
|
|
46
|
+
"types": "./dist/index.d.ts",
|
|
47
|
+
"import": "./dist/index.js"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
42
50
|
"bin": {
|
|
43
|
-
"taskin": "
|
|
51
|
+
"taskin": "dist/index.js"
|
|
44
52
|
},
|
|
45
53
|
"files": [
|
|
46
54
|
"dist",
|
|
@@ -48,9 +56,9 @@
|
|
|
48
56
|
"LICENSE"
|
|
49
57
|
],
|
|
50
58
|
"scripts": {
|
|
51
|
-
"build": "
|
|
59
|
+
"build": "tsup",
|
|
52
60
|
"clean": "rm -rf dist coverage .turbo",
|
|
53
|
-
"dev": "
|
|
61
|
+
"dev": "tsup --watch",
|
|
54
62
|
"format": "prettier --write .",
|
|
55
63
|
"format:check": "prettier --check .",
|
|
56
64
|
"lint": "eslint .",
|
|
@@ -70,6 +78,7 @@
|
|
|
70
78
|
"devDependencies": {
|
|
71
79
|
"@types/node": "^20.14.10",
|
|
72
80
|
"eslint": "^8.57.0",
|
|
81
|
+
"tsup": "^8.5.0",
|
|
73
82
|
"typescript": "^5.5.3",
|
|
74
83
|
"vitest": "^1.6.0"
|
|
75
84
|
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI commands types
|
|
3
|
-
* Re-exports from @taskin/types-ts for convenience
|
|
4
|
-
*/
|
|
5
|
-
export type {
|
|
6
|
-
FinishTaskOptions,
|
|
7
|
-
ListTasksOptions,
|
|
8
|
-
PauseTaskOptions,
|
|
9
|
-
StartTaskOptions,
|
|
10
|
-
} from '@taskin/types-ts';
|
|
11
|
-
export interface LintOptions {
|
|
12
|
-
path?: string;
|
|
13
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commands.types.js","sourceRoot":"","sources":["../../src/commands/commands.types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Command definition helper
|
|
3
|
-
* Provides a declarative way to define CLI commands
|
|
4
|
-
*/
|
|
5
|
-
import { error } from '../../lib/colors.js';
|
|
6
|
-
export const defineCommand = (config) => {
|
|
7
|
-
return (program) => {
|
|
8
|
-
const cmd = program.command(config.name).description(config.description);
|
|
9
|
-
if (config.alias) {
|
|
10
|
-
cmd.alias(config.alias);
|
|
11
|
-
}
|
|
12
|
-
config.options?.forEach((opt) => {
|
|
13
|
-
cmd.option(opt.flags, opt.description, opt.defaultValue);
|
|
14
|
-
});
|
|
15
|
-
cmd.action(async (...args) => {
|
|
16
|
-
try {
|
|
17
|
-
await config.handler(...args);
|
|
18
|
-
} catch (err) {
|
|
19
|
-
error(
|
|
20
|
-
`Failed to execute command: ${err instanceof Error ? err.message : String(err)}`,
|
|
21
|
-
);
|
|
22
|
-
process.exit(1);
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=define-command.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"define-command.js","sourceRoot":"","sources":["../../../src/commands/define-command/define-command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAG5C,MAAM,CAAC,MAAM,aAAa,GAA0B,CAAC,MAAM,EAAE,EAAE;IAC7D,OAAO,CAAC,OAAgB,EAAE,EAAE;QAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEzE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;YAC3B,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,KAAK,CACH,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACjF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for defineCommand
|
|
3
|
-
*/
|
|
4
|
-
import { Command } from 'commander';
|
|
5
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
6
|
-
import { defineCommand } from './define-command.js';
|
|
7
|
-
describe('defineCommand', () => {
|
|
8
|
-
it('should create a command registration function', () => {
|
|
9
|
-
const handler = vi.fn();
|
|
10
|
-
const commandReg = defineCommand({
|
|
11
|
-
name: 'test',
|
|
12
|
-
description: 'Test command',
|
|
13
|
-
handler,
|
|
14
|
-
});
|
|
15
|
-
expect(commandReg).toBeTypeOf('function');
|
|
16
|
-
});
|
|
17
|
-
it('should register a command with the program', () => {
|
|
18
|
-
const program = new Command();
|
|
19
|
-
const handler = vi.fn();
|
|
20
|
-
const commandReg = defineCommand({
|
|
21
|
-
name: 'test',
|
|
22
|
-
description: 'Test command',
|
|
23
|
-
handler,
|
|
24
|
-
});
|
|
25
|
-
commandReg(program);
|
|
26
|
-
const commands = program.commands;
|
|
27
|
-
expect(commands).toHaveLength(1);
|
|
28
|
-
expect(commands[0]?.name()).toBe('test');
|
|
29
|
-
});
|
|
30
|
-
it('should register command with alias', () => {
|
|
31
|
-
const program = new Command();
|
|
32
|
-
const handler = vi.fn();
|
|
33
|
-
const commandReg = defineCommand({
|
|
34
|
-
name: 'test',
|
|
35
|
-
description: 'Test command',
|
|
36
|
-
alias: 't',
|
|
37
|
-
handler,
|
|
38
|
-
});
|
|
39
|
-
commandReg(program);
|
|
40
|
-
const command = program.commands[0];
|
|
41
|
-
expect(command?.alias()).toBe('t');
|
|
42
|
-
});
|
|
43
|
-
it('should register command with options', () => {
|
|
44
|
-
const program = new Command();
|
|
45
|
-
const handler = vi.fn();
|
|
46
|
-
const commandReg = defineCommand({
|
|
47
|
-
name: 'test',
|
|
48
|
-
description: 'Test command',
|
|
49
|
-
options: [
|
|
50
|
-
{
|
|
51
|
-
flags: '-f, --force',
|
|
52
|
-
description: 'Force flag',
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
flags: '-n, --name <name>',
|
|
56
|
-
description: 'Name option',
|
|
57
|
-
defaultValue: 'default',
|
|
58
|
-
},
|
|
59
|
-
],
|
|
60
|
-
handler,
|
|
61
|
-
});
|
|
62
|
-
commandReg(program);
|
|
63
|
-
const command = program.commands[0];
|
|
64
|
-
const options = command?.options;
|
|
65
|
-
expect(options).toHaveLength(2);
|
|
66
|
-
expect(options?.[0]?.flags).toBe('-f, --force');
|
|
67
|
-
expect(options?.[1]?.flags).toBe('-n, --name <name>');
|
|
68
|
-
});
|
|
69
|
-
it('should call handler when command is executed', async () => {
|
|
70
|
-
const program = new Command();
|
|
71
|
-
const handler = vi.fn().mockResolvedValue(undefined);
|
|
72
|
-
const commandReg = defineCommand({
|
|
73
|
-
name: 'test <arg>',
|
|
74
|
-
description: 'Test command',
|
|
75
|
-
handler,
|
|
76
|
-
});
|
|
77
|
-
commandReg(program);
|
|
78
|
-
// Simulate command execution
|
|
79
|
-
await program.parseAsync(['node', 'test', 'test', 'myarg']);
|
|
80
|
-
expect(handler).toHaveBeenCalledWith(
|
|
81
|
-
'myarg',
|
|
82
|
-
expect.any(Object),
|
|
83
|
-
expect.any(Object),
|
|
84
|
-
);
|
|
85
|
-
});
|
|
86
|
-
it('should handle async handler errors', async () => {
|
|
87
|
-
const program = new Command();
|
|
88
|
-
const error = new Error('Test error');
|
|
89
|
-
const handler = vi.fn().mockRejectedValue(error);
|
|
90
|
-
const exitSpy = vi
|
|
91
|
-
.spyOn(process, 'exit')
|
|
92
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
93
|
-
.mockImplementation(() => {});
|
|
94
|
-
const commandReg = defineCommand({
|
|
95
|
-
name: 'test',
|
|
96
|
-
description: 'Test command',
|
|
97
|
-
handler,
|
|
98
|
-
});
|
|
99
|
-
commandReg(program);
|
|
100
|
-
await program.parseAsync(['node', 'test', 'test']);
|
|
101
|
-
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
102
|
-
exitSpy.mockRestore();
|
|
103
|
-
});
|
|
104
|
-
it('should handle sync handler errors', async () => {
|
|
105
|
-
const program = new Command();
|
|
106
|
-
const error = new Error('Test error');
|
|
107
|
-
const handler = vi.fn().mockImplementation(() => {
|
|
108
|
-
throw error;
|
|
109
|
-
});
|
|
110
|
-
const exitSpy = vi
|
|
111
|
-
.spyOn(process, 'exit')
|
|
112
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
113
|
-
.mockImplementation(() => {});
|
|
114
|
-
const commandReg = defineCommand({
|
|
115
|
-
name: 'test',
|
|
116
|
-
description: 'Test command',
|
|
117
|
-
handler,
|
|
118
|
-
});
|
|
119
|
-
commandReg(program);
|
|
120
|
-
await program.parseAsync(['node', 'test', 'test']);
|
|
121
|
-
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
122
|
-
exitSpy.mockRestore();
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
//# sourceMappingURL=define-command.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"define-command.test.js","sourceRoot":"","sources":["../../../src/commands/define-command/define-command.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Command definition types
|
|
3
|
-
*/
|
|
4
|
-
import type { Command } from 'commander';
|
|
5
|
-
export interface CommandOption {
|
|
6
|
-
description: string;
|
|
7
|
-
flags: string;
|
|
8
|
-
defaultValue?: string | boolean | string[];
|
|
9
|
-
}
|
|
10
|
-
export interface CommandConfig {
|
|
11
|
-
description: string;
|
|
12
|
-
handler: (...args: any[]) => Promise<void> | void;
|
|
13
|
-
name: string;
|
|
14
|
-
alias?: string;
|
|
15
|
-
options?: CommandOption[];
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Type for a command registration function
|
|
19
|
-
* Takes a Commander program and registers a command with it
|
|
20
|
-
*/
|
|
21
|
-
export type CommandRegistration = (program: Command) => void;
|
|
22
|
-
/**
|
|
23
|
-
* Type for the defineCommand function.
|
|
24
|
-
*
|
|
25
|
-
* Define a CLI command with declarative configuration.
|
|
26
|
-
* This function takes a command configuration object and returns a function
|
|
27
|
-
* that registers the command with a Commander program.
|
|
28
|
-
*
|
|
29
|
-
* @param config - Command configuration object containing name, description, options, and handler
|
|
30
|
-
* @returns Function that registers the command with a Commander program
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* ```typescript
|
|
34
|
-
* export const listCommand = defineCommand({
|
|
35
|
-
* name: 'list [filter]',
|
|
36
|
-
* description: '📊 List all tasks',
|
|
37
|
-
* alias: 'ls',
|
|
38
|
-
* options: [
|
|
39
|
-
* { flags: '-s, --status <status>', description: 'Filter by status' }
|
|
40
|
-
* ],
|
|
41
|
-
* handler: async (filter, options) => {
|
|
42
|
-
* // Implementation
|
|
43
|
-
* }
|
|
44
|
-
* });
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
export type DefineCommandFunction = (
|
|
48
|
-
config: CommandConfig,
|
|
49
|
-
) => CommandRegistration;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"define-command.types.js","sourceRoot":"","sources":["../../../src/commands/define-command/define-command.types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/define-command/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC"}
|
package/dist/commands/finish.js
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Finish command - Complete a task
|
|
3
|
-
*/
|
|
4
|
-
import { FileSystemTaskProvider } from '@taskin/fs-task-provider';
|
|
5
|
-
import { TaskManager } from '@taskin/task-manager';
|
|
6
|
-
import path from 'path';
|
|
7
|
-
import { colors, error, info, printHeader, success } from '../lib/colors.js';
|
|
8
|
-
import { defineCommand } from './define-command/index.js';
|
|
9
|
-
export const finishCommand = defineCommand({
|
|
10
|
-
name: 'finish <task-id>',
|
|
11
|
-
description: '✅ Complete a task',
|
|
12
|
-
alias: 'done',
|
|
13
|
-
options: [
|
|
14
|
-
{
|
|
15
|
-
flags: '-s, --skip-update',
|
|
16
|
-
description: 'Skip updating task status',
|
|
17
|
-
},
|
|
18
|
-
],
|
|
19
|
-
handler: async (taskId, options) => {
|
|
20
|
-
await finishTask(taskId, options);
|
|
21
|
-
},
|
|
22
|
-
});
|
|
23
|
-
async function finishTask(taskId, options) {
|
|
24
|
-
printHeader(`Finishing Task ${taskId}`, '✅');
|
|
25
|
-
// Normalize task ID
|
|
26
|
-
const normalizedId = taskId.replace(/^task-/, '').padStart(3, '0');
|
|
27
|
-
// Find TASKS directory
|
|
28
|
-
const tasksDir = path.join(process.cwd(), 'TASKS');
|
|
29
|
-
// Initialize task manager
|
|
30
|
-
const taskProvider = new FileSystemTaskProvider(tasksDir);
|
|
31
|
-
const taskManager = new TaskManager(taskProvider);
|
|
32
|
-
// Find task
|
|
33
|
-
const task = await taskProvider.findTask(normalizedId);
|
|
34
|
-
if (!task) {
|
|
35
|
-
error(`Task ${normalizedId} not found in TASKS/ directory`);
|
|
36
|
-
process.exit(1);
|
|
37
|
-
}
|
|
38
|
-
info(`Found task: ${task.title}`);
|
|
39
|
-
info(`Current status: ${task.status}`);
|
|
40
|
-
// Check if task is already done
|
|
41
|
-
if (task.status === 'done') {
|
|
42
|
-
error('Task is already done');
|
|
43
|
-
process.exit(1);
|
|
44
|
-
}
|
|
45
|
-
if (!options.skipUpdate) {
|
|
46
|
-
info('Marking task as done...');
|
|
47
|
-
const updatedTask = await taskManager.finishTask(task.id);
|
|
48
|
-
success(`Task ${updatedTask.id} completed successfully! 🎉`);
|
|
49
|
-
success(`Status changed to: ${updatedTask.status}`);
|
|
50
|
-
} else {
|
|
51
|
-
info('Skipping status update (--skip-update flag)');
|
|
52
|
-
}
|
|
53
|
-
console.log();
|
|
54
|
-
info('Suggested commit message:');
|
|
55
|
-
const commitType = task.type || 'feat';
|
|
56
|
-
console.log(
|
|
57
|
-
colors.highlight(` ${commitType}(task-${normalizedId}): ${task.title}`),
|
|
58
|
-
);
|
|
59
|
-
console.log();
|
|
60
|
-
info('Next steps:');
|
|
61
|
-
console.log(colors.secondary(' 1. Review your changes'));
|
|
62
|
-
console.log(colors.secondary(' 2. Commit: git add . && git commit'));
|
|
63
|
-
console.log(colors.secondary(' 3. Push: git push'));
|
|
64
|
-
console.log(colors.secondary(' 4. Create a Pull Request'));
|
|
65
|
-
console.log();
|
|
66
|
-
success('Great work! 🚀');
|
|
67
|
-
console.log();
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=finish.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"finish.js","sourceRoot":"","sources":["../../src/commands/finish.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
DELETED
package/dist/commands/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
package/dist/commands/init.d.ts
DELETED
package/dist/commands/init.js
DELETED
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Init command - Initialize Taskin in the current project
|
|
3
|
-
*/
|
|
4
|
-
import { existsSync, mkdirSync, writeFileSync } from 'fs';
|
|
5
|
-
import inquirer from 'inquirer';
|
|
6
|
-
import { join } from 'path';
|
|
7
|
-
import { colors, error, info, printHeader, success } from '../lib/colors.js';
|
|
8
|
-
import {
|
|
9
|
-
ensureProviderInstalled,
|
|
10
|
-
isProviderInstalled,
|
|
11
|
-
} from '../lib/provider-installer/index.js';
|
|
12
|
-
import {
|
|
13
|
-
getAllProviders,
|
|
14
|
-
getProviderById,
|
|
15
|
-
} from '../lib/provider-registry/index.js';
|
|
16
|
-
import { defineCommand } from './define-command/index.js';
|
|
17
|
-
export const initCommand = defineCommand({
|
|
18
|
-
name: 'init',
|
|
19
|
-
description: '🎯 Initialize Taskin in your project',
|
|
20
|
-
options: [
|
|
21
|
-
{
|
|
22
|
-
flags: '-f, --force',
|
|
23
|
-
description: 'Force initialization (overwrite existing configuration)',
|
|
24
|
-
},
|
|
25
|
-
],
|
|
26
|
-
handler: async (options) => {
|
|
27
|
-
await initializeTaskin(options);
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
async function initializeTaskin(options) {
|
|
31
|
-
printHeader('Initializing Taskin', '🎯');
|
|
32
|
-
const cwd = process.cwd();
|
|
33
|
-
const configFile = join(cwd, '.taskin.json');
|
|
34
|
-
// Check if already initialized
|
|
35
|
-
if (existsSync(configFile) && !options.force) {
|
|
36
|
-
error('Taskin is already initialized in this project');
|
|
37
|
-
info('Use --force to reinitialize');
|
|
38
|
-
process.exit(1);
|
|
39
|
-
}
|
|
40
|
-
// Get all providers from registry
|
|
41
|
-
const allProviders = getAllProviders();
|
|
42
|
-
// Create choices for inquirer
|
|
43
|
-
const choices = allProviders.map((p) => {
|
|
44
|
-
const installed = isProviderInstalled(p.packageName);
|
|
45
|
-
const status = p.status === 'coming-soon' ? ' (coming soon)' : '';
|
|
46
|
-
const installedMark = installed ? ' ✓' : '';
|
|
47
|
-
return {
|
|
48
|
-
name: `${p.name}${installedMark}${status} - ${p.description}`,
|
|
49
|
-
value: p.id,
|
|
50
|
-
disabled: p.status === 'coming-soon' ? 'Not yet implemented' : false,
|
|
51
|
-
};
|
|
52
|
-
});
|
|
53
|
-
// Ask user to select provider
|
|
54
|
-
const { providerId } = await inquirer.prompt([
|
|
55
|
-
{
|
|
56
|
-
type: 'list',
|
|
57
|
-
name: 'providerId',
|
|
58
|
-
message: 'Select a task provider:',
|
|
59
|
-
choices,
|
|
60
|
-
default: 'fs',
|
|
61
|
-
},
|
|
62
|
-
]);
|
|
63
|
-
const selectedProvider = getProviderById(providerId);
|
|
64
|
-
if (!selectedProvider) {
|
|
65
|
-
error(`Provider "${providerId}" not found`);
|
|
66
|
-
process.exit(1);
|
|
67
|
-
}
|
|
68
|
-
console.log();
|
|
69
|
-
info(`Setting up task provider: ${colors.highlight(selectedProvider.name)}`);
|
|
70
|
-
console.log();
|
|
71
|
-
// Ensure provider is installed
|
|
72
|
-
await ensureProviderInstalled(selectedProvider);
|
|
73
|
-
// Setup provider configuration
|
|
74
|
-
const providerConfig = await setupProviderConfig(selectedProvider, cwd);
|
|
75
|
-
// Create .taskin.json configuration
|
|
76
|
-
const config = {
|
|
77
|
-
version: '0.1.0',
|
|
78
|
-
provider: {
|
|
79
|
-
type: selectedProvider.id,
|
|
80
|
-
config: providerConfig,
|
|
81
|
-
},
|
|
82
|
-
};
|
|
83
|
-
info('Creating configuration file...');
|
|
84
|
-
writeFileSync(configFile, JSON.stringify(config, null, 2), 'utf-8');
|
|
85
|
-
success(`✓ Created ${colors.highlight('.taskin.json')}`);
|
|
86
|
-
// Add .taskin.json to .gitignore if it exists
|
|
87
|
-
const gitignorePath = join(cwd, '.gitignore');
|
|
88
|
-
if (existsSync(gitignorePath)) {
|
|
89
|
-
const gitignoreContent = require('fs').readFileSync(gitignorePath, 'utf-8');
|
|
90
|
-
if (!gitignoreContent.includes('.taskin.json')) {
|
|
91
|
-
info('Adding .taskin.json to .gitignore...');
|
|
92
|
-
writeFileSync(
|
|
93
|
-
gitignorePath,
|
|
94
|
-
`${gitignoreContent}\n# Taskin configuration\n.taskin.json\n`,
|
|
95
|
-
'utf-8',
|
|
96
|
-
);
|
|
97
|
-
success('✓ Updated .gitignore');
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
console.log();
|
|
101
|
-
success('🎉 Taskin initialized successfully!');
|
|
102
|
-
console.log();
|
|
103
|
-
info('Next steps:');
|
|
104
|
-
console.log(colors.secondary(' 1. Run: taskin list'));
|
|
105
|
-
console.log(
|
|
106
|
-
colors.secondary(
|
|
107
|
-
selectedProvider.id === 'fs'
|
|
108
|
-
? ' 2. Edit or create tasks in TASKS/'
|
|
109
|
-
: ` 2. Tasks will be synced with ${selectedProvider.name}`,
|
|
110
|
-
),
|
|
111
|
-
);
|
|
112
|
-
console.log(colors.secondary(' 3. Start working: taskin start <task-id>'));
|
|
113
|
-
console.log();
|
|
114
|
-
info('For more information, run: taskin --help');
|
|
115
|
-
console.log();
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Setup provider configuration based on provider schema
|
|
119
|
-
*/
|
|
120
|
-
async function setupProviderConfig(provider, cwd) {
|
|
121
|
-
// Special handling for File System provider
|
|
122
|
-
if (provider.id === 'fs') {
|
|
123
|
-
return setupFileSystemProvider(cwd);
|
|
124
|
-
}
|
|
125
|
-
// Generic configuration for other providers
|
|
126
|
-
info(`Configuring ${provider.name}...`);
|
|
127
|
-
console.log();
|
|
128
|
-
const questions = Object.entries(provider.configSchema.properties).map(
|
|
129
|
-
([key, schema]) => ({
|
|
130
|
-
type: schema.secret ? 'password' : 'input',
|
|
131
|
-
name: key,
|
|
132
|
-
message: `${schema.description}:`,
|
|
133
|
-
validate: (input) => {
|
|
134
|
-
if (
|
|
135
|
-
provider.configSchema.required.includes(key) &&
|
|
136
|
-
input.length === 0
|
|
137
|
-
) {
|
|
138
|
-
return `${schema.description} is required`;
|
|
139
|
-
}
|
|
140
|
-
return true;
|
|
141
|
-
},
|
|
142
|
-
}),
|
|
143
|
-
);
|
|
144
|
-
const answers = await inquirer.prompt(questions);
|
|
145
|
-
console.log();
|
|
146
|
-
success(`✓ ${provider.name} configuration saved`);
|
|
147
|
-
return answers;
|
|
148
|
-
}
|
|
149
|
-
async function setupFileSystemProvider(cwd) {
|
|
150
|
-
const tasksDir = join(cwd, 'TASKS');
|
|
151
|
-
// Create TASKS directory
|
|
152
|
-
if (!existsSync(tasksDir)) {
|
|
153
|
-
info(`Creating TASKS directory...`);
|
|
154
|
-
mkdirSync(tasksDir, { recursive: true });
|
|
155
|
-
success(`✓ Created ${colors.highlight('TASKS/')} directory`);
|
|
156
|
-
} else {
|
|
157
|
-
info(`${colors.highlight('TASKS/')} directory already exists`);
|
|
158
|
-
}
|
|
159
|
-
// Create a sample task
|
|
160
|
-
const sampleTaskFile = join(tasksDir, 'task-001-setup-project.md');
|
|
161
|
-
if (!existsSync(sampleTaskFile)) {
|
|
162
|
-
info('Creating sample task...');
|
|
163
|
-
const sampleTask = `# Task 001 — Setup Project
|
|
164
|
-
|
|
165
|
-
Status: pending
|
|
166
|
-
Type: chore
|
|
167
|
-
Assignee: developer
|
|
168
|
-
|
|
169
|
-
## Description
|
|
170
|
-
|
|
171
|
-
This is a sample task created during Taskin initialization.
|
|
172
|
-
|
|
173
|
-
## Tasks
|
|
174
|
-
|
|
175
|
-
- [ ] Review Taskin documentation
|
|
176
|
-
- [ ] Create your first task
|
|
177
|
-
- [ ] Start working on a task
|
|
178
|
-
|
|
179
|
-
## Notes
|
|
180
|
-
|
|
181
|
-
You can edit or delete this file. Use \`taskin list\` to see all tasks.
|
|
182
|
-
`;
|
|
183
|
-
writeFileSync(sampleTaskFile, sampleTask, 'utf-8');
|
|
184
|
-
success(
|
|
185
|
-
`✓ Created sample task ${colors.highlight('task-001-setup-project.md')}`,
|
|
186
|
-
);
|
|
187
|
-
}
|
|
188
|
-
return {
|
|
189
|
-
tasksDir: 'TASKS',
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
//# sourceMappingURL=init.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/lint.d.ts
DELETED