@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,278 @@
1
+ /**
2
+ * Checkins 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
+ /** Answer entity from the Basecamp API. */
11
+ export type Answer = components["schemas"]["QuestionAnswer"];
12
+ /** Questionnaire entity from the Basecamp API. */
13
+ export type Questionnaire = components["schemas"]["Questionnaire"];
14
+ /** Question entity from the Basecamp API. */
15
+ export type Question = components["schemas"]["Question"];
16
+ /** Person entity from the Basecamp API. */
17
+ export type Person = components["schemas"]["Person"];
18
+ /**
19
+ * Options for reminders.
20
+ */
21
+ export interface RemindersCheckinOptions extends PaginationOptions {
22
+ }
23
+ /**
24
+ * Request parameters for updateAnswer.
25
+ */
26
+ export interface UpdateAnswerCheckinRequest {
27
+ /** Text content */
28
+ content: string;
29
+ }
30
+ /**
31
+ * Options for listQuestions.
32
+ */
33
+ export interface ListQuestionsCheckinOptions extends PaginationOptions {
34
+ }
35
+ /**
36
+ * Request parameters for createQuestion.
37
+ */
38
+ export interface CreateQuestionCheckinRequest {
39
+ /** Title */
40
+ title: string;
41
+ /** Schedule */
42
+ schedule: components["schemas"]["QuestionSchedule"];
43
+ }
44
+ /**
45
+ * Request parameters for updateQuestion.
46
+ */
47
+ export interface UpdateQuestionCheckinRequest {
48
+ /** Title */
49
+ title?: string;
50
+ /** Schedule */
51
+ schedule?: components["schemas"]["QuestionSchedule"];
52
+ /** Paused */
53
+ paused?: boolean;
54
+ }
55
+ /**
56
+ * Options for listAnswers.
57
+ */
58
+ export interface ListAnswersCheckinOptions extends PaginationOptions {
59
+ }
60
+ /**
61
+ * Request parameters for createAnswer.
62
+ */
63
+ export interface CreateAnswerCheckinRequest {
64
+ /** Text content */
65
+ content: string;
66
+ /** Group on (YYYY-MM-DD) */
67
+ groupOn?: string;
68
+ }
69
+ /**
70
+ * Options for answerers.
71
+ */
72
+ export interface AnswerersCheckinOptions extends PaginationOptions {
73
+ }
74
+ /**
75
+ * Options for byPerson.
76
+ */
77
+ export interface ByPersonCheckinOptions extends PaginationOptions {
78
+ }
79
+ /**
80
+ * Request parameters for updateNotificationSettings.
81
+ */
82
+ export interface UpdateNotificationSettingsCheckinRequest {
83
+ /** Notify when someone answers */
84
+ notifyOnAnswer?: boolean;
85
+ /** Include unanswered in digest */
86
+ digestIncludeUnanswered?: boolean;
87
+ }
88
+ /**
89
+ * Service for Checkins operations.
90
+ */
91
+ export declare class CheckinsService extends BaseService {
92
+ /**
93
+ * Get pending check-in reminders for the current user
94
+ * @param options - Optional query parameters
95
+ * @returns All results across all pages, with .meta.totalCount
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * const result = await client.checkins.reminders();
100
+ * ```
101
+ */
102
+ reminders(options?: RemindersCheckinOptions): Promise<components["schemas"]["GetQuestionRemindersResponseContent"]>;
103
+ /**
104
+ * Get a single answer by id
105
+ * @param answerId - The answer ID
106
+ * @returns The Answer
107
+ * @throws {BasecampError} If the resource is not found
108
+ *
109
+ * @example
110
+ * ```ts
111
+ * const result = await client.checkins.getAnswer(123);
112
+ * ```
113
+ */
114
+ getAnswer(answerId: number): Promise<Answer>;
115
+ /**
116
+ * Update an existing answer
117
+ * @param answerId - The answer ID
118
+ * @param req - Answer update parameters
119
+ * @returns void
120
+ * @throws {BasecampError} If the resource is not found or fields are invalid
121
+ *
122
+ * @example
123
+ * ```ts
124
+ * await client.checkins.updateAnswer(123, { content: "Hello world" });
125
+ * ```
126
+ */
127
+ updateAnswer(answerId: number, req: UpdateAnswerCheckinRequest): Promise<void>;
128
+ /**
129
+ * Get a questionnaire (automatic check-ins container) by id
130
+ * @param questionnaireId - The questionnaire ID
131
+ * @returns The Questionnaire
132
+ * @throws {BasecampError} If the resource is not found
133
+ *
134
+ * @example
135
+ * ```ts
136
+ * const result = await client.checkins.getQuestionnaire(123);
137
+ * ```
138
+ */
139
+ getQuestionnaire(questionnaireId: number): Promise<Questionnaire>;
140
+ /**
141
+ * List all questions in a questionnaire
142
+ * @param questionnaireId - The questionnaire ID
143
+ * @param options - Optional query parameters
144
+ * @returns All Question across all pages, with .meta.totalCount
145
+ *
146
+ * @example
147
+ * ```ts
148
+ * const result = await client.checkins.listQuestions(123);
149
+ * ```
150
+ */
151
+ listQuestions(questionnaireId: number, options?: ListQuestionsCheckinOptions): Promise<ListResult<Question>>;
152
+ /**
153
+ * Create a new question in a questionnaire
154
+ * @param questionnaireId - The questionnaire ID
155
+ * @param req - Question creation parameters
156
+ * @returns The Question
157
+ * @throws {BasecampError} If required fields are missing or invalid
158
+ *
159
+ * @example
160
+ * ```ts
161
+ * const result = await client.checkins.createQuestion(123, { title: "example", schedule: "example" });
162
+ * ```
163
+ */
164
+ createQuestion(questionnaireId: number, req: CreateQuestionCheckinRequest): Promise<Question>;
165
+ /**
166
+ * Get a single question by id
167
+ * @param questionId - The question ID
168
+ * @returns The Question
169
+ * @throws {BasecampError} If the resource is not found
170
+ *
171
+ * @example
172
+ * ```ts
173
+ * const result = await client.checkins.getQuestion(123);
174
+ * ```
175
+ */
176
+ getQuestion(questionId: number): Promise<Question>;
177
+ /**
178
+ * Update an existing question
179
+ * @param questionId - The question ID
180
+ * @param req - Question update parameters
181
+ * @returns The Question
182
+ * @throws {BasecampError} If the resource is not found or fields are invalid
183
+ *
184
+ * @example
185
+ * ```ts
186
+ * const result = await client.checkins.updateQuestion(123, { });
187
+ * ```
188
+ */
189
+ updateQuestion(questionId: number, req: UpdateQuestionCheckinRequest): Promise<Question>;
190
+ /**
191
+ * List all answers for a question
192
+ * @param questionId - The question ID
193
+ * @param options - Optional query parameters
194
+ * @returns All Answer across all pages, with .meta.totalCount
195
+ *
196
+ * @example
197
+ * ```ts
198
+ * const result = await client.checkins.listAnswers(123);
199
+ * ```
200
+ */
201
+ listAnswers(questionId: number, options?: ListAnswersCheckinOptions): Promise<ListResult<Answer>>;
202
+ /**
203
+ * Create a new answer for a question
204
+ * @param questionId - The question ID
205
+ * @param req - Answer creation parameters
206
+ * @returns The Answer
207
+ * @throws {BasecampError} If required fields are missing or invalid
208
+ *
209
+ * @example
210
+ * ```ts
211
+ * const result = await client.checkins.createAnswer(123, { content: "Hello world" });
212
+ * ```
213
+ */
214
+ createAnswer(questionId: number, req: CreateAnswerCheckinRequest): Promise<Answer>;
215
+ /**
216
+ * List all people who have answered a question (answerers)
217
+ * @param questionId - The question ID
218
+ * @param options - Optional query parameters
219
+ * @returns All Person across all pages, with .meta.totalCount
220
+ *
221
+ * @example
222
+ * ```ts
223
+ * const result = await client.checkins.answerers(123);
224
+ * ```
225
+ */
226
+ answerers(questionId: number, options?: AnswerersCheckinOptions): Promise<ListResult<Person>>;
227
+ /**
228
+ * Get all answers from a specific person for a question
229
+ * @param questionId - The question ID
230
+ * @param personId - The person ID
231
+ * @param options - Optional query parameters
232
+ * @returns All Answer across all pages, with .meta.totalCount
233
+ *
234
+ * @example
235
+ * ```ts
236
+ * const result = await client.checkins.byPerson(123, 123);
237
+ * ```
238
+ */
239
+ byPerson(questionId: number, personId: number, options?: ByPersonCheckinOptions): Promise<ListResult<Answer>>;
240
+ /**
241
+ * Update notification settings for a check-in question
242
+ * @param questionId - The question ID
243
+ * @param req - Question_notification_setting update parameters
244
+ * @returns The question_notification_setting
245
+ * @throws {BasecampError} If the resource is not found or fields are invalid
246
+ *
247
+ * @example
248
+ * ```ts
249
+ * const result = await client.checkins.updateNotificationSettings(123, { });
250
+ * ```
251
+ */
252
+ updateNotificationSettings(questionId: number, req: UpdateNotificationSettingsCheckinRequest): Promise<components["schemas"]["UpdateQuestionNotificationSettingsResponseContent"]>;
253
+ /**
254
+ * Pause a check-in question (stops sending reminders)
255
+ * @param questionId - The question ID
256
+ * @returns The question
257
+ * @throws {BasecampError} If the request fails
258
+ *
259
+ * @example
260
+ * ```ts
261
+ * const result = await client.checkins.pause(123);
262
+ * ```
263
+ */
264
+ pause(questionId: number): Promise<components["schemas"]["PauseQuestionResponseContent"]>;
265
+ /**
266
+ * Resume a paused check-in question (resumes sending reminders)
267
+ * @param questionId - The question ID
268
+ * @returns The question
269
+ * @throws {BasecampError} If the request fails
270
+ *
271
+ * @example
272
+ * ```ts
273
+ * const result = await client.checkins.resume(123);
274
+ * ```
275
+ */
276
+ resume(questionId: number): Promise<components["schemas"]["ResumeQuestionResponseContent"]>;
277
+ }
278
+ //# sourceMappingURL=checkins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkins.d.ts","sourceRoot":"","sources":["../../../src/generated/services/checkins.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,420 @@
1
+ /**
2
+ * Checkins 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 Checkins operations.
13
+ */
14
+ export class CheckinsService extends BaseService {
15
+ /**
16
+ * Get pending check-in reminders for the current user
17
+ * @param options - Optional query parameters
18
+ * @returns All results across all pages, with .meta.totalCount
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const result = await client.checkins.reminders();
23
+ * ```
24
+ */
25
+ async reminders(options) {
26
+ return this.requestPaginated({
27
+ service: "Checkins",
28
+ operation: "GetQuestionReminders",
29
+ resourceType: "question_reminder",
30
+ isMutation: false,
31
+ }, () => this.client.GET("/my/question_reminders.json", {}), options);
32
+ }
33
+ /**
34
+ * Get a single answer by id
35
+ * @param answerId - The answer ID
36
+ * @returns The Answer
37
+ * @throws {BasecampError} If the resource is not found
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const result = await client.checkins.getAnswer(123);
42
+ * ```
43
+ */
44
+ async getAnswer(answerId) {
45
+ const response = await this.request({
46
+ service: "Checkins",
47
+ operation: "GetAnswer",
48
+ resourceType: "answer",
49
+ isMutation: false,
50
+ resourceId: answerId,
51
+ }, () => this.client.GET("/question_answers/{answerId}", {
52
+ params: {
53
+ path: { answerId },
54
+ },
55
+ }));
56
+ return response;
57
+ }
58
+ /**
59
+ * Update an existing answer
60
+ * @param answerId - The answer ID
61
+ * @param req - Answer update parameters
62
+ * @returns void
63
+ * @throws {BasecampError} If the resource is not found or fields are invalid
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * await client.checkins.updateAnswer(123, { content: "Hello world" });
68
+ * ```
69
+ */
70
+ async updateAnswer(answerId, req) {
71
+ if (!req.content) {
72
+ throw Errors.validation("Content is required");
73
+ }
74
+ await this.request({
75
+ service: "Checkins",
76
+ operation: "UpdateAnswer",
77
+ resourceType: "answer",
78
+ isMutation: true,
79
+ resourceId: answerId,
80
+ }, () => this.client.PUT("/question_answers/{answerId}", {
81
+ params: {
82
+ path: { answerId },
83
+ },
84
+ body: {
85
+ content: req.content,
86
+ },
87
+ }));
88
+ }
89
+ /**
90
+ * Get a questionnaire (automatic check-ins container) by id
91
+ * @param questionnaireId - The questionnaire ID
92
+ * @returns The Questionnaire
93
+ * @throws {BasecampError} If the resource is not found
94
+ *
95
+ * @example
96
+ * ```ts
97
+ * const result = await client.checkins.getQuestionnaire(123);
98
+ * ```
99
+ */
100
+ async getQuestionnaire(questionnaireId) {
101
+ const response = await this.request({
102
+ service: "Checkins",
103
+ operation: "GetQuestionnaire",
104
+ resourceType: "questionnaire",
105
+ isMutation: false,
106
+ resourceId: questionnaireId,
107
+ }, () => this.client.GET("/questionnaires/{questionnaireId}", {
108
+ params: {
109
+ path: { questionnaireId },
110
+ },
111
+ }));
112
+ return response;
113
+ }
114
+ /**
115
+ * List all questions in a questionnaire
116
+ * @param questionnaireId - The questionnaire ID
117
+ * @param options - Optional query parameters
118
+ * @returns All Question across all pages, with .meta.totalCount
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * const result = await client.checkins.listQuestions(123);
123
+ * ```
124
+ */
125
+ async listQuestions(questionnaireId, options) {
126
+ return this.requestPaginated({
127
+ service: "Checkins",
128
+ operation: "ListQuestions",
129
+ resourceType: "question",
130
+ isMutation: false,
131
+ resourceId: questionnaireId,
132
+ }, () => this.client.GET("/questionnaires/{questionnaireId}/questions.json", {
133
+ params: {
134
+ path: { questionnaireId },
135
+ },
136
+ }), options);
137
+ }
138
+ /**
139
+ * Create a new question in a questionnaire
140
+ * @param questionnaireId - The questionnaire ID
141
+ * @param req - Question creation parameters
142
+ * @returns The Question
143
+ * @throws {BasecampError} If required fields are missing or invalid
144
+ *
145
+ * @example
146
+ * ```ts
147
+ * const result = await client.checkins.createQuestion(123, { title: "example", schedule: "example" });
148
+ * ```
149
+ */
150
+ async createQuestion(questionnaireId, req) {
151
+ if (!req.title) {
152
+ throw Errors.validation("Title is required");
153
+ }
154
+ if (!req.schedule) {
155
+ throw Errors.validation("Schedule is required");
156
+ }
157
+ const response = await this.request({
158
+ service: "Checkins",
159
+ operation: "CreateQuestion",
160
+ resourceType: "question",
161
+ isMutation: true,
162
+ resourceId: questionnaireId,
163
+ }, () => this.client.POST("/questionnaires/{questionnaireId}/questions.json", {
164
+ params: {
165
+ path: { questionnaireId },
166
+ },
167
+ body: {
168
+ title: req.title,
169
+ schedule: req.schedule,
170
+ },
171
+ }));
172
+ return response;
173
+ }
174
+ /**
175
+ * Get a single question by id
176
+ * @param questionId - The question ID
177
+ * @returns The Question
178
+ * @throws {BasecampError} If the resource is not found
179
+ *
180
+ * @example
181
+ * ```ts
182
+ * const result = await client.checkins.getQuestion(123);
183
+ * ```
184
+ */
185
+ async getQuestion(questionId) {
186
+ const response = await this.request({
187
+ service: "Checkins",
188
+ operation: "GetQuestion",
189
+ resourceType: "question",
190
+ isMutation: false,
191
+ resourceId: questionId,
192
+ }, () => this.client.GET("/questions/{questionId}", {
193
+ params: {
194
+ path: { questionId },
195
+ },
196
+ }));
197
+ return response;
198
+ }
199
+ /**
200
+ * Update an existing question
201
+ * @param questionId - The question ID
202
+ * @param req - Question update parameters
203
+ * @returns The Question
204
+ * @throws {BasecampError} If the resource is not found or fields are invalid
205
+ *
206
+ * @example
207
+ * ```ts
208
+ * const result = await client.checkins.updateQuestion(123, { });
209
+ * ```
210
+ */
211
+ async updateQuestion(questionId, req) {
212
+ const response = await this.request({
213
+ service: "Checkins",
214
+ operation: "UpdateQuestion",
215
+ resourceType: "question",
216
+ isMutation: true,
217
+ resourceId: questionId,
218
+ }, () => this.client.PUT("/questions/{questionId}", {
219
+ params: {
220
+ path: { questionId },
221
+ },
222
+ body: {
223
+ title: req.title,
224
+ schedule: req.schedule,
225
+ paused: req.paused,
226
+ },
227
+ }));
228
+ return response;
229
+ }
230
+ /**
231
+ * List all answers for a question
232
+ * @param questionId - The question ID
233
+ * @param options - Optional query parameters
234
+ * @returns All Answer across all pages, with .meta.totalCount
235
+ *
236
+ * @example
237
+ * ```ts
238
+ * const result = await client.checkins.listAnswers(123);
239
+ * ```
240
+ */
241
+ async listAnswers(questionId, options) {
242
+ return this.requestPaginated({
243
+ service: "Checkins",
244
+ operation: "ListAnswers",
245
+ resourceType: "answer",
246
+ isMutation: false,
247
+ resourceId: questionId,
248
+ }, () => this.client.GET("/questions/{questionId}/answers.json", {
249
+ params: {
250
+ path: { questionId },
251
+ },
252
+ }), options);
253
+ }
254
+ /**
255
+ * Create a new answer for a question
256
+ * @param questionId - The question ID
257
+ * @param req - Answer creation parameters
258
+ * @returns The Answer
259
+ * @throws {BasecampError} If required fields are missing or invalid
260
+ *
261
+ * @example
262
+ * ```ts
263
+ * const result = await client.checkins.createAnswer(123, { content: "Hello world" });
264
+ * ```
265
+ */
266
+ async createAnswer(questionId, req) {
267
+ if (!req.content) {
268
+ throw Errors.validation("Content is required");
269
+ }
270
+ if (req.groupOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.groupOn)) {
271
+ throw Errors.validation("Group on must be in YYYY-MM-DD format");
272
+ }
273
+ const response = await this.request({
274
+ service: "Checkins",
275
+ operation: "CreateAnswer",
276
+ resourceType: "answer",
277
+ isMutation: true,
278
+ resourceId: questionId,
279
+ }, () => this.client.POST("/questions/{questionId}/answers.json", {
280
+ params: {
281
+ path: { questionId },
282
+ },
283
+ body: {
284
+ content: req.content,
285
+ group_on: req.groupOn,
286
+ },
287
+ }));
288
+ return response;
289
+ }
290
+ /**
291
+ * List all people who have answered a question (answerers)
292
+ * @param questionId - The question ID
293
+ * @param options - Optional query parameters
294
+ * @returns All Person across all pages, with .meta.totalCount
295
+ *
296
+ * @example
297
+ * ```ts
298
+ * const result = await client.checkins.answerers(123);
299
+ * ```
300
+ */
301
+ async answerers(questionId, options) {
302
+ return this.requestPaginated({
303
+ service: "Checkins",
304
+ operation: "ListQuestionAnswerers",
305
+ resourceType: "question_answerer",
306
+ isMutation: false,
307
+ resourceId: questionId,
308
+ }, () => this.client.GET("/questions/{questionId}/answers/by.json", {
309
+ params: {
310
+ path: { questionId },
311
+ },
312
+ }), options);
313
+ }
314
+ /**
315
+ * Get all answers from a specific person for a question
316
+ * @param questionId - The question ID
317
+ * @param personId - The person ID
318
+ * @param options - Optional query parameters
319
+ * @returns All Answer across all pages, with .meta.totalCount
320
+ *
321
+ * @example
322
+ * ```ts
323
+ * const result = await client.checkins.byPerson(123, 123);
324
+ * ```
325
+ */
326
+ async byPerson(questionId, personId, options) {
327
+ return this.requestPaginated({
328
+ service: "Checkins",
329
+ operation: "GetAnswersByPerson",
330
+ resourceType: "answers_by_person",
331
+ isMutation: false,
332
+ resourceId: questionId,
333
+ }, () => this.client.GET("/questions/{questionId}/answers/by/{personId}", {
334
+ params: {
335
+ path: { questionId, personId },
336
+ },
337
+ }), options);
338
+ }
339
+ /**
340
+ * Update notification settings for a check-in question
341
+ * @param questionId - The question ID
342
+ * @param req - Question_notification_setting update parameters
343
+ * @returns The question_notification_setting
344
+ * @throws {BasecampError} If the resource is not found or fields are invalid
345
+ *
346
+ * @example
347
+ * ```ts
348
+ * const result = await client.checkins.updateNotificationSettings(123, { });
349
+ * ```
350
+ */
351
+ async updateNotificationSettings(questionId, req) {
352
+ const response = await this.request({
353
+ service: "Checkins",
354
+ operation: "UpdateQuestionNotificationSettings",
355
+ resourceType: "question_notification_setting",
356
+ isMutation: true,
357
+ resourceId: questionId,
358
+ }, () => this.client.PUT("/questions/{questionId}/notification_settings.json", {
359
+ params: {
360
+ path: { questionId },
361
+ },
362
+ body: {
363
+ notify_on_answer: req.notifyOnAnswer,
364
+ digest_include_unanswered: req.digestIncludeUnanswered,
365
+ },
366
+ }));
367
+ return response;
368
+ }
369
+ /**
370
+ * Pause a check-in question (stops sending reminders)
371
+ * @param questionId - The question ID
372
+ * @returns The question
373
+ * @throws {BasecampError} If the request fails
374
+ *
375
+ * @example
376
+ * ```ts
377
+ * const result = await client.checkins.pause(123);
378
+ * ```
379
+ */
380
+ async pause(questionId) {
381
+ const response = await this.request({
382
+ service: "Checkins",
383
+ operation: "PauseQuestion",
384
+ resourceType: "question",
385
+ isMutation: true,
386
+ resourceId: questionId,
387
+ }, () => this.client.POST("/questions/{questionId}/pause.json", {
388
+ params: {
389
+ path: { questionId },
390
+ },
391
+ }));
392
+ return response;
393
+ }
394
+ /**
395
+ * Resume a paused check-in question (resumes sending reminders)
396
+ * @param questionId - The question ID
397
+ * @returns The question
398
+ * @throws {BasecampError} If the request fails
399
+ *
400
+ * @example
401
+ * ```ts
402
+ * const result = await client.checkins.resume(123);
403
+ * ```
404
+ */
405
+ async resume(questionId) {
406
+ const response = await this.request({
407
+ service: "Checkins",
408
+ operation: "ResumeQuestion",
409
+ resourceType: "question",
410
+ isMutation: true,
411
+ resourceId: questionId,
412
+ }, () => this.client.DELETE("/questions/{questionId}/pause.json", {
413
+ params: {
414
+ path: { questionId },
415
+ },
416
+ }));
417
+ return response;
418
+ }
419
+ }
420
+ //# sourceMappingURL=checkins.js.map