@doist/todoist-cli 1.29.2 → 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 (248) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +11 -4
  3. package/scripts/check-skill-sync.js +40 -0
  4. package/scripts/sync-skill.js +28 -0
  5. package/dist/__mocks__/chalk.d.ts +0 -3
  6. package/dist/__mocks__/chalk.d.ts.map +0 -1
  7. package/dist/__mocks__/chalk.js +0 -8
  8. package/dist/__mocks__/chalk.js.map +0 -1
  9. package/dist/commands/activity.d.ts +0 -3
  10. package/dist/commands/activity.d.ts.map +0 -1
  11. package/dist/commands/activity.js +0 -267
  12. package/dist/commands/activity.js.map +0 -1
  13. package/dist/commands/add.d.ts +0 -3
  14. package/dist/commands/add.d.ts.map +0 -1
  15. package/dist/commands/add.js +0 -36
  16. package/dist/commands/add.js.map +0 -1
  17. package/dist/commands/attachment.d.ts +0 -3
  18. package/dist/commands/attachment.d.ts.map +0 -1
  19. package/dist/commands/attachment.js +0 -156
  20. package/dist/commands/attachment.js.map +0 -1
  21. package/dist/commands/auth.d.ts +0 -3
  22. package/dist/commands/auth.d.ts.map +0 -1
  23. package/dist/commands/auth.js +0 -124
  24. package/dist/commands/auth.js.map +0 -1
  25. package/dist/commands/changelog.d.ts +0 -8
  26. package/dist/commands/changelog.d.ts.map +0 -1
  27. package/dist/commands/changelog.js +0 -92
  28. package/dist/commands/changelog.js.map +0 -1
  29. package/dist/commands/comment.d.ts +0 -3
  30. package/dist/commands/comment.d.ts.map +0 -1
  31. package/dist/commands/comment.js +0 -301
  32. package/dist/commands/comment.js.map +0 -1
  33. package/dist/commands/completed.d.ts +0 -3
  34. package/dist/commands/completed.d.ts.map +0 -1
  35. package/dist/commands/completed.js +0 -107
  36. package/dist/commands/completed.js.map +0 -1
  37. package/dist/commands/completion.d.ts +0 -3
  38. package/dist/commands/completion.d.ts.map +0 -1
  39. package/dist/commands/completion.js +0 -107
  40. package/dist/commands/completion.js.map +0 -1
  41. package/dist/commands/filter.d.ts +0 -5
  42. package/dist/commands/filter.d.ts.map +0 -1
  43. package/dist/commands/filter.js +0 -287
  44. package/dist/commands/filter.js.map +0 -1
  45. package/dist/commands/inbox.d.ts +0 -3
  46. package/dist/commands/inbox.d.ts.map +0 -1
  47. package/dist/commands/inbox.js +0 -25
  48. package/dist/commands/inbox.js.map +0 -1
  49. package/dist/commands/label.d.ts +0 -5
  50. package/dist/commands/label.d.ts.map +0 -1
  51. package/dist/commands/label.js +0 -328
  52. package/dist/commands/label.js.map +0 -1
  53. package/dist/commands/notification.d.ts +0 -3
  54. package/dist/commands/notification.d.ts.map +0 -1
  55. package/dist/commands/notification.js +0 -274
  56. package/dist/commands/notification.js.map +0 -1
  57. package/dist/commands/project.d.ts +0 -5
  58. package/dist/commands/project.d.ts.map +0 -1
  59. package/dist/commands/project.js +0 -528
  60. package/dist/commands/project.js.map +0 -1
  61. package/dist/commands/reminder.d.ts +0 -3
  62. package/dist/commands/reminder.d.ts.map +0 -1
  63. package/dist/commands/reminder.js +0 -271
  64. package/dist/commands/reminder.js.map +0 -1
  65. package/dist/commands/section.d.ts +0 -3
  66. package/dist/commands/section.d.ts.map +0 -1
  67. package/dist/commands/section.js +0 -172
  68. package/dist/commands/section.js.map +0 -1
  69. package/dist/commands/settings.d.ts +0 -12
  70. package/dist/commands/settings.d.ts.map +0 -1
  71. package/dist/commands/settings.js +0 -312
  72. package/dist/commands/settings.js.map +0 -1
  73. package/dist/commands/skill.d.ts +0 -3
  74. package/dist/commands/skill.d.ts.map +0 -1
  75. package/dist/commands/skill.js +0 -127
  76. package/dist/commands/skill.js.map +0 -1
  77. package/dist/commands/stats.d.ts +0 -3
  78. package/dist/commands/stats.d.ts.map +0 -1
  79. package/dist/commands/stats.js +0 -151
  80. package/dist/commands/stats.js.map +0 -1
  81. package/dist/commands/task.d.ts +0 -5
  82. package/dist/commands/task.d.ts.map +0 -1
  83. package/dist/commands/task.js +0 -559
  84. package/dist/commands/task.js.map +0 -1
  85. package/dist/commands/today.d.ts +0 -18
  86. package/dist/commands/today.d.ts.map +0 -1
  87. package/dist/commands/today.js +0 -108
  88. package/dist/commands/today.js.map +0 -1
  89. package/dist/commands/upcoming.d.ts +0 -17
  90. package/dist/commands/upcoming.d.ts.map +0 -1
  91. package/dist/commands/upcoming.js +0 -129
  92. package/dist/commands/upcoming.js.map +0 -1
  93. package/dist/commands/update.d.ts +0 -6
  94. package/dist/commands/update.d.ts.map +0 -1
  95. package/dist/commands/update.js +0 -90
  96. package/dist/commands/update.js.map +0 -1
  97. package/dist/commands/view.d.ts +0 -3
  98. package/dist/commands/view.d.ts.map +0 -1
  99. package/dist/commands/view.js +0 -79
  100. package/dist/commands/view.js.map +0 -1
  101. package/dist/commands/workspace.d.ts +0 -3
  102. package/dist/commands/workspace.d.ts.map +0 -1
  103. package/dist/commands/workspace.js +0 -309
  104. package/dist/commands/workspace.js.map +0 -1
  105. package/dist/index.d.ts +0 -3
  106. package/dist/index.d.ts.map +0 -1
  107. package/dist/index.js +0 -176
  108. package/dist/index.js.map +0 -1
  109. package/dist/lib/api/core.d.ts +0 -13
  110. package/dist/lib/api/core.d.ts.map +0 -1
  111. package/dist/lib/api/core.js +0 -170
  112. package/dist/lib/api/core.js.map +0 -1
  113. package/dist/lib/api/filters.d.ts +0 -19
  114. package/dist/lib/api/filters.d.ts.map +0 -1
  115. package/dist/lib/api/filters.js +0 -60
  116. package/dist/lib/api/filters.js.map +0 -1
  117. package/dist/lib/api/notifications.d.ts +0 -33
  118. package/dist/lib/api/notifications.d.ts.map +0 -1
  119. package/dist/lib/api/notifications.js +0 -94
  120. package/dist/lib/api/notifications.js.map +0 -1
  121. package/dist/lib/api/reminders.d.ts +0 -30
  122. package/dist/lib/api/reminders.d.ts.map +0 -1
  123. package/dist/lib/api/reminders.js +0 -65
  124. package/dist/lib/api/reminders.js.map +0 -1
  125. package/dist/lib/api/stats.d.ts +0 -41
  126. package/dist/lib/api/stats.d.ts.map +0 -1
  127. package/dist/lib/api/stats.js +0 -74
  128. package/dist/lib/api/stats.js.map +0 -1
  129. package/dist/lib/api/uploads.d.ts +0 -10
  130. package/dist/lib/api/uploads.d.ts.map +0 -1
  131. package/dist/lib/api/uploads.js +0 -31
  132. package/dist/lib/api/uploads.js.map +0 -1
  133. package/dist/lib/api/user-settings.d.ts +0 -34
  134. package/dist/lib/api/user-settings.d.ts.map +0 -1
  135. package/dist/lib/api/user-settings.js +0 -58
  136. package/dist/lib/api/user-settings.js.map +0 -1
  137. package/dist/lib/api/workspaces.d.ts +0 -23
  138. package/dist/lib/api/workspaces.d.ts.map +0 -1
  139. package/dist/lib/api/workspaces.js +0 -61
  140. package/dist/lib/api/workspaces.js.map +0 -1
  141. package/dist/lib/auth.d.ts +0 -14
  142. package/dist/lib/auth.d.ts.map +0 -1
  143. package/dist/lib/auth.js +0 -182
  144. package/dist/lib/auth.js.map +0 -1
  145. package/dist/lib/browser.d.ts +0 -2
  146. package/dist/lib/browser.d.ts.map +0 -1
  147. package/dist/lib/browser.js +0 -6
  148. package/dist/lib/browser.js.map +0 -1
  149. package/dist/lib/collaborators.d.ts +0 -29
  150. package/dist/lib/collaborators.d.ts.map +0 -1
  151. package/dist/lib/collaborators.js +0 -184
  152. package/dist/lib/collaborators.js.map +0 -1
  153. package/dist/lib/completion.d.ts +0 -41
  154. package/dist/lib/completion.d.ts.map +0 -1
  155. package/dist/lib/completion.js +0 -191
  156. package/dist/lib/completion.js.map +0 -1
  157. package/dist/lib/dates.d.ts +0 -16
  158. package/dist/lib/dates.d.ts.map +0 -1
  159. package/dist/lib/dates.js +0 -45
  160. package/dist/lib/dates.js.map +0 -1
  161. package/dist/lib/duration.d.ts +0 -14
  162. package/dist/lib/duration.d.ts.map +0 -1
  163. package/dist/lib/duration.js +0 -58
  164. package/dist/lib/duration.js.map +0 -1
  165. package/dist/lib/logger.d.ts +0 -42
  166. package/dist/lib/logger.d.ts.map +0 -1
  167. package/dist/lib/logger.js +0 -227
  168. package/dist/lib/logger.js.map +0 -1
  169. package/dist/lib/markdown.d.ts +0 -3
  170. package/dist/lib/markdown.d.ts.map +0 -1
  171. package/dist/lib/markdown.js +0 -22
  172. package/dist/lib/markdown.js.map +0 -1
  173. package/dist/lib/oauth-server.d.ts +0 -6
  174. package/dist/lib/oauth-server.d.ts.map +0 -1
  175. package/dist/lib/oauth-server.js +0 -773
  176. package/dist/lib/oauth-server.js.map +0 -1
  177. package/dist/lib/oauth.d.ts +0 -3
  178. package/dist/lib/oauth.d.ts.map +0 -1
  179. package/dist/lib/oauth.js +0 -38
  180. package/dist/lib/oauth.js.map +0 -1
  181. package/dist/lib/options.d.ts +0 -16
  182. package/dist/lib/options.d.ts.map +0 -1
  183. package/dist/lib/options.js +0 -2
  184. package/dist/lib/options.js.map +0 -1
  185. package/dist/lib/output.d.ts +0 -39
  186. package/dist/lib/output.d.ts.map +0 -1
  187. package/dist/lib/output.js +0 -311
  188. package/dist/lib/output.js.map +0 -1
  189. package/dist/lib/pagination.d.ts +0 -23
  190. package/dist/lib/pagination.d.ts.map +0 -1
  191. package/dist/lib/pagination.js +0 -26
  192. package/dist/lib/pagination.js.map +0 -1
  193. package/dist/lib/pkce.d.ts +0 -4
  194. package/dist/lib/pkce.d.ts.map +0 -1
  195. package/dist/lib/pkce.js +0 -19
  196. package/dist/lib/pkce.js.map +0 -1
  197. package/dist/lib/progress.d.ts +0 -29
  198. package/dist/lib/progress.d.ts.map +0 -1
  199. package/dist/lib/progress.js +0 -101
  200. package/dist/lib/progress.js.map +0 -1
  201. package/dist/lib/refs.d.ts +0 -52
  202. package/dist/lib/refs.d.ts.map +0 -1
  203. package/dist/lib/refs.js +0 -225
  204. package/dist/lib/refs.js.map +0 -1
  205. package/dist/lib/secure-store.d.ts +0 -11
  206. package/dist/lib/secure-store.d.ts.map +0 -1
  207. package/dist/lib/secure-store.js +0 -57
  208. package/dist/lib/secure-store.js.map +0 -1
  209. package/dist/lib/skills/content.d.ts +0 -4
  210. package/dist/lib/skills/content.d.ts.map +0 -1
  211. package/dist/lib/skills/content.js +0 -415
  212. package/dist/lib/skills/content.js.map +0 -1
  213. package/dist/lib/skills/create-installer.d.ts +0 -9
  214. package/dist/lib/skills/create-installer.d.ts.map +0 -1
  215. package/dist/lib/skills/create-installer.js +0 -77
  216. package/dist/lib/skills/create-installer.js.map +0 -1
  217. package/dist/lib/skills/index.d.ts +0 -6
  218. package/dist/lib/skills/index.d.ts.map +0 -1
  219. package/dist/lib/skills/index.js +0 -40
  220. package/dist/lib/skills/index.js.map +0 -1
  221. package/dist/lib/skills/types.d.ts +0 -11
  222. package/dist/lib/skills/types.d.ts.map +0 -1
  223. package/dist/lib/skills/types.js +0 -2
  224. package/dist/lib/skills/types.js.map +0 -1
  225. package/dist/lib/skills/update-installed.d.ts +0 -7
  226. package/dist/lib/skills/update-installed.d.ts.map +0 -1
  227. package/dist/lib/skills/update-installed.js +0 -23
  228. package/dist/lib/skills/update-installed.js.map +0 -1
  229. package/dist/lib/spinner.d.ts +0 -23
  230. package/dist/lib/spinner.d.ts.map +0 -1
  231. package/dist/lib/spinner.js +0 -138
  232. package/dist/lib/spinner.js.map +0 -1
  233. package/dist/lib/stdin.d.ts +0 -2
  234. package/dist/lib/stdin.d.ts.map +0 -1
  235. package/dist/lib/stdin.js +0 -12
  236. package/dist/lib/stdin.js.map +0 -1
  237. package/dist/lib/task-list.d.ts +0 -31
  238. package/dist/lib/task-list.d.ts.map +0 -1
  239. package/dist/lib/task-list.js +0 -271
  240. package/dist/lib/task-list.js.map +0 -1
  241. package/dist/lib/urls.d.ts +0 -8
  242. package/dist/lib/urls.d.ts.map +0 -1
  243. package/dist/lib/urls.js +0 -26
  244. package/dist/lib/urls.js.map +0 -1
  245. package/dist/postinstall.d.ts +0 -2
  246. package/dist/postinstall.d.ts.map +0 -1
  247. package/dist/postinstall.js +0 -3
  248. 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"}