@37signals/basecamp 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/README.md +112 -16
  2. package/dist/.build-complete +0 -0
  3. package/dist/client.d.ts +53 -11
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +132 -150
  6. package/dist/client.js.map +1 -1
  7. package/dist/download.d.ts +7 -0
  8. package/dist/download.d.ts.map +1 -1
  9. package/dist/download.js +82 -22
  10. package/dist/download.js.map +1 -1
  11. package/dist/errors.d.ts +18 -0
  12. package/dist/errors.d.ts.map +1 -1
  13. package/dist/errors.js +127 -14
  14. package/dist/errors.js.map +1 -1
  15. package/dist/generated/metadata.d.ts.map +1 -1
  16. package/dist/generated/metadata.js +280 -141
  17. package/dist/generated/metadata.js.map +1 -1
  18. package/dist/generated/metadata.ts +280 -141
  19. package/dist/generated/openapi-stripped.json +6435 -4283
  20. package/dist/generated/path-mapping.d.ts.map +1 -1
  21. package/dist/generated/path-mapping.js +27 -16
  22. package/dist/generated/path-mapping.js.map +1 -1
  23. package/dist/generated/path-mapping.ts +27 -16
  24. package/dist/generated/schema.d.ts +4283 -2457
  25. package/dist/generated/services/bookmarks.d.ts +1 -1
  26. package/dist/generated/services/bookmarks.d.ts.map +1 -1
  27. package/dist/generated/services/bookmarks.ts +1 -1
  28. package/dist/generated/services/boosts.d.ts +10 -0
  29. package/dist/generated/services/boosts.d.ts.map +1 -1
  30. package/dist/generated/services/boosts.js +8 -0
  31. package/dist/generated/services/boosts.js.map +1 -1
  32. package/dist/generated/services/boosts.ts +12 -0
  33. package/dist/generated/services/campfires.d.ts +54 -40
  34. package/dist/generated/services/campfires.d.ts.map +1 -1
  35. package/dist/generated/services/campfires.js +82 -65
  36. package/dist/generated/services/campfires.js.map +1 -1
  37. package/dist/generated/services/campfires.ts +107 -85
  38. package/dist/generated/services/cards.d.ts +5 -0
  39. package/dist/generated/services/cards.d.ts.map +1 -1
  40. package/dist/generated/services/cards.js +4 -0
  41. package/dist/generated/services/cards.js.map +1 -1
  42. package/dist/generated/services/cards.ts +6 -0
  43. package/dist/generated/services/checkins.d.ts +14 -0
  44. package/dist/generated/services/checkins.d.ts.map +1 -1
  45. package/dist/generated/services/checkins.js +14 -1
  46. package/dist/generated/services/checkins.js.map +1 -1
  47. package/dist/generated/services/checkins.ts +20 -0
  48. package/dist/generated/services/client-approvals.d.ts +6 -3
  49. package/dist/generated/services/client-approvals.d.ts.map +1 -1
  50. package/dist/generated/services/client-approvals.js +8 -5
  51. package/dist/generated/services/client-approvals.js.map +1 -1
  52. package/dist/generated/services/client-approvals.ts +10 -5
  53. package/dist/generated/services/client-correspondences.d.ts +6 -3
  54. package/dist/generated/services/client-correspondences.d.ts.map +1 -1
  55. package/dist/generated/services/client-correspondences.js +8 -5
  56. package/dist/generated/services/client-correspondences.js.map +1 -1
  57. package/dist/generated/services/client-correspondences.ts +10 -5
  58. package/dist/generated/services/client-replies.d.ts +11 -4
  59. package/dist/generated/services/client-replies.d.ts.map +1 -1
  60. package/dist/generated/services/client-replies.js +16 -8
  61. package/dist/generated/services/client-replies.js.map +1 -1
  62. package/dist/generated/services/client-replies.ts +18 -8
  63. package/dist/generated/services/cloud-files.d.ts +92 -0
  64. package/dist/generated/services/cloud-files.d.ts.map +1 -0
  65. package/dist/generated/services/cloud-files.js +121 -0
  66. package/dist/generated/services/cloud-files.js.map +1 -0
  67. package/dist/generated/services/cloud-files.ts +188 -0
  68. package/dist/generated/services/comments.d.ts +5 -0
  69. package/dist/generated/services/comments.d.ts.map +1 -1
  70. package/dist/generated/services/comments.js +4 -0
  71. package/dist/generated/services/comments.js.map +1 -1
  72. package/dist/generated/services/comments.ts +6 -0
  73. package/dist/generated/services/documents.d.ts +12 -7
  74. package/dist/generated/services/documents.d.ts.map +1 -1
  75. package/dist/generated/services/documents.js +10 -6
  76. package/dist/generated/services/documents.js.map +1 -1
  77. package/dist/generated/services/documents.ts +14 -8
  78. package/dist/generated/services/drafts.d.ts +1 -1
  79. package/dist/generated/services/drafts.d.ts.map +1 -1
  80. package/dist/generated/services/drafts.ts +1 -1
  81. package/dist/generated/services/events.d.ts +5 -0
  82. package/dist/generated/services/events.d.ts.map +1 -1
  83. package/dist/generated/services/events.js +4 -0
  84. package/dist/generated/services/events.js.map +1 -1
  85. package/dist/generated/services/events.ts +6 -0
  86. package/dist/generated/services/everything.d.ts +14 -14
  87. package/dist/generated/services/everything.d.ts.map +1 -1
  88. package/dist/generated/services/everything.ts +14 -14
  89. package/dist/generated/services/folders.d.ts +96 -0
  90. package/dist/generated/services/folders.d.ts.map +1 -0
  91. package/dist/generated/services/folders.js +140 -0
  92. package/dist/generated/services/folders.js.map +1 -0
  93. package/dist/generated/services/folders.ts +201 -0
  94. package/dist/generated/services/forwards.d.ts +7 -20
  95. package/dist/generated/services/forwards.d.ts.map +1 -1
  96. package/dist/generated/services/forwards.js +6 -35
  97. package/dist/generated/services/forwards.js.map +1 -1
  98. package/dist/generated/services/forwards.ts +10 -48
  99. package/dist/generated/services/gauges.d.ts +7 -0
  100. package/dist/generated/services/gauges.d.ts.map +1 -1
  101. package/dist/generated/services/gauges.js +5 -1
  102. package/dist/generated/services/gauges.js.map +1 -1
  103. package/dist/generated/services/gauges.ts +9 -1
  104. package/dist/generated/services/google-documents.d.ts +98 -0
  105. package/dist/generated/services/google-documents.d.ts.map +1 -0
  106. package/dist/generated/services/google-documents.js +123 -0
  107. package/dist/generated/services/google-documents.js.map +1 -0
  108. package/dist/generated/services/google-documents.ts +196 -0
  109. package/dist/generated/services/index.d.ts +7 -4
  110. package/dist/generated/services/index.d.ts.map +1 -1
  111. package/dist/generated/services/index.js +7 -4
  112. package/dist/generated/services/index.js.map +1 -1
  113. package/dist/generated/services/index.ts +7 -4
  114. package/dist/generated/services/messages.d.ts +2 -0
  115. package/dist/generated/services/messages.d.ts.map +1 -1
  116. package/dist/generated/services/messages.js +1 -1
  117. package/dist/generated/services/messages.js.map +1 -1
  118. package/dist/generated/services/messages.ts +3 -1
  119. package/dist/generated/services/my-notes.d.ts +1 -1
  120. package/dist/generated/services/my-notes.js +1 -1
  121. package/dist/generated/services/my-notes.ts +1 -1
  122. package/dist/generated/services/my-notifications.d.ts +4 -2
  123. package/dist/generated/services/my-notifications.d.ts.map +1 -1
  124. package/dist/generated/services/my-notifications.js.map +1 -1
  125. package/dist/generated/services/my-notifications.ts +4 -2
  126. package/dist/generated/services/people.d.ts +11 -1
  127. package/dist/generated/services/people.d.ts.map +1 -1
  128. package/dist/generated/services/people.js +13 -2
  129. package/dist/generated/services/people.js.map +1 -1
  130. package/dist/generated/services/people.ts +15 -1
  131. package/dist/generated/services/projects.d.ts +26 -0
  132. package/dist/generated/services/projects.d.ts.map +1 -1
  133. package/dist/generated/services/projects.js +49 -1
  134. package/dist/generated/services/projects.js.map +1 -1
  135. package/dist/generated/services/projects.ts +61 -1
  136. package/dist/generated/services/recordings.d.ts +2 -12
  137. package/dist/generated/services/recordings.d.ts.map +1 -1
  138. package/dist/generated/services/recordings.js +1 -26
  139. package/dist/generated/services/recordings.js.map +1 -1
  140. package/dist/generated/services/recordings.ts +3 -31
  141. package/dist/generated/services/reports.d.ts +8 -12
  142. package/dist/generated/services/reports.d.ts.map +1 -1
  143. package/dist/generated/services/reports.js +11 -5
  144. package/dist/generated/services/reports.js.map +1 -1
  145. package/dist/generated/services/reports.ts +13 -14
  146. package/dist/generated/services/schedules.d.ts +94 -15
  147. package/dist/generated/services/schedules.d.ts.map +1 -1
  148. package/dist/generated/services/schedules.js +19 -8
  149. package/dist/generated/services/schedules.js.map +1 -1
  150. package/dist/generated/services/schedules.ts +107 -17
  151. package/dist/generated/services/search.d.ts +2 -0
  152. package/dist/generated/services/search.d.ts.map +1 -1
  153. package/dist/generated/services/search.js +1 -1
  154. package/dist/generated/services/search.js.map +1 -1
  155. package/dist/generated/services/search.ts +3 -1
  156. package/dist/generated/services/templates.d.ts +2 -0
  157. package/dist/generated/services/templates.d.ts.map +1 -1
  158. package/dist/generated/services/templates.js +1 -1
  159. package/dist/generated/services/templates.js.map +1 -1
  160. package/dist/generated/services/templates.ts +3 -1
  161. package/dist/generated/services/timeline.d.ts +2 -0
  162. package/dist/generated/services/timeline.d.ts.map +1 -1
  163. package/dist/generated/services/timeline.js +1 -0
  164. package/dist/generated/services/timeline.js.map +1 -1
  165. package/dist/generated/services/timeline.ts +3 -0
  166. package/dist/generated/services/timesheets.d.ts +16 -0
  167. package/dist/generated/services/timesheets.d.ts.map +1 -1
  168. package/dist/generated/services/timesheets.js +26 -2
  169. package/dist/generated/services/timesheets.js.map +1 -1
  170. package/dist/generated/services/timesheets.ts +35 -2
  171. package/dist/generated/services/todolist-groups.d.ts +11 -6
  172. package/dist/generated/services/todolist-groups.d.ts.map +1 -1
  173. package/dist/generated/services/todolist-groups.js +7 -3
  174. package/dist/generated/services/todolist-groups.js.map +1 -1
  175. package/dist/generated/services/todolist-groups.ts +13 -7
  176. package/dist/generated/services/todolists.d.ts +15 -13
  177. package/dist/generated/services/todolists.d.ts.map +1 -1
  178. package/dist/generated/services/todolists.js +11 -8
  179. package/dist/generated/services/todolists.js.map +1 -1
  180. package/dist/generated/services/todolists.ts +19 -14
  181. package/dist/generated/services/todos.d.ts +2 -12
  182. package/dist/generated/services/todos.d.ts.map +1 -1
  183. package/dist/generated/services/todos.js +1 -25
  184. package/dist/generated/services/todos.js.map +1 -1
  185. package/dist/generated/services/todos.ts +3 -30
  186. package/dist/generated/services/uploads.d.ts +5 -0
  187. package/dist/generated/services/uploads.d.ts.map +1 -1
  188. package/dist/generated/services/uploads.js +4 -0
  189. package/dist/generated/services/uploads.js.map +1 -1
  190. package/dist/generated/services/uploads.ts +6 -0
  191. package/dist/generated/services/vaults.d.ts +5 -0
  192. package/dist/generated/services/vaults.d.ts.map +1 -1
  193. package/dist/generated/services/vaults.js +4 -0
  194. package/dist/generated/services/vaults.js.map +1 -1
  195. package/dist/generated/services/vaults.ts +6 -0
  196. package/dist/index.d.ts +15 -9
  197. package/dist/index.d.ts.map +1 -1
  198. package/dist/index.js +19 -8
  199. package/dist/index.js.map +1 -1
  200. package/dist/pagination-utils.d.ts +46 -0
  201. package/dist/pagination-utils.d.ts.map +1 -1
  202. package/dist/pagination-utils.js +85 -2
  203. package/dist/pagination-utils.js.map +1 -1
  204. package/dist/pagination.d.ts +11 -0
  205. package/dist/pagination.d.ts.map +1 -1
  206. package/dist/pagination.js.map +1 -1
  207. package/dist/retry.d.ts +110 -0
  208. package/dist/retry.d.ts.map +1 -0
  209. package/dist/retry.js +253 -0
  210. package/dist/retry.js.map +1 -0
  211. package/dist/services/base.d.ts.map +1 -1
  212. package/dist/services/base.js +59 -5
  213. package/dist/services/base.js.map +1 -1
  214. package/dist/services/cards-extensions.d.ts +26 -21
  215. package/dist/services/cards-extensions.d.ts.map +1 -1
  216. package/dist/services/cards-extensions.js +28 -31
  217. package/dist/services/cards-extensions.js.map +1 -1
  218. package/dist/services/documents-extensions.d.ts +122 -0
  219. package/dist/services/documents-extensions.d.ts.map +1 -0
  220. package/dist/services/documents-extensions.js +125 -0
  221. package/dist/services/documents-extensions.js.map +1 -0
  222. package/dist/services/merge-safe.d.ts +167 -0
  223. package/dist/services/merge-safe.d.ts.map +1 -0
  224. package/dist/services/merge-safe.js +217 -0
  225. package/dist/services/merge-safe.js.map +1 -0
  226. package/dist/services/schedules-extensions.d.ts +266 -0
  227. package/dist/services/schedules-extensions.d.ts.map +1 -0
  228. package/dist/services/schedules-extensions.js +268 -0
  229. package/dist/services/schedules-extensions.js.map +1 -0
  230. package/dist/services/todolists-extensions.d.ts +110 -0
  231. package/dist/services/todolists-extensions.d.ts.map +1 -0
  232. package/dist/services/todolists-extensions.js +262 -0
  233. package/dist/services/todolists-extensions.js.map +1 -0
  234. package/dist/services/todos-extensions.d.ts +12 -1
  235. package/dist/services/todos-extensions.d.ts.map +1 -1
  236. package/dist/services/todos-extensions.js +27 -8
  237. package/dist/services/todos-extensions.js.map +1 -1
  238. package/package.json +5 -4
  239. package/src/generated/metadata.ts +280 -141
  240. package/src/generated/openapi-stripped.json +6435 -4283
  241. package/src/generated/path-mapping.ts +27 -16
  242. package/src/generated/schema.d.ts +4283 -2457
  243. package/src/generated/services/bookmarks.ts +1 -1
  244. package/src/generated/services/boosts.ts +12 -0
  245. package/src/generated/services/campfires.ts +107 -85
  246. package/src/generated/services/cards.ts +6 -0
  247. package/src/generated/services/checkins.ts +20 -0
  248. package/src/generated/services/client-approvals.ts +10 -5
  249. package/src/generated/services/client-correspondences.ts +10 -5
  250. package/src/generated/services/client-replies.ts +18 -8
  251. package/src/generated/services/cloud-files.ts +188 -0
  252. package/src/generated/services/comments.ts +6 -0
  253. package/src/generated/services/documents.ts +14 -8
  254. package/src/generated/services/drafts.ts +1 -1
  255. package/src/generated/services/events.ts +6 -0
  256. package/src/generated/services/everything.ts +14 -14
  257. package/src/generated/services/folders.ts +201 -0
  258. package/src/generated/services/forwards.ts +10 -48
  259. package/src/generated/services/gauges.ts +9 -1
  260. package/src/generated/services/google-documents.ts +196 -0
  261. package/src/generated/services/index.ts +7 -4
  262. package/src/generated/services/messages.ts +3 -1
  263. package/src/generated/services/my-notes.ts +1 -1
  264. package/src/generated/services/my-notifications.ts +4 -2
  265. package/src/generated/services/people.ts +15 -1
  266. package/src/generated/services/projects.ts +61 -1
  267. package/src/generated/services/recordings.ts +3 -31
  268. package/src/generated/services/reports.ts +13 -14
  269. package/src/generated/services/schedules.ts +107 -17
  270. package/src/generated/services/search.ts +3 -1
  271. package/src/generated/services/templates.ts +3 -1
  272. package/src/generated/services/timeline.ts +3 -0
  273. package/src/generated/services/timesheets.ts +35 -2
  274. package/src/generated/services/todolist-groups.ts +13 -7
  275. package/src/generated/services/todolists.ts +19 -14
  276. package/src/generated/services/todos.ts +3 -30
  277. package/src/generated/services/uploads.ts +6 -0
  278. package/src/generated/services/vaults.ts +6 -0
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Folders service for the Basecamp API.
3
+ *
4
+ * @generated from OpenAPI spec - do not edit directly
5
+ */
6
+ import { BaseService } from "../../services/base.js";
7
+ import { Errors } from "../../errors.js";
8
+ // =============================================================================
9
+ // Service
10
+ // =============================================================================
11
+ /**
12
+ * Service for Folders operations.
13
+ */
14
+ export class FoldersService extends BaseService {
15
+ /**
16
+ * List the authenticated user's folders in home-screen order.
17
+ * @returns Array of Folder
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const result = await client.folders.listFolders();
22
+ * ```
23
+ */
24
+ async listFolders() {
25
+ const response = await this.request({
26
+ service: "Folders",
27
+ operation: "ListFolders",
28
+ resourceType: "folder",
29
+ isMutation: false,
30
+ }, () => this.client.GET("/stacks.json", {}));
31
+ return response ?? [];
32
+ }
33
+ /**
34
+ * Create a folder for the authenticated user and file the given projects into it.
35
+ * @param req - Folder creation parameters
36
+ * @returns The FolderWithProjects
37
+ * @throws {BasecampError} If required fields are missing or invalid
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const result = await client.folders.createFolder({ });
42
+ * ```
43
+ */
44
+ async createFolder(req) {
45
+ const response = await this.request({
46
+ service: "Folders",
47
+ operation: "CreateFolder",
48
+ resourceType: "folder",
49
+ isMutation: true,
50
+ }, () => this.client.POST("/stacks.json", {
51
+ body: {
52
+ name: req.name,
53
+ project_ids: req.projectIds,
54
+ },
55
+ }));
56
+ return response;
57
+ }
58
+ /**
59
+ * Get one folder, with the projects grouped inside it expanded under `projects`.
60
+ * @param folderId - The folder ID
61
+ * @returns The FolderWithProjects
62
+ * @throws {BasecampError} If the resource is not found
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * const result = await client.folders.getFolder(123);
67
+ * ```
68
+ */
69
+ async getFolder(folderId) {
70
+ const response = await this.request({
71
+ service: "Folders",
72
+ operation: "GetFolder",
73
+ resourceType: "folder",
74
+ isMutation: false,
75
+ resourceId: folderId,
76
+ }, () => this.client.GET("/stacks/{folderId}", {
77
+ params: {
78
+ path: { folderId },
79
+ },
80
+ }));
81
+ return response;
82
+ }
83
+ /**
84
+ * Rename a folder.
85
+ * @param folderId - The folder ID
86
+ * @param req - Folder update parameters
87
+ * @returns The FolderWithProjects
88
+ * @throws {BasecampError} If the resource is not found or fields are invalid
89
+ *
90
+ * @example
91
+ * ```ts
92
+ * const result = await client.folders.updateFolder(123, { name: "My example" });
93
+ * ```
94
+ */
95
+ async updateFolder(folderId, req) {
96
+ if (!req.name) {
97
+ throw Errors.validation("Name is required");
98
+ }
99
+ const response = await this.request({
100
+ service: "Folders",
101
+ operation: "UpdateFolder",
102
+ resourceType: "folder",
103
+ isMutation: true,
104
+ resourceId: folderId,
105
+ }, () => this.client.PUT("/stacks/{folderId}", {
106
+ params: {
107
+ path: { folderId },
108
+ },
109
+ body: {
110
+ name: req.name,
111
+ },
112
+ }));
113
+ return response;
114
+ }
115
+ /**
116
+ * Delete a folder and unpin its projects from the home screen.
117
+ * @param folderId - The folder ID
118
+ * @returns void
119
+ * @throws {BasecampError} If the request fails
120
+ *
121
+ * @example
122
+ * ```ts
123
+ * await client.folders.deleteFolder(123);
124
+ * ```
125
+ */
126
+ async deleteFolder(folderId) {
127
+ await this.request({
128
+ service: "Folders",
129
+ operation: "DeleteFolder",
130
+ resourceType: "folder",
131
+ isMutation: true,
132
+ resourceId: folderId,
133
+ }, () => this.client.DELETE("/stacks/{folderId}", {
134
+ params: {
135
+ path: { folderId },
136
+ },
137
+ }));
138
+ }
139
+ }
140
+ //# sourceMappingURL=folders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folders.js","sourceRoot":"","sources":["../../../src/generated/services/folders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Folders 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
+ /** Folder entity from the Basecamp API. */
16
+ export type Folder = components["schemas"]["Folder"];
17
+ /** FolderWithProjects entity from the Basecamp API. */
18
+ export type FolderWithProjects = components["schemas"]["FolderWithProjects"];
19
+
20
+ /**
21
+ * Request parameters for createFolder.
22
+ */
23
+ export interface CreateFolderFolderRequest {
24
+ /** The folder's name. Defaults to `New folder` when blank, null, or omitted. */
25
+ name?: string;
26
+ /** IDs of the projects to file into the folder — the same ids the folder
27
+ reports back as `bucket_ids` and expands as `projects`. This does not
28
+ round-trip under its own name. Omit it, or send null or an empty array,
29
+ for an empty folder. */
30
+ projectIds?: number[];
31
+ }
32
+
33
+ /**
34
+ * Request parameters for updateFolder.
35
+ */
36
+ export interface UpdateFolderFolderRequest {
37
+ /** The folder's new name. Blank is rejected with 422 — unlike create, update
38
+ does not fall back to a default name. */
39
+ name: string;
40
+ }
41
+
42
+
43
+ // =============================================================================
44
+ // Service
45
+ // =============================================================================
46
+
47
+ /**
48
+ * Service for Folders operations.
49
+ */
50
+ export class FoldersService extends BaseService {
51
+
52
+ /**
53
+ * List the authenticated user's folders in home-screen order.
54
+ * @returns Array of Folder
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * const result = await client.folders.listFolders();
59
+ * ```
60
+ */
61
+ async listFolders(): Promise<Folder[]> {
62
+ const response = await this.request(
63
+ {
64
+ service: "Folders",
65
+ operation: "ListFolders",
66
+ resourceType: "folder",
67
+ isMutation: false,
68
+ },
69
+ () =>
70
+ this.client.GET("/stacks.json", {
71
+ })
72
+ );
73
+ return response ?? [];
74
+ }
75
+
76
+ /**
77
+ * Create a folder for the authenticated user and file the given projects into it.
78
+ * @param req - Folder creation parameters
79
+ * @returns The FolderWithProjects
80
+ * @throws {BasecampError} If required fields are missing or invalid
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * const result = await client.folders.createFolder({ });
85
+ * ```
86
+ */
87
+ async createFolder(req: CreateFolderFolderRequest): Promise<FolderWithProjects> {
88
+ const response = await this.request(
89
+ {
90
+ service: "Folders",
91
+ operation: "CreateFolder",
92
+ resourceType: "folder",
93
+ isMutation: true,
94
+ },
95
+ () =>
96
+ this.client.POST("/stacks.json", {
97
+ body: {
98
+ name: req.name,
99
+ project_ids: req.projectIds,
100
+ },
101
+ })
102
+ );
103
+ return response;
104
+ }
105
+
106
+ /**
107
+ * Get one folder, with the projects grouped inside it expanded under `projects`.
108
+ * @param folderId - The folder ID
109
+ * @returns The FolderWithProjects
110
+ * @throws {BasecampError} If the resource is not found
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * const result = await client.folders.getFolder(123);
115
+ * ```
116
+ */
117
+ async getFolder(folderId: number): Promise<FolderWithProjects> {
118
+ const response = await this.request(
119
+ {
120
+ service: "Folders",
121
+ operation: "GetFolder",
122
+ resourceType: "folder",
123
+ isMutation: false,
124
+ resourceId: folderId,
125
+ },
126
+ () =>
127
+ this.client.GET("/stacks/{folderId}", {
128
+ params: {
129
+ path: { folderId },
130
+ },
131
+ })
132
+ );
133
+ return response;
134
+ }
135
+
136
+ /**
137
+ * Rename a folder.
138
+ * @param folderId - The folder ID
139
+ * @param req - Folder update parameters
140
+ * @returns The FolderWithProjects
141
+ * @throws {BasecampError} If the resource is not found or fields are invalid
142
+ *
143
+ * @example
144
+ * ```ts
145
+ * const result = await client.folders.updateFolder(123, { name: "My example" });
146
+ * ```
147
+ */
148
+ async updateFolder(folderId: number, req: UpdateFolderFolderRequest): Promise<FolderWithProjects> {
149
+ if (!req.name) {
150
+ throw Errors.validation("Name is required");
151
+ }
152
+ const response = await this.request(
153
+ {
154
+ service: "Folders",
155
+ operation: "UpdateFolder",
156
+ resourceType: "folder",
157
+ isMutation: true,
158
+ resourceId: folderId,
159
+ },
160
+ () =>
161
+ this.client.PUT("/stacks/{folderId}", {
162
+ params: {
163
+ path: { folderId },
164
+ },
165
+ body: {
166
+ name: req.name,
167
+ },
168
+ })
169
+ );
170
+ return response;
171
+ }
172
+
173
+ /**
174
+ * Delete a folder and unpin its projects from the home screen.
175
+ * @param folderId - The folder ID
176
+ * @returns void
177
+ * @throws {BasecampError} If the request fails
178
+ *
179
+ * @example
180
+ * ```ts
181
+ * await client.folders.deleteFolder(123);
182
+ * ```
183
+ */
184
+ async deleteFolder(folderId: number): Promise<void> {
185
+ await this.request(
186
+ {
187
+ service: "Folders",
188
+ operation: "DeleteFolder",
189
+ resourceType: "folder",
190
+ isMutation: true,
191
+ resourceId: folderId,
192
+ },
193
+ () =>
194
+ this.client.DELETE("/stacks/{folderId}", {
195
+ params: {
196
+ path: { folderId },
197
+ },
198
+ })
199
+ );
200
+ }
201
+ }
@@ -17,13 +17,8 @@ export type Inbox = components["schemas"]["Inbox"];
17
17
  * Options for listReplies.
