nestwhats 1.0.2 → 1.1.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.
Files changed (102) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +3 -2
  3. package/dist/commands/command.discovery.d.ts +13 -0
  4. package/dist/commands/command.discovery.js +23 -0
  5. package/dist/commands/commands.module.d.ts +15 -0
  6. package/dist/commands/commands.module.js +71 -0
  7. package/dist/commands/commands.service.d.ts +8 -0
  8. package/dist/commands/commands.service.js +46 -0
  9. package/dist/commands/decorators/arg-index.decorator.d.ts +10 -0
  10. package/dist/commands/decorators/arg-index.decorator.js +12 -0
  11. package/dist/commands/decorators/arguments.decorator.d.ts +4 -0
  12. package/dist/commands/decorators/arguments.decorator.js +19 -0
  13. package/dist/commands/decorators/author.decorator.d.ts +1 -0
  14. package/dist/commands/decorators/author.decorator.js +20 -0
  15. package/dist/commands/decorators/chat.decorator.d.ts +1 -0
  16. package/dist/commands/decorators/chat.decorator.js +20 -0
  17. package/dist/commands/decorators/command.decorator.d.ts +2 -0
  18. package/dist/commands/decorators/command.decorator.js +8 -0
  19. package/dist/commands/decorators/index.d.ts +6 -0
  20. package/dist/commands/decorators/index.js +22 -0
  21. package/dist/commands/decorators/message.decorator.d.ts +2 -0
  22. package/dist/commands/decorators/message.decorator.js +11 -0
  23. package/dist/commands/exceptions/command-args.exception.d.ts +5 -0
  24. package/dist/commands/exceptions/command-args.exception.js +12 -0
  25. package/dist/commands/exceptions/index.d.ts +1 -0
  26. package/dist/commands/exceptions/index.js +17 -0
  27. package/dist/commands/index.d.ts +6 -0
  28. package/dist/commands/index.js +22 -0
  29. package/dist/commands/pipes/index.d.ts +1 -0
  30. package/dist/commands/pipes/index.js +17 -0
  31. package/dist/commands/pipes/parse-args.pipe.d.ts +6 -0
  32. package/dist/commands/pipes/parse-args.pipe.js +58 -0
  33. package/dist/context/decorators/context.decorator.d.ts +2 -0
  34. package/dist/context/decorators/context.decorator.js +7 -0
  35. package/dist/context/decorators/discovery.decorator.d.ts +1 -0
  36. package/dist/context/decorators/discovery.decorator.js +6 -0
  37. package/dist/context/decorators/index.d.ts +3 -0
  38. package/dist/context/decorators/index.js +19 -0
  39. package/dist/context/decorators/params.util.d.ts +3 -0
  40. package/dist/context/decorators/params.util.js +11 -0
  41. package/dist/context/index.d.ts +7 -0
  42. package/dist/context/index.js +23 -0
  43. package/dist/context/nestwhats-arguments-host.d.ts +13 -0
  44. package/dist/context/nestwhats-arguments-host.js +22 -0
  45. package/dist/context/nestwhats-base.discovery.d.ts +23 -0
  46. package/dist/context/nestwhats-base.discovery.js +36 -0
  47. package/dist/context/nestwhats-context.interface.d.ts +4 -0
  48. package/dist/context/nestwhats-context.interface.js +2 -0
  49. package/dist/context/nestwhats-execution-context.d.ts +6 -0
  50. package/dist/context/nestwhats-execution-context.js +13 -0
  51. package/dist/context/nestwhats-params.factory.d.ts +6 -0
  52. package/dist/context/nestwhats-params.factory.js +19 -0
  53. package/dist/context/nestwhats-paramtype.enum.d.ts +4 -0
  54. package/dist/context/nestwhats-paramtype.enum.js +8 -0
  55. package/dist/filters/index.d.ts +1 -0
  56. package/dist/filters/index.js +17 -0
  57. package/dist/filters/nestwhats-exception-filter.interface.d.ts +3 -0
  58. package/dist/filters/nestwhats-exception-filter.interface.js +2 -0
  59. package/dist/guards/dm-only.guard.d.ts +5 -0
  60. package/dist/guards/dm-only.guard.js +34 -0
  61. package/dist/guards/from-me.guard.d.ts +5 -0
  62. package/dist/guards/from-me.guard.js +22 -0
  63. package/dist/guards/group-only.guard.d.ts +5 -0
  64. package/dist/guards/group-only.guard.js +34 -0
  65. package/dist/guards/index.d.ts +5 -0
  66. package/dist/guards/index.js +21 -0
  67. package/dist/guards/is-admin.guard.d.ts +5 -0
  68. package/dist/guards/is-admin.guard.js +39 -0
  69. package/dist/guards/nestwhats-guard.interface.d.ts +3 -0
  70. package/dist/guards/nestwhats-guard.interface.js +2 -0
  71. package/dist/index.d.ts +10 -0
  72. package/dist/index.js +26 -0
  73. package/dist/listeners/decorators/index.d.ts +3 -0
  74. package/dist/listeners/decorators/index.js +19 -0
  75. package/dist/listeners/decorators/listener.decorator.d.ts +2 -0
  76. package/dist/listeners/decorators/listener.decorator.js +8 -0
  77. package/dist/listeners/decorators/on.decorator.d.ts +2 -0
  78. package/dist/listeners/decorators/on.decorator.js +6 -0
  79. package/dist/listeners/decorators/once.decorator.d.ts +2 -0
  80. package/dist/listeners/decorators/once.decorator.js +6 -0
  81. package/dist/listeners/index.d.ts +4 -0
  82. package/dist/listeners/index.js +20 -0
  83. package/dist/listeners/listener.discovery.d.ts +11 -0
  84. package/dist/listeners/listener.discovery.js +19 -0
  85. package/dist/listeners/listener.interface.d.ts +41 -0
  86. package/dist/listeners/listener.interface.js +2 -0
  87. package/dist/listeners/listeners.module.d.ts +10 -0
  88. package/dist/listeners/listeners.module.js +37 -0
  89. package/dist/nestwhats-explorer.service.d.ts +15 -0
  90. package/dist/nestwhats-explorer.service.js +66 -0
  91. package/dist/nestwhats-options.interface.d.ts +4 -0
  92. package/dist/nestwhats-options.interface.js +2 -0
  93. package/dist/nestwhats.module-definition.d.ts +2 -0
  94. package/dist/nestwhats.module-definition.js +9 -0
  95. package/dist/nestwhats.module.d.ts +11 -0
  96. package/dist/nestwhats.module.js +64 -0
  97. package/dist/providers/client.provider.d.ts +3 -0
  98. package/dist/providers/client.provider.js +10 -0
  99. package/dist/providers/index.d.ts +1 -0
  100. package/dist/providers/index.js +17 -0
  101. package/package.json +28 -18
  102. package/.release-it.json +0 -11
