@stephendolan/omnifocus-cli 1.0.1 → 1.1.1
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 +156 -0
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +31 -1
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/tag.d.ts +3 -0
- package/dist/commands/tag.d.ts.map +1 -0
- package/dist/commands/tag.js +69 -0
- package/dist/commands/tag.js.map +1 -0
- package/dist/commands/task.d.ts.map +1 -1
- package/dist/commands/task.js +7 -1
- package/dist/commands/task.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/display.d.ts +8 -2
- package/dist/lib/display.d.ts.map +1 -1
- package/dist/lib/display.js +126 -0
- package/dist/lib/display.js.map +1 -1
- package/dist/lib/omnifocus.d.ts +13 -1
- package/dist/lib/omnifocus.d.ts.map +1 -1
- package/dist/lib/omnifocus.js +413 -8
- package/dist/lib/omnifocus.js.map +1 -1
- package/dist/types.d.ts +92 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -4
package/README.md
CHANGED
|
@@ -13,6 +13,7 @@ A powerful command-line interface for OmniFocus on macOS, inspired by the GitHub
|
|
|
13
13
|
- 📝 **Task Management** - Create, list, update, and delete tasks
|
|
14
14
|
- 📂 **Project Management** - Manage projects and their organization
|
|
15
15
|
- 📥 **Inbox Management** - View and count inbox items
|
|
16
|
+
- 🏷️ **Tag Analysis** - View tag usage statistics and identify stale tags
|
|
16
17
|
- 🔍 **Search** - Full-text search across tasks
|
|
17
18
|
- 🎨 **Beautiful Output** - Color-coded, formatted output with icons
|
|
18
19
|
- ⚡ **Fast** - Direct OmniFocus integration using JXA
|
|
@@ -185,6 +186,102 @@ of search "documentation"
|
|
|
185
186
|
of search "meeting" -v
|
|
186
187
|
```
|
|
187
188
|
|
|
189
|
+
### Tag Commands
|
|
190
|
+
|
|
191
|
+
#### List Tags
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# List all tags with usage counts
|
|
195
|
+
of tag list
|
|
196
|
+
|
|
197
|
+
# Show tags unused for 30+ days
|
|
198
|
+
of tag list --unused-days 30
|
|
199
|
+
|
|
200
|
+
# Sort by usage (most used first)
|
|
201
|
+
of tag list --sort usage
|
|
202
|
+
|
|
203
|
+
# Sort by activity (most recent first)
|
|
204
|
+
of tag list --sort activity
|
|
205
|
+
|
|
206
|
+
# Only count active (incomplete) tasks
|
|
207
|
+
of tag list --active-only
|
|
208
|
+
|
|
209
|
+
# Show verbose details (IDs, creation/modification dates)
|
|
210
|
+
of tag list -v
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
#### Tag Statistics
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# Show comprehensive tag usage statistics
|
|
217
|
+
of tag stats
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
The `tag stats` command displays:
|
|
221
|
+
- Total tag counts (total, active, with tasks, unused)
|
|
222
|
+
- Average tasks per tag
|
|
223
|
+
- Most used tags (top 5)
|
|
224
|
+
- Least used tags (bottom 5)
|
|
225
|
+
- Stale tags (no activity in 30+ days)
|
|
226
|
+
|
|
227
|
+
#### Create Tag
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
# Create a new tag
|
|
231
|
+
of tag create "New Tag"
|
|
232
|
+
|
|
233
|
+
# Create a nested tag (child of existing tag)
|
|
234
|
+
of tag create "Child Tag" --parent "Parent Tag"
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
#### View Tag
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
# View tag details by name
|
|
241
|
+
of tag view "Tag Name"
|
|
242
|
+
|
|
243
|
+
# View tag by ID (always unique)
|
|
244
|
+
of tag view "kXu3B-LZfFH"
|
|
245
|
+
|
|
246
|
+
# View nested tag using path syntax
|
|
247
|
+
of tag view "Parent/Child"
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
**Note:** If multiple tags share the same name in different hierarchies (e.g., "Work/Meetings" and "Personal/Meetings"), you must use either:
|
|
251
|
+
- The full hierarchical path: `of tag view "Work/Meetings"`
|
|
252
|
+
- The tag ID: `of tag view "kXu3B-LZfFH"`
|
|
253
|
+
|
|
254
|
+
The command will show an error with available paths and IDs if the name is ambiguous.
|
|
255
|
+
|
|
256
|
+
#### Update Tag
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
# Rename a tag
|
|
260
|
+
of tag update "Old Name" --name "New Name"
|
|
261
|
+
|
|
262
|
+
# Deactivate a tag
|
|
263
|
+
of tag update "Tag Name" --inactive
|
|
264
|
+
|
|
265
|
+
# Reactivate a tag
|
|
266
|
+
of tag update "Tag Name" --active
|
|
267
|
+
|
|
268
|
+
# Update nested tag using path
|
|
269
|
+
of tag update "Parent/Child" --name "New Name"
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
#### Delete Tag
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
# Delete a tag by name
|
|
276
|
+
of tag delete "Tag Name"
|
|
277
|
+
|
|
278
|
+
# Delete using alias
|
|
279
|
+
of tag rm "Tag Name"
|
|
280
|
+
|
|
281
|
+
# Delete nested tag using path
|
|
282
|
+
of tag delete "Parent/Child"
|
|
283
|
+
```
|
|
284
|
+
|
|
188
285
|
## Command Reference
|
|
189
286
|
|
|
190
287
|
### Global Options
|
|
@@ -218,6 +315,20 @@ of search "meeting" -v
|
|
|
218
315
|
- `--sequential` - Make it a sequential project
|
|
219
316
|
- `--status <status>` - Set status (active, on hold, dropped)
|
|
220
317
|
|
|
318
|
+
### Tag Options
|
|
319
|
+
|
|
320
|
+
**List options:**
|
|
321
|
+
- `-u, --unused-days <days>` - Show tags unused for N days
|
|
322
|
+
- `-s, --sort <field>` - Sort by: name, usage, activity (default: name)
|
|
323
|
+
- `-a, --active-only` - Only count active (incomplete) tasks
|
|
324
|
+
- `-v, --verbose` - Show detailed information (IDs, dates)
|
|
325
|
+
|
|
326
|
+
**Create/Update options:**
|
|
327
|
+
- `-p, --parent <name>` - Create as child of parent tag (create only)
|
|
328
|
+
- `-n, --name <name>` - Rename tag (update only)
|
|
329
|
+
- `-a, --active` - Set tag as active (update only)
|
|
330
|
+
- `-i, --inactive` - Set tag as inactive (update only)
|
|
331
|
+
|
|
221
332
|
## Output Legend
|
|
222
333
|
|
|
223
334
|
### Task List
|
|
@@ -239,6 +350,13 @@ of search "meeting" -v
|
|
|
239
350
|
- `[Folder]` - Folder name (cyan)
|
|
240
351
|
- `#tag` - Tags (magenta)
|
|
241
352
|
|
|
353
|
+
### Tag List
|
|
354
|
+
|
|
355
|
+
- `#tag` - Tag name (cyan if active, gray if inactive)
|
|
356
|
+
- `(X/Y)` - Remaining/Total tasks
|
|
357
|
+
- `active X ago` - Last activity timestamp (cyan)
|
|
358
|
+
- `never used` - Tag has no tasks (gray)
|
|
359
|
+
|
|
242
360
|
## Examples
|
|
243
361
|
|
|
244
362
|
### Daily Workflow
|
|
@@ -288,6 +406,44 @@ of task update "Draft quarterly report" --complete
|
|
|
288
406
|
of task update "Team meeting prep" --due "2024-01-22"
|
|
289
407
|
```
|
|
290
408
|
|
|
409
|
+
### Tag Management
|
|
410
|
+
|
|
411
|
+
```bash
|
|
412
|
+
# View all tags with usage stats
|
|
413
|
+
of tag list
|
|
414
|
+
|
|
415
|
+
# Find stale tags not used in 60+ days
|
|
416
|
+
of tag list --unused-days 60
|
|
417
|
+
|
|
418
|
+
# See most used tags
|
|
419
|
+
of tag list --sort usage
|
|
420
|
+
|
|
421
|
+
# View recently active tags
|
|
422
|
+
of tag list --sort activity
|
|
423
|
+
|
|
424
|
+
# Get comprehensive tag statistics
|
|
425
|
+
of tag stats
|
|
426
|
+
|
|
427
|
+
# Create a new tag
|
|
428
|
+
of tag create "Urgent"
|
|
429
|
+
|
|
430
|
+
# Create nested tags for organization
|
|
431
|
+
of tag create "Work Meetings" --parent "Work"
|
|
432
|
+
of tag create "Personal Meetings" --parent "Personal"
|
|
433
|
+
|
|
434
|
+
# View a specific tag (with hierarchical path if needed)
|
|
435
|
+
of tag view "Work/Work Meetings"
|
|
436
|
+
|
|
437
|
+
# Rename a stale tag
|
|
438
|
+
of tag update "Old Project" --name "Archived Project"
|
|
439
|
+
|
|
440
|
+
# Deactivate unused tags
|
|
441
|
+
of tag update "Archived Project" --inactive
|
|
442
|
+
|
|
443
|
+
# Delete completely unused tags
|
|
444
|
+
of tag delete "Obsolete Tag"
|
|
445
|
+
```
|
|
446
|
+
|
|
291
447
|
## Requirements
|
|
292
448
|
|
|
293
449
|
- macOS (OmniFocus is Mac-only)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,oBAAoB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,oBAAoB,IAAI,OAAO,CA0H9C"}
|
package/dist/commands/project.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import { displayProjectList, displayProjectDetails, displayWithSuccessMessage, displaySuccessMessage } from '../lib/display.js';
|
|
2
|
+
import { displayProjectList, displayProjectDetails, displayWithSuccessMessage, displaySuccessMessage, displayProjectStats } from '../lib/display.js';
|
|
3
3
|
import { executeOmniFocusCommand } from '../lib/command-utils.js';
|
|
4
4
|
export function createProjectCommand() {
|
|
5
5
|
const command = new Command('project');
|
|
@@ -40,6 +40,30 @@ export function createProjectCommand() {
|
|
|
40
40
|
status: options.status,
|
|
41
41
|
}), (project) => displayWithSuccessMessage('Project created successfully', project, displayProjectDetails), 'Failed to create project');
|
|
42
42
|
});
|
|
43
|
+
command
|
|
44
|
+
.command('update <idOrName>')
|
|
45
|
+
.description('Update an existing project')
|
|
46
|
+
.option('-n, --name <name>', 'Rename project')
|
|
47
|
+
.option('--note <text>', 'New note')
|
|
48
|
+
.option('-f, --folder <name>', 'Move to folder')
|
|
49
|
+
.option('-t, --tag <tags...>', 'Replace tags')
|
|
50
|
+
.option('-s, --sequential', 'Make it sequential')
|
|
51
|
+
.option('-p, --parallel', 'Make it parallel')
|
|
52
|
+
.option('--status <status>', 'Set status (active, on hold, dropped)')
|
|
53
|
+
.action(async (idOrName, options) => {
|
|
54
|
+
await executeOmniFocusCommand('Updating project...', (of) => {
|
|
55
|
+
const updates = {
|
|
56
|
+
...(options.name && { name: options.name }),
|
|
57
|
+
...(options.note !== undefined && { note: options.note }),
|
|
58
|
+
...(options.folder && { folder: options.folder }),
|
|
59
|
+
...(options.tag && { tags: options.tag }),
|
|
60
|
+
...(options.sequential && { sequential: true }),
|
|
61
|
+
...(options.parallel && { sequential: false }),
|
|
62
|
+
...(options.status && { status: options.status }),
|
|
63
|
+
};
|
|
64
|
+
return of.updateProject(idOrName, updates);
|
|
65
|
+
}, (project) => displayWithSuccessMessage('Project updated successfully', project, displayProjectDetails), 'Failed to update project');
|
|
66
|
+
});
|
|
43
67
|
command
|
|
44
68
|
.command('delete <idOrName>')
|
|
45
69
|
.alias('rm')
|
|
@@ -53,6 +77,12 @@ export function createProjectCommand() {
|
|
|
53
77
|
.action(async (idOrName) => {
|
|
54
78
|
await executeOmniFocusCommand('Loading project...', (of) => of.getProject(idOrName), (project) => displayProjectDetails(project), 'Failed to load project');
|
|
55
79
|
});
|
|
80
|
+
command
|
|
81
|
+
.command('stats')
|
|
82
|
+
.description('Show project statistics')
|
|
83
|
+
.action(async () => {
|
|
84
|
+
await executeOmniFocusCommand('Analyzing projects...', (of) => of.getProjectStats(), (stats) => displayProjectStats(stats), 'Failed to analyze projects');
|
|
85
|
+
});
|
|
56
86
|
return command;
|
|
57
87
|
}
|
|
58
88
|
//# sourceMappingURL=project.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/commands/tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,gBAAgB,IAAI,OAAO,CAqG1C"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { displayTagList, displayTagStats, displayTagDetails, displayWithSuccessMessage, displaySuccessMessage } from '../lib/display.js';
|
|
3
|
+
import { executeOmniFocusCommand } from '../lib/command-utils.js';
|
|
4
|
+
export function createTagCommand() {
|
|
5
|
+
const command = new Command('tag');
|
|
6
|
+
command.description('Manage and analyze OmniFocus tags');
|
|
7
|
+
command
|
|
8
|
+
.command('list')
|
|
9
|
+
.alias('ls')
|
|
10
|
+
.description('List tags with usage information')
|
|
11
|
+
.option('-u, --unused-days <days>', 'Show tags unused for N days', parseInt)
|
|
12
|
+
.option('-s, --sort <field>', 'Sort by: name, usage, activity (default: name)', 'name')
|
|
13
|
+
.option('-a, --active-only', 'Only count active (incomplete) tasks')
|
|
14
|
+
.option('-v, --verbose', 'Show detailed information')
|
|
15
|
+
.action(async (options) => {
|
|
16
|
+
await executeOmniFocusCommand('Loading tags...', (of) => of.listTags({
|
|
17
|
+
unusedDays: options.unusedDays,
|
|
18
|
+
sortBy: options.sort,
|
|
19
|
+
activeOnly: options.activeOnly,
|
|
20
|
+
}), (tags) => displayTagList(tags, options.verbose), 'Failed to load tags');
|
|
21
|
+
});
|
|
22
|
+
command
|
|
23
|
+
.command('create <name>')
|
|
24
|
+
.description('Create a new tag')
|
|
25
|
+
.option('-p, --parent <name>', 'Create as child of parent tag')
|
|
26
|
+
.option('-s, --status <status>', 'Set status (active, on hold, dropped)')
|
|
27
|
+
.action(async (name, options) => {
|
|
28
|
+
await executeOmniFocusCommand('Creating tag...', (of) => of.createTag({
|
|
29
|
+
name,
|
|
30
|
+
parent: options.parent,
|
|
31
|
+
status: options.status,
|
|
32
|
+
}), (tag) => displayWithSuccessMessage('Tag created successfully', tag, displayTagDetails), 'Failed to create tag');
|
|
33
|
+
});
|
|
34
|
+
command
|
|
35
|
+
.command('view <idOrName>')
|
|
36
|
+
.description('View tag details')
|
|
37
|
+
.action(async (idOrName) => {
|
|
38
|
+
await executeOmniFocusCommand('Loading tag...', (of) => of.getTag(idOrName), (tag) => displayTagDetails(tag), 'Failed to load tag');
|
|
39
|
+
});
|
|
40
|
+
command
|
|
41
|
+
.command('update <idOrName>')
|
|
42
|
+
.description('Update an existing tag')
|
|
43
|
+
.option('-n, --name <name>', 'Rename tag')
|
|
44
|
+
.option('-s, --status <status>', 'Set status (active, on hold, dropped)')
|
|
45
|
+
.action(async (idOrName, options) => {
|
|
46
|
+
await executeOmniFocusCommand('Updating tag...', (of) => {
|
|
47
|
+
const updates = {
|
|
48
|
+
...(options.name && { name: options.name }),
|
|
49
|
+
...(options.status && { status: options.status }),
|
|
50
|
+
};
|
|
51
|
+
return of.updateTag(idOrName, updates);
|
|
52
|
+
}, (tag) => displayWithSuccessMessage('Tag updated successfully', tag, displayTagDetails), 'Failed to update tag');
|
|
53
|
+
});
|
|
54
|
+
command
|
|
55
|
+
.command('delete <idOrName>')
|
|
56
|
+
.alias('rm')
|
|
57
|
+
.description('Delete a tag')
|
|
58
|
+
.action(async (idOrName) => {
|
|
59
|
+
await executeOmniFocusCommand('Deleting tag...', (of) => of.deleteTag(idOrName), () => displaySuccessMessage('Tag deleted successfully'), 'Failed to delete tag');
|
|
60
|
+
});
|
|
61
|
+
command
|
|
62
|
+
.command('stats')
|
|
63
|
+
.description('Show tag usage statistics')
|
|
64
|
+
.action(async () => {
|
|
65
|
+
await executeOmniFocusCommand('Analyzing tags...', (of) => of.getTagStats(), (stats) => displayTagStats(stats), 'Failed to analyze tags');
|
|
66
|
+
});
|
|
67
|
+
return command;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=tag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/commands/tag.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,iBAAiB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,iBAAiB,IAAI,OAAO,CAwI3C"}
|
package/dist/commands/task.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import { displayTaskList, displayTaskDetails, displayWithSuccessMessage, displaySuccessMessage } from '../lib/display.js';
|
|
2
|
+
import { displayTaskList, displayTaskDetails, displayWithSuccessMessage, displaySuccessMessage, displayTaskStats } from '../lib/display.js';
|
|
3
3
|
import { executeOmniFocusCommand } from '../lib/command-utils.js';
|
|
4
4
|
export function createTaskCommand() {
|
|
5
5
|
const command = new Command('task');
|
|
@@ -91,6 +91,12 @@ export function createTaskCommand() {
|
|
|
91
91
|
.action(async (idOrName) => {
|
|
92
92
|
await executeOmniFocusCommand('Loading task...', (of) => of.getTask(idOrName), (task) => displayTaskDetails(task), 'Failed to load task');
|
|
93
93
|
});
|
|
94
|
+
command
|
|
95
|
+
.command('stats')
|
|
96
|
+
.description('Show task statistics')
|
|
97
|
+
.action(async () => {
|
|
98
|
+
await executeOmniFocusCommand('Analyzing tasks...', (of) => of.getTaskStats(), (stats) => displayTaskStats(stats), 'Failed to analyze tasks');
|
|
99
|
+
});
|
|
94
100
|
return command;
|
|
95
101
|
}
|
|
96
102
|
//# sourceMappingURL=task.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import { createProjectCommand } from './commands/project.js';
|
|
|
5
5
|
import { createInboxCommand } from './commands/inbox.js';
|
|
6
6
|
import { createSearchCommand } from './commands/search.js';
|
|
7
7
|
import { createPerspectiveCommand } from './commands/perspective.js';
|
|
8
|
+
import { createTagCommand } from './commands/tag.js';
|
|
8
9
|
const program = new Command();
|
|
9
10
|
program
|
|
10
11
|
.name('of')
|
|
@@ -15,5 +16,6 @@ program.addCommand(createProjectCommand());
|
|
|
15
16
|
program.addCommand(createInboxCommand());
|
|
16
17
|
program.addCommand(createSearchCommand());
|
|
17
18
|
program.addCommand(createPerspectiveCommand());
|
|
19
|
+
program.addCommand(createTagCommand());
|
|
18
20
|
program.parse();
|
|
19
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,iDAAiD,CAAC;KAC9D,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;AAC/C,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAEvC,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/lib/display.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Task, Project, Perspective } from '../types.js';
|
|
1
|
+
import type { Task, Project, Perspective, Tag, TagStats, TaskStats, ProjectStats } from '../types.js';
|
|
2
2
|
export declare function displaySuccessMessage(message: string): void;
|
|
3
|
-
export declare function displayWithSuccessMessage<T extends Task | Project>(message: string, entity: T, displayFn: (entity: T) => void): void;
|
|
3
|
+
export declare function displayWithSuccessMessage<T extends Task | Project | Tag>(message: string, entity: T, displayFn: (entity: T) => void): void;
|
|
4
4
|
export declare function displayPerspectiveList(perspectives: Perspective[]): void;
|
|
5
5
|
export declare function pluralize(count: number, singular: string, plural?: string): string;
|
|
6
6
|
export declare function displayTask(task: Task, verbose?: boolean): void;
|
|
@@ -9,4 +9,10 @@ export declare function displayProject(project: Project, verbose?: boolean): voi
|
|
|
9
9
|
export declare function displayProjectList(projects: Project[], verbose?: boolean): void;
|
|
10
10
|
export declare function displayTaskDetails(task: Task): void;
|
|
11
11
|
export declare function displayProjectDetails(project: Project): void;
|
|
12
|
+
export declare function displayTag(tag: Tag, verbose?: boolean): void;
|
|
13
|
+
export declare function displayTagList(tags: Tag[], verbose?: boolean): void;
|
|
14
|
+
export declare function displayTagStats(stats: TagStats): void;
|
|
15
|
+
export declare function displayTaskStats(stats: TaskStats): void;
|
|
16
|
+
export declare function displayProjectStats(stats: ProjectStats): void;
|
|
17
|
+
export declare function displayTagDetails(tag: Tag): void;
|
|
12
18
|
//# sourceMappingURL=display.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/lib/display.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/lib/display.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQtG,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,IAAI,GAAG,OAAO,GAAG,GAAG,EACtE,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,CAAC,EACT,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAC7B,IAAI,CAIN;AAMD,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAKxE;AAiBD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAiB,GAAG,MAAM,CAE1F;AAgCD,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,UAAQ,GAAG,IAAI,CAuC7D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,UAAQ,GAAG,IAAI,CAEpE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,UAAQ,GAAG,IAAI,CA8BtE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,UAAQ,GAAG,IAAI,CAE7E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CA0CnD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2B5D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,UAAQ,GAAG,IAAI,CA0B1D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,UAAQ,GAAG,IAAI,CAEjE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CA0BrD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAoBvD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAmB7D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAoChD"}
|
package/dist/lib/display.js
CHANGED
|
@@ -38,6 +38,19 @@ function formatTags(tags, separator = ' ') {
|
|
|
38
38
|
export function pluralize(count, singular, plural = `${singular}s`) {
|
|
39
39
|
return `${count} ${count === 1 ? singular : plural}`;
|
|
40
40
|
}
|
|
41
|
+
function displayMetric(label, value, valueColor) {
|
|
42
|
+
const formattedValue = valueColor ? valueColor(value.toString()) : value.toString();
|
|
43
|
+
console.log(chalk.gray(label.padEnd(25)) + formattedValue);
|
|
44
|
+
}
|
|
45
|
+
function displayTopList(title, items, countKey, color = chalk.cyan) {
|
|
46
|
+
if (items.length === 0)
|
|
47
|
+
return;
|
|
48
|
+
console.log();
|
|
49
|
+
console.log(chalk.bold(title));
|
|
50
|
+
items.forEach(item => {
|
|
51
|
+
console.log(` ${color(item.name)} ${chalk.gray(`(${item[countKey]} ${countKey})`)}`);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
41
54
|
function displayList(items, itemName, displayFn, verbose = false) {
|
|
42
55
|
if (items.length === 0) {
|
|
43
56
|
console.log(chalk.gray(`No ${itemName}s found`));
|
|
@@ -165,4 +178,117 @@ export function displayProjectDetails(project) {
|
|
|
165
178
|
}
|
|
166
179
|
console.log();
|
|
167
180
|
}
|
|
181
|
+
export function displayTag(tag, verbose = false) {
|
|
182
|
+
const parts = [];
|
|
183
|
+
parts.push(tag.active ? chalk.green('●') : chalk.gray('○'));
|
|
184
|
+
parts.push(chalk.bold(tag.name));
|
|
185
|
+
parts.push(chalk.gray(`(${tag.taskCount} tasks, ${tag.remainingTaskCount} remaining)`));
|
|
186
|
+
if (tag.lastActivity) {
|
|
187
|
+
const activityDate = new Date(tag.lastActivity);
|
|
188
|
+
const dateStr = formatDistanceToNow(activityDate, { addSuffix: true });
|
|
189
|
+
parts.push(chalk.cyan(`active ${dateStr}`));
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
parts.push(chalk.gray('never used'));
|
|
193
|
+
}
|
|
194
|
+
console.log(parts.join(' '));
|
|
195
|
+
if (verbose) {
|
|
196
|
+
console.log(chalk.gray(` ID: ${tag.id}`));
|
|
197
|
+
if (tag.added) {
|
|
198
|
+
console.log(chalk.gray(` Created: ${format(new Date(tag.added), 'PPP')}`));
|
|
199
|
+
}
|
|
200
|
+
if (tag.modified) {
|
|
201
|
+
console.log(chalk.gray(` Modified: ${format(new Date(tag.modified), 'PPP')}`));
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
export function displayTagList(tags, verbose = false) {
|
|
206
|
+
displayList(tags, 'tag', displayTag, verbose);
|
|
207
|
+
}
|
|
208
|
+
export function displayTagStats(stats) {
|
|
209
|
+
console.log();
|
|
210
|
+
console.log(chalk.bold.underline('Tag Usage Statistics'));
|
|
211
|
+
console.log();
|
|
212
|
+
displayMetric('Total Tags:', stats.totalTags, chalk.bold);
|
|
213
|
+
displayMetric('Active Tags:', stats.activeTags, chalk.green);
|
|
214
|
+
displayMetric('Tags with Tasks:', stats.tagsWithTasks, chalk.cyan);
|
|
215
|
+
displayMetric('Unused Tags:', stats.unusedTags, chalk.yellow);
|
|
216
|
+
displayMetric('Avg Tasks per Tag:', stats.avgTasksPerTag.toFixed(1));
|
|
217
|
+
displayTopList('Most Used Tags:', stats.mostUsedTags, 'taskCount', chalk.cyan);
|
|
218
|
+
displayTopList('Least Used Tags:', stats.leastUsedTags, 'taskCount', chalk.magenta);
|
|
219
|
+
if (stats.staleTags.length > 0) {
|
|
220
|
+
console.log();
|
|
221
|
+
console.log(chalk.bold('Stale Tags (no activity in 30+ days):'));
|
|
222
|
+
stats.staleTags.slice(0, 10).forEach(t => {
|
|
223
|
+
console.log(` ${chalk.red(t.name)} ${chalk.gray(`(${t.daysSinceActivity} days)`)}`);
|
|
224
|
+
});
|
|
225
|
+
if (stats.staleTags.length > 10) {
|
|
226
|
+
console.log(chalk.gray(` ... and ${stats.staleTags.length - 10} more`));
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
console.log();
|
|
230
|
+
}
|
|
231
|
+
export function displayTaskStats(stats) {
|
|
232
|
+
console.log();
|
|
233
|
+
console.log(chalk.bold.underline('Task Statistics'));
|
|
234
|
+
console.log();
|
|
235
|
+
displayMetric('Total Tasks:', stats.totalTasks, chalk.bold);
|
|
236
|
+
displayMetric('Active Tasks:', stats.activeTasks, chalk.yellow);
|
|
237
|
+
displayMetric('Completed Tasks:', stats.completedTasks, chalk.green);
|
|
238
|
+
displayMetric('Flagged Tasks:', stats.flaggedTasks, chalk.cyan);
|
|
239
|
+
displayMetric('Overdue Tasks:', stats.overdueActiveTasks, chalk.red);
|
|
240
|
+
displayMetric('Completion Rate:', `${stats.completionRate}%`);
|
|
241
|
+
if (stats.avgEstimatedMinutes !== null) {
|
|
242
|
+
displayMetric('Avg Estimate:', `${formatEstimate(stats.avgEstimatedMinutes)} (${stats.tasksWithEstimates} tasks)`);
|
|
243
|
+
}
|
|
244
|
+
displayTopList('Top Projects by Task Count:', stats.tasksByProject, 'taskCount', chalk.cyan);
|
|
245
|
+
displayTopList('Top Tags by Task Count:', stats.tasksByTag, 'taskCount', chalk.magenta);
|
|
246
|
+
console.log();
|
|
247
|
+
}
|
|
248
|
+
export function displayProjectStats(stats) {
|
|
249
|
+
console.log();
|
|
250
|
+
console.log(chalk.bold.underline('Project Statistics'));
|
|
251
|
+
console.log();
|
|
252
|
+
displayMetric('Total Projects:', stats.totalProjects, chalk.bold);
|
|
253
|
+
displayMetric('Active Projects:', stats.activeProjects, chalk.green);
|
|
254
|
+
displayMetric('On Hold Projects:', stats.onHoldProjects, chalk.yellow);
|
|
255
|
+
displayMetric('Dropped Projects:', stats.droppedProjects, chalk.red);
|
|
256
|
+
displayMetric('Sequential Projects:', stats.sequentialProjects, chalk.blue);
|
|
257
|
+
displayMetric('Parallel Projects:', stats.parallelProjects);
|
|
258
|
+
displayMetric('Avg Tasks per Project:', stats.avgTasksPerProject.toFixed(1));
|
|
259
|
+
displayMetric('Avg Remaining per Proj:', stats.avgRemainingPerProject.toFixed(1));
|
|
260
|
+
displayMetric('Avg Completion Rate:', `${stats.avgCompletionRate}%`);
|
|
261
|
+
displayTopList('Projects with Most Tasks:', stats.projectsWithMostTasks, 'taskCount', chalk.cyan);
|
|
262
|
+
displayTopList('Projects with Most Remaining Work:', stats.projectsWithMostRemaining, 'remainingCount', chalk.yellow);
|
|
263
|
+
console.log();
|
|
264
|
+
}
|
|
265
|
+
export function displayTagDetails(tag) {
|
|
266
|
+
console.log();
|
|
267
|
+
console.log(chalk.bold.underline(tag.name));
|
|
268
|
+
console.log();
|
|
269
|
+
const statusColor = tag.status === 'active' ? chalk.green :
|
|
270
|
+
tag.status === 'on hold' ? chalk.yellow : chalk.red;
|
|
271
|
+
console.log(chalk.gray('ID: ') + tag.id);
|
|
272
|
+
console.log(chalk.gray('Status: ') + statusColor(tag.status));
|
|
273
|
+
console.log(chalk.gray('Tasks: ') + `${tag.remainingTaskCount} remaining / ${tag.taskCount} total`);
|
|
274
|
+
console.log(chalk.gray('Allows Next Action:') + (tag.allowsNextAction ? 'Yes' : 'No'));
|
|
275
|
+
if (tag.parent) {
|
|
276
|
+
console.log(chalk.gray('Parent: ') + chalk.cyan(tag.parent));
|
|
277
|
+
}
|
|
278
|
+
if (tag.children.length > 0) {
|
|
279
|
+
console.log(chalk.gray('Children: ') + chalk.cyan(tag.children.join(', ')));
|
|
280
|
+
}
|
|
281
|
+
if (tag.added) {
|
|
282
|
+
console.log(chalk.gray('Created: ') + format(new Date(tag.added), 'PPP p'));
|
|
283
|
+
}
|
|
284
|
+
if (tag.modified) {
|
|
285
|
+
console.log(chalk.gray('Modified: ') + format(new Date(tag.modified), 'PPP p'));
|
|
286
|
+
}
|
|
287
|
+
if (tag.lastActivity) {
|
|
288
|
+
const activityDate = new Date(tag.lastActivity);
|
|
289
|
+
const dateStr = formatDistanceToNow(activityDate, { addSuffix: true });
|
|
290
|
+
console.log(chalk.gray('Last Activity: ') + `${format(activityDate, 'PPP p')} (${dateStr})`);
|
|
291
|
+
}
|
|
292
|
+
console.log();
|
|
293
|
+
}
|
|
168
294
|
//# sourceMappingURL=display.js.map
|
package/dist/lib/display.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/lib/display.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/lib/display.ts"],"names":[],"mappings":"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"}
|