speedybot / Exports / SpeedyBot
Class: SpeedyBot<S> 
Type parameters 
| Name | Type | 
|---|---|
| S | extends string=string | 
Table of contents 
Constructors 
Methods 
- Setup
- addSecret
- addSecrets
- addStep
- addStepSequence
- appCard
- captureError
- card
- checkAuthor
- contains
- convertToHash
- createWebhook
- deleteMessage
- deleteWebhook
- detectType
- editMessage
- errorCard
- exact
- extractFiledata
- fetchWebhooks
- fuzzyMatch
- generateFileName
- getFile
- getPerson
- getRecentRooms
- getRoom
- getSecret
- getSelf
- getToken
- getWebhooks
- insertStepToFront
- onCamera
- onReject
- pickRandom
- rando
- regex
- replyTo
- runMiddleware
- sendFileTo
- sendTo
- setFallbackText
- setToken
- stashCard
- successCard
- validateToken
- whoAmI
Constructors 
constructor 
• new SpeedyBot<S>(_token?, makeRequest?)
Type parameters 
| Name | Type | 
|---|---|
| S | extends string=string | 
Parameters 
| Name | Type | Default value | 
|---|---|---|
| _token | string | "" | 
| makeRequest | CoreMakerequest<unknown> | mainRequester | 
Defined in 
Methods 
Setup 
▸ Setup(url, secret): Promise<[Webhook, Webhook]>
Create firehose and attachmentActions webhooks
Parameters 
| Name | Type | 
|---|---|
| url | string | 
| secret | string | 
Returns 
Promise<[Webhook, Webhook]>
Defined in 
addSecret 
▸ addSecret(key, value): void
Parameters 
| Name | Type | 
|---|---|
| key | S | 
| value | string|number | 
Returns 
void
Defined in 
addSecrets 
▸ addSecrets(payload): void
Parameters 
| Name | Type | 
|---|---|
| payload | Object | 
Returns 
void
Defined in 
addStep 
▸ addStep<T>(middleware): void
Core part of SpeedyBot Listener, it MUST return $.next (continues chain) or $.end
The $ parameter's $.send and $.reply methods will be autobound to incoming message
const Bot = new SpeedyBot();
Bot.addStep(async ($) => {
 await Bot.sendTo($.author.email, "my message");
 const parentMessageID = $.id;
 await Bot.replyTo(parentMessageID, $.author.email, "my great reply message");
 await $.send("Hello the right person");
 await $.reply("Reply to the right message");
 return $.next;
});Type parameters 
| Name | Type | 
|---|---|
| T | AttachedData | 
Parameters 
| Name | Type | 
|---|---|
| middleware | Middleware<T> | 
Returns 
void
Defined in 
addStepSequence 
▸ addStepSequence<T>(middlewares): void
Type parameters 
| Name | Type | 
|---|---|
| T | AttachedData | 
Parameters 
| Name | Type | 
|---|---|
| middlewares | Middleware<T>[] | 
Returns 
void
Defined in 
appCard 
▸ appCard(appName, logoUrl, config?): SpeedyCard
Parameters 
| Name | Type | 
|---|---|
| appName | string | 
| logoUrl | string | 
| config | Omit<HeaderConfig,"iconURL"> | 
Returns 
Defined in 
captureError 
▸ captureError(func): void
Parameters 
| Name | Type | 
|---|---|
| func | ( e:SpeedyError) =>unknown | 
Returns 
void
Defined in 
card 
▸ card(config?): SpeedyCard
Convenience helper that creates a SpeedyCard
import { SpeedyBot } from 'speedybot-mini'
// 1) Initialize your bot w/ config
const CultureBot = new SpeedyBot('tokenPlaceholder');
// 2) Export your bot
export default CultureBot;
// 3) Do whatever you want!
CultureBot.contains(["hi", "hey"],
 async ($bot, msg) => {
  const cardData = $bot.card({
    title: "SpeedyBot Hub",
    subTitle: "Sign the paperwork",
    chips: ["ping", "pong", "hi",],
    image: "https://github.com/valgaze/speedybot-mini/raw/deploy/docs/assets/logo.png?raw=true",
    url: "https://github.com/valgaze/speedybot-mini"
  });
  $bot.send(cardData);
 })Parameters 
