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.
Files changed (110) hide show
  1. package/README.md +91 -12
  2. package/dist/index.d.ts +380 -5
  3. package/dist/index.js +1372 -25
  4. package/package.json +13 -4
  5. package/dist/commands/commands.types.d.ts +0 -13
  6. package/dist/commands/commands.types.js +0 -6
  7. package/dist/commands/commands.types.js.map +0 -1
  8. package/dist/commands/define-command/define-command.d.ts +0 -6
  9. package/dist/commands/define-command/define-command.js +0 -27
  10. package/dist/commands/define-command/define-command.js.map +0 -1
  11. package/dist/commands/define-command/define-command.test.d.ts +0 -4
  12. package/dist/commands/define-command/define-command.test.js +0 -125
  13. package/dist/commands/define-command/define-command.test.js.map +0 -1
  14. package/dist/commands/define-command/define-command.types.d.ts +0 -49
  15. package/dist/commands/define-command/define-command.types.js +0 -5
  16. package/dist/commands/define-command/define-command.types.js.map +0 -1
  17. package/dist/commands/define-command/index.d.ts +0 -5
  18. package/dist/commands/define-command/index.js +0 -6
  19. package/dist/commands/define-command/index.js.map +0 -1
  20. package/dist/commands/finish.d.ts +0 -4
  21. package/dist/commands/finish.js +0 -69
  22. package/dist/commands/finish.js.map +0 -1
  23. package/dist/commands/index.d.ts +0 -9
  24. package/dist/commands/index.js +0 -10
  25. package/dist/commands/index.js.map +0 -1
  26. package/dist/commands/init.d.ts +0 -4
  27. package/dist/commands/init.js +0 -192
  28. package/dist/commands/init.js.map +0 -1
  29. package/dist/commands/lint.d.ts +0 -4
  30. package/dist/commands/lint.js +0 -31
  31. package/dist/commands/lint.js.map +0 -1
  32. package/dist/commands/list.d.ts +0 -4
  33. package/dist/commands/list.js +0 -132
  34. package/dist/commands/list.js.map +0 -1
  35. package/dist/commands/pause.d.ts +0 -4
  36. package/dist/commands/pause.js +0 -69
  37. package/dist/commands/pause.js.map +0 -1
  38. package/dist/commands/start.d.ts +0 -4
  39. package/dist/commands/start.js +0 -70
  40. package/dist/commands/start.js.map +0 -1
  41. package/dist/index.js.map +0 -1
  42. package/dist/lib/colors.d.ts +0 -26
  43. package/dist/lib/colors.js +0 -42
  44. package/dist/lib/colors.js.map +0 -1
  45. package/dist/lib/file-system-task-linter/file-system-task-linter.d.ts +0 -36
  46. package/dist/lib/file-system-task-linter/file-system-task-linter.js +0 -219
  47. package/dist/lib/file-system-task-linter/file-system-task-linter.js.map +0 -1
  48. package/dist/lib/file-system-task-linter/file-system-task-linter.mock.d.ts +0 -81
  49. package/dist/lib/file-system-task-linter/file-system-task-linter.mock.js +0 -152
  50. package/dist/lib/file-system-task-linter/file-system-task-linter.mock.js.map +0 -1
  51. package/dist/lib/file-system-task-linter/file-system-task-linter.test.d.ts +0 -4
  52. package/dist/lib/file-system-task-linter/file-system-task-linter.test.js +0 -146
  53. package/dist/lib/file-system-task-linter/file-system-task-linter.test.js.map +0 -1
  54. package/dist/lib/file-system-task-linter/file-system-task-linter.types.d.ts +0 -52
  55. package/dist/lib/file-system-task-linter/file-system-task-linter.types.js +0 -6
  56. package/dist/lib/file-system-task-linter/file-system-task-linter.types.js.map +0 -1
  57. package/dist/lib/file-system-task-linter/index.d.ts +0 -6
  58. package/dist/lib/file-system-task-linter/index.js +0 -7
  59. package/dist/lib/file-system-task-linter/index.js.map +0 -1
  60. package/dist/lib/help.d.ts +0 -4
  61. package/dist/lib/help.js +0 -104
  62. package/dist/lib/help.js.map +0 -1
  63. package/dist/lib/index.d.ts +0 -6
  64. package/dist/lib/index.js +0 -7
  65. package/dist/lib/index.js.map +0 -1
  66. package/dist/lib/provider-installer/index.d.ts +0 -5
  67. package/dist/lib/provider-installer/index.js +0 -6
  68. package/dist/lib/provider-installer/index.js.map +0 -1
  69. package/dist/lib/provider-installer/provider-installer.d.ts +0 -28
  70. package/dist/lib/provider-installer/provider-installer.js +0 -86
  71. package/dist/lib/provider-installer/provider-installer.js.map +0 -1
  72. package/dist/lib/provider-installer/provider-installer.types.d.ts +0 -4
  73. package/dist/lib/provider-installer/provider-installer.types.js +0 -5
  74. package/dist/lib/provider-installer/provider-installer.types.js.map +0 -1
  75. package/dist/lib/provider-installer.d.ts +0 -27
  76. package/dist/lib/provider-installer.js +0 -86
  77. package/dist/lib/provider-installer.js.map +0 -1
  78. package/dist/lib/provider-registry/index.d.ts +0 -5
  79. package/dist/lib/provider-registry/index.js +0 -6
  80. package/dist/lib/provider-registry/index.js.map +0 -1
  81. package/dist/lib/provider-registry/provider-registry.d.ts +0 -9
  82. package/dist/lib/provider-registry/provider-registry.js +0 -111
  83. package/dist/lib/provider-registry/provider-registry.js.map +0 -1
  84. package/dist/lib/provider-registry/provider-registry.types.d.ts +0 -5
  85. package/dist/lib/provider-registry/provider-registry.types.js +0 -6
  86. package/dist/lib/provider-registry/provider-registry.types.js.map +0 -1
  87. package/dist/lib/provider-registry.d.ts +0 -26
  88. package/dist/lib/provider-registry.js +0 -111
  89. package/dist/lib/provider-registry.js.map +0 -1
  90. package/dist/lib/task-linter/index.d.ts +0 -5
  91. package/dist/lib/task-linter/index.js +0 -6
  92. package/dist/lib/task-linter/index.js.map +0 -1
  93. package/dist/lib/task-linter/task-linter.d.ts +0 -36
  94. package/dist/lib/task-linter/task-linter.js +0 -219
  95. package/dist/lib/task-linter/task-linter.js.map +0 -1
  96. package/dist/lib/task-linter/task-linter.types.d.ts +0 -52
  97. package/dist/lib/task-linter/task-linter.types.js +0 -6
  98. package/dist/lib/task-linter/task-linter.types.js.map +0 -1
  99. package/dist/lib/task-linter.d.ts +0 -29
  100. package/dist/lib/task-linter.js +0 -215
  101. package/dist/lib/task-linter.js.map +0 -1
  102. package/dist/lib/task-linter.types.d.ts +0 -38
  103. package/dist/lib/task-linter.types.js +0 -5
  104. package/dist/lib/task-linter.types.js.map +0 -1
  105. package/dist/main.d.ts +0 -14
  106. package/dist/main.js +0 -29
  107. package/dist/main.js.map +0 -1
  108. package/dist/taskin.d.ts +0 -33
  109. package/dist/taskin.js +0 -101
  110. 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.1",
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": "./dist/index.js"
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": "tsc",
59
+ "build": "tsup",
52
60
  "clean": "rm -rf dist coverage .turbo",
