aurival 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/events.js CHANGED
@@ -1,12 +1,19 @@
1
1
  /**
2
- * Plain data a command handler receives (CONTRACT-V1 §3, §3.1).
2
+ * Plain data a handler receives (CONTRACT-V1 §3, §3.1).
3
3
  *
4
- * `Event` is the raw wire frame; `Context` is what `bot.ts` hands to a handler,
5
- * built from one. `Context` holds an `HttpClient` for `reply()` and nothing else
6
- * network-shaped — never the seed, a token, or the `Auth` object (SDK-33).
4
+ * `Event` is the raw wire frame; a context is what `bot.ts` hands to a
5
+ * handler, built from one. There is one context class per event family
6
+ * (BA-R68): `Context` for commands, `MemberContext`, `BotContext`,
7
+ * `ReactionContext`, and `EventContext` for a type this SDK does not name.
8
+ * Each carries only the fields its family delivers, so an editor can tell a
9
+ * developer what `ctx` holds without them opening the docs. Every context
10
+ * holds an `HttpClient` for its actions and nothing else network-shaped —
11
+ * never the seed, a token, or the `Auth` object (SDK-33).
7
12
  */
8
13
  import { randomUUID } from 'node:crypto';
14
+ import { EMPTY_MESSAGE as NOTHING_TO_SAY } from './caps.js';
9
15
  import { AurivalError } from './errors.js';
