@37signals/basecamp 0.7.3 → 0.9.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 +82 -2
- package/dist/client.d.ts +7 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +32 -23
- package/dist/client.js.map +1 -1
- package/dist/download.d.ts.map +1 -1
- package/dist/errors.d.ts +10 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +7 -1
- package/dist/errors.js.map +1 -1
- package/dist/generated/metadata.d.ts +32 -0
- package/dist/generated/metadata.d.ts.map +1 -0
- package/dist/generated/metadata.js +2723 -0
- package/dist/generated/metadata.js.map +1 -0
- package/dist/generated/{metadata.json → metadata.ts} +141 -35
- package/dist/generated/openapi-stripped.json +1713 -478
- package/dist/generated/path-mapping.d.ts.map +1 -1
- package/dist/generated/path-mapping.js +10 -5
- package/dist/generated/path-mapping.js.map +1 -1
- package/dist/generated/path-mapping.ts +10 -5
- package/dist/generated/schema.d.ts +1027 -265
- package/dist/generated/services/campfires.d.ts +22 -1
- package/dist/generated/services/campfires.d.ts.map +1 -1
- package/dist/generated/services/campfires.js +33 -1
- package/dist/generated/services/campfires.js.map +1 -1
- package/dist/generated/services/campfires.ts +46 -1
- package/dist/generated/services/card-columns.d.ts +31 -28
- package/dist/generated/services/card-columns.d.ts.map +1 -1
- package/dist/generated/services/card-columns.js +57 -51
- package/dist/generated/services/card-columns.js.map +1 -1
- package/dist/generated/services/card-columns.ts +65 -59
- package/dist/generated/services/checkins.d.ts +3 -1
- package/dist/generated/services/checkins.d.ts.map +1 -1
- package/dist/generated/services/checkins.js +2 -1
- package/dist/generated/services/checkins.js.map +1 -1
- package/dist/generated/services/checkins.ts +4 -1
- package/dist/generated/services/documents.d.ts +2 -0
- package/dist/generated/services/documents.d.ts.map +1 -1
- package/dist/generated/services/documents.js +1 -0
- package/dist/generated/services/documents.js.map +1 -1
- package/dist/generated/services/documents.ts +3 -0
- package/dist/generated/services/gauges.d.ts +2 -2
- package/dist/generated/services/gauges.js +2 -2
- package/dist/generated/services/gauges.ts +2 -2
- package/dist/generated/services/index.d.ts +3 -2
- package/dist/generated/services/index.d.ts.map +1 -1
- package/dist/generated/services/index.js +3 -2
- package/dist/generated/services/index.js.map +1 -1
- package/dist/generated/services/index.ts +3 -2
- package/dist/generated/services/messages.d.ts +2 -0
- package/dist/generated/services/messages.d.ts.map +1 -1
- package/dist/generated/services/messages.js +1 -0
- package/dist/generated/services/messages.js.map +1 -1
- package/dist/generated/services/messages.ts +3 -0
- package/dist/generated/services/people.d.ts +2 -2
- package/dist/generated/services/people.js +2 -2
- package/dist/generated/services/people.ts +2 -2
- package/dist/generated/services/reports.d.ts +1 -1
- package/dist/generated/services/reports.js +1 -1
- package/dist/generated/services/reports.ts +1 -1
- package/dist/generated/services/schedules.d.ts +2 -0
- package/dist/generated/services/schedules.d.ts.map +1 -1
- package/dist/generated/services/schedules.js +1 -0
- package/dist/generated/services/schedules.js.map +1 -1
- package/dist/generated/services/schedules.ts +3 -0
- package/dist/generated/services/search.d.ts +30 -1
- package/dist/generated/services/search.d.ts.map +1 -1
- package/dist/generated/services/search.js +1 -1
- package/dist/generated/services/search.js.map +1 -1
- package/dist/generated/services/search.ts +31 -2
- package/dist/generated/services/templates.d.ts +3 -5
- package/dist/generated/services/templates.d.ts.map +1 -1
- package/dist/generated/services/templates.js +4 -5
- package/dist/generated/services/templates.js.map +1 -1
- package/dist/generated/services/templates.ts +6 -9
- package/dist/generated/services/todolists.d.ts +22 -0
- package/dist/generated/services/todolists.d.ts.map +1 -1
- package/dist/generated/services/todolists.js +31 -0
- package/dist/generated/services/todolists.js.map +1 -1
- package/dist/generated/services/todolists.ts +46 -0
- package/dist/generated/services/todos.d.ts +8 -8
- package/dist/generated/services/todos.d.ts.map +1 -1
- package/dist/generated/services/todos.js +9 -6
- package/dist/generated/services/todos.js.map +1 -1
- package/dist/generated/services/todos.ts +12 -9
- package/dist/generated/services/tools.d.ts +11 -10
- package/dist/generated/services/tools.d.ts.map +1 -1
- package/dist/generated/services/tools.js +16 -8
- package/dist/generated/services/tools.js.map +1 -1
- package/dist/generated/services/tools.ts +21 -13
- package/dist/generated/services/uploads.d.ts +2 -0
- package/dist/generated/services/uploads.d.ts.map +1 -1
- package/dist/generated/services/uploads.js +1 -0
- package/dist/generated/services/uploads.js.map +1 -1
- package/dist/generated/services/uploads.ts +3 -0
- package/dist/generated/services/webhooks.js +2 -2
- package/dist/generated/services/webhooks.js.map +1 -1
- package/dist/generated/services/webhooks.ts +2 -2
- package/dist/generated/services/wormholes.d.ts +70 -0
- package/dist/generated/services/wormholes.d.ts.map +1 -0
- package/dist/generated/services/wormholes.js +103 -0
- package/dist/generated/services/wormholes.js.map +1 -0
- package/dist/generated/services/wormholes.ts +145 -0
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/oauth/discovery.d.ts +105 -23
- package/dist/oauth/discovery.d.ts.map +1 -1
- package/dist/oauth/discovery.js +453 -61
- package/dist/oauth/discovery.js.map +1 -1
- package/dist/oauth/index.d.ts +2 -2
- package/dist/oauth/index.d.ts.map +1 -1
- package/dist/oauth/index.js +1 -1
- package/dist/oauth/index.js.map +1 -1
- package/dist/oauth/interactive-login.d.ts +20 -2
- package/dist/oauth/interactive-login.d.ts.map +1 -1
- package/dist/oauth/interactive-login.js +58 -4
- package/dist/oauth/interactive-login.js.map +1 -1
- package/dist/oauth/types.d.ts +54 -2
- package/dist/oauth/types.d.ts.map +1 -1
- package/dist/security.d.ts +22 -0
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +56 -1
- package/dist/security.js.map +1 -1
- package/dist/services/authorization.d.ts.map +1 -1
- package/dist/services/authorization.js +3 -0
- package/dist/services/authorization.js.map +1 -1
- package/dist/services/base.d.ts.map +1 -1
- package/dist/services/base.js +1 -3
- package/dist/services/base.js.map +1 -1
- package/dist/services/todos-extensions.d.ts +118 -0
- package/dist/services/todos-extensions.d.ts.map +1 -0
- package/dist/services/todos-extensions.js +113 -0
- package/dist/services/todos-extensions.js.map +1 -0
- package/dist/services/uploads-extensions.d.ts +33 -0
- package/dist/services/uploads-extensions.d.ts.map +1 -0
- package/dist/services/uploads-extensions.js +48 -0
- package/dist/services/uploads-extensions.js.map +1 -0
- package/package.json +7 -4
- package/src/generated/{metadata.json → metadata.ts} +141 -35
- package/src/generated/openapi-stripped.json +1713 -478
- package/src/generated/path-mapping.ts +10 -5
- package/src/generated/schema.d.ts +1027 -265
- package/src/generated/services/campfires.ts +46 -1
- package/src/generated/services/card-columns.ts +65 -59
- package/src/generated/services/checkins.ts +4 -1
- package/src/generated/services/documents.ts +3 -0
- package/src/generated/services/gauges.ts +2 -2
- package/src/generated/services/index.ts +3 -2
- package/src/generated/services/messages.ts +3 -0
- package/src/generated/services/people.ts +2 -2
- package/src/generated/services/reports.ts +1 -1
- package/src/generated/services/schedules.ts +3 -0
- package/src/generated/services/search.ts +31 -2
- package/src/generated/services/templates.ts +6 -9
- package/src/generated/services/todolists.ts +46 -0
- package/src/generated/services/todos.ts +12 -9
- package/src/generated/services/tools.ts +21 -13
- package/src/generated/services/uploads.ts +3 -0
- package/src/generated/services/webhooks.ts +2 -2
- package/src/generated/services/wormholes.ts +145 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wormholes 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
|
+
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// Types
|
|
12
|
+
// =============================================================================
|
|
13
|
+
|
|
14
|
+
/** Wormhole entity from the Basecamp API. */
|
|
15
|
+
export type Wormhole = components["schemas"]["Wormhole"];
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Request parameters for update.
|
|
19
|
+
*/
|
|
20
|
+
export interface UpdateWormholeRequest {
|
|
21
|
+
/** Id of the new destination column (on another accessible card table). */
|
|
22
|
+
destinationRecordingId: number;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Request parameters for create.
|
|
27
|
+
*/
|
|
28
|
+
export interface CreateWormholeRequest {
|
|
29
|
+
/** Id of the destination column (on another accessible card table) to link to. */
|
|
30
|
+
destinationRecordingId: number;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
// =============================================================================
|
|
35
|
+
// Service
|
|
36
|
+
// =============================================================================
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Service for Wormholes operations.
|
|
40
|
+
*/
|
|
41
|
+
export class WormholesService extends BaseService {
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Update a wormhole's destination column
|
|
45
|
+
* @param bucketId - The bucket ID
|
|
46
|
+
* @param wormholeId - The wormhole ID
|
|
47
|
+
* @param req - Wormhole update parameters
|
|
48
|
+
* @returns The Wormhole
|
|
49
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* const result = await client.wormholes.update(123, 123, { destinationRecordingId: 1 });
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
async update(bucketId: number, wormholeId: number, req: UpdateWormholeRequest): Promise<Wormhole> {
|
|
57
|
+
const response = await this.request(
|
|
58
|
+
{
|
|
59
|
+
service: "Wormholes",
|
|
60
|
+
operation: "UpdateWormhole",
|
|
61
|
+
resourceType: "wormhole",
|
|
62
|
+
isMutation: true,
|
|
63
|
+
projectId: bucketId,
|
|
64
|
+
resourceId: wormholeId,
|
|
65
|
+
},
|
|
66
|
+
() =>
|
|
67
|
+
this.client.PUT("/buckets/{bucketId}/card_tables/wormholes/{wormholeId}", {
|
|
68
|
+
params: {
|
|
69
|
+
path: { bucketId, wormholeId },
|
|
70
|
+
},
|
|
71
|
+
body: {
|
|
72
|
+
destination_recording_id: req.destinationRecordingId,
|
|
73
|
+
},
|
|
74
|
+
})
|
|
75
|
+
);
|
|
76
|
+
return response;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Delete a wormhole
|
|
81
|
+
* @param bucketId - The bucket ID
|
|
82
|
+
* @param wormholeId - The wormhole ID
|
|
83
|
+
* @returns void
|
|
84
|
+
* @throws {BasecampError} If the request fails
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* await client.wormholes.delete(123, 123);
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
async delete(bucketId: number, wormholeId: number): Promise<void> {
|
|
92
|
+
await this.request(
|
|
93
|
+
{
|
|
94
|
+
service: "Wormholes",
|
|
95
|
+
operation: "DeleteWormhole",
|
|
96
|
+
resourceType: "wormhole",
|
|
97
|
+
isMutation: true,
|
|
98
|
+
projectId: bucketId,
|
|
99
|
+
resourceId: wormholeId,
|
|
100
|
+
},
|
|
101
|
+
() =>
|
|
102
|
+
this.client.DELETE("/buckets/{bucketId}/card_tables/wormholes/{wormholeId}", {
|
|
103
|
+
params: {
|
|
104
|
+
path: { bucketId, wormholeId },
|
|
105
|
+
},
|
|
106
|
+
})
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Create a wormhole linking this card table to a column on another card table.
|
|
112
|
+
* @param bucketId - The bucket ID
|
|
113
|
+
* @param cardTableId - The card table ID
|
|
114
|
+
* @param req - Wormhole creation parameters
|
|
115
|
+
* @returns The Wormhole
|
|
116
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```ts
|
|
120
|
+
* const result = await client.wormholes.create(123, 123, { destinationRecordingId: 1 });
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
async create(bucketId: number, cardTableId: number, req: CreateWormholeRequest): Promise<Wormhole> {
|
|
124
|
+
const response = await this.request(
|
|
125
|
+
{
|
|
126
|
+
service: "Wormholes",
|
|
127
|
+
operation: "CreateWormhole",
|
|
128
|
+
resourceType: "wormhole",
|
|
129
|
+
isMutation: true,
|
|
130
|
+
projectId: bucketId,
|
|
131
|
+
resourceId: cardTableId,
|
|
132
|
+
},
|
|
133
|
+
() =>
|
|
134
|
+
this.client.POST("/buckets/{bucketId}/card_tables/{cardTableId}/wormholes.json", {
|
|
135
|
+
params: {
|
|
136
|
+
path: { bucketId, cardTableId },
|
|
137
|
+
},
|
|
138
|
+
body: {
|
|
139
|
+
destination_recording_id: req.destinationRecordingId,
|
|
140
|
+
},
|
|
141
|
+
})
|
|
142
|
+
);
|
|
143
|
+
return response;
|
|
144
|
+
}
|
|
145
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -40,8 +40,9 @@ export { chainHooks, consoleHooks, noopHooks, safeInvoke, type BasecampHooks, ty
|
|
|
40
40
|
export { BaseService, type FetchResponse } from "./services/base.js";
|
|
41
41
|
export { AuthorizationService, type Identity, type AuthorizedAccount, type AuthorizationInfo, type GetAuthorizationInfoOptions, } from "./services/authorization.js";
|
|
42
42
|
export { ProjectsService, type Project, type ListProjectOptions, type CreateProjectRequest, type UpdateProjectRequest, } from "./generated/services/projects.js";
|
|
43
|
-
export { TodosService, type
|
|
44
|
-
export {
|
|
43
|
+
export { TodosService, type UpdateTodoRequest, type TodoFields, } from "./services/todos-extensions.js";
|
|
44
|
+
export { type Todo, type ListTodoOptions, type CreateTodoRequest, type ReplaceTodoRequest, type RepositionTodoRequest, } from "./generated/services/todos.js";
|
|
45
|
+
export { TodolistsService, type Todolist, type ListTodolistOptions, type CreateTodolistRequest, type UpdateTodolistRequest, type RepositionTodolistRequest, } from "./generated/services/todolists.js";
|
|
45
46
|
export { TodosetsService, type Todoset, } from "./generated/services/todosets.js";
|
|
46
47
|
export { HillChartsService, type UpdateSettingsHillChartRequest, } from "./generated/services/hill-charts.js";
|
|
47
48
|
export { PeopleService, type Person, type UpdateProjectAccessPeopleRequest, } from "./generated/services/people.js";
|
|
@@ -52,6 +53,7 @@ export { CardTablesService, type CardTable, } from "./generated/services/card-ta
|
|
|
52
53
|
export { CardsService, type Card, type CreateCardRequest, type UpdateCardRequest, type MoveCardRequest, } from "./generated/services/cards.js";
|
|
53
54
|
export { CardColumnsService, type CardColumn, type CreateCardColumnRequest, type UpdateCardColumnRequest, type MoveCardColumnRequest, type SetColorCardColumnRequest, } from "./generated/services/card-columns.js";
|
|
54
55
|
export { CardStepsService, type CardStep, type CreateCardStepRequest, type UpdateCardStepRequest, } from "./generated/services/card-steps.js";
|
|
56
|
+
export { WormholesService, type Wormhole, type CreateWormholeRequest, type UpdateWormholeRequest, } from "./generated/services/wormholes.js";
|
|
55
57
|
export { MessageBoardsService, type MessageBoard, } from "./generated/services/message-boards.js";
|
|
56
58
|
export { MessageTypesService, type MessageType, type CreateMessageTypeRequest, type UpdateMessageTypeRequest, } from "./generated/services/message-types.js";
|
|
57
59
|
export { ForwardsService, type Inbox, type Forward, type ForwardReply, type CreateReplyForwardRequest, } from "./generated/services/forwards.js";
|
|
@@ -70,7 +72,8 @@ export { EventsService, type Event, } from "./generated/services/events.js";
|
|
|
70
72
|
export { AttachmentsService, } from "./generated/services/attachments.js";
|
|
71
73
|
export { VaultsService, type Vault, type CreateVaultRequest, type UpdateVaultRequest, } from "./generated/services/vaults.js";
|
|
72
74
|
export { DocumentsService, type Document, type CreateDocumentRequest, type UpdateDocumentRequest, } from "./generated/services/documents.js";
|
|
73
|
-
export { UploadsService
|
|
75
|
+
export { UploadsService } from "./services/uploads-extensions.js";
|
|
76
|
+
export { type Upload, type CreateUploadRequest, type UpdateUploadRequest, } from "./generated/services/uploads.js";
|
|
74
77
|
export { SchedulesService, type Schedule, type ScheduleEntry, type CreateEntryScheduleRequest, type UpdateEntryScheduleRequest, type UpdateSettingsScheduleRequest, type ListEntriesScheduleOptions, } from "./generated/services/schedules.js";
|
|
75
78
|
export { TimesheetsService, type ForRecordingTimesheetOptions, type ForProjectTimesheetOptions, type ReportTimesheetOptions, } from "./generated/services/timesheets.js";
|
|
76
79
|
export { TimelineService, } from "./generated/services/timeline.js";
|
|
@@ -88,8 +91,8 @@ export { GaugesService, } from "./generated/services/gauges.js";
|
|
|
88
91
|
export { MyAssignmentsService, } from "./generated/services/my-assignments.js";
|
|
89
92
|
export { MyNotificationsService, } from "./generated/services/my-notifications.js";
|
|
90
93
|
export { otelHooks, type OtelHooksOptions, } from "./hooks/otel.js";
|
|
91
|
-
export type { OAuthConfig, OAuthToken, ExchangeRequest, RefreshRequest, RawTokenResponse, OAuthErrorResponse, } from "./oauth/types.js";
|
|
92
|
-
export { discover, discoverLaunchpad, LAUNCHPAD_BASE_URL, type DiscoverOptions, } from "./oauth/discovery.js";
|
|
94
|
+
export type { OAuthConfig, OAuthToken, ExchangeRequest, RefreshRequest, RawTokenResponse, OAuthErrorResponse, ProtectedResourceMetadata, FallbackReason, DiscoverySelectionErrorReason, DiscoverFromResourceResult, } from "./oauth/types.js";
|
|
95
|
+
export { discover, discoverProtectedResource, discoverFromResource, discoverLaunchpad, requireOriginRoot, DiscoverySelectionError, LAUNCHPAD_BASE_URL, type DiscoverOptions, type DiscoverFromResourceOptions, } from "./oauth/discovery.js";
|
|
93
96
|
export { exchangeCode, refreshToken, isTokenExpired, type TokenOptions, } from "./oauth/exchange.js";
|
|
94
97
|
export { generatePKCE, generateState, type PKCE, } from "./oauth/pkce.js";
|
|
95
98
|
export { redactHeaders, redactHeadersRecord, } from "./security.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EACL,oBAAoB,EACpB,OAAO,EACP,WAAW,EACX,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,KAAK,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAG/E,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,QAAQ,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGhF,OAAO,EAAE,KAAK,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrE,OAAO,EACL,aAAa,EACb,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,KAAK,SAAS,EACd,KAAK,oBAAoB,GAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AAOpB,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,EACL,oBAAoB,EACpB,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,GACjC,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,eAAe,EACf,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,YAAY,EACZ,KAAK,IAAI,EACT,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -53,7 +53,7 @@ export { BaseService } from "./services/base.js";
|
|
|
53
53
|
export { AuthorizationService, } from "./services/authorization.js";
|
|
54
54
|
// Core services - generated
|
|
55
55
|
export { ProjectsService, } from "./generated/services/projects.js";
|
|
56
|
-
export { TodosService, } from "./
|
|
56
|
+
export { TodosService, } from "./services/todos-extensions.js";
|
|
57
57
|
export { TodolistsService, } from "./generated/services/todolists.js";
|
|
58
58
|
export { TodosetsService, } from "./generated/services/todosets.js";
|
|
59
59
|
export { HillChartsService, } from "./generated/services/hill-charts.js";
|
|
@@ -67,6 +67,7 @@ export { CardTablesService, } from "./generated/services/card-tables.js";
|
|
|
67
67
|
export { CardsService, } from "./generated/services/cards.js";
|
|
68
68
|
export { CardColumnsService, } from "./generated/services/card-columns.js";
|
|
69
69
|
export { CardStepsService, } from "./generated/services/card-steps.js";
|
|
70
|
+
export { WormholesService, } from "./generated/services/wormholes.js";
|
|
70
71
|
// Message services - generated
|
|
71
72
|
export { MessageBoardsService, } from "./generated/services/message-boards.js";
|
|
72
73
|
export { MessageTypesService, } from "./generated/services/message-types.js";
|
|
@@ -92,7 +93,7 @@ export { EventsService, } from "./generated/services/events.js";
|
|
|
92
93
|
export { AttachmentsService, } from "./generated/services/attachments.js";
|
|
93
94
|
export { VaultsService, } from "./generated/services/vaults.js";
|
|
94
95
|
export { DocumentsService, } from "./generated/services/documents.js";
|
|
95
|
-
export { UploadsService
|
|
96
|
+
export { UploadsService } from "./services/uploads-extensions.js";
|
|
96
97
|
// Schedule & Time services - generated
|
|
97
98
|
export { SchedulesService, } from "./generated/services/schedules.js";
|
|
98
99
|
export { TimesheetsService, } from "./generated/services/timesheets.js";
|
|
@@ -124,7 +125,7 @@ export { MyNotificationsService, } from "./generated/services/my-notifications.j
|
|
|
124
125
|
// OpenTelemetry hooks
|
|
125
126
|
export { otelHooks, } from "./hooks/otel.js";
|
|
126
127
|
// OAuth functions
|
|
127
|
-
export { discover, discoverLaunchpad, LAUNCHPAD_BASE_URL, } from "./oauth/discovery.js";
|
|
128
|
+
export { discover, discoverProtectedResource, discoverFromResource, discoverLaunchpad, requireOriginRoot, DiscoverySelectionError, LAUNCHPAD_BASE_URL, } from "./oauth/discovery.js";
|
|
128
129
|
export { exchangeCode, refreshToken, isTokenExpired, } from "./oauth/exchange.js";
|
|
129
130
|
// PKCE utilities
|
|
130
131
|
export { generatePKCE, generateState, } from "./oauth/pkce.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,sBAAsB;AACtB,OAAO,EACL,oBAAoB,EACpB,OAAO,EACP,WAAW,GAKZ,MAAM,aAAa,CAAC;AAErB,4BAA4B;AAC5B,OAAO,EAAqB,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/E,qBAAqB;AACrB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD,iCAAiC;AACjC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAyC,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEhF,WAAW;AACX,OAAO,EAAuB,eAAe,EAAE,MAAM,eAAe,CAAC;AAErE,SAAS;AACT,OAAO,EACL,aAAa,EACb,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,WAAW,GAGZ,MAAM,aAAa,CAAC;AAErB,QAAQ;AACR,OAAO,EACL,UAAU,EACV,YAAY,EACZ,SAAS,EACT,UAAU,GAOX,MAAM,YAAY,CAAC;AAEpB,gFAAgF;AAChF,uDAAuD;AACvD,gFAAgF;AAEhF,6DAA6D;AAC7D,OAAO,EAAE,WAAW,EAAsB,MAAM,oBAAoB,CAAC;AAErE,yEAAyE;AACzE,OAAO,EACL,oBAAoB,GAKrB,MAAM,6BAA6B,CAAC;AAErC,4BAA4B;AAC5B,OAAO,EACL,eAAe,GAKhB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OAuth 2.0 discovery for Basecamp SDK.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Two composable operations plus an orchestrator (SPEC.md §16, communique §2/§3):
|
|
5
|
+
* - discover(issuerURL) — RFC 8414 AS metadata + issuer binding
|
|
6
|
+
* - discoverProtectedResource(origin) — RFC 9728 resource metadata
|
|
7
|
+
* - discoverFromResource(origin, opts) — resource-first selection + fallback
|
|
8
|
+
*
|
|
9
|
+
* All fetches are SSRF-hardened: HTTPS-only origins (localhost exempt), origin
|
|
10
|
+
* parsed/validated with the platform URL parser before any socket opens,
|
|
11
|
+
* redirects suppressed, timeouts bounded, and bodies read under a genuine
|
|
12
|
+
* bounded cap that aborts before the whole oversized body is buffered.
|
|
5
13
|
*/
|
|
6
|
-
import
|
|
14
|
+
import { BasecampError } from "../errors.js";
|
|
15
|
+
import type { OAuthConfig, ProtectedResourceMetadata, DiscoverySelectionErrorReason, DiscoverFromResourceResult } from "./types.js";
|
|
7
16
|
/**
|
|
8
17
|
* Options for OAuth discovery.
|
|
9
18
|
*/
|
|
@@ -12,43 +21,116 @@ export interface DiscoverOptions {
|
|
|
12
21
|
fetch?: typeof globalThis.fetch;
|
|
13
22
|
/** Request timeout in milliseconds (default: 10000) */
|
|
14
23
|
timeoutMs?: number;
|
|
24
|
+
/**
|
|
25
|
+
* Maximum discovery response body size in bytes (default: 1 MiB). Must be a
|
|
26
|
+
* finite, non-negative number; Infinity/NaN/negative values are ignored and
|
|
27
|
+
* the default cap applies (the bound cannot be disabled).
|
|
28
|
+
*/
|
|
29
|
+
maxBodyBytes?: number;
|
|
15
30
|
}
|
|
16
31
|
/**
|
|
17
|
-
*
|
|
32
|
+
* Options for {@link discoverFromResource}.
|
|
33
|
+
*/
|
|
34
|
+
export interface DiscoverFromResourceOptions extends DiscoverOptions {
|
|
35
|
+
/**
|
|
36
|
+
* Explicit, authoritative issuer selection. When provided, the advertised
|
|
37
|
+
* member equal by code-point is selected; if none matches, discovery raises
|
|
38
|
+
* `expected_issuer_unavailable` (never falls back). Omit to use the
|
|
39
|
+
* Basecamp-profile exclusion heuristic.
|
|
40
|
+
*/
|
|
41
|
+
expectedIssuer?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Hard resource-first selection/validation failure. Thrown — never returned as a
|
|
45
|
+
* fallback — so no consumer can convert it into a Launchpad request.
|
|
46
|
+
*/
|
|
47
|
+
export declare class DiscoverySelectionError extends BasecampError {
|
|
48
|
+
readonly reason: DiscoverySelectionErrorReason;
|
|
49
|
+
constructor(reason: DiscoverySelectionErrorReason, message: string, options?: {
|
|
50
|
+
cause?: Error;
|
|
51
|
+
httpStatus?: number;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Default Basecamp/Launchpad OAuth server URL.
|
|
56
|
+
*/
|
|
57
|
+
export declare const LAUNCHPAD_BASE_URL = "https://launchpad.37signals.com";
|
|
58
|
+
/**
|
|
59
|
+
* Parses a caller- or metadata-supplied origin and enforces the origin-root
|
|
60
|
+
* profile: https (or http+localhost), host present, optional valid port, path
|
|
61
|
+
* empty or exactly "/", and no query/fragment/userinfo. Uses the platform URL
|
|
62
|
+
* parser (never a regex) so bracketed IPv6 and ports agree with the host the
|
|
63
|
+
* client actually dials.
|
|
64
|
+
*
|
|
65
|
+
* Throws `BasecampError("usage")` on violation — a bad *caller* origin is a
|
|
66
|
+
* usage error. Callers validating an *advertised* origin catch and reclassify.
|
|
67
|
+
*
|
|
68
|
+
* @returns the normalized origin (scheme://host[:port], no trailing slash)
|
|
69
|
+
*/
|
|
70
|
+
export declare function requireOriginRoot(raw: string, label?: string): string;
|
|
71
|
+
/**
|
|
72
|
+
* True when an issuer string is a valid origin root equal to Launchpad's.
|
|
18
73
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
74
|
+
* The comparison runs both sides through {@link requireOriginRoot}, so an
|
|
75
|
+
* advertised look-alike that is *not* a clean origin root — e.g.
|
|
76
|
+
* `https://launchpad.37signals.com/path` (path), userinfo, or a query — is not
|
|
77
|
+
* treated as Launchpad. It stays a non-Launchpad candidate and later fails hard
|
|
78
|
+
* (`ambiguous_issuers` / `invalid_issuer_origin`) rather than being silently
|
|
79
|
+
* excluded from selection. A trailing-slash-only origin root still matches
|
|
80
|
+
* because `requireOriginRoot` normalizes it away.
|
|
21
81
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
|
|
25
|
-
|
|
82
|
+
* Exported so the login orchestrator derives the legacy-token decision from the
|
|
83
|
+
* same predicate the selection heuristic uses.
|
|
84
|
+
*/
|
|
85
|
+
export declare function isLaunchpadIssuer(issuer: string): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Reads a Response body under a bounded, streaming cap. Aborts (cancels the
|
|
88
|
+
* stream) the moment the accumulated size exceeds `maxBytes`, so an oversized
|
|
89
|
+
* body is never fully buffered — real memory bounding, not a post-hoc check.
|
|
90
|
+
*
|
|
91
|
+
* Exported for reuse by the device-flow transport (same bounding, different
|
|
92
|
+
* `label` in the error message); not re-exported from the package index.
|
|
93
|
+
*/
|
|
94
|
+
export declare function readBodyBounded(response: Response, maxBytes: number, label?: string): Promise<string>;
|
|
95
|
+
/**
|
|
96
|
+
* Discovers OAuth 2.0 Authorization Server Metadata (RFC 8414) from
|
|
97
|
+
* `{issuerURL}/.well-known/oauth-authorization-server`, and binds it: the
|
|
98
|
+
* returned `issuer` must equal the requested issuer by code-point (no
|
|
99
|
+
* normalization beyond origin-root parsing). `token_endpoint` is required;
|
|
100
|
+
* `authorization_endpoint` is optional (device-only servers omit it).
|
|
101
|
+
*
|
|
102
|
+
* @param baseUrl - The OAuth server's issuer origin (e.g. "https://launchpad.37signals.com")
|
|
103
|
+
* @throws BasecampError("usage") on a malformed origin, api_error on invalid metadata
|
|
26
104
|
*
|
|
27
105
|
* @example
|
|
28
106
|
* ```ts
|
|
29
107
|
* const config = await discover("https://launchpad.37signals.com");
|
|
30
108
|
* console.log(config.tokenEndpoint);
|
|
31
|
-
* // => "https://launchpad.37signals.com/authorization/token"
|
|
32
109
|
* ```
|
|
33
110
|
*/
|
|
34
111
|
export declare function discover(baseUrl: string, options?: DiscoverOptions): Promise<OAuthConfig>;
|
|
35
112
|
/**
|
|
36
|
-
*
|
|
113
|
+
* Discovers RFC 9728 protected-resource metadata from
|
|
114
|
+
* `{resourceOrigin}/.well-known/oauth-protected-resource`. `resource` is
|
|
115
|
+
* required and must equal the requested origin by code-point.
|
|
116
|
+
* `authorization_servers` is preserved distinctly as absent vs `[]`.
|
|
117
|
+
*
|
|
118
|
+
* @throws BasecampError("usage") on a malformed caller origin, api_error on
|
|
119
|
+
* invalid metadata
|
|
37
120
|
*/
|
|
38
|
-
export declare
|
|
121
|
+
export declare function discoverProtectedResource(resourceOrigin: string, options?: DiscoverOptions): Promise<ProtectedResourceMetadata>;
|
|
39
122
|
/**
|
|
40
|
-
*
|
|
123
|
+
* Resource-first discovery orchestrator (SPEC.md §16). Composes RFC 9728 + RFC
|
|
124
|
+
* 8414 and applies the stage-sensitive fallback state machine.
|
|
41
125
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* @
|
|
45
|
-
*
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
*
|
|
50
|
-
* // Use config.authorizationEndpoint to start OAuth flow
|
|
51
|
-
* ```
|
|
126
|
+
* Returns `{ kind: "selected", config, issuer }` or `{ kind: "fallback", reason }`
|
|
127
|
+
* where `reason ∈ {resource_discovery_failed, no_as_advertised}`. Every hard
|
|
128
|
+
* failure throws {@link DiscoverySelectionError} — callers MUST NOT convert a
|
|
129
|
+
* throw into a Launchpad request.
|
|
130
|
+
*/
|
|
131
|
+
export declare function discoverFromResource(resourceOrigin: string, options?: DiscoverFromResourceOptions): Promise<DiscoverFromResourceResult>;
|
|
132
|
+
/**
|
|
133
|
+
* Discovers OAuth configuration from Basecamp's Launchpad server.
|
|
52
134
|
*/
|
|
53
135
|
export declare function discoverLaunchpad(options?: DiscoverOptions): Promise<OAuthConfig>;
|
|
54
136
|
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/oauth/discovery.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/oauth/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAwB,MAAM,cAAc,CAAC;AAEnE,OAAO,KAAK,EACV,WAAW,EACX,yBAAyB,EAEzB,6BAA6B,EAC7B,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAwCpB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;gBAG7C,MAAM,EAAE,6BAA6B,EACrC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;CAcnD;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,oCAAoC,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAW,GAAG,MAAM,CA6EvE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAMzD;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAoB,GACxB,OAAO,CAAC,MAAM,CAAC,CA0CjB;AAuED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAKtB;AAmHD;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,yBAAyB,CAAC,CA0CpC;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,0BAA0B,CAAC,CA4ErC;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAEtB"}
|