@globalart/nestcord 1.7.16 → 2.2.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 (74) hide show
  1. package/README.md +11 -14
  2. package/dist/core/src/commands/slash-commands/decorators/subcommand-group.decorator.d.ts +1 -1
  3. package/dist/core/src/commands/slash-commands/decorators/subcommand.decorator.d.ts +1 -1
  4. package/dist/core/src/commands/slash-commands/slash-command.discovery.d.ts +43 -1
  5. package/dist/core/src/index.d.ts +1 -0
  6. package/dist/core/src/index.js +1 -0
  7. package/dist/core/src/interfaces/discord-app-asset.interface.d.ts +6 -0
  8. package/dist/core/src/interfaces/discord-app-asset.interface.js +2 -0
  9. package/dist/core/src/interfaces/index.d.ts +1 -0
  10. package/dist/core/src/interfaces/index.js +17 -0
  11. package/dist/core/src/message-components/decorators/selected.decorator.d.ts +5 -5
  12. package/dist/core/src/nestcord.consts.d.ts +1 -0
  13. package/dist/core/src/nestcord.consts.js +4 -0
  14. package/dist/core/src/nestcord.module.js +3 -1
  15. package/dist/core/src/nestcord.service.d.ts +21 -0
  16. package/dist/core/src/nestcord.service.js +96 -0
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.js +1 -0
  19. package/dist/lavalink/index.d.ts +1 -0
  20. package/dist/lavalink/index.js +17 -0
  21. package/dist/lavalink/src/context/index.d.ts +1 -0
  22. package/dist/lavalink/src/context/index.js +17 -0
  23. package/dist/lavalink/src/context/lavalink-context.interface.d.ts +3 -0
  24. package/dist/lavalink/src/context/lavalink-context.interface.js +2 -0
  25. package/dist/lavalink/src/helpers/index.d.ts +1 -0
  26. package/dist/lavalink/src/helpers/index.js +17 -0
  27. package/dist/lavalink/src/helpers/player-manager.d.ts +9 -0
  28. package/dist/lavalink/src/helpers/player-manager.js +32 -0
  29. package/dist/lavalink/src/index.d.ts +8 -0
  30. package/dist/lavalink/src/index.js +24 -0
  31. package/dist/lavalink/src/listeners/decorators/index.d.ts +3 -0
  32. package/dist/lavalink/src/listeners/decorators/index.js +19 -0
  33. package/dist/lavalink/src/listeners/decorators/listener.decorator.d.ts +7 -0
  34. package/dist/lavalink/src/listeners/decorators/listener.decorator.js +12 -0
  35. package/dist/lavalink/src/listeners/decorators/on.decorator.d.ts +13 -0
  36. package/dist/lavalink/src/listeners/decorators/on.decorator.js +23 -0
  37. package/dist/lavalink/src/listeners/decorators/once.decorator.d.ts +13 -0
  38. package/dist/lavalink/src/listeners/decorators/once.decorator.js +27 -0
  39. package/dist/lavalink/src/listeners/enums/index.d.ts +2 -0
  40. package/dist/lavalink/src/listeners/enums/index.js +18 -0
  41. package/dist/lavalink/src/listeners/enums/listener-host-type.enum.d.ts +4 -0
  42. package/dist/lavalink/src/listeners/enums/listener-host-type.enum.js +8 -0
  43. package/dist/lavalink/src/listeners/enums/listener-type.enum.d.ts +4 -0
  44. package/dist/lavalink/src/listeners/enums/listener-type.enum.js +8 -0
  45. package/dist/lavalink/src/listeners/index.d.ts +4 -0
  46. package/dist/lavalink/src/listeners/index.js +20 -0
  47. package/dist/lavalink/src/listeners/interfaces/index.d.ts +2 -0
  48. package/dist/lavalink/src/listeners/interfaces/index.js +18 -0
  49. package/dist/lavalink/src/listeners/interfaces/listener-events.interface.d.ts +8 -0
  50. package/dist/lavalink/src/listeners/interfaces/listener-events.interface.js +2 -0
  51. package/dist/lavalink/src/listeners/interfaces/listener-meta.interface.d.ts +7 -0
  52. package/dist/lavalink/src/listeners/interfaces/listener-meta.interface.js +2 -0
  53. package/dist/lavalink/src/listeners/listeners.module.d.ts +12 -0
  54. package/dist/lavalink/src/listeners/listeners.module.js +81 -0
  55. package/dist/lavalink/src/nestcord-lavalink-options.interface.d.ts +4 -0
  56. package/dist/lavalink/src/nestcord-lavalink-options.interface.js +2 -0
  57. package/dist/lavalink/src/nestcord-lavalink.module-definition.d.ts +2 -0
  58. package/dist/lavalink/src/nestcord-lavalink.module-definition.js +9 -0
  59. package/dist/lavalink/src/nestcord-lavalink.module.d.ts +15 -0
  60. package/dist/lavalink/src/nestcord-lavalink.module.js +79 -0
  61. package/dist/lavalink/src/nestcord-lavalink.service.d.ts +18 -0
  62. package/dist/lavalink/src/nestcord-lavalink.service.js +59 -0
  63. package/dist/lavalink/src/providers/index.d.ts +3 -0
  64. package/dist/lavalink/src/providers/index.js +19 -0
  65. package/dist/lavalink/src/providers/lavalink-manager.provider.d.ts +3 -0
  66. package/dist/lavalink/src/providers/lavalink-manager.provider.js +22 -0
  67. package/dist/lavalink/src/providers/node-manager.provider.d.ts +3 -0
  68. package/dist/lavalink/src/providers/node-manager.provider.js +9 -0
  69. package/dist/lavalink/src/providers/player.provider.d.ts +3 -0
  70. package/dist/lavalink/src/providers/player.provider.js +10 -0
  71. package/dist/localization/src/nestcord-localization.module-definition.d.ts +1 -1
  72. package/dist/stat-reporter/src/interfaces/nestcord-stat-reporter-options.interface.d.ts +12 -2
  73. package/dist/stat-reporter/src/nestcord-stat-reporter.service.js +5 -6
  74. package/package.json +34 -33
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  <div align="center">
2
2
  <h1>
