nestwhats 1.0.1 → 1.0.3

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.
Files changed (69) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/commands/command.discovery.d.ts +11 -0
  3. package/dist/commands/command.discovery.js +19 -0
  4. package/dist/commands/commands.module.d.ts +15 -0
  5. package/dist/commands/commands.module.js +71 -0
  6. package/dist/commands/commands.service.d.ts +8 -0
  7. package/dist/commands/commands.service.js +34 -0
  8. package/dist/commands/decorators/arguments.decorator.d.ts +2 -0
  9. package/dist/commands/decorators/arguments.decorator.js +14 -0
  10. package/dist/commands/decorators/command.decorator.d.ts +2 -0
  11. package/dist/commands/decorators/command.decorator.js +8 -0
  12. package/dist/commands/decorators/index.d.ts +2 -0
  13. package/dist/commands/decorators/index.js +18 -0
  14. package/dist/commands/index.d.ts +4 -0
  15. package/dist/commands/index.js +20 -0
  16. package/dist/context/decorators/context.decorator.d.ts +2 -0
  17. package/dist/context/decorators/context.decorator.js +7 -0
  18. package/dist/context/decorators/discovery.decorator.d.ts +1 -0
  19. package/dist/context/decorators/discovery.decorator.js +6 -0
  20. package/dist/context/decorators/index.d.ts +3 -0
  21. package/dist/context/decorators/index.js +19 -0
  22. package/dist/context/decorators/params.util.d.ts +3 -0
  23. package/dist/context/decorators/params.util.js +11 -0
  24. package/dist/context/index.d.ts +7 -0
  25. package/dist/context/index.js +23 -0
  26. package/dist/context/nestwhats-arguments-host.d.ts +13 -0
  27. package/dist/context/nestwhats-arguments-host.js +22 -0
  28. package/dist/context/nestwhats-base.discovery.d.ts +23 -0
  29. package/dist/context/nestwhats-base.discovery.js +36 -0
  30. package/dist/context/nestwhats-context.interface.d.ts +4 -0
  31. package/dist/context/nestwhats-context.interface.js +2 -0
  32. package/dist/context/nestwhats-execution-context.d.ts +6 -0
  33. package/dist/context/nestwhats-execution-context.js +13 -0
  34. package/dist/context/nestwhats-params.factory.d.ts +6 -0
  35. package/dist/context/nestwhats-params.factory.js +19 -0
  36. package/dist/context/nestwhats-paramtype.enum.d.ts +4 -0
  37. package/dist/context/nestwhats-paramtype.enum.js +8 -0
  38. package/dist/index.d.ts +8 -0
  39. package/dist/index.js +24 -0
  40. package/dist/listeners/decorators/index.d.ts +3 -0
  41. package/dist/listeners/decorators/index.js +19 -0
  42. package/dist/listeners/decorators/listener.decorator.d.ts +2 -0
  43. package/dist/listeners/decorators/listener.decorator.js +8 -0
  44. package/dist/listeners/decorators/on.decorator.d.ts +2 -0
  45. package/dist/listeners/decorators/on.decorator.js +6 -0
  46. package/dist/listeners/decorators/once.decorator.d.ts +2 -0
  47. package/dist/listeners/decorators/once.decorator.js +6 -0
  48. package/dist/listeners/index.d.ts +4 -0
  49. package/dist/listeners/index.js +20 -0
  50. package/dist/listeners/listener.discovery.d.ts +11 -0
  51. package/dist/listeners/listener.discovery.js +19 -0
  52. package/dist/listeners/listener.interface.d.ts +32 -0
  53. package/dist/listeners/listener.interface.js +2 -0
  54. package/dist/listeners/listeners.module.d.ts +10 -0
  55. package/dist/listeners/listeners.module.js +37 -0
  56. package/dist/nestwhats-explorer.service.d.ts +15 -0
  57. package/dist/nestwhats-explorer.service.js +66 -0
  58. package/dist/nestwhats-options.interface.d.ts +4 -0
  59. package/dist/nestwhats-options.interface.js +2 -0
  60. package/dist/nestwhats.module-definition.d.ts +2 -0
  61. package/dist/nestwhats.module-definition.js +9 -0
  62. package/dist/nestwhats.module.d.ts +11 -0
  63. package/dist/nestwhats.module.js +64 -0
  64. package/dist/providers/client.provider.d.ts +3 -0
  65. package/dist/providers/client.provider.js +10 -0
  66. package/dist/providers/index.d.ts +1 -0
  67. package/dist/providers/index.js +17 -0
  68. package/package.json +3 -4
  69. package/.release-it.json +0 -11
