@doist/todoist-cli 1.19.0 → 1.21.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 (38) hide show
  1. package/dist/commands/auth.js +1 -1
  2. package/dist/commands/auth.js.map +1 -1
  3. package/dist/commands/completed.d.ts.map +1 -1
  4. package/dist/commands/completed.js +43 -10
  5. package/dist/commands/completed.js.map +1 -1
  6. package/dist/commands/update.d.ts.map +1 -1
  7. package/dist/commands/update.js +16 -9
  8. package/dist/commands/update.js.map +1 -1
  9. package/dist/lib/api/core.d.ts +1 -20
  10. package/dist/lib/api/core.d.ts.map +1 -1
  11. package/dist/lib/api/core.js +13 -36
  12. package/dist/lib/api/core.js.map +1 -1
  13. package/dist/lib/api/filters.d.ts +3 -10
  14. package/dist/lib/api/filters.d.ts.map +1 -1
  15. package/dist/lib/api/filters.js +43 -69
  16. package/dist/lib/api/filters.js.map +1 -1
  17. package/dist/lib/api/notifications.d.ts.map +1 -1
  18. package/dist/lib/api/notifications.js +54 -72
  19. package/dist/lib/api/notifications.js.map +1 -1
  20. package/dist/lib/api/reminders.d.ts +1 -1
  21. package/dist/lib/api/reminders.d.ts.map +1 -1
  22. package/dist/lib/api/reminders.js +45 -61
  23. package/dist/lib/api/reminders.js.map +1 -1
  24. package/dist/lib/api/stats.d.ts.map +1 -1
  25. package/dist/lib/api/stats.js +13 -18
  26. package/dist/lib/api/stats.js.map +1 -1
  27. package/dist/lib/api/user-settings.d.ts.map +1 -1
  28. package/dist/lib/api/user-settings.js +42 -74
  29. package/dist/lib/api/user-settings.js.map +1 -1
  30. package/dist/lib/api/workspaces.d.ts.map +1 -1
  31. package/dist/lib/api/workspaces.js +30 -36
  32. package/dist/lib/api/workspaces.js.map +1 -1
  33. package/dist/lib/collaborators.js +2 -2
  34. package/dist/lib/collaborators.js.map +1 -1
  35. package/dist/lib/output.d.ts.map +1 -1
  36. package/dist/lib/output.js +2 -1
  37. package/dist/lib/output.js.map +1 -1
  38. package/package.json +8 -8