16
+ import { buttonUsedFromWire, buttonsFromWire, embedsFromWire, serialiseButtons, serialiseEmbeds, } from './embeds.js';
10
17
  function asRecord(value) {
11
18
  return typeof value === 'object' && value !== null && !Array.isArray(value)
12
19
  ? value
@@ -58,15 +65,54 @@ function chatFromWire(d) {
58
65
  }
59
66
  function messageFromWire(d) {
60
67
  const replyTo = d['reply_to'];
61
- const sender = asRecord(d['sender']);
68
+ const rawSender = d['sender'];
69
+ const senderRecord = asRecord(rawSender);
70
+ let sender;
71
+ if (senderRecord)
72
+ sender = userFromWire(senderRecord);
73
+ else if (typeof rawSender === 'string' && rawSender !== '')
74
+ sender = { id: rawSender, handle: '', name: '' };
75
+ else
76
+ sender = null;
62
77
  return {
63
78
  id: asString(d['id']),
64
79
  text: asString(d['text']),
65
- sent_at: asString(d['sent_at']),
66
- sender: sender ? userFromWire(sender) : null,
80
+ sent_at: asString(d['sent_at'], asString(d['created_at'])),
81
+ sender,
67
82
  reply_to: typeof replyTo === 'string' ? replyTo : null,
83
+ embeds: embedsFromWire(d['embeds']),
84
+ buttons: buttonsFromWire(d['buttons']),
85
+ button_used: buttonUsedFromWire(d['button_used']),
68
86
  };
69
87
  }
88
+ /** An id-only `Message` — what an event that names a message by `msg_…` alone becomes. */
89
+ function messageFromRef(id) {
90
+ return {
91
+ id,
92
+ text: '',
93
+ sent_at: '',
94
+ sender: null,
95
+ reply_to: null,
96
+ embeds: [],
97
+ buttons: [],
98
+ button_used: null,
99
+ };
100
+ }
101
+ const EMPTY_MESSAGE = messageFromRef('');
102
+ const EMPTY_USER = { id: '', handle: '', name: '' };
103
+ /** `data[key]` as a `User`, or an empty one when the frame omits it — never `null` for a field the contract pins as present. */
104
+ function userField(data, key) {
105
+ const record = asRecord(data[key]);
106
+ return record ? userFromWire(record) : EMPTY_USER;
107
+ }
108
+ function optionalUser(data, key) {
109
+ const record = asRecord(data[key]);
110
+ return record ? userFromWire(record) : null;
111
+ }
112
+ function optionalMessageRef(data) {
113
+ const ref = data['message'];
114
+ return typeof ref === 'string' ? messageFromRef(ref) : null;
115
+ }
70
116
  /**
71
117
  * `@` + a user's `handle`, template-literals straight into `text` via
72
118
  * `toString()`. `entry` is the wire shape `send()`'s `mentions` array wants.
@@ -93,6 +139,26 @@ function mentionEntry(m) {
93
139
  return { user: m.id };
94
140
  return { user: m.user };
95
141
  }
142
+ /**
143
+ * `reply('hi')`, `reply('hi', { embeds })` and `reply({ embeds })` are all
144
+ * legal — an embed-only message carries no text, so the text argument is
145
+ * optional and the options object may take its place.
146
+ */
147
+ function splitTextAndOptions(textOrOptions, maybeOptions) {
148
+ if (typeof textOrOptions === 'string')
149
+ return [textOrOptions, maybeOptions ?? {}];
150
+ return ['', textOrOptions];
151
+ }
152
+ /**
153
+ * A send with nothing in it is refused here, before the round trip — the
154
+ * server would answer `empty_text`, and an embed-only send is legal, so the
155
+ * precondition is "text OR embeds OR buttons", not "text".
156
+ */
157
+ function requireSomethingToSay(text, embeds, buttons) {
158
+ if (text === '' && embeds.length === 0 && buttons.length === 0) {
159
+ throw new Error(NOTHING_TO_SAY);
160
+ }
161
+ }
96
162
  /** Accepts either a `Chat` or a raw chat id string — Context actions take both. */
97
163
  function chatId(c) {
98
164
  return typeof c === 'string' ? c : c.id;
@@ -120,166 +186,46 @@ function memberPageFromEnvelope(envelope) {
120
186
  };
121
187
  }
122
188
  /**
123
- * Which `Context` fields a KNOWN generic event type actually carries
124
- * (CONTRACT-V1 §3.1). Any field not in a type's set is forced `null` when
125
- * building that type's `Context`, even if the wire payload happens to carry
126
- * a stray one — the payload shape for a known type is pinned by contract, so
127
- * JS must not surface what python's identical build does not (senior review,
128
- * merge gate). A type not in this map is unknown to this SDK and gets
129
- * opportunistic, unpinned population instead — see `fromGenericEvent`.
189
+ * What every context shares: the chat the event happened in, the raw event,
190
+ * and the actions. Subclasses add the fields their family delivers. The
191
+ * actions live here so `ctx.reply()` reads the same in every handler; a
192
+ * subclass that knows which message to quote says so through `quotes()`.
130
193
  */
131
- const KNOWN_GENERIC_EVENT_FIELDS = {
132
- 'member.joined': new Set(['user']),
133
- 'member.left': new Set(['user']),
134
- 'bot.added': new Set(['actor']),
135
- 'bot.removed': new Set(['actor']),
136
- 'reaction.added': new Set(['sender', 'message', 'emoji']),
137
- };
138
- /**
139
- * What a handler receives. Built by `bot.ts`'s dispatch closure from one
140
- * `Event` — `Socket` never constructs one. ONE class for every event type
141
- * (R6): `chat`/`sender`/`user`/`actor`/`message`/`emoji` are each populated
142
- * only for the event types that carry them —
143
- *
144
- * - `command.invoked`: `chat`, `sender`, `message`
145
- * - `member.joined` / `member.left`: `chat`, `user`
146
- * - `bot.added` / `bot.removed`: `chat`, `actor`
147
- * - `reaction.added`: `chat`, `sender`, `message`, `emoji`
148
- *
149
- * — everything else on a given `Context` is `null`. An unhandled or future
150
- * event type never throws building one: every field is read defensively off
151
- * `event.data` and falls back to `null`.
152
- */
153
- export class Context {
154
- command;
155
- arguments;
194
+ export class BaseContext {
156
195
  chat;
157
- sender;
158
- user;
159
- actor;
160
- emoji;
161
196
  event;
162
- message;
163
197
  #http;
164
198
  constructor(init) {
165
- this.command = init.command;
166
- this.arguments = init.arguments;
167
199
  this.chat = init.chat;
168
- this.sender = init.sender;
169
- this.user = init.user;
170
- this.actor = init.actor;
171
- this.emoji = init.emoji;
172
200
  this.event = init.event;
173
- this.message = init.message;
174
201
  this.#http = init.http;
175
202
  }
176
- /** Build straight from a `command.invoked` event's raw `data`. */
177
- static fromEvent(event, http) {
178
- const data = event.data;
179
- const invokingMessage = asRecord(data['invoking_message']);
180
- const message = data['message'];
181
- let resolvedMessage;
182
- if (invokingMessage) {
183
- // BA-R42: the invoking message travels with the event as a full object
184
- // under `invoking_message`. Prefer that.
185
- resolvedMessage = messageFromWire(invokingMessage);
186
- }
187
- else if (typeof message === 'string') {
188
- // `message` (the bare id string) is UNCHANGED wire compatibility — an
189
- // old server that has not deployed BA-R42 yet sends only that string,
190
- // so we fall back to an id-only Message rather than null, keeping a
191
- // new SDK working against an old server.
192
- resolvedMessage = { id: message, text: '', sent_at: '', sender: null, reply_to: null };
193
- }
194
- else {
195
- resolvedMessage = null;
196
- }
197
- return new Context({
198
- command: asString(data['command']),
199
- arguments: asString(data['arguments']),
200
- chat: chatFromWire(asRecord(data['chat']) ?? {}),
201
- sender: userFromWire(asRecord(data['sender']) ?? {}),
202
- user: null,
203
- actor: null,
204
- emoji: null,
205
- event,
206
- message: resolvedMessage,
207
- http,
208
- });
203
+ /** The message id `reply()` quotes, or `null` to send the reply free-standing. */
204
+ quotes() {
205
+ return null;
209
206
  }
210
- /**
211
- * Build from any non-`command.invoked` event `bot.on(type, fn)` registered
212
- * for — `member.joined`/`member.left`, `bot.added`/`bot.removed`,
213
- * `reaction.added`, or a type this SDK does not yet know the shape of.
214
- *
215
- * For a KNOWN type, the field set is pinned by CONTRACT-V1 §3.1: only the
216
- * fields that type actually carries are read off `data`, and every other
217
- * field is forced `null` even if the payload happens to carry a stray one
218
- * (a `member.joined` frame with a stray `sender` must not populate
219
- * `ctx.sender` — matches python). For a type this SDK does not recognize,
220
- * every field is read defensively and opportunistically — there is no
221
- * contract to pin it to, so whatever the frame happens to carry is
222
- * surfaced rather than discarded. `chat` itself falls back to an empty one
223
- * rather than throwing, for both cases.
224
- */
225
- static fromGenericEvent(event, http) {
226
- const data = event.data;
227
- const chat = chatFromWire(asRecord(data['chat']) ?? {});
228
- const known = KNOWN_GENERIC_EVENT_FIELDS[event.type];
229
- if (known !== undefined) {
230
- const sender = known.has('sender') ? asRecord(data['sender']) : null;
231
- const user = known.has('user') ? asRecord(data['user']) : null;
232
- const actor = known.has('actor') ? asRecord(data['actor']) : null;
233
- const messageId = known.has('message') ? data['message'] : undefined;
234
- const emoji = known.has('emoji') ? data['emoji'] : undefined;
235
- return new Context({
236
- command: '',
237
- arguments: '',
238
- chat,
239
- sender: sender ? userFromWire(sender) : null,
240
- user: user ? userFromWire(user) : null,
241
- actor: actor ? userFromWire(actor) : null,
242
- emoji: typeof emoji === 'string' ? emoji : null,
243
- event,
244
- message: typeof messageId === 'string'
245
- ? { id: messageId, text: '', sent_at: '', sender: null, reply_to: null }
246
- : null,
247
- http,
248
- });
249
- }
250
- // Unknown type: opportunistic population, nothing pinned.
251
- const sender = asRecord(data['sender']);
252
- const user = asRecord(data['user']);
253
- const actor = asRecord(data['actor']);
254
- const messageId = data['message'];
255
- const emoji = data['emoji'];
256
- return new Context({
257
- command: '',
258
- arguments: '',
259
- chat,
260
- sender: sender ? userFromWire(sender) : null,
261
- user: user ? userFromWire(user) : null,
262
- actor: actor ? userFromWire(actor) : null,
263
- emoji: typeof emoji === 'string' ? emoji : null,
264
- event,
265
- message: typeof messageId === 'string'
266
- ? { id: messageId, text: '', sent_at: '', sender: null, reply_to: null }
267
- : null,
268
- http,
269
- });
207
+ async reply(textOrOptions = '', maybeOptions) {
208
+ const [text, options] = splitTextAndOptions(textOrOptions, maybeOptions);
209
+ const embeds = serialiseEmbeds(options.embeds);
210
+ const buttons = serialiseButtons(options.buttons);
211
+ requireSomethingToSay(text, embeds, buttons);
212
+ const sent = await this.#http.sendMessage(this.chat.id, text, randomUUID(), this.quotes(), undefined, embeds, buttons);
213
+ return messageFromWire(sent);
214
+ }
215
+ async send(chat, textOrOptions = '', maybeOptions) {
216
+ const [text, options] = splitTextAndOptions(textOrOptions, maybeOptions);
217
+ const mentions = options.mentions?.map(mentionEntry);
218
+ const embeds = serialiseEmbeds(options.embeds);
219
+ const buttons = serialiseButtons(options.buttons);
220
+ requireSomethingToSay(text, embeds, buttons);
221
+ const sent = await this.#http.sendMessage(chatId(chat), text, randomUUID(), null, mentions, embeds, buttons);
222
+ return messageFromWire(sent);
270
223
  }
271
224
  /**
272
- * `POST /v1/messages`, quoting the message that invoked the command
273
- * (BA-R27, reversing SDK-30). One method, no flag. When the event carried no
274
- * message id the field is omitted and the reply floats free.
275
- *
276
- * A fresh `Idempotency-Key` per call, reused across that call's retries by
277
- * `HttpClient.request` itself.
225
+ * Show or clear "is thinking…" in this chat. `POST /v1/chats/{chat}/typing`
226
+ * with `{"is_typing": bool}`. Command handlers get this automatically
227
+ * (auto-typing); reach for `withTyping()` when you want it yourself.
278
228
  */
279
- async reply(text) {
280
- return this.#http.sendMessage(this.chat.id, text, randomUUID(), this.message?.id ?? null);
281
- }
282
- /** `POST /v1/chats/{chat}/typing` — `is_typing` only, no `state` spelling. */
283
229
  async typing(isTyping) {
284
230
  const id = this.chat.id;
285
231
  if (id === '') {
@@ -287,7 +233,7 @@ export class Context {
287
233
  }
288
234
  await this.#http.setTyping(id, isTyping);
289
235
  }
290
- /** Sends `true` on entry, `false` on exit — ALWAYS, including on throw. */
236
+ /** Runs `fn` with the indicator on: `true` on entry, `false` on exit — ALWAYS, including on throw. */
291
237
  async withTyping(fn) {
292
238
  await this.typing(true);
293
239
  try {
@@ -297,22 +243,35 @@ export class Context {
297
243
  await this.typing(false);
298
244
  }
299
245
  }
246
+ /**
247
+ * Change the text of one of this bot's own messages. Pass what `reply()`
248
+ * or `send()` returned, or its id. Someone else's message is
249
+ * `MessageNotYours`. Returns the updated message.
250
+ */
300
251
  async edit(message, text) {
301
- return this.#http.editMessage(messageId(message), text);
252
+ return messageFromWire(await this.#http.editMessage(messageId(message), text));
302
253
  }
254
+ /** Delete one of this bot's own messages. Someone else's is `MessageNotYours`. */
303
255
  async delete(message) {
304
256
  await this.#http.deleteMessage(messageId(message));
305
257
  }
258
+ /**
259
+ * Put a reaction on a message, one emoji at a time. Reacting twice with the
260
+ * same emoji is a no-op; a string longer than one emoji is
261
+ * `ReactionEmojiTooLong`.
262
+ */
306
263
  async react(message, emoji) {
307
264
  await this.#http.setReaction(messageId(message), emoji);
308
265
  }
266
+ /** Take a reaction off. Removing one that is not there is a no-op. */
309
267
  async unreact(message, emoji) {
310
268
  await this.#http.unsetReaction(messageId(message), emoji);
311
269
  }
312
- async send(chat, text, options = {}) {
313
- const mentions = options.mentions?.map(mentionEntry);
314
- return this.#http.sendMessage(chatId(chat), text, randomUUID(), null, mentions);
315
- }
270
+ /**
271
+ * One page of who is in a chat, bots included — this chat by default.
272
+ * Check `hasMore` and pass `nextCursor` back as `cursor` for the next page;
273
+ * `ctx.chat.member_count` is the total without a call.
274
+ */
316
275
  async members(chat, options = {}) {
317
276
  const resolved = chat !== undefined ? chatId(chat) : this.chat.id;
318
277
  if (resolved === '') {
@@ -322,4 +281,232 @@ export class Context {
322
281
  return memberPageFromEnvelope(envelope);
323
282
  }
324
283
  }
284
+ /**
285
+ * What a `bot.command()` handler receives. Built by `bot.ts`'s dispatch
286
+ * closure from one `command.invoked` event — `Socket` never constructs one.
287
+ * `sender` and `message` are always set: the server never emits a command
288
+ * without both.
289
+ */
290
+ export class Context extends BaseContext {
291
+ /** The command name as the server matched it, without the slash. */
292
+ command;
293
+ /** Everything after the command name, untrimmed of its inner spaces. `''` when there was nothing. */
294
+ arguments;
295
+ /** Who typed the command. */
296
+ sender;
297
+ /** The message that carried the command. `reply()` quotes it. */
298
+ message;
299
+ constructor(init) {
300
+ super(init);
301
+ this.command = init.command;
302
+ this.arguments = init.arguments;
303
+ this.sender = init.sender;
304
+ this.message = init.message;
305
+ }
306
+ quotes() {
307
+ return this.message.id === '' ? null : this.message.id;
308
+ }
309
+ /** Build straight from a `command.invoked` event's raw `data`. */
310
+ static fromEvent(event, http) {
311
+ const data = event.data;
312
+ const invokingMessage = asRecord(data['invoking_message']);
313
+ const ref = data['message'];
314
+ let message;
315
+ if (invokingMessage) {
316
+ // BA-R42: the invoking message travels with the event as a full object
317
+ // under `invoking_message`. Prefer that.
318
+ message = messageFromWire(invokingMessage);
319
+ }
320
+ else if (typeof ref === 'string') {
321
+ // `message` (the bare id string) is UNCHANGED wire compatibility — an
322
+ // old server that has not deployed BA-R42 yet sends only that string,
323
+ // so we fall back to an id-only Message, keeping a new SDK working
324
+ // against an old server.
325
+ message = messageFromRef(ref);
326
+ }
327
+ else {
328
+ message = EMPTY_MESSAGE;
329
+ }
330
+ return new Context({
331
+ command: asString(data['command']),
332
+ arguments: asString(data['arguments']),
333
+ chat: chatFromWire(asRecord(data['chat']) ?? {}),
334
+ sender: userField(data, 'sender'),
335
+ message,
336
+ event,
337
+ http,
338
+ });
339
+ }
340
+ }
341
+ /** `member.joined` / `member.left`: someone came into, or left, a group chat this bot is in. */
342
+ export class MemberContext extends BaseContext {
343
+ /** Who joined or left. Never the bot itself — that is `bot.added` / `bot.removed`. */
344
+ user;
345
+ constructor(init) {
346
+ super(init);
347
+ this.user = init.user;
348
+ }
349
+ static fromEvent(event, http) {
350
+ const data = event.data;
351
+ return new MemberContext({
352
+ chat: chatFromWire(asRecord(data['chat']) ?? {}),
353
+ user: userField(data, 'user'),
354
+ event,
355
+ http,
356
+ });
357
+ }
358
+ }
359
+ /** `bot.added` / `bot.removed`: this bot was put into, or taken out of, a chat. */
360
+ export class BotContext extends BaseContext {
361
+ /** The person who added or removed the bot. */
362
+ actor;
363
+ constructor(init) {
364
+ super(init);
365
+ this.actor = init.actor;
366
+ }
367
+ static fromEvent(event, http) {
368
+ const data = event.data;
369
+ return new BotContext({
370
+ chat: chatFromWire(asRecord(data['chat']) ?? {}),
371
+ actor: userField(data, 'actor'),
372
+ event,
373
+ http,
374
+ });
375
+ }
376
+ }
377
+ /** `reaction.added`: someone reacted to one of this bot's own messages. */
378
+ export class ReactionContext extends BaseContext {
379
+ /** Who reacted. */
380
+ sender;
381
+ /** The bot's message they reacted to — id only; the text is not re-sent. `reply()` quotes it. */
382
+ message;
383
+ /** The emoji, as one string. */
384
+ emoji;
385
+ constructor(init) {
386
+ super(init);
387
+ this.sender = init.sender;
388
+ this.message = init.message;
389
+ this.emoji = init.emoji;
390
+ }
391
+ quotes() {
392
+ return this.message.id === '' ? null : this.message.id;
393
+ }
394
+ static fromEvent(event, http) {
395
+ const data = event.data;
396
+ return new ReactionContext({
397
+ chat: chatFromWire(asRecord(data['chat']) ?? {}),
398
+ sender: userField(data, 'sender'),
399
+ message: optionalMessageRef(data) ?? EMPTY_MESSAGE,
400
+ emoji: asString(data['emoji']),
401
+ event,
402
+ http,
403
+ });
404
+ }
405
+ }
406
+ /** `button.pressed`: someone pressed a button on one of this bot's own messages (AMENDMENT-05). */
407
+ export class ButtonContext extends BaseContext {
408
+ #http;
409
+ /** Who pressed the button. */
410
+ user;
411
+ /** The bot's message the button lives on — id only; the text is not re-sent. `reply()` quotes it. */
412
+ message;
413
+ /** The pressed button's id. */
414
+ button;
415
+ /** The interaction id — `ack()` posts to `/v1/interactions/{interaction}/ack`. */
416
+ interaction;
417
+ constructor(init) {
418
+ super(init);
419
+ this.#http = init.http;
420
+ this.user = init.user;
421
+ this.message = init.message;
422
+ this.button = init.button;
423
+ this.interaction = init.interaction;
424
+ }
425
+ quotes() {
426
+ return this.message.id === '' ? null : this.message.id;
427
+ }
428
+ /**
429
+ * Acknowledge the button press — `POST /v1/interactions/{interaction}/ack`,
430
+ * 204 no body. Acking twice is `InteractionAlreadyUsed` (surfaced through
431
+ * the existing code -> class mapping; there is no dedicated class here).
432
+ */
433
+ async ack() {
434
+ await this.#http.ackInteraction(this.interaction);
435
+ }
436
+ static fromEvent(event, http) {
437
+ const data = event.data;
438
+ const ref = data['message'];
439
+ return new ButtonContext({
440
+ chat: chatFromWire(asRecord(data['chat']) ?? {}),
441
+ user: userField(data, 'user'),
442
+ message: typeof ref === 'string' ? messageFromRef(ref) : EMPTY_MESSAGE,
443
+ button: asString(data['button']),
444
+ interaction: asString(data['interaction']),
445
+ event,
446
+ http,
447
+ });
448
+ }
449
+ }
450
+ /**
451
+ * An event type this SDK does not name yet. Nothing is pinned, so every
452
+ * field is read off the frame if it is there and `null` if it is not —
453
+ * whatever the wire carries is surfaced rather than discarded, and building
454
+ * one never throws.
455
+ */
456
+ export class EventContext extends BaseContext {
457
+ sender;
458
+ user;
459
+ actor;
460
+ message;
461
+ emoji;
462
+ constructor(init) {
463
+ super(init);
464
+ this.sender = init.sender;
465
+ this.user = init.user;
466
+ this.actor = init.actor;
467
+ this.message = init.message;
468
+ this.emoji = init.emoji;
469
+ }
470
+ quotes() {
471
+ return this.message === null || this.message.id === '' ? null : this.message.id;
472
+ }
473
+ static fromEvent(event, http) {
474
+ const data = event.data;
475
+ const emoji = data['emoji'];
476
+ return new EventContext({
477
+ chat: chatFromWire(asRecord(data['chat']) ?? {}),
478
+ sender: optionalUser(data, 'sender'),
479
+ user: optionalUser(data, 'user'),
480
+ actor: optionalUser(data, 'actor'),
481
+ message: optionalMessageRef(data),
482
+ emoji: typeof emoji === 'string' ? emoji : null,
483
+ event,
484
+ http,
485
+ });
486
+ }
487
+ }
488
+ /**
489
+ * The context class for an event, by its type. `command.invoked` gets
490
+ * `Context`; the four named families get theirs; anything else gets
491
+ * `EventContext`. The dispatch side of BA-R68 — `bot.ts` calls this and
492
+ * hands the result to every handler registered for the type.
493
+ */
494
+ export function contextFor(event, http) {
495
+ switch (event.type) {
496
+ case 'command.invoked':
497
+ return Context.fromEvent(event, http);
498
+ case 'member.joined':
499
+ case 'member.left':
500
+ return MemberContext.fromEvent(event, http);
501
+ case 'bot.added':
502
+ case 'bot.removed':
503
+ return BotContext.fromEvent(event, http);
504
+ case 'reaction.added':
505
+ return ReactionContext.fromEvent(event, http);
506
+ case 'button.pressed':
507
+ return ButtonContext.fromEvent(event, http);
508
+ default:
509
+ return EventContext.fromEvent(event, http);
510
+ }
511
+ }
325
512
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAC;AAoDrB,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,QAAQ,GAAG,EAAE;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtD,CAAC;AAUD,MAAM,OAAO,KAAK;IACP,EAAE,CAAS;IACX,IAAI,CAAS;IACb,UAAU,CAAS;IACnB,QAAQ,CAAS;IACjB,IAAI,CAA0B;IAEvC,YAAY,IAAe;QACzB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,KAA8B;QAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3C,OAAO,IAAI,KAAK,CAAC;YACf,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,YAAY,CAAC,CAA0B;IAC9C,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;AAC7F,CAAC;AAED,SAAS,YAAY,CAAC,CAA0B;IAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACvB,MAAM,WAAW,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC;IACtC,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAC5C,YAAY,EACV,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;KACvF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,CAA0B;IACjD,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9B,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,MAAmB,CAAC;IACxB,IAAI,YAAY;QAAE,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;SACjD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,EAAE;QACxD,MAAM,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;;QAC9C,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1D,MAAM;QACN,QAAQ,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QACtD,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtC,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,0FAA0F;AAC1F,SAAS,cAAc,CAAC,EAAU;IAChC,OAAO;QACL,EAAE;QACF,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,IAAI;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAY,cAAc,CAAC,EAAE,CAAC,CAAC;AAClD,MAAM,UAAU,GAAS,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAE1D,gIAAgI;AAChI,SAAS,SAAS,CAAC,IAA6B,EAAE,GAAW;IAC3D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AACpD,CAAC;AAED,SAAS,YAAY,CAAC,IAA6B,EAAE,GAAW;IAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA6B;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5B,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,OAAO;IACT,KAAK,CAAS;IACd,KAAK,CAAmB;IAEjC,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAED,MAAM,UAAU,OAAO,CAAC,IAAU;IAChC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAKD,SAAS,YAAY,CAAC,CAAc;IAClC,IAAI,CAAC,YAAY,OAAO;QAAE,OAAO,CAAC,CAAC,KAAK,CAAC;IACzC,IAAI,OAAQ,CAAsB,CAAC,EAAE,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAG,CAAU,CAAC,EAAE,EAAE,CAAC;IACpF,OAAO,EAAE,IAAI,EAAG,CAAsB,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC;AAaD;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,aAAmC,EACnC,YAA0B;IAE1B,IAAI,OAAO,aAAa,KAAK,QAAQ;QAAE,OAAO,CAAC,aAAa,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;IAClF,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAC5B,IAAY,EACZ,MAA8B,EAC9B,OAA+B;IAE/B,IAAI,IAAI,KAAK,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,SAAS,MAAM,CAAC,CAAgB;IAC9B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,yFAAyF;AACzF,SAAS,SAAS,CAAC,CAAmB;IACpC,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C,CAAC;AAuBD,SAAS,sBAAsB,CAAC,QAAiC;IAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IACvC,OAAO;QACL,KAAK;QACL,OAAO;QACP,UAAU,EAAE,OAAO,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;KAClE,CAAC;AACJ,CAAC;AAuBD;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IACb,IAAI,CAAO;IACX,KAAK,CAAQ;IACb,KAAK,CAAa;IAE3B,YAAY,IAAc;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,kFAAkF;IACxE,MAAM;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAaD,KAAK,CAAC,KAAK,CAAC,aAAa,GAA0B,EAAE,EAAE,YAA2B;QAChF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,mBAAmB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CACvC,IAAI,CAAC,IAAI,CAAC,EAAE,EACZ,IAAI,EACJ,UAAU,EAAE,EACZ,IAAI,CAAC,MAAM,EAAE,EACb,SAAS,EACT,MAAM,EACN,OAAO,CACR,CAAC;QACF,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAWD,KAAK,CAAC,IAAI,CACR,IAAmB,EACnB,aAAa,GAAyB,EAAE,EACxC,YAA0B;QAE1B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,mBAAmB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CACvC,MAAM,CAAC,IAAI,CAAC,EACZ,IAAI,EACJ,UAAU,EAAE,EACZ,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,CACR,CAAC;QACF,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,QAAiB;QAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACd,MAAM,IAAI,YAAY,CAAC,oDAAoD,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,sGAAsG;IACtG,KAAK,CAAC,UAAU,CAAI,EAAoB;QACtC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,OAAyB,EAAE,IAAY;QAChD,OAAO,eAAe,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,MAAM,CAAC,OAAyB;QACpC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,OAAyB,EAAE,KAAa;QAClD,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,OAAO,CAAC,OAAyB,EAAE,KAAa;QACpD,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,IAAoB,EAAE,OAAO,GAAwB,EAAE;QACnE,MAAM,QAAQ,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClE,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YACpB,MAAM,IAAI,YAAY,CACpB,gFAAgF,CACjF,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACxE,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;CACF;AASD;;;;;GAKG;AACH,MAAM,OAAO,OAAQ,SAAQ,WAAW;IACtC,oEAAoE;IAC3D,OAAO,CAAS;IACzB,qGAAqG;IAC5F,SAAS,CAAS;IAC3B,6BAA6B;IACpB,MAAM,CAAO;IACtB,iEAAiE;IACxD,OAAO,CAAU;IAE1B,YAAY,IAAiB;QAC3B,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IACzD,CAAC;IAED,kEAAkE;IAClE,MAAM,CAAC,SAAS,CAAC,KAAY,EAAE,IAAgB;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,IAAI,OAAgB,CAAC;QACrB,IAAI,eAAe,EAAE,CAAC;YACpB,uEAAuE;YACvE,yCAAyC;YACzC,OAAO,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,sEAAsE;YACtE,sEAAsE;YACtE,mEAAmE;YACnE,yBAAyB;YACzB,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,aAAa,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,OAAO,CAAC;YACjB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACtC,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;YACjC,OAAO;YACP,KAAK;YACL,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF;AAMD,gGAAgG;AAChG,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C,sFAAsF;IAC7E,IAAI,CAAO;IAEpB,YAAY,IAAuB;QACjC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAY,EAAE,IAAgB;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,OAAO,IAAI,aAAa,CAAC;YACvB,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;YAC7B,KAAK;YACL,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF;AAMD,mFAAmF;AACnF,MAAM,OAAO,UAAW,SAAQ,WAAW;IACzC,+CAA+C;IACtC,KAAK,CAAO;IAErB,YAAY,IAAoB;QAC9B,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAY,EAAE,IAAgB;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,OAAO,IAAI,UAAU,CAAC;YACpB,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;YAC/B,KAAK;YACL,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF;AAQD,2EAA2E;AAC3E,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAC9C,mBAAmB;IACV,MAAM,CAAO;IACtB,iGAAiG;IACxF,OAAO,CAAU;IAC1B,gCAAgC;IACvB,KAAK,CAAS;IAEvB,YAAY,IAAyB;QACnC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAY,EAAE,IAAgB;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,OAAO,IAAI,eAAe,CAAC;YACzB,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;YACjC,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,aAAa;YAClD,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,KAAK;YACL,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF;AASD,mGAAmG;AACnG,MAAM,OAAO,aAAc,SAAQ,WAAW;IACnC,KAAK,CAAa;IAC3B,8BAA8B;IACrB,IAAI,CAAO;IACpB,qGAAqG;IAC5F,OAAO,CAAU;IAC1B,+BAA+B;IACtB,MAAM,CAAS;IACxB,kFAAkF;IACzE,WAAW,CAAS;IAE7B,YAAY,IAAuB;QACjC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACtC,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAY,EAAE,IAAgB;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,IAAI,aAAa,CAAC;YACvB,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;YAC7B,OAAO,EAAE,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa;YACtE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1C,KAAK;YACL,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF;AAUD;;;;;GAKG;AACH,MAAM,OAAO,YAAa,SAAQ,WAAW;IAClC,MAAM,CAAc;IACpB,IAAI,CAAc;IAClB,KAAK,CAAc;IACnB,OAAO,CAAiB;IACxB,KAAK,CAAgB;IAE9B,YAAY,IAAsB;QAChC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAClF,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAY,EAAE,IAAgB;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,IAAI,YAAY,CAAC;YACtB,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;YACpC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;YAChC,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;YAClC,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC;YACjC,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YAC/C,KAAK;YACL,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF;AAMD;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,IAAgB;IACvD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,iBAAiB;YACpB,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACxC,KAAK,eAAe,CAAC;QACrB,KAAK,aAAa;YAChB,OAAO,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9C,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa;YAChB,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,KAAK,gBAAgB;YACnB,OAAO,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,KAAK,gBAAgB;YACnB,OAAO,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9C;YACE,OAAO,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
package/dist/http.d.ts CHANGED
@@ -39,7 +39,7 @@ export declare class HttpClient {
39
39
  */
40
40
  sendMessage(chat: string, text: string, idempotencyKey: string, replyTo?: string | null, mentions?: Array<{
41
41
  user: string;
42
- }>): Promise<Record<string, unknown>>;
42
+ }>, embeds?: Array<Record<string, unknown>>, buttons?: Array<Record<string, unknown>>): Promise<Record<string, unknown>>;
43
43
  /** `POST .../typing` body is `{"is_typing": true|false}` — never `state`. */
44
44
  setTyping(chat: string, isTyping: boolean): Promise<void>;
45
45
  editMessage(message: string, text: string): Promise<Record<string, unknown>>;
@@ -47,6 +47,8 @@ export declare class HttpClient {
47
47
  /** The emoji is percent-encoded — it travels in the path, not the body. */
48
48
  setReaction(message: string, emoji: string): Promise<void>;
49
49
  unsetReaction(message: string, emoji: string): Promise<void>;
50
+ /** `POST /v1/interactions/{interaction}/ack` -> 204, no body. `interaction` is the `button.pressed` event id (`evt_…`), unrewritten. */
51
+ ackInteraction(interaction: string): Promise<void>;
50
52
  /** GET, so no idempotency key — reads are never retried-as-a-write. */
51
53
  listMembers(chat: string, cursor?: string): Promise<Record<string, unknown>>;
52
54
  syncCommands(bot: string, commands: Array<{