18
18
  */
19
19
  export interface ListRepliesForwardOptions extends PaginationOptions {
20
- }
21
- /**
22
- * Request parameters for createReply.
23
- */
24
- export interface CreateReplyForwardRequest {
25
- /** Text content */
26
- content: string;
20
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
21
+ page?: number;
27
22
  }
28
23
  /**
29
24
  * Options for list.
@@ -33,6 +28,8 @@ export interface ListForwardOptions extends PaginationOptions {
33
28
  sort?: "created_at" | "updated_at";
34
29
  /** Filter by direction */
35
30
  direction?: "asc" | "desc";
31
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
32
+ page?: number;
36
33
  }
37
34
  /**
38
35
  * Service for Forwards operations.
@@ -59,22 +56,12 @@ export declare class ForwardsService extends BaseService {
59
56
  * @example
60
57
  * ```ts
61
58
  * const result = await client.forwards.listReplies(123);
62
- * ```
63
- */
64
- listReplies(forwardId: number, options?: ListRepliesForwardOptions): Promise<ListResult<ForwardReply>>;
65
- /**
66
- * Create a reply to a forward
67
- * @param forwardId - The forward ID
68
- * @param req - Forward_reply creation parameters
69
- * @returns The ForwardReply
70
- * @throws {BasecampError} If required fields are missing or invalid
71
59
  *
72
- * @example
73
- * ```ts
74
- * const result = await client.forwards.createReply(123, { content: "Hello world" });
60
+ * // With options
61
+ * const filtered = await client.forwards.listReplies(123, { page: 1 });
75
62
  * ```
76
63
  */
