@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,197 @@
1
+ /**
2
+ * Tools 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 Tools operations.
13
+ */
14
+ export class ToolsService extends BaseService {
15
+ /**
16
+ * Clone an existing tool to create a new one
17
+ * @param req - Tool request parameters
18
+ * @returns The Tool
19
+ * @throws {BasecampError} If the request fails
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const result = await client.tools.clone({ sourceRecordingId: 1 });
24
+ * ```
25
+ */
26
+ async clone(req) {
27
+ const response = await this.request({
28
+ service: "Tools",
29
+ operation: "CloneTool",
30
+ resourceType: "tool",
31
+ isMutation: true,
32
+ }, () => this.client.POST("/dock/tools.json", {
33
+ body: {
34
+ source_recording_id: req.sourceRecordingId,
35
+ },
36
+ }));
37
+ return response;
38
+ }
39
+ /**
40
+ * Get a dock tool by id
41
+ * @param toolId - The tool ID
42
+ * @returns The Tool
43
+ * @throws {BasecampError} If the resource is not found
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * const result = await client.tools.get(123);
48
+ * ```
49
+ */
50
+ async get(toolId) {
51
+ const response = await this.request({
52
+ service: "Tools",
53
+ operation: "GetTool",
54
+ resourceType: "tool",
55
+ isMutation: false,
56
+ resourceId: toolId,
57
+ }, () => this.client.GET("/dock/tools/{toolId}", {
58
+ params: {
59
+ path: { toolId },
60
+ },
61
+ }));
62
+ return response;
63
+ }
64
+ /**
65
+ * Update (rename) an existing tool
66
+ * @param toolId - The tool ID
67
+ * @param req - Tool update parameters
68
+ * @returns The Tool
69
+ * @throws {BasecampError} If the resource is not found or fields are invalid
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * const result = await client.tools.update(123, { title: "example" });
74
+ * ```
75
+ */
76
+ async update(toolId, req) {
77
+ if (!req.title) {
78
+ throw Errors.validation("Title is required");
79
+ }
80
+ const response = await this.request({
81
+ service: "Tools",
82
+ operation: "UpdateTool",
83
+ resourceType: "tool",
84
+ isMutation: true,
85
+ resourceId: toolId,
86
+ }, () => this.client.PUT("/dock/tools/{toolId}", {
87
+ params: {
88
+ path: { toolId },
89
+ },
90
+ body: {
91
+ title: req.title,
92
+ },
93
+ }));
94
+ return response;
95
+ }
96
+ /**
97
+ * Delete a tool (trash it)
98
+ * @param toolId - The tool ID
99
+ * @returns void
100
+ * @throws {BasecampError} If the request fails
101
+ *
102
+ * @example
103
+ * ```ts
104
+ * await client.tools.delete(123);
105
+ * ```
106
+ */
107
+ async delete(toolId) {
108
+ await this.request({
109
+ service: "Tools",
110
+ operation: "DeleteTool",
111
+ resourceType: "tool",
112
+ isMutation: true,
113
+ resourceId: toolId,
114
+ }, () => this.client.DELETE("/dock/tools/{toolId}", {
115
+ params: {
116
+ path: { toolId },
117
+ },
118
+ }));
119
+ }
120
+ /**
121
+ * Enable a tool (show it on the project dock)
122
+ * @param toolId - The tool ID
123
+ * @returns void
124
+ * @throws {BasecampError} If the request fails
125
+ *
126
+ * @example
127
+ * ```ts
128
+ * await client.tools.enable(123);
129
+ * ```
130
+ */
131
+ async enable(toolId) {
132
+ await this.request({
133
+ service: "Tools",
134
+ operation: "EnableTool",
135
+ resourceType: "tool",
136
+ isMutation: true,
137
+ resourceId: toolId,
138
+ }, () => this.client.POST("/recordings/{toolId}/position.json", {
139
+ params: {
140
+ path: { toolId },
141
+ },
142
+ }));
143
+ }
144
+ /**
145
+ * Reposition a tool on the project dock
146
+ * @param toolId - The tool ID
147
+ * @param req - Tool request parameters
148
+ * @returns void
149
+ * @throws {BasecampError} If the request fails
150
+ *
151
+ * @example
152
+ * ```ts
153
+ * await client.tools.reposition(123, { position: 1 });
154
+ * ```
155
+ */
156
+ async reposition(toolId, req) {
157
+ await this.request({
158
+ service: "Tools",
159
+ operation: "RepositionTool",
160
+ resourceType: "tool",
161
+ isMutation: true,
162
+ resourceId: toolId,
163
+ }, () => this.client.PUT("/recordings/{toolId}/position.json", {
164
+ params: {
165
+ path: { toolId },
166
+ },
167
+ body: {
168
+ position: req.position,
169
+ },
170
+ }));
171
+ }
172
+ /**
173
+ * Disable a tool (hide it from the project dock)
174
+ * @param toolId - The tool ID
175
+ * @returns void
176
+ * @throws {BasecampError} If the request fails
177
+ *
178
+ * @example
179
+ * ```ts
180
+ * await client.tools.disable(123);
181
+ * ```
182
+ */
183
+ async disable(toolId) {
184
+ await this.request({
185
+ service: "Tools",
186
+ operation: "DisableTool",
187
+ resourceType: "tool",
188
+ isMutation: true,
189
+ resourceId: toolId,
190
+ }, () => this.client.DELETE("/recordings/{toolId}/position.json", {
191
+ params: {
192
+ path: { toolId },
193
+ },
194
+ }));
195
+ }
196
+ }
197
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/generated/services/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,267 @@
1
+ /**
2
+ * Tools service for the Basecamp API.
3
+ *
4
+ * @generated from OpenAPI spec - do not edit directly
5
+ */
6
+
7
+ import { BaseService } from "../../services/base.js";
8
+ import type { components } from "../schema.js";
9
+ import { Errors } from "../../errors.js";
10
+
11
+ // =============================================================================
12
+ // Types
13
+ // =============================================================================
14
+
15
+ /** Tool entity from the Basecamp API. */
16
+ export type Tool = components["schemas"]["Tool"];
17
+
18
+ /**
19
+ * Request parameters for clone.
20
+ */
21
+ export interface CloneToolRequest {
22
+ /** Source recording id */
23
+ sourceRecordingId: number;
24
+ }
25
+
26
+ /**
27
+ * Request parameters for update.
28
+ */
29
+ export interface UpdateToolRequest {
30
+ /** Title */
31
+ title: string;
32
+ }
33
+
34
+ /**
35
+ * Request parameters for reposition.
36
+ */
37
+ export interface RepositionToolRequest {
38
+ /** Position for ordering (1-based) */
39
+ position: number;
40
+ }
41
+
42
+
43
+ // =============================================================================
44
+ // Service
45
+ // =============================================================================
46
+
47
+ /**
48
+ * Service for Tools operations.
49
+ */
50
+ export class ToolsService extends BaseService {
51
+
52
+ /**
53
+ * Clone an existing tool to create a new one
54
+ * @param req - Tool request parameters
55
+ * @returns The Tool
56
+ * @throws {BasecampError} If the request fails
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * const result = await client.tools.clone({ sourceRecordingId: 1 });
61
+ * ```
62
+ */
63
+ async clone(req: CloneToolRequest): Promise<Tool> {
64
+ const response = await this.request(
65
+ {
66
+ service: "Tools",
67
+ operation: "CloneTool",
68
+ resourceType: "tool",
69
+ isMutation: true,
70
+ },
71
+ () =>
72
+ this.client.POST("/dock/tools.json", {
73
+ body: {
74
+ source_recording_id: req.sourceRecordingId,
75
+ },
76
+ })
77
+ );
78
+ return response;
79
+ }
80
+
81
+ /**
82
+ * Get a dock tool by id
83
+ * @param toolId - The tool ID
84
+ * @returns The Tool
85
+ * @throws {BasecampError} If the resource is not found
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * const result = await client.tools.get(123);
90
+ * ```
91
+ */
92
+ async get(toolId: number): Promise<Tool> {
93
+ const response = await this.request(
94
+ {
95
+ service: "Tools",
96
+ operation: "GetTool",
97
+ resourceType: "tool",
98
+ isMutation: false,
99
+ resourceId: toolId,
100
+ },
101
+ () =>
102
+ this.client.GET("/dock/tools/{toolId}", {
103
+ params: {
104
+ path: { toolId },
105
+ },
106
+ })
107
+ );
108
+ return response;
109
+ }
110
+
111
+ /**
112
+ * Update (rename) an existing tool
113
+ * @param toolId - The tool ID
114
+ * @param req - Tool update parameters
115
+ * @returns The Tool
116
+ * @throws {BasecampError} If the resource is not found or fields are invalid
117
+ *
118
+ * @example
119
+ * ```ts
120
+ * const result = await client.tools.update(123, { title: "example" });
121
+ * ```
122
+ */
123
+ async update(toolId: number, req: UpdateToolRequest): Promise<Tool> {
124
+ if (!req.title) {
125
+ throw Errors.validation("Title is required");
126
+ }
127
+ const response = await this.request(
128
+ {
129
+ service: "Tools",
130
+ operation: "UpdateTool",
131
+ resourceType: "tool",
132
+ isMutation: true,
133
+ resourceId: toolId,
134
+ },
135
+ () =>
136
+ this.client.PUT("/dock/tools/{toolId}", {
137
+ params: {
138
+ path: { toolId },
139
+ },
140
+ body: {
141
+ title: req.title,
142
+ },
143
+ })
144
+ );
145
+ return response;
146
+ }
147
+
148
+ /**
149
+ * Delete a tool (trash it)
150
+ * @param toolId - The tool ID
151
+ * @returns void
152
+ * @throws {BasecampError} If the request fails
153
+ *
154
+ * @example
155
+ * ```ts
156
+ * await client.tools.delete(123);
157
+ * ```
158
+ */
159
+ async delete(toolId: number): Promise<void> {
160
+ await this.request(
161
+ {
162
+ service: "Tools",
163
+ operation: "DeleteTool",
164
+ resourceType: "tool",
165
+ isMutation: true,
166
+ resourceId: toolId,
167
+ },
168
+ () =>
169
+ this.client.DELETE("/dock/tools/{toolId}", {
170
+ params: {
171
+ path: { toolId },
172
+ },
173
+ })
174
+ );
175
+ }
176
+
177
+ /**
178
+ * Enable a tool (show it on the project dock)
179
+ * @param toolId - The tool ID
180
+ * @returns void
181
+ * @throws {BasecampError} If the request fails
182
+ *
183
+ * @example
184
+ * ```ts
185
+ * await client.tools.enable(123);
186
+ * ```
187
+ */
188
+ async enable(toolId: number): Promise<void> {
189
+ await this.request(
190
+ {
191
+ service: "Tools",
192
+ operation: "EnableTool",
193
+ resourceType: "tool",
194
+ isMutation: true,
195
+ resourceId: toolId,
196
+ },
197
+ () =>
198
+ this.client.POST("/recordings/{toolId}/position.json", {
199
+ params: {
200
+ path: { toolId },
201
+ },
202
+ })
203
+ );
204
+ }
205
+
206
+ /**
207
+ * Reposition a tool on the project dock
208
+ * @param toolId - The tool ID
209
+ * @param req - Tool request parameters
210
+ * @returns void
211
+ * @throws {BasecampError} If the request fails
212
+ *
213
+ * @example
214
+ * ```ts
215
+ * await client.tools.reposition(123, { position: 1 });
216
+ * ```
217
+ */
218
+ async reposition(toolId: number, req: RepositionToolRequest): Promise<void> {
219
+ await this.request(
220
+ {
221
+ service: "Tools",
222
+ operation: "RepositionTool",
223
+ resourceType: "tool",
224
+ isMutation: true,
225
+ resourceId: toolId,
226
+ },
227
+ () =>
228
+ this.client.PUT("/recordings/{toolId}/position.json", {
229
+ params: {
230
+ path: { toolId },
231
+ },
232
+ body: {
233
+ position: req.position,
234
+ },
235
+ })
236
+ );
237
+ }
238
+
239
+ /**
240
+ * Disable a tool (hide it from the project dock)
241
+ * @param toolId - The tool ID
242
+ * @returns void
243
+ * @throws {BasecampError} If the request fails
244
+ *
245
+ * @example
246
+ * ```ts
247
+ * await client.tools.disable(123);
248
+ * ```
249
+ */
250
+ async disable(toolId: number): Promise<void> {
251
+ await this.request(
252
+ {
253
+ service: "Tools",
254
+ operation: "DisableTool",
255
+ resourceType: "tool",
256
+ isMutation: true,
257
+ resourceId: toolId,
258
+ },
259
+ () =>
260
+ this.client.DELETE("/recordings/{toolId}/position.json", {
261
+ params: {
262
+ path: { toolId },
263
+ },
264
+ })
265
+ );
266
+ }
267
+ }
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Uploads 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
+ /** Upload entity from the Basecamp API. */
11
+ export type Upload = components["schemas"]["Upload"];
12
+ /**
13
+ * Request parameters for update.
14
+ */
15
+ export interface UpdateUploadRequest {
16
+ /** Rich text description (HTML) */
17
+ description?: string;
18
+ /** Base name */
19
+ baseName?: string;
20
+ }
21
+ /**
22
+ * Options for listVersions.
23
+ */
24
+ export interface ListVersionsUploadOptions extends PaginationOptions {
25
+ }
26
+ /**
27
+ * Options for list.
28
+ */
29
+ export interface ListUploadOptions extends PaginationOptions {
30
+ }
31
+ /**
32
+ * Request parameters for create.
33
+ */
34
+ export interface CreateUploadRequest {
35
+ /** Attachable sgid */
36
+ attachableSgid: string;
37
+ /** Rich text description (HTML) */
38
+ description?: string;
39
+ /** Base name */
40
+ baseName?: string;
41
+ }
42
+ /**
43
+ * Service for Uploads operations.
44
+ */
45
+ export declare class UploadsService extends BaseService {
46
+ /**
47
+ * Get a single upload by id
48
+ * @param uploadId - The upload ID
49
+ * @returns The Upload
50
+ * @throws {BasecampError} If the resource is not found
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * const result = await client.uploads.get(123);
55
+ * ```
56
+ */
57
+ get(uploadId: number): Promise<Upload>;
58
+ /**
59
+ * Update an existing upload
60
+ * @param uploadId - The upload ID
61
+ * @param req - Upload update parameters
62
+ * @returns The Upload
63
+ * @throws {BasecampError} If the resource is not found or fields are invalid
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * const result = await client.uploads.update(123, { });
68
+ * ```
69
+ */
70
+ update(uploadId: number, req: UpdateUploadRequest): Promise<Upload>;
71
+ /**
72
+ * List versions of an upload
73
+ * @param uploadId - The upload ID
74
+ * @param options - Optional query parameters
75
+ * @returns All Upload across all pages, with .meta.totalCount
76
+ *
77
+ * @example
78
+ * ```ts
79
+ * const result = await client.uploads.listVersions(123);
80
+ * ```
81
+ */
82
+ listVersions(uploadId: number, options?: ListVersionsUploadOptions): Promise<ListResult<Upload>>;
83
+ /**
84
+ * List uploads in a vault
85
+ * @param vaultId - The vault ID
86
+ * @param options - Optional query parameters
87
+ * @returns All Upload across all pages, with .meta.totalCount
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * const result = await client.uploads.list(123);
92
+ * ```
93
+ */
94
+ list(vaultId: number, options?: ListUploadOptions): Promise<ListResult<Upload>>;
95
+ /**
96
+ * Create a new upload in a vault
97
+ * @param vaultId - The vault ID
98
+ * @param req - Upload creation parameters
99
+ * @returns The Upload
100
+ * @throws {BasecampError} If required fields are missing or invalid
101
+ *
102
+ * @example
103
+ * ```ts
104
+ * const result = await client.uploads.create(123, { attachableSgid: "example" });
105
+ * ```
106
+ */
107
+ create(vaultId: number, req: CreateUploadRequest): Promise<Upload>;
108
+ }
109
+ //# sourceMappingURL=uploads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["../../../src/generated/services/uploads.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,2CAA2C;AAC3C,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAOD;;GAEG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAE7C;;;;;;;;;;OAUG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB5C;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBzE;;;;;;;;;;OAUG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAmBtG;;;;;;;;;;OAUG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAmBrF;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;CA0BzE"}