@37signals/basecamp 0.10.0 → 0.12.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 (121) hide show
  1. package/README.md +146 -14
  2. package/dist/client.d.ts +16 -4
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +272 -161
  5. package/dist/client.js.map +1 -1
  6. package/dist/errors.d.ts +1 -1
  7. package/dist/errors.js +1 -1
  8. package/dist/generated/metadata.d.ts.map +1 -1
  9. package/dist/generated/metadata.js +178 -17
  10. package/dist/generated/metadata.js.map +1 -1
  11. package/dist/generated/metadata.ts +178 -17
  12. package/dist/generated/openapi-stripped.json +2126 -309
  13. package/dist/generated/path-mapping.d.ts.map +1 -1
  14. package/dist/generated/path-mapping.js +13 -1
  15. package/dist/generated/path-mapping.js.map +1 -1
  16. package/dist/generated/path-mapping.ts +13 -1
  17. package/dist/generated/schema.d.ts +1416 -176
  18. package/dist/generated/services/bookmarks.d.ts +76 -0
  19. package/dist/generated/services/bookmarks.d.ts.map +1 -0
  20. package/dist/generated/services/bookmarks.js +114 -0
  21. package/dist/generated/services/bookmarks.js.map +1 -0
  22. package/dist/generated/services/bookmarks.ts +158 -0
  23. package/dist/generated/services/calendars.d.ts +47 -0
  24. package/dist/generated/services/calendars.d.ts.map +1 -0
  25. package/dist/generated/services/calendars.js +73 -0
  26. package/dist/generated/services/calendars.js.map +1 -0
  27. package/dist/generated/services/calendars.ts +102 -0
  28. package/dist/generated/services/drafts.d.ts +38 -0
  29. package/dist/generated/services/drafts.d.ts.map +1 -0
  30. package/dist/generated/services/drafts.js +40 -0
  31. package/dist/generated/services/drafts.js.map +1 -0
  32. package/dist/generated/services/drafts.ts +67 -0
  33. package/dist/generated/services/everything.d.ts +69 -22
  34. package/dist/generated/services/everything.d.ts.map +1 -1
  35. package/dist/generated/services/everything.js +23 -35
  36. package/dist/generated/services/everything.js.map +1 -1
  37. package/dist/generated/services/everything.ts +86 -49
  38. package/dist/generated/services/index.d.ts +6 -2
  39. package/dist/generated/services/index.d.ts.map +1 -1
  40. package/dist/generated/services/index.js +6 -2
  41. package/dist/generated/services/index.js.map +1 -1
  42. package/dist/generated/services/index.ts +6 -2
  43. package/dist/generated/services/my-assignments.d.ts +52 -0
  44. package/dist/generated/services/my-assignments.d.ts.map +1 -1
  45. package/dist/generated/services/my-assignments.js +71 -0
  46. package/dist/generated/services/my-assignments.js.map +1 -1
  47. package/dist/generated/services/my-assignments.ts +104 -0
  48. package/dist/generated/services/my-notes.d.ts +45 -0
  49. package/dist/generated/services/my-notes.d.ts.map +1 -0
  50. package/dist/generated/services/my-notes.js +62 -0
  51. package/dist/generated/services/my-notes.js.map +1 -0
  52. package/dist/generated/services/my-notes.ts +92 -0
  53. package/dist/generated/services/todos.d.ts +33 -0
  54. package/dist/generated/services/todos.d.ts.map +1 -1
  55. package/dist/generated/services/todos.js +46 -0
  56. package/dist/generated/services/todos.js.map +1 -1
  57. package/dist/generated/services/todos.ts +71 -0
  58. package/dist/hooks/otel.d.ts +1 -1
  59. package/dist/hooks/otel.js +1 -1
  60. package/dist/hooks.d.ts.map +1 -1
  61. package/dist/hooks.js +4 -1
  62. package/dist/hooks.js.map +1 -1
  63. package/dist/index.d.ts +12 -4
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +12 -2
  66. package/dist/index.js.map +1 -1
  67. package/dist/oauth/device-errors.d.ts +29 -0
  68. package/dist/oauth/device-errors.d.ts.map +1 -0
  69. package/dist/oauth/device-errors.js +52 -0
  70. package/dist/oauth/device-errors.js.map +1 -0
  71. package/dist/oauth/device-login.d.ts +50 -0
  72. package/dist/oauth/device-login.d.ts.map +1 -0
  73. package/dist/oauth/device-login.js +118 -0
  74. package/dist/oauth/device-login.js.map +1 -0
  75. package/dist/oauth/device.d.ts +112 -0
  76. package/dist/oauth/device.d.ts.map +1 -0
  77. package/dist/oauth/device.js +746 -0
  78. package/dist/oauth/device.js.map +1 -0
  79. package/dist/oauth/discovery.d.ts.map +1 -1
  80. package/dist/oauth/discovery.js +1 -0
  81. package/dist/oauth/discovery.js.map +1 -1
  82. package/dist/oauth/exchange.d.ts.map +1 -1
  83. package/dist/oauth/exchange.js +75 -9
  84. package/dist/oauth/exchange.js.map +1 -1
  85. package/dist/oauth/index.d.ts +4 -1
  86. package/dist/oauth/index.d.ts.map +1 -1
  87. package/dist/oauth/index.js +4 -0
  88. package/dist/oauth/index.js.map +1 -1
  89. package/dist/oauth/limits.d.ts +15 -0
  90. package/dist/oauth/limits.d.ts.map +1 -0
  91. package/dist/oauth/limits.js +15 -0
  92. package/dist/oauth/limits.js.map +1 -0
  93. package/dist/oauth/token-manager.d.ts.map +1 -1
  94. package/dist/oauth/token-manager.js +15 -4
  95. package/dist/oauth/token-manager.js.map +1 -1
  96. package/dist/oauth/token-store.d.ts.map +1 -1
  97. package/dist/oauth/token-store.js +6 -0
  98. package/dist/oauth/token-store.js.map +1 -1
  99. package/dist/oauth/types.d.ts +35 -3
  100. package/dist/oauth/types.d.ts.map +1 -1
  101. package/dist/pagination.d.ts +6 -2
  102. package/dist/pagination.d.ts.map +1 -1
  103. package/dist/pagination.js +1 -1
  104. package/dist/pagination.js.map +1 -1
  105. package/dist/services/base.d.ts +3 -1
  106. package/dist/services/base.d.ts.map +1 -1
  107. package/dist/services/base.js +16 -5
  108. package/dist/services/base.js.map +1 -1
  109. package/package.json +1 -1
  110. package/src/generated/metadata.ts +178 -17
  111. package/src/generated/openapi-stripped.json +2126 -309
  112. package/src/generated/path-mapping.ts +13 -1
  113. package/src/generated/schema.d.ts +1416 -176
  114. package/src/generated/services/bookmarks.ts +158 -0
  115. package/src/generated/services/calendars.ts +102 -0
  116. package/src/generated/services/drafts.ts +67 -0
  117. package/src/generated/services/everything.ts +86 -49
  118. package/src/generated/services/index.ts +6 -2
  119. package/src/generated/services/my-assignments.ts +104 -0
  120. package/src/generated/services/my-notes.ts +92 -0
  121. package/src/generated/services/todos.ts +71 -0
