@relaymessenger/chat-sdk-adapter 0.3.0-staging.3 → 0.3.0-staging.5
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 +72 -11
- package/dist/adapter.d.ts +138 -11
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +219 -57
- 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 +25 -1
- package/dist/content.d.ts.map +1 -1
- package/dist/content.js +69 -9
- 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/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,18 +99,36 @@ 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;
|
|
111
|
+
abortActiveTurnOnReceipt;
|
|
112
|
+
markReadOnReceipt;
|
|
89
113
|
signatureToleranceSeconds;
|
|
90
114
|
webhookSecret;
|
|
91
115
|
idempotencyKeyResolver;
|
|
92
116
|
turns = new RelayTurnContext();
|
|
93
117
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
118
|
+
* Chat UUID to `is_group`, as Relay reported it.
|
|
119
|
+
*
|
|
120
|
+
* `isDM` must answer synchronously, and Relay's stable thread ID carries
|
|
121
|
+
* only the Chat UUID by design, so the answer has to come from somewhere
|
|
122
|
+
* the adapter already learned it. Every path that reads a Chat from Relay
|
|
123
|
+
* records the flag here: inbound webhook dispatch, `fetchThread`, and
|
|
124
|
+
* `onThreadSubscribe`.
|
|
125
|
+
*
|
|
126
|
+
* This is a memo of an immutable Relay fact — a Chat is created direct or
|
|
127
|
+
* group and never changes — not a delivery record and not persistence. It
|
|
128
|
+
* is bounded so a long-lived agent in many chats cannot grow it without
|
|
129
|
+
* limit.
|
|
97
130
|
*/
|
|
98
|
-
|
|
131
|
+
chatIsGroup = new Map();
|
|
99
132
|
chat;
|
|
100
133
|
constructor(options = {}) {
|
|
101
134
|
const token = options.token ?? relayEnv("RELAY_AGENT_TOKEN");
|
|
@@ -120,12 +153,27 @@ export class RelayAdapter {
|
|
|
120
153
|
this.userName = options.userName ?? "Relay Agent";
|
|
121
154
|
this.typing = options.typing ?? true;
|
|
122
155
|
this.idempotencyKeyResolver = options.idempotencyKeyResolver;
|
|
156
|
+
this.abortActiveTurnOnReceipt =
|
|
157
|
+
options.abortActiveTurnOnReceipt ?? false;
|
|
158
|
+
this.markReadOnReceipt = options.markReadOnReceipt ?? false;
|
|
123
159
|
this.signatureToleranceSeconds =
|
|
124
160
|
options.signatureToleranceSeconds;
|
|
125
161
|
}
|
|
126
162
|
async initialize(chat) {
|
|
127
163
|
this.chat = chat;
|
|
128
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Report a non-fatal condition through Chat's logger once initialized, and
|
|
167
|
+
* through the console before that, so a warning is never lost to whichever
|
|
168
|
+
* side of `initialize` it happens on.
|
|
169
|
+
*/
|
|
170
|
+
warn(event, fields) {
|
|
171
|
+
const logger = this.chat?.getLogger("relay");
|
|
172
|
+
if (logger)
|
|
173
|
+
logger.warn(event, fields);
|
|
174
|
+
else
|
|
175
|
+
console.warn(JSON.stringify({ event, ...fields }));
|
|
176
|
+
}
|
|
129
177
|
encodeThreadId(data) {
|
|
130
178
|
return encodeRelayThreadId(data);
|
|
131
179
|
}
|
|
@@ -284,7 +332,7 @@ export class RelayAdapter {
|
|
|
284
332
|
hasPostableContent(message)) {
|
|
285
333
|
throw new ValidationError("relay", "Relay posts outside an inbound webhook require idempotencyKeyResolver");
|
|
286
334
|
}
|
|
287
|
-
const parts = await buildRelayParts(message);
|
|
335
|
+
const parts = await buildRelayParts(message, (upload) => this.client.uploadAttachment(upload));
|
|
288
336
|
if (parts.length === 0) {
|
|
289
337
|
return this.noopResult(chatId, threadId);
|
|
290
338
|
}
|
|
@@ -366,38 +414,56 @@ export class RelayAdapter {
|
|
|
366
414
|
return message.parts.some((part) => part.type === "text" &&
|
|
367
415
|
part.mention === owner.handle);
|
|
368
416
|
}
|
|
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
|
-
};
|
|
417
|
+
/**
|
|
418
|
+
* Record what Relay said about a Chat's kind. Re-recording a known chat
|
|
419
|
+
* refreshes its position so the bound evicts the least recently learned.
|
|
420
|
+
*/
|
|
421
|
+
rememberChatKind(chatId, isGroup) {
|
|
422
|
+
this.chatIsGroup.delete(chatId);
|
|
423
|
+
this.chatIsGroup.set(chatId, isGroup);
|
|
424
|
+
while (this.chatIsGroup.size > RELAY_CHAT_KIND_CACHE_LIMIT) {
|
|
425
|
+
const oldest = this.chatIsGroup.keys().next();
|
|
426
|
+
if (oldest.done)
|
|
427
|
+
break;
|
|
428
|
+
this.chatIsGroup.delete(oldest.value);
|
|
429
|
+
}
|
|
391
430
|
}
|
|
392
431
|
/**
|
|
393
|
-
*
|
|
394
|
-
*
|
|
395
|
-
*
|
|
432
|
+
* Whether a thread is a direct conversation rather than a group.
|
|
433
|
+
*
|
|
434
|
+
* Chat SDK asks synchronously, and Relay's stable thread ID carries only
|
|
435
|
+
* the Chat UUID, so this answers from what the adapter has already learned:
|
|
436
|
+
* an inbound webhook dispatch, a `fetchThread`, or `onThreadSubscribe`.
|
|
437
|
+
*
|
|
438
|
+
* A chat this adapter has never seen answers `false` and says so on the
|
|
439
|
+
* debug log. `false` is the safe direction — it is the group answer, so a
|
|
440
|
+
* handler gates on mentions rather than replying to everything — and
|
|
441
|
+
* `fetchThread(threadId)` settles the question for good.
|
|
396
442
|
*/
|
|
397
443
|
isDM(threadId) {
|
|
398
444
|
const { chatId } = this.decodeThreadId(threadId);
|
|
399
|
-
const
|
|
400
|
-
|
|
445
|
+
const isGroup = this.chatIsGroup.get(chatId);
|
|
446
|
+
if (isGroup === undefined) {
|
|
447
|
+
this.chat
|
|
448
|
+
?.getLogger(RELAY_ADAPTER_NAME)
|
|
449
|
+
.debug(`isDM("${threadId}") answered false: this adapter has not seen `
|
|
450
|
+
+ "chat "
|
|
451
|
+
+ chatId
|
|
452
|
+
+ " yet. Call fetchThread(threadId) to settle it.");
|
|
453
|
+
return false;
|
|
454
|
+
}
|
|
455
|
+
return !isGroup;
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Learn a thread's kind when Chat SDK subscribes to it, so `isDM` answers
|
|
459
|
+
* correctly from the first handler call rather than after the first fetch.
|
|
460
|
+
*/
|
|
461
|
+
async onThreadSubscribe(threadId) {
|
|
462
|
+
const { chatId } = this.decodeThreadId(threadId);
|
|
463
|
+
if (this.chatIsGroup.has(chatId))
|
|
464
|
+
return;
|
|
465
|
+
const chat = await this.client.getChat(chatId);
|
|
466
|
+
this.rememberChatKind(chatId, chat.is_group);
|
|
401
467
|
}
|
|
402
468
|
async postMessage(threadId, message) {
|
|
403
469
|
return this.send(threadId, message);
|
|
@@ -461,26 +527,73 @@ export class RelayAdapter {
|
|
|
461
527
|
await this.client.markChatRead(chatId);
|
|
462
528
|
}
|
|
463
529
|
/**
|
|
464
|
-
*
|
|
465
|
-
*
|
|
466
|
-
*
|
|
530
|
+
* Fetch messages from a Relay chat.
|
|
531
|
+
*
|
|
532
|
+
* `forward` is Relay's native shape: one `GET /v1/chats/{id}/messages` per
|
|
533
|
+
* call, and `nextCursor` is Relay's own cursor pointing at newer messages.
|
|
534
|
+
*
|
|
535
|
+
* `backward` — the Chat SDK default, and what `thread.fetchMessages()` asks
|
|
536
|
+
* for when loading a chat view — has no native Relay equivalent, because
|
|
537
|
+
* the public contract publishes exactly one opaque cursor and it advances
|
|
538
|
+
* oldest-to-newest. It is served by walking forward to the tail and keeping
|
|
539
|
+
* the newest `limit` messages seen.
|
|
540
|
+
*
|
|
541
|
+
* **The cost is real and worth knowing before you call it.** One backward
|
|
542
|
+
* call issues up to {@link RELAY_BACKWARD_WALK_MAX_PAGES} requests of
|
|
543
|
+
* {@link RELAY_BACKWARD_WALK_PAGE_SIZE} messages each — up to 10 round
|
|
544
|
+
* trips covering 1000 messages — rather than the single request `forward`
|
|
545
|
+
* costs. Chats shorter than one page cost exactly one request, which is the
|
|
546
|
+
* common case.
|
|
547
|
+
*
|
|
548
|
+
* If the walk reaches the end of the chat, the result is exactly the most
|
|
549
|
+
* recent `limit` messages and there is no `nextCursor`: Relay cannot
|
|
550
|
+
* address older messages, so there is no further backward page to offer.
|
|
551
|
+
*
|
|
552
|
+
* If the walk is cut short by the page cap, the messages are the newest the
|
|
553
|
+
* bounded walk could reach and `nextCursor` carries Relay's live forward
|
|
554
|
+
* cursor. Passing it back as `cursor` resumes the walk from that point
|
|
555
|
+
* rather than moving to older messages, so repeated calls converge on the
|
|
556
|
+
* true tail. That is the opposite of the generic backward contract, and it
|
|
557
|
+
* is the only meaning Relay's single forward cursor can carry.
|
|
558
|
+
*
|
|
559
|
+
* Messages are returned oldest-first within the page in every direction, as
|
|
560
|
+
* the interface requires.
|
|
467
561
|
*/
|
|
468
562
|
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
563
|
const { chatId } = this.decodeThreadId(threadId);
|
|
473
|
-
const limit = Math.min(100, Math.max(1, Math.trunc(options
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
564
|
+
const limit = Math.min(100, Math.max(1, Math.trunc(options?.limit ?? 50)));
|
|
565
|
+
if (options?.direction === "forward") {
|
|
566
|
+
const result = await this.client.getMessages({
|
|
567
|
+
chatId,
|
|
568
|
+
limit,
|
|
569
|
+
...(options.cursor ? { cursor: options.cursor } : {}),
|
|
570
|
+
});
|
|
571
|
+
return {
|
|
572
|
+
messages: result.messages.map((message) => this.parseMessage({ chatId, message })),
|
|
573
|
+
...(result.next_cursor
|
|
574
|
+
? { nextCursor: result.next_cursor }
|
|
575
|
+
: {}),
|
|
576
|
+
};
|
|
577
|
+
}
|
|
578
|
+
let cursor = options?.cursor;
|
|
579
|
+
let newest = [];
|
|
580
|
+
let truncated = false;
|
|
581
|
+
for (let page = 0; page < RELAY_BACKWARD_WALK_MAX_PAGES; page += 1) {
|
|
582
|
+
const result = await this.client.getMessages({
|
|
583
|
+
chatId,
|
|
584
|
+
limit: RELAY_BACKWARD_WALK_PAGE_SIZE,
|
|
585
|
+
...(cursor ? { cursor } : {}),
|
|
586
|
+
});
|
|
587
|
+
// Keep only the newest `limit` seen so a deep chat costs bounded memory.
|
|
588
|
+
newest = newest.concat(result.messages).slice(-limit);
|
|
589
|
+
cursor = result.next_cursor ?? undefined;
|
|
590
|
+
if (!cursor)
|
|
591
|
+
break;
|
|
592
|
+
truncated = page === RELAY_BACKWARD_WALK_MAX_PAGES - 1;
|
|
593
|
+
}
|
|
479
594
|
return {
|
|
480
|
-
messages:
|
|
481
|
-
...(
|
|
482
|
-
? { nextCursor: result.next_cursor }
|
|
483
|
-
: {}),
|
|
595
|
+
messages: newest.map((message) => this.parseMessage({ chatId, message })),
|
|
596
|
+
...(truncated && cursor ? { nextCursor: cursor } : {}),
|
|
484
597
|
};
|
|
485
598
|
}
|
|
486
599
|
async fetchChannelMessages(channelId, options) {
|
|
@@ -496,16 +609,17 @@ export class RelayAdapter {
|
|
|
496
609
|
return this.parseMessage({ chatId, message });
|
|
497
610
|
}
|
|
498
611
|
catch (error) {
|
|
499
|
-
|
|
500
|
-
|
|
612
|
+
// The client maps a Relay 404 onto the shared class, so the absent
|
|
613
|
+
// message is recognised by meaning rather than by HTTP status.
|
|
614
|
+
if (error instanceof ResourceNotFoundError)
|
|
501
615
|
return null;
|
|
502
|
-
}
|
|
503
616
|
throw error;
|
|
504
617
|
}
|
|
505
618
|
}
|
|
506
619
|
async fetchThread(threadId) {
|
|
507
620
|
const { chatId } = this.decodeThreadId(threadId);
|
|
508
621
|
const chat = await this.client.getChat(chatId);
|
|
622
|
+
this.rememberChatKind(chatId, chat.is_group);
|
|
509
623
|
return {
|
|
510
624
|
channelId: threadId,
|
|
511
625
|
...(chat.display_name
|
|
@@ -631,6 +745,43 @@ export class RelayAdapter {
|
|
|
631
745
|
event_type: envelope.event_type,
|
|
632
746
|
});
|
|
633
747
|
}
|
|
748
|
+
/**
|
|
749
|
+
* Stamp the Relay read receipt for one inbound chat.
|
|
750
|
+
*
|
|
751
|
+
* A failed read never blocks the webhook's 2xx. Holding the response open
|
|
752
|
+
* for it would make Relay time the delivery out and redeliver, which costs
|
|
753
|
+
* the agent a retry to buy a receipt that Relay will re-request anyway.
|
|
754
|
+
*/
|
|
755
|
+
async readOnReceipt(chatId) {
|
|
756
|
+
try {
|
|
757
|
+
await this.client.markChatRead(chatId);
|
|
758
|
+
}
|
|
759
|
+
catch (error) {
|
|
760
|
+
this.warn("relay_read_on_receipt_failed", {
|
|
761
|
+
chatId,
|
|
762
|
+
error: error instanceof Error ? error.message : String(error),
|
|
763
|
+
});
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
/**
|
|
767
|
+
* Cancel the chat's running turn, if there is one.
|
|
768
|
+
*
|
|
769
|
+
* `abortTurn` is a no-op when nothing is active, so a burst's first message
|
|
770
|
+
* costs one state read. A failure is logged and never blocks the delivery:
|
|
771
|
+
* the worst case is that the superseded turn finishes and posts, which is
|
|
772
|
+
* the behaviour of an agent without this option.
|
|
773
|
+
*/
|
|
774
|
+
async abortOnReceipt(threadId) {
|
|
775
|
+
try {
|
|
776
|
+
await this.initializedChat().abortTurn(threadId);
|
|
777
|
+
}
|
|
778
|
+
catch (error) {
|
|
779
|
+
this.warn("relay_abort_on_receipt_failed", {
|
|
780
|
+
error: error instanceof Error ? error.message : String(error),
|
|
781
|
+
threadId,
|
|
782
|
+
});
|
|
783
|
+
}
|
|
784
|
+
}
|
|
634
785
|
initializedChat() {
|
|
635
786
|
if (!this.chat) {
|
|
636
787
|
throw new Error("RelayAdapter must be initialized by Chat before dispatch");
|
|
@@ -655,13 +806,24 @@ export class RelayAdapter {
|
|
|
655
806
|
const threadId = this.encodeThreadId({
|
|
656
807
|
chatId: data.chat.id,
|
|
657
808
|
});
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
809
|
+
// The event already carries the Chat's kind, so an inbound dispatch
|
|
810
|
+
// settles isDM for this chat without spending a request on it.
|
|
811
|
+
this.rememberChatKind(data.chat.id, data.chat.is_group === true);
|
|
812
|
+
// A newer message supersedes the question the running turn is
|
|
813
|
+
// answering, so it is cancelled before the new event is queued.
|
|
814
|
+
// This runs first: the read is an HTTP round trip to Relay, and the
|
|
815
|
+
// sooner the old turn stops, the less model time is spent on a
|
|
816
|
+
// question that no longer stands.
|
|
817
|
+
if (this.abortActiveTurnOnReceipt) {
|
|
818
|
+
await this.abortOnReceipt(threadId);
|
|
661
819
|
}
|
|
662
|
-
|
|
663
|
-
|
|
820
|
+
// Read is a receipt about delivery, so it is stamped here — after the
|
|
821
|
+
// signature proved the event, and before Chat SDK dispatch, which a
|
|
822
|
+
// debounce, queue or burst window may defer for seconds.
|
|
823
|
+
if (this.markReadOnReceipt) {
|
|
824
|
+
await this.readOnReceipt(data.chat.id);
|
|
664
825
|
}
|
|
826
|
+
await this.initializedChat().processMessage(this, threadId, this.parseMessage(raw), options);
|
|
665
827
|
return;
|
|
666
828
|
}
|
|
667
829
|
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
|
}
|