53
- "dev": "tsc --watch",
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,6 +0,0 @@
1
- /**
2
- * CLI commands types
3
- * Re-exports from @taskin/types-ts for convenience
4
- */
5
- export {};
6
- //# sourceMappingURL=commands.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.types.js","sourceRoot":"","sources":["../../src/commands/commands.types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Command definition helper
3
- * Provides a declarative way to define CLI commands
4
- */
5
- import type { DefineCommandFunction } from './define-command.types.js';
6
- export declare const defineCommand: DefineCommandFunction;
@@ -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,4 +0,0 @@
1
- /**
2
- * Tests for defineCommand
3
- */
4
- export {};
@@ -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,5 +0,0 @@
1
- /**
2
- * Command definition types
3
- */
4
- export {};
5
- //# sourceMappingURL=define-command.types.js.map
@@ -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,5 +0,0 @@
1
- /**
2
- * Command definition exports
3
- */
4
- export * from './define-command.js';
5
- export * from './define-command.types.js';
@@ -1,6 +0,0 @@
1
- /**
2
- * Command definition exports
3
- */
4
- export * from './define-command.js';
5
- export * from './define-command.types.js';
6
- //# sourceMappingURL=index.js.map
@@ -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"}
@@ -1,4 +0,0 @@
1
- /**
2
- * Finish command - Complete a task
3
- */
4
- export declare const finishCommand: import('./define-command/define-command.types.js').CommandRegistration;
@@ -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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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * CLI commands exports
3
- */
4
- export * from './finish.js';
5
- export * from './init.js';
6
- export * from './lint.js';
7
- export * from './list.js';
8
- export * from './pause.js';
9
- export * from './start.js';
@@ -1,10 +0,0 @@
1
- /**
2
- * CLI commands exports
3
- */
4
- export * from './finish.js';
5
- export * from './init.js';
6
- export * from './lint.js';
7
- export * from './list.js';
8
- export * from './pause.js';
9
- export * from './start.js';
10
- //# sourceMappingURL=index.js.map
@@ -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"}
@@ -1,4 +0,0 @@
1
- /**
2
- * Init command - Initialize Taskin in the current project
3
- */
4
- export declare const initCommand: import('./define-command/define-command.types.js').CommandRegistration;
@@ -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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"}
@@ -1,4 +0,0 @@
1
- /**
2
- * Lint command - Validate task markdown files
3
- */
4
- export declare const lintCommand: import('./define-command/define-command.types.js').CommandRegistration;