@doist/todoist-cli 1.29.4 → 1.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/__mocks__/chalk.d.ts +3 -0
  3. package/dist/__mocks__/chalk.d.ts.map +1 -0
  4. package/dist/__mocks__/chalk.js +8 -0
  5. package/dist/__mocks__/chalk.js.map +1 -0
  6. package/dist/commands/activity.d.ts +3 -0
  7. package/dist/commands/activity.d.ts.map +1 -0
  8. package/dist/commands/activity.js +267 -0
  9. package/dist/commands/activity.js.map +1 -0
  10. package/dist/commands/add.d.ts +3 -0
  11. package/dist/commands/add.d.ts.map +1 -0
  12. package/dist/commands/add.js +36 -0
  13. package/dist/commands/add.js.map +1 -0
  14. package/dist/commands/attachment.d.ts +3 -0
  15. package/dist/commands/attachment.d.ts.map +1 -0
  16. package/dist/commands/attachment.js +156 -0
  17. package/dist/commands/attachment.js.map +1 -0
  18. package/dist/commands/auth.d.ts +3 -0
  19. package/dist/commands/auth.d.ts.map +1 -0
  20. package/dist/commands/auth.js +124 -0
  21. package/dist/commands/auth.js.map +1 -0
  22. package/dist/commands/changelog.d.ts +8 -0
  23. package/dist/commands/changelog.d.ts.map +1 -0
  24. package/dist/commands/changelog.js +92 -0
  25. package/dist/commands/changelog.js.map +1 -0
  26. package/dist/commands/comment.d.ts +3 -0
  27. package/dist/commands/comment.d.ts.map +1 -0
  28. package/dist/commands/comment.js +301 -0
  29. package/dist/commands/comment.js.map +1 -0
  30. package/dist/commands/completed.d.ts +3 -0
  31. package/dist/commands/completed.d.ts.map +1 -0
  32. package/dist/commands/completed.js +107 -0
  33. package/dist/commands/completed.js.map +1 -0
  34. package/dist/commands/completion.d.ts +3 -0
  35. package/dist/commands/completion.d.ts.map +1 -0
  36. package/dist/commands/completion.js +107 -0
  37. package/dist/commands/completion.js.map +1 -0
  38. package/dist/commands/filter.d.ts +5 -0
  39. package/dist/commands/filter.d.ts.map +1 -0
  40. package/dist/commands/filter.js +287 -0
  41. package/dist/commands/filter.js.map +1 -0
  42. package/dist/commands/inbox.d.ts +3 -0
  43. package/dist/commands/inbox.d.ts.map +1 -0
  44. package/dist/commands/inbox.js +25 -0
  45. package/dist/commands/inbox.js.map +1 -0
  46. package/dist/commands/label.d.ts +5 -0
  47. package/dist/commands/label.d.ts.map +1 -0
  48. package/dist/commands/label.js +328 -0
  49. package/dist/commands/label.js.map +1 -0
  50. package/dist/commands/notification.d.ts +3 -0
  51. package/dist/commands/notification.d.ts.map +1 -0
  52. package/dist/commands/notification.js +274 -0
  53. package/dist/commands/notification.js.map +1 -0
  54. package/dist/commands/project.d.ts +7 -0
  55. package/dist/commands/project.d.ts.map +1 -0
  56. package/dist/commands/project.js +714 -0
  57. package/dist/commands/project.js.map +1 -0
  58. package/dist/commands/reminder.d.ts +3 -0
  59. package/dist/commands/reminder.d.ts.map +1 -0
  60. package/dist/commands/reminder.js +271 -0
  61. package/dist/commands/reminder.js.map +1 -0
  62. package/dist/commands/section.d.ts +3 -0
  63. package/dist/commands/section.d.ts.map +1 -0
  64. package/dist/commands/section.js +216 -0
  65. package/dist/commands/section.js.map +1 -0
  66. package/dist/commands/settings.d.ts +12 -0
  67. package/dist/commands/settings.d.ts.map +1 -0
  68. package/dist/commands/settings.js +312 -0
  69. package/dist/commands/settings.js.map +1 -0
  70. package/dist/commands/skill.d.ts +3 -0
  71. package/dist/commands/skill.d.ts.map +1 -0
  72. package/dist/commands/skill.js +127 -0
  73. package/dist/commands/skill.js.map +1 -0
  74. package/dist/commands/stats.d.ts +3 -0
  75. package/dist/commands/stats.d.ts.map +1 -0
  76. package/dist/commands/stats.js +151 -0
  77. package/dist/commands/stats.js.map +1 -0
  78. package/dist/commands/task.d.ts +5 -0
  79. package/dist/commands/task.d.ts.map +1 -0
  80. package/dist/commands/task.js +559 -0
  81. package/dist/commands/task.js.map +1 -0
  82. package/dist/commands/today.d.ts +18 -0
  83. package/dist/commands/today.d.ts.map +1 -0
  84. package/dist/commands/today.js +108 -0
  85. package/dist/commands/today.js.map +1 -0
  86. package/dist/commands/upcoming.d.ts +17 -0
  87. package/dist/commands/upcoming.d.ts.map +1 -0
  88. package/dist/commands/upcoming.js +129 -0
  89. package/dist/commands/upcoming.js.map +1 -0
  90. package/dist/commands/update.d.ts +6 -0
  91. package/dist/commands/update.d.ts.map +1 -0
  92. package/dist/commands/update.js +90 -0
  93. package/dist/commands/update.js.map +1 -0
  94. package/dist/commands/view.d.ts +3 -0
  95. package/dist/commands/view.d.ts.map +1 -0
  96. package/dist/commands/view.js +79 -0
  97. package/dist/commands/view.js.map +1 -0
  98. package/dist/commands/workspace.d.ts +3 -0
  99. package/dist/commands/workspace.d.ts.map +1 -0
  100. package/dist/commands/workspace.js +309 -0
  101. package/dist/commands/workspace.js.map +1 -0
  102. package/dist/index.d.ts +3 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +176 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/lib/api/core.d.ts +13 -0
  107. package/dist/lib/api/core.d.ts.map +1 -0
  108. package/dist/lib/api/core.js +176 -0
  109. package/dist/lib/api/core.js.map +1 -0
  110. package/dist/lib/api/filters.d.ts +19 -0
  111. package/dist/lib/api/filters.d.ts.map +1 -0
  112. package/dist/lib/api/filters.js +60 -0
  113. package/dist/lib/api/filters.js.map +1 -0
  114. package/dist/lib/api/notifications.d.ts +33 -0
  115. package/dist/lib/api/notifications.d.ts.map +1 -0
  116. package/dist/lib/api/notifications.js +94 -0
  117. package/dist/lib/api/notifications.js.map +1 -0
  118. package/dist/lib/api/reminders.d.ts +30 -0
  119. package/dist/lib/api/reminders.d.ts.map +1 -0
  120. package/dist/lib/api/reminders.js +65 -0
  121. package/dist/lib/api/reminders.js.map +1 -0
  122. package/dist/lib/api/stats.d.ts +41 -0
  123. package/dist/lib/api/stats.d.ts.map +1 -0
  124. package/dist/lib/api/stats.js +74 -0
  125. package/dist/lib/api/stats.js.map +1 -0
  126. package/dist/lib/api/uploads.d.ts +10 -0
  127. package/dist/lib/api/uploads.d.ts.map +1 -0
  128. package/dist/lib/api/uploads.js +31 -0
  129. package/dist/lib/api/uploads.js.map +1 -0
  130. package/dist/lib/api/user-settings.d.ts +34 -0
  131. package/dist/lib/api/user-settings.d.ts.map +1 -0
  132. package/dist/lib/api/user-settings.js +58 -0
  133. package/dist/lib/api/user-settings.js.map +1 -0
  134. package/dist/lib/api/workspaces.d.ts +23 -0
  135. package/dist/lib/api/workspaces.d.ts.map +1 -0
  136. package/dist/lib/api/workspaces.js +61 -0
  137. package/dist/lib/api/workspaces.js.map +1 -0
  138. package/dist/lib/auth.d.ts +14 -0
  139. package/dist/lib/auth.d.ts.map +1 -0
  140. package/dist/lib/auth.js +182 -0
  141. package/dist/lib/auth.js.map +1 -0
  142. package/dist/lib/browser.d.ts +2 -0
  143. package/dist/lib/browser.d.ts.map +1 -0
  144. package/dist/lib/browser.js +6 -0
  145. package/dist/lib/browser.js.map +1 -0
  146. package/dist/lib/collaborators.d.ts +29 -0
  147. package/dist/lib/collaborators.d.ts.map +1 -0
  148. package/dist/lib/collaborators.js +184 -0
  149. package/dist/lib/collaborators.js.map +1 -0
  150. package/dist/lib/completion.d.ts +41 -0
  151. package/dist/lib/completion.d.ts.map +1 -0
  152. package/dist/lib/completion.js +191 -0
  153. package/dist/lib/completion.js.map +1 -0
  154. package/dist/lib/dates.d.ts +16 -0
  155. package/dist/lib/dates.d.ts.map +1 -0
  156. package/dist/lib/dates.js +45 -0
  157. package/dist/lib/dates.js.map +1 -0
  158. package/dist/lib/duration.d.ts +14 -0
  159. package/dist/lib/duration.d.ts.map +1 -0
  160. package/dist/lib/duration.js +58 -0
  161. package/dist/lib/duration.js.map +1 -0
  162. package/dist/lib/logger.d.ts +42 -0
  163. package/dist/lib/logger.d.ts.map +1 -0
  164. package/dist/lib/logger.js +227 -0
  165. package/dist/lib/logger.js.map +1 -0
  166. package/dist/lib/markdown.d.ts +3 -0
  167. package/dist/lib/markdown.d.ts.map +1 -0
  168. package/dist/lib/markdown.js +22 -0
  169. package/dist/lib/markdown.js.map +1 -0
  170. package/dist/lib/oauth-server.d.ts +6 -0
  171. package/dist/lib/oauth-server.d.ts.map +1 -0
  172. package/dist/lib/oauth-server.js +773 -0
  173. package/dist/lib/oauth-server.js.map +1 -0
  174. package/dist/lib/oauth.d.ts +3 -0
  175. package/dist/lib/oauth.d.ts.map +1 -0
  176. package/dist/lib/oauth.js +38 -0
  177. package/dist/lib/oauth.js.map +1 -0
  178. package/dist/lib/options.d.ts +16 -0
  179. package/dist/lib/options.d.ts.map +1 -0
  180. package/dist/lib/options.js +2 -0
  181. package/dist/lib/options.js.map +1 -0
  182. package/dist/lib/output.d.ts +39 -0
  183. package/dist/lib/output.d.ts.map +1 -0
  184. package/dist/lib/output.js +311 -0
  185. package/dist/lib/output.js.map +1 -0
  186. package/dist/lib/pagination.d.ts +23 -0
  187. package/dist/lib/pagination.d.ts.map +1 -0
  188. package/dist/lib/pagination.js +26 -0
  189. package/dist/lib/pagination.js.map +1 -0
  190. package/dist/lib/pkce.d.ts +4 -0
  191. package/dist/lib/pkce.d.ts.map +1 -0
  192. package/dist/lib/pkce.js +19 -0
  193. package/dist/lib/pkce.js.map +1 -0
  194. package/dist/lib/progress.d.ts +29 -0
  195. package/dist/lib/progress.d.ts.map +1 -0
  196. package/dist/lib/progress.js +101 -0
  197. package/dist/lib/progress.js.map +1 -0
  198. package/dist/lib/refs.d.ts +52 -0
  199. package/dist/lib/refs.d.ts.map +1 -0
  200. package/dist/lib/refs.js +225 -0
  201. package/dist/lib/refs.js.map +1 -0
  202. package/dist/lib/secure-store.d.ts +11 -0
  203. package/dist/lib/secure-store.d.ts.map +1 -0
  204. package/dist/lib/secure-store.js +57 -0
  205. package/dist/lib/secure-store.js.map +1 -0
  206. package/dist/lib/skills/content.d.ts +4 -0
  207. package/dist/lib/skills/content.d.ts.map +1 -0
  208. package/dist/lib/skills/content.js +429 -0
  209. package/dist/lib/skills/content.js.map +1 -0
  210. package/dist/lib/skills/create-installer.d.ts +10 -0
  211. package/dist/lib/skills/create-installer.d.ts.map +1 -0
  212. package/dist/lib/skills/create-installer.js +77 -0
  213. package/dist/lib/skills/create-installer.js.map +1 -0
  214. package/dist/lib/skills/index.d.ts +6 -0
  215. package/dist/lib/skills/index.d.ts.map +1 -0
  216. package/dist/lib/skills/index.js +40 -0
  217. package/dist/lib/skills/index.js.map +1 -0
  218. package/dist/lib/skills/types.d.ts +11 -0
  219. package/dist/lib/skills/types.d.ts.map +1 -0
  220. package/dist/lib/skills/types.js +2 -0
  221. package/dist/lib/skills/types.js.map +1 -0
  222. package/dist/lib/skills/update-installed.d.ts +7 -0
  223. package/dist/lib/skills/update-installed.d.ts.map +1 -0
  224. package/dist/lib/skills/update-installed.js +23 -0
  225. package/dist/lib/skills/update-installed.js.map +1 -0
  226. package/dist/lib/spinner.d.ts +23 -0
  227. package/dist/lib/spinner.d.ts.map +1 -0
  228. package/dist/lib/spinner.js +138 -0
  229. package/dist/lib/spinner.js.map +1 -0
  230. package/dist/lib/stdin.d.ts +2 -0
  231. package/dist/lib/stdin.d.ts.map +1 -0
  232. package/dist/lib/stdin.js +12 -0
  233. package/dist/lib/stdin.js.map +1 -0
  234. package/dist/lib/task-list.d.ts +31 -0
  235. package/dist/lib/task-list.d.ts.map +1 -0
  236. package/dist/lib/task-list.js +271 -0
  237. package/dist/lib/task-list.js.map +1 -0
  238. package/dist/lib/urls.d.ts +8 -0
  239. package/dist/lib/urls.d.ts.map +1 -0
  240. package/dist/lib/urls.js +26 -0
  241. package/dist/lib/urls.js.map +1 -0
  242. package/dist/postinstall.d.ts +2 -0
  243. package/dist/postinstall.d.ts.map +1 -0
  244. package/dist/postinstall.js +3 -0
  245. package/dist/postinstall.js.map +1 -0
  246. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAA;AA4B3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAwCpD,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B/E;AAscD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiN1D"}
