UNPKG

speedybot

Version:

<p align="center"> <a href="https://github.com/valgaze/speedybot"> <img src="https://img.shields.io/npm/v/speedybot.svg" /> </a> <a href="https://github.com/valgaze/speedybot"> <img src="https://img.shields.io/npm/dm/speedybot.svg" /> </a>

121 lines (120 loc) 4.74 kB
import { CoreMakerequest, ENVELOPES, Message, MessageResponse, RoomConfig, Room_Details, SelfData, SpeedyFile, ToMessage } from "./types"; import { AttachedData, SpeedyError, Webhook } from "./types"; import { AbbreviatedSpeedyCard, HeaderConfig, SpeedyCard } from "./cards"; import { Middleware } from "./types"; export declare class SpeedyBot<S extends string = string> { private _token; private makeRequest; private middlewares; private topMiddleware; private fallbackText; private errorHandler; constructor(_token?: string, makeRequest?: CoreMakerequest); private secrets; addSecret(key: S, value: string | number): void; addSecrets(payload: { [key: string]: string | number; }): void; getSecret(key: S): string | number | undefined; API: { messages: string; attachments: string; user: { self: string; getPersonDetails: string; }; rooms: string; roomDetails: string; webhooks: string; }; setToken(token: string): this; getToken(): string; setFallbackText(t: string): void; insertStepToFront(middleware: Middleware): void; pickRandom<P>(list: P[]): P; pickRandom<P>(min: number, max: number): number; pickRandom<P>(listOrMin: P[] | number, max?: number): P | number; addStep<T = AttachedData>(middleware: Middleware<T>): void; addStepSequence<T = AttachedData>(middlewares: Middleware<T>[]): void; regex(reg: RegExp, cb: Middleware): void; onCamera(cb: Middleware, formats?: string[]): void; exact(keyword: string, cb: Middleware): void; contains(keyword: string | string[], cb: Middleware): void; private onReject; captureError(func: (e: SpeedyError) => void | unknown): void; runMiddleware(env: ENVELOPES, startingCtx?: { [key: string]: string | number; }): Promise<boolean>; private resolveDestination; sendTo(emailOrRoomId: string | { personId: string; }, message: Message): Promise<MessageResponse>; _send(payload: ToMessage): Promise<MessageResponse>; validateToken(token: string): Promise<boolean>; card(config?: Partial<AbbreviatedSpeedyCard & { label: string; }>): SpeedyCard; stashCard(secret: string | number, message?: string, unwrapLabel?: string, destroyLabel?: string): SpeedyCard; errorCard(title: string, message: string): SpeedyCard; successCard(title: string, message: string): SpeedyCard; editMessage(roomId: string, messageId: string, message: string): Promise<MessageResponse>; replyTo(roomIdParam: MessageResponse | string, param2: string | undefined, param3?: string): Promise<MessageResponse>; private detectType; deleteMessage(msgId: string): Promise<unknown>; deleteWebhook(webhookId: string): Promise<void>; getWebhooks(): Promise<{ items: Webhook[]; }>; fetchWebhooks(): Promise<{ id: string; name: string; resource: string; targetUrl: string; }[]>; Setup(url: string, secret: string): Promise<[Webhook, Webhook]>; getRecentRooms(limit?: number): Promise<{ type: string; title: string; id: string; }[]>; createAttachmentActionsWebhook(url: string, secret?: string): Promise<Webhook>; createFirehose(url: string, secret?: string): Promise<Webhook>; createWebhook(payload: { resource: string; event: string; targetUrl: string; name: string; secret?: string; }): Promise<Webhook>; private checkAuthor; getSelf(token?: string): Promise<SelfData>; whoAmI(): Promise<SelfData & { webhooks: Webhook[]; }>; private buildDetails; getPerson(personId: string): Promise<SelfData>; getRoom(roomId: string): Promise<Room_Details>; private getData; private generateFileName; rando(): string; private handleExtension; sendFileTo(destination: string | { personId: string; }, data: any, extensionOrFileName: string, textLabel?: string, contentType?: string | null): Promise<MessageResponse>; getFile(url: string, opts?: { responseType?: "arraybuffer" | "json"; }): Promise<SpeedyFile & { data: unknown; }>; private extractFiledata; peekFile(url: string): Promise<Omit<SpeedyFile, "data">>; private guessContentType; fuzzyMatch(candidate: string, options: string[]): boolean; convertToHash(arr: string[]): { [key: string]: string; }; appCard(appName: string, logoUrl: string, config?: Omit<HeaderConfig, "iconURL">): SpeedyCard; private fetchData; private buildQueryURL; getAllRooms(options?: Partial<RoomConfig>): Promise<Room_Details[]>; }