@relaymessenger/chat-sdk-adapter 0.3.0-staging.2 → 0.3.0-staging.4
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 +53 -11
- package/dist/adapter.d.ts +86 -11
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +153 -59
- package/dist/adapter.js.map +1 -1
- package/dist/client.d.ts +15 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +71 -3
- package/dist/client.js.map +1 -1
- package/dist/content.d.ts +34 -1
- package/dist/content.d.ts.map +1 -1
- package/dist/content.js +95 -66
- package/dist/content.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,8 +4,15 @@ Vendor-official Relay adapter for
|
|
|
4
4
|
[Vercel Chat SDK](https://chat-sdk.dev), targeting `chat@4.39.0`.
|
|
5
5
|
|
|
6
6
|
Source is maintained in
|
|
7
|
-
[`RelayMessenger/Relay-SDK`](https://github.com/RelayMessenger/Relay-SDK/tree/
|
|
8
|
-
under `packages/chat-sdk-adapter`.
|
|
7
|
+
[`RelayMessenger/Relay-SDK`](https://github.com/RelayMessenger/Relay-SDK/tree/9180450baf5691f8172514b7117cd92ba5879674/packages/chat-sdk-adapter)
|
|
8
|
+
under `packages/chat-sdk-adapter`. That link is pinned to a commit rather than
|
|
9
|
+
a branch, as the Chat SDK listing guide requires, so it keeps showing the tree
|
|
10
|
+
a listing was reviewed against. Re-pin it whenever the listing is updated.
|
|
11
|
+
|
|
12
|
+
`SOURCE.json` in this directory records where the code was imported from, not
|
|
13
|
+
which repository owns it. Every package in this monorepo carries the same
|
|
14
|
+
record, and its `canonical` field names `Relay-SDK` -- the same repository
|
|
15
|
+
`package.json` points at.
|
|
9
16
|
|
|
10
17
|
Relay Chats map one-to-one to Chat SDK threads. Provider thread IDs are stable
|
|
11
18
|
`relay:<chat UUID>` values; provider message IDs are bare Relay Message UUIDs.
|
|
@@ -91,6 +98,12 @@ therefore requires `idempotencyKeyResolver` for those non-empty posts rather
|
|
|
91
98
|
than manufacturing a random key that changes on recovery. Think integrations
|
|
92
99
|
should return their stable Action/delivery identity from this resolver.
|
|
93
100
|
|
|
101
|
+
Concurrency strategies do not change this. `burst`, `debounce` and `queue`
|
|
102
|
+
defer the handler, but they await it inside the webhook call that carried the
|
|
103
|
+
message, so the turn is still in scope and `thread.post()` gets its key. The
|
|
104
|
+
test suite asserts that for all three, because the day a strategy resumes a
|
|
105
|
+
handler out of band is the day replies would start being refused.
|
|
106
|
+
|
|
94
107
|
### Think runtime typing
|
|
95
108
|
|
|
96
109
|
For a runtime that owns typing timing, disable Chat SDK surface typing:
|
|
@@ -112,9 +125,9 @@ normal `POST`/`DELETE /v1/chats/{chatId}/typing` support.
|
|
|
112
125
|
|
|
113
126
|
This package was rewritten against:
|
|
114
127
|
|
|
115
|
-
- Relay Server `
|
|
128
|
+
- Relay Server `4506b8cb6f41da0b39f3e23a285daf3805fcf3a3`
|
|
116
129
|
- OpenAPI SHA-256
|
|
117
|
-
`
|
|
130
|
+
`e58ffd5de05250a7a218735cb6bffd854d2d1198134f3f8876b2be109f606fde`
|
|
118
131
|
- public `ChatHandle.image_url` and `ChatHandle.about` fields, with no legacy
|
|
119
132
|
aliases
|
|
120
133
|
- Relay API `v1`
|
|
@@ -132,12 +145,13 @@ reproducible contract tests and is excluded from the npm package.
|
|
|
132
145
|
| `reply` | Same route with `message.reply_to` |
|
|
133
146
|
| `stream` | Buffered, then one canonical Message; never partial bubbles |
|
|
134
147
|
| outbound public-URL media | Message `media` part |
|
|
135
|
-
| outbound bytes/files |
|
|
148
|
+
| outbound bytes/files | `POST /v1/attachments` allocate, upload, then a Message `media` part |
|
|
136
149
|
| inbound media | Chat SDK `Attachment` with `fetchData()` |
|
|
137
150
|
| `addReaction`, `removeReaction` | `POST /v1/messages/{messageId}/reactions` |
|
|
138
151
|
| `startTyping`, `endTyping` | `POST`/`DELETE /v1/chats/{chatId}/typing` |
|
|
139
152
|
| `markAsRead` | `POST /v1/chats/{chatId}/read` |
|
|
140
|
-
| `fetchMessages(
|
|
153
|
+
| `fetchMessages()` (backward, the default) | Forward walk to the tail over `GET /v1/chats/{chatId}/messages` |
|
|
154
|
+
| `fetchMessages({ direction: "forward" })` | One `GET /v1/chats/{chatId}/messages` |
|
|
141
155
|
| `fetchMessage` | `GET /v1/messages/{messageId}` |
|
|
142
156
|
| `fetchThread`, `fetchChannelInfo` | `GET /v1/chats/{chatId}` |
|
|
143
157
|
|
|
@@ -170,13 +184,41 @@ metadata predates this behavior.
|
|
|
170
184
|
read the Message, so an agent reads the attachments of messages sent to it
|
|
171
185
|
without owning them.
|
|
172
186
|
|
|
187
|
+
### Attachment content types
|
|
188
|
+
|
|
189
|
+
Relay accepts any syntactically valid `type/subtype` content type, at most 255
|
|
190
|
+
characters, and stores and returns the original bytes unchanged. There is no
|
|
191
|
+
allowlist. A declared type is lower-cased and its parameters are dropped; a
|
|
192
|
+
malformed one is refused before the request leaves your process. When nothing
|
|
193
|
+
is declared and the filename extension is unknown, the type is
|
|
194
|
+
`application/octet-stream`.
|
|
195
|
+
|
|
196
|
+
An inbound part becomes a Chat SDK attachment of type `image`, `video` or
|
|
197
|
+
`audio` from its type prefix, and `file` for everything else, so an unfamiliar
|
|
198
|
+
type arrives as a `file` rather than being dropped.
|
|
199
|
+
|
|
200
|
+
Only pictures and group icons must be images. Those are set with
|
|
201
|
+
`@relaymessenger/sdk`, never through this adapter. The current attachment
|
|
202
|
+
rules are at <https://docs.relayapp.im>.
|
|
203
|
+
|
|
173
204
|
Relay text parts are plain text and are limited to 10,000 UTF-16 code units.
|
|
174
205
|
Long Chat SDK text is split without breaking surrogate pairs. A Relay Message
|
|
175
|
-
is limited to 100 parts.
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
206
|
+
is limited to 100 parts.
|
|
207
|
+
|
|
208
|
+
A public HTTPS attachment URL is sent by reference and costs no upload. Local
|
|
209
|
+
bytes -- `files`, or an `attachment` carrying `data` or `fetchData` -- are
|
|
210
|
+
allocated through `POST /v1/attachments`, uploaded, and then referenced by
|
|
211
|
+
`attachment_id`. Uploads finish before the send, so the Message body names
|
|
212
|
+
attachments that already exist.
|
|
213
|
+
|
|
214
|
+
One consequence is worth knowing. Inside an inbound webhook turn the send is
|
|
215
|
+
keyed on the event ID, so a webhook redelivery re-uploads the bytes, mints new
|
|
216
|
+
attachment IDs, and presents a different body under the same `Idempotency-Key`.
|
|
217
|
+
Relay answers HTTP 409 rather than posting the Message twice. A loud refusal on
|
|
218
|
+
redelivery is the safe end of that trade; a silent duplicate is not. To make a
|
|
219
|
+
file post survive redelivery unchanged, allocate and upload once with
|
|
220
|
+
`@relaymessenger/sdk`, retain that identity durably, and give this adapter the
|
|
221
|
+
stable HTTPS URL instead.
|
|
180
222
|
|
|
181
223
|
Think's `thread.post(callback.stream())` path is safe when the stream is empty:
|
|
182
224
|
the adapter returns a local no-op result so Chat SDK does not enter its
|
package/dist/adapter.d.ts
CHANGED
|
@@ -4,6 +4,21 @@ import type { RelayClientOptions } from "./client.js";
|
|
|
4
4
|
import { type RelayCredential } from "./credentials.js";
|
|
5
5
|
import type { RelayRawMessage, RelayThreadId } from "./types.js";
|
|
6
6
|
export declare const RELAY_ADAPTER_NAME = "relay";
|
|
7
|
+
/**
|
|
8
|
+
* Bounds on the forward walk that serves a backward `fetchMessages`. The page
|
|
9
|
+
* size is the contract's maximum (`contracts/relay-openapi.yaml`, `getMessages`
|
|
10
|
+
* `limit` maximum 100), so the walk reaches the tail in the fewest requests
|
|
11
|
+
* Relay allows.
|
|
12
|
+
*/
|
|
13
|
+
export declare const RELAY_BACKWARD_WALK_PAGE_SIZE = 100;
|
|
14
|
+
export declare const RELAY_BACKWARD_WALK_MAX_PAGES = 10;
|
|
15
|
+
/**
|
|
16
|
+
* How many Chat kinds one adapter remembers for {@link RelayAdapter.isDM}.
|
|
17
|
+
* A Chat is created direct or group and never changes, so an entry never goes
|
|
18
|
+
* stale; the bound exists only so a long-lived agent cannot grow the memo
|
|
19
|
+
* without limit.
|
|
20
|
+
*/
|
|
21
|
+
export declare const RELAY_CHAT_KIND_CACHE_LIMIT = 1000;
|
|
7
22
|
export interface RelayIdempotencyKeyContext {
|
|
8
23
|
chatId: string;
|
|
9
24
|
parts: ReadonlyArray<import("./types.js").RelayOutgoingPart>;
|
|
@@ -50,6 +65,13 @@ export declare class RelayAdapter implements Adapter<RelayThreadId, RelayRawMess
|
|
|
50
65
|
readonly botUserId?: string;
|
|
51
66
|
readonly lockScope: "thread";
|
|
52
67
|
readonly persistThreadHistory = false;
|
|
68
|
+
/**
|
|
69
|
+
* Publish active turns so `ChatInstance.abortTurn(threadId)` cancels work
|
|
70
|
+
* running in another process that shares the configured state adapter. A
|
|
71
|
+
* Relay send is one idempotent HTTP request, so an aborted turn leaves no
|
|
72
|
+
* partial bubble to reconcile.
|
|
73
|
+
*/
|
|
74
|
+
readonly supportsTurnCancellation = true;
|
|
53
75
|
readonly typing: boolean;
|
|
54
76
|
readonly client: RelayClient;
|
|
55
77
|
private readonly signatureToleranceSeconds?;
|
|
@@ -57,11 +79,20 @@ export declare class RelayAdapter implements Adapter<RelayThreadId, RelayRawMess
|
|
|
57
79
|
private readonly idempotencyKeyResolver;
|
|
58
80
|
private readonly turns;
|
|
59
81
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
82
|
+
* Chat UUID to `is_group`, as Relay reported it.
|
|
83
|
+
*
|
|
84
|
+
* `isDM` must answer synchronously, and Relay's stable thread ID carries
|
|
85
|
+
* only the Chat UUID by design, so the answer has to come from somewhere
|
|
86
|
+
* the adapter already learned it. Every path that reads a Chat from Relay
|
|
87
|
+
* records the flag here: inbound webhook dispatch, `fetchThread`, and
|
|
88
|
+
* `onThreadSubscribe`.
|
|
89
|
+
*
|
|
90
|
+
* This is a memo of an immutable Relay fact — a Chat is created direct or
|
|
91
|
+
* group and never changes — not a delivery record and not persistence. It
|
|
92
|
+
* is bounded so a long-lived agent in many chats cannot grow it without
|
|
93
|
+
* limit.
|
|
63
94
|
*/
|
|
64
|
-
private readonly
|
|
95
|
+
private readonly chatIsGroup;
|
|
65
96
|
private chat?;
|
|
66
97
|
constructor(options?: RelayAdapterOptions);
|
|
67
98
|
initialize(chat: ChatInstance): Promise<void>;
|
|
@@ -111,13 +142,29 @@ export declare class RelayAdapter implements Adapter<RelayThreadId, RelayRawMess
|
|
|
111
142
|
private resolveExternalIdempotencyKey;
|
|
112
143
|
private noopResult;
|
|
113
144
|
private isMentioned;
|
|
114
|
-
private enterChatKind;
|
|
115
145
|
/**
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
|
|
146
|
+
* Record what Relay said about a Chat's kind. Re-recording a known chat
|
|
147
|
+
* refreshes its position so the bound evicts the least recently learned.
|
|
148
|
+
*/
|
|
149
|
+
private rememberChatKind;
|
|
150
|
+
/**
|
|
151
|
+
* Whether a thread is a direct conversation rather than a group.
|
|
152
|
+
*
|
|
153
|
+
* Chat SDK asks synchronously, and Relay's stable thread ID carries only
|
|
154
|
+
* the Chat UUID, so this answers from what the adapter has already learned:
|
|
155
|
+
* an inbound webhook dispatch, a `fetchThread`, or `onThreadSubscribe`.
|
|
156
|
+
*
|
|
157
|
+
* A chat this adapter has never seen answers `false` and says so on the
|
|
158
|
+
* debug log. `false` is the safe direction — it is the group answer, so a
|
|
159
|
+
* handler gates on mentions rather than replying to everything — and
|
|
160
|
+
* `fetchThread(threadId)` settles the question for good.
|
|
119
161
|
*/
|
|
120
162
|
isDM(threadId: string): boolean;
|
|
163
|
+
/**
|
|
164
|
+
* Learn a thread's kind when Chat SDK subscribes to it, so `isDM` answers
|
|
165
|
+
* correctly from the first handler call rather than after the first fetch.
|
|
166
|
+
*/
|
|
167
|
+
onThreadSubscribe(threadId: string): Promise<void>;
|
|
121
168
|
postMessage(threadId: string, message: AdapterPostableMessage): Promise<RawMessage<RelayRawMessage>>;
|
|
122
169
|
postChannelMessage(channelId: string, message: AdapterPostableMessage): Promise<RawMessage<RelayRawMessage>>;
|
|
123
170
|
reply(threadId: string, messageId: string, message: AdapterPostableMessage): Promise<RawMessage<RelayRawMessage>>;
|
|
@@ -129,9 +176,37 @@ export declare class RelayAdapter implements Adapter<RelayThreadId, RelayRawMess
|
|
|
129
176
|
endTyping(threadId: string): Promise<void>;
|
|
130
177
|
markAsRead(threadId: string, messageId: string): Promise<void>;
|
|
131
178
|
/**
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
179
|
+
* Fetch messages from a Relay chat.
|
|
180
|
+
*
|
|
181
|
+
* `forward` is Relay's native shape: one `GET /v1/chats/{id}/messages` per
|
|
182
|
+
* call, and `nextCursor` is Relay's own cursor pointing at newer messages.
|
|
183
|
+
*
|
|
184
|
+
* `backward` — the Chat SDK default, and what `thread.fetchMessages()` asks
|
|
185
|
+
* for when loading a chat view — has no native Relay equivalent, because
|
|
186
|
+
* the public contract publishes exactly one opaque cursor and it advances
|
|
187
|
+
* oldest-to-newest. It is served by walking forward to the tail and keeping
|
|
188
|
+
* the newest `limit` messages seen.
|
|
189
|
+
*
|
|
190
|
+
* **The cost is real and worth knowing before you call it.** One backward
|
|
191
|
+
* call issues up to {@link RELAY_BACKWARD_WALK_MAX_PAGES} requests of
|
|
192
|
+
* {@link RELAY_BACKWARD_WALK_PAGE_SIZE} messages each — up to 10 round
|
|
193
|
+
* trips covering 1000 messages — rather than the single request `forward`
|
|
194
|
+
* costs. Chats shorter than one page cost exactly one request, which is the
|
|
195
|
+
* common case.
|
|
196
|
+
*
|
|
197
|
+
* If the walk reaches the end of the chat, the result is exactly the most
|
|
198
|
+
* recent `limit` messages and there is no `nextCursor`: Relay cannot
|
|
199
|
+
* address older messages, so there is no further backward page to offer.
|
|
200
|
+
*
|
|
201
|
+
* If the walk is cut short by the page cap, the messages are the newest the
|
|
202
|
+
* bounded walk could reach and `nextCursor` carries Relay's live forward
|
|
203
|
+
* cursor. Passing it back as `cursor` resumes the walk from that point
|
|
204
|
+
* rather than moving to older messages, so repeated calls converge on the
|
|
205
|
+
* true tail. That is the opposite of the generic backward contract, and it
|
|
206
|
+
* is the only meaning Relay's single forward cursor can carry.
|
|
207
|
+
*
|
|
208
|
+
* Messages are returned oldest-first within the page in every direction, as
|
|
209
|
+
* the interface requires.
|
|
135
210
|
*/
|
|
136
211
|
fetchMessages(threadId: string, options?: FetchOptions): Promise<FetchResult<RelayRawMessage>>;
|
|
137
212
|
fetchChannelMessages(channelId: string, options?: FetchOptions): Promise<FetchResult<RelayRawMessage>>;
|
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValidationError } from "@chat-adapter/shared";
|
|
1
|
+
import { ResourceNotFoundError, ValidationError, } from "@chat-adapter/shared";
|
|
2
2
|
import { Message, NotImplementedError, paragraph, root, text, toPlainText, } from "chat";
|
|
3
3
|
import { RelayApiError, RelayClient } from "./client.js";
|
|
4
4
|
import { relayEnv, validateStaticCredential, } from "./credentials.js";
|
|
@@ -9,6 +9,21 @@ import { assertRelayUuid, decodeRelayThreadId, encodeRelayThreadId, relayChannel
|
|
|
9
9
|
import { inboundIdempotencyKey, RelayTurnContext, } from "./turn.js";
|
|
10
10
|
import { assertExhaustiveEvent, parseReactionEvent, parseWebhookEnvelope, parseWebhookMessageEvent, readWebhookBody, } from "./webhook.js";
|
|
11
11
|
export const RELAY_ADAPTER_NAME = "relay";
|
|
12
|
+
/**
|
|
13
|
+
* Bounds on the forward walk that serves a backward `fetchMessages`. The page
|
|
14
|
+
* size is the contract's maximum (`contracts/relay-openapi.yaml`, `getMessages`
|
|
15
|
+
* `limit` maximum 100), so the walk reaches the tail in the fewest requests
|
|
16
|
+
* Relay allows.
|
|
17
|
+
*/
|
|
18
|
+
export const RELAY_BACKWARD_WALK_PAGE_SIZE = 100;
|
|
19
|
+
export const RELAY_BACKWARD_WALK_MAX_PAGES = 10;
|
|
20
|
+
/**
|
|
21
|
+
* How many Chat kinds one adapter remembers for {@link RelayAdapter.isDM}.
|
|
22
|
+
* A Chat is created direct or group and never changes, so an entry never goes
|
|
23
|
+
* stale; the bound exists only so a long-lived agent cannot grow the memo
|
|
24
|
+
* without limit.
|
|
25
|
+
*/
|
|
26
|
+
export const RELAY_CHAT_KIND_CACHE_LIMIT = 1_000;
|
|
12
27
|
function json(status, body) {
|
|
13
28
|
return Response.json(body, { status });
|
|
14
29
|
}
|
|
@@ -84,6 +99,13 @@ export class RelayAdapter {
|
|
|
84
99
|
botUserId;
|
|
85
100
|
lockScope = "thread";
|
|
86
101
|
persistThreadHistory = false;
|
|
102
|
+
/**
|
|
103
|
+
* Publish active turns so `ChatInstance.abortTurn(threadId)` cancels work
|
|
104
|
+
* running in another process that shares the configured state adapter. A
|
|
105
|
+
* Relay send is one idempotent HTTP request, so an aborted turn leaves no
|
|
106
|
+
* partial bubble to reconcile.
|
|
107
|
+
*/
|
|
108
|
+
supportsTurnCancellation = true;
|
|
87
109
|
typing;
|
|
88
110
|
client;
|
|
89
111
|
signatureToleranceSeconds;
|
|
@@ -91,11 +113,20 @@ export class RelayAdapter {
|
|
|
91
113
|
idempotencyKeyResolver;
|
|
92
114
|
turns = new RelayTurnContext();
|
|
93
115
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
116
|
+
* Chat UUID to `is_group`, as Relay reported it.
|
|
117
|
+
*
|
|
118
|
+
* `isDM` must answer synchronously, and Relay's stable thread ID carries
|
|
119
|
+
* only the Chat UUID by design, so the answer has to come from somewhere
|
|
120
|
+
* the adapter already learned it. Every path that reads a Chat from Relay
|
|
121
|
+
* records the flag here: inbound webhook dispatch, `fetchThread`, and
|
|
122
|
+
* `onThreadSubscribe`.
|
|
123
|
+
*
|
|
124
|
+
* This is a memo of an immutable Relay fact — a Chat is created direct or
|
|
125
|
+
* group and never changes — not a delivery record and not persistence. It
|
|
126
|
+
* is bounded so a long-lived agent in many chats cannot grow it without
|
|
127
|
+
* limit.
|
|
97
128
|
*/
|
|
98
|
-
|
|
129
|
+
chatIsGroup = new Map();
|
|
99
130
|
chat;
|
|
100
131
|
constructor(options = {}) {
|
|
101
132
|
const token = options.token ?? relayEnv("RELAY_AGENT_TOKEN");
|
|
@@ -284,7 +315,7 @@ export class RelayAdapter {
|
|
|
284
315
|
hasPostableContent(message)) {
|
|
285
316
|
throw new ValidationError("relay", "Relay posts outside an inbound webhook require idempotencyKeyResolver");
|
|
286
317
|
}
|
|
287
|
-
const parts = await buildRelayParts(message);
|
|
318
|
+
const parts = await buildRelayParts(message, (upload) => this.client.uploadAttachment(upload));
|
|
288
319
|
if (parts.length === 0) {
|
|
289
320
|
return this.noopResult(chatId, threadId);
|
|
290
321
|
}
|
|
@@ -366,38 +397,56 @@ export class RelayAdapter {
|
|
|
366
397
|
return message.parts.some((part) => part.type === "text" &&
|
|
367
398
|
part.mention === owner.handle);
|
|
368
399
|
}
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
return;
|
|
383
|
-
if (isGroup)
|
|
384
|
-
current.group -= 1;
|
|
385
|
-
else
|
|
386
|
-
current.direct -= 1;
|
|
387
|
-
if (current.direct === 0 && current.group === 0) {
|
|
388
|
-
this.activeChatKinds.delete(chatId);
|
|
389
|
-
}
|
|
390
|
-
};
|
|
400
|
+
/**
|
|
401
|
+
* Record what Relay said about a Chat's kind. Re-recording a known chat
|
|
402
|
+
* refreshes its position so the bound evicts the least recently learned.
|
|
403
|
+
*/
|
|
404
|
+
rememberChatKind(chatId, isGroup) {
|
|
405
|
+
this.chatIsGroup.delete(chatId);
|
|
406
|
+
this.chatIsGroup.set(chatId, isGroup);
|
|
407
|
+
while (this.chatIsGroup.size > RELAY_CHAT_KIND_CACHE_LIMIT) {
|
|
408
|
+
const oldest = this.chatIsGroup.keys().next();
|
|
409
|
+
if (oldest.done)
|
|
410
|
+
break;
|
|
411
|
+
this.chatIsGroup.delete(oldest.value);
|
|
412
|
+
}
|
|
391
413
|
}
|
|
392
414
|
/**
|
|
393
|
-
*
|
|
394
|
-
*
|
|
395
|
-
*
|
|
415
|
+
* Whether a thread is a direct conversation rather than a group.
|
|
416
|
+
*
|
|
417
|
+
* Chat SDK asks synchronously, and Relay's stable thread ID carries only
|
|
418
|
+
* the Chat UUID, so this answers from what the adapter has already learned:
|
|
419
|
+
* an inbound webhook dispatch, a `fetchThread`, or `onThreadSubscribe`.
|
|
420
|
+
*
|
|
421
|
+
* A chat this adapter has never seen answers `false` and says so on the
|
|
422
|
+
* debug log. `false` is the safe direction — it is the group answer, so a
|
|
423
|
+
* handler gates on mentions rather than replying to everything — and
|
|
424
|
+
* `fetchThread(threadId)` settles the question for good.
|
|
396
425
|
*/
|
|
397
426
|
isDM(threadId) {
|
|
398
427
|
const { chatId } = this.decodeThreadId(threadId);
|
|
399
|
-
const
|
|
400
|
-
|
|
428
|
+
const isGroup = this.chatIsGroup.get(chatId);
|
|
429
|
+
if (isGroup === undefined) {
|
|
430
|
+
this.chat
|
|
431
|
+
?.getLogger(RELAY_ADAPTER_NAME)
|
|
432
|
+
.debug(`isDM("${threadId}") answered false: this adapter has not seen `
|
|
433
|
+
+ "chat "
|
|
434
|
+
+ chatId
|
|
435
|
+
+ " yet. Call fetchThread(threadId) to settle it.");
|
|
436
|
+
return false;
|
|
437
|
+
}
|
|
438
|
+
return !isGroup;
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Learn a thread's kind when Chat SDK subscribes to it, so `isDM` answers
|
|
442
|
+
* correctly from the first handler call rather than after the first fetch.
|
|
443
|
+
*/
|
|
444
|
+
async onThreadSubscribe(threadId) {
|
|
445
|
+
const { chatId } = this.decodeThreadId(threadId);
|
|
446
|
+
if (this.chatIsGroup.has(chatId))
|
|
447
|
+
return;
|
|
448
|
+
const chat = await this.client.getChat(chatId);
|
|
449
|
+
this.rememberChatKind(chatId, chat.is_group);
|
|
401
450
|
}
|
|
402
451
|
async postMessage(threadId, message) {
|
|
403
452
|
return this.send(threadId, message);
|
|
@@ -461,26 +510,73 @@ export class RelayAdapter {
|
|
|
461
510
|
await this.client.markChatRead(chatId);
|
|
462
511
|
}
|
|
463
512
|
/**
|
|
464
|
-
*
|
|
465
|
-
*
|
|
466
|
-
*
|
|
513
|
+
* Fetch messages from a Relay chat.
|
|
514
|
+
*
|
|
515
|
+
* `forward` is Relay's native shape: one `GET /v1/chats/{id}/messages` per
|
|
516
|
+
* call, and `nextCursor` is Relay's own cursor pointing at newer messages.
|
|
517
|
+
*
|
|
518
|
+
* `backward` — the Chat SDK default, and what `thread.fetchMessages()` asks
|
|
519
|
+
* for when loading a chat view — has no native Relay equivalent, because
|
|
520
|
+
* the public contract publishes exactly one opaque cursor and it advances
|
|
521
|
+
* oldest-to-newest. It is served by walking forward to the tail and keeping
|
|
522
|
+
* the newest `limit` messages seen.
|
|
523
|
+
*
|
|
524
|
+
* **The cost is real and worth knowing before you call it.** One backward
|
|
525
|
+
* call issues up to {@link RELAY_BACKWARD_WALK_MAX_PAGES} requests of
|
|
526
|
+
* {@link RELAY_BACKWARD_WALK_PAGE_SIZE} messages each — up to 10 round
|
|
527
|
+
* trips covering 1000 messages — rather than the single request `forward`
|
|
528
|
+
* costs. Chats shorter than one page cost exactly one request, which is the
|
|
529
|
+
* common case.
|
|
530
|
+
*
|
|
531
|
+
* If the walk reaches the end of the chat, the result is exactly the most
|
|
532
|
+
* recent `limit` messages and there is no `nextCursor`: Relay cannot
|
|
533
|
+
* address older messages, so there is no further backward page to offer.
|
|
534
|
+
*
|
|
535
|
+
* If the walk is cut short by the page cap, the messages are the newest the
|
|
536
|
+
* bounded walk could reach and `nextCursor` carries Relay's live forward
|
|
537
|
+
* cursor. Passing it back as `cursor` resumes the walk from that point
|
|
538
|
+
* rather than moving to older messages, so repeated calls converge on the
|
|
539
|
+
* true tail. That is the opposite of the generic backward contract, and it
|
|
540
|
+
* is the only meaning Relay's single forward cursor can carry.
|
|
541
|
+
*
|
|
542
|
+
* Messages are returned oldest-first within the page in every direction, as
|
|
543
|
+
* the interface requires.
|
|
467
544
|
*/
|
|
468
545
|
async fetchMessages(threadId, options) {
|
|
469
|
-
if (options?.direction !== "forward") {
|
|
470
|
-
return this.unsupported("fetchMessages(backward)", "Relay chat history exposes only an opaque forward cursor.");
|
|
471
|
-
}
|
|
472
546
|
const { chatId } = this.decodeThreadId(threadId);
|
|
473
|
-
const limit = Math.min(100, Math.max(1, Math.trunc(options
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
547
|
+
const limit = Math.min(100, Math.max(1, Math.trunc(options?.limit ?? 50)));
|
|
548
|
+
if (options?.direction === "forward") {
|
|
549
|
+
const result = await this.client.getMessages({
|
|
550
|
+
chatId,
|
|
551
|
+
limit,
|
|
552
|
+
...(options.cursor ? { cursor: options.cursor } : {}),
|
|
553
|
+
});
|
|
554
|
+
return {
|
|
555
|
+
messages: result.messages.map((message) => this.parseMessage({ chatId, message })),
|
|
556
|
+
...(result.next_cursor
|
|
557
|
+
? { nextCursor: result.next_cursor }
|
|
558
|
+
: {}),
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
let cursor = options?.cursor;
|
|
562
|
+
let newest = [];
|
|
563
|
+
let truncated = false;
|
|
564
|
+
for (let page = 0; page < RELAY_BACKWARD_WALK_MAX_PAGES; page += 1) {
|
|
565
|
+
const result = await this.client.getMessages({
|
|
566
|
+
chatId,
|
|
567
|
+
limit: RELAY_BACKWARD_WALK_PAGE_SIZE,
|
|
568
|
+
...(cursor ? { cursor } : {}),
|
|
569
|
+
});
|
|
570
|
+
// Keep only the newest `limit` seen so a deep chat costs bounded memory.
|
|
571
|
+
newest = newest.concat(result.messages).slice(-limit);
|
|
572
|
+
cursor = result.next_cursor ?? undefined;
|
|
573
|
+
if (!cursor)
|
|
574
|
+
break;
|
|
575
|
+
truncated = page === RELAY_BACKWARD_WALK_MAX_PAGES - 1;
|
|
576
|
+
}
|
|
479
577
|
return {
|
|
480
|
-
messages:
|
|
481
|
-
...(
|
|
482
|
-
? { nextCursor: result.next_cursor }
|
|
483
|
-
: {}),
|
|
578
|
+
messages: newest.map((message) => this.parseMessage({ chatId, message })),
|
|
579
|
+
...(truncated && cursor ? { nextCursor: cursor } : {}),
|
|
484
580
|
};
|
|
485
581
|
}
|
|
486
582
|
async fetchChannelMessages(channelId, options) {
|
|
@@ -496,16 +592,17 @@ export class RelayAdapter {
|
|
|
496
592
|
return this.parseMessage({ chatId, message });
|
|
497
593
|
}
|
|
498
594
|
catch (error) {
|
|
499
|
-
|
|
500
|
-
|
|
595
|
+
// The client maps a Relay 404 onto the shared class, so the absent
|
|
596
|
+
// message is recognised by meaning rather than by HTTP status.
|
|
597
|
+
if (error instanceof ResourceNotFoundError)
|
|
501
598
|
return null;
|
|
502
|
-
}
|
|
503
599
|
throw error;
|
|
504
600
|
}
|
|
505
601
|
}
|
|
506
602
|
async fetchThread(threadId) {
|
|
507
603
|
const { chatId } = this.decodeThreadId(threadId);
|
|
508
604
|
const chat = await this.client.getChat(chatId);
|
|
605
|
+
this.rememberChatKind(chatId, chat.is_group);
|
|
509
606
|
return {
|
|
510
607
|
channelId: threadId,
|
|
511
608
|
...(chat.display_name
|
|
@@ -655,13 +752,10 @@ export class RelayAdapter {
|
|
|
655
752
|
const threadId = this.encodeThreadId({
|
|
656
753
|
chatId: data.chat.id,
|
|
657
754
|
});
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
finally {
|
|
663
|
-
leaveChatKind();
|
|
664
|
-
}
|
|
755
|
+
// The event already carries the Chat's kind, so an inbound dispatch
|
|
756
|
+
// settles isDM for this chat without spending a request on it.
|
|
757
|
+
this.rememberChatKind(data.chat.id, data.chat.is_group === true);
|
|
758
|
+
await this.initializedChat().processMessage(this, threadId, this.parseMessage(raw), options);
|
|
665
759
|
return;
|
|
666
760
|
}
|
|
667
761
|
case "message.sent":
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -22,6 +22,21 @@ export declare class RelayApiError extends AdapterError {
|
|
|
22
22
|
readonly responseBody?: unknown;
|
|
23
23
|
constructor(status: number, relayCode: string, message: string, responseBody?: unknown);
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Map a Relay API status onto the Chat SDK's shared error classes so a
|
|
27
|
+
* consumer can catch `AdapterRateLimitError` and read `retryAfter`, or catch
|
|
28
|
+
* `AuthenticationError`, without knowing Relay's HTTP vocabulary.
|
|
29
|
+
*
|
|
30
|
+
* `RelayApiError` stays the default: a status Relay defines but the shared
|
|
31
|
+
* vocabulary has no class for — 409 idempotency conflict, for instance —
|
|
32
|
+
* must keep its Relay status and code rather than be flattened into a
|
|
33
|
+
* near-miss.
|
|
34
|
+
*/
|
|
35
|
+
export declare function relayHttpError(options: {
|
|
36
|
+
body: unknown;
|
|
37
|
+
path: string;
|
|
38
|
+
status: number;
|
|
39
|
+
}): AdapterError;
|
|
25
40
|
/**
|
|
26
41
|
* Minimal client for only the locked Relay v1 operations used by the adapter.
|
|
27
42
|
*/
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AdapterError, NetworkError, ValidationError, } from "@chat-adapter/shared";
|
|
1
|
+
import { AdapterError, AdapterRateLimitError, AuthenticationError, NetworkError, PermissionError, ResourceNotFoundError, ValidationError, } from "@chat-adapter/shared";
|
|
2
2
|
import { resolveRelayCredential, validateStaticCredential, } from "./credentials.js";
|
|
3
3
|
import { assertRelayUuid } from "./thread-id.js";
|
|
4
4
|
export const RELAY_DEFAULT_BASE_URL = "https://api.relayapp.im";
|
|
@@ -49,6 +49,75 @@ function errorDetails(body, status) {
|
|
|
49
49
|
: `Relay API request failed with HTTP ${status}`,
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* `retry_after` is published by the Relay error contract as an integer number
|
|
54
|
+
* of seconds and is "Only present on 429 rate limit errors"
|
|
55
|
+
* (`contracts/relay-openapi.yaml`, `ErrorDetail.retry_after`).
|
|
56
|
+
*/
|
|
57
|
+
function retryAfterSeconds(body) {
|
|
58
|
+
if (typeof body !== "object" || body === null)
|
|
59
|
+
return undefined;
|
|
60
|
+
const record = body;
|
|
61
|
+
const error = typeof record.error === "object" && record.error !== null
|
|
62
|
+
? record.error
|
|
63
|
+
: record;
|
|
64
|
+
const value = error.retry_after;
|
|
65
|
+
return typeof value === "number" && Number.isFinite(value)
|
|
66
|
+
? value
|
|
67
|
+
: undefined;
|
|
68
|
+
}
|
|
69
|
+
const RESOURCE_BY_COLLECTION = {
|
|
70
|
+
attachments: "attachment",
|
|
71
|
+
chats: "chat",
|
|
72
|
+
messages: "message",
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Name the resource a 404 is about from the path this client itself built.
|
|
76
|
+
* Every Relay route is `/v1/{collection}/{id}/...`, so the owning resource is
|
|
77
|
+
* the first collection segment and its ID is the segment after it.
|
|
78
|
+
*/
|
|
79
|
+
function resourceFromPath(path) {
|
|
80
|
+
const segments = path.split("?")[0].split("/").filter(Boolean);
|
|
81
|
+
const collection = segments[1];
|
|
82
|
+
const type = (collection ? RESOURCE_BY_COLLECTION[collection] : undefined) ??
|
|
83
|
+
"resource";
|
|
84
|
+
const id = segments[2];
|
|
85
|
+
return id ? { id: decodeURIComponent(id), type } : { type };
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Map a Relay API status onto the Chat SDK's shared error classes so a
|
|
89
|
+
* consumer can catch `AdapterRateLimitError` and read `retryAfter`, or catch
|
|
90
|
+
* `AuthenticationError`, without knowing Relay's HTTP vocabulary.
|
|
91
|
+
*
|
|
92
|
+
* `RelayApiError` stays the default: a status Relay defines but the shared
|
|
93
|
+
* vocabulary has no class for — 409 idempotency conflict, for instance —
|
|
94
|
+
* must keep its Relay status and code rather than be flattened into a
|
|
95
|
+
* near-miss.
|
|
96
|
+
*/
|
|
97
|
+
export function relayHttpError(options) {
|
|
98
|
+
const { body, path, status } = options;
|
|
99
|
+
const details = errorDetails(body, status);
|
|
100
|
+
switch (status) {
|
|
101
|
+
case 400:
|
|
102
|
+
case 422:
|
|
103
|
+
return new ValidationError("relay", details.message);
|
|
104
|
+
case 401:
|
|
105
|
+
return new AuthenticationError("relay", details.message);
|
|
106
|
+
case 403:
|
|
107
|
+
return new PermissionError("relay", details.message, details.code);
|
|
108
|
+
case 404: {
|
|
109
|
+
const resource = resourceFromPath(path);
|
|
110
|
+
return new ResourceNotFoundError("relay", resource.type, resource.id);
|
|
111
|
+
}
|
|
112
|
+
case 429:
|
|
113
|
+
return new AdapterRateLimitError("relay", retryAfterSeconds(body));
|
|
114
|
+
default:
|
|
115
|
+
if (status >= 500) {
|
|
116
|
+
return new NetworkError("relay", details.message);
|
|
117
|
+
}
|
|
118
|
+
return new RelayApiError(status, details.code, details.message, body);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
52
121
|
/**
|
|
53
122
|
* Minimal client for only the locked Relay v1 operations used by the adapter.
|
|
54
123
|
*/
|
|
@@ -88,8 +157,7 @@ export class RelayClient {
|
|
|
88
157
|
}
|
|
89
158
|
const body = await parseResponseBody(response);
|
|
90
159
|
if (!response.ok) {
|
|
91
|
-
|
|
92
|
-
throw new RelayApiError(response.status, details.code, details.message, body);
|
|
160
|
+
throw relayHttpError({ body, path, status: response.status });
|
|
93
161
|
}
|
|
94
162
|
return body;
|
|
95
163
|
}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/content.d.ts
CHANGED
|
@@ -1,11 +1,44 @@
|
|
|
1
1
|
import { type AdapterPostableMessage } from "chat";
|
|
2
2
|
import type { RelayOutgoingPart } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Allocate a Relay Attachment and put the bytes behind it, returning the ID a
|
|
5
|
+
* media part references. `RelayClient.uploadAttachment` satisfies this.
|
|
6
|
+
*/
|
|
7
|
+
export type RelayMediaUploader = (upload: {
|
|
8
|
+
body: Uint8Array<ArrayBuffer>;
|
|
9
|
+
contentType: string;
|
|
10
|
+
filename: string;
|
|
11
|
+
height?: number;
|
|
12
|
+
width?: number;
|
|
13
|
+
}) => Promise<{
|
|
14
|
+
attachment_id: string;
|
|
15
|
+
}>;
|
|
3
16
|
export declare const RELAY_MAX_TEXT_PART_LENGTH = 10000;
|
|
4
17
|
export declare const RELAY_MAX_MESSAGE_PARTS = 100;
|
|
5
18
|
export declare const RELAY_MAX_ATTACHMENT_BYTES = 104857600;
|
|
19
|
+
/**
|
|
20
|
+
* Relay accepts any syntactically valid media type for an Attachment and
|
|
21
|
+
* stores the original bytes unchanged, so this adapter validates the shape of
|
|
22
|
+
* a declared content type instead of matching it against a list. Only
|
|
23
|
+
* pictures and group icons must be images, and those are set through
|
|
24
|
+
* `@relaymessenger/sdk`, never here.
|
|
25
|
+
*/
|
|
26
|
+
export declare const RELAY_MAX_CONTENT_TYPE_LENGTH = 255;
|
|
27
|
+
export declare const RELAY_FALLBACK_CONTENT_TYPE = "application/octet-stream";
|
|
6
28
|
export declare function contentTypeFor(filename: string, declared?: string): string;
|
|
7
29
|
export declare function postableText(message: AdapterPostableMessage): string;
|
|
8
30
|
export declare function hasPostableContent(message: AdapterPostableMessage): boolean;
|
|
9
31
|
export declare function textParts(value: string): RelayOutgoingPart[];
|
|
10
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Turn a Chat SDK postable message into Relay message parts, allocating and
|
|
34
|
+
* uploading any local bytes it carries.
|
|
35
|
+
*
|
|
36
|
+
* Uploads run before the send, so the send body names attachment IDs that
|
|
37
|
+
* already exist. Inside an inbound webhook turn the send is keyed on the
|
|
38
|
+
* event ID: a redelivery re-uploads, producing new attachment IDs and so a
|
|
39
|
+
* different body under the same Idempotency-Key, which Relay refuses with
|
|
40
|
+
* HTTP 409 rather than posting the message twice. A loud refusal on
|
|
41
|
+
* redelivery is the safe end of that trade; a silent duplicate is not.
|
|
42
|
+
*/
|
|
43
|
+
export declare function buildRelayParts(message: AdapterPostableMessage, upload: RelayMediaUploader): Promise<RelayOutgoingPart[]>;
|
|
11
44
|
//# sourceMappingURL=content.d.ts.map
|
package/dist/content.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,KAAK,sBAAsB,EAG5B,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE;IACxC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,KAAK,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAazC,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,0BAA0B,YAAc,CAAC;AAEtD;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAC;AACjD,eAAO,MAAM,2BAA2B,6BAA6B,CAAC;AAuDtE,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAqBR;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CA0BpE;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAMT;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAmB5D;AAsFD;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAe9B"}
|
package/dist/content.js
CHANGED
|
@@ -1,60 +1,33 @@
|
|
|
1
|
-
import { cardToFallbackText, extractCard, extractFiles, extractPostableAttachments, ValidationError, } from "@chat-adapter/shared";
|
|
1
|
+
import { cardToFallbackText, extractCard, extractFiles, extractPostableAttachments, toBuffer, ValidationError, } from "@chat-adapter/shared";
|
|
2
2
|
import { markdownToPlainText, toPlainText, } from "chat";
|
|
3
|
+
/**
|
|
4
|
+
* `toBuffer`'s `platform` only names the four adapters that shipped with the
|
|
5
|
+
* helper and is used for nothing but an error string. `throwOnUnsupported` is
|
|
6
|
+
* off here so that string never reaches a caller: an unusable body is refused
|
|
7
|
+
* below with Relay's own message and the file's name in it.
|
|
8
|
+
*/
|
|
9
|
+
const TO_BUFFER_OPTIONS = {
|
|
10
|
+
platform: "relay",
|
|
11
|
+
throwOnUnsupported: false,
|
|
12
|
+
};
|
|
3
13
|
export const RELAY_MAX_TEXT_PART_LENGTH = 10_000;
|
|
4
14
|
export const RELAY_MAX_MESSAGE_PARTS = 100;
|
|
5
15
|
export const RELAY_MAX_ATTACHMENT_BYTES = 104_857_600;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"video/x-msvideo",
|
|
22
|
-
"video/3gpp",
|
|
23
|
-
"audio/mpeg",
|
|
24
|
-
"audio/mp3",
|
|
25
|
-
"audio/x-m4a",
|
|
26
|
-
"audio/mp4",
|
|
27
|
-
"audio/x-caf",
|
|
28
|
-
"audio/x-wav",
|
|
29
|
-
"audio/x-aiff",
|
|
30
|
-
"audio/aiff",
|
|
31
|
-
"audio/aac",
|
|
32
|
-
"audio/midi",
|
|
33
|
-
"audio/amr",
|
|
34
|
-
"application/pdf",
|
|
35
|
-
"application/vnd.apple.pkpass",
|
|
36
|
-
"text/plain",
|
|
37
|
-
"text/markdown",
|
|
38
|
-
"text/vcard",
|
|
39
|
-
"text/rtf",
|
|
40
|
-
"text/csv",
|
|
41
|
-
"text/html",
|
|
42
|
-
"text/calendar",
|
|
43
|
-
"application/msword",
|
|
44
|
-
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
45
|
-
"application/vnd.ms-excel",
|
|
46
|
-
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
47
|
-
"application/vnd.ms-powerpoint",
|
|
48
|
-
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
49
|
-
"application/x-iwork-pages-sffpages",
|
|
50
|
-
"application/x-iwork-numbers-sffnumbers",
|
|
51
|
-
"application/x-iwork-keynote-sffkey",
|
|
52
|
-
"application/epub+zip",
|
|
53
|
-
"text/xml",
|
|
54
|
-
"application/json",
|
|
55
|
-
"application/zip",
|
|
56
|
-
"application/x-gzip",
|
|
57
|
-
]);
|
|
16
|
+
/**
|
|
17
|
+
* Relay accepts any syntactically valid media type for an Attachment and
|
|
18
|
+
* stores the original bytes unchanged, so this adapter validates the shape of
|
|
19
|
+
* a declared content type instead of matching it against a list. Only
|
|
20
|
+
* pictures and group icons must be images, and those are set through
|
|
21
|
+
* `@relaymessenger/sdk`, never here.
|
|
22
|
+
*/
|
|
23
|
+
export const RELAY_MAX_CONTENT_TYPE_LENGTH = 255;
|
|
24
|
+
export const RELAY_FALLBACK_CONTENT_TYPE = "application/octet-stream";
|
|
25
|
+
/**
|
|
26
|
+
* RFC 2045 `token`: printable US-ASCII without SPACE, CTLs, or tspecials
|
|
27
|
+
* (`(` `)` `<` `>` `@` `,` `;` `:` `\` `"` `/` `[` `]` `?` `=`).
|
|
28
|
+
*/
|
|
29
|
+
const RFC_2045_TOKEN = "[!#$%&'*+.^_`|~{}0-9A-Za-z-]+";
|
|
30
|
+
const MEDIA_TYPE = new RegExp(`^${RFC_2045_TOKEN}/${RFC_2045_TOKEN}$`, "u");
|
|
58
31
|
const MIME_BY_EXTENSION = {
|
|
59
32
|
aac: "audio/aac",
|
|
60
33
|
aiff: "audio/aiff",
|
|
@@ -96,12 +69,18 @@ const MIME_BY_EXTENSION = {
|
|
|
96
69
|
};
|
|
97
70
|
export function contentTypeFor(filename, declared) {
|
|
98
71
|
const normalized = declared?.split(";", 1)[0]?.trim().toLowerCase();
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
72
|
+
if (normalized) {
|
|
73
|
+
if (normalized.length > RELAY_MAX_CONTENT_TYPE_LENGTH
|
|
74
|
+
|| !MEDIA_TYPE.test(normalized)) {
|
|
75
|
+
throw new ValidationError("relay", `Relay cannot use ${JSON.stringify(declared)} as the content type for ${JSON.stringify(filename)}; pass a `
|
|
76
|
+
+ `"type/subtype" media type of at most `
|
|
77
|
+
+ `${RELAY_MAX_CONTENT_TYPE_LENGTH} characters`);
|
|
78
|
+
}
|
|
79
|
+
return normalized;
|
|
103
80
|
}
|
|
104
|
-
|
|
81
|
+
const extension = filename.split(".").at(-1)?.toLowerCase();
|
|
82
|
+
return (extension ? MIME_BY_EXTENSION[extension] : undefined)
|
|
83
|
+
?? RELAY_FALLBACK_CONTENT_TYPE;
|
|
105
84
|
}
|
|
106
85
|
export function postableText(message) {
|
|
107
86
|
if (typeof message === "string")
|
|
@@ -147,22 +126,72 @@ export function textParts(value) {
|
|
|
147
126
|
}
|
|
148
127
|
return result;
|
|
149
128
|
}
|
|
150
|
-
|
|
129
|
+
/**
|
|
130
|
+
* Read a postable body into bytes Relay can store.
|
|
131
|
+
*
|
|
132
|
+
* A Node `Buffer` is a view into a pooled `ArrayBuffer` that it usually does
|
|
133
|
+
* not own outright, so the bytes are copied out of the pool. Handing
|
|
134
|
+
* `buffer.buffer` straight to the uploader would post whatever else the pool
|
|
135
|
+
* happened to be holding.
|
|
136
|
+
*/
|
|
137
|
+
async function uploadBody(data, label) {
|
|
138
|
+
const buffer = await toBuffer(data, TO_BUFFER_OPTIONS);
|
|
139
|
+
if (!buffer) {
|
|
140
|
+
throw new ValidationError("relay", `Relay cannot read the bytes of ${label}; pass a Buffer, an `
|
|
141
|
+
+ "ArrayBuffer, or a Blob.");
|
|
142
|
+
}
|
|
143
|
+
return new Uint8Array(buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength));
|
|
144
|
+
}
|
|
145
|
+
async function uploadedMediaPart(upload, options) {
|
|
146
|
+
const allocation = await upload(options);
|
|
147
|
+
return { attachment_id: allocation.attachment_id, type: "media" };
|
|
148
|
+
}
|
|
149
|
+
async function attachmentPart(attachment, upload) {
|
|
150
|
+
// A public URL is already storable by reference, so it costs no upload.
|
|
151
151
|
if (attachment.url?.startsWith("https://")) {
|
|
152
152
|
return { type: "media", url: attachment.url };
|
|
153
153
|
}
|
|
154
|
-
|
|
155
|
-
|
|
154
|
+
const filename = attachment.name ?? "attachment";
|
|
155
|
+
const data = attachment.data ?? (await attachment.fetchData?.());
|
|
156
|
+
if (data === undefined) {
|
|
157
|
+
throw new ValidationError("relay", `Attachment ${JSON.stringify(filename)} carries neither bytes nor a `
|
|
158
|
+
+ "public HTTPS URL.");
|
|
159
|
+
}
|
|
160
|
+
return uploadedMediaPart(upload, {
|
|
161
|
+
body: await uploadBody(data, `attachment ${JSON.stringify(filename)}`),
|
|
162
|
+
contentType: contentTypeFor(filename, attachment.mimeType),
|
|
163
|
+
filename,
|
|
164
|
+
...(attachment.height !== undefined
|
|
165
|
+
? { height: attachment.height }
|
|
166
|
+
: {}),
|
|
167
|
+
...(attachment.width !== undefined ? { width: attachment.width } : {}),
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
async function filePart(file, upload) {
|
|
171
|
+
return uploadedMediaPart(upload, {
|
|
172
|
+
body: await uploadBody(file.data, `file ${JSON.stringify(file.filename)}`),
|
|
173
|
+
contentType: contentTypeFor(file.filename, file.mimeType),
|
|
174
|
+
filename: file.filename,
|
|
175
|
+
});
|
|
156
176
|
}
|
|
157
|
-
|
|
177
|
+
/**
|
|
178
|
+
* Turn a Chat SDK postable message into Relay message parts, allocating and
|
|
179
|
+
* uploading any local bytes it carries.
|
|
180
|
+
*
|
|
181
|
+
* Uploads run before the send, so the send body names attachment IDs that
|
|
182
|
+
* already exist. Inside an inbound webhook turn the send is keyed on the
|
|
183
|
+
* event ID: a redelivery re-uploads, producing new attachment IDs and so a
|
|
184
|
+
* different body under the same Idempotency-Key, which Relay refuses with
|
|
185
|
+
* HTTP 409 rather than posting the message twice. A loud refusal on
|
|
186
|
+
* redelivery is the safe end of that trade; a silent duplicate is not.
|
|
187
|
+
*/
|
|
188
|
+
export async function buildRelayParts(message, upload) {
|
|
158
189
|
const parts = textParts(postableText(message));
|
|
159
190
|
for (const attachment of extractPostableAttachments(message)) {
|
|
160
|
-
parts.push(await attachmentPart(attachment));
|
|
191
|
+
parts.push(await attachmentPart(attachment, upload));
|
|
161
192
|
}
|
|
162
193
|
for (const file of extractFiles(message)) {
|
|
163
|
-
|
|
164
|
-
+ "Allocate and upload retryable bytes with @relaymessenger/sdk before "
|
|
165
|
-
+ "posting through Chat SDK.");
|
|
194
|
+
parts.push(await filePart(file, upload));
|
|
166
195
|
}
|
|
167
196
|
if (parts.length > RELAY_MAX_MESSAGE_PARTS) {
|
|
168
197
|
throw new ValidationError("relay", `A Relay message supports at most ${RELAY_MAX_MESSAGE_PARTS} parts`);
|
package/dist/content.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,0BAA0B,EAC1B,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,WAAW,
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { createRelayAdapter, RELAY_ADAPTER_NAME, RelayAdapter, } from "./adapter.js";
|
|
1
|
+
export { createRelayAdapter, RELAY_ADAPTER_NAME, RELAY_BACKWARD_WALK_MAX_PAGES, RELAY_BACKWARD_WALK_PAGE_SIZE, RelayAdapter, } from "./adapter.js";
|
|
2
2
|
export type { RelayAdapterOptions } from "./adapter.js";
|
|
3
3
|
export type { RelayIdempotencyKeyContext, RelayIdempotencyKeyResolver, } from "./adapter.js";
|
|
4
|
-
export { RELAY_DEFAULT_BASE_URL, RelayApiError, RelayClient, } from "./client.js";
|
|
4
|
+
export { RELAY_DEFAULT_BASE_URL, relayHttpError, RelayApiError, RelayClient, } from "./client.js";
|
|
5
5
|
export type { RelayClientOptions, RelayUploadOptions, } from "./client.js";
|
|
6
6
|
export { relayEnv, resolveRelayCredential, validateStaticCredential, } from "./credentials.js";
|
|
7
7
|
export type { RelayCredential, RelayCredentialResolver, } from "./credentials.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,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,YAAY,EACV,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,QAAQ,EACR,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,eAAe,EACf,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,mBAAmB,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,6BAA6B,EAC7B,6BAA6B,EAC7B,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,YAAY,EACV,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,QAAQ,EACR,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,eAAe,EACf,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,mBAAmB,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { createRelayAdapter, RELAY_ADAPTER_NAME, RelayAdapter, } from "./adapter.js";
|
|
2
|
-
export { RELAY_DEFAULT_BASE_URL, RelayApiError, RelayClient, } from "./client.js";
|
|
1
|
+
export { createRelayAdapter, RELAY_ADAPTER_NAME, RELAY_BACKWARD_WALK_MAX_PAGES, RELAY_BACKWARD_WALK_PAGE_SIZE, RelayAdapter, } from "./adapter.js";
|
|
2
|
+
export { RELAY_DEFAULT_BASE_URL, relayHttpError, RelayApiError, RelayClient, } from "./client.js";
|
|
3
3
|
export { relayEnv, resolveRelayCredential, validateStaticCredential, } from "./credentials.js";
|
|
4
4
|
export { RELAY_MAX_ATTACHMENT_BYTES, RELAY_MAX_MESSAGE_PARTS, RELAY_MAX_TEXT_PART_LENGTH, } from "./content.js";
|
|
5
5
|
export { fromRelayReaction, toRelayReaction, } from "./reactions.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,GACb,MAAM,cAAc,CAAC;AAMtB,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AAKrB,OAAO,EACL,QAAQ,EACR,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,6BAA6B,EAC7B,6BAA6B,EAC7B,YAAY,GACb,MAAM,cAAc,CAAC;AAMtB,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AAKrB,OAAO,EACL,QAAQ,EACR,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Relay v1 wire types used by this adapter.
|
|
3
3
|
*
|
|
4
4
|
* Contract source:
|
|
5
|
-
* Relay Server
|
|
6
|
-
* OpenAPI
|
|
5
|
+
* Relay Server 4506b8cb6f41da0b39f3e23a285daf3805fcf3a3
|
|
6
|
+
* OpenAPI e58ffd5de05250a7a218735cb6bffd854d2d1198134f3f8876b2be109f606fde
|
|
7
7
|
*/
|
|
8
8
|
export declare const RELAY_API_VERSION: "v1";
|
|
9
9
|
export declare const RELAY_WEBHOOK_VERSION: "2026-08-30";
|
package/dist/types.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Relay v1 wire types used by this adapter.
|
|
3
3
|
*
|
|
4
4
|
* Contract source:
|
|
5
|
-
* Relay Server
|
|
6
|
-
* OpenAPI
|
|
5
|
+
* Relay Server 4506b8cb6f41da0b39f3e23a285daf3805fcf3a3
|
|
6
|
+
* OpenAPI e58ffd5de05250a7a218735cb6bffd854d2d1198134f3f8876b2be109f606fde
|
|
7
7
|
*/
|
|
8
8
|
export const RELAY_API_VERSION = "v1";
|
|
9
9
|
export const RELAY_WEBHOOK_VERSION = "2026-08-30";
|