77
- createReply(forwardId: number, req: CreateReplyForwardRequest): Promise<ForwardReply>;
64
+ listReplies(forwardId: number, options?: ListRepliesForwardOptions): Promise<ListResult<ForwardReply>>;
78
65
  /**
79
66
  * Get a forward reply by ID
80
67
  * @param forwardId - The forward ID
@@ -1 +1 @@
1
- {"version":3,"file":"forwards.d.ts","sourceRoot":"","sources":["../../../src/generated/services/forwards.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;AACvD,iDAAiD;AACjD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC;AACjE,0CAA0C;AAC1C,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,qBAAqB;IACrB,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACnC,0BAA0B;IAC1B,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAOD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAE9C;;;;;;;;;;OAUG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB9C;;;;;;;;;;OAUG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAmB5G;;;;;;;;;;;OAWG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAAC,YAAY,CAAC;IAyB3F;;;;;;;;;;;OAWG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAmBzE;;;;;;;;;;OAUG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAmB/C;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;CAmBxF"}
1
+ {"version":3,"file":"forwards.d.ts","sourceRoot":"","sources":["../../../src/generated/services/forwards.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;AAM7D,4CAA4C;AAC5C,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;AACvD,iDAAiD;AACjD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC;AACjE,0CAA0C;AAC1C,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,wJAAwJ;IACxJ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,qBAAqB;IACrB,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACnC,0BAA0B;IAC1B,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,wJAAwJ;IACxJ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAOD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAE9C;;;;;;;;;;OAUG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB9C;;;;;;;;;;;;;OAaG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAoB5G;;;;;;;;;;;OAWG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAmBzE;;;;;;;;;;OAUG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAmB/C;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;CAmBxF"}
@@ -4,7 +4,6 @@
4
4
  * @generated from OpenAPI spec - do not edit directly
5
5
  */
