@doist/todoist-sdk 8.4.0-next.2 → 8.5.0-next.1
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.
- package/dist/cjs/todoist-api.js +5 -0
- package/dist/cjs/types/projects/types.js +11 -1
- package/dist/cjs/types/sync/response.js +55 -0
- package/dist/cjs/utils/index.js +1 -0
- package/dist/cjs/utils/project-helpers.js +20 -0
- package/dist/cjs/utils/validators.js +57 -153
- package/dist/esm/todoist-api.js +5 -0
- package/dist/esm/types/projects/types.js +10 -0
- package/dist/esm/types/sync/response.js +54 -1
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/project-helpers.js +16 -0
- package/dist/esm/utils/validators.js +55 -147
- package/dist/types/todoist-api.d.ts +5 -0
- package/dist/types/types/projects/types.d.ts +55 -0
- package/dist/types/types/sync/response.d.ts +942 -53
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/project-helpers.d.ts +13 -0
- package/dist/types/utils/validators.d.ts +140 -83
- package/package.json +1 -1
package/dist/cjs/todoist-api.js
CHANGED
|
@@ -632,6 +632,11 @@ class TodoistApi {
|
|
|
632
632
|
/**
|
|
633
633
|
* Deletes a project by its ID.
|
|
634
634
|
*
|
|
635
|
+
* If the project is a workspace project, it must have been
|
|
636
|
+
* archived first before it can be deleted, otherwise calling
|
|
637
|
+
* this function will result in an error. Personal projects can
|
|
638
|
+
* be deleted regardless of their archived status.
|
|
639
|
+
*
|
|
635
640
|
* @param id - The unique identifier of the project to delete.
|
|
636
641
|
* @param requestId - Optional custom identifier for the request.
|
|
637
642
|
* @returns A promise that resolves to `true` if successful.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PROJECT_VIEW_STYLES = exports.WorkspaceProjectSchema = exports.ProjectVisibilitySchema = exports.PROJECT_VISIBILITIES = exports.PersonalProjectSchema = exports.BaseProjectSchema = void 0;
|
|
3
|
+
exports.PROJECT_VIEW_STYLES = exports.ProjectSchema = exports.WorkspaceProjectSchema = exports.ProjectVisibilitySchema = exports.PROJECT_VISIBILITIES = exports.PersonalProjectSchema = exports.BaseProjectSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const url_helpers_1 = require("../../utils/url-helpers");
|
|
6
6
|
/**
|
|
@@ -52,5 +52,15 @@ exports.WorkspaceProjectSchema = exports.BaseProjectSchema.extend({
|
|
|
52
52
|
}).transform((data) => {
|
|
53
53
|
return Object.assign(Object.assign({}, data), { url: (0, url_helpers_1.getProjectUrl)(data.id, data.name) });
|
|
54
54
|
});
|
|
55
|
+
/**
|
|
56
|
+
* Schema for any project type in Todoist (personal or workspace).
|
|
57
|
+
* Dispatches to WorkspaceProjectSchema when workspaceId is present, PersonalProjectSchema otherwise.
|
|
58
|
+
*/
|
|
59
|
+
exports.ProjectSchema = zod_1.z.unknown().transform((val) => {
|
|
60
|
+
if (typeof val === 'object' && val !== null && 'workspaceId' in val) {
|
|
61
|
+
return exports.WorkspaceProjectSchema.parse(val);
|
|
62
|
+
}
|
|
63
|
+
return exports.PersonalProjectSchema.parse(val);
|
|
64
|
+
});
|
|
55
65
|
/** Available project view styles. */
|
|
56
66
|
exports.PROJECT_VIEW_STYLES = ['list', 'board', 'calendar'];
|
|
@@ -1,2 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SyncResponseSchema = exports.SyncErrorSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const types_1 = require("../goals/types");
|
|
6
|
+
const types_2 = require("../labels/types");
|
|
7
|
+
const types_3 = require("../projects/types");
|
|
8
|
+
const types_4 = require("../sections/types");
|
|
9
|
+
const types_5 = require("../tasks/types");
|
|
10
|
+
const types_6 = require("../workspaces/types");
|
|
11
|
+
const resources_1 = require("./resources");
|
|
12
|
+
exports.SyncErrorSchema = zod_1.z.object({
|
|
13
|
+
error: zod_1.z.string(),
|
|
14
|
+
errorCode: zod_1.z.number(),
|
|
15
|
+
errorExtra: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()),
|
|
16
|
+
errorTag: zod_1.z.string(),
|
|
17
|
+
httpCode: zod_1.z.number(),
|
|
18
|
+
});
|
|
19
|
+
exports.SyncResponseSchema = zod_1.z.looseObject({
|
|
20
|
+
syncToken: zod_1.z.string().optional(),
|
|
21
|
+
fullSync: zod_1.z.boolean().optional(),
|
|
22
|
+
syncStatus: zod_1.z.record(zod_1.z.string(), zod_1.z.union([zod_1.z.literal('ok'), exports.SyncErrorSchema])).optional(),
|
|
23
|
+
tempIdMapping: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
|
|
24
|
+
items: zod_1.z.array(types_5.TaskSchema).optional(),
|
|
25
|
+
projects: zod_1.z.array(types_3.ProjectSchema).optional(),
|
|
26
|
+
sections: zod_1.z.array(types_4.SectionSchema).optional(),
|
|
27
|
+
labels: zod_1.z.array(types_2.LabelSchema).optional(),
|
|
28
|
+
notes: zod_1.z.array(resources_1.NoteSchema).optional(),
|
|
29
|
+
projectNotes: zod_1.z.array(resources_1.NoteSchema).optional(),
|
|
30
|
+
filters: zod_1.z.array(resources_1.FilterSchema).optional(),
|
|
31
|
+
reminders: zod_1.z.array(resources_1.ReminderSchema).optional(),
|
|
32
|
+
remindersLocation: zod_1.z.array(resources_1.LocationReminderSchema).optional(),
|
|
33
|
+
locations: zod_1.z.array(zod_1.z.record(zod_1.z.string(), zod_1.z.unknown())).optional(),
|
|
34
|
+
user: resources_1.SyncUserSchema.optional(),
|
|
35
|
+
liveNotifications: zod_1.z.array(resources_1.LiveNotificationSchema).optional(),
|
|
36
|
+
collaborators: zod_1.z.array(resources_1.CollaboratorSchema).optional(),
|
|
37
|
+
collaboratorStates: zod_1.z.array(resources_1.CollaboratorStateSchema).optional(),
|
|
38
|
+
userSettings: resources_1.UserSettingsSchema.optional(),
|
|
39
|
+
notificationSettings: zod_1.z.record(zod_1.z.string(), zod_1.z.boolean()).optional(),
|
|
40
|
+
userPlanLimits: resources_1.UserPlanLimitsSchema.optional(),
|
|
41
|
+
completedInfo: zod_1.z.array(resources_1.CompletedInfoSchema).optional(),
|
|
42
|
+
stats: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
|
|
43
|
+
workspaces: zod_1.z.array(resources_1.SyncWorkspaceSchema).optional(),
|
|
44
|
+
workspaceUsers: zod_1.z.array(types_6.WorkspaceUserSchema).optional(),
|
|
45
|
+
workspaceFilters: zod_1.z.array(resources_1.WorkspaceFilterSchema).optional(),
|
|
46
|
+
viewOptions: zod_1.z.array(resources_1.ViewOptionsSchema).optional(),
|
|
47
|
+
projectViewOptionsDefaults: zod_1.z.array(resources_1.ProjectViewOptionsDefaultsSchema).optional(),
|
|
48
|
+
roleActions: zod_1.z.array(zod_1.z.record(zod_1.z.string(), zod_1.z.unknown())).optional(),
|
|
49
|
+
folders: zod_1.z.array(resources_1.FolderSchema).optional(),
|
|
50
|
+
goals: zod_1.z.array(types_1.GoalSchema).optional(),
|
|
51
|
+
workspaceGoals: zod_1.z.array(resources_1.WorkspaceGoalSchema).optional(),
|
|
52
|
+
dayOrders: zod_1.z.record(zod_1.z.string(), zod_1.z.number()).optional(),
|
|
53
|
+
calendars: zod_1.z.array(resources_1.CalendarSchema).optional(),
|
|
54
|
+
calendarAccounts: zod_1.z.array(resources_1.CalendarAccountSchema).optional(),
|
|
55
|
+
suggestions: zod_1.z.array(resources_1.SuggestionSchema).optional(),
|
|
56
|
+
tooltips: resources_1.TooltipsSchema.optional(),
|
|
57
|
+
});
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -23,3 +23,4 @@ Object.defineProperty(exports, "getProjectUrl", { enumerable: true, get: functio
|
|
|
23
23
|
Object.defineProperty(exports, "getSectionUrl", { enumerable: true, get: function () { return url_helpers_1.getSectionUrl; } });
|
|
24
24
|
var sync_helpers_1 = require("./sync-helpers");
|
|
25
25
|
Object.defineProperty(exports, "createCommand", { enumerable: true, get: function () { return sync_helpers_1.createCommand; } });
|
|
26
|
+
__exportStar(require("./project-helpers"), exports);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isWorkspaceProject = isWorkspaceProject;
|
|
4
|
+
exports.isPersonalProject = isPersonalProject;
|
|
5
|
+
/**
|
|
6
|
+
* Type guard to check if a project is a workspace project.
|
|
7
|
+
* @param project The project to check
|
|
8
|
+
* @returns True if the project is a workspace project
|
|
9
|
+
*/
|
|
10
|
+
function isWorkspaceProject(project) {
|
|
11
|
+
return 'workspaceId' in project;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Type guard to check if a project is a personal project.
|
|
15
|
+
* @param project The project to check
|
|
16
|
+
* @returns True if the project is a personal project
|
|
17
|
+
*/
|
|
18
|
+
function isPersonalProject(project) {
|
|
19
|
+
return !isWorkspaceProject(project);
|
|
20
|
+
}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
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;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
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 = void 0;
|
|
5
|
-
exports.isWorkspaceProject = isWorkspaceProject;
|
|
6
|
-
exports.isPersonalProject = isPersonalProject;
|
|
7
|
-
exports.validateProject = validateProject;
|
|
8
|
-
exports.validateProjectArray = validateProjectArray;
|
|
9
|
-
exports.validateWorkspaceUserArray = validateWorkspaceUserArray;
|
|
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.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.validateGoalArray = exports.validateGoal = void 0;
|
|
10
6
|
exports.parseSyncResponse = parseSyncResponse;
|
|
7
|
+
const zod_1 = require("zod");
|
|
11
8
|
const types_1 = require("../types/activity/types");
|
|
12
9
|
const types_2 = require("../types/backups/types");
|
|
13
10
|
const types_3 = require("../types/comments/types");
|
|
@@ -18,165 +15,72 @@ const types_7 = require("../types/labels/types");
|
|
|
18
15
|
const types_8 = require("../types/productivity/types");
|
|
19
16
|
const types_9 = require("../types/projects/types");
|
|
20
17
|
const types_10 = require("../types/sections/types");
|
|
18
|
+
const response_1 = require("../types/sync/response");
|
|
21
19
|
const types_11 = require("../types/tasks/types");
|
|
22
20
|
const types_12 = require("../types/users/types");
|
|
23
21
|
const types_13 = require("../types/workspaces/types");
|
|
24
22
|
const resources_1 = require("../types/sync/resources");
|
|
25
23
|
function createValidator(schema) {
|
|
26
|
-
return
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return (input) => {
|
|
30
|
-
if (!Array.isArray(input)) {
|
|
31
|
-
throw new TypeError(`Expected array, got ${typeof input}`);
|
|
32
|
-
}
|
|
33
|
-
return input.map(validateItem);
|
|
24
|
+
return {
|
|
25
|
+
validate: (input) => schema.parse(input),
|
|
26
|
+
validateArray: (input) => zod_1.z.array(schema).parse(input),
|
|
34
27
|
};
|
|
35
28
|
}
|
|
36
29
|
// Entity validators
|
|
37
|
-
|
|
38
|
-
exports.validateTaskArray = createArrayValidator(exports.validateTask);
|
|
39
|
-
/**
|
|
40
|
-
* Type guard to check if a project is a workspace project.
|
|
41
|
-
* @param project The project to check
|
|
42
|
-
* @returns True if the project is a workspace project
|
|
43
|
-
*/
|
|
44
|
-
function isWorkspaceProject(project) {
|
|
45
|
-
return 'workspaceId' in project;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Type guard to check if a project is a personal project.
|
|
49
|
-
* @param project The project to check
|
|
50
|
-
* @returns True if the project is a personal project
|
|
51
|
-
*/
|
|
52
|
-
function isPersonalProject(project) {
|
|
53
|
-
return !isWorkspaceProject(project);
|
|
54
|
-
}
|
|
30
|
+
_a = createValidator(types_11.TaskSchema), exports.validateTask = _a.validate, exports.validateTaskArray = _a.validateArray;
|
|
55
31
|
/**
|
|
56
32
|
* Validates and parses a project input.
|
|
57
33
|
* @param input The input to validate
|
|
58
34
|
* @returns A validated project (either PersonalProject or WorkspaceProject)
|
|
59
35
|
*/
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
exports.
|
|
73
|
-
exports.
|
|
74
|
-
|
|
75
|
-
exports.
|
|
76
|
-
|
|
77
|
-
exports.
|
|
78
|
-
exports.
|
|
79
|
-
exports.
|
|
80
|
-
exports.
|
|
81
|
-
exports.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
exports.validateActivityEventArray = createArrayValidator(exports.validateActivityEvent);
|
|
86
|
-
exports.validateAttachment = createValidator(types_3.AttachmentSchema);
|
|
87
|
-
exports.validateWorkspaceUser = createValidator(types_13.WorkspaceUserSchema);
|
|
88
|
-
function validateWorkspaceUserArray(input) {
|
|
89
|
-
if (!Array.isArray(input)) {
|
|
90
|
-
throw new Error(`Expected array for workspace users, got ${typeof input}`);
|
|
91
|
-
}
|
|
92
|
-
return input.map(exports.validateWorkspaceUser);
|
|
93
|
-
}
|
|
94
|
-
exports.validateWorkspaceInvitation = createValidator(types_13.WorkspaceInvitationSchema);
|
|
95
|
-
exports.validateWorkspaceInvitationArray = createArrayValidator(exports.validateWorkspaceInvitation);
|
|
96
|
-
exports.validateWorkspacePlanDetails = createValidator(types_13.WorkspacePlanDetailsSchema);
|
|
97
|
-
exports.validateJoinWorkspaceResult = createValidator(types_13.JoinWorkspaceResultSchema);
|
|
98
|
-
exports.validateWorkspace = createValidator(types_13.WorkspaceSchema);
|
|
99
|
-
exports.validateWorkspaceArray = createArrayValidator(exports.validateWorkspace);
|
|
100
|
-
exports.validateMemberActivityInfo = createValidator(types_13.MemberActivityInfoSchema);
|
|
101
|
-
exports.validateMemberActivityInfoArray = createArrayValidator(exports.validateMemberActivityInfo);
|
|
102
|
-
exports.validateWorkspaceUserTask = createValidator(types_13.WorkspaceUserTaskSchema);
|
|
103
|
-
exports.validateWorkspaceUserTaskArray = createArrayValidator(exports.validateWorkspaceUserTask);
|
|
104
|
-
exports.validateProjectActivityStats = createValidator(types_6.ProjectActivityStatsSchema);
|
|
105
|
-
exports.validateProjectHealth = createValidator(types_6.ProjectHealthSchema);
|
|
106
|
-
exports.validateProjectHealthContext = createValidator(types_6.ProjectHealthContextSchema);
|
|
107
|
-
exports.validateProjectProgress = createValidator(types_6.ProjectProgressSchema);
|
|
108
|
-
exports.validateWorkspaceInsights = createValidator(types_6.WorkspaceInsightsSchema);
|
|
109
|
-
exports.validateBackup = createValidator(types_2.BackupSchema);
|
|
110
|
-
exports.validateBackupArray = createArrayValidator(exports.validateBackup);
|
|
111
|
-
exports.validateIdMapping = createValidator(types_5.IdMappingSchema);
|
|
112
|
-
exports.validateIdMappingArray = createArrayValidator(exports.validateIdMapping);
|
|
113
|
-
exports.validateMovedId = createValidator(types_5.MovedIdSchema);
|
|
114
|
-
exports.validateMovedIdArray = createArrayValidator(exports.validateMovedId);
|
|
36
|
+
_b = createValidator(types_9.ProjectSchema), exports.validateProject = _b.validate, exports.validateProjectArray = _b.validateArray;
|
|
37
|
+
_c = createValidator(types_9.WorkspaceProjectSchema), exports.validateWorkspaceProject = _c.validate, exports.validateWorkspaceProjectArray = _c.validateArray;
|
|
38
|
+
_d = createValidator(types_10.SectionSchema), exports.validateSection = _d.validate, exports.validateSectionArray = _d.validateArray;
|
|
39
|
+
_e = createValidator(types_7.LabelSchema), exports.validateLabel = _e.validate, exports.validateLabelArray = _e.validateArray;
|
|
40
|
+
_f = createValidator(types_3.CommentSchema), exports.validateComment = _f.validate, exports.validateCommentArray = _f.validateArray;
|
|
41
|
+
_g = createValidator(types_12.UserSchema), exports.validateUser = _g.validate, exports.validateUserArray = _g.validateArray;
|
|
42
|
+
exports.validateProductivityStats = createValidator(types_8.ProductivityStatsSchema).validate;
|
|
43
|
+
exports.validateCurrentUser = createValidator(types_12.CurrentUserSchema).validate;
|
|
44
|
+
_h = createValidator(types_1.ActivityEventSchema), exports.validateActivityEvent = _h.validate, exports.validateActivityEventArray = _h.validateArray;
|
|
45
|
+
exports.validateAttachment = createValidator(types_3.AttachmentSchema).validate;
|
|
46
|
+
_j = createValidator(types_13.WorkspaceUserSchema), exports.validateWorkspaceUser = _j.validate, exports.validateWorkspaceUserArray = _j.validateArray;
|
|
47
|
+
_k = createValidator(types_13.WorkspaceInvitationSchema), exports.validateWorkspaceInvitation = _k.validate, exports.validateWorkspaceInvitationArray = _k.validateArray;
|
|
48
|
+
exports.validateWorkspacePlanDetails = createValidator(types_13.WorkspacePlanDetailsSchema).validate;
|
|
49
|
+
exports.validateJoinWorkspaceResult = createValidator(types_13.JoinWorkspaceResultSchema).validate;
|
|
50
|
+
_l = createValidator(types_13.WorkspaceSchema), exports.validateWorkspace = _l.validate, exports.validateWorkspaceArray = _l.validateArray;
|
|
51
|
+
_m = createValidator(types_13.MemberActivityInfoSchema), exports.validateMemberActivityInfo = _m.validate, exports.validateMemberActivityInfoArray = _m.validateArray;
|
|
52
|
+
_o = createValidator(types_13.WorkspaceUserTaskSchema), exports.validateWorkspaceUserTask = _o.validate, exports.validateWorkspaceUserTaskArray = _o.validateArray;
|
|
53
|
+
exports.validateProjectActivityStats = createValidator(types_6.ProjectActivityStatsSchema).validate;
|
|
54
|
+
exports.validateProjectHealth = createValidator(types_6.ProjectHealthSchema).validate;
|
|
55
|
+
exports.validateProjectHealthContext = createValidator(types_6.ProjectHealthContextSchema).validate;
|
|
56
|
+
exports.validateProjectProgress = createValidator(types_6.ProjectProgressSchema).validate;
|
|
57
|
+
exports.validateWorkspaceInsights = createValidator(types_6.WorkspaceInsightsSchema).validate;
|
|
58
|
+
_p = createValidator(types_2.BackupSchema), exports.validateBackup = _p.validate, exports.validateBackupArray = _p.validateArray;
|
|
59
|
+
_q = createValidator(types_5.IdMappingSchema), exports.validateIdMapping = _q.validate, exports.validateIdMappingArray = _q.validateArray;
|
|
60
|
+
_r = createValidator(types_5.MovedIdSchema), exports.validateMovedId = _r.validate, exports.validateMovedIdArray = _r.validateArray;
|
|
115
61
|
// Sync resource validators
|
|
116
|
-
|
|
117
|
-
exports.
|
|
118
|
-
|
|
119
|
-
exports.
|
|
120
|
-
|
|
121
|
-
exports.
|
|
122
|
-
exports.
|
|
123
|
-
exports.
|
|
124
|
-
|
|
125
|
-
exports.
|
|
126
|
-
|
|
127
|
-
exports.
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
exports.
|
|
131
|
-
|
|
132
|
-
exports.
|
|
133
|
-
|
|
134
|
-
exports.
|
|
135
|
-
exports.
|
|
136
|
-
exports.
|
|
137
|
-
|
|
138
|
-
exports.validateReminderArray = createArrayValidator(exports.validateReminder);
|
|
139
|
-
exports.validateLocationReminder = createValidator(resources_1.LocationReminderSchema);
|
|
140
|
-
exports.validateLocationReminderArray = createArrayValidator(exports.validateLocationReminder);
|
|
141
|
-
exports.validateCompletedInfo = createValidator(resources_1.CompletedInfoSchema);
|
|
142
|
-
exports.validateCompletedInfoArray = createArrayValidator(exports.validateCompletedInfo);
|
|
143
|
-
exports.validateViewOptions = createValidator(resources_1.ViewOptionsSchema);
|
|
144
|
-
exports.validateViewOptionsArray = createArrayValidator(exports.validateViewOptions);
|
|
145
|
-
exports.validateProjectViewOptionsDefaults = createValidator(resources_1.ProjectViewOptionsDefaultsSchema);
|
|
146
|
-
exports.validateProjectViewOptionsDefaultsArray = createArrayValidator(exports.validateProjectViewOptionsDefaults);
|
|
147
|
-
exports.validateUserPlanLimits = createValidator(resources_1.UserPlanLimitsSchema);
|
|
148
|
-
exports.validateLiveNotification = createValidator(resources_1.LiveNotificationSchema);
|
|
149
|
-
exports.validateLiveNotificationArray = createArrayValidator(exports.validateLiveNotification);
|
|
150
|
-
exports.validateSyncWorkspace = createValidator(resources_1.SyncWorkspaceSchema);
|
|
151
|
-
exports.validateSyncWorkspaceArray = createArrayValidator(exports.validateSyncWorkspace);
|
|
152
|
-
exports.validateSyncUser = createValidator(resources_1.SyncUserSchema);
|
|
153
|
-
exports.validateUserSettings = createValidator(resources_1.UserSettingsSchema);
|
|
154
|
-
exports.validateSuggestion = createValidator(resources_1.SuggestionSchema);
|
|
155
|
-
exports.validateSuggestionArray = createArrayValidator(exports.validateSuggestion);
|
|
62
|
+
_s = createValidator(resources_1.FilterSchema), exports.validateFilter = _s.validate, exports.validateFilterArray = _s.validateArray;
|
|
63
|
+
_t = createValidator(resources_1.CollaboratorSchema), exports.validateCollaborator = _t.validate, exports.validateCollaboratorArray = _t.validateArray;
|
|
64
|
+
_u = createValidator(resources_1.CollaboratorStateSchema), exports.validateCollaboratorState = _u.validate, exports.validateCollaboratorStateArray = _u.validateArray;
|
|
65
|
+
_v = createValidator(resources_1.FolderSchema), exports.validateFolder = _v.validate, exports.validateFolderArray = _v.validateArray;
|
|
66
|
+
_w = createValidator(types_4.GoalSchema), exports.validateGoal = _w.validate, exports.validateGoalArray = _w.validateArray;
|
|
67
|
+
_x = createValidator(resources_1.NoteSchema), exports.validateNote = _x.validate, exports.validateNoteArray = _x.validateArray;
|
|
68
|
+
exports.validateTooltips = createValidator(resources_1.TooltipsSchema).validate;
|
|
69
|
+
_y = createValidator(resources_1.WorkspaceFilterSchema), exports.validateWorkspaceFilter = _y.validate, exports.validateWorkspaceFilterArray = _y.validateArray;
|
|
70
|
+
_z = createValidator(resources_1.WorkspaceGoalSchema), exports.validateWorkspaceGoal = _z.validate, exports.validateWorkspaceGoalArray = _z.validateArray;
|
|
71
|
+
_0 = createValidator(resources_1.CalendarSchema), exports.validateCalendar = _0.validate, exports.validateCalendarArray = _0.validateArray;
|
|
72
|
+
_1 = createValidator(resources_1.CalendarAccountSchema), exports.validateCalendarAccount = _1.validate, exports.validateCalendarAccountArray = _1.validateArray;
|
|
73
|
+
_2 = createValidator(resources_1.ReminderSchema), exports.validateReminder = _2.validate, exports.validateReminderArray = _2.validateArray;
|
|
74
|
+
_3 = createValidator(resources_1.LocationReminderSchema), exports.validateLocationReminder = _3.validate, exports.validateLocationReminderArray = _3.validateArray;
|
|
75
|
+
_4 = createValidator(resources_1.CompletedInfoSchema), exports.validateCompletedInfo = _4.validate, exports.validateCompletedInfoArray = _4.validateArray;
|
|
76
|
+
_5 = createValidator(resources_1.ViewOptionsSchema), exports.validateViewOptions = _5.validate, exports.validateViewOptionsArray = _5.validateArray;
|
|
77
|
+
_6 = createValidator(resources_1.ProjectViewOptionsDefaultsSchema), exports.validateProjectViewOptionsDefaults = _6.validate, exports.validateProjectViewOptionsDefaultsArray = _6.validateArray;
|
|
78
|
+
exports.validateUserPlanLimits = createValidator(resources_1.UserPlanLimitsSchema).validate;
|
|
79
|
+
_7 = createValidator(resources_1.LiveNotificationSchema), exports.validateLiveNotification = _7.validate, exports.validateLiveNotificationArray = _7.validateArray;
|
|
80
|
+
_8 = createValidator(resources_1.SyncWorkspaceSchema), exports.validateSyncWorkspace = _8.validate, exports.validateSyncWorkspaceArray = _8.validateArray;
|
|
81
|
+
exports.validateSyncUser = createValidator(resources_1.SyncUserSchema).validate;
|
|
82
|
+
exports.validateUserSettings = createValidator(resources_1.UserSettingsSchema).validate;
|
|
83
|
+
_9 = createValidator(resources_1.SuggestionSchema), exports.validateSuggestion = _9.validate, exports.validateSuggestionArray = _9.validateArray;
|
|
156
84
|
function parseSyncResponse(raw) {
|
|
157
|
-
return
|
|
158
|
-
? { remindersLocation: (0, exports.validateLocationReminderArray)(raw.remindersLocation) }
|
|
159
|
-
: {})), ('user' in raw ? { user: (0, exports.validateSyncUser)(raw.user) } : {})), ('liveNotifications' in raw
|
|
160
|
-
? { liveNotifications: (0, exports.validateLiveNotificationArray)(raw.liveNotifications) }
|
|
161
|
-
: {})), ('collaborators' in raw
|
|
162
|
-
? { collaborators: (0, exports.validateCollaboratorArray)(raw.collaborators) }
|
|
163
|
-
: {})), ('collaboratorStates' in raw
|
|
164
|
-
? { collaboratorStates: (0, exports.validateCollaboratorStateArray)(raw.collaboratorStates) }
|
|
165
|
-
: {})), ('userSettings' in raw ? { userSettings: (0, exports.validateUserSettings)(raw.userSettings) } : {})), ('userPlanLimits' in raw
|
|
166
|
-
? { userPlanLimits: (0, exports.validateUserPlanLimits)(raw.userPlanLimits) }
|
|
167
|
-
: {})), ('completedInfo' in raw
|
|
168
|
-
? { completedInfo: (0, exports.validateCompletedInfoArray)(raw.completedInfo) }
|
|
169
|
-
: {})), ('workspaces' in raw ? { workspaces: (0, exports.validateSyncWorkspaceArray)(raw.workspaces) } : {})), ('workspaceUsers' in raw
|
|
170
|
-
? { workspaceUsers: validateWorkspaceUserArray(raw.workspaceUsers) }
|
|
171
|
-
: {})), ('workspaceFilters' in raw
|
|
172
|
-
? { workspaceFilters: (0, exports.validateWorkspaceFilterArray)(raw.workspaceFilters) }
|
|
173
|
-
: {})), ('viewOptions' in raw ? { viewOptions: (0, exports.validateViewOptionsArray)(raw.viewOptions) } : {})), ('projectViewOptionsDefaults' in raw
|
|
174
|
-
? {
|
|
175
|
-
projectViewOptionsDefaults: (0, exports.validateProjectViewOptionsDefaultsArray)(raw.projectViewOptionsDefaults),
|
|
176
|
-
}
|
|
177
|
-
: {})), ('folders' in raw ? { folders: (0, exports.validateFolderArray)(raw.folders) } : {})), ('goals' in raw ? { goals: (0, exports.validateGoalArray)(raw.goals) } : {})), ('workspaceGoals' in raw
|
|
178
|
-
? { workspaceGoals: (0, exports.validateWorkspaceGoalArray)(raw.workspaceGoals) }
|
|
179
|
-
: {})), ('calendars' in raw ? { calendars: (0, exports.validateCalendarArray)(raw.calendars) } : {})), ('calendarAccounts' in raw
|
|
180
|
-
? { calendarAccounts: (0, exports.validateCalendarAccountArray)(raw.calendarAccounts) }
|
|
181
|
-
: {})), ('suggestions' in raw ? { suggestions: (0, exports.validateSuggestionArray)(raw.suggestions) } : {})), ('tooltips' in raw ? { tooltips: (0, exports.validateTooltips)(raw.tooltips) } : {}));
|
|
85
|
+
return response_1.SyncResponseSchema.parse(raw);
|
|
182
86
|
}
|
package/dist/esm/todoist-api.js
CHANGED
|
@@ -629,6 +629,11 @@ export class TodoistApi {
|
|
|
629
629
|
/**
|
|
630
630
|
* Deletes a project by its ID.
|
|
631
631
|
*
|
|
632
|
+
* If the project is a workspace project, it must have been
|
|
633
|
+
* archived first before it can be deleted, otherwise calling
|
|
634
|
+
* this function will result in an error. Personal projects can
|
|
635
|
+
* be deleted regardless of their archived status.
|
|
636
|
+
*
|
|
632
637
|
* @param id - The unique identifier of the project to delete.
|
|
633
638
|
* @param requestId - Optional custom identifier for the request.
|
|
634
639
|
* @returns A promise that resolves to `true` if successful.
|
|
@@ -49,5 +49,15 @@ export const WorkspaceProjectSchema = BaseProjectSchema.extend({
|
|
|
49
49
|
}).transform((data) => {
|
|
50
50
|
return Object.assign(Object.assign({}, data), { url: getProjectUrl(data.id, data.name) });
|
|
51
51
|
});
|
|
52
|
+
/**
|
|
53
|
+
* Schema for any project type in Todoist (personal or workspace).
|
|
54
|
+
* Dispatches to WorkspaceProjectSchema when workspaceId is present, PersonalProjectSchema otherwise.
|
|
55
|
+
*/
|
|
56
|
+
export const ProjectSchema = z.unknown().transform((val) => {
|
|
57
|
+
if (typeof val === 'object' && val !== null && 'workspaceId' in val) {
|
|
58
|
+
return WorkspaceProjectSchema.parse(val);
|
|
59
|
+
}
|
|
60
|
+
return PersonalProjectSchema.parse(val);
|
|
61
|
+
});
|
|
52
62
|
/** Available project view styles. */
|
|
53
63
|
export const PROJECT_VIEW_STYLES = ['list', 'board', 'calendar'];
|
|
@@ -1 +1,54 @@
|
|
|
1
|
-
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { GoalSchema } from '../goals/types.js';
|
|
3
|
+
import { LabelSchema } from '../labels/types.js';
|
|
4
|
+
import { ProjectSchema } from '../projects/types.js';
|
|
5
|
+
import { SectionSchema } from '../sections/types.js';
|
|
6
|
+
import { TaskSchema } from '../tasks/types.js';
|
|
7
|
+
import { WorkspaceUserSchema } from '../workspaces/types.js';
|
|
8
|
+
import { FilterSchema, CollaboratorSchema, CollaboratorStateSchema, FolderSchema, NoteSchema, TooltipsSchema, WorkspaceFilterSchema, WorkspaceGoalSchema, CalendarSchema, CalendarAccountSchema, ReminderSchema, LocationReminderSchema, CompletedInfoSchema, ViewOptionsSchema, ProjectViewOptionsDefaultsSchema, UserPlanLimitsSchema, LiveNotificationSchema, SyncWorkspaceSchema, SyncUserSchema, UserSettingsSchema, SuggestionSchema, } from './resources/index.js';
|
|
9
|
+
export const SyncErrorSchema = z.object({
|
|
10
|
+
error: z.string(),
|
|
11
|
+
errorCode: z.number(),
|
|
12
|
+
errorExtra: z.record(z.string(), z.unknown()),
|
|
13
|
+
errorTag: z.string(),
|
|
14
|
+
httpCode: z.number(),
|
|
15
|
+
});
|
|
16
|
+
export const SyncResponseSchema = z.looseObject({
|
|
17
|
+
syncToken: z.string().optional(),
|
|
18
|
+
fullSync: z.boolean().optional(),
|
|
19
|
+
syncStatus: z.record(z.string(), z.union([z.literal('ok'), SyncErrorSchema])).optional(),
|
|
20
|
+
tempIdMapping: z.record(z.string(), z.string()).optional(),
|
|
21
|
+
items: z.array(TaskSchema).optional(),
|
|
22
|
+
projects: z.array(ProjectSchema).optional(),
|
|
23
|
+
sections: z.array(SectionSchema).optional(),
|
|
24
|
+
labels: z.array(LabelSchema).optional(),
|
|
25
|
+
notes: z.array(NoteSchema).optional(),
|
|
26
|
+
projectNotes: z.array(NoteSchema).optional(),
|
|
27
|
+
filters: z.array(FilterSchema).optional(),
|
|
28
|
+
reminders: z.array(ReminderSchema).optional(),
|
|
29
|
+
remindersLocation: z.array(LocationReminderSchema).optional(),
|
|
30
|
+
locations: z.array(z.record(z.string(), z.unknown())).optional(),
|
|
31
|
+
user: SyncUserSchema.optional(),
|
|
32
|
+
liveNotifications: z.array(LiveNotificationSchema).optional(),
|
|
33
|
+
collaborators: z.array(CollaboratorSchema).optional(),
|
|
34
|
+
collaboratorStates: z.array(CollaboratorStateSchema).optional(),
|
|
35
|
+
userSettings: UserSettingsSchema.optional(),
|
|
36
|
+
notificationSettings: z.record(z.string(), z.boolean()).optional(),
|
|
37
|
+
userPlanLimits: UserPlanLimitsSchema.optional(),
|
|
38
|
+
completedInfo: z.array(CompletedInfoSchema).optional(),
|
|
39
|
+
stats: z.record(z.string(), z.unknown()).optional(),
|
|
40
|
+
workspaces: z.array(SyncWorkspaceSchema).optional(),
|
|
41
|
+
workspaceUsers: z.array(WorkspaceUserSchema).optional(),
|
|
42
|
+
workspaceFilters: z.array(WorkspaceFilterSchema).optional(),
|
|
43
|
+
viewOptions: z.array(ViewOptionsSchema).optional(),
|
|
44
|
+
projectViewOptionsDefaults: z.array(ProjectViewOptionsDefaultsSchema).optional(),
|
|
45
|
+
roleActions: z.array(z.record(z.string(), z.unknown())).optional(),
|
|
46
|
+
folders: z.array(FolderSchema).optional(),
|
|
47
|
+
goals: z.array(GoalSchema).optional(),
|
|
48
|
+
workspaceGoals: z.array(WorkspaceGoalSchema).optional(),
|
|
49
|
+
dayOrders: z.record(z.string(), z.number()).optional(),
|
|
50
|
+
calendars: z.array(CalendarSchema).optional(),
|
|
51
|
+
calendarAccounts: z.array(CalendarAccountSchema).optional(),
|
|
52
|
+
suggestions: z.array(SuggestionSchema).optional(),
|
|
53
|
+
tooltips: TooltipsSchema.optional(),
|
|
54
|
+
});
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type guard to check if a project is a workspace project.
|
|
3
|
+
* @param project The project to check
|
|
4
|
+
* @returns True if the project is a workspace project
|
|
5
|
+
*/
|
|
6
|
+
export function isWorkspaceProject(project) {
|
|
7
|
+
return 'workspaceId' in project;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Type guard to check if a project is a personal project.
|
|
11
|
+
* @param project The project to check
|
|
12
|
+
* @returns True if the project is a personal project
|
|
13
|
+
*/
|
|
14
|
+
export function isPersonalProject(project) {
|
|
15
|
+
return !isWorkspaceProject(project);
|
|
16
|
+
}
|