@doist/todoist-sdk 9.2.0 → 9.3.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.
@@ -41,7 +41,7 @@ class AppClient extends base_client_1.BaseClient {
41
41
  return (0, validators_1.validateAppArray)(response.data);
42
42
  }
43
43
  async getApp(appId, requestId) {
44
- zod_1.z.string().min(1).parse(appId);
44
+ validators_1.IdSchema.parse(appId);
45
45
  const response = await (0, http_client_1.request)({
46
46
  httpMethod: 'GET',
47
47
  baseUri: this.apiRootBase,
@@ -65,7 +65,7 @@ class AppClient extends base_client_1.BaseClient {
65
65
  return (0, validators_1.validateApp)(response.data);
66
66
  }
67
67
  async updateApp(appId, args, requestId) {
68
- zod_1.z.string().min(1).parse(appId);
68
+ validators_1.IdSchema.parse(appId);
69
69
  const { appTokenScopes } = args, rest = __rest(args, ["appTokenScopes"]);
70
70
  const payload = Object.assign({}, rest);
71
71
  if (appTokenScopes !== undefined) {
@@ -83,7 +83,7 @@ class AppClient extends base_client_1.BaseClient {
83
83
  return (0, validators_1.validateAppWithUserCount)(response.data);
84
84
  }
85
85
  async deleteApp(appId, requestId) {
86
- zod_1.z.string().min(1).parse(appId);
86
+ validators_1.IdSchema.parse(appId);
87
87
  const response = await (0, http_client_1.request)({
88
88
  httpMethod: 'DELETE',
89
89
  baseUri: this.apiRootBase,
@@ -95,7 +95,7 @@ class AppClient extends base_client_1.BaseClient {
95
95
  return (0, http_client_1.isSuccess)(response);
96
96
  }
97
97
  async getAppSecrets(appId, requestId) {
98
- zod_1.z.string().min(1).parse(appId);
98
+ validators_1.IdSchema.parse(appId);
99
99
  const response = await (0, http_client_1.request)({
100
100
  httpMethod: 'GET',
101
101
  baseUri: this.apiRootBase,
@@ -107,7 +107,7 @@ class AppClient extends base_client_1.BaseClient {
107
107
  return (0, validators_1.validateAppSecrets)(response.data);
108
108
  }
109
109
  async resetAppClientSecret(appId, requestId) {
110
- zod_1.z.string().min(1).parse(appId);
110
+ validators_1.IdSchema.parse(appId);
111
111
  const response = await (0, http_client_1.request)({
112
112
  httpMethod: 'DELETE',
113
113
  baseUri: this.apiRootBase,
@@ -119,7 +119,7 @@ class AppClient extends base_client_1.BaseClient {
119
119
  return (0, validators_1.validateAppWithUserCount)(response.data);
120
120
  }
121
121
  async revokeAppTokens(appId, requestId) {
122
- zod_1.z.string().min(1).parse(appId);
122
+ validators_1.IdSchema.parse(appId);
123
123
  const response = await (0, http_client_1.request)({
124
124
  httpMethod: 'DELETE',
125
125
  baseUri: this.apiRootBase,
@@ -131,7 +131,7 @@ class AppClient extends base_client_1.BaseClient {
131
131
  return (0, validators_1.validateAppWithUserCount)(response.data);
132
132
  }
133
133
  async uploadAppIcon({ appId, file, fileName = '', size = 'medium' }, requestId) {
134
- zod_1.z.string().min(1).parse(appId);
134
+ validators_1.IdSchema.parse(appId);
135
135
  if (Buffer.isBuffer(file) && file.length === 0) {
136
136
  throw new Error('Cannot upload empty image file');
137
137
  }
@@ -148,7 +148,7 @@ class AppClient extends base_client_1.BaseClient {
148
148
  return (0, validators_1.validateAppWithUserCount)((0, case_conversion_1.camelCaseKeys)(data));
149
149
  }
150
150
  async getAppTestToken(appId, requestId) {
151
- zod_1.z.string().min(1).parse(appId);
151
+ validators_1.IdSchema.parse(appId);
152
152
  const response = await (0, http_client_1.request)({
153
153
  httpMethod: 'GET',
154
154
  baseUri: this.apiRootBase,
@@ -160,7 +160,7 @@ class AppClient extends base_client_1.BaseClient {
160
160
  return (0, validators_1.validateAppTestToken)(response.data);
161
161
  }
162
162
  async createAppTestToken(appId, requestId) {
163
- zod_1.z.string().min(1).parse(appId);
163
+ validators_1.IdSchema.parse(appId);
164
164
  const response = await (0, http_client_1.request)({
165
165
  httpMethod: 'PUT',
166
166
  baseUri: this.apiRootBase,
@@ -172,7 +172,7 @@ class AppClient extends base_client_1.BaseClient {
172
172
  return (0, validators_1.validateAppTestToken)(response.data);
173
173
  }
174
174
  async getAppDistributionToken(appId, requestId) {
175
- zod_1.z.string().min(1).parse(appId);
175
+ validators_1.IdSchema.parse(appId);
176
176
  const response = await (0, http_client_1.request)({
177
177
  httpMethod: 'GET',
178
178
  baseUri: this.apiRootBase,
@@ -184,7 +184,7 @@ class AppClient extends base_client_1.BaseClient {
184
184
  return (0, validators_1.validateAppDistributionToken)(response.data);
185
185
  }
186
186
  async getAppVerificationToken(appId, requestId) {
187
- zod_1.z.string().min(1).parse(appId);
187
+ validators_1.IdSchema.parse(appId);
188
188
  const response = await (0, http_client_1.request)({
189
189
  httpMethod: 'GET',
190
190
  baseUri: this.apiRootBase,
@@ -196,7 +196,7 @@ class AppClient extends base_client_1.BaseClient {
196
196
  return (0, validators_1.validateAppVerificationToken)(response.data);
197
197
  }
198
198
  async resetAppVerificationToken(appId, requestId) {
199
- zod_1.z.string().min(1).parse(appId);
199
+ validators_1.IdSchema.parse(appId);
200
200
  const response = await (0, http_client_1.request)({
201
201
  httpMethod: 'DELETE',
202
202
  baseUri: this.apiRootBase,
@@ -221,7 +221,7 @@ class AppClient extends base_client_1.BaseClient {
221
221
  }
222
222
  // --- App webhooks ---
223
223
  async getAppWebhook(appId, requestId) {
224
- zod_1.z.string().min(1).parse(appId);
224
+ validators_1.IdSchema.parse(appId);
225
225
  const response = await (0, http_client_1.request)({
226
226
  httpMethod: 'GET',
227
227
  baseUri: this.apiRootBase,
@@ -246,7 +246,7 @@ class AppClient extends base_client_1.BaseClient {
246
246
  return (0, validators_1.validateAppWebhook)(response.data);
247
247
  }
248
248
  async deleteAppWebhook(appId, requestId) {
249
- zod_1.z.string().min(1).parse(appId);
249
+ validators_1.IdSchema.parse(appId);
250
250
  const response = await (0, http_client_1.request)({
251
251
  httpMethod: 'DELETE',
252
252
  baseUri: this.apiRootBase,
@@ -282,7 +282,7 @@ class AppClient extends base_client_1.BaseClient {
282
282
  return (0, validators_1.validateAppInstallation)(response.data);
283
283
  }
284
284
  async getAppInstallation(installationId, requestId) {
285
- zod_1.z.string().min(1).parse(installationId);
285
+ validators_1.IdSchema.parse(installationId);
286
286
  const response = await (0, http_client_1.request)({
287
287
  httpMethod: 'GET',
288
288
  baseUri: this.apiRootBase,
@@ -294,7 +294,7 @@ class AppClient extends base_client_1.BaseClient {
294
294
  return (0, validators_1.validateAppInstallation)(response.data);
295
295
  }
296
296
  async updateAppInstallation(installationId, args, requestId) {
297
- zod_1.z.string().min(1).parse(installationId);
297
+ validators_1.IdSchema.parse(installationId);
298
298
  const response = await (0, http_client_1.request)({
299
299
  httpMethod: 'POST',
300
300
  baseUri: this.apiRootBase,
@@ -307,7 +307,7 @@ class AppClient extends base_client_1.BaseClient {
307
307
  return (0, validators_1.validateAppInstallation)(response.data);
308
308
  }
309
309
  async uninstallApp(installationId, requestId) {
310
- zod_1.z.string().min(1).parse(installationId);
310
+ validators_1.IdSchema.parse(installationId);
311
311
  const response = await (0, http_client_1.request)({
312
312
  httpMethod: 'DELETE',
313
313
  baseUri: this.apiRootBase,
@@ -12,7 +12,6 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.CommentClient = void 0;
15
- const zod_1 = require("zod");
16
15
  const endpoints_1 = require("../consts/endpoints");
17
16
  const http_client_1 = require("../transport/http-client");
18
17
  const request_helpers_1 = require("../utils/request-helpers");
@@ -40,7 +39,7 @@ class CommentClient extends base_client_1.BaseClient {
40
39
  };
41
40
  }
42
41
  async getComment(id) {
43
- zod_1.z.string().min(1).parse(id);
42
+ validators_1.IdSchema.parse(id);
44
43
  const response = await (0, http_client_1.request)({
45
44
  httpMethod: 'GET',
46
45
  baseUri: this.syncApiBase,
@@ -64,7 +63,7 @@ class CommentClient extends base_client_1.BaseClient {
64
63
  return (0, validators_1.validateComment)(response.data);
65
64
  }
66
65
  async updateComment(id, args, requestId) {
67
- zod_1.z.string().min(1).parse(id);
66
+ validators_1.IdSchema.parse(id);
68
67
  const response = await (0, http_client_1.request)({
69
68
  httpMethod: 'POST',
70
69
  baseUri: this.syncApiBase,
@@ -77,7 +76,7 @@ class CommentClient extends base_client_1.BaseClient {
77
76
  return (0, validators_1.validateComment)(response.data);
78
77
  }
79
78
  async deleteComment(id, requestId) {
80
- zod_1.z.string().min(1).parse(id);
79
+ validators_1.IdSchema.parse(id);
81
80
  const response = await (0, http_client_1.request)({
82
81
  httpMethod: 'DELETE',
83
82
  baseUri: this.syncApiBase,
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FolderClient = void 0;
4
- const zod_1 = require("zod");
5
4
  const endpoints_1 = require("../consts/endpoints");
6
5
  const http_client_1 = require("../transport/http-client");
7
6
  const request_helpers_1 = require("../utils/request-helpers");
@@ -29,7 +28,7 @@ class FolderClient extends base_client_1.BaseClient {
29
28
  };
30
29
  }
31
30
  async getFolder(id) {
32
- zod_1.z.string().min(1).parse(id);
31
+ validators_1.IdSchema.parse(id);
33
32
  const response = await (0, http_client_1.request)({
34
33
  httpMethod: 'GET',
35
34
  baseUri: this.syncApiBase,
@@ -52,7 +51,7 @@ class FolderClient extends base_client_1.BaseClient {
52
51
  return (0, validators_1.validateFolder)(response.data);
53
52
  }
54
53
  async updateFolder(id, args, requestId) {
55
- zod_1.z.string().min(1).parse(id);
54
+ validators_1.IdSchema.parse(id);
56
55
  const response = await (0, http_client_1.request)({
57
56
  httpMethod: 'POST',
58
57
  baseUri: this.syncApiBase,
@@ -65,7 +64,7 @@ class FolderClient extends base_client_1.BaseClient {
65
64
  return (0, validators_1.validateFolder)(response.data);
66
65
  }
67
66
  async deleteFolder(id, requestId) {
68
- zod_1.z.string().min(1).parse(id);
67
+ validators_1.IdSchema.parse(id);
69
68
  const response = await (0, http_client_1.request)({
70
69
  httpMethod: 'DELETE',
71
70
  baseUri: this.syncApiBase,
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InsightsClient = void 0;
4
- const zod_1 = require("zod");
5
4
  const endpoints_1 = require("../consts/endpoints");
6
5
  const http_client_1 = require("../transport/http-client");
7
6
  const validators_1 = require("../utils/validators");
@@ -16,7 +15,7 @@ const base_client_1 = require("./base-client");
16
15
  */
17
16
  class InsightsClient extends base_client_1.BaseClient {
18
17
  async getProjectActivityStats(projectId, args = {}) {
19
- zod_1.z.string().min(1).parse(projectId);
18
+ validators_1.IdSchema.parse(projectId);
20
19
  const response = await (0, http_client_1.request)({
21
20
  httpMethod: 'GET',
22
21
  baseUri: this.syncApiBase,
@@ -28,7 +27,7 @@ class InsightsClient extends base_client_1.BaseClient {
28
27
  return (0, validators_1.validateProjectActivityStats)(response.data);
29
28
  }
30
29
  async getProjectHealth(projectId) {
31
- zod_1.z.string().min(1).parse(projectId);
30
+ validators_1.IdSchema.parse(projectId);
32
31
  const response = await (0, http_client_1.request)({
33
32
  httpMethod: 'GET',
34
33
  baseUri: this.syncApiBase,
@@ -39,7 +38,7 @@ class InsightsClient extends base_client_1.BaseClient {
39
38
  return (0, validators_1.validateProjectHealth)(response.data);
40
39
  }
41
40
  async getProjectHealthContext(projectId) {
42
- zod_1.z.string().min(1).parse(projectId);
41
+ validators_1.IdSchema.parse(projectId);
43
42
  const response = await (0, http_client_1.request)({
44
43
  httpMethod: 'GET',
45
44
  baseUri: this.syncApiBase,
@@ -50,7 +49,7 @@ class InsightsClient extends base_client_1.BaseClient {
50
49
  return (0, validators_1.validateProjectHealthContext)(response.data);
51
50
  }
52
51
  async getProjectProgress(projectId) {
53
- zod_1.z.string().min(1).parse(projectId);
52
+ validators_1.IdSchema.parse(projectId);
54
53
  const response = await (0, http_client_1.request)({
55
54
  httpMethod: 'GET',
56
55
  baseUri: this.syncApiBase,
@@ -61,7 +60,7 @@ class InsightsClient extends base_client_1.BaseClient {
61
60
  return (0, validators_1.validateProjectProgress)(response.data);
62
61
  }
63
62
  async getWorkspaceInsights(workspaceId, args = {}) {
64
- zod_1.z.string().min(1).parse(workspaceId);
63
+ validators_1.IdSchema.parse(workspaceId);
65
64
  const response = await (0, http_client_1.request)({
66
65
  httpMethod: 'GET',
67
66
  baseUri: this.syncApiBase,
@@ -73,7 +72,7 @@ class InsightsClient extends base_client_1.BaseClient {
73
72
  return (0, validators_1.validateWorkspaceInsights)(response.data);
74
73
  }
75
74
  async analyzeProjectHealth(projectId, requestId) {
76
- zod_1.z.string().min(1).parse(projectId);
75
+ validators_1.IdSchema.parse(projectId);
77
76
  const response = await (0, http_client_1.request)({
78
77
  httpMethod: 'POST',
79
78
  baseUri: this.syncApiBase,
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LabelClient = void 0;
4
- const zod_1 = require("zod");
5
4
  const endpoints_1 = require("../consts/endpoints");
6
5
  const http_client_1 = require("../transport/http-client");
7
6
  const request_helpers_1 = require("../utils/request-helpers");
@@ -15,7 +14,7 @@ const base_client_1 = require("./base-client");
15
14
  */
16
15
  class LabelClient extends base_client_1.BaseClient {
17
16
  async getLabel(id) {
18
- zod_1.z.string().min(1).parse(id);
17
+ validators_1.IdSchema.parse(id);
19
18
  const response = await (0, http_client_1.request)({
20
19
  httpMethod: 'GET',
21
20
  baseUri: this.syncApiBase,
@@ -66,7 +65,7 @@ class LabelClient extends base_client_1.BaseClient {
66
65
  return (0, validators_1.validateLabel)(response.data);
67
66
  }
68
67
  async updateLabel(id, args, requestId) {
69
- zod_1.z.string().min(1).parse(id);
68
+ validators_1.IdSchema.parse(id);
70
69
  const response = await (0, http_client_1.request)({
71
70
  httpMethod: 'POST',
72
71
  baseUri: this.syncApiBase,
@@ -79,7 +78,7 @@ class LabelClient extends base_client_1.BaseClient {
79
78
  return (0, validators_1.validateLabel)(response.data);
80
79
  }
81
80
  async deleteLabel(id, requestId) {
82
- zod_1.z.string().min(1).parse(id);
81
+ validators_1.IdSchema.parse(id);
83
82
  const response = await (0, http_client_1.request)({
84
83
  httpMethod: 'DELETE',
85
84
  baseUri: this.syncApiBase,
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProjectClient = void 0;
4
- const zod_1 = require("zod");
5
4
  const endpoints_1 = require("../consts/endpoints");
6
5
  const http_client_1 = require("../transport/http-client");
7
6
  const request_helpers_1 = require("../utils/request-helpers");
@@ -15,7 +14,7 @@ const base_client_1 = require("./base-client");
15
14
  */
16
15
  class ProjectClient extends base_client_1.BaseClient {
17
16
  async getProject(id) {
18
- zod_1.z.string().min(1).parse(id);
17
+ validators_1.IdSchema.parse(id);
19
18
  const response = await (0, http_client_1.request)({
20
19
  httpMethod: 'GET',
21
20
  baseUri: this.syncApiBase,
@@ -80,7 +79,7 @@ class ProjectClient extends base_client_1.BaseClient {
80
79
  return (0, validators_1.validateProject)(response.data);
81
80
  }
82
81
  async updateProject(id, args, requestId) {
83
- zod_1.z.string().min(1).parse(id);
82
+ validators_1.IdSchema.parse(id);
84
83
  const response = await (0, http_client_1.request)({
85
84
  httpMethod: 'POST',
86
85
  baseUri: this.syncApiBase,
@@ -93,7 +92,7 @@ class ProjectClient extends base_client_1.BaseClient {
93
92
  return (0, validators_1.validateProject)(response.data);
94
93
  }
95
94
  async deleteProject(id, requestId) {
96
- zod_1.z.string().min(1).parse(id);
95
+ validators_1.IdSchema.parse(id);
97
96
  const response = await (0, http_client_1.request)({
98
97
  httpMethod: 'DELETE',
99
98
  baseUri: this.syncApiBase,
@@ -105,7 +104,7 @@ class ProjectClient extends base_client_1.BaseClient {
105
104
  return (0, http_client_1.isSuccess)(response);
106
105
  }
107
106
  async archiveProject(id, requestId) {
108
- zod_1.z.string().min(1).parse(id);
107
+ validators_1.IdSchema.parse(id);
109
108
  const response = await (0, http_client_1.request)({
110
109
  httpMethod: 'POST',
111
110
  baseUri: this.syncApiBase,
@@ -117,7 +116,7 @@ class ProjectClient extends base_client_1.BaseClient {
117
116
  return (0, validators_1.validateProject)(response.data);
118
117
  }
119
118
  async unarchiveProject(id, requestId) {
120
- zod_1.z.string().min(1).parse(id);
119
+ validators_1.IdSchema.parse(id);
121
120
  const response = await (0, http_client_1.request)({
122
121
  httpMethod: 'POST',
123
122
  baseUri: this.syncApiBase,
@@ -174,7 +173,7 @@ class ProjectClient extends base_client_1.BaseClient {
174
173
  return data;
175
174
  }
176
175
  async getFullProject(id, args = {}) {
177
- zod_1.z.string().min(1).parse(id);
176
+ validators_1.IdSchema.parse(id);
178
177
  const { data } = await (0, http_client_1.request)({
179
178
  httpMethod: 'GET',
180
179
  baseUri: this.syncApiBase,
@@ -193,7 +192,7 @@ class ProjectClient extends base_client_1.BaseClient {
193
192
  };
194
193
  }
195
194
  async joinProject(id, requestId) {
196
- zod_1.z.string().min(1).parse(id);
195
+ validators_1.IdSchema.parse(id);
197
196
  const { data } = await (0, http_client_1.request)({
198
197
  httpMethod: 'POST',
199
198
  baseUri: this.syncApiBase,
@@ -214,7 +213,7 @@ class ProjectClient extends base_client_1.BaseClient {
214
213
  };
215
214
  }
216
215
  async getProjectCollaborators(projectId, args = {}) {
217
- zod_1.z.string().min(1).parse(projectId);
216
+ validators_1.IdSchema.parse(projectId);
218
217
  const { data: { results, nextCursor }, } = await (0, http_client_1.request)({
219
218
  httpMethod: 'GET',
220
219
  baseUri: this.syncApiBase,
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SectionClient = void 0;
4
- const zod_1 = require("zod");
5
4
  const endpoints_1 = require("../consts/endpoints");
6
5
  const http_client_1 = require("../transport/http-client");
7
6
  const request_helpers_1 = require("../utils/request-helpers");
@@ -43,7 +42,7 @@ class SectionClient extends base_client_1.BaseClient {
43
42
  };
44
43
  }
45
44
  async getSection(id) {
46
- zod_1.z.string().min(1).parse(id);
45
+ validators_1.IdSchema.parse(id);
47
46
  const response = await (0, http_client_1.request)({
48
47
  httpMethod: 'GET',
49
48
  baseUri: this.syncApiBase,
@@ -66,7 +65,7 @@ class SectionClient extends base_client_1.BaseClient {
66
65
  return (0, validators_1.validateSection)(response.data);
67
66
  }
68
67
  async updateSection(id, args, requestId) {
69
- zod_1.z.string().min(1).parse(id);
68
+ validators_1.IdSchema.parse(id);
70
69
  const response = await (0, http_client_1.request)({
71
70
  httpMethod: 'POST',
72
71
  baseUri: this.syncApiBase,
@@ -79,7 +78,7 @@ class SectionClient extends base_client_1.BaseClient {
79
78
  return (0, validators_1.validateSection)(response.data);
80
79
  }
81
80
  async deleteSection(id, requestId) {
82
- zod_1.z.string().min(1).parse(id);
81
+ validators_1.IdSchema.parse(id);
83
82
  const response = await (0, http_client_1.request)({
84
83
  httpMethod: 'DELETE',
85
84
  baseUri: this.syncApiBase,
@@ -91,7 +90,7 @@ class SectionClient extends base_client_1.BaseClient {
91
90
  return (0, http_client_1.isSuccess)(response);
92
91
  }
93
92
  async archiveSection(id, requestId) {
94
- zod_1.z.string().min(1).parse(id);
93
+ validators_1.IdSchema.parse(id);
95
94
  const response = await (0, http_client_1.request)({
96
95
  httpMethod: 'POST',
97
96
  baseUri: this.syncApiBase,
@@ -103,7 +102,7 @@ class SectionClient extends base_client_1.BaseClient {
103
102
  return (0, validators_1.validateSection)(response.data);
104
103
  }
105
104
  async unarchiveSection(id, requestId) {
106
- zod_1.z.string().min(1).parse(id);
105
+ validators_1.IdSchema.parse(id);
107
106
  const response = await (0, http_client_1.request)({
108
107
  httpMethod: 'POST',
109
108
  baseUri: this.syncApiBase,
@@ -13,7 +13,6 @@ var __rest = (this && this.__rest) || function (s, e) {
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.TaskClient = void 0;
15
15
  const uuid_1 = require("uuid");
16
- const zod_1 = require("zod");
17
16
  const endpoints_1 = require("../consts/endpoints");
18
17
  const http_client_1 = require("../transport/http-client");
19
18
  const sync_request_1 = require("../transport/sync-request");
@@ -31,7 +30,7 @@ const MAX_COMMAND_COUNT = 100;
31
30
  */
32
31
  class TaskClient extends base_client_1.BaseClient {
33
32
  async getTask(id) {
34
- zod_1.z.string().min(1).parse(id);
33
+ validators_1.IdSchema.parse(id);
35
34
  const response = await (0, http_client_1.request)({
36
35
  httpMethod: 'GET',
37
36
  baseUri: this.syncApiBase,
@@ -155,7 +154,7 @@ class TaskClient extends base_client_1.BaseClient {
155
154
  return (0, validators_1.validateTask)(response.data);
156
155
  }
157
156
  async updateTask(id, args, requestId) {
158
- zod_1.z.string().min(1).parse(id);
157
+ validators_1.IdSchema.parse(id);
159
158
  // Translate SDK alias for due-date clearing to Todoist's accepted payload value.
160
159
  const normalizedArgs = args.dueString === null ? Object.assign(Object.assign({}, args), { dueString: 'no date' }) : args;
161
160
  // Process content if both content and isUncompletable are provided
@@ -203,7 +202,7 @@ class TaskClient extends base_client_1.BaseClient {
203
202
  return (0, validators_1.validateTaskArray)(syncTasks);
204
203
  }
205
204
  async moveTask(id, args, requestId) {
206
- zod_1.z.string().min(1).parse(id);
205
+ validators_1.IdSchema.parse(id);
207
206
  const response = await (0, http_client_1.request)({
208
207
  httpMethod: 'POST',
209
208
  baseUri: this.syncApiBase,
@@ -216,7 +215,7 @@ class TaskClient extends base_client_1.BaseClient {
216
215
  return (0, validators_1.validateTask)(response.data);
217
216
  }
218
217
  async closeTask(id, requestId) {
219
- zod_1.z.string().min(1).parse(id);
218
+ validators_1.IdSchema.parse(id);
220
219
  const response = await (0, http_client_1.request)({
221
220
  httpMethod: 'POST',
222
221
  baseUri: this.syncApiBase,
@@ -228,7 +227,7 @@ class TaskClient extends base_client_1.BaseClient {
228
227
  return (0, http_client_1.isSuccess)(response);
229
228
  }
230
229
  async reopenTask(id, requestId) {
231
- zod_1.z.string().min(1).parse(id);
230
+ validators_1.IdSchema.parse(id);
232
231
  const response = await (0, http_client_1.request)({
233
232
  httpMethod: 'POST',
234
233
  baseUri: this.syncApiBase,
@@ -240,7 +239,7 @@ class TaskClient extends base_client_1.BaseClient {
240
239
  return (0, http_client_1.isSuccess)(response);
241
240
  }
242
241
  async deleteTask(id, requestId) {
243
- zod_1.z.string().min(1).parse(id);
242
+ validators_1.IdSchema.parse(id);
244
243
  const response = await (0, http_client_1.request)({
245
244
  httpMethod: 'DELETE',
246
245
  baseUri: this.syncApiBase,
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UiExtensionClient = void 0;
4
- const zod_1 = require("zod");
5
4
  const endpoints_1 = require("../consts/endpoints");
6
5
  const http_client_1 = require("../transport/http-client");
7
6
  const case_conversion_1 = require("../utils/case-conversion");
@@ -17,7 +16,7 @@ const base_client_1 = require("./base-client");
17
16
  */
18
17
  class UiExtensionClient extends base_client_1.BaseClient {
19
18
  async getUiExtension(uiExtensionId, requestId) {
20
- zod_1.z.string().min(1).parse(uiExtensionId);
19
+ validators_1.IdSchema.parse(uiExtensionId);
21
20
  const response = await (0, http_client_1.request)({
22
21
  httpMethod: 'GET',
23
22
  baseUri: this.apiRootBase,
@@ -40,7 +39,7 @@ class UiExtensionClient extends base_client_1.BaseClient {
40
39
  return (0, validators_1.validateUiExtensionArray)(response.data);
41
40
  }
42
41
  async getUiExtensionsForApp(appId, requestId) {
43
- zod_1.z.string().min(1).parse(appId);
42
+ validators_1.IdSchema.parse(appId);
44
43
  const response = await (0, http_client_1.request)({
45
44
  httpMethod: 'GET',
46
45
  baseUri: this.apiRootBase,
@@ -64,7 +63,7 @@ class UiExtensionClient extends base_client_1.BaseClient {
64
63
  return (0, validators_1.validateUiExtension)(response.data);
65
64
  }
66
65
  async updateUiExtension(uiExtensionId, args, requestId) {
67
- zod_1.z.string().min(1).parse(uiExtensionId);
66
+ validators_1.IdSchema.parse(uiExtensionId);
68
67
  const response = await (0, http_client_1.request)({
69
68
  httpMethod: 'PATCH',
70
69
  baseUri: this.apiRootBase,
@@ -77,7 +76,7 @@ class UiExtensionClient extends base_client_1.BaseClient {
77
76
  return (0, validators_1.validateUiExtension)(response.data);
78
77
  }
79
78
  async deleteUiExtension(uiExtensionId, requestId) {
80
- zod_1.z.string().min(1).parse(uiExtensionId);
79
+ validators_1.IdSchema.parse(uiExtensionId);
81
80
  const response = await (0, http_client_1.request)({
82
81
  httpMethod: 'DELETE',
83
82
  baseUri: this.apiRootBase,
@@ -12,7 +12,6 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.WorkspaceClient = void 0;
15
- const zod_1 = require("zod");
16
15
  const endpoints_1 = require("../consts/endpoints");
17
16
  const http_client_1 = require("../transport/http-client");
18
17
  const multipart_upload_1 = require("../utils/multipart-upload");
@@ -199,7 +198,7 @@ class WorkspaceClient extends base_client_1.BaseClient {
199
198
  return (0, validators_1.validateWorkspaceArray)(response.data);
200
199
  }
201
200
  async getWorkspace(id, requestId) {
202
- zod_1.z.string().min(1).parse(id);
201
+ validators_1.IdSchema.parse(id);
203
202
  const response = await (0, http_client_1.request)({
204
203
  httpMethod: 'GET',
205
204
  baseUri: this.syncApiBase,
@@ -223,7 +222,7 @@ class WorkspaceClient extends base_client_1.BaseClient {
223
222
  return (0, validators_1.validateWorkspace)(response.data);
224
223
  }
225
224
  async updateWorkspace(id, args, requestId) {
226
- zod_1.z.string().min(1).parse(id);
225
+ validators_1.IdSchema.parse(id);
227
226
  const response = await (0, http_client_1.request)({
228
227
  httpMethod: 'POST',
229
228
  baseUri: this.syncApiBase,
@@ -236,7 +235,7 @@ class WorkspaceClient extends base_client_1.BaseClient {
236
235
  return (0, validators_1.validateWorkspace)(response.data);
237
236
  }
238
237
  async deleteWorkspace(id, requestId) {
239
- zod_1.z.string().min(1).parse(id);
238
+ validators_1.IdSchema.parse(id);
240
239
  const response = await (0, http_client_1.request)({
241
240
  httpMethod: 'DELETE',
242
241
  baseUri: this.syncApiBase,
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.validateFolderArray = exports.validateFolder = exports.validateCollaboratorStateArray = exports.validateCollaboratorState = exports.validateCollaboratorArray = exports.validateCollaborator = exports.validateFilterArray = exports.validateFilter = exports.validateMovedIdArray = exports.validateMovedId = exports.validateIdMappingArray = exports.validateIdMapping = exports.validateBackupArray = exports.validateBackup = exports.validateWorkspaceInsights = exports.validateProjectProgress = exports.validateProjectHealthContext = exports.validateProjectHealth = exports.validateProjectActivityStats = exports.validateWorkspaceUserTaskArray = exports.validateWorkspaceUserTask = exports.validateMemberActivityInfoArray = exports.validateMemberActivityInfo = exports.validateWorkspaceArray = exports.validateWorkspace = exports.validateJoinWorkspaceResult = exports.validateWorkspacePlanDetails = exports.validateWorkspaceInvitationArray = exports.validateWorkspaceInvitation = exports.validateWorkspaceUserArray = exports.validateWorkspaceUser = exports.validateAttachment = exports.validateActivityEventArray = exports.validateActivityEvent = exports.validateCurrentUser = exports.validateProductivityStats = exports.validateUserArray = exports.validateUser = exports.validateCommentArray = exports.validateComment = exports.validateLabelArray = exports.validateLabel = exports.validateSectionArray = exports.validateSection = exports.validateWorkspaceProjectArray = exports.validateWorkspaceProject = exports.validateProjectArray = exports.validateProject = exports.validateTaskArray = exports.validateTask = void 0;
5
- exports.validateUiExtensionArray = exports.validateUiExtension = exports.validateUserAuthorizationArray = exports.validateUserAuthorization = exports.validateAppInstallationArray = exports.validateAppInstallation = exports.validateAppWebhook = exports.validateAppByDistributionToken = exports.validateAppDistributionToken = exports.validateAppTestToken = exports.validateAppVerificationToken = exports.validateAppSecrets = exports.validateAppWithUserCount = exports.validateAppArray = exports.validateApp = exports.validateSuggestionArray = exports.validateSuggestion = exports.validateUserSettings = exports.validateSyncUser = exports.validateSyncWorkspaceArray = exports.validateSyncWorkspace = exports.validateLiveNotificationArray = exports.validateLiveNotification = exports.validateUserPlanLimits = exports.validateProjectViewOptionsDefaultsArray = exports.validateProjectViewOptionsDefaults = exports.validateViewOptionsArray = exports.validateViewOptions = exports.validateCompletedInfoArray = exports.validateCompletedInfo = exports.validateLocationReminderArray = exports.validateLocationReminder = exports.validateReminderArray = exports.validateReminder = exports.validateCalendarAccountArray = exports.validateCalendarAccount = exports.validateCalendarArray = exports.validateCalendar = exports.validateWorkspaceGoalArray = exports.validateWorkspaceGoal = exports.validateWorkspaceFilterArray = exports.validateWorkspaceFilter = exports.validateTooltips = exports.validateNoteArray = exports.validateNote = void 0;
4
+ exports.validateFolder = exports.validateCollaboratorStateArray = exports.validateCollaboratorState = exports.validateCollaboratorArray = exports.validateCollaborator = exports.validateFilterArray = exports.validateFilter = exports.validateMovedIdArray = exports.validateMovedId = exports.validateIdMappingArray = exports.validateIdMapping = exports.validateBackupArray = exports.validateBackup = exports.validateWorkspaceInsights = exports.validateProjectProgress = exports.validateProjectHealthContext = exports.validateProjectHealth = exports.validateProjectActivityStats = exports.validateWorkspaceUserTaskArray = exports.validateWorkspaceUserTask = exports.validateMemberActivityInfoArray = exports.validateMemberActivityInfo = exports.validateWorkspaceArray = exports.validateWorkspace = exports.validateJoinWorkspaceResult = exports.validateWorkspacePlanDetails = exports.validateWorkspaceInvitationArray = exports.validateWorkspaceInvitation = exports.validateWorkspaceUserArray = exports.validateWorkspaceUser = exports.validateAttachment = exports.validateActivityEventArray = exports.validateActivityEvent = exports.validateCurrentUser = exports.validateProductivityStats = exports.validateUserArray = exports.validateUser = exports.validateCommentArray = exports.validateComment = exports.validateLabelArray = exports.validateLabel = exports.validateSectionArray = exports.validateSection = exports.validateWorkspaceProjectArray = exports.validateWorkspaceProject = exports.validateProjectArray = exports.validateProject = exports.validateTaskArray = exports.validateTask = exports.IdSchema = void 0;
5
+ exports.validateUiExtensionArray = exports.validateUiExtension = exports.validateUserAuthorizationArray = exports.validateUserAuthorization = exports.validateAppInstallationArray = exports.validateAppInstallation = exports.validateAppWebhook = exports.validateAppByDistributionToken = exports.validateAppDistributionToken = exports.validateAppTestToken = exports.validateAppVerificationToken = exports.validateAppSecrets = exports.validateAppWithUserCount = exports.validateAppArray = exports.validateApp = exports.validateSuggestionArray = exports.validateSuggestion = exports.validateUserSettings = exports.validateSyncUser = exports.validateSyncWorkspaceArray = exports.validateSyncWorkspace = exports.validateLiveNotificationArray = exports.validateLiveNotification = exports.validateUserPlanLimits = exports.validateProjectViewOptionsDefaultsArray = exports.validateProjectViewOptionsDefaults = exports.validateViewOptionsArray = exports.validateViewOptions = exports.validateCompletedInfoArray = exports.validateCompletedInfo = exports.validateLocationReminderArray = exports.validateLocationReminder = exports.validateReminderArray = exports.validateReminder = exports.validateCalendarAccountArray = exports.validateCalendarAccount = exports.validateCalendarArray = exports.validateCalendar = exports.validateWorkspaceGoalArray = exports.validateWorkspaceGoal = exports.validateWorkspaceFilterArray = exports.validateWorkspaceFilter = exports.validateTooltips = exports.validateNoteArray = exports.validateNote = exports.validateFolderArray = void 0;
6
6
  exports.parseSyncResponse = parseSyncResponse;
7
7
  const zod_1 = require("zod");
8
8
  const types_1 = require("../types/activity/types");
@@ -27,6 +27,11 @@ function createValidator(schema) {
27
27
  validateArray: (input) => zod_1.z.array(schema).parse(input),
28
28
  };
29
29
  }
30
+ const TMP_ID_MESSAGE = 'This looks like a client-side placeholder — wait for sync to complete before calling the API.';
31
+ exports.IdSchema = zod_1.z
32
+ .string()
33
+ .min(1)
34
+ .refine((id) => !id.startsWith('tmp-'), { message: TMP_ID_MESSAGE });
30
35
  // Entity validators
31
36
  _a = createValidator(types_11.TaskSchema), exports.validateTask = _a.validate, exports.validateTaskArray = _a.validateArray;
32
37
  /**
@@ -15,7 +15,7 @@ import { isSuccess, request } from '../transport/http-client.js';
15
15
  import { webhookEventToWireName } from '../types/apps/index.js';
16
16
  import { camelCaseKeys } from '../utils/case-conversion.js';
17
17
  import { uploadMultipartFile } from '../utils/multipart-upload.js';
18
- import { validateApp, validateAppArray, validateAppByDistributionToken, validateAppDistributionToken, validateAppInstallation, validateAppInstallationArray, validateAppSecrets, validateAppTestToken, validateAppVerificationToken, validateAppWebhook, validateAppWithUserCount, validateUserAuthorizationArray, } from '../utils/validators.js';
18
+ import { IdSchema, validateApp, validateAppArray, validateAppByDistributionToken, validateAppDistributionToken, validateAppInstallation, validateAppInstallationArray, validateAppSecrets, validateAppTestToken, validateAppVerificationToken, validateAppWebhook, validateAppWithUserCount, validateUserAuthorizationArray, } from '../utils/validators.js';
19
19
  import { BaseClient } from './base-client.js';
20
20
  /**
21
21
  * Internal sub-client handling all developer-app management endpoints
@@ -38,7 +38,7 @@ export class AppClient extends BaseClient {
38
38
  return validateAppArray(response.data);
39
39
  }
40
40
  async getApp(appId, requestId) {
41
- z.string().min(1).parse(appId);
41
+ IdSchema.parse(appId);
42
42
  const response = await request({
43
43
  httpMethod: 'GET',
44
44
  baseUri: this.apiRootBase,
@@ -62,7 +62,7 @@ export class AppClient extends BaseClient {
62
62
  return validateApp(response.data);
63
63
  }
64
64
  async updateApp(appId, args, requestId) {
65
- z.string().min(1).parse(appId);
65
+ IdSchema.parse(appId);
66
66
  const { appTokenScopes } = args, rest = __rest(args, ["appTokenScopes"]);
67
67
  const payload = Object.assign({}, rest);
68
68
  if (appTokenScopes !== undefined) {
@@ -80,7 +80,7 @@ export class AppClient extends BaseClient {
80
80
  return validateAppWithUserCount(response.data);
81
81
  }
82
82
  async deleteApp(appId, requestId) {
83
- z.string().min(1).parse(appId);
83
+ IdSchema.parse(appId);
84
84
  const response = await request({
85
85
  httpMethod: 'DELETE',
86
86
  baseUri: this.apiRootBase,
@@ -92,7 +92,7 @@ export class AppClient extends BaseClient {
92
92
  return isSuccess(response);
93
93
  }
94
94
  async getAppSecrets(appId, requestId) {
95
- z.string().min(1).parse(appId);
95
+ IdSchema.parse(appId);
96
96
  const response = await request({
97
97
  httpMethod: 'GET',
98
98
  baseUri: this.apiRootBase,
@@ -104,7 +104,7 @@ export class AppClient extends BaseClient {
104
104
  return validateAppSecrets(response.data);
105
105
  }
106
106
  async resetAppClientSecret(appId, requestId) {
107
- z.string().min(1).parse(appId);
107
+ IdSchema.parse(appId);
108
108
  const response = await request({
109
109
  httpMethod: 'DELETE',
110
110
  baseUri: this.apiRootBase,
@@ -116,7 +116,7 @@ export class AppClient extends BaseClient {
116
116
  return validateAppWithUserCount(response.data);
117
117
  }
118
118
  async revokeAppTokens(appId, requestId) {
119
- z.string().min(1).parse(appId);
119
+ IdSchema.parse(appId);
120
120
  const response = await request({
121
121
  httpMethod: 'DELETE',
122
122
  baseUri: this.apiRootBase,
@@ -128,7 +128,7 @@ export class AppClient extends BaseClient {
128
128
  return validateAppWithUserCount(response.data);
129
129
  }
130
130
  async uploadAppIcon({ appId, file, fileName = '', size = 'medium' }, requestId) {
131
- z.string().min(1).parse(appId);
131
+ IdSchema.parse(appId);
132
132
  if (Buffer.isBuffer(file) && file.length === 0) {
133
133
  throw new Error('Cannot upload empty image file');
134
134
  }
@@ -145,7 +145,7 @@ export class AppClient extends BaseClient {
145
145
  return validateAppWithUserCount(camelCaseKeys(data));
146
146
  }
147
147
  async getAppTestToken(appId, requestId) {
148
- z.string().min(1).parse(appId);
148
+ IdSchema.parse(appId);
149
149
  const response = await request({
150
150
  httpMethod: 'GET',
151
151
  baseUri: this.apiRootBase,
@@ -157,7 +157,7 @@ export class AppClient extends BaseClient {
157
157
  return validateAppTestToken(response.data);
158
158
  }
159
159
  async createAppTestToken(appId, requestId) {
160
- z.string().min(1).parse(appId);
160
+ IdSchema.parse(appId);
161
161
  const response = await request({
162
162
  httpMethod: 'PUT',
163
163
  baseUri: this.apiRootBase,
@@ -169,7 +169,7 @@ export class AppClient extends BaseClient {
169
169
  return validateAppTestToken(response.data);
170
170
  }
171
171
  async getAppDistributionToken(appId, requestId) {
172
- z.string().min(1).parse(appId);
172
+ IdSchema.parse(appId);
173
173
  const response = await request({
174
174
  httpMethod: 'GET',
175
175
  baseUri: this.apiRootBase,
@@ -181,7 +181,7 @@ export class AppClient extends BaseClient {
181
181
  return validateAppDistributionToken(response.data);
182
182
  }
183
183
  async getAppVerificationToken(appId, requestId) {
184
- z.string().min(1).parse(appId);
184
+ IdSchema.parse(appId);
185
185
  const response = await request({
186
186
  httpMethod: 'GET',
187
187
  baseUri: this.apiRootBase,
@@ -193,7 +193,7 @@ export class AppClient extends BaseClient {
193
193
  return validateAppVerificationToken(response.data);
194
194
  }
195
195
  async resetAppVerificationToken(appId, requestId) {
196
- z.string().min(1).parse(appId);
196
+ IdSchema.parse(appId);
197
197
  const response = await request({
198
198
  httpMethod: 'DELETE',
199
199
  baseUri: this.apiRootBase,
@@ -218,7 +218,7 @@ export class AppClient extends BaseClient {
218
218
  }
219
219
  // --- App webhooks ---
220
220
  async getAppWebhook(appId, requestId) {
221
- z.string().min(1).parse(appId);
221
+ IdSchema.parse(appId);
222
222
  const response = await request({
223
223
  httpMethod: 'GET',
224
224
  baseUri: this.apiRootBase,
@@ -243,7 +243,7 @@ export class AppClient extends BaseClient {
243
243
  return validateAppWebhook(response.data);
244
244
  }
245
245
  async deleteAppWebhook(appId, requestId) {
246
- z.string().min(1).parse(appId);
246
+ IdSchema.parse(appId);
247
247
  const response = await request({
248
248
  httpMethod: 'DELETE',
249
249
  baseUri: this.apiRootBase,
@@ -279,7 +279,7 @@ export class AppClient extends BaseClient {
279
279
  return validateAppInstallation(response.data);
280
280
  }
281
281
  async getAppInstallation(installationId, requestId) {
282
- z.string().min(1).parse(installationId);
282
+ IdSchema.parse(installationId);
283
283
  const response = await request({
284
284
  httpMethod: 'GET',
285
285
  baseUri: this.apiRootBase,
@@ -291,7 +291,7 @@ export class AppClient extends BaseClient {
291
291
  return validateAppInstallation(response.data);
292
292
  }
293
293
  async updateAppInstallation(installationId, args, requestId) {
294
- z.string().min(1).parse(installationId);
294
+ IdSchema.parse(installationId);
295
295
  const response = await request({
296
296
  httpMethod: 'POST',
297
297
  baseUri: this.apiRootBase,
@@ -304,7 +304,7 @@ export class AppClient extends BaseClient {
304
304
  return validateAppInstallation(response.data);
305
305
  }
306
306
  async uninstallApp(installationId, requestId) {
307
- z.string().min(1).parse(installationId);
307
+ IdSchema.parse(installationId);
308
308
  const response = await request({
309
309
  httpMethod: 'DELETE',
310
310
  baseUri: this.apiRootBase,
@@ -9,11 +9,10 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import { z } from 'zod';
13
12
  import { ENDPOINT_REST_COMMENTS } from '../consts/endpoints.js';
14
13
  import { isSuccess, request } from '../transport/http-client.js';
15
14
  import { generatePath } from '../utils/request-helpers.js';
16
- import { validateComment, validateCommentArray } from '../utils/validators.js';
15
+ import { IdSchema, validateComment, validateCommentArray } from '../utils/validators.js';
17
16
  import { BaseClient } from './base-client.js';
18
17
  /**
19
18
  * Internal sub-client handling all comment-domain endpoints.
@@ -37,7 +36,7 @@ export class CommentClient extends BaseClient {
37
36
  };
38
37
  }
39
38
  async getComment(id) {
40
- z.string().min(1).parse(id);
39
+ IdSchema.parse(id);
41
40
  const response = await request({
42
41
  httpMethod: 'GET',
43
42
  baseUri: this.syncApiBase,
@@ -61,7 +60,7 @@ export class CommentClient extends BaseClient {
61
60
  return validateComment(response.data);
62
61
  }
63
62
  async updateComment(id, args, requestId) {
64
- z.string().min(1).parse(id);
63
+ IdSchema.parse(id);
65
64
  const response = await request({
66
65
  httpMethod: 'POST',
67
66
  baseUri: this.syncApiBase,
@@ -74,7 +73,7 @@ export class CommentClient extends BaseClient {
74
73
  return validateComment(response.data);
75
74
  }
76
75
  async deleteComment(id, requestId) {
77
- z.string().min(1).parse(id);
76
+ IdSchema.parse(id);
78
77
  const response = await request({
79
78
  httpMethod: 'DELETE',
80
79
  baseUri: this.syncApiBase,
@@ -1,8 +1,7 @@
1
- import { z } from 'zod';
2
1
  import { ENDPOINT_REST_FOLDERS } from '../consts/endpoints.js';
3
2
  import { isSuccess, request } from '../transport/http-client.js';
4
3
  import { generatePath } from '../utils/request-helpers.js';
5
- import { validateFolder, validateFolderArray } from '../utils/validators.js';
4
+ import { IdSchema, validateFolder, validateFolderArray } from '../utils/validators.js';
6
5
  import { BaseClient } from './base-client.js';
7
6
  /**
8
7
  * Internal sub-client handling all folder-domain endpoints.
@@ -26,7 +25,7 @@ export class FolderClient extends BaseClient {
26
25
  };
27
26
  }
28
27
  async getFolder(id) {
29
- z.string().min(1).parse(id);
28
+ IdSchema.parse(id);
30
29
  const response = await request({
31
30
  httpMethod: 'GET',
32
31
  baseUri: this.syncApiBase,
@@ -49,7 +48,7 @@ export class FolderClient extends BaseClient {
49
48
  return validateFolder(response.data);
50
49
  }
51
50
  async updateFolder(id, args, requestId) {
52
- z.string().min(1).parse(id);
51
+ IdSchema.parse(id);
53
52
  const response = await request({
54
53
  httpMethod: 'POST',
55
54
  baseUri: this.syncApiBase,
@@ -62,7 +61,7 @@ export class FolderClient extends BaseClient {
62
61
  return validateFolder(response.data);
63
62
  }
64
63
  async deleteFolder(id, requestId) {
65
- z.string().min(1).parse(id);
64
+ IdSchema.parse(id);
66
65
  const response = await request({
67
66
  httpMethod: 'DELETE',
68
67
  baseUri: this.syncApiBase,
@@ -1,7 +1,6 @@
1
- import { z } from 'zod';
2
1
  import { getProjectInsightsActivityStatsEndpoint, getProjectInsightsHealthAnalyzeEndpoint, getProjectInsightsHealthContextEndpoint, getProjectInsightsHealthEndpoint, getProjectInsightsProgressEndpoint, getWorkspaceInsightsEndpoint, } from '../consts/endpoints.js';
3
2
  import { request } from '../transport/http-client.js';
4
- import { validateProjectActivityStats, validateProjectHealth, validateProjectHealthContext, validateProjectProgress, validateWorkspaceInsights, } from '../utils/validators.js';
3
+ import { IdSchema, validateProjectActivityStats, validateProjectHealth, validateProjectHealthContext, validateProjectProgress, validateWorkspaceInsights, } from '../utils/validators.js';
5
4
  import { BaseClient } from './base-client.js';
6
5
  /**
7
6
  * Internal sub-client handling all insights-domain endpoints
@@ -13,7 +12,7 @@ import { BaseClient } from './base-client.js';
13
12
  */
14
13
  export class InsightsClient extends BaseClient {
15
14
  async getProjectActivityStats(projectId, args = {}) {
16
- z.string().min(1).parse(projectId);
15
+ IdSchema.parse(projectId);
17
16
  const response = await request({
18
17
  httpMethod: 'GET',
19
18
  baseUri: this.syncApiBase,
@@ -25,7 +24,7 @@ export class InsightsClient extends BaseClient {
25
24
  return validateProjectActivityStats(response.data);
26
25
  }
27
26
  async getProjectHealth(projectId) {
28
- z.string().min(1).parse(projectId);
27
+ IdSchema.parse(projectId);
29
28
  const response = await request({
30
29
  httpMethod: 'GET',
31
30
  baseUri: this.syncApiBase,
@@ -36,7 +35,7 @@ export class InsightsClient extends BaseClient {
36
35
  return validateProjectHealth(response.data);
37
36
  }
38
37
  async getProjectHealthContext(projectId) {
39
- z.string().min(1).parse(projectId);
38
+ IdSchema.parse(projectId);
40
39
  const response = await request({
41
40
  httpMethod: 'GET',
42
41
  baseUri: this.syncApiBase,
@@ -47,7 +46,7 @@ export class InsightsClient extends BaseClient {
47
46
  return validateProjectHealthContext(response.data);
48
47
  }
49
48
  async getProjectProgress(projectId) {
50
- z.string().min(1).parse(projectId);
49
+ IdSchema.parse(projectId);
51
50
  const response = await request({
52
51
  httpMethod: 'GET',
53
52
  baseUri: this.syncApiBase,
@@ -58,7 +57,7 @@ export class InsightsClient extends BaseClient {
58
57
  return validateProjectProgress(response.data);
59
58
  }
60
59
  async getWorkspaceInsights(workspaceId, args = {}) {
61
- z.string().min(1).parse(workspaceId);
60
+ IdSchema.parse(workspaceId);
62
61
  const response = await request({
63
62
  httpMethod: 'GET',
64
63
  baseUri: this.syncApiBase,
@@ -70,7 +69,7 @@ export class InsightsClient extends BaseClient {
70
69
  return validateWorkspaceInsights(response.data);
71
70
  }
72
71
  async analyzeProjectHealth(projectId, requestId) {
73
- z.string().min(1).parse(projectId);
72
+ IdSchema.parse(projectId);
74
73
  const response = await request({
75
74
  httpMethod: 'POST',
76
75
  baseUri: this.syncApiBase,
@@ -1,8 +1,7 @@
1
- import { z } from 'zod';
2
1
  import { ENDPOINT_REST_LABELS, ENDPOINT_REST_LABELS_SEARCH, ENDPOINT_REST_LABELS_SHARED, ENDPOINT_REST_LABELS_SHARED_REMOVE, ENDPOINT_REST_LABELS_SHARED_RENAME, } from '../consts/endpoints.js';
3
2
  import { isSuccess, request } from '../transport/http-client.js';
4
3
  import { generatePath } from '../utils/request-helpers.js';
5
- import { validateLabel, validateLabelArray } from '../utils/validators.js';
4
+ import { IdSchema, validateLabel, validateLabelArray } from '../utils/validators.js';
6
5
  import { BaseClient } from './base-client.js';
7
6
  /**
8
7
  * Internal sub-client handling all label-domain endpoints.
@@ -12,7 +11,7 @@ import { BaseClient } from './base-client.js';
12
11
  */
13
12
  export class LabelClient extends BaseClient {
14
13
  async getLabel(id) {
15
- z.string().min(1).parse(id);
14
+ IdSchema.parse(id);
16
15
  const response = await request({
17
16
  httpMethod: 'GET',
18
17
  baseUri: this.syncApiBase,
@@ -63,7 +62,7 @@ export class LabelClient extends BaseClient {
63
62
  return validateLabel(response.data);
64
63
  }
65
64
  async updateLabel(id, args, requestId) {
66
- z.string().min(1).parse(id);
65
+ IdSchema.parse(id);
67
66
  const response = await request({
68
67
  httpMethod: 'POST',
69
68
  baseUri: this.syncApiBase,
@@ -76,7 +75,7 @@ export class LabelClient extends BaseClient {
76
75
  return validateLabel(response.data);
77
76
  }
78
77
  async deleteLabel(id, requestId) {
79
- z.string().min(1).parse(id);
78
+ IdSchema.parse(id);
80
79
  const response = await request({
81
80
  httpMethod: 'DELETE',
82
81
  baseUri: this.syncApiBase,
@@ -1,8 +1,7 @@
1
- import { z } from 'zod';
2
1
  import { ENDPOINT_REST_PROJECTS, ENDPOINT_REST_PROJECTS_ARCHIVED, ENDPOINT_REST_PROJECTS_ARCHIVED_COUNT, ENDPOINT_REST_PROJECTS_MOVE_TO_PERSONAL, ENDPOINT_REST_PROJECTS_MOVE_TO_WORKSPACE, ENDPOINT_REST_PROJECTS_PERMISSIONS, ENDPOINT_REST_PROJECTS_SEARCH, ENDPOINT_REST_PROJECT_COLLABORATORS, ENDPOINT_REST_PROJECT_FULL, ENDPOINT_REST_PROJECT_JOIN, PROJECT_ARCHIVE, PROJECT_UNARCHIVE, } from '../consts/endpoints.js';
3
2
  import { isSuccess, request } from '../transport/http-client.js';
4
3
  import { generatePath } from '../utils/request-helpers.js';
5
- import { validateCollaboratorArray, validateCollaboratorStateArray, validateCommentArray, validateFolder, validateNoteArray, validateProject, validateProjectArray, validateSectionArray, validateTaskArray, validateUserArray, validateWorkspaceProject, validateWorkspaceProjectArray, } from '../utils/validators.js';
4
+ import { IdSchema, validateCollaboratorArray, validateCollaboratorStateArray, validateCommentArray, validateFolder, validateNoteArray, validateProject, validateProjectArray, validateSectionArray, validateTaskArray, validateUserArray, validateWorkspaceProject, validateWorkspaceProjectArray, } from '../utils/validators.js';
6
5
  import { BaseClient } from './base-client.js';
7
6
  /**
8
7
  * Internal sub-client handling all project-domain endpoints.
@@ -12,7 +11,7 @@ import { BaseClient } from './base-client.js';
12
11
  */
13
12
  export class ProjectClient extends BaseClient {
14
13
  async getProject(id) {
15
- z.string().min(1).parse(id);
14
+ IdSchema.parse(id);
16
15
  const response = await request({
17
16
  httpMethod: 'GET',
18
17
  baseUri: this.syncApiBase,
@@ -77,7 +76,7 @@ export class ProjectClient extends BaseClient {
77
76
  return validateProject(response.data);
78
77
  }
79
78
  async updateProject(id, args, requestId) {
80
- z.string().min(1).parse(id);
79
+ IdSchema.parse(id);
81
80
  const response = await request({
82
81
  httpMethod: 'POST',
83
82
  baseUri: this.syncApiBase,
@@ -90,7 +89,7 @@ export class ProjectClient extends BaseClient {
90
89
  return validateProject(response.data);
91
90
  }
92
91
  async deleteProject(id, requestId) {
93
- z.string().min(1).parse(id);
92
+ IdSchema.parse(id);
94
93
  const response = await request({
95
94
  httpMethod: 'DELETE',
96
95
  baseUri: this.syncApiBase,
@@ -102,7 +101,7 @@ export class ProjectClient extends BaseClient {
102
101
  return isSuccess(response);
103
102
  }
104
103
  async archiveProject(id, requestId) {
105
- z.string().min(1).parse(id);
104
+ IdSchema.parse(id);
106
105
  const response = await request({
107
106
  httpMethod: 'POST',
108
107
  baseUri: this.syncApiBase,
@@ -114,7 +113,7 @@ export class ProjectClient extends BaseClient {
114
113
  return validateProject(response.data);
115
114
  }
116
115
  async unarchiveProject(id, requestId) {
117
- z.string().min(1).parse(id);
116
+ IdSchema.parse(id);
118
117
  const response = await request({
119
118
  httpMethod: 'POST',
120
119
  baseUri: this.syncApiBase,
@@ -171,7 +170,7 @@ export class ProjectClient extends BaseClient {
171
170
  return data;
172
171
  }
173
172
  async getFullProject(id, args = {}) {
174
- z.string().min(1).parse(id);
173
+ IdSchema.parse(id);
175
174
  const { data } = await request({
176
175
  httpMethod: 'GET',
177
176
  baseUri: this.syncApiBase,
@@ -190,7 +189,7 @@ export class ProjectClient extends BaseClient {
190
189
  };
191
190
  }
192
191
  async joinProject(id, requestId) {
193
- z.string().min(1).parse(id);
192
+ IdSchema.parse(id);
194
193
  const { data } = await request({
195
194
  httpMethod: 'POST',
196
195
  baseUri: this.syncApiBase,
@@ -211,7 +210,7 @@ export class ProjectClient extends BaseClient {
211
210
  };
212
211
  }
213
212
  async getProjectCollaborators(projectId, args = {}) {
214
- z.string().min(1).parse(projectId);
213
+ IdSchema.parse(projectId);
215
214
  const { data: { results, nextCursor }, } = await request({
216
215
  httpMethod: 'GET',
217
216
  baseUri: this.syncApiBase,
@@ -1,8 +1,7 @@
1
- import { z } from 'zod';
2
1
  import { ENDPOINT_REST_SECTIONS, ENDPOINT_REST_SECTIONS_SEARCH, SECTION_ARCHIVE, SECTION_UNARCHIVE, } from '../consts/endpoints.js';
3
2
  import { isSuccess, request } from '../transport/http-client.js';
4
3
  import { generatePath } from '../utils/request-helpers.js';
5
- import { validateSection, validateSectionArray } from '../utils/validators.js';
4
+ import { IdSchema, validateSection, validateSectionArray } from '../utils/validators.js';
6
5
  import { BaseClient } from './base-client.js';
7
6
  /**
8
7
  * Internal sub-client handling all section-domain endpoints.
@@ -40,7 +39,7 @@ export class SectionClient extends BaseClient {
40
39
  };
41
40
  }
42
41
  async getSection(id) {
43
- z.string().min(1).parse(id);
42
+ IdSchema.parse(id);
44
43
  const response = await request({
45
44
  httpMethod: 'GET',
46
45
  baseUri: this.syncApiBase,
@@ -63,7 +62,7 @@ export class SectionClient extends BaseClient {
63
62
  return validateSection(response.data);
64
63
  }
65
64
  async updateSection(id, args, requestId) {
66
- z.string().min(1).parse(id);
65
+ IdSchema.parse(id);
67
66
  const response = await request({
68
67
  httpMethod: 'POST',
69
68
  baseUri: this.syncApiBase,
@@ -76,7 +75,7 @@ export class SectionClient extends BaseClient {
76
75
  return validateSection(response.data);
77
76
  }
78
77
  async deleteSection(id, requestId) {
79
- z.string().min(1).parse(id);
78
+ IdSchema.parse(id);
80
79
  const response = await request({
81
80
  httpMethod: 'DELETE',
82
81
  baseUri: this.syncApiBase,
@@ -88,7 +87,7 @@ export class SectionClient extends BaseClient {
88
87
  return isSuccess(response);
89
88
  }
90
89
  async archiveSection(id, requestId) {
91
- z.string().min(1).parse(id);
90
+ IdSchema.parse(id);
92
91
  const response = await request({
93
92
  httpMethod: 'POST',
94
93
  baseUri: this.syncApiBase,
@@ -100,7 +99,7 @@ export class SectionClient extends BaseClient {
100
99
  return validateSection(response.data);
101
100
  }
102
101
  async unarchiveSection(id, requestId) {
103
- z.string().min(1).parse(id);
102
+ IdSchema.parse(id);
104
103
  const response = await request({
105
104
  httpMethod: 'POST',
106
105
  baseUri: this.syncApiBase,
@@ -10,14 +10,13 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import { v4 as uuidv4 } from 'uuid';
13
- import { z } from 'zod';
14
13
  import { ENDPOINT_REST_TASKS, ENDPOINT_REST_TASKS_COMPLETED, ENDPOINT_REST_TASKS_COMPLETED_BY_COMPLETION_DATE, ENDPOINT_REST_TASKS_COMPLETED_BY_DUE_DATE, ENDPOINT_REST_TASKS_COMPLETED_SEARCH, ENDPOINT_REST_TASKS_FILTER, ENDPOINT_REST_TASK_CLOSE, ENDPOINT_REST_TASK_MOVE, ENDPOINT_REST_TASK_REOPEN, ENDPOINT_SYNC_QUICK_ADD, } from '../consts/endpoints.js';
15
14
  import { isSuccess, request } from '../transport/http-client.js';
16
15
  import { performSyncRequest } from '../transport/sync-request.js';
17
16
  import { TodoistRequestError } from '../types/index.js';
18
17
  import { generatePath, spreadIfDefined } from '../utils/request-helpers.js';
19
18
  import { processTaskContent } from '../utils/uncompletable-helpers.js';
20
- import { validateTask, validateTaskArray } from '../utils/validators.js';
19
+ import { IdSchema, validateTask, validateTaskArray } from '../utils/validators.js';
21
20
  import { BaseClient } from './base-client.js';
22
21
  const MAX_COMMAND_COUNT = 100;
23
22
  /**
@@ -28,7 +27,7 @@ const MAX_COMMAND_COUNT = 100;
28
27
  */
29
28
  export class TaskClient extends BaseClient {
30
29
  async getTask(id) {
31
- z.string().min(1).parse(id);
30
+ IdSchema.parse(id);
32
31
  const response = await request({
33
32
  httpMethod: 'GET',
34
33
  baseUri: this.syncApiBase,
@@ -152,7 +151,7 @@ export class TaskClient extends BaseClient {
152
151
  return validateTask(response.data);
153
152
  }
154
153
  async updateTask(id, args, requestId) {
155
- z.string().min(1).parse(id);
154
+ IdSchema.parse(id);
156
155
  // Translate SDK alias for due-date clearing to Todoist's accepted payload value.
157
156
  const normalizedArgs = args.dueString === null ? Object.assign(Object.assign({}, args), { dueString: 'no date' }) : args;
158
157
  // Process content if both content and isUncompletable are provided
@@ -200,7 +199,7 @@ export class TaskClient extends BaseClient {
200
199
  return validateTaskArray(syncTasks);
201
200
  }
202
201
  async moveTask(id, args, requestId) {
203
- z.string().min(1).parse(id);
202
+ IdSchema.parse(id);
204
203
  const response = await request({
205
204
  httpMethod: 'POST',
206
205
  baseUri: this.syncApiBase,
@@ -213,7 +212,7 @@ export class TaskClient extends BaseClient {
213
212
  return validateTask(response.data);
214
213
  }
215
214
  async closeTask(id, requestId) {
216
- z.string().min(1).parse(id);
215
+ IdSchema.parse(id);
217
216
  const response = await request({
218
217
  httpMethod: 'POST',
219
218
  baseUri: this.syncApiBase,
@@ -225,7 +224,7 @@ export class TaskClient extends BaseClient {
225
224
  return isSuccess(response);
226
225
  }
227
226
  async reopenTask(id, requestId) {
228
- z.string().min(1).parse(id);
227
+ IdSchema.parse(id);
229
228
  const response = await request({
230
229
  httpMethod: 'POST',
231
230
  baseUri: this.syncApiBase,
@@ -237,7 +236,7 @@ export class TaskClient extends BaseClient {
237
236
  return isSuccess(response);
238
237
  }
239
238
  async deleteTask(id, requestId) {
240
- z.string().min(1).parse(id);
239
+ IdSchema.parse(id);
241
240
  const response = await request({
242
241
  httpMethod: 'DELETE',
243
242
  baseUri: this.syncApiBase,
@@ -1,9 +1,8 @@
1
- import { z } from 'zod';
2
1
  import { ENDPOINT_REST_APPS_UI_EXTENSIONS, ENDPOINT_REST_APPS_UI_EXTENSIONS_INSTALLED, getUiExtensionEndpoint, getUiExtensionIconEndpoint, getUiExtensionsByIntegrationEndpoint, } from '../consts/endpoints.js';
3
2
  import { isSuccess, request } from '../transport/http-client.js';
4
3
  import { camelCaseKeys } from '../utils/case-conversion.js';
5
4
  import { uploadMultipartFile } from '../utils/multipart-upload.js';
6
- import { validateUiExtension, validateUiExtensionArray } from '../utils/validators.js';
5
+ import { IdSchema, validateUiExtension, validateUiExtensionArray } from '../utils/validators.js';
7
6
  import { BaseClient } from './base-client.js';
8
7
  /**
9
8
  * Internal sub-client handling all UI-extension endpoints for developer
@@ -14,7 +13,7 @@ import { BaseClient } from './base-client.js';
14
13
  */
15
14
  export class UiExtensionClient extends BaseClient {
16
15
  async getUiExtension(uiExtensionId, requestId) {
17
- z.string().min(1).parse(uiExtensionId);
16
+ IdSchema.parse(uiExtensionId);
18
17
  const response = await request({
19
18
  httpMethod: 'GET',
20
19
  baseUri: this.apiRootBase,
@@ -37,7 +36,7 @@ export class UiExtensionClient extends BaseClient {
37
36
  return validateUiExtensionArray(response.data);
38
37
  }
39
38
  async getUiExtensionsForApp(appId, requestId) {
40
- z.string().min(1).parse(appId);
39
+ IdSchema.parse(appId);
41
40
  const response = await request({
42
41
  httpMethod: 'GET',
43
42
  baseUri: this.apiRootBase,
@@ -61,7 +60,7 @@ export class UiExtensionClient extends BaseClient {
61
60
  return validateUiExtension(response.data);
62
61
  }
63
62
  async updateUiExtension(uiExtensionId, args, requestId) {
64
- z.string().min(1).parse(uiExtensionId);
63
+ IdSchema.parse(uiExtensionId);
65
64
  const response = await request({
66
65
  httpMethod: 'PATCH',
67
66
  baseUri: this.apiRootBase,
@@ -74,7 +73,7 @@ export class UiExtensionClient extends BaseClient {
74
73
  return validateUiExtension(response.data);
75
74
  }
76
75
  async deleteUiExtension(uiExtensionId, requestId) {
77
- z.string().min(1).parse(uiExtensionId);
76
+ IdSchema.parse(uiExtensionId);
78
77
  const response = await request({
79
78
  httpMethod: 'DELETE',
80
79
  baseUri: this.apiRootBase,
@@ -9,12 +9,11 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import { z } from 'zod';
13
12
  import { ENDPOINT_REST_WORKSPACES, ENDPOINT_WORKSPACE_INVITATIONS, ENDPOINT_WORKSPACE_INVITATIONS_ALL, ENDPOINT_WORKSPACE_INVITATIONS_DELETE, ENDPOINT_WORKSPACE_JOIN, ENDPOINT_WORKSPACE_LOGO, ENDPOINT_WORKSPACE_MEMBERS, ENDPOINT_WORKSPACE_PLAN_DETAILS, ENDPOINT_WORKSPACE_USERS, getWorkspaceActiveProjectsEndpoint, getWorkspaceArchivedProjectsEndpoint, getWorkspaceInvitationAcceptEndpoint, getWorkspaceInvitationRejectEndpoint, getWorkspaceInviteUsersEndpoint, getWorkspaceUserEndpoint, getWorkspaceUserTasksEndpoint, } from '../consts/endpoints.js';
14
13
  import { isSuccess, request } from '../transport/http-client.js';
15
14
  import { uploadMultipartFile } from '../utils/multipart-upload.js';
16
15
  import { generatePath } from '../utils/request-helpers.js';
17
- import { validateJoinWorkspaceResult, validateMemberActivityInfoArray, validateProject, validateWorkspace, validateWorkspaceArray, validateWorkspaceInvitation, validateWorkspaceInvitationArray, validateWorkspacePlanDetails, validateWorkspaceUserArray, validateWorkspaceUserTaskArray, } from '../utils/validators.js';
16
+ import { IdSchema, validateJoinWorkspaceResult, validateMemberActivityInfoArray, validateProject, validateWorkspace, validateWorkspaceArray, validateWorkspaceInvitation, validateWorkspaceInvitationArray, validateWorkspacePlanDetails, validateWorkspaceUserArray, validateWorkspaceUserTaskArray, } from '../utils/validators.js';
18
17
  import { BaseClient } from './base-client.js';
19
18
  /**
20
19
  * Internal sub-client handling all workspace-domain endpoints —
@@ -196,7 +195,7 @@ export class WorkspaceClient extends BaseClient {
196
195
  return validateWorkspaceArray(response.data);
197
196
  }
198
197
  async getWorkspace(id, requestId) {
199
- z.string().min(1).parse(id);
198
+ IdSchema.parse(id);
200
199
  const response = await request({
201
200
  httpMethod: 'GET',
202
201
  baseUri: this.syncApiBase,
@@ -220,7 +219,7 @@ export class WorkspaceClient extends BaseClient {
220
219
  return validateWorkspace(response.data);
221
220
  }
222
221
  async updateWorkspace(id, args, requestId) {
223
- z.string().min(1).parse(id);
222
+ IdSchema.parse(id);
224
223
  const response = await request({
225
224
  httpMethod: 'POST',
226
225
  baseUri: this.syncApiBase,
@@ -233,7 +232,7 @@ export class WorkspaceClient extends BaseClient {
233
232
  return validateWorkspace(response.data);
234
233
  }
235
234
  async deleteWorkspace(id, requestId) {
236
- z.string().min(1).parse(id);
235
+ IdSchema.parse(id);
237
236
  const response = await request({
238
237
  httpMethod: 'DELETE',
239
238
  baseUri: this.syncApiBase,
@@ -21,6 +21,11 @@ function createValidator(schema) {
21
21
  validateArray: (input) => z.array(schema).parse(input),
22
22
  };
23
23
  }
24
+ const TMP_ID_MESSAGE = 'This looks like a client-side placeholder — wait for sync to complete before calling the API.';
25
+ export const IdSchema = z
26
+ .string()
27
+ .min(1)
28
+ .refine((id) => !id.startsWith('tmp-'), { message: TMP_ID_MESSAGE });
24
29
  // Entity validators
25
30
  export const { validate: validateTask, validateArray: validateTaskArray } = createValidator(TaskSchema);
26
31
  /**
@@ -1,4 +1,6 @@
1
+ import { z } from 'zod';
1
2
  import { type SyncResponse } from '../types/sync/response.js';
3
+ export declare const IdSchema: z.ZodString;
2
4
  export declare const validateTask: (input: unknown) => {
3
5
  isUncompletable: boolean;
4
6
  url: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@doist/todoist-sdk",
3
- "version": "9.2.0",
3
+ "version": "9.3.0",
4
4
  "description": "The official TypeScript SDK for the Todoist REST API.",
5
5
  "author": "Doist developers",
6
6
  "repository": "https://github.com/Doist/todoist-sdk-typescript",