@doist/todoist-cli 1.29.3 → 1.29.4

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 (246) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/package.json +8 -3
  3. package/dist/__mocks__/chalk.d.ts +0 -3
  4. package/dist/__mocks__/chalk.d.ts.map +0 -1
  5. package/dist/__mocks__/chalk.js +0 -8
  6. package/dist/__mocks__/chalk.js.map +0 -1
  7. package/dist/commands/activity.d.ts +0 -3
  8. package/dist/commands/activity.d.ts.map +0 -1
  9. package/dist/commands/activity.js +0 -267
  10. package/dist/commands/activity.js.map +0 -1
  11. package/dist/commands/add.d.ts +0 -3
  12. package/dist/commands/add.d.ts.map +0 -1
  13. package/dist/commands/add.js +0 -36
  14. package/dist/commands/add.js.map +0 -1
  15. package/dist/commands/attachment.d.ts +0 -3
  16. package/dist/commands/attachment.d.ts.map +0 -1
  17. package/dist/commands/attachment.js +0 -156
  18. package/dist/commands/attachment.js.map +0 -1
  19. package/dist/commands/auth.d.ts +0 -3
  20. package/dist/commands/auth.d.ts.map +0 -1
  21. package/dist/commands/auth.js +0 -124
  22. package/dist/commands/auth.js.map +0 -1
  23. package/dist/commands/changelog.d.ts +0 -8
  24. package/dist/commands/changelog.d.ts.map +0 -1
  25. package/dist/commands/changelog.js +0 -92
  26. package/dist/commands/changelog.js.map +0 -1
  27. package/dist/commands/comment.d.ts +0 -3
  28. package/dist/commands/comment.d.ts.map +0 -1
  29. package/dist/commands/comment.js +0 -301
  30. package/dist/commands/comment.js.map +0 -1
  31. package/dist/commands/completed.d.ts +0 -3
  32. package/dist/commands/completed.d.ts.map +0 -1
  33. package/dist/commands/completed.js +0 -107
  34. package/dist/commands/completed.js.map +0 -1
  35. package/dist/commands/completion.d.ts +0 -3
  36. package/dist/commands/completion.d.ts.map +0 -1
  37. package/dist/commands/completion.js +0 -107
  38. package/dist/commands/completion.js.map +0 -1
  39. package/dist/commands/filter.d.ts +0 -5
  40. package/dist/commands/filter.d.ts.map +0 -1
  41. package/dist/commands/filter.js +0 -287
  42. package/dist/commands/filter.js.map +0 -1
  43. package/dist/commands/inbox.d.ts +0 -3
  44. package/dist/commands/inbox.d.ts.map +0 -1
  45. package/dist/commands/inbox.js +0 -25
  46. package/dist/commands/inbox.js.map +0 -1
  47. package/dist/commands/label.d.ts +0 -5
  48. package/dist/commands/label.d.ts.map +0 -1
  49. package/dist/commands/label.js +0 -328
  50. package/dist/commands/label.js.map +0 -1
  51. package/dist/commands/notification.d.ts +0 -3
  52. package/dist/commands/notification.d.ts.map +0 -1
  53. package/dist/commands/notification.js +0 -274
  54. package/dist/commands/notification.js.map +0 -1
  55. package/dist/commands/project.d.ts +0 -5
  56. package/dist/commands/project.d.ts.map +0 -1
  57. package/dist/commands/project.js +0 -528
  58. package/dist/commands/project.js.map +0 -1
  59. package/dist/commands/reminder.d.ts +0 -3
  60. package/dist/commands/reminder.d.ts.map +0 -1
  61. package/dist/commands/reminder.js +0 -271
  62. package/dist/commands/reminder.js.map +0 -1
  63. package/dist/commands/section.d.ts +0 -3
  64. package/dist/commands/section.d.ts.map +0 -1
  65. package/dist/commands/section.js +0 -172
  66. package/dist/commands/section.js.map +0 -1
  67. package/dist/commands/settings.d.ts +0 -12
  68. package/dist/commands/settings.d.ts.map +0 -1
  69. package/dist/commands/settings.js +0 -312
  70. package/dist/commands/settings.js.map +0 -1
  71. package/dist/commands/skill.d.ts +0 -3
  72. package/dist/commands/skill.d.ts.map +0 -1
  73. package/dist/commands/skill.js +0 -127
  74. package/dist/commands/skill.js.map +0 -1
  75. package/dist/commands/stats.d.ts +0 -3
  76. package/dist/commands/stats.d.ts.map +0 -1
  77. package/dist/commands/stats.js +0 -151
  78. package/dist/commands/stats.js.map +0 -1
  79. package/dist/commands/task.d.ts +0 -5
  80. package/dist/commands/task.d.ts.map +0 -1
  81. package/dist/commands/task.js +0 -559
  82. package/dist/commands/task.js.map +0 -1
  83. package/dist/commands/today.d.ts +0 -18
  84. package/dist/commands/today.d.ts.map +0 -1
  85. package/dist/commands/today.js +0 -108
  86. package/dist/commands/today.js.map +0 -1
  87. package/dist/commands/upcoming.d.ts +0 -17
  88. package/dist/commands/upcoming.d.ts.map +0 -1
  89. package/dist/commands/upcoming.js +0 -129
  90. package/dist/commands/upcoming.js.map +0 -1
  91. package/dist/commands/update.d.ts +0 -6
  92. package/dist/commands/update.d.ts.map +0 -1
  93. package/dist/commands/update.js +0 -90
  94. package/dist/commands/update.js.map +0 -1
  95. package/dist/commands/view.d.ts +0 -3
  96. package/dist/commands/view.d.ts.map +0 -1
  97. package/dist/commands/view.js +0 -79
  98. package/dist/commands/view.js.map +0 -1
  99. package/dist/commands/workspace.d.ts +0 -3
  100. package/dist/commands/workspace.d.ts.map +0 -1
  101. package/dist/commands/workspace.js +0 -309
  102. package/dist/commands/workspace.js.map +0 -1
  103. package/dist/index.d.ts +0 -3
  104. package/dist/index.d.ts.map +0 -1
  105. package/dist/index.js +0 -176
  106. package/dist/index.js.map +0 -1
  107. package/dist/lib/api/core.d.ts +0 -13
  108. package/dist/lib/api/core.d.ts.map +0 -1
  109. package/dist/lib/api/core.js +0 -170
  110. package/dist/lib/api/core.js.map +0 -1
  111. package/dist/lib/api/filters.d.ts +0 -19
  112. package/dist/lib/api/filters.d.ts.map +0 -1
  113. package/dist/lib/api/filters.js +0 -60
  114. package/dist/lib/api/filters.js.map +0 -1
  115. package/dist/lib/api/notifications.d.ts +0 -33
  116. package/dist/lib/api/notifications.d.ts.map +0 -1
  117. package/dist/lib/api/notifications.js +0 -94
  118. package/dist/lib/api/notifications.js.map +0 -1
  119. package/dist/lib/api/reminders.d.ts +0 -30
  120. package/dist/lib/api/reminders.d.ts.map +0 -1
  121. package/dist/lib/api/reminders.js +0 -65
  122. package/dist/lib/api/reminders.js.map +0 -1
  123. package/dist/lib/api/stats.d.ts +0 -41
  124. package/dist/lib/api/stats.d.ts.map +0 -1
  125. package/dist/lib/api/stats.js +0 -74
  126. package/dist/lib/api/stats.js.map +0 -1
  127. package/dist/lib/api/uploads.d.ts +0 -10
  128. package/dist/lib/api/uploads.d.ts.map +0 -1
  129. package/dist/lib/api/uploads.js +0 -31
  130. package/dist/lib/api/uploads.js.map +0 -1
  131. package/dist/lib/api/user-settings.d.ts +0 -34
  132. package/dist/lib/api/user-settings.d.ts.map +0 -1
  133. package/dist/lib/api/user-settings.js +0 -58
  134. package/dist/lib/api/user-settings.js.map +0 -1
  135. package/dist/lib/api/workspaces.d.ts +0 -23
  136. package/dist/lib/api/workspaces.d.ts.map +0 -1
  137. package/dist/lib/api/workspaces.js +0 -61
  138. package/dist/lib/api/workspaces.js.map +0 -1
  139. package/dist/lib/auth.d.ts +0 -14
  140. package/dist/lib/auth.d.ts.map +0 -1
  141. package/dist/lib/auth.js +0 -182
  142. package/dist/lib/auth.js.map +0 -1
  143. package/dist/lib/browser.d.ts +0 -2
  144. package/dist/lib/browser.d.ts.map +0 -1
  145. package/dist/lib/browser.js +0 -6
  146. package/dist/lib/browser.js.map +0 -1
  147. package/dist/lib/collaborators.d.ts +0 -29
  148. package/dist/lib/collaborators.d.ts.map +0 -1
  149. package/dist/lib/collaborators.js +0 -184
  150. package/dist/lib/collaborators.js.map +0 -1
  151. package/dist/lib/completion.d.ts +0 -41
  152. package/dist/lib/completion.d.ts.map +0 -1
  153. package/dist/lib/completion.js +0 -191
  154. package/dist/lib/completion.js.map +0 -1
  155. package/dist/lib/dates.d.ts +0 -16
  156. package/dist/lib/dates.d.ts.map +0 -1
  157. package/dist/lib/dates.js +0 -45
  158. package/dist/lib/dates.js.map +0 -1
  159. package/dist/lib/duration.d.ts +0 -14
  160. package/dist/lib/duration.d.ts.map +0 -1
  161. package/dist/lib/duration.js +0 -58
  162. package/dist/lib/duration.js.map +0 -1
  163. package/dist/lib/logger.d.ts +0 -42
  164. package/dist/lib/logger.d.ts.map +0 -1
  165. package/dist/lib/logger.js +0 -227
  166. package/dist/lib/logger.js.map +0 -1
  167. package/dist/lib/markdown.d.ts +0 -3
  168. package/dist/lib/markdown.d.ts.map +0 -1
  169. package/dist/lib/markdown.js +0 -22
  170. package/dist/lib/markdown.js.map +0 -1
  171. package/dist/lib/oauth-server.d.ts +0 -6
  172. package/dist/lib/oauth-server.d.ts.map +0 -1
  173. package/dist/lib/oauth-server.js +0 -773
  174. package/dist/lib/oauth-server.js.map +0 -1
  175. package/dist/lib/oauth.d.ts +0 -3
  176. package/dist/lib/oauth.d.ts.map +0 -1
  177. package/dist/lib/oauth.js +0 -38
  178. package/dist/lib/oauth.js.map +0 -1
  179. package/dist/lib/options.d.ts +0 -16
  180. package/dist/lib/options.d.ts.map +0 -1
  181. package/dist/lib/options.js +0 -2
  182. package/dist/lib/options.js.map +0 -1
  183. package/dist/lib/output.d.ts +0 -39
  184. package/dist/lib/output.d.ts.map +0 -1
  185. package/dist/lib/output.js +0 -311
  186. package/dist/lib/output.js.map +0 -1
  187. package/dist/lib/pagination.d.ts +0 -23
  188. package/dist/lib/pagination.d.ts.map +0 -1
  189. package/dist/lib/pagination.js +0 -26
  190. package/dist/lib/pagination.js.map +0 -1
  191. package/dist/lib/pkce.d.ts +0 -4
  192. package/dist/lib/pkce.d.ts.map +0 -1
  193. package/dist/lib/pkce.js +0 -19
  194. package/dist/lib/pkce.js.map +0 -1
  195. package/dist/lib/progress.d.ts +0 -29
  196. package/dist/lib/progress.d.ts.map +0 -1
  197. package/dist/lib/progress.js +0 -101
  198. package/dist/lib/progress.js.map +0 -1
  199. package/dist/lib/refs.d.ts +0 -52
  200. package/dist/lib/refs.d.ts.map +0 -1
  201. package/dist/lib/refs.js +0 -225
  202. package/dist/lib/refs.js.map +0 -1
  203. package/dist/lib/secure-store.d.ts +0 -11
  204. package/dist/lib/secure-store.d.ts.map +0 -1
  205. package/dist/lib/secure-store.js +0 -57
  206. package/dist/lib/secure-store.js.map +0 -1
  207. package/dist/lib/skills/content.d.ts +0 -4
  208. package/dist/lib/skills/content.d.ts.map +0 -1
  209. package/dist/lib/skills/content.js +0 -418
  210. package/dist/lib/skills/content.js.map +0 -1
  211. package/dist/lib/skills/create-installer.d.ts +0 -10
  212. package/dist/lib/skills/create-installer.d.ts.map +0 -1
  213. package/dist/lib/skills/create-installer.js +0 -77
  214. package/dist/lib/skills/create-installer.js.map +0 -1
  215. package/dist/lib/skills/index.d.ts +0 -6
  216. package/dist/lib/skills/index.d.ts.map +0 -1
  217. package/dist/lib/skills/index.js +0 -40
  218. package/dist/lib/skills/index.js.map +0 -1
  219. package/dist/lib/skills/types.d.ts +0 -11
  220. package/dist/lib/skills/types.d.ts.map +0 -1
  221. package/dist/lib/skills/types.js +0 -2
  222. package/dist/lib/skills/types.js.map +0 -1
  223. package/dist/lib/skills/update-installed.d.ts +0 -7
  224. package/dist/lib/skills/update-installed.d.ts.map +0 -1
  225. package/dist/lib/skills/update-installed.js +0 -23
  226. package/dist/lib/skills/update-installed.js.map +0 -1
  227. package/dist/lib/spinner.d.ts +0 -23
  228. package/dist/lib/spinner.d.ts.map +0 -1
  229. package/dist/lib/spinner.js +0 -138
  230. package/dist/lib/spinner.js.map +0 -1
  231. package/dist/lib/stdin.d.ts +0 -2
  232. package/dist/lib/stdin.d.ts.map +0 -1
  233. package/dist/lib/stdin.js +0 -12
  234. package/dist/lib/stdin.js.map +0 -1
  235. package/dist/lib/task-list.d.ts +0 -31
  236. package/dist/lib/task-list.d.ts.map +0 -1
  237. package/dist/lib/task-list.js +0 -271
  238. package/dist/lib/task-list.js.map +0 -1
  239. package/dist/lib/urls.d.ts +0 -8
  240. package/dist/lib/urls.d.ts.map +0 -1
  241. package/dist/lib/urls.js +0 -26
  242. package/dist/lib/urls.js.map +0 -1
  243. package/dist/postinstall.d.ts +0 -2
  244. package/dist/postinstall.d.ts.map +0 -1
  245. package/dist/postinstall.js +0 -3
  246. package/dist/postinstall.js.map +0 -1
