@doist/todoist-sdk 9.0.0 → 9.1.0-next.2

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 (103) hide show
  1. package/dist/cjs/clients/activity-client.js +63 -0
  2. package/dist/cjs/clients/backup-client.js +65 -0
  3. package/dist/cjs/clients/base-client.js +30 -0
  4. package/dist/cjs/clients/comment-client.js +92 -0
  5. package/dist/cjs/clients/email-client.js +43 -0
  6. package/dist/cjs/clients/folder-client.js +80 -0
  7. package/dist/cjs/clients/goals-client.js +145 -0
  8. package/dist/cjs/clients/id-mapping-client.js +39 -0
  9. package/dist/cjs/clients/insights-client.js +88 -0
  10. package/dist/cjs/clients/label-client.js +127 -0
  11. package/dist/cjs/clients/productivity-client.js +27 -0
  12. package/dist/cjs/clients/project-client.js +232 -0
  13. package/dist/cjs/clients/reminder-client.js +198 -0
  14. package/dist/cjs/clients/section-client.js +118 -0
  15. package/dist/cjs/clients/task-client.js +255 -0
  16. package/dist/cjs/clients/template-client.js +89 -0
  17. package/dist/cjs/clients/upload-client.js +102 -0
  18. package/dist/cjs/clients/workspace-client.js +367 -0
  19. package/dist/cjs/consts/endpoints.js +6 -1
  20. package/dist/cjs/test-utils/test-defaults.js +25 -1
  21. package/dist/cjs/todoist-api.js +186 -1537
  22. package/dist/cjs/transport/sync-request.js +75 -0
  23. package/dist/cjs/types/goals/index.js +18 -0
  24. package/dist/cjs/types/goals/requests.js +2 -0
  25. package/dist/cjs/types/goals/types.js +56 -0
  26. package/dist/cjs/types/index.js +1 -0
  27. package/dist/cjs/types/sync/commands/goals.js +2 -0
  28. package/dist/cjs/types/sync/commands/index.js +1 -0
  29. package/dist/cjs/types/sync/resource-types.js +1 -0
  30. package/dist/cjs/types/sync/response.js +12 -10
  31. package/dist/cjs/utils/headers.js +16 -0
  32. package/dist/cjs/utils/request-helpers.js +21 -0
  33. package/dist/cjs/utils/validators.js +48 -46
  34. package/dist/esm/clients/activity-client.js +59 -0
  35. package/dist/esm/clients/backup-client.js +61 -0
  36. package/dist/esm/clients/base-client.js +26 -0
  37. package/dist/esm/clients/comment-client.js +88 -0
  38. package/dist/esm/clients/email-client.js +39 -0
  39. package/dist/esm/clients/folder-client.js +76 -0
  40. package/dist/esm/clients/goals-client.js +141 -0
  41. package/dist/esm/clients/id-mapping-client.js +35 -0
  42. package/dist/esm/clients/insights-client.js +84 -0
  43. package/dist/esm/clients/label-client.js +123 -0
  44. package/dist/esm/clients/productivity-client.js +23 -0
  45. package/dist/esm/clients/project-client.js +228 -0
  46. package/dist/esm/clients/reminder-client.js +194 -0
  47. package/dist/esm/clients/section-client.js +114 -0
  48. package/dist/esm/clients/task-client.js +251 -0
  49. package/dist/esm/clients/template-client.js +85 -0
  50. package/dist/esm/clients/upload-client.js +98 -0
  51. package/dist/esm/clients/workspace-client.js +363 -0
  52. package/dist/esm/consts/endpoints.js +5 -0
  53. package/dist/esm/test-utils/test-defaults.js +24 -0
  54. package/dist/esm/todoist-api.js +189 -1540
  55. package/dist/esm/transport/sync-request.js +72 -0
  56. package/dist/esm/types/goals/index.js +2 -0
  57. package/dist/esm/types/goals/requests.js +1 -0
  58. package/dist/esm/types/goals/types.js +53 -0
  59. package/dist/esm/types/index.js +1 -0
  60. package/dist/esm/types/sync/commands/goals.js +1 -0
  61. package/dist/esm/types/sync/commands/index.js +1 -0
  62. package/dist/esm/types/sync/resource-types.js +1 -0
  63. package/dist/esm/types/sync/response.js +2 -0
  64. package/dist/esm/utils/headers.js +13 -0
  65. package/dist/esm/utils/request-helpers.js +17 -0
  66. package/dist/esm/utils/validators.js +2 -0
  67. package/dist/types/clients/activity-client.d.ts +12 -0
  68. package/dist/types/clients/backup-client.d.ts +14 -0
  69. package/dist/types/clients/base-client.d.ts +21 -0
  70. package/dist/types/clients/comment-client.d.ts +15 -0
  71. package/dist/types/clients/email-client.d.ts +13 -0
  72. package/dist/types/clients/folder-client.d.ts +16 -0
  73. package/dist/types/clients/goals-client.d.ts +20 -0
  74. package/dist/types/clients/id-mapping-client.d.ts +13 -0
  75. package/dist/types/clients/insights-client.d.ts +18 -0
  76. package/dist/types/clients/label-client.d.ts +19 -0
  77. package/dist/types/clients/productivity-client.d.ts +12 -0
  78. package/dist/types/clients/project-client.d.ts +26 -0
  79. package/dist/types/clients/reminder-client.d.ts +25 -0
  80. package/dist/types/clients/section-client.d.ts +18 -0
  81. package/dist/types/clients/task-client.d.ts +25 -0
  82. package/dist/types/clients/template-client.d.ts +17 -0
  83. package/dist/types/clients/upload-client.d.ts +17 -0
  84. package/dist/types/clients/workspace-client.d.ts +43 -0
  85. package/dist/types/consts/endpoints.d.ts +5 -0
  86. package/dist/types/test-utils/test-defaults.d.ts +4 -1
  87. package/dist/types/todoist-api.d.ts +48 -17
  88. package/dist/types/transport/sync-request.d.ts +27 -0
  89. package/dist/types/types/goals/index.d.ts +2 -0
  90. package/dist/types/types/goals/requests.d.ts +33 -0
  91. package/dist/types/types/goals/types.d.ts +51 -0
  92. package/dist/types/types/http.d.ts +7 -0
  93. package/dist/types/types/index.d.ts +1 -0
  94. package/dist/types/types/sync/commands/goals.d.ts +33 -0
  95. package/dist/types/types/sync/commands/index.d.ts +9 -0
  96. package/dist/types/types/sync/resource-types.d.ts +1 -1
  97. package/dist/types/types/sync/resources/view-options.d.ts +6 -6
  98. package/dist/types/types/sync/response.d.ts +29 -4
  99. package/dist/types/types/tasks/requests.d.ts +1 -0
  100. package/dist/types/utils/headers.d.ts +7 -0
  101. package/dist/types/utils/request-helpers.d.ts +13 -0
  102. package/dist/types/utils/validators.d.ts +55 -8
  103. package/package.json +1 -1
