@builderbot/provider-venom 0.1.3-alpha.22

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.
@@ -0,0 +1,119 @@
1
+ import { ProviderClass } from '@builderbot/bot';
2
+ import { BotContext, BotCtxMiddlewareOptions, SendOptions } from '@builderbot/bot/dist/types';
3
+ import venom from 'venom-bot';
4
+
5
+ import { VenomHttpServer } from './server';
6
+ import { SaveFileOptions } from './types';
7
+ /**
8
+ * ⚙️ VenomProvider: Es una clase tipo adaptor
9
+ * que extiende clases de ProviderClass (la cual es como interfaz para sber que funciones rqueridas)
10
+ * https://github.com/orkestral/venom
11
+ */
12
+ declare class VenomProvider extends ProviderClass {
13
+ globalVendorArgs: {
14
+ name: string;
15
+ gifPlayback: boolean;
16
+ port: number;
17
+ };
18
+ vendor: venom.Whatsapp;
19
+ http: VenomHttpServer | undefined;
20
+ constructor(args: {
21
+ name: string;
22
+ gifPlayback: boolean;
23
+ });
24
+ /**
25
+ *
26
+ * @param port
27
+ * @param opts
28
+ * @returns
29
+ */
30
+ initHttpServer: (port: number, opts: Pick<BotCtxMiddlewareOptions, 'blacklist'>) => void;
31
+ /**
32
+ * Iniciamos el Proveedor Venom
33
+ */
34
+ init: () => Promise<void>;
35
+ /**
36
+ * Generamos QR Code pra escanear con el Whatsapp
37
+ */
38
+ generateQr: (qr: string) => Promise<void>;
39
+ /**
40
+ * Mapeamos los eventos nativos de https://docs.orkestral.io/venom/#/?id=events
41
+ * para tener un standar de eventos
42
+ * @returns
43
+ */
44
+ busEvents: () => {
45
+ event: string;
46
+ func: (payload: venom.Message & {
47
+ lat?: string;
48
+ lng?: string;
49
+ name: string;
50
+ }) => void;
51
+ }[];
52
+ /**
53
+ * Iniciamos y mapeamos el BusEvent
54
+ * Ejemplo:
55
+ * this.vendor.onMessage() 👉 this.vendor["onMessage"]()
56
+ */
57
+ initBusEvents: () => void;
58
+ /**
59
+ * Enviar botones
60
+ * @private
61
+ * @param {*} number
62
+ * @param {*} message
63
+ * @param {*} buttons []
64
+ * @returns
65
+ */
66
+ sendButtons: (number: string, message: any, buttons?: any[]) => Promise<Object>;
67
+ /**
68
+ * Enviar audio
69
+ * @alpha
70
+ * @param {string} number
71
+ * @param {string} message
72
+ * @param {boolean} voiceNote optional
73
+ * @example await sendMessage('+XXXXXXXXXXX', 'audio.mp3')
74
+ */
75
+ sendAudio: (number: string, audioPath: string) => Promise<unknown>;
76
+ /**
77
+ * Enviar imagen
78
+ * @param {*} number
79
+ * @param {*} imageUrl
80
+ * @param {*} text
81
+ * @returns
82
+ */
83
+ sendImage: (number: string, filePath: string, text: string) => Promise<venom.SendFileResult>;
84
+ /**
85
+ *
86
+ * @param {string} number
87
+ * @param {string} filePath
88
+ * @example await sendMessage('+XXXXXXXXXXX', './document/file.pdf')
89
+ */
90
+ sendFile: (number: string, filePath: string, text: string) => Promise<unknown>;
91
+ /**
92
+ * Enviar video
93
+ * @param {*} number
94
+ * @param {*} imageUrl
95
+ * @param {*} text
96
+ * @returns
97
+ */
98
+ sendVideo: (number: string, filePath: string, text: string) => Promise<void>;
99
+ /**
100
+ * Enviar imagen o multimedia
101
+ * @param {*} number
102
+ * @param {*} mediaInput
103
+ * @param {*} message
104
+ * @returns
105
+ */
106
+ sendMedia: (number: string, mediaUrl: string, text: string) => Promise<unknown>;
107
+ /**
108
+ * Enviar mensaje al usuario
109
+ * @param {*} userId
110
+ * @param {*} message
111
+ * @param {*} param2
112
+ * @returns
113
+ */
114
+ sendMessage: (number: string, message: string, options?: SendOptions) => Promise<any>;
115
+ private generateFileName;
116
+ saveFile: (ctx: Partial<venom.Message & BotContext>, options?: SaveFileOptions) => Promise<string>;
117
+ }
118
+ export { VenomProvider };
119
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAS,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAoB,uBAAuB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAO/G,OAAO,KAAK,MAAM,WAAW,CAAA;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAOzC;;;;GAIG;AACH,cAAM,aAAc,SAAQ,aAAa;IACrC,gBAAgB;;;;MAAkD;IAClE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAA;IACtB,IAAI,EAAE,eAAe,GAAG,SAAS,CAAA;gBACrB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE;IAOxD;;;;;OAKG;IACH,cAAc,SAAU,MAAM,QAAQ,KAAK,uBAAuB,EAAE,WAAW,CAAC,UAe/E;IAED;;OAEG;IACH,IAAI,sBAkCH;IAED;;OAEG;IACH,UAAU,OAAc,MAAM,mBAU7B;IAED;;;;OAIG;IACH,SAAS;;wBAGe,MAAM,OAAO,GAAG;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,MAAM,CAAA;SAAE;QAmCnF;IAED;;;;OAIG;IACH,aAAa,aASZ;IAED;;;;;;;OAOG;IACH,WAAW,WAAkB,MAAM,WAAW,GAAG,sCAWhD;IAED;;;;;;;OAOG;IAEH,SAAS,WAAkB,MAAM,aAAa,MAAM,sBAEnD;IAED;;;;;;OAMG;IACH,SAAS,WAAkB,MAAM,YAAY,MAAM,QAAQ,MAAM,mCAEhE;IAED;;;;;OAKG;IAEH,QAAQ,WAAkB,MAAM,YAAY,MAAM,QAAQ,MAAM,sBAG/D;IAED;;;;;;OAMG;IACH,SAAS,WAAkB,MAAM,YAAY,MAAM,QAAQ,MAAM,mBAEhE;IAED;;;;;;OAMG;IACH,SAAS,WAAkB,MAAM,YAAY,MAAM,QAAQ,MAAM,sBAWhE;IAED;;;;;;OAMG;IACH,WAAW,WAAkB,MAAM,WAAW,MAAM,YAAY,WAAW,KAAG,QAAQ,GAAG,CAAC,CAMzF;IAED,OAAO,CAAC,gBAAgB,CAAmE;IAE3F,QAAQ,QAAe,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,YAAW,eAAe,KAAQ,QAAQ,MAAM,CAAC,CAa1G;CACJ;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,38 @@
1
+ /// <reference types="node" />
2
+ import EventEmitter from 'node:events';
3
+ import polka, { Polka } from 'polka';
4
+
5
+ import { VenomProvider } from '.';
6
+ import { BotCtxMiddleware } from './types';
7
+ export declare class VenomHttpServer extends EventEmitter {
8
+ #private;
9
+ server: Polka;
10
+ port: number;
11
+ constructor(botName: string, _port: number);
12
+ /**
13
+ * Contruir HTTP Server
14
+ */
15
+ protected buildHTTPServer(): Polka;
16
+ /**
17
+ * Iniciar el servidor HTTP
18
+ */
19
+ start(vendor: BotCtxMiddleware, port?: number, args?: {
20
+ botName: string;
21
+ }): void;
22
+ /**
23
+ *
24
+ * @param _
25
+ * @param res
26
+ */
27
+ protected indexHome: polka.Middleware;
28
+ stop(): Promise<void>;
29
+ }
30
+ /**
31
+ *
32
+ * @param inHandleCtx
33
+ * @returns
34
+ */
35
+ export declare const inHandleCtx: <T extends Pick<VenomProvider, "sendMessage" | "vendor"> & {
36
+ provider: VenomProvider;
37
+ }>(ctxPolka: (bot: T, req: any, res: any) => Promise<void>) => (req: any, res: any) => any;
38
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,aAAa,CAAA;AAGtC,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,qBAAa,eAAgB,SAAQ,YAAY;;IACtC,MAAM,EAAE,KAAK,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;gBAGP,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAO1C;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,KAAK;IAOlC;;OAEG;IAEH,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAczE;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAMpC;IAED,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAWxB;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW;cACmD,aAAa;2BAC5C,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,WAEjE,GAAG,OAAO,GAAG,QAoBlB,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { ProviderClass } from '@builderbot/bot';
2
+ export type BotCtxMiddleware = Partial<ProviderClass & {
3
+ provider: any;
4
+ }>;
5
+ export interface SaveFileOptions {
6
+ path?: string;
7
+ }
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,aAAa,GAAG;IAAE,QAAQ,EAAE,GAAG,CAAA;CAAE,CAAC,CAAA;AACzE,MAAM,WAAW,eAAe;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="node" />
2
+ declare const venomCleanNumber: (number: string, full?: boolean) => string;
3
+ declare const writeFilePromise: (pathQr: string, response: {
4
+ type: string;
5
+ data: Buffer;
6
+ }) => Promise<boolean>;
7
+ declare const notMatches: (matches: RegExpMatchArray | null) => boolean;
8
+ declare const venomGenerateImage: (base: string, name?: string) => Promise<void | Error>;
9
+ declare const venomDownloadMedia: (url: string) => Promise<string>;
10
+ declare const venomisValidNumber: (rawNumber: string) => boolean;
11
+ export { venomCleanNumber, venomGenerateImage, venomisValidNumber, venomDownloadMedia, writeFilePromise, notMatches };
12
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAMA,QAAA,MAAM,gBAAgB,WAAY,MAAM,SAAQ,OAAO,KAAW,MAIjE,CAAA;AAED,QAAA,MAAM,gBAAgB,WAAY,MAAM,YAAY;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAG,QAAQ,OAAO,CAOnG,CAAA;AAED,QAAA,MAAM,UAAU,YAAa,gBAAgB,GAAG,IAAI,KAAG,OAEtD,CAAA;AAED,QAAA,MAAM,kBAAkB,SAAgB,MAAM,SAAQ,MAAM,KAAc,QAAQ,IAAI,GAAG,KAAK,CAe7F,CAAA;AAED,QAAA,MAAM,kBAAkB,QAAS,MAAM,KAAG,QAAQ,MAAM,CAqBvD,CAAA;AAED,QAAA,MAAM,kBAAkB,cAAe,MAAM,KAAG,OAI/C,CAAA;AAED,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAA"}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@builderbot/provider-venom",
3
+ "version": "0.1.3-alpha.22",
4
+ "description": "Now I’m the model of a modern major general / The venerated Virginian veteran whose men are all / Lining up, to put me up on a pedestal / Writin’ letters to relatives / Embellishin’ my elegance and eloquence / But the elephant is in the room / The truth is in ya face when ya hear the British cannons go / BOOM",
5
+ "keywords": [],
6
+ "author": "Leifer Mendez <leifer33@gmail.com>",
7
+ "license": "ISC",
8
+ "main": "dist/index.cjs",
9
+ "types": "dist/index.d.ts",
10
+ "type": "module",
11
+ "files": [
12
+ "./dist/"
13
+ ],
14
+ "scripts": {
15
+ "build": "rimraf dist && rollup --config",
16
+ "test": "npx uvu -r tsm ./__tests__",
17
+ "test:coverage": "npx c8 npm run test"
18
+ },
19
+ "directories": {
20
+ "lib": "dist",
21
+ "test": "__tests__"
22
+ },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/codigoencasa/bot-whatsapp.git"
26
+ },
27
+ "bugs": {
28
+ "url": "https://github.com/codigoencasa/bot-whatsapp/issues"
29
+ },
30
+ "homepage": "https://github.com/codigoencasa/bot-whatsapp#readme",
31
+ "devDependencies": {
32
+ "@builderbot/bot": "^0.1.3-alpha.22",
33
+ "@rollup/plugin-commonjs": "^25.0.7",
34
+ "@rollup/plugin-json": "^6.1.0",
35
+ "@rollup/plugin-node-resolve": "^15.2.3",
36
+ "@types/body-parser": "^1.19.5",
37
+ "@types/mime-types": "^2.1.4",
38
+ "@types/node": "^20.11.5",
39
+ "@types/polka": "^0.5.7",
40
+ "@types/proxyquire": "^1.3.31",
41
+ "@types/qr-image": "^3.2.9",
42
+ "@types/sinon": "^17.0.3",
43
+ "mime-types": "^2.1.35",
44
+ "pino": "^8.17.2",
45
+ "proxyquire": "^2.1.3",
46
+ "qr-image": "^3.2.0",
47
+ "rimraf": "^5.0.5",
48
+ "rollup-plugin-typescript2": "^0.36.0",
49
+ "sino": "^0.0.3",
50
+ "sinon": "^17.0.1"
51
+ },
52
+ "dependencies": {
53
+ "body-parser": "^1.20.2",
54
+ "polka": "^0.5.2",
55
+ "venom-bot": "^5.0.21"
56
+ },
57
+ "gitHead": "e52a9fe13d30d65b650a54b6e116953c949b1158"
58
+ }