@@ -21,6 +21,24 @@ due_later_this_week, due_next_week, due_later */
21
21
  scope?: string;
22
22
  }
23
23
 
24
+ /**
25
+ * Request parameters for prioritizeAssignment.
26
+ */
27
+ export interface PrioritizeAssignmentMyAssignmentRequest {
28
+ /** The recording id to prioritize. */
29
+ id: number;
30
+ }
31
+
32
+ /**
33
+ * Request parameters for reorderUpNext.
34
+ */
35
+ export interface ReorderUpNextMyAssignmentRequest {
36
+ /** The recording id to move, chosen the same way as when prioritizing. */
37
+ sourceId: number;
38
+ /** The 1-based position to move it to. */
39
+ position: number;
40
+ }
41
+
24
42
 
25
43
  // =============================================================================
26
44
  // Service
@@ -106,4 +124,90 @@ export class MyAssignmentsService extends BaseService {
106
124
  );
107
125
  return response ?? [];
108
126
  }
127
+
128
+ /**
129
+ * Add a recording to Up Next — the current user's ordered list of prioritized
130
+ * @param req - Resource request parameters
131
+ * @returns void
132
+ * @throws {BasecampError} If the request fails
133
+ *
134
+ * @example
135
+ * ```ts
136
+ * await client.myAssignments.prioritizeAssignment({ id: 1 });
137
+ * ```
138
+ */
139
+ async prioritizeAssignment(req: PrioritizeAssignmentMyAssignmentRequest): Promise<void> {
140
+ await this.request(
141
+ {
142
+ service: "MyAssignments",
143
+ operation: "PrioritizeAssignment",
144
+ resourceType: "resource",
145
+ isMutation: true,
146
+ },
147
+ () =>
148
+ this.client.POST("/my/priorities.json", {
149
+ body: {
150
+ id: req.id,
151
+ },
152
+ })
153
+ );
154
+ }
155
+
156
+ /**
157
+ * Remove a recording from Up Next. Exact-target:
158
+ * @param recordingId - The recording ID
159
+ * @returns void
160
+ * @throws {BasecampError} If the request fails
161
+ *
162
+ * @example
163
+ * ```ts
164
+ * await client.myAssignments.deprioritizeAssignment(123);
165
+ * ```
166
+ */
167
+ async deprioritizeAssignment(recordingId: number): Promise<void> {
168
+ await this.request(
169
+ {
170
+ service: "MyAssignments",
171
+ operation: "DeprioritizeAssignment",
172
+ resourceType: "resource",
173
+ isMutation: true,
174
+ resourceId: recordingId,
175
+ },
176
+ () =>
177
+ this.client.DELETE("/my/priorities/{recordingId}", {
178
+ params: {
179
+ path: { recordingId },
180
+ },
181
+ })
182
+ );
183
+ }
184
+
185
+ /**
186
+ * Move an already-prioritized recording to a new 1-based position in Up Next
187
+ * @param req - Resource request parameters
188
+ * @returns void
189
+ * @throws {BasecampError} If the request fails
190
+ *
191
+ * @example
192
+ * ```ts
193
+ * await client.myAssignments.reorderUpNext({ sourceId: 1, position: 1 });
194
+ * ```
195
+ */
196
+ async reorderUpNext(req: ReorderUpNextMyAssignmentRequest): Promise<void> {
197
+ await this.request(
198
+ {
199
+ service: "MyAssignments",
200
+ operation: "ReorderUpNext",
201
+ resourceType: "resource",
202
+ isMutation: true,
203
+ },
204
+ () =>
205
+ this.client.POST("/my/priority_moves.json", {
206
+ body: {
207
+ source_id: req.sourceId,
208
+ position: req.position,
209
+ },
210
+ })
211
+ );
212
+ }
109
213
  }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * MyNotes 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
