@37signals/basecamp 0.18.0 → 0.19.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 +94 -2
- package/dist/client.d.ts +6 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +11 -5
- package/dist/client.js.map +1 -1
- package/dist/download.js +1 -1
- package/dist/errors.d.ts +10 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +42 -13
- package/dist/errors.js.map +1 -1
- package/dist/generated/metadata.d.ts +1 -2
- package/dist/generated/metadata.d.ts.map +1 -1
- package/dist/generated/metadata.js +47 -1
- package/dist/generated/metadata.js.map +1 -1
- package/dist/generated/metadata.ts +48 -3
- package/dist/generated/openapi-stripped.json +772 -16
- package/dist/generated/path-mapping.d.ts.map +1 -1
- package/dist/generated/path-mapping.js +7 -4
- package/dist/generated/path-mapping.js.map +1 -1
- package/dist/generated/path-mapping.ts +8 -5
- package/dist/generated/person-id-sites.d.ts +2 -0
- package/dist/generated/person-id-sites.d.ts.map +1 -0
- package/dist/generated/person-id-sites.js +689 -0
- package/dist/generated/person-id-sites.js.map +1 -0
- package/dist/generated/person-id-sites.ts +690 -0
- package/dist/generated/schema.d.ts +643 -12
- package/dist/generated/services/event-feed.d.ts +92 -0
- package/dist/generated/services/event-feed.d.ts.map +1 -0
- package/dist/generated/services/event-feed.js +80 -0
- package/dist/generated/services/event-feed.js.map +1 -0
- package/dist/generated/services/event-feed.ts +153 -0
- package/dist/generated/services/gauges.d.ts +7 -3
- package/dist/generated/services/gauges.d.ts.map +1 -1
- package/dist/generated/services/gauges.js +4 -1
- package/dist/generated/services/gauges.js.map +1 -1
- package/dist/generated/services/gauges.ts +10 -3
- package/dist/generated/services/index.d.ts +1 -0
- package/dist/generated/services/index.d.ts.map +1 -1
- package/dist/generated/services/index.js +1 -0
- package/dist/generated/services/index.js.map +1 -1
- package/dist/generated/services/index.ts +1 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/person-id.d.ts +133 -0
- package/dist/person-id.d.ts.map +1 -0
- package/dist/person-id.js +163 -0
- package/dist/person-id.js.map +1 -0
- package/dist/retry.d.ts +2 -1
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +21 -11
- package/dist/retry.js.map +1 -1
- package/dist/services/base.d.ts +35 -0
- package/dist/services/base.d.ts.map +1 -1
- package/dist/services/base.js +387 -55
- package/dist/services/base.js.map +1 -1
- package/dist/services/comments-extensions.d.ts +89 -0
- package/dist/services/comments-extensions.d.ts.map +1 -0
- package/dist/services/comments-extensions.js +166 -0
- package/dist/services/comments-extensions.js.map +1 -0
- package/dist/services/mentions.d.ts +255 -0
- package/dist/services/mentions.d.ts.map +1 -0
- package/dist/services/mentions.js +1431 -0
- package/dist/services/mentions.js.map +1 -0
- package/dist/services/merge-safe.d.ts +13 -5
- package/dist/services/merge-safe.d.ts.map +1 -1
- package/dist/services/merge-safe.js +71 -13
- package/dist/services/merge-safe.js.map +1 -1
- package/dist/services/recordings-extensions.d.ts +354 -0
- package/dist/services/recordings-extensions.d.ts.map +1 -0
- package/dist/services/recordings-extensions.js +1940 -0
- package/dist/services/recordings-extensions.js.map +1 -0
- package/package.json +4 -4
- package/src/generated/metadata.ts +48 -3
- package/src/generated/openapi-stripped.json +772 -16
- package/src/generated/path-mapping.ts +8 -5
- package/src/generated/person-id-sites.ts +690 -0
- package/src/generated/schema.d.ts +643 -12
- package/src/generated/services/event-feed.ts +153 -0
- package/src/generated/services/gauges.ts +10 -3
- package/src/generated/services/index.ts +1 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EventFeed 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
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Options for pollEvents.
|
|
17
|
+
*/
|
|
18
|
+
export interface PollEventsEventFeedOptions {
|
|
19
|
+
/** Entry point: a decimal event id (start after it; `0` replays served
|
|
20
|
+
history back to the epoch), or the literal `now` (skip history). Mutually
|
|
21
|
+
exclusive with `position` in practice; omit both to enter at the present. */
|
|
22
|
+
since?: string;
|
|
23
|
+
/** Resume token from a previous page's `position`. Opaque and signed; never
|
|
24
|
+
constructed or parsed client-side. */
|
|
25
|
+
position?: string;
|
|
26
|
+
/** Comma-separated event types from the catalog (e.g. `message.created,comment.created`). */
|
|
27
|
+
types?: string;
|
|
28
|
+
/** Comma-separated bucket (project) ids, at most 100. */
|
|
29
|
+
buckets?: string;
|
|
30
|
+
/** Comma-separated creator person ids, at most 100. */
|
|
31
|
+
creators?: string;
|
|
32
|
+
/** Comma-separated effective-performer ids (the agent on a delegated action,
|
|
33
|
+
else the creator), at most 100. The literal `self` means the request's own
|
|
34
|
+
effective actor and is resolved server-side before filtering. */
|
|
35
|
+
performers?: string;
|
|
36
|
+
/** Comma-separated effective-performer ids to exclude, at most 100; `self`
|
|
37
|
+
as on `performers`. `exclude_performers=self` is the loop guard for an
|
|
38
|
+
agent that acts on what it hears. */
|
|
39
|
+
excludePerformers?: string;
|
|
40
|
+
/** Comma-separated actor kinds: `agent`, `person`, or both. A filter, not a
|
|
41
|
+
default — agent activity is real account activity. */
|
|
42
|
+
actorTypes?: string;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Options for pollInbox.
|
|
47
|
+
*/
|
|
48
|
+
export interface PollInboxEventFeedOptions {
|
|
49
|
+
/** Entry point: `0` (earliest retained), `now` (present), or a decimal item
|
|
50
|
+
id to start after. */
|
|
51
|
+
since?: string;
|
|
52
|
+
/** Resume token from a previous inbox page's `position`. */
|
|
53
|
+
position?: string;
|
|
54
|
+
/** Comma-separated addressing reasons: `mentioned`, `assigned`, `subscribed`,
|
|
55
|
+
`watched`, `pinged`, `boosted`. */
|
|
56
|
+
reasons?: string;
|
|
57
|
+
/** Comma-separated event types, as a narrowing filter. */
|
|
58
|
+
types?: string;
|
|
59
|
+
/** Comma-separated bucket ids, as a narrowing filter (at most 100). */
|
|
60
|
+
buckets?: string;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
// =============================================================================
|
|
65
|
+
// Service
|
|
66
|
+
// =============================================================================
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Service for EventFeed operations.
|
|
70
|
+
*/
|
|
71
|
+
export class EventFeedService extends BaseService {
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Poll the account event feed for events after a position (oldest first, strict event-id order, up to 100 per page).
|
|
75
|
+
* @param options - Optional query parameters
|
|
76
|
+
* @returns The feed_event
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* const result = await client.eventFeed.pollEvents();
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
async pollEvents(options?: PollEventsEventFeedOptions): Promise<components["schemas"]["PollEventsResponseContent"]> {
|
|
84
|
+
const response = await this.request(
|
|
85
|
+
{
|
|
86
|
+
service: "EventFeed",
|
|
87
|
+
operation: "PollEvents",
|
|
88
|
+
resourceType: "feed_event",
|
|
89
|
+
isMutation: false,
|
|
90
|
+
},
|
|
91
|
+
() =>
|
|
92
|
+
this.client.GET("/events.json", {
|
|
93
|
+
params: {
|
|
94
|
+
query: { since: options?.since, position: options?.position, types: options?.types, buckets: options?.buckets, creators: options?.creators, performers: options?.performers, "exclude_performers": options?.excludePerformers, "actor_types": options?.actorTypes },
|
|
95
|
+
},
|
|
96
|
+
})
|
|
97
|
+
);
|
|
98
|
+
return response;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Mint a short-lived stream ticket and the exact WebSocket URL to open a live event stream with.
|
|
103
|
+
* @returns The stream_ticket
|
|
104
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```ts
|
|
108
|
+
* const result = await client.eventFeed.createStreamTicket();
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
async createStreamTicket(): Promise<components["schemas"]["CreateStreamTicketResponseContent"]> {
|
|
112
|
+
const response = await this.request(
|
|
113
|
+
{
|
|
114
|
+
service: "EventFeed",
|
|
115
|
+
operation: "CreateStreamTicket",
|
|
116
|
+
resourceType: "stream_ticket",
|
|
117
|
+
isMutation: true,
|
|
118
|
+
},
|
|
119
|
+
() =>
|
|
120
|
+
this.client.POST("/events/stream_ticket.json", {
|
|
121
|
+
})
|
|
122
|
+
);
|
|
123
|
+
return response;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Poll the authenticated agent's inbox for the items that addressed it (oldest first, strict item-id order); people receive 403.
|
|
128
|
+
* @param options - Optional query parameters
|
|
129
|
+
* @returns The inbox_item
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```ts
|
|
133
|
+
* const result = await client.eventFeed.pollInbox();
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
async pollInbox(options?: PollInboxEventFeedOptions): Promise<components["schemas"]["PollInboxResponseContent"]> {
|
|
137
|
+
const response = await this.request(
|
|
138
|
+
{
|
|
139
|
+
service: "EventFeed",
|
|
140
|
+
operation: "PollInbox",
|
|
141
|
+
resourceType: "inbox_item",
|
|
142
|
+
isMutation: false,
|
|
143
|
+
},
|
|
144
|
+
() =>
|
|
145
|
+
this.client.GET("/inbox.json", {
|
|
146
|
+
params: {
|
|
147
|
+
query: { since: options?.since, position: options?.position, reasons: options?.reasons, types: options?.types, buckets: options?.buckets },
|
|
148
|
+
},
|
|
149
|
+
})
|
|
150
|
+
);
|
|
151
|
+
return response;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
@@ -20,7 +20,7 @@ import { Errors } from "../../errors.js";
|
|
|
20
20
|
*/
|
|
21
21
|
export interface UpdateGaugeNeedleGaugeRequest {
|
|
22
22
|
/** Gauge needle */
|
|
23
|
-
gaugeNeedle
|
|
23
|
+
gaugeNeedle: components["schemas"]["GaugeNeedleUpdatePayload"];
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
/**
|
|
@@ -45,7 +45,11 @@ export interface ListGaugeNeedlesGaugeOptions extends PaginationOptions {
|
|
|
45
45
|
export interface CreateGaugeNeedleGaugeRequest {
|
|
46
46
|
/** Gauge needle */
|
|
47
47
|
gaugeNeedle: components["schemas"]["GaugeNeedlePayload"];
|
|
48
|
-
/** Who to notify: "everyone", "
|
|
48
|
+
/** Who to notify: "everyone", "default" (the project's existing
|
|
49
|
+
subscribers), or "custom" (the people in `subscriptions`). Omit for
|
|
50
|
+
nobody: bc3 defaults `notify` to "custom", which with no `subscriptions`
|
|
51
|
+
notifies no one, and any unrecognized value (`Subscribers#find_subscribers`
|
|
52
|
+
accepts exactly these three) falls through to nobody as well. */
|
|
49
53
|
notify?: string;
|
|
50
54
|
/** Array of people IDs to notify (only used when notify is "custom") */
|
|
51
55
|
subscriptions?: number[];
|
|
@@ -110,10 +114,13 @@ export class GaugesService extends BaseService {
|
|
|
110
114
|
*
|
|
111
115
|
* @example
|
|
112
116
|
* ```ts
|
|
113
|
-
* const result = await client.gauges.updateGaugeNeedle(123, { });
|
|
117
|
+
* const result = await client.gauges.updateGaugeNeedle(123, { gaugeNeedle: { description: "Details here" } });
|
|
114
118
|
* ```
|
|
115
119
|
*/
|
|
116
120
|
async updateGaugeNeedle(needleId: number, req: UpdateGaugeNeedleGaugeRequest): Promise<components["schemas"]["UpdateGaugeNeedleResponseContent"]> {
|
|
121
|
+
if (!req.gaugeNeedle) {
|
|
122
|
+
throw Errors.validation("Gauge needle is required");
|
|
123
|
+
}
|
|
117
124
|
const response = await this.request(
|
|
118
125
|
{
|
|
119
126
|
service: "Gauges",
|
|
@@ -21,6 +21,7 @@ export { EverythingService } from "./everything.js";
|
|
|
21
21
|
export { PeopleService } from "./people.js";
|
|
22
22
|
export { CommentsService } from "./comments.js";
|
|
23
23
|
export { DocumentsService } from "./documents.js";
|
|
24
|
+
export { EventFeedService } from "./event-feed.js";
|
|
24
25
|
export { GaugesService } from "./gauges.js";
|
|
25
26
|
export { ForwardsService } from "./forwards.js";
|
|
26
27
|
export { AutomationService } from "./automation.js";
|