sunsama-api 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +50 -18
  2. package/dist/cjs/client/index.js +94 -13
  3. package/dist/cjs/client/index.js.map +1 -1
  4. package/dist/cjs/queries/mutations/index.js +1 -0
  5. package/dist/cjs/queries/mutations/index.js.map +1 -1
  6. package/dist/cjs/queries/mutations/updateTaskSnoozeDate.js +22 -0
  7. package/dist/cjs/queries/mutations/updateTaskSnoozeDate.js.map +1 -0
  8. package/dist/cjs/utils/index.js +2 -0
  9. package/dist/cjs/utils/index.js.map +1 -1
  10. package/dist/cjs/utils/validation.js +117 -0
  11. package/dist/cjs/utils/validation.js.map +1 -0
  12. package/dist/esm/client/index.js +95 -14
  13. package/dist/esm/client/index.js.map +1 -1
  14. package/dist/esm/queries/mutations/index.js +1 -0
  15. package/dist/esm/queries/mutations/index.js.map +1 -1
  16. package/dist/esm/queries/mutations/updateTaskSnoozeDate.js +18 -0
  17. package/dist/esm/queries/mutations/updateTaskSnoozeDate.js.map +1 -0
  18. package/dist/esm/utils/index.js +1 -0
  19. package/dist/esm/utils/index.js.map +1 -1
  20. package/dist/esm/utils/validation.js +112 -0
  21. package/dist/esm/utils/validation.js.map +1 -0
  22. package/dist/types/client/index.d.ts +37 -0
  23. package/dist/types/client/index.d.ts.map +1 -1
  24. package/dist/types/queries/mutations/index.d.ts +1 -0
  25. package/dist/types/queries/mutations/index.d.ts.map +1 -1
  26. package/dist/types/queries/mutations/updateTaskSnoozeDate.d.ts +5 -0
  27. package/dist/types/queries/mutations/updateTaskSnoozeDate.d.ts.map +1 -0
  28. package/dist/types/types/api.d.ts +15 -0
  29. package/dist/types/types/api.d.ts.map +1 -1
  30. package/dist/types/utils/index.d.ts +1 -0
  31. package/dist/types/utils/index.d.ts.map +1 -1
  32. package/dist/types/utils/validation.d.ts +53 -0
  33. package/dist/types/utils/validation.d.ts.map +1 -0
  34. package/package.json +26 -24
package/README.md CHANGED
@@ -18,6 +18,9 @@ A comprehensive TypeScript wrapper for the Sunsama API, providing type-safe acce
18
18
  - 🔧 **Developer Friendly**: Intuitive API design with excellent IDE support
19
19
  - ✅ **Well Tested**: Comprehensive test coverage with Vitest
20
20
  - 📚 **Documented**: Complete API documentation and examples
21
+ - 📅 **Task Scheduling**: Unified interface for scheduling, rescheduling, and managing task timing
22
+ - 🆔 **ID Generation**: Built-in MongoDB ObjectId-style task ID generation
23
+ - 🔍 **Input Validation**: Robust validation using Zod v4 for enhanced type safety
21
24
 
22
25
  ## Installation
23
26
 
@@ -84,7 +87,7 @@ const client = new SunsamaClient();
84
87
  await client.login('your-email@example.com', 'your-password');
85
88
 
86
89
  // Method 2: Session token (if you have one)