+ /** MyNote entity from the Basecamp API. */
9
+ export type MyNote = components["schemas"]["MyNote"];
10
+ /**
11
+ * Request parameters for updateMyNote.
12
+ */
13
+ export interface UpdateMyNoteMyNoteRequest {
14
+ /** Note */
15
+ note: components["schemas"]["MyNoteAttributes"];
16
+ }
17
+ /**
18
+ * Service for MyNotes operations.
19
+ */
20
+ export declare class MyNotesService extends BaseService {
21
+ /**
22
+ * Get the authenticated user's note — a per-person notebook singleton at
23
+ * @returns The MyNote
24
+ * @throws {BasecampError} If the resource is not found
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * const result = await client.myNotes.getMyNote();
29
+ * ```
30
+ */
31
+ getMyNote(): Promise<MyNote>;
32
+ /**
33
+ * Replace the note's content, recording a new revision server-side. The first
34
+ * @param req - My_note update parameters
35
+ * @returns The MyNote
36
+ * @throws {BasecampError} If the resource is not found or fields are invalid
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * const result = await client.myNotes.updateMyNote({ note: { content: "Hello world" } });
41
+ * ```
42
+ */
43
+ updateMyNote(req: UpdateMyNoteMyNoteRequest): Promise<MyNote>;
44
+ }
45
+ //# sourceMappingURL=my-notes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"my-notes.d.ts","sourceRoot":"","sources":["../../../src/generated/services/my-notes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO/C,2CAA2C;AAC3C,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW;IACX,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;CACjD;AAOD;;GAEG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAE7C;;;;;;;;;OASG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAelC;;;;;;;;;;OAUG;IACG,YAAY,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC;CAoBpE"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * MyNotes 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 MyNotes operations.
13
+ */
14
+ export class MyNotesService extends BaseService {
15
+ /**
16
+ * Get the authenticated user's note — a per-person notebook singleton at
17
+ * @returns The MyNote
18
+ * @throws {BasecampError} If the resource is not found
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const result = await client.myNotes.getMyNote();
23
+ * ```
24
+ */
25
+ async getMyNote() {
26
+ const response = await this.request({
27
+ service: "MyNotes",
28
+ operation: "GetMyNote",
29
+ resourceType: "my_note",
30
+ isMutation: false,
31
+ }, () => this.client.GET("/my/notes.json", {}));
32
+ return response;
33
+ }
34
+ /**
35
+ * Replace the note's content, recording a new revision server-side. The first
36
+ * @param req - My_note update parameters
37
+ * @returns The MyNote
38
+ * @throws {BasecampError} If the resource is not found or fields are invalid
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * const result = await client.myNotes.updateMyNote({ note: { content: "Hello world" } });
43
+ * ```
44
+ */
45
+ async updateMyNote(req) {
46
+ if (!req.note) {
47
+ throw Errors.validation("Note is required");
48
+ }
49
+ const response = await this.request({
50
+ service: "MyNotes",
51
+ operation: "UpdateMyNote",
52
+ resourceType: "my_note",
53
+ isMutation: true,
54
+ }, () => this.client.PUT("/my/notes.json", {
55
+ body: {
56
+ note: req.note,
57
+ },
58
+ }));
59
+ return response;
60
+ }
61
+ }
62
+ //# sourceMappingURL=my-notes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"my-notes.js","sourceRoot":"","sources":["../../../src/generated/services/my-notes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAkBzC,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,WAAW;IAE7C;;;;;;;;;OASG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,WAAW;YACtB,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,KAAK;SAClB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,EACjC,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,YAAY,CAAC,GAA8B;QAC/C,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,SAAS;YAClB,SAAS,EAAE,cAAc;YACzB,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,IAAI;SACjB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE;YAChC,IAAI,EAAE;gBACJ,IAAI,EAAE,GAAG,CAAC,IAAI;aACf;SACF,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * MyNotes 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
+ /** MyNote entity from the Basecamp API. */
16
+ export type MyNote = components["schemas"]["MyNote"];
17
+
18
+ /**
19
+ * Request parameters for updateMyNote.
20
+ */
21
+ export interface UpdateMyNoteMyNoteRequest {
22
+ /** Note */
23
+ note: components["schemas"]["MyNoteAttributes"];
24
+ }
25
+
26
+
27
+ // =============================================================================
28
+ // Service
29
+ // =============================================================================
30
+
31
+ /**
32
+ * Service for MyNotes operations.
33
+ */
34
+ export class MyNotesService extends BaseService {
35
+
36
+ /**
37
+ * Get the authenticated user's note — a per-person notebook singleton at
38
+ * @returns The MyNote
39
+ * @throws {BasecampError} If the resource is not found
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * const result = await client.myNotes.getMyNote();
44
+ * ```
45
+ */
46
+ async getMyNote(): Promise<MyNote> {
47
+ const response = await this.request(
48
+ {
49
+ service: "MyNotes",
50
+ operation: "GetMyNote",
51
+ resourceType: "my_note",
52
+ isMutation: false,
53
+ },
54
+ () =>
55
+ this.client.GET("/my/notes.json", {
56
+ })
57
+ );
58
+ return response;
59
+ }
60
+
61
+ /**
62
+ * Replace the note's content, recording a new revision server-side. The first
63
+ * @param req - My_note update parameters
64
+ * @returns The MyNote
65
+ * @throws {BasecampError} If the resource is not found or fields are invalid
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * const result = await client.myNotes.updateMyNote({ note: { content: "Hello world" } });
70
+ * ```
71
+ */
72
+ async updateMyNote(req: UpdateMyNoteMyNoteRequest): Promise<MyNote> {
73
+ if (!req.note) {
74
+ throw Errors.validation("Note is required");
75
+ }
76
+ const response = await this.request(
77
+ {
78
+ service: "MyNotes",
79
+ operation: "UpdateMyNote",
80
+ resourceType: "my_note",
81
+ isMutation: true,
82
+ },
83
+ () =>
84
+ this.client.PUT("/my/notes.json", {
85
+ body: {
86
+ note: req.note,
87
+ },
88
+ })
89
+ );
90
+ return response;
91
+ }
92
+ }
@@ -9,6 +9,25 @@ import { ListResult } from "../../pagination.js";
9
9
  import type { PaginationOptions } from "../../pagination.js";
