necord 2.0.0 → 2.0.1

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 (64) hide show
  1. package/README.md +2 -2
  2. package/dist/decorators/{necord-commands.decorator.d.ts → commands.decorator.d.ts} +0 -0
  3. package/dist/decorators/{necord-commands.decorator.js → commands.decorator.js} +0 -0
  4. package/dist/decorators/{necord-components.decorator.d.ts → components.decorator.d.ts} +0 -0
  5. package/dist/decorators/{necord-components.decorator.js → components.decorator.js} +0 -0
  6. package/dist/decorators/{necord-groups.decorator.d.ts → groups.decorator.d.ts} +0 -0
  7. package/dist/decorators/{necord-groups.decorator.js → groups.decorator.js} +0 -0
  8. package/dist/decorators/index.d.ts +6 -6
  9. package/dist/decorators/index.js +6 -6
  10. package/dist/decorators/{necord-listeners.decorator.d.ts → listeners.decorator.d.ts} +0 -0
  11. package/dist/decorators/{necord-listeners.decorator.js → listeners.decorator.js} +2 -2
  12. package/dist/decorators/{necord-options.decorator.d.ts → options.decorator.d.ts} +0 -0
  13. package/dist/decorators/{necord-options.decorator.js → options.decorator.js} +0 -0
  14. package/dist/decorators/{necord-params.decorator.d.ts → params.decorator.d.ts} +0 -0
  15. package/dist/decorators/{necord-params.decorator.js → params.decorator.js} +0 -0
  16. package/dist/index.d.ts +0 -1
  17. package/dist/index.js +0 -1
  18. package/dist/interfaces/command-metadata.interface.d.ts +5 -2
  19. package/dist/interfaces/component-metadata.interface.d.ts +1 -2
  20. package/dist/interfaces/index.d.ts +0 -1
  21. package/dist/interfaces/index.js +0 -1
  22. package/dist/interfaces/listener-metadata.interface.d.ts +2 -3
  23. package/dist/necord-client.d.ts +2 -4
  24. package/dist/necord-client.js +12 -13
  25. package/dist/necord.constants.d.ts +1 -0
  26. package/dist/necord.constants.js +2 -1
  27. package/dist/necord.module.js +15 -11
  28. package/dist/services/commands.service.d.ts +16 -0
  29. package/dist/services/{commands-explorer.service.js → commands.service.js} +25 -34
  30. package/dist/services/components.service.d.ts +13 -0
  31. package/dist/services/components.service.js +41 -0
  32. package/dist/services/explorer.service.d.ts +17 -0
  33. package/dist/services/explorer.service.js +54 -0
  34. package/dist/services/index.d.ts +4 -3
  35. package/dist/services/index.js +4 -3
  36. package/dist/services/listeners.service.d.ts +12 -0
  37. package/dist/services/listeners.service.js +47 -0
  38. package/dist/test/app.commands.d.ts +5 -9
  39. package/dist/test/app.commands.js +34 -107
  40. package/dist/test/app.module.js +3 -3
  41. package/dist/test/dtos/length.dto.d.ts +3 -0
  42. package/dist/test/dtos/length.dto.js +24 -0
  43. package/dist/utils/create-necord-listeners.util.d.ts +2 -1
  44. package/dist/utils/create-necord-listeners.util.js +2 -2
  45. package/package.json +36 -40
  46. package/dist/interfaces/method-metadata.interface.d.ts +0 -5
  47. package/dist/interfaces/method-metadata.interface.js +0 -2
  48. package/dist/providers/application-commands.provider.d.ts +0 -4
  49. package/dist/providers/application-commands.provider.js +0 -8
  50. package/dist/providers/index.d.ts +0 -3
  51. package/dist/providers/index.js +0 -15
  52. package/dist/providers/message-components.provider.d.ts +0 -4
  53. package/dist/providers/message-components.provider.js +0 -9
  54. package/dist/providers/module-options.provider.d.ts +0 -4
  55. package/dist/providers/module-options.provider.js +0 -9
  56. package/dist/services/base-explorer.service.d.ts +0 -15
  57. package/dist/services/base-explorer.service.js +0 -35
  58. package/dist/services/commands-explorer.service.d.ts +0 -19
  59. package/dist/services/components-explorer.service.d.ts +0 -16
  60. package/dist/services/components-explorer.service.js +0 -57
  61. package/dist/services/listeners-explorer.service.d.ts +0 -16
  62. package/dist/services/listeners-explorer.service.js +0 -54
  63. package/dist/test/dtos/register.dto.d.ts +0 -7
  64. package/dist/test/dtos/register.dto.js +0 -52
