@doist/todoist-api-typescript 6.5.1 → 6.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/dist/cjs/todoist-api.js +32 -4
  2. package/dist/cjs/types/index.js +1 -0
  3. package/dist/cjs/types/sync/commands/calendars.js +2 -0
  4. package/dist/cjs/types/sync/commands/filters.js +2 -0
  5. package/dist/cjs/types/sync/commands/folders.js +2 -0
  6. package/dist/cjs/types/sync/commands/index.js +35 -0
  7. package/dist/cjs/types/sync/commands/labels.js +2 -0
  8. package/dist/cjs/types/sync/commands/notes.js +2 -0
  9. package/dist/cjs/types/sync/commands/notifications.js +2 -0
  10. package/dist/cjs/types/sync/commands/others.js +2 -0
  11. package/dist/cjs/types/sync/commands/project-view-options.js +2 -0
  12. package/dist/cjs/types/sync/commands/projects.js +2 -0
  13. package/dist/cjs/types/sync/commands/reminders.js +2 -0
  14. package/dist/cjs/types/sync/commands/sections.js +2 -0
  15. package/dist/cjs/types/sync/commands/shared.js +5 -0
  16. package/dist/cjs/types/sync/commands/sharing.js +2 -0
  17. package/dist/cjs/types/sync/commands/tasks.js +2 -0
  18. package/dist/cjs/types/sync/commands/view-options.js +2 -0
  19. package/dist/cjs/types/sync/commands/workspace-filters.js +2 -0
  20. package/dist/cjs/types/sync/commands/workspace-goals.js +2 -0
  21. package/dist/cjs/types/sync/commands/workspaces.js +2 -0
  22. package/dist/cjs/types/sync/index.js +21 -0
  23. package/dist/cjs/types/sync/request.js +2 -0
  24. package/dist/cjs/types/{sync.js → sync/resource-types.js} +9 -0
  25. package/dist/cjs/types/sync/resources/calendars.js +27 -0
  26. package/dist/cjs/types/sync/resources/collaborators.js +23 -0
  27. package/dist/cjs/types/sync/resources/completed-info.js +30 -0
  28. package/dist/cjs/types/sync/resources/filters.js +16 -0
  29. package/dist/cjs/types/sync/resources/folders.js +14 -0
  30. package/dist/cjs/types/sync/resources/index.js +33 -0
  31. package/dist/cjs/types/sync/resources/live-notifications.js +28 -0
  32. package/dist/cjs/types/sync/resources/notes.js +23 -0
  33. package/dist/cjs/types/sync/resources/reminders.js +34 -0
  34. package/dist/cjs/types/sync/resources/suggestions.js +38 -0
  35. package/dist/cjs/types/sync/resources/tooltips.js +10 -0
  36. package/dist/cjs/types/sync/resources/user-plan-limits.js +24 -0
  37. package/dist/cjs/types/sync/resources/user-settings.js +42 -0
  38. package/dist/cjs/types/sync/resources/user.js +123 -0
  39. package/dist/cjs/types/sync/resources/view-options.js +75 -0
  40. package/dist/cjs/types/sync/resources/workspace-filters.js +21 -0
  41. package/dist/cjs/types/sync/resources/workspace-goals.js +32 -0
  42. package/dist/cjs/types/sync/resources/workspaces.js +49 -0
  43. package/dist/cjs/types/sync/response.js +2 -0
  44. package/dist/cjs/utils/index.js +3 -1
  45. package/dist/cjs/utils/sync-helpers.js +22 -0
  46. package/dist/cjs/utils/validators.js +69 -88
  47. package/dist/esm/todoist-api.js +32 -4
  48. package/dist/esm/types/index.js +1 -0
  49. package/dist/esm/types/sync/commands/calendars.js +1 -0
  50. package/dist/esm/types/sync/commands/filters.js +1 -0
  51. package/dist/esm/types/sync/commands/folders.js +1 -0
  52. package/dist/esm/types/sync/commands/index.js +19 -0
  53. package/dist/esm/types/sync/commands/labels.js +1 -0
  54. package/dist/esm/types/sync/commands/notes.js +1 -0
  55. package/dist/esm/types/sync/commands/notifications.js +1 -0
  56. package/dist/esm/types/sync/commands/others.js +1 -0
  57. package/dist/esm/types/sync/commands/project-view-options.js +1 -0
  58. package/dist/esm/types/sync/commands/projects.js +1 -0
  59. package/dist/esm/types/sync/commands/reminders.js +1 -0
  60. package/dist/esm/types/sync/commands/sections.js +1 -0
  61. package/dist/esm/types/sync/commands/shared.js +4 -0
  62. package/dist/esm/types/sync/commands/sharing.js +1 -0
  63. package/dist/esm/types/sync/commands/tasks.js +1 -0
  64. package/dist/esm/types/sync/commands/view-options.js +1 -0
  65. package/dist/esm/types/sync/commands/workspace-filters.js +1 -0
  66. package/dist/esm/types/sync/commands/workspace-goals.js +1 -0
  67. package/dist/esm/types/sync/commands/workspaces.js +1 -0
  68. package/dist/esm/types/sync/index.js +5 -0
  69. package/dist/esm/types/sync/request.js +1 -0
  70. package/dist/esm/types/{sync.js → sync/resource-types.js} +9 -0
  71. package/dist/esm/types/sync/resources/calendars.js +24 -0
  72. package/dist/esm/types/sync/resources/collaborators.js +20 -0
  73. package/dist/esm/types/sync/resources/completed-info.js +27 -0
  74. package/dist/esm/types/sync/resources/filters.js +13 -0
  75. package/dist/esm/types/sync/resources/folders.js +11 -0
  76. package/dist/esm/types/sync/resources/index.js +17 -0
  77. package/dist/esm/types/sync/resources/live-notifications.js +25 -0
  78. package/dist/esm/types/sync/resources/notes.js +20 -0
  79. package/dist/esm/types/sync/resources/reminders.js +31 -0
  80. package/dist/esm/types/sync/resources/suggestions.js +35 -0
  81. package/dist/esm/types/sync/resources/tooltips.js +7 -0
  82. package/dist/esm/types/sync/resources/user-plan-limits.js +21 -0
  83. package/dist/esm/types/sync/resources/user-settings.js +39 -0
  84. package/dist/esm/types/sync/resources/user.js +120 -0
  85. package/dist/esm/types/sync/resources/view-options.js +72 -0
  86. package/dist/esm/types/sync/resources/workspace-filters.js +18 -0
  87. package/dist/esm/types/sync/resources/workspace-goals.js +29 -0
  88. package/dist/esm/types/sync/resources/workspaces.js +46 -0
  89. package/dist/esm/types/sync/response.js +1 -0
  90. package/dist/esm/utils/index.js +1 -0
  91. package/dist/esm/utils/sync-helpers.js +19 -0
  92. package/dist/esm/utils/validators.js +65 -64
  93. package/dist/types/todoist-api.d.ts +26 -0
  94. package/dist/types/types/index.d.ts +1 -0
  95. package/dist/types/types/sync/commands/calendars.d.ts +14 -0
  96. package/dist/types/types/sync/commands/filters.d.ts +21 -0
  97. package/dist/types/types/sync/commands/folders.d.ts +18 -0
  98. package/dist/types/types/sync/commands/index.d.ts +175 -0
  99. package/dist/types/types/sync/commands/labels.d.ts +27 -0
  100. package/dist/types/types/sync/commands/notes.d.ts +27 -0
  101. package/dist/types/types/sync/commands/notifications.d.ts +10 -0
  102. package/dist/types/types/sync/commands/others.d.ts +28 -0
  103. package/dist/types/types/sync/commands/project-view-options.d.ts +14 -0
  104. package/dist/types/types/sync/commands/projects.d.ts +88 -0
  105. package/dist/types/types/sync/commands/reminders.d.ts +40 -0
  106. package/dist/types/types/sync/commands/sections.d.ts +31 -0
  107. package/dist/types/types/sync/commands/shared.d.ts +46 -0
  108. package/dist/types/types/sync/commands/sharing.d.ts +16 -0
  109. package/dist/types/types/sync/commands/tasks.d.ts +78 -0
  110. package/dist/types/types/sync/commands/view-options.d.ts +19 -0
  111. package/dist/types/types/sync/commands/workspace-filters.d.ts +22 -0
  112. package/dist/types/types/sync/commands/workspace-goals.d.ts +24 -0
  113. package/dist/types/types/sync/commands/workspaces.d.ts +79 -0
  114. package/dist/types/types/sync/index.d.ts +5 -0
  115. package/dist/types/types/sync/request.d.ts +7 -0
  116. package/dist/types/types/sync/resource-types.d.ts +5 -0
  117. package/dist/types/types/sync/resources/calendars.d.ts +30 -0
  118. package/dist/types/types/sync/resources/collaborators.d.ts +24 -0
  119. package/dist/types/types/sync/resources/completed-info.d.ts +33 -0
  120. package/dist/types/types/sync/resources/filters.d.ts +12 -0
  121. package/dist/types/types/sync/resources/folders.d.ts +10 -0
  122. package/dist/types/types/sync/resources/index.d.ts +17 -0
  123. package/dist/types/types/sync/resources/live-notifications.d.ts +23 -0
  124. package/dist/types/types/sync/resources/notes.d.ts +34 -0
  125. package/dist/types/types/sync/resources/reminders.d.ts +101 -0
  126. package/dist/types/types/sync/resources/suggestions.d.ts +54 -0
  127. package/dist/types/types/sync/resources/tooltips.d.ts +6 -0
  128. package/dist/types/types/sync/resources/user-plan-limits.d.ts +41 -0
  129. package/dist/types/types/sync/resources/user-settings.d.ts +32 -0
  130. package/dist/types/types/sync/resources/user.d.ts +104 -0
  131. package/dist/types/types/sync/resources/view-options.d.ts +94 -0
  132. package/dist/types/types/sync/resources/workspace-filters.d.ts +17 -0
  133. package/dist/types/types/sync/resources/workspace-goals.d.ts +29 -0
  134. package/dist/types/types/sync/resources/workspaces.d.ts +52 -0
  135. package/dist/types/types/sync/response.d.ts +47 -0
  136. package/dist/types/utils/index.d.ts +1 -0
  137. package/dist/types/utils/sync-helpers.d.ts +17 -0
  138. package/dist/types/utils/validators.d.ts +1163 -23
  139. package/package.json +1 -1
  140. package/dist/types/types/sync.d.ts +0 -30
