@37signals/basecamp 0.9.0 → 0.11.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 (122) hide show
  1. package/README.md +147 -15
  2. package/dist/client.d.ts +8 -5
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +237 -144
  5. package/dist/client.js.map +1 -1
  6. package/dist/generated/metadata.d.ts.map +1 -1
  7. package/dist/generated/metadata.js +280 -12
  8. package/dist/generated/metadata.js.map +1 -1
  9. package/dist/generated/metadata.ts +280 -12
  10. package/dist/generated/openapi-stripped.json +4403 -2124
  11. package/dist/generated/path-mapping.d.ts.map +1 -1
  12. package/dist/generated/path-mapping.js +22 -5
  13. package/dist/generated/path-mapping.js.map +1 -1
  14. package/dist/generated/path-mapping.ts +22 -5
  15. package/dist/generated/schema.d.ts +2983 -1220
  16. package/dist/generated/services/boosts.d.ts +13 -10
  17. package/dist/generated/services/boosts.d.ts.map +1 -1
  18. package/dist/generated/services/boosts.js +5 -5
  19. package/dist/generated/services/boosts.js.map +1 -1
  20. package/dist/generated/services/boosts.ts +12 -10
  21. package/dist/generated/services/cards.d.ts +4 -4
  22. package/dist/generated/services/cards.d.ts.map +1 -1
  23. package/dist/generated/services/cards.js +2 -2
  24. package/dist/generated/services/cards.js.map +1 -1
  25. package/dist/generated/services/cards.ts +4 -4
  26. package/dist/generated/services/everything.d.ts +303 -0
  27. package/dist/generated/services/everything.d.ts.map +1 -0
  28. package/dist/generated/services/everything.js +359 -0
  29. package/dist/generated/services/everything.js.map +1 -0
  30. package/dist/generated/services/everything.ts +594 -0
  31. package/dist/generated/services/index.d.ts +2 -1
  32. package/dist/generated/services/index.d.ts.map +1 -1
  33. package/dist/generated/services/index.js +2 -1
  34. package/dist/generated/services/index.js.map +1 -1
  35. package/dist/generated/services/index.ts +2 -1
  36. package/dist/generated/services/message-types.d.ts +15 -10
  37. package/dist/generated/services/message-types.d.ts.map +1 -1
  38. package/dist/generated/services/message-types.js +35 -18
  39. package/dist/generated/services/message-types.js.map +1 -1
  40. package/dist/generated/services/message-types.ts +34 -18
  41. package/dist/generated/services/my-notifications.d.ts +27 -0
  42. package/dist/generated/services/my-notifications.d.ts.map +1 -1
  43. package/dist/generated/services/my-notifications.js +23 -1
  44. package/dist/generated/services/my-notifications.js.map +1 -1
  45. package/dist/generated/services/my-notifications.ts +46 -1
  46. package/dist/generated/services/recordings.d.ts +2 -2
  47. package/dist/generated/services/recordings.d.ts.map +1 -1
  48. package/dist/generated/services/recordings.js +1 -1
  49. package/dist/generated/services/recordings.js.map +1 -1
  50. package/dist/generated/services/recordings.ts +2 -2
  51. package/dist/generated/services/schedules.d.ts +9 -1
  52. package/dist/generated/services/schedules.d.ts.map +1 -1
  53. package/dist/generated/services/schedules.js.map +1 -1
  54. package/dist/generated/services/schedules.ts +9 -1
  55. package/dist/generated/services/tools.d.ts +2 -0
  56. package/dist/generated/services/tools.d.ts.map +1 -1
  57. package/dist/generated/services/tools.js +1 -0
  58. package/dist/generated/services/tools.js.map +1 -1
  59. package/dist/generated/services/tools.ts +3 -0
  60. package/dist/hooks.d.ts.map +1 -1
  61. package/dist/hooks.js +4 -1
  62. package/dist/hooks.js.map +1 -1
  63. package/dist/index.d.ts +9 -3
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +13 -2
  66. package/dist/index.js.map +1 -1
  67. package/dist/oauth/device-errors.d.ts +29 -0
  68. package/dist/oauth/device-errors.d.ts.map +1 -0
  69. package/dist/oauth/device-errors.js +52 -0
  70. package/dist/oauth/device-errors.js.map +1 -0
  71. package/dist/oauth/device-login.d.ts +50 -0
  72. package/dist/oauth/device-login.d.ts.map +1 -0
  73. package/dist/oauth/device-login.js +118 -0
  74. package/dist/oauth/device-login.js.map +1 -0
  75. package/dist/oauth/device.d.ts +112 -0
  76. package/dist/oauth/device.d.ts.map +1 -0
  77. package/dist/oauth/device.js +746 -0
  78. package/dist/oauth/device.js.map +1 -0
  79. package/dist/oauth/exchange.d.ts.map +1 -1
  80. package/dist/oauth/exchange.js +75 -9
  81. package/dist/oauth/exchange.js.map +1 -1
  82. package/dist/oauth/index.d.ts +4 -1
  83. package/dist/oauth/index.d.ts.map +1 -1
  84. package/dist/oauth/index.js +4 -0
  85. package/dist/oauth/index.js.map +1 -1
  86. package/dist/oauth/limits.d.ts +15 -0
  87. package/dist/oauth/limits.d.ts.map +1 -0
  88. package/dist/oauth/limits.js +15 -0
  89. package/dist/oauth/limits.js.map +1 -0
  90. package/dist/oauth/token-manager.d.ts.map +1 -1
  91. package/dist/oauth/token-manager.js +15 -4
  92. package/dist/oauth/token-manager.js.map +1 -1
  93. package/dist/oauth/token-store.d.ts.map +1 -1
  94. package/dist/oauth/token-store.js +6 -0
  95. package/dist/oauth/token-store.js.map +1 -1
  96. package/dist/oauth/types.d.ts +35 -3
  97. package/dist/oauth/types.d.ts.map +1 -1
  98. package/dist/pagination.d.ts +5 -1
  99. package/dist/pagination.d.ts.map +1 -1
  100. package/dist/pagination.js.map +1 -1
  101. package/dist/services/base.d.ts +3 -1
  102. package/dist/services/base.d.ts.map +1 -1
  103. package/dist/services/base.js +16 -5
  104. package/dist/services/base.js.map +1 -1
  105. package/dist/services/cards-extensions.d.ts +76 -0
  106. package/dist/services/cards-extensions.d.ts.map +1 -0
  107. package/dist/services/cards-extensions.js +67 -0
  108. package/dist/services/cards-extensions.js.map +1 -0
  109. package/package.json +2 -2
  110. package/src/generated/metadata.ts +280 -12
  111. package/src/generated/openapi-stripped.json +4403 -2124
  112. package/src/generated/path-mapping.ts +22 -5
  113. package/src/generated/schema.d.ts +2983 -1220
  114. package/src/generated/services/boosts.ts +12 -10
  115. package/src/generated/services/cards.ts +4 -4
  116. package/src/generated/services/everything.ts +594 -0
  117. package/src/generated/services/index.ts +2 -1
  118. package/src/generated/services/message-types.ts +34 -18
  119. package/src/generated/services/my-notifications.ts +46 -1
  120. package/src/generated/services/recordings.ts +2 -2
  121. package/src/generated/services/schedules.ts +9 -1
  122. package/src/generated/services/tools.ts +3 -0
