@37signals/basecamp 0.23.0 → 0.25.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 (39) hide show
  1. package/dist/client.d.ts +1 -1
  2. package/dist/client.js +1 -1
  3. package/dist/generated/metadata.js +1 -1
  4. package/dist/generated/metadata.ts +1 -1
  5. package/dist/generated/openapi-stripped.json +41 -14
  6. package/dist/generated/schema.d.ts +43 -14
  7. package/dist/generated/services/boosts.d.ts +2 -2
  8. package/dist/generated/services/boosts.js +2 -2
  9. package/dist/generated/services/boosts.ts +2 -2
  10. package/dist/generated/services/card-columns.d.ts +7 -4
  11. package/dist/generated/services/card-columns.d.ts.map +1 -1
  12. package/dist/generated/services/card-columns.js +1 -1
  13. package/dist/generated/services/card-columns.js.map +1 -1
  14. package/dist/generated/services/card-columns.ts +7 -4
  15. package/dist/generated/services/checkins.d.ts +2 -4
  16. package/dist/generated/services/checkins.d.ts.map +1 -1
  17. package/dist/generated/services/checkins.js +1 -2
  18. package/dist/generated/services/checkins.js.map +1 -1
  19. package/dist/generated/services/checkins.ts +2 -5
  20. package/dist/generated/services/lineup.d.ts +8 -8
  21. package/dist/generated/services/lineup.d.ts.map +1 -1
  22. package/dist/generated/services/lineup.js +10 -8
  23. package/dist/generated/services/lineup.js.map +1 -1
  24. package/dist/generated/services/lineup.ts +12 -10
  25. package/dist/generated/services/my-notifications.d.ts +1 -1
  26. package/dist/generated/services/my-notifications.js +1 -1
  27. package/dist/generated/services/my-notifications.ts +1 -1
  28. package/dist/oauth/exchange.d.ts.map +1 -1
  29. package/dist/oauth/exchange.js +65 -23
  30. package/dist/oauth/exchange.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/generated/metadata.ts +1 -1
  33. package/src/generated/openapi-stripped.json +41 -14
  34. package/src/generated/schema.d.ts +43 -14
  35. package/src/generated/services/boosts.ts +2 -2
  36. package/src/generated/services/card-columns.ts +7 -4
  37. package/src/generated/services/checkins.ts +2 -5
  38. package/src/generated/services/lineup.ts +12 -10
  39. package/src/generated/services/my-notifications.ts +1 -1