@@ -1,108 +0,0 @@
1
- import chalk from 'chalk';
2
- import { getApi } from '../lib/api/core.js';
3
- import { CollaboratorCache, formatAssignee } from '../lib/collaborators.js';
4
- import { getLocalDate, isDueBefore, isDueOnDate } from '../lib/dates.js';
5
- import { formatNextCursorFooter, formatPaginatedJson, formatPaginatedNdjson, formatTaskRow, } from '../lib/output.js';
6
- import { LIMITS, paginate } from '../lib/pagination.js';
7
- import { fetchProjects, filterByWorkspaceOrPersonal } from '../lib/task-list.js';
8
- export async function showToday(options) {
9
- const api = await getApi();
10
- const targetLimit = options.all
11
- ? Number.MAX_SAFE_INTEGER
12
- : options.limit
13
- ? parseInt(options.limit, 10)
14
- : LIMITS.tasks;
15
- const baseQuery = 'today | overdue';
16
- const query = options.anyAssignee ? baseQuery : `(${baseQuery}) & (assigned to: me | !assigned)`;
17
- const needsProjects = Boolean(options.workspace || options.personal || (!options.json && !options.ndjson));
18
- const [{ results: tasks, nextCursor }, projects] = await Promise.all([
19
- paginate((cursor, limit) => api.getTasksByFilter({
20
- query,
21
- cursor: cursor ?? undefined,
22
- limit,
23
- }), { limit: targetLimit, startCursor: options.cursor }),
24
- needsProjects ? fetchProjects(api) : Promise.resolve(new Map()),
25
- ]);
26
- const today = getLocalDate(0);
27
- const filterResult = await filterByWorkspaceOrPersonal({
28
- api,
29
- tasks,
30
- workspace: options.workspace,
31
- personal: options.personal,
32
- prefetchedProjects: projects,
33
- });
34
- const filteredTasks = filterResult.tasks;
35
- const overdue = filteredTasks.filter((t) => t.due && isDueBefore(t.due.date, today));
36
- const dueToday = filteredTasks.filter((t) => t.due && isDueOnDate(t.due.date, today));
37
- const allTodayTasks = [...overdue, ...dueToday];
38
- if (options.json) {
39
- console.log(formatPaginatedJson({ results: allTodayTasks, nextCursor }, 'task', options.full, options.showUrls));
40
- return;
41
- }
42
- if (options.ndjson) {
43
- console.log(formatPaginatedNdjson({ results: allTodayTasks, nextCursor }, 'task', options.full, options.showUrls));
44
- return;
45
- }
46
- const collaboratorCache = new CollaboratorCache();
47
- await collaboratorCache.preload(api, allTodayTasks, filterResult.projects);
48
- if (overdue.length === 0 && dueToday.length === 0) {
49
- console.log('No tasks due today.');
50
- console.log(formatNextCursorFooter(nextCursor));
51
- return;
52
- }
53
- if (overdue.length > 0) {
54
- console.log(chalk.red.bold(`Overdue (${overdue.length})`));
55
- for (const task of overdue) {
56
- const assignee = formatAssignee({
57
- userId: task.responsibleUid,
58
- projectId: task.projectId,
59
- projects,
60
- cache: collaboratorCache,
61
- });
62
- console.log(formatTaskRow({
63
- task,
64
- projectName: projects.get(task.projectId)?.name,
65
- assignee: assignee ?? undefined,
66
- raw: options.raw,
67
- showUrl: options.showUrls,
68
- }));
69
- console.log('');
70
- }
71
- }
72
- console.log(chalk.bold(`Today (${dueToday.length})`));
73
- for (const task of dueToday) {
74
- const assignee = formatAssignee({
75
- userId: task.responsibleUid,
76
- projectId: task.projectId,
77
- projects,
78
- cache: collaboratorCache,
79
- });
80
- console.log(formatTaskRow({
81
- task,
82
- projectName: projects.get(task.projectId)?.name,
83
- assignee: assignee ?? undefined,
84
- raw: options.raw,
85
- showUrl: options.showUrls,
86
- }));
87
- console.log('');
88
- }
89
- console.log(formatNextCursorFooter(nextCursor));
90
- }
91
- export function registerTodayCommand(program) {
92
- program
93
- .command('today')
94
- .description('Show tasks due today and overdue')
95
- .option('--limit <n>', 'Limit number of results (default: 300)')
96
- .option('--cursor <cursor>', 'Continue from cursor')
97
- .option('--all', 'Fetch all results (no limit)')
98
- .option('--any-assignee', 'Show tasks assigned to anyone (default: only me/unassigned)')
99
- .option('--workspace <name>', 'Filter to tasks in workspace')
100
- .option('--personal', 'Filter to tasks in personal projects')
101
- .option('--json', 'Output as JSON')
102
- .option('--ndjson', 'Output as newline-delimited JSON')
103
- .option('--full', 'Include all fields in JSON output')
104
- .option('--raw', 'Disable markdown rendering')
105
- .option('--show-urls', 'Show web app URLs for each task')
106
- .action(showToday);
107
- }
108
- //# sourceMappingURL=today.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"today.js","sourceRoot":"","sources":["../../src/commands/today.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { Command } from 'commander';
2
- interface UpcomingOptions {
3
- limit?: string;
4
- cursor?: string;
5
- all?: boolean;
6
- anyAssignee?: boolean;
7
- workspace?: string;
8
- personal?: boolean;
9
- json?: boolean;
10
- ndjson?: boolean;
11
- full?: boolean;
12
- showUrls?: boolean;
13
- }
14
- export declare function showUpcoming(daysArg: string | undefined, options: UpcomingOptions): Promise<void>;
15
- export declare function registerUpcomingCommand(program: Command): void;
16
- export {};
17
- //# sourceMappingURL=upcoming.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upcoming.d.ts","sourceRoot":"","sources":["../../src/commands/upcoming.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAanC,UAAU,eAAe;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,wBAAsB,YAAY,CAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,eAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CA2If;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAe9D"}
@@ -1,129 +0,0 @@
1
- import chalk from 'chalk';
2
- import { getApi } from '../lib/api/core.js';
3
- import { CollaboratorCache, formatAssignee } from '../lib/collaborators.js';
4
- import { formatDateHeader, getLocalDate, isDueBefore } from '../lib/dates.js';
5
- import { formatNextCursorFooter, formatPaginatedJson, formatPaginatedNdjson, formatTaskRow, } from '../lib/output.js';
6
- import { LIMITS, paginate } from '../lib/pagination.js';
7
- import { fetchProjects, filterByWorkspaceOrPersonal } from '../lib/task-list.js';
8
- export async function showUpcoming(daysArg, options) {
9
- const days = daysArg ? parseInt(daysArg, 10) : 7;
10
- if (Number.isNaN(days) || days < 1) {
11
- console.error('Days must be a positive number');
12
- process.exitCode = 1;
13
- return;
14
- }
15
- const api = await getApi();
16
- const targetLimit = options.all
17
- ? Number.MAX_SAFE_INTEGER
18
- : options.limit
19
- ? parseInt(options.limit, 10)
20
- : LIMITS.tasks;
21
- const today = getLocalDate(0);
22
- const baseQuery = `due before: ${days} days`;
23
- const query = options.anyAssignee ? baseQuery : `(${baseQuery}) & (assigned to: me | !assigned)`;
24
- const [{ results: tasks, nextCursor }, projects] = await Promise.all([
25
- paginate((cursor, limit) => api.getTasksByFilter({
26
- query,
27
- cursor: cursor ?? undefined,
28
- limit,
29
- }), { limit: targetLimit, startCursor: options.cursor }),
30
- fetchProjects(api),
31
- ]);
32
- const filterResult = await filterByWorkspaceOrPersonal({
33
- api,
34
- tasks,
35
- workspace: options.workspace,
36
- personal: options.personal,
37
- prefetchedProjects: projects,
38
- });
39
- const relevantTasks = filterResult.tasks;
40
- if (options.json) {
41
- console.log(formatPaginatedJson({ results: relevantTasks, nextCursor }, 'task', options.full, options.showUrls));
42
- return;
43
- }
44
- if (options.ndjson) {
45
- console.log(formatPaginatedNdjson({ results: relevantTasks, nextCursor }, 'task', options.full, options.showUrls));
46
- return;
47
- }
48
- const collaboratorCache = new CollaboratorCache();
49
- await collaboratorCache.preload(api, relevantTasks, filterResult.projects);
50
- if (relevantTasks.length === 0) {
51
- console.log(`No tasks due in the next ${days} day${days === 1 ? '' : 's'}.`);
52
- console.log(formatNextCursorFooter(nextCursor));
53
- return;
54
- }
55
- const overdue = [];
56
- const byDate = new Map();
57
- for (const task of relevantTasks) {
58
- const dueDate = task.due?.date;
59
- if (!dueDate)
60
- continue; // Skip tasks without due dates
61
- if (isDueBefore(dueDate, today)) {
62
- overdue.push(task);
63
- }
64
- else {
65
- const list = byDate.get(dueDate) || [];
66
- list.push(task);
67
- byDate.set(dueDate, list);
68
- }
69
- }
70
- if (overdue.length > 0) {
71
- console.log(chalk.red.bold(`Overdue (${overdue.length})`));
72
- for (const task of overdue) {
73
- const assignee = formatAssignee({
74
- userId: task.responsibleUid,
75
- projectId: task.projectId,
76
- projects,
77
- cache: collaboratorCache,
78
- });
79
- console.log(formatTaskRow({
80
- task,
81
- projectName: projects.get(task.projectId)?.name,
82
- assignee: assignee ?? undefined,
83
- showUrl: options.showUrls,
84
- }));
85
- console.log('');
86
- }
87
- }
88
- const sortedDates = Array.from(byDate.keys()).sort();
89
- for (const date of sortedDates) {
90
- const dateTasks = byDate.get(date);
91
- if (!dateTasks)
92
- continue; // Should not happen since date comes from keys()
93
- const header = formatDateHeader(date, today);
94
- console.log(chalk.bold(`${header} (${dateTasks.length})`));
95
- for (const task of dateTasks) {
96
- const assignee = formatAssignee({
97
- userId: task.responsibleUid,
98
- projectId: task.projectId,
99
- projects,
100
- cache: collaboratorCache,
101
- });
102
- console.log(formatTaskRow({
103
- task,
104
- projectName: projects.get(task.projectId)?.name,
105
- assignee: assignee ?? undefined,
106
- showUrl: options.showUrls,
107
- }));
108
- console.log('');
109
- }
110
- }
111
- console.log(formatNextCursorFooter(nextCursor));
112
- }
113
- export function registerUpcomingCommand(program) {
114
- program
115
- .command('upcoming [days]')
116
- .description('Show tasks due in the next N days (default: 7)')
117
- .option('--limit <n>', 'Limit number of results (default: 300)')
118
- .option('--cursor <cursor>', 'Continue from cursor')
119
- .option('--all', 'Fetch all results (no limit)')
120
- .option('--any-assignee', 'Show tasks assigned to anyone (default: only me/unassigned)')
121
- .option('--workspace <name>', 'Filter to tasks in workspace')
122
- .option('--personal', 'Filter to tasks in personal projects')
123
- .option('--json', 'Output as JSON')
124
- .option('--ndjson', 'Output as newline-delimited JSON')
125
- .option('--full', 'Include all fields in JSON output')
126
- .option('--show-urls', 'Show web app URLs for each task')
127
- .action(showUpcoming);
128
- }
129
- //# sourceMappingURL=upcoming.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upcoming.js","sourceRoot":"","sources":["../../src/commands/upcoming.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function updateAction(options: {
3
- check?: boolean;
4
- }): Promise<void>;
5
- export declare function registerUpdateCommand(program: Command): void;
6
- //# sourceMappingURL=update.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2CnC,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE9E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAM5D"}
@@ -1,90 +0,0 @@
1
- import { spawn } from 'node:child_process';
2
- import chalk from 'chalk';
3
- import packageJson from '../../package.json' with { type: 'json' };
4
- import { withSpinner } from '../lib/spinner.js';
5
- const PACKAGE_NAME = '@doist/todoist-cli';
6
- const REGISTRY_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
7
- async function fetchLatestVersion() {
8
- const response = await fetch(REGISTRY_URL);
9
- if (!response.ok) {
10
- throw new Error(`Registry request failed (HTTP ${response.status})`);
11
- }
12
- const data = (await response.json());
13
- return data.version;
14
- }
15
- function detectPackageManager() {
16
- const execPath = process.env.npm_execpath ?? '';
17
- if (execPath.includes('pnpm'))
18
- return 'pnpm';
19
- return 'npm';
20
- }
21
- function runInstall(pm) {
22
- const command = pm === 'pnpm' ? 'add' : 'install';
23
- return new Promise((resolve, reject) => {
24
- const child = spawn(pm, [command, '-g', `${PACKAGE_NAME}@latest`], {
25
- stdio: 'pipe',
26
- });
27
- let stderr = '';
28
- child.stderr?.on('data', (data) => {
29
- stderr += data.toString();
30
- });
31
- child.on('error', reject);
32
- child.on('close', (code) => resolve({ exitCode: code ?? 1, stderr }));
33
- });
34
- }
35
- export async function updateAction(options) {
36
- const currentVersion = packageJson.version;
37
- let latestVersion;
38
- try {
39
- latestVersion = await withSpinner({ text: 'Checking for updates...', color: 'blue' }, fetchLatestVersion);
40
- }
41
- catch (error) {
42
- const message = error instanceof Error ? error.message : String(error);
43
- console.error(chalk.red('Error:'), `Failed to check for updates: ${message}`);
44
- process.exitCode = 1;
45
- return;
46
- }
47
- if (currentVersion === latestVersion) {
48
- console.log(chalk.green('✓'), `Already up to date (v${currentVersion})`);
49
- return;
50
- }
51
- console.log(`Update available: ${chalk.dim(`v${currentVersion}`)} → ${chalk.green(`v${latestVersion}`)}`);
52
- if (options.check) {
53
- return;
54
- }
55
- const pm = detectPackageManager();
56
- let result;
57
- try {
58
- result = await withSpinner({ text: `Updating to v${latestVersion}...`, color: 'blue' }, () => runInstall(pm));
59
- }
60
- catch (error) {
61
- if (error instanceof Error && 'code' in error && error.code === 'EACCES') {
62
- console.error(chalk.red('Error:'), 'Permission denied. Try running with sudo:');
63
- console.error(chalk.dim(` sudo ${pm} ${pm === 'pnpm' ? 'add' : 'install'} -g ${PACKAGE_NAME}@latest`));
64
- }
65
- else {
66
- const message = error instanceof Error ? error.message : String(error);
67
- console.error(chalk.red('Error:'), `Install failed: ${message}`);
68
- }
69
- process.exitCode = 1;
70
- return;
71
- }
72
- if (result.exitCode !== 0) {
73
- console.error(chalk.red('Error:'), `${pm} exited with code ${result.exitCode}`);
74
- if (result.stderr) {
75
- console.error(chalk.dim(result.stderr.trim()));
76
- }
77
- process.exitCode = 1;
78
- return;
79
- }
80
- console.log(chalk.green('✓'), `Updated to v${latestVersion}`);
81
- console.log(chalk.dim(' Run'), chalk.cyan('td changelog'), chalk.dim('to see what changed'));
82
- }
83
- export function registerUpdateCommand(program) {
84
- program
85
- .command('update')
86
- .description('Update the CLI to the latest version')
87
- .option('--check', 'Check for updates without installing')
88
- .action(updateAction);
89
- }
90
- //# sourceMappingURL=update.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function registerViewCommand(program: Command): void;
3
- //# sourceMappingURL=view.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/commands/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA8CnC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqE1D"}
@@ -1,79 +0,0 @@
1
- import { Command } from 'commander';
2
- import { formatError } from '../lib/output.js';
3
- import { classifyTodoistUrl } from '../lib/refs.js';
4
- function looksLikeTodoistAppUrl(token) {
5
- return /^https?:\/\/app\.todoist\.com\/app\/\S+/.test(token);
6
- }
7
- function extractViewInvocation(command, parsedUrl, parsedArgs) {
8
- const parent = command.parent;
9
- const rawArgs = parent?.rawArgs;
10
- if (!rawArgs)
11
- return { url: parsedUrl, passthroughArgs: parsedArgs };
12
- const viewIndex = rawArgs.findIndex((token, index) => index >= 2 && token === command.name());
13
- if (viewIndex === -1)
14
- return { url: parsedUrl, passthroughArgs: parsedArgs };
15
- const tokensAfterView = rawArgs.slice(viewIndex + 1);
16
- const urlIndex = tokensAfterView.findIndex((token) => looksLikeTodoistAppUrl(token));
17
- if (urlIndex === -1)
18
- return { url: parsedUrl, passthroughArgs: parsedArgs };
19
- return {
20
- url: tokensAfterView[urlIndex],
21
- passthroughArgs: [
22
- ...tokensAfterView.slice(0, urlIndex),
23
- ...tokensAfterView.slice(urlIndex + 1),
24
- ],
25
- };
26
- }
27
- async function runRoutedCommand(loadRegister, argv) {
28
- const proxy = new Command();
29
- proxy.exitOverride();
30
- const register = await loadRegister();
31
- register(proxy);
32
- await proxy.parseAsync(['node', 'td', ...argv]);
33
- }
34
- export function registerViewCommand(program) {
35
- program
36
- .command('view <url> [args...]')
37
- .description('View a Todoist entity or page by URL')
38
- .allowUnknownOption(true)
39
- .addHelpText('after', `
40
- Route mapping:
41
- /app/task/... -> td task view <ref>
42
- /app/project/... -> td project view <ref>
43
- /app/label/... -> td label view <ref>
44
- /app/filter/... -> td filter show <ref>
45
- /app/today -> td today
46
- /app/upcoming -> td upcoming
47
-
48
- Examples:
49
- td view https://app.todoist.com/app/task/buy-milk-abc123
50
- td view https://app.todoist.com/app/filter/work-tasks-def456 --json
51
- td view https://app.todoist.com/app/filter/work-tasks-def456 --limit 25 --ndjson`)
52
- .action(async (url, args, _options, command) => {
53
- const invocation = extractViewInvocation(command, url, args);
54
- const route = classifyTodoistUrl(invocation.url);
55
- if (!route) {
56
- throw new Error(formatError('INVALID_URL', `Not a recognized Todoist URL: ${invocation.url}`));
57
- }
58
- if (route.kind === 'view') {
59
- switch (route.view) {
60
- case 'today':
61
- return runRoutedCommand(async () => (await import('./today.js')).registerTodayCommand, ['today', ...invocation.passthroughArgs]);
62
- case 'upcoming':
63
- return runRoutedCommand(async () => (await import('./upcoming.js')).registerUpcomingCommand, ['upcoming', ...invocation.passthroughArgs]);
64
- }
65
- }
66
- const ref = `id:${route.id}`;
67
- switch (route.entityType) {
68
- case 'task':
69
- return runRoutedCommand(async () => (await import('./task.js')).registerTaskCommand, ['task', 'view', ref, ...invocation.passthroughArgs]);
70
- case 'project':
71
- return runRoutedCommand(async () => (await import('./project.js')).registerProjectCommand, ['project', 'view', ref, ...invocation.passthroughArgs]);
72
- case 'label':
73
- return runRoutedCommand(async () => (await import('./label.js')).registerLabelCommand, ['label', 'view', ref, ...invocation.passthroughArgs]);
74
- case 'filter':
75
- return runRoutedCommand(async () => (await import('./filter.js')).registerFilterCommand, ['filter', 'show', ref, ...invocation.passthroughArgs]);
76
- }
77
- });
78
- }
79
- //# sourceMappingURL=view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/commands/view.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function registerWorkspaceCommand(program: Command): void;
3
- //# sourceMappingURL=workspace.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAA;AA2S3C,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwF/D"}