@37signals/basecamp 0.11.0 → 0.13.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 (304) hide show
  1. package/README.md +112 -16
  2. package/dist/.build-complete +0 -0
  3. package/dist/client.d.ts +65 -11
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +235 -215
  6. package/dist/client.js.map +1 -1
  7. package/dist/download.d.ts +7 -0
  8. package/dist/download.d.ts.map +1 -1
  9. package/dist/download.js +82 -22
  10. package/dist/download.js.map +1 -1
  11. package/dist/errors.d.ts +19 -1
  12. package/dist/errors.d.ts.map +1 -1
  13. package/dist/errors.js +128 -15
  14. package/dist/errors.js.map +1 -1
  15. package/dist/generated/metadata.d.ts.map +1 -1
  16. package/dist/generated/metadata.js +443 -133
  17. package/dist/generated/metadata.js.map +1 -1
  18. package/dist/generated/metadata.ts +443 -133
  19. package/dist/generated/openapi-stripped.json +8999 -4907
  20. package/dist/generated/path-mapping.d.ts.map +1 -1
  21. package/dist/generated/path-mapping.js +40 -16
  22. package/dist/generated/path-mapping.js.map +1 -1
  23. package/dist/generated/path-mapping.ts +40 -16
  24. package/dist/generated/schema.d.ts +5508 -2346
  25. package/dist/generated/services/bookmarks.d.ts +76 -0
  26. package/dist/generated/services/bookmarks.d.ts.map +1 -0
  27. package/dist/generated/services/bookmarks.js +114 -0
  28. package/dist/generated/services/bookmarks.js.map +1 -0
  29. package/dist/generated/services/bookmarks.ts +158 -0
  30. package/dist/generated/services/boosts.d.ts +10 -0
  31. package/dist/generated/services/boosts.d.ts.map +1 -1
  32. package/dist/generated/services/boosts.js +8 -0
  33. package/dist/generated/services/boosts.js.map +1 -1
  34. package/dist/generated/services/boosts.ts +12 -0
  35. package/dist/generated/services/calendars.d.ts +47 -0
  36. package/dist/generated/services/calendars.d.ts.map +1 -0
  37. package/dist/generated/services/calendars.js +73 -0
  38. package/dist/generated/services/calendars.js.map +1 -0
  39. package/dist/generated/services/calendars.ts +102 -0
  40. package/dist/generated/services/campfires.d.ts +54 -40
  41. package/dist/generated/services/campfires.d.ts.map +1 -1
  42. package/dist/generated/services/campfires.js +82 -65
  43. package/dist/generated/services/campfires.js.map +1 -1
  44. package/dist/generated/services/campfires.ts +107 -85
  45. package/dist/generated/services/cards.d.ts +5 -0
  46. package/dist/generated/services/cards.d.ts.map +1 -1
  47. package/dist/generated/services/cards.js +4 -0
  48. package/dist/generated/services/cards.js.map +1 -1
  49. package/dist/generated/services/cards.ts +6 -0
  50. package/dist/generated/services/checkins.d.ts +14 -0
  51. package/dist/generated/services/checkins.d.ts.map +1 -1
  52. package/dist/generated/services/checkins.js +14 -1
  53. package/dist/generated/services/checkins.js.map +1 -1
  54. package/dist/generated/services/checkins.ts +20 -0
  55. package/dist/generated/services/client-approvals.d.ts +6 -3
  56. package/dist/generated/services/client-approvals.d.ts.map +1 -1
  57. package/dist/generated/services/client-approvals.js +8 -5
  58. package/dist/generated/services/client-approvals.js.map +1 -1
  59. package/dist/generated/services/client-approvals.ts +10 -5
  60. package/dist/generated/services/client-correspondences.d.ts +6 -3
  61. package/dist/generated/services/client-correspondences.d.ts.map +1 -1
  62. package/dist/generated/services/client-correspondences.js +8 -5
  63. package/dist/generated/services/client-correspondences.js.map +1 -1
  64. package/dist/generated/services/client-correspondences.ts +10 -5
  65. package/dist/generated/services/client-replies.d.ts +11 -4
  66. package/dist/generated/services/client-replies.d.ts.map +1 -1
  67. package/dist/generated/services/client-replies.js +16 -8
  68. package/dist/generated/services/client-replies.js.map +1 -1
  69. package/dist/generated/services/client-replies.ts +18 -8
  70. package/dist/generated/services/cloud-files.d.ts +92 -0
  71. package/dist/generated/services/cloud-files.d.ts.map +1 -0
  72. package/dist/generated/services/cloud-files.js +121 -0
  73. package/dist/generated/services/cloud-files.js.map +1 -0
  74. package/dist/generated/services/cloud-files.ts +188 -0
  75. package/dist/generated/services/comments.d.ts +5 -0
  76. package/dist/generated/services/comments.d.ts.map +1 -1
  77. package/dist/generated/services/comments.js +4 -0
  78. package/dist/generated/services/comments.js.map +1 -1
  79. package/dist/generated/services/comments.ts +6 -0
  80. package/dist/generated/services/documents.d.ts +12 -7
  81. package/dist/generated/services/documents.d.ts.map +1 -1
  82. package/dist/generated/services/documents.js +10 -6
  83. package/dist/generated/services/documents.js.map +1 -1
  84. package/dist/generated/services/documents.ts +14 -8
  85. package/dist/generated/services/drafts.d.ts +38 -0
  86. package/dist/generated/services/drafts.d.ts.map +1 -0
  87. package/dist/generated/services/drafts.js +40 -0
  88. package/dist/generated/services/drafts.js.map +1 -0
  89. package/dist/generated/services/drafts.ts +67 -0
  90. package/dist/generated/services/events.d.ts +5 -0
  91. package/dist/generated/services/events.d.ts.map +1 -1
  92. package/dist/generated/services/events.js +4 -0
  93. package/dist/generated/services/events.js.map +1 -1
  94. package/dist/generated/services/events.ts +6 -0
  95. package/dist/generated/services/everything.d.ts +83 -16
  96. package/dist/generated/services/everything.d.ts.map +1 -1
  97. package/dist/generated/services/everything.js +23 -13
  98. package/dist/generated/services/everything.js.map +1 -1
  99. package/dist/generated/services/everything.ts +100 -25
  100. package/dist/generated/services/folders.d.ts +96 -0
  101. package/dist/generated/services/folders.d.ts.map +1 -0
  102. package/dist/generated/services/folders.js +140 -0
  103. package/dist/generated/services/folders.js.map +1 -0
  104. package/dist/generated/services/folders.ts +201 -0
  105. package/dist/generated/services/forwards.d.ts +7 -20
  106. package/dist/generated/services/forwards.d.ts.map +1 -1
  107. package/dist/generated/services/forwards.js +6 -35
  108. package/dist/generated/services/forwards.js.map +1 -1
  109. package/dist/generated/services/forwards.ts +10 -48
  110. package/dist/generated/services/gauges.d.ts +7 -0
  111. package/dist/generated/services/gauges.d.ts.map +1 -1
  112. package/dist/generated/services/gauges.js +5 -1
  113. package/dist/generated/services/gauges.js.map +1 -1
  114. package/dist/generated/services/gauges.ts +9 -1
  115. package/dist/generated/services/google-documents.d.ts +98 -0
  116. package/dist/generated/services/google-documents.d.ts.map +1 -0
  117. package/dist/generated/services/google-documents.js +123 -0
  118. package/dist/generated/services/google-documents.js.map +1 -0
  119. package/dist/generated/services/google-documents.ts +196 -0
  120. package/dist/generated/services/index.d.ts +12 -5
  121. package/dist/generated/services/index.d.ts.map +1 -1
  122. package/dist/generated/services/index.js +12 -5
  123. package/dist/generated/services/index.js.map +1 -1
  124. package/dist/generated/services/index.ts +12 -5
  125. package/dist/generated/services/messages.d.ts +2 -0
  126. package/dist/generated/services/messages.d.ts.map +1 -1
  127. package/dist/generated/services/messages.js +1 -1
  128. package/dist/generated/services/messages.js.map +1 -1
  129. package/dist/generated/services/messages.ts +3 -1
  130. package/dist/generated/services/my-assignments.d.ts +52 -0
  131. package/dist/generated/services/my-assignments.d.ts.map +1 -1
  132. package/dist/generated/services/my-assignments.js +71 -0
  133. package/dist/generated/services/my-assignments.js.map +1 -1
  134. package/dist/generated/services/my-assignments.ts +104 -0
  135. package/dist/generated/services/my-notes.d.ts +45 -0
  136. package/dist/generated/services/my-notes.d.ts.map +1 -0
  137. package/dist/generated/services/my-notes.js +62 -0
  138. package/dist/generated/services/my-notes.js.map +1 -0
  139. package/dist/generated/services/my-notes.ts +92 -0
  140. package/dist/generated/services/my-notifications.d.ts +4 -2
  141. package/dist/generated/services/my-notifications.d.ts.map +1 -1
  142. package/dist/generated/services/my-notifications.js.map +1 -1
  143. package/dist/generated/services/my-notifications.ts +4 -2
  144. package/dist/generated/services/people.d.ts +11 -1
  145. package/dist/generated/services/people.d.ts.map +1 -1
  146. package/dist/generated/services/people.js +13 -2
  147. package/dist/generated/services/people.js.map +1 -1
  148. package/dist/generated/services/people.ts +15 -1
  149. package/dist/generated/services/projects.d.ts +26 -0
  150. package/dist/generated/services/projects.d.ts.map +1 -1
  151. package/dist/generated/services/projects.js +49 -1
  152. package/dist/generated/services/projects.js.map +1 -1
  153. package/dist/generated/services/projects.ts +61 -1
  154. package/dist/generated/services/recordings.d.ts +2 -12
  155. package/dist/generated/services/recordings.d.ts.map +1 -1
  156. package/dist/generated/services/recordings.js +1 -26
  157. package/dist/generated/services/recordings.js.map +1 -1
  158. package/dist/generated/services/recordings.ts +3 -31
  159. package/dist/generated/services/reports.d.ts +8 -12
  160. package/dist/generated/services/reports.d.ts.map +1 -1
  161. package/dist/generated/services/reports.js +11 -5
  162. package/dist/generated/services/reports.js.map +1 -1
  163. package/dist/generated/services/reports.ts +13 -14
  164. package/dist/generated/services/schedules.d.ts +94 -15
  165. package/dist/generated/services/schedules.d.ts.map +1 -1
  166. package/dist/generated/services/schedules.js +19 -8
  167. package/dist/generated/services/schedules.js.map +1 -1
  168. package/dist/generated/services/schedules.ts +107 -17
  169. package/dist/generated/services/search.d.ts +2 -0
  170. package/dist/generated/services/search.d.ts.map +1 -1
  171. package/dist/generated/services/search.js +1 -1
  172. package/dist/generated/services/search.js.map +1 -1
  173. package/dist/generated/services/search.ts +3 -1
  174. package/dist/generated/services/templates.d.ts +2 -0
  175. package/dist/generated/services/templates.d.ts.map +1 -1
  176. package/dist/generated/services/templates.js +1 -1
  177. package/dist/generated/services/templates.js.map +1 -1
  178. package/dist/generated/services/templates.ts +3 -1
  179. package/dist/generated/services/timeline.d.ts +2 -0
  180. package/dist/generated/services/timeline.d.ts.map +1 -1
  181. package/dist/generated/services/timeline.js +1 -0
  182. package/dist/generated/services/timeline.js.map +1 -1
  183. package/dist/generated/services/timeline.ts +3 -0
  184. package/dist/generated/services/timesheets.d.ts +16 -0
  185. package/dist/generated/services/timesheets.d.ts.map +1 -1
  186. package/dist/generated/services/timesheets.js +26 -2
  187. package/dist/generated/services/timesheets.js.map +1 -1
  188. package/dist/generated/services/timesheets.ts +35 -2
  189. package/dist/generated/services/todolist-groups.d.ts +11 -6
  190. package/dist/generated/services/todolist-groups.d.ts.map +1 -1
  191. package/dist/generated/services/todolist-groups.js +7 -3
  192. package/dist/generated/services/todolist-groups.js.map +1 -1
  193. package/dist/generated/services/todolist-groups.ts +13 -7
  194. package/dist/generated/services/todolists.d.ts +15 -13
  195. package/dist/generated/services/todolists.d.ts.map +1 -1
  196. package/dist/generated/services/todolists.js +11 -8
  197. package/dist/generated/services/todolists.js.map +1 -1
  198. package/dist/generated/services/todolists.ts +19 -14
  199. package/dist/generated/services/todos.d.ts +35 -12
  200. package/dist/generated/services/todos.d.ts.map +1 -1
  201. package/dist/generated/services/todos.js +47 -25
  202. package/dist/generated/services/todos.js.map +1 -1
  203. package/dist/generated/services/todos.ts +74 -30
  204. package/dist/generated/services/uploads.d.ts +5 -0
  205. package/dist/generated/services/uploads.d.ts.map +1 -1
  206. package/dist/generated/services/uploads.js +4 -0
  207. package/dist/generated/services/uploads.js.map +1 -1
  208. package/dist/generated/services/uploads.ts +6 -0
  209. package/dist/generated/services/vaults.d.ts +5 -0
  210. package/dist/generated/services/vaults.d.ts.map +1 -1
  211. package/dist/generated/services/vaults.js +4 -0
  212. package/dist/generated/services/vaults.js.map +1 -1
  213. package/dist/generated/services/vaults.ts +6 -0
  214. package/dist/hooks/otel.d.ts +1 -1
  215. package/dist/hooks/otel.js +1 -1
  216. package/dist/index.d.ts +21 -11
  217. package/dist/index.d.ts.map +1 -1
  218. package/dist/index.js +24 -9
  219. package/dist/index.js.map +1 -1
  220. package/dist/oauth/discovery.d.ts.map +1 -1
  221. package/dist/oauth/discovery.js +1 -0
  222. package/dist/oauth/discovery.js.map +1 -1
  223. package/dist/pagination-utils.d.ts +46 -0
  224. package/dist/pagination-utils.d.ts.map +1 -1
  225. package/dist/pagination-utils.js +85 -2
  226. package/dist/pagination-utils.js.map +1 -1
  227. package/dist/pagination.d.ts +12 -1
  228. package/dist/pagination.d.ts.map +1 -1
  229. package/dist/pagination.js +1 -1
  230. package/dist/pagination.js.map +1 -1
  231. package/dist/retry.d.ts +110 -0
  232. package/dist/retry.d.ts.map +1 -0
  233. package/dist/retry.js +253 -0
  234. package/dist/retry.js.map +1 -0
  235. package/dist/services/base.d.ts.map +1 -1
  236. package/dist/services/base.js +59 -5
  237. package/dist/services/base.js.map +1 -1
  238. package/dist/services/cards-extensions.d.ts +26 -21
  239. package/dist/services/cards-extensions.d.ts.map +1 -1
  240. package/dist/services/cards-extensions.js +28 -31
  241. package/dist/services/cards-extensions.js.map +1 -1
  242. package/dist/services/documents-extensions.d.ts +122 -0
  243. package/dist/services/documents-extensions.d.ts.map +1 -0
  244. package/dist/services/documents-extensions.js +125 -0
  245. package/dist/services/documents-extensions.js.map +1 -0
  246. package/dist/services/merge-safe.d.ts +167 -0
  247. package/dist/services/merge-safe.d.ts.map +1 -0
  248. package/dist/services/merge-safe.js +217 -0
  249. package/dist/services/merge-safe.js.map +1 -0
  250. package/dist/services/schedules-extensions.d.ts +266 -0
  251. package/dist/services/schedules-extensions.d.ts.map +1 -0
  252. package/dist/services/schedules-extensions.js +268 -0
  253. package/dist/services/schedules-extensions.js.map +1 -0
  254. package/dist/services/todolists-extensions.d.ts +110 -0
  255. package/dist/services/todolists-extensions.d.ts.map +1 -0
  256. package/dist/services/todolists-extensions.js +262 -0
  257. package/dist/services/todolists-extensions.js.map +1 -0
  258. package/dist/services/todos-extensions.d.ts +12 -1
  259. package/dist/services/todos-extensions.d.ts.map +1 -1
  260. package/dist/services/todos-extensions.js +27 -8
  261. package/dist/services/todos-extensions.js.map +1 -1
  262. package/package.json +5 -4
  263. package/src/generated/metadata.ts +443 -133
  264. package/src/generated/openapi-stripped.json +8999 -4907
  265. package/src/generated/path-mapping.ts +40 -16
  266. package/src/generated/schema.d.ts +5508 -2346
  267. package/src/generated/services/bookmarks.ts +158 -0
  268. package/src/generated/services/boosts.ts +12 -0
  269. package/src/generated/services/calendars.ts +102 -0
  270. package/src/generated/services/campfires.ts +107 -85
  271. package/src/generated/services/cards.ts +6 -0
  272. package/src/generated/services/checkins.ts +20 -0
  273. package/src/generated/services/client-approvals.ts +10 -5
  274. package/src/generated/services/client-correspondences.ts +10 -5
  275. package/src/generated/services/client-replies.ts +18 -8
  276. package/src/generated/services/cloud-files.ts +188 -0
  277. package/src/generated/services/comments.ts +6 -0
  278. package/src/generated/services/documents.ts +14 -8
  279. package/src/generated/services/drafts.ts +67 -0
  280. package/src/generated/services/events.ts +6 -0
  281. package/src/generated/services/everything.ts +100 -25
  282. package/src/generated/services/folders.ts +201 -0
  283. package/src/generated/services/forwards.ts +10 -48
  284. package/src/generated/services/gauges.ts +9 -1
  285. package/src/generated/services/google-documents.ts +196 -0
  286. package/src/generated/services/index.ts +12 -5
  287. package/src/generated/services/messages.ts +3 -1
  288. package/src/generated/services/my-assignments.ts +104 -0
  289. package/src/generated/services/my-notes.ts +92 -0
  290. package/src/generated/services/my-notifications.ts +4 -2
  291. package/src/generated/services/people.ts +15 -1
  292. package/src/generated/services/projects.ts +61 -1
  293. package/src/generated/services/recordings.ts +3 -31
  294. package/src/generated/services/reports.ts +13 -14
  295. package/src/generated/services/schedules.ts +107 -17
  296. package/src/generated/services/search.ts +3 -1
  297. package/src/generated/services/templates.ts +3 -1
  298. package/src/generated/services/timeline.ts +3 -0
  299. package/src/generated/services/timesheets.ts +35 -2
  300. package/src/generated/services/todolist-groups.ts +13 -7
  301. package/src/generated/services/todolists.ts +19 -14
  302. package/src/generated/services/todos.ts +74 -30
  303. package/src/generated/services/uploads.ts +6 -0
  304. package/src/generated/services/vaults.ts +6 -0