@@ -0,0 +1,54 @@
1
+ import { z } from 'zod';
2
+ export declare const TemplateSuggestionSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ name: z.ZodString;
5
+ templateType: z.ZodEnum<{
6
+ project: "project";
7
+ setup: "setup";
8
+ }>;
9
+ }, z.core.$loose>;
10
+ export type TemplateSuggestion = z.infer<typeof TemplateSuggestionSchema>;
11
+ export declare const WorkspaceTemplateSuggestionSchema: z.ZodObject<{
12
+ id: z.ZodString;
13
+ name: z.ZodString;
14
+ templateType: z.ZodEnum<{
15
+ project: "project";
16
+ setup: "setup";
17
+ }>;
18
+ workspaceId: z.ZodNullable<z.ZodString>;
19
+ }, z.core.$loose>;
20
+ export type WorkspaceTemplateSuggestion = z.infer<typeof WorkspaceTemplateSuggestionSchema>;
21
+ export declare const SuggestionSchema: z.ZodUnion<readonly [z.ZodObject<{
22
+ type: z.ZodLiteral<"most_used_workspace_templates">;
23
+ content: z.ZodObject<{
24
+ templates: z.ZodArray<z.ZodObject<{
25
+ id: z.ZodString;
26
+ name: z.ZodString;
27
+ templateType: z.ZodEnum<{
28
+ project: "project";
29
+ setup: "setup";
30
+ }>;
31
+ workspaceId: z.ZodNullable<z.ZodString>;
32
+ }, z.core.$loose>>;
33
+ locale: z.ZodString;
34
+ }, z.core.$strip>;
35
+ isDeleted: z.ZodBoolean;
36
+ }, z.core.$loose>, z.ZodObject<{
37
+ type: z.ZodEnum<{
38
+ templates: "templates";
39
+ most_used_user_templates: "most_used_user_templates";
40
+ }>;
41
+ content: z.ZodObject<{
42
+ templates: z.ZodArray<z.ZodObject<{
43
+ id: z.ZodString;
44
+ name: z.ZodString;
45
+ templateType: z.ZodEnum<{
46
+ project: "project";
47
+ setup: "setup";
48
+ }>;
49
+ }, z.core.$loose>>;
50
+ locale: z.ZodString;
51
+ }, z.core.$strip>;
52
+ isDeleted: z.ZodBoolean;
53
+ }, z.core.$loose>]>;
54
+ export type Suggestion = z.infer<typeof SuggestionSchema>;
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ export declare const TooltipsSchema: z.ZodObject<{
3
+ seen: z.ZodOptional<z.ZodArray<z.ZodString>>;
4
+ scheduled: z.ZodOptional<z.ZodArray<z.ZodString>>;
5
+ }, z.core.$loose>;
6
+ export type Tooltips = z.infer<typeof TooltipsSchema>;
@@ -0,0 +1,41 @@
1
+ import { z } from 'zod';
2
+ export declare const PlanLimitsSchema: z.ZodObject<{
3
+ activeProjects: z.ZodOptional<z.ZodNumber>;
4
+ activityLog: z.ZodOptional<z.ZodNumber>;
5
+ collaboratorsPerProject: z.ZodOptional<z.ZodNumber>;
6
+ commentsPerTask: z.ZodOptional<z.ZodNumber>;
7
+ fileUploadsPerComment: z.ZodOptional<z.ZodNumber>;
8
+ filtersPerUser: z.ZodOptional<z.ZodNumber>;
9
+ labelsPerTask: z.ZodOptional<z.ZodNumber>;
10
+ remindersPerUser: z.ZodOptional<z.ZodNumber>;
11
+ sectionsPerProject: z.ZodOptional<z.ZodNumber>;
12
+ tasksPerProject: z.ZodOptional<z.ZodNumber>;
13
+ }, z.core.$loose>;
14
+ export type PlanLimits = z.infer<typeof PlanLimitsSchema>;
15
+ export declare const UserPlanLimitsSchema: z.ZodObject<{
16
+ current: z.ZodObject<{
17
+ activeProjects: z.ZodOptional<z.ZodNumber>;
18
+ activityLog: z.ZodOptional<z.ZodNumber>;
19
+ collaboratorsPerProject: z.ZodOptional<z.ZodNumber>;
20
+ commentsPerTask: z.ZodOptional<z.ZodNumber>;
21
+ fileUploadsPerComment: z.ZodOptional<z.ZodNumber>;
22
+ filtersPerUser: z.ZodOptional<z.ZodNumber>;
23
+ labelsPerTask: z.ZodOptional<z.ZodNumber>;
24
+ remindersPerUser: z.ZodOptional<z.ZodNumber>;
25
+ sectionsPerProject: z.ZodOptional<z.ZodNumber>;
26
+ tasksPerProject: z.ZodOptional<z.ZodNumber>;
27
+ }, z.core.$loose>;
28
+ next: z.ZodNullable<z.ZodObject<{
29
+ activeProjects: z.ZodOptional<z.ZodNumber>;
30
+ activityLog: z.ZodOptional<z.ZodNumber>;
31
+ collaboratorsPerProject: z.ZodOptional<z.ZodNumber>;
32
+ commentsPerTask: z.ZodOptional<z.ZodNumber>;
33
+ fileUploadsPerComment: z.ZodOptional<z.ZodNumber>;
34
+ filtersPerUser: z.ZodOptional<z.ZodNumber>;
35
+ labelsPerTask: z.ZodOptional<z.ZodNumber>;
36
+ remindersPerUser: z.ZodOptional<z.ZodNumber>;
37
+ sectionsPerProject: z.ZodOptional<z.ZodNumber>;
38
+ tasksPerProject: z.ZodOptional<z.ZodNumber>;
39
+ }, z.core.$loose>>;
40
+ }, z.core.$loose>;
41
+ export type UserPlanLimits = z.infer<typeof UserPlanLimitsSchema>;
@@ -0,0 +1,32 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Sync API user settings resource.
4
+ */
5
+ export declare const UserSettingsSchema: z.ZodObject<{
6
+ completedSoundDesktop: z.ZodBoolean;
7
+ completedSoundMobile: z.ZodBoolean;
8
+ debugLogSendingEnabledUntil: z.ZodNullable<z.ZodString>;
9
+ legacyPricing: z.ZodBoolean;
10
+ navigation: z.ZodObject<{
11
+ countsShown: z.ZodBoolean;
12
+ features: z.ZodArray<z.ZodObject<{
13
+ name: z.ZodString;
14
+ shown: z.ZodBoolean;
15
+ }, z.core.$strip>>;
16
+ }, z.core.$loose>;
17
+ reminderDesktop: z.ZodBoolean;
18
+ reminderEmail: z.ZodBoolean;
19
+ reminderPush: z.ZodBoolean;
20
+ resetRecurringSubtasks: z.ZodBoolean;
21
+ aiEmailAssist: z.ZodBoolean;
22
+ theme: z.ZodOptional<z.ZodNullable<z.ZodString>>;
23
+ syncTheme: z.ZodOptional<z.ZodBoolean>;
24
+ quickAdd: z.ZodObject<{
25
+ labelsShown: z.ZodBoolean;
26
+ features: z.ZodArray<z.ZodObject<{
27
+ name: z.ZodString;
28
+ shown: z.ZodBoolean;
29
+ }, z.core.$strip>>;
30
+ }, z.core.$loose>;
31
+ }, z.core.$loose>;
32
+ export type UserSettings = z.infer<typeof UserSettingsSchema>;
@@ -0,0 +1,104 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Sync API user resource.
4
+ *
5
+ * This is a superset of the REST `CurrentUserSchema` — the Sync API returns
6
+ * many additional fields for features, onboarding state, and account details.
7
+ */
8
+ export declare const SyncUserSchema: z.ZodObject<{
9
+ id: z.ZodString;
10
+ email: z.ZodString;
11
+ fullName: z.ZodString;
12
+ activatedUser: z.ZodBoolean;
13
+ autoReminder: z.ZodNumber;
14
+ avatarBig: z.ZodOptional<z.ZodString>;
15
+ avatarMedium: z.ZodOptional<z.ZodString>;
16
+ avatarS640: z.ZodOptional<z.ZodString>;
17
+ avatarSmall: z.ZodOptional<z.ZodString>;
18
+ businessAccountId: z.ZodNullable<z.ZodString>;
19
+ dailyGoal: z.ZodNumber;
20
+ dateFormat: z.ZodNumber;
21
+ dateistLang: z.ZodNullable<z.ZodString>;
22
+ daysOff: z.ZodArray<z.ZodNumber>;
23
+ featureIdentifier: z.ZodString;
24
+ features: z.ZodObject<{
25
+ karmaDisabled: z.ZodBoolean;
26
+ restriction: z.ZodNumber;
27
+ karmaVacation: z.ZodBoolean;
28
+ dateistLang: z.ZodAny;
29
+ beta: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>]>;
30
+ hasPushReminders: z.ZodBoolean;
31
+ dateistInlineDisabled: z.ZodBoolean;
32
+ autoInviteDisabled: z.ZodOptional<z.ZodBoolean>;
33
+ goldTheme: z.ZodOptional<z.ZodBoolean>;
34
+ migratedFromTdb: z.ZodOptional<z.ZodBoolean>;
35
+ }, z.core.$loose>;
36
+ freeTrailExpires: z.ZodOptional<z.ZodString>;
37
+ hasMagicNumber: z.ZodBoolean;
38
+ hasPassword: z.ZodBoolean;
39
+ hasStartedATrial: z.ZodOptional<z.ZodBoolean>;
40
+ imageId: z.ZodNullable<z.ZodString>;
41
+ inboxProjectId: z.ZodString;
42
+ isCelebrationsEnabled: z.ZodBoolean;
43
+ isPremium: z.ZodBoolean;
44
+ joinableWorkspace: z.ZodNullable<z.ZodObject<{
45
+ workspaceId: z.ZodString;
46
+ workspaceName: z.ZodString;
47
+ memberCount: z.ZodNumber;
48
+ }, z.core.$loose>>;
49
+ joinedAt: z.ZodString;
50
+ gettingStartedGuideProjects: z.ZodNullable<z.ZodArray<z.ZodObject<{
51
+ onboardingUseCase: z.ZodString;
52
+ projectId: z.ZodString;
53
+ completed: z.ZodBoolean;
54
+ closed: z.ZodBoolean;
55
+ }, z.core.$loose>>>;
56
+ karma: z.ZodNumber;
57
+ karmaTrend: z.ZodString;
58
+ lang: z.ZodString;
59
+ mfaEnabled: z.ZodOptional<z.ZodBoolean>;
60
+ mobileHost: z.ZodNullable<z.ZodString>;
61
+ mobileNumber: z.ZodNullable<z.ZodString>;
62
+ nextWeek: z.ZodNumber;
63
+ onboardingLevel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
64
+ onboardingRole: z.ZodOptional<z.ZodNullable<z.ZodString>>;
65
+ onboardingPersona: z.ZodOptional<z.ZodNullable<z.ZodString>>;
66
+ onboardingInitiated: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
67
+ onboardingCompleted: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
68
+ onboardingSkipped: z.ZodOptional<z.ZodBoolean>;
69
+ onboardingTeamMode: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
70
+ onboardingUseCases: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
71
+ premiumStatus: z.ZodEnum<{
72
+ not_premium: "not_premium";
73
+ current_personal_plan: "current_personal_plan";
74
+ legacy_personal_plan: "legacy_personal_plan";
75
+ teams_business_member: "teams_business_member";
76
+ }>;
77
+ premiumUntil: z.ZodNullable<z.ZodString>;
78
+ rambleSessionsUsage: z.ZodOptional<z.ZodNullable<z.ZodObject<{
79
+ currentCount: z.ZodNumber;
80
+ limit: z.ZodNumber;
81
+ remaining: z.ZodNumber;
82
+ resetDate: z.ZodString;
83
+ }, z.core.$strip>>>;
84
+ shareLimit: z.ZodNumber;
85
+ sortOrder: z.ZodNumber;
86
+ startDay: z.ZodNumber;
87
+ startPage: z.ZodString;
88
+ themeId: z.ZodString;
89
+ timeFormat: z.ZodNumber;
90
+ token: z.ZodString;
91
+ tzInfo: z.ZodObject<{
92
+ timezone: z.ZodString;
93
+ hours: z.ZodNumber;
94
+ minutes: z.ZodNumber;
95
+ isDst: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>]>;
96
+ gmtString: z.ZodString;
97
+ }, z.core.$loose>;
98
+ uniquePrefix: z.ZodNumber;
99
+ verificationStatus: z.ZodString;
100
+ websocketUrl: z.ZodString;
101
+ weekendStartDay: z.ZodNumber;
102
+ weeklyGoal: z.ZodNumber;
103
+ }, z.core.$loose>;
104
+ export type SyncUser = z.infer<typeof SyncUserSchema>;
@@ -0,0 +1,94 @@
1
+ import { z } from 'zod';
2
+ export declare const ViewOptionsSchema: z.ZodObject<{
3
+ viewType: z.ZodEnum<{
4
+ TODAY: "TODAY";
5
+ UPCOMING: "UPCOMING";
6
+ PROJECT: "PROJECT";
7
+ LABEL: "LABEL";
8
+ FILTER: "FILTER";
9
+ WORKSPACE_FILTER: "WORKSPACE_FILTER";
10
+ SEARCH: "SEARCH";
11
+ TEMPLATE_PREVIEW: "TEMPLATE_PREVIEW";
12
+ TASK_DETAIL: "TASK_DETAIL";
13
+ AUTOMATION: "AUTOMATION";
14
+ ASSIGNED: "ASSIGNED";
15
+ OVERDUE: "OVERDUE";
16
+ WORKSPACE_OVERVIEW: "WORKSPACE_OVERVIEW";
17
+ }>;
18
+ objectId: z.ZodOptional<z.ZodString>;
19
+ groupedBy: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
20
+ PROJECT: "PROJECT";
21
+ LABEL: "LABEL";
22
+ ASSIGNEE: "ASSIGNEE";
23
+ ADDED_DATE: "ADDED_DATE";
24
+ DUE_DATE: "DUE_DATE";
25
+ DEADLINE: "DEADLINE";
26
+ PRIORITY: "PRIORITY";
27
+ WORKSPACE: "WORKSPACE";
28
+ }>>>;
29
+ filteredBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
30
+ viewMode: z.ZodOptional<z.ZodEnum<{
31
+ LIST: "LIST";
32
+ BOARD: "BOARD";
33
+ CALENDAR: "CALENDAR";
34
+ }>>;
35
+ showCompletedTasks: z.ZodOptional<z.ZodBoolean>;
36
+ sortedBy: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
37
+ MANUAL: "MANUAL";
38
+ PROJECT: "PROJECT";
39
+ ASSIGNEE: "ASSIGNEE";
40
+ ADDED_DATE: "ADDED_DATE";
41
+ DUE_DATE: "DUE_DATE";
42
+ DEADLINE: "DEADLINE";
43
+ PRIORITY: "PRIORITY";
44
+ WORKSPACE: "WORKSPACE";
45
+ ALPHABETICALLY: "ALPHABETICALLY";
46
+ }>>>;
47
+ sortOrder: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
48
+ ASC: "ASC";
49
+ DESC: "DESC";
50
+ }>>>;
51
+ }, z.core.$loose>;
52
+ export type ViewOptions = z.infer<typeof ViewOptionsSchema>;
53
+ export declare const ProjectViewOptionsDefaultsSchema: z.ZodObject<{
54
+ projectId: z.ZodString;
55
+ viewMode: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
56
+ LIST: "LIST";
57
+ BOARD: "BOARD";
58
+ CALENDAR: "CALENDAR";
59
+ }>>>;
60
+ groupedBy: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
61
+ PROJECT: "PROJECT";
62
+ LABEL: "LABEL";
63
+ ASSIGNEE: "ASSIGNEE";
64
+ ADDED_DATE: "ADDED_DATE";
65
+ DUE_DATE: "DUE_DATE";
66
+ DEADLINE: "DEADLINE";
67
+ PRIORITY: "PRIORITY";
68
+ WORKSPACE: "WORKSPACE";
69
+ }>>>;
70
+ sortedBy: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
71
+ MANUAL: "MANUAL";
72
+ PROJECT: "PROJECT";
73
+ ASSIGNEE: "ASSIGNEE";
74
+ ADDED_DATE: "ADDED_DATE";
75
+ DUE_DATE: "DUE_DATE";
76
+ DEADLINE: "DEADLINE";
77
+ PRIORITY: "PRIORITY";
78
+ WORKSPACE: "WORKSPACE";
79
+ ALPHABETICALLY: "ALPHABETICALLY";
80
+ }>>>;
81
+ sortOrder: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
82
+ ASC: "ASC";
83
+ DESC: "DESC";
84
+ }>>>;
85
+ showCompletedTasks: z.ZodOptional<z.ZodBoolean>;
86
+ filteredBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
87
+ calendarSettings: z.ZodOptional<z.ZodNullable<z.ZodObject<{
88
+ layout: z.ZodOptional<z.ZodEnum<{
89
+ WEEK: "WEEK";
90
+ MONTH: "MONTH";
91
+ }>>;
92
+ }, z.core.$loose>>>;
93
+ }, z.core.$loose>;
94
+ export type ProjectViewOptionsDefaults = z.infer<typeof ProjectViewOptionsDefaultsSchema>;
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ export declare const WorkspaceFilterSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ workspaceId: z.ZodString;
5
+ name: z.ZodString;
6
+ query: z.ZodString;
7
+ color: z.ZodString;
8
+ itemOrder: z.ZodNumber;
9
+ isDeleted: z.ZodBoolean;
10
+ isFavorite: z.ZodBoolean;
11
+ isFrozen: z.ZodBoolean;
12
+ creatorUid: z.ZodString;
13
+ updaterUid: z.ZodString;
14
+ createdAt: z.ZodString;
15
+ updatedAt: z.ZodString;
16
+ }, z.core.$loose>;
17
+ export type WorkspaceFilter = z.infer<typeof WorkspaceFilterSchema>;
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ export declare const WorkspaceGoalMilestoneSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ title: z.ZodString;
5
+ isCompleted: z.ZodBoolean;
6
+ }, z.core.$loose>;
7
+ export type WorkspaceGoalMilestone = z.infer<typeof WorkspaceGoalMilestoneSchema>;
8
+ export declare const WorkspaceGoalProgressSchema: z.ZodObject<{
9
+ completedItems: z.ZodNumber;
10
+ totalItems: z.ZodNumber;
11
+ }, z.core.$loose>;
12
+ export type WorkspaceGoalProgress = z.infer<typeof WorkspaceGoalProgressSchema>;
13
+ export declare const WorkspaceGoalSchema: z.ZodObject<{
14
+ id: z.ZodString;
15
+ workspaceId: z.ZodString;
16
+ title: z.ZodString;
17
+ description: z.ZodNullable<z.ZodString>;
18
+ deadline: z.ZodNullable<z.ZodString>;
19
+ isDeleted: z.ZodBoolean;
20
+ projectIds: z.ZodArray<z.ZodString>;
21
+ progress: z.ZodNullable<z.ZodObject<{
22
+ completedItems: z.ZodNumber;
23
+ totalItems: z.ZodNumber;
24
+ }, z.core.$loose>>;
25
+ creatorUid: z.ZodString;
26
+ createdAt: z.ZodString;
27
+ updatedAt: z.ZodString;
28
+ }, z.core.$loose>;
29
+ export type WorkspaceGoal = z.infer<typeof WorkspaceGoalSchema>;
@@ -0,0 +1,52 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Sync API workspace resource.
4
+ *
5
+ * This is a superset of the REST `WorkspaceSchema` — the Sync API returns
6
+ * additional fields like description, isDeleted, isCollapsed, member counts,
7
+ * domain settings, and sorting preferences.
8
+ */
9
+ export declare const SyncWorkspaceSchema: z.ZodObject<{
10
+ id: z.ZodString;
11
+ name: z.ZodString;
12
+ description: z.ZodString;
13
+ logoBig: z.ZodOptional<z.ZodString>;
14
+ logoMedium: z.ZodOptional<z.ZodString>;
15
+ logoSmall: z.ZodOptional<z.ZodString>;
16
+ logoS640: z.ZodOptional<z.ZodString>;
17
+ creatorId: z.ZodString;
18
+ createdAt: z.ZodString;
19
+ isDeleted: z.ZodBoolean;
20
+ isCollapsed: z.ZodBoolean;
21
+ role: z.ZodEnum<{
22
+ ADMIN: "ADMIN";
23
+ MEMBER: "MEMBER";
24
+ GUEST: "GUEST";
25
+ }>;
26
+ plan: z.ZodEnum<{
27
+ STARTER: "STARTER";
28
+ BUSINESS: "BUSINESS";
29
+ }>;
30
+ limits: z.ZodObject<{
31
+ current: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodAny>>;
32
+ next: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodAny>>;
33
+ }, z.core.$catchall<z.ZodAny>>;
34
+ inviteCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
35
+ isLinkSharingEnabled: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
36
+ isGuestAllowed: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
37
+ currentActiveProjects: z.ZodNullable<z.ZodNumber>;
38
+ currentMemberCount: z.ZodNullable<z.ZodNumber>;
39
+ currentTemplateCount: z.ZodNullable<z.ZodNumber>;
40
+ pendingInvitations: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
41
+ domainName: z.ZodOptional<z.ZodString>;
42
+ domainDiscovery: z.ZodOptional<z.ZodBoolean>;
43
+ restrictEmailDomains: z.ZodOptional<z.ZodBoolean>;
44
+ adminSortingApplied: z.ZodBoolean;
45
+ projectSortPreference: z.ZodOptional<z.ZodString>;
46
+ defaultCollaborators: z.ZodOptional<z.ZodObject<{
47
+ predefinedGroupIds: z.ZodArray<z.ZodString>;
48
+ userIds: z.ZodArray<z.ZodNumber>;
49
+ }, z.core.$strip>>;
50
+ properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
51
+ }, z.core.$loose>;
52
+ export type SyncWorkspace = z.infer<typeof SyncWorkspaceSchema>;
@@ -0,0 +1,47 @@
1
+ import type { Task, Label, Section, PersonalProject, WorkspaceProject, WorkspaceUser } from '../entities.js';
2
+ import type { Filter, Collaborator, CollaboratorState, Folder, Note, Tooltips, WorkspaceFilter, WorkspaceGoal, Calendar, CalendarAccount, Reminder, CompletedInfo, ViewOptions, ProjectViewOptionsDefaults, UserPlanLimits, LiveNotification, SyncWorkspace, SyncUser, UserSettings, LocationReminder, Suggestion } from './resources/index.js';
3
+ export type SyncError = {
4
+ error: string;
5
+ errorCode: number;
6
+ errorExtra: Record<string, unknown>;
7
+ errorTag: string;
8
+ httpCode: number;
9
+ };
10
+ export type SyncResponse = {
11
+ syncToken?: string;
12
+ fullSync?: boolean;
13
+ syncStatus?: Record<string, 'ok' | SyncError>;
14
+ tempIdMapping?: Record<string, string>;
15
+ items?: Task[];
16
+ projects?: (PersonalProject | WorkspaceProject)[];
17
+ sections?: Section[];
18
+ labels?: Label[];
19
+ notes?: Note[];
20
+ projectNotes?: Note[];
21
+ filters?: Filter[];
22
+ reminders?: Reminder[];
23
+ remindersLocation?: LocationReminder[];
24
+ locations?: Record<string, unknown>[];
25
+ user?: SyncUser;
26
+ liveNotifications?: LiveNotification[];
27
+ collaborators?: Collaborator[];
28
+ collaboratorStates?: CollaboratorState[];
29
+ userSettings?: UserSettings;
30
+ notificationSettings?: Record<string, boolean>;
31
+ userPlanLimits?: UserPlanLimits;
32
+ completedInfo?: CompletedInfo[];
33
+ stats?: Record<string, unknown>;
34
+ workspaces?: SyncWorkspace[];
35
+ workspaceUsers?: WorkspaceUser[];
36
+ workspaceFilters?: WorkspaceFilter[];
37
+ viewOptions?: ViewOptions[];
38
+ projectViewOptionsDefaults?: ProjectViewOptionsDefaults[];
39
+ roleActions?: Record<string, unknown>[];
40
+ folders?: Folder[];
41
+ workspaceGoals?: WorkspaceGoal[];
42
+ dayOrders?: Record<string, number>;
43
+ calendars?: Calendar[];
44
+ calendarAccounts?: CalendarAccount[];
45
+ suggestions?: Suggestion[];
46
+ tooltips?: Tooltips;
47
+ };
@@ -1,3 +1,4 @@
1
1
  export * from './colors.js';
2
2
  export * from './sanitization.js';
3
3
  export { getTaskUrl, getProjectUrl, getSectionUrl } from './url-helpers.js';
4
+ export { createCommand } from './sync-helpers.js';
@@ -0,0 +1,17 @@
1
+ import type { SyncCommandType, SyncCommandsMap, SyncCommand } from '../types/sync/commands/index.js';
2
+ /**
3
+ * Creates a strongly-typed Sync API command with an auto-generated UUID.
4
+ *
5
+ * @param type - The command type (e.g. `'item_add'`, `'project_update'`).
6
+ * @param args - The command arguments, constrained by the command type.
7
+ * @param tempId - Optional temporary ID for referencing the created resource in subsequent commands.
8
+ * @returns A fully formed `SyncCommand` ready to include in a sync request.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const cmd = createCommand('item_add', { content: 'Buy milk', priority: 2 })
13
+ * // cmd.type === 'item_add'
14
+ * // cmd.args is typed as TaskAddArgs
15
+ * ```
16
+ */
17
+ export declare function createCommand<T extends SyncCommandType>(type: T, args: SyncCommandsMap[T], tempId?: string): SyncCommand<T>;