necord 4.2.6 → 4.3.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 CHANGED
@@ -1,17 +1,14 @@
1
- <p align="center">
2
- <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
3
- </p>
1
+ <div align="center">
2
+ <h1>
3
+ <a href="#"><img src="https://necord.org/img/logo.png" alt ="Necord Logo"></a>
4
+ </h1>
5
+ 🤖 A module for creating <b><a href="https://discord.com/">Discord</a> bots</b> using <a href="https://nestjs.com">NestJS</a>, based on <a href="https://discord.js.org/">Discord.js</a>
6
+ <br/><br/>
7
+ <a href="https://necord.org">Documentation ✨</a> &emsp; <a href="https://github.com/necordjs/necord">Source code 🪡</a> &emsp; <a href="https://github.com/necordjs/samples">Examples 🛠️</a> &emsp; <a href="https://www.npmjs.com/package/necord">NPM 🚀</a>
8
+ </div>
9
+
4
10
 
5
- <p align="center">
6
- A module for creating Discord bots using <a href="https://nestjs.com/" target="_blank">NestJS</a>, based on <a href="https://discord.js.org/#/" target="_blank">Discord.js</a>.
7
- </p>
8
11
 
9
- <p align="center">
10
- <a href='https://img.shields.io/npm/v/necord'><img src="https://img.shields.io/npm/v/necord" alt="NPM Version" /></a>
11
- <a href='https://img.shields.io/npm/l/necord'><img src="https://img.shields.io/npm/l/necord" alt="NPM License" /></a>
12
- <a href='https://img.shields.io/npm/dm/necord'><img src="https://img.shields.io/npm/dm/necord" alt="NPM Downloads" /></a>
13
- <a href='https://img.shields.io/github/last-commit/SocketSomeone/necord'><img src="https://img.shields.io/github/last-commit/SocketSomeone/necord" alt="Last commit" /></a>
14
- </p>
15
12
 
16
13
  ## About
17
14
 
@@ -27,7 +24,7 @@ This module provides fast and easy way for creating Discord bots and deep integr
27
24
  - Full support of NestJS guards, interceptors, filters and pipes!
28
25
 
29
26
  For questions and support please use