@@ -30,7 +30,12 @@ export type Todo = components["schemas"]["Todo"];
30
30
  * Options for everythingCompletedCards.
31
31
  */
32
32
  export interface EverythingCompletedCardsEverythingOptions extends PaginationOptions {
33
- /** Page number for paginating through results. Defaults to 1. */
33
+ /** Restrict to tasks assigned to at least one of the given people (repeatable).
34
+ Assignees on nested steps are not considered. */
35
+ assigneeIds?: number[];
36
+ /** Filter by due date: with, without, or overdue. Unrecognized values are ignored. */
37
+ due?: string;
38
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
34
39
  page?: number;
35
40
  }
36
41
 
@@ -38,7 +43,12 @@ export interface EverythingCompletedCardsEverythingOptions extends PaginationOpt
38
43
  * Options for everythingNoDueDateCards.
39
44
  */
40
45
  export interface EverythingNoDueDateCardsEverythingOptions extends PaginationOptions {
41
- /** Page number for paginating through results. Defaults to 1. */
46
+ /** Restrict to tasks assigned to at least one of the given people (repeatable).
47
+ Assignees on nested steps are not considered. */
48
+ assigneeIds?: number[];
49
+ /** Filter by due date: with, without, or overdue. Unrecognized values are ignored. */
50
+ due?: string;
51
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
42
52
  page?: number;
43
53
  }