@@ -0,0 +1,367 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.WorkspaceClient = void 0;
15
+ const zod_1 = require("zod");
16
+ const endpoints_1 = require("../consts/endpoints");
17
+ const http_client_1 = require("../transport/http-client");
18
+ const multipart_upload_1 = require("../utils/multipart-upload");
19
+ const request_helpers_1 = require("../utils/request-helpers");
20
+ const validators_1 = require("../utils/validators");
21
+ const base_client_1 = require("./base-client");
22
+ /**
23
+ * Internal sub-client handling all workspace-domain endpoints —
24
+ * workspaces, invitations, users, plans, logos, and workspace project
25
+ * pagination.
26
+ *
27
+ * Instantiated by `TodoistApi`; every public workspace method on
28
+ * `TodoistApi` delegates here. See `todoist-api.ts` for user-facing
29
+ * JSDoc.
30
+ */
31
+ class WorkspaceClient extends base_client_1.BaseClient {
32
+ async getWorkspaceInvitations(args, requestId) {
33
+ const response = await (0, http_client_1.request)({
34
+ httpMethod: 'GET',
35
+ baseUri: this.syncApiBase,
36
+ relativePath: endpoints_1.ENDPOINT_WORKSPACE_INVITATIONS,
37
+ apiToken: this.authToken,
38
+ customFetch: this.customFetch,
39
+ payload: { workspace_id: args.workspaceId },
40
+ requestId: requestId,
41
+ });
42
+ return response.data;
43
+ }
44
+ async getAllWorkspaceInvitations(args = {}, requestId) {
45
+ const queryParams = {};
46
+ if (args.workspaceId) {
47
+ queryParams.workspace_id = args.workspaceId;
48
+ }
49
+ const response = await (0, http_client_1.request)({
50
+ httpMethod: 'GET',
51
+ baseUri: this.syncApiBase,
52
+ relativePath: endpoints_1.ENDPOINT_WORKSPACE_INVITATIONS_ALL,
53
+ apiToken: this.authToken,
54
+ customFetch: this.customFetch,
55
+ payload: queryParams,
56
+ requestId: requestId,
57
+ });
58
+ return (0, validators_1.validateWorkspaceInvitationArray)(response.data);
59
+ }
60
+ async deleteWorkspaceInvitation(args, requestId) {
61
+ const response = await (0, http_client_1.request)({
62
+ httpMethod: 'POST',
63
+ baseUri: this.syncApiBase,
64
+ relativePath: endpoints_1.ENDPOINT_WORKSPACE_INVITATIONS_DELETE,
65
+ apiToken: this.authToken,
66
+ customFetch: this.customFetch,
67
+ payload: {
68
+ workspace_id: args.workspaceId,
69
+ user_email: args.userEmail,
70
+ },
71
+ requestId: requestId,
72
+ });
73
+ return (0, validators_1.validateWorkspaceInvitation)(response.data);
74
+ }
75
+ async acceptWorkspaceInvitation(args, requestId) {
76
+ const response = await (0, http_client_1.request)({
77
+ httpMethod: 'PUT',
78
+ baseUri: this.syncApiBase,
79
+ relativePath: (0, endpoints_1.getWorkspaceInvitationAcceptEndpoint)(args.inviteCode),
80
+ apiToken: this.authToken,
81
+ customFetch: this.customFetch,
82
+ requestId: requestId,
83
+ });
84
+ return (0, validators_1.validateWorkspaceInvitation)(response.data);
85
+ }
86
+ async rejectWorkspaceInvitation(args, requestId) {
87
+ const response = await (0, http_client_1.request)({
88
+ httpMethod: 'PUT',
89
+ baseUri: this.syncApiBase,
90
+ relativePath: (0, endpoints_1.getWorkspaceInvitationRejectEndpoint)(args.inviteCode),
91
+ apiToken: this.authToken,
92
+ customFetch: this.customFetch,
93
+ requestId: requestId,
94
+ });
95
+ return (0, validators_1.validateWorkspaceInvitation)(response.data);
96
+ }
97
+ async joinWorkspace(args, requestId) {
98
+ const response = await (0, http_client_1.request)({
99
+ httpMethod: 'POST',
100
+ baseUri: this.syncApiBase,
101
+ relativePath: endpoints_1.ENDPOINT_WORKSPACE_JOIN,
102
+ apiToken: this.authToken,
103
+ customFetch: this.customFetch,
104
+ payload: {
105
+ invite_code: args.inviteCode,
106
+ workspace_id: args.workspaceId,
107
+ },
108
+ requestId: requestId,
109
+ });
110
+ return (0, validators_1.validateJoinWorkspaceResult)(response.data);
111
+ }
112
+ async uploadWorkspaceLogo(args, requestId) {
113
+ if (args.delete) {
114
+ // Delete logo
115
+ const data = await (0, multipart_upload_1.uploadMultipartFile)({
116
+ baseUrl: this.syncApiBase,
117
+ authToken: this.authToken,
118
+ endpoint: endpoints_1.ENDPOINT_WORKSPACE_LOGO,
119
+ file: Buffer.alloc(0), // Empty buffer for delete
120
+ fileName: 'delete',
121
+ additionalFields: {
122
+ workspace_id: args.workspaceId,
123
+ delete: true,
124
+ },
125
+ requestId: requestId,
126
+ customFetch: this.customFetch,
127
+ });
128
+ return data;
129
+ }
130
+ if (!args.file) {
131
+ throw new Error('file is required when not deleting logo');
132
+ }
133
+ // Validate buffer is not empty if it's a Buffer
134
+ if (Buffer.isBuffer(args.file) && args.file.length === 0) {
135
+ throw new Error('Cannot upload empty image file');
136
+ }
137
+ const additionalFields = {
138
+ workspace_id: args.workspaceId,
139
+ };
140
+ const data = await (0, multipart_upload_1.uploadMultipartFile)({
141
+ baseUrl: this.syncApiBase,
142
+ authToken: this.authToken,
143
+ endpoint: endpoints_1.ENDPOINT_WORKSPACE_LOGO,
144
+ file: args.file,
145
+ fileName: args.fileName,
146
+ additionalFields: additionalFields,
147
+ requestId: requestId,
148
+ customFetch: this.customFetch,
149
+ });
150
+ return data;
151
+ }
152
+ async getWorkspacePlanDetails(args, requestId) {
153
+ const response = await (0, http_client_1.request)({
154
+ httpMethod: 'GET',
155
+ baseUri: this.syncApiBase,
156
+ relativePath: endpoints_1.ENDPOINT_WORKSPACE_PLAN_DETAILS,
157
+ apiToken: this.authToken,
158
+ customFetch: this.customFetch,
159
+ payload: { workspace_id: args.workspaceId },
160
+ requestId: requestId,
161
+ });
162
+ return (0, validators_1.validateWorkspacePlanDetails)(response.data);
163
+ }
164
+ async getWorkspaceUsers(args = {}, requestId) {
165
+ const queryParams = {};
166
+ if (args.workspaceId !== undefined && args.workspaceId !== null) {
167
+ queryParams.workspace_id = args.workspaceId;
168
+ }
169
+ if (args.cursor) {
170
+ queryParams.cursor = args.cursor;
171
+ }
172
+ if (args.limit) {
173
+ queryParams.limit = args.limit;
174
+ }
175
+ const response = await (0, http_client_1.request)({
176
+ httpMethod: 'GET',
177
+ baseUri: this.syncApiBase,
178
+ relativePath: endpoints_1.ENDPOINT_WORKSPACE_USERS,
179
+ apiToken: this.authToken,
180
+ customFetch: this.customFetch,
181
+ payload: queryParams,
182
+ requestId: requestId,
183
+ });
184
+ return {
185
+ hasMore: response.data.hasMore || false,
186
+ nextCursor: response.data.nextCursor,
187
+ workspaceUsers: (0, validators_1.validateWorkspaceUserArray)(response.data.workspaceUsers || []),
188
+ };
189
+ }
190
+ async getWorkspaces(requestId) {
191
+ const response = await (0, http_client_1.request)({
192
+ httpMethod: 'GET',
193
+ baseUri: this.syncApiBase,
194
+ relativePath: endpoints_1.ENDPOINT_REST_WORKSPACES,
195
+ apiToken: this.authToken,
196
+ customFetch: this.customFetch,
197
+ requestId: requestId,
198
+ });
199
+ return (0, validators_1.validateWorkspaceArray)(response.data);
200
+ }
201
+ async getWorkspace(id, requestId) {
202
+ zod_1.z.string().parse(id);
203
+ const response = await (0, http_client_1.request)({
204
+ httpMethod: 'GET',
205
+ baseUri: this.syncApiBase,
206
+ relativePath: (0, request_helpers_1.generatePath)(endpoints_1.ENDPOINT_REST_WORKSPACES, id),
207
+ apiToken: this.authToken,
208
+ customFetch: this.customFetch,
209
+ requestId: requestId,
210
+ });
211
+ return (0, validators_1.validateWorkspace)(response.data);
212
+ }
213
+ async addWorkspace(args, requestId) {
214
+ const response = await (0, http_client_1.request)({
215
+ httpMethod: 'POST',
216
+ baseUri: this.syncApiBase,
217
+ relativePath: endpoints_1.ENDPOINT_REST_WORKSPACES,
218
+ apiToken: this.authToken,
219
+ customFetch: this.customFetch,
220
+ payload: args,
221
+ requestId: requestId,
222
+ });
223
+ return (0, validators_1.validateWorkspace)(response.data);
224
+ }
225
+ async updateWorkspace(id, args, requestId) {
226
+ zod_1.z.string().parse(id);
227
+ const response = await (0, http_client_1.request)({
228
+ httpMethod: 'POST',
229
+ baseUri: this.syncApiBase,
230
+ relativePath: (0, request_helpers_1.generatePath)(endpoints_1.ENDPOINT_REST_WORKSPACES, id),
231
+ apiToken: this.authToken,
232
+ customFetch: this.customFetch,
233
+ payload: args,
234
+ requestId: requestId,
235
+ });
236
+ return (0, validators_1.validateWorkspace)(response.data);
237
+ }
238
+ async deleteWorkspace(id, requestId) {
239
+ zod_1.z.string().parse(id);
240
+ const response = await (0, http_client_1.request)({
241
+ httpMethod: 'DELETE',
242
+ baseUri: this.syncApiBase,
243
+ relativePath: (0, request_helpers_1.generatePath)(endpoints_1.ENDPOINT_REST_WORKSPACES, id),
244
+ apiToken: this.authToken,
245
+ customFetch: this.customFetch,
246
+ requestId: requestId,
247
+ });
248
+ return (0, http_client_1.isSuccess)(response);
249
+ }
250
+ async getWorkspaceMembersActivity(args, requestId) {
251
+ const { workspaceId } = args, queryParams = __rest(args, ["workspaceId"]);
252
+ const { data } = await (0, http_client_1.request)({
253
+ httpMethod: 'GET',
254
+ baseUri: this.syncApiBase,
255
+ relativePath: endpoints_1.ENDPOINT_WORKSPACE_MEMBERS,
256
+ apiToken: this.authToken,
257
+ customFetch: this.customFetch,
258
+ payload: Object.assign({ workspaceId }, queryParams),
259
+ requestId: requestId,
260
+ });
261
+ return {
262
+ members: (0, validators_1.validateMemberActivityInfoArray)(data.members),
263
+ };
264
+ }
265
+ async getWorkspaceUserTasks(args, requestId) {
266
+ const { workspaceId, userId } = args, queryParams = __rest(args, ["workspaceId", "userId"]);
267
+ const { data } = await (0, http_client_1.request)({
268
+ httpMethod: 'GET',
269
+ baseUri: this.syncApiBase,
270
+ relativePath: (0, endpoints_1.getWorkspaceUserTasksEndpoint)(workspaceId, userId),
271
+ apiToken: this.authToken,
272
+ customFetch: this.customFetch,
273
+ payload: queryParams,
274
+ requestId: requestId,
275
+ });
276
+ return {
277
+ tasks: (0, validators_1.validateWorkspaceUserTaskArray)(data.tasks),
278
+ };
279
+ }
280
+ async inviteWorkspaceUsers(args, requestId) {
281
+ const { workspaceId } = args, payload = __rest(args, ["workspaceId"]);
282
+ const { data } = await (0, http_client_1.request)({
283
+ httpMethod: 'POST',
284
+ baseUri: this.syncApiBase,
285
+ relativePath: (0, endpoints_1.getWorkspaceInviteUsersEndpoint)(workspaceId),
286
+ apiToken: this.authToken,
287
+ customFetch: this.customFetch,
288
+ payload: payload,
289
+ requestId: requestId,
290
+ });
291
+ return data;
292
+ }
293
+ async updateWorkspaceUser(args, requestId) {
294
+ const { workspaceId, userId } = args, payload = __rest(args, ["workspaceId", "userId"]);
295
+ const response = await (0, http_client_1.request)({
296
+ httpMethod: 'POST',
297
+ baseUri: this.syncApiBase,
298
+ relativePath: (0, endpoints_1.getWorkspaceUserEndpoint)(workspaceId, userId),
299
+ apiToken: this.authToken,
300
+ customFetch: this.customFetch,
301
+ payload: payload,
302
+ requestId: requestId,
303
+ });
304
+ return (0, validators_1.validateJoinWorkspaceResult)(response.data);
305
+ }
306
+ async removeWorkspaceUser(args, requestId) {
307
+ const { workspaceId, userId } = args;
308
+ const response = await (0, http_client_1.request)({
309
+ httpMethod: 'DELETE',
310
+ baseUri: this.syncApiBase,
311
+ relativePath: (0, endpoints_1.getWorkspaceUserEndpoint)(workspaceId, userId),
312
+ apiToken: this.authToken,
313
+ customFetch: this.customFetch,
314
+ requestId: requestId,
315
+ });
316
+ return (0, http_client_1.isSuccess)(response);
317
+ }
318
+ async getWorkspaceActiveProjects(args, requestId) {
319
+ var _a;
320
+ const queryParams = {};
321
+ if (args.cursor) {
322
+ queryParams.cursor = args.cursor;
323
+ }
324
+ if (args.limit) {
325
+ queryParams.limit = args.limit;
326
+ }
327
+ const response = await (0, http_client_1.request)({
328
+ httpMethod: 'GET',
329
+ baseUri: this.syncApiBase,
330
+ relativePath: (0, endpoints_1.getWorkspaceActiveProjectsEndpoint)(args.workspaceId),
331
+ apiToken: this.authToken,
332
+ customFetch: this.customFetch,
333
+ payload: queryParams,
334
+ requestId: requestId,
335
+ });
336
+ // oxlint-disable-next-line no-unsafe-assignment, no-unsafe-call, no-unsafe-member-access
337
+ const validatedProjects = (_a = response.data.results) === null || _a === void 0 ? void 0 : _a.map((project) => (0, validators_1.validateProject)(project));
338
+ return Object.assign(Object.assign({}, response.data), {
339
+ // oxlint-disable-next-line no-unsafe-assignment
340
+ results: validatedProjects || [] });
341
+ }
342
+ async getWorkspaceArchivedProjects(args, requestId) {
343
+ var _a;
344
+ const queryParams = {};
345
+ if (args.cursor) {
346
+ queryParams.cursor = args.cursor;
347
+ }
348
+ if (args.limit) {
349
+ queryParams.limit = args.limit;
350
+ }
351
+ const response = await (0, http_client_1.request)({
352
+ httpMethod: 'GET',
353
+ baseUri: this.syncApiBase,
354
+ relativePath: (0, endpoints_1.getWorkspaceArchivedProjectsEndpoint)(args.workspaceId),
355
+ apiToken: this.authToken,
356
+ customFetch: this.customFetch,
357
+ payload: queryParams,
358
+ requestId: requestId,
359
+ });
360
+ // oxlint-disable-next-line no-unsafe-assignment, no-unsafe-call, no-unsafe-member-access
361
+ const validatedProjects = (_a = response.data.results) === null || _a === void 0 ? void 0 : _a.map((project) => (0, validators_1.validateProject)(project));
362
+ return Object.assign(Object.assign({}, response.data), {
363
+ // oxlint-disable-next-line no-unsafe-assignment
364
+ results: validatedProjects || [] });
365
+ }
366
+ }
367
+ exports.WorkspaceClient = WorkspaceClient;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ENDPOINT_REST_ID_MAPPINGS = exports.ENDPOINT_REST_EMAILS = exports.ENDPOINT_REST_BACKUPS_DOWNLOAD = exports.ENDPOINT_REST_BACKUPS = exports.ENDPOINT_REST_ACCESS_TOKENS_MIGRATE = exports.ENDPOINT_REST_TEMPLATES_IMPORT_FROM_ID = exports.ENDPOINT_REST_TEMPLATES_IMPORT_FROM_FILE = exports.ENDPOINT_REST_TEMPLATES_CREATE_FROM_FILE = exports.ENDPOINT_REST_TEMPLATES_URL = exports.ENDPOINT_REST_TEMPLATES_FILE = exports.ENDPOINT_REST_TASKS_COMPLETED = exports.ENDPOINT_REST_PROJECTS_MOVE_TO_PERSONAL = exports.ENDPOINT_REST_PROJECTS_MOVE_TO_WORKSPACE = exports.SECTION_UNARCHIVE = exports.SECTION_ARCHIVE = exports.ENDPOINT_REST_PROJECT_JOIN = exports.ENDPOINT_REST_PROJECT_FULL = exports.ENDPOINT_REST_PROJECTS_PERMISSIONS = exports.ENDPOINT_REST_PROJECTS_ARCHIVED_COUNT = exports.PROJECT_UNARCHIVE = exports.PROJECT_ARCHIVE = exports.ENDPOINT_REST_UPLOADS = exports.ENDPOINT_REST_ACTIVITIES = exports.ENDPOINT_REST_PRODUCTIVITY = exports.ENDPOINT_REST_USER = exports.ENDPOINT_REST_PROJECT_COLLABORATORS = exports.ENDPOINT_REST_PROJECTS_ARCHIVED = exports.ENDPOINT_REST_PROJECTS_SEARCH = exports.ENDPOINT_REST_PROJECTS = exports.ENDPOINT_REST_TASK_MOVE = exports.ENDPOINT_REST_TASK_REOPEN = exports.ENDPOINT_REST_TASK_CLOSE = exports.ENDPOINT_REST_LOCATION_REMINDERS = exports.ENDPOINT_REST_REMINDERS = exports.ENDPOINT_REST_COMMENTS = exports.ENDPOINT_REST_LABELS_SHARED_REMOVE = exports.ENDPOINT_REST_LABELS_SHARED_RENAME = exports.ENDPOINT_REST_LABELS_SHARED = exports.ENDPOINT_REST_LABELS_SEARCH = exports.ENDPOINT_REST_LABELS = exports.ENDPOINT_REST_SECTIONS_SEARCH = exports.ENDPOINT_REST_SECTIONS = exports.ENDPOINT_REST_TASKS_COMPLETED_SEARCH = exports.ENDPOINT_REST_TASKS_COMPLETED_BY_DUE_DATE = exports.ENDPOINT_REST_TASKS_COMPLETED_BY_COMPLETION_DATE = exports.ENDPOINT_REST_TASKS_FILTER = exports.ENDPOINT_REST_TASKS = exports.API_BASE_URI = exports.API_VERSION = exports.TODOIST_WEB_URI = void 0;
4
- exports.ENDPOINT_WORKSPACE_MEMBERS = exports.ENDPOINT_WORKSPACE_USERS = exports.ENDPOINT_WORKSPACE_PLAN_DETAILS = exports.ENDPOINT_WORKSPACE_LOGO = exports.ENDPOINT_WORKSPACE_JOIN = exports.ENDPOINT_WORKSPACE_INVITATIONS_DELETE = exports.ENDPOINT_WORKSPACE_INVITATIONS_ALL = exports.ENDPOINT_WORKSPACE_INVITATIONS = exports.ENDPOINT_REST_WORKSPACES = exports.ENDPOINT_REST_FOLDERS = exports.ENDPOINT_REGISTER = exports.ENDPOINT_REVOKE = exports.ENDPOINT_GET_TOKEN = exports.ENDPOINT_AUTHORIZATION = exports.ENDPOINT_SYNC = exports.ENDPOINT_SYNC_QUICK_ADD = exports.ENDPOINT_REST_MOVED_IDS = void 0;
4
+ exports.ENDPOINT_WORKSPACE_MEMBERS = exports.ENDPOINT_WORKSPACE_USERS = exports.ENDPOINT_WORKSPACE_PLAN_DETAILS = exports.ENDPOINT_WORKSPACE_LOGO = exports.ENDPOINT_WORKSPACE_JOIN = exports.ENDPOINT_WORKSPACE_INVITATIONS_DELETE = exports.ENDPOINT_WORKSPACE_INVITATIONS_ALL = exports.ENDPOINT_WORKSPACE_INVITATIONS = exports.ENDPOINT_REST_WORKSPACES = exports.GOAL_TASKS = exports.GOAL_UNCOMPLETE = exports.GOAL_COMPLETE = exports.ENDPOINT_REST_GOALS_SEARCH = exports.ENDPOINT_REST_GOALS = exports.ENDPOINT_REST_FOLDERS = exports.ENDPOINT_REGISTER = exports.ENDPOINT_REVOKE = exports.ENDPOINT_GET_TOKEN = exports.ENDPOINT_AUTHORIZATION = exports.ENDPOINT_SYNC = exports.ENDPOINT_SYNC_QUICK_ADD = exports.ENDPOINT_REST_MOVED_IDS = void 0;
5
5
  exports.getSyncBaseUri = getSyncBaseUri;
