@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,96 @@
1
+ /**
2
+ * Folders service for the Basecamp API.
3
+ *
4
+ * @generated from OpenAPI spec - do not edit directly
5
+ */
6
+ import { BaseService } from "../../services/base.js";
7
+ import type { components } from "../schema.js";
8
+ /** Folder entity from the Basecamp API. */
9
+ export type Folder = components["schemas"]["Folder"];
10
+ /** FolderWithProjects entity from the Basecamp API. */
11
+ export type FolderWithProjects = components["schemas"]["FolderWithProjects"];
12
+ /**
13
+ * Request parameters for createFolder.
14
+ */
15
+ export interface CreateFolderFolderRequest {
16
+ /** The folder's name. Defaults to `New folder` when blank, null, or omitted. */
17
+ name?: string;
18
+ /** IDs of the projects to file into the folder — the same ids the folder
19
+ reports back as `bucket_ids` and expands as `projects`. This does not
20
+ round-trip under its own name. Omit it, or send null or an empty array,
21
+ for an empty folder. */
22
+ projectIds?: number[];
23
+ }
24
+ /**
25
+ * Request parameters for updateFolder.
26
+ */
27
+ export interface UpdateFolderFolderRequest {
28
+ /** The folder's new name. Blank is rejected with 422 — unlike create, update
29
+ does not fall back to a default name. */
30
+ name: string;
31
+ }
32
+ /**
33
+ * Service for Folders operations.
34
+ */
35
+ export declare class FoldersService extends BaseService {
36
+ /**
37
+ * List the authenticated user's folders in home-screen order.
38
+ * @returns Array of Folder
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * const result = await client.folders.listFolders();
43
+ * ```
44
+ */
45
+ listFolders(): Promise<Folder[]>;
46
+ /**
47
+ * Create a folder for the authenticated user and file the given projects into it.
48
+ * @param req - Folder creation parameters
49
+ * @returns The FolderWithProjects
50
+ * @throws {BasecampError} If required fields are missing or invalid
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * const result = await client.folders.createFolder({ });
55
+ * ```
56
+ */
57
+ createFolder(req: CreateFolderFolderRequest): Promise<FolderWithProjects>;
58
+ /**
59
+ * Get one folder, with the projects grouped inside it expanded under `projects`.
60
+ * @param folderId - The folder ID
61
+ * @returns The FolderWithProjects
62
+ * @throws {BasecampError} If the resource is not found
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * const result = await client.folders.getFolder(123);
67
+ * ```
68
+ */
69
+ getFolder(folderId: number): Promise<FolderWithProjects>;
70
+ /**
71
+ * Rename a folder.
72
+ * @param folderId - The folder ID
73
+ * @param req - Folder update parameters
74
+ * @returns The FolderWithProjects
75
+ * @throws {BasecampError} If the resource is not found or fields are invalid
76
+ *
77
+ * @example
78
+ * ```ts
79
+ * const result = await client.folders.updateFolder(123, { name: "My example" });
80
+ * ```
81
+ */
82
+ updateFolder(folderId: number, req: UpdateFolderFolderRequest): Promise<FolderWithProjects>;
83
+ /**
84
+ * Delete a folder and unpin its projects from the home screen.
85
+ * @param folderId - The folder ID
86
+ * @returns void
87
+ * @throws {BasecampError} If the request fails
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * await client.folders.deleteFolder(123);
92
+ * ```
93
+ */
94
+ deleteFolder(folderId: number): Promise<void>;
95
+ }
96
+ //# sourceMappingURL=folders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folders.d.ts","sourceRoot":"","sources":["../../../src/generated/services/folders.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO/C,2CAA2C;AAC3C,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;AACrD,uDAAuD;AACvD,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;yBAGqB;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;0CACsC;IACtC,IAAI,EAAE,MAAM,CAAC;CACd;AAOD;;GAEG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAE7C;;;;;;;;OAQG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAetC;;;;;;;;;;OAUG;IACG,YAAY,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmB/E;;;;;;;;;;OAUG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmB9D;;;;;;;;;;;OAWG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyBjG;;;;;;;;;;OAUG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBpD"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Folders service for the Basecamp API.
3
+ *
4
+ * @generated from OpenAPI spec - do not edit directly
5
+ */
6
+ import { BaseService } from "../../services/base.js";
7
+ import { Errors } from "../../errors.js";
8
+ // =============================================================================
9
+ // Service
10
+ // =============================================================================
11
+ /**
12
+ * Service for Folders operations.
13
+ */
14
+ export class FoldersService extends BaseService {
15
+ /**
16
+ * List the authenticated user's folders in home-screen order.
17
+ * @returns Array of Folder
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const result = await client.folders.listFolders();
22
+ * ```
23
+ */
24
+ async listFolders() {
25
+ const response = await this.request({
26
+ service: "Folders",
27
+ operation: "ListFolders",
28
+ resourceType: "folder",
29
+ isMutation: false,
30
+ }, () => this.client.GET("/stacks.json", {}));
31
+ return response ?? [];
32
+ }
33
+ /**
34
+ * Create a folder for the authenticated user and file the given projects into it.
35
+ * @param req - Folder creation parameters
36
+ * @returns The FolderWithProjects
37
+ * @throws {BasecampError} If required fields are missing or invalid
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const result = await client.folders.createFolder({ });
42
+ * ```
43
+ */
44
+ async createFolder(req) {
45
+ const response = await this.request({
46
+ service: "Folders",
47
+ operation: "CreateFolder",
48
+ resourceType: "folder",
49
+ isMutation: true,
50
+ }, () => this.client.POST("/stacks.json", {
51
+ body: {
52
+ name: req.name,
53
+ project_ids: req.projectIds,
54
+ },
55
+ }));
56
+ return response;
57
+ }
58
+ /**
59
+ * Get one folder, with the projects grouped inside it expanded under `projects`.
60
+ * @param folderId - The folder ID
61
+ * @returns The FolderWithProjects
62
+ * @throws {BasecampError} If the resource is not found
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * const result = await client.folders.getFolder(123);
67
+ * ```
68
+ */
69
+ async getFolder(folderId) {
70
+ const response = await this.request({
71
+ service: "Folders",
72
+ operation: "GetFolder",
73
+ resourceType: "folder",
74
+ isMutation: false,
75
+ resourceId: folderId,
76
+ }, () => this.client.GET("/stacks/{folderId}", {
77
+ params: {
78
+ path: { folderId },
79
+ },
80
+ }));
81
+ return response;
82
+ }
83
+ /**
84
+ * Rename a folder.
85
+ * @param folderId - The folder ID
86
+ * @param req - Folder update parameters
87
+ * @returns The FolderWithProjects
88
+ * @throws {BasecampError} If the resource is not found or fields are invalid
89
+ *
90
+ * @example
91
+ * ```ts
92
+ * const result = await client.folders.updateFolder(123, { name: "My example" });
93
+ * ```
94
+ */
95
+ async updateFolder(folderId, req) {
96
+ if (!req.name) {
97
+ throw Errors.validation("Name is required");
98
+ }
99
+ const response = await this.request({
100
+ service: "Folders",
101
+ operation: "UpdateFolder",
102
+ resourceType: "folder",
103
+ isMutation: true,
104
+ resourceId: folderId,
105
+ }, () => this.client.PUT("/stacks/{folderId}", {
106
+ params: {
107
+ path: { folderId },
108
+ },
109
+ body: {
110
+ name: req.name,
111
+ },
112
+ }));
113
+ return response;
114
+ }
115
+ /**
116
+ * Delete a folder and unpin its projects from the home screen.
117
+ * @param folderId - The folder ID
118
+ * @returns void
119
+ * @throws {BasecampError} If the request fails
120
+ *
121
+ * @example
122
+ * ```ts
123
+ * await client.folders.deleteFolder(123);
124
+ * ```
125
+ */
126
+ async deleteFolder(folderId) {
127
+ await this.request({
128
+ service: "Folders",
129
+ operation: "DeleteFolder",
130
+ resourceType: "folder",
131
+ isMutation: true,
132
+ resourceId: folderId,
133
+ }, () => this.client.DELETE("/stacks/{folderId}", {
134
+ params: {
135
+ path: { folderId },
136
+ },
137
+ }));
138
+ }
139
+ }
140
+ //# sourceMappingURL=folders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folders.js","sourceRoot":"","sources":["../../../src/generated/services/folders.ts"],"names":[],"mappings":"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"}