| Name | Type | 
|---|---|
| config? | Partial<AbbreviatedSpeedyCard& {label:string}> | 
Returns 
Defined in 
checkAuthor 
▸ Private checkAuthor(authorObj): Promise<boolean>
Parameters 
| Name | Type | 
|---|---|
| authorObj | SelfData | 
Returns 
Promise<boolean>
Defined in 
contains 
▸ contains(keyword, cb): void
Performs a case-insensitive check to determine if the input text contains the specified keyword or a list of supplied words. If a match is found, the provided middleware function is executed.
Parameters 
| Name | Type | Description | 
|---|---|---|
| keyword | string|string[] | The keyword or array of keywords to check for in the input text. | 
| cb | Middleware<AttachedData> | The middleware function to be executed if a match is found. | 
Returns 
void
Defined in 
convertToHash 
▸ convertToHash(arr): Object
Convert a list of pairs into an object for secrets consumption.
example
const input: string[] = ['secret1=value1', 'secret2=value2', 'secret3=value3'];
const output = convertToHash(input);
console.log(output);
// Output:
// {
//   secret1: 'value1',
//   secret2: 'value2',
//   secret3: 'value3'
// }Parameters 
| Name | Type | Description | 
|---|---|---|
| arr | string[] | The list of pairs to convert. | 
Returns 
Object
The converted object.
Defined in 
createWebhook 
▸ createWebhook(payload): Promise<Webhook>
Parameters 
| Name | Type | 
|---|---|
| payload | Object | 
| payload.event | string | 
| payload.name | string | 
| payload.resource | string | 
| payload.secret? | string | 
| payload.targetUrl | string | 
Returns 
Promise<Webhook>
Defined in 
deleteMessage 
▸ deleteMessage(msgId): Promise<unknown>
Parameters 
| Name | Type | 
|---|---|
| msgId | string | 
Returns 
Promise<unknown>
Defined in 
deleteWebhook 
▸ deleteWebhook(webhookId): Promise<void>
Parameters 
| Name | Type | 
|---|---|
| webhookId | string | 
Returns 
Promise<void>
Defined in 
detectType 
▸ Private detectType(envelope): MessageTypes
Parameters 
| Name | Type | 
|---|---|
| envelope | ENVELOPES | 
Returns 
MessageTypes
Defined in 
editMessage 
▸ editMessage(roomId, messageId, message): Promise<MessageResponse>
Edit a message
Parameters 
| Name | Type | 
|---|---|
| roomId | string | 
| messageId | string | 
| message | string | 
Returns 
Promise<MessageResponse>
Defined in 
errorCard 
▸ errorCard(title, message): SpeedyCard
Parameters 
| Name | Type | 
|---|---|
| title | string | 
| message | string | 
Returns 
Defined in 
exact 
▸ exact(keyword, cb): void
Performs a case-sensitive match to check if the input text exactly matches the specified keyword. If there is a match, the provided middleware function is executed.
Parameters 
| Name | Type | Description | 
|---|---|---|
| keyword | string | The keyword to match against the input text. | 
| cb | Middleware<AttachedData> | The middleware function to be executed if there is a match. | 
Returns 
void
Defined in 
extractFiledata 
▸ Private extractFiledata(res): Object
Parameters 
| Name | Type | 
|---|---|
| res | StubbedRes<unknown> | 
Returns 
Object
| Name | Type | 
|---|---|
| bytes | number | 
| contentType | string | 
| extension | string | 
| name | string | 
Defined in 
fetchWebhooks 
▸ fetchWebhooks(): Promise<{ id: string ; name: string ; resource: string ; targetUrl: string }[]>
Return abbreviated array of webhook data
Returns 
Promise<{ id: string ; name: string ; resource: string ; targetUrl: string }[]>
Defined in 
fuzzyMatch 
▸ fuzzyMatch(candidate, options): boolean
Utility to traverse Link headers for pagination, built-in back-off
Parameters 
| Name | Type | 
|---|---|
| candidate | string | 
| options | string[] | 
Returns 
boolean
Defined in 
generateFileName 
▸ Private generateFileName(): string
Returns 
string
Defined in 
getFile 
▸ getFile(url, opts?): Promise<SpeedyFile & { data: unknown }>
Parameters 
| Name | Type | 
|---|---|
| url | string | 
| opts | Object | 
| opts.responseType? | "arraybuffer"|"json" | 
Returns 
Promise<SpeedyFile & { data: unknown }>
Defined in 
getPerson 
▸ getPerson(personId): Promise<SelfData>
Parameters 
| Name | Type | 
|---|---|
| personId | string | 
Returns 
Promise<SelfData>
Defined in 
getRecentRooms 
▸ getRecentRooms(limit?): Promise<{ id: string ; title: string ; type: string }[]>
Parameters 
| Name | Type | Default value | 
|---|---|---|
| limit | number | 100 | 
Returns 
Promise<{ id: string ; title: string ; type: string }[]>
Defined in 
getRoom 
▸ getRoom(roomId): Promise<Room_Details>
Parameters 
| Name | Type | 
|---|---|
| roomId | string | 
Returns 
Promise<Room_Details>
Defined in 
getSecret 
▸ getSecret(key): undefined | string | number
Parameters 
| Name | Type | 
|---|---|
| key | S | 
Returns 
undefined | string | number
Defined in 
getSelf 
▸ getSelf(token?): Promise<SelfData>
Parameters 
| Name | Type | 
|---|---|
| token? | string | 
Returns 
Promise<SelfData>
Defined in 
getToken 
▸ getToken(): string
Returns 
string
Defined in 
getWebhooks 
▸ getWebhooks(): Promise<{ items: Webhook[] }>
Return array of full webhook data
Returns 
Promise<{ items: Webhook[] }>
Defined in 
insertStepToFront 
▸ insertStepToFront(middleware): void
Parameters 
| Name | Type | 
|---|---|
| middleware | Middleware<AttachedData> | 
Returns 
void
Defined in 
onCamera 
▸ onCamera(cb, formats?): void
Shorthand-handler for files w/ image types
For use w/ vision + text prompting systems
Parameters 
| Name | Type | Default value | 
|---|---|---|
| cb | Middleware<AttachedData> | undefined | 
| formats | string[] | [] | 
Returns 
void
Defined in 
onReject 
▸ Private onReject(e): void
Parameters 
| Name | Type | 
|---|---|
| e | SpeedyError | 
Returns 
void
Defined in 
pickRandom 
▸ pickRandom<P>(list): P
Type parameters 
| Name | 
|---|
| P | 
Parameters 
| Name | Type | 
|---|---|
| list | P[] | 
Returns 
P
Defined in 
▸ pickRandom<P>(min, max): number
Type parameters 
| Name | 
|---|
| P | 
Parameters 
| Name | Type | 
|---|---|
| min | number | 
| max | number | 
Returns 
number
Defined in 
▸ pickRandom<P>(listOrMin, max?): number | P
Type parameters 
| Name | 
|---|
| P | 
Parameters 
| Name | Type | 
|---|---|
| listOrMin | number|P[] | 
| max? | number | 
Returns 
number | P
Defined in 
rando 
▸ rando(): string
Generate a random string of 11 characters (letters + numbers)
Returns 
string
Defined in 
regex 
▸ regex(reg, cb): void
Parameters 
| Name | Type | 
|---|---|
| reg | RegExp | 
| cb | Middleware<AttachedData> | 
Returns 
void
Defined in 
replyTo 
▸ replyTo(roomIdParam, param2, param3?): Promise<MessageResponse>
Parameters 
| Name | Type | 
|---|---|
| roomIdParam | string|MessageResponse | 
| param2 | undefined|string | 
| param3? | string | 
Returns 
Promise<MessageResponse>
Defined in 
runMiddleware 
▸ runMiddleware(env, startingCtx?): Promise<boolean>
Main workhorse that takes in a webhook and passes it through provided flows
importParameters 
| Name | Type | 
|---|---|
| env | ENVELOPES | 
| startingCtx | Object | 
Returns 
Promise<boolean>
Defined in 
sendFileTo 
▸ sendFileTo(destination, data, extensionOrFileName, textLabel?, contentType?): Promise<MessageResponse>
Send a file to a destination-- a downloadable file will be generated
At minimum, provide the file data & desired file extension
import { SpeedyBot } from 'speedybot'
const Bot = new SpeedyBot('__REPLACE__ME__')
const myData = { a: 1, b: 2, c: [1,2,3,'hello', 'bonjour']}
$bot.sendFileTo('target@email.com', myData, 'json')Parameters 
| Name | Type | Default value | 
|---|---|---|
| destination | string| {personId:string} | undefined | 
| data | any | undefined | 
| extensionOrFileName | string | undefined | 
| textLabel | string | "" | 
| contentType | null|string | null | 
Returns 
Promise<MessageResponse>
Defined in 
sendTo 
▸ sendTo(emailOrRoomId, message): Promise<MessageResponse>
Send a message to a room, email, or personId
import { SpeedyBot } from 'speedybot'
// 1) Initialize your bot w/ config
const Bot = new SpeedyBot({ token: '__REPLACE__ME__'});
Bot.sendTo('targetEmail@account.com', '**here is a message**')
Bot.sendTo('aaa-bbb-ccc-ddd-eee-fff', '**Here is a message to a room**')
Bot.sendTo({toPersonId: 'xxxyyyzzz', '**here is a message**')Parameters 
| Name | Type | 
|---|---|
| emailOrRoomId | string| {personId:string} | 
| message | Message | 
Returns 
Promise<MessageResponse>
Defined in 
setFallbackText 
▸ setFallbackText(t): void
Parameters 
| Name | Type | 
|---|---|
| t | string | 
Returns 
void
Defined in 
setToken 
▸ setToken(token): SpeedyBot<S>
Sets the token to transact with APIs (needed to send messages, receive webhooks, files, etc)
Parameters 
| Name | Type | 
|---|---|
| token | string | 
Returns 
SpeedyBot<S>
Defined in 
stashCard 
▸ stashCard(secret, message?, unwrapLabel?, destroyLabel?): SpeedyCard
Parameters 
| Name | Type | Default value | 
|---|---|---|
| secret | string|number | undefined | 
| message? | string | undefined | 
| unwrapLabel | string | CONSTANTS.unwrapLabel | 
| destroyLabel | string | CONSTANTS.destroyLabel | 
Returns 
Defined in 
successCard 
▸ successCard(title, message): SpeedyCard
Parameters 
| Name | Type | 
|---|---|
| title | string | 
| message | string | 
Returns 
Defined in 
validateToken 
▸ validateToken(token): Promise<boolean>
Parameters 
| Name | Type | 
|---|---|
| token | string | 
Returns 
Promise<boolean>
Defined in 
whoAmI 
▸ whoAmI(): Promise<SelfData & { webhooks: Webhook[] }>
Returns 
Promise<SelfData & { webhooks: Webhook[] }>