@@ -0,0 +1,47 @@
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.ListenersService = void 0;
22
+ const common_1 = require("@nestjs/common");
23
+ const metadata_accessor_service_1 = require("./metadata-accessor.service");
24
+ const necord_client_1 = require("../necord-client");
25
+ const explorer_service_1 = require("./explorer.service");
26
+ let ListenersService = class ListenersService {
27
+ constructor(explorerService, metadataAccessor, client) {
28
+ this.explorerService = explorerService;
29
+ this.metadataAccessor = metadataAccessor;
30
+ this.client = client;
31
+ }
32
+ onModuleInit() {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const listeners = this.explorerService.explore((instance, prototype, name) => this.metadataAccessor.getListenerMetadata(instance, name));
35
+ for (const listener of listeners) {
36
+ this.client[listener.type](listener.event, (...args) => listener.execute(args));
37
+ }
38
+ });
39
+ }
40
+ };
41
+ ListenersService = __decorate([
42
+ (0, common_1.Injectable)(),
43
+ __metadata("design:paramtypes", [explorer_service_1.ExplorerService,
44
+ metadata_accessor_service_1.MetadataAccessorService,
45
+ necord_client_1.NecordClient])
46
+ ], ListenersService);
47
+ exports.ListenersService = ListenersService;
@@ -1,11 +1,7 @@
1
- import { ButtonInteraction, CommandInteraction, ContextMenuInteraction, GuildMember, Message, MessageButton, MessageSelectMenu, SelectMenuInteraction } from 'discord.js';
2
- import { RegisterDto } from './dtos/register.dto';
1
+ import { CommandInteraction } from 'discord.js';
2
+ import { LengthDto } from './dtos/length.dto';
3
3
  export declare class AppCommands {
4
- test(context: CommandInteraction, registerDto: RegisterDto): Promise<void>;
5
- noop(context: CommandInteraction, registerDto: any): Promise<void>;
6
- noop1(context: CommandInteraction): Promise<void>;
7
- button(context: ButtonInteraction, component: MessageButton): Promise<void>;
8
- selectMenu(context: SelectMenuInteraction, component: MessageSelectMenu, values: string[]): Promise<void>;
9
- getAvatar(context: ContextMenuInteraction, member: GuildMember): Promise<void>;
10
- copyMessage(context: ContextMenuInteraction, message: Message): Promise<void>;
4
+ private onReady;
5
+ onPing(interaction: CommandInteraction): Promise<void>;
6
+ onLength(interaction: CommandInteraction, { text }: LengthDto): Promise<void>;
11
7
  }
@@ -11,132 +11,59 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
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
+ };
14
23
  Object.defineProperty(exports, "__esModule", { value: true });
15
24
  exports.AppCommands = void 0;
16
25
  const common_1 = require("@nestjs/common");
17
- const decorators_1 = require("../decorators");
26
+ const __1 = require("../");
18
27
  const discord_js_1 = require("discord.js");