@@ -1,112 +1,94 @@
1
- import { getApiToken } from '../auth.js';
2
- import { executeSyncCommand, generateUuid } from './core.js';
1
+ import { createCommand } from '@doist/todoist-api-typescript';
2
+ import { getApi } from './core.js';
3
3
  function parseNotification(n) {
4
+ // The SDK type uses passthrough() so extra fields are preserved
5
+ const raw = n;
4
6
  let fromUser;
5
- if (n.from_uid) {
6
- const fromUserData = n.from_user;
7
+ if (n.fromUid) {
8
+ const fromUserData = raw.from_user;
7
9
  fromUser = {
8
- id: String(n.from_uid),
10
+ id: String(n.fromUid),
9
11
  name: String(fromUserData?.full_name ?? fromUserData?.name ?? ''),
10
12
  email: String(fromUserData?.email ?? ''),
11
13
  };
12
14
  }
13
15
  let project;
14
- if (n.project_id) {
16
+ if (n.projectId) {
15
17
  project = {
16
- id: String(n.project_id),
17
- name: String(n.project_name ?? ''),
18
+ id: String(n.projectId),
19
+ name: String(raw.project_name ?? ''),
18
20
  };
19
21
  }
20
22
  let task;
21
- if (n.item_id) {
23
+ if (n.itemId) {
22
24
  task = {
23
- id: String(n.item_id),
24
- content: String(n.item_content ?? ''),
25
+ id: String(n.itemId),
26
+ content: String(n.itemContent ?? ''),
25
27
  };
26
28
  }
27
29
  return {
28
30
  id: String(n.id),
29
- type: (n.notification_type ?? n.type),
30
- isUnread: Boolean(n.is_unread),
31
- isDeleted: Boolean(n.is_deleted),
32
- createdAt: String(n.created_at ?? n.created ?? ''),
31
+ type: n.notificationType,
32
+ isUnread: n.isUnread,
33
+ isDeleted: Boolean(raw.is_deleted ?? false),
34
+ createdAt: n.createdAt,
33
35
  fromUser,
34
36
  project,
35
37
  task,
36
- invitationId: n.invitation_id ? String(n.invitation_id) : undefined,
37
- invitationSecret: n.invitation_secret ? String(n.invitation_secret) : undefined,
38
+ invitationId: n.invitationId ? String(n.invitationId) : undefined,
39
+ invitationSecret: raw.invitation_secret ? String(raw.invitation_secret) : undefined,
38
40
  };
39
41
  }
40
42
  export async function fetchNotifications() {
41
- const token = await getApiToken();
42
- const response = await fetch('https://api.todoist.com/api/v1/sync', {
43
- method: 'POST',
44
- headers: {
45
- Authorization: `Bearer ${token}`,
46
- 'Content-Type': 'application/x-www-form-urlencoded',
47
- },
48
- body: new URLSearchParams({
49
- sync_token: '*',
50
- resource_types: '["live_notifications"]',
51
- }),
43
+ const api = await getApi();
44
+ const response = await api.sync({
45
+ resourceTypes: ['live_notifications'],
46
+ syncToken: '*',
52
47
  });
53
- if (!response.ok) {
54
- throw new Error(`Failed to fetch notifications: ${response.status}`);
55
- }
56
- const data = await response.json();
57
- if (data.error) {
58
- throw new Error(`Notifications API error: ${data.error}`);
59
- }
60
- const notifications = (data.live_notifications ?? [])
48
+ const notifications = (response.liveNotifications ?? [])
61
49
  .map(parseNotification)
62
50
  .filter((n) => !n.isDeleted);
63
51
  notifications.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
64
52
  return notifications;
65
53
  }
66
54
  export async function markNotificationRead(id) {
67
- const command = {
68
- type: 'live_notifications_mark_read',
69
- uuid: generateUuid(),
70
- args: { ids: [id] },
71
- };
72
- await executeSyncCommand([command]);
55
+ const api = await getApi();
56
+ await api.sync({
57
+ commands: [createCommand('live_notifications_mark_read', { ids: [id] })],
58
+ });
73
59
  }
74
60
  export async function markNotificationUnread(id) {
75
- const command = {
76
- type: 'live_notifications_mark_unread',
77
- uuid: generateUuid(),
78
- args: { ids: [id] },
79
- };
80
- await executeSyncCommand([command]);
61
+ const api = await getApi();
62
+ await api.sync({
63
+ commands: [createCommand('live_notifications_mark_unread', { ids: [id] })],
64
+ });
81
65
  }
82
66
  export async function markAllNotificationsRead() {
83
- const command = {
84
- type: 'live_notifications_mark_read_all',
85
- uuid: generateUuid(),
86
- args: {},
87
- };
88
- await executeSyncCommand([command]);
67
+ const api = await getApi();
68
+ await api.sync({
69
+ commands: [createCommand('live_notifications_mark_read_all', {})],
70
+ });
89
71
  }
90
72
  export async function acceptInvitation(invitationId, secret) {
91
- const command = {
92
- type: 'accept_invitation',
93
- uuid: generateUuid(),
94
- args: {
95
- invitation_id: Number(invitationId),
96
- invitation_secret: secret,
97
- },
98
- };
99
- await executeSyncCommand([command]);
73
+ const api = await getApi();
74
+ await api.sync({
75
+ commands: [
76
+ createCommand('accept_invitation', {
77
+ invitationId,
78
+ invitationSecret: secret,
79
+ }),
80
+ ],
81
+ });
100
82
  }
101
83
  export async function rejectInvitation(invitationId, secret) {
102
- const command = {
103
- type: 'reject_invitation',
104
- uuid: generateUuid(),
105
- args: {
106
- invitation_id: Number(invitationId),
107
- invitation_secret: secret,
108
- },
109
- };
110
- await executeSyncCommand([command]);
84
+ const api = await getApi();
85
+ await api.sync({
86
+ commands: [
87
+ createCommand('reject_invitation', {
88
+ invitationId,
89
+ invitationSecret: secret,
90
+ }),
91
+ ],
92
+ });
111
93
  }
112
94
  //# sourceMappingURL=notifications.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../src/lib/api/notifications.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../src/lib/api/notifications.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export interface ReminderDue {
8
8
  export interface Reminder {
9
9
  id: string;
10
10
  itemId: string;
11
- type: 'absolute';
11
+ type: 'absolute' | 'relative' | 'location';
12
12
  due?: ReminderDue;
13
13
  minuteOffset?: number;
14
14
  isDeleted: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"reminders.d.ts","sourceRoot":"","sources":["../../../src/lib/api/reminders.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,UAAU,CAAA;IAChB,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;CACrB;AAaD,wBAAsB,cAAc,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAwB1D;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAG1E;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBxE;AAED,MAAM,WAAW,kBAAkB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAcxF;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ9D"}
1
+ {"version":3,"file":"reminders.d.ts","sourceRoot":"","sources":["../../../src/lib/api/reminders.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;IAC1C,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;CACrB;AAcD,wBAAsB,cAAc,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAO1D;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAG1E;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBxE;AAED,MAAM,WAAW,kBAAkB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxF;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9D"}
@@ -1,79 +1,63 @@
1
- import { getApiToken } from '../auth.js';
2
- import { executeSyncCommand, generateUuid } from './core.js';
3
- function parseReminder(r) {
1
+ import { createCommand } from '@doist/todoist-api-typescript';
2
+ import { getApi, pickDefined } from './core.js';
3
+ function toReminder(r) {
4
4
  return {
5
- id: String(r.id),
6
- itemId: String(r.item_id),
7
- type: 'absolute',
8
- due: r.due,
9
- minuteOffset: r.minute_offset,
10
- isDeleted: Boolean(r.is_deleted),
5
+ id: r.id,
6
+ itemId: r.itemId,
7
+ type: r.type,
8
+ due: 'due' in r && r.due ? r.due : undefined,
9
+ minuteOffset: 'minuteOffset' in r ? r.minuteOffset : undefined,
10
+ isDeleted: r.isDeleted,
11
11
  };
12
12
  }
13
13
  export async function fetchReminders() {
14
- const token = await getApiToken();
15
- const response = await fetch('https://api.todoist.com/api/v1/sync', {
16
- method: 'POST',
17
- headers: {
18
- Authorization: `Bearer ${token}`,
19
- 'Content-Type': 'application/x-www-form-urlencoded',
20
- },
21
- body: new URLSearchParams({
22
- sync_token: '*',
23
- resource_types: '["reminders"]',
24
- }),
14
+ const api = await getApi();
15
+ const response = await api.sync({
16
+ resourceTypes: ['reminders'],
17
+ syncToken: '*',
25
18
  });
26
- if (!response.ok) {
27
- throw new Error(`Failed to fetch reminders: ${response.status}`);
28
- }
29
- const data = await response.json();
30
- if (data.error) {
31
- throw new Error(`Reminders API error: ${data.error}`);
32
- }
33
- return (data.reminders ?? []).map(parseReminder).filter((r) => !r.isDeleted);
19
+ return (response.reminders ?? []).map(toReminder).filter((r) => !r.isDeleted);
34
20
  }
35
21
  export async function getTaskReminders(taskId) {
36
22
  const reminders = await fetchReminders();
37
23
  return reminders.filter((r) => r.itemId === taskId);
38
24
  }
39
25
  export async function addReminder(args) {
40
- const tempId = generateUuid();
41
- const command = {
42
- type: 'reminder_add',
43
- uuid: generateUuid(),
44
- temp_id: tempId,
45
- args: {
46
- item_id: args.itemId,
47
- type: 'absolute',
48
- ...(args.minuteOffset !== undefined && {
49
- minute_offset: args.minuteOffset,
50
- }),
51
- ...(args.due && { due: args.due }),
52
- },
53
- };
54
- const result = await executeSyncCommand([command]);
55
- return result.temp_id_mapping?.[tempId] ?? tempId;
26
+ const api = await getApi();
27
+ const tempId = crypto.randomUUID();
28
+ const type = args.minuteOffset !== undefined ? 'relative' : 'absolute';
29
+ const response = await api.sync({
30
+ commands: [
31
+ createCommand('reminder_add', {
32
+ type,
33
+ itemId: args.itemId,
34
+ ...pickDefined({
35
+ minuteOffset: args.minuteOffset,
36
+ due: args.due,
37
+ }),
38
+ }, tempId),
39
+ ],
40
+ });
41
+ return response.tempIdMapping?.[tempId] ?? tempId;
56
42
  }
57
43
  export async function updateReminder(id, args) {
58
- const command = {
59
- type: 'reminder_update',
60
- uuid: generateUuid(),
61
- args: {
62
- id,
63
- ...(args.minuteOffset !== undefined && {
64
- minute_offset: args.minuteOffset,
44
+ const api = await getApi();
45
+ await api.sync({
46
+ commands: [
47
+ createCommand('reminder_update', {
48
+ id,
49
+ ...pickDefined({
50
+ minuteOffset: args.minuteOffset,
51
+ due: args.due,
52
+ }),
65
53
  }),
66
- ...(args.due && { due: args.due }),
67
- },
68
- };
69
- await executeSyncCommand([command]);
54
+ ],
55
+ });
70
56
  }
71
57
  export async function deleteReminder(id) {
72
- const command = {
73
- type: 'reminder_delete',
74
- uuid: generateUuid(),
75
- args: { id },
76
- };
77
- await executeSyncCommand([command]);
58
+ const api = await getApi();
59
+ await api.sync({
60
+ commands: [createCommand('reminder_delete', { id })],
61
+ });
78
62
  }
79
63
  //# sourceMappingURL=reminders.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reminders.js","sourceRoot":"","sources":["../../../src/lib/api/reminders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reminders.js","sourceRoot":"","sources":["../../../src/lib/api/reminders.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/lib/api/stats.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,MAAM;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC1D,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtE,KAAK,EAAE;QACH,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,EAAE,MAAM,CAAA;QAClB,kBAAkB,EAAE,MAAM,CAAA;QAC1B,mBAAmB,EAAE,MAAM,CAAA;QAC3B,cAAc,EAAE,MAAM,CAAA;QACtB,eAAe,EAAE,MAAM,CAAA;QACvB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,OAAO,CAAA;QACtB,UAAU,EAAE,MAAM,EAAE,CAAA;KACvB,CAAA;CACJ;AAcD,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CA+CzE;AAED,MAAM,WAAW,eAAe;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBtE"}
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/lib/api/stats.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC1D,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtE,KAAK,EAAE;QACH,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,EAAE,MAAM,CAAA;QAClB,kBAAkB,EAAE,MAAM,CAAA;QAC1B,mBAAmB,EAAE,MAAM,CAAA;QAC3B,cAAc,EAAE,MAAM,CAAA;QACtB,eAAe,EAAE,MAAM,CAAA;QACvB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,OAAO,CAAA;QACtB,UAAU,EAAE,MAAM,EAAE,CAAA;KACvB,CAAA;CACJ;AAcD,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CA+CzE;AAED,MAAM,WAAW,eAAe;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBtE"}
@@ -1,5 +1,6 @@
1
+ import { createCommand } from '@doist/todoist-api-typescript';
1
2
  import { getApiToken } from '../auth.js';
2
- import { executeSyncCommand, generateUuid } from './core.js';
3
+ import { getApi, pickDefined } from './core.js';
3
4
  const defaultStreak = { count: 0, start: '', end: '' };
4
5
  function parseStreak(s) {
5
6
  if (!s || typeof s !== 'object')
@@ -55,25 +56,19 @@ export async function fetchProductivityStats() {
55
56
  };
56
57
  }
57
58
  export async function updateGoals(args) {
58
- const goalsArgs = {};
59
- if (args.dailyGoal !== undefined)
60
- goalsArgs.daily_goal = args.dailyGoal;
61
- if (args.weeklyGoal !== undefined)
62
- goalsArgs.weekly_goal = args.weeklyGoal;
63
- if (args.vacationMode !== undefined)
64
- goalsArgs.vacation_mode = args.vacationMode ? 1 : 0;
65
- if (args.karmaDisabled !== undefined)
66
- goalsArgs.karma_disabled = args.karmaDisabled ? 1 : 0;
67
- if (args.ignoreDays !== undefined)
68
- goalsArgs.ignore_days = args.ignoreDays;
59
+ const goalsArgs = pickDefined({
60
+ dailyGoal: args.dailyGoal,
61
+ weeklyGoal: args.weeklyGoal,
62
+ vacationMode: args.vacationMode !== undefined ? (args.vacationMode ? 1 : 0) : undefined,
63
+ karmaDisabled: args.karmaDisabled !== undefined ? (args.karmaDisabled ? 1 : 0) : undefined,
64
+ ignoreDays: args.ignoreDays,
65
+ });
69
66
  if (Object.keys(goalsArgs).length === 0) {
70
67
  throw new Error('No goals to update');
71
68
  }
72
- const command = {
73
- type: 'update_goals',
74
- uuid: generateUuid(),
75
- args: goalsArgs,
76
- };
77
- await executeSyncCommand([command]);
69
+ const api = await getApi();
70
+ await api.sync({
71
+ commands: [createCommand('update_goals', goalsArgs)],
72
+ });
78
73
  }
79
74
  //# sourceMappingURL=stats.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/lib/api/stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/lib/api/stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AA4B/C,MAAM,aAAa,GAAW,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAA;AAE9D,SAAS,WAAW,CAAC,CAAU;IAC3B,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,aAAa,CAAA;IACrD,MAAM,GAAG,GAAG,CAA4B,CAAA;IACxC,OAAO;QACH,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;KAC7B,CAAA;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB;IACxC,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,CAAA;IACjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,sDAAsD,EAAE;QACjF,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,KAAK,EAAE;SACnC;KACJ,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAClC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;IAC9B,OAAO;QACH,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC;QAC9C,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC;QACpD,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QACjD,SAAS,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAA4C,EAAE,EAAE,CAAC,CAAC;YACtF,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,cAAc,EAAE,CAAC,CAAC,eAAe;SACpC,CAAC,CAAC;QACH,SAAS,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAClC,CAAC,CAAwD,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,cAAc,EAAE,CAAC,CAAC,eAAe;SACpC,CAAC,CACL;QACD,KAAK,EAAE;YACH,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;YACxC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;YAC1C,kBAAkB,EAAE,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAC3D,mBAAmB,EAAE,WAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC;YAC7D,cAAc,EAAE,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC;YACnD,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACrD,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;YAC1C,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;YAC5C,UAAU,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAa;SACpD;KACJ,CAAA;AACL,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAqB;IACnD,MAAM,SAAS,GAAG,WAAW,CAAC;QAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,YAAY,EACR,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,CAAC,SAAS;QACxF,aAAa,EACT,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,CAAC,SAAS;QAC1F,UAAU,EAAE,IAAI,CAAC,UAAU;KAC9B,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAA;IAC1B,MAAM,GAAG,CAAC,IAAI,CAAC;QACX,QAAQ,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;KACvD,CAAC,CAAA;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"user-settings.d.ts","sourceRoot":"","sources":["../../../src/lib/api/user-settings.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;IACtB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,oBAAoB,EAAE,OAAO,CAAA;CAChC;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,YAAY,CAAC,CAyC/D;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2CpF"}
1
+ {"version":3,"file":"user-settings.d.ts","sourceRoot":"","sources":["../../../src/lib/api/user-settings.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;IACtB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,oBAAoB,EAAE,OAAO,CAAA;CAChC;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,YAAY,CAAC,CAyB/D;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCpF"}
@@ -1,90 +1,58 @@
1
- import { getApiToken } from '../auth.js';
2
- import { executeSyncCommand, generateUuid } from './core.js';
1
+ import { createCommand } from '@doist/todoist-api-typescript';
2
+ import { getApi, pickDefined } from './core.js';
3
3
  export async function fetchUserSettings() {
4
- const token = await getApiToken();
5
- const response = await fetch('https://api.todoist.com/api/v1/sync', {
6
- method: 'POST',
7
- headers: {
8
- Authorization: `Bearer ${token}`,
9
- 'Content-Type': 'application/x-www-form-urlencoded',
10
- },
11
- body: new URLSearchParams({
12
- sync_token: '*',
13
- resource_types: '["user","user_settings"]',
14
- }),
4
+ const api = await getApi();
5
+ const response = await api.sync({
6
+ resourceTypes: ['user', 'user_settings'],
7
+ syncToken: '*',
15
8
  });
16
- if (!response.ok) {
17
- throw new Error(`Failed to fetch user settings: ${response.status}`);
18
- }
19
- const data = await response.json();
20
- if (data.error) {
21
- throw new Error(`User settings API error: ${data.error}`);
22
- }
23
- const user = data.user ?? {};
24
- const settings = data.user_settings ?? {};
9
+ const user = response.user;
10
+ const settings = response.userSettings;
25
11
  return {
26
- timezone: String(user.timezone ?? 'UTC'),
27
- timeFormat: Number(user.time_format ?? 0),
28
- dateFormat: Number(user.date_format ?? 0),
29
- startDay: Number(user.start_day ?? 1),
30
- theme: Number(user.theme_id ?? user.theme ?? 0),
31
- autoReminder: Number(user.auto_reminder ?? 0),
32
- nextWeek: Number(user.next_week ?? 1),
33
- startPage: String(user.start_page ?? 'today'),
34
- reminderPush: Boolean(settings.reminder_push ?? true),
35
- reminderDesktop: Boolean(settings.reminder_desktop ?? true),
36
- reminderEmail: Boolean(settings.reminder_email ?? false),
37
- completedSoundDesktop: Boolean(settings.completed_sound_desktop ?? true),
38
- completedSoundMobile: Boolean(settings.completed_sound_mobile ?? true),
12
+ timezone: user?.tzInfo?.timezone ?? 'UTC',
13
+ timeFormat: user?.timeFormat ?? 0,
14
+ dateFormat: user?.dateFormat ?? 0,
15
+ startDay: user?.startDay ?? 1,
16
+ theme: Number(user?.themeId ?? 0),
17
+ autoReminder: user?.autoReminder ?? 0,
18
+ nextWeek: user?.nextWeek ?? 1,
19
+ startPage: user?.startPage ?? 'today',
20
+ reminderPush: settings?.reminderPush ?? true,
21
+ reminderDesktop: settings?.reminderDesktop ?? true,
22
+ reminderEmail: settings?.reminderEmail ?? false,
23
+ completedSoundDesktop: settings?.completedSoundDesktop ?? true,
24
+ completedSoundMobile: settings?.completedSoundMobile ?? true,
39
25
  };
40
26
  }
41
27
  export async function updateUserSettings(args) {
42
28
  const commands = [];
43
- const userArgs = {};
44
- if (args.timezone !== undefined)
45
- userArgs.timezone = args.timezone;
46
- if (args.timeFormat !== undefined)
47
- userArgs.time_format = args.timeFormat;
48
- if (args.dateFormat !== undefined)
49
- userArgs.date_format = args.dateFormat;
50
- if (args.startDay !== undefined)
51
- userArgs.start_day = args.startDay;
52
- if (args.theme !== undefined)
53
- userArgs.theme_id = String(args.theme);
54
- if (args.autoReminder !== undefined)
55
- userArgs.auto_reminder = args.autoReminder;
56
- if (args.nextWeek !== undefined)
57
- userArgs.next_week = args.nextWeek;
58
- if (args.startPage !== undefined)
59
- userArgs.start_page = args.startPage;
29
+ const userArgs = pickDefined({
30
+ timezone: args.timezone,
31
+ time_format: args.timeFormat,
32
+ date_format: args.dateFormat,
33
+ start_day: args.startDay,
34
+ theme_id: args.theme !== undefined ? String(args.theme) : undefined,
35
+ auto_reminder: args.autoReminder,
36
+ next_week: args.nextWeek,
37
+ start_page: args.startPage,
38
+ });
60
39
  if (Object.keys(userArgs).length > 0) {
61
- commands.push({
62
- type: 'user_update',
63
- uuid: generateUuid(),
64
- args: userArgs,
65
- });
40
+ commands.push(createCommand('user_update', userArgs));
66
41
  }
67
- const settingsArgs = {};
68
- if (args.reminderPush !== undefined)
69
- settingsArgs.reminder_push = args.reminderPush;
70
- if (args.reminderDesktop !== undefined)
71
- settingsArgs.reminder_desktop = args.reminderDesktop;
72
- if (args.reminderEmail !== undefined)
73
- settingsArgs.reminder_email = args.reminderEmail;
74
- if (args.completedSoundDesktop !== undefined)
75
- settingsArgs.completed_sound_desktop = args.completedSoundDesktop;
76
- if (args.completedSoundMobile !== undefined)
77
- settingsArgs.completed_sound_mobile = args.completedSoundMobile;
42
+ const settingsArgs = pickDefined({
43
+ reminderPush: args.reminderPush,
44
+ reminderDesktop: args.reminderDesktop,
45
+ reminderEmail: args.reminderEmail,
46
+ completedSoundDesktop: args.completedSoundDesktop,
47
+ completedSoundMobile: args.completedSoundMobile,
48
+ });
78
49
  if (Object.keys(settingsArgs).length > 0) {
79
- commands.push({
80
- type: 'user_settings_update',
81
- uuid: generateUuid(),
82
- args: settingsArgs,
83
- });
50
+ commands.push(createCommand('user_settings_update', settingsArgs));
84
51
  }
85
52
  if (commands.length === 0) {
86
53
  throw new Error('No settings to update');
87
54
  }
88
- await executeSyncCommand(commands);
55
+ const api = await getApi();
56
+ await api.sync({ commands });
89
57
  }
90
58
  //# sourceMappingURL=user-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-settings.js","sourceRoot":"","sources":["../../../src/lib/api/user-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-settings.js","sourceRoot":"","sources":["../../../src/lib/api/user-settings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../../src/lib/api/workspaces.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,iBAAiB,EAAE;QACf,UAAU,EAAE,MAAM,CAAA;QAClB,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;KACrB,CAAA;CACJ;AAED,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACtB;AA6DD,wBAAsB,eAAe,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAG5D;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAOxE;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
1
+ {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../../src/lib/api/workspaces.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,iBAAiB,EAAE;QACf,UAAU,EAAE,MAAM,CAAA;QAClB,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;KACrB,CAAA;CACJ;AAED,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACtB;AAsDD,wBAAsB,eAAe,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAG5D;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAOxE;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}