package/CHANGELOG.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ # [v1.0.1](https://github.com/NedcloarBR/NestWhats/commits/v1.0.0...v1.0.1) - (2025-02-01)
5
+
6
+ ## Bug Fixes
7
+
8
+ - Node engine ([56e41d4](https://github.com/NedcloarBR/NestWhats/commit/56e41d42cce4507a40f8373d67890b3ab6155535))
9
+
4
10
  # [v1.0.0](https://github.com/NedcloarBR/NestWhats/commits/v1.0.0) - (2025-02-01)
5
11
 
6
12
  ## Features
@@ -0,0 +1,11 @@
1
+ import { NestWhatsBaseDiscovery } from "../context";
2
+ export interface CommandMeta {
3
+ name: string;
4
+ description: string;
5
+ }
6
+ export declare class CommandDiscovery extends NestWhatsBaseDiscovery<CommandMeta> {
7
+ getName(): string;
8
+ getDescription(): string;
9
+ isCommand(): this is CommandDiscovery;
10
+ toJSON(): Record<string, any>;
11
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommandDiscovery = void 0;
4
+ const context_1 = require("../context");
5
+ class CommandDiscovery extends context_1.NestWhatsBaseDiscovery {
6
+ getName() {
7
+ return this.meta.name;
8
+ }
9
+ getDescription() {
10
+ return this.meta.description;
11
+ }
12
+ isCommand() {
13
+ return true;
14
+ }
15
+ toJSON() {
16
+ return this.meta;
17
+ }
18
+ }
19
+ exports.CommandDiscovery = CommandDiscovery;
@@ -0,0 +1,15 @@
1
+ import { OnApplicationBootstrap, OnModuleInit } from "@nestjs/common";
2
+ import { Client } from "whatsapp-web.js";
3
+ import { ExplorerService } from "../nestwhats-explorer.service";
4
+ import { NestWhatsModuleOptions } from "../nestwhats-options.interface";
5
+ import { CommandDiscovery } from "./command.discovery";
6
+ import { CommandsService } from "./commands.service";
7
+ export declare class CommandsModule implements OnModuleInit, OnApplicationBootstrap {
8
+ private readonly options;
9
+ private readonly client;
10
+ private readonly explorerService;
11
+ private readonly commandsService;
12
+ constructor(options: NestWhatsModuleOptions, client: Client, explorerService: ExplorerService<CommandDiscovery>, commandsService: CommandsService);
13
+ onModuleInit(): void;
14
+ onApplicationBootstrap(): Client;
15
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.CommandsModule = void 0;
25
+ const common_1 = require("@nestjs/common");
26
+ const whatsapp_web_js_1 = require("whatsapp-web.js");
27
+ const nestwhats_explorer_service_1 = require("../nestwhats-explorer.service");
28
+ const nestwhats_module_definition_1 = require("../nestwhats.module-definition");
29
+ const commands_service_1 = require("./commands.service");
30
+ const command_decorator_1 = require("./decorators/command.decorator");
31
+ let CommandsModule = class CommandsModule {
32
+ constructor(options, client, explorerService, commandsService) {
33
+ this.options = options;
34
+ this.client = client;
35
+ this.explorerService = explorerService;
36
+ this.commandsService = commandsService;
37
+ }
38
+ onModuleInit() {
39
+ return this.explorerService
40
+ .explore(command_decorator_1.Command.KEY)
41
+ .forEach((command) => this.commandsService.add(command));
42
+ }
43
+ onApplicationBootstrap() {
44
+ return this.client.on(whatsapp_web_js_1.Events.MESSAGE_CREATE, (message) => __awaiter(this, void 0, void 0, function* () {
45
+ var _a, _b, _c;
46
+ if (!((_a = message === null || message === void 0 ? void 0 : message.body) === null || _a === void 0 ? void 0 : _a.length))
47
+ return;
48
+ const content = message.body.toLowerCase();
49
+ const prefix = (_b = this.options.prefix) !== null && _b !== void 0 ? _b : "!";
50
+ if (!prefix || !content.startsWith(prefix))
51
+ return;
52
+ const args = content.substring(prefix.length).split(/ +/g);
53
+ const cmd = args.shift();
54
+ if (!cmd)
55
+ return;
56
+ return (_c = this.commandsService.get(cmd)) === null || _c === void 0 ? void 0 : _c.execute([message]);
57
+ }));
58
+ }
59
+ };
60
+ exports.CommandsModule = CommandsModule;
61
+ exports.CommandsModule = CommandsModule = __decorate([
62
+ (0, common_1.Global)(),
63
+ (0, common_1.Module)({
64
+ providers: [commands_service_1.CommandsService],
65
+ exports: [commands_service_1.CommandsService],
66
+ }),
67
+ __param(0, (0, common_1.Inject)(nestwhats_module_definition_1.NESTWHATS_MODULE_OPTIONS)),
68
+ __metadata("design:paramtypes", [Object, whatsapp_web_js_1.Client,
69
+ nestwhats_explorer_service_1.ExplorerService,
70
+ commands_service_1.CommandsService])
71
+ ], CommandsModule);
@@ -0,0 +1,8 @@
1
+ import { CommandDiscovery } from "./command.discovery";
2
+ export declare class CommandsService {
3
+ private readonly logger;
4
+ readonly cache: Map<string, CommandDiscovery>;
5
+ add(Command: CommandDiscovery): void;
6
+ get(name: string): CommandDiscovery;
7
+ remove(name: string): void;
8
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var CommandsService_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.CommandsService = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ let CommandsService = CommandsService_1 = class CommandsService {
13
+ constructor() {
14
+ this.logger = new common_1.Logger(CommandsService_1.name);
15
+ this.cache = new Map();
16
+ }
17
+ add(Command) {
18
+ const name = Command.getName();
19
+ if (this.cache.has(name)) {
20
+ this.logger.warn(`Command : ${name} already exists`);
21
+ }
22
+ this.cache.set(name, Command);
23
+ }
24
+ get(name) {
25
+ return this.cache.get(name);
26
+ }
27
+ remove(name) {
28
+ this.cache.delete(name);
29
+ }
30
+ };
31
+ exports.CommandsService = CommandsService;
32
+ exports.CommandsService = CommandsService = CommandsService_1 = __decorate([
33
+ (0, common_1.Injectable)()
34
+ ], CommandsService);
@@ -0,0 +1,2 @@
1
+ export declare const Arguments: (...dataOrPipes: any[]) => ParameterDecorator;
2
+ export declare const Args: (...dataOrPipes: any[]) => ParameterDecorator;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Args = exports.Arguments = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const context_1 = require("../../context");
6
+ exports.Arguments = (0, common_1.createParamDecorator)((_, context) => {
7
+ const moduleContext = context_1.NestWhatsExecutionContext.create(context);
8
+ const [message] = moduleContext.getContext();
9
+ const discovery = moduleContext.getDiscovery();
10
+ if (!discovery.isCommand())
11
+ return null;
12
+ return message.body.split(/ +/g).slice(1);
13
+ });
14
+ exports.Args = exports.Arguments;
@@ -0,0 +1,2 @@
1
+ import { CommandDiscovery, CommandMeta } from "../command.discovery";
2
+ export declare const Command: import("@nestjs/core").ReflectableDecorator<CommandMeta, CommandDiscovery>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Command = void 0;
4
+ const core_1 = require("@nestjs/core");
5
+ const command_discovery_1 = require("../command.discovery");
6
+ exports.Command = core_1.Reflector.createDecorator({
7
+ transform: (options) => new command_discovery_1.CommandDiscovery(options),
8
+ });
@@ -0,0 +1,2 @@
1
+ export * from "./arguments.decorator";
2
+ export * from "./command.decorator";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./arguments.decorator"), exports);
18
+ __exportStar(require("./command.decorator"), exports);
@@ -0,0 +1,4 @@
1
+ export * from "./decorators";
2
+ export * from "./command.discovery";
3
+ export * from "./commands.module";
4
+ export * from "./commands.service";
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./decorators"), exports);
18
+ __exportStar(require("./command.discovery"), exports);
19
+ __exportStar(require("./commands.module"), exports);
20
+ __exportStar(require("./commands.service"), exports);
@@ -0,0 +1,2 @@
1
+ export declare const Context: (...pipes: (import("@nestjs/common").Type<import("@nestjs/common").PipeTransform> | import("@nestjs/common").PipeTransform)[]) => ParameterDecorator;
2
+ export declare const Ctx: (...pipes: (import("@nestjs/common").Type<import("@nestjs/common").PipeTransform> | import("@nestjs/common").PipeTransform)[]) => ParameterDecorator;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Ctx = exports.Context = void 0;
4
+ const nestwhats_paramtype_enum_1 = require("../nestwhats-paramtype.enum");
5
+ const params_util_1 = require("./params.util");
6
+ exports.Context = (0, params_util_1.createNestWhatsParamDecorator)(nestwhats_paramtype_enum_1.NestWhatsParamType.CONTEXT);
7
+ exports.Ctx = exports.Context;
@@ -0,0 +1 @@
1
+ export declare const Discovery: (...pipes: (import("@nestjs/common").Type<import("@nestjs/common").PipeTransform> | import("@nestjs/common").PipeTransform)[]) => ParameterDecorator;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Discovery = void 0;
4
+ const nestwhats_paramtype_enum_1 = require("../nestwhats-paramtype.enum");
5
+ const params_util_1 = require("./params.util");
6
+ exports.Discovery = (0, params_util_1.createNestWhatsParamDecorator)(nestwhats_paramtype_enum_1.NestWhatsParamType.DISCOVERY);
@@ -0,0 +1,3 @@
1
+ export * from "./context.decorator";
2
+ export * from "./discovery.decorator";
3
+ export * from "./params.util";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./context.decorator"), exports);
18
+ __exportStar(require("./discovery.decorator"), exports);
19
+ __exportStar(require("./params.util"), exports);
@@ -0,0 +1,3 @@
1
+ import { PipeTransform, Type } from "@nestjs/common";
2
+ import { NestWhatsParamType } from "../nestwhats-paramtype.enum";
3
+ export declare function createNestWhatsParamDecorator(type: NestWhatsParamType): (...pipes: (Type<PipeTransform> | PipeTransform)[]) => ParameterDecorator;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createNestWhatsParamDecorator = createNestWhatsParamDecorator;
4
+ const common_1 = require("@nestjs/common");
5
+ const constants_1 = require("@nestjs/common/constants");
6
+ function createNestWhatsParamDecorator(type) {
7
+ return (...pipes) => (target, key, index) => {
8
+ const args = Reflect.getMetadata(constants_1.ROUTE_ARGS_METADATA, target.constructor, key) || {};
9
+ Reflect.defineMetadata(constants_1.ROUTE_ARGS_METADATA, (0, common_1.assignMetadata)(args, type, index, undefined, ...pipes), target.constructor, key);
10
+ };
11
+ }
@@ -0,0 +1,7 @@
1
+ export * from "./decorators";
2
+ export * from "./nestwhats-arguments-host";
3
+ export * from "./nestwhats-base.discovery";
4
+ export * from "./nestwhats-context.interface";
5
+ export * from "./nestwhats-execution-context";
6
+ export * from "./nestwhats-params.factory";
7
+ export * from "./nestwhats-paramtype.enum";
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./decorators"), exports);
18
+ __exportStar(require("./nestwhats-arguments-host"), exports);
19
+ __exportStar(require("./nestwhats-base.discovery"), exports);
20
+ __exportStar(require("./nestwhats-context.interface"), exports);
21
+ __exportStar(require("./nestwhats-execution-context"), exports);
22
+ __exportStar(require("./nestwhats-params.factory"), exports);
23
+ __exportStar(require("./nestwhats-paramtype.enum"), exports);
@@ -0,0 +1,13 @@
1
+ import { ArgumentsHost } from "@nestjs/common";
2
+ import { ExecutionContextHost } from "@nestjs/core/helpers/execution-context-host";
3
+ import { ClientEvents } from "../listeners";
4
+ import { NestWhatsBaseDiscovery } from "./nestwhats-base.discovery";
5
+ import { ContextOf } from "./nestwhats-context.interface";
6
+ import { NestWhatsContextType } from "./nestwhats-execution-context";
7
+ export declare class NestWhatsArgumentsHost extends ExecutionContextHost {
8
+ static create(context: ArgumentsHost): NestWhatsArgumentsHost;
9
+ getType<TContext extends string = NestWhatsContextType>(): TContext;
10
+ getContext<T extends keyof ClientEvents>(): ContextOf<T>;
11
+ getContext<T>(): T;
12
+ getDiscovery(): NestWhatsBaseDiscovery;
13
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NestWhatsArgumentsHost = void 0;
4
+ const execution_context_host_1 = require("@nestjs/core/helpers/execution-context-host");
5
+ class NestWhatsArgumentsHost extends execution_context_host_1.ExecutionContextHost {
6
+ static create(context) {
7
+ const type = context.getType();
8
+ const necContext = new NestWhatsArgumentsHost(context.getArgs());
9
+ necContext.setType(type);
10
+ return necContext;
11
+ }
12
+ getType() {
13
+ return super.getType();
14
+ }
15
+ getContext() {
16
+ return this.getArgByIndex(0);
17
+ }
18
+ getDiscovery() {
19
+ return this.getArgByIndex(1);
20
+ }
21
+ }
22
+ exports.NestWhatsArgumentsHost = NestWhatsArgumentsHost;
@@ -0,0 +1,23 @@
1
+ import { Reflector } from "@nestjs/core";
2
+ import { CommandDiscovery } from "../commands/command.discovery";
3
+ import { ListenerDiscovery } from "../listeners";
4
+ interface DiscoveredItem {
5
+ class: any;
6
+ handler?: (...args: any[]) => any;
7
+ }
8
+ export declare abstract class NestWhatsBaseDiscovery<T = any> {
9
+ protected readonly meta: T;
10
+ protected readonly reflector: Reflector;
11
+ protected discovery: DiscoveredItem;
12
+ protected contextCallback: Function;
13
+ constructor(meta: T);
14
+ getClass(): any;
15
+ getHandler(): (...args: any[]) => any;
16
+ setDiscoveryMeta(meta: DiscoveredItem): void;
17
+ setContextCallback(fn: Function): void;
18
+ execute(context?: any): any;
19
+ isListener(): this is ListenerDiscovery;
20
+ isCommand(): this is CommandDiscovery;
21
+ abstract toJSON(): Record<string, any>;
22
+ }
23
+ export {};
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NestWhatsBaseDiscovery = void 0;
4
+ const core_1 = require("@nestjs/core");
5
+ class NestWhatsBaseDiscovery {
6
+ constructor(meta) {
7
+ this.meta = meta;
8
+ this.reflector = new core_1.Reflector();
9
+ }
10
+ getClass() {
11
+ var _a;
12
+ return (_a = this.discovery) === null || _a === void 0 ? void 0 : _a.class;
13
+ }
14
+ getHandler() {
15
+ var _a;
16
+ return (_a = this.discovery) === null || _a === void 0 ? void 0 : _a.handler;
17
+ }
18
+ setDiscoveryMeta(meta) {
19
+ var _a;
20
+ (_a = this.discovery) !== null && _a !== void 0 ? _a : (this.discovery = meta);
21
+ }
22
+ setContextCallback(fn) {
23
+ var _a;
24
+ (_a = this.contextCallback) !== null && _a !== void 0 ? _a : (this.contextCallback = fn);
25
+ }
26
+ execute(context = []) {
27
+ return this.contextCallback(context, this);
28
+ }
29
+ isListener() {
30
+ return false;
31
+ }
32
+ isCommand() {
33
+ return false;
34
+ }
35
+ }
36
+ exports.NestWhatsBaseDiscovery = NestWhatsBaseDiscovery;
@@ -0,0 +1,4 @@
1
+ import { Message } from "whatsapp-web.js";
2
+ import { NestWhatsEvents } from "../listeners/listener.interface";
3
+ export type CommandContext = [Message];
4
+ export type ContextOf<K extends keyof E, E = NestWhatsEvents> = E[K];
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ import { ContextType, ExecutionContext } from "@nestjs/common";
2
+ import { NestWhatsArgumentsHost } from "./nestwhats-arguments-host";
3
+ export type NestWhatsContextType = "nestwhats" | ContextType;
4
+ export declare class NestWhatsExecutionContext extends NestWhatsArgumentsHost {
5
+ static create(context: ExecutionContext): NestWhatsExecutionContext;
6
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NestWhatsExecutionContext = void 0;
4
+ const nestwhats_arguments_host_1 = require("./nestwhats-arguments-host");
5
+ class NestWhatsExecutionContext extends nestwhats_arguments_host_1.NestWhatsArgumentsHost {
6
+ static create(context) {
7
+ const type = context.getType();
8
+ const moduleContext = new NestWhatsExecutionContext(context.getArgs(), context.getClass(), context.getHandler());
9
+ moduleContext.setType(type);
10
+ return moduleContext;
11
+ }
12
+ }
13
+ exports.NestWhatsExecutionContext = NestWhatsExecutionContext;
@@ -0,0 +1,6 @@
1
+ import { ParamData } from "@nestjs/common";
2
+ import { ParamsFactory } from "@nestjs/core/helpers/external-context-creator";
3
+ import { NestWhatsBaseDiscovery } from "./nestwhats-base.discovery";
4
+ export declare class NestWhatsParamsFactory implements ParamsFactory {
5
+ exchangeKeyForValue(type: number, data: ParamData, args: [Array<any>, NestWhatsBaseDiscovery]): any;
6
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NestWhatsParamsFactory = void 0;
4
+ const nestwhats_paramtype_enum_1 = require("./nestwhats-paramtype.enum");
5
+ class NestWhatsParamsFactory {
6
+ exchangeKeyForValue(type, data, args) {
7
+ if (!args)
8
+ return null;
9
+ switch (type) {
10
+ case nestwhats_paramtype_enum_1.NestWhatsParamType.CONTEXT:
11
+ return args[0];
12
+ case nestwhats_paramtype_enum_1.NestWhatsParamType.DISCOVERY:
13
+ return args[1];
14
+ default:
15
+ return null;
16
+ }
17
+ }
18
+ }
19
+ exports.NestWhatsParamsFactory = NestWhatsParamsFactory;
@@ -0,0 +1,4 @@
1
+ export declare enum NestWhatsParamType {
2
+ CONTEXT = 0,
3
+ DISCOVERY = 1
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NestWhatsParamType = void 0;
4
+ var NestWhatsParamType;
5
+ (function (NestWhatsParamType) {
6
+ NestWhatsParamType[NestWhatsParamType["CONTEXT"] = 0] = "CONTEXT";
7
+ NestWhatsParamType[NestWhatsParamType["DISCOVERY"] = 1] = "DISCOVERY";
8
+ })(NestWhatsParamType || (exports.NestWhatsParamType = NestWhatsParamType = {}));
@@ -0,0 +1,8 @@
1
+ export * from "./commands";
2
+ export * from "./context";
3
+ export * from "./listeners";
4
+ export * from "./providers";
5
+ export * from "./nestwhats-explorer.service";
6
+ export * from "./nestwhats-options.interface";
7
+ export * from "./nestwhats.module-definition";
8
+ export * from "./nestwhats.module";
package/dist/index.js ADDED
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./commands"), exports);
18
+ __exportStar(require("./context"), exports);
19
+ __exportStar(require("./listeners"), exports);
20
+ __exportStar(require("./providers"), exports);
21
+ __exportStar(require("./nestwhats-explorer.service"), exports);
22
+ __exportStar(require("./nestwhats-options.interface"), exports);
23
+ __exportStar(require("./nestwhats.module-definition"), exports);
24
+ __exportStar(require("./nestwhats.module"), exports);
@@ -0,0 +1,3 @@
1
+ export * from "./listener.decorator";
2
+ export * from "./on.decorator";
3
+ export * from "./once.decorator";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./listener.decorator"), exports);
18
+ __exportStar(require("./on.decorator"), exports);
19
+ __exportStar(require("./once.decorator"), exports);
@@ -0,0 +1,2 @@
1
+ import { ListenerDiscovery, ListenerMeta } from "../listener.discovery";
2
+ export declare const Listener: import("@nestjs/core").ReflectableDecorator<ListenerMeta, ListenerDiscovery>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Listener = void 0;
4
+ const core_1 = require("@nestjs/core");
5
+ const listener_discovery_1 = require("../listener.discovery");
6
+ exports.Listener = core_1.Reflector.createDecorator({
7
+ transform: (options) => new listener_discovery_1.ListenerDiscovery(options),
8
+ });
@@ -0,0 +1,2 @@
1
+ import { NestWhatsEvents } from "../listener.interface";
2
+ export declare const On: <K extends keyof E, E = import("../listener.interface").ClientEvents>(event: K) => import("@nestjs/common").CustomDecorator;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.On = void 0;
4
+ const listener_decorator_1 = require("./listener.decorator");
5
+ const On = (event) => (0, listener_decorator_1.Listener)({ type: "on", event });
6
+ exports.On = On;
@@ -0,0 +1,2 @@
1
+ import { NestWhatsEvents } from "../listener.interface";
2
+ export declare const Once: <K extends keyof E, E = import("../listener.interface").ClientEvents>(event: K) => import("@nestjs/common").CustomDecorator;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Once = void 0;
4
+ const listener_decorator_1 = require("./listener.decorator");
5
+ const Once = (event) => (0, listener_decorator_1.Listener)({ type: "once", event });
6
+ exports.Once = Once;
@@ -0,0 +1,4 @@
1
+ export * from "./decorators";
2
+ export * from "./listener.discovery";
3
+ export * from "./listener.interface";
4
+ export * from "./listeners.module";
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./decorators"), exports);
18
+ __exportStar(require("./listener.discovery"), exports);
19
+ __exportStar(require("./listener.interface"), exports);
20
+ __exportStar(require("./listeners.module"), exports);
@@ -0,0 +1,11 @@
1
+ import { NestWhatsBaseDiscovery } from "../context";
2
+ export interface ListenerMeta {
3
+ type: "once" | "on";
4
+ event: string | symbol | number;
5
+ }
6
+ export declare class ListenerDiscovery extends NestWhatsBaseDiscovery<ListenerMeta> {
7
+ getType(): "once" | "on";
8
+ getEvent(): string;
9
+ isListener(): this is ListenerDiscovery;
10
+ toJSON(): Record<string, any>;
11
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListenerDiscovery = void 0;
4
+ const context_1 = require("../context");
5
+ class ListenerDiscovery extends context_1.NestWhatsBaseDiscovery {
6
+ getType() {
7
+ return this.meta.type;
8
+ }
9
+ getEvent() {
10
+ return this.meta.event.toString();
11
+ }
12
+ isListener() {
13
+ return true;
14
+ }
15
+ toJSON() {
16
+ return this.meta;
17
+ }
18
+ }
19
+ exports.ListenerDiscovery = ListenerDiscovery;
@@ -0,0 +1,32 @@
1
+ import { BatteryInfo, Call, GroupNotification, Message, MessageAck, WAState } from "whatsapp-web.js";
2
+ export interface ClientEvents {
3
+ auth_failure: [message: string];
4
+ authenticated: any;
5
+ change_battery: [batteryInfo: BatteryInfo];
6
+ call: [call: Call];
7
+ contact_changed: [
8
+ message: Message,
9
+ oldId: string,
10
+ newId: string,
11
+ isContact: string
12
+ ];
13
+ disconnected: [reason: WAState | "LOGOUT"];
14
+ group_admin_changed: [notification: GroupNotification];
15
+ group_join: [notification: GroupNotification];
16
+ group_leave: [notification: GroupNotification];
17
+ group_membership_request: [notification: GroupNotification];
18
+ group_update: [notification: GroupNotification];
19
+ loading_screen: any;
20
+ media_uploaded: [message: Message];
21
+ message_ack: [message: Message, ack: MessageAck];
22
+ message_ciphertext: [message: Message];
23
+ message_create: [message: Message];
24
+ message_edit: [message: Message, newBody: string, prevBody: string];
25
+ message: [message: Message];
26
+ message_revoke_everyone: [message: Message, revoked_msg: Message];
27
+ message_revoke_me: [message: Message];
28
+ qr: [qr: string];
29
+ ready: any;
30
+ remote_session_saved: any;
31
+ }
32
+ export type NestWhatsEvents = ClientEvents;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ import { OnModuleInit } from "@nestjs/common";
2
+ import { Client } from "whatsapp-web.js";
3
+ import { ExplorerService } from "../nestwhats-explorer.service";
4
+ import { ListenerDiscovery } from "./listener.discovery";
5
+ export declare class ListenersModule implements OnModuleInit {
6
+ private readonly client;
7
+ private readonly explorerService;
8
+ constructor(client: Client, explorerService: ExplorerService<ListenerDiscovery>);
9
+ onModuleInit(): void;
10
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ListenersModule = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@nestjs/core");
15
+ const whatsapp_web_js_1 = require("whatsapp-web.js");
16
+ const nestwhats_explorer_service_1 = require("../nestwhats-explorer.service");
17
+ const decorators_1 = require("./decorators");
18
+ let ListenersModule = class ListenersModule {
19
+ constructor(client, explorerService) {
20
+ this.client = client;
21
+ this.explorerService = explorerService;
22
+ }
23
+ onModuleInit() {
24
+ return this.explorerService
25
+ .explore(decorators_1.Listener.KEY)
26
+ .forEach((listener) => this.client[listener.getType()](listener.getEvent(), (...args) => listener.execute(args)));
27
+ }
28
+ };
29
+ exports.ListenersModule = ListenersModule;
30
+ exports.ListenersModule = ListenersModule = __decorate([
31
+ (0, common_1.Global)(),
32
+ (0, common_1.Module)({
33
+ imports: [core_1.DiscoveryModule],
34
+ }),
35
+ __metadata("design:paramtypes", [whatsapp_web_js_1.Client,
36
+ nestwhats_explorer_service_1.ExplorerService])
37
+ ], ListenersModule);
@@ -0,0 +1,15 @@
1
+ import { DiscoveryService, MetadataScanner, Reflector } from "@nestjs/core";
2
+ import { ExternalContextCreator } from "@nestjs/core/helpers/external-context-creator";
3
+ import { NestWhatsBaseDiscovery } from "./context";
4
+ export declare class ExplorerService<T extends NestWhatsBaseDiscovery> extends Reflector {
5
+ private readonly discoveryService;
6
+ private readonly externalContextCreator;
7
+ private readonly metadataScanner;
8
+ private readonly moduleParamsFactory;
9
+ private readonly wrappers;
10
+ constructor(discoveryService: DiscoveryService, externalContextCreator: ExternalContextCreator, metadataScanner: MetadataScanner);
11
+ explore(metadataKey: string): T[];
12
+ private flatMap;
13
+ private filterProperties;
14
+ private createContextCallback;
15
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ExplorerService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const constants_1 = require("@nestjs/common/constants");
15
+ const core_1 = require("@nestjs/core");
16
+ const external_context_creator_1 = require("@nestjs/core/helpers/external-context-creator");
17
+ const constants_2 = require("@nestjs/core/injector/constants");
18
+ const context_1 = require("./context");
19
+ let ExplorerService = class ExplorerService extends core_1.Reflector {
20
+ constructor(discoveryService, externalContextCreator, metadataScanner) {
21
+ super();
22
+ this.discoveryService = discoveryService;
23
+ this.externalContextCreator = externalContextCreator;
24
+ this.metadataScanner = metadataScanner;
25
+ this.moduleParamsFactory = new context_1.NestWhatsParamsFactory();
26
+ this.wrappers = this.discoveryService
27
+ .getProviders()
28
+ .filter((wrapper) => {
29
+ const { instance } = wrapper;
30
+ const prototype = instance ? Object.getPrototypeOf(instance) : null;
31
+ return instance && prototype && wrapper.isDependencyTreeStatic();
32
+ });
33
+ }
34
+ explore(metadataKey) {
35
+ return this.flatMap((wrapper) => this.filterProperties(wrapper, metadataKey));
36
+ }
37
+ flatMap(callback) {
38
+ return this.wrappers.flatMap(callback).filter(Boolean);
39
+ }
40
+ filterProperties({ instance }, metadataKey) {
41
+ const prototype = Object.getPrototypeOf(instance);
42
+ return this.metadataScanner
43
+ .getAllMethodNames(prototype)
44
+ .map((methodName) => {
45
+ const item = this.get(metadataKey, instance[methodName]);
46
+ if (!item)
47
+ return;
48
+ item.setDiscoveryMeta({
49
+ class: instance.constructor,
50
+ handler: instance[methodName],
51
+ });
52
+ item.setContextCallback(this.createContextCallback(instance, prototype, methodName));
53
+ return item;
54
+ });
55
+ }
56
+ createContextCallback(instance, prototype, methodName) {
57
+ return this.externalContextCreator.create(instance, prototype[methodName], methodName, constants_1.ROUTE_ARGS_METADATA, this.moduleParamsFactory, constants_2.STATIC_CONTEXT, undefined, { guards: true, filters: true, interceptors: true }, "nestwhats");
58
+ }
59
+ };
60
+ exports.ExplorerService = ExplorerService;
61
+ exports.ExplorerService = ExplorerService = __decorate([
62
+ (0, common_1.Injectable)(),
63
+ __metadata("design:paramtypes", [core_1.DiscoveryService,
64
+ external_context_creator_1.ExternalContextCreator,
65
+ core_1.MetadataScanner])
66
+ ], ExplorerService);
@@ -0,0 +1,4 @@
1
+ import { ClientOptions } from "whatsapp-web.js";
2
+ export interface NestWhatsModuleOptions extends ClientOptions {
3
+ prefix?: string;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ import { NestWhatsModuleOptions } from "./nestwhats-options.interface";
2
+ export declare const ConfigurableModuleClass: import("@nestjs/common").ConfigurableModuleCls<NestWhatsModuleOptions, "forRoot", "createNestWhatsOptions", {}>, NESTWHATS_MODULE_OPTIONS: string | symbol, OPTIONS_TYPE: NestWhatsModuleOptions & Partial<{}>, ASYNC_OPTIONS_TYPE: import("@nestjs/common").ConfigurableModuleAsyncOptions<NestWhatsModuleOptions, "createNestWhatsOptions"> & Partial<{}>;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ASYNC_OPTIONS_TYPE = exports.OPTIONS_TYPE = exports.NESTWHATS_MODULE_OPTIONS = exports.ConfigurableModuleClass = void 0;
5
+ const common_1 = require("@nestjs/common");
6
+ _a = new common_1.ConfigurableModuleBuilder()
7
+ .setClassMethodName("forRoot")
8
+ .setFactoryMethodName("createNestWhatsOptions")
9
+ .build(), exports.ConfigurableModuleClass = _a.ConfigurableModuleClass, exports.NESTWHATS_MODULE_OPTIONS = _a.MODULE_OPTIONS_TOKEN, exports.OPTIONS_TYPE = _a.OPTIONS_TYPE, exports.ASYNC_OPTIONS_TYPE = _a.ASYNC_OPTIONS_TYPE;
@@ -0,0 +1,11 @@
1
+ import { OnApplicationBootstrap, OnApplicationShutdown, OnModuleInit } from "@nestjs/common";
2
+ import { Client } from "whatsapp-web.js";
3
+ import { ConfigurableModuleClass } from "./nestwhats.module-definition";
4
+ export declare class NestWhatsModule extends ConfigurableModuleClass implements OnApplicationBootstrap, OnApplicationShutdown, OnModuleInit {
5
+ private readonly client;
6
+ private readonly logger;
7
+ constructor(client: Client);
8
+ onApplicationBootstrap(): void;
9
+ onApplicationShutdown(signal?: string): void;
10
+ onModuleInit(): void;
11
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var NestWhatsModule_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.NestWhatsModule = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const core_1 = require("@nestjs/core");
16
+ const qrcode_1 = require("qrcode");
17
+ const whatsapp_web_js_1 = require("whatsapp-web.js");
18
+ const commands_module_1 = require("./commands/commands.module");
19
+ const listeners_1 = require("./listeners");
20
+ const nestwhats_explorer_service_1 = require("./nestwhats-explorer.service");
21
+ const nestwhats_module_definition_1 = require("./nestwhats.module-definition");
22
+ const ProvidersMap = require("./providers");
23
+ const Providers = Object.values(ProvidersMap);
24
+ let NestWhatsModule = NestWhatsModule_1 = class NestWhatsModule extends nestwhats_module_definition_1.ConfigurableModuleClass {
25
+ constructor(client) {
26
+ super();
27
+ this.client = client;
28
+ this.logger = new common_1.Logger(NestWhatsModule_1.name);
29
+ }
30
+ onApplicationBootstrap() {
31
+ this.client.initialize();
32
+ }
33
+ onApplicationShutdown(signal) {
34
+ this.client.destroy();
35
+ }
36
+ onModuleInit() {
37
+ this.client.once(whatsapp_web_js_1.Events.QR_RECEIVED, (qr) => {
38
+ (0, qrcode_1.toString)(qr, { type: "terminal", small: true }, (err, url) => {
39
+ if (err) {
40
+ this.logger.error(`Error generating QR code: ${err.message}`);
41
+ return;
42
+ }
43
+ this.logger.verbose("Scan the QR code below to authenticate:");
44
+ console.log(url);
45
+ });
46
+ });
47
+ }
48
+ };
49
+ exports.NestWhatsModule = NestWhatsModule;
50
+ exports.NestWhatsModule = NestWhatsModule = NestWhatsModule_1 = __decorate([
51
+ (0, common_1.Global)(),
52
+ (0, common_1.Module)({
53
+ imports: [core_1.DiscoveryModule, listeners_1.ListenersModule, commands_module_1.CommandsModule],
54
+ providers: [nestwhats_explorer_service_1.ExplorerService, ...Providers],
55
+ exports: [
56
+ listeners_1.ListenersModule,
57
+ commands_module_1.CommandsModule,
58
+ nestwhats_explorer_service_1.ExplorerService,
59
+ ...Providers,
60
+ nestwhats_module_definition_1.NESTWHATS_MODULE_OPTIONS,
61
+ ],
62
+ }),
63
+ __metadata("design:paramtypes", [whatsapp_web_js_1.Client])
64
+ ], NestWhatsModule);
@@ -0,0 +1,3 @@
1
+ import { Provider } from "@nestjs/common";
2
+ import { Client } from "whatsapp-web.js";
3
+ export declare const ClientProvider: Provider<Client>;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientProvider = void 0;
4
+ const whatsapp_web_js_1 = require("whatsapp-web.js");
5
+ const nestwhats_module_definition_1 = require("../nestwhats.module-definition");
6
+ exports.ClientProvider = {
7
+ provide: whatsapp_web_js_1.Client,
8
+ useFactory: (options) => new whatsapp_web_js_1.Client(options),
9
+ inject: [nestwhats_module_definition_1.NESTWHATS_MODULE_OPTIONS],
10
+ };
@@ -0,0 +1 @@
1
+ export * from "./client.provider";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./client.provider"), exports);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nestwhats",
3
3
  "description": "A whatsapp-web.js wrapper for NestJS to create WhatsApp bots",
4
- "version": "1.0.1",
4
+ "version": "1.0.3",
5
5
  "author": {
6
6
  "name": "Miguel Alexandre Uhlein",
7
7
  "email": "nedcloar1@hotmail.com"
@@ -38,12 +38,11 @@
38
38
  "scripts": {
39
39
  "build": "rimraf dist && tsc -p tsconfig.build.json",
40
40
  "changelog": "git cliff --prepend ./CHANGELOG.md -l --current -c ./cliff.toml -r .",
41
- "prepublish:npm": "yarn build",
42
- "publish:npm": "release-it",
41
+ "publish:npm": "yarn build && release-it",
43
42
  "format": "yarn biome format --write ./",
44
43
  "lint": "yarn biome lint ./",
45
44
  "check": "yarn biome check --write ./",
46
- "postinstall": "husky"
45
+ "prepare": "husky"
47
46
  },
48
47
  "dependencies": {
49
48
  "path-to-regexp": "8.2.0",
package/.release-it.json DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "git": {
3
- "commitMessage": "chore: release v${version}"
4
- },
5
- "github": {
6
- "release": true
7
- },
8
- "hooks": {
9
- "after:git:release": "yarn changelog"
10
- }
11
- }