44
54
 
@@ -46,7 +56,12 @@ export interface EverythingNoDueDateCardsEverythingOptions extends PaginationOpt
46
56
  * Options for everythingNotNowCards.
47
57
  */
48
58
  export interface EverythingNotNowCardsEverythingOptions extends PaginationOptions {
49
- /** Page number for paginating through results. Defaults to 1. */
59
+ /** Restrict to tasks assigned to at least one of the given people (repeatable).
60
+ Assignees on nested steps are not considered. */
61
+ assigneeIds?: number[];
62
+ /** Filter by due date: with, without, or overdue. Unrecognized values are ignored. */
63
+ due?: string;
64
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
50
65
  page?: number;
51
66
  }
52
67
 
@@ -54,15 +69,36 @@ export interface EverythingNotNowCardsEverythingOptions extends PaginationOption
54
69
  * Options for everythingOpenCards.
55
70
  */
56
71
  export interface EverythingOpenCardsEverythingOptions extends PaginationOptions {
57
- /** Page number for paginating through results. Defaults to 1. */
72
+ /** Restrict to tasks assigned to at least one of the given people (repeatable).
73
+ Assignees on nested steps are not considered. */
74
+ assigneeIds?: number[];
75
+ /** Filter by due date: with, without, or overdue. Unrecognized values are ignored. */
76
+ due?: string;
77
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
58
78
  page?: number;
59
79
  }
