@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
@@ -0,0 +1,2 @@
1
+ export * from './listener-type.enum';
2
+ export * from './listener-host-type.enum';
@@ -0,0 +1,18 @@
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("./listener-type.enum"), exports);
18
+ __exportStar(require("./listener-host-type.enum"), exports);
@@ -0,0 +1,4 @@
1
+ export declare enum LavalinkHostType {
2
+ LavalinkManager = "lavalinkManager",
3
+ NodeManager = "nodeManager"
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LavalinkHostType = void 0;
4
+ var LavalinkHostType;
5
+ (function (LavalinkHostType) {
6
+ LavalinkHostType["LavalinkManager"] = "lavalinkManager";
7
+ LavalinkHostType["NodeManager"] = "nodeManager";
8
+ })(LavalinkHostType || (exports.LavalinkHostType = LavalinkHostType = {}));
@@ -0,0 +1,4 @@
1
+ export declare enum LavalinkListenerType {
2
+ On = "on",
3
+ Once = "once"
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LavalinkListenerType = void 0;
4
+ var LavalinkListenerType;
5
+ (function (LavalinkListenerType) {
6
+ LavalinkListenerType["On"] = "on";
7
+ LavalinkListenerType["Once"] = "once";
8
+ })(LavalinkListenerType || (exports.LavalinkListenerType = LavalinkListenerType = {}));
@@ -0,0 +1,4 @@
1
+ export * from './decorators';
2
+ export * from './enums';
3
+ export * from './interfaces';
4
+ export * from './listeners.module';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./decorators"), exports);
18
+ __exportStar(require("./enums"), exports);
19
+ __exportStar(require("./interfaces"), exports);
20
+ __exportStar(require("./listeners.module"), exports);
@@ -0,0 +1,2 @@
1
+ export * from './listener-meta.interface';
2
+ export * from './listener-events.interface';
@@ -0,0 +1,18 @@
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("./listener-meta.interface"), exports);
18
+ __exportStar(require("./listener-events.interface"), exports);
@@ -0,0 +1,8 @@
1
+ import { LavalinkManagerEvents, NodeManagerEvents } from 'lavalink-client';
2
+ type FormatEventInterface<T> = {
3
+ [K in keyof T]: T[K] extends (...args: infer P) => void ? P : never;
4
+ };
5
+ export type NestCordLavalinkManagerEvents = FormatEventInterface<LavalinkManagerEvents>;
6
+ export type NestCordNodeManagerEvents = FormatEventInterface<NodeManagerEvents>;
7
+ export type NestCordLavalinkEvents = NestCordLavalinkManagerEvents & NestCordNodeManagerEvents;
8
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ import { NestCordLavalinkEvents } from './listener-events.interface';
2
+ import { LavalinkHostType, LavalinkListenerType } from '../enums';
3
+ export interface LavalinkListenerMeta {
4
+ type: LavalinkListenerType;
5
+ event: keyof NestCordLavalinkEvents;
6
+ host: LavalinkHostType;
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,12 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { LavalinkManager, NodeManager } from 'lavalink-client';
3
+ import { DiscoveryService, MetadataScanner, Reflector } from '@nestjs/core';
4
+ export declare class LavalinkListenersModule implements OnModuleInit {
5
+ private readonly discoveryService;
6
+ private readonly metadataScanner;
7
+ private readonly reflector;
8
+ private readonly lavalinkManager;
9
+ private readonly nodeManager;
10
+ constructor(discoveryService: DiscoveryService, metadataScanner: MetadataScanner, reflector: Reflector, lavalinkManager: LavalinkManager, nodeManager: NodeManager);
11
+ onModuleInit(): void;
12
+ }
@@ -0,0 +1,81 @@
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.LavalinkListenersModule = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const lavalink_client_1 = require("lavalink-client");
15
+ const core_1 = require("@nestjs/core");
16
+ const decorators_1 = require("./decorators");
17
+ const enums_1 = require("./enums");
18
+ let LavalinkListenersModule = class LavalinkListenersModule {
19
+ constructor(discoveryService, metadataScanner, reflector, lavalinkManager, nodeManager) {
20
+ this.discoveryService = discoveryService;
21
+ this.metadataScanner = metadataScanner;
22
+ this.reflector = reflector;
23
+ this.lavalinkManager = lavalinkManager;
24
+ this.nodeManager = nodeManager;
25
+ }
26
+ onModuleInit() {
27
+ var _a;
28
+ const groupedListeners = new Map();
29
+ const wrappers = this.discoveryService.getProviders().filter((wrapper) => {
30
+ const { instance } = wrapper;
31
+ const prototype = instance ? Object.getPrototypeOf(instance) : null;
32
+ return instance && prototype && wrapper.isDependencyTreeStatic();
33
+ });
34
+ for (const wrapper of wrappers) {
35
+ const instance = wrapper.instance;
36
+ const prototype = Object.getPrototypeOf(instance);
37
+ const methods = this.metadataScanner.getAllMethodNames(prototype);
38
+ for (const method of methods) {
39
+ const meta = this.reflector.get(decorators_1.LavalinkListener, instance[method]);
40
+ if (!meta) {
41
+ continue;
42
+ }
43
+ const event = meta.event;
44
+ const host = meta.host;
45
+ const run = instance[method].bind(instance);
46
+ const key = `${event}:${host}`;
47
+ const listeners = (_a = groupedListeners.get(key)) !== null && _a !== void 0 ? _a : [];
48
+ listeners.push(Object.assign(Object.assign({}, meta), { run }));
49
+ groupedListeners.set(key, listeners);
50
+ }
51
+ }
52
+ for (const [key, listeners] of groupedListeners) {
53
+ const [event, host] = key.split(':');
54
+ if (host === enums_1.LavalinkHostType.LavalinkManager) {
55
+ this.lavalinkManager.on(event, (...args) => {
56
+ for (const listener of listeners) {
57
+ listener.run(args);
58
+ }
59
+ });
60
+ }
61
+ if (host === enums_1.LavalinkHostType.NodeManager) {
62
+ this.nodeManager.on(event, (...args) => {
63
+ for (const listener of listeners) {
64
+ listener.run(args);
65
+ }
66
+ });
67
+ }
68
+ }
69
+ }
70
+ };
71
+ exports.LavalinkListenersModule = LavalinkListenersModule;
72
+ exports.LavalinkListenersModule = LavalinkListenersModule = __decorate([
73
+ (0, common_1.Module)({
74
+ imports: [core_1.DiscoveryModule],
75
+ }),
76
+ __metadata("design:paramtypes", [core_1.DiscoveryService,
77
+ core_1.MetadataScanner,
78
+ core_1.Reflector,
79
+ lavalink_client_1.LavalinkManager,
80
+ lavalink_client_1.NodeManager])
81
+ ], LavalinkListenersModule);
@@ -0,0 +1,4 @@
1
+ import { ManagerOptions } from 'lavalink-client';
2
+ export interface NestCordLavalinkModuleOptions extends Omit<ManagerOptions, 'sendToShard'> {
3
+ sendToShard?: ManagerOptions['sendToShard'];
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ import { NestCordLavalinkModuleOptions } from './nestcord-lavalink-options.interface';
2
+ export declare const NestCordLavaLinkConfigurableModule: import("@nestjs/common").ConfigurableModuleCls<NestCordLavalinkModuleOptions, "forRoot", "createNestCordLavalinkOptions", {}>, LAVALINK_MODULE_OPTIONS: string | symbol;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.LAVALINK_MODULE_OPTIONS = exports.NestCordLavaLinkConfigurableModule = void 0;
5
+ const common_1 = require("@nestjs/common");
6
+ _a = new common_1.ConfigurableModuleBuilder()
7
+ .setClassMethodName('forRoot')
8
+ .setFactoryMethodName('createNestCordLavalinkOptions')
9
+ .build(), exports.NestCordLavaLinkConfigurableModule = _a.ConfigurableModuleClass, exports.LAVALINK_MODULE_OPTIONS = _a.MODULE_OPTIONS_TOKEN;
@@ -0,0 +1,15 @@
1
+ import { NestCordLavaLinkConfigurableModule } from './nestcord-lavalink.module-definition';
2
+ import { OnApplicationShutdown, OnModuleInit } from '@nestjs/common';
3
+ import { LavalinkManager, NodeManager } from 'lavalink-client';
4
+ import { Client } from 'discord.js';
5
+ import { NestCordLavalinkModuleOptions } from './nestcord-lavalink-options.interface';
6
+ export declare class NestCordLavalinkModule extends NestCordLavaLinkConfigurableModule implements OnModuleInit, OnApplicationShutdown {
7
+ private readonly client;
8
+ private readonly lavalinkManager;
9
+ private readonly nodeManager;
10
+ private readonly options;
11
+ private readonly logger;
12
+ constructor(client: Client, lavalinkManager: LavalinkManager, nodeManager: NodeManager, options: NestCordLavalinkModuleOptions);
13
+ onModuleInit(): void;
14
+ onApplicationShutdown(): void;
15
+ }
@@ -0,0 +1,79 @@
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 NestCordLavalinkModule_1;
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.NestCordLavalinkModule = void 0;
26
+ const nestcord_lavalink_module_definition_1 = require("./nestcord-lavalink.module-definition");
27
+ const common_1 = require("@nestjs/common");
28
+ const ProvidersMap = require("./providers");
29
+ const lavalink_client_1 = require("lavalink-client");
30
+ const discord_js_1 = require("discord.js");
31
+ const listeners_1 = require("./listeners");
32
+ const nestcord_lavalink_service_1 = require("./nestcord-lavalink.service");
33
+ const Providers = Object.values(ProvidersMap);
34
+ let NestCordLavalinkModule = NestCordLavalinkModule_1 = class NestCordLavalinkModule extends nestcord_lavalink_module_definition_1.NestCordLavaLinkConfigurableModule {
35
+ constructor(client, lavalinkManager, nodeManager, options) {
36
+ super();
37
+ this.client = client;
38
+ this.lavalinkManager = lavalinkManager;
39
+ this.nodeManager = nodeManager;
40
+ this.options = options;
41
+ this.logger = new common_1.Logger(NestCordLavalinkModule_1.name);
42
+ }
43
+ onModuleInit() {
44
+ this.client.on('ready', () => __awaiter(this, void 0, void 0, function* () {
45
+ var _a;
46
+ yield this.lavalinkManager.init((_a = this.options.client) !== null && _a !== void 0 ? _a : {
47
+ id: this.client.user.id,
48
+ username: this.client.user.username,
49
+ });
50
+ this.logger.log('Lavalink Manager Initialized');
51
+ }));
52
+ this.nodeManager.on('error', (node, error) => {
53
+ this.logger.error(`An error occured while connecting to the node: ${node.id}`, error.stack);
54
+ });
55
+ this.client.on('raw', (data) => {
56
+ this.lavalinkManager.sendRawData(data);
57
+ });
58
+ }
59
+ onApplicationShutdown() {
60
+ this.logger.log('Shutting down NestCord Lavalink Module');
61
+ this.lavalinkManager.removeAllListeners();
62
+ this.lavalinkManager.players.forEach((player) => player.destroy(lavalink_client_1.DestroyReasons.Disconnected));
63
+ this.lavalinkManager.nodeManager.removeAllListeners();
64
+ this.lavalinkManager.nodeManager.nodes.forEach((node) => node.destroy(lavalink_client_1.DestroyReasons.NodeDestroy));
65
+ }
66
+ };
67
+ exports.NestCordLavalinkModule = NestCordLavalinkModule;
68
+ exports.NestCordLavalinkModule = NestCordLavalinkModule = NestCordLavalinkModule_1 = __decorate([
69
+ (0, common_1.Global)(),
70
+ (0, common_1.Module)({
71
+ imports: [listeners_1.LavalinkListenersModule],
72
+ providers: [nestcord_lavalink_service_1.NestCordLavalinkService, ...Providers],
73
+ exports: [nestcord_lavalink_service_1.NestCordLavalinkService, ...Providers],
74
+ }),
75
+ __param(3, (0, common_1.Inject)(nestcord_lavalink_module_definition_1.LAVALINK_MODULE_OPTIONS)),
76
+ __metadata("design:paramtypes", [discord_js_1.Client,
77
+ lavalink_client_1.LavalinkManager,
78
+ lavalink_client_1.NodeManager, Object])
79
+ ], NestCordLavalinkModule);
@@ -0,0 +1,18 @@
1
+ import { ChatInputCommandInteraction, Client, Message, TextChannel, VoiceChannel } from 'discord.js';
2
+ import { LavalinkManager, Player } from 'lavalink-client';
3
+ export declare class NestCordLavalinkService {
4
+ private readonly lavalinkManager;
5
+ private readonly client;
6
+ constructor(lavalinkManager: LavalinkManager, client: Client);
7
+ lavalinkUtils: import("lavalink-client/dist/types").ManagerUtils;
8
+ extractInfoForPlayer(base: Message | ChatInputCommandInteraction): {
9
+ guildId: string;
10
+ voiceChannelId: string;
11
+ textChannelId: string;
12
+ };
13
+ extractPlayerData(player: Player): Promise<{
14
+ guild: import("discord.js").Guild;
15
+ voiceChannel: VoiceChannel;
16
+ textChannel: TextChannel;
17
+ }>;
18
+ }
@@ -0,0 +1,59 @@
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.NestCordLavalinkService = void 0;
22
+ const common_1 = require("@nestjs/common");
23
+ const discord_js_1 = require("discord.js");
24
+ const lavalink_client_1 = require("lavalink-client");
25
+ let NestCordLavalinkService = class NestCordLavalinkService {
26
+ constructor(lavalinkManager, client) {
27
+ this.lavalinkManager = lavalinkManager;
28
+ this.client = client;
29
+ this.lavalinkUtils = this.lavalinkManager.utils;
30
+ }
31
+ extractInfoForPlayer(base) {
32
+ var _a, _b, _c, _d;
33
+ const guildId = base.guildId;
34
+ const textChannelId = base.channelId;
35
+ let voiceChannelId = null;
36
+ if (base instanceof discord_js_1.Message) {
37
+ voiceChannelId = (_b = (_a = base.member) === null || _a === void 0 ? void 0 : _a.voice.channelId) !== null && _b !== void 0 ? _b : null;
38
+ }
39
+ else if (base instanceof discord_js_1.ChatInputCommandInteraction) {
40
+ voiceChannelId = (_d = (_c = base.member) === null || _c === void 0 ? void 0 : _c.voice.channelId) !== null && _d !== void 0 ? _d : null;
41
+ }
42
+ return { guildId, voiceChannelId, textChannelId };
43
+ }
44
+ extractPlayerData(player) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ return {
47
+ guild: yield this.client.guilds.fetch(player.guildId),
48
+ voiceChannel: (yield this.client.channels.fetch(player.voiceChannelId)),
49
+ textChannel: (yield this.client.channels.fetch(player.textChannelId)),
50
+ };
51
+ });
52
+ }
53
+ };
54
+ exports.NestCordLavalinkService = NestCordLavalinkService;
55
+ exports.NestCordLavalinkService = NestCordLavalinkService = __decorate([
56
+ (0, common_1.Injectable)(),
57
+ __metadata("design:paramtypes", [lavalink_client_1.LavalinkManager,
58
+ discord_js_1.Client])
59
+ ], NestCordLavalinkService);
@@ -0,0 +1,3 @@
1
+ export * from './lavalink-manager.provider';
2
+ export * from './node-manager.provider';
3
+ export * from './player.provider';
@@ -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("./lavalink-manager.provider"), exports);
18
+ __exportStar(require("./node-manager.provider"), exports);
19
+ __exportStar(require("./player.provider"), exports);
@@ -0,0 +1,3 @@
1
+ import { Provider } from '@nestjs/common';
2
+ import { LavalinkManager } from 'lavalink-client';
3
+ export declare const LavalinkManagerProvider: Provider<LavalinkManager>;
@@ -0,0 +1,22 @@
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.LavalinkManagerProvider = void 0;
13
+ const nestcord_lavalink_module_definition_1 = require("../nestcord-lavalink.module-definition");
14
+ const lavalink_client_1 = require("lavalink-client");
15
+ const discord_js_1 = require("discord.js");
16
+ exports.LavalinkManagerProvider = {
17
+ provide: lavalink_client_1.LavalinkManager,
18
+ useFactory: (client, options) => __awaiter(void 0, void 0, void 0, function* () {
19
+ return new lavalink_client_1.LavalinkManager(Object.assign({ sendToShard: (guildId, payload) => { var _a, _b; return (_b = (_a = client.guilds.cache.get(guildId)) === null || _a === void 0 ? void 0 : _a.shard) === null || _b === void 0 ? void 0 : _b.send(payload); } }, options));
20
+ }),
21
+ inject: [discord_js_1.Client, nestcord_lavalink_module_definition_1.LAVALINK_MODULE_OPTIONS],
22
+ };
@@ -0,0 +1,3 @@
1
+ import { Provider } from '@nestjs/common';
2
+ import { NodeManager } from 'lavalink-client';
3
+ export declare const NodeManagerProvider: Provider<NodeManager>;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeManagerProvider = void 0;
4
+ const lavalink_client_1 = require("lavalink-client");
5
+ exports.NodeManagerProvider = {
6
+ provide: lavalink_client_1.NodeManager,
7
+ useFactory: (lavalinkManager) => lavalinkManager.nodeManager,
8
+ inject: [lavalink_client_1.LavalinkManager],
9
+ };
@@ -0,0 +1,3 @@
1
+ import { Provider } from '@nestjs/common';
2
+ import { PlayerManager } from '../helpers/player-manager';
3
+ export declare const PlayerProvider: Provider<PlayerManager>;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlayerProvider = void 0;
4
+ const lavalink_client_1 = require("lavalink-client");
5
+ const player_manager_1 = require("../helpers/player-manager");
6
+ exports.PlayerProvider = {
7
+ provide: player_manager_1.PlayerManager,
8
+ useFactory: (lavalinkManager) => new player_manager_1.PlayerManager(lavalinkManager),
9
+ inject: [lavalink_client_1.LavalinkManager],
10
+ };
@@ -1,2 +1,2 @@
1
1
  import { NestCordLocalizationOptions } from './interfaces';