10
10
  /** Todo entity from the Basecamp API. */
11
11
  export type Todo = components["schemas"]["Todo"];
12
+ /**
13
+ * Request parameters for createTodosetTodo.
14
+ */
15
+ export interface CreateTodosetTodoTodoRequest {
16
+ /** Text content */
17
+ content: string;
18
+ /** Rich text description (HTML) */
19
+ description?: string;
20
+ /** Person IDs to assign to */
21
+ assigneeIds?: number[];
22
+ /** Person IDs to notify on completion */
23
+ completionSubscriberIds?: number[];
24
+ /** Whether to send notifications to relevant people */
25
+ notify?: boolean;
26
+ /** Due date (YYYY-MM-DD) */
27
+ dueOn?: string;
28
+ /** Start date (YYYY-MM-DD) */
29
+ startsOn?: string;
30
+ }
12
31
  /**
13
32
  * Options for list.
14
33
  */
@@ -69,6 +88,20 @@ export interface RepositionTodoRequest {
69
88
  * Service for Todos operations.
70
89
  */
71
90
  export declare class TodosService extends BaseService {
91
+ /**
92
+ * Create a to-do directly under a project's to-do set, outside any to-do list.
93
+ * @param bucketId - The bucket ID
94
+ * @param todosetId - The todoset ID
95
+ * @param req - Todo creation parameters
96
+ * @returns The Todo
97
+ * @throws {BasecampError} If required fields are missing or invalid
98
+ *
99
+ * @example
100
+ * ```ts
101
+ * const result = await client.todos.createTodosetTodo(123, 123, { content: "Hello world" });
102
+ * ```
103
+ */
104
+ createTodosetTodo(bucketId: number, todosetId: number, req: CreateTodosetTodoTodoRequest): Promise<Todo>;
72
105
  /**
73
106
  * List todos in a todolist
74
107
  * @param todolistId - The todolist ID
@@ -1 +1 @@
1
- {"version":3,"file":"todos.d.ts","sourceRoot":"","sources":["../../../src/generated/services/todos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"todos.d.ts","sourceRoot":"","sources":["../../../src/generated/services/todos.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,52 @@ import { Errors } from "../../errors.js";
12
12
  * Service for Todos operations.
13
13
  */
14
14
  export class TodosService extends BaseService {
15
+ /**
16
+ * Create a to-do directly under a project's to-do set, outside any to-do list.
17
+ * @param bucketId - The bucket ID
18
+ * @param todosetId - The todoset ID
19
+ * @param req - Todo creation parameters
20
+ * @returns The Todo
21
+ * @throws {BasecampError} If required fields are missing or invalid
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * const result = await client.todos.createTodosetTodo(123, 123, { content: "Hello world" });
26
+ * ```
27
+ */
28
+ async createTodosetTodo(bucketId, todosetId, req) {
29
+ if (!req.content) {
30
+ throw Errors.validation("Content is required");
31
+ }
32
+ if (req.dueOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.dueOn)) {
33
+ throw Errors.validation("Due on must be in YYYY-MM-DD format");
34
+ }
35
+ if (req.startsOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.startsOn)) {
36
+ throw Errors.validation("Starts on must be in YYYY-MM-DD format");
37
+ }
38
+ const response = await this.request({
39
+ service: "Todos",
40
+ operation: "CreateTodosetTodo",
41
+ resourceType: "todo",
42
+ isMutation: true,
43
+ projectId: bucketId,
44
+ resourceId: todosetId,
45
+ }, () => this.client.POST("/buckets/{bucketId}/todosets/{todosetId}/todos.json", {
46
+ params: {
47
+ path: { bucketId, todosetId },
48
+ },
49
+ body: {
50
+ content: req.content,
51
+ description: req.description,
52
+ assignee_ids: req.assigneeIds,
53
+ completion_subscriber_ids: req.completionSubscriberIds,
54
+ notify: req.notify,
55
+ due_on: req.dueOn,
56
+ starts_on: req.startsOn,
57
+ },
58
+ }));
59
+ return response;
60
+ }
15
61
  /**
16
62
  * List todos in a todolist
17
63
  * @param todolistId - The todolist ID
@@ -1 +1 @@
1
- {"version":3,"file":"todos.js","sourceRoot":"","sources":["../../../src/generated/services/todos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"todos.js","sourceRoot":"","sources":["../../../src/generated/services/todos.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,26 @@ import { Errors } from "../../errors.js";
17
17
  /** Todo entity from the Basecamp API. */
18
18
  export type Todo = components["schemas"]["Todo"];
19
19
 
20
+ /**
21
+ * Request parameters for createTodosetTodo.
22
+ */
23
+ export interface CreateTodosetTodoTodoRequest {
24
+ /** Text content */
25
+ content: string;
26
+ /** Rich text description (HTML) */
27
+ description?: string;
28
+ /** Person IDs to assign to */
29
+ assigneeIds?: number[];
30
+ /** Person IDs to notify on completion */
31
+ completionSubscriberIds?: number[];
32
+ /** Whether to send notifications to relevant people */
33
+ notify?: boolean;
34
+ /** Due date (YYYY-MM-DD) */
35
+ dueOn?: string;
36
+ /** Start date (YYYY-MM-DD) */
37
+ startsOn?: string;
38
+ }
39
+
20
40
  /**
21
41
  * Options for list.
22
42
  */
@@ -87,6 +107,57 @@ export interface RepositionTodoRequest {
87
107
  */
88
108
  export class TodosService extends BaseService {
89
109
 
110
+ /**
111
+ * Create a to-do directly under a project's to-do set, outside any to-do list.
112
+ * @param bucketId - The bucket ID
113
+ * @param todosetId - The todoset ID
114
+ * @param req - Todo creation parameters
115
+ * @returns The Todo
116
+ * @throws {BasecampError} If required fields are missing or invalid
117
+ *
118
+ * @example
119
+ * ```ts
120
+ * const result = await client.todos.createTodosetTodo(123, 123, { content: "Hello world" });
121
+ * ```
122
+ */
123
+ async createTodosetTodo(bucketId: number, todosetId: number, req: CreateTodosetTodoTodoRequest): Promise<Todo> {
124
+ if (!req.content) {
125
+ throw Errors.validation("Content is required");
126
+ }
127
+ if (req.dueOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.dueOn)) {
128
+ throw Errors.validation("Due on must be in YYYY-MM-DD format");
129
+ }
130
+ if (req.startsOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.startsOn)) {
131
+ throw Errors.validation("Starts on must be in YYYY-MM-DD format");
132
+ }
133
+ const response = await this.request(
134
+ {
135
+ service: "Todos",
136
+ operation: "CreateTodosetTodo",
137
+ resourceType: "todo",
138
+ isMutation: true,
139
+ projectId: bucketId,
140
+ resourceId: todosetId,
141
+ },
142
+ () =>
143
+ this.client.POST("/buckets/{bucketId}/todosets/{todosetId}/todos.json", {
144
+ params: {
145
+ path: { bucketId, todosetId },
146
+ },
147
+ body: {
148
+ content: req.content,
149
+ description: req.description,
150
+ assignee_ids: req.assigneeIds,
151
+ completion_subscriber_ids: req.completionSubscriberIds,
152
+ notify: req.notify,
153
+ due_on: req.dueOn,
154
+ starts_on: req.startsOn,
155
+ },
156
+ })
157
+ );
158
+ return response;
159
+ }
160
+
90
161
  /**
91
162
  * List todos in a todolist
92
163
  * @param todolistId - The todolist ID
@@ -128,7 +128,7 @@ export interface OtelHooksOptions {
128
128
  * });
129
129
  *
130
130
  * // Operations will create spans and record metrics
131
- * const todos = await client.todos.list(projectId, todolistId);
131
+ * const todos = await client.todos.list(todolistId);
132
132
  * ```
133
133
  */
134
134
  export declare function otelHooks(options?: OtelHooksOptions): BasecampHooks;
@@ -88,7 +88,7 @@ function requestKey() {
88
88
  * });