3
- <a href="#"><img src="https://nestcord.globalart.dev/img/logo.png" alt ="NestCord Logo"></a>
3
+ <a href="#"><img src="https://nestcord.globalart.dev/img/logo.png" alt="NestCord Logo"></a>
4
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>
5
+ 🤖 A versatile NestJS module for creating <b><a href="https://discord.com/">Discord</a> bots</b>, powered by <a href="https://discord.js.org/">Discord.js</a>.
6
6
  <br/><br/>
7
- <a href="https://nestcord.globalart.dev">Documentation ✨</a> &emsp; <a href="https://github.com/GlobalArtInc/nestcord">Source code 🪡</a> &emsp; <a href="https://github.com/GlobalArtInc/nestcord/tree/master/examples">Examples 🛠️</a> &emsp; <a href="https://discord.gg/4Tc9hssSAv">Community 💬</a>
7
+ <a href="https://nestcord.globalart.dev">Documentation ✨</a> &emsp; <a href="https://github.com/GlobalArtInc/nestcord">Source Code 🪡</a> &emsp; <a href="https://github.com/GlobalArtInc/nestcord/tree/master/examples">Examples 🛠️</a> &emsp; <a href="https://discord.gg/4Tc9hssSAv">Community 💬</a>
8
8
  </div>
9
9
 
10
10
  <br/>
@@ -16,19 +16,16 @@
16
16
 
17
17
  ## About
18
18
 