19
- const register_dto_1 = require("./dtos/register.dto");
28
+ const length_dto_1 = require("./dtos/length.dto");
20
29
  let AppCommands = class AppCommands {
21
- test(context, registerDto) {
22
- return context.reply({
23
- ephemeral: true,
24
- content: JSON.stringify(registerDto, null, 2),
25
- components: [
26
- new discord_js_1.MessageActionRow().addComponents(new discord_js_1.MessageButton()
27
- .setCustomId('button')
28
- .setLabel('Click on me')
29
- .setStyle(1 /* PRIMARY */)),
30
- new discord_js_1.MessageActionRow().addComponents(new discord_js_1.MessageSelectMenu()
31
- .setCustomId('select_menu')
32
- .setMinValues(1)
33
- .setMaxValues(1)
34
- .setPlaceholder('Select your value')
35
- .setOptions([
36
- { label: 'Red', value: 'red' },
37
- { label: 'Yellow', value: 'yellow' }
38
- ]))
39
- ]
40
- });
41
- }
42
- noop(context, registerDto) {
43
- return context.reply({
44
- ephemeral: true,
45
- content: 'subgroup-noop'
46
- });
47
- }
48
- noop1(context) {
49
- return context.reply({
50
- ephemeral: true,
51
- content: 'noop-1'
52
- });
53
- }
54
- button(context, component) {
55
- return context.reply({
56
- ephemeral: true,
57
- content: JSON.stringify(component.toJSON(), null, 2)
58
- });
59
- }
60
- selectMenu(context, component, values) {
61
- return context.reply({
62
- ephemeral: true,
63
- content: `You selected ${values.join(' ')}\n\nComponent: ${JSON.stringify(component, null, 2)}`
30
+ onReady() {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ console.log(123);
64
33
  });
65
34
  }
66
- getAvatar(context, member) {
67
- return context.reply({
68
- ephemeral: true,
69
- content: '123',
70
- files: [member.displayAvatarURL({ dynamic: true, size: 4096 })]
35
+ onPing(interaction) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ return interaction.reply({ content: 'Pong!' });
71
38
  });
72
39
  }
73
- copyMessage(context, message) {
74
- return context.reply({
75
- ephemeral: true,
76
- content: JSON.stringify(message.content, null, 2)
40
+ onLength(interaction, { text }) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ return interaction.reply({ content: `Length of your text ${text.length}` });
77
43
  });
78
44
  }
79
45
  };
80
46
  __decorate([
81
- (0, decorators_1.CommandGroup)({ name: 'group', description: 'group' }),
82
- (0, decorators_1.CommandSubGroup)({ name: 'subgroup', description: '123' }),
83
- (0, decorators_1.SlashCommand)({ name: 'register', description: 'Register user' }),
84
- __param(0, (0, decorators_1.Context)()),
85
- __param(1, (0, decorators_1.Options)()),
47
+ (0, __1.On)('ready'),
86
48
  __metadata("design:type", Function),
87
- __metadata("design:paramtypes", [discord_js_1.CommandInteraction, register_dto_1.RegisterDto]),
88
- __metadata("design:returntype", void 0)
89
- ], AppCommands.prototype, "test", null);
49
+ __metadata("design:paramtypes", []),
50
+ __metadata("design:returntype", Promise)
51
+ ], AppCommands.prototype, "onReady", null);
90
52
  __decorate([
91
- (0, decorators_1.CommandSubGroup)({ name: 'subgroup', description: '123' }),
92
- (0, decorators_1.SlashCommand)({ name: 'noop', description: 'noop' }),
93
- __param(0, (0, decorators_1.Context)()),
94
- __param(1, (0, decorators_1.Options)()),
95
- __metadata("design:type", Function),
96
- __metadata("design:paramtypes", [discord_js_1.CommandInteraction, Object]),
97
- __metadata("design:returntype", void 0)
98
- ], AppCommands.prototype, "noop", null);
99
- __decorate([
100
- (0, decorators_1.SlashCommand)({ name: 'noop1', description: 'noop' }),
101
- __param(0, (0, decorators_1.Context)()),
53
+ (0, __1.SlashCommand)({ name: 'ping', description: 'Ping-Pong Command' }),
54
+ __param(0, (0, __1.Context)()),
102
55
  __metadata("design:type", Function),
103
56
  __metadata("design:paramtypes", [discord_js_1.CommandInteraction]),
104
- __metadata("design:returntype", void 0)
105
- ], AppCommands.prototype, "noop1", null);
106
- __decorate([
107
- (0, decorators_1.Button)('button'),
108
- __param(0, (0, decorators_1.Context)()),
109
- __param(1, (0, decorators_1.Component)()),
110
- __metadata("design:type", Function),
111
- __metadata("design:paramtypes", [discord_js_1.ButtonInteraction, discord_js_1.MessageButton]),
112
- __metadata("design:returntype", void 0)
113
- ], AppCommands.prototype, "button", null);
114
- __decorate([
115
- (0, decorators_1.SelectMenu)('select_menu'),
116
- __param(0, (0, decorators_1.Context)()),
117
- __param(1, (0, decorators_1.Component)()),
118
- __param(2, (0, decorators_1.Values)()),
119
- __metadata("design:type", Function),
120
- __metadata("design:paramtypes", [discord_js_1.SelectMenuInteraction,
121
- discord_js_1.MessageSelectMenu, Array]),
122
- __metadata("design:returntype", void 0)
123
- ], AppCommands.prototype, "selectMenu", null);
124
- __decorate([
125
- (0, decorators_1.UserCommand)({ name: 'Get Avatar' }),
126
- __param(0, (0, decorators_1.Context)()),
127
- __param(1, (0, decorators_1.Options)('member')),
128
- __metadata("design:type", Function),
129
- __metadata("design:paramtypes", [discord_js_1.ContextMenuInteraction, discord_js_1.GuildMember]),
130
- __metadata("design:returntype", void 0)
131
- ], AppCommands.prototype, "getAvatar", null);
57
+ __metadata("design:returntype", Promise)
58
+ ], AppCommands.prototype, "onPing", null);
132
59
  __decorate([
133
- (0, decorators_1.MessageCommand)({ name: 'Copy message' }),
134
- __param(0, (0, decorators_1.Context)()),
135
- __param(1, (0, decorators_1.Options)('message')),
60
+ (0, __1.SlashCommand)({ name: 'length', description: 'Get length of text' }),
61
+ __param(0, (0, __1.Context)()),
62
+ __param(1, (0, __1.Options)()),
136
63
  __metadata("design:type", Function),
137
- __metadata("design:paramtypes", [discord_js_1.ContextMenuInteraction, discord_js_1.Message]),
138
- __metadata("design:returntype", void 0)
139
- ], AppCommands.prototype, "copyMessage", null);
64
+ __metadata("design:paramtypes", [discord_js_1.CommandInteraction, length_dto_1.LengthDto]),
65
+ __metadata("design:returntype", Promise)
66
+ ], AppCommands.prototype, "onLength", null);
140
67
  AppCommands = __decorate([
141
68
  (0, common_1.Injectable)()
142
69
  ], AppCommands);