89
89
  *
90
90
  * // Operations will create spans and record metrics
91
- * const todos = await client.todos.list(projectId, todolistId);
91
+ * const todos = await client.todos.list(todolistId);
92
92
  * ```
93
93
  */
94
94
  export function otelHooks(options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,kCAAkC;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAE7C;;;OAGG;IACH,cAAc,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAEpE;;;OAGG;IACH,cAAc,CAAC,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IAEzC;;;OAGG;IACH,YAAY,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAE9D;;;OAGG;IACH,OAAO,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACnF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE,GAAG,aAAa,CA+DnE;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qDAAqD;IACrD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CAClD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,aAAa,CA4D7E;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,aAAa,CAEzC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,aAAa,EACtD,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,QAAQ,EAAE,CAAC,EACX,GAAG,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GACjD,IAAI,CAYN"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,kCAAkC;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAE7C;;;OAGG;IACH,cAAc,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAEpE;;;OAGG;IACH,cAAc,CAAC,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IAEzC;;;OAGG;IACH,YAAY,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAE9D;;;OAGG;IACH,OAAO,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACnF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE,GAAG,aAAa,CA+DnE;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qDAAqD;IACrD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CAClD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,aAAa,CA+D7E;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,aAAa,CAEzC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,aAAa,EACtD,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,QAAQ,EAAE,CAAC,EACX,GAAG,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GACjD,IAAI,CAYN"}
package/dist/hooks.js CHANGED
@@ -163,7 +163,10 @@ export function consoleHooks(options = {}) {
163
163
  : undefined,
164
164
  onRetry: logRetries
165
165
  ? (info, attempt, error, delayMs) => {
166
- logger.warn(`[Basecamp] Retrying ${info.method} ${info.url} (attempt ${attempt + 1}, waiting ${delayMs}ms): ${error.message}`);
166
+ // `attempt` is already the UPCOMING attempt per SPEC section 7 — print it
167
+ // as given. It used to be incremented here, which happened to read
168
+ // correctly only because the callers passed the failed attempt instead.
169
+ logger.warn(`[Basecamp] Retrying ${info.method} ${info.url} (attempt ${attempt}, waiting ${delayMs}ms): ${error.message}`);
167
170
  }
168
171
  : undefined,
169
172
  };
package/dist/hooks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}