19
- This package uses the best of the NodeJS world under the hood. [Discord.js](https://github.com/discordjs/discord.js) is the most powerful
20
- library for creating bots and [Nest.js](https://github.com/nestjs) is a progressive framework for creating well-architectured applications.
21
- This module provides fast and easy way for creating Discord bots and deep integration with your NestJS application.
19
+ NestCord is a NestJS module designed to streamline the creation of Discord bots by utilizing the power of [Discord.js](https://github.com/discordjs/discord.js) under the hood. This mono-repository offers a structured approach to bot development, allowing deep integration with NestJS’s ecosystem for a seamless and powerful bot-building experience.
22
20
 
23
- **Features**
21
+ ### Key Features
24
22
 
25
- - Simple. Flexible. Easy to use.
26
- - Ability to create custom decorators.
27
- - Interact with Discord (Slash Commands, Context Menus, Message Components, Listeners).
28
- - Full support of NestJS guards, interceptors, filters and pipes!
23
+ - **Easy Setup & Flexible Architecture:** Get started quickly with customizable components.
24
+ - **Powerful Custom Decorators:** Build reusable, specialized components.
25
+ - **Comprehensive Discord Interactions:** Supports Slash Commands, Context Menus, Message Components, and Event Listeners.
26
+ - **Full NestJS Compatibility:** Integrate with guards, interceptors, filters, and pipes for full NestJS support.
29
27
 
30
- For questions and support please use
31
- the [Issues](https://github.com/GlobalArtInc/nestcord/issues/new?assignees=&labels=question&template=question.yml).
28
+ For help and support, refer to the [Issues](https://github.com/GlobalArtInc/nestcord/issues/new?assignees=&labels=question&template=question.yml) page.
32
29
 
33
30
  ## Installation
34
31
 
@@ -38,4 +35,4 @@ the [Issues](https://github.com/GlobalArtInc/nestcord/issues/new?assignees=&labe
38
35
  $ npm i @globalart/nestcord discord.js
39
36
  $ yarn add @globalart/nestcord discord.js
40
37
  $ pnpm add @globalart/nestcord discord.js
41
- ```
38
+ ```
@@ -5,7 +5,7 @@ import { SlashCommandDiscovery, SlashCommandMeta } from '../slash-command.discov
5
5
  * @returns The decorated method.
6
6
  * @see SlashCommandDiscovery
7
7
  */
8
- export declare const SubcommandGroup: import("@nestjs/core").ReflectableDecorator<Omit<SlashCommandMeta, "type" | "defaultMemberPermissions" | "guilds" | "options">, SlashCommandDiscovery>;
8
+ export declare const SubcommandGroup: import("@nestjs/core").ReflectableDecorator<Omit<SlashCommandMeta, "type" | "defaultMemberPermissions" | "options" | "guilds">, SlashCommandDiscovery>;
9
9
  /**
10
10
  * Factory that creates a decorator that marks a class as a slash command group.
11
11
  * @param rootOptions
@@ -5,4 +5,4 @@ import { SlashCommandDiscovery, SlashCommandMeta } from '../slash-command.discov
5
5
  * @returns The decorated method.
6
6
  * @see SlashCommandDiscovery
7
7
  */
8
- export declare const Subcommand: import("@nestjs/core").ReflectableDecorator<Omit<SlashCommandMeta, "type" | "defaultMemberPermissions" | "guilds" | "options">, SlashCommandDiscovery>;
8
+ export declare const Subcommand: import("@nestjs/core").ReflectableDecorator<Omit<SlashCommandMeta, "type" | "defaultMemberPermissions" | "options" | "guilds">, SlashCommandDiscovery>;
@@ -68,6 +68,48 @@ export declare class SlashCommandDiscovery extends CommandDiscovery<SlashCommand
68
68
  /**
69
69
  * Returns the JSON representation of the discovery.
70
70
  */
71
- toJSON(): any;
71
+ toJSON(): {
72
+ options: any;
73
+ type: ApplicationCommandType.ChatInput;
74
+ category?: string;
75
+ guilds?: Snowflake[];
76
+ discordResponse?: ApplicationCommand;
77
+ description: string;
78
+ descriptionLocalizations?: import("discord.js").LocalizationMap;
79
+ name: string;
80
+ nameLocalizations?: import("discord.js").LocalizationMap;
81
+ dmPermission?: boolean;
82
+ defaultMemberPermissions?: import("discord.js").PermissionResolvable | null;
83
+ nsfw?: boolean;
84
+ contexts?: readonly import("discord.js").InteractionContextType[];
85
+ integrationTypes?: readonly import("discord.js").ApplicationIntegrationType[];
86
+ } | {
87
+ options: any;
88
+ type: ApplicationCommandOptionType.Subcommand;
89
+ category?: string;
90
+ guilds?: Snowflake[];
91
+ discordResponse?: ApplicationCommand;
92
+ name: string;
93
+ description: string;
94
+ descriptionLocalizations?: import("discord.js").LocalizationMap;
95
+ nameLocalizations?: import("discord.js").LocalizationMap;
96
+ autocomplete?: never;
97
+ } | {
98
+ options: any;
99
+ type: ApplicationCommandOptionType.SubcommandGroup;
100
+ guilds?: Snowflake[];
101
+ category?: string;
102
+ discordResponse?: ApplicationCommand;
103
+ name: string;
104
+ nameLocalizations?: import("discord.js").LocalizationMap;
105
+ dmPermission?: boolean;
106
+ defaultMemberPermissions?: import("discord.js").PermissionResolvable | null;
107
+ nsfw?: boolean;
108
+ contexts?: readonly import("discord.js").InteractionContextType[];
109
+ integrationTypes?: readonly import("discord.js").ApplicationIntegrationType[];
110
+ description: string;
111
+ descriptionLocalizations?: import("discord.js").LocalizationMap;
112
+ autocomplete?: never;
113
+ };
72
114
  }
73
115
  export {};
@@ -10,3 +10,4 @@ export * from './providers/client.provider';
10
10
  export * from './nestcord-explorer.service';
11
11
  export * from './nestcord-options.interface';
12
12
  export * from './providers/rest.provider';
13
+ export * from './nestcord.service';
@@ -26,3 +26,4 @@ __exportStar(require("./providers/client.provider"), exports);
26
26
  __exportStar(require("./nestcord-explorer.service"), exports);
27
27
  __exportStar(require("./nestcord-options.interface"), exports);
28
28
  __exportStar(require("./providers/rest.provider"), exports);
29
+ __exportStar(require("./nestcord.service"), exports);
@@ -0,0 +1,6 @@
1
+ export interface DiscordApplicationAsset {
2
+ id: string;
3
+ name: string;
4
+ type: number;
5
+ url: string;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
1
+ export * from './discord-app-asset.interface';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./discord-app-asset.interface"), exports);
@@ -1,10 +1,10 @@
1
1
  import { ChannelSelectMenuInteraction, MentionableSelectMenuInteraction, RoleSelectMenuInteraction, UserSelectMenuInteraction } from 'discord.js';
2
- export declare const SelectedStrings: (...dataOrPipes: any[]) => ParameterDecorator;
2
+ export declare const SelectedStrings: (...dataOrPipes: (void | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
3
3
  export type ISelectedChannels = ChannelSelectMenuInteraction['channels'];
4
- export declare const SelectedChannels: (...dataOrPipes: any[]) => ParameterDecorator;
4
+ export declare const SelectedChannels: (...dataOrPipes: (void | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
5
5
  export type ISelectedUsers = UserSelectMenuInteraction['users'] | MentionableSelectMenuInteraction['users'];
6
- export declare const SelectedUsers: (...dataOrPipes: any[]) => ParameterDecorator;
6
+ export declare const SelectedUsers: (...dataOrPipes: (void | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
7
7
  export type ISelectedMembers = UserSelectMenuInteraction['members'] | MentionableSelectMenuInteraction['members'];
8
- export declare const SelectedMembers: (...dataOrPipes: any[]) => ParameterDecorator;
8
+ export declare const SelectedMembers: (...dataOrPipes: (void | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
9
9
  export type ISelectedRoles = RoleSelectMenuInteraction['roles'] | MentionableSelectMenuInteraction['roles'];
10
- export declare const SelectedRoles: (...dataOrPipes: any[]) => ParameterDecorator;
10
+ export declare const SelectedRoles: (...dataOrPipes: (void | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
@@ -0,0 +1 @@
1
+ export declare const DISCORD_CDN_URL = "https://cdn.discordapp.com";
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DISCORD_CDN_URL = void 0;
4
+ exports.DISCORD_CDN_URL = 'https://cdn.discordapp.com';
@@ -23,6 +23,7 @@ const modals_1 = require("./modals");
23
23
  const nestcord_explorer_service_1 = require("./nestcord-explorer.service");
24
24
  const text_commands_1 = require("./text-commands");
25
25
  const core_1 = require("@nestjs/core");
26
+ const nestcord_service_1 = require("./nestcord.service");
26
27
  const ProvidersMap = require("./providers");
27
28
  const Providers = Object.values(ProvidersMap);
28
29
  let NestCordModule = class NestCordModule extends nestcord_module_definition_1.ConfigurableModuleClass {
@@ -50,7 +51,7 @@ exports.NestCordModule = NestCordModule = __decorate([
50
51
  modals_1.ModalsModule,
51
52
  text_commands_1.TextCommandsModule,
52
53
  ],
53
- providers: [nestcord_explorer_service_1.ExplorerService, ...Providers],
54
+ providers: [nestcord_explorer_service_1.ExplorerService, nestcord_service_1.NestCordService, ...Providers],
54
55
  exports: [
55
56
  commands_1.CommandsModule,
56
57
  listeners_1.ListenersModule,
@@ -58,6 +59,7 @@ exports.NestCordModule = NestCordModule = __decorate([
58
59
  modals_1.ModalsModule,
59
60
  text_commands_1.TextCommandsModule,
60
61
  nestcord_explorer_service_1.ExplorerService,
62
+ nestcord_service_1.NestCordService,
61
63
  ...Providers,
62
64
  nestcord_module_definition_1.NESTCORD_MODULE_OPTIONS,
63
65
  ],
@@ -0,0 +1,21 @@
1
+ import { OnApplicationBootstrap } from '@nestjs/common';
2
+ import { ApplicationEmoji, Client } from 'discord.js';
3
+ import { NestCordModuleOptions } from './nestcord-options.interface';
4
+ import { DiscordApplicationAsset } from './interfaces';
5
+ export declare class NestCordService implements OnApplicationBootstrap {
6
+ private readonly options;
7
+ private readonly discordClient;
8
+ private readonly dataFetchInterval;
9
+ private readonly logger;
10
+ private assetsMap;
11
+ private emojisMap;
12
+ constructor(options: NestCordModuleOptions, discordClient: Client);
13
+ onApplicationBootstrap(): void;
14
+ getApplicationEmoji(name: string): ApplicationEmoji | null;
15
+ getApplicationAsset(name: string): DiscordApplicationAsset | null;
16
+ getApplicationEmojiPlain(name: string): string;
17
+ private updateData;
18
+ private fetchEmojis;
19
+ private fetchApplicationAssets;
20
+ private getAssetUrl;
21
+ }
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ var NestCordService_1;
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.NestCordService = void 0;
26
+ const common_1 = require("@nestjs/common");
27
+ const discord_js_1 = require("discord.js");
28
+ const nestcord_module_definition_1 = require("./nestcord.module-definition");
29
+ const nestcord_consts_1 = require("./nestcord.consts");
30
+ let NestCordService = NestCordService_1 = class NestCordService {
31
+ constructor(options, discordClient) {
32
+ this.options = options;
33
+ this.discordClient = discordClient;
34
+ this.dataFetchInterval = 60000;
35
+ this.logger = new common_1.Logger(NestCordService_1.name);
36
+ this.assetsMap = new Map();
37
+ this.emojisMap = new Map();
38
+ }
39
+ onApplicationBootstrap() {
40
+ this.discordClient.once('ready', () => {
41
+ this.updateData();
42
+ setInterval(() => this.updateData(), this.dataFetchInterval);
43
+ });
44
+ }
45
+ getApplicationEmoji(name) {
46
+ return this.emojisMap.get(name) || null;
47
+ }
48
+ getApplicationAsset(name) {
49
+ return this.assetsMap.get(name) || null;
50
+ }
51
+ getApplicationEmojiPlain(name) {
52
+ const emoji = this.getApplicationEmoji(name);
53
+ return emoji ? emoji.toString() : '';
54
+ }
55
+ updateData() {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ yield Promise.allSettled([this.fetchEmojis(), this.fetchApplicationAssets()]);
58
+ });
59
+ }
60
+ fetchEmojis() {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ try {
63
+ yield this.discordClient.application.emojis.fetch();
64
+ this.emojisMap = new Map(this.discordClient.application.emojis.cache.map((emoji) => [emoji.name, emoji]));
65
+ }
66
+ catch (error) {
67
+ this.logger.error('Error fetching emojis:', error);
68
+ }
69
+ });
70
+ }
71
+ fetchApplicationAssets() {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ const rest = new discord_js_1.REST({ version: '10' }).setToken(this.options.token);
74
+ try {
75
+ const assets = yield rest.get(`/oauth2/applications/${this.discordClient.user.id}/assets`);
76
+ this.assetsMap = new Map(assets.map((asset) => [
77
+ asset.name,
78
+ Object.assign(Object.assign({}, asset), { url: this.getAssetUrl(asset.id) }),
79
+ ]));
80
+ }
81
+ catch (error) {
82
+ this.logger.error('Error fetching assets:', error);
83
+ throw error;
84
+ }
85
+ });
86
+ }
87
+ getAssetUrl(assetId) {
88
+ return `${nestcord_consts_1.DISCORD_CDN_URL}/app-assets/${this.discordClient.user.id}/${assetId}.png`;
89
+ }
90
+ };
91
+ exports.NestCordService = NestCordService;
92
+ exports.NestCordService = NestCordService = NestCordService_1 = __decorate([
93
+ (0, common_1.Injectable)(),
94
+ __param(0, (0, common_1.Inject)(nestcord_module_definition_1.NESTCORD_MODULE_OPTIONS)),
95
+ __metadata("design:paramtypes", [Object, discord_js_1.Client])
96
+ ], NestCordService);
package/dist/index.d.ts CHANGED
@@ -2,3 +2,4 @@ export * from './core';
2
2
  export * from './localization';
3
3
  export * from './pagination';
4
4
  export * from './stat-reporter';
5
+ export * from './lavalink';
package/dist/index.js CHANGED
@@ -18,3 +18,4 @@ __exportStar(require("./core"), exports);
18
18
  __exportStar(require("./localization"), exports);
19
19
  __exportStar(require("./pagination"), exports);
20
20
  __exportStar(require("./stat-reporter"), exports);
21
+ __exportStar(require("./lavalink"), exports);
@@ -0,0 +1 @@
1
+ export * from './src';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./src"), exports);
@@ -0,0 +1 @@
1
+ export * from './lavalink-context.interface';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./lavalink-context.interface"), exports);
@@ -0,0 +1,3 @@
1
+ import { NestCordLavalinkManagerEvents, NestCordNodeManagerEvents } from '../listeners';
2
+ export type LavalinkManagerContextOf<K extends keyof E, E = NestCordLavalinkManagerEvents> = E[K];
3
+ export type NodeManagerContextOf<K extends keyof E, E = NestCordNodeManagerEvents> = E[K];
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
1
+ export * from './player-manager';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./player-manager"), exports);
@@ -0,0 +1,9 @@
1
+ import { DestroyReasonsType, LavalinkManager, Player, PlayerOptions } from 'lavalink-client';
2
+ export declare class PlayerManager {
3
+ private readonly lavalinkManager;
4
+ constructor(lavalinkManager: LavalinkManager);
5
+ get(guildId: string): Player;
6
+ create(options: PlayerOptions): Player;
7
+ destroy(guildId: string, destroyReason?: DestroyReasonsType): Promise<void | Player>;
8
+ delete(guildId: string): void;
9
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PlayerManager = void 0;
13
+ class PlayerManager {
14
+ constructor(lavalinkManager) {
15
+ this.lavalinkManager = lavalinkManager;
16
+ }
17
+ get(guildId) {
18
+ return this.lavalinkManager.getPlayer(guildId);
19
+ }
20
+ create(options) {
21
+ return this.lavalinkManager.createPlayer(options);
22
+ }
23
+ destroy(guildId, destroyReason) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ return yield this.lavalinkManager.destroyPlayer(guildId, destroyReason);
26
+ });
27
+ }
28
+ delete(guildId) {
29
+ this.lavalinkManager.deletePlayer(guildId);
30
+ }
31
+ }
32
+ exports.PlayerManager = PlayerManager;
@@ -0,0 +1,8 @@
1
+ export * from './context';
2
+ export * from './helpers';
3
+ export * from './listeners';
4
+ export * from './providers';
5
+ export * from './nestcord-lavalink.module';
6
+ export * from './nestcord-lavalink.service';
7
+ export * from './nestcord-lavalink.module-definition';
8
+ export * from './nestcord-lavalink-options.interface';
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./context"), exports);
18
+ __exportStar(require("./helpers"), exports);
19
+ __exportStar(require("./listeners"), exports);
20
+ __exportStar(require("./providers"), exports);
21
+ __exportStar(require("./nestcord-lavalink.module"), exports);
22
+ __exportStar(require("./nestcord-lavalink.service"), exports);
23
+ __exportStar(require("./nestcord-lavalink.module-definition"), exports);
24
+ __exportStar(require("./nestcord-lavalink-options.interface"), exports);
@@ -0,0 +1,3 @@
1
+ export * from './on.decorator';
2
+ export * from './once.decorator';
3
+ export * from './listener.decorator';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./on.decorator"), exports);
18
+ __exportStar(require("./once.decorator"), exports);
19
+ __exportStar(require("./listener.decorator"), exports);
@@ -0,0 +1,7 @@
1
+ import { LavalinkListenerMeta } from '../interfaces';
2
+ /**
3
+ * Decorator that marks a method as a listener for discord.js client.
4
+ * @param options The listener options.
5
+ * @returns The decorated method.
6
+ */
7
+ export declare const LavalinkListener: import("@nestjs/core").ReflectableDecorator<LavalinkListenerMeta, LavalinkListenerMeta>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LavalinkListener = void 0;
4
+ const core_1 = require("@nestjs/core");
5
+ /**
6
+ * Decorator that marks a method as a listener for discord.js client.
7
+ * @param options The listener options.
8
+ * @returns The decorated method.
9
+ */
10
+ exports.LavalinkListener = core_1.Reflector.createDecorator({
11
+ transform: (options) => options,
12
+ });
@@ -0,0 +1,13 @@
1
+ import { NestCordLavalinkManagerEvents, NestCordNodeManagerEvents } from '../interfaces';
2
+ /**
3
+ * Decorator that marks a method as a listener for Lavalink client.
4
+ * @param event The event name.
5
+ * @returns The decorated method.
6
+ */
7
+ export declare const OnLavalinkManager: <K extends keyof NestCordLavalinkManagerEvents>(event: K) => import("@nestjs/common").CustomDecorator;
8
+ /**
9
+ * Decorator that marks a method as a listener for Lavalink client.
10
+ * @param event The event name.
11
+ * @returns The decorated method.
12
+ */
13
+ export declare const OnNodeManager: <K extends keyof NestCordNodeManagerEvents>(event: K) => import("@nestjs/common").CustomDecorator;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnNodeManager = exports.OnLavalinkManager = void 0;
4
+ const listener_decorator_1 = require("./listener.decorator");
5
+ const enums_1 = require("../enums");
6
+ /**
7
+ * Decorator that marks a method as a listener for Lavalink client.
8
+ * @param event The event name.
9
+ * @returns The decorated method.
10
+ */
11
+ const OnLavalinkManager = (event) => (0, listener_decorator_1.LavalinkListener)({
12
+ type: enums_1.LavalinkListenerType.On,
13
+ event,
14
+ host: enums_1.LavalinkHostType.LavalinkManager,
15
+ });
16
+ exports.OnLavalinkManager = OnLavalinkManager;
17
+ /**
18
+ * Decorator that marks a method as a listener for Lavalink client.
19
+ * @param event The event name.
20
+ * @returns The decorated method.
21
+ */
22
+ const OnNodeManager = (event) => (0, listener_decorator_1.LavalinkListener)({ type: enums_1.LavalinkListenerType.On, event, host: enums_1.LavalinkHostType.NodeManager });
23
+ exports.OnNodeManager = OnNodeManager;
@@ -0,0 +1,13 @@
1
+ import { NestCordLavalinkManagerEvents, NestCordNodeManagerEvents } from '../interfaces';
2
+ /**
3
+ * Decorator that marks a method as a listener for Lavalink client.
4
+ * @param event The event name.
5
+ * @returns The decorated method.
6
+ */
7
+ export declare const OnceLavalinkManager: <K extends keyof NestCordLavalinkManagerEvents>(event: K) => import("@nestjs/common").CustomDecorator;
8
+ /**
9
+ * Decorator that marks a method as a listener for Lavalink client.
10
+ * @param event The event name.
11
+ * @returns The decorated method.
12
+ */
13
+ export declare const OnceNodeManager: <K extends keyof NestCordNodeManagerEvents>(event: K) => import("@nestjs/common").CustomDecorator;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnceNodeManager = exports.OnceLavalinkManager = void 0;
4
+ const listener_decorator_1 = require("./listener.decorator");
5
+ const enums_1 = require("../enums");
6
+ /**
7
+ * Decorator that marks a method as a listener for Lavalink client.
8
+ * @param event The event name.
9
+ * @returns The decorated method.
10
+ */
11
+ const OnceLavalinkManager = (event) => (0, listener_decorator_1.LavalinkListener)({
12
+ type: enums_1.LavalinkListenerType.Once,
13
+ event,
14
+ host: enums_1.LavalinkHostType.LavalinkManager,
15
+ });
16
+ exports.OnceLavalinkManager = OnceLavalinkManager;
17
+ /**
18
+ * Decorator that marks a method as a listener for Lavalink client.
19
+ * @param event The event name.
20
+ * @returns The decorated method.
21
+ */
22
+ const OnceNodeManager = (event) => (0, listener_decorator_1.LavalinkListener)({
23
+ type: enums_1.LavalinkListenerType.Once,
24
+ event,
25
+ host: enums_1.LavalinkHostType.NodeManager,
26
+ });
27
+ exports.OnceNodeManager = OnceNodeManager;