package/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ # [v1.0.3](https://github.com/NedcloarBR/NestWhats/compare/v1.0.2...v1.0.3) - (2025-02-01)
5
+
6
+ ## Bug Fixes
7
+
8
+ - Build script ([8193216](https://github.com/NedcloarBR/NestWhats/commit/8193216d55b50280de54b36e05fa17e86b7c86d9))
9
+
10
+ # [v1.0.2](https://github.com/NedcloarBR/NestWhats/compare/v1.0.1...v1.0.2) - (2025-02-01)
11
+
12
+ ## Bug Fixes
13
+
14
+ - Move husky from postinstall to prepare
15
+
4
16
  # [v1.0.1](https://github.com/NedcloarBR/NestWhats/commits/v1.0.0...v1.0.1) - (2025-02-01)
5
17
 
6
18
  ## Bug Fixes
package/README.md CHANGED
@@ -72,9 +72,10 @@ export class AppUpdate {
72
72
  public constructor(private readonly client: Client) {}
73
73
 
74
74
  @Once("ready")
75
- public onReady(@Context() [client]: ContextOf<'ready'>) {
76
- this.logger.log(`Bot logged in as ${client.info.pushname}`);
75
+ public onReady() {
76
+ this.logger.log(`Bot logged in as ${this.client.info.pushname}`);
77
77
  }
78
+
78
79
  @On("message_create")
79
80
  public onWarn(@Context() [message]: ContextOf<'message_create'>) {
80
81
  this.logger.log(message);
@@ -0,0 +1,13 @@
1
+ import { NestWhatsBaseDiscovery } from "../context";
2
+ export interface CommandMeta {
3
+ name: string;
4
+ description: string;
5
+ aliases?: string[];
6
+ }
7
+ export declare class CommandDiscovery extends NestWhatsBaseDiscovery<CommandMeta> {
8
+ getName(): string;
9
+ getDescription(): string;
10
+ getAliases(): string[];
11
+ isCommand(): this is CommandDiscovery;
12
+ toJSON(): Record<string, any>;
13
+ }
@@ -0,0 +1,23 @@
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
+ getAliases() {
13
+ var _a;
14
+ return (_a = this.meta.aliases) !== null && _a !== void 0 ? _a : [];
15
+ }
16
+ isCommand() {
17
+ return true;
18
+ }
19
+ toJSON() {
20
+ return this.meta;
21
+ }
22
+ }
23
+ 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,46 @@
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
+ for (const alias of command.getAliases()) {
24
+ if (this.cache.has(alias)) {
25
+ this.logger.warn(`Command alias: ${alias} already exists`);
26
+ }
27
+ this.cache.set(alias, command);
28
+ }
29
+ }
30
+ get(name) {
31
+ return this.cache.get(name);
32
+ }
33
+ remove(name) {
34
+ const command = this.cache.get(name);
35
+ if (!command)
36
+ return;
37
+ this.cache.delete(name);
38
+ for (const alias of command.getAliases()) {
39
+ this.cache.delete(alias);
40
+ }
41
+ }
42
+ };
43
+ exports.CommandsService = CommandsService;
44
+ exports.CommandsService = CommandsService = CommandsService_1 = __decorate([
45
+ (0, common_1.Injectable)()
46
+ ], CommandsService);
@@ -0,0 +1,10 @@
1
+ export declare const ARG_INDEX_METADATA: unique symbol;
2
+ export interface ArgIndexOptions {
3
+ rest?: boolean;
4
+ }
5
+ export interface ArgIndexMeta {
6
+ propertyKey: string;
7
+ index: number;
8
+ options?: ArgIndexOptions;
9
+ }
10
+ export declare function ArgIndex(index: number, options?: ArgIndexOptions): PropertyDecorator;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ARG_INDEX_METADATA = void 0;
4
+ exports.ArgIndex = ArgIndex;
5
+ exports.ARG_INDEX_METADATA = Symbol("nestwhats::arg_index");
6
+ function ArgIndex(index, options) {
7
+ return (target, propertyKey) => {
8
+ var _a;
9
+ const existing = (_a = Reflect.getMetadata(exports.ARG_INDEX_METADATA, target)) !== null && _a !== void 0 ? _a : [];
10
+ Reflect.defineMetadata(exports.ARG_INDEX_METADATA, [...existing, { propertyKey: String(propertyKey), index, options }], target);
11
+ };
12
+ }
@@ -0,0 +1,4 @@
1
+ import { Type } from "@nestjs/common";
2
+ export declare const Arguments: (...dataOrPipes: (number | import("@nestjs/common").PipeTransform<any, any> | Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
3
+ export declare const Args: (...dataOrPipes: (number | import("@nestjs/common").PipeTransform<any, any> | Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
4
+ export declare const ParseArgs: <T extends object>(dto: Type<T>) => ParameterDecorator;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParseArgs = exports.Args = exports.Arguments = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const context_1 = require("../../context");
6
+ const parse_args_pipe_1 = require("../pipes/parse-args.pipe");
7
+ exports.Arguments = (0, common_1.createParamDecorator)((index, context) => {
8
+ var _a;
9
+ const moduleContext = context_1.NestWhatsExecutionContext.create(context);
10
+ const [message] = moduleContext.getContext();
11
+ const discovery = moduleContext.getDiscovery();
12
+ if (!discovery.isCommand())
13
+ return null;
14
+ const args = message.body.split(/ +/g).slice(1);
15
+ return index !== undefined ? ((_a = args[index]) !== null && _a !== void 0 ? _a : null) : args;
16
+ });
17
+ exports.Args = exports.Arguments;
18
+ const ParseArgs = (dto) => (0, exports.Args)(new parse_args_pipe_1.ParseArgsPipe(dto));
19
+ exports.ParseArgs = ParseArgs;
@@ -0,0 +1 @@
1
+ export declare const Author: (...dataOrPipes: unknown[]) => ParameterDecorator;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Author = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const context_1 = require("../../context");
15
+ exports.Author = (0, common_1.createParamDecorator)((_, context) => __awaiter(void 0, void 0, void 0, function* () {
16
+ var _a;
17
+ const ctx = context_1.NestWhatsExecutionContext.create(context);
18
+ const [message] = ctx.getContext();
19
+ return (_a = message === null || message === void 0 ? void 0 : message.getContact()) !== null && _a !== void 0 ? _a : null;
20
+ }));
@@ -0,0 +1 @@
1
+ export declare const Chat: (...dataOrPipes: unknown[]) => ParameterDecorator;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Chat = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const context_1 = require("../../context");
15
+ exports.Chat = (0, common_1.createParamDecorator)((_, context) => __awaiter(void 0, void 0, void 0, function* () {
16
+ var _a;
17
+ const ctx = context_1.NestWhatsExecutionContext.create(context);
18
+ const [message] = ctx.getContext();
19
+ return (_a = message === null || message === void 0 ? void 0 : message.getChat()) !== null && _a !== void 0 ? _a : null;
20
+ }));
@@ -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,6 @@
1
+ export * from "./arg-index.decorator";
2
+ export * from "./arguments.decorator";
3
+ export * from "./author.decorator";
4
+ export * from "./chat.decorator";
5
+ export * from "./command.decorator";
6
+ export * from "./message.decorator";
@@ -0,0 +1,22 @@
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("./arg-index.decorator"), exports);
18
+ __exportStar(require("./arguments.decorator"), exports);
19
+ __exportStar(require("./author.decorator"), exports);
20
+ __exportStar(require("./chat.decorator"), exports);
21
+ __exportStar(require("./command.decorator"), exports);
22
+ __exportStar(require("./message.decorator"), exports);
@@ -0,0 +1,2 @@
1
+ export declare const Message: (...dataOrPipes: unknown[]) => ParameterDecorator;
2
+ export declare const Msg: (...dataOrPipes: unknown[]) => ParameterDecorator;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Msg = exports.Message = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const context_1 = require("../../context");
6
+ exports.Message = (0, common_1.createParamDecorator)((_, context) => {
7
+ const ctx = context_1.NestWhatsExecutionContext.create(context);
8
+ const [message] = ctx.getContext();
9
+ return message !== null && message !== void 0 ? message : null;
10
+ });
11
+ exports.Msg = exports.Message;
@@ -0,0 +1,5 @@
1
+ import type { ValidationError } from "class-validator";
2
+ export declare class CommandArgsException extends Error {
3
+ readonly errors: ValidationError[];
4
+ constructor(errors: ValidationError[]);
5
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommandArgsException = void 0;
4
+ class CommandArgsException extends Error {
5
+ constructor(errors) {
6
+ const messages = errors.flatMap((e) => { var _a; return Object.values((_a = e.constraints) !== null && _a !== void 0 ? _a : {}); });
7
+ super(messages.join("; "));
8
+ this.name = "CommandArgsException";
9
+ this.errors = errors;
10
+ }
11
+ }
12
+ exports.CommandArgsException = CommandArgsException;
@@ -0,0 +1 @@
1
+ export * from "./command-args.exception";
@@ -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("./command-args.exception"), exports);
@@ -0,0 +1,6 @@
1
+ export * from "./decorators";
2
+ export * from "./exceptions";
3
+ export * from "./pipes";
4
+ export * from "./command.discovery";
5
+ export * from "./commands.module";
6
+ export * from "./commands.service";
@@ -0,0 +1,22 @@
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("./exceptions"), exports);
19
+ __exportStar(require("./pipes"), exports);
20
+ __exportStar(require("./command.discovery"), exports);
21
+ __exportStar(require("./commands.module"), exports);
22
+ __exportStar(require("./commands.service"), exports);
@@ -0,0 +1 @@
1
+ export * from "./parse-args.pipe";
@@ -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("./parse-args.pipe"), exports);
@@ -0,0 +1,6 @@
1
+ import { PipeTransform, Type } from "@nestjs/common";
2
+ export declare class ParseArgsPipe<T extends object> implements PipeTransform<string[], Promise<T>> {
3
+ private readonly dto;
4
+ constructor(dto: Type<T>);
5
+ transform(args: string[]): Promise<T>;
6
+ }
@@ -0,0 +1,58 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.ParseArgsPipe = void 0;
22
+ const common_1 = require("@nestjs/common");
23
+ const class_transformer_1 = require("class-transformer");
24
+ const class_validator_1 = require("class-validator");
25
+ const arg_index_decorator_1 = require("../decorators/arg-index.decorator");
26
+ const command_args_exception_1 = require("../exceptions/command-args.exception");
27
+ let ParseArgsPipe = class ParseArgsPipe {
28
+ constructor(dto) {
29
+ this.dto = dto;
30
+ }
31
+ transform(args) {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ var _a;
34
+ const metas = (_a = Reflect.getMetadata(arg_index_decorator_1.ARG_INDEX_METADATA, this.dto.prototype)) !== null && _a !== void 0 ? _a : [];
35
+ const plain = {};
36
+ for (const { propertyKey, index, options } of metas) {
37
+ if (options === null || options === void 0 ? void 0 : options.rest) {
38
+ const joined = args.slice(index).join(" ");
39
+ plain[propertyKey] = joined.length ? joined : undefined;
40
+ }
41
+ else {
42
+ plain[propertyKey] = args[index];
43
+ }
44
+ }
45
+ const instance = (0, class_transformer_1.plainToInstance)(this.dto, plain);
46
+ const errors = yield (0, class_validator_1.validate)(instance);
47
+ if (errors.length > 0) {
48
+ throw new command_args_exception_1.CommandArgsException(errors);
49
+ }
50
+ return instance;
51
+ });
52
+ }
53
+ };
54
+ exports.ParseArgsPipe = ParseArgsPipe;
55
+ exports.ParseArgsPipe = ParseArgsPipe = __decorate([
56
+ (0, common_1.Injectable)(),
57
+ __metadata("design:paramtypes", [Object])
58
+ ], ParseArgsPipe);
@@ -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";