2
- export declare const NestCordLocalizationConfigurableModule: import("@nestjs/common").ConfigurableModuleCls<NestCordLocalizationOptions, "forRoot", "createModuleConfig", NestCordLocalizationOptions>, NESTCORD_LOCALIZATION_OPTIONS_TOKEN: string | symbol;
2
+ export declare const NestCordLocalizationConfigurableModule: import("@nestjs/common").ConfigurableModuleCls<NestCordLocalizationOptions, "forRoot", "createModuleConfig", NestCordLocalizationOptions>, NESTCORD_LOCALIZATION_OPTIONS_TOKEN: any;
@@ -1,8 +1,8 @@
1
1
  import { AxiosProxyConfig, Method, RawAxiosRequestHeaders } from 'axios';
2
2
  import { StatCronExpression } from '../enums';
3
- export interface ServiceOption {
3
+ export interface ServiceOptionAction {
4
4
  /**
5
- * The name of the stat service.
5
+ * The name of the action.
6
6
  */
7
7
  name: string;
8
8
  /**
@@ -17,6 +17,16 @@ export interface ServiceOption {
17
17
  * The body data to send to the stat service.
18
18
  */
19
19
  bodyData: Record<string, unknown>;
20
+ }
21
+ export interface ServiceOption {
22
+ /**
23
+ * The name of the stat service.
24
+ */
25
+ name: string;
26
+ /**
27
+ * Service actions
28
+ */
29
+ actions: ServiceOptionAction[];
20
30
  /**
21
31
  * The header data to include in the request to the stat service.
22
32
  */
@@ -70,15 +70,14 @@ let NestCordStatReporterService = NestCordStatReporterService_1 = class NestCord
70
70
  this.calculateServerCount(),
71
71
  Promise.resolve(((_a = this.shard) === null || _a === void 0 ? void 0 : _a.count) || 1),
72
72
  ]);
73
- const bodyData = (0, text_utils_1.replacePlaceholdersInObject)(service.bodyData, { serverCount, shardCount });
74
73
  const headerData = service.headerData || {};
75
- yield (0, rxjs_1.lastValueFrom)(this.httpService.request({
76
- method: service.method || 'POST',
77
- url: service.url,
78
- data: bodyData,
74
+ yield (0, rxjs_1.lastValueFrom)((0, rxjs_1.from)(service.actions).pipe((0, rxjs_1.mergeMap)((action) => this.httpService.request({
75
+ method: action.method || 'POST',
76
+ url: action.url,
77
+ data: (0, text_utils_1.replacePlaceholdersInObject)(action.bodyData, { serverCount, shardCount }),
79
78
  headers: headerData,
80
79
  proxy: service.proxy || this.options.proxy,
81
- }));
80
+ }))));
82
81
  this.logStats(service.name, serverCount, shardCount);
83
82
  }
84
83
  catch (err) {