@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,210 @@
1
+ /**
2
+ * MessageTypes 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
+ /** MessageType entity from the Basecamp API. */
18
+ export type MessageType = components["schemas"]["MessageType"];
19
+
20
+ /**
21
+ * Options for list.
22
+ */
23
+ export interface ListMessageTypeOptions extends PaginationOptions {
24
+ }
25
+
26
+ /**
27
+ * Request parameters for create.
28
+ */
29
+ export interface CreateMessageTypeRequest {
30
+ /** Display name */
31
+ name: string;
32
+ /** Icon identifier */
33
+ icon: string;
34
+ }
35
+
36
+ /**
37
+ * Request parameters for update.
38
+ */
39
+ export interface UpdateMessageTypeRequest {
40
+ /** Display name */
41
+ name?: string;
42
+ /** Icon identifier */
43
+ icon?: string;
44
+ }
45
+
46
+
47
+ // =============================================================================
48
+ // Service
49
+ // =============================================================================
50
+
51
+ /**
52
+ * Service for MessageTypes operations.
53
+ */
54
+ export class MessageTypesService extends BaseService {
55
+
56
+ /**
57
+ * List message types in a project
58
+ * @param options - Optional query parameters
59
+ * @returns All MessageType across all pages, with .meta.totalCount
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * const result = await client.messageTypes.list();
64
+ * ```
65
+ */
66
+ async list(options?: ListMessageTypeOptions): Promise<ListResult<MessageType>> {
67
+ return this.requestPaginated(
68
+ {
69
+ service: "MessageTypes",
70
+ operation: "ListMessageTypes",
71
+ resourceType: "message_type",
72
+ isMutation: false,
73
+ },
74
+ () =>
75
+ this.client.GET("/categories.json", {
76
+ })
77
+ , options
78
+ );
79
+ }
80
+
81
+ /**
82
+ * Create a new message type in a project
83
+ * @param req - Message_type creation parameters
84
+ * @returns The MessageType
85
+ * @throws {BasecampError} If required fields are missing or invalid
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * const result = await client.messageTypes.create({ name: "My example", icon: "example" });
90
+ * ```
91
+ */
92
+ async create(req: CreateMessageTypeRequest): Promise<MessageType> {
93
+ if (!req.name) {
94
+ throw Errors.validation("Name is required");
95
+ }
96
+ if (!req.icon) {
97
+ throw Errors.validation("Icon is required");
98
+ }
99
+ const response = await this.request(
100
+ {
101
+ service: "MessageTypes",
102
+ operation: "CreateMessageType",
103
+ resourceType: "message_type",
104
+ isMutation: true,
105
+ },
106
+ () =>
107
+ this.client.POST("/categories.json", {
108
+ body: {
109
+ name: req.name,
110
+ icon: req.icon,
111
+ },
112
+ })
113
+ );
114
+ return response;
115
+ }
116
+
117
+ /**
118
+ * Get a single message type by id
119
+ * @param typeId - The type ID
120
+ * @returns The MessageType
121
+ * @throws {BasecampError} If the resource is not found
122
+ *
123
+ * @example
124
+ * ```ts
125
+ * const result = await client.messageTypes.get(123);
126
+ * ```
127
+ */
128
+ async get(typeId: number): Promise<MessageType> {
129
+ const response = await this.request(
130
+ {
131
+ service: "MessageTypes",
132
+ operation: "GetMessageType",
133
+ resourceType: "message_type",
134
+ isMutation: false,
135
+ resourceId: typeId,
136
+ },
137
+ () =>
138
+ this.client.GET("/categories/{typeId}", {
139
+ params: {
140
+ path: { typeId },
141
+ },
142
+ })
143
+ );
144
+ return response;
145
+ }
146
+
147
+ /**
148
+ * Update an existing message type
149
+ * @param typeId - The type ID
150
+ * @param req - Message_type update parameters
151
+ * @returns The MessageType
152
+ * @throws {BasecampError} If the resource is not found or fields are invalid
153
+ *
154
+ * @example
155
+ * ```ts
156
+ * const result = await client.messageTypes.update(123, { });
157
+ * ```
158
+ */
159
+ async update(typeId: number, req: UpdateMessageTypeRequest): Promise<MessageType> {
160
+ const response = await this.request(
161
+ {
162
+ service: "MessageTypes",
163
+ operation: "UpdateMessageType",
164
+ resourceType: "message_type",
165
+ isMutation: true,
166
+ resourceId: typeId,
167
+ },
168
+ () =>
169
+ this.client.PUT("/categories/{typeId}", {
170
+ params: {
171
+ path: { typeId },
172
+ },
173
+ body: {
174
+ name: req.name,
175
+ icon: req.icon,
176
+ },
177
+ })
178
+ );
179
+ return response;
180
+ }
181
+
182
+ /**
183
+ * Delete a message type
184
+ * @param typeId - The type ID
185
+ * @returns void
186
+ * @throws {BasecampError} If the request fails
187
+ *
188
+ * @example
189
+ * ```ts
190
+ * await client.messageTypes.delete(123);
191
+ * ```
192
+ */
193
+ async delete(typeId: number): Promise<void> {
194
+ await this.request(
195
+ {
196
+ service: "MessageTypes",
197
+ operation: "DeleteMessageType",
198
+ resourceType: "message_type",
199
+ isMutation: true,
200
+ resourceId: typeId,
201
+ },
202
+ () =>
203
+ this.client.DELETE("/categories/{typeId}", {
204
+ params: {
205
+ path: { typeId },
206
+ },
207
+ })
208
+ );
209
+ }
210
+ }
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Messages 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
+ /** Message entity from the Basecamp API. */
11
+ export type Message = components["schemas"]["Message"];
12
+ /**
13
+ * Options for list.
14
+ */
15
+ export interface ListMessageOptions extends PaginationOptions {
16
+ }
17
+ /**
18
+ * Request parameters for create.
19
+ */
20
+ export interface CreateMessageRequest {
21
+ /** Subject line */
22
+ subject: string;
23
+ /** Text content */
24
+ content?: string;
25
+ /** Status */
26
+ status?: "active" | "drafted";
27
+ /** Category id */
28
+ categoryId?: number;
29
+ }
30
+ /**
31
+ * Request parameters for update.
32
+ */
33
+ export interface UpdateMessageRequest {
34
+ /** Subject line */
35
+ subject?: string;
36
+ /** Text content */
37
+ content?: string;
38
+ /** Status */
39
+ status?: "active" | "drafted";
40
+ /** Category id */
41
+ categoryId?: number;
42
+ }
43
+ /**
44
+ * Service for Messages operations.
45
+ */
46
+ export declare class MessagesService extends BaseService {
47
+ /**
48
+ * List messages on a message board
49
+ * @param boardId - The board ID
50
+ * @param options - Optional query parameters
51
+ * @returns All Message across all pages, with .meta.totalCount
52
+ *
53
+ * @example
54
+ * ```ts
55
+ * const result = await client.messages.list(123);
56
+ * ```
57
+ */
58
+ list(boardId: number, options?: ListMessageOptions): Promise<ListResult<Message>>;
59
+ /**
60
+ * Create a new message on a message board
61
+ * @param boardId - The board ID
62
+ * @param req - Message creation parameters
63
+ * @returns The Message
64
+ * @throws {BasecampError} If required fields are missing or invalid
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * const result = await client.messages.create(123, { subject: "example" });
69
+ * ```
70
+ */
71
+ create(boardId: number, req: CreateMessageRequest): Promise<Message>;
72
+ /**
73
+ * Get a single message by id
74
+ * @param messageId - The message ID
75
+ * @returns The Message
76
+ * @throws {BasecampError} If the resource is not found
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * const result = await client.messages.get(123);
81
+ * ```
82
+ */
83
+ get(messageId: number): Promise<Message>;
84
+ /**
85
+ * Update an existing message
86
+ * @param messageId - The message ID
87
+ * @param req - Message update parameters
88
+ * @returns The Message
89
+ * @throws {BasecampError} If the resource is not found or fields are invalid
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * const result = await client.messages.update(123, { });
94
+ * ```
95
+ */
96
+ update(messageId: number, req: UpdateMessageRequest): Promise<Message>;
97
+ /**
98
+ * Pin a message to the top of the message board
99
+ * @param messageId - The message ID
100
+ * @returns void
101
+ * @throws {BasecampError} If the request fails
102
+ *
103
+ * @example
104
+ * ```ts
105
+ * await client.messages.pin(123);
106
+ * ```
107
+ */
108
+ pin(messageId: number): Promise<void>;
109
+ /**
110
+ * Unpin a message from the message board
111
+ * @param messageId - The message ID
112
+ * @returns void
113
+ * @throws {BasecampError} If the request fails
114
+ *
115
+ * @example
116
+ * ```ts
117
+ * await client.messages.unpin(123);
118
+ * ```
119
+ */
120
+ unpin(messageId: number): Promise<void>;
121
+ }
122
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/generated/services/messages.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,4CAA4C;AAC5C,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAE9C;;;;;;;;;;OAUG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAmBvF;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B1E;;;;;;;;;;OAUG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB9C;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB5E;;;;;;;;;;OAUG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3C;;;;;;;;;;OAUG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB9C"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Messages 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 Messages operations.
13
+ */
14
+ export class MessagesService extends BaseService {
15
+ /**
16
+ * List messages on a message board
17
+ * @param boardId - The board ID
18
+ * @param options - Optional query parameters
19
+ * @returns All Message across all pages, with .meta.totalCount
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const result = await client.messages.list(123);
24
+ * ```
25
+ */
26
+ async list(boardId, options) {
27
+ return this.requestPaginated({
28
+ service: "Messages",
29
+ operation: "ListMessages",
30
+ resourceType: "message",
31
+ isMutation: false,
32
+ resourceId: boardId,
33
+ }, () => this.client.GET("/message_boards/{boardId}/messages.json", {
34
+ params: {
35
+ path: { boardId },
36
+ },
37
+ }), options);
38
+ }
39
+ /**
40
+ * Create a new message on a message board
41
+ * @param boardId - The board ID
42
+ * @param req - Message creation parameters
43
+ * @returns The Message
44
+ * @throws {BasecampError} If required fields are missing or invalid
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * const result = await client.messages.create(123, { subject: "example" });
49
+ * ```
50
+ */
51
+ async create(boardId, req) {
52
+ if (!req.subject) {
53
+ throw Errors.validation("Subject is required");
54
+ }
55
+ const response = await this.request({
56
+ service: "Messages",
57
+ operation: "CreateMessage",
58
+ resourceType: "message",
59
+ isMutation: true,
60
+ resourceId: boardId,
61
+ }, () => this.client.POST("/message_boards/{boardId}/messages.json", {
62
+ params: {
63
+ path: { boardId },
64
+ },
65
+ body: {
66
+ subject: req.subject,
67
+ content: req.content,
68
+ status: req.status,
69
+ category_id: req.categoryId,
70
+ },
71
+ }));
72
+ return response;
73
+ }
74
+ /**
75
+ * Get a single message by id
76
+ * @param messageId - The message ID
77
+ * @returns The Message
78
+ * @throws {BasecampError} If the resource is not found
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * const result = await client.messages.get(123);
83
+ * ```
84
+ */
85
+ async get(messageId) {
86
+ const response = await this.request({
87
+ service: "Messages",
88
+ operation: "GetMessage",
89
+ resourceType: "message",
90
+ isMutation: false,
91
+ resourceId: messageId,
92
+ }, () => this.client.GET("/messages/{messageId}", {
93
+ params: {
94
+ path: { messageId },
95
+ },
96
+ }));
97
+ return response;
98
+ }
99
+ /**
100
+ * Update an existing message
101
+ * @param messageId - The message ID
102
+ * @param req - Message update parameters
103
+ * @returns The Message
104
+ * @throws {BasecampError} If the resource is not found or fields are invalid
105
+ *
106
+ * @example
107
+ * ```ts
108
+ * const result = await client.messages.update(123, { });
109
+ * ```
110
+ */
111
+ async update(messageId, req) {
112
+ const response = await this.request({
113
+ service: "Messages",
114
+ operation: "UpdateMessage",
115
+ resourceType: "message",
116
+ isMutation: true,
117
+ resourceId: messageId,
118
+ }, () => this.client.PUT("/messages/{messageId}", {
119
+ params: {
120
+ path: { messageId },
121
+ },
122
+ body: {
123
+ subject: req.subject,
124
+ content: req.content,
125
+ status: req.status,
126
+ category_id: req.categoryId,
127
+ },
128
+ }));
129
+ return response;
130
+ }
131
+ /**
132
+ * Pin a message to the top of the message board
133
+ * @param messageId - The message ID
134
+ * @returns void
135
+ * @throws {BasecampError} If the request fails
136
+ *
137
+ * @example
138
+ * ```ts
139
+ * await client.messages.pin(123);
140
+ * ```
141
+ */
142
+ async pin(messageId) {
143
+ await this.request({
144
+ service: "Messages",
145
+ operation: "PinMessage",
146
+ resourceType: "message",
147
+ isMutation: true,
148
+ resourceId: messageId,
149
+ }, () => this.client.POST("/recordings/{messageId}/pin.json", {
150
+ params: {
151
+ path: { messageId },
152
+ },
153
+ }));
154
+ }
155
+ /**
156
+ * Unpin a message from the message board
157
+ * @param messageId - The message ID
158
+ * @returns void
159
+ * @throws {BasecampError} If the request fails
160
+ *
161
+ * @example
162
+ * ```ts
163
+ * await client.messages.unpin(123);
164
+ * ```
165
+ */
166
+ async unpin(messageId) {
167
+ await this.request({
168
+ service: "Messages",
169
+ operation: "UnpinMessage",
170
+ resourceType: "message",
171
+ isMutation: true,
172
+ resourceId: messageId,
173
+ }, () => this.client.DELETE("/recordings/{messageId}/pin.json", {
174
+ params: {
175
+ path: { messageId },
176
+ },
177
+ }));
178
+ }
179
+ }
180
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/generated/services/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIrD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AA4CzC,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAE9C;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,OAA4B;QACtD,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,cAAc;YACzB,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,OAAO;SACpB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yCAAyC,EAAE;YACzD,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,OAAO,EAAE;aAClB;SACF,CAAC,EACF,OAAO,CACV,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,GAAyB;QACrD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,eAAe;YAC1B,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,OAAO;SACpB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE;YAC1D,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,OAAO,EAAE;aAClB;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,WAAW,EAAE,GAAG,CAAC,UAAU;aAC5B;SACF,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,GAAG,CAAC,SAAiB;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,YAAY;YACvB,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,SAAS;SACtB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE;YACvC,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,SAAS,EAAE;aACpB;SACF,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,GAAyB;QACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,eAAe;YAC1B,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,SAAS;SACtB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE;YACvC,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,SAAS,EAAE;aACpB;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,WAAW,EAAE,GAAG,CAAC,UAAU;aAC5B;SACF,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,GAAG,CAAC,SAAiB;QACzB,MAAM,IAAI,CAAC,OAAO,CAChB;YACE,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,YAAY;YACvB,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,SAAS;SACtB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;YACnD,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,SAAS,EAAE;aACpB;SACF,CAAC,CACL,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,CAAC,SAAiB;QAC3B,MAAM,IAAI,CAAC,OAAO,CAChB;YACE,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,cAAc;YACzB,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,SAAS;SACtB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kCAAkC,EAAE;YACrD,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,SAAS,EAAE;aACpB;SACF,CAAC,CACL,CAAC;IACJ,CAAC;CACF"}