@relaymessenger/sdk 0.2.0 → 0.3.0-staging.1
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/LICENSE +21 -0
- package/LICENSES/Apache-2.0.txt +201 -0
- package/NOTICE +6 -0
- package/README.md +189 -17
- package/dist/client.d.ts +135 -57
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +520 -144
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +26 -19
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +28 -37
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -8
- package/dist/index.js.map +1 -1
- package/dist/operations.d.ts +144 -0
- package/dist/operations.d.ts.map +1 -0
- package/dist/operations.js +190 -0
- package/dist/operations.js.map +1 -0
- package/dist/pagination.d.ts +24 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/pagination.js +48 -0
- package/dist/pagination.js.map +1 -0
- package/dist/types.d.ts +436 -74
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +0 -1
- package/dist/types.js.map +1 -1
- package/dist/webhooks.d.ts +19 -0
- package/dist/webhooks.d.ts.map +1 -0
- package/dist/webhooks.js +36 -0
- package/dist/webhooks.js.map +1 -0
- package/dist/websocket.d.ts +38 -0
- package/dist/websocket.d.ts.map +1 -0
- package/dist/websocket.js +547 -0
- package/dist/websocket.js.map +1 -0
- package/package.json +22 -15
- package/dist/file-cursor.d.ts +0 -10
- package/dist/file-cursor.js +0 -53
- package/dist/file-cursor.js.map +0 -1
- package/dist/idempotency.d.ts +0 -8
- package/dist/idempotency.js +0 -35
- package/dist/idempotency.js.map +0 -1
- package/dist/memory-dedupe.d.ts +0 -13
- package/dist/memory-dedupe.js +0 -25
- package/dist/memory-dedupe.js.map +0 -1
- package/dist/poll-loop.d.ts +0 -43
- package/dist/poll-loop.js +0 -164
- package/dist/poll-loop.js.map +0 -1
- package/dist/signature.d.ts +0 -18
- package/dist/signature.js +0 -61
- package/dist/signature.js.map +0 -1
- package/dist/url.d.ts +0 -6
- package/dist/url.js +0 -40
- package/dist/url.js.map +0 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export class RelayPage {
|
|
2
|
+
data;
|
|
3
|
+
nextCursor;
|
|
4
|
+
#next;
|
|
5
|
+
constructor(body, next) {
|
|
6
|
+
this.data = body.data;
|
|
7
|
+
this.nextCursor = body.nextCursor;
|
|
8
|
+
this.#next = next;
|
|
9
|
+
}
|
|
10
|
+
hasNextPage() {
|
|
11
|
+
return this.nextCursor !== null;
|
|
12
|
+
}
|
|
13
|
+
async getNextPage() {
|
|
14
|
+
if (!this.nextCursor)
|
|
15
|
+
return null;
|
|
16
|
+
if (!this.#next)
|
|
17
|
+
throw new Error("Relay page has no next-page loader.");
|
|
18
|
+
return this.#next(this.nextCursor);
|
|
19
|
+
}
|
|
20
|
+
async *[Symbol.asyncIterator]() {
|
|
21
|
+
let page = this;
|
|
22
|
+
while (page) {
|
|
23
|
+
yield* page.data;
|
|
24
|
+
page = await page.getNextPage();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export class ChatsPage extends RelayPage {
|
|
29
|
+
chats;
|
|
30
|
+
constructor(body, next) {
|
|
31
|
+
super(body, next);
|
|
32
|
+
this.chats = this.data;
|
|
33
|
+
}
|
|
34
|
+
async getNextPage() {
|
|
35
|
+
return await super.getNextPage();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export class MessagesPage extends RelayPage {
|
|
39
|
+
messages;
|
|
40
|
+
constructor(body, next) {
|
|
41
|
+
super(body, next);
|
|
42
|
+
this.messages = this.data;
|
|
43
|
+
}
|
|
44
|
+
async getNextPage() {
|
|
45
|
+
return await super.getNextPage();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,SAAS;IACX,IAAI,CAAM;IACV,UAAU,CAAgB;IAC1B,KAAK,CAA0D;IAExE,YACE,IAAiB,EACjB,IAAgD;QAEhD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,IAAI,IAAI,GAAwB,IAAI,CAAC;QACrC,OAAO,IAAI,EAAE,CAAC;YACZ,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACjB,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,SAAa,SAAQ,SAAY;IACnC,KAAK,CAAM;IAEpB,YACE,IAAiB,EACjB,IAAgD;QAEhD,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;IACzB,CAAC;IAEQ,KAAK,CAAC,WAAW;QACxB,OAAO,MAAM,KAAK,CAAC,WAAW,EAAyB,CAAC;IAC1D,CAAC;CACF;AAED,MAAM,OAAO,YAAgB,SAAQ,SAAY;IACtC,QAAQ,CAAM;IAEvB,YACE,IAAiB,EACjB,IAAmD;QAEnD,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAEQ,KAAK,CAAC,WAAW;QACxB,OAAO,MAAM,KAAK,CAAC,WAAW,EAA4B,CAAC;IAC7D,CAAC;CACF"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,84 +1,446 @@
|
|
|
1
|
-
|
|
2
|
-
export type
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import type { RELAY_WEBHOOK_EVENT_TYPES } from "./operations.js";
|
|
2
|
+
export type UUID = string;
|
|
3
|
+
export interface RequestOptions {
|
|
4
|
+
signal?: AbortSignal;
|
|
5
|
+
timeout?: number;
|
|
6
|
+
maxRetries?: number;
|
|
7
|
+
headers?: HeadersInit;
|
|
8
|
+
}
|
|
9
|
+
export type DeliveryStatus = "sent" | "delivered" | "read";
|
|
10
|
+
export type ReactionType = "love" | "like" | "dislike" | "laugh" | "emphasize" | "question" | "custom";
|
|
11
|
+
interface ChatHandleBase {
|
|
12
|
+
id: UUID;
|
|
13
|
+
handle: string;
|
|
14
|
+
status?: "active" | "left" | "removed" | null;
|
|
15
|
+
joined_at: string;
|
|
16
|
+
left_at?: string | null;
|
|
17
|
+
is_me?: boolean | null;
|
|
18
|
+
display_name: string | null;
|
|
19
|
+
avatar_url: string | null;
|
|
20
|
+
tagline: string | null;
|
|
21
|
+
verified: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface UserChatHandle extends ChatHandleBase {
|
|
24
|
+
kind: "user";
|
|
25
|
+
}
|
|
26
|
+
export interface AgentChatHandle extends ChatHandleBase {
|
|
27
|
+
kind: "agent";
|
|
28
|
+
}
|
|
29
|
+
export type ChatHandle = UserChatHandle | AgentChatHandle;
|
|
30
|
+
export interface Reaction {
|
|
31
|
+
is_me: boolean;
|
|
32
|
+
handle: ChatHandle;
|
|
33
|
+
type: ReactionType;
|
|
34
|
+
custom_emoji?: string | null;
|
|
35
|
+
}
|
|
36
|
+
export interface TextPart {
|
|
8
37
|
type: "text";
|
|
9
|
-
|
|
10
|
-
|
|
38
|
+
value: string;
|
|
39
|
+
mention?: string | null;
|
|
40
|
+
mention_range?: [number, number] | null;
|
|
41
|
+
}
|
|
42
|
+
export interface MediaPart {
|
|
11
43
|
type: "media";
|
|
12
|
-
attachment_id?: string;
|
|
13
|
-
url?: string;
|
|
14
|
-
} | {
|
|
15
|
-
type: "voice_memo";
|
|
16
|
-
attachment_id?: string;
|
|
17
44
|
url?: string;
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
45
|
+
attachment_id?: UUID;
|
|
46
|
+
}
|
|
47
|
+
export interface LinkPart {
|
|
48
|
+
type: "link";
|
|
49
|
+
value: string;
|
|
50
|
+
}
|
|
51
|
+
export type MessagePart = TextPart | MediaPart | LinkPart;
|
|
52
|
+
export interface TextPartResponse extends TextPart {
|
|
53
|
+
reactions: Reaction[] | null;
|
|
54
|
+
}
|
|
55
|
+
export interface MediaPartResponse {
|
|
56
|
+
type: "media";
|
|
57
|
+
id: UUID;
|
|
21
58
|
url: string;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
59
|
+
filename: string;
|
|
60
|
+
mime_type: string;
|
|
61
|
+
size_bytes: number;
|
|
62
|
+
duration_ms?: number | null;
|
|
63
|
+
width?: number | null;
|
|
64
|
+
height?: number | null;
|
|
65
|
+
reactions: Reaction[] | null;
|
|
66
|
+
}
|
|
67
|
+
export interface LinkPartResponse extends LinkPart {
|
|
68
|
+
reactions: Reaction[] | null;
|
|
69
|
+
}
|
|
70
|
+
export interface SystemEventParty {
|
|
71
|
+
id: UUID;
|
|
72
|
+
handle: string;
|
|
73
|
+
kind: "user" | "agent";
|
|
74
|
+
}
|
|
75
|
+
export type TypingContact = SystemEventParty;
|
|
76
|
+
export interface TypingIndicatorWebhookData {
|
|
77
|
+
chat_id: UUID;
|
|
78
|
+
contact: TypingContact;
|
|
79
|
+
}
|
|
80
|
+
export type SystemEventType = "chat_created" | "participant_added" | "participant_removed" | "group_name_updated" | "group_icon_updated" | "contact_card_shared";
|
|
81
|
+
export interface SystemEvent {
|
|
82
|
+
type: SystemEventType;
|
|
83
|
+
actor: SystemEventParty;
|
|
84
|
+
subject: SystemEventParty | null;
|
|
85
|
+
value: string | null;
|
|
86
|
+
icon_attachment_id: UUID | null;
|
|
87
|
+
contact_card: ContactCardItem | null;
|
|
88
|
+
}
|
|
89
|
+
export interface SystemPartResponse {
|
|
90
|
+
type: "system";
|
|
91
|
+
value: string;
|
|
92
|
+
reactions: null;
|
|
93
|
+
}
|
|
94
|
+
export type MessagePartResponse = TextPartResponse | MediaPartResponse | LinkPartResponse | SystemPartResponse;
|
|
95
|
+
export interface ReplyTo {
|
|
96
|
+
message_id: UUID;
|
|
28
97
|
part_index?: number;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
};
|
|
39
|
-
export type RelayMessage = {
|
|
40
|
-
id: string;
|
|
41
|
-
conversation_id: string;
|
|
42
|
-
sequence: number;
|
|
43
|
-
sender: RelaySender;
|
|
44
|
-
parts: RelayPart[];
|
|
45
|
-
reply_to?: RelayReplyRef | null;
|
|
46
|
-
fallback_text?: string;
|
|
47
|
-
status?: string;
|
|
98
|
+
}
|
|
99
|
+
export interface MessageContent {
|
|
100
|
+
parts: MessagePart[];
|
|
101
|
+
reply_to?: ReplyTo;
|
|
102
|
+
idempotency_key?: string;
|
|
103
|
+
}
|
|
104
|
+
export interface SentMessage {
|
|
105
|
+
id: UUID;
|
|
106
|
+
parts: MessagePartResponse[];
|
|
48
107
|
created_at: string;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
108
|
+
sent_at: string | null;
|
|
109
|
+
delivered_at?: string | null;
|
|
110
|
+
delivery_status: DeliveryStatus;
|
|
111
|
+
from_handle?: ChatHandle | null;
|
|
112
|
+
reply_to?: ReplyTo | null;
|
|
113
|
+
is_system_message: boolean;
|
|
114
|
+
system_event?: SystemEvent | null;
|
|
115
|
+
}
|
|
116
|
+
export interface Message {
|
|
117
|
+
id: UUID;
|
|
118
|
+
chat_id: UUID;
|
|
119
|
+
from?: string | null;
|
|
120
|
+
from_handle?: ChatHandle | null;
|
|
121
|
+
parts?: MessagePartResponse[] | null;
|
|
122
|
+
reply_to?: ReplyTo | null;
|
|
123
|
+
is_system_message: boolean;
|
|
124
|
+
system_event?: SystemEvent | null;
|
|
125
|
+
is_from_me: boolean;
|
|
126
|
+
delivery_status: DeliveryStatus;
|
|
54
127
|
created_at: string;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
128
|
+
updated_at: string;
|
|
129
|
+
sent_at?: string | null;
|
|
130
|
+
delivered_at?: string | null;
|
|
131
|
+
read_at?: string | null;
|
|
132
|
+
deliveries?: MessageDelivery[];
|
|
133
|
+
}
|
|
134
|
+
export interface MessageDelivery {
|
|
135
|
+
contact: ChatHandle;
|
|
136
|
+
delivered_at: string | null;
|
|
137
|
+
read_at: string | null;
|
|
138
|
+
}
|
|
139
|
+
export interface Chat {
|
|
140
|
+
id: UUID;
|
|
141
|
+
display_name: string | null;
|
|
142
|
+
group_chat_icon?: string | null;
|
|
143
|
+
handles: ChatHandle[];
|
|
144
|
+
is_group: boolean;
|
|
145
|
+
created_at: string;
|
|
146
|
+
updated_at: string;
|
|
147
|
+
}
|
|
148
|
+
export interface ChatCreateParams {
|
|
149
|
+
from: string;
|
|
150
|
+
to: string[];
|
|
151
|
+
message: MessageContent;
|
|
152
|
+
}
|
|
153
|
+
export interface ChatCreateResponse {
|
|
154
|
+
chat: Pick<Chat, "id" | "display_name" | "is_group" | "handles"> & {
|
|
155
|
+
message: SentMessage;
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
export interface ChatUpdateParams {
|
|
159
|
+
display_name?: string;
|
|
160
|
+
group_chat_icon?: UUID | null;
|
|
161
|
+
}
|
|
162
|
+
export interface AcceptedResponse {
|
|
163
|
+
status?: string;
|
|
164
|
+
message?: string;
|
|
165
|
+
trace_id?: string;
|
|
166
|
+
}
|
|
167
|
+
export interface ChatUpdateResponse {
|
|
168
|
+
status?: string;
|
|
169
|
+
chat_id?: UUID;
|
|
170
|
+
}
|
|
171
|
+
export interface ChatListChatsParams {
|
|
172
|
+
cursor?: string;
|
|
173
|
+
limit?: number;
|
|
174
|
+
}
|
|
175
|
+
export interface ParticipantAddParams {
|
|
176
|
+
handle: string;
|
|
177
|
+
}
|
|
178
|
+
export type ParticipantRemoveParams = ParticipantAddParams;
|
|
179
|
+
export interface MessageSendParams {
|
|
180
|
+
message: MessageContent;
|
|
181
|
+
}
|
|
182
|
+
export interface MessageSendResponse {
|
|
183
|
+
chat_id: UUID;
|
|
184
|
+
message: SentMessage;
|
|
185
|
+
}
|
|
186
|
+
export interface MessageCreateParams {
|
|
187
|
+
to: string[];
|
|
188
|
+
message: MessageContent;
|
|
189
|
+
"Idempotency-Key"?: string;
|
|
190
|
+
}
|
|
191
|
+
export interface MessageCreateResponse {
|
|
192
|
+
from: string;
|
|
193
|
+
chat_id: UUID;
|
|
194
|
+
created_new_chat: boolean;
|
|
195
|
+
is_group: boolean;
|
|
196
|
+
handles: ChatHandle[];
|
|
197
|
+
message: SentMessage;
|
|
198
|
+
}
|
|
199
|
+
export interface MessageListParams {
|
|
200
|
+
cursor?: string;
|
|
201
|
+
limit?: number;
|
|
202
|
+
}
|
|
203
|
+
export interface MessageThreadParams extends MessageListParams {
|
|
204
|
+
order?: "asc" | "desc";
|
|
205
|
+
}
|
|
206
|
+
export interface MessageAddReactionParams {
|
|
207
|
+
operation: "add" | "remove";
|
|
208
|
+
type: ReactionType;
|
|
209
|
+
custom_emoji?: string;
|
|
210
|
+
part_index?: number;
|
|
211
|
+
}
|
|
212
|
+
export type MessageAddReactionResponse = AcceptedResponse;
|
|
213
|
+
export type ChatSendVoicememoParams = {
|
|
214
|
+
attachment_id: UUID;
|
|
215
|
+
voice_memo_url?: never;
|
|
216
|
+
} | {
|
|
217
|
+
voice_memo_url: string;
|
|
218
|
+
attachment_id?: never;
|
|
60
219
|
};
|
|
61
|
-
export
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
220
|
+
export interface VoiceMemoAttachment {
|
|
221
|
+
id: UUID;
|
|
222
|
+
url: string;
|
|
223
|
+
filename: string;
|
|
224
|
+
mime_type: string;
|
|
225
|
+
size_bytes: number;
|
|
226
|
+
duration_ms?: number | null;
|
|
227
|
+
}
|
|
228
|
+
export interface ChatSendVoicememoResponse {
|
|
229
|
+
voice_memo: {
|
|
230
|
+
id: UUID;
|
|
231
|
+
from: string;
|
|
232
|
+
to: string[];
|
|
233
|
+
status: string;
|
|
234
|
+
voice_memo: VoiceMemoAttachment;
|
|
235
|
+
created_at: string;
|
|
236
|
+
chat: {
|
|
237
|
+
id: UUID;
|
|
238
|
+
handles: ChatHandle[];
|
|
239
|
+
is_group: boolean;
|
|
240
|
+
};
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
export type SupportedContentType = "image/jpeg" | "image/png" | "image/gif" | "image/heic" | "image/heif" | "image/tiff" | "image/bmp" | "image/webp" | "image/x-icon" | "video/mp4" | "video/quicktime" | "video/mpeg" | "video/mpeg2" | "video/x-m4v" | "video/x-msvideo" | "video/3gpp" | "audio/mpeg" | "audio/mp3" | "audio/x-m4a" | "audio/mp4" | "audio/x-caf" | "audio/x-wav" | "audio/x-aiff" | "audio/aiff" | "audio/aac" | "audio/midi" | "audio/amr" | "application/pdf" | "application/vnd.apple.pkpass" | "text/plain" | "text/markdown" | "text/vcard" | "text/rtf" | "text/csv" | "text/html" | "text/calendar" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "application/vnd.ms-powerpoint" | "application/vnd.openxmlformats-officedocument.presentationml.presentation" | "application/x-iwork-pages-sffpages" | "application/x-iwork-numbers-sffnumbers" | "application/x-iwork-keynote-sffkey" | "application/epub+zip" | "text/xml" | "application/json" | "application/zip" | "application/x-gzip";
|
|
244
|
+
export interface AttachmentCreateParams {
|
|
245
|
+
filename: string;
|
|
246
|
+
content_type: SupportedContentType;
|
|
247
|
+
size_bytes: number;
|
|
248
|
+
duration_ms?: number | null;
|
|
249
|
+
width?: number | null;
|
|
250
|
+
height?: number | null;
|
|
251
|
+
}
|
|
252
|
+
export interface AttachmentCreateResponse {
|
|
253
|
+
attachment_id: UUID;
|
|
254
|
+
upload_url: string;
|
|
255
|
+
download_url: string;
|
|
256
|
+
http_method: "PUT";
|
|
257
|
+
expires_at: string;
|
|
258
|
+
required_headers: Record<string, string>;
|
|
259
|
+
}
|
|
260
|
+
export interface Attachment {
|
|
261
|
+
id: UUID;
|
|
262
|
+
filename: string;
|
|
263
|
+
content_type: SupportedContentType;
|
|
264
|
+
size_bytes: number;
|
|
265
|
+
status: "pending" | "complete" | "failed";
|
|
266
|
+
download_url?: string;
|
|
267
|
+
created_at: string;
|
|
268
|
+
duration_ms?: number | null;
|
|
269
|
+
width?: number | null;
|
|
270
|
+
height?: number | null;
|
|
271
|
+
}
|
|
272
|
+
export type WebhookEventType = (typeof RELAY_WEBHOOK_EVENT_TYPES)[number];
|
|
273
|
+
export interface WebhookEventListResponse {
|
|
274
|
+
events: WebhookEventType[];
|
|
275
|
+
doc_url: string;
|
|
276
|
+
}
|
|
277
|
+
export interface WebhookSubscription {
|
|
278
|
+
id: UUID;
|
|
279
|
+
target_url: string;
|
|
280
|
+
subscribed_events: WebhookEventType[];
|
|
281
|
+
is_active: boolean;
|
|
282
|
+
created_at: string;
|
|
283
|
+
updated_at: string;
|
|
284
|
+
}
|
|
285
|
+
export interface WebhookSubscriptionCreateParams {
|
|
286
|
+
target_url: string;
|
|
287
|
+
subscribed_events: WebhookEventType[];
|
|
288
|
+
}
|
|
289
|
+
export interface WebhookSubscriptionCreateResponse extends WebhookSubscription {
|
|
290
|
+
signing_secret: string;
|
|
291
|
+
}
|
|
292
|
+
export interface WebhookSubscriptionUpdateParams {
|
|
293
|
+
target_url?: string;
|
|
294
|
+
subscribed_events?: WebhookEventType[];
|
|
295
|
+
is_active?: boolean;
|
|
296
|
+
}
|
|
297
|
+
export interface WebhookSubscriptionListResponse {
|
|
298
|
+
subscriptions: WebhookSubscription[];
|
|
299
|
+
}
|
|
300
|
+
export interface ContactCardItem {
|
|
301
|
+
handle: string;
|
|
302
|
+
first_name: string;
|
|
303
|
+
last_name: string | null;
|
|
304
|
+
image_url: string | null;
|
|
305
|
+
is_active: boolean;
|
|
306
|
+
kind: "user" | "agent";
|
|
307
|
+
}
|
|
308
|
+
export interface ContactCardCreateParams {
|
|
309
|
+
handle: string;
|
|
310
|
+
first_name: string;
|
|
311
|
+
last_name?: string;
|
|
312
|
+
image_url?: string;
|
|
313
|
+
}
|
|
314
|
+
export interface ContactCardRetrieveParams {
|
|
315
|
+
handle?: string;
|
|
316
|
+
}
|
|
317
|
+
export interface ContactCardRetrieveResponse {
|
|
318
|
+
contact_cards: ContactCardItem[];
|
|
319
|
+
}
|
|
320
|
+
export interface ContactCardUpdateParams {
|
|
321
|
+
handle: string;
|
|
322
|
+
first_name?: string;
|
|
323
|
+
last_name?: string | null;
|
|
324
|
+
image_url?: string | null;
|
|
325
|
+
}
|
|
326
|
+
export interface ContactRequestCreateParams {
|
|
327
|
+
handle: string;
|
|
328
|
+
"Idempotency-Key"?: string;
|
|
329
|
+
}
|
|
330
|
+
export interface ContactRequestCreateResponse {
|
|
331
|
+
state: "pending";
|
|
332
|
+
}
|
|
333
|
+
export interface BlockedHandle {
|
|
334
|
+
handle: string;
|
|
335
|
+
reason: string | null;
|
|
336
|
+
blocked_at: string;
|
|
337
|
+
}
|
|
338
|
+
export interface BlockedHandleListResponse {
|
|
339
|
+
blocked_handles: BlockedHandle[];
|
|
340
|
+
}
|
|
341
|
+
export interface BlockHandleParams {
|
|
342
|
+
handle: string;
|
|
343
|
+
reason?: string;
|
|
344
|
+
}
|
|
345
|
+
export interface BlockHandleResponse {
|
|
346
|
+
blocked_handle: BlockedHandle;
|
|
347
|
+
}
|
|
348
|
+
export interface UnblockHandleParams {
|
|
349
|
+
handle: string;
|
|
350
|
+
}
|
|
351
|
+
export interface WebSocketReadyFrame {
|
|
352
|
+
type: "ready";
|
|
353
|
+
connection_id: UUID;
|
|
354
|
+
acked_through: string;
|
|
355
|
+
full_sync_required: boolean;
|
|
356
|
+
full_sync_through: string | null;
|
|
357
|
+
heartbeat_interval_ms: number;
|
|
358
|
+
max_in_flight: number;
|
|
359
|
+
}
|
|
360
|
+
export interface WebSocketEventFrame<TEvent extends RelayWebhookEvent = RelayWebhookEvent> {
|
|
361
|
+
type: "event";
|
|
362
|
+
sequence: string;
|
|
363
|
+
event: TEvent;
|
|
364
|
+
}
|
|
365
|
+
export interface WebSocketAckFrame {
|
|
366
|
+
type: "ack";
|
|
367
|
+
through_sequence: string;
|
|
368
|
+
}
|
|
369
|
+
export interface WebSocketFullSyncFrame {
|
|
370
|
+
type: "full_sync";
|
|
371
|
+
through_sequence: string;
|
|
372
|
+
reason: "checkpoint_outside_retention";
|
|
373
|
+
}
|
|
374
|
+
export interface WebSocketFullSyncCompleteFrame {
|
|
375
|
+
type: "full_sync_complete";
|
|
376
|
+
through_sequence: string;
|
|
377
|
+
}
|
|
378
|
+
export interface WebSocketPingFrame {
|
|
379
|
+
type: "ping";
|
|
380
|
+
sent_at: string;
|
|
381
|
+
}
|
|
382
|
+
export interface WebSocketPongFrame {
|
|
383
|
+
type: "pong";
|
|
384
|
+
}
|
|
385
|
+
export interface WebSocketErrorFrame {
|
|
386
|
+
type: "error";
|
|
387
|
+
code: WebSocketErrorCode;
|
|
388
|
+
message: string;
|
|
389
|
+
fatal: boolean;
|
|
390
|
+
retryable: boolean;
|
|
391
|
+
}
|
|
392
|
+
export type WebSocketErrorCode = "invalid_frame" | "ack_out_of_range" | "stale_connection" | "ack_failed" | "delivery_failed" | "full_sync_required" | "full_sync_mismatch";
|
|
393
|
+
export interface WebSocketDisconnectFrame {
|
|
394
|
+
type: "disconnect";
|
|
395
|
+
reason: "revoked" | "heartbeat_timeout" | "restart" | "webhook_configured";
|
|
396
|
+
}
|
|
397
|
+
export interface MessageWebhookData {
|
|
398
|
+
chat: {
|
|
399
|
+
id: UUID;
|
|
400
|
+
is_group?: boolean | null;
|
|
401
|
+
owner_handle?: ChatHandle | null;
|
|
402
|
+
};
|
|
403
|
+
id: UUID;
|
|
404
|
+
idempotency_key?: string | null;
|
|
405
|
+
direction: "inbound" | "outbound";
|
|
406
|
+
sender_handle: ChatHandle;
|
|
407
|
+
parts: MessagePartResponse[];
|
|
408
|
+
sent_at?: string | null;
|
|
409
|
+
delivered_at?: string | null;
|
|
410
|
+
read_at?: string | null;
|
|
411
|
+
reply_to?: ReplyTo | null;
|
|
412
|
+
}
|
|
413
|
+
export interface ContactEventContact {
|
|
414
|
+
id: UUID;
|
|
65
415
|
handle: string;
|
|
66
416
|
display_name: string;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
export
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
417
|
+
}
|
|
418
|
+
export interface ContactAddedEvent {
|
|
419
|
+
contact: ContactEventContact;
|
|
420
|
+
chat_id: UUID;
|
|
421
|
+
}
|
|
422
|
+
export interface ContactRemovedEvent {
|
|
423
|
+
contact: ContactEventContact;
|
|
424
|
+
}
|
|
425
|
+
export interface RelayWebhookEnvelope<T = Record<string, unknown>, TEventType extends WebhookEventType = WebhookEventType> {
|
|
426
|
+
api_version: "v1";
|
|
427
|
+
webhook_version: "2026-02-03";
|
|
428
|
+
event_type: TEventType;
|
|
429
|
+
event_id: UUID;
|
|
430
|
+
created_at: string;
|
|
431
|
+
trace_id: string;
|
|
432
|
+
agent_id: UUID;
|
|
433
|
+
data: T;
|
|
434
|
+
}
|
|
435
|
+
export type ContactAddedWebhook = RelayWebhookEnvelope<ContactAddedEvent, "contact.added">;
|
|
436
|
+
export type ContactRemovedWebhook = RelayWebhookEnvelope<ContactRemovedEvent, "contact.removed">;
|
|
437
|
+
export type ContactAddedWebhookData = ContactAddedEvent;
|
|
438
|
+
export type ContactRemovedWebhookData = ContactRemovedEvent;
|
|
439
|
+
export type ContactAddedWebhookEvent = ContactAddedWebhook;
|
|
440
|
+
export type ContactRemovedWebhookEvent = ContactRemovedWebhook;
|
|
441
|
+
type MessageWebhookEventType = "message.sent" | "message.received" | "message.read" | "message.delivered";
|
|
442
|
+
type TypingIndicatorWebhookEventType = "chat.typing_indicator.started" | "chat.typing_indicator.stopped";
|
|
443
|
+
type OtherWebhookEventType = Exclude<WebhookEventType, MessageWebhookEventType | TypingIndicatorWebhookEventType | "contact.added" | "contact.removed">;
|
|
444
|
+
export type RelayWebhookEvent = RelayWebhookEnvelope<MessageWebhookData, MessageWebhookEventType> | RelayWebhookEnvelope<TypingIndicatorWebhookData, TypingIndicatorWebhookEventType> | ContactAddedWebhookEvent | ContactRemovedWebhookEvent | RelayWebhookEnvelope<Record<string, unknown>, OtherWebhookEventType>;
|
|
445
|
+
export {};
|
|
446
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { WebhookVerificationError } from "standardwebhooks";
|
|
2
|
+
import type { RelayWebhookEnvelope, RelayWebhookEvent } from "./types.js";
|
|
3
|
+
export { WebhookVerificationError };
|
|
4
|
+
export type WebhookHeaders = Headers | Record<string, string | null | undefined>;
|
|
5
|
+
export declare const verifyWebhookSignature: (secret: string, body: string | Buffer, headers: WebhookHeaders) => void;
|
|
6
|
+
export declare class Webhooks {
|
|
7
|
+
#private;
|
|
8
|
+
constructor(secret: string | null);
|
|
9
|
+
verify(body: string | Buffer, { headers, key }: {
|
|
10
|
+
headers: WebhookHeaders;
|
|
11
|
+
key?: string;
|
|
12
|
+
}): void;
|
|
13
|
+
unwrap<T = RelayWebhookEvent>(body: string | Buffer, params: {
|
|
14
|
+
headers: WebhookHeaders;
|
|
15
|
+
key?: string;
|
|
16
|
+
}): T;
|
|
17
|
+
}
|
|
18
|
+
export type { RelayWebhookEnvelope };
|
|
19
|
+
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpC,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAsB9C,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,EACd,MAAM,MAAM,GAAG,MAAM,EACrB,SAAS,cAAc,KACtB,IAEF,CAAC;AAEF,qBAAa,QAAQ;;gBAGP,MAAM,EAAE,MAAM,GAAG,IAAI;IAIjC,MAAM,CACJ,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1D,IAAI;IAMP,MAAM,CAAC,CAAC,GAAG,iBAAiB,EAC1B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,MAAM,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAChD,CAAC;CAIL;AAED,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
|
package/dist/webhooks.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Webhook, WebhookVerificationError, } from "standardwebhooks";
|
|
2
|
+
export { WebhookVerificationError };
|
|
3
|
+
const requiredHeaders = (headers) => {
|
|
4
|
+
const get = (name) => headers instanceof Headers ? headers.get(name) : headers[name];
|
|
5
|
+
const id = get("webhook-id");
|
|
6
|
+
const timestamp = get("webhook-timestamp");
|
|
7
|
+
const signature = get("webhook-signature");
|
|
8
|
+
if (!id || !timestamp || !signature) {
|
|
9
|
+
throw new WebhookVerificationError("Missing webhook-id, webhook-timestamp, or webhook-signature.");
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
"webhook-id": id,
|
|
13
|
+
"webhook-timestamp": timestamp,
|
|
14
|
+
"webhook-signature": signature,
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export const verifyWebhookSignature = (secret, body, headers) => {
|
|
18
|
+
new Webhook(secret).verify(body, requiredHeaders(headers));
|
|
19
|
+
};
|
|
20
|
+
export class Webhooks {
|
|
21
|
+
#secret;
|
|
22
|
+
constructor(secret) {
|
|
23
|
+
this.#secret = secret;
|
|
24
|
+
}
|
|
25
|
+
verify(body, { headers, key }) {
|
|
26
|
+
const secret = key ?? this.#secret;
|
|
27
|
+
if (!secret)
|
|
28
|
+
throw new Error("Webhook key is required.");
|
|
29
|
+
verifyWebhookSignature(secret, body, headers);
|
|
30
|
+
}
|
|
31
|
+
unwrap(body, params) {
|
|
32
|
+
this.verify(body, params);
|
|
33
|
+
return JSON.parse(body.toString());
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=webhooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAMpC,MAAM,eAAe,GAAG,CACtB,OAAuB,EACC,EAAE;IAC1B,MAAM,GAAG,GAAG,CAAC,IAAY,EAA6B,EAAE,CACtD,OAAO,YAAY,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,MAAM,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,wBAAwB,CAChC,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,YAAY,EAAE,EAAE;QAChB,mBAAmB,EAAE,SAAS;QAC9B,mBAAmB,EAAE,SAAS;KAC/B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAc,EACd,IAAqB,EACrB,OAAuB,EACjB,EAAE;IACR,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,OAAO,QAAQ;IACV,OAAO,CAAgB;IAEhC,YAAY,MAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,MAAM,CACJ,IAAqB,EACrB,EAAE,OAAO,EAAE,GAAG,EAA6C;QAE3D,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACzD,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CACJ,IAAqB,EACrB,MAAiD;QAEjD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAM,CAAC;IAC1C,CAAC;CACF"}
|