@@ -14,6 +14,8 @@ import { Errors } from "../../errors.js";
14
14
  // Types
15
15
  // =============================================================================
16
16
 
17
+ /** Boost entity from the Basecamp API. */
18
+ export type Boost = components["schemas"]["Boost"];
17
19
 
18
20
  /**
19
21
  * Options for listForRecording.
@@ -56,7 +58,7 @@ export class BoostsService extends BaseService {
56
58
  /**
57
59
  * Get a single boost
58
60
  * @param boostId - The boost ID
59
- * @returns The boost
61
+ * @returns The Boost
60
62
  * @throws {BasecampError} If the resource is not found
61
63
  *
62
64
  * @example
@@ -64,7 +66,7 @@ export class BoostsService extends BaseService {
64
66
  * const result = await client.boosts.get(123);
65
67
  * ```
66
68
  */
67
- async get(boostId: number): Promise<components["schemas"]["GetBoostResponseContent"]> {
69
+ async get(boostId: number): Promise<Boost> {
68
70
  const response = await this.request(
69
71
  {
70
72
  service: "Boosts",
@@ -116,14 +118,14 @@ export class BoostsService extends BaseService {
116
118
  * List boosts on a recording
117
119
  * @param recordingId - The recording ID
118
120
  * @param options - Optional query parameters
119
- * @returns All results across all pages, with .meta.totalCount
121
+ * @returns All Boost across all pages, with .meta.totalCount
120
122
  *
121
123
  * @example
122
124
  * ```ts
123
125
  * const result = await client.boosts.listForRecording(123);
124
126
  * ```
125
127
  */
126
- async listForRecording(recordingId: number, options?: ListForRecordingBoostOptions): Promise<components["schemas"]["ListRecordingBoostsResponseContent"]> {
128
+ async listForRecording(recordingId: number, options?: ListForRecordingBoostOptions): Promise<ListResult<Boost>> {
127
129
  return this.requestPaginated(
128
130
  {
129
131
  service: "Boosts",
@@ -146,7 +148,7 @@ export class BoostsService extends BaseService {
146
148
  * Create a boost on a recording
147
149
  * @param recordingId - The recording ID
148
150
  * @param req - Recording_boost creation parameters
149
- * @returns The recording_boost
151
+ * @returns The Boost
150
152
  * @throws {BasecampError} If required fields are missing or invalid
151
153
  *
152
154
  * @example
@@ -154,7 +156,7 @@ export class BoostsService extends BaseService {
154
156
  * const result = await client.boosts.createForRecording(123, { content: "Hello world" });
155
157
  * ```
156
158
  */
157
- async createForRecording(recordingId: number, req: CreateForRecordingBoostRequest): Promise<components["schemas"]["CreateRecordingBoostResponseContent"]> {
159
+ async createForRecording(recordingId: number, req: CreateForRecordingBoostRequest): Promise<Boost> {
158
160
  if (!req.content) {
159
161
  throw Errors.validation("Content is required");
160
162
  }
@@ -184,14 +186,14 @@ export class BoostsService extends BaseService {
184
186
  * @param recordingId - The recording ID
185
187
  * @param eventId - The event ID
186
188
  * @param options - Optional query parameters
187
- * @returns All results across all pages, with .meta.totalCount
189
+ * @returns All Boost across all pages, with .meta.totalCount
188
190
  *
189
191
  * @example
190
192
  * ```ts
191
193
  * const result = await client.boosts.listForEvent(123, 123);
192
194
  * ```
193
195
  */
194
- async listForEvent(recordingId: number, eventId: number, options?: ListForEventBoostOptions): Promise<components["schemas"]["ListEventBoostsResponseContent"]> {
196
+ async listForEvent(recordingId: number, eventId: number, options?: ListForEventBoostOptions): Promise<ListResult<Boost>> {
195
197
  return this.requestPaginated(
196
198
  {
197
199
  service: "Boosts",
@@ -215,7 +217,7 @@ export class BoostsService extends BaseService {
215
217
  * @param recordingId - The recording ID
216
218
  * @param eventId - The event ID
217
219
  * @param req - Event_boost creation parameters
218
- * @returns The event_boost
220
+ * @returns The Boost
219
221
  * @throws {BasecampError} If required fields are missing or invalid
220
222
  *
221
223
  * @example
@@ -223,7 +225,7 @@ export class BoostsService extends BaseService {
223
225
  * const result = await client.boosts.createForEvent(123, 123, { content: "Hello world" });
224
226
  * ```
225
227
  */
226
- async createForEvent(recordingId: number, eventId: number, req: CreateForEventBoostRequest): Promise<components["schemas"]["CreateEventBoostResponseContent"]> {
228
+ async createForEvent(recordingId: number, eventId: number, req: CreateForEventBoostRequest): Promise<Boost> {
227
229
  if (!req.content) {
228
230
  throw Errors.validation("Content is required");
229
231
  }
@@ -18,9 +18,9 @@ import { Errors } from "../../errors.js";
18
18
  export type Card = components["schemas"]["Card"];
19
19
 
20
20
  /**
21
- * Request parameters for update.
21
+ * Request parameters for updateVerbatim.
22
22
  */
23
- export interface UpdateCardRequest {
23
+ export interface UpdateVerbatimCardRequest {
24
24
  /** Title */
25
25
  title?: string;
26
26
  /** Text content */
@@ -110,10 +110,10 @@ export class CardsService extends BaseService {
110
110
  *
111
111
  * @example
112
112
  * ```ts
113
- * const result = await client.cards.update(123, { });
113
+ * const result = await client.cards.updateVerbatim(123, { });
114
114
  * ```
115
115
  */
116
- async update(cardId: number, req: UpdateCardRequest): Promise<Card> {
116
+ async updateVerbatim(cardId: number, req: UpdateVerbatimCardRequest): Promise<Card> {
117
117
  if (req.dueOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.dueOn)) {
118
118
  throw Errors.validation("Due on must be in YYYY-MM-DD format");
119
119
  }
@@ -0,0 +1,594 @@
1
+ /**
2
+ * Everything service for the Basecamp API.
3
+ *
4
+ * @generated from OpenAPI spec - do not edit directly
5
+ */
6
+
7
+ import { BaseService } from "../../services/base.js";
8
+ import type { components } from "../schema.js";
9
+ import { ListResult } from "../../pagination.js";
10
+ import type { PaginationOptions } from "../../pagination.js";
11
+
12
+ // =============================================================================
13
+ // Types
14
+ // =============================================================================
15
+
16
+ /** BucketCardsGroup entity from the Basecamp API. */
17
+ export type BucketCardsGroup = components["schemas"]["BucketCardsGroup"];
18
+ /** Card entity from the Basecamp API. */
19
+ export type Card = components["schemas"]["Card"];
20
+ /** Recording entity from the Basecamp API. */
21
+ export type Recording = components["schemas"]["Recording"];
22
+ /** EverythingFile entity from the Basecamp API. */
23
+ export type EverythingFile = components["schemas"]["EverythingFile"];
24
+ /** BucketTodosGroup entity from the Basecamp API. */
25
+ export type BucketTodosGroup = components["schemas"]["BucketTodosGroup"];
26
+ /** Todo entity from the Basecamp API. */
27
+ export type Todo = components["schemas"]["Todo"];
28
+
29
+ /**
30
+ * Options for everythingCompletedCards.
31
+ */
32
+ export interface EverythingCompletedCardsEverythingOptions extends PaginationOptions {
33
+ /** Page number for paginating through results. Defaults to 1. */
34
+ page?: number;
35
+ }
36
+
37
+ /**
38
+ * Options for everythingNoDueDateCards.
39
+ */
40
+ export interface EverythingNoDueDateCardsEverythingOptions extends PaginationOptions {
41
+ /** Page number for paginating through results. Defaults to 1. */
42
+ page?: number;
43
+ }
44
+
45
+ /**
46
+ * Options for everythingNotNowCards.
47
+ */
48
+ export interface EverythingNotNowCardsEverythingOptions extends PaginationOptions {
49
+ /** Page number for paginating through results. Defaults to 1. */
50
+ page?: number;
51
+ }
52
+
53
+ /**
54
+ * Options for everythingOpenCards.
55
+ */
56
+ export interface EverythingOpenCardsEverythingOptions extends PaginationOptions {
57
+ /** Page number for paginating through results. Defaults to 1. */
58
+ page?: number;
59
+ }
60
+
61
+ /**
62
+ * Options for everythingUnassignedCards.
63
+ */
64
+ export interface EverythingUnassignedCardsEverythingOptions extends PaginationOptions {
65
+ /** Page number for paginating through results. Defaults to 1. */
66
+ page?: number;
67
+ }
68
+
69
+ /**
70
+ * Options for everythingCheckins.
71
+ */
72
+ export interface EverythingCheckinsEverythingOptions extends PaginationOptions {
73
+ /** Page number for paginating through results. Defaults to 1. */
74
+ page?: number;
75
+ }
76
+
77
+ /**
78
+ * Options for everythingComments.
79
+ */
80
+ export interface EverythingCommentsEverythingOptions extends PaginationOptions {
81
+ /** Page number for paginating through results. Defaults to 1. */
82
+ page?: number;
83
+ }
84
+
85
+ /**
86
+ * Options for everythingFiles.
87
+ */
88
+ export interface EverythingFilesEverythingOptions extends PaginationOptions {
89
+ /** Filter by file kind: all (default), images, pdfs, documents, or videos. */
90
+ kind?: string;
91
+ /** Restrict to files created by the given people (repeatable). */
92
+ peopleIds?: number[];
93
+ /** Page number for paginating through results. Defaults to 1. */
94
+ page?: number;
95
+ }
96
+
97
+ /**
98
+ * Options for everythingForwards.
99
+ */
100
+ export interface EverythingForwardsEverythingOptions extends PaginationOptions {
101
+ /** Page number for paginating through results. Defaults to 1. */
102
+ page?: number;
103
+ }
104
+
105
+ /**
106
+ * Options for everythingMessages.
107
+ */
108
+ export interface EverythingMessagesEverythingOptions extends PaginationOptions {
109
+ /** Page number for paginating through results. Defaults to 1. */
110
+ page?: number;
111
+ }
112
+
113
+ /**
114
+ * Options for everythingCompletedTodos.
115
+ */
116
+ export interface EverythingCompletedTodosEverythingOptions extends PaginationOptions {
117
+ /** Page number for paginating through results. Defaults to 1. */
118
+ page?: number;
119
+ }
120
+
121
+ /**
122
+ * Options for everythingNoDueDateTodos.
123
+ */
124
+ export interface EverythingNoDueDateTodosEverythingOptions extends PaginationOptions {
125
+ /** Page number for paginating through results. Defaults to 1. */
126
+ page?: number;
127
+ }
128
+
129
+ /**
130
+ * Options for everythingOpenTodos.
131
+ */
132
+ export interface EverythingOpenTodosEverythingOptions extends PaginationOptions {
133
+ /** Page number for paginating through results. Defaults to 1. */
134
+ page?: number;
135
+ }
136
+
137
+ /**
138
+ * Options for everythingUnassignedTodos.
139
+ */
140
+ export interface EverythingUnassignedTodosEverythingOptions extends PaginationOptions {
141
+ /** Page number for paginating through results. Defaults to 1. */
142
+ page?: number;
143
+ }
144
+
145
+
146
+ // =============================================================================
147
+ // Service
148
+ // =============================================================================
149
+
150
+ /**
151
+ * Service for Everything operations.
152
+ */
153
+ export class EverythingService extends BaseService {
154
+
155
+ /**
156
+ * Completed cards across all accessible projects, grouped by project (paginated).
157
+ * @param options - Optional query parameters
158
+ * @returns All BucketCardsGroup across all pages, with .meta.totalCount
159
+ *
160
+ * @example
161
+ * ```ts
162
+ * const result = await client.everything.everythingCompletedCards();
163
+ * ```
164
+ */
165
+ async everythingCompletedCards(options?: EverythingCompletedCardsEverythingOptions): Promise<ListResult<BucketCardsGroup>> {
166
+ return this.requestPaginated(
167
+ {
168
+ service: "Everything",
169
+ operation: "GetEverythingCompletedCards",
170
+ resourceType: "everything_completed_card",
171
+ isMutation: false,
172
+ },
173
+ () =>
174
+ this.client.GET("/cards/completed.json", {
175
+ params: {
176
+ query: { page: options?.page },
177
+ },
178
+ })
179
+ , options
180
+ );
181
+ }
182
+
183
+ /**
184
+ * Open cards with no due date across all accessible projects, grouped by project (paginated).
185
+ * @param options - Optional query parameters
186
+ * @returns All BucketCardsGroup across all pages, with .meta.totalCount
187
+ *
188
+ * @example
189
+ * ```ts
190
+ * const result = await client.everything.everythingNoDueDateCards();
191
+ * ```
192
+ */
193
+ async everythingNoDueDateCards(options?: EverythingNoDueDateCardsEverythingOptions): Promise<ListResult<BucketCardsGroup>> {
194
+ return this.requestPaginated(
195
+ {
196
+ service: "Everything",
197
+ operation: "GetEverythingNoDueDateCards",
198
+ resourceType: "everything_no_due_date_card",
199
+ isMutation: false,
200
+ },
201
+ () =>
202
+ this.client.GET("/cards/no_due_date.json", {
203
+ params: {
204
+ query: { page: options?.page },
205
+ },
206
+ })
207
+ , options
208
+ );
209
+ }
210
+
211
+ /**
212
+ * Cards parked in a project's "Not now" column across all accessible projects, grouped by project (paginated).
213
+ * @param options - Optional query parameters
214
+ * @returns All BucketCardsGroup across all pages, with .meta.totalCount
215
+ *
216
+ * @example
217
+ * ```ts
218
+ * const result = await client.everything.everythingNotNowCards();
219
+ * ```
220
+ */
221
+ async everythingNotNowCards(options?: EverythingNotNowCardsEverythingOptions): Promise<ListResult<BucketCardsGroup>> {
222
+ return this.requestPaginated(
223
+ {
224
+ service: "Everything",
225
+ operation: "GetEverythingNotNowCards",
226
+ resourceType: "everything_not_now_card",
227
+ isMutation: false,
228
+ },
229
+ () =>
230
+ this.client.GET("/cards/not_now.json", {
231
+ params: {
232
+ query: { page: options?.page },
233
+ },
234
+ })
235
+ , options
236
+ );
237
+ }
238
+
239
+ /**
240
+ * Incomplete cards in active columns across all accessible projects, grouped by project (paginated).
241
+ * @param options - Optional query parameters
242
+ * @returns All BucketCardsGroup across all pages, with .meta.totalCount
243
+ *
244
+ * @example
245
+ * ```ts
246
+ * const result = await client.everything.everythingOpenCards();
247
+ * ```
248
+ */
249
+ async everythingOpenCards(options?: EverythingOpenCardsEverythingOptions): Promise<ListResult<BucketCardsGroup>> {
250
+ return this.requestPaginated(
251
+ {
252
+ service: "Everything",
253
+ operation: "GetEverythingOpenCards",
254
+ resourceType: "everything_open_card",
255
+ isMutation: false,
256
+ },
257
+ () =>
258
+ this.client.GET("/cards/open.json", {
259
+ params: {
260
+ query: { page: options?.page },
261
+ },
262
+ })
263
+ , options
264
+ );
265
+ }
266
+
267
+ /**
268
+ * Get every overdue card across all accessible projects, oldest-due-date-first.
269
+ * @returns Array of Card
270
+ *
271
+ * @example
272
+ * ```ts
273
+ * const result = await client.everything.everythingOverdueCards();
274
+ * ```
275
+ */
276
+ async everythingOverdueCards(): Promise<Card[]> {
277
+ const response = await this.request(
278
+ {
279
+ service: "Everything",
280
+ operation: "GetEverythingOverdueCards",
281
+ resourceType: "everything_overdue_card",
282
+ isMutation: false,
283
+ },
284
+ () =>
285
+ this.client.GET("/cards/overdue.json", {
286
+ })
287
+ );
288
+ return response ?? [];
289
+ }
290
+
291
+ /**
292
+ * Open, unassigned cards across all accessible projects, grouped by project (paginated).
293
+ * @param options - Optional query parameters
294
+ * @returns All BucketCardsGroup across all pages, with .meta.totalCount
295
+ *
296
+ * @example
297
+ * ```ts
298
+ * const result = await client.everything.everythingUnassignedCards();
299
+ * ```
300
+ */
301
+ async everythingUnassignedCards(options?: EverythingUnassignedCardsEverythingOptions): Promise<ListResult<BucketCardsGroup>> {
302
+ return this.requestPaginated(
303
+ {
304
+ service: "Everything",
305
+ operation: "GetEverythingUnassignedCards",
306
+ resourceType: "everything_unassigned_card",
307
+ isMutation: false,
308
+ },
309
+ () =>
310
+ this.client.GET("/cards/unassigned.json", {
311
+ params: {
312
+ query: { page: options?.page },
313
+ },
314
+ })
315
+ , options
316
+ );
317
+ }
318
+
319
+ /**
320
+ * Get every automatic check-in answer across all accessible projects, newest-first.
321
+ * @param options - Optional query parameters
322
+ * @returns All Recording across all pages, with .meta.totalCount
323
+ *
324
+ * @example
325
+ * ```ts
326
+ * const result = await client.everything.everythingCheckins();
327
+ * ```
328
+ */
329
+ async everythingCheckins(options?: EverythingCheckinsEverythingOptions): Promise<ListResult<Recording>> {
330
+ return this.requestPaginated(
331
+ {
332
+ service: "Everything",
333
+ operation: "GetEverythingCheckins",
334
+ resourceType: "everything_checkin",
335
+ isMutation: false,
336
+ },
337
+ () =>
338
+ this.client.GET("/checkins.json", {
339
+ params: {
340
+ query: { page: options?.page },
341
+ },
342
+ })
343
+ , options
344
+ );
345
+ }
346
+
347
+ /**
348
+ * Get every comment across all accessible projects, newest-first (paginated).
349
+ * @param options - Optional query parameters
350
+ * @returns All Recording across all pages, with .meta.totalCount
351
+ *
352
+ * @example
353
+ * ```ts
354
+ * const result = await client.everything.everythingComments();
355
+ * ```
356
+ */
357
+ async everythingComments(options?: EverythingCommentsEverythingOptions): Promise<ListResult<Recording>> {
358
+ return this.requestPaginated(
359
+ {
360
+ service: "Everything",
361
+ operation: "GetEverythingComments",
362
+ resourceType: "everything_comment",
363
+ isMutation: false,
364
+ },
365
+ () =>
366
+ this.client.GET("/comments.json", {
367
+ params: {
368
+ query: { page: options?.page },
369
+ },
370
+ })
371
+ , options
372
+ );
373
+ }
374
+
375
+ /**
376
+ * Get every file recording across all accessible projects, newest-first (paginated).
377
+ * @param options - Optional query parameters
378
+ * @returns All EverythingFile across all pages, with .meta.totalCount
379
+ *
380
+ * @example
381
+ * ```ts
382
+ * const result = await client.everything.everythingFiles();
383
+ * ```
384
+ */
385
+ async everythingFiles(options?: EverythingFilesEverythingOptions): Promise<ListResult<EverythingFile>> {
386
+ return this.requestPaginated(
387
+ {
388
+ service: "Everything",
389
+ operation: "GetEverythingFiles",
390
+ resourceType: "everything_file",
391
+ isMutation: false,
392
+ },
393
+ () =>
394
+ this.client.GET("/files.json", {
395
+ params: {
396
+ query: { kind: options?.kind, "people_ids[]": options?.peopleIds, page: options?.page },
397
+ },
398
+ })
399
+ , options
400
+ );
401
+ }
402
+
403
+ /**
404
+ * Get every inbox forward across all accessible projects, newest-first (paginated).
405
+ * @param options - Optional query parameters
406
+ * @returns All Recording across all pages, with .meta.totalCount
407
+ *
408
+ * @example
409
+ * ```ts
410
+ * const result = await client.everything.everythingForwards();
411
+ * ```
412
+ */
413
+ async everythingForwards(options?: EverythingForwardsEverythingOptions): Promise<ListResult<Recording>> {
414
+ return this.requestPaginated(
415
+ {
416
+ service: "Everything",
417
+ operation: "GetEverythingForwards",
418
+ resourceType: "everything_forward",
419
+ isMutation: false,
420
+ },
421
+ () =>
422
+ this.client.GET("/forwards.json", {
423
+ params: {
424
+ query: { page: options?.page },
425
+ },
426
+ })
427
+ , options
428
+ );
429
+ }
430
+
431
+ /**
432
+ * Get every message across all accessible projects, newest-first (paginated).
433
+ * @param options - Optional query parameters
434
+ * @returns All Recording across all pages, with .meta.totalCount
435
+ *
436
+ * @example
437
+ * ```ts
438
+ * const result = await client.everything.everythingMessages();
439
+ * ```
440
+ */
441
+ async everythingMessages(options?: EverythingMessagesEverythingOptions): Promise<ListResult<Recording>> {
442
+ return this.requestPaginated(
443
+ {
444
+ service: "Everything",
445
+ operation: "GetEverythingMessages",
446
+ resourceType: "everything_message",
447
+ isMutation: false,
448
+ },
449
+ () =>
450
+ this.client.GET("/messages.json", {
451
+ params: {
452
+ query: { page: options?.page },
453
+ },
454
+ })
455
+ , options
456
+ );
457
+ }
458
+
459
+ /**
460
+ * Completed to-dos across all accessible projects, grouped by project (paginated).
461
+ * @param options - Optional query parameters
462
+ * @returns All BucketTodosGroup across all pages, with .meta.totalCount
463
+ *
464
+ * @example
465
+ * ```ts
466
+ * const result = await client.everything.everythingCompletedTodos();
467
+ * ```
468
+ */
469
+ async everythingCompletedTodos(options?: EverythingCompletedTodosEverythingOptions): Promise<ListResult<BucketTodosGroup>> {
470
+ return this.requestPaginated(
471
+ {
472
+ service: "Everything",
473
+ operation: "GetEverythingCompletedTodos",
474
+ resourceType: "everything_completed_todo",
475
+ isMutation: false,
476
+ },
477
+ () =>
478
+ this.client.GET("/todos/completed.json", {
479
+ params: {
480
+ query: { page: options?.page },
481
+ },
482
+ })
483
+ , options
484
+ );
485
+ }
486
+
487
+ /**
488
+ * Open to-dos with no due date across all accessible projects, grouped by project (paginated).
489
+ * @param options - Optional query parameters
490
+ * @returns All BucketTodosGroup across all pages, with .meta.totalCount
491
+ *
492
+ * @example
493
+ * ```ts
494
+ * const result = await client.everything.everythingNoDueDateTodos();
495
+ * ```
496
+ */
497
+ async everythingNoDueDateTodos(options?: EverythingNoDueDateTodosEverythingOptions): Promise<ListResult<BucketTodosGroup>> {
498
+ return this.requestPaginated(
499
+ {
500
+ service: "Everything",
501
+ operation: "GetEverythingNoDueDateTodos",
502
+ resourceType: "everything_no_due_date_todo",
503
+ isMutation: false,
504
+ },
505
+ () =>
506
+ this.client.GET("/todos/no_due_date.json", {
507
+ params: {
508
+ query: { page: options?.page },
509
+ },
510
+ })
511
+ , options
512
+ );
513
+ }
514
+
515
+ /**
516
+ * Active, incomplete to-dos across all accessible projects, grouped by project (paginated).
517
+ * @param options - Optional query parameters
518
+ * @returns All BucketTodosGroup across all pages, with .meta.totalCount
519
+ *
520
+ * @example
521
+ * ```ts
522
+ * const result = await client.everything.everythingOpenTodos();
523
+ * ```
524
+ */
525
+ async everythingOpenTodos(options?: EverythingOpenTodosEverythingOptions): Promise<ListResult<BucketTodosGroup>> {
526
+ return this.requestPaginated(
527
+ {
528
+ service: "Everything",
529
+ operation: "GetEverythingOpenTodos",
530
+ resourceType: "everything_open_todo",
531
+ isMutation: false,
532
+ },
533
+ () =>
534
+ this.client.GET("/todos/open.json", {
535
+ params: {
536
+ query: { page: options?.page },
537
+ },
538
+ })
539
+ , options
540
+ );
541
+ }
542
+
543
+ /**
544
+ * Get every overdue to-do across all accessible projects, oldest-due-date-first.
545
+ * @returns Array of Todo
546
+ *
547
+ * @example
548
+ * ```ts
549
+ * const result = await client.everything.everythingOverdueTodos();
550
+ * ```
551
+ */
552
+ async everythingOverdueTodos(): Promise<Todo[]> {
553
+ const response = await this.request(
554
+ {
555
+ service: "Everything",
556
+ operation: "GetEverythingOverdueTodos",
557
+ resourceType: "everything_overdue_todo",
558
+ isMutation: false,
559
+ },
560
+ () =>
561
+ this.client.GET("/todos/overdue.json", {
562
+ })
563
+ );
564
+ return response ?? [];
565
+ }
566
+
567
+ /**
568
+ * Open, unassigned to-dos across all accessible projects, grouped by project (paginated).
569
+ * @param options - Optional query parameters
570
+ * @returns All BucketTodosGroup across all pages, with .meta.totalCount
571
+ *
572
+ * @example
573
+ * ```ts
574
+ * const result = await client.everything.everythingUnassignedTodos();
575
+ * ```
576
+ */
577
+ async everythingUnassignedTodos(options?: EverythingUnassignedTodosEverythingOptions): Promise<ListResult<BucketTodosGroup>> {
578
+ return this.requestPaginated(
579
+ {
580
+ service: "Everything",
581
+ operation: "GetEverythingUnassignedTodos",
582
+ resourceType: "everything_unassigned_todo",
583
+ isMutation: false,
584
+ },
585
+ () =>
586
+ this.client.GET("/todos/unassigned.json", {
587
+ params: {
588
+ query: { page: options?.page },
589
+ },
590
+ })
591
+ , options
592
+ );
593
+ }
594
+ }