@37signals/basecamp 0.2.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 (356) hide show
  1. package/README.md +600 -0
  2. package/dist/auth-strategy.d.ts +36 -0
  3. package/dist/auth-strategy.d.ts.map +1 -0
  4. package/dist/auth-strategy.js +33 -0
  5. package/dist/auth-strategy.js.map +1 -0
  6. package/dist/client.d.ts +224 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +715 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/errors.d.ts +137 -0
  11. package/dist/errors.d.ts.map +1 -0
  12. package/dist/errors.js +269 -0
  13. package/dist/errors.js.map +1 -0
  14. package/dist/generated/metadata.json +2281 -0
  15. package/dist/generated/openapi-stripped.json +21268 -0
  16. package/dist/generated/path-mapping.d.ts +8 -0
  17. package/dist/generated/path-mapping.d.ts.map +1 -0
  18. package/dist/generated/path-mapping.js +192 -0
  19. package/dist/generated/path-mapping.js.map +1 -0
  20. package/dist/generated/path-mapping.ts +199 -0
  21. package/dist/generated/schema.d.ts +14883 -0
  22. package/dist/generated/services/attachments.d.ts +27 -0
  23. package/dist/generated/services/attachments.d.ts.map +1 -0
  24. package/dist/generated/services/attachments.js +49 -0
  25. package/dist/generated/services/attachments.js.map +1 -0
  26. package/dist/generated/services/attachments.ts +59 -0
  27. package/dist/generated/services/boosts.d.ts +114 -0
  28. package/dist/generated/services/boosts.d.ts.map +1 -0
  29. package/dist/generated/services/boosts.js +179 -0
  30. package/dist/generated/services/boosts.js.map +1 -0
  31. package/dist/generated/services/boosts.ts +250 -0
  32. package/dist/generated/services/campfires.d.ts +202 -0
  33. package/dist/generated/services/campfires.d.ts.map +1 -0
  34. package/dist/generated/services/campfires.js +309 -0
  35. package/dist/generated/services/campfires.js.map +1 -0
  36. package/dist/generated/services/campfires.ts +433 -0
  37. package/dist/generated/services/card-columns.d.ts +163 -0
  38. package/dist/generated/services/card-columns.d.ts.map +1 -0
  39. package/dist/generated/services/card-columns.js +264 -0
  40. package/dist/generated/services/card-columns.js.map +1 -0
  41. package/dist/generated/services/card-columns.ts +360 -0
  42. package/dist/generated/services/card-steps.d.ts +105 -0
  43. package/dist/generated/services/card-steps.d.ts.map +1 -0
  44. package/dist/generated/services/card-steps.js +148 -0
  45. package/dist/generated/services/card-steps.js.map +1 -0
  46. package/dist/generated/services/card-steps.ts +221 -0
  47. package/dist/generated/services/card-tables.d.ts +27 -0
  48. package/dist/generated/services/card-tables.d.ts.map +1 -0
  49. package/dist/generated/services/card-tables.js +40 -0
  50. package/dist/generated/services/card-tables.js.map +1 -0
  51. package/dist/generated/services/card-tables.ts +55 -0
  52. package/dist/generated/services/cards.d.ts +118 -0
  53. package/dist/generated/services/cards.d.ts.map +1 -0
  54. package/dist/generated/services/cards.js +166 -0
  55. package/dist/generated/services/cards.js.map +1 -0
  56. package/dist/generated/services/cards.ts +247 -0
  57. package/dist/generated/services/checkins.d.ts +278 -0
  58. package/dist/generated/services/checkins.d.ts.map +1 -0
  59. package/dist/generated/services/checkins.js +420 -0
  60. package/dist/generated/services/checkins.js.map +1 -0
  61. package/dist/generated/services/checkins.ts +600 -0
  62. package/dist/generated/services/client-approvals.d.ts +45 -0
  63. package/dist/generated/services/client-approvals.d.ts.map +1 -0
  64. package/dist/generated/services/client-approvals.js +58 -0
  65. package/dist/generated/services/client-approvals.js.map +1 -0
  66. package/dist/generated/services/client-approvals.ts +89 -0
  67. package/dist/generated/services/client-correspondences.d.ts +45 -0
  68. package/dist/generated/services/client-correspondences.d.ts.map +1 -0
  69. package/dist/generated/services/client-correspondences.js +58 -0
  70. package/dist/generated/services/client-correspondences.js.map +1 -0
  71. package/dist/generated/services/client-correspondences.ts +89 -0
  72. package/dist/generated/services/client-replies.d.ts +47 -0
  73. package/dist/generated/services/client-replies.d.ts.map +1 -0
  74. package/dist/generated/services/client-replies.js +65 -0
  75. package/dist/generated/services/client-replies.js.map +1 -0
  76. package/dist/generated/services/client-replies.ts +95 -0
  77. package/dist/generated/services/client-visibility.d.ts +35 -0
  78. package/dist/generated/services/client-visibility.d.ts.map +1 -0
  79. package/dist/generated/services/client-visibility.js +44 -0
  80. package/dist/generated/services/client-visibility.js.map +1 -0
  81. package/dist/generated/services/client-visibility.ts +68 -0
  82. package/dist/generated/services/comments.d.ts +86 -0
  83. package/dist/generated/services/comments.d.ts.map +1 -0
  84. package/dist/generated/services/comments.js +129 -0
  85. package/dist/generated/services/comments.js.map +1 -0
  86. package/dist/generated/services/comments.ts +185 -0
  87. package/dist/generated/services/documents.d.ts +92 -0
  88. package/dist/generated/services/documents.d.ts.map +1 -0
  89. package/dist/generated/services/documents.js +129 -0
  90. package/dist/generated/services/documents.js.map +1 -0
  91. package/dist/generated/services/documents.ts +191 -0
  92. package/dist/generated/services/events.d.ts +34 -0
  93. package/dist/generated/services/events.d.ts.map +1 -0
  94. package/dist/generated/services/events.js +39 -0
  95. package/dist/generated/services/events.js.map +1 -0
  96. package/dist/generated/services/events.ts +64 -0
  97. package/dist/generated/services/forwards.d.ts +112 -0
  98. package/dist/generated/services/forwards.d.ts.map +1 -0
  99. package/dist/generated/services/forwards.js +172 -0
  100. package/dist/generated/services/forwards.js.map +1 -0
  101. package/dist/generated/services/forwards.ts +241 -0
  102. package/dist/generated/services/index.d.ts +39 -0
  103. package/dist/generated/services/index.d.ts.map +1 -0
  104. package/dist/generated/services/index.js +39 -0
  105. package/dist/generated/services/index.js.map +1 -0
  106. package/dist/generated/services/index.ts +38 -0
  107. package/dist/generated/services/lineup.d.ts +67 -0
  108. package/dist/generated/services/lineup.d.ts.map +1 -0
  109. package/dist/generated/services/lineup.js +99 -0
  110. package/dist/generated/services/lineup.js.map +1 -0
  111. package/dist/generated/services/lineup.ts +143 -0
  112. package/dist/generated/services/message-boards.d.ts +27 -0
  113. package/dist/generated/services/message-boards.d.ts.map +1 -0
  114. package/dist/generated/services/message-boards.js +40 -0
  115. package/dist/generated/services/message-boards.js.map +1 -0
  116. package/dist/generated/services/message-boards.ts +55 -0
  117. package/dist/generated/services/message-types.d.ts +100 -0
  118. package/dist/generated/services/message-types.d.ts.map +1 -0
  119. package/dist/generated/services/message-types.js +144 -0
  120. package/dist/generated/services/message-types.js.map +1 -0
  121. package/dist/generated/services/message-types.ts +210 -0
  122. package/dist/generated/services/messages.d.ts +122 -0
  123. package/dist/generated/services/messages.d.ts.map +1 -0
  124. package/dist/generated/services/messages.js +180 -0
  125. package/dist/generated/services/messages.js.map +1 -0
  126. package/dist/generated/services/messages.ts +258 -0
  127. package/dist/generated/services/people.d.ts +122 -0
  128. package/dist/generated/services/people.d.ts.map +1 -0
  129. package/dist/generated/services/people.js +167 -0
  130. package/dist/generated/services/people.js.map +1 -0
  131. package/dist/generated/services/people.ts +252 -0
  132. package/dist/generated/services/projects.d.ts +109 -0
  133. package/dist/generated/services/projects.d.ts.map +1 -0
  134. package/dist/generated/services/projects.js +153 -0
  135. package/dist/generated/services/projects.js.map +1 -0
  136. package/dist/generated/services/projects.ts +224 -0
  137. package/dist/generated/services/recordings.d.ts +93 -0
  138. package/dist/generated/services/recordings.d.ts.map +1 -0
  139. package/dist/generated/services/recordings.js +138 -0
  140. package/dist/generated/services/recordings.js.map +1 -0
  141. package/dist/generated/services/recordings.ts +191 -0
  142. package/dist/generated/services/reports.d.ts +90 -0
  143. package/dist/generated/services/reports.d.ts.map +1 -0
  144. package/dist/generated/services/reports.js +124 -0
  145. package/dist/generated/services/reports.js.map +1 -0
  146. package/dist/generated/services/reports.ts +187 -0
  147. package/dist/generated/services/schedules.d.ts +162 -0
  148. package/dist/generated/services/schedules.d.ts.map +1 -0
  149. package/dist/generated/services/schedules.js +228 -0
  150. package/dist/generated/services/schedules.js.map +1 -0
  151. package/dist/generated/services/schedules.ts +335 -0
  152. package/dist/generated/services/search.d.ts +45 -0
  153. package/dist/generated/services/search.d.ts.map +1 -0
  154. package/dist/generated/services/search.js +56 -0
  155. package/dist/generated/services/search.js.map +1 -0
  156. package/dist/generated/services/search.ts +89 -0
  157. package/dist/generated/services/subscriptions.d.ts +73 -0
  158. package/dist/generated/services/subscriptions.d.ts.map +1 -0
  159. package/dist/generated/services/subscriptions.js +119 -0
  160. package/dist/generated/services/subscriptions.js.map +1 -0
  161. package/dist/generated/services/subscriptions.ts +160 -0
  162. package/dist/generated/services/templates.d.ts +140 -0
  163. package/dist/generated/services/templates.d.ts.map +1 -0
  164. package/dist/generated/services/templates.js +207 -0
  165. package/dist/generated/services/templates.js.map +1 -0
  166. package/dist/generated/services/templates.ts +294 -0
  167. package/dist/generated/services/timeline.d.ts +31 -0
  168. package/dist/generated/services/timeline.d.ts.map +1 -0
  169. package/dist/generated/services/timeline.js +39 -0
  170. package/dist/generated/services/timeline.js.map +1 -0
  171. package/dist/generated/services/timeline.ts +62 -0
  172. package/dist/generated/services/timesheets.d.ts +145 -0
  173. package/dist/generated/services/timesheets.d.ts.map +1 -0
  174. package/dist/generated/services/timesheets.js +186 -0
  175. package/dist/generated/services/timesheets.js.map +1 -0
  176. package/dist/generated/services/timesheets.ts +289 -0
  177. package/dist/generated/services/todolist-groups.d.ts +74 -0
  178. package/dist/generated/services/todolist-groups.d.ts.map +1 -0
  179. package/dist/generated/services/todolist-groups.js +100 -0
  180. package/dist/generated/services/todolist-groups.js.map +1 -0
  181. package/dist/generated/services/todolist-groups.ts +151 -0
  182. package/dist/generated/services/todolists.d.ts +95 -0
  183. package/dist/generated/services/todolists.d.ts.map +1 -0
  184. package/dist/generated/services/todolists.js +130 -0
  185. package/dist/generated/services/todolists.js.map +1 -0
  186. package/dist/generated/services/todolists.ts +192 -0
  187. package/dist/generated/services/todos.d.ts +175 -0
  188. package/dist/generated/services/todos.d.ts.map +1 -0
  189. package/dist/generated/services/todos.js +255 -0
  190. package/dist/generated/services/todos.js.map +1 -0
  191. package/dist/generated/services/todos.ts +369 -0
  192. package/dist/generated/services/todosets.d.ts +27 -0
  193. package/dist/generated/services/todosets.d.ts.map +1 -0
  194. package/dist/generated/services/todosets.js +40 -0
  195. package/dist/generated/services/todosets.js.map +1 -0
  196. package/dist/generated/services/todosets.ts +55 -0
  197. package/dist/generated/services/tools.d.ts +122 -0
  198. package/dist/generated/services/tools.d.ts.map +1 -0
  199. package/dist/generated/services/tools.js +197 -0
  200. package/dist/generated/services/tools.js.map +1 -0
  201. package/dist/generated/services/tools.ts +267 -0
  202. package/dist/generated/services/uploads.d.ts +109 -0
  203. package/dist/generated/services/uploads.d.ts.map +1 -0
  204. package/dist/generated/services/uploads.js +153 -0
  205. package/dist/generated/services/uploads.js.map +1 -0
  206. package/dist/generated/services/uploads.ts +227 -0
  207. package/dist/generated/services/vaults.d.ts +86 -0
  208. package/dist/generated/services/vaults.d.ts.map +1 -0
  209. package/dist/generated/services/vaults.js +126 -0
  210. package/dist/generated/services/vaults.js.map +1 -0
  211. package/dist/generated/services/vaults.ts +182 -0
  212. package/dist/generated/services/webhooks.d.ts +106 -0
  213. package/dist/generated/services/webhooks.d.ts.map +1 -0
  214. package/dist/generated/services/webhooks.js +157 -0
  215. package/dist/generated/services/webhooks.js.map +1 -0
  216. package/dist/generated/services/webhooks.ts +226 -0
  217. package/dist/hooks/otel.d.ts +136 -0
  218. package/dist/hooks/otel.d.ts.map +1 -0
  219. package/dist/hooks/otel.js +240 -0
  220. package/dist/hooks/otel.js.map +1 -0
  221. package/dist/hooks.d.ts +171 -0
  222. package/dist/hooks.d.ts.map +1 -0
  223. package/dist/hooks.js +196 -0
  224. package/dist/hooks.js.map +1 -0
  225. package/dist/index.d.ts +90 -0
  226. package/dist/index.d.ts.map +1 -0
  227. package/dist/index.js +122 -0
  228. package/dist/index.js.map +1 -0
  229. package/dist/oauth/authorize.d.ts +48 -0
  230. package/dist/oauth/authorize.d.ts.map +1 -0
  231. package/dist/oauth/authorize.js +56 -0
  232. package/dist/oauth/authorize.js.map +1 -0
  233. package/dist/oauth/callback-server.d.ts +56 -0
  234. package/dist/oauth/callback-server.d.ts.map +1 -0
  235. package/dist/oauth/callback-server.js +150 -0
  236. package/dist/oauth/callback-server.js.map +1 -0
  237. package/dist/oauth/discovery.d.ts +54 -0
  238. package/dist/oauth/discovery.d.ts.map +1 -0
  239. package/dist/oauth/discovery.js +116 -0
  240. package/dist/oauth/discovery.js.map +1 -0
  241. package/dist/oauth/exchange.d.ts +96 -0
  242. package/dist/oauth/exchange.d.ts.map +1 -0
  243. package/dist/oauth/exchange.js +324 -0
  244. package/dist/oauth/exchange.js.map +1 -0
  245. package/dist/oauth/identity.d.ts +30 -0
  246. package/dist/oauth/identity.d.ts.map +1 -0
  247. package/dist/oauth/identity.js +82 -0
  248. package/dist/oauth/identity.js.map +1 -0
  249. package/dist/oauth/index.d.ts +50 -0
  250. package/dist/oauth/index.d.ts.map +1 -0
  251. package/dist/oauth/index.js +58 -0
  252. package/dist/oauth/index.js.map +1 -0
  253. package/dist/oauth/interactive-login.d.ts +62 -0
  254. package/dist/oauth/interactive-login.d.ts.map +1 -0
  255. package/dist/oauth/interactive-login.js +106 -0
  256. package/dist/oauth/interactive-login.js.map +1 -0
  257. package/dist/oauth/pkce.d.ts +68 -0
  258. package/dist/oauth/pkce.d.ts.map +1 -0
  259. package/dist/oauth/pkce.js +80 -0
  260. package/dist/oauth/pkce.js.map +1 -0
  261. package/dist/oauth/token-manager.d.ts +92 -0
  262. package/dist/oauth/token-manager.d.ts.map +1 -0
  263. package/dist/oauth/token-manager.js +126 -0
  264. package/dist/oauth/token-manager.js.map +1 -0
  265. package/dist/oauth/token-store.d.ts +45 -0
  266. package/dist/oauth/token-store.d.ts.map +1 -0
  267. package/dist/oauth/token-store.js +105 -0
  268. package/dist/oauth/token-store.js.map +1 -0
  269. package/dist/oauth/types.d.ts +98 -0
  270. package/dist/oauth/types.d.ts.map +1 -0
  271. package/dist/oauth/types.js +8 -0
  272. package/dist/oauth/types.js.map +1 -0
  273. package/dist/pagination-utils.d.ts +27 -0
  274. package/dist/pagination-utils.d.ts.map +1 -0
  275. package/dist/pagination-utils.js +54 -0
  276. package/dist/pagination-utils.js.map +1 -0
  277. package/dist/pagination.d.ts +56 -0
  278. package/dist/pagination.d.ts.map +1 -0
  279. package/dist/pagination.js +57 -0
  280. package/dist/pagination.js.map +1 -0
  281. package/dist/security.d.ts +68 -0
  282. package/dist/security.d.ts.map +1 -0
  283. package/dist/security.js +107 -0
  284. package/dist/security.js.map +1 -0
  285. package/dist/services/authorization.d.ts +124 -0
  286. package/dist/services/authorization.d.ts.map +1 -0
  287. package/dist/services/authorization.js +117 -0
  288. package/dist/services/authorization.js.map +1 -0
  289. package/dist/services/base.d.ts +102 -0
  290. package/dist/services/base.d.ts.map +1 -0
  291. package/dist/services/base.js +230 -0
  292. package/dist/services/base.js.map +1 -0
  293. package/dist/webhooks/adapters/node-http.d.ts +14 -0
  294. package/dist/webhooks/adapters/node-http.d.ts.map +1 -0
  295. package/dist/webhooks/adapters/node-http.js +60 -0
  296. package/dist/webhooks/adapters/node-http.js.map +1 -0
  297. package/dist/webhooks/events.d.ts +52 -0
  298. package/dist/webhooks/events.d.ts.map +1 -0
  299. package/dist/webhooks/events.js +52 -0
  300. package/dist/webhooks/events.js.map +1 -0
  301. package/dist/webhooks/handler.d.ts +62 -0
  302. package/dist/webhooks/handler.d.ts.map +1 -0
  303. package/dist/webhooks/handler.js +226 -0
  304. package/dist/webhooks/handler.js.map +1 -0
  305. package/dist/webhooks/index.d.ts +5 -0
  306. package/dist/webhooks/index.d.ts.map +1 -0
  307. package/dist/webhooks/index.js +5 -0
  308. package/dist/webhooks/index.js.map +1 -0
  309. package/dist/webhooks/verify.d.ts +11 -0
  310. package/dist/webhooks/verify.d.ts.map +1 -0
  311. package/dist/webhooks/verify.js +25 -0
  312. package/dist/webhooks/verify.js.map +1 -0
  313. package/package.json +70 -0
  314. package/src/generated/metadata.json +2281 -0
  315. package/src/generated/openapi-stripped.json +21268 -0
  316. package/src/generated/path-mapping.ts +199 -0
  317. package/src/generated/schema.d.ts +14883 -0
  318. package/src/generated/services/attachments.ts +59 -0
  319. package/src/generated/services/boosts.ts +250 -0
  320. package/src/generated/services/campfires.ts +433 -0
  321. package/src/generated/services/card-columns.ts +360 -0
  322. package/src/generated/services/card-steps.ts +221 -0
  323. package/src/generated/services/card-tables.ts +55 -0
  324. package/src/generated/services/cards.ts +247 -0
  325. package/src/generated/services/checkins.ts +600 -0
  326. package/src/generated/services/client-approvals.ts +89 -0
  327. package/src/generated/services/client-correspondences.ts +89 -0
  328. package/src/generated/services/client-replies.ts +95 -0
  329. package/src/generated/services/client-visibility.ts +68 -0
  330. package/src/generated/services/comments.ts +185 -0
  331. package/src/generated/services/documents.ts +191 -0
  332. package/src/generated/services/events.ts +64 -0
  333. package/src/generated/services/forwards.ts +241 -0
  334. package/src/generated/services/index.ts +38 -0
  335. package/src/generated/services/lineup.ts +143 -0
  336. package/src/generated/services/message-boards.ts +55 -0
  337. package/src/generated/services/message-types.ts +210 -0
  338. package/src/generated/services/messages.ts +258 -0
  339. package/src/generated/services/people.ts +252 -0
  340. package/src/generated/services/projects.ts +224 -0
  341. package/src/generated/services/recordings.ts +191 -0
  342. package/src/generated/services/reports.ts +187 -0
  343. package/src/generated/services/schedules.ts +335 -0
  344. package/src/generated/services/search.ts +89 -0
  345. package/src/generated/services/subscriptions.ts +160 -0
  346. package/src/generated/services/templates.ts +294 -0
  347. package/src/generated/services/timeline.ts +62 -0
  348. package/src/generated/services/timesheets.ts +289 -0
  349. package/src/generated/services/todolist-groups.ts +151 -0
  350. package/src/generated/services/todolists.ts +192 -0
  351. package/src/generated/services/todos.ts +369 -0
  352. package/src/generated/services/todosets.ts +55 -0
  353. package/src/generated/services/tools.ts +267 -0
  354. package/src/generated/services/uploads.ts +227 -0
  355. package/src/generated/services/vaults.ts +182 -0
  356. package/src/generated/services/webhooks.ts +226 -0
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Cards 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
+ import { ListResult } from "../../pagination.js";
9
+ import type { PaginationOptions } from "../../pagination.js";
10
+ /** Card entity from the Basecamp API. */
11
+ export type Card = components["schemas"]["Card"];
12
+ /**
13
+ * Request parameters for update.
14
+ */
15
+ export interface UpdateCardRequest {
16
+ /** Title */
17
+ title?: string;
18
+ /** Text content */
19
+ content?: string;
20
+ /** Due date (YYYY-MM-DD) */
21
+ dueOn?: string;
22
+ /** Person IDs to assign to */
23
+ assigneeIds?: number[];
24
+ }
25
+ /**
26
+ * Request parameters for move.
27
+ */
28
+ export interface MoveCardRequest {
29
+ /** Column id */
30
+ columnId: number;
31
+ }
32
+ /**
33
+ * Options for list.
34
+ */
35
+ export interface ListCardOptions extends PaginationOptions {
36
+ }
37
+ /**
38
+ * Request parameters for create.
39
+ */
40
+ export interface CreateCardRequest {
41
+ /** Title */
42
+ title: string;
43
+ /** Text content */
44
+ content?: string;
45
+ /** Due date (YYYY-MM-DD) */
46
+ dueOn?: string;
47
+ /** Whether to send notifications to relevant people */
48
+ notify?: boolean;
49
+ }
50
+ /**
51
+ * Service for Cards operations.
52
+ */
53
+ export declare class CardsService extends BaseService {
54
+ /**
55
+ * Get a card by ID
56
+ * @param cardId - The card ID
57
+ * @returns The Card
58
+ * @throws {BasecampError} If the resource is not found
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * const result = await client.cards.get(123);
63
+ * ```
64
+ */
65
+ get(cardId: number): Promise<Card>;
66
+ /**
67
+ * Update an existing card
68
+ * @param cardId - The card ID
69
+ * @param req - Card update parameters
70
+ * @returns The Card
71
+ * @throws {BasecampError} If the resource is not found or fields are invalid
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * const result = await client.cards.update(123, { });
76
+ * ```
77
+ */
78
+ update(cardId: number, req: UpdateCardRequest): Promise<Card>;
79
+ /**
80
+ * Move a card to a different column
81
+ * @param cardId - The card ID
82
+ * @param req - Card request parameters
83
+ * @returns void
84
+ * @throws {BasecampError} If the request fails
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * await client.cards.move(123, { columnId: 1 });
89
+ * ```
90
+ */
91
+ move(cardId: number, req: MoveCardRequest): Promise<void>;
92
+ /**
93
+ * List cards in a column
94
+ * @param columnId - The column ID
95
+ * @param options - Optional query parameters
96
+ * @returns All Card across all pages, with .meta.totalCount
97
+ *
98
+ * @example
99
+ * ```ts
100
+ * const result = await client.cards.list(123);
101
+ * ```
102
+ */
103
+ list(columnId: number, options?: ListCardOptions): Promise<ListResult<Card>>;
104
+ /**
105
+ * Create a card in a column
106
+ * @param columnId - The column ID
107
+ * @param req - Card creation parameters
108
+ * @returns The Card
109
+ * @throws {BasecampError} If required fields are missing or invalid
110
+ *
111
+ * @example
112
+ * ```ts
113
+ * const result = await client.cards.create(123, { title: "example" });
114
+ * ```
115
+ */
116
+ create(columnId: number, req: CreateCardRequest): Promise<Card>;
117
+ }
118
+ //# sourceMappingURL=cards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cards.d.ts","sourceRoot":"","sources":["../../../src/generated/services/cards.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO7D,yCAAyC;AACzC,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAOD;;GAEG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAE3C;;;;;;;;;;OAUG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxC;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BnE;;;;;;;;;;;OAWG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/D;;;;;;;;;;OAUG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAmBlF;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CA8BtE"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Cards 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 Cards operations.
13
+ */
14
+ export class CardsService extends BaseService {
15
+ /**
16
+ * Get a card by ID
17
+ * @param cardId - The card ID
18
+ * @returns The Card
19
+ * @throws {BasecampError} If the resource is not found
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const result = await client.cards.get(123);
24
+ * ```
25
+ */
26
+ async get(cardId) {
27
+ const response = await this.request({
28
+ service: "Cards",
29
+ operation: "GetCard",
30
+ resourceType: "card",
31
+ isMutation: false,
32
+ resourceId: cardId,
33
+ }, () => this.client.GET("/card_tables/cards/{cardId}", {
34
+ params: {
35
+ path: { cardId },
36
+ },
37
+ }));
38
+ return response;
39
+ }
40
+ /**
41
+ * Update an existing card
42
+ * @param cardId - The card ID
43
+ * @param req - Card update parameters
44
+ * @returns The Card
45
+ * @throws {BasecampError} If the resource is not found or fields are invalid
46
+ *
47
+ * @example
48
+ * ```ts
49
+ * const result = await client.cards.update(123, { });
50
+ * ```
51
+ */
52
+ async update(cardId, req) {
53
+ if (req.dueOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.dueOn)) {
54
+ throw Errors.validation("Due on must be in YYYY-MM-DD format");
55
+ }
56
+ const response = await this.request({
57
+ service: "Cards",
58
+ operation: "UpdateCard",
59
+ resourceType: "card",
60
+ isMutation: true,
61
+ resourceId: cardId,
62
+ }, () => this.client.PUT("/card_tables/cards/{cardId}", {
63
+ params: {
64
+ path: { cardId },
65
+ },
66
+ body: {
67
+ title: req.title,
68
+ content: req.content,
69
+ due_on: req.dueOn,
70
+ assignee_ids: req.assigneeIds,
71
+ },
72
+ }));
73
+ return response;
74
+ }
75
+ /**
76
+ * Move a card to a different column
77
+ * @param cardId - The card ID
78
+ * @param req - Card request parameters
79
+ * @returns void
80
+ * @throws {BasecampError} If the request fails
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * await client.cards.move(123, { columnId: 1 });
85
+ * ```
86
+ */
87
+ async move(cardId, req) {
88
+ await this.request({
89
+ service: "Cards",
90
+ operation: "MoveCard",
91
+ resourceType: "card",
92
+ isMutation: true,
93
+ resourceId: cardId,
94
+ }, () => this.client.POST("/card_tables/cards/{cardId}/moves.json", {
95
+ params: {
96
+ path: { cardId },
97
+ },
98
+ body: {
99
+ column_id: req.columnId,
100
+ },
101
+ }));
102
+ }
103
+ /**
104
+ * List cards in a column
105
+ * @param columnId - The column ID
106
+ * @param options - Optional query parameters
107
+ * @returns All Card across all pages, with .meta.totalCount
108
+ *
109
+ * @example
110
+ * ```ts
111
+ * const result = await client.cards.list(123);
112
+ * ```
113
+ */
114
+ async list(columnId, options) {
115
+ return this.requestPaginated({
116
+ service: "Cards",
117
+ operation: "ListCards",
118
+ resourceType: "card",
119
+ isMutation: false,
120
+ resourceId: columnId,
121
+ }, () => this.client.GET("/card_tables/lists/{columnId}/cards.json", {
122
+ params: {
123
+ path: { columnId },
124
+ },
125
+ }), options);
126
+ }
127
+ /**
128
+ * Create a card in a column
129
+ * @param columnId - The column ID
130
+ * @param req - Card creation parameters
131
+ * @returns The Card
132
+ * @throws {BasecampError} If required fields are missing or invalid
133
+ *
134
+ * @example
135
+ * ```ts
136
+ * const result = await client.cards.create(123, { title: "example" });
137
+ * ```
138
+ */
139
+ async create(columnId, req) {
140
+ if (!req.title) {
141
+ throw Errors.validation("Title is required");
142
+ }
143
+ if (req.dueOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.dueOn)) {
144
+ throw Errors.validation("Due on must be in YYYY-MM-DD format");
145
+ }
146
+ const response = await this.request({
147
+ service: "Cards",
148
+ operation: "CreateCard",
149
+ resourceType: "card",
150
+ isMutation: true,
151
+ resourceId: columnId,
152
+ }, () => this.client.POST("/card_tables/lists/{columnId}/cards.json", {
153
+ params: {
154
+ path: { columnId },
155
+ },
156
+ body: {
157
+ title: req.title,
158
+ content: req.content,
159
+ due_on: req.dueOn,
160
+ notify: req.notify,
161
+ },
162
+ }));
163
+ return response;
164
+ }
165
+ }
166
+ //# sourceMappingURL=cards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cards.js","sourceRoot":"","sources":["../../../src/generated/services/cards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * Cards 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
+ import { Errors } from "../../errors.js";
12
+
13
+ // =============================================================================
14
+ // Types
15
+ // =============================================================================
16
+
17
+ /** Card entity from the Basecamp API. */
18
+ export type Card = components["schemas"]["Card"];
19
+
20
+ /**
21
+ * Request parameters for update.
22
+ */
23
+ export interface UpdateCardRequest {
24
+ /** Title */
25
+ title?: string;
26
+ /** Text content */
27
+ content?: string;
28
+ /** Due date (YYYY-MM-DD) */
29
+ dueOn?: string;
30
+ /** Person IDs to assign to */
31
+ assigneeIds?: number[];
32
+ }
33
+
34
+ /**
35
+ * Request parameters for move.
36
+ */
37
+ export interface MoveCardRequest {
38
+ /** Column id */
39
+ columnId: number;
40
+ }
41
+
42
+ /**
43
+ * Options for list.
44
+ */
45
+ export interface ListCardOptions extends PaginationOptions {
46
+ }
47
+
48
+ /**
49
+ * Request parameters for create.
50
+ */
51
+ export interface CreateCardRequest {
52
+ /** Title */
53
+ title: string;
54
+ /** Text content */
55
+ content?: string;
56
+ /** Due date (YYYY-MM-DD) */
57
+ dueOn?: string;
58
+ /** Whether to send notifications to relevant people */
59
+ notify?: boolean;
60
+ }
61
+
62
+
63
+ // =============================================================================
64
+ // Service
65
+ // =============================================================================
66
+
67
+ /**
68
+ * Service for Cards operations.
69
+ */
70
+ export class CardsService extends BaseService {
71
+
72
+ /**
73
+ * Get a card by ID
74
+ * @param cardId - The card ID
75
+ * @returns The Card
76
+ * @throws {BasecampError} If the resource is not found
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * const result = await client.cards.get(123);
81
+ * ```
82
+ */
83
+ async get(cardId: number): Promise<Card> {
84
+ const response = await this.request(
85
+ {
86
+ service: "Cards",
87
+ operation: "GetCard",
88
+ resourceType: "card",
89
+ isMutation: false,
90
+ resourceId: cardId,
91
+ },
92
+ () =>
93
+ this.client.GET("/card_tables/cards/{cardId}", {
94
+ params: {
95
+ path: { cardId },
96
+ },
97
+ })
98
+ );
99
+ return response;
100
+ }
101
+
102
+ /**
103
+ * Update an existing card
104
+ * @param cardId - The card ID
105
+ * @param req - Card update parameters
106
+ * @returns The Card
107
+ * @throws {BasecampError} If the resource is not found or fields are invalid
108
+ *
109
+ * @example
110
+ * ```ts
111
+ * const result = await client.cards.update(123, { });
112
+ * ```
113
+ */
114
+ async update(cardId: number, req: UpdateCardRequest): Promise<Card> {
115
+ if (req.dueOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.dueOn)) {
116
+ throw Errors.validation("Due on must be in YYYY-MM-DD format");
117
+ }
118
+ const response = await this.request(
119
+ {
120
+ service: "Cards",
121
+ operation: "UpdateCard",
122
+ resourceType: "card",
123
+ isMutation: true,
124
+ resourceId: cardId,
125
+ },
126
+ () =>
127
+ this.client.PUT("/card_tables/cards/{cardId}", {
128
+ params: {
129
+ path: { cardId },
130
+ },
131
+ body: {
132
+ title: req.title,
133
+ content: req.content,
134
+ due_on: req.dueOn,
135
+ assignee_ids: req.assigneeIds,
136
+ },
137
+ })
138
+ );
139
+ return response;
140
+ }
141
+
142
+ /**
143
+ * Move a card to a different column
144
+ * @param cardId - The card ID
145
+ * @param req - Card request parameters
146
+ * @returns void
147
+ * @throws {BasecampError} If the request fails
148
+ *
149
+ * @example
150
+ * ```ts
151
+ * await client.cards.move(123, { columnId: 1 });
152
+ * ```
153
+ */
154
+ async move(cardId: number, req: MoveCardRequest): Promise<void> {
155
+ await this.request(
156
+ {
157
+ service: "Cards",
158
+ operation: "MoveCard",
159
+ resourceType: "card",
160
+ isMutation: true,
161
+ resourceId: cardId,
162
+ },
163
+ () =>
164
+ this.client.POST("/card_tables/cards/{cardId}/moves.json", {
165
+ params: {
166
+ path: { cardId },
167
+ },
168
+ body: {
169
+ column_id: req.columnId,
170
+ },
171
+ })
172
+ );
173
+ }
174
+
175
+ /**
176
+ * List cards in a column
177
+ * @param columnId - The column ID
178
+ * @param options - Optional query parameters
179
+ * @returns All Card across all pages, with .meta.totalCount
180
+ *
181
+ * @example
182
+ * ```ts
183
+ * const result = await client.cards.list(123);
184
+ * ```
185
+ */
186
+ async list(columnId: number, options?: ListCardOptions): Promise<ListResult<Card>> {
187
+ return this.requestPaginated(
188
+ {
189
+ service: "Cards",
190
+ operation: "ListCards",
191
+ resourceType: "card",
192
+ isMutation: false,
193
+ resourceId: columnId,
194
+ },
195
+ () =>
196
+ this.client.GET("/card_tables/lists/{columnId}/cards.json", {
197
+ params: {
198
+ path: { columnId },
199
+ },
200
+ })
201
+ , options
202
+ );
203
+ }
204
+
205
+ /**
206
+ * Create a card in a column
207
+ * @param columnId - The column ID
208
+ * @param req - Card creation parameters
209
+ * @returns The Card
210
+ * @throws {BasecampError} If required fields are missing or invalid
211
+ *
212
+ * @example
213
+ * ```ts
214
+ * const result = await client.cards.create(123, { title: "example" });
215
+ * ```
216
+ */
217
+ async create(columnId: number, req: CreateCardRequest): Promise<Card> {
218
+ if (!req.title) {
219
+ throw Errors.validation("Title is required");
220
+ }
221
+ if (req.dueOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.dueOn)) {
222
+ throw Errors.validation("Due on must be in YYYY-MM-DD format");
223
+ }
224
+ const response = await this.request(
225
+ {
226
+ service: "Cards",
227
+ operation: "CreateCard",
228
+ resourceType: "card",
229
+ isMutation: true,
230
+ resourceId: columnId,
231
+ },
232
+ () =>
233
+ this.client.POST("/card_tables/lists/{columnId}/cards.json", {
234
+ params: {
235
+ path: { columnId },
236
+ },
237
+ body: {
238
+ title: req.title,
239
+ content: req.content,
240
+ due_on: req.dueOn,
241
+ notify: req.notify,
242
+ },
243
+ })
244
+ );
245
+ return response;
246
+ }
247
+ }