@@ -65,12 +65,10 @@ export interface CreateQuestionCheckinRequest {
65
65
  * Request parameters for updateQuestion.
66
66
  */
67
67
  export interface UpdateQuestionCheckinRequest {
68
- /** Title */
68
+ /** The question text. An update carries a title, a schedule or both. */
69
69
  title?: string;
70
70
  /** Schedule */
71
71
  schedule?: components["schemas"]["QuestionScheduleInput"];
72
- /** Paused */
73
- paused?: boolean;
74
72
  }
75
73
 
76
74
  /**
@@ -361,7 +359,7 @@ export class CheckinsService extends BaseService {
361
359
  }
362
360
 
363
361
  /**
364
- * Update an existing question
362
+ * Update an existing question's title, schedule or both. A schedule replaces the whole schedule, so send every part of it: one without frequency or time_of_day is refused, and one without start_date re-anchors the recurrence on today. Pausing and resuming are PauseQuestion and ResumeQuestion.
365
363
  * @param questionId - The question ID
366
364
  * @param req - Question update parameters
367
365
  * @returns The Question
@@ -389,7 +387,6 @@ export class CheckinsService extends BaseService {
389
387
  body: {
390
388
  title: req.title,
391
389
  schedule: req.schedule,
392
- paused: req.paused,
393
390
  },
394
391
  })
395
392
  );
@@ -40,30 +40,30 @@ export declare class LineupService extends BaseService {
40
40
  */
41
41
  listLineupMarkers(): Promise<LineupMarker[]>;
42
42
  /**
43
- * Create a new lineup marker
43
+ * Create a new lineup marker. Returns the created marker.
44
44
  * @param req - Lineup_marker creation parameters
45
- * @returns void
45
+ * @returns The LineupMarker
46
46
  * @throws {BasecampError} If required fields are missing or invalid
47
47
  *
48
48
  * @example
49
49
  * ```ts
50
- * await client.lineup.create({ name: "My example", date: "example" });
50
+ * const result = await client.lineup.create({ name: "My example", date: "example" });
51
51
  * ```
52
52
  */
53
- create(req: CreateLineupRequest): Promise<void>;
53
+ create(req: CreateLineupRequest): Promise<LineupMarker>;
54
54
  /**
55
- * Update an existing lineup marker
55
+ * Update an existing lineup marker. Returns the updated marker.
56
56
  * @param markerId - The marker ID
57
57
  * @param req - Lineup_marker update parameters
58
- * @returns void
58
+ * @returns The LineupMarker
59
59
  * @throws {BasecampError} If the resource is not found or fields are invalid
60
60
  *
61
61
  * @example
62
62
  * ```ts
63
- * await client.lineup.update(123, { });
63
+ * const result = await client.lineup.update(123, { });
64
64
  * ```
65
65
  */
66
- update(markerId: number, req: UpdateLineupRequest): Promise<void>;
66
+ update(markerId: number, req: UpdateLineupRequest): Promise<LineupMarker>;
67
67
  /**
68
68
  * Delete a lineup marker
69
69
  * @param markerId - The marker ID
@@ -1 +1 @@
1
- {"version":3,"file":"lineup.d.ts","sourceRoot":"","sources":["../../../src/generated/services/lineup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO/C,iDAAiD;AACjD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAOD;;GAEG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAE5C;;;;;;;;OAQG;IACG,iBAAiB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAelD;;;;;;;;;;OAUG;IACG,MAAM,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBrD;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvE;;;;;;;;;;OAUG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB9C"}
1
+ {"version":3,"file":"lineup.d.ts","sourceRoot":"","sources":["../../../src/generated/services/lineup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO/C,iDAAiD;AACjD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAOD;;GAEG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAE5C;;;;;;;;OAQG;IACG,iBAAiB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAelD;;;;;;;;;;OAUG;IACG,MAAM,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAyB7D;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAuB/E;;;;;;;;;;OAUG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB9C"}
@@ -31,14 +31,14 @@ export class LineupService extends BaseService {
31
31
  return response ?? [];
32
32
  }
33
33
  /**
34
- * Create a new lineup marker
34
+ * Create a new lineup marker. Returns the created marker.
35
35
  * @param req - Lineup_marker creation parameters
36
- * @returns void
36
+ * @returns The LineupMarker
37
37
  * @throws {BasecampError} If required fields are missing or invalid
38
38
  *
39
39
  * @example
40
40
  * ```ts
41
- * await client.lineup.create({ name: "My example", date: "example" });
41
+ * const result = await client.lineup.create({ name: "My example", date: "example" });
42
42
  * ```
43
43
  */
44
44
  async create(req) {
@@ -48,7 +48,7 @@ export class LineupService extends BaseService {
48
48
  if (!req.date) {
49
49
  throw Errors.validation("Date is required");
50
50
  }
51
- await this.request({
51
+ const response = await this.request({
52
52
  service: "Lineup",
53
53
  operation: "CreateLineupMarker",
54
54
  resourceType: "lineup_marker",
@@ -59,21 +59,22 @@ export class LineupService extends BaseService {
59
59
  date: req.date,
60
60
  },
61
61
  }));
62
+ return response;
62
63
  }
63
64
  /**
64
- * Update an existing lineup marker
65
+ * Update an existing lineup marker. Returns the updated marker.
65
66
  * @param markerId - The marker ID
66
67
  * @param req - Lineup_marker update parameters
67
- * @returns void
68
+ * @returns The LineupMarker
68
69
  * @throws {BasecampError} If the resource is not found or fields are invalid
69
70
  *
70
71
  * @example
71
72
  * ```ts
72
- * await client.lineup.update(123, { });
73
+ * const result = await client.lineup.update(123, { });
73
74
  * ```
74
75
  */
75
76
  async update(markerId, req) {
76
- await this.request({
77
+ const response = await this.request({
77
78
  service: "Lineup",
78
79
  operation: "UpdateLineupMarker",
79
80
  resourceType: "lineup_marker",
@@ -88,6 +89,7 @@ export class LineupService extends BaseService {
88
89
  date: req.date,
89
90
  },
90
91
  }));
92
+ return response;
91
93
  }
92
94
  /**
93
95
  * Delete a lineup marker
@@ -1 +1 @@
1
- {"version":3,"file":"lineup.js","sourceRoot":"","sources":["../../../src/generated/services/lineup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AA8BzC,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,WAAW;IAE5C;;;;;;;;OAQG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,mBAAmB;YAC9B,YAAY,EAAE,eAAe;YAC7B,UAAU,EAAE,KAAK;SAClB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,EACvC,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,IAAI,EAAE,CAAC;IACxB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,CAAC,GAAwB;QACnC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAChB;YACE,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,oBAAoB;YAC/B,YAAY,EAAE,eAAe;YAC7B,UAAU,EAAE,IAAI;SACjB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACvC,IAAI,EAAE;gBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;aACf;SACF,CAAC,CACL,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,GAAwB;QACrD,MAAM,IAAI,CAAC,OAAO,CAChB;YACE,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,oBAAoB;YAC/B,YAAY,EAAE,eAAe;YAC7B,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,QAAQ;SACrB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE;YAC5C,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,QAAQ,EAAE;aACnB;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;aACf;SACF,CAAC,CACL,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,CAAC,QAAgB;QAC3B,MAAM,IAAI,CAAC,OAAO,CAChB;YACE,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,oBAAoB;YAC/B,YAAY,EAAE,eAAe;YAC7B,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,QAAQ;SACrB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,4BAA4B,EAAE;YAC/C,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,QAAQ,EAAE;aACnB;SACF,CAAC,CACL,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"lineup.js","sourceRoot":"","sources":["../../../src/generated/services/lineup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AA8BzC,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,WAAW;IAE5C;;;;;;;;OAQG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,mBAAmB;YAC9B,YAAY,EAAE,eAAe;YAC7B,UAAU,EAAE,KAAK;SAClB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,EACvC,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,IAAI,EAAE,CAAC;IACxB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,CAAC,GAAwB;QACnC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,oBAAoB;YAC/B,YAAY,EAAE,eAAe;YAC7B,UAAU,EAAE,IAAI;SACjB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACvC,IAAI,EAAE;gBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;aACf;SACF,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,GAAwB;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,oBAAoB;YAC/B,YAAY,EAAE,eAAe;YAC7B,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,QAAQ;SACrB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE;YAC5C,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,QAAQ,EAAE;aACnB;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;aACf;SACF,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,CAAC,QAAgB;QAC3B,MAAM,IAAI,CAAC,OAAO,CAChB;YACE,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,oBAAoB;YAC/B,YAAY,EAAE,eAAe;YAC7B,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,QAAQ;SACrB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,4BAA4B,EAAE;YAC/C,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,QAAQ,EAAE;aACnB;SACF,CAAC,CACL,CAAC;IACJ,CAAC;CACF"}
@@ -70,24 +70,24 @@ export class LineupService extends BaseService {
70
70
  }
71
71
 
72
72
  /**
73
- * Create a new lineup marker
73
+ * Create a new lineup marker. Returns the created marker.
74
74
  * @param req - Lineup_marker creation parameters
75
- * @returns void
75
+ * @returns The LineupMarker
76
76
  * @throws {BasecampError} If required fields are missing or invalid
77
77
  *
78
78
  * @example
79
79
  * ```ts
80
- * await client.lineup.create({ name: "My example", date: "example" });
80
+ * const result = await client.lineup.create({ name: "My example", date: "example" });
81
81
  * ```
82
82
  */
83
- async create(req: CreateLineupRequest): Promise<void> {
83
+ async create(req: CreateLineupRequest): Promise<LineupMarker> {
84
84
  if (!req.name) {
85
85
  throw Errors.validation("Name is required");
86
86
  }
87
87
  if (!req.date) {
88
88
  throw Errors.validation("Date is required");
89
89
  }
90
- await this.request(
90
+ const response = await this.request(
91
91
  {
92
92
  service: "Lineup",
93
93
  operation: "CreateLineupMarker",
@@ -102,22 +102,23 @@ export class LineupService extends BaseService {
102
102
  },
103
103
  })
104
104
  );
105
+ return response;
105
106
  }
106
107
 
107
108
  /**
108
- * Update an existing lineup marker
109
+ * Update an existing lineup marker. Returns the updated marker.
109
110
  * @param markerId - The marker ID
110
111
  * @param req - Lineup_marker update parameters
111
- * @returns void
112
+ * @returns The LineupMarker
112
113
  * @throws {BasecampError} If the resource is not found or fields are invalid
113
114
  *
114
115
  * @example
115
116
  * ```ts
116
- * await client.lineup.update(123, { });
117
+ * const result = await client.lineup.update(123, { });
117
118
  * ```
118
119
  */
119
- async update(markerId: number, req: UpdateLineupRequest): Promise<void> {
120
- await this.request(
120
+ async update(markerId: number, req: UpdateLineupRequest): Promise<LineupMarker> {
121
+ const response = await this.request(
121
122
  {
122
123
  service: "Lineup",
123
124
  operation: "UpdateLineupMarker",
@@ -136,6 +137,7 @@ export class LineupService extends BaseService {
136
137
  },
137
138
  })
138
139
  );
140
+ return response;
139
141
  }
140
142
 
141
143
  /**
@@ -43,7 +43,7 @@ export interface MarkAsReadMyNotificationRequest {
43
43
  */
44
44
  export declare class MyNotificationsService extends BaseService {
45
45
  /**
46
- * Get the current user's notification inbox (the "Hey!" menu).
46
+ * Get the current user's notifications (the "Hey!" menu in Basecamp 4).
47
47
  * @param options - Optional query parameters
48
48
  * @returns The my_notification
49
49
  *
@@ -13,7 +13,7 @@ import { Errors } from "../../errors.js";
13
13
  */
14
14
  export class MyNotificationsService extends BaseService {
15
15
  /**
16
- * Get the current user's notification inbox (the "Hey!" menu).
16
+ * Get the current user's notifications (the "Hey!" menu in Basecamp 4).
17
17
  * @param options - Optional query parameters
18
18
  * @returns The my_notification
19
19
  *
@@ -60,7 +60,7 @@ At most 500 per request. */
60
60
  export class MyNotificationsService extends BaseService {
61
61
 
62
62
  /**
63
- * Get the current user's notification inbox (the "Hey!" menu).
63
+ * Get the current user's notifications (the "Hey!" menu in Basecamp 4).
64
64
  * @param options - Optional query parameters
65
65
  * @returns The my_notification
66
66
  *
@@ -1 +1 @@
1
- {"version":3,"file":"exchange.d.ts","sourceRoot":"","sources":["../../src/oauth/exchange.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,UAAU,EAGX,MAAM,YAAY,CAAC;AAapB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,UAAU,CAAC,CAsCrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,UAAU,CAAC,CAiCrB;AAyUD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,SAAK,GAAG,OAAO,CAQ7E"}
1
+ {"version":3,"file":"exchange.d.ts","sourceRoot":"","sources":["../../src/oauth/exchange.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,UAAU,EAGX,MAAM,YAAY,CAAC;AAapB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,UAAU,CAAC,CAsCrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,UAAU,CAAC,CAiCrB;AAoXD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,SAAK,GAAG,OAAO,CAQ7E"}
@@ -188,6 +188,12 @@ async function readResponseWithByteLimit(response, maxBytes, httpStatus) {
188
188
  }
189
189
  // If no body or body isn't streamable, require valid Content-Length
190
190
  if (!response.body) {
191
+ // A refusal with no body (a bare 401 whose Response carries a null body)
192
+ // has nothing to read, and its status alone classifies it — never read
193
+ // it, and never fail it closed as a missing-length api_error. A declared
194
+ // length over the cap was already refused above.
195
+ if (!response.ok)
196
+ return "";
191
197
  // If Content-Length is missing or invalid, we cannot protect against DoS - fail closed.
192
198
  // If it was valid and within limits, we can safely read.
193
199
  if (contentLengthBytes === null) {
@@ -225,6 +231,57 @@ async function readResponseWithByteLimit(response, maxBytes, httpStatus) {
225
231
  }
226
232
  return new TextDecoder().decode(combined);
227
233
  }
234
+ /**
235
+ * The OAuth error codes a caller resolves by signing in again: the grant is
236
+ * invalid, expired or revoked (`invalid_grant`), the client failed to
237
+ * authenticate (`invalid_client`) or may not use this grant
238
+ * (`unauthorized_client`), or the resource owner refused (`access_denied`).
239
+ * Classified by code, not status: RFC 6749 §5.2 answers `invalid_client` with
240
+ * a 400 unless the client authenticated through the Authorization header, so
241
+ * a 401 cannot be the only signal. Matches every other SDK's token endpoint
242
+ * (conformance/oauth-token).
243
+ */
244
+ const AUTH_ERROR_CODES = new Set([
245
+ "invalid_grant",
246
+ "invalid_client",
247
+ "unauthorized_client",
248
+ "access_denied",
249
+ ]);
250
+ /**
251
+ * Classifies a non-2xx token endpoint response: `auth_required` for an error
252
+ * code in {@link AUTH_ERROR_CODES} on any status, or for any 401 whatever its
253
+ * body (Launchpad and other servers refuse with a bare status); `api_error`
254
+ * for everything else. The body is read only for the RFC 6749 `error` and
255
+ * `error_description` members and is never echoed — a body that is not an
256
+ * OAuth error object contributes nothing.
257
+ */
258
+ function tokenEndpointError(status, responseText) {
259
+ let errorData = {};
260
+ try {
261
+ const parsed = JSON.parse(responseText);
262
+ if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) {
263
+ errorData = parsed;
264
+ }
265
+ }
266
+ catch {
267
+ // Not JSON: the status alone classifies it.
268
+ }
269
+ // Non-string error/error_description (numbers, objects) are ignored rather
270
+ // than allowed to throw a raw TypeError, which would be misclassified as a
271
+ // retryable network failure.
272
+ const errorCode = typeof errorData.error === "string" ? errorData.error : undefined;
273
+ const rawMessage = (typeof errorData.error_description === "string" && errorData.error_description) ||
274
+ errorCode ||
275
+ "Token request failed";
276
+ const message = rawMessage.length > 500 ? rawMessage.slice(0, 497) + "..." : rawMessage;
277
+ if (status === 401 || (errorCode !== undefined && AUTH_ERROR_CODES.has(errorCode))) {
278
+ return new BasecampError("auth_required", message, {
279
+ httpStatus: status,
280
+ hint: "The authorization server refused this grant or client: authorize again, or check the client credentials",
281
+ });
282
+ }
283
+ return new BasecampError("api_error", message, { httpStatus: status });
284
+ }
228
285
  /**
229
286
  * Performs the actual HTTP token request.
230
287
  */
@@ -278,6 +335,13 @@ async function doTokenRequest(tokenEndpoint, body, options) {
278
335
  const racedText = await readResponseWithByteLimit(raced, MAX_TOKEN_RESPONSE_BYTES, raced.status);
279
336
  return { response: raced, responseText: racedText };
280
337
  });
338
+ // A failed request is classified from its status and OAuth error object
339
+ // BEFORE the body is parsed as a token: a refusal whose body is not JSON
340
+ // (a bare 401, an HTML error page) must surface as that refusal, not as
341
+ // a malformed token response.
342
+ if (!response.ok) {
343
+ throw tokenEndpointError(response.status, responseText);
344
+ }
281
345
  let data;
282
346
  try {
283
347
  data = JSON.parse(responseText);
@@ -292,34 +356,12 @@ async function doTokenRequest(tokenEndpoint, body, options) {
292
356
  });
293
357
  }
294
358
  // A valid-JSON-but-non-object body (null, array, number, string) is a
295
- // malformed response on EVERY status — the error branch below would
296
- // otherwise deref null and surface a raw TypeError misclassified as
297
- // retryable network. Fail as api_error carrying the HTTP status.
359
+ // malformed token response. Fail as api_error carrying the HTTP status.
298
360
  if (typeof data !== "object" || data === null || Array.isArray(data)) {
299
361
  throw new BasecampError("api_error", "Token response is not a JSON object", {
300
362
  httpStatus: response.status,
301
363
  });
302
364
  }
303
- // Check for error response
304
- if (!response.ok) {
305
- const errorData = data;
306
- // Non-string error/error_description (numbers, objects) must not throw
307
- // a raw TypeError below — that would be misclassified as retryable
308
- // network, losing the api_error status context.
309
- const rawMessage = (typeof errorData.error_description === "string" && errorData.error_description) ||
310
- (typeof errorData.error === "string" && errorData.error) ||
311
- "Token request failed";
312
- const message = rawMessage.length > 500 ? rawMessage.slice(0, 497) + "..." : rawMessage;
313
- if (response.status === 401 || errorData.error === "invalid_grant") {
314
- throw new BasecampError("auth_required", message, {
315
- httpStatus: response.status,
316
- hint: "The authorization code or refresh token may be invalid or expired",
317
- });
318
- }
319
- throw new BasecampError("api_error", message, {
320
- httpStatus: response.status,
321
- });
322
- }
323
365
  // Parse successful response
324
366
  const tokenData = data;
325
367
  // Non-empty STRING, not merely truthy: a numeric access_token is not a
@@ -1 +1 @@
1
- {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/oauth/exchange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/oauth/exchange.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@37signals/basecamp",
3
- "version": "0.23.0",
3
+ "version": "0.25.0",
4
4
  "description": "TypeScript SDK for the Basecamp API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -36,7 +36,7 @@ export interface MetadataOutput {
36
36
  const metadata: MetadataOutput = {
37
37
  "$schema": "https://basecamp.com/schemas/sdk-metadata.json",
38
38
  "version": "1.0.0",
39
- "generated": "2026-10-05T19:11:14.752Z",
39
+ "generated": "2026-10-15T16:04:40.429Z",
40
40
  "operations": {
41
41
  "GetAccount": {
42
42
  "retry": {
@@ -5198,7 +5198,7 @@
5198
5198
  },
5199
5199
  "/card_tables/{cardTableId}/moves.json": {
5200
5200
  "post": {
5201
- "description": "Move a column within a card table",
5201
+ "description": "Move a column to a slot within its card table. target_id is the card table's own id (the same as cardTableId), not a column; position is the 1-based slot among the columns, not counting Triage, Not Now or Done.",
5202
5202
  "operationId": "MoveCardColumn",
5203
5203
  "requestBody": {
5204
5204
  "content": {
@@ -9663,7 +9663,7 @@
9663
9663
  }
9664
9664
  },
9665
9665
  "post": {
9666
- "description": "Create a new lineup marker",
9666
+ "description": "Create a new lineup marker. Returns the created marker.",
9667
9667
  "operationId": "CreateLineupMarker",
9668
9668
  "requestBody": {
9669
9669
  "content": {
@@ -9678,7 +9678,14 @@
9678
9678
  "parameters": [],
9679
9679
  "responses": {
9680
9680
  "201": {
9681
- "description": "CreateLineupMarker 201 response"
9681
+ "description": "CreateLineupMarker 201 response",
9682
+ "content": {
9683
+ "application/json": {
9684
+ "schema": {
9685
+ "$ref": "#/components/schemas/CreateLineupMarkerResponseContent"
9686
+ }
9687
+ }
9688
+ }
9682
9689
  },
9683
9690
  "401": {
9684
9691
  "description": "UnauthorizedError 401 response",
@@ -9822,7 +9829,7 @@
9822
9829
  }
9823
9830
  },
9824
9831
  "put": {
9825
- "description": "Update an existing lineup marker",
9832
+ "description": "Update an existing lineup marker. Returns the updated marker.",
9826
9833
  "operationId": "UpdateLineupMarker",
9827
9834
  "requestBody": {
9828
9835
  "content": {
@@ -9846,7 +9853,14 @@
9846
9853
  ],
9847
9854
  "responses": {
9848
9855
  "200": {
9849
- "description": "UpdateLineupMarker 200 response"
9856
+ "description": "UpdateLineupMarker 200 response",
9857
+ "content": {
9858
+ "application/json": {
9859
+ "schema": {
9860
+ "$ref": "#/components/schemas/UpdateLineupMarkerResponseContent"
9861
+ }
9862
+ }
9863
+ }
9850
9864
  },
9851
9865
  "401": {
9852
9866
  "description": "UnauthorizedError 401 response",
@@ -11676,7 +11690,7 @@
11676
11690
  },
11677
11691
  "/my/readings.json": {
11678
11692
  "get": {
11679
- "description": "Get the current user's notification inbox (the \"Hey!\" menu).\nNotifications are grouped into unreads, reads, bubble-ups, and\nscheduled bubble-ups (`memories` remains as an always-empty\nplaceholder on BC5). Reads are paginated (50 per page). Unreads are\ncapped at 100. Bubble-ups are capped per `limit_bubble_ups`.",
11693
+ "description": "Get the current user's notifications (the \"Hey!\" menu in Basecamp 4).\nNotifications are grouped into unreads, reads, bubble-ups, and\nscheduled bubble-ups (`memories` remains as an always-empty\nplaceholder on BC5). Reads are paginated (50 per page). Unreads are\ncapped at 100. Bubble-ups are capped per `limit_bubble_ups`.",
11680
11694
  "operationId": "GetMyNotifications",
11681
11695
  "parameters": [
11682
11696
  {
@@ -15113,7 +15127,7 @@
15113
15127
  }
15114
15128
  },
15115
15129
  "put": {
15116
- "description": "Update an existing question",
15130
+ "description": "Update an existing question's title, schedule or both. A schedule replaces the whole schedule, so send every part of it: one without frequency or time_of_day is refused, and one without start_date re-anchors the recurrence on today. Pausing and resuming are PauseQuestion and ResumeQuestion.",
15117
15131
  "operationId": "UpdateQuestion",
15118
15132
  "requestBody": {
15119
15133
  "content": {
@@ -17097,7 +17111,7 @@
17097
17111
  },
17098
17112
  "/recordings/{recordingId}/events/{eventId}/boosts.json": {
17099
17113
  "get": {
17100
- "description": "List boosts on a specific event within a recording",
17114
+ "description": "List boosts on a specific event within a recording. Only boostable events carry boosts: those whose action is completed, adopted, column_changed or moved_in (their JSON includes boosts_count and boosts_url). Any other event answers 403 Forbidden; an event on a recording the person cannot see answers 404.",
17101
17115
  "operationId": "ListEventBoosts",
17102
17116
  "parameters": [
17103
17117
  {
@@ -17200,7 +17214,7 @@
17200
17214
  }
17201
17215
  },
17202
17216
  "post": {
17203
- "description": "Create a boost on a specific event within a recording",
17217
+ "description": "Create a boost on a specific event within a recording. Only boostable events accept one: those whose action is completed, adopted, column_changed or moved_in (their JSON includes boosts_count and boosts_url). Any other event answers 403 Forbidden, as does an event on a recording whose comments are closed; an event on a recording the person cannot see answers 404.",
17204
17218
  "operationId": "CreateEventBoost",
17205
17219
  "requestBody": {
17206
17220
  "content": {
@@ -28791,6 +28805,9 @@
28791
28805
  "name"
28792
28806
  ]
28793
28807
  },
28808
+ "CreateLineupMarkerResponseContent": {
28809
+ "$ref": "#/components/schemas/LineupMarker"
28810
+ },
28794
28811
  "CreateMessageRequestContent": {
28795
28812
  "type": "object",
28796
28813
  "properties": {
@@ -29796,10 +29813,12 @@
29796
29813
  },
29797
29814
  "boosts_count": {
29798
29815
  "type": "integer",
29816
+ "description": "Present only on boostable events (action completed, adopted,\ncolumn_changed or moved_in); the event boost operations refuse any\nother event with 403.",
29799
29817
  "format": "int32"
29800
29818
  },
29801
29819
  "boosts_url": {
29802
- "type": "string"
29820
+ "type": "string",
29821
+ "description": "Present only on boostable events; see boosts_count."
29803
29822
  }
29804
29823
  },
29805
29824
  "required": [
@@ -32112,14 +32131,17 @@
32112
32131
  "properties": {
32113
32132
  "source_id": {
32114
32133
  "type": "integer",
32134
+ "description": "The column to move.",
32115
32135
  "format": "int64"
32116
32136
  },
32117
32137
  "target_id": {
32118
32138
  "type": "integer",
32139
+ "description": "The card table the column moves within: the same id as `cardTableId`.\nBasecamp refuses any other destination, a column included, with 422.",
32119
32140
  "format": "int64"
32120
32141
  },
32121
32142
  "position": {
32122
32143
  "type": "integer",
32144
+ "description": "1-based slot among the card table's columns, not counting Triage,\nNot Now or Done. 1 puts the column first; a slot past the last puts it\nlast. Default: 1.",
32123
32145
  "format": "int32"
32124
32146
  }
32125
32147
  },
@@ -32934,6 +32956,10 @@
32934
32956
  "clients_enabled": {
32935
32957
  "type": "boolean"
32936
32958
  },
32959
+ "timesheet_enabled": {
32960
+ "type": "boolean",
32961
+ "description": "True when the project's timesheet is turned on. The project timesheet\nreport (GET /projects/{projectId}/timesheet.json) answers 404 until it is."
32962
+ },
32937
32963
  "bookmark_url": {
32938
32964
  "type": "string"
32939
32965
  },
@@ -36513,6 +36539,9 @@
36513
36539
  }
36514
36540
  }
36515
36541
  },
36542
+ "UpdateLineupMarkerResponseContent": {
36543
+ "$ref": "#/components/schemas/LineupMarker"
36544
+ },
36516
36545
  "UpdateMessageRequestContent": {
36517
36546
  "type": "object",
36518
36547
  "properties": {
@@ -36722,13 +36751,11 @@
36722
36751
  "type": "object",
36723
36752
  "properties": {
36724
36753
  "title": {
36725
- "type": "string"
36754
+ "type": "string",
36755
+ "description": "The question text. An update carries a title, a schedule or both."
36726
36756
  },
36727
36757
  "schedule": {
36728
36758
  "$ref": "#/components/schemas/QuestionScheduleInput"
36729
- },
36730
- "paused": {
36731
- "type": "boolean"
36732
36759
  }
36733
36760
  }
36734
36761
  },