@@ -17,9 +17,9 @@ AppModule = __decorate([
17
17
  (0, common_1.Module)({
18
18
  imports: [
19
19
  __1.NecordModule.forRoot({
20
- token: 'NzQ3MDM4NjQwNTcxNDE2NjY2.X0JD8w.J4V9ybjFoWd0LW5EJQYZ3JHxVsg',
21
- intents: [discord_js_1.Intents.FLAGS.GUILDS, discord_js_1.Intents.FLAGS.GUILD_MESSAGES, discord_js_1.Intents.FLAGS.DIRECT_MESSAGES],
22
- registerApplicationCommands: '580747890272763964'
20
+ token: 'NzQ3MDM4NjQwNTcxNDE2NjY2.X0JD8w.uT6X8c-E0ej6aHk5xgK28CaXtTM',
21
+ registerApplicationCommands: true,
22
+ intents: [discord_js_1.Intents.FLAGS.GUILDS, discord_js_1.Intents.FLAGS.GUILD_MESSAGES, discord_js_1.Intents.FLAGS.DIRECT_MESSAGES]
23
23
  })
24
24
  ],
25
25
  providers: [app_commands_1.AppCommands]
@@ -0,0 +1,3 @@
1
+ export declare class LengthDto {
2
+ text: string;
3
+ }
@@ -0,0 +1,24 @@
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.LengthDto = void 0;
13
+ const __1 = require("../..");
14
+ class LengthDto {
15
+ }
16
+ __decorate([
17
+ (0, __1.StringOption)({
18
+ name: 'text',
19
+ description: 'Your text',
20
+ required: true
21
+ }),
22
+ __metadata("design:type", String)
23
+ ], LengthDto.prototype, "text", void 0);
24
+ exports.LengthDto = LengthDto;
@@ -1,2 +1,3 @@
1
1
  import { ClientEvents } from 'discord.js';
2
- export declare function createNecordListenerDecorator(once: boolean): (event: keyof ClientEvents) => MethodDecorator;
2
+ import { ListenerMetadata } from '../interfaces';
3
+ export declare function createNecordListenerDecorator(type: ListenerMetadata['type']): (event: keyof ClientEvents) => MethodDecorator;
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createNecordListenerDecorator = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
5
  const necord_constants_1 = require("../necord.constants");
6
- function createNecordListenerDecorator(once) {
6
+ function createNecordListenerDecorator(type) {
7
7
  return (event) => (0, common_1.SetMetadata)(necord_constants_1.LISTENERS_METADATA, {
8
8
  event,
9
- once
9
+ type
10
10
  });
11
11
  }
12
12
  exports.createNecordListenerDecorator = createNecordListenerDecorator;
package/package.json CHANGED
@@ -1,8 +1,26 @@
1
1
  {
2
- "license": "MIT",
3
2
  "name": "necord",
4
- "version": "2.0.0",
5
3
  "description": "A Discord bot framework built on top of Discord.js and Nest.js for advanced and amazing bots.",
4
+ "version": "2.0.1",
5
+ "scripts": {
6
+ "build": "rimraf -rf dist && tsc -p tsconfig.json",
7
+ "precommit": "lint-staged",
8
+ "prepublish:npm": "npm run build",
9
+ "publish:npm": "npm publish --access public",
10
+ "prepublish:dev": "npm run build",
11
+ "publish:dev": "npm publish --access public --tag dev",
12
+ "prepare": "husky install .github/husky",
13
+ "test": "echo add tests",
14
+ "lint": "eslint --ignore-path .gitignore {integration,src}/**/*.ts",
15
+ "release": "release-it"
16
+ },
17
+ "main": "./dist/index.js",
18
+ "types": "./dist/index.d.ts",
19
+ "lint-staged": {
20
+ "*.ts": [
21
+ "prettier --write"
22
+ ]
23
+ },
6
24
  "keywords": [
7
25
  "nest",
8
26
  "nestjs",
@@ -15,6 +33,7 @@
15
33
  "bot api",
16
34
  "bot framework"
17
35
  ],
36
+ "license": "MIT",
18
37
  "homepage": "https://github.com/SocketSomeone/necord/wiki",
19
38
  "repository": {
20
39
  "type": "git",
@@ -24,32 +43,17 @@
24
43
  "url": "https://github.com/SocketSomeone/necord/issues"
25
44
  },
26
45
  "author": "Alexey Filippov <socket.someone@gmail.com>",
27
- "scripts": {
28
- "build": "rimraf -rf dist && tsc -p tsconfig.json",
29
- "precommit": "lint-staged",
30
- "prepublish:npm": "npm run build",
31
- "publish:npm": "npm publish --access public",
32
- "prepublish:dev": "npm run build",
33
- "publish:dev": "npm publish --access public --tag dev",
34
- "prepare": "husky install .github/husky",
35
- "test": "",
36
- "lint": "eslint --ignore-path .gitignore {integration,src}/**/*.ts",
37
- "release": "release-it"
38
- },
39
- "lint-staged": {
40
- "*.ts": [
41
- "prettier --write"
42
- ]
43
- },
44
- "main": "./dist/index.js",
45
- "types": "./dist/index.d.ts",
46
+ "contributors": [
47
+ "Alexey Filippov <socket.someone@gmail.com>"
48
+ ],
49
+ "dependencies": {},
46
50
  "devDependencies": {
47
- "@commitlint/cli": "13.2.1",
48
- "@commitlint/config-angular": "13.2.0",
51
+ "@commitlint/cli": "15.0.0",
52
+ "@commitlint/config-angular": "15.0.0",
49
53
  "@favware/npm-deprecate": "^1.0.4",
50
- "@nestjs/common": "^8.0.0",
51
- "@nestjs/core": "^8.0.0",
52
- "@types/node": "16.11.6",
54
+ "@nestjs/common": "8.2.3",
55
+ "@nestjs/core": "8.2.3",
56
+ "@types/node": "16.11.11",
53
57
  "@typescript-eslint/eslint-plugin": "4.33.0",
54
58
  "@typescript-eslint/parser": "4.33.0",
55
59
  "discord.js": "13.3.1",
@@ -57,13 +61,13 @@
57
61
  "eslint-config-prettier": "8.3.0",
58
62
  "eslint-plugin-prettier": "4.0.0",
59
63
  "husky": "7.0.4",
60
- "lint-staged": "11.2.6",
61
- "prettier": "2.4.1",
64
+ "lint-staged": "12.1.2",
65
+ "prettier": "2.5.0",
62
66
  "reflect-metadata": "0.1.13",
63
67
  "release-it": "^14.11.8",
64
68
  "rimraf": "3.0.2",
65
69
  "rxjs": "7.4.0",
66
- "typescript": "4.4.4"
70
+ "typescript": "4.5.2"
67
71
  },
68
72
  "peerDependencies": {
69
73
  "@nestjs/common": "^8.0.0",
@@ -72,16 +76,8 @@
72
76
  "reflect-metadata": "^0.1.13",
73
77
  "rxjs": "^7.2.0"
74
78
  },
75
- "peerDependenciesMeta": {
76
- "class-validator": {
77
- "optional": true
78
- },
79
- "class-transformer": {
80
- "optional": true
81
- }
82
- },
83
79
  "engines": {
84
- "node": ">=16.6.0"
85
- },
86
- "dependencies": {}
80
+ "node": ">=16.6.0",
81
+ "npm": ">=7.0.0"
82
+ }
87
83
  }
@@ -1,5 +0,0 @@
1
- export interface MethodMetadata {
2
- instance?: Record<string, any>;
3
- prototype?: object;
4
- method?: string;
5
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +0,0 @@
1
- import { Provider } from '@nestjs/common';
2
- import { ApplicationCommandData } from 'discord.js';
3
- export declare const APPLICATION_COMMANDS = "necord:application_commands";
4
- export declare const applicationCommandsProvider: Provider<ApplicationCommandData[]>;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.applicationCommandsProvider = exports.APPLICATION_COMMANDS = void 0;
4
- exports.APPLICATION_COMMANDS = 'necord:application_commands';
5
- exports.applicationCommandsProvider = {
6
- provide: exports.APPLICATION_COMMANDS,
7
- useValue: []
8
- };
@@ -1,3 +0,0 @@
1
- export * from './application-commands.provider';
2
- export * from './message-components.provider';
3
- export * from './module-options.provider';
@@ -1,15 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./application-commands.provider"), exports);
14
- __exportStar(require("./message-components.provider"), exports);
15
- __exportStar(require("./module-options.provider"), exports);
@@ -1,4 +0,0 @@
1
- import { Provider } from '@nestjs/common';
2
- import { BaseMessageComponent } from 'discord.js';
3
- export declare const MESSAGE_COMPONENTS = "necord:message_components";
4
- export declare const messageComponentsProvider: Provider<Map<string, BaseMessageComponent>>;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.messageComponentsProvider = exports.MESSAGE_COMPONENTS = void 0;
4
- exports.MESSAGE_COMPONENTS = 'necord:message_components';
5
- // TODO: Get components by custom id
6
- exports.messageComponentsProvider = {
7
- provide: exports.MESSAGE_COMPONENTS,
8
- useValue: new Map()
9
- };
@@ -1,4 +0,0 @@
1
- import { Provider } from '@nestjs/common';
2
- import { NecordModuleOptions } from '../interfaces';
3
- export declare const MODULE_OPTIONS = "necord:module_options";
4
- export declare const createNecordModuleOptionsProvider: (options: NecordModuleOptions) => Provider<NecordModuleOptions>;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createNecordModuleOptionsProvider = exports.MODULE_OPTIONS = void 0;
4
- exports.MODULE_OPTIONS = 'necord:module_options';
5
- const createNecordModuleOptionsProvider = (options) => ({
6
- provide: exports.MODULE_OPTIONS,
7
- useValue: options
8
- });
9
- exports.createNecordModuleOptionsProvider = createNecordModuleOptionsProvider;
@@ -1,15 +0,0 @@
1
- import { Logger, OnModuleInit } from '@nestjs/common';
2
- import { ExternalContextCreator } from '@nestjs/core/helpers/external-context-creator';
3
- import { DiscoveryService } from '@nestjs/core';
4
- export declare abstract class BaseExplorerService<R> implements OnModuleInit {
5
- protected readonly externalContextCreator: ExternalContextCreator;
6
- protected readonly discoveryService: DiscoveryService;
7
- protected readonly logger: Logger;
8
- private readonly necordParamsFactory;
9
- protected constructor(externalContextCreator: ExternalContextCreator, discoveryService: DiscoveryService);
10
- onModuleInit(): void;
11
- protected abstract filter(instance: Record<string, any>, prototype: object): R[];
12
- protected abstract register(items: R[]): void;
13
- private flatMap;
14
- protected createContextCallback<T extends Record<string, any>>(instance: T, prototype: any, methodName: string): (...args: any[]) => Promise<any>;
15
- }
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseExplorerService = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const context_1 = require("../context");
6
- const necord_constants_1 = require("../necord.constants");
7
- class BaseExplorerService {
8
- constructor(externalContextCreator, discoveryService) {
9
- this.externalContextCreator = externalContextCreator;
10
- this.discoveryService = discoveryService;
11
- this.logger = new common_1.Logger(this.constructor.name);
12
- this.necordParamsFactory = new context_1.NecordParamsFactory();
13
- }
14
- onModuleInit() {
15
- const providers = this.discoveryService.getProviders();
16
- const wrappers = providers.filter(wrapper => wrapper.isDependencyTreeStatic());
17
- this.register(this.flatMap(wrappers, this.filter.bind(this)));
18
- }
19
- flatMap(wrappers, callback) {
20
- return wrappers
21
- .map(wrapper => {
22
- const { instance } = wrapper, prototype = instance ? Object.getPrototypeOf(instance) : null;
23
- if (!instance || !prototype) {
24
- return;
25
- }
26
- return callback(instance, prototype);
27
- })
28
- .reduce((a, b) => a.concat(b), [])
29
- .filter(element => !!element);
30
- }
31
- createContextCallback(instance, prototype, methodName) {
32
- return this.externalContextCreator.create(instance, prototype[methodName], methodName, necord_constants_1.PARAM_ARGS_METADATA, this.necordParamsFactory, undefined, undefined, { guards: true, filters: true, interceptors: true }, 'necord');
33
- }
34
- }
35
- exports.BaseExplorerService = BaseExplorerService;
@@ -1,19 +0,0 @@
1
- import { BaseExplorerService } from './base-explorer.service';
2
- import { ApplicationCommandMetadata } from '../interfaces';
3
- import { ExternalContextCreator } from '@nestjs/core/helpers/external-context-creator';
4
- import { DiscoveryService, MetadataScanner } from '@nestjs/core';
5
- import { MetadataAccessorService } from './metadata-accessor.service';
6
- import { NecordClient } from '../necord-client';
7
- export declare class CommandsExplorerService extends BaseExplorerService<ApplicationCommandMetadata> {
8
- protected readonly externalContextCreator: ExternalContextCreator;
9
- protected readonly discoveryService: DiscoveryService;
10
- private readonly metadataScanner;
11
- private readonly metadataAccessor;
12
- private readonly client;
13
- constructor(externalContextCreator: ExternalContextCreator, discoveryService: DiscoveryService, metadataScanner: MetadataScanner, metadataAccessor: MetadataAccessorService, client: NecordClient);
14
- protected filter(instance: Record<string, any>, prototype: object): ApplicationCommandMetadata[];
15
- protected register(applicationCommands: ApplicationCommandMetadata[]): void;
16
- private registerContextMenuHandler;
17
- private registerSlashCommandHandler;
18
- private static getCommandKey;
19
- }
@@ -1,16 +0,0 @@
1
- import { BaseExplorerService } from './base-explorer.service';
2
- import { ExternalContextCreator } from '@nestjs/core/helpers/external-context-creator';
3
- import { DiscoveryService, MetadataScanner } from '@nestjs/core';
4
- import { MetadataAccessorService } from './metadata-accessor.service';
5
- import { NecordClient } from '../necord-client';
6
- import { ComponentMetadata } from '../interfaces/component-metadata.interface';
7
- export declare class ComponentsExplorerService extends BaseExplorerService<ComponentMetadata> {
8
- protected readonly externalContextCreator: ExternalContextCreator;
9
- protected readonly discoveryService: DiscoveryService;
10
- private readonly metadataScanner;
11
- private readonly metadataAccessor;
12
- private readonly client;
13
- constructor(externalContextCreator: ExternalContextCreator, discoveryService: DiscoveryService, metadataScanner: MetadataScanner, metadataAccessor: MetadataAccessorService, client: NecordClient);
14
- protected filter(instance: Record<string, any>, prototype: object): ComponentMetadata[];
15
- protected register(components: ComponentMetadata[]): void;
16
- }
@@ -1,57 +0,0 @@
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.ComponentsExplorerService = void 0;
13
- const base_explorer_service_1 = require("./base-explorer.service");
14
- const common_1 = require("@nestjs/common");
15
- const external_context_creator_1 = require("@nestjs/core/helpers/external-context-creator");
16
- const core_1 = require("@nestjs/core");
17
- const metadata_accessor_service_1 = require("./metadata-accessor.service");
18
- const necord_client_1 = require("../necord-client");
19
- const discord_js_1 = require("discord.js");
20
- let ComponentsExplorerService = class ComponentsExplorerService extends base_explorer_service_1.BaseExplorerService {
21
- constructor(externalContextCreator, discoveryService, metadataScanner, metadataAccessor, client) {
22
- super(externalContextCreator, discoveryService);
23
- this.externalContextCreator = externalContextCreator;
24
- this.discoveryService = discoveryService;
25
- this.metadataScanner = metadataScanner;
26
- this.metadataAccessor = metadataAccessor;
27
- this.client = client;
28
- }
29
- filter(instance, prototype) {
30
- return this.metadataScanner.scanFromPrototype(instance, prototype, method => {
31
- const metadata = this.metadataAccessor.getMessageComponentMetadata(instance, method);
32
- if (!metadata)
33
- return;
34
- return Object.assign(Object.assign({}, metadata), { instance,
35
- prototype,
36
- method });
37
- });
38
- }
39
- register(components) {
40
- for (const component of components) {
41
- const execute = this.createContextCallback(component.instance, component.prototype, component.method);
42
- this.client.on('interactionCreate', interaction => interaction.isMessageComponent() &&
43
- interaction.componentType === discord_js_1.MessageComponentInteraction.resolveType(component.type) &&
44
- interaction.customId === component.customId &&
45
- execute(interaction));
46
- }
47
- }
48
- };
49
- ComponentsExplorerService = __decorate([
50
- (0, common_1.Injectable)(),
51
- __metadata("design:paramtypes", [external_context_creator_1.ExternalContextCreator,
52
- core_1.DiscoveryService,
53
- core_1.MetadataScanner,
54
- metadata_accessor_service_1.MetadataAccessorService,
55
- necord_client_1.NecordClient])
56
- ], ComponentsExplorerService);
57
- exports.ComponentsExplorerService = ComponentsExplorerService;