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.
- package/README.md +2 -2
- package/dist/decorators/{necord-commands.decorator.d.ts → commands.decorator.d.ts} +0 -0
- package/dist/decorators/{necord-commands.decorator.js → commands.decorator.js} +0 -0
- package/dist/decorators/{necord-components.decorator.d.ts → components.decorator.d.ts} +0 -0
- package/dist/decorators/{necord-components.decorator.js → components.decorator.js} +0 -0
- package/dist/decorators/{necord-groups.decorator.d.ts → groups.decorator.d.ts} +0 -0
- package/dist/decorators/{necord-groups.decorator.js → groups.decorator.js} +0 -0
- package/dist/decorators/index.d.ts +6 -6
- package/dist/decorators/index.js +6 -6
- package/dist/decorators/{necord-listeners.decorator.d.ts → listeners.decorator.d.ts} +0 -0
- package/dist/decorators/{necord-listeners.decorator.js → listeners.decorator.js} +2 -2
- package/dist/decorators/{necord-options.decorator.d.ts → options.decorator.d.ts} +0 -0
- package/dist/decorators/{necord-options.decorator.js → options.decorator.js} +0 -0
- package/dist/decorators/{necord-params.decorator.d.ts → params.decorator.d.ts} +0 -0
- package/dist/decorators/{necord-params.decorator.js → params.decorator.js} +0 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/interfaces/command-metadata.interface.d.ts +5 -2
- package/dist/interfaces/component-metadata.interface.d.ts +1 -2
- package/dist/interfaces/index.d.ts +0 -1
- package/dist/interfaces/index.js +0 -1
- package/dist/interfaces/listener-metadata.interface.d.ts +2 -3
- package/dist/necord-client.d.ts +2 -4
- package/dist/necord-client.js +12 -13
- package/dist/necord.constants.d.ts +1 -0
- package/dist/necord.constants.js +2 -1
- package/dist/necord.module.js +15 -11
- package/dist/services/commands.service.d.ts +16 -0
- package/dist/services/{commands-explorer.service.js → commands.service.js} +25 -34
- package/dist/services/components.service.d.ts +13 -0
- package/dist/services/components.service.js +41 -0
- package/dist/services/explorer.service.d.ts +17 -0
- package/dist/services/explorer.service.js +54 -0
- package/dist/services/index.d.ts +4 -3
- package/dist/services/index.js +4 -3
- package/dist/services/listeners.service.d.ts +12 -0
- package/dist/services/listeners.service.js +47 -0
- package/dist/test/app.commands.d.ts +5 -9
- package/dist/test/app.commands.js +34 -107
- package/dist/test/app.module.js +3 -3
- package/dist/test/dtos/length.dto.d.ts +3 -0
- package/dist/test/dtos/length.dto.js +24 -0
- package/dist/utils/create-necord-listeners.util.d.ts +2 -1
- package/dist/utils/create-necord-listeners.util.js +2 -2
- package/package.json +36 -40
- package/dist/interfaces/method-metadata.interface.d.ts +0 -5
- package/dist/interfaces/method-metadata.interface.js +0 -2
- package/dist/providers/application-commands.provider.d.ts +0 -4
- package/dist/providers/application-commands.provider.js +0 -8
- package/dist/providers/index.d.ts +0 -3
- package/dist/providers/index.js +0 -15
- package/dist/providers/message-components.provider.d.ts +0 -4
- package/dist/providers/message-components.provider.js +0 -9
- package/dist/providers/module-options.provider.d.ts +0 -4
- package/dist/providers/module-options.provider.js +0 -9
- package/dist/services/base-explorer.service.d.ts +0 -15
- package/dist/services/base-explorer.service.js +0 -35
- package/dist/services/commands-explorer.service.d.ts +0 -19
- package/dist/services/components-explorer.service.d.ts +0 -16
- package/dist/services/components-explorer.service.js +0 -57
- package/dist/services/listeners-explorer.service.d.ts +0 -16
- package/dist/services/listeners-explorer.service.js +0 -54
- package/dist/test/dtos/register.dto.d.ts +0 -7
- 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 {
|
|
2
|
-
import {
|
|
1
|
+
import { CommandInteraction } from 'discord.js';
|
|
2
|
+
import { LengthDto } from './dtos/length.dto';
|
|
3
3
|
export declare class AppCommands {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
|
26
|
+
const __1 = require("../");
|
|
18
27
|
const discord_js_1 = require("discord.js");
|
|
19
|
-
const
|
|
28
|
+
const length_dto_1 = require("./dtos/length.dto");
|
|
20
29
|
let AppCommands = class AppCommands {
|
|
21
|
-
|
|
22
|
-
return
|
|
23
|
-
|
|
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
|
-
|
|
67
|
-
return
|
|
68
|
-
|
|
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
|
-
|
|
74
|
-
return
|
|
75
|
-
|
|
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,
|
|
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", [
|
|
88
|
-
__metadata("design:returntype",
|
|
89
|
-
], AppCommands.prototype, "
|
|
49
|
+
__metadata("design:paramtypes", []),
|
|
50
|
+
__metadata("design:returntype", Promise)
|
|
51
|
+
], AppCommands.prototype, "onReady", null);
|
|
90
52
|
__decorate([
|
|
91
|
-
(0,
|
|
92
|
-
(0,
|
|
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",
|
|
105
|
-
], AppCommands.prototype, "
|
|
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,
|
|
134
|
-
__param(0, (0,
|
|
135
|
-
__param(1, (0,
|
|
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.
|
|
138
|
-
__metadata("design:returntype",
|
|
139
|
-
], AppCommands.prototype, "
|
|
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);
|
package/dist/test/app.module.js
CHANGED
|
@@ -17,9 +17,9 @@ AppModule = __decorate([
|
|
|
17
17
|
(0, common_1.Module)({
|
|
18
18
|
imports: [
|
|
19
19
|
__1.NecordModule.forRoot({
|
|
20
|
-
token: 'NzQ3MDM4NjQwNTcxNDE2NjY2.X0JD8w.
|
|
21
|
-
|
|
22
|
-
|
|
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,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
|
-
|
|
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(
|
|
6
|
+
function createNecordListenerDecorator(type) {
|
|
7
7
|
return (event) => (0, common_1.SetMetadata)(necord_constants_1.LISTENERS_METADATA, {
|
|
8
8
|
event,
|
|
9
|
-
|
|
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
|
-
"
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
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": "
|
|
48
|
-
"@commitlint/config-angular": "
|
|
51
|
+
"@commitlint/cli": "15.0.0",
|
|
52
|
+
"@commitlint/config-angular": "15.0.0",
|
|
49
53
|
"@favware/npm-deprecate": "^1.0.4",
|
|
50
|
-
"@nestjs/common": "
|
|
51
|
-
"@nestjs/core": "
|
|
52
|
-
"@types/node": "16.11.
|
|
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": "
|
|
61
|
-
"prettier": "2.
|
|
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.
|
|
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
|
-
|
|
80
|
+
"node": ">=16.6.0",
|
|
81
|
+
"npm": ">=7.0.0"
|
|
82
|
+
}
|
|
87
83
|
}
|
|
@@ -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
|
-
};
|
package/dist/providers/index.js
DELETED
|
@@ -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,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;
|