6
6
  exports.getAuthBaseUri = getAuthBaseUri;
7
7
  exports.getWorkspaceInvitationAcceptEndpoint = getWorkspaceInvitationAcceptEndpoint;
@@ -86,6 +86,11 @@ exports.ENDPOINT_GET_TOKEN = 'access_token';
86
86
  exports.ENDPOINT_REVOKE = 'revoke';
87
87
  exports.ENDPOINT_REGISTER = 'register';
88
88
  exports.ENDPOINT_REST_FOLDERS = 'folders';
89
+ exports.ENDPOINT_REST_GOALS = 'goals';
90
+ exports.ENDPOINT_REST_GOALS_SEARCH = exports.ENDPOINT_REST_GOALS + '/search';
91
+ exports.GOAL_COMPLETE = 'complete';
92
+ exports.GOAL_UNCOMPLETE = 'uncomplete';
93
+ exports.GOAL_TASKS = 'items';
89
94
  // Workspace endpoints
90
95
  exports.ENDPOINT_REST_WORKSPACES = 'workspaces';
91
96
  exports.ENDPOINT_WORKSPACE_INVITATIONS = 'workspaces/invitations';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_NOTE = exports.DEFAULT_COLLABORATOR_STATE = exports.DEFAULT_COLLABORATOR = exports.DEFAULT_FOLDER = exports.COMMENT_WITH_OPTIONALS_AS_NULL_PROJECT = exports.RAW_COMMENT_WITH_OPTIONALS_AS_NULL_PROJECT = exports.COMMENT_WITH_ATTACHMENT_WITH_OPTIONALS_AS_NULL = exports.RAW_COMMENT_WITH_ATTACHMENT_WITH_OPTIONALS_AS_NULL = exports.COMMENT_WITH_OPTIONALS_AS_NULL_TASK = exports.RAW_COMMENT_WITH_OPTIONALS_AS_NULL_TASK = exports.INVALID_COMMENT = exports.DEFAULT_LOCATION_REMINDER = exports.DEFAULT_ABSOLUTE_REMINDER = exports.DEFAULT_RELATIVE_REMINDER = exports.DEFAULT_REMINDER_ID = exports.DEFAULT_COMMENT = exports.DEFAULT_RAW_COMMENT = exports.INVALID_ATTACHMENT = exports.DEFAULT_ATTACHMENT = exports.INVALID_USER = exports.DEFAULT_USER = exports.INVALID_LABEL = exports.DEFAULT_LABEL = exports.INVALID_SECTION = exports.DEFAULT_SECTION = exports.DEFAULT_WORKSPACE_PROJECT = exports.PROJECT_WITH_OPTIONALS_AS_NULL = exports.INVALID_PROJECT = exports.DEFAULT_PROJECT = exports.TASK_WITH_OPTIONALS_AS_NULL = exports.INVALID_TASK = exports.DEFAULT_TASK = exports.DEFAULT_DEADLINE = exports.DEFAULT_DURATION = exports.DEFAULT_DUE_DATE = exports.INVALID_ENTITY_ID = exports.DEFAULT_REQUEST_ID = exports.DEFAULT_AUTH_TOKEN = exports.DEFAULT_PROJECT_VIEW_STYLE = exports.DEFAULT_PROJECT_NAME = exports.DEFAULT_PROJECT_ID = exports.DEFAULT_ORDER = exports.DEFAULT_TASK_PRIORITY = exports.DEFAULT_TASK_DESCRIPTION = exports.DEFAULT_TASK_CONTENT = exports.DEFAULT_TASK_ID = void 0;