30
- the [Issues](https://github.com/SocketSomeone/necord/issues/new?assignees=&labels=question&template=question.yml).
27
+ the [Issues](https://github.com/necordjs/necord/issues/new?assignees=&labels=question&template=question.yml).
31
28
 
32
29
  ## Installation
33
30
 
@@ -91,7 +88,7 @@ Whenever you need to handle any event data, use the `Context` decorator.
91
88
 
92
89
  If you want to fully dive into Necord check out these resources:
93
90
 
94
- * [Necord Wiki](https://github.com/SocketSomeone/necord/wiki) - Official documentation of Necord.
91
+ * [Necord Wiki](https://necord.org) - Official documentation of Necord.
95
92
  * [Nest JS](https://docs.nestjs.com) - A progressive framework for creating well-architectured applications.
96
93
  * [Discord JS](https://discord.js.org) - The most powerful library for creating bots.
97
94
  * [Discord API](https://discord.com/developers/docs) - Official documentation of Discord API.
@@ -103,4 +100,4 @@ If you want to fully dive into Necord check out these resources:
103
100
 
104
101
  ## License
105
102
 
106
- [MIT](https://github.com/SocketSomeone/necord/blob/master/LICENSE) © [Alexey Filippov](https://github.com/SocketSomeone)
103
+ [MIT](https://github.com/necordjs/necord/blob/master/LICENSE) © [Alexey Filippov](https://github.com/SocketSomeone)
@@ -3,5 +3,6 @@ export declare enum NecordInfoType {
3
3
  SLASH_COMMANDS = 1,
4
4
  CONTEXT_MENU = 2,
5
5
  MESSAGE_COMPONENT = 3,
6
- TEXT_COMMAND = 4
6
+ TEXT_COMMAND = 4,
7
+ MODAL = 5
7
8
  }
@@ -8,4 +8,5 @@ var NecordInfoType;
8
8
  NecordInfoType[NecordInfoType["CONTEXT_MENU"] = 2] = "CONTEXT_MENU";
9
9
  NecordInfoType[NecordInfoType["MESSAGE_COMPONENT"] = 3] = "MESSAGE_COMPONENT";
10
10
  NecordInfoType[NecordInfoType["TEXT_COMMAND"] = 4] = "TEXT_COMMAND";
11
+ NecordInfoType[NecordInfoType["MODAL"] = 5] = "MODAL";
11
12
  })(NecordInfoType = exports.NecordInfoType || (exports.NecordInfoType = {}));
@@ -3,6 +3,6 @@ export * from './commands.decorator';
3
3
  export * from './components.decorator';
4
4
  export * from './guilds.decorator';
5
5
  export * from './listeners.decorator';
6
+ export * from './modals.decorator';
6
7
  export * from './options.decorator';
7
8
  export * from './params.decorator';
8
- export * from './permissions.decorator';
@@ -15,6 +15,6 @@ __exportStar(require("./commands.decorator"), exports);
15
15
  __exportStar(require("./components.decorator"), exports);
16
16
  __exportStar(require("./guilds.decorator"), exports);
17
17
  __exportStar(require("./listeners.decorator"), exports);
18
+ __exportStar(require("./modals.decorator"), exports);
18
19
  __exportStar(require("./options.decorator"), exports);
19
20
  __exportStar(require("./params.decorator"), exports);
20
- __exportStar(require("./permissions.decorator"), exports);
@@ -0,0 +1 @@
1
+ export declare const Modal: (customId: string) => import("@nestjs/common").CustomDecorator<string>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Modal = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const necord_constants_1 = require("../necord.constants");
6
+ const Modal = (customId) => (0, common_1.SetMetadata)(necord_constants_1.MODALS_METADATA, { customId });
7
+ exports.Modal = Modal;
@@ -63,3 +63,8 @@ export declare const MentionableOption: (data: Omit<import("discord.js").Applica
63
63
  } & {
64
64
  methodName?: keyof import("discord.js").CommandInteractionOptionResolver<import("discord.js").CacheType>;
65
65
  }, "type" | "methodName"> | Omit<never, "type" | "methodName"> | Omit<never, "type" | "methodName"> | Omit<never, "type" | "methodName"> | Omit<never, "type" | "methodName">) => PropertyDecorator;
66
+ export declare const AttachmentOption: (data: Omit<import("discord.js").ApplicationCommandNonOptionsData & {
67
+ type: "ATTACHMENT";
68
+ } & {
69
+ methodName?: keyof import("discord.js").CommandInteractionOptionResolver<import("discord.js").CacheType>;
70
+ }, "type" | "methodName"> | Omit<never, "type" | "methodName"> | Omit<never, "type" | "methodName"> | Omit<never, "type" | "methodName"> | Omit<never, "type" | "methodName">) => PropertyDecorator;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MentionableOption = exports.RoleOption = exports.ChannelOption = exports.MemberOption = exports.UserOption = exports.StringOption = exports.NumberOption = exports.IntegerOption = exports.BooleanOption = void 0;
3
+ exports.AttachmentOption = exports.MentionableOption = exports.RoleOption = exports.ChannelOption = exports.MemberOption = exports.UserOption = exports.StringOption = exports.NumberOption = exports.IntegerOption = exports.BooleanOption = void 0;
4
4
  const necord_constants_1 = require("../necord.constants");
5
5
  exports.BooleanOption = createNecordOptionDecorator('BOOLEAN', 'getBoolean');
6
6
  exports.IntegerOption = createNecordOptionDecorator('INTEGER', 'getInteger');
@@ -11,6 +11,7 @@ exports.MemberOption = createNecordOptionDecorator('USER', 'getMember');
11
11
  exports.ChannelOption = createNecordOptionDecorator('CHANNEL', 'getChannel');
12
12
  exports.RoleOption = createNecordOptionDecorator('ROLE', 'getRole');
13
13
  exports.MentionableOption = createNecordOptionDecorator('MENTIONABLE', 'getMentionable');
14
+ exports.AttachmentOption = createNecordOptionDecorator('ATTACHMENT', 'getAttachment');
14
15
  function createNecordOptionDecorator(type, methodName) {
15
16
  return (data) => (target, propertyKey) => {
16
17
  var _a;
@@ -1,4 +1,4 @@
1
- import { ApplicationCommandData, ApplicationCommandOptionChoice, ApplicationCommandOptionData, ApplicationCommandSubCommandData, ApplicationCommandSubGroupData, AutocompleteInteraction, ChatInputApplicationCommandData, CommandInteractionOptionResolver, MessageApplicationCommandData, MessageComponentType, UserApplicationCommandData } from 'discord.js';
1
+ import { ApplicationCommandData, ApplicationCommandOptionChoiceData, ApplicationCommandOptionData, ApplicationCommandSubCommandData, ApplicationCommandSubGroupData, AutocompleteInteraction, ChatInputApplicationCommandData, CommandInteractionOptionResolver, MessageApplicationCommandData, MessageComponentType, UserApplicationCommandData } from 'discord.js';
2
2
  import { NecordEvents } from './necord-events.interface';
3
3
  import { Module } from '@nestjs/core/injector/module';
4
4
  import { Type } from '@nestjs/common';
@@ -20,6 +20,9 @@ export interface ComponentMetadata extends BaseMetadata {
20
20
  type: Exclude<MessageComponentType, 'ACTION_ROW'>;
21
21
  customId: string;
22
22
  }
23
+ export interface ModalMetadata extends BaseMetadata {
24
+ customId: string;
25
+ }
23
26
  export interface TextCommandMetadata extends BaseMetadata {
24
27
  name: string;
25
28
  description?: string;
@@ -34,5 +37,5 @@ export declare type OptionMetadata<T extends CommandOptionData['type'] = any> =
34
37
  methodName?: keyof CommandInteractionOptionResolver;
35
38
  };
36
39
  export interface TransformOptions {
37
- transformOptions(interaction: AutocompleteInteraction, focused: ApplicationCommandOptionChoice): ApplicationCommandOptionChoice[] | Promise<ApplicationCommandOptionChoice[]>;
40
+ transformOptions(interaction: AutocompleteInteraction, focused: ApplicationCommandOptionChoiceData): ApplicationCommandOptionChoiceData[] | Promise<ApplicationCommandOptionChoiceData[]>;
38
41
  }
@@ -1,7 +1,7 @@
1
1
  import { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';
2
2
  import { DiscoveryService, MetadataScanner, Reflector } from '@nestjs/core';
3
3
  import { ExternalContextCreator } from '@nestjs/core/helpers/external-context-creator';
4
- import { ApplicationCommandMetadata, ComponentMetadata, ListenerMetadata, TextCommandMetadata } from './interfaces';
4
+ import { ApplicationCommandMetadata, ComponentMetadata, ListenerMetadata, ModalMetadata, TextCommandMetadata } from './interfaces';
5
5
  declare type OptionMetadata = string | {
6
6
  key: string;
7
7
  fn: (key: string, targets: any[]) => unknown;
@@ -16,6 +16,7 @@ export declare class NecordExplorer {
16
16
  constructor(discoveryService: DiscoveryService, externalContextCreator: ExternalContextCreator, metadataScanner: MetadataScanner, reflector: Reflector);
17
17
  explore(): {
18
18
  listeners: ListenerMetadata<keyof import("./interfaces").NecordEvents>[];
19
+ modals: ModalMetadata[];
19
20
  components: ComponentMetadata[];
20
21
  appCommands: ApplicationCommandMetadata[];
21
22
  textCommands: TextCommandMetadata[];
@@ -34,6 +34,7 @@ let NecordExplorer = class NecordExplorer {
34
34
  const listeners = this.flatMap(wrapper => this.filterProperties(wrapper, necord_constants_1.LISTENERS_METADATA));
35
35
  const components = this.flatMap(wrapper => this.filterProperties(wrapper, necord_constants_1.MESSAGE_COMPONENT_METADATA));
36
36
  const textCommands = this.flatMap(wrapper => this.filterProperties(wrapper, necord_constants_1.TEXT_COMMAND_METADATA));
37
+ const modals = this.flatMap(wrapper => this.filterProperties(wrapper, necord_constants_1.MODALS_METADATA));
37
38
  const appCommands = this.flatMap(wrapper => {
38
39
  var _a;
39
40
  const commandGroup = this.filterProvider(wrapper, necord_constants_1.GROUP_METADATA);
@@ -48,10 +49,6 @@ let NecordExplorer = class NecordExplorer {
48
49
  {
49
50
  key: necord_constants_1.GUILDS_METADATA,
50
51
  fn: (key, targets) => this.reflector.getAllAndOverride(key, targets)
51
- },
52
- {
53
- key: necord_constants_1.PERMISSIONS_METADATA,
54
- fn: (key, targets) => this.reflector.getAllAndMerge(key, targets)
55
52
  }
56
53
  ];
57
54
  for (const command of this.filterProperties(wrapper, metadataKey, optionalKeys)) {
@@ -66,13 +63,14 @@ let NecordExplorer = class NecordExplorer {
66
63
  : subCommands.push(command);
67
64
  }
68
65
  if (commandGroup) {
69
- commandGroup.metadata = this.extractOptionalMetadata([necord_constants_1.GUILDS_METADATA, necord_constants_1.PERMISSIONS_METADATA], wrapper.instance);
66
+ commandGroup.metadata = this.extractOptionalMetadata([necord_constants_1.GUILDS_METADATA], wrapper.instance);
70
67
  commandGroup.options = [...subGroups.values(), ...subCommands];
71
68
  }
72
69
  return commands.concat(commandGroup);
73
70
  });
74
71
  return {
75
72
  listeners,
73
+ modals,
76
74
  components,
77
75
  appCommands,
78
76
  textCommands
@@ -53,30 +53,20 @@ let NecordInteractionUpdate = NecordInteractionUpdate_1 = class NecordInteractio
53
53
  }
54
54
  }
55
55
  this.logger.log(`Started refreshing application commands.`);
56
- for (const [guild, commands] of commandsByGuildMap.entries()) {
57
- const registeredCommands = yield clientCommands.set(commands, guild);
58
- if (!guild)
59
- continue;
60
- yield clientCommands.permissions.set({
61
- guild,
62
- fullPermissions: commands.map(command => {
63
- var _a;
64
- return ({
65
- id: registeredCommands.find(x => x.name === command.name).id,
66
- permissions: (_a = command.metadata[necord_constants_1.PERMISSIONS_METADATA]) !== null && _a !== void 0 ? _a : []
67
- });
68
- })
69
- });
70
- }
56
+ yield Promise.all([...commandsByGuildMap.entries()].map(([guild, commands]) => clientCommands.set(commands, guild)));
71
57
  this.logger.log(`Successfully reloaded application commands.`);
72
58
  });
73
59
  }
74
60
  onInteractionCreate([interaction]) {
75
- var _a, _b;
61
+ var _a, _b, _c;
76
62
  return __awaiter(this, void 0, void 0, function* () {
77
- if (interaction.isMessageComponent()) {
63
+ if (interaction.isModalSubmit()) {
78
64
  return (_a = this.registry
79
- .getMessageComponent(interaction.componentType, interaction.customId)) === null || _a === void 0 ? void 0 : _a.metadata.execute([interaction], interaction.isSelectMenu() ? interaction.values : undefined, { type: context_1.NecordInfoType.MESSAGE_COMPONENT });
65
+ .getModal(interaction.customId)) === null || _a === void 0 ? void 0 : _a.metadata.execute(interaction, null, { type: context_1.NecordInfoType.MODAL });
66
+ }
67
+ if (interaction.isMessageComponent()) {
68
+ return (_b = this.registry
69
+ .getMessageComponent(interaction.componentType, interaction.customId)) === null || _b === void 0 ? void 0 : _b.metadata.execute([interaction], interaction.isSelectMenu() ? interaction.values : undefined, { type: context_1.NecordInfoType.MESSAGE_COMPONENT });
80
70
  }
81
71
  if (interaction.isContextMenu()) {
82
72
  const options = interaction.isUserContextMenu()
@@ -85,8 +75,8 @@ let NecordInteractionUpdate = NecordInteractionUpdate_1 = class NecordInteractio
85
75
  member: interaction.options.getMember('user', false)
86
76
  }
87
77
  : { message: interaction.options.getMessage('message', false) };
88
- return (_b = this.registry
89
- .getContextMenu(interaction.targetType, interaction.commandName)) === null || _b === void 0 ? void 0 : _b.metadata.execute([interaction], options, {
78
+ return (_c = this.registry
79
+ .getContextMenu(interaction.targetType, interaction.commandName)) === null || _c === void 0 ? void 0 : _c.metadata.execute([interaction], options, {
90
80
  type: context_1.NecordInfoType.CONTEXT_MENU
91
81
  });
92
82
  }
@@ -1,5 +1,5 @@
1
1
  import { Client } from 'discord.js';
2
- import { ApplicationCommandMetadata, ComponentMetadata, ContextMenuMetadata, ListenerMetadata, SlashCommandMetadata, TextCommandMetadata } from './interfaces';
2
+ import { ApplicationCommandMetadata, ComponentMetadata, ContextMenuMetadata, ListenerMetadata, ModalMetadata, SlashCommandMetadata, TextCommandMetadata } from './interfaces';
3
3
  export declare class NecordRegistry {
4
4
  private readonly client;
5
5
  private static readonly GENERATE_KEY;
@@ -7,8 +7,10 @@ export declare class NecordRegistry {
7
7
  private readonly messageComponents;
8
8
  private readonly applicationCommands;
9
9
  private readonly applicationCommandsData;
10
+ private readonly modals;
10
11
  constructor(client: Client);
11
12
  registerListeners(listeners: ListenerMetadata[]): void;
13
+ addModals(modals: ModalMetadata[]): void;
12
14
  addTextCommands(textCommands: TextCommandMetadata[]): void;
13
15
  getTextCommands(): TextCommandMetadata[];
14
16
  getTextCommand(name: string): TextCommandMetadata;
@@ -21,4 +23,5 @@ export declare class NecordRegistry {
21
23
  getMessageComponent(componentType: ComponentMetadata['type'], customId: string): ComponentMetadata;
22
24
  getButton(customId: string): ComponentMetadata;
23
25
  getSelectMenu(customId: string): ComponentMetadata;
26
+ getModal(customId: string): ModalMetadata;
24
27
  }
@@ -21,12 +21,16 @@ let NecordRegistry = NecordRegistry_1 = class NecordRegistry {
21
21
  this.messageComponents = new discord_js_1.Collection();
22
22
  this.applicationCommands = new discord_js_1.Collection();
23
23
  this.applicationCommandsData = [];
24
+ this.modals = new discord_js_1.Collection();
24
25
  }
25
26
  registerListeners(listeners) {
26
27
  listeners.forEach(listener => {
27
28
  this.client[listener.type](listener.event, (...args) => listener.metadata.execute(args, null, { type: context_1.NecordInfoType.LISTENER }));
28
29
  });
29
30
  }
31
+ addModals(modals) {
32
+ modals.forEach(modal => this.modals.set(modal.customId, modal));
33
+ }
30
34
  addTextCommands(textCommands) {
31
35
  textCommands.forEach(command => this.textCommands.set(command.name, command));
32
36
  }
@@ -70,6 +74,9 @@ let NecordRegistry = NecordRegistry_1 = class NecordRegistry {
70
74
  getSelectMenu(customId) {
71
75
  return this.getMessageComponent('SELECT_MENU', customId);
72
76
  }
77
+ getModal(customId) {
78
+ return this.modals.get(customId);
79
+ }
73
80
  };
74
81
  NecordRegistry.GENERATE_KEY = (...args) => args.map(String).join(':');
75
82
  NecordRegistry = NecordRegistry_1 = __decorate([
@@ -4,8 +4,8 @@ export declare const TEXT_COMMAND_METADATA = "necord:text_command_meta";
4
4
  export declare const APPLICATION_COMMAND_METADATA = "necord:application_command_meta";
5
5
  export declare const MESSAGE_COMPONENT_METADATA = "necord:message_component_meta";
6
6
  export declare const LISTENERS_METADATA = "necord:listeners_meta";
7
- export declare const AUTOCOMPLETE_METADATA = "necord:autocomplete_metadata";
7
+ export declare const AUTOCOMPLETE_METADATA = "necord:autocomplete_meta";
8
+ export declare const MODALS_METADATA = "necord:modals_meta";
8
9
  export declare const GROUP_METADATA = "necord:group_meta";
9
10
  export declare const OPTIONS_METADATA = "necord:options_meta";
10
11
  export declare const GUILDS_METADATA = "necord:guilds_meta";
11
- export declare const PERMISSIONS_METADATA = "necord:permissions_meta";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PERMISSIONS_METADATA = exports.GUILDS_METADATA = exports.OPTIONS_METADATA = exports.GROUP_METADATA = exports.AUTOCOMPLETE_METADATA = exports.LISTENERS_METADATA = exports.MESSAGE_COMPONENT_METADATA = exports.APPLICATION_COMMAND_METADATA = exports.TEXT_COMMAND_METADATA = exports.PARAM_ARGS_METADATA = exports.NECORD_MODULE_OPTIONS = void 0;
3
+ exports.GUILDS_METADATA = exports.OPTIONS_METADATA = exports.GROUP_METADATA = exports.MODALS_METADATA = exports.AUTOCOMPLETE_METADATA = exports.LISTENERS_METADATA = exports.MESSAGE_COMPONENT_METADATA = exports.APPLICATION_COMMAND_METADATA = exports.TEXT_COMMAND_METADATA = exports.PARAM_ARGS_METADATA = exports.NECORD_MODULE_OPTIONS = void 0;
4
4
  const constants_1 = require("@nestjs/common/constants");
5
5
  exports.NECORD_MODULE_OPTIONS = 'necord:module_options';
6
6
  exports.PARAM_ARGS_METADATA = constants_1.ROUTE_ARGS_METADATA;
@@ -8,8 +8,8 @@ exports.TEXT_COMMAND_METADATA = 'necord:text_command_meta';
8
8
  exports.APPLICATION_COMMAND_METADATA = 'necord:application_command_meta';
9
9
  exports.MESSAGE_COMPONENT_METADATA = 'necord:message_component_meta';
10
10
  exports.LISTENERS_METADATA = 'necord:listeners_meta';
11
- exports.AUTOCOMPLETE_METADATA = 'necord:autocomplete_metadata';
11
+ exports.AUTOCOMPLETE_METADATA = 'necord:autocomplete_meta';
12
+ exports.MODALS_METADATA = 'necord:modals_meta';
12
13
  exports.GROUP_METADATA = 'necord:group_meta';
13
14
  exports.OPTIONS_METADATA = 'necord:options_meta';
14
15
  exports.GUILDS_METADATA = 'necord:guilds_meta';
15
- exports.PERMISSIONS_METADATA = 'necord:permissions_meta';
@@ -40,11 +40,12 @@ let NecordModule = NecordModule_1 = class NecordModule {
40
40
  }
41
41
  onApplicationBootstrap() {
42
42
  return __awaiter(this, void 0, void 0, function* () {
43
- const { listeners, components, appCommands, textCommands } = this.explorer.explore();
43
+ const { listeners, components, appCommands, textCommands, modals } = this.explorer.explore();
44
44
  this.registry.registerListeners(listeners);
45
45
  this.registry.addTextCommands(textCommands);
46
46
  this.registry.addMessageComponents(components);
47
47
  this.registry.addApplicationCommands(appCommands);
48
+ this.registry.addModals(modals);
48
49
  return this.client.login(this.options.token);
49
50
  });
50
51
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "necord",
3
3
  "description": "A module for creating Discord bots using NestJS, based on Discord.js.",
4
- "version": "4.2.6",
4
+ "version": "4.3.1",
5
5
  "scripts": {
6
6
  "build": "rimraf -rf dist && tsc -p tsconfig.json",
7
7
  "prepublish:npm": "npm run build",
@@ -34,10 +34,10 @@
34
34
  "homepage": "https://necord.org",
35
35
  "repository": {
36
36
  "type": "git",
37
- "url": "https://github.com/SocketSomeone/necord"
37
+ "url": "https://github.com/necordjs/necord"
38
38
  },
39
39
  "bugs": {
40
- "url": "https://github.com/SocketSomeone/necord/issues"
40
+ "url": "https://github.com/necordjs/necord/issues"
41
41
  },
42
42
  "author": "Alexey Filippov <socket.someone@gmail.com>",
43
43
  "contributors": [
@@ -53,7 +53,7 @@
53
53
  "@types/node": "17.0.17",
54
54
  "@typescript-eslint/eslint-plugin": "5.11.0",
55
55
  "@typescript-eslint/parser": "5.11.0",
56
- "discord.js": "13.6.0",
56
+ "discord.js": "13.7.0",
57
57
  "eslint": "8.8.0",
58
58
  "eslint-config-prettier": "8.3.0",
59
59
  "eslint-plugin-prettier": "4.0.0",
@@ -69,7 +69,7 @@
69
69
  "peerDependencies": {
70
70
  "@nestjs/common": "^8.0.0",
71
71
  "@nestjs/core": "^8.0.0",
72
- "discord.js": "^13.3.1",
72
+ "discord.js": "^13.7.0",
73
73
  "reflect-metadata": "^0.1.13",
74
74
  "rxjs": "^7.2.0"
75
75
  },
@@ -1,6 +0,0 @@
1
- import { ApplicationCommandPermissionData } from 'discord.js';
2
- export declare const Permissions: (...permissions: TypedPermissions<unknown>) => ClassDecorator & MethodDecorator;
3
- export declare const UserPermissions: (...permissions: TypedPermissions<string>) => ClassDecorator & MethodDecorator;
4
- export declare const RolePermissions: (...permissions: TypedPermissions<string>) => ClassDecorator & MethodDecorator;
5
- declare type TypedPermissions<T> = Omit<ApplicationCommandPermissionData, T extends string ? 'type' : never>[];
6
- export {};
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RolePermissions = exports.UserPermissions = exports.Permissions = void 0;
4
- const necord_constants_1 = require("../necord.constants");
5
- exports.Permissions = createNecordPermissionsDecorator();
6
- exports.UserPermissions = createNecordPermissionsDecorator('USER');
7
- exports.RolePermissions = createNecordPermissionsDecorator('ROLE');
8
- function createNecordPermissionsDecorator(type) {
9
- return (...permissions) => (target, propertyKey) => {
10
- var _a, _b;
11
- const metadataTarget = (_a = target[propertyKey]) !== null && _a !== void 0 ? _a : target;
12
- const existing = (_b = Reflect.getMetadata(necord_constants_1.PERMISSIONS_METADATA, metadataTarget)) !== null && _b !== void 0 ? _b : [];
13
- Reflect.defineMetadata(necord_constants_1.PERMISSIONS_METADATA, existing
14
- .concat(permissions)
15
- .map(permission => { var _a; return (Object.assign(Object.assign({}, permission), { type: (_a = permission.type) !== null && _a !== void 0 ? _a : type })); }), metadataTarget);
16
- };
17
- }