87
- const client = new SunsamaClient({
90
+ const clientWithToken = new SunsamaClient({
88
91
  sessionToken: 'your-session-token'
89
92
  });
90
93
 
@@ -98,9 +101,9 @@ client.logout();
98
101
 
99
102
  ## API Methods
100
103
 
101
- The client provides the following methods:
104
+ The client provides the following methods organized by resource:
102
105
 
103
- ### User Information
106
+ ### Users
104
107
  ```typescript
105
108
  // Get current user details
106
109
  const user = await client.getUser();
@@ -111,6 +114,8 @@ const timezone = await client.getUserTimezone();
111
114
  ```
112
115
 
113
116
  ### Tasks
117
+
118
+ #### Reading Tasks
114
119
  ```typescript
115
120
  // Get tasks for a specific day
116
121
  const tasks = await client.getTasksByDay('2025-01-15');
@@ -118,8 +123,11 @@ const tasksWithTz = await client.getTasksByDay('2025-01-15', 'America/New_York')
118
123
 
119
124
  // Get backlog tasks
120
125
  const backlog = await client.getTasksBacklog();
126
+ ```
121
127
 
122
- // Create a new task
128
+ #### Creating Tasks
129
+ ```typescript
130
+ // Create a basic task
123
131
  const newTask = await client.createTask('Complete project documentation');
124
132
 
125
133
  // Create a task with options
@@ -136,7 +144,7 @@ const scheduledTask = await client.createTask('Follow up with client', {
136
144
  });
137
145
 
138
146
  // Create a task with custom ID (useful for tracking/deletion)
139
- const taskId = SunsamaClient.generateTaskId(); // Generate MongoDB ObjectId-style ID
147
+ const taskId = SunsamaClient.generateTaskId();
140
148
  const taskWithCustomId = await client.createTask('Custom task', {
141
149
  taskId: taskId,
142
150
  notes: 'Detailed description',
@@ -144,10 +152,34 @@ const taskWithCustomId = await client.createTask('Custom task', {
144
152
  streamIds: ['stream-1', 'stream-2'],
145
153
  timeEstimate: 60
146
154
  });
155
+ ```
156
+
157
+ #### Managing Tasks
158
+ ```typescript
159
+ // Schedule a task to a specific date
160
+ const scheduleResult = await client.updateTaskSnoozeDate('taskId', '2025-06-16');
161
+
162
+ // Move a task to the backlog (unschedule)
163
+ const backlogResult = await client.updateTaskSnoozeDate('taskId', null);
147
164
 
148
- // Generate task IDs for external use
149
- const uniqueId = SunsamaClient.generateTaskId();
150
- console.log(uniqueId); // "675a1b2c3d4e5f6789abcdef"
165
+ // Reschedule a task from one date to another
166
+ await client.updateTaskSnoozeDate('taskId', '2025-06-20');
167
+
168
+ // Schedule with timezone consideration
169
+ await client.updateTaskSnoozeDate('taskId', '2025-06-16', {
170
+ timezone: 'Europe/London'
171
+ });
172
+
173
+ // Get detailed response instead of limited payload
174
+ await client.updateTaskSnoozeDate('taskId', '2025-06-16', {
175
+ limitResponsePayload: false
176
+ });
177
+
178
+ // Combine options
179
+ await client.updateTaskSnoozeDate('taskId', '2025-06-16', {
180
+ timezone: 'Asia/Tokyo',
181
+ limitResponsePayload: false
182
+ });
151
183
 
152
184
  // Mark a task as complete
153
185
  const completeResult = await client.updateTaskComplete('taskId');
@@ -168,7 +200,16 @@ const deleteResultFull = await client.deleteTask('taskId', false);
168
200
  const deleteResultMerged = await client.deleteTask('taskId', true, true);
169
201
  ```
170
202
 
171
- ### Task ID Generation
203
+ ### Streams
204
+ ```typescript
205
+ // Get all streams for the user's group
206
+ const streams = await client.getStreamsByGroupId();
207
+ streams.forEach(stream => {
208
+ console.log(stream.streamName, stream.color);
209
+ });
210
+ ```
211
+
212
+ ### Utilities
172
213
  ```typescript
173
214
  // Generate MongoDB ObjectId-style task IDs
174
215
  const taskId = SunsamaClient.generateTaskId();
@@ -182,15 +223,6 @@ const customTask = await client.createTask('My custom task', {
182
223
  });
183
224
  ```
184
225
 
185
- ### Streams (Channels)
186
- ```typescript
187
- // Get all streams for the user's group
188
- const streams = await client.getStreamsByGroupId();
189
- streams.forEach(stream => {
190
- console.log(stream.streamName, stream.color);
191
- });
192
- ```
193
-
194
226
  ## Error Handling
195
227
 
196
228
  The wrapper provides structured error handling:
@@ -10,6 +10,7 @@ const graphql_1 = require("graphql");
10
10
  const tough_cookie_1 = require("tough-cookie");
11
11
  const index_js_1 = require("../errors/index.js");
12
12
  const index_js_2 = require("../queries/index.js");
13
+ const index_js_3 = require("../utils/index.js");
13
14
  /**
14
15
  * Main Sunsama API client class
15
16
  *
@@ -340,22 +341,20 @@ class SunsamaClient {
340
341
  * ```
341
342
  */
342
343
  async updateTaskComplete(taskId, completeOn, limitResponsePayload = true) {
344
+ // Validate arguments using Zod
345
+ const validatedArgs = (0, index_js_3.validateUpdateTaskCompleteArgs)({
346
+ taskId,
347
+ completeOn,
348
+ limitResponsePayload,
349
+ });
343
350
  // Convert Date to ISO string if needed
344
- let completeOnString;
345
- if (completeOn instanceof Date) {
346
- completeOnString = completeOn.toISOString();
347
- }
348
- else if (completeOn) {
349
- completeOnString = completeOn;
350
- }
351
- else {
352
- // Default to current time
353
- completeOnString = new Date().toISOString();
354
- }
351
+ const completeOnString = validatedArgs.completeOn
352
+ ? (0, index_js_3.toISOString)(validatedArgs.completeOn)
353
+ : new Date().toISOString();
355
354
  const variables = {
356
- taskId,
355
+ taskId: validatedArgs.taskId,
357
356
  completeOn: completeOnString,
358
- limitResponsePayload,
357
+ limitResponsePayload: validatedArgs.limitResponsePayload,
359
358
  };
360
359
  const request = {
361
360
  operationName: 'updateTaskComplete',
@@ -613,6 +612,88 @@ class SunsamaClient {
613
612
  ],
614
613
  };
615
614
  }
615
+ /**
616
+ * Updates a task's snooze date for scheduling operations
617
+ *
618
+ * This method provides a unified interface for all task scheduling operations:
619
+ * - Schedule a task to a specific date
620
+ * - Move a task to the backlog (unschedule)
621
+ * - Reschedule a task from one date to another
622
+ *
623
+ * @param taskId - The ID of the task to reschedule
624
+ * @param newDay - Target date in YYYY-MM-DD format, or null to move to backlog
625
+ * @param options - Additional options for the operation
626
+ * @returns The update result with success status
627
+ * @throws SunsamaAuthError if not authenticated or request fails
628
+ *
629
+ * @example
630
+ * ```typescript
631
+ * // Schedule a task to tomorrow
632
+ * const result = await client.updateTaskSnoozeDate('taskId123', '2025-06-16');
633
+ *
634
+ * // Move a task to the backlog (unschedule)
635
+ * const result = await client.updateTaskSnoozeDate('taskId123', null);
636
+ *
637
+ * // Schedule with specific timezone
638
+ * const result = await client.updateTaskSnoozeDate('taskId123', '2025-06-16', {
639
+ * timezone: 'America/New_York'
640
+ * });
641
+ *
642
+ * // Get full response payload instead of limited response
643
+ * const result = await client.updateTaskSnoozeDate('taskId123', '2025-06-16', {
644
+ * limitResponsePayload: false
645
+ * });
646
+ * ```
647
+ */
648
+ async updateTaskSnoozeDate(taskId, newDay, options) {
649
+ // Validate date format if a date is provided
650
+ if (newDay !== null) {
651
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(newDay)) {
652
+ throw new index_js_1.SunsamaAuthError('Invalid date format. Use YYYY-MM-DD format.');
653
+ }
654
+ // Validate date is actually valid and not normalized
655
+ const dateParts = newDay.split('-');
656
+ if (dateParts.length !== 3) {
657
+ throw new index_js_1.SunsamaAuthError('Invalid date format. Use YYYY-MM-DD format.');
658
+ }
659
+ const year = parseInt(dateParts[0], 10);
660
+ const month = parseInt(dateParts[1], 10);
661
+ const day = parseInt(dateParts[2], 10);
662
+ const date = new Date(year, month - 1, day);
663
+ if (isNaN(date.getTime()) ||
664
+ date.getFullYear() !== year ||
665
+ date.getMonth() !== month - 1 ||
666
+ date.getDate() !== day) {
667
+ throw new index_js_1.SunsamaAuthError('Invalid date provided.');
668
+ }
669
+ }
670
+ // If timezone is provided, validate it by trying to format with it
671
+ if (options?.timezone) {
672
+ try {
673
+ new Intl.DateTimeFormat('en-US', { timeZone: options.timezone });
674
+ }
675
+ catch (error) {
676
+ throw new index_js_1.SunsamaAuthError(`Invalid timezone: ${options.timezone}`);
677
+ }
678
+ }
679
+ const variables = {
680
+ input: {
681
+ taskId,
682
+ newDay,
683
+ limitResponsePayload: options?.limitResponsePayload ?? true,
684
+ },
685
+ };
686
+ const request = {
687
+ operationName: 'updateTaskSnoozeDate',
688
+ variables,
689
+ query: index_js_2.UPDATE_TASK_SNOOZE_DATE_MUTATION,
690
+ };
691
+ const response = await this.graphqlRequest(request);
692
+ if (!response.data) {
693
+ throw new index_js_1.SunsamaAuthError('No response data received');
694
+ }
695
+ return response.data.updateTaskSnoozeDate;
696
+ }
616
697
  /**
617
698
  * Sets a session token as a cookie in the jar
618
699
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,5 @@ const tslib_1 = require("tslib");
7
7
  tslib_1.__exportStar(require("./updateTaskComplete.js"), exports);
8
8
  tslib_1.__exportStar(require("./updateTaskDelete.js"), exports);
9
9
  tslib_1.__exportStar(require("./createTask.js"), exports);
10
+ tslib_1.__exportStar(require("./updateTaskSnoozeDate.js"), exports);
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/queries/mutations/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,kEAAwC;AACxC,gEAAsC;AACtC,0DAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/queries/mutations/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,kEAAwC;AACxC,gEAAsC;AACtC,0DAAgC;AAChC,oEAA0C"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ /**
3
+ * GraphQL mutation for updating task snooze date
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.UPDATE_TASK_SNOOZE_DATE_MUTATION = void 0;
7
+ const tslib_1 = require("tslib");
8
+ const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
9
+ const index_js_1 = require("../fragments/index.js");
10
+ const updateTaskComplete_js_1 = require("./updateTaskComplete.js");
11
+ exports.UPDATE_TASK_SNOOZE_DATE_MUTATION = (0, graphql_tag_1.default) `
12
+ mutation updateTaskSnoozeDate($input: UpdateTaskSnoozeDateInput!) {
13
+ updateTaskSnoozeDate(input: $input) {
14
+ ...UpdateTaskPayload
15
+ __typename
16
+ }
17
+ }
18
+
19
+ ${updateTaskComplete_js_1.UPDATE_TASK_PAYLOAD_FRAGMENT}
20
+ ${index_js_1.TASK_FRAGMENT}
21
+ `;
22
+ //# sourceMappingURL=updateTaskSnoozeDate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateTaskSnoozeDate.js","sourceRoot":"","sources":["../../../../src/queries/mutations/updateTaskSnoozeDate.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;AAEH,sEAA8B;AAC9B,oDAAsD;AACtD,mEAAuE;AAE1D,QAAA,gCAAgC,GAAG,IAAA,qBAAG,EAAA;;;;;;;;IAQ/C,oDAA4B;IAC5B,wBAAa;CAChB,CAAC"}
@@ -7,6 +7,8 @@ exports.validateNonEmptyString = validateNonEmptyString;
7
7
  exports.validatePositiveNumber = validatePositiveNumber;
8
8
  exports.buildUrlWithParams = buildUrlWithParams;
9
9
  exports.isPlainObject = isPlainObject;
10
+ const tslib_1 = require("tslib");
11
+ tslib_1.__exportStar(require("./validation.js"), exports);
10
12
  /**
11
13
  * Validates that a string is not empty
12
14
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;AASH,wDAIC;AASD,wDAIC;AASD,gDAeC;AAQD,sCAOC;AA/DD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,KAAa,EAAE,SAAiB;IACrE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,kBAAkB,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,KAAa,EAAE,SAAiB;IACrE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,4BAA4B,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAChC,OAAe,EACf,MAAkD;IAElD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAE7B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC9C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,KAAc;IAC1C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,WAAW,KAAK,MAAM;QAC5B,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAC5D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAWH,wDAIC;AASD,wDAIC;AASD,gDAeC;AAQD,sCAOC;;AAjED,0DAAgC;AAEhC;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,KAAa,EAAE,SAAiB;IACrE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,kBAAkB,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,KAAa,EAAE,SAAiB;IACrE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,4BAA4B,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAChC,OAAe,EACf,MAAkD;IAElD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAE7B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC9C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,KAAc;IAC1C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,WAAW,KAAK,MAAM;QAC5B,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAC5D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ /**
3
+ * Validation utilities using Zod v4
4
+ *
5
+ * This module uses Zod v4 features for improved performance and type safety.
6
+ * Key v4 improvements used:
7
+ * - Enhanced error messages with structured error configuration
8
+ * - Improved object schema validation with custom messages
9
+ * - Better union type handling
10
+ * - More efficient parsing and validation
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.updateTaskCompleteArgsSchema = exports.dateOrStringSchema = exports.isoDateSchema = exports.objectIdSchema = void 0;
14
+ exports.validateUpdateTaskCompleteArgs = validateUpdateTaskCompleteArgs;
15
+ exports.toISOString = toISOString;
16
+ const v4_1 = require("zod/v4");
17
+ const index_js_1 = require("../errors/index.js");
18
+ /**
19
+ * MongoDB ObjectId validation pattern
20
+ */
21
+ const objectIdPattern = /^[0-9a-fA-F]{24}$/;
22
+ /**
23
+ * Schema for validating MongoDB ObjectId strings using Zod v4
24
+ */
25
+ exports.objectIdSchema = v4_1.z
26
+ .string({
27
+ message: 'Task ID must be a string',
28
+ })
29
+ .min(1, 'Task ID cannot be empty')
30
+ .regex(objectIdPattern, 'Task ID must be a valid MongoDB ObjectId (24-character hex string)');
31
+ /**
32
+ * Schema for validating ISO date strings using Zod v4 format
33
+ */
34
+ exports.isoDateSchema = v4_1.z
35
+ .string({
36
+ message: 'Date must be a string',
37
+ })
38
+ .refine(value => {
39
+ // Check if it's a valid date and roughly follows ISO format
40
+ const date = new Date(value);
41
+ if (isNaN(date.getTime())) {
42
+ return false;
43
+ }
44
+ // Check if it contains basic ISO format patterns (YYYY-MM-DDTHH:mm:ss or similar)
45
+ const isoPattern = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z?$/;
46
+ return isoPattern.test(value);
47
+ }, {
48
+ message: 'Must be a valid ISO 8601 date string (e.g., "2025-06-15T10:30:00Z")',
49
+ });
50
+ /**
51
+ * Schema for validating Date objects or date strings using Zod v4
52
+ */
53
+ exports.dateOrStringSchema = v4_1.z.union([
54
+ v4_1.z.date({
55
+ message: 'Must be a valid Date object',
56
+ }),
57
+ exports.isoDateSchema,
58
+ v4_1.z
59
+ .string({
60
+ message: 'Date must be a string',
61
+ })
62
+ .refine(value => {
63
+ const date = new Date(value);
64
+ return !isNaN(date.getTime());
65
+ }, {
66
+ message: 'Must be a valid date string',
67
+ }),
68
+ ]);
69
+ /**
70
+ * Schema for updateTaskComplete arguments using Zod v4
71
+ */
72
+ exports.updateTaskCompleteArgsSchema = v4_1.z.object({
73
+ taskId: exports.objectIdSchema,
74
+ completeOn: exports.dateOrStringSchema.optional(),
75
+ limitResponsePayload: v4_1.z
76
+ .boolean({
77
+ message: 'limitResponsePayload must be a boolean',
78
+ })
79
+ .default(true),
80
+ }, {
81
+ message: 'Invalid arguments object',
82
+ });
83
+ /**
84
+ * Validates and parses updateTaskComplete arguments
85
+ * @param args - Arguments to validate
86
+ * @returns Parsed and validated arguments
87
+ * @throws SunsamaAuthError if validation fails
88
+ */
89
+ function validateUpdateTaskCompleteArgs(args) {
90
+ try {
91
+ return exports.updateTaskCompleteArgsSchema.parse(args);
92
+ }
93
+ catch (error) {
94
+ if (error instanceof v4_1.z.ZodError) {
95
+ const messages = error.issues.map(err => `${err.path.join('.')}: ${err.message}`);
96
+ throw new index_js_1.SunsamaAuthError(`Validation error: ${messages.join(', ')}`);
97
+ }
98
+ throw error;
99
+ }
100
+ }
101
+ /**
102
+ * Converts a Date or string to ISO string for API usage
103
+ * @param value - Date object or string
104
+ * @returns ISO string representation
105
+ */
106
+ function toISOString(value) {
107
+ if (value instanceof Date) {
108
+ return value.toISOString();
109
+ }
110
+ // If it's already a string, validate it's a proper date and return ISO format
111
+ const date = new Date(value);
112
+ if (isNaN(date.getTime())) {
113
+ throw new index_js_1.SunsamaAuthError('Invalid date provided');
114
+ }
115
+ return date.toISOString();
116
+ }
117
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@
6
6
  import { print } from 'graphql';
7
7
  import { Cookie, CookieJar } from 'tough-cookie';
8
8
  import { SunsamaAuthError } from '../errors/index.js';
9
- import { CREATE_TASK_MUTATION, GET_STREAMS_BY_GROUP_ID_QUERY, GET_TASKS_BACKLOG_QUERY, GET_TASKS_BY_DAY_QUERY, GET_USER_QUERY, UPDATE_TASK_COMPLETE_MUTATION, UPDATE_TASK_DELETE_MUTATION, } from '../queries/index.js';
9
+ import { CREATE_TASK_MUTATION, GET_STREAMS_BY_GROUP_ID_QUERY, GET_TASKS_BACKLOG_QUERY, GET_TASKS_BY_DAY_QUERY, GET_USER_QUERY, UPDATE_TASK_COMPLETE_MUTATION, UPDATE_TASK_DELETE_MUTATION, UPDATE_TASK_SNOOZE_DATE_MUTATION, } from '../queries/index.js';
10
+ import { validateUpdateTaskCompleteArgs, toISOString } from '../utils/index.js';
10
11
  /**
11
12
  * Main Sunsama API client class
12
13
  *
@@ -343,22 +344,20 @@ export class SunsamaClient {
343
344
  * ```
344
345
  */
345
346
  async updateTaskComplete(taskId, completeOn, limitResponsePayload = true) {
347
+ // Validate arguments using Zod
348
+ const validatedArgs = validateUpdateTaskCompleteArgs({
349
+ taskId,
350
+ completeOn,
351
+ limitResponsePayload,
352
+ });
346
353
  // Convert Date to ISO string if needed
347
- let completeOnString;
348
- if (completeOn instanceof Date) {
349
- completeOnString = completeOn.toISOString();
350
- }
351
- else if (completeOn) {
352
- completeOnString = completeOn;
353
- }
354
- else {
355
- // Default to current time
356
- completeOnString = new Date().toISOString();
357
- }
354
+ const completeOnString = validatedArgs.completeOn
355
+ ? toISOString(validatedArgs.completeOn)
356
+ : new Date().toISOString();
358
357
  const variables = {
359
- taskId,
358
+ taskId: validatedArgs.taskId,
360
359
  completeOn: completeOnString,
361
- limitResponsePayload,
360
+ limitResponsePayload: validatedArgs.limitResponsePayload,
362
361
  };
363
362
  const request = {
364
363
  operationName: 'updateTaskComplete',
@@ -617,6 +616,88 @@ export class SunsamaClient {
617
616
  ],
618
617
  };
619
618
  }
619
+ /**
620
+ * Updates a task's snooze date for scheduling operations
621
+ *
622
+ * This method provides a unified interface for all task scheduling operations:
623
+ * - Schedule a task to a specific date
624
+ * - Move a task to the backlog (unschedule)
625
+ * - Reschedule a task from one date to another
626
+ *
627
+ * @param taskId - The ID of the task to reschedule
628
+ * @param newDay - Target date in YYYY-MM-DD format, or null to move to backlog
629
+ * @param options - Additional options for the operation
630
+ * @returns The update result with success status
631
+ * @throws SunsamaAuthError if not authenticated or request fails
632
+ *
633
+ * @example
634
+ * ```typescript
635
+ * // Schedule a task to tomorrow
636
+ * const result = await client.updateTaskSnoozeDate('taskId123', '2025-06-16');
637
+ *
638
+ * // Move a task to the backlog (unschedule)
639
+ * const result = await client.updateTaskSnoozeDate('taskId123', null);
640
+ *
641
+ * // Schedule with specific timezone
642
+ * const result = await client.updateTaskSnoozeDate('taskId123', '2025-06-16', {
643
+ * timezone: 'America/New_York'
644
+ * });
645
+ *
646
+ * // Get full response payload instead of limited response
647
+ * const result = await client.updateTaskSnoozeDate('taskId123', '2025-06-16', {
648
+ * limitResponsePayload: false
649
+ * });
650
+ * ```
651
+ */
652
+ async updateTaskSnoozeDate(taskId, newDay, options) {
653
+ // Validate date format if a date is provided
654
+ if (newDay !== null) {
655
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(newDay)) {
656
+ throw new SunsamaAuthError('Invalid date format. Use YYYY-MM-DD format.');
657
+ }
658
+ // Validate date is actually valid and not normalized
659
+ const dateParts = newDay.split('-');
660
+ if (dateParts.length !== 3) {
661
+ throw new SunsamaAuthError('Invalid date format. Use YYYY-MM-DD format.');
662
+ }
663
+ const year = parseInt(dateParts[0], 10);
664
+ const month = parseInt(dateParts[1], 10);
665
+ const day = parseInt(dateParts[2], 10);
666
+ const date = new Date(year, month - 1, day);
667
+ if (isNaN(date.getTime()) ||
668
+ date.getFullYear() !== year ||
669
+ date.getMonth() !== month - 1 ||
670
+ date.getDate() !== day) {
671
+ throw new SunsamaAuthError('Invalid date provided.');
672
+ }
673
+ }
674
+ // If timezone is provided, validate it by trying to format with it
675
+ if (options?.timezone) {
676
+ try {
677
+ new Intl.DateTimeFormat('en-US', { timeZone: options.timezone });
678
+ }
679
+ catch (error) {
680
+ throw new SunsamaAuthError(`Invalid timezone: ${options.timezone}`);
681
+ }
682
+ }
683
+ const variables = {
684
+ input: {
685
+ taskId,
686
+ newDay,
687
+ limitResponsePayload: options?.limitResponsePayload ?? true,
688
+ },
689
+ };
690
+ const request = {
691
+ operationName: 'updateTaskSnoozeDate',
692
+ variables,
693
+ query: UPDATE_TASK_SNOOZE_DATE_MUTATION,
694
+ };
695
+ const response = await this.graphqlRequest(request);
696
+ if (!response.data) {
697
+ throw new SunsamaAuthError('No response data received');
698
+ }
699
+ return response.data.updateTaskSnoozeDate;
700
+ }
620
701
  /**
621
702
  * Sets a session token as a cookie in the jar
622
703
  *