3
+ exports.DEFAULT_NOTE = exports.DEFAULT_GOAL_NO_PROGRESS = exports.DEFAULT_GOAL = exports.DEFAULT_GOAL_ID = exports.DEFAULT_COLLABORATOR_STATE = exports.DEFAULT_COLLABORATOR = exports.DEFAULT_FOLDER = exports.COMMENT_WITH_OPTIONALS_AS_NULL_PROJECT = exports.RAW_COMMENT_WITH_OPTIONALS_AS_NULL_PROJECT = exports.COMMENT_WITH_ATTACHMENT_WITH_OPTIONALS_AS_NULL = exports.RAW_COMMENT_WITH_ATTACHMENT_WITH_OPTIONALS_AS_NULL = exports.COMMENT_WITH_OPTIONALS_AS_NULL_TASK = exports.RAW_COMMENT_WITH_OPTIONALS_AS_NULL_TASK = exports.INVALID_COMMENT = exports.DEFAULT_LOCATION_REMINDER = exports.DEFAULT_ABSOLUTE_REMINDER = exports.DEFAULT_RELATIVE_REMINDER = exports.DEFAULT_REMINDER_ID = exports.DEFAULT_COMMENT = exports.DEFAULT_RAW_COMMENT = exports.INVALID_ATTACHMENT = exports.DEFAULT_ATTACHMENT = exports.INVALID_USER = exports.DEFAULT_USER = exports.INVALID_LABEL = exports.DEFAULT_LABEL = exports.INVALID_SECTION = exports.DEFAULT_SECTION = exports.DEFAULT_WORKSPACE_PROJECT = exports.PROJECT_WITH_OPTIONALS_AS_NULL = exports.INVALID_PROJECT = exports.DEFAULT_PROJECT = exports.TASK_WITH_OPTIONALS_AS_NULL = exports.INVALID_TASK = exports.DEFAULT_TASK = exports.DEFAULT_DEADLINE = exports.DEFAULT_DURATION = exports.DEFAULT_DUE_DATE = exports.INVALID_ENTITY_ID = exports.DEFAULT_REQUEST_ID = exports.DEFAULT_AUTH_TOKEN = exports.DEFAULT_PROJECT_VIEW_STYLE = exports.DEFAULT_PROJECT_NAME = exports.DEFAULT_PROJECT_ID = exports.DEFAULT_ORDER = exports.DEFAULT_TASK_PRIORITY = exports.DEFAULT_TASK_DESCRIPTION = exports.DEFAULT_TASK_CONTENT = exports.DEFAULT_TASK_ID = void 0;
4
4
  const url_helpers_1 = require("../utils/url-helpers");
