@doist/todoist-api-typescript 5.8.0 → 6.0.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 (88) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/authentication.js +158 -0
  3. package/dist/cjs/consts/endpoints.js +74 -0
  4. package/dist/{index.js → cjs/index.js} +1 -1
  5. package/dist/cjs/package.json +1 -0
  6. package/dist/cjs/rest-client.js +124 -0
  7. package/dist/{testUtils → cjs/test-utils}/asserts.js +1 -1
  8. package/dist/{testUtils → cjs/test-utils}/mocks.js +8 -4
  9. package/dist/cjs/test-utils/msw-setup.js +27 -0
  10. package/dist/{testUtils/testDefaults.js → cjs/test-utils/test-defaults.js} +41 -52
  11. package/dist/cjs/todoist-api.js +1235 -0
  12. package/dist/{types → cjs/types}/entities.js +78 -31
  13. package/dist/cjs/types/errors.js +22 -0
  14. package/dist/cjs/types/http.js +22 -0
  15. package/dist/cjs/utils/case-conversion.js +69 -0
  16. package/dist/{utils → cjs/utils}/colors.js +3 -3
  17. package/dist/cjs/utils/fetch-with-retry.js +150 -0
  18. package/dist/{utils → cjs/utils}/index.js +4 -4
  19. package/dist/cjs/utils/multipart-upload.js +126 -0
  20. package/dist/{utils → cjs/utils}/processing-helpers.js +3 -3
  21. package/dist/{utils → cjs/utils}/sanitization.js +17 -28
  22. package/dist/{utils/urlHelpers.js → cjs/utils/url-helpers.js} +15 -15
  23. package/dist/{utils → cjs/utils}/validators.js +28 -1
  24. package/dist/esm/authentication.js +151 -0
  25. package/dist/esm/consts/endpoints.js +65 -0
  26. package/dist/esm/index.js +4 -0
  27. package/dist/esm/rest-client.js +119 -0
  28. package/dist/esm/test-utils/asserts.js +8 -0
  29. package/dist/esm/test-utils/mocks.js +10 -0
  30. package/dist/esm/test-utils/msw-setup.js +22 -0
  31. package/dist/esm/test-utils/test-defaults.js +198 -0
  32. package/dist/esm/todoist-api.js +1231 -0
  33. package/dist/esm/types/entities.js +366 -0
  34. package/dist/esm/types/errors.js +18 -0
  35. package/dist/esm/types/http.js +18 -0
  36. package/dist/esm/types/index.js +3 -0
  37. package/dist/esm/types/requests.js +1 -0
  38. package/dist/esm/types/sync.js +1 -0
  39. package/dist/esm/utils/activity-helpers.js +36 -0
  40. package/dist/esm/utils/case-conversion.js +61 -0
  41. package/dist/esm/utils/colors.js +215 -0
  42. package/dist/esm/utils/fetch-with-retry.js +147 -0
  43. package/dist/esm/utils/index.js +3 -0
  44. package/dist/esm/utils/multipart-upload.js +120 -0
  45. package/dist/esm/utils/processing-helpers.js +12 -0
  46. package/dist/esm/utils/sanitization.js +112 -0
  47. package/dist/esm/utils/url-helpers.js +68 -0
  48. package/dist/esm/utils/validators.js +97 -0
  49. package/dist/{authentication.d.ts → types/authentication.d.ts} +6 -1
  50. package/dist/{consts → types/consts}/endpoints.d.ts +11 -0
  51. package/dist/types/index.d.ts +4 -3
  52. package/dist/types/rest-client.d.ts +15 -0
  53. package/dist/types/test-utils/msw-setup.d.ts +3 -0
  54. package/dist/{TodoistApi.d.ts → types/todoist-api.d.ts} +91 -2
  55. package/dist/types/{entities.d.ts → types/entities.d.ts} +119 -0
  56. package/dist/types/types/http.d.ts +68 -0
  57. package/dist/types/types/index.d.ts +3 -0
  58. package/dist/types/{requests.d.ts → types/requests.d.ts} +137 -0
  59. package/dist/types/utils/case-conversion.d.ts +12 -0
  60. package/dist/types/utils/fetch-with-retry.d.ts +11 -0
  61. package/dist/types/utils/index.d.ts +3 -0
  62. package/dist/types/utils/multipart-upload.d.ts +50 -0
  63. package/dist/{utils → types/utils}/validators.d.ts +7 -1
  64. package/package.json +24 -8
  65. package/dist/TodoistApi.js +0 -1209
  66. package/dist/authentication.js +0 -199
  67. package/dist/consts/endpoints.js +0 -50
  68. package/dist/index.d.ts +0 -4
  69. package/dist/restClient.d.ts +0 -5
  70. package/dist/restClient.js +0 -170
  71. package/dist/types/errors.js +0 -39
  72. package/dist/types/http.d.ts +0 -1
  73. package/dist/types/http.js +0 -2
  74. package/dist/utils/index.d.ts +0 -3
  75. /package/dist/{types → cjs/types}/index.js +0 -0
  76. /package/dist/{types → cjs/types}/requests.js +0 -0
  77. /package/dist/{types → cjs/types}/sync.js +0 -0
  78. /package/dist/{utils → cjs/utils}/activity-helpers.js +0 -0
  79. /package/dist/{testUtils → types/test-utils}/asserts.d.ts +0 -0
  80. /package/dist/{testUtils → types/test-utils}/mocks.d.ts +0 -0
  81. /package/dist/{testUtils/testDefaults.d.ts → types/test-utils/test-defaults.d.ts} +0 -0
  82. /package/dist/types/{errors.d.ts → types/errors.d.ts} +0 -0
  83. /package/dist/types/{sync.d.ts → types/sync.d.ts} +0 -0
  84. /package/dist/{utils → types/utils}/activity-helpers.d.ts +0 -0
  85. /package/dist/{utils → types/utils}/colors.d.ts +0 -0
  86. /package/dist/{utils → types/utils}/processing-helpers.d.ts +0 -0
  87. /package/dist/{utils → types/utils}/sanitization.d.ts +0 -0
  88. /package/dist/{utils/urlHelpers.d.ts → types/utils/url-helpers.d.ts} +0 -0
