@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,271 +0,0 @@
1
- import chalk from 'chalk';
2
- import { getApi } from '../lib/api/core.js';
3
- import { addReminder as apiAddReminder, deleteReminder as apiDeleteReminder, updateReminder as apiUpdateReminder, fetchReminders, getTaskReminders, } from '../lib/api/reminders.js';
4
- import { formatDuration, parseDuration } from '../lib/duration.js';
5
- import { formatError, formatJson, formatPaginatedJson, formatPaginatedNdjson, printDryRun, } from '../lib/output.js';
6
- import { lenientIdRef, resolveTaskRef } from '../lib/refs.js';
7
- function formatReminderTime(reminder) {
8
- if (reminder.minuteOffset != null) {
9
- return `${formatDuration(reminder.minuteOffset)} before due`;
10
- }
11
- if (reminder.due?.date) {
12
- const date = reminder.due.date;
13
- if (date.includes('T')) {
14
- return `at ${date.replace('T', ' ').slice(0, 16)}`;
15
- }
16
- return `at ${date}`;
17
- }
18
- return 'unknown time';
19
- }
20
- async function listReminders(taskRef, options) {
21
- const api = await getApi();
22
- const task = await resolveTaskRef(api, taskRef);
23
- const reminders = await getTaskReminders(task.id);
24
- if (options.json) {
25
- console.log(formatPaginatedJson({ results: reminders, nextCursor: null }, 'reminder', options.full));
26
- return;
27
- }
28
- if (options.ndjson) {
29
- console.log(formatPaginatedNdjson({ results: reminders, nextCursor: null }, 'reminder', options.full));
30
- return;
31
- }
32
- if (reminders.length === 0) {
33
- console.log('No reminders.');
34
- return;
35
- }
36
- for (const reminder of reminders) {
37
- const id = chalk.dim(reminder.id);
38
- const time = formatReminderTime(reminder);
39
- console.log(`${id} ${time}`);
40
- }
41
- }
42
- function parseDateTime(value) {
43
- const trimmed = value.trim();
44
- // ISO format: 2024-01-15T10:00:00
45
- if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/.test(trimmed)) {
46
- return { date: trimmed };
47
- }
48
- // Space format: 2024-01-15 10:00
49
- const spaceMatch = trimmed.match(/^(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2})$/);
50
- if (spaceMatch) {
51
- return { date: `${spaceMatch[1]}T${spaceMatch[2]}:00` };
52
- }
53
- // Date only: 2024-01-15
54
- if (/^\d{4}-\d{2}-\d{2}$/.test(trimmed)) {
55
- return { date: trimmed };
56
- }
57
- throw new Error(formatError('INVALID_DATETIME', `Invalid datetime format: "${value}"`, [
58
- 'Examples: 2024-01-15 10:00, 2024-01-15T10:00:00, 2024-01-15',
59
- ]));
60
- }
61
- async function addReminder(taskRef, options) {
62
- if (!options.before && !options.at) {
63
- console.log(formatError('MISSING_TIME', 'Must specify --before or --at'));
64
- process.exitCode = 1;
65
- return;
66
- }
67
- if (options.before && options.at) {
68
- console.log(formatError('CONFLICTING_OPTIONS', 'Cannot use both --before and --at'));
69
- process.exitCode = 1;
70
- return;
71
- }
72
- const api = await getApi();
73
- const task = await resolveTaskRef(api, taskRef);
74
- if (options.before) {
75
- const taskDue = task.due;
76
- if (!taskDue?.date) {
77
- console.log(formatError('NO_DUE_DATE', 'Cannot use --before: task has no due date', [
78
- 'Use --at to set a specific reminder time instead',
79
- ]));
80
- process.exitCode = 1;
81
- return;
82
- }
83
- if (!taskDue.date.includes('T')) {
84
- console.log(formatError('NO_DUE_TIME', 'Cannot use --before: task has a due date but no time', [
85
- 'Use --at to set a specific reminder time, or add a time to the task',
86
- ]));
87
- process.exitCode = 1;
88
- return;
89
- }
90
- }
91
- let minuteOffset;
92
- let due;
93
- if (options.before) {
94
- const parsed = parseDuration(options.before);
95
- if (parsed === null) {
96
- console.log(formatError('INVALID_DURATION', `Invalid duration format: "${options.before}"`, [
97
- 'Examples: 30m, 1h, 2h15m, 1 hour 30 minutes',
98
- ]));
99
- process.exitCode = 1;
100
- return;
101
- }
102
- minuteOffset = parsed;
103
- }
104
- if (options.at) {
105
- due = parseDateTime(options.at);
106
- }
107
- if (options.dryRun) {
108
- printDryRun('add reminder', {
109
- Task: task.content,
110
- Before: options.before,
111
- At: options.at,
112
- });
113
- return;
114
- }
115
- const reminderId = await apiAddReminder({
116
- itemId: task.id,
117
- minuteOffset,
118
- due,
119
- });
120
- if (options.json) {
121
- const reminder = {
122
- id: reminderId,
123
- itemId: task.id,
124
- type: minuteOffset !== undefined ? 'relative' : 'absolute',
125
- minuteOffset,
126
- due,
127
- isDeleted: false,
128
- };
129
- console.log(formatJson(reminder, 'reminder'));
130
- return;
131
- }
132
- if (minuteOffset !== undefined) {
133
- console.log(`Added reminder: ${formatDuration(minuteOffset)} before due`);
134
- }
135
- else if (due) {
136
- console.log(`Added reminder: at ${due.date.replace('T', ' ')}`);
137
- }
138
- console.log(chalk.dim(`ID: ${reminderId}`));
139
- }
140
- async function updateReminderCmd(reminderId, options) {
141
- if (!options.before && !options.at) {
142
- console.log(formatError('MISSING_TIME', 'Must specify --before or --at'));
143
- process.exitCode = 1;
144
- return;
145
- }
146
- if (options.before && options.at) {
147
- console.log(formatError('CONFLICTING_OPTIONS', 'Cannot use both --before and --at'));
148
- process.exitCode = 1;
149
- return;
150
- }
151
- const id = lenientIdRef(reminderId, 'reminder');
152
- if (options.dryRun) {
153
- printDryRun('update reminder', {
154
- ID: id,
155
- Before: options.before,
156
- At: options.at,
157
- });
158
- return;
159
- }
160
- let minuteOffset;
161
- let due;
162
- if (options.before) {
163
- const parsed = parseDuration(options.before);
164
- if (parsed === null) {
165
- console.log(formatError('INVALID_DURATION', `Invalid duration format: "${options.before}"`, [
166
- 'Examples: 30m, 1h, 2h15m, 1 hour 30 minutes',
167
- ]));
168
- process.exitCode = 1;
169
- return;
170
- }
171
- minuteOffset = parsed;
172
- }
173
- if (options.at) {
174
- due = parseDateTime(options.at);
175
- }
176
- await apiUpdateReminder(id, { minuteOffset, due });
177
- if (minuteOffset !== undefined) {
178
- console.log(`Updated reminder: ${formatDuration(minuteOffset)} before due`);
179
- }
180
- else if (due) {
181
- console.log(`Updated reminder: at ${due.date.replace('T', ' ')}`);
182
- }
183
- }
184
- async function deleteReminderCmd(reminderId, options) {
185
- const id = lenientIdRef(reminderId, 'reminder');
186
- const reminders = await fetchReminders();
187
- const reminder = reminders.find((r) => r.id === id);
188
- if (!reminder) {
189
- console.log(formatError('NOT_FOUND', `Reminder not found: ${id}`));
190
- process.exitCode = 1;
191
- return;
192
- }
193
- const timeDesc = formatReminderTime(reminder);
194
- if (options.dryRun) {
195
- printDryRun('delete reminder', { Reminder: timeDesc });
196
- return;
197
- }
198
- if (!options.yes) {
199
- console.log(`Would delete reminder: ${timeDesc}`);
200
- console.log('Use --yes to confirm.');
201
- return;
202
- }
203
- await apiDeleteReminder(id);
204
- console.log(`Deleted reminder: ${timeDesc}`);
205
- }
206
- export function registerReminderCommand(program) {
207
- const reminder = program.command('reminder').description('Manage task reminders');
208
- const listCmd = reminder
209
- .command('list [task]')
210
- .description('List reminders for a task')
211
- .option('--task <ref>', 'Task reference (name or id:xxx)')
212
- .option('--json', 'Output as JSON')
213
- .option('--ndjson', 'Output as newline-delimited JSON')
214
- .option('--full', 'Include all fields in JSON output')
215
- .action((taskArg, options) => {
216
- if (taskArg && options.task) {
217
- throw new Error('Cannot specify task both as argument and --task flag');
218
- }
219
- const task = taskArg || options.task;
220
- if (!task) {
221
- listCmd.help();
222
- return;
223
- }
224
- return listReminders(task, options);
225
- });
226
- const addCmd = reminder
227
- .command('add [task]')
228
- .description('Add a reminder to a task')
229
- .option('--task <ref>', 'Task reference (name or id:xxx)')
230
- .option('--before <duration>', 'Time before due (e.g., 30m, 1h)')
231
- .option('--at <datetime>', 'Specific time (e.g., 2024-01-15 10:00)')
232
- .option('--json', 'Output the created reminder as JSON')
233
- .option('--dry-run', 'Preview what would happen without executing')
234
- .action((taskArg, options) => {
235
- if (taskArg && options.task) {
236
- throw new Error('Cannot specify task both as argument and --task flag');
237
- }
238
- const task = taskArg || options.task;
239
- if (!task) {
240
- addCmd.help();
241
- return;
242
- }
243
- return addReminder(task, options);
244
- });
245
- const updateCmd = reminder
246
- .command('update [id]')
247
- .description('Update a reminder')
248
- .option('--before <duration>', 'Time before due (e.g., 30m, 1h)')
249
- .option('--at <datetime>', 'Specific time (e.g., 2024-01-15 10:00)')
250
- .option('--dry-run', 'Preview what would happen without executing')
251
- .action((id, options) => {
252
- if (!id) {
253
- updateCmd.help();
254
- return;
255
- }
256
- return updateReminderCmd(id, options);
257
- });
258
- const deleteCmd = reminder
259
- .command('delete [id]')
260
- .description('Delete a reminder')
261
- .option('--yes', 'Confirm deletion')
262
- .option('--dry-run', 'Preview what would happen without executing')
263
- .action((id, options) => {
264
- if (!id) {
265
- deleteCmd.help();
266
- return;
267
- }
268
- return deleteReminderCmd(id, options);
269
- });
270
- }
271
- //# sourceMappingURL=reminder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reminder.js","sourceRoot":"","sources":["../../src/commands/reminder.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function registerSectionCommand(program: Command): void;
3
- //# sourceMappingURL=section.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"section.d.ts","sourceRoot":"","sources":["../../src/commands/section.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsKnC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkF7D"}
@@ -1,172 +0,0 @@
1
- import chalk from 'chalk';
2
- import { getApi } from '../lib/api/core.js';
3
- import { openInBrowser } from '../lib/browser.js';
4
- import { formatError, formatJson, formatNextCursorFooter, formatPaginatedJson, formatPaginatedNdjson, printDryRun, } from '../lib/output.js';
5
- import { LIMITS, paginate } from '../lib/pagination.js';
6
- import { lenientIdRef, resolveProjectId } from '../lib/refs.js';
7
- import { sectionUrl } from '../lib/urls.js';
8
- async function listSections(projectRef, options) {
9
- const api = await getApi();
10
- const projectId = await resolveProjectId(api, projectRef);
11
- const targetLimit = options.all
12
- ? Number.MAX_SAFE_INTEGER
13
- : options.limit
14
- ? parseInt(options.limit, 10)
15
- : LIMITS.sections;
16
- const { results: sections, nextCursor } = await paginate((cursor, limit) => api.getSections({ projectId, cursor: cursor ?? undefined, limit }), { limit: targetLimit });
17
- if (options.json) {
18
- console.log(formatPaginatedJson({ results: sections, nextCursor }, 'section', options.full, options.showUrls));
19
- return;
20
- }
21
- if (options.ndjson) {
22
- console.log(formatPaginatedNdjson({ results: sections, nextCursor }, 'section', options.full, options.showUrls));
23
- return;
24
- }
25
- if (sections.length === 0) {
26
- console.log('No sections.');
27
- return;
28
- }
29
- for (const section of sections) {
30
- const id = chalk.dim(section.id);
31
- console.log(`${id} ${section.name}`);
32
- if (options.showUrls) {
33
- console.log(` ${chalk.dim(sectionUrl(section.id))}`);
34
- }
35
- }
36
- console.log(formatNextCursorFooter(nextCursor));
37
- }
38
- async function createSection(options) {
39
- if (options.dryRun) {
40
- printDryRun('create section', {
41
- Name: options.name,
42
- Project: options.project,
43
- });
44
- return;
45
- }
46
- const api = await getApi();
47
- const projectId = await resolveProjectId(api, options.project);
48
- const section = await api.addSection({
49
- name: options.name,
50
- projectId,
51
- });
52
- if (options.json) {
53
- console.log(formatJson(section, 'section'));
54
- return;
55
- }
56
- console.log(`Created: ${section.name}`);
57
- console.log(chalk.dim(`ID: ${section.id}`));
58
- }
59
- async function deleteSection(sectionId, options) {
60
- const id = lenientIdRef(sectionId, 'section');
61
- const api = await getApi();
62
- const section = await api.getSection(id);
63
- const { results: tasks } = await api.getTasks({ sectionId: id });
64
- if (tasks.length > 0) {
65
- throw new Error(formatError('HAS_TASKS', `Cannot delete section: ${tasks.length} uncompleted task${tasks.length === 1 ? '' : 's'} remain.`));
66
- }
67
- if (options.dryRun) {
68
- printDryRun('delete section', { Section: section.name });
69
- return;
70
- }
71
- if (!options.yes) {
72
- console.log(`Would delete section: ${section.name}`);
73
- console.log('Use --yes to confirm.');
74
- return;
75
- }
76
- await api.deleteSection(id);
77
- console.log(`Deleted section: ${section.name}`);
78
- }
79
- async function updateSection(sectionId, options) {
80
- const id = lenientIdRef(sectionId, 'section');
81
- if (options.dryRun) {
82
- printDryRun('update section', { ID: id, Name: options.name });
83
- return;
84
- }
85
- const api = await getApi();
86
- if (options.json) {
87
- const updated = await api.updateSection(id, { name: options.name });
88
- console.log(formatJson(updated, 'section'));
89
- return;
90
- }
91
- const section = await api.getSection(id);
92
- const updated = await api.updateSection(id, { name: options.name });
93
- console.log(`Updated: ${section.name} → ${updated.name}`);
94
- }
95
- async function browseSection(sectionId) {
96
- const id = lenientIdRef(sectionId, 'section');
97
- await openInBrowser(sectionUrl(id));
98
- }
99
- export function registerSectionCommand(program) {
100
- const section = program.command('section').description('Manage project sections');
101
- const listCmd = section
102
- .command('list [project]')
103
- .description('List sections in a project')
104
- .option('--project <ref>', 'Project name or id:xxx')
105
- .option('--limit <n>', 'Limit number of results (default: 300)')
106
- .option('--all', 'Fetch all results (no limit)')
107
- .option('--json', 'Output as JSON')
108
- .option('--ndjson', 'Output as newline-delimited JSON')
109
- .option('--full', 'Include all fields in JSON output')
110
- .option('--show-urls', 'Show web app URLs for each section')
111
- .action((projectArg, options) => {
112
- if (projectArg && options.project) {
113
- throw new Error('Cannot specify project both as argument and --project flag');
114
- }
115
- const project = projectArg || options.project;
116
- if (!project) {
117
- listCmd.help();
118
- return;
119
- }
120
- return listSections(project, options);
121
- });
122
- const createCmd = section
123
- .command('create')
124
- .description('Create a section')
125
- .option('--name <name>', 'Section name (required)')
126
- .option('--project <name>', 'Project name or id:xxx (required)')
127
- .option('--json', 'Output the created section as JSON')
128
- .option('--dry-run', 'Preview what would happen without executing')
129
- .action((options) => {
130
- if (!options.name || !options.project) {
131
- createCmd.help();
132
- return;
133
- }
134
- return createSection(options);
135
- });
136
- const deleteCmd = section
137
- .command('delete [id]')
138
- .description('Delete a section')
139
- .option('--yes', 'Confirm deletion')
140
- .option('--dry-run', 'Preview what would happen without executing')
141
- .action((id, options) => {
142
- if (!id) {
143
- deleteCmd.help();
144
- return;
145
- }
146
- return deleteSection(id, options);
147
- });
148
- const updateCmd = section
149
- .command('update [id]')
150
- .description('Update a section')
151
- .option('--name <name>', 'New section name (required)')
152
- .option('--json', 'Output the updated section as JSON')
153
- .option('--dry-run', 'Preview what would happen without executing')
154
- .action((id, options) => {
155
- if (!id || !options.name) {
156
- updateCmd.help();
157
- return;
158
- }
159
- return updateSection(id, options);
160
- });
161
- const browseCmd = section
162
- .command('browse [id]')
163
- .description('Open section in browser (requires id:xxx)')
164
- .action((id) => {
165
- if (!id) {
166
- browseCmd.help();
167
- return;
168
- }
169
- return browseSection(id);
170
- });
171
- }
172
- //# sourceMappingURL=section.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"section.js","sourceRoot":"","sources":["../../src/commands/section.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { DateFormat, DayOfWeek, TimeFormat } from '@doist/todoist-api-typescript';
2
- import { Command } from 'commander';
3
- export declare function parseTheme(value: string): number;
4
- export declare const TIME_FORMAT_CHOICES: string[];
5
- export declare const DATE_FORMAT_CHOICES: string[];
6
- export declare const DAY_CHOICES: string[];
7
- export declare const THEME_CHOICES: string[];
8
- export declare function parseTimeFormat(value: string): TimeFormat;
9
- export declare function parseDateFormat(value: string): DateFormat;
10
- export declare function parseDay(value: string): DayOfWeek;
11
- export declare function registerSettingsCommand(program: Command): void;
12
- //# sourceMappingURL=settings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/commands/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAEtF,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAA;AAuC3C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhD;AA4LD,eAAO,MAAM,mBAAmB,UAA+B,CAAA;AAC/D,eAAO,MAAM,mBAAmB,UAA+B,CAAA;AAC/D,eAAO,MAAM,WAAW,UAAuB,CAAA;AAC/C,eAAO,MAAM,aAAa,UAA4B,CAAA;AAEtD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAIzD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAIzD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAIjD;AAuED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmE9D"}