@globalart/nestcord 2.3.1 → 2.5.0-0
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/dist/core/src/text-commands/text-command.discovery.d.ts +2 -0
- package/dist/core/src/text-commands/text-command.discovery.js +4 -0
- package/dist/core/src/text-commands/text-commands.service.js +8 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/lavalink/src/nestcord-lavalink.service.d.ts +1 -1
- package/dist/sharding/index.d.ts +1 -0
- package/dist/sharding/index.js +17 -0
- package/dist/sharding/src/index.d.ts +6 -0
- package/dist/sharding/src/index.js +22 -0
- package/dist/sharding/src/listeners/decorators/index.d.ts +2 -0
- package/dist/sharding/src/listeners/decorators/index.js +18 -0
- package/dist/sharding/src/listeners/decorators/listener.decorator.d.ts +5 -0
- package/dist/sharding/src/listeners/decorators/listener.decorator.js +10 -0
- package/dist/sharding/src/listeners/decorators/on.decorator.d.ts +17 -0
- package/dist/sharding/src/listeners/decorators/on.decorator.js +31 -0
- package/dist/sharding/src/listeners/enums/index.d.ts +2 -0
- package/dist/sharding/src/listeners/enums/index.js +18 -0
- package/dist/sharding/src/listeners/enums/listener-host-type.enum.d.ts +4 -0
- package/dist/sharding/src/listeners/enums/listener-host-type.enum.js +8 -0
- package/dist/sharding/src/listeners/enums/listener-type.enum.d.ts +4 -0
- package/dist/sharding/src/listeners/enums/listener-type.enum.js +8 -0
- package/dist/sharding/src/listeners/index.d.ts +4 -0
- package/dist/sharding/src/listeners/index.js +20 -0
- package/dist/sharding/src/listeners/interfaces/index.d.ts +2 -0
- package/dist/sharding/src/listeners/interfaces/index.js +18 -0
- package/dist/sharding/src/listeners/interfaces/listener-events.interface.d.ts +24 -0
- package/dist/sharding/src/listeners/interfaces/listener-events.interface.js +2 -0
- package/dist/sharding/src/listeners/interfaces/listener-meta.interface.d.ts +7 -0
- package/dist/sharding/src/listeners/interfaces/listener-meta.interface.js +2 -0
- package/dist/sharding/src/listeners/listeners.module.d.ts +11 -0
- package/dist/sharding/src/listeners/listeners.module.js +86 -0
- package/dist/sharding/src/nestcord-sharding-options.interface.d.ts +33 -0
- package/dist/sharding/src/nestcord-sharding-options.interface.js +2 -0
- package/dist/sharding/src/nestcord-sharding.module-definition.d.ts +2 -0
- package/dist/sharding/src/nestcord-sharding.module-definition.js +9 -0
- package/dist/sharding/src/nestcord-sharding.module.d.ts +12 -0
- package/dist/sharding/src/nestcord-sharding.module.js +65 -0
- package/dist/sharding/src/nestcord-sharding.service.d.ts +34 -0
- package/dist/sharding/src/nestcord-sharding.service.js +60 -0
- package/dist/sharding/src/providers/index.d.ts +1 -0
- package/dist/sharding/src/providers/index.js +17 -0
- package/dist/sharding/src/providers/sharding-manager.provider.d.ts +3 -0
- package/dist/sharding/src/providers/sharding-manager.provider.js +24 -0
- package/package.json +19 -19
|
@@ -2,6 +2,7 @@ import { NestCordBaseDiscovery } from '../context';
|
|
|
2
2
|
export interface TextCommandMeta {
|
|
3
3
|
name: string;
|
|
4
4
|
description: string;
|
|
5
|
+
aliases?: string[];
|
|
5
6
|
}
|
|
6
7
|
/**
|
|
7
8
|
* Represents a text command discovery.
|
|
@@ -9,6 +10,7 @@ export interface TextCommandMeta {
|
|
|
9
10
|
export declare class TextCommandDiscovery extends NestCordBaseDiscovery<TextCommandMeta> {
|
|
10
11
|
getName(): string;
|
|
11
12
|
getDescription(): string;
|
|
13
|
+
getAliases(): string[];
|
|
12
14
|
isTextCommand(): this is TextCommandDiscovery;
|
|
13
15
|
toJSON(): Record<string, any>;
|
|
14
16
|
}
|
|
@@ -12,6 +12,10 @@ class TextCommandDiscovery extends context_1.NestCordBaseDiscovery {
|
|
|
12
12
|
getDescription() {
|
|
13
13
|
return this.meta.description;
|
|
14
14
|
}
|
|
15
|
+
getAliases() {
|
|
16
|
+
var _a;
|
|
17
|
+
return (_a = this.meta.aliases) !== null && _a !== void 0 ? _a : [];
|
|
18
|
+
}
|
|
15
19
|
isTextCommand() {
|
|
16
20
|
return true;
|
|
17
21
|
}
|
|
@@ -20,10 +20,18 @@ let TextCommandsService = TextCommandsService_1 = class TextCommandsService {
|
|
|
20
20
|
}
|
|
21
21
|
add(textCommand) {
|
|
22
22
|
const name = textCommand.getName();
|
|
23
|
+
const aliases = textCommand.getAliases();
|
|
23
24
|
if (this.cache.has(name)) {
|
|
24
25
|
this.logger.warn(`TextCommand : ${name} already exists`);
|
|
25
26
|
}
|
|
26
27
|
this.cache.set(name, textCommand);
|
|
28
|
+
for (const alias of aliases) {
|
|
29
|
+
if (this.cache.has(alias)) {
|
|
30
|
+
this.logger.warn(`TextCommand alias : ${alias} already exists`);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
this.cache.set(alias, textCommand);
|
|
34
|
+
}
|
|
27
35
|
}
|
|
28
36
|
get(name) {
|
|
29
37
|
return this.cache.get(name);
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ export declare class NestCordLavalinkService {
|
|
|
4
4
|
private readonly lavalinkManager;
|
|
5
5
|
private readonly client;
|
|
6
6
|
constructor(lavalinkManager: LavalinkManager, client: Client);
|
|
7
|
-
lavalinkUtils: import("lavalink-client
|
|
7
|
+
lavalinkUtils: import("lavalink-client").ManagerUtils;
|
|
8
8
|
extractInfoForPlayer(base: Message | ChatInputCommandInteraction): {
|
|
9
9
|
guildId: string;
|
|
10
10
|
voiceChannelId: string;
|
|
@@ -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,22 @@
|
|
|
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("./listeners"), exports);
|
|
18
|
+
__exportStar(require("./providers"), exports);
|
|
19
|
+
__exportStar(require("./nestcord-sharding.module"), exports);
|
|
20
|
+
__exportStar(require("./nestcord-sharding.service"), exports);
|
|
21
|
+
__exportStar(require("./nestcord-sharding.module-definition"), exports);
|
|
22
|
+
__exportStar(require("./nestcord-sharding-options.interface"), exports);
|
|
@@ -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.decorator"), exports);
|
|
18
|
+
__exportStar(require("./on.decorator"), exports);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ShardingListenerMeta } from '../interfaces';
|
|
2
|
+
/**
|
|
3
|
+
* Decorator that marks a method as a listener for the ShardingManager or a Shard.
|
|
4
|
+
*/
|
|
5
|
+
export declare const ShardingListener: import("@nestjs/core").ReflectableDecorator<ShardingListenerMeta, ShardingListenerMeta>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ShardingListener = void 0;
|
|
4
|
+
const core_1 = require("@nestjs/core");
|
|
5
|
+
/**
|
|
6
|
+
* Decorator that marks a method as a listener for the ShardingManager or a Shard.
|
|
7
|
+
*/
|
|
8
|
+
exports.ShardingListener = core_1.Reflector.createDecorator({
|
|
9
|
+
transform: (options) => options,
|
|
10
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NestCordShardingManagerEvents, NestCordShardEvents } from '../interfaces';
|
|
2
|
+
/**
|
|
3
|
+
* Subscribes a method to an event on the ShardingManager.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* \@OnShardingManager('shardCreate')
|
|
7
|
+
* onShardCreate([shard]: ShardingManagerContextOf<'shardCreate'>) {}
|
|
8
|
+
*/
|
|
9
|
+
export declare const OnShardingManager: <K extends keyof NestCordShardingManagerEvents>(event: K) => import("@nestjs/common").CustomDecorator;
|
|
10
|
+
/**
|
|
11
|
+
* Subscribes a method to an event on every Shard as it is created.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* \@OnShard('ready')
|
|
15
|
+
* onShardReady([shard]: ShardContextOf<'ready'>) {}
|
|
16
|
+
*/
|
|
17
|
+
export declare const OnShard: <K extends keyof NestCordShardEvents>(event: K) => import("@nestjs/common").CustomDecorator;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnShard = exports.OnShardingManager = void 0;
|
|
4
|
+
const listener_decorator_1 = require("./listener.decorator");
|
|
5
|
+
const enums_1 = require("../enums");
|
|
6
|
+
/**
|
|
7
|
+
* Subscribes a method to an event on the ShardingManager.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* \@OnShardingManager('shardCreate')
|
|
11
|
+
* onShardCreate([shard]: ShardingManagerContextOf<'shardCreate'>) {}
|
|
12
|
+
*/
|
|
13
|
+
const OnShardingManager = (event) => (0, listener_decorator_1.ShardingListener)({
|
|
14
|
+
type: enums_1.ShardingListenerType.On,
|
|
15
|
+
event,
|
|
16
|
+
host: enums_1.ShardingHostType.ShardingManager,
|
|
17
|
+
});
|
|
18
|
+
exports.OnShardingManager = OnShardingManager;
|
|
19
|
+
/**
|
|
20
|
+
* Subscribes a method to an event on every Shard as it is created.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* \@OnShard('ready')
|
|
24
|
+
* onShardReady([shard]: ShardContextOf<'ready'>) {}
|
|
25
|
+
*/
|
|
26
|
+
const OnShard = (event) => (0, listener_decorator_1.ShardingListener)({
|
|
27
|
+
type: enums_1.ShardingListenerType.On,
|
|
28
|
+
event,
|
|
29
|
+
host: enums_1.ShardingHostType.Shard,
|
|
30
|
+
});
|
|
31
|
+
exports.OnShard = OnShard;
|
|
@@ -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-host-type.enum"), exports);
|
|
18
|
+
__exportStar(require("./listener-type.enum"), exports);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ShardingHostType = void 0;
|
|
4
|
+
var ShardingHostType;
|
|
5
|
+
(function (ShardingHostType) {
|
|
6
|
+
ShardingHostType["ShardingManager"] = "shardingManager";
|
|
7
|
+
ShardingHostType["Shard"] = "shard";
|
|
8
|
+
})(ShardingHostType || (exports.ShardingHostType = ShardingHostType = {}));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ShardingListenerType = void 0;
|
|
4
|
+
var ShardingListenerType;
|
|
5
|
+
(function (ShardingListenerType) {
|
|
6
|
+
ShardingListenerType["On"] = "on";
|
|
7
|
+
ShardingListenerType["Once"] = "once";
|
|
8
|
+
})(ShardingListenerType || (exports.ShardingListenerType = ShardingListenerType = {}));
|
|
@@ -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,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-events.interface"), exports);
|
|
18
|
+
__exportStar(require("./listener-meta.interface"), exports);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Shard } from 'discord.js';
|
|
2
|
+
import { ChildProcess } from 'node:child_process';
|
|
3
|
+
import { Worker } from 'node:worker_threads';
|
|
4
|
+
/**
|
|
5
|
+
* Events emitted by the ShardingManager itself.
|
|
6
|
+
*/
|
|
7
|
+
export interface NestCordShardingManagerEvents {
|
|
8
|
+
shardCreate: [shard: Shard];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Events emitted by individual Shard instances.
|
|
12
|
+
* These listeners are registered on every shard as it is created.
|
|
13
|
+
*/
|
|
14
|
+
export interface NestCordShardEvents {
|
|
15
|
+
death: [shard: Shard, process: ChildProcess | Worker];
|
|
16
|
+
disconnect: [shard: Shard];
|
|
17
|
+
error: [shard: Shard, error: Error];
|
|
18
|
+
message: [shard: Shard, message: unknown];
|
|
19
|
+
ready: [shard: Shard];
|
|
20
|
+
reconnecting: [shard: Shard];
|
|
21
|
+
resume: [shard: Shard];
|
|
22
|
+
spawn: [shard: Shard, process: ChildProcess | Worker];
|
|
23
|
+
}
|
|
24
|
+
export type NestCordShardingEvents = NestCordShardingManagerEvents & NestCordShardEvents;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { NestCordShardingEvents } from './listener-events.interface';
|
|
2
|
+
import { ShardingHostType, ShardingListenerType } from '../enums';
|
|
3
|
+
export interface ShardingListenerMeta {
|
|
4
|
+
type: ShardingListenerType;
|
|
5
|
+
event: keyof NestCordShardingEvents;
|
|
6
|
+
host: ShardingHostType;
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { OnModuleInit } from '@nestjs/common';
|
|
2
|
+
import { DiscoveryService, MetadataScanner, Reflector } from '@nestjs/core';
|
|
3
|
+
import { ShardingManager } from 'discord.js';
|
|
4
|
+
export declare class ShardingListenersModule implements OnModuleInit {
|
|
5
|
+
private readonly discoveryService;
|
|
6
|
+
private readonly metadataScanner;
|
|
7
|
+
private readonly reflector;
|
|
8
|
+
private readonly shardingManager;
|
|
9
|
+
constructor(discoveryService: DiscoveryService, metadataScanner: MetadataScanner, reflector: Reflector, shardingManager: ShardingManager);
|
|
10
|
+
onModuleInit(): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
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.ShardingListenersModule = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const core_1 = require("@nestjs/core");
|
|
15
|
+
const discord_js_1 = require("discord.js");
|
|
16
|
+
const decorators_1 = require("./decorators");
|
|
17
|
+
const enums_1 = require("./enums");
|
|
18
|
+
let ShardingListenersModule = class ShardingListenersModule {
|
|
19
|
+
constructor(discoveryService, metadataScanner, reflector, shardingManager) {
|
|
20
|
+
this.discoveryService = discoveryService;
|
|
21
|
+
this.metadataScanner = metadataScanner;
|
|
22
|
+
this.reflector = reflector;
|
|
23
|
+
this.shardingManager = shardingManager;
|
|
24
|
+
}
|
|
25
|
+
onModuleInit() {
|
|
26
|
+
var _a;
|
|
27
|
+
const groupedListeners = new Map();
|
|
28
|
+
const wrappers = this.discoveryService.getProviders().filter((wrapper) => {
|
|
29
|
+
const { instance } = wrapper;
|
|
30
|
+
const prototype = instance ? Object.getPrototypeOf(instance) : null;
|
|
31
|
+
return instance && prototype && wrapper.isDependencyTreeStatic();
|
|
32
|
+
});
|
|
33
|
+
for (const wrapper of wrappers) {
|
|
34
|
+
const instance = wrapper.instance;
|
|
35
|
+
const prototype = Object.getPrototypeOf(instance);
|
|
36
|
+
const methods = this.metadataScanner.getAllMethodNames(prototype);
|
|
37
|
+
for (const method of methods) {
|
|
38
|
+
const meta = this.reflector.get(decorators_1.ShardingListener, instance[method]);
|
|
39
|
+
if (!meta)
|
|
40
|
+
continue;
|
|
41
|
+
const key = `${meta.event}:${meta.host}`;
|
|
42
|
+
const listeners = (_a = groupedListeners.get(key)) !== null && _a !== void 0 ? _a : [];
|
|
43
|
+
listeners.push(Object.assign(Object.assign({}, meta), { run: instance[method].bind(instance) }));
|
|
44
|
+
groupedListeners.set(key, listeners);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
for (const [key, listeners] of groupedListeners) {
|
|
48
|
+
const [event, host] = key.split(':');
|
|
49
|
+
if (host === enums_1.ShardingHostType.ShardingManager) {
|
|
50
|
+
/**
|
|
51
|
+
* ShardingManager extends EventEmitter. Casting to EventEmitter lets us
|
|
52
|
+
* register listeners with a dynamic event name without bypassing type safety —
|
|
53
|
+
* EventEmitter.on(event: string) is the correct untyped surface for this.
|
|
54
|
+
*/
|
|
55
|
+
this.shardingManager.on(event, (...args) => {
|
|
56
|
+
for (const listener of listeners) {
|
|
57
|
+
listener.run(args);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
if (host === enums_1.ShardingHostType.Shard) {
|
|
62
|
+
/**
|
|
63
|
+
* Shard also extends EventEmitter. We subscribe to shardCreate on the manager
|
|
64
|
+
* so that every new Shard gets the same listener registered on it immediately.
|
|
65
|
+
*/
|
|
66
|
+
this.shardingManager.on('shardCreate', (shard) => {
|
|
67
|
+
shard.on(event, (...args) => {
|
|
68
|
+
for (const listener of listeners) {
|
|
69
|
+
listener.run(args);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
exports.ShardingListenersModule = ShardingListenersModule;
|
|
78
|
+
exports.ShardingListenersModule = ShardingListenersModule = __decorate([
|
|
79
|
+
(0, common_1.Module)({
|
|
80
|
+
imports: [core_1.DiscoveryModule],
|
|
81
|
+
}),
|
|
82
|
+
__metadata("design:paramtypes", [core_1.DiscoveryService,
|
|
83
|
+
core_1.MetadataScanner,
|
|
84
|
+
core_1.Reflector,
|
|
85
|
+
discord_js_1.ShardingManager])
|
|
86
|
+
], ShardingListenersModule);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ShardingManagerOptions } from 'discord.js';
|
|
2
|
+
export interface NestCordShardingSpawnOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Number of shards to spawn, or 'auto' to use Discord's recommendation.
|
|
5
|
+
* @default 'auto'
|
|
6
|
+
*/
|
|
7
|
+
amount?: number | 'auto';
|
|
8
|
+
/**
|
|
9
|
+
* Delay in milliseconds between each shard spawn.
|
|
10
|
+
* @default 5500
|
|
11
|
+
*/
|
|
12
|
+
delay?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Timeout in milliseconds to wait for a shard to become ready.
|
|
15
|
+
* @default 30000
|
|
16
|
+
*/
|
|
17
|
+
timeout?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface NestCordShardingModuleOptions extends ShardingManagerOptions {
|
|
20
|
+
/**
|
|
21
|
+
* Path to the bot script file that each shard will run.
|
|
22
|
+
*/
|
|
23
|
+
file: string;
|
|
24
|
+
/**
|
|
25
|
+
* Whether to automatically spawn shards when the module initializes.
|
|
26
|
+
* @default true
|
|
27
|
+
*/
|
|
28
|
+
autoSpawn?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Options passed to ShardingManager.spawn().
|
|
31
|
+
*/
|
|
32
|
+
spawnOptions?: NestCordShardingSpawnOptions;
|
|
33
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { NestCordShardingModuleOptions } from './nestcord-sharding-options.interface';
|
|
2
|
+
export declare const NestCordShardingConfigurableModule: import("@nestjs/common").ConfigurableModuleCls<NestCordShardingModuleOptions, "forRoot", "createNestCordShardingOptions", {}>, SHARDING_MODULE_OPTIONS: string | symbol;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SHARDING_MODULE_OPTIONS = exports.NestCordShardingConfigurableModule = void 0;
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
_a = new common_1.ConfigurableModuleBuilder()
|
|
7
|
+
.setClassMethodName('forRoot')
|
|
8
|
+
.setFactoryMethodName('createNestCordShardingOptions')
|
|
9
|
+
.build(), exports.NestCordShardingConfigurableModule = _a.ConfigurableModuleClass, exports.SHARDING_MODULE_OPTIONS = _a.MODULE_OPTIONS_TOKEN;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { OnApplicationShutdown, OnModuleInit } from '@nestjs/common';
|
|
2
|
+
import { ShardingManager } from 'discord.js';
|
|
3
|
+
import { NestCordShardingConfigurableModule } from './nestcord-sharding.module-definition';
|
|
4
|
+
import { NestCordShardingModuleOptions } from './nestcord-sharding-options.interface';
|
|
5
|
+
export declare class NestCordShardingModule extends NestCordShardingConfigurableModule implements OnModuleInit, OnApplicationShutdown {
|
|
6
|
+
private readonly shardingManager;
|
|
7
|
+
private readonly options;
|
|
8
|
+
private readonly logger;
|
|
9
|
+
constructor(shardingManager: ShardingManager, options: NestCordShardingModuleOptions);
|
|
10
|
+
onModuleInit(): Promise<void>;
|
|
11
|
+
onApplicationShutdown(): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
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 NestCordShardingModule_1;
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.NestCordShardingModule = void 0;
|
|
26
|
+
const common_1 = require("@nestjs/common");
|
|
27
|
+
const discord_js_1 = require("discord.js");
|
|
28
|
+
const nestcord_sharding_module_definition_1 = require("./nestcord-sharding.module-definition");
|
|
29
|
+
const nestcord_sharding_service_1 = require("./nestcord-sharding.service");
|
|
30
|
+
const listeners_1 = require("./listeners");
|
|
31
|
+
const ProvidersMap = require("./providers");
|
|
32
|
+
const Providers = Object.values(ProvidersMap);
|
|
33
|
+
let NestCordShardingModule = NestCordShardingModule_1 = class NestCordShardingModule extends nestcord_sharding_module_definition_1.NestCordShardingConfigurableModule {
|
|
34
|
+
constructor(shardingManager, options) {
|
|
35
|
+
super();
|
|
36
|
+
this.shardingManager = shardingManager;
|
|
37
|
+
this.options = options;
|
|
38
|
+
this.logger = new common_1.Logger(NestCordShardingModule_1.name);
|
|
39
|
+
}
|
|
40
|
+
onModuleInit() {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
if (this.options.autoSpawn === false) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
this.logger.log('Spawning shards...');
|
|
46
|
+
const shards = yield this.shardingManager.spawn(this.options.spawnOptions);
|
|
47
|
+
this.logger.log(`${shards.size} shard(s) spawned successfully`);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
onApplicationShutdown() {
|
|
51
|
+
this.logger.log('Shutting down NestCord Sharding Module');
|
|
52
|
+
this.shardingManager.shards.forEach((shard) => shard.kill());
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
exports.NestCordShardingModule = NestCordShardingModule;
|
|
56
|
+
exports.NestCordShardingModule = NestCordShardingModule = NestCordShardingModule_1 = __decorate([
|
|
57
|
+
(0, common_1.Global)(),
|
|
58
|
+
(0, common_1.Module)({
|
|
59
|
+
imports: [listeners_1.ShardingListenersModule],
|
|
60
|
+
providers: [nestcord_sharding_service_1.NestCordShardingService, ...Providers],
|
|
61
|
+
exports: [nestcord_sharding_service_1.NestCordShardingService, ...Providers],
|
|
62
|
+
}),
|
|
63
|
+
__param(1, (0, common_1.Inject)(nestcord_sharding_module_definition_1.SHARDING_MODULE_OPTIONS)),
|
|
64
|
+
__metadata("design:paramtypes", [discord_js_1.ShardingManager, Object])
|
|
65
|
+
], NestCordShardingModule);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Collection, Shard, ShardingManager } from 'discord.js';
|
|
2
|
+
import { NestCordShardingSpawnOptions } from './nestcord-sharding-options.interface';
|
|
3
|
+
export declare class NestCordShardingService {
|
|
4
|
+
private readonly shardingManager;
|
|
5
|
+
constructor(shardingManager: ShardingManager);
|
|
6
|
+
/**
|
|
7
|
+
* Returns all spawned shards.
|
|
8
|
+
*/
|
|
9
|
+
get shards(): Collection<number, Shard>;
|
|
10
|
+
/**
|
|
11
|
+
* Spawns shards. Resolves once all shards are ready.
|
|
12
|
+
*/
|
|
13
|
+
spawn(options?: NestCordShardingSpawnOptions): Promise<Collection<number, Shard>>;
|
|
14
|
+
/**
|
|
15
|
+
* Sends a message to all shards.
|
|
16
|
+
*/
|
|
17
|
+
broadcast(message: unknown): Promise<unknown[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Evaluates a script on all shards and returns the results.
|
|
20
|
+
*/
|
|
21
|
+
broadcastEval<T>(fn: Parameters<ShardingManager['broadcastEval']>[0], options?: Parameters<ShardingManager['broadcastEval']>[1]): Promise<T[]>;
|
|
22
|
+
/**
|
|
23
|
+
* Fetches a property from all shards' clients and returns the values as an array.
|
|
24
|
+
*/
|
|
25
|
+
fetchClientValues(prop: string, shard?: number): Promise<unknown>;
|
|
26
|
+
/**
|
|
27
|
+
* Kills and restarts all shards.
|
|
28
|
+
*/
|
|
29
|
+
respawnAll(options?: {
|
|
30
|
+
shardDelay?: number;
|
|
31
|
+
respawnDelay?: number;
|
|
32
|
+
timeout?: number;
|
|
33
|
+
}): Promise<Collection<number, Shard>>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
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.NestCordShardingService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const discord_js_1 = require("discord.js");
|
|
15
|
+
let NestCordShardingService = class NestCordShardingService {
|
|
16
|
+
constructor(shardingManager) {
|
|
17
|
+
this.shardingManager = shardingManager;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Returns all spawned shards.
|
|
21
|
+
*/
|
|
22
|
+
get shards() {
|
|
23
|
+
return this.shardingManager.shards;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Spawns shards. Resolves once all shards are ready.
|
|
27
|
+
*/
|
|
28
|
+
spawn(options) {
|
|
29
|
+
return this.shardingManager.spawn(options);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Sends a message to all shards.
|
|
33
|
+
*/
|
|
34
|
+
broadcast(message) {
|
|
35
|
+
return this.shardingManager.broadcast(message);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Evaluates a script on all shards and returns the results.
|
|
39
|
+
*/
|
|
40
|
+
broadcastEval(fn, options) {
|
|
41
|
+
return this.shardingManager.broadcastEval(fn, options);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Fetches a property from all shards' clients and returns the values as an array.
|
|
45
|
+
*/
|
|
46
|
+
fetchClientValues(prop, shard) {
|
|
47
|
+
return this.shardingManager.fetchClientValues(prop, shard);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Kills and restarts all shards.
|
|
51
|
+
*/
|
|
52
|
+
respawnAll(options) {
|
|
53
|
+
return this.shardingManager.respawnAll(options);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
exports.NestCordShardingService = NestCordShardingService;
|
|
57
|
+
exports.NestCordShardingService = NestCordShardingService = __decorate([
|
|
58
|
+
(0, common_1.Injectable)(),
|
|
59
|
+
__metadata("design:paramtypes", [discord_js_1.ShardingManager])
|
|
60
|
+
], NestCordShardingService);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './sharding-manager.provider';
|
|
@@ -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("./sharding-manager.provider"), exports);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.ShardingManagerProvider = void 0;
|
|
15
|
+
const discord_js_1 = require("discord.js");
|
|
16
|
+
const nestcord_sharding_module_definition_1 = require("../nestcord-sharding.module-definition");
|
|
17
|
+
exports.ShardingManagerProvider = {
|
|
18
|
+
provide: discord_js_1.ShardingManager,
|
|
19
|
+
useFactory: (options) => {
|
|
20
|
+
const { file, autoSpawn, spawnOptions } = options, managerOptions = __rest(options, ["file", "autoSpawn", "spawnOptions"]);
|
|
21
|
+
return new discord_js_1.ShardingManager(file, managerOptions);
|
|
22
|
+
},
|
|
23
|
+
inject: [nestcord_sharding_module_definition_1.SHARDING_MODULE_OPTIONS],
|
|
24
|
+
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@globalart/nestcord",
|
|
3
3
|
"description": "A module for creating Discord bots using NestJS, based on Discord.js",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.5.0-0",
|
|
5
5
|
"private": false,
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "rimraf dist && tsc -p tsconfig.build.json",
|
|
@@ -50,35 +50,35 @@
|
|
|
50
50
|
"@nestjs/axios": "^4.0.0",
|
|
51
51
|
"@nestjs/schedule": "^6.0.0",
|
|
52
52
|
"axios": "^1.9.0",
|
|
53
|
-
"cron": "4.
|
|
53
|
+
"cron": "4.4.0",
|
|
54
54
|
"deepmerge": "^4.3.1",
|
|
55
55
|
"lavalink-client": "^2.5.3",
|
|
56
56
|
"path-to-regexp": "^8.0.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
|
-
"@commitlint/cli": "
|
|
60
|
-
"@commitlint/config-angular": "
|
|
59
|
+
"@commitlint/cli": "20.5.0",
|
|
60
|
+
"@commitlint/config-angular": "20.5.0",
|
|
61
61
|
"@favware/npm-deprecate": "2.0.0",
|
|
62
|
-
"@nestjs/common": "11.1.
|
|
63
|
-
"@nestjs/core": "11.1.
|
|
62
|
+
"@nestjs/common": "11.1.18",
|
|
63
|
+
"@nestjs/core": "11.1.18",
|
|
64
64
|
"@nestjs/platform-express": "^11.1.1",
|
|
65
|
-
"@types/node": "
|
|
66
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
67
|
-
"@typescript-eslint/parser": "8.
|
|
68
|
-
"discord-api-types": "0.38.
|
|
69
|
-
"discord.js": "14.
|
|
70
|
-
"eslint": "
|
|
71
|
-
"eslint-config-prettier": "10.1.
|
|
72
|
-
"eslint-plugin-prettier": "5.5.
|
|
65
|
+
"@types/node": "25.5.2",
|
|
66
|
+
"@typescript-eslint/eslint-plugin": "8.58.0",
|
|
67
|
+
"@typescript-eslint/parser": "8.58.0",
|
|
68
|
+
"discord-api-types": "0.38.44",
|
|
69
|
+
"discord.js": "14.26.2",
|
|
70
|
+
"eslint": "10.2.0",
|
|
71
|
+
"eslint-config-prettier": "10.1.8",
|
|
72
|
+
"eslint-plugin-prettier": "5.5.5",
|
|
73
73
|
"husky": "9.1.7",
|
|
74
|
-
"lint-staged": "16.
|
|
75
|
-
"prettier": "3.
|
|
74
|
+
"lint-staged": "16.4.0",
|
|
75
|
+
"prettier": "3.8.1",
|
|
76
76
|
"reflect-metadata": "0.2.2",
|
|
77
|
-
"release-it": "19.
|
|
78
|
-
"rimraf": "6.
|
|
77
|
+
"release-it": "19.2.4",
|
|
78
|
+
"rimraf": "6.1.3",
|
|
79
79
|
"rxjs": "7.8.2",
|
|
80
80
|
"ts-node": "10.9.2",
|
|
81
|
-
"typescript": "5.
|
|
81
|
+
"typescript": "5.9.3"
|
|
82
82
|
},
|
|
83
83
|
"peerDependencies": {
|
|
84
84
|
"@nestjs/common": ">=10.2.0",
|