5
5
  exports.DEFAULT_TASK_ID = '1234';
6
6
  exports.DEFAULT_TASK_CONTENT = 'This is a task';
@@ -280,6 +280,30 @@ exports.DEFAULT_COLLABORATOR_STATE = {
280
280
  state: 'active',
281
281
  isDeleted: false,
282
282
  };
283
+ exports.DEFAULT_GOAL_ID = '550e8400-e29b-41d4-a716-446655440000';
284
+ exports.DEFAULT_GOAL = {
285
+ id: exports.DEFAULT_GOAL_ID,
286
+ ownerType: 'USER',
287
+ ownerId: DEFAULT_USER_ID,
288
+ name: 'Ship v2',
289
+ description: 'Launch the new version',
290
+ deadline: '2026-04-03',
291
+ parentGoalId: null,
292
+ childOrder: 0,
293
+ isCompleted: false,
294
+ completedAt: null,
295
+ responsibleUid: null,
296
+ isDeleted: false,
297
+ progress: {
298
+ totalTaskCount: 5,
299
+ completedTaskCount: 2,
300
+ percentage: 40,
301
+ },
302
+ creatorUid: DEFAULT_USER_ID,
303
+ createdAt: defaultDate(),
304
+ updatedAt: defaultDate(),
305
+ };
306
+ exports.DEFAULT_GOAL_NO_PROGRESS = Object.assign(Object.assign({}, exports.DEFAULT_GOAL), { id: 'e5f6g7h8-e29b-41d4-a716-446655440001', progress: undefined });
283
307
  exports.DEFAULT_NOTE = {
284
308
  id: DEFAULT_COMMENT_ID,
285
309
  projectId: exports.DEFAULT_PROJECT_ID,