@@ -0,0 +1,559 @@
1
+ import { Option } from 'commander';
2
+ import { completeTaskForever, getApi, rescheduleTask as rescheduleTaskSync, } from '../lib/api/core.js';
3
+ import { openInBrowser } from '../lib/browser.js';
4
+ import { withCaseInsensitiveChoices } from '../lib/completion.js';
5
+ import { parseDuration } from '../lib/duration.js';
6
+ import { formatDue, formatError, formatJson, formatTaskView, printDryRun } from '../lib/output.js';
7
+ import { taskUrl } from '../lib/urls.js';
8
+ function applyDuration(args, durationStr) {
9
+ const minutes = parseDuration(durationStr);
10
+ if (minutes === null) {
11
+ throw new Error(formatError('INVALID_DURATION', `Invalid duration format: "${durationStr}"`, [
12
+ 'Examples: 30m, 1h, 2h15m, 1 hour 30 minutes',
13
+ ]));
14
+ }
15
+ args.duration = minutes;
16
+ args.durationUnit = 'minute';
17
+ }
18
+ import { resolveAssigneeId } from '../lib/collaborators.js';
19
+ import { extractId, isIdRef, lenientIdRef, looksLikeRawId, resolveParentTaskId, resolveProjectId, resolveProjectRef, resolveSectionId, resolveTaskRef, } from '../lib/refs.js';
20
+ import { readStdin } from '../lib/stdin.js';
21
+ import { listTasksForProject, PRIORITY_CHOICES, parsePriority, } from '../lib/task-list.js';
22
+ async function listTasks(options) {
23
+ const api = await getApi();
24
+ let projectId = null;
25
+ if (options.project) {
26
+ projectId = await resolveProjectId(api, options.project);
27
+ }
28
+ let parentId;
29
+ if (options.parent) {
30
+ const parentTask = await resolveTaskRef(api, options.parent);
31
+ parentId = parentTask.id;
32
+ if (!projectId)
33
+ projectId = parentTask.projectId;
34
+ }
35
+ await listTasksForProject(projectId, { ...options, parent: parentId });
36
+ }
37
+ export async function viewTask(ref, options) {
38
+ const api = await getApi();
39
+ const task = await resolveTaskRef(api, ref);
40
+ if (options.json) {
41
+ console.log(formatJson(task, 'task', options.full, true));
42
+ return;
43
+ }
44
+ const { results: projects } = await api.getProjects();
45
+ const project = projects.find((p) => p.id === task.projectId);
46
+ let parentTask;
47
+ if (task.parentId) {
48
+ parentTask = await api.getTask(task.parentId);
49
+ }
50
+ const { results: subtasks } = await api.getTasks({ parentId: task.id });
51
+ const subtaskCount = subtasks.length;
52
+ console.log(formatTaskView({
53
+ task,
54
+ project,
55
+ parentTask,
56
+ subtaskCount,
57
+ full: options.full,
58
+ raw: options.raw,
59
+ }));
60
+ }
61
+ async function completeTask(ref, options) {
62
+ const api = await getApi();
63
+ const task = await resolveTaskRef(api, ref);
64
+ if (task.checked) {
65
+ console.log('Task already completed.');
66
+ return;
67
+ }
68
+ if (task.isUncompletable) {
69
+ console.log('Task is uncompletable (reference item).');
70
+ return;
71
+ }
72
+ if (options.dryRun) {
73
+ printDryRun('complete task', {
74
+ Task: task.content,
75
+ Forever: options.forever ? 'yes' : undefined,
76
+ });
77
+ return;
78
+ }
79
+ if (options.forever) {
80
+ const isRecurring = task.due?.isRecurring ?? false;
81
+ if (!isRecurring) {
82
+ console.log('Task is not recurring, completing normally.');
83
+ }
84
+ await completeTaskForever(task.id);
85
+ console.log(`Completed forever: ${task.content}`);
86
+ return;
87
+ }
88
+ await api.closeTask(task.id);
89
+ console.log(`Completed: ${task.content}`);
90
+ }
91
+ async function uncompleteTask(ref, options) {
92
+ const id = lenientIdRef(ref, 'task');
93
+ if (options.dryRun) {
94
+ printDryRun('reopen task', { ID: id });
95
+ return;
96
+ }
97
+ const api = await getApi();
98
+ await api.reopenTask(id);
99
+ console.log(`Reopened task ${id}`);
100
+ }
101
+ async function deleteTask(ref, options) {
102
+ const api = await getApi();
103
+ const task = await resolveTaskRef(api, ref);
104
+ if (options.dryRun) {
105
+ printDryRun('delete task', { Task: task.content });
106
+ return;
107
+ }
108
+ if (!options.yes) {
109
+ console.log(`Would delete: ${task.content}`);
110
+ console.log('Use --yes to confirm.');
111
+ return;
112
+ }
113
+ await api.deleteTask(task.id);
114
+ console.log(`Deleted: ${task.content}`);
115
+ }
116
+ async function addTask(options) {
117
+ const api = await getApi();
118
+ const args = {
119
+ content: options.content,
120
+ };
121
+ if (options.due) {
122
+ args.dueString = options.due;
123
+ }
124
+ if (options.deadline) {
125
+ args.deadlineDate = options.deadline;
126
+ }
127
+ if (options.priority) {
128
+ args.priority = parsePriority(options.priority);
129
+ }
130
+ let project = null;
131
+ if (options.project) {
132
+ project = await resolveProjectRef(api, options.project);
133
+ if (project.isArchived) {
134
+ throw new Error(`Cannot create task in archived project "${project.name}"`);
135
+ }
136
+ args.projectId = project.id;
137
+ }
138
+ if (options.section) {
139
+ if (isIdRef(options.section)) {
140
+ args.sectionId = extractId(options.section);
141
+ }
142
+ else if (args.projectId) {
143
+ args.sectionId = await resolveSectionId(api, options.section, args.projectId);
144
+ }
145
+ else if (looksLikeRawId(options.section)) {
146
+ args.sectionId = options.section;
147
+ }
148
+ else {
149
+ throw new Error(formatError('PROJECT_REQUIRED', 'The --project flag is required when using --section with a name.', ['Use id:xxx format to specify section by ID without a project.']));
150
+ }
151
+ }
152
+ if (options.labels) {
153
+ args.labels = options.labels.split(',').map((l) => l.trim());
154
+ }
155
+ if (options.parent) {
156
+ if (isIdRef(options.parent)) {
157
+ args.parentId = extractId(options.parent);
158
+ }
159
+ else {
160
+ if (!args.projectId) {
161
+ throw new Error(formatError('PROJECT_REQUIRED', 'The --project flag is required when using --parent with a task name.', ['Use id:xxx format to specify parent by ID without a project.']));
162
+ }
163
+ args.parentId = await resolveParentTaskId(api, options.parent, args.projectId, args.sectionId);
164
+ }
165
+ }
166
+ if (options.stdin && options.description !== undefined) {
167
+ throw new Error('Cannot use both --description and --stdin');
168
+ }
169
+ if (options.stdin) {
170
+ args.description = await readStdin();
171
+ }
172
+ else if (options.description) {
173
+ args.description = options.description;
174
+ }
175
+ if (options.assignee) {
176
+ if (!project) {
177
+ throw new Error(formatError('PROJECT_REQUIRED', 'The --project flag is required when using --assignee.'));
178
+ }
179
+ args.assigneeId = await resolveAssigneeId(api, options.assignee, project);
180
+ }
181
+ if (options.duration) {
182
+ applyDuration(args, options.duration);
183
+ }
184
+ if (options.uncompletable) {
185
+ args.isUncompletable = true;
186
+ }
187
+ if (options.order !== undefined) {
188
+ args.order = options.order;
189
+ }
190
+ if (options.dryRun) {
191
+ printDryRun('add task', {
192
+ Content: args.content,
193
+ Description: args.description,
194
+ Due: args.dueString,
195
+ Deadline: args.deadlineDate ?? undefined,
196
+ Priority: options.priority,
197
+ Project: options.project,
198
+ Section: options.section,
199
+ Labels: options.labels,
200
+ Parent: options.parent,
201
+ Assignee: options.assignee,
202
+ Duration: options.duration,
203
+ Uncompletable: options.uncompletable ? 'yes' : undefined,
204
+ Order: options.order !== undefined ? String(options.order) : undefined,
205
+ });
206
+ return;
207
+ }
208
+ const task = await api.addTask(args);
209
+ if (options.json) {
210
+ console.log(formatJson(task, 'task'));
211
+ return;
212
+ }
213
+ console.log(`Created: ${task.content}`);
214
+ if (task.due)
215
+ console.log(`Due: ${task.due.string || task.due.date}`);
216
+ if (task.deadline)
217
+ console.log(`Deadline: ${task.deadline.date}`);
218
+ console.log(`ID: ${task.id}`);
219
+ }
220
+ async function updateTask(ref, options) {
221
+ const api = await getApi();
222
+ const task = await resolveTaskRef(api, ref);
223
+ const args = {};
224
+ if (options.content)
225
+ args.content = options.content;
226
+ if (options.due)
227
+ args.dueString = options.due;
228
+ if (options.deadline === false) {
229
+ args.deadlineDate = null;
230
+ }
231
+ else if (options.deadline) {
232
+ args.deadlineDate = options.deadline;
233
+ }
234
+ if (options.priority)
235
+ args.priority = parsePriority(options.priority);
236
+ if (options.labels)
237
+ args.labels = options.labels.split(',').map((l) => l.trim());
238
+ if (options.stdin && options.description !== undefined) {
239
+ throw new Error('Cannot use both --description and --stdin');
240
+ }
241
+ if (options.stdin) {
242
+ args.description = await readStdin();
243
+ }
244
+ else if (options.description) {
245
+ args.description = options.description;
246
+ }
247
+ if (options.unassign) {
248
+ args.assigneeId = null;
249
+ }
250
+ else if (options.assignee) {
251
+ const project = await api.getProject(task.projectId);
252
+ args.assigneeId = await resolveAssigneeId(api, options.assignee, project);
253
+ }
254
+ if (options.duration) {
255
+ applyDuration(args, options.duration);
256
+ }
257
+ if (options.uncompletable && options.completable) {
258
+ throw new Error('Cannot use --uncompletable and --completable together');
259
+ }
260
+ else if (options.uncompletable) {
261
+ args.isUncompletable = true;
262
+ }
263
+ else if (options.completable) {
264
+ args.isUncompletable = false;
265
+ }
266
+ if (options.order !== undefined) {
267
+ args.order = options.order;
268
+ }
269
+ if (options.dryRun) {
270
+ printDryRun('update task', {
271
+ Task: task.content,
272
+ Content: args.content,
273
+ Description: args.description ?? undefined,
274
+ Due: args.dueString ?? undefined,
275
+ Deadline: args.deadlineDate ?? undefined,
276
+ Priority: options.priority,
277
+ Labels: options.labels,
278
+ Assignee: options.assignee,
279
+ Unassign: options.unassign ? 'yes' : undefined,
280
+ Duration: options.duration,
281
+ Uncompletable: options.uncompletable ? 'yes' : undefined,
282
+ Completable: options.completable ? 'yes' : undefined,
283
+ Order: options.order !== undefined ? String(options.order) : undefined,
284
+ });
285
+ return;
286
+ }
287
+ const updated = await api.updateTask(task.id, args);
288
+ if (options.json) {
289
+ console.log(formatJson(updated, 'task'));
290
+ return;
291
+ }
292
+ console.log(`Updated: ${updated.content}`);
293
+ }
294
+ async function moveTask(ref, options) {
295
+ const wantsNoParent = options.parent === false;
296
+ const wantsNoSection = options.section === false;
297
+ const hasDestination = options.project || options.section || options.parent || wantsNoParent || wantsNoSection;
298
+ if (!hasDestination) {
299
+ throw new Error(formatError('MISSING_DESTINATION', 'At least one of --project, --section, --parent, --no-parent, or --no-section is required.'));
300
+ }
301
+ const api = await getApi();
302
+ const task = await resolveTaskRef(api, ref);
303
+ if (options.dryRun) {
304
+ printDryRun('move task', {
305
+ Task: task.content,
306
+ Project: typeof options.project === 'string' ? options.project : undefined,
307
+ Section: typeof options.section === 'string' ? options.section : undefined,
308
+ 'No section': options.section === false ? 'yes' : undefined,
309
+ Parent: typeof options.parent === 'string' ? options.parent : undefined,
310
+ 'No parent': options.parent === false ? 'yes' : undefined,
311
+ });
312
+ return;
313
+ }
314
+ if (wantsNoParent || wantsNoSection) {
315
+ const targetProjectId = options.project
316
+ ? await resolveProjectId(api, options.project)
317
+ : task.projectId;
318
+ await api.moveTask(task.id, { projectId: targetProjectId });
319
+ console.log(`Moved: ${task.content}`);
320
+ return;
321
+ }
322
+ const targetProjectId = options.project
323
+ ? await resolveProjectId(api, options.project)
324
+ : task.projectId;
325
+ let targetSectionId;
326
+ if (options.section) {
327
+ targetSectionId = await resolveSectionId(api, options.section, targetProjectId);
328
+ }
329
+ if (options.parent) {
330
+ const parentId = await resolveParentTaskId(api, options.parent, targetProjectId, targetSectionId ?? task.sectionId ?? undefined);
331
+ await api.moveTask(task.id, { parentId });
332
+ }
333
+ else if (targetSectionId) {
334
+ await api.moveTask(task.id, { sectionId: targetSectionId });
335
+ }
336
+ else {
337
+ await api.moveTask(task.id, { projectId: targetProjectId });
338
+ }
339
+ console.log(`Moved: ${task.content}`);
340
+ }
341
+ async function rescheduleTask(ref, date, options) {
342
+ const api = await getApi();
343
+ const task = await resolveTaskRef(api, ref);
344
+ if (!task.due) {
345
+ throw new Error(formatError('NO_DUE_DATE', `Task "${task.content}" has no due date. Use "td task update --due" to set one.`));
346
+ }
347
+ const dateRegex = /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2})?(Z|[+-]\d{2}:\d{2})?)?$/;
348
+ if (!dateRegex.test(date)) {
349
+ throw new Error(formatError('INVALID_DATE', `Invalid date format: "${date}"`, [
350
+ 'Use YYYY-MM-DD for date-only, or YYYY-MM-DDTHH:MM:SS for datetime.',
351
+ 'Examples: 2026-03-20, 2026-03-20T14:00:00',
352
+ ]));
353
+ }
354
+ if (options.dryRun) {
355
+ printDryRun('reschedule task', {
356
+ Task: task.content,
357
+ Date: date,
358
+ });
359
+ return;
360
+ }
361
+ await rescheduleTaskSync(task.id, date, task.due);
362
+ const updated = await api.getTask(task.id);
363
+ if (options.json) {
364
+ console.log(formatJson(updated, 'task'));
365
+ return;
366
+ }
367
+ console.log(`Rescheduled: ${updated.content}`);
368
+ const due = formatDue(updated.due);
369
+ if (due) {
370
+ console.log(`Due: ${due}`);
371
+ }
372
+ }
373
+ async function browseTask(ref) {
374
+ const api = await getApi();
375
+ const task = await resolveTaskRef(api, ref);
376
+ await openInBrowser(taskUrl(task.id));
377
+ }
378
+ export function registerTaskCommand(program) {
379
+ const task = program.command('task').description('Manage tasks');
380
+ task.command('list')
381
+ .description('List tasks')
382
+ .option('--project <name>', 'Filter by project name or id:xxx')
383
+ .option('--parent <ref>', 'Filter subtasks of a parent task')
384
+ .option('--label <name>', 'Filter by label (comma-separated for multiple)')
385
+ .addOption(withCaseInsensitiveChoices(new Option('--priority <p1-p4>', 'Filter by priority'), PRIORITY_CHOICES))
386
+ .option('--due <date>', 'Filter by due date (today, overdue, or YYYY-MM-DD)')
387
+ .option('--filter <query>', 'Raw Todoist filter query')
388
+ .option('--assignee <ref>', 'Filter by assignee (me or id:xxx)')
389
+ .option('--unassigned', 'Show only unassigned tasks')
390
+ .option('--workspace <name>', 'Filter to tasks in workspace')
391
+ .option('--personal', 'Filter to tasks in personal projects')
392
+ .option('--limit <n>', 'Limit number of results (default: 300)')
393
+ .option('--cursor <cursor>', 'Continue from cursor')
394
+ .option('--all', 'Fetch all results (no limit)')
395
+ .option('--json', 'Output as JSON')
396
+ .option('--ndjson', 'Output as newline-delimited JSON')
397
+ .option('--full', 'Include all fields in JSON output')
398
+ .option('--raw', 'Disable markdown rendering')
399
+ .option('--show-urls', 'Show web app URLs for each task')
400
+ .action(listTasks);
401
+ task.command('view [ref]', { isDefault: true })
402
+ .description('View task details')
403
+ .option('--json', 'Output as JSON')
404
+ .option('--full', 'Include all fields in output')
405
+ .option('--raw', 'Disable markdown rendering')
406
+ .action((ref, options) => {
407
+ if (!ref) {
408
+ task.help();
409
+ return;
410
+ }
411
+ return viewTask(ref, options);
412
+ });
413
+ const completeCmd = task
414
+ .command('complete [ref]')
415
+ .description('Complete a task')
416
+ .option('--forever', 'Complete recurring task permanently (stops recurrence)')
417
+ .option('--dry-run', 'Preview what would happen without executing')
418
+ .action((ref, options) => {
419
+ if (!ref) {
420
+ completeCmd.help();
421
+ return;
422
+ }
423
+ return completeTask(ref, options);
424
+ });
425
+ const uncompleteCmd = task
426
+ .command('uncomplete [ref]')
427
+ .description('Reopen a completed task (requires id:xxx)')
428
+ .option('--dry-run', 'Preview what would happen without executing')
429
+ .action((ref, options) => {
430
+ if (!ref) {
431
+ uncompleteCmd.help();
432
+ return;
433
+ }
434
+ return uncompleteTask(ref, options);
435
+ });
436
+ const deleteCmd = task
437
+ .command('delete [ref]')
438
+ .description('Delete a task')
439
+ .option('--yes', 'Confirm deletion')
440
+ .option('--dry-run', 'Preview what would happen without executing')
441
+ .action((ref, options) => {
442
+ if (!ref) {
443
+ deleteCmd.help();
444
+ return;
445
+ }
446
+ return deleteTask(ref, options);
447
+ });
448
+ const addCmd = task
449
+ .command('add [content]')
450
+ .description('Add a task')
451
+ .option('--content <text>', 'Task content (legacy, prefer positional argument)')
452
+ .option('--due <date>', 'Due date (natural language or YYYY-MM-DD)')
453
+ .option('--deadline <date>', 'Deadline date (YYYY-MM-DD)')
454
+ .addOption(withCaseInsensitiveChoices(new Option('--priority <p1-p4>', 'Priority level'), PRIORITY_CHOICES))
455
+ .option('--project <name>', 'Project name or id:xxx')
456
+ .option('--section <ref>', 'Section (name with --project, or id:xxx)')
457
+ .option('--labels <a,b>', 'Comma-separated labels')
458
+ .option('--parent <ref>', 'Parent task reference')
459
+ .option('--description <text>', 'Task description')
460
+ .option('--stdin', 'Read task description from stdin')
461
+ .option('--assignee <ref>', 'Assign to user (name, email, id:xxx, or "me")')
462
+ .option('--duration <time>', 'Duration (e.g., 30m, 1h, 2h15m)')
463
+ .option('--uncompletable', 'Mark task as non-completable (reference/header task)')
464
+ .option('--order <number>', 'Task position within project/parent (0 = top)', (val) => {
465
+ const n = Number(val);
466
+ if (!Number.isInteger(n) || n < 0) {
467
+ throw new Error(formatError('INVALID_ORDER', `Invalid order value: "${val}"`, [
468
+ 'Order must be a non-negative integer (e.g., 0 for top of list)',
469
+ ]));
470
+ }
471
+ return n;
472
+ })
473
+ .option('--json', 'Output the created task as JSON')
474
+ .option('--dry-run', 'Preview what would happen without executing')
475
+ .action((contentArg, options) => {
476
+ if (contentArg && options.content) {
477
+ throw new Error('Cannot specify content both as argument and --content flag');
478
+ }
479
+ const content = contentArg || options.content;
480
+ if (!content) {
481
+ addCmd.help();
482
+ return;
483
+ }
484
+ return addTask({ ...options, content });
485
+ });
486
+ const updateCmd = task
487
+ .command('update [ref]')
488
+ .description('Update a task')
489
+ .option('--content <text>', 'New content')
490
+ .option('--due <date>', 'New due date')
491
+ .option('--deadline <date>', 'Deadline date (YYYY-MM-DD)')
492
+ .option('--no-deadline', 'Remove deadline')
493
+ .addOption(withCaseInsensitiveChoices(new Option('--priority <p1-p4>', 'New priority'), PRIORITY_CHOICES))
494
+ .option('--labels <a,b>', 'New labels (replaces existing)')
495
+ .option('--description <text>', 'New description')
496
+ .option('--stdin', 'Read task description from stdin')
497
+ .option('--assignee <ref>', 'Assign to user (name, email, id:xxx, or "me")')
498
+ .option('--unassign', 'Remove assignee')
499
+ .option('--duration <time>', 'Duration (e.g., 30m, 1h, 2h15m)')
500
+ .option('--uncompletable', 'Mark task as non-completable')
501
+ .option('--completable', 'Revert task to completable (undoes --uncompletable)')
502
+ .option('--order <number>', 'Task position within project/parent (0 = top)', (val) => {
503
+ const n = Number(val);
504
+ if (!Number.isInteger(n) || n < 0) {
505
+ throw new Error(formatError('INVALID_ORDER', `Invalid order value: "${val}"`, [
506
+ 'Order must be a non-negative integer (e.g., 0 for top of list)',
507
+ ]));
508
+ }
509
+ return n;
510
+ })
511
+ .option('--json', 'Output the updated task as JSON')
512
+ .option('--dry-run', 'Preview what would happen without executing')
513
+ .action((ref, options) => {
514
+ if (!ref) {
515
+ updateCmd.help();
516
+ return;
517
+ }
518
+ return updateTask(ref, options);
519
+ });
520
+ const moveCmd = task
521
+ .command('move [ref]')
522
+ .description('Move task to project/section/parent')
523
+ .option('--project <ref>', 'Target project (name or id:xxx)')
524
+ .option('--section <ref>', 'Target section (name or id:xxx)')
525
+ .option('--parent <ref>', 'Parent task (name or id:xxx)')
526
+ .option('--no-parent', 'Remove parent (move to project root)')
527
+ .option('--no-section', 'Remove section (move to project root)')
528
+ .option('--dry-run', 'Preview what would happen without executing')
529
+ .action((ref, options) => {
530
+ if (!ref) {
531
+ moveCmd.help();
532
+ return;
533
+ }
534
+ return moveTask(ref, options);
535
+ });
536
+ const rescheduleCmd = task
537
+ .command('reschedule [ref] [date]')
538
+ .description('Reschedule a task (preserves recurrence)')
539
+ .option('--json', 'Output the rescheduled task as JSON')
540
+ .option('--dry-run', 'Preview what would happen without executing')
541
+ .action((ref, date, options) => {
542
+ if (!ref || !date) {
543
+ rescheduleCmd.help();
544
+ return;
545
+ }
546
+ return rescheduleTask(ref, date, options);
547
+ });
548
+ const browseCmd = task
549
+ .command('browse [ref]')
550
+ .description('Open task in browser')
551
+ .action((ref) => {
552
+ if (!ref) {
553
+ browseCmd.help();
554
+ return;
555
+ }
556
+ return browseTask(ref);
557
+ });
558
+ }
559
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Command } from 'commander';
2
+ interface TodayOptions {
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
+ raw?: boolean;
13
+ showUrls?: boolean;
14
+ }
15
+ export declare function showToday(options: TodayOptions): Promise<void>;
16
+ export declare function registerTodayCommand(program: Command): void;
17
+ export {};
18
+ //# sourceMappingURL=today.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"today.d.ts","sourceRoot":"","sources":["../../src/commands/today.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAanC,UAAU,YAAY;IAClB,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,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsHpE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgB3D"}