@37signals/basecamp 0.13.0 → 0.14.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 (47) hide show
  1. package/README.md +3 -2
  2. package/dist/client.d.ts +1 -1
  3. package/dist/client.js +1 -1
  4. package/dist/errors.d.ts +1 -1
  5. package/dist/errors.d.ts.map +1 -1
  6. package/dist/errors.js +11 -0
  7. package/dist/errors.js.map +1 -1
  8. package/dist/generated/metadata.d.ts.map +1 -1
  9. package/dist/generated/metadata.js +12 -1
  10. package/dist/generated/metadata.js.map +1 -1
  11. package/dist/generated/metadata.ts +12 -1
  12. package/dist/generated/openapi-stripped.json +280 -1
  13. package/dist/generated/path-mapping.d.ts.map +1 -1
  14. package/dist/generated/path-mapping.js +1 -0
  15. package/dist/generated/path-mapping.js.map +1 -1
  16. package/dist/generated/path-mapping.ts +1 -0
  17. package/dist/generated/schema.d.ts +209 -2
  18. package/dist/generated/services/uploads.d.ts +36 -2
  19. package/dist/generated/services/uploads.d.ts.map +1 -1
  20. package/dist/generated/services/uploads.js +37 -1
  21. package/dist/generated/services/uploads.js.map +1 -1
  22. package/dist/generated/services/uploads.ts +65 -2
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/oauth/authorization-document.d.ts +201 -0
  27. package/dist/oauth/authorization-document.d.ts.map +1 -0
  28. package/dist/oauth/authorization-document.js +130 -0
  29. package/dist/oauth/authorization-document.js.map +1 -0
  30. package/dist/oauth/identity.d.ts +7 -1
  31. package/dist/oauth/identity.d.ts.map +1 -1
  32. package/dist/oauth/identity.js +8 -19
  33. package/dist/oauth/identity.js.map +1 -1
  34. package/dist/oauth/index.d.ts +1 -0
  35. package/dist/oauth/index.d.ts.map +1 -1
  36. package/dist/oauth/index.js +2 -0
  37. package/dist/oauth/index.js.map +1 -1
  38. package/dist/services/authorization.d.ts +22 -52
  39. package/dist/services/authorization.d.ts.map +1 -1
  40. package/dist/services/authorization.js +14 -32
  41. package/dist/services/authorization.js.map +1 -1
  42. package/package.json +2 -2
  43. package/src/generated/metadata.ts +12 -1
  44. package/src/generated/openapi-stripped.json +280 -1
  45. package/src/generated/path-mapping.ts +1 -0
  46. package/src/generated/schema.d.ts +209 -2
  47. package/src/generated/services/uploads.ts +65 -2
@@ -16,6 +16,8 @@ import { Errors } from "../../errors.js";
16
16
 
17
17
  /** Upload entity from the Basecamp API. */
18
18
  export type Upload = components["schemas"]["Upload"];
19
+ /** UploadVersion entity from the Basecamp API. */
20
+ export type UploadVersion = components["schemas"]["UploadVersion"];
19
21
 
20
22
  /**
21
23
  * Request parameters for update.
@@ -33,6 +35,26 @@ export interface UpdateUploadRequest {
33
35
  export interface ListVersionsUploadOptions extends PaginationOptions {
34
36
  }
35
37
 
38
+ /**
39
+ * Request parameters for createVersion.
40
+ */
41
+ export interface CreateVersionUploadRequest {
42
+ /** Attachable sgid */
43
+ attachableSgid: string;
44
+ /** Omit to keep the uploaded file's own name. Sending "" also keeps it. */
45
+ baseName?: string;
46
+ /** Presence-aware: omit to carry the previous version's description forward,
47
+ send "" to clear it, send a value to set it. */
48
+ description?: string;
49
+ /** Who to notify: "default", "everyone", or "custom" (the people in subscriptions).
50
+
51
+ Omit both this and subscriptions to notify nobody. A subscriptions array sent
52
+ without notify is read as "custom". */
53
+ notify?: string;
54
+ /** People to notify about the replacement and subscribe to the upload. */
55
+ subscriptions?: number[];
56
+ }
57
+
36
58
  /**
37
59
  * Options for list.
38
60
  */
@@ -136,14 +158,14 @@ export class UploadsService extends BaseService {
136
158
  * List versions of an upload
137
159
  * @param uploadId - The upload ID
138
160
  * @param options - Optional query parameters
139
- * @returns All Upload across all pages, with .meta.totalCount
161
+ * @returns All UploadVersion across all pages, with .meta.totalCount
140
162
  *
141
163
  * @example
142
164
  * ```ts
143
165
  * const result = await client.uploads.listVersions(123);
144
166
  * ```
145
167
  */
146
- async listVersions(uploadId: number, options?: ListVersionsUploadOptions): Promise<ListResult<Upload>> {
168
+ async listVersions(uploadId: number, options?: ListVersionsUploadOptions): Promise<ListResult<UploadVersion>> {
147
169
  return this.requestPaginated(
148
170
  {
149
171
  service: "Uploads",
@@ -162,6 +184,47 @@ export class UploadsService extends BaseService {
162
184
  );
163
185
  }
164
186
 
187
+ /**
188
+ * Replace an upload's file with a new version
189
+ * @param uploadId - The upload ID
190
+ * @param req - Upload_version creation parameters
191
+ * @returns The Upload
192
+ * @throws {BasecampError} If required fields are missing or invalid
193
+ *
194
+ * @example
195
+ * ```ts
196
+ * const result = await client.uploads.createVersion(123, { attachableSgid: "example" });
197
+ * ```
198
+ */
199
+ async createVersion(uploadId: number, req: CreateVersionUploadRequest): Promise<Upload> {
200
+ if (!req.attachableSgid) {
201
+ throw Errors.validation("Attachable sgid is required");
202
+ }
203
+ const response = await this.request(
204
+ {
205
+ service: "Uploads",
206
+ operation: "CreateUploadVersion",
207
+ resourceType: "upload_version",
208
+ isMutation: true,
209
+ resourceId: uploadId,
210
+ },
211
+ () =>
212
+ this.client.POST("/uploads/{uploadId}/versions.json", {
213
+ params: {
214
+ path: { uploadId },
215
+ },
216
+ body: {
217
+ attachable_sgid: req.attachableSgid,
218
+ base_name: req.baseName,
219
+ description: req.description,
220
+ notify: req.notify,
221
+ subscriptions: req.subscriptions,
222
+ },
223
+ })
224
+ );
225
+ return response;
226
+ }
227
+
165
228
  /**
166
229
  * List uploads in a vault
167
230
  * @param vaultId - The vault ID