@@ -0,0 +1,198 @@
1
+ import { getProjectUrl, getTaskUrl, getSectionUrl } from '../utils/url-helpers.js';
2
+ export const DEFAULT_TASK_ID = '1234';
3
+ export const DEFAULT_TASK_CONTENT = 'This is a task';
4
+ export const DEFAULT_TASK_DESCRIPTION = 'A description';
5
+ export const DEFAULT_TASK_PRIORITY = 1;
6
+ export const DEFAULT_ORDER = 3;
7
+ export const DEFAULT_PROJECT_ID = '123';
8
+ export const DEFAULT_PROJECT_NAME = 'This is a project';
9
+ export const DEFAULT_PROJECT_VIEW_STYLE = 'list';
10
+ const DEFAULT_LABEL_ID = '456';
11
+ const DEFAULT_LABEL_NAME = 'This is a label';
12
+ const DEFAULT_SECTION_ID = '456';
13
+ const DEFAULT_SECTION_NAME = 'This is a section';
14
+ const DEFAULT_PARENT_ID = '5678';
15
+ const DEFAULT_ASSIGNEE = '1234';
16
+ const DEFAULT_CREATOR = '1234';
17
+ const DEFAULT_DATE = '2020-09-08T12:00:00Z';
18
+ const DEFAULT_ENTITY_COLOR = 'berry_red';
19
+ const DEFAULT_LABELS = ['personal', 'work', 'hobby'];
20
+ const DEFAULT_USER_ID = '5';
21
+ const DEFAULT_USER_NAME = 'A User';
22
+ const DEFAULT_USER_EMAIL = 'atestuser@doist.com';
23
+ const DEFAULT_COMMENT_ID = '4';
24
+ const DEFAULT_COMMENT_CONTENT = 'A comment';
25
+ const DEFAULT_COMMENT_REACTIONS = { '👍': ['1234', '5678'] };
26
+ const DEFAULT_NOTE_COUNT = 0;
27
+ const DEFAULT_CAN_ASSIGN_TASKS = true;
28
+ const DEFAULT_IS_ARCHIVED = false;
29
+ const DEFAULT_IS_DELETED = false;
30
+ const DEFAULT_IS_FROZEN = false;
31
+ const DEFAULT_IS_COLLAPSED = false;
32
+ // URL constants using the helper functions
33
+ const DEFAULT_TASK_URL = getTaskUrl(DEFAULT_TASK_ID, DEFAULT_TASK_CONTENT);
34
+ const DEFAULT_PROJECT_URL = getProjectUrl(DEFAULT_PROJECT_ID, DEFAULT_PROJECT_NAME);
35
+ const DEFAULT_SECTION_URL = getSectionUrl(DEFAULT_SECTION_ID, DEFAULT_SECTION_NAME);
36
+ export const DEFAULT_AUTH_TOKEN = 'AToken';
37
+ export const DEFAULT_REQUEST_ID = 'ARequestID';
38
+ export const INVALID_ENTITY_ID = 1234;
39
+ export const DEFAULT_DUE_DATE = {
40
+ isRecurring: false,
41
+ string: 'a date string',
42
+ date: DEFAULT_DATE,
43
+ lang: 'en',
44
+ timezone: null,
45
+ };
46
+ export const DEFAULT_DURATION = {
47
+ amount: 10,
48
+ unit: 'minute',
49
+ };
50
+ export const DEFAULT_DEADLINE = {
51
+ date: '2020-09-08',
52
+ lang: 'en',
53
+ };
54
+ export const DEFAULT_TASK = {
55
+ id: DEFAULT_TASK_ID,
56
+ userId: DEFAULT_CREATOR,
57
+ projectId: DEFAULT_PROJECT_ID,
58
+ sectionId: DEFAULT_SECTION_ID,
59
+ parentId: DEFAULT_PARENT_ID,
60
+ addedByUid: DEFAULT_CREATOR,
61
+ assignedByUid: DEFAULT_CREATOR,
62
+ responsibleUid: DEFAULT_ASSIGNEE,
63
+ labels: DEFAULT_LABELS,
64
+ deadline: DEFAULT_DEADLINE,
65
+ duration: DEFAULT_DURATION,
66
+ checked: false,
67
+ isDeleted: DEFAULT_IS_DELETED,
68
+ addedAt: DEFAULT_DATE,
69
+ completedAt: null,
70
+ updatedAt: DEFAULT_DATE,
71
+ due: DEFAULT_DUE_DATE,
72
+ priority: DEFAULT_TASK_PRIORITY,
73
+ childOrder: DEFAULT_ORDER,
74
+ content: DEFAULT_TASK_CONTENT,
75
+ description: DEFAULT_TASK_DESCRIPTION,
76
+ noteCount: DEFAULT_NOTE_COUNT,
77
+ dayOrder: DEFAULT_ORDER,
78
+ isCollapsed: DEFAULT_IS_COLLAPSED,
79
+ url: DEFAULT_TASK_URL,
80
+ };
81
+ export const INVALID_TASK = Object.assign(Object.assign({}, DEFAULT_TASK), { due: '2020-01-31' });
82
+ export const TASK_WITH_OPTIONALS_AS_NULL = {
83
+ userId: DEFAULT_CREATOR,
84
+ id: DEFAULT_TASK_ID,
85
+ projectId: DEFAULT_PROJECT_ID,
86
+ sectionId: null,
87
+ parentId: null,
88
+ addedByUid: DEFAULT_CREATOR,
89
+ assignedByUid: null,
90
+ responsibleUid: null,
91
+ labels: [],
92
+ deadline: null,
93
+ duration: null,
94
+ checked: false,
95
+ isDeleted: DEFAULT_IS_DELETED,
96
+ addedAt: DEFAULT_DATE,
97
+ completedAt: null,
98
+ updatedAt: DEFAULT_DATE,
99
+ due: null,
100
+ priority: DEFAULT_TASK_PRIORITY,
101
+ childOrder: DEFAULT_ORDER,
102
+ content: DEFAULT_TASK_CONTENT,
103
+ description: DEFAULT_TASK_DESCRIPTION,
104
+ dayOrder: DEFAULT_ORDER,
105
+ isCollapsed: DEFAULT_IS_COLLAPSED,
106
+ noteCount: DEFAULT_NOTE_COUNT,
107
+ url: DEFAULT_TASK_URL,
108
+ };
109
+ export const DEFAULT_PROJECT = {
110
+ id: DEFAULT_PROJECT_ID,
111
+ name: DEFAULT_PROJECT_NAME,
112
+ color: DEFAULT_ENTITY_COLOR,
113
+ childOrder: DEFAULT_ORDER,
114
+ parentId: DEFAULT_PROJECT_ID,
115
+ isFavorite: false,
116
+ isShared: false,
117
+ inboxProject: false,
118
+ viewStyle: DEFAULT_PROJECT_VIEW_STYLE,
119
+ canAssignTasks: DEFAULT_CAN_ASSIGN_TASKS,
120
+ isArchived: DEFAULT_IS_ARCHIVED,
121
+ isDeleted: DEFAULT_IS_DELETED,
122
+ isFrozen: DEFAULT_IS_FROZEN,
123
+ createdAt: DEFAULT_DATE,
124
+ updatedAt: DEFAULT_DATE,
125
+ defaultOrder: DEFAULT_ORDER,
126
+ description: '',
127
+ isCollapsed: DEFAULT_IS_COLLAPSED,
128
+ url: DEFAULT_PROJECT_URL,
129
+ };
130
+ export const INVALID_PROJECT = Object.assign(Object.assign({}, DEFAULT_PROJECT), { name: 123 });
131
+ export const PROJECT_WITH_OPTIONALS_AS_NULL = Object.assign(Object.assign({}, DEFAULT_PROJECT), { parentId: null });
132
+ export const DEFAULT_SECTION = {
133
+ id: DEFAULT_SECTION_ID,
134
+ userId: DEFAULT_USER_ID,
135
+ projectId: DEFAULT_PROJECT_ID,
136
+ addedAt: '2025-03-28T14:01:23.334881Z',
137
+ updatedAt: '2025-03-28T14:01:23.334885Z',
138
+ archivedAt: null,
139
+ name: DEFAULT_SECTION_NAME,
140
+ sectionOrder: DEFAULT_ORDER,
141
+ isArchived: false,
142
+ isDeleted: false,
143
+ isCollapsed: false,
144
+ url: DEFAULT_SECTION_URL,
145
+ };
146
+ export const INVALID_SECTION = Object.assign(Object.assign({}, DEFAULT_SECTION), { projectId: undefined });
147
+ export const DEFAULT_LABEL = {
148
+ id: DEFAULT_LABEL_ID,
149
+ name: DEFAULT_LABEL_NAME,
150
+ color: DEFAULT_ENTITY_COLOR,
151
+ order: DEFAULT_ORDER,
152
+ isFavorite: false,
153
+ };
154
+ export const INVALID_LABEL = Object.assign(Object.assign({}, DEFAULT_LABEL), { isFavorite: 'true' });
155
+ export const DEFAULT_USER = {
156
+ id: DEFAULT_USER_ID,
157
+ name: DEFAULT_USER_NAME,
158
+ email: DEFAULT_USER_EMAIL,
159
+ };
160
+ export const INVALID_USER = Object.assign(Object.assign({}, DEFAULT_USER), { email: undefined });
161
+ export const DEFAULT_ATTACHMENT = {
162
+ resourceType: 'file',
163
+ fileType: 'image/png',
164
+ fileUrl: 'https://someurl.com/image.jpg',
165
+ uploadState: 'completed',
166
+ };
167
+ export const INVALID_ATTACHMENT = Object.assign(Object.assign({}, DEFAULT_ATTACHMENT), { uploadState: 'something random' });
168
+ export const DEFAULT_RAW_COMMENT = {
169
+ id: DEFAULT_COMMENT_ID,
170
+ postedUid: DEFAULT_USER_ID,
171
+ content: DEFAULT_COMMENT_CONTENT,
172
+ fileAttachment: DEFAULT_ATTACHMENT,
173
+ uidsToNotify: null,
174
+ isDeleted: false,
175
+ postedAt: DEFAULT_DATE,
176
+ reactions: DEFAULT_COMMENT_REACTIONS,
177
+ itemId: DEFAULT_TASK_ID,
178
+ };
179
+ export const DEFAULT_COMMENT = Object.assign(Object.assign({}, DEFAULT_RAW_COMMENT), { taskId: DEFAULT_RAW_COMMENT.itemId, itemId: undefined });
180
+ export const INVALID_COMMENT = Object.assign(Object.assign({}, DEFAULT_RAW_COMMENT), { isDeleted: 'true' });
181
+ export const RAW_COMMENT_WITH_OPTIONALS_AS_NULL_TASK = Object.assign(Object.assign({}, DEFAULT_RAW_COMMENT), { fileAttachment: null, uidsToNotify: null, reactions: null });
182
+ export const COMMENT_WITH_OPTIONALS_AS_NULL_TASK = Object.assign(Object.assign({}, RAW_COMMENT_WITH_OPTIONALS_AS_NULL_TASK), { taskId: RAW_COMMENT_WITH_OPTIONALS_AS_NULL_TASK.itemId, itemId: undefined });
183
+ export const RAW_COMMENT_WITH_ATTACHMENT_WITH_OPTIONALS_AS_NULL = Object.assign(Object.assign({}, DEFAULT_RAW_COMMENT), { fileAttachment: {
184
+ resourceType: 'file',
185
+ fileName: null,
186
+ fileSize: null,
187
+ fileType: null,
188
+ fileDuration: null,
189
+ uploadState: null,
190
+ image: null,
191
+ imageWidth: null,
192
+ imageHeight: null,
193
+ url: null,
194
+ title: null,
195
+ } });
196
+ export const COMMENT_WITH_ATTACHMENT_WITH_OPTIONALS_AS_NULL = Object.assign(Object.assign({}, RAW_COMMENT_WITH_ATTACHMENT_WITH_OPTIONALS_AS_NULL), { taskId: RAW_COMMENT_WITH_ATTACHMENT_WITH_OPTIONALS_AS_NULL.itemId, itemId: undefined });
197
+ export const RAW_COMMENT_WITH_OPTIONALS_AS_NULL_PROJECT = Object.assign(Object.assign({}, DEFAULT_RAW_COMMENT), { itemId: undefined, projectId: DEFAULT_PROJECT_ID });
198
+ export const COMMENT_WITH_OPTIONALS_AS_NULL_PROJECT = Object.assign(Object.assign({}, RAW_COMMENT_WITH_OPTIONALS_AS_NULL_PROJECT), { taskId: undefined });