60
80
 
81
+ /**
82
+ * Options for everythingOverdueCards.
83
+ */
84
+ export interface EverythingOverdueCardsEverythingOptions {
85
+ /** Restrict to tasks assigned to at least one of the given people (repeatable).
86
+ Assignees on nested steps are not considered. */
87
+ assigneeIds?: number[];
88
+ /** Filter by due date: with, without, or overdue. Unrecognized values are ignored. */
89
+ due?: string;
90
+ }
91
+
61
92
  /**
62
93
  * Options for everythingUnassignedCards.
63
94
  */
64
95
  export interface EverythingUnassignedCardsEverythingOptions extends PaginationOptions {
65
- /** Page number for paginating through results. Defaults to 1. */
96
+ /** Restrict to tasks assigned to at least one of the given people (repeatable).
97
+ Assignees on nested steps are not considered. */
98
+ assigneeIds?: number[];
99
+ /** Filter by due date: with, without, or overdue. Unrecognized values are ignored. */
100
+ due?: string;
101
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
66
102
  page?: number;
67
103
  }
68
104
 
@@ -70,7 +106,7 @@ export interface EverythingUnassignedCardsEverythingOptions extends PaginationOp
70
106
  * Options for everythingCheckins.
71
107
  */
72
108
  export interface EverythingCheckinsEverythingOptions extends PaginationOptions {
73
- /** Page number for paginating through results. Defaults to 1. */
109
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
74
110
  page?: number;
75
111
  }
