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/README.md +177 -64
- package/dist/bot.d.ts +29 -8
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +2 -21
- package/dist/bot.js.map +1 -1
- package/dist/caps.d.ts +36 -0
- package/dist/caps.d.ts.map +1 -0
- package/dist/caps.js +35 -0
- package/dist/caps.js.map +1 -0
- package/dist/embeds.d.ts +115 -0
- package/dist/embeds.d.ts.map +1 -0
- package/dist/embeds.js +308 -0
- package/dist/embeds.js.map +1 -0
- package/dist/errors.d.ts +51 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +69 -0
- package/dist/errors.js.map +1 -1
- package/dist/events.d.ts +214 -65
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +347 -160
- package/dist/events.js.map +1 -1
- package/dist/http.d.ts +3 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +11 -1
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/events.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Plain data a
|
|
2
|
+
* Plain data a handler receives (CONTRACT-V1 §3, §3.1).
|
|
3
3
|
*
|
|
4
|
-
* `Event` is the raw wire frame;
|
|
5
|
-
* built from one.
|
|
6
|
-
*
|
|
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
|
*/
|
|
13
|
+
import type { Button, ButtonLike, ButtonUsed, Embed, EmbedLike } from './embeds.js';
|
|
8
14
|
import type { HttpClient } from './http.js';
|
|
9
15
|
export interface User {
|
|
10
16
|
id: string;
|
|
@@ -29,12 +35,26 @@ export interface Command {
|
|
|
29
35
|
name: string;
|
|
30
36
|
description: string;
|
|
31
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* A message. Events carry one under `invoking_message` (with `sent_at` and a
|
|
40
|
+
* full `sender`); the REST side returns the stored entity (with `created_at`
|
|
41
|
+
* and `sender` as a bare `usr_…` id) — `reply()`, `send()` and `edit()` all
|
|
42
|
+
* decode that into this same shape, so `sent.id` is what you hand back to
|
|
43
|
+
* `edit()`, `delete()` and `react()`. A `sender` known only by id has empty
|
|
44
|
+
* `handle` and `name`.
|
|
45
|
+
*/
|
|
32
46
|
export interface Message {
|
|
33
47
|
id: string;
|
|
34
48
|
text: string;
|
|
35
49
|
sent_at: string;
|
|
36
50
|
sender: User | null;
|
|
37
51
|
reply_to: string | null;
|
|
52
|
+
/** `[]` when the wire omits the key or sends `null` (AMENDMENT-05 §3) — never `null`/`undefined`. */
|
|
53
|
+
embeds: Embed[];
|
|
54
|
+
/** `[]` when the wire omits the key or sends `null` — never `null`/`undefined`. */
|
|
55
|
+
buttons: Button[];
|
|
56
|
+
/** `null` when the wire omits the key, sends `null`, or the message never carried a button. */
|
|
57
|
+
button_used: ButtonUsed | null;
|
|
38
58
|
}
|
|
39
59
|
export interface EventInit {
|
|
40
60
|
id: string;
|
|
@@ -74,6 +94,15 @@ export declare function mention(user: User): Mention;
|
|
|
74
94
|
export type MentionLike = Mention | User | {
|
|
75
95
|
user: string;
|
|
76
96
|
};
|
|
97
|
+
/** What `reply()` takes besides the text: the card to hang on the message. */
|
|
98
|
+
export interface ReplyOptions {
|
|
99
|
+
embeds?: ReadonlyArray<EmbedLike>;
|
|
100
|
+
buttons?: ReadonlyArray<ButtonLike>;
|
|
101
|
+
}
|
|
102
|
+
/** `send()` takes the same, plus who the `@handle` tokens in `text` point at. */
|
|
103
|
+
export interface SendOptions extends ReplyOptions {
|
|
104
|
+
mentions?: MentionLike[];
|
|
105
|
+
}
|
|
77
106
|
/**
|
|
78
107
|
* One page of `GET /v1/chats/{chat}/members` (CONTRACT-V1 §4, §5.0.1). No
|
|
79
108
|
* auto-loading iterator. `MemberPage` is SDK-constructed — decoded from the
|
|
@@ -94,88 +123,208 @@ export interface MemberPage {
|
|
|
94
123
|
hasMore: boolean;
|
|
95
124
|
nextCursor: string | null;
|
|
96
125
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
126
|
+
/** `member.joined` / `member.left` — group chats only, human members only. */
|
|
127
|
+
export type MemberEventType = 'member.joined' | 'member.left';
|
|
128
|
+
/** `bot.added` / `bot.removed` — this bot, in that chat, with who did it. */
|
|
129
|
+
export type BotEventType = 'bot.added' | 'bot.removed';
|
|
130
|
+
/** `reaction.added` — on one of this bot's own messages. There is no `reaction.removed`. */
|
|
131
|
+
export type ReactionEventType = 'reaction.added';
|
|
132
|
+
/** `button.pressed` — someone pressed a button on one of this bot's own messages (AMENDMENT-05). */
|
|
133
|
+
export type ButtonEventType = 'button.pressed';
|
|
134
|
+
/** Every event type `bot.on()` names. `command.invoked` goes through `bot.command()`. */
|
|
135
|
+
export type EventType = MemberEventType | BotEventType | ReactionEventType | ButtonEventType;
|
|
136
|
+
interface BaseInit {
|
|
100
137
|
chat: Chat;
|
|
101
|
-
sender: User | null;
|
|
102
|
-
/** Populated only for `member.joined` / `member.left`. */
|
|
103
|
-
user: User | null;
|
|
104
|
-
/** Populated only for `bot.added` / `bot.removed`. */
|
|
105
|
-
actor: User | null;
|
|
106
|
-
/** Populated only for `reaction.added`. */
|
|
107
|
-
emoji: string | null;
|
|
108
138
|
event: Event;
|
|
109
|
-
message: Message | null;
|
|
110
139
|
http: HttpClient;
|
|
111
140
|
}
|
|
112
141
|
/**
|
|
113
|
-
* What
|
|
114
|
-
*
|
|
115
|
-
* (
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
* - `command.invoked`: `chat`, `sender`, `message`
|
|
119
|
-
* - `member.joined` / `member.left`: `chat`, `user`
|
|
120
|
-
* - `bot.added` / `bot.removed`: `chat`, `actor`
|
|
121
|
-
* - `reaction.added`: `chat`, `sender`, `message`, `emoji`
|
|
122
|
-
*
|
|
123
|
-
* — everything else on a given `Context` is `null`. An unhandled or future
|
|
124
|
-
* event type never throws building one: every field is read defensively off
|
|
125
|
-
* `event.data` and falls back to `null`.
|
|
142
|
+
* What every context shares: the chat the event happened in, the raw event,
|
|
143
|
+
* and the actions. Subclasses add the fields their family delivers. The
|
|
144
|
+
* actions live here so `ctx.reply()` reads the same in every handler; a
|
|
145
|
+
* subclass that knows which message to quote says so through `quotes()`.
|
|
126
146
|
*/
|
|
127
|
-
export declare class
|
|
147
|
+
export declare class BaseContext {
|
|
128
148
|
#private;
|
|
129
|
-
readonly command: string;
|
|
130
|
-
readonly arguments: string;
|
|
131
149
|
readonly chat: Chat;
|
|
132
|
-
readonly sender: User | null;
|
|
133
|
-
readonly user: User | null;
|
|
134
|
-
readonly actor: User | null;
|
|
135
|
-
readonly emoji: string | null;
|
|
136
150
|
readonly event: Event;
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
static fromEvent(event: Event, http: HttpClient): Context;
|
|
151
|
+
constructor(init: BaseInit);
|
|
152
|
+
/** The message id `reply()` quotes, or `null` to send the reply free-standing. */
|
|
153
|
+
protected quotes(): string | null;
|
|
141
154
|
/**
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
* `
|
|
155
|
+
* Send a message to this chat, quoting the message this event is about
|
|
156
|
+
* when there is one (BA-R27). Returns the stored message, so `sent.id` is
|
|
157
|
+
* ready for `edit()`, `delete()` and `react()`.
|
|
145
158
|
*
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
* field is
|
|
149
|
-
* (a `member.joined` frame with a stray `sender` must not populate
|
|
150
|
-
* `ctx.sender` — matches python). For a type this SDK does not recognize,
|
|
151
|
-
* every field is read defensively and opportunistically — there is no
|
|
152
|
-
* contract to pin it to, so whatever the frame happens to carry is
|
|
153
|
-
* surfaced rather than discarded. `chat` itself falls back to an empty one
|
|
154
|
-
* rather than throwing, for both cases.
|
|
159
|
+
* A fresh `Idempotency-Key` per call, reused across that call's retries by
|
|
160
|
+
* `HttpClient.request` itself. When the event carried no message id the
|
|
161
|
+
* `reply_to` field is omitted and the reply floats free.
|
|
155
162
|
*/
|
|
156
|
-
|
|
163
|
+
reply(text: string, options?: ReplyOptions): Promise<Message>;
|
|
164
|
+
reply(options: ReplyOptions): Promise<Message>;
|
|
157
165
|
/**
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
|
|
166
|
+
* Send a message to any chat this bot is in — this one or another.
|
|
167
|
+
* `mentions` names who `@handle` tokens in `text` point at: pass
|
|
168
|
+
* `mention(user)`, a `User`, or `{ user: 'usr_…' }`. `embeds`/`buttons`
|
|
169
|
+
* accept a builder or a plain object literal, validated the same either
|
|
170
|
+
* way. Returns the stored message.
|
|
171
|
+
*/
|
|
172
|
+
send(chat: Chat | string, text: string, options?: SendOptions): Promise<Message>;
|
|
173
|
+
send(chat: Chat | string, options: SendOptions): Promise<Message>;
|
|
174
|
+
/**
|
|
175
|
+
* Show or clear "is thinking…" in this chat. `POST /v1/chats/{chat}/typing`
|
|
176
|
+
* with `{"is_typing": bool}`. Command handlers get this automatically
|
|
177
|
+
* (auto-typing); reach for `withTyping()` when you want it yourself.
|
|
164
178
|
*/
|
|
165
|
-
reply(text: string): Promise<Record<string, unknown>>;
|
|
166
|
-
/** `POST /v1/chats/{chat}/typing` — `is_typing` only, no `state` spelling. */
|
|
167
179
|
typing(isTyping: boolean): Promise<void>;
|
|
168
|
-
/**
|
|
180
|
+
/** Runs `fn` with the indicator on: `true` on entry, `false` on exit — ALWAYS, including on throw. */
|
|
169
181
|
withTyping<T>(fn: () => Promise<T>): Promise<T>;
|
|
170
|
-
|
|
182
|
+
/**
|
|
183
|
+
* Change the text of one of this bot's own messages. Pass what `reply()`
|
|
184
|
+
* or `send()` returned, or its id. Someone else's message is
|
|
185
|
+
* `MessageNotYours`. Returns the updated message.
|
|
186
|
+
*/
|
|
187
|
+
edit(message: Message | string, text: string): Promise<Message>;
|
|
188
|
+
/** Delete one of this bot's own messages. Someone else's is `MessageNotYours`. */
|
|
171
189
|
delete(message: Message | string): Promise<void>;
|
|
190
|
+
/**
|
|
191
|
+
* Put a reaction on a message, one emoji at a time. Reacting twice with the
|
|
192
|
+
* same emoji is a no-op; a string longer than one emoji is
|
|
193
|
+
* `ReactionEmojiTooLong`.
|
|
194
|
+
*/
|
|
172
195
|
react(message: Message | string, emoji: string): Promise<void>;
|
|
196
|
+
/** Take a reaction off. Removing one that is not there is a no-op. */
|
|
173
197
|
unreact(message: Message | string, emoji: string): Promise<void>;
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
198
|
+
/**
|
|
199
|
+
* One page of who is in a chat, bots included — this chat by default.
|
|
200
|
+
* Check `hasMore` and pass `nextCursor` back as `cursor` for the next page;
|
|
201
|
+
* `ctx.chat.member_count` is the total without a call.
|
|
202
|
+
*/
|
|
177
203
|
members(chat?: Chat | string, options?: {
|
|
178
204
|
cursor?: string;
|
|
179
205
|
}): Promise<MemberPage>;
|
|
180
206
|
}
|
|
207
|
+
export interface ContextInit extends BaseInit {
|
|
208
|
+
command: string;
|
|
209
|
+
arguments: string;
|
|
210
|
+
sender: User;
|
|
211
|
+
message: Message;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* What a `bot.command()` handler receives. Built by `bot.ts`'s dispatch
|
|
215
|
+
* closure from one `command.invoked` event — `Socket` never constructs one.
|
|
216
|
+
* `sender` and `message` are always set: the server never emits a command
|
|
217
|
+
* without both.
|
|
218
|
+
*/
|
|
219
|
+
export declare class Context extends BaseContext {
|
|
220
|
+
/** The command name as the server matched it, without the slash. */
|
|
221
|
+
readonly command: string;
|
|
222
|
+
/** Everything after the command name, untrimmed of its inner spaces. `''` when there was nothing. */
|
|
223
|
+
readonly arguments: string;
|
|
224
|
+
/** Who typed the command. */
|
|
225
|
+
readonly sender: User;
|
|
226
|
+
/** The message that carried the command. `reply()` quotes it. */
|
|
227
|
+
readonly message: Message;
|
|
228
|
+
constructor(init: ContextInit);
|
|
229
|
+
protected quotes(): string | null;
|
|
230
|
+
/** Build straight from a `command.invoked` event's raw `data`. */
|
|
231
|
+
static fromEvent(event: Event, http: HttpClient): Context;
|
|
232
|
+
}
|
|
233
|
+
export interface MemberContextInit extends BaseInit {
|
|
234
|
+
user: User;
|
|
235
|
+
}
|
|
236
|
+
/** `member.joined` / `member.left`: someone came into, or left, a group chat this bot is in. */
|
|
237
|
+
export declare class MemberContext extends BaseContext {
|
|
238
|
+
/** Who joined or left. Never the bot itself — that is `bot.added` / `bot.removed`. */
|
|
239
|
+
readonly user: User;
|
|
240
|
+
constructor(init: MemberContextInit);
|
|
241
|
+
static fromEvent(event: Event, http: HttpClient): MemberContext;
|
|
242
|
+
}
|
|
243
|
+
export interface BotContextInit extends BaseInit {
|
|
244
|
+
actor: User;
|
|
245
|
+
}
|
|
246
|
+
/** `bot.added` / `bot.removed`: this bot was put into, or taken out of, a chat. */
|
|
247
|
+
export declare class BotContext extends BaseContext {
|
|
248
|
+
/** The person who added or removed the bot. */
|
|
249
|
+
readonly actor: User;
|
|
250
|
+
constructor(init: BotContextInit);
|
|
251
|
+
static fromEvent(event: Event, http: HttpClient): BotContext;
|
|
252
|
+
}
|
|
253
|
+
export interface ReactionContextInit extends BaseInit {
|
|
254
|
+
sender: User;
|
|
255
|
+
message: Message;
|
|
256
|
+
emoji: string;
|
|
257
|
+
}
|
|
258
|
+
/** `reaction.added`: someone reacted to one of this bot's own messages. */
|
|
259
|
+
export declare class ReactionContext extends BaseContext {
|
|
260
|
+
/** Who reacted. */
|
|
261
|
+
readonly sender: User;
|
|
262
|
+
/** The bot's message they reacted to — id only; the text is not re-sent. `reply()` quotes it. */
|
|
263
|
+
readonly message: Message;
|
|
264
|
+
/** The emoji, as one string. */
|
|
265
|
+
readonly emoji: string;
|
|
266
|
+
constructor(init: ReactionContextInit);
|
|
267
|
+
protected quotes(): string | null;
|
|
268
|
+
static fromEvent(event: Event, http: HttpClient): ReactionContext;
|
|
269
|
+
}
|
|
270
|
+
export interface ButtonContextInit extends BaseInit {
|
|
271
|
+
user: User;
|
|
272
|
+
message: Message;
|
|
273
|
+
button: string;
|
|
274
|
+
interaction: string;
|
|
275
|
+
}
|
|
276
|
+
/** `button.pressed`: someone pressed a button on one of this bot's own messages (AMENDMENT-05). */
|
|
277
|
+
export declare class ButtonContext extends BaseContext {
|
|
278
|
+
#private;
|
|
279
|
+
/** Who pressed the button. */
|
|
280
|
+
readonly user: User;
|
|
281
|
+
/** The bot's message the button lives on — id only; the text is not re-sent. `reply()` quotes it. */
|
|
282
|
+
readonly message: Message;
|
|
283
|
+
/** The pressed button's id. */
|
|
284
|
+
readonly button: string;
|
|
285
|
+
/** The interaction id — `ack()` posts to `/v1/interactions/{interaction}/ack`. */
|
|
286
|
+
readonly interaction: string;
|
|
287
|
+
constructor(init: ButtonContextInit);
|
|
288
|
+
protected quotes(): string | null;
|
|
289
|
+
/**
|
|
290
|
+
* Acknowledge the button press — `POST /v1/interactions/{interaction}/ack`,
|
|
291
|
+
* 204 no body. Acking twice is `InteractionAlreadyUsed` (surfaced through
|
|
292
|
+
* the existing code -> class mapping; there is no dedicated class here).
|
|
293
|
+
*/
|
|
294
|
+
ack(): Promise<void>;
|
|
295
|
+
static fromEvent(event: Event, http: HttpClient): ButtonContext;
|
|
296
|
+
}
|
|
297
|
+
export interface EventContextInit extends BaseInit {
|
|
298
|
+
sender: User | null;
|
|
299
|
+
user: User | null;
|
|
300
|
+
actor: User | null;
|
|
301
|
+
message: Message | null;
|
|
302
|
+
emoji: string | null;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* An event type this SDK does not name yet. Nothing is pinned, so every
|
|
306
|
+
* field is read off the frame if it is there and `null` if it is not —
|
|
307
|
+
* whatever the wire carries is surfaced rather than discarded, and building
|
|
308
|
+
* one never throws.
|
|
309
|
+
*/
|
|
310
|
+
export declare class EventContext extends BaseContext {
|
|
311
|
+
readonly sender: User | null;
|
|
312
|
+
readonly user: User | null;
|
|
313
|
+
readonly actor: User | null;
|
|
314
|
+
readonly message: Message | null;
|
|
315
|
+
readonly emoji: string | null;
|
|
316
|
+
constructor(init: EventContextInit);
|
|
317
|
+
protected quotes(): string | null;
|
|
318
|
+
static fromEvent(event: Event, http: HttpClient): EventContext;
|
|
319
|
+
}
|
|
320
|
+
/** Any context a handler can receive. What `bot.onError()` sees beside the error. */
|
|
321
|
+
export type AnyContext = Context | MemberContext | BotContext | ReactionContext | ButtonContext | EventContext;
|
|
322
|
+
/**
|
|
323
|
+
* The context class for an event, by its type. `command.invoked` gets
|
|
324
|
+
* `Context`; the four named families get theirs; anything else gets
|
|
325
|
+
* `EventContext`. The dispatch side of BA-R68 — `bot.ts` calls this and
|
|
326
|
+
* hands the result to every handler registered for the type.
|
|
327
|
+
*/
|
|
328
|
+
export declare function contextFor(event: Event, http: HttpClient): AnyContext;
|
|
329
|
+
export {};
|
|
181
330
|
//# sourceMappingURL=events.d.ts.map
|
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|