@37signals/basecamp 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +600 -0
- package/dist/auth-strategy.d.ts +36 -0
- package/dist/auth-strategy.d.ts.map +1 -0
- package/dist/auth-strategy.js +33 -0
- package/dist/auth-strategy.js.map +1 -0
- package/dist/client.d.ts +224 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +715 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +137 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +269 -0
- package/dist/errors.js.map +1 -0
- package/dist/generated/metadata.json +2281 -0
- package/dist/generated/openapi-stripped.json +21268 -0
- package/dist/generated/path-mapping.d.ts +8 -0
- package/dist/generated/path-mapping.d.ts.map +1 -0
- package/dist/generated/path-mapping.js +192 -0
- package/dist/generated/path-mapping.js.map +1 -0
- package/dist/generated/path-mapping.ts +199 -0
- package/dist/generated/schema.d.ts +14883 -0
- package/dist/generated/services/attachments.d.ts +27 -0
- package/dist/generated/services/attachments.d.ts.map +1 -0
- package/dist/generated/services/attachments.js +49 -0
- package/dist/generated/services/attachments.js.map +1 -0
- package/dist/generated/services/attachments.ts +59 -0
- package/dist/generated/services/boosts.d.ts +114 -0
- package/dist/generated/services/boosts.d.ts.map +1 -0
- package/dist/generated/services/boosts.js +179 -0
- package/dist/generated/services/boosts.js.map +1 -0
- package/dist/generated/services/boosts.ts +250 -0
- package/dist/generated/services/campfires.d.ts +202 -0
- package/dist/generated/services/campfires.d.ts.map +1 -0
- package/dist/generated/services/campfires.js +309 -0
- package/dist/generated/services/campfires.js.map +1 -0
- package/dist/generated/services/campfires.ts +433 -0
- package/dist/generated/services/card-columns.d.ts +163 -0
- package/dist/generated/services/card-columns.d.ts.map +1 -0
- package/dist/generated/services/card-columns.js +264 -0
- package/dist/generated/services/card-columns.js.map +1 -0
- package/dist/generated/services/card-columns.ts +360 -0
- package/dist/generated/services/card-steps.d.ts +105 -0
- package/dist/generated/services/card-steps.d.ts.map +1 -0
- package/dist/generated/services/card-steps.js +148 -0
- package/dist/generated/services/card-steps.js.map +1 -0
- package/dist/generated/services/card-steps.ts +221 -0
- package/dist/generated/services/card-tables.d.ts +27 -0
- package/dist/generated/services/card-tables.d.ts.map +1 -0
- package/dist/generated/services/card-tables.js +40 -0
- package/dist/generated/services/card-tables.js.map +1 -0
- package/dist/generated/services/card-tables.ts +55 -0
- package/dist/generated/services/cards.d.ts +118 -0
- package/dist/generated/services/cards.d.ts.map +1 -0
- package/dist/generated/services/cards.js +166 -0
- package/dist/generated/services/cards.js.map +1 -0
- package/dist/generated/services/cards.ts +247 -0
- package/dist/generated/services/checkins.d.ts +278 -0
- package/dist/generated/services/checkins.d.ts.map +1 -0
- package/dist/generated/services/checkins.js +420 -0
- package/dist/generated/services/checkins.js.map +1 -0
- package/dist/generated/services/checkins.ts +600 -0
- package/dist/generated/services/client-approvals.d.ts +45 -0
- package/dist/generated/services/client-approvals.d.ts.map +1 -0
- package/dist/generated/services/client-approvals.js +58 -0
- package/dist/generated/services/client-approvals.js.map +1 -0
- package/dist/generated/services/client-approvals.ts +89 -0
- package/dist/generated/services/client-correspondences.d.ts +45 -0
- package/dist/generated/services/client-correspondences.d.ts.map +1 -0
- package/dist/generated/services/client-correspondences.js +58 -0
- package/dist/generated/services/client-correspondences.js.map +1 -0
- package/dist/generated/services/client-correspondences.ts +89 -0
- package/dist/generated/services/client-replies.d.ts +47 -0
- package/dist/generated/services/client-replies.d.ts.map +1 -0
- package/dist/generated/services/client-replies.js +65 -0
- package/dist/generated/services/client-replies.js.map +1 -0
- package/dist/generated/services/client-replies.ts +95 -0
- package/dist/generated/services/client-visibility.d.ts +35 -0
- package/dist/generated/services/client-visibility.d.ts.map +1 -0
- package/dist/generated/services/client-visibility.js +44 -0
- package/dist/generated/services/client-visibility.js.map +1 -0
- package/dist/generated/services/client-visibility.ts +68 -0
- package/dist/generated/services/comments.d.ts +86 -0
- package/dist/generated/services/comments.d.ts.map +1 -0
- package/dist/generated/services/comments.js +129 -0
- package/dist/generated/services/comments.js.map +1 -0
- package/dist/generated/services/comments.ts +185 -0
- package/dist/generated/services/documents.d.ts +92 -0
- package/dist/generated/services/documents.d.ts.map +1 -0
- package/dist/generated/services/documents.js +129 -0
- package/dist/generated/services/documents.js.map +1 -0
- package/dist/generated/services/documents.ts +191 -0
- package/dist/generated/services/events.d.ts +34 -0
- package/dist/generated/services/events.d.ts.map +1 -0
- package/dist/generated/services/events.js +39 -0
- package/dist/generated/services/events.js.map +1 -0
- package/dist/generated/services/events.ts +64 -0
- package/dist/generated/services/forwards.d.ts +112 -0
- package/dist/generated/services/forwards.d.ts.map +1 -0
- package/dist/generated/services/forwards.js +172 -0
- package/dist/generated/services/forwards.js.map +1 -0
- package/dist/generated/services/forwards.ts +241 -0
- package/dist/generated/services/index.d.ts +39 -0
- package/dist/generated/services/index.d.ts.map +1 -0
- package/dist/generated/services/index.js +39 -0
- package/dist/generated/services/index.js.map +1 -0
- package/dist/generated/services/index.ts +38 -0
- package/dist/generated/services/lineup.d.ts +67 -0
- package/dist/generated/services/lineup.d.ts.map +1 -0
- package/dist/generated/services/lineup.js +99 -0
- package/dist/generated/services/lineup.js.map +1 -0
- package/dist/generated/services/lineup.ts +143 -0
- package/dist/generated/services/message-boards.d.ts +27 -0
- package/dist/generated/services/message-boards.d.ts.map +1 -0
- package/dist/generated/services/message-boards.js +40 -0
- package/dist/generated/services/message-boards.js.map +1 -0
- package/dist/generated/services/message-boards.ts +55 -0
- package/dist/generated/services/message-types.d.ts +100 -0
- package/dist/generated/services/message-types.d.ts.map +1 -0
- package/dist/generated/services/message-types.js +144 -0
- package/dist/generated/services/message-types.js.map +1 -0
- package/dist/generated/services/message-types.ts +210 -0
- package/dist/generated/services/messages.d.ts +122 -0
- package/dist/generated/services/messages.d.ts.map +1 -0
- package/dist/generated/services/messages.js +180 -0
- package/dist/generated/services/messages.js.map +1 -0
- package/dist/generated/services/messages.ts +258 -0
- package/dist/generated/services/people.d.ts +122 -0
- package/dist/generated/services/people.d.ts.map +1 -0
- package/dist/generated/services/people.js +167 -0
- package/dist/generated/services/people.js.map +1 -0
- package/dist/generated/services/people.ts +252 -0
- package/dist/generated/services/projects.d.ts +109 -0
- package/dist/generated/services/projects.d.ts.map +1 -0
- package/dist/generated/services/projects.js +153 -0
- package/dist/generated/services/projects.js.map +1 -0
- package/dist/generated/services/projects.ts +224 -0
- package/dist/generated/services/recordings.d.ts +93 -0
- package/dist/generated/services/recordings.d.ts.map +1 -0
- package/dist/generated/services/recordings.js +138 -0
- package/dist/generated/services/recordings.js.map +1 -0
- package/dist/generated/services/recordings.ts +191 -0
- package/dist/generated/services/reports.d.ts +90 -0
- package/dist/generated/services/reports.d.ts.map +1 -0
- package/dist/generated/services/reports.js +124 -0
- package/dist/generated/services/reports.js.map +1 -0
- package/dist/generated/services/reports.ts +187 -0
- package/dist/generated/services/schedules.d.ts +162 -0
- package/dist/generated/services/schedules.d.ts.map +1 -0
- package/dist/generated/services/schedules.js +228 -0
- package/dist/generated/services/schedules.js.map +1 -0
- package/dist/generated/services/schedules.ts +335 -0
- package/dist/generated/services/search.d.ts +45 -0
- package/dist/generated/services/search.d.ts.map +1 -0
- package/dist/generated/services/search.js +56 -0
- package/dist/generated/services/search.js.map +1 -0
- package/dist/generated/services/search.ts +89 -0
- package/dist/generated/services/subscriptions.d.ts +73 -0
- package/dist/generated/services/subscriptions.d.ts.map +1 -0
- package/dist/generated/services/subscriptions.js +119 -0
- package/dist/generated/services/subscriptions.js.map +1 -0
- package/dist/generated/services/subscriptions.ts +160 -0
- package/dist/generated/services/templates.d.ts +140 -0
- package/dist/generated/services/templates.d.ts.map +1 -0
- package/dist/generated/services/templates.js +207 -0
- package/dist/generated/services/templates.js.map +1 -0
- package/dist/generated/services/templates.ts +294 -0
- package/dist/generated/services/timeline.d.ts +31 -0
- package/dist/generated/services/timeline.d.ts.map +1 -0
- package/dist/generated/services/timeline.js +39 -0
- package/dist/generated/services/timeline.js.map +1 -0
- package/dist/generated/services/timeline.ts +62 -0
- package/dist/generated/services/timesheets.d.ts +145 -0
- package/dist/generated/services/timesheets.d.ts.map +1 -0
- package/dist/generated/services/timesheets.js +186 -0
- package/dist/generated/services/timesheets.js.map +1 -0
- package/dist/generated/services/timesheets.ts +289 -0
- package/dist/generated/services/todolist-groups.d.ts +74 -0
- package/dist/generated/services/todolist-groups.d.ts.map +1 -0
- package/dist/generated/services/todolist-groups.js +100 -0
- package/dist/generated/services/todolist-groups.js.map +1 -0
- package/dist/generated/services/todolist-groups.ts +151 -0
- package/dist/generated/services/todolists.d.ts +95 -0
- package/dist/generated/services/todolists.d.ts.map +1 -0
- package/dist/generated/services/todolists.js +130 -0
- package/dist/generated/services/todolists.js.map +1 -0
- package/dist/generated/services/todolists.ts +192 -0
- package/dist/generated/services/todos.d.ts +175 -0
- package/dist/generated/services/todos.d.ts.map +1 -0
- package/dist/generated/services/todos.js +255 -0
- package/dist/generated/services/todos.js.map +1 -0
- package/dist/generated/services/todos.ts +369 -0
- package/dist/generated/services/todosets.d.ts +27 -0
- package/dist/generated/services/todosets.d.ts.map +1 -0
- package/dist/generated/services/todosets.js +40 -0
- package/dist/generated/services/todosets.js.map +1 -0
- package/dist/generated/services/todosets.ts +55 -0
- package/dist/generated/services/tools.d.ts +122 -0
- package/dist/generated/services/tools.d.ts.map +1 -0
- package/dist/generated/services/tools.js +197 -0
- package/dist/generated/services/tools.js.map +1 -0
- package/dist/generated/services/tools.ts +267 -0
- package/dist/generated/services/uploads.d.ts +109 -0
- package/dist/generated/services/uploads.d.ts.map +1 -0
- package/dist/generated/services/uploads.js +153 -0
- package/dist/generated/services/uploads.js.map +1 -0
- package/dist/generated/services/uploads.ts +227 -0
- package/dist/generated/services/vaults.d.ts +86 -0
- package/dist/generated/services/vaults.d.ts.map +1 -0
- package/dist/generated/services/vaults.js +126 -0
- package/dist/generated/services/vaults.js.map +1 -0
- package/dist/generated/services/vaults.ts +182 -0
- package/dist/generated/services/webhooks.d.ts +106 -0
- package/dist/generated/services/webhooks.d.ts.map +1 -0
- package/dist/generated/services/webhooks.js +157 -0
- package/dist/generated/services/webhooks.js.map +1 -0
- package/dist/generated/services/webhooks.ts +226 -0
- package/dist/hooks/otel.d.ts +136 -0
- package/dist/hooks/otel.d.ts.map +1 -0
- package/dist/hooks/otel.js +240 -0
- package/dist/hooks/otel.js.map +1 -0
- package/dist/hooks.d.ts +171 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +196 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +90 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +122 -0
- package/dist/index.js.map +1 -0
- package/dist/oauth/authorize.d.ts +48 -0
- package/dist/oauth/authorize.d.ts.map +1 -0
- package/dist/oauth/authorize.js +56 -0
- package/dist/oauth/authorize.js.map +1 -0
- package/dist/oauth/callback-server.d.ts +56 -0
- package/dist/oauth/callback-server.d.ts.map +1 -0
- package/dist/oauth/callback-server.js +150 -0
- package/dist/oauth/callback-server.js.map +1 -0
- package/dist/oauth/discovery.d.ts +54 -0
- package/dist/oauth/discovery.d.ts.map +1 -0
- package/dist/oauth/discovery.js +116 -0
- package/dist/oauth/discovery.js.map +1 -0
- package/dist/oauth/exchange.d.ts +96 -0
- package/dist/oauth/exchange.d.ts.map +1 -0
- package/dist/oauth/exchange.js +324 -0
- package/dist/oauth/exchange.js.map +1 -0
- package/dist/oauth/identity.d.ts +30 -0
- package/dist/oauth/identity.d.ts.map +1 -0
- package/dist/oauth/identity.js +82 -0
- package/dist/oauth/identity.js.map +1 -0
- package/dist/oauth/index.d.ts +50 -0
- package/dist/oauth/index.d.ts.map +1 -0
- package/dist/oauth/index.js +58 -0
- package/dist/oauth/index.js.map +1 -0
- package/dist/oauth/interactive-login.d.ts +62 -0
- package/dist/oauth/interactive-login.d.ts.map +1 -0
- package/dist/oauth/interactive-login.js +106 -0
- package/dist/oauth/interactive-login.js.map +1 -0
- package/dist/oauth/pkce.d.ts +68 -0
- package/dist/oauth/pkce.d.ts.map +1 -0
- package/dist/oauth/pkce.js +80 -0
- package/dist/oauth/pkce.js.map +1 -0
- package/dist/oauth/token-manager.d.ts +92 -0
- package/dist/oauth/token-manager.d.ts.map +1 -0
- package/dist/oauth/token-manager.js +126 -0
- package/dist/oauth/token-manager.js.map +1 -0
- package/dist/oauth/token-store.d.ts +45 -0
- package/dist/oauth/token-store.d.ts.map +1 -0
- package/dist/oauth/token-store.js +105 -0
- package/dist/oauth/token-store.js.map +1 -0
- package/dist/oauth/types.d.ts +98 -0
- package/dist/oauth/types.d.ts.map +1 -0
- package/dist/oauth/types.js +8 -0
- package/dist/oauth/types.js.map +1 -0
- package/dist/pagination-utils.d.ts +27 -0
- package/dist/pagination-utils.d.ts.map +1 -0
- package/dist/pagination-utils.js +54 -0
- package/dist/pagination-utils.js.map +1 -0
- package/dist/pagination.d.ts +56 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/pagination.js +57 -0
- package/dist/pagination.js.map +1 -0
- package/dist/security.d.ts +68 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +107 -0
- package/dist/security.js.map +1 -0
- package/dist/services/authorization.d.ts +124 -0
- package/dist/services/authorization.d.ts.map +1 -0
- package/dist/services/authorization.js +117 -0
- package/dist/services/authorization.js.map +1 -0
- package/dist/services/base.d.ts +102 -0
- package/dist/services/base.d.ts.map +1 -0
- package/dist/services/base.js +230 -0
- package/dist/services/base.js.map +1 -0
- package/dist/webhooks/adapters/node-http.d.ts +14 -0
- package/dist/webhooks/adapters/node-http.d.ts.map +1 -0
- package/dist/webhooks/adapters/node-http.js +60 -0
- package/dist/webhooks/adapters/node-http.js.map +1 -0
- package/dist/webhooks/events.d.ts +52 -0
- package/dist/webhooks/events.d.ts.map +1 -0
- package/dist/webhooks/events.js +52 -0
- package/dist/webhooks/events.js.map +1 -0
- package/dist/webhooks/handler.d.ts +62 -0
- package/dist/webhooks/handler.d.ts.map +1 -0
- package/dist/webhooks/handler.js +226 -0
- package/dist/webhooks/handler.js.map +1 -0
- package/dist/webhooks/index.d.ts +5 -0
- package/dist/webhooks/index.d.ts.map +1 -0
- package/dist/webhooks/index.js +5 -0
- package/dist/webhooks/index.js.map +1 -0
- package/dist/webhooks/verify.d.ts +11 -0
- package/dist/webhooks/verify.d.ts.map +1 -0
- package/dist/webhooks/verify.js +25 -0
- package/dist/webhooks/verify.js.map +1 -0
- package/package.json +70 -0
- package/src/generated/metadata.json +2281 -0
- package/src/generated/openapi-stripped.json +21268 -0
- package/src/generated/path-mapping.ts +199 -0
- package/src/generated/schema.d.ts +14883 -0
- package/src/generated/services/attachments.ts +59 -0
- package/src/generated/services/boosts.ts +250 -0
- package/src/generated/services/campfires.ts +433 -0
- package/src/generated/services/card-columns.ts +360 -0
- package/src/generated/services/card-steps.ts +221 -0
- package/src/generated/services/card-tables.ts +55 -0
- package/src/generated/services/cards.ts +247 -0
- package/src/generated/services/checkins.ts +600 -0
- package/src/generated/services/client-approvals.ts +89 -0
- package/src/generated/services/client-correspondences.ts +89 -0
- package/src/generated/services/client-replies.ts +95 -0
- package/src/generated/services/client-visibility.ts +68 -0
- package/src/generated/services/comments.ts +185 -0
- package/src/generated/services/documents.ts +191 -0
- package/src/generated/services/events.ts +64 -0
- package/src/generated/services/forwards.ts +241 -0
- package/src/generated/services/index.ts +38 -0
- package/src/generated/services/lineup.ts +143 -0
- package/src/generated/services/message-boards.ts +55 -0
- package/src/generated/services/message-types.ts +210 -0
- package/src/generated/services/messages.ts +258 -0
- package/src/generated/services/people.ts +252 -0
- package/src/generated/services/projects.ts +224 -0
- package/src/generated/services/recordings.ts +191 -0
- package/src/generated/services/reports.ts +187 -0
- package/src/generated/services/schedules.ts +335 -0
- package/src/generated/services/search.ts +89 -0
- package/src/generated/services/subscriptions.ts +160 -0
- package/src/generated/services/templates.ts +294 -0
- package/src/generated/services/timeline.ts +62 -0
- package/src/generated/services/timesheets.ts +289 -0
- package/src/generated/services/todolist-groups.ts +151 -0
- package/src/generated/services/todolists.ts +192 -0
- package/src/generated/services/todos.ts +369 -0
- package/src/generated/services/todosets.ts +55 -0
- package/src/generated/services/tools.ts +267 -0
- package/src/generated/services/uploads.ts +227 -0
- package/src/generated/services/vaults.ts +182 -0
- package/src/generated/services/webhooks.ts +226 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cards service for the Basecamp API.
|
|
3
|
+
*
|
|
4
|
+
* @generated from OpenAPI spec - do not edit directly
|
|
5
|
+
*/
|
|
6
|
+
import { BaseService } from "../../services/base.js";
|
|
7
|
+
import type { components } from "../schema.js";
|
|
8
|
+
import { ListResult } from "../../pagination.js";
|
|
9
|
+
import type { PaginationOptions } from "../../pagination.js";
|
|
10
|
+
/** Card entity from the Basecamp API. */
|
|
11
|
+
export type Card = components["schemas"]["Card"];
|
|
12
|
+
/**
|
|
13
|
+
* Request parameters for update.
|
|
14
|
+
*/
|
|
15
|
+
export interface UpdateCardRequest {
|
|
16
|
+
/** Title */
|
|
17
|
+
title?: string;
|
|
18
|
+
/** Text content */
|
|
19
|
+
content?: string;
|
|
20
|
+
/** Due date (YYYY-MM-DD) */
|
|
21
|
+
dueOn?: string;
|
|
22
|
+
/** Person IDs to assign to */
|
|
23
|
+
assigneeIds?: number[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Request parameters for move.
|
|
27
|
+
*/
|
|
28
|
+
export interface MoveCardRequest {
|
|
29
|
+
/** Column id */
|
|
30
|
+
columnId: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Options for list.
|
|
34
|
+
*/
|
|
35
|
+
export interface ListCardOptions extends PaginationOptions {
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Request parameters for create.
|
|
39
|
+
*/
|
|
40
|
+
export interface CreateCardRequest {
|
|
41
|
+
/** Title */
|
|
42
|
+
title: string;
|
|
43
|
+
/** Text content */
|
|
44
|
+
content?: string;
|
|
45
|
+
/** Due date (YYYY-MM-DD) */
|
|
46
|
+
dueOn?: string;
|
|
47
|
+
/** Whether to send notifications to relevant people */
|
|
48
|
+
notify?: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Service for Cards operations.
|
|
52
|
+
*/
|
|
53
|
+
export declare class CardsService extends BaseService {
|
|
54
|
+
/**
|
|
55
|
+
* Get a card by ID
|
|
56
|
+
* @param cardId - The card ID
|
|
57
|
+
* @returns The Card
|
|
58
|
+
* @throws {BasecampError} If the resource is not found
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* const result = await client.cards.get(123);
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
get(cardId: number): Promise<Card>;
|
|
66
|
+
/**
|
|
67
|
+
* Update an existing card
|
|
68
|
+
* @param cardId - The card ID
|
|
69
|
+
* @param req - Card update parameters
|
|
70
|
+
* @returns The Card
|
|
71
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* const result = await client.cards.update(123, { });
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
update(cardId: number, req: UpdateCardRequest): Promise<Card>;
|
|
79
|
+
/**
|
|
80
|
+
* Move a card to a different column
|
|
81
|
+
* @param cardId - The card ID
|
|
82
|
+
* @param req - Card request parameters
|
|
83
|
+
* @returns void
|
|
84
|
+
* @throws {BasecampError} If the request fails
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* await client.cards.move(123, { columnId: 1 });
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
move(cardId: number, req: MoveCardRequest): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* List cards in a column
|
|
94
|
+
* @param columnId - The column ID
|
|
95
|
+
* @param options - Optional query parameters
|
|
96
|
+
* @returns All Card across all pages, with .meta.totalCount
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```ts
|
|
100
|
+
* const result = await client.cards.list(123);
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
list(columnId: number, options?: ListCardOptions): Promise<ListResult<Card>>;
|
|
104
|
+
/**
|
|
105
|
+
* Create a card in a column
|
|
106
|
+
* @param columnId - The column ID
|
|
107
|
+
* @param req - Card creation parameters
|
|
108
|
+
* @returns The Card
|
|
109
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts
|
|
113
|
+
* const result = await client.cards.create(123, { title: "example" });
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
create(columnId: number, req: CreateCardRequest): Promise<Card>;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=cards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cards.d.ts","sourceRoot":"","sources":["../../../src/generated/services/cards.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,yCAAyC;AACzC,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAOD;;GAEG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAE3C;;;;;;;;;;OAUG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxC;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BnE;;;;;;;;;;;OAWG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/D;;;;;;;;;;OAUG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAmBlF;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CA8BtE"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cards 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 Cards operations.
|
|
13
|
+
*/
|
|
14
|
+
export class CardsService extends BaseService {
|
|
15
|
+
/**
|
|
16
|
+
* Get a card by ID
|
|
17
|
+
* @param cardId - The card ID
|
|
18
|
+
* @returns The Card
|
|
19
|
+
* @throws {BasecampError} If the resource is not found
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* const result = await client.cards.get(123);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
async get(cardId) {
|
|
27
|
+
const response = await this.request({
|
|
28
|
+
service: "Cards",
|
|
29
|
+
operation: "GetCard",
|
|
30
|
+
resourceType: "card",
|
|
31
|
+
isMutation: false,
|
|
32
|
+
resourceId: cardId,
|
|
33
|
+
}, () => this.client.GET("/card_tables/cards/{cardId}", {
|
|
34
|
+
params: {
|
|
35
|
+
path: { cardId },
|
|
36
|
+
},
|
|
37
|
+
}));
|
|
38
|
+
return response;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Update an existing card
|
|
42
|
+
* @param cardId - The card ID
|
|
43
|
+
* @param req - Card update parameters
|
|
44
|
+
* @returns The Card
|
|
45
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* const result = await client.cards.update(123, { });
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
async update(cardId, req) {
|
|
53
|
+
if (req.dueOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.dueOn)) {
|
|
54
|
+
throw Errors.validation("Due on must be in YYYY-MM-DD format");
|
|
55
|
+
}
|
|
56
|
+
const response = await this.request({
|
|
57
|
+
service: "Cards",
|
|
58
|
+
operation: "UpdateCard",
|
|
59
|
+
resourceType: "card",
|
|
60
|
+
isMutation: true,
|
|
61
|
+
resourceId: cardId,
|
|
62
|
+
}, () => this.client.PUT("/card_tables/cards/{cardId}", {
|
|
63
|
+
params: {
|
|
64
|
+
path: { cardId },
|
|
65
|
+
},
|
|
66
|
+
body: {
|
|
67
|
+
title: req.title,
|
|
68
|
+
content: req.content,
|
|
69
|
+
due_on: req.dueOn,
|
|
70
|
+
assignee_ids: req.assigneeIds,
|
|
71
|
+
},
|
|
72
|
+
}));
|
|
73
|
+
return response;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Move a card to a different column
|
|
77
|
+
* @param cardId - The card ID
|
|
78
|
+
* @param req - Card request parameters
|
|
79
|
+
* @returns void
|
|
80
|
+
* @throws {BasecampError} If the request fails
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* await client.cards.move(123, { columnId: 1 });
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
async move(cardId, req) {
|
|
88
|
+
await this.request({
|
|
89
|
+
service: "Cards",
|
|
90
|
+
operation: "MoveCard",
|
|
91
|
+
resourceType: "card",
|
|
92
|
+
isMutation: true,
|
|
93
|
+
resourceId: cardId,
|
|
94
|
+
}, () => this.client.POST("/card_tables/cards/{cardId}/moves.json", {
|
|
95
|
+
params: {
|
|
96
|
+
path: { cardId },
|
|
97
|
+
},
|
|
98
|
+
body: {
|
|
99
|
+
column_id: req.columnId,
|
|
100
|
+
},
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* List cards in a column
|
|
105
|
+
* @param columnId - The column ID
|
|
106
|
+
* @param options - Optional query parameters
|
|
107
|
+
* @returns All Card across all pages, with .meta.totalCount
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```ts
|
|
111
|
+
* const result = await client.cards.list(123);
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
async list(columnId, options) {
|
|
115
|
+
return this.requestPaginated({
|
|
116
|
+
service: "Cards",
|
|
117
|
+
operation: "ListCards",
|
|
118
|
+
resourceType: "card",
|
|
119
|
+
isMutation: false,
|
|
120
|
+
resourceId: columnId,
|
|
121
|
+
}, () => this.client.GET("/card_tables/lists/{columnId}/cards.json", {
|
|
122
|
+
params: {
|
|
123
|
+
path: { columnId },
|
|
124
|
+
},
|
|
125
|
+
}), options);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Create a card in a column
|
|
129
|
+
* @param columnId - The column ID
|
|
130
|
+
* @param req - Card creation parameters
|
|
131
|
+
* @returns The Card
|
|
132
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```ts
|
|
136
|
+
* const result = await client.cards.create(123, { title: "example" });
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
async create(columnId, req) {
|
|
140
|
+
if (!req.title) {
|
|
141
|
+
throw Errors.validation("Title is required");
|
|
142
|
+
}
|
|
143
|
+
if (req.dueOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.dueOn)) {
|
|
144
|
+
throw Errors.validation("Due on must be in YYYY-MM-DD format");
|
|
145
|
+
}
|
|
146
|
+
const response = await this.request({
|
|
147
|
+
service: "Cards",
|
|
148
|
+
operation: "CreateCard",
|
|
149
|
+
resourceType: "card",
|
|
150
|
+
isMutation: true,
|
|
151
|
+
resourceId: columnId,
|
|
152
|
+
}, () => this.client.POST("/card_tables/lists/{columnId}/cards.json", {
|
|
153
|
+
params: {
|
|
154
|
+
path: { columnId },
|
|
155
|
+
},
|
|
156
|
+
body: {
|
|
157
|
+
title: req.title,
|
|
158
|
+
content: req.content,
|
|
159
|
+
due_on: req.dueOn,
|
|
160
|
+
notify: req.notify,
|
|
161
|
+
},
|
|
162
|
+
}));
|
|
163
|
+
return response;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=cards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cards.js","sourceRoot":"","sources":["../../../src/generated/services/cards.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cards 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 { ListResult } from "../../pagination.js";
|
|
10
|
+
import type { PaginationOptions } from "../../pagination.js";
|
|
11
|
+
import { Errors } from "../../errors.js";
|
|
12
|
+
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// Types
|
|
15
|
+
// =============================================================================
|
|
16
|
+
|
|
17
|
+
/** Card entity from the Basecamp API. */
|
|
18
|
+
export type Card = components["schemas"]["Card"];
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Request parameters for update.
|
|
22
|
+
*/
|
|
23
|
+
export interface UpdateCardRequest {
|
|
24
|
+
/** Title */
|
|
25
|
+
title?: string;
|
|
26
|
+
/** Text content */
|
|
27
|
+
content?: string;
|
|
28
|
+
/** Due date (YYYY-MM-DD) */
|
|
29
|
+
dueOn?: string;
|
|
30
|
+
/** Person IDs to assign to */
|
|
31
|
+
assigneeIds?: number[];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Request parameters for move.
|
|
36
|
+
*/
|
|
37
|
+
export interface MoveCardRequest {
|
|
38
|
+
/** Column id */
|
|
39
|
+
columnId: number;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Options for list.
|
|
44
|
+
*/
|
|
45
|
+
export interface ListCardOptions extends PaginationOptions {
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Request parameters for create.
|
|
50
|
+
*/
|
|
51
|
+
export interface CreateCardRequest {
|
|
52
|
+
/** Title */
|
|
53
|
+
title: string;
|
|
54
|
+
/** Text content */
|
|
55
|
+
content?: string;
|
|
56
|
+
/** Due date (YYYY-MM-DD) */
|
|
57
|
+
dueOn?: string;
|
|
58
|
+
/** Whether to send notifications to relevant people */
|
|
59
|
+
notify?: boolean;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
// =============================================================================
|
|
64
|
+
// Service
|
|
65
|
+
// =============================================================================
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Service for Cards operations.
|
|
69
|
+
*/
|
|
70
|
+
export class CardsService extends BaseService {
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Get a card by ID
|
|
74
|
+
* @param cardId - The card ID
|
|
75
|
+
* @returns The Card
|
|
76
|
+
* @throws {BasecampError} If the resource is not found
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* const result = await client.cards.get(123);
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
async get(cardId: number): Promise<Card> {
|
|
84
|
+
const response = await this.request(
|
|
85
|
+
{
|
|
86
|
+
service: "Cards",
|
|
87
|
+
operation: "GetCard",
|
|
88
|
+
resourceType: "card",
|
|
89
|
+
isMutation: false,
|
|
90
|
+
resourceId: cardId,
|
|
91
|
+
},
|
|
92
|
+
() =>
|
|
93
|
+
this.client.GET("/card_tables/cards/{cardId}", {
|
|
94
|
+
params: {
|
|
95
|
+
path: { cardId },
|
|
96
|
+
},
|
|
97
|
+
})
|
|
98
|
+
);
|
|
99
|
+
return response;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Update an existing card
|
|
104
|
+
* @param cardId - The card ID
|
|
105
|
+
* @param req - Card update parameters
|
|
106
|
+
* @returns The Card
|
|
107
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```ts
|
|
111
|
+
* const result = await client.cards.update(123, { });
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
async update(cardId: number, req: UpdateCardRequest): Promise<Card> {
|
|
115
|
+
if (req.dueOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.dueOn)) {
|
|
116
|
+
throw Errors.validation("Due on must be in YYYY-MM-DD format");
|
|
117
|
+
}
|
|
118
|
+
const response = await this.request(
|
|
119
|
+
{
|
|
120
|
+
service: "Cards",
|
|
121
|
+
operation: "UpdateCard",
|
|
122
|
+
resourceType: "card",
|
|
123
|
+
isMutation: true,
|
|
124
|
+
resourceId: cardId,
|
|
125
|
+
},
|
|
126
|
+
() =>
|
|
127
|
+
this.client.PUT("/card_tables/cards/{cardId}", {
|
|
128
|
+
params: {
|
|
129
|
+
path: { cardId },
|
|
130
|
+
},
|
|
131
|
+
body: {
|
|
132
|
+
title: req.title,
|
|
133
|
+
content: req.content,
|
|
134
|
+
due_on: req.dueOn,
|
|
135
|
+
assignee_ids: req.assigneeIds,
|
|
136
|
+
},
|
|
137
|
+
})
|
|
138
|
+
);
|
|
139
|
+
return response;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Move a card to a different column
|
|
144
|
+
* @param cardId - The card ID
|
|
145
|
+
* @param req - Card request parameters
|
|
146
|
+
* @returns void
|
|
147
|
+
* @throws {BasecampError} If the request fails
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```ts
|
|
151
|
+
* await client.cards.move(123, { columnId: 1 });
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
async move(cardId: number, req: MoveCardRequest): Promise<void> {
|
|
155
|
+
await this.request(
|
|
156
|
+
{
|
|
157
|
+
service: "Cards",
|
|
158
|
+
operation: "MoveCard",
|
|
159
|
+
resourceType: "card",
|
|
160
|
+
isMutation: true,
|
|
161
|
+
resourceId: cardId,
|
|
162
|
+
},
|
|
163
|
+
() =>
|
|
164
|
+
this.client.POST("/card_tables/cards/{cardId}/moves.json", {
|
|
165
|
+
params: {
|
|
166
|
+
path: { cardId },
|
|
167
|
+
},
|
|
168
|
+
body: {
|
|
169
|
+
column_id: req.columnId,
|
|
170
|
+
},
|
|
171
|
+
})
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* List cards in a column
|
|
177
|
+
* @param columnId - The column ID
|
|
178
|
+
* @param options - Optional query parameters
|
|
179
|
+
* @returns All Card across all pages, with .meta.totalCount
|
|
180
|
+
*
|
|
181
|
+
* @example
|
|
182
|
+
* ```ts
|
|
183
|
+
* const result = await client.cards.list(123);
|
|
184
|
+
* ```
|
|
185
|
+
*/
|
|
186
|
+
async list(columnId: number, options?: ListCardOptions): Promise<ListResult<Card>> {
|
|
187
|
+
return this.requestPaginated(
|
|
188
|
+
{
|
|
189
|
+
service: "Cards",
|
|
190
|
+
operation: "ListCards",
|
|
191
|
+
resourceType: "card",
|
|
192
|
+
isMutation: false,
|
|
193
|
+
resourceId: columnId,
|
|
194
|
+
},
|
|
195
|
+
() =>
|
|
196
|
+
this.client.GET("/card_tables/lists/{columnId}/cards.json", {
|
|
197
|
+
params: {
|
|
198
|
+
path: { columnId },
|
|
199
|
+
},
|
|
200
|
+
})
|
|
201
|
+
, options
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Create a card in a column
|
|
207
|
+
* @param columnId - The column ID
|
|
208
|
+
* @param req - Card creation parameters
|
|
209
|
+
* @returns The Card
|
|
210
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```ts
|
|
214
|
+
* const result = await client.cards.create(123, { title: "example" });
|
|
215
|
+
* ```
|
|
216
|
+
*/
|
|
217
|
+
async create(columnId: number, req: CreateCardRequest): Promise<Card> {
|
|
218
|
+
if (!req.title) {
|
|
219
|
+
throw Errors.validation("Title is required");
|
|
220
|
+
}
|
|
221
|
+
if (req.dueOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.dueOn)) {
|
|
222
|
+
throw Errors.validation("Due on must be in YYYY-MM-DD format");
|
|
223
|
+
}
|
|
224
|
+
const response = await this.request(
|
|
225
|
+
{
|
|
226
|
+
service: "Cards",
|
|
227
|
+
operation: "CreateCard",
|
|
228
|
+
resourceType: "card",
|
|
229
|
+
isMutation: true,
|
|
230
|
+
resourceId: columnId,
|
|
231
|
+
},
|
|
232
|
+
() =>
|
|
233
|
+
this.client.POST("/card_tables/lists/{columnId}/cards.json", {
|
|
234
|
+
params: {
|
|
235
|
+
path: { columnId },
|
|
236
|
+
},
|
|
237
|
+
body: {
|
|
238
|
+
title: req.title,
|
|
239
|
+
content: req.content,
|
|
240
|
+
due_on: req.dueOn,
|
|
241
|
+
notify: req.notify,
|
|
242
|
+
},
|
|
243
|
+
})
|
|
244
|
+
);
|
|
245
|
+
return response;
|
|
246
|
+
}
|
|
247
|
+
}
|