76
112
 
@@ -78,7 +114,7 @@ export interface EverythingCheckinsEverythingOptions extends PaginationOptions {
78
114
  * Options for everythingComments.
79
115
  */
80
116
  export interface EverythingCommentsEverythingOptions extends PaginationOptions {
81
- /** Page number for paginating through results. Defaults to 1. */
117
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
82
118
  page?: number;
83
119
  }
84
120
 
@@ -90,7 +126,7 @@ export interface EverythingFilesEverythingOptions extends PaginationOptions {
90
126
  kind?: string;
91
127
  /** Restrict to files created by the given people (repeatable). */
92
128
  peopleIds?: number[];
93
- /** Page number for paginating through results. Defaults to 1. */
129
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
94
130
  page?: number;
95
131
  }
96
132
 
@@ -98,7 +134,7 @@ export interface EverythingFilesEverythingOptions extends PaginationOptions {
98
134
  * Options for everythingForwards.
99
135
  */
100
136
  export interface EverythingForwardsEverythingOptions extends PaginationOptions {
101
- /** Page number for paginating through results. Defaults to 1. */
137
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
102
138
  page?: number;
103
139
  }
104
140
 
@@ -106,7 +142,7 @@ export interface EverythingForwardsEverythingOptions extends PaginationOptions {
106
142
  * Options for everythingMessages.
107
143
  */
108
144
  export interface EverythingMessagesEverythingOptions extends PaginationOptions {
109
- /** Page number for paginating through results. Defaults to 1. */
145
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
110
146
  page?: number;
111
147
  }
112
148
 
@@ -114,7 +150,12 @@ export interface EverythingMessagesEverythingOptions extends PaginationOptions {
114
150
  * Options for everythingCompletedTodos.
115
151
  */
116
152
  export interface EverythingCompletedTodosEverythingOptions extends PaginationOptions {
117
- /** Page number for paginating through results. Defaults to 1. */
153
+ /** Restrict to tasks assigned to at least one of the given people (repeatable).
154
+ Assignees on nested steps are not considered. */
155
+ assigneeIds?: number[];
156
+ /** Filter by due date: with, without, or overdue. Unrecognized values are ignored. */
157
+ due?: string;
158
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
118
159
  page?: number;
119
160
  }
120
161
 
@@ -122,7 +163,12 @@ export interface EverythingCompletedTodosEverythingOptions extends PaginationOpt
122
163
  * Options for everythingNoDueDateTodos.
123
164
  */
124
165
  export interface EverythingNoDueDateTodosEverythingOptions extends PaginationOptions {
125
- /** Page number for paginating through results. Defaults to 1. */
166
+ /** Restrict to tasks assigned to at least one of the given people (repeatable).
167
+ Assignees on nested steps are not considered. */
168
+ assigneeIds?: number[];
169
+ /** Filter by due date: with, without, or overdue. Unrecognized values are ignored. */
170
+ due?: string;
171
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
126
172
  page?: number;
127
173
  }
128
174
 
@@ -130,15 +176,36 @@ export interface EverythingNoDueDateTodosEverythingOptions extends PaginationOpt
130
176
  * Options for everythingOpenTodos.
131
177
  */
132
178
  export interface EverythingOpenTodosEverythingOptions extends PaginationOptions {
133
- /** Page number for paginating through results. Defaults to 1. */
179
+ /** Restrict to tasks assigned to at least one of the given people (repeatable).
180
+ Assignees on nested steps are not considered. */
181
+ assigneeIds?: number[];
182
+ /** Filter by due date: with, without, or overdue. Unrecognized values are ignored. */
183
+ due?: string;
184
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
134
185
  page?: number;
135
186
  }
136
187
 
188
+ /**
189
+ * Options for everythingOverdueTodos.
190
+ */
191
+ export interface EverythingOverdueTodosEverythingOptions {
192
+ /** Restrict to tasks assigned to at least one of the given people (repeatable).
193
+ Assignees on nested steps are not considered. */
194
+ assigneeIds?: number[];
195
+ /** Filter by due date: with, without, or overdue. Unrecognized values are ignored. */
196
+ due?: string;
197
+ }
198
+
137
199
  /**
138
200
  * Options for everythingUnassignedTodos.
139
201
  */
140
202
  export interface EverythingUnassignedTodosEverythingOptions extends PaginationOptions {
141
- /** Page number for paginating through results. Defaults to 1. */
203
+ /** Restrict to tasks assigned to at least one of the given people (repeatable).
204
+ Assignees on nested steps are not considered. */
205
+ assigneeIds?: number[];
206
+ /** Filter by due date: with, without, or overdue. Unrecognized values are ignored. */
207
+ due?: string;
208
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
142
209
  page?: number;
143
210
  }
144
211
 
@@ -173,7 +240,7 @@ export class EverythingService extends BaseService {
173
240
  () =>
174
241
  this.client.GET("/cards/completed.json", {
175
242
  params: {
176
- query: { page: options?.page },
243
+ query: { "assignee_ids[]": options?.assigneeIds, due: options?.due, page: options?.page },
177
244
  },
178
245
  })
179
246
  , options
@@ -201,7 +268,7 @@ export class EverythingService extends BaseService {
201
268
  () =>
202
269
  this.client.GET("/cards/no_due_date.json", {
203
270
  params: {
204
- query: { page: options?.page },
271
+ query: { "assignee_ids[]": options?.assigneeIds, due: options?.due, page: options?.page },
205
272
  },
206
273
  })
207
274
  , options
@@ -229,7 +296,7 @@ export class EverythingService extends BaseService {
229
296
  () =>
230
297
  this.client.GET("/cards/not_now.json", {
231
298
  params: {
232
- query: { page: options?.page },
299
+ query: { "assignee_ids[]": options?.assigneeIds, due: options?.due, page: options?.page },
233
300
  },
234
301
  })
235
302
  , options
@@ -257,7 +324,7 @@ export class EverythingService extends BaseService {
257
324
  () =>
258
325
  this.client.GET("/cards/open.json", {
259
326
  params: {
260
- query: { page: options?.page },
327
+ query: { "assignee_ids[]": options?.assigneeIds, due: options?.due, page: options?.page },
261
328
  },
262
329
  })
263
330
  , options
@@ -266,6 +333,7 @@ export class EverythingService extends BaseService {
266
333
 
267
334
  /**
268
335
  * Get every overdue card across all accessible projects, oldest-due-date-first.
336
+ * @param options - Optional query parameters
269
337
  * @returns Array of Card
270
338
  *
271
339
  * @example
@@ -273,7 +341,7 @@ export class EverythingService extends BaseService {
273
341
  * const result = await client.everything.everythingOverdueCards();
274
342
  * ```
275
343
  */
276
- async everythingOverdueCards(): Promise<Card[]> {
344
+ async everythingOverdueCards(options?: EverythingOverdueCardsEverythingOptions): Promise<Card[]> {
277
345
  const response = await this.request(
278
346
  {
279
347
  service: "Everything",
@@ -283,6 +351,9 @@ export class EverythingService extends BaseService {
283
351
  },
284
352
  () =>
285
353
  this.client.GET("/cards/overdue.json", {
354
+ params: {
355
+ query: { "assignee_ids[]": options?.assigneeIds, due: options?.due },
356
+ },
286
357
  })
287
358
  );
288
359
  return response ?? [];
@@ -309,7 +380,7 @@ export class EverythingService extends BaseService {
309
380
  () =>
310
381
  this.client.GET("/cards/unassigned.json", {
311
382
  params: {
312
- query: { page: options?.page },
383
+ query: { "assignee_ids[]": options?.assigneeIds, due: options?.due, page: options?.page },
313
384
  },
314
385
  })
315
386
  , options
@@ -477,7 +548,7 @@ export class EverythingService extends BaseService {
477
548
  () =>
478
549
  this.client.GET("/todos/completed.json", {
479
550
  params: {
480
- query: { page: options?.page },
551
+ query: { "assignee_ids[]": options?.assigneeIds, due: options?.due, page: options?.page },
481
552
  },
482
553
  })
483
554
  , options
@@ -505,7 +576,7 @@ export class EverythingService extends BaseService {
505
576
  () =>
506
577
  this.client.GET("/todos/no_due_date.json", {
507
578
  params: {
508
- query: { page: options?.page },
579
+ query: { "assignee_ids[]": options?.assigneeIds, due: options?.due, page: options?.page },
509
580
  },
510
581
  })
511
582
  , options
@@ -533,7 +604,7 @@ export class EverythingService extends BaseService {
533
604
  () =>
534
605
  this.client.GET("/todos/open.json", {
535
606
  params: {
536
- query: { page: options?.page },
607
+ query: { "assignee_ids[]": options?.assigneeIds, due: options?.due, page: options?.page },
537
608
  },
538
609
  })
539
610
  , options
@@ -542,6 +613,7 @@ export class EverythingService extends BaseService {
542
613
 
543
614
  /**
544
615
  * Get every overdue to-do across all accessible projects, oldest-due-date-first.
616
+ * @param options - Optional query parameters
545
617
  * @returns Array of Todo
546
618
  *
547
619
  * @example
@@ -549,7 +621,7 @@ export class EverythingService extends BaseService {
549
621
  * const result = await client.everything.everythingOverdueTodos();
550
622
  * ```
551
623
  */
552
- async everythingOverdueTodos(): Promise<Todo[]> {
624
+ async everythingOverdueTodos(options?: EverythingOverdueTodosEverythingOptions): Promise<Todo[]> {
553
625
  const response = await this.request(
554
626
  {
555
627
  service: "Everything",
@@ -559,6 +631,9 @@ export class EverythingService extends BaseService {
559
631
  },
560
632
  () =>
561
633
  this.client.GET("/todos/overdue.json", {
634
+ params: {
635
+ query: { "assignee_ids[]": options?.assigneeIds, due: options?.due },
636
+ },
562
637
  })
563
638
  );
564
639
  return response ?? [];
@@ -585,7 +660,7 @@ export class EverythingService extends BaseService {
585
660
  () =>
586
661
  this.client.GET("/todos/unassigned.json", {
587
662
  params: {
588
- query: { page: options?.page },
663
+ query: { "assignee_ids[]": options?.assigneeIds, due: options?.due, page: options?.page },
589
664
  },
590
665
  })
591
666
  , options
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Folders 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 { Errors } from "../../errors.js";
10
+
11
+ // =============================================================================
12
+ // Types
13
+ // =============================================================================
14
+
15
+ /** Folder entity from the Basecamp API. */
16
+ export type Folder = components["schemas"]["Folder"];
17
+ /** FolderWithProjects entity from the Basecamp API. */
18
+ export type FolderWithProjects = components["schemas"]["FolderWithProjects"];
19
+
20
+ /**
21
+ * Request parameters for createFolder.
22
+ */
23
+ export interface CreateFolderFolderRequest {
24
+ /** The folder's name. Defaults to `New folder` when blank, null, or omitted. */
25
+ name?: string;
26
+ /** IDs of the projects to file into the folder — the same ids the folder
27
+ reports back as `bucket_ids` and expands as `projects`. This does not
28
+ round-trip under its own name. Omit it, or send null or an empty array,
29
+ for an empty folder. */
30
+ projectIds?: number[];
31
+ }
32
+
33
+ /**
34
+ * Request parameters for updateFolder.
35
+ */
36
+ export interface UpdateFolderFolderRequest {
37
+ /** The folder's new name. Blank is rejected with 422 — unlike create, update
38
+ does not fall back to a default name. */
39
+ name: string;
40
+ }
41
+
42
+
43
+ // =============================================================================
44
+ // Service
45
+ // =============================================================================
46
+
47
+ /**
48
+ * Service for Folders operations.
49
+ */
50
+ export class FoldersService extends BaseService {
51
+
52
+ /**
53
+ * List the authenticated user's folders in home-screen order.
54
+ * @returns Array of Folder
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * const result = await client.folders.listFolders();
59
+ * ```
60
+ */
61
+ async listFolders(): Promise<Folder[]> {
62
+ const response = await this.request(
63
+ {
64
+ service: "Folders",
65
+ operation: "ListFolders",
66
+ resourceType: "folder",
67
+ isMutation: false,
68
+ },
69
+ () =>
70
+ this.client.GET("/stacks.json", {
71
+ })
72
+ );
73
+ return response ?? [];
74
+ }
75
+
76
+ /**
77
+ * Create a folder for the authenticated user and file the given projects into it.
78
+ * @param req - Folder creation parameters
79
+ * @returns The FolderWithProjects
80
+ * @throws {BasecampError} If required fields are missing or invalid
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * const result = await client.folders.createFolder({ });
85
+ * ```
86
+ */
87
+ async createFolder(req: CreateFolderFolderRequest): Promise<FolderWithProjects> {
88
+ const response = await this.request(
89
+ {
90
+ service: "Folders",
91
+ operation: "CreateFolder",
92
+ resourceType: "folder",
93
+ isMutation: true,
94
+ },
95
+ () =>
96
+ this.client.POST("/stacks.json", {
97
+ body: {
98
+ name: req.name,
99
+ project_ids: req.projectIds,
100
+ },
101
+ })
102
+ );
103
+ return response;
104
+ }
105
+
106
+ /**
107
+ * Get one folder, with the projects grouped inside it expanded under `projects`.
108
+ * @param folderId - The folder ID
109
+ * @returns The FolderWithProjects
110
+ * @throws {BasecampError} If the resource is not found
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * const result = await client.folders.getFolder(123);
115
+ * ```
116
+ */
117
+ async getFolder(folderId: number): Promise<FolderWithProjects> {
118
+ const response = await this.request(
119
+ {
120
+ service: "Folders",
121
+ operation: "GetFolder",
122
+ resourceType: "folder",
123
+ isMutation: false,
124
+ resourceId: folderId,
125
+ },
126
+ () =>
127
+ this.client.GET("/stacks/{folderId}", {
128
+ params: {
129
+ path: { folderId },
130
+ },
131
+ })
132
+ );
133
+ return response;
134
+ }
135
+
136
+ /**
137
+ * Rename a folder.
138
+ * @param folderId - The folder ID
139
+ * @param req - Folder update parameters
140
+ * @returns The FolderWithProjects
141
+ * @throws {BasecampError} If the resource is not found or fields are invalid
142
+ *
143
+ * @example
144
+ * ```ts
145
+ * const result = await client.folders.updateFolder(123, { name: "My example" });
146
+ * ```
147
+ */
148
+ async updateFolder(folderId: number, req: UpdateFolderFolderRequest): Promise<FolderWithProjects> {
149
+ if (!req.name) {
150
+ throw Errors.validation("Name is required");
151
+ }
152
+ const response = await this.request(
153
+ {
154
+ service: "Folders",
155
+ operation: "UpdateFolder",
156
+ resourceType: "folder",
157
+ isMutation: true,
158
+ resourceId: folderId,
159
+ },
160
+ () =>
161
+ this.client.PUT("/stacks/{folderId}", {
162
+ params: {
163
+ path: { folderId },
164
+ },
165
+ body: {
166
+ name: req.name,
167
+ },
168
+ })
169
+ );
170
+ return response;
171
+ }
172
+
173
+ /**
174
+ * Delete a folder and unpin its projects from the home screen.
175
+ * @param folderId - The folder ID
176
+ * @returns void
177
+ * @throws {BasecampError} If the request fails
178
+ *
179
+ * @example
180
+ * ```ts
181
+ * await client.folders.deleteFolder(123);
182
+ * ```
183
+ */
184
+ async deleteFolder(folderId: number): Promise<void> {
185
+ await this.request(
186
+ {
187
+ service: "Folders",
188
+ operation: "DeleteFolder",
189
+ resourceType: "folder",
190
+ isMutation: true,
191
+ resourceId: folderId,
192
+ },
193
+ () =>
194
+ this.client.DELETE("/stacks/{folderId}", {
195
+ params: {
196
+ path: { folderId },
197
+ },
198
+ })
199
+ );
200
+ }
201
+ }
@@ -8,7 +8,6 @@ import { BaseService } from "../../services/base.js";
8
8
  import type { components } from "../schema.js";
9
9
  import { ListResult } from "../../pagination.js";
10
10
  import type { PaginationOptions } from "../../pagination.js";
11
- import { Errors } from "../../errors.js";
12
11
 
13
12
  // =============================================================================
14
13
  // Types
@@ -25,14 +24,8 @@ export type Inbox = components["schemas"]["Inbox"];
25
24
  * Options for listReplies.
26
25
  */
27
26
  export interface ListRepliesForwardOptions extends PaginationOptions {
28
- }
29
-
30
- /**
31
- * Request parameters for createReply.
32
- */
33
- export interface CreateReplyForwardRequest {
34
- /** Text content */
35
- content: string;
27
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
28
+ page?: number;
36
29
  }
37
30
 
38
31
  /**
@@ -43,6 +36,8 @@ export interface ListForwardOptions extends PaginationOptions {
43
36
  sort?: "created_at" | "updated_at";
44
37
  /** Filter by direction */
45
38
  direction?: "asc" | "desc";
39
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
40
+ page?: number;
46
41
  }
47
42
 
48
43
 
@@ -94,6 +89,9 @@ export class ForwardsService extends BaseService {
94
89
  * @example
95
90
  * ```ts
96
91
  * const result = await client.forwards.listReplies(123);
92
+ *
93
+ * // With options
94
+ * const filtered = await client.forwards.listReplies(123, { page: 1 });
97
95
  * ```
98
96
  */
99
97
  async listReplies(forwardId: number, options?: ListRepliesForwardOptions): Promise<ListResult<ForwardReply>> {
@@ -109,49 +107,13 @@ export class ForwardsService extends BaseService {
109
107
  this.client.GET("/inbox_forwards/{forwardId}/replies.json", {
110
108
  params: {
111
109
  path: { forwardId },
110
+ query: { page: options?.page },
112
111
  },
113
112
  })
114
113
  , options
115
114
  );
116
115
  }
117
116
 
118
- /**
119
- * Create a reply to a forward
120
- * @param forwardId - The forward ID
121
- * @param req - Forward_reply creation parameters
122
- * @returns The ForwardReply
123
- * @throws {BasecampError} If required fields are missing or invalid
124
- *
125
- * @example
126
- * ```ts
127
- * const result = await client.forwards.createReply(123, { content: "Hello world" });
128
- * ```
129
- */
130
- async createReply(forwardId: number, req: CreateReplyForwardRequest): Promise<ForwardReply> {
131
- if (!req.content) {
132
- throw Errors.validation("Content is required");
133
- }
134
- const response = await this.request(
135
- {
136
- service: "Forwards",
137
- operation: "CreateForwardReply",
138
- resourceType: "forward_reply",
139
- isMutation: true,
140
- resourceId: forwardId,
141
- },
142
- () =>
143
- this.client.POST("/inbox_forwards/{forwardId}/replies.json", {
144
- params: {
145
- path: { forwardId },
146
- },
147
- body: {
148
- content: req.content,
149
- },
150
- })
151
- );
152
- return response;
153
- }
154
-
155
117
  /**
156
118
  * Get a forward reply by ID
157
119
  * @param forwardId - The forward ID
@@ -237,10 +199,10 @@ export class ForwardsService extends BaseService {
237
199
  resourceId: inboxId,
238
200
  },
239
201
  () =>
240
- this.client.GET("/inboxes/{inboxId}/forwards.json", {
202
+ this.client.GET("/inboxes/{inboxId}/inbox_forwards.json", {
241
203
  params: {
242
204
  path: { inboxId },
243
- query: { sort: options?.sort, direction: options?.direction },
205
+ query: { sort: options?.sort, direction: options?.direction, page: options?.page },
244
206
  },
245
207
  })
246
208
  , options
@@ -35,6 +35,8 @@ export interface ToggleGaugeGaugeRequest {
35
35
  * Options for listGaugeNeedles.
36
36
  */
37
37
  export interface ListGaugeNeedlesGaugeOptions extends PaginationOptions {
38
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
39
+ page?: number;
38
40
  }
39
41
 
40
42
  /**
@@ -56,6 +58,8 @@ export interface ListGaugesGaugeOptions extends PaginationOptions {
56
58
  /** Comma-separated list of project IDs. When provided, results are returned
57
59
  in the order specified instead of by risk level. */
58
60
  bucketIds?: string;
61
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
62
+ page?: number;
59
63
  }
60
64
 
61
65
 
@@ -205,6 +209,9 @@ export class GaugesService extends BaseService {
205
209
  * @example
206
210
  * ```ts
207
211
  * const result = await client.gauges.listGaugeNeedles(123);
212
+ *
213
+ * // With options
214
+ * const filtered = await client.gauges.listGaugeNeedles(123, { page: 1 });
208
215
  * ```
209
216
  */
210
217
  async listGaugeNeedles(projectId: number, options?: ListGaugeNeedlesGaugeOptions): Promise<components["schemas"]["ListGaugeNeedlesResponseContent"]> {
@@ -220,6 +227,7 @@ export class GaugesService extends BaseService {
220
227
  this.client.GET("/projects/{projectId}/gauge/needles.json", {
221
228
  params: {
222
229
  path: { projectId },
230
+ query: { page: options?.page },
223
231
  },
224
232
  })
225
233
  , options
@@ -289,7 +297,7 @@ export class GaugesService extends BaseService {
289
297
  () =>
290
298
  this.client.GET("/reports/gauges.json", {
291
299
  params: {
292
- query: { "bucket_ids": options?.bucketIds },
300
+ query: { "bucket_ids": options?.bucketIds, page: options?.page },
293
301
  },
294
302
  })
295
303
  , options