6
6
  import { BaseService } from "../../services/base.js";
7
- import { Errors } from "../../errors.js";
8
7
  // =============================================================================
9
8
  // Service
10
9
  // =============================================================================
@@ -46,6 +45,9 @@ export class ForwardsService extends BaseService {
46
45
  * @example
47
46
  * ```ts
48
47
  * const result = await client.forwards.listReplies(123);
48
+ *
49
+ * // With options
50
+ * const filtered = await client.forwards.listReplies(123, { page: 1 });
49
51
  * ```
50
52
  */
51
53
  async listReplies(forwardId, options) {
@@ -58,41 +60,10 @@ export class ForwardsService extends BaseService {
58
60
  }, () => this.client.GET("/inbox_forwards/{forwardId}/replies.json", {
59
61
  params: {
60
62
  path: { forwardId },
63
+ query: { page: options?.page },
61
64
  },
62
65
  }), options);
63
66
  }
64
- /**
65
- * Create a reply to a forward
66
- * @param forwardId - The forward ID
67
- * @param req - Forward_reply creation parameters
68
- * @returns The ForwardReply
69
- * @throws {BasecampError} If required fields are missing or invalid
70
- *
71
- * @example
72
- * ```ts
73
- * const result = await client.forwards.createReply(123, { content: "Hello world" });
74
- * ```
75
- */
76
- async createReply(forwardId, req) {
77
- if (!req.content) {
78
- throw Errors.validation("Content is required");
79
- }
80
- const response = await this.request({
81
- service: "Forwards",
82
- operation: "CreateForwardReply",
83
- resourceType: "forward_reply",
84
- isMutation: true,
85
- resourceId: forwardId,
86
- }, () => this.client.POST("/inbox_forwards/{forwardId}/replies.json", {
87
- params: {
88
- path: { forwardId },
89
- },
90
- body: {
91
- content: req.content,
92
- },
93
- }));
94
- return response;
95
- }
96
67
  /**
97
68
  * Get a forward reply by ID
98
69
  * @param forwardId - The forward ID
@@ -165,10 +136,10 @@ export class ForwardsService extends BaseService {
165
136
  resourceType: "forward",
166
137
  isMutation: false,
167
138
  resourceId: inboxId,
168
- }, () => this.client.GET("/inboxes/{inboxId}/forwards.json", {
139
+ }, () => this.client.GET("/inboxes/{inboxId}/inbox_forwards.json", {
169
140
  params: {
170
141
  path: { inboxId },
171
- query: { sort: options?.sort, direction: options?.direction },
142
+ query: { sort: options?.sort, direction: options?.direction, page: options?.page },
172
143
  },
173
144
  }), options);
174
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"forwards.js","sourceRoot":"","sources":["../../../src/generated/services/forwards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forwards.js","sourceRoot":"","sources":["../../../src/generated/services/forwards.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,6 @@ import { BaseService } from "../../services/base.js";
8
8
  import type { components } from "../schema.js";
9
9
  import { ListResult } from "../../pagination.js";
10
10
  import type { PaginationOptions } from "../../pagination.js";
11
- import { Errors } from "../../errors.js";
12
11
 
13
12
  // =============================================================================
14
13
  // Types
@@ -25,14 +24,8 @@ export type Inbox = components["schemas"]["Inbox"];
25
24
  * Options for listReplies.
26
25
  */
