@todoist/sdk 0.0.1 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +293 -29
- package/dist/esm/authentication.js +307 -0
- package/dist/esm/clients/activity-client.js +60 -0
- package/dist/esm/clients/app-client.js +366 -0
- package/dist/esm/clients/backup-client.js +47 -0
- package/dist/esm/clients/base-client.js +29 -0
- package/dist/esm/clients/billing-client.js +160 -0
- package/dist/esm/clients/comment-client.js +92 -0
- package/dist/esm/clients/email-client.js +41 -0
- package/dist/esm/clients/filter-client.js +26 -0
- package/dist/esm/clients/folder-client.js +80 -0
- package/dist/esm/clients/id-mapping-client.js +37 -0
- package/dist/esm/clients/insights-client.js +89 -0
- package/dist/esm/clients/label-client.js +131 -0
- package/dist/esm/clients/productivity-client.js +24 -0
- package/dist/esm/clients/project-client.js +284 -0
- package/dist/esm/clients/reminder-client.js +204 -0
- package/dist/esm/clients/section-client.js +121 -0
- package/dist/esm/clients/task-client.js +264 -0
- package/dist/esm/clients/template-client.js +89 -0
- package/dist/esm/clients/ui-extension-client.js +110 -0
- package/dist/esm/clients/upload-client.js +153 -0
- package/dist/esm/clients/view-options-client.js +21 -0
- package/dist/esm/clients/workspace-client.js +384 -0
- package/dist/esm/consts/endpoints.js +193 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/test-utils/asserts.js +8 -0
- package/dist/esm/test-utils/msw-setup.js +88 -0
- package/dist/esm/test-utils/obsidian-fetch-adapter.js +51 -0
- package/dist/esm/test-utils/test-defaults.js +368 -0
- package/dist/esm/test-utils/transport-seam.js +15 -0
- package/dist/esm/test-utils/webhook-fixtures.js +26 -0
- package/dist/esm/todoist-api.js +1757 -0
- package/dist/esm/transport/fetch-with-retry.js +216 -0
- package/dist/esm/transport/http-client.js +140 -0
- package/dist/esm/transport/http-dispatcher.js +158 -0
- package/dist/esm/transport/sync-request.js +106 -0
- package/dist/esm/types/activity/index.js +2 -0
- package/dist/esm/types/activity/requests.js +1 -0
- package/dist/esm/types/activity/types.js +45 -0
- package/dist/esm/types/apps/index.js +2 -0
- package/dist/esm/types/apps/requests.js +1 -0
- package/dist/esm/types/apps/types.js +255 -0
- package/dist/esm/types/backups/index.js +2 -0
- package/dist/esm/types/backups/requests.js +1 -0
- package/dist/esm/types/backups/types.js +5 -0
- package/dist/esm/types/billing/index.js +2 -0
- package/dist/esm/types/billing/requests.js +1 -0
- package/dist/esm/types/billing/types.js +89 -0
- package/dist/esm/types/comments/index.js +2 -0
- package/dist/esm/types/comments/requests.js +1 -0
- package/dist/esm/types/comments/types.js +57 -0
- package/dist/esm/types/common.js +7 -0
- package/dist/esm/types/emails/index.js +1 -0
- package/dist/esm/types/emails/requests.js +2 -0
- package/dist/esm/types/errors.js +41 -0
- package/dist/esm/types/folders/index.js +1 -0
- package/dist/esm/types/folders/requests.js +1 -0
- package/dist/esm/types/http.js +20 -0
- package/dist/esm/types/id-mappings/index.js +2 -0
- package/dist/esm/types/id-mappings/requests.js +17 -0
- package/dist/esm/types/id-mappings/types.js +9 -0
- package/dist/esm/types/index.js +24 -0
- package/dist/esm/types/insights/index.js +2 -0
- package/dist/esm/types/insights/requests.js +1 -0
- package/dist/esm/types/insights/types.js +77 -0
- package/dist/esm/types/labels/index.js +2 -0
- package/dist/esm/types/labels/requests.js +1 -0
- package/dist/esm/types/labels/types.js +8 -0
- package/dist/esm/types/productivity/index.js +1 -0
- package/dist/esm/types/productivity/types.js +65 -0
- package/dist/esm/types/projects/index.js +2 -0
- package/dist/esm/types/projects/requests.js +1 -0
- package/dist/esm/types/projects/types.js +65 -0
- package/dist/esm/types/reminders/index.js +1 -0
- package/dist/esm/types/reminders/requests.js +92 -0
- package/dist/esm/types/sections/index.js +2 -0
- package/dist/esm/types/sections/requests.js +1 -0
- package/dist/esm/types/sections/types.js +23 -0
- package/dist/esm/types/sync/commands/calendars.js +1 -0
- package/dist/esm/types/sync/commands/filters.js +1 -0
- package/dist/esm/types/sync/commands/folders.js +1 -0
- package/dist/esm/types/sync/commands/index.js +18 -0
- package/dist/esm/types/sync/commands/labels.js +2 -0
- package/dist/esm/types/sync/commands/notes.js +1 -0
- package/dist/esm/types/sync/commands/notifications.js +1 -0
- package/dist/esm/types/sync/commands/others.js +1 -0
- package/dist/esm/types/sync/commands/project-view-options.js +1 -0
- package/dist/esm/types/sync/commands/projects.js +1 -0
- package/dist/esm/types/sync/commands/reminders.js +1 -0
- package/dist/esm/types/sync/commands/sections.js +1 -0
- package/dist/esm/types/sync/commands/shared.js +16 -0
- package/dist/esm/types/sync/commands/sharing.js +1 -0
- package/dist/esm/types/sync/commands/tasks.js +1 -0
- package/dist/esm/types/sync/commands/view-options.js +1 -0
- package/dist/esm/types/sync/commands/workspace-filters.js +1 -0
- package/dist/esm/types/sync/commands/workspaces.js +1 -0
- package/dist/esm/types/sync/index.js +6 -0
- package/dist/esm/types/sync/request.js +1 -0
- package/dist/esm/types/sync/resource-types.js +36 -0
- package/dist/esm/types/sync/resources/calendars.js +24 -0
- package/dist/esm/types/sync/resources/collaborators.js +21 -0
- package/dist/esm/types/sync/resources/completed-info.js +21 -0
- package/dist/esm/types/sync/resources/filters.js +12 -0
- package/dist/esm/types/sync/resources/folders.js +10 -0
- package/dist/esm/types/sync/resources/index.js +18 -0
- package/dist/esm/types/sync/resources/labels.js +7 -0
- package/dist/esm/types/sync/resources/live-notifications.js +35 -0
- package/dist/esm/types/sync/resources/notes.js +18 -0
- package/dist/esm/types/sync/resources/reminders.js +58 -0
- package/dist/esm/types/sync/resources/suggestions.js +33 -0
- package/dist/esm/types/sync/resources/tooltips.js +5 -0
- package/dist/esm/types/sync/resources/user-plan-limits.js +21 -0
- package/dist/esm/types/sync/resources/user-settings.js +41 -0
- package/dist/esm/types/sync/resources/user-status.js +22 -0
- package/dist/esm/types/sync/resources/user.js +109 -0
- package/dist/esm/types/sync/resources/view-options.js +128 -0
- package/dist/esm/types/sync/resources/workspace-filters.js +17 -0
- package/dist/esm/types/sync/resources/workspaces.js +69 -0
- package/dist/esm/types/sync/response.js +57 -0
- package/dist/esm/types/sync/user-preferences.js +68 -0
- package/dist/esm/types/tasks/index.js +2 -0
- package/dist/esm/types/tasks/requests.js +1 -0
- package/dist/esm/types/tasks/types.js +56 -0
- package/dist/esm/types/templates/index.js +1 -0
- package/dist/esm/types/templates/requests.js +1 -0
- package/dist/esm/types/ui-extensions/index.js +2 -0
- package/dist/esm/types/ui-extensions/requests.js +1 -0
- package/dist/esm/types/ui-extensions/types.js +74 -0
- package/dist/esm/types/uploads/index.js +1 -0
- package/dist/esm/types/uploads/requests.js +1 -0
- package/dist/esm/types/users/index.js +1 -0
- package/dist/esm/types/users/types.js +49 -0
- package/dist/esm/types/webhooks/comments.js +93 -0
- package/dist/esm/types/webhooks/envelope.js +23 -0
- package/dist/esm/types/webhooks/filters.js +27 -0
- package/dist/esm/types/webhooks/index.js +9 -0
- package/dist/esm/types/webhooks/labels.js +51 -0
- package/dist/esm/types/webhooks/projects.js +33 -0
- package/dist/esm/types/webhooks/reminders.js +32 -0
- package/dist/esm/types/webhooks/sections.js +50 -0
- package/dist/esm/types/webhooks/tasks.js +65 -0
- package/dist/esm/types/webhooks/types.js +52 -0
- package/dist/esm/types/workspaces/index.js +2 -0
- package/dist/esm/types/workspaces/requests.js +1 -0
- package/dist/esm/types/workspaces/types.js +151 -0
- package/dist/esm/utils/activity-helpers.js +53 -0
- package/dist/esm/utils/case-conversion.js +84 -0
- package/dist/esm/utils/colors.js +145 -0
- package/dist/esm/utils/file-response.js +29 -0
- package/dist/esm/utils/filter-queries.js +231 -0
- package/dist/esm/utils/filter-query-definitions.js +2789 -0
- package/dist/esm/utils/headers.js +42 -0
- package/dist/esm/utils/index.js +11 -0
- package/dist/esm/utils/multipart-upload.js +267 -0
- package/dist/esm/utils/person-names.js +61 -0
- package/dist/esm/utils/processing-helpers.js +12 -0
- package/dist/esm/utils/project-helpers.js +29 -0
- package/dist/esm/utils/request-helpers.js +43 -0
- package/dist/esm/utils/sanitization.js +131 -0
- package/dist/esm/utils/sync-helpers.js +19 -0
- package/dist/esm/utils/task-sorting.js +280 -0
- package/dist/esm/utils/uncompletable-helpers.js +54 -0
- package/dist/esm/utils/url-helpers.js +196 -0
- package/dist/esm/utils/validators.js +102 -0
- package/dist/esm/utils/view-options.js +15 -0
- package/dist/esm/utils/webhook-parser.js +56 -0
- package/dist/types/authentication.d.ts +262 -0
- package/dist/types/clients/activity-client.d.ts +12 -0
- package/dist/types/clients/app-client.d.ts +37 -0
- package/dist/types/clients/backup-client.d.ts +14 -0
- package/dist/types/clients/base-client.d.ts +23 -0
- package/dist/types/clients/billing-client.d.ts +22 -0
- package/dist/types/clients/comment-client.d.ts +15 -0
- package/dist/types/clients/email-client.d.ts +13 -0
- package/dist/types/clients/filter-client.d.ts +10 -0
- package/dist/types/clients/folder-client.d.ts +16 -0
- package/dist/types/clients/id-mapping-client.d.ts +13 -0
- package/dist/types/clients/insights-client.d.ts +18 -0
- package/dist/types/clients/label-client.d.ts +19 -0
- package/dist/types/clients/productivity-client.d.ts +12 -0
- package/dist/types/clients/project-client.d.ts +22 -0
- package/dist/types/clients/reminder-client.d.ts +25 -0
- package/dist/types/clients/section-client.d.ts +18 -0
- package/dist/types/clients/task-client.d.ts +25 -0
- package/dist/types/clients/template-client.d.ts +17 -0
- package/dist/types/clients/ui-extension-client.d.ts +18 -0
- package/dist/types/clients/upload-client.d.ts +17 -0
- package/dist/types/clients/view-options-client.d.ts +8 -0
- package/dist/types/clients/workspace-client.d.ts +43 -0
- package/dist/types/consts/endpoints.d.ts +120 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/test-utils/asserts.d.ts +1 -0
- package/dist/types/test-utils/msw-setup.d.ts +33 -0
- package/dist/types/test-utils/obsidian-fetch-adapter.d.ts +29 -0
- package/dist/types/test-utils/test-defaults.d.ts +286 -0
- package/dist/types/test-utils/transport-seam.d.ts +1 -0
- package/dist/types/test-utils/webhook-fixtures.d.ts +13 -0
- package/dist/types/todoist-api.d.ts +1437 -0
- package/dist/types/transport/fetch-with-retry.d.ts +12 -0
- package/dist/types/transport/http-client.d.ts +25 -0
- package/dist/types/transport/http-dispatcher.d.ts +65 -0
- package/dist/types/transport/sync-request.d.ts +31 -0
- package/dist/types/types/activity/index.d.ts +2 -0
- package/dist/types/types/activity/requests.d.ts +85 -0
- package/dist/types/types/activity/types.d.ts +56 -0
- package/dist/types/types/apps/index.d.ts +2 -0
- package/dist/types/types/apps/requests.d.ts +99 -0
- package/dist/types/types/apps/types.d.ts +450 -0
- package/dist/types/types/backups/index.d.ts +2 -0
- package/dist/types/types/backups/requests.d.ts +16 -0
- package/dist/types/types/backups/types.d.ts +7 -0
- package/dist/types/types/billing/index.d.ts +2 -0
- package/dist/types/types/billing/requests.d.ts +62 -0
- package/dist/types/types/billing/types.d.ts +207 -0
- package/dist/types/types/comments/index.d.ts +2 -0
- package/dist/types/types/comments/requests.d.ts +64 -0
- package/dist/types/types/comments/types.d.ts +141 -0
- package/dist/types/types/common.d.ts +13 -0
- package/dist/types/types/emails/index.d.ts +1 -0
- package/dist/types/types/emails/requests.d.ts +30 -0
- package/dist/types/types/errors.d.ts +29 -0
- package/dist/types/types/folders/index.d.ts +1 -0
- package/dist/types/types/folders/requests.d.ts +20 -0
- package/dist/types/types/http.d.ts +104 -0
- package/dist/types/types/id-mappings/index.d.ts +2 -0
- package/dist/types/types/id-mappings/requests.d.ts +28 -0
- package/dist/types/types/id-mappings/types.d.ts +13 -0
- package/dist/types/types/index.d.ts +24 -0
- package/dist/types/types/insights/index.d.ts +2 -0
- package/dist/types/types/insights/requests.d.ts +26 -0
- package/dist/types/types/insights/types.d.ts +167 -0
- package/dist/types/types/labels/index.d.ts +2 -0
- package/dist/types/types/labels/requests.d.ts +75 -0
- package/dist/types/types/labels/types.d.ts +13 -0
- package/dist/types/types/productivity/index.d.ts +1 -0
- package/dist/types/types/productivity/types.d.ts +115 -0
- package/dist/types/types/projects/index.d.ts +2 -0
- package/dist/types/types/projects/requests.d.ts +206 -0
- package/dist/types/types/projects/types.d.ts +286 -0
- package/dist/types/types/reminders/index.d.ts +1 -0
- package/dist/types/types/reminders/requests.d.ts +205 -0
- package/dist/types/types/sections/index.d.ts +2 -0
- package/dist/types/types/sections/requests.d.ts +49 -0
- package/dist/types/types/sections/types.d.ts +70 -0
- package/dist/types/types/sync/commands/calendars.d.ts +14 -0
- package/dist/types/types/sync/commands/filters.d.ts +24 -0
- package/dist/types/types/sync/commands/folders.d.ts +20 -0
- package/dist/types/types/sync/commands/index.d.ts +167 -0
- package/dist/types/types/sync/commands/labels.d.ts +32 -0
- package/dist/types/types/sync/commands/notes.d.ts +27 -0
- package/dist/types/types/sync/commands/notifications.d.ts +10 -0
- package/dist/types/types/sync/commands/others.d.ts +61 -0
- package/dist/types/types/sync/commands/project-view-options.d.ts +13 -0
- package/dist/types/types/sync/commands/projects.d.ts +96 -0
- package/dist/types/types/sync/commands/reminders.d.ts +51 -0
- package/dist/types/types/sync/commands/sections.d.ts +36 -0
- package/dist/types/types/sync/commands/shared.d.ts +51 -0
- package/dist/types/types/sync/commands/sharing.d.ts +16 -0
- package/dist/types/types/sync/commands/tasks.d.ts +78 -0
- package/dist/types/types/sync/commands/view-options.d.ts +18 -0
- package/dist/types/types/sync/commands/workspace-filters.d.ts +25 -0
- package/dist/types/types/sync/commands/workspaces.d.ts +82 -0
- package/dist/types/types/sync/index.d.ts +6 -0
- package/dist/types/types/sync/request.d.ts +7 -0
- package/dist/types/types/sync/resource-types.d.ts +5 -0
- package/dist/types/types/sync/resources/calendars.d.ts +38 -0
- package/dist/types/types/sync/resources/collaborators.d.ts +45 -0
- package/dist/types/types/sync/resources/completed-info.d.ts +33 -0
- package/dist/types/types/sync/resources/filters.d.ts +13 -0
- package/dist/types/types/sync/resources/folders.d.ts +11 -0
- package/dist/types/types/sync/resources/index.d.ts +18 -0
- package/dist/types/types/sync/resources/labels.d.ts +12 -0
- package/dist/types/types/sync/resources/live-notifications.d.ts +32 -0
- package/dist/types/types/sync/resources/notes.d.ts +34 -0
- package/dist/types/types/sync/resources/reminders.d.ts +213 -0
- package/dist/types/types/sync/resources/suggestions.d.ts +96 -0
- package/dist/types/types/sync/resources/tooltips.d.ts +6 -0
- package/dist/types/types/sync/resources/user-plan-limits.d.ts +47 -0
- package/dist/types/types/sync/resources/user-settings.d.ts +40 -0
- package/dist/types/types/sync/resources/user-status.d.ts +46 -0
- package/dist/types/types/sync/resources/user.d.ts +151 -0
- package/dist/types/types/sync/resources/view-options.d.ts +157 -0
- package/dist/types/types/sync/resources/workspace-filters.d.ts +18 -0
- package/dist/types/types/sync/resources/workspaces.d.ts +142 -0
- package/dist/types/types/sync/response.d.ts +930 -0
- package/dist/types/types/sync/user-preferences.d.ts +39 -0
- package/dist/types/types/tasks/index.d.ts +2 -0
- package/dist/types/types/tasks/requests.d.ts +197 -0
- package/dist/types/types/tasks/types.d.ts +162 -0
- package/dist/types/types/templates/index.d.ts +1 -0
- package/dist/types/types/templates/requests.d.ts +92 -0
- package/dist/types/types/ui-extensions/index.d.ts +2 -0
- package/dist/types/types/ui-extensions/requests.d.ts +108 -0
- package/dist/types/types/ui-extensions/types.d.ts +185 -0
- package/dist/types/types/uploads/index.d.ts +1 -0
- package/dist/types/types/uploads/requests.d.ts +32 -0
- package/dist/types/types/users/index.d.ts +1 -0
- package/dist/types/types/users/types.d.ts +67 -0
- package/dist/types/types/webhooks/comments.d.ts +1600 -0
- package/dist/types/types/webhooks/envelope.d.ts +34 -0
- package/dist/types/types/webhooks/filters.d.ts +99 -0
- package/dist/types/types/webhooks/index.d.ts +9 -0
- package/dist/types/types/webhooks/labels.d.ts +160 -0
- package/dist/types/types/webhooks/projects.d.ts +365 -0
- package/dist/types/types/webhooks/reminders.d.ts +82 -0
- package/dist/types/types/webhooks/sections.d.ts +372 -0
- package/dist/types/types/webhooks/tasks.d.ts +981 -0
- package/dist/types/types/webhooks/types.d.ts +2606 -0
- package/dist/types/types/workspaces/index.d.ts +2 -0
- package/dist/types/types/workspaces/requests.d.ts +260 -0
- package/dist/types/types/workspaces/types.d.ts +266 -0
- package/dist/types/utils/activity-helpers.d.ts +28 -0
- package/dist/types/utils/case-conversion.d.ts +20 -0
- package/dist/types/utils/colors.d.ts +201 -0
- package/dist/types/utils/file-response.d.ts +15 -0
- package/dist/types/utils/filter-queries.d.ts +42 -0
- package/dist/types/utils/filter-query-definitions.d.ts +27 -0
- package/dist/types/utils/headers.d.ts +20 -0
- package/dist/types/utils/index.d.ts +15 -0
- package/dist/types/utils/multipart-upload.d.ts +58 -0
- package/dist/types/utils/person-names.d.ts +52 -0
- package/dist/types/utils/processing-helpers.d.ts +1 -0
- package/dist/types/utils/project-helpers.d.ts +21 -0
- package/dist/types/utils/request-helpers.d.ts +33 -0
- package/dist/types/utils/sanitization.d.ts +52 -0
- package/dist/types/utils/sync-helpers.d.ts +17 -0
- package/dist/types/utils/task-sorting.d.ts +46 -0
- package/dist/types/utils/uncompletable-helpers.d.ts +30 -0
- package/dist/types/utils/url-helpers.d.ts +120 -0
- package/dist/types/utils/validators.d.ts +1922 -0
- package/dist/types/utils/view-options.d.ts +11 -0
- package/dist/types/utils/webhook-parser.d.ts +48 -0
- package/package.json +87 -8
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Available date format options. */
|
|
3
|
+
export declare const DATE_FORMATS: readonly ["DD/MM/YYYY", "MM/DD/YYYY"];
|
|
4
|
+
/** User date format preference. */
|
|
5
|
+
export type DateFormat = (typeof DATE_FORMATS)[number];
|
|
6
|
+
/** Available time format options. */
|
|
7
|
+
export declare const TIME_FORMATS: readonly ["24h", "12h"];
|
|
8
|
+
/** User time format preference. */
|
|
9
|
+
export type TimeFormat = (typeof TIME_FORMATS)[number];
|
|
10
|
+
/** Available days of the week. */
|
|
11
|
+
export declare const DAYS_OF_WEEK: readonly ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
|
|
12
|
+
/** Day of the week. */
|
|
13
|
+
export type DayOfWeek = (typeof DAYS_OF_WEEK)[number];
|
|
14
|
+
export declare const DATE_FORMAT_FROM_API: {
|
|
15
|
+
readonly 0: "DD/MM/YYYY";
|
|
16
|
+
readonly 1: "MM/DD/YYYY";
|
|
17
|
+
};
|
|
18
|
+
export declare const TIME_FORMAT_FROM_API: {
|
|
19
|
+
readonly 0: "24h";
|
|
20
|
+
readonly 1: "12h";
|
|
21
|
+
};
|
|
22
|
+
export declare const DAY_OF_WEEK_FROM_API: {
|
|
23
|
+
readonly 1: "Monday";
|
|
24
|
+
readonly 2: "Tuesday";
|
|
25
|
+
readonly 3: "Wednesday";
|
|
26
|
+
readonly 4: "Thursday";
|
|
27
|
+
readonly 5: "Friday";
|
|
28
|
+
readonly 6: "Saturday";
|
|
29
|
+
readonly 7: "Sunday";
|
|
30
|
+
};
|
|
31
|
+
export declare const DATE_FORMAT_TO_API: Record<DateFormat, 0 | 1>;
|
|
32
|
+
export declare const TIME_FORMAT_TO_API: Record<TimeFormat, 0 | 1>;
|
|
33
|
+
export declare const DAY_OF_WEEK_TO_API: Record<DayOfWeek, 1 | 2 | 3 | 4 | 5 | 6 | 7>;
|
|
34
|
+
/** Zod read-schema: parse API 0/1 integer, emit boolean */
|
|
35
|
+
export declare const BooleanFromZeroOneSchema: z.ZodPipe<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>]>, z.ZodTransform<boolean, 0 | 1>>;
|
|
36
|
+
/** Zod read-schemas: parse API numbers, emit descriptive strings */
|
|
37
|
+
export declare const DateFormatSchema: z.ZodPipe<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>]>, z.ZodTransform<"DD/MM/YYYY" | "MM/DD/YYYY", 0 | 1>>;
|
|
38
|
+
export declare const TimeFormatSchema: z.ZodPipe<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>]>, z.ZodTransform<"24h" | "12h", 0 | 1>>;
|
|
39
|
+
export declare const DayOfWeekSchema: z.ZodPipe<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<5>, z.ZodLiteral<6>, z.ZodLiteral<7>]>, z.ZodTransform<"Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday" | "Sunday", 1 | 2 | 3 | 4 | 5 | 6 | 7>>;
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import type { RequireAllOrNone, RequireOneOrNone, RequireExactlyOne } from 'type-fest';
|
|
2
|
+
import type { Duration, Task } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Arguments for creating a new task.
|
|
5
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks/operation/create_task_api_v1_tasks_post
|
|
6
|
+
*/
|
|
7
|
+
export type AddTaskArgs = {
|
|
8
|
+
content: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
projectId?: string;
|
|
11
|
+
sectionId?: string;
|
|
12
|
+
parentId?: string;
|
|
13
|
+
order?: number;
|
|
14
|
+
labels?: string[];
|
|
15
|
+
priority?: number;
|
|
16
|
+
assigneeId?: string;
|
|
17
|
+
dueString?: string;
|
|
18
|
+
dueLang?: string;
|
|
19
|
+
deadlineLang?: string;
|
|
20
|
+
deadlineDate?: string;
|
|
21
|
+
isUncompletable?: boolean;
|
|
22
|
+
} & RequireOneOrNone<{
|
|
23
|
+
dueDate?: string;
|
|
24
|
+
dueDatetime?: string;
|
|
25
|
+
}> & RequireAllOrNone<{
|
|
26
|
+
duration?: Duration['amount'];
|
|
27
|
+
durationUnit?: Duration['unit'];
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Arguments for retrieving tasks.
|
|
31
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks/operation/get_tasks_api_v1_tasks_get
|
|
32
|
+
*/
|
|
33
|
+
export type GetTasksArgs = {
|
|
34
|
+
projectId?: string;
|
|
35
|
+
sectionId?: string;
|
|
36
|
+
parentId?: string;
|
|
37
|
+
label?: string;
|
|
38
|
+
ids?: string[];
|
|
39
|
+
cursor?: string | null;
|
|
40
|
+
limit?: number;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Arguments for retrieving tasks by filter.
|
|
44
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks/operation/get_tasks_by_filter_api_v1_tasks_filter_get
|
|
45
|
+
*/
|
|
46
|
+
export type GetTasksByFilterArgs = {
|
|
47
|
+
query: string;
|
|
48
|
+
lang?: string;
|
|
49
|
+
cursor?: string | null;
|
|
50
|
+
limit?: number;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Arguments for retrieving completed tasks by completion date.
|
|
54
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks/operation/tasks_completed_by_completion_date_api_v1_tasks_completed_by_completion_date_get
|
|
55
|
+
*/
|
|
56
|
+
export type GetCompletedTasksByCompletionDateArgs = {
|
|
57
|
+
since: string;
|
|
58
|
+
until: string;
|
|
59
|
+
workspaceId?: string | null;
|
|
60
|
+
projectId?: string | null;
|
|
61
|
+
sectionId?: string | null;
|
|
62
|
+
parentId?: string | null;
|
|
63
|
+
filterQuery?: string | null;
|
|
64
|
+
filterLang?: string | null;
|
|
65
|
+
cursor?: string | null;
|
|
66
|
+
limit?: number;
|
|
67
|
+
publicKey?: string | null;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Arguments for retrieving completed tasks by due date.
|
|
71
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks/operation/tasks_completed_by_due_date_api_v1_tasks_completed_by_due_date_get
|
|
72
|
+
*/
|
|
73
|
+
export type GetCompletedTasksByDueDateArgs = {
|
|
74
|
+
since: string;
|
|
75
|
+
until: string;
|
|
76
|
+
workspaceId?: string | null;
|
|
77
|
+
projectId?: string | null;
|
|
78
|
+
sectionId?: string | null;
|
|
79
|
+
parentId?: string | null;
|
|
80
|
+
filterQuery?: string | null;
|
|
81
|
+
filterLang?: string | null;
|
|
82
|
+
cursor?: string | null;
|
|
83
|
+
limit?: number;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Arguments for searching completed tasks.
|
|
87
|
+
*/
|
|
88
|
+
export type SearchCompletedTasksArgs = {
|
|
89
|
+
query: string;
|
|
90
|
+
cursor?: string | null;
|
|
91
|
+
limit?: number;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks/operation/get_tasks_api_v1_tasks_get
|
|
95
|
+
*/
|
|
96
|
+
export type GetTasksResponse = {
|
|
97
|
+
results: Task[];
|
|
98
|
+
nextCursor: string | null;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks/operation/tasks_completed_by_due_date_api_v1_tasks_completed_by_due_date_get
|
|
102
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks/operation/tasks_completed_by_completion_date_api_v1_tasks_completed_by_completion_date_get
|
|
103
|
+
*/
|
|
104
|
+
export type GetCompletedTasksResponse = {
|
|
105
|
+
items: Task[];
|
|
106
|
+
nextCursor: string | null;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Arguments for updating a task.
|
|
110
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks/operation/update_task_api_v1_tasks__task_id__post
|
|
111
|
+
*/
|
|
112
|
+
export type UpdateTaskArgs = {
|
|
113
|
+
content?: string;
|
|
114
|
+
description?: string;
|
|
115
|
+
labels?: string[];
|
|
116
|
+
priority?: number;
|
|
117
|
+
/**
|
|
118
|
+
* Sort order of the task within its parent/project.
|
|
119
|
+
* Internally mapped to `child_order` in the API payload.
|
|
120
|
+
*/
|
|
121
|
+
order?: number;
|
|
122
|
+
/**
|
|
123
|
+
* Natural language due date.
|
|
124
|
+
* Use `"no date"` to clear a due date, or `null` as an SDK alias for the same behavior.
|
|
125
|
+
*/
|
|
126
|
+
dueString?: (string & {}) | 'no date' | null;
|
|
127
|
+
dueLang?: string | null;
|
|
128
|
+
assigneeId?: string | null;
|
|
129
|
+
/**
|
|
130
|
+
* Deadline date in `YYYY-MM-DD` format.
|
|
131
|
+
* Use `null` to clear a task deadline.
|
|
132
|
+
*/
|
|
133
|
+
deadlineDate?: string | null;
|
|
134
|
+
deadlineLang?: string | null;
|
|
135
|
+
isUncompletable?: boolean;
|
|
136
|
+
} & RequireOneOrNone<{
|
|
137
|
+
dueDate?: string;
|
|
138
|
+
dueDatetime?: string;
|
|
139
|
+
}> & RequireAllOrNone<{
|
|
140
|
+
duration?: Duration['amount'];
|
|
141
|
+
durationUnit?: Duration['unit'];
|
|
142
|
+
}>;
|
|
143
|
+
/**
|
|
144
|
+
* Arguments for quick adding a task.
|
|
145
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks/operation/quick_add_api_v1_tasks_quick_post
|
|
146
|
+
*/
|
|
147
|
+
export type QuickAddTaskArgs = {
|
|
148
|
+
text: string;
|
|
149
|
+
note?: string;
|
|
150
|
+
reminder?: string;
|
|
151
|
+
autoReminder?: boolean;
|
|
152
|
+
meta?: boolean;
|
|
153
|
+
isUncompletable?: boolean;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Response from quick adding a task.
|
|
157
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks/operation/quick_add_api_v1_tasks_quick_post
|
|
158
|
+
*/
|
|
159
|
+
/**
|
|
160
|
+
* Arguments for moving a task.
|
|
161
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks/operation/move_task_api_v1_tasks__task_id__move_post
|
|
162
|
+
*/
|
|
163
|
+
export type MoveTaskArgs = RequireExactlyOne<{
|
|
164
|
+
projectId?: string;
|
|
165
|
+
sectionId?: string;
|
|
166
|
+
parentId?: string;
|
|
167
|
+
}>;
|
|
168
|
+
/**
|
|
169
|
+
* Arguments for getting all completed tasks.
|
|
170
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks/operation/get_all_completed_items_api_v1_tasks_completed_get
|
|
171
|
+
*/
|
|
172
|
+
export type GetAllCompletedTasksArgs = {
|
|
173
|
+
/** Filter by project ID. */
|
|
174
|
+
projectId?: string | null;
|
|
175
|
+
/** Filter by label name. */
|
|
176
|
+
label?: string | null;
|
|
177
|
+
/** Number of results to return (max 200, default 30). */
|
|
178
|
+
limit?: number;
|
|
179
|
+
/** Number of results to skip (default 0). */
|
|
180
|
+
offset?: number;
|
|
181
|
+
/** Return items completed after this date. */
|
|
182
|
+
since?: Date | null;
|
|
183
|
+
/** Return items completed before this date. */
|
|
184
|
+
until?: Date | null;
|
|
185
|
+
/** Include comment data in the response. */
|
|
186
|
+
annotateNotes?: boolean;
|
|
187
|
+
/** Include task data in the response. */
|
|
188
|
+
annotateItems?: boolean;
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Response from getting all completed tasks.
|
|
192
|
+
*/
|
|
193
|
+
export type GetAllCompletedTasksResponse = {
|
|
194
|
+
projects: Record<string, Record<string, unknown>>;
|
|
195
|
+
sections: Record<string, Record<string, unknown>>;
|
|
196
|
+
items: Task[];
|
|
197
|
+
};
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const DueDateSchema: z.ZodObject<{
|
|
3
|
+
isRecurring: z.ZodBoolean;
|
|
4
|
+
string: z.ZodString;
|
|
5
|
+
date: z.ZodString;
|
|
6
|
+
datetime: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
7
|
+
timezone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
8
|
+
lang: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
/**
|
|
11
|
+
* Represents a due date for a task.
|
|
12
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks/operation/get_tasks_api_v1_tasks_get
|
|
13
|
+
*/
|
|
14
|
+
export type DueDate = z.infer<typeof DueDateSchema>;
|
|
15
|
+
/** Available duration units for task deadlines. */
|
|
16
|
+
export declare const DURATION_UNITS: readonly ["minute", "day"];
|
|
17
|
+
/** Unit of time for a task duration. */
|
|
18
|
+
export type DurationUnit = (typeof DURATION_UNITS)[number];
|
|
19
|
+
export declare const DurationSchema: z.ZodObject<{
|
|
20
|
+
amount: z.ZodNumber;
|
|
21
|
+
unit: z.ZodEnum<{
|
|
22
|
+
minute: "minute";
|
|
23
|
+
day: "day";
|
|
24
|
+
}>;
|
|
25
|
+
}, z.core.$strip>;
|
|
26
|
+
/**
|
|
27
|
+
* Represents a duration for a task deadline.
|
|
28
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks
|
|
29
|
+
*/
|
|
30
|
+
export type Duration = z.infer<typeof DurationSchema>;
|
|
31
|
+
export declare const DeadlineSchema: z.ZodObject<{
|
|
32
|
+
date: z.ZodString;
|
|
33
|
+
lang: z.ZodString;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
/**
|
|
36
|
+
* Represents a task deadline.
|
|
37
|
+
*/
|
|
38
|
+
export type Deadline = z.infer<typeof DeadlineSchema>;
|
|
39
|
+
export declare const TaskSchema: z.ZodPipe<z.ZodObject<{
|
|
40
|
+
id: z.ZodString;
|
|
41
|
+
userId: z.ZodString;
|
|
42
|
+
projectId: z.ZodString;
|
|
43
|
+
sectionId: z.ZodNullable<z.ZodString>;
|
|
44
|
+
parentId: z.ZodNullable<z.ZodString>;
|
|
45
|
+
addedByUid: z.ZodNullable<z.ZodString>;
|
|
46
|
+
assignedByUid: z.ZodNullable<z.ZodString>;
|
|
47
|
+
responsibleUid: z.ZodNullable<z.ZodString>;
|
|
48
|
+
labels: z.ZodArray<z.ZodString>;
|
|
49
|
+
deadline: z.ZodNullable<z.ZodObject<{
|
|
50
|
+
date: z.ZodString;
|
|
51
|
+
lang: z.ZodString;
|
|
52
|
+
}, z.core.$strip>>;
|
|
53
|
+
duration: z.ZodNullable<z.ZodObject<{
|
|
54
|
+
amount: z.ZodNumber;
|
|
55
|
+
unit: z.ZodEnum<{
|
|
56
|
+
minute: "minute";
|
|
57
|
+
day: "day";
|
|
58
|
+
}>;
|
|
59
|
+
}, z.core.$strip>>;
|
|
60
|
+
checked: z.ZodBoolean;
|
|
61
|
+
isDeleted: z.ZodBoolean;
|
|
62
|
+
addedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
63
|
+
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
64
|
+
updatedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
65
|
+
due: z.ZodNullable<z.ZodObject<{
|
|
66
|
+
isRecurring: z.ZodBoolean;
|
|
67
|
+
string: z.ZodString;
|
|
68
|
+
date: z.ZodString;
|
|
69
|
+
datetime: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
70
|
+
timezone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
71
|
+
lang: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
72
|
+
}, z.core.$strip>>;
|
|
73
|
+
priority: z.ZodNumber;
|
|
74
|
+
childOrder: z.ZodNumber;
|
|
75
|
+
content: z.ZodString;
|
|
76
|
+
description: z.ZodString;
|
|
77
|
+
dayOrder: z.ZodNumber;
|
|
78
|
+
isCollapsed: z.ZodBoolean;
|
|
79
|
+
isUncompletable: z.ZodDefault<z.ZodBoolean>;
|
|
80
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
81
|
+
isUncompletable: boolean;
|
|
82
|
+
url: string;
|
|
83
|
+
id: string;
|
|
84
|
+
userId: string;
|
|
85
|
+
projectId: string;
|
|
86
|
+
sectionId: string | null;
|
|
87
|
+
parentId: string | null;
|
|
88
|
+
addedByUid: string | null;
|
|
89
|
+
assignedByUid: string | null;
|
|
90
|
+
responsibleUid: string | null;
|
|
91
|
+
labels: string[];
|
|
92
|
+
deadline: {
|
|
93
|
+
date: string;
|
|
94
|
+
lang: string;
|
|
95
|
+
} | null;
|
|
96
|
+
duration: {
|
|
97
|
+
amount: number;
|
|
98
|
+
unit: "minute" | "day";
|
|
99
|
+
} | null;
|
|
100
|
+
checked: boolean;
|
|
101
|
+
isDeleted: boolean;
|
|
102
|
+
addedAt: Date | null;
|
|
103
|
+
completedAt: Date | null;
|
|
104
|
+
updatedAt: Date | null;
|
|
105
|
+
due: {
|
|
106
|
+
isRecurring: boolean;
|
|
107
|
+
string: string;
|
|
108
|
+
date: string;
|
|
109
|
+
datetime?: string | null | undefined;
|
|
110
|
+
timezone?: string | null | undefined;
|
|
111
|
+
lang?: string | null | undefined;
|
|
112
|
+
} | null;
|
|
113
|
+
priority: number;
|
|
114
|
+
childOrder: number;
|
|
115
|
+
content: string;
|
|
116
|
+
description: string;
|
|
117
|
+
dayOrder: number;
|
|
118
|
+
isCollapsed: boolean;
|
|
119
|
+
}, {
|
|
120
|
+
id: string;
|
|
121
|
+
userId: string;
|
|
122
|
+
projectId: string;
|
|
123
|
+
sectionId: string | null;
|
|
124
|
+
parentId: string | null;
|
|
125
|
+
addedByUid: string | null;
|
|
126
|
+
assignedByUid: string | null;
|
|
127
|
+
responsibleUid: string | null;
|
|
128
|
+
labels: string[];
|
|
129
|
+
deadline: {
|
|
130
|
+
date: string;
|
|
131
|
+
lang: string;
|
|
132
|
+
} | null;
|
|
133
|
+
duration: {
|
|
134
|
+
amount: number;
|
|
135
|
+
unit: "minute" | "day";
|
|
136
|
+
} | null;
|
|
137
|
+
checked: boolean;
|
|
138
|
+
isDeleted: boolean;
|
|
139
|
+
addedAt: Date | null;
|
|
140
|
+
completedAt: Date | null;
|
|
141
|
+
updatedAt: Date | null;
|
|
142
|
+
due: {
|
|
143
|
+
isRecurring: boolean;
|
|
144
|
+
string: string;
|
|
145
|
+
date: string;
|
|
146
|
+
datetime?: string | null | undefined;
|
|
147
|
+
timezone?: string | null | undefined;
|
|
148
|
+
lang?: string | null | undefined;
|
|
149
|
+
} | null;
|
|
150
|
+
priority: number;
|
|
151
|
+
childOrder: number;
|
|
152
|
+
content: string;
|
|
153
|
+
description: string;
|
|
154
|
+
dayOrder: number;
|
|
155
|
+
isCollapsed: boolean;
|
|
156
|
+
isUncompletable: boolean;
|
|
157
|
+
}>>;
|
|
158
|
+
/**
|
|
159
|
+
* Represents a task in Todoist.
|
|
160
|
+
* @see https://developer.todoist.com/api/v1/#tag/Tasks
|
|
161
|
+
*/
|
|
162
|
+
export type Task = z.infer<typeof TaskSchema>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './requests.js';
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { Comment } from '../comments/types.js';
|
|
2
|
+
import type { PersonalProject, WorkspaceProject } from '../projects/types.js';
|
|
3
|
+
import type { Section } from '../sections/types.js';
|
|
4
|
+
import type { Task } from '../tasks/types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Arguments for exporting a project as a template file.
|
|
7
|
+
* @see https://developer.todoist.com/api/v1/#tag/Templates/operation/export_as_file_api_v1_templates_file_get
|
|
8
|
+
*/
|
|
9
|
+
export type ExportTemplateFileArgs = {
|
|
10
|
+
/** The project ID to export. */
|
|
11
|
+
projectId: string;
|
|
12
|
+
/** Whether to use relative dates in the export. */
|
|
13
|
+
useRelativeDates?: boolean;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Arguments for exporting a project as a template URL.
|
|
17
|
+
* @see https://developer.todoist.com/api/v1/#tag/Templates/operation/export_as_url_api_v1_templates_url_get
|
|
18
|
+
*/
|
|
19
|
+
export type ExportTemplateUrlArgs = {
|
|
20
|
+
/** The project ID to export. */
|
|
21
|
+
projectId: string;
|
|
22
|
+
/** Whether to use relative dates in the export. */
|
|
23
|
+
useRelativeDates?: boolean;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Response from exporting a project as a template URL.
|
|
27
|
+
*/
|
|
28
|
+
export type ExportTemplateUrlResponse = {
|
|
29
|
+
fileName: string;
|
|
30
|
+
fileUrl: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Arguments for creating a project from a template file.
|
|
34
|
+
* @see https://developer.todoist.com/api/v1/#tag/Templates/operation/create_project_from_file_api_v1_templates_create_project_from_file_post
|
|
35
|
+
*/
|
|
36
|
+
export type CreateProjectFromTemplateArgs = {
|
|
37
|
+
/** Name for the new project. */
|
|
38
|
+
name: string;
|
|
39
|
+
/** The template file content. */
|
|
40
|
+
file: Buffer | NodeJS.ReadableStream | string | Blob;
|
|
41
|
+
/** Optional file name (required for Buffer/Stream). */
|
|
42
|
+
fileName?: string;
|
|
43
|
+
/** Optional workspace ID. */
|
|
44
|
+
workspaceId?: string | null;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Response from creating a project from a template.
|
|
48
|
+
*/
|
|
49
|
+
export type CreateProjectFromTemplateResponse = {
|
|
50
|
+
status: string;
|
|
51
|
+
projectId: string;
|
|
52
|
+
templateType: string;
|
|
53
|
+
projects: (PersonalProject | WorkspaceProject)[];
|
|
54
|
+
sections: Section[];
|
|
55
|
+
tasks: Task[];
|
|
56
|
+
comments: Comment[];
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Arguments for importing a template file into an existing project.
|
|
60
|
+
* @see https://developer.todoist.com/api/v1/#tag/Templates/operation/import_into_project_from_file_api_v1_templates_import_into_project_from_file_post
|
|
61
|
+
*/
|
|
62
|
+
export type ImportTemplateIntoProjectArgs = {
|
|
63
|
+
/** The project ID to import into. */
|
|
64
|
+
projectId: string;
|
|
65
|
+
/** The template file content. */
|
|
66
|
+
file: Buffer | NodeJS.ReadableStream | string | Blob;
|
|
67
|
+
/** Optional file name (required for Buffer/Stream). */
|
|
68
|
+
fileName?: string;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Arguments for importing a template by ID into an existing project.
|
|
72
|
+
* @see https://developer.todoist.com/api/v1/#tag/Templates/operation/import_into_project_from_template_id_api_v1_templates_import_into_project_from_template_id_post
|
|
73
|
+
*/
|
|
74
|
+
export type ImportTemplateFromIdArgs = {
|
|
75
|
+
/** The project ID to import into. */
|
|
76
|
+
projectId: string;
|
|
77
|
+
/** The template ID to import. */
|
|
78
|
+
templateId: string;
|
|
79
|
+
/** Locale for the import (default: 'en'). */
|
|
80
|
+
locale?: string;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Response from importing a template into a project.
|
|
84
|
+
*/
|
|
85
|
+
export type ImportTemplateResponse = {
|
|
86
|
+
status: string;
|
|
87
|
+
templateType: string;
|
|
88
|
+
projects: (PersonalProject | WorkspaceProject)[];
|
|
89
|
+
sections: Section[];
|
|
90
|
+
tasks: Task[];
|
|
91
|
+
comments: Comment[];
|
|
92
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { ComposerExtensionContext, ContextMenuExtensionContext, UiExtensionType } from './types.js';
|
|
2
|
+
import { UiExtensionTypeEnum } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Fields common to every UI extension variant — shared across all add/update
|
|
5
|
+
* request shapes.
|
|
6
|
+
*/
|
|
7
|
+
type BaseUiExtensionFields = {
|
|
8
|
+
/** HTTPS URL the extension loads. */
|
|
9
|
+
url: string;
|
|
10
|
+
/** Extension display name. */
|
|
11
|
+
name: string;
|
|
12
|
+
/** Extension description. */
|
|
13
|
+
description: string;
|
|
14
|
+
/** Rendered width in pixels. */
|
|
15
|
+
width?: number | null;
|
|
16
|
+
/** Rendered height in pixels. */
|
|
17
|
+
height?: number | null;
|
|
18
|
+
/** Optional HTTPS URL for the extension icon. */
|
|
19
|
+
icon?: string | null;
|
|
20
|
+
/** Extension definition version. Defaults to the backend default. */
|
|
21
|
+
defVersion?: number;
|
|
22
|
+
/** Minimum Cardist renderer version required, as a decimal version string (e.g. `'0.60'`). */
|
|
23
|
+
minimumCardistVersion?: string;
|
|
24
|
+
/** Optional client-specified extension ID (server generates one if omitted). */
|
|
25
|
+
extensionId?: string | null;
|
|
26
|
+
};
|
|
27
|
+
/** Arguments for adding a context-menu UI extension. */
|
|
28
|
+
export type AddContextMenuExtensionArgs = BaseUiExtensionFields & {
|
|
29
|
+
/** The developer application (integration) ID the extension belongs to. */
|
|
30
|
+
integrationId: string;
|
|
31
|
+
extensionType: typeof UiExtensionTypeEnum.ContextMenu;
|
|
32
|
+
/** Where the extension appears. */
|
|
33
|
+
contextType: ContextMenuExtensionContext;
|
|
34
|
+
};
|
|
35
|
+
/** Arguments for adding a composer UI extension. */
|
|
36
|
+
export type AddComposerExtensionArgs = BaseUiExtensionFields & {
|
|
37
|
+
/** The developer application (integration) ID the extension belongs to. */
|
|
38
|
+
integrationId: string;
|
|
39
|
+
extensionType: typeof UiExtensionTypeEnum.Composer;
|
|
40
|
+
/** Which composer the extension appears in. */
|
|
41
|
+
composerType: ComposerExtensionContext;
|
|
42
|
+
};
|
|
43
|
+
/** Arguments for adding a settings UI extension. */
|
|
44
|
+
export type AddSettingsExtensionArgs = BaseUiExtensionFields & {
|
|
45
|
+
/** The developer application (integration) ID the extension belongs to. */
|
|
46
|
+
integrationId: string;
|
|
47
|
+
extensionType: typeof UiExtensionTypeEnum.Settings;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Arguments for adding a new UI extension to a developer application.
|
|
51
|
+
* Discriminated on `extensionType` so impossible combinations
|
|
52
|
+
* (e.g. `settings` + `contextType`) fail at compile time.
|
|
53
|
+
*/
|
|
54
|
+
export type AddUiExtensionArgs = AddContextMenuExtensionArgs | AddComposerExtensionArgs | AddSettingsExtensionArgs;
|
|
55
|
+
/**
|
|
56
|
+
* Fields that are optional on every update variant.
|
|
57
|
+
*/
|
|
58
|
+
type UpdateUiExtensionFields = {
|
|
59
|
+
url?: string;
|
|
60
|
+
name?: string;
|
|
61
|
+
description?: string;
|
|
62
|
+
width?: number | null;
|
|
63
|
+
height?: number | null;
|
|
64
|
+
icon?: string | null;
|
|
65
|
+
defVersion?: number;
|
|
66
|
+
minimumCardistVersion?: string;
|
|
67
|
+
extensionId?: string | null;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Arguments for updating a context-menu UI extension.
|
|
71
|
+
* `extensionType` is required to discriminate the variant — callers
|
|
72
|
+
* already have it from the fetched `UiExtension`.
|
|
73
|
+
*/
|
|
74
|
+
export type UpdateContextMenuExtensionArgs = UpdateUiExtensionFields & {
|
|
75
|
+
extensionType: typeof UiExtensionTypeEnum.ContextMenu;
|
|
76
|
+
contextType?: ContextMenuExtensionContext;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Arguments for updating a composer UI extension.
|
|
80
|
+
*/
|
|
81
|
+
export type UpdateComposerExtensionArgs = UpdateUiExtensionFields & {
|
|
82
|
+
extensionType: typeof UiExtensionTypeEnum.Composer;
|
|
83
|
+
composerType?: ComposerExtensionContext;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Arguments for updating a settings UI extension.
|
|
87
|
+
*/
|
|
88
|
+
export type UpdateSettingsExtensionArgs = UpdateUiExtensionFields & {
|
|
89
|
+
extensionType: typeof UiExtensionTypeEnum.Settings;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Arguments for updating a UI extension — all value fields are optional
|
|
93
|
+
* but `extensionType` is required so TypeScript can discriminate which
|
|
94
|
+
* variant-specific fields (`contextType`, `composerType`) apply.
|
|
95
|
+
*/
|
|
96
|
+
export type UpdateUiExtensionArgs = UpdateContextMenuExtensionArgs | UpdateComposerExtensionArgs | UpdateSettingsExtensionArgs;
|
|
97
|
+
export type { UiExtensionType };
|
|
98
|
+
/**
|
|
99
|
+
* Arguments for uploading a UI extension icon.
|
|
100
|
+
*/
|
|
101
|
+
export type UploadUiExtensionIconArgs = {
|
|
102
|
+
/** The UI extension ID. */
|
|
103
|
+
uiExtensionId: string;
|
|
104
|
+
/** The icon file to upload (Buffer, Stream, or file path). */
|
|
105
|
+
file: Buffer | NodeJS.ReadableStream | string | Blob;
|
|
106
|
+
/** The file name (required for Buffer/Stream uploads). */
|
|
107
|
+
fileName?: string;
|
|
108
|
+
};
|