27
26
  export interface ListRepliesForwardOptions extends PaginationOptions {
28
- }
29
-
30
- /**
31
- * Request parameters for createReply.
32
- */
33
- export interface CreateReplyForwardRequest {
34
- /** Text content */
35
- content: string;
27
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
28
+ page?: number;
36
29
  }
37
30
 
38
31
  /**
@@ -43,6 +36,8 @@ export interface ListForwardOptions extends PaginationOptions {
43
36
  sort?: "created_at" | "updated_at";
44
37
  /** Filter by direction */
45
38
  direction?: "asc" | "desc";
39
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
40
+ page?: number;
46
41
  }
47
42
 
48
43
 
@@ -94,6 +89,9 @@ export class ForwardsService extends BaseService {
94
89
  * @example
95
90
  * ```ts
96
91
  * const result = await client.forwards.listReplies(123);
92
+ *
93
+ * // With options
94
+ * const filtered = await client.forwards.listReplies(123, { page: 1 });
97
95
  * ```
98
96
  */
99
97
  async listReplies(forwardId: number, options?: ListRepliesForwardOptions): Promise<ListResult<ForwardReply>> {
@@ -109,49 +107,13 @@ export class ForwardsService extends BaseService {
109
107
  this.client.GET("/inbox_forwards/{forwardId}/replies.json", {
110
108
  params: {
111
109
  path: { forwardId },
110
+ query: { page: options?.page },
112
111
  },
113
112
  })
114
113
  , options
115
114
  );
116
115
  }
117
116
 
118
- /**
119
- * Create a reply to a forward
120
- * @param forwardId - The forward ID
121
- * @param req - Forward_reply creation parameters
122
- * @returns The ForwardReply
123
- * @throws {BasecampError} If required fields are missing or invalid
124
- *
125
- * @example
126
- * ```ts
127
- * const result = await client.forwards.createReply(123, { content: "Hello world" });
128
- * ```
129
- */
130
- async createReply(forwardId: number, req: CreateReplyForwardRequest): Promise<ForwardReply> {
131
- if (!req.content) {
132
- throw Errors.validation("Content is required");
133
- }
134
- const response = await this.request(
135
- {
136
- service: "Forwards",
137
- operation: "CreateForwardReply",
138
- resourceType: "forward_reply",
139
- isMutation: true,
140
- resourceId: forwardId,
141
- },
142
- () =>
143
- this.client.POST("/inbox_forwards/{forwardId}/replies.json", {
144
- params: {
145
- path: { forwardId },
146
- },
147
- body: {
148
- content: req.content,
149
- },
150
- })
151
- );
152
- return response;
153
- }
154
-
155
117
  /**
156
118
  * Get a forward reply by ID
157
119
  * @param forwardId - The forward ID
@@ -237,10 +199,10 @@ export class ForwardsService extends BaseService {
237
199
  resourceId: inboxId,
238
200
  },
239
201
  () =>
240
- this.client.GET("/inboxes/{inboxId}/forwards.json", {
202
+ this.client.GET("/inboxes/{inboxId}/inbox_forwards.json", {
241
203
  params: {
242
204
  path: { inboxId },
243
- query: { sort: options?.sort, direction: options?.direction },
205
+ query: { sort: options?.sort, direction: options?.direction, page: options?.page },
244
206
  },
245
207
  })
246
208
  , options
@@ -24,6 +24,8 @@ export interface ToggleGaugeGaugeRequest {
24
24
  * Options for listGaugeNeedles.
25
25
  */
26
26
  export interface ListGaugeNeedlesGaugeOptions extends PaginationOptions {
27
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
28
+ page?: number;
27
29
  }
28
30
  /**
29
31
  * Request parameters for createGaugeNeedle.
@@ -43,6 +45,8 @@ export interface ListGaugesGaugeOptions extends PaginationOptions {
43
45
  /** Comma-separated list of project IDs. When provided, results are returned
44
46
  in the order specified instead of by risk level. */
45
47
  bucketIds?: string;
48
+ /** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
49
+ page?: number;
46
50
  }
47
51
  /**
48
52
  * Service for Gauges operations.
@@ -106,6 +110,9 @@ export declare class GaugesService extends BaseService {
106
110
  * @example
107
111
  * ```ts
108
112
  * const result = await client.gauges.listGaugeNeedles(123);
113
+ *
114
+ * // With options
115
+ * const filtered = await client.gauges.listGaugeNeedles(123, { page: 1 });
109
116
  * ```
110
117
  */
111
118
  listGaugeNeedles(projectId: number, options?: ListGaugeNeedlesGaugeOptions): Promise<components["schemas"]["ListGaugeNeedlesResponseContent"]>;
@@ -1 +1 @@
1
- {"version":3,"file":"gauges.d.ts","sourceRoot":"","sources":["../../../src/generated/services/gauges.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAQ7D;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,mBAAmB;IACnB,WAAW,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,0BAA0B,CAAC,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,YAAY;IACZ,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,iBAAiB;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,mBAAmB;IACnB,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC;IACzD,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D;qDACiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD;;GAEG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAE5C;;;;;;;;;OASG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,+BAA+B,CAAC,CAAC;IAmBpG;;;;;;;;;;;OAWG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,6BAA6B,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,kCAAkC,CAAC,CAAC;IAsBjJ;;;;;;;;;;OAUG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBzD;;;;;;;;;;;OAWG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBjF;;;;;;;;;;OAUG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,iCAAiC,CAAC,CAAC;IAmBpJ;;;;;;;;;;;OAWG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,6BAA6B,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,kCAAkC,CAAC,CAAC;IA2BlJ;;;;;;;;;;;;OAYG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,2BAA2B,CAAC,CAAC;CAiBhH"}
1
+ {"version":3,"file":"gauges.d.ts","sourceRoot":"","sources":["../../../src/generated/services/gauges.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAQ7D;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,mBAAmB;IACnB,WAAW,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,0BAA0B,CAAC,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,YAAY;IACZ,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,iBAAiB;IACrE,wJAAwJ;IACxJ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,mBAAmB;IACnB,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC;IACzD,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D;qDACiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wJAAwJ;IACxJ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAOD;;GAEG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAE5C;;;;;;;;;OASG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,+BAA+B,CAAC,CAAC;IAmBpG;;;;;;;;;;;OAWG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,6BAA6B,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,kCAAkC,CAAC,CAAC;IAsBjJ;;;;;;;;;;OAUG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBzD;;;;;;;;;;;OAWG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBjF;;;;;;;;;;;;;OAaG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,iCAAiC,CAAC,CAAC;IAoBpJ;;;;;;;;;;;OAWG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,6BAA6B,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,kCAAkC,CAAC,CAAC;IA2BlJ;;;;;;;;;;;;OAYG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,2BAA2B,CAAC,CAAC;CAiBhH"}
@@ -129,6 +129,9 @@ export class GaugesService extends BaseService {
129
129
  * @example
130
130
  * ```ts
131
131
  * const result = await client.gauges.listGaugeNeedles(123);
132
+ *
133
+ * // With options
134
+ * const filtered = await client.gauges.listGaugeNeedles(123, { page: 1 });
132
135
  * ```
133
136
  */
134
137
  async listGaugeNeedles(projectId, options) {
@@ -141,6 +144,7 @@ export class GaugesService extends BaseService {
141
144
  }, () => this.client.GET("/projects/{projectId}/gauge/needles.json", {
142
145
  params: {
143
146
  path: { projectId },
147
+ query: { page: options?.page },
144
148
  },
145
149
  }), options);
146
150
  }
@@ -199,7 +203,7 @@ export class GaugesService extends BaseService {
199
203
  isMutation: false,
200
204
  }, () => this.client.GET("/reports/gauges.json", {
201
205
  params: {
202
- query: { "bucket_ids": options?.bucketIds },
206
+ query: { "bucket_ids": options?.bucketIds, page: options?.page },
203
207
  },
204
208
  }), options);
205
209
  }