reciple 9.8.0 → 10.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/assets/config/reciple.config.js +87 -0
- package/assets/config/reciple.config.ts +80 -0
- package/assets/global/README.md +1 -0
- package/assets/global/gitignore +121 -0
- package/assets/global/nodemon.json +13 -0
- package/assets/modules/javascript/Base.js +21 -0
- package/assets/modules/javascript/ClientEvent.js +14 -0
- package/assets/modules/javascript/ContextMenuCommand.js +17 -0
- package/assets/modules/javascript/Event.js +17 -0
- package/assets/modules/javascript/MessageCommand.js +16 -0
- package/assets/modules/javascript/RESTEvent.js +14 -0
- package/assets/modules/javascript/SlashCommand.js +16 -0
- package/assets/modules/typescript/Base.ts +17 -0
- package/assets/modules/typescript/ClientEvent.ts +15 -0
- package/assets/modules/typescript/ContextMenuCommand.ts +15 -0
- package/assets/modules/typescript/Event.ts +16 -0
- package/assets/modules/typescript/MessageCommand.ts +14 -0
- package/assets/modules/typescript/RESTEvent.ts +15 -0
- package/assets/modules/typescript/SlashCommand.ts +14 -0
- package/assets/templates/javascript/jsconfig.json +17 -0
- package/assets/templates/typescript/tsconfig.json +17 -0
- package/dist/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs +10 -0
- package/dist/bin/commands/build.d.mts +16 -0
- package/dist/bin/commands/build.mjs +24 -0
- package/dist/bin/commands/build.mjs.map +1 -0
- package/dist/bin/commands/create.d.mts +23 -0
- package/dist/bin/commands/create.mjs +48 -0
- package/dist/bin/commands/create.mjs.map +1 -0
- package/dist/bin/commands/createModule.d.mts +21 -0
- package/dist/bin/commands/createModule.mjs +40 -0
- package/dist/bin/commands/createModule.mjs.map +1 -0
- package/dist/bin/commands/start.d.mts +18 -0
- package/dist/bin/commands/start.mjs +104 -0
- package/dist/bin/commands/start.mjs.map +1 -0
- package/dist/bin/reciple.d.mts +1 -0
- package/dist/bin/reciple.mjs +9 -0
- package/dist/bin/reciple.mjs.map +1 -0
- package/dist/classes/NotAnError.d.mts +7 -0
- package/dist/classes/NotAnError.mjs +11 -0
- package/dist/classes/NotAnError.mjs.map +1 -0
- package/dist/classes/cli/CLI.d.mts +54 -0
- package/dist/classes/cli/CLI.mjs +156 -0
- package/dist/classes/cli/CLI.mjs.map +1 -0
- package/dist/classes/cli/CLISubcommand.d.mts +27 -0
- package/dist/classes/cli/CLISubcommand.mjs +23 -0
- package/dist/classes/cli/CLISubcommand.mjs.map +1 -0
- package/dist/classes/cli/ConfigReader.d.mts +81 -0
- package/dist/classes/cli/ConfigReader.mjs +141 -0
- package/dist/classes/cli/ConfigReader.mjs.map +1 -0
- package/dist/classes/cli/RuntimeEnvironment.d.mts +14 -0
- package/dist/classes/cli/RuntimeEnvironment.mjs +36 -0
- package/dist/classes/cli/RuntimeEnvironment.mjs.map +1 -0
- package/dist/classes/client/EventListeners.d.mts +26 -0
- package/dist/classes/client/EventListeners.mjs +103 -0
- package/dist/classes/client/EventListeners.mjs.map +1 -0
- package/dist/classes/client/ModuleLoader.d.mts +55 -0
- package/dist/classes/client/ModuleLoader.mjs +152 -0
- package/dist/classes/client/ModuleLoader.mjs.map +1 -0
- package/dist/classes/managers/ModuleManager.d.mts +55 -0
- package/dist/classes/managers/ModuleManager.mjs +107 -0
- package/dist/classes/managers/ModuleManager.mjs.map +1 -0
- package/dist/classes/modules/BaseModule.d.mts +34 -0
- package/dist/classes/modules/BaseModule.mjs +33 -0
- package/dist/classes/modules/BaseModule.mjs.map +1 -0
- package/dist/classes/modules/PostconditionModule.d.mts +20 -0
- package/dist/classes/modules/PostconditionModule.mjs +24 -0
- package/dist/classes/modules/PostconditionModule.mjs.map +1 -0
- package/dist/classes/modules/PreconditionModule.d.mts +20 -0
- package/dist/classes/modules/PreconditionModule.mjs +24 -0
- package/dist/classes/modules/PreconditionModule.mjs.map +1 -0
- package/dist/classes/modules/commands/ContextMenuCommandModule.d.mts +24 -0
- package/dist/classes/modules/commands/ContextMenuCommandModule.mjs +27 -0
- package/dist/classes/modules/commands/ContextMenuCommandModule.mjs.map +1 -0
- package/dist/classes/modules/commands/MessageCommandModule.d.mts +24 -0
- package/dist/classes/modules/commands/MessageCommandModule.mjs +27 -0
- package/dist/classes/modules/commands/MessageCommandModule.mjs.map +1 -0
- package/dist/classes/modules/commands/SlashCommandModule.d.mts +24 -0
- package/dist/classes/modules/commands/SlashCommandModule.mjs +27 -0
- package/dist/classes/modules/commands/SlashCommandModule.mjs.map +1 -0
- package/dist/classes/modules/events/ClientEventModule.d.mts +11 -0
- package/dist/classes/modules/events/ClientEventModule.mjs +10 -0
- package/dist/classes/modules/events/ClientEventModule.mjs.map +1 -0
- package/dist/classes/modules/events/EventModule.d.mts +29 -0
- package/dist/classes/modules/events/EventModule.mjs +26 -0
- package/dist/classes/modules/events/EventModule.mjs.map +1 -0
- package/dist/classes/modules/events/RESTEventModule.d.mts +11 -0
- package/dist/classes/modules/events/RESTEventModule.mjs +10 -0
- package/dist/classes/modules/events/RESTEventModule.mjs.map +1 -0
- package/dist/classes/templates/ModuleTemplateBuilder.d.mts +84 -0
- package/dist/classes/templates/ModuleTemplateBuilder.mjs +288 -0
- package/dist/classes/templates/ModuleTemplateBuilder.mjs.map +1 -0
- package/dist/classes/templates/TemplateBuilder.d.mts +78 -0
- package/dist/classes/templates/TemplateBuilder.mjs +351 -0
- package/dist/classes/templates/TemplateBuilder.mjs.map +1 -0
- package/dist/classes/validation/BaseModuleValidator.d.mts +23 -0
- package/dist/classes/validation/BaseModuleValidator.mjs +46 -0
- package/dist/classes/validation/BaseModuleValidator.mjs.map +1 -0
- package/dist/classes/validation/CommandModuleValidator.d.mts +12 -0
- package/dist/classes/validation/CommandModuleValidator.mjs +16 -0
- package/dist/classes/validation/CommandModuleValidator.mjs.map +1 -0
- package/dist/classes/validation/EventModuleValidator.d.mts +21 -0
- package/dist/classes/validation/EventModuleValidator.mjs +42 -0
- package/dist/classes/validation/EventModuleValidator.mjs.map +1 -0
- package/dist/classes/validation/PostconditionModule.d.mts +18 -0
- package/dist/classes/validation/PostconditionModule.mjs +34 -0
- package/dist/classes/validation/PostconditionModule.mjs.map +1 -0
- package/dist/classes/validation/PreconditionModule.d.mts +16 -0
- package/dist/classes/validation/PreconditionModule.mjs +29 -0
- package/dist/classes/validation/PreconditionModule.mjs.map +1 -0
- package/dist/helpers/constants.d.mts +19 -0
- package/dist/helpers/constants.mjs +28 -0
- package/dist/helpers/constants.mjs.map +1 -0
- package/dist/helpers/types.d.mts +20 -0
- package/dist/helpers/types.mjs +1 -0
- package/dist/index.d.mts +39 -0
- package/dist/index.mjs +39 -0
- package/dist/index.mjs.map +1 -0
- package/dist/package.mjs +79 -0
- package/dist/package.mjs.map +1 -0
- package/package.json +80 -66
- package/LICENSE +0 -674
- package/README.md +0 -206
- package/dist/bin.d.ts +0 -2
- package/dist/bin.js +0 -4
- package/dist/bin.js.map +0 -1
- package/dist/classes/CLI.d.ts +0 -55
- package/dist/classes/CLI.js +0 -191
- package/dist/classes/CLI.js.map +0 -1
- package/dist/classes/Config.d.ts +0 -26
- package/dist/classes/Config.js +0 -73
- package/dist/classes/Config.js.map +0 -1
- package/dist/classes/EventHandlers.d.ts +0 -9
- package/dist/classes/EventHandlers.js +0 -71
- package/dist/classes/EventHandlers.js.map +0 -1
- package/dist/classes/ModuleLoader.d.ts +0 -25
- package/dist/classes/ModuleLoader.js +0 -91
- package/dist/classes/ModuleLoader.js.map +0 -1
- package/dist/commands/init.d.ts +0 -7
- package/dist/commands/init.js +0 -10
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/modules.d.ts +0 -9
- package/dist/commands/modules.js +0 -33
- package/dist/commands/modules.js.map +0 -1
- package/dist/commands/shard.d.ts +0 -9
- package/dist/commands/shard.js +0 -102
- package/dist/commands/shard.js.map +0 -1
- package/dist/commands/start.d.ts +0 -9
- package/dist/commands/start.js +0 -95
- package/dist/commands/start.js.map +0 -1
- package/dist/exports.d.ts +0 -6
- package/dist/exports.js +0 -7
- package/dist/exports.js.map +0 -1
- package/dist/index.d.ts +0 -15
- package/dist/index.js +0 -8
- package/dist/index.js.map +0 -1
- package/dist/types/constants.d.ts +0 -6
- package/dist/types/constants.js +0 -29
- package/dist/types/constants.js.map +0 -1
- package/dist/types/structures.d.ts +0 -36
- package/dist/types/structures.js +0 -2
- package/dist/types/structures.js.map +0 -1
- package/static/config.d.mts +0 -5
- package/static/config.mjs +0 -105
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import {} from '../index.js';
|
|
2
|
-
import { RecipleModule } from '@reciple/core';
|
|
3
|
-
import { kleur } from 'fallout-utility';
|
|
4
|
-
export class EventHandlers {
|
|
5
|
-
constructor() { }
|
|
6
|
-
static addClientEvents(client) {
|
|
7
|
-
client.on('recipleDebug', debug => client.logger?.debug(debug));
|
|
8
|
-
client.modules.on('resolveModuleFileError', (file, error) => client.logger?.error(`Failed to resolve module ${kleur.yellow(EventHandlers.quoteString(file))}:`, error));
|
|
9
|
-
client.modules.on('preStartModule', (m) => {
|
|
10
|
-
if (!RecipleModule.getModuleRoot(m))
|
|
11
|
-
Reflect.set(m, 'root', cli.cwd);
|
|
12
|
-
client.logger?.debug(`Starting module ${kleur.cyan(EventHandlers.quoteString(m.displayName))}`);
|
|
13
|
-
});
|
|
14
|
-
client.modules.on('postStartModule', (m) => client.logger?.log(`Started module ${kleur.cyan(EventHandlers.quoteString(m.displayName))}`));
|
|
15
|
-
client.modules.on('startModuleError', (m, err) => client.logger?.error(`Failed to start module ${kleur.yellow(EventHandlers.quoteString(m.displayName))}:`, err));
|
|
16
|
-
client.modules.on('preLoadModule', (m) => client.logger?.debug(`Loading module ${kleur.cyan(EventHandlers.quoteString(m.displayName))}`));
|
|
17
|
-
client.modules.on('postLoadModule', (m) => client.logger?.log(`Loaded module ${kleur.cyan(EventHandlers.quoteString(m.displayName))}`));
|
|
18
|
-
client.modules.on('loadModuleError', (m, err) => client.logger?.error(`Failed to load module ${kleur.yellow(EventHandlers.quoteString(m.displayName))}:`, err));
|
|
19
|
-
client.modules.on('preUnloadModule', (m) => client.logger?.debug(`Unloading module ${kleur.cyan(EventHandlers.quoteString(m.displayName))}`));
|
|
20
|
-
client.modules.on('postUnloadModule', (m) => client.logger?.log(`Unloaded module ${kleur.cyan(EventHandlers.quoteString(m.displayName))}`));
|
|
21
|
-
client.modules.on('unloadModuleError', (m, err) => client.logger?.error(`Failed to unload module ${kleur.yellow(EventHandlers.quoteString(m.displayName))}:`, err));
|
|
22
|
-
client.on('recipleRegisterApplicationCommands', (commands, guild) => client.logger?.log(`Registered (${commands?.size || 0}) application commands ${guild ? 'to ' + guild : 'globally'}`));
|
|
23
|
-
}
|
|
24
|
-
static addCommandExecuteHandlers(client) {
|
|
25
|
-
client.on('interactionCreate', async (interaction) => {
|
|
26
|
-
if (interaction.isChatInputCommand())
|
|
27
|
-
await client.commands?.execute(interaction);
|
|
28
|
-
if (interaction.isContextMenuCommand())
|
|
29
|
-
await client.commands?.execute(interaction);
|
|
30
|
-
});
|
|
31
|
-
client.on('messageCreate', async (message) => {
|
|
32
|
-
await client.commands?.execute(message);
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
static quoteString(string, quote = "'") {
|
|
36
|
-
return `${quote}${string}${quote}`;
|
|
37
|
-
}
|
|
38
|
-
static addExitListener(listener, once) {
|
|
39
|
-
if (!once) {
|
|
40
|
-
process.on('SIGHUP', listener);
|
|
41
|
-
process.on('SIGINT', listener);
|
|
42
|
-
process.on('SIGQUIT', listener);
|
|
43
|
-
process.on('SIGABRT', listener);
|
|
44
|
-
process.on('SIGALRM', listener);
|
|
45
|
-
process.on('SIGTERM', listener);
|
|
46
|
-
process.on('SIGBREAK', listener);
|
|
47
|
-
process.on('SIGUSR2', listener);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
process.once('SIGHUP', listener);
|
|
51
|
-
process.once('SIGINT', listener);
|
|
52
|
-
process.once('SIGQUIT', listener);
|
|
53
|
-
process.once('SIGABRT', listener);
|
|
54
|
-
process.once('SIGALRM', listener);
|
|
55
|
-
process.once('SIGTERM', listener);
|
|
56
|
-
process.once('SIGBREAK', listener);
|
|
57
|
-
process.once('SIGUSR2', listener);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
static removeExitListener(listener) {
|
|
61
|
-
process.removeListener('SIGHUP', listener);
|
|
62
|
-
process.removeListener('SIGINT', listener);
|
|
63
|
-
process.removeListener('SIGQUIT', listener);
|
|
64
|
-
process.removeListener('SIGABRT', listener);
|
|
65
|
-
process.removeListener('SIGALRM', listener);
|
|
66
|
-
process.removeListener('SIGTERM', listener);
|
|
67
|
-
process.removeListener('SIGBREAK', listener);
|
|
68
|
-
process.removeListener('SIGUSR2', listener);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=EventHandlers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EventHandlers.js","sourceRoot":"","sources":["../../src/classes/EventHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { type Awaitable } from 'fallout-utility';
|
|
2
|
-
import type { RecipleConfig } from '../types/structures.js';
|
|
3
|
-
import type { RecipleModule } from '@reciple/core';
|
|
4
|
-
import type { RecipleClient } from '../index.js';
|
|
5
|
-
export interface ModuleLoaderGetModulePathsOptions {
|
|
6
|
-
config: Exclude<RecipleConfig['modules'], undefined>;
|
|
7
|
-
filter?: (file: string) => Awaitable<boolean>;
|
|
8
|
-
cwd?: string;
|
|
9
|
-
}
|
|
10
|
-
export interface ModuleLoaderActionData {
|
|
11
|
-
success: RecipleModule[];
|
|
12
|
-
failed: RecipleModule[];
|
|
13
|
-
}
|
|
14
|
-
export declare class ModuleLoader {
|
|
15
|
-
static globby?: typeof import('globby');
|
|
16
|
-
static stopping: boolean;
|
|
17
|
-
private constructor();
|
|
18
|
-
static getModulePaths(options: ModuleLoaderGetModulePathsOptions): Promise<string[]>;
|
|
19
|
-
static startModules(client: RecipleClient, modules: RecipleModule[]): Promise<ModuleLoaderActionData>;
|
|
20
|
-
static loadModules(client: RecipleClient, modules: RecipleModule[]): Promise<ModuleLoaderActionData>;
|
|
21
|
-
static unloadModules(client: RecipleClient, modules: RecipleModule[]): Promise<ModuleLoaderActionData>;
|
|
22
|
-
static processExitHandleModuleUnload(client: RecipleClient, signal: NodeJS.Signals): Promise<void>;
|
|
23
|
-
static defaultModulePathsFilter(file: string): Awaitable<boolean>;
|
|
24
|
-
static getGlobby(): Promise<typeof import('globby')>;
|
|
25
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { kleur } from 'fallout-utility';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { existsAsync } from '@reciple/utils';
|
|
4
|
-
import { lstat, mkdir, readdir } from 'node:fs/promises';
|
|
5
|
-
import { setTimeout as sleep } from 'node:timers/promises';
|
|
6
|
-
export class ModuleLoader {
|
|
7
|
-
static globby;
|
|
8
|
-
static stopping = false;
|
|
9
|
-
constructor() { }
|
|
10
|
-
static async getModulePaths(options) {
|
|
11
|
-
const paths = [];
|
|
12
|
-
const { globby, isDynamicPattern } = await ModuleLoader.getGlobby();
|
|
13
|
-
const cwd = options?.cwd ?? process.cwd();
|
|
14
|
-
for (const folder of options.config.dirs) {
|
|
15
|
-
const folderPath = path.isAbsolute(folder) ? folder : path.join(cwd, folder);
|
|
16
|
-
if (isDynamicPattern(folder, { cwd })) {
|
|
17
|
-
const dirs = await globby(folder, {
|
|
18
|
-
cwd: process.cwd(),
|
|
19
|
-
onlyDirectories: true,
|
|
20
|
-
absolute: true,
|
|
21
|
-
ignore: options.config.exclude
|
|
22
|
-
});
|
|
23
|
-
paths.push(...await ModuleLoader.getModulePaths({
|
|
24
|
-
...options,
|
|
25
|
-
config: {
|
|
26
|
-
...options.config,
|
|
27
|
-
dirs
|
|
28
|
-
}
|
|
29
|
-
}));
|
|
30
|
-
continue;
|
|
31
|
-
}
|
|
32
|
-
if (!await existsAsync(folderPath))
|
|
33
|
-
await mkdir(folderPath, { recursive: true });
|
|
34
|
-
if (!(await lstat(folderPath)).isDirectory())
|
|
35
|
-
continue;
|
|
36
|
-
const files = (await readdir(folderPath))
|
|
37
|
-
.map(file => path
|
|
38
|
-
.join(folderPath, file))
|
|
39
|
-
.filter(file => (options.filter ? options.filter(file) : ModuleLoader.defaultModulePathsFilter(file)));
|
|
40
|
-
await Promise.all(files.map(async (f) => {
|
|
41
|
-
if (options.config.filter) {
|
|
42
|
-
const allowed = !!await Promise.resolve(options.config.filter(f));
|
|
43
|
-
if (!allowed)
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
if (!await existsAsync(f))
|
|
47
|
-
return;
|
|
48
|
-
paths.push(f);
|
|
49
|
-
}));
|
|
50
|
-
}
|
|
51
|
-
if (options.config?.sort)
|
|
52
|
-
paths.sort(options.config.sort);
|
|
53
|
-
return paths;
|
|
54
|
-
}
|
|
55
|
-
static async startModules(client, modules) {
|
|
56
|
-
const success = await client.modules.startModules({ modules });
|
|
57
|
-
const failed = modules.filter(m => !success.some(s => s.id === m.id));
|
|
58
|
-
return { success, failed };
|
|
59
|
-
}
|
|
60
|
-
static async loadModules(client, modules) {
|
|
61
|
-
const success = await client.modules.loadModules({ modules });
|
|
62
|
-
const failed = modules.filter(m => !success.some(s => s.id === m.id));
|
|
63
|
-
return { success, failed };
|
|
64
|
-
}
|
|
65
|
-
static async unloadModules(client, modules) {
|
|
66
|
-
const success = await client.modules.unloadModules({ modules });
|
|
67
|
-
const failed = modules.filter(m => !success.some(s => s.id === m.id));
|
|
68
|
-
return { success, failed };
|
|
69
|
-
}
|
|
70
|
-
static async processExitHandleModuleUnload(client, signal) {
|
|
71
|
-
if (ModuleLoader.stopping)
|
|
72
|
-
return;
|
|
73
|
-
ModuleLoader.stopping = true;
|
|
74
|
-
client.logger?.warn(`Received exit signal: ${signal}`);
|
|
75
|
-
await client.destroy(true);
|
|
76
|
-
const signalString = signal === 'SIGINT' ? 'keyboard interrupt' : signal === 'SIGTERM' ? 'terminate' : String(signal);
|
|
77
|
-
await sleep(10);
|
|
78
|
-
client.logger?.warn(`Process exited: ${kleur.yellow(signalString)}`);
|
|
79
|
-
client.logger?.closeFileWriteStream();
|
|
80
|
-
process.exit(0);
|
|
81
|
-
}
|
|
82
|
-
static defaultModulePathsFilter(file) {
|
|
83
|
-
return file.endsWith('.js') || file.endsWith('.mjs');
|
|
84
|
-
}
|
|
85
|
-
static async getGlobby() {
|
|
86
|
-
if (ModuleLoader.globby)
|
|
87
|
-
return ModuleLoader.globby;
|
|
88
|
-
return (ModuleLoader.globby = await import('globby'));
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=ModuleLoader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleLoader.js","sourceRoot":"","sources":["../../src/classes/ModuleLoader.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
DELETED
package/dist/commands/init.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Config } from '../classes/Config.js';
|
|
2
|
-
export default (command, cli) => command
|
|
3
|
-
.command('init')
|
|
4
|
-
.option('-c, --config <file>', 'Set the config file path', 'reciple.mjs')
|
|
5
|
-
.description('Initializes the config file')
|
|
6
|
-
.action(async () => {
|
|
7
|
-
const flags = cli.getFlags('init');
|
|
8
|
-
await Config.readConfigFile({ path: flags.config, createIfNotExists: true });
|
|
9
|
-
});
|
|
10
|
-
//# sourceMappingURL=init.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAM9C,eAAe,CAAC,OAAgB,EAAE,GAAQ,EAAE,EAAE,CAAC,OAAO;KACjD,OAAO,CAAC,MAAM,CAAC;KACf,MAAM,CAAC,qBAAqB,EAAE,0BAA0B,EAAE,aAAa,CAAC;KACxE,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAe,MAAM,CAAE,CAAC;IAElD,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;AACjF,CAAC,CAAC,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { Command } from 'commander';
|
|
2
|
-
import type { CLI } from '../classes/CLI.js';
|
|
3
|
-
export interface CLIModulesFlags {
|
|
4
|
-
config: string;
|
|
5
|
-
json: boolean;
|
|
6
|
-
pretty: boolean;
|
|
7
|
-
}
|
|
8
|
-
declare const _default: (command: Command, cli: CLI) => Command;
|
|
9
|
-
export default _default;
|
package/dist/commands/modules.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Config } from '../classes/Config.js';
|
|
2
|
-
import { ModuleLoader } from '../classes/ModuleLoader.js';
|
|
3
|
-
import { kleur } from 'fallout-utility';
|
|
4
|
-
import path from 'node:path';
|
|
5
|
-
export default (command, cli) => command
|
|
6
|
-
.command('modules')
|
|
7
|
-
.description('Lists all scannable modules')
|
|
8
|
-
.option('-c, --config <file>', 'Set the config file path', 'reciple.mjs')
|
|
9
|
-
.option('--json', 'Output JSON', false)
|
|
10
|
-
.option('--pretty', 'Pretty print JSON', false)
|
|
11
|
-
.action(async () => {
|
|
12
|
-
const flags = cli.getFlags('modules', true);
|
|
13
|
-
const config = await Config.readConfigFile({ path: flags.config, createIfNotExists: false }).then(config => config?.config);
|
|
14
|
-
const paths = config?.modules && await ModuleLoader.getModulePaths({
|
|
15
|
-
config: config?.modules,
|
|
16
|
-
cwd: cli.cwd,
|
|
17
|
-
filter: ModuleLoader.defaultModulePathsFilter
|
|
18
|
-
}) || [];
|
|
19
|
-
if (flags.json) {
|
|
20
|
-
process.stdout.write(JSON.stringify(paths, null, flags.pretty ? 2 : undefined));
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
const relativePaths = paths.map(p => path.relative(cli.cwd, p));
|
|
24
|
-
console.log(relativePaths
|
|
25
|
-
.map(p => {
|
|
26
|
-
const dirs = p.split(path.sep);
|
|
27
|
-
const name = dirs.pop();
|
|
28
|
-
dirs.unshift('.');
|
|
29
|
-
return `${dirs.map(d => kleur.cyan(d)).join(kleur.dim(' > '))}${kleur.dim(` > `)}${kleur.green(name || '')}`;
|
|
30
|
-
})
|
|
31
|
-
.join('\n'));
|
|
32
|
-
});
|
|
33
|
-
//# sourceMappingURL=modules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modules.js","sourceRoot":"","sources":["../../src/commands/modules.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,eAAe,CAAC,OAAgB,EAAE,GAAQ,EAAE,EAAE,CAAC,OAAO;KACjD,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,qBAAqB,EAAE,0BAA0B,EAAE,aAAa,CAAC;KACxE,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC;KACtC,MAAM,CAAC,UAAU,EAAE,mBAAmB,EAAE,KAAK,CAAC;KAC9C,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAkB,SAAS,EAAE,IAAI,CAAE,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE5H,MAAM,KAAK,GAAG,MAAM,EAAE,OAAO,IAAI,MAAM,YAAY,CAAC,cAAc,CAAC;QAC/D,MAAM,EAAE,MAAM,EAAE,OAAO;QACvB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,MAAM,EAAE,YAAY,CAAC,wBAAwB;KAChD,CAAC,IAAI,EAAE,CAAC;IAET,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAChF,OAAO;IACX,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhE,OAAO,CAAC,GAAG,CACP,aAAa;SACR,GAAG,CAAC,CAAC,CAAC,EAAE;QACL,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAExB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAEjB,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;IACjH,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAClB,CAAC;AACN,CAAC,CAAC,CAAA"}
|
package/dist/commands/shard.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { CLIStartFlags } from './start.js';
|
|
2
|
-
import { ShardingManager } from 'discord.js';
|
|
3
|
-
import type { Command } from 'commander';
|
|
4
|
-
import { CLI } from '../classes/CLI.js';
|
|
5
|
-
export interface CLIShardFlags extends CLIStartFlags {
|
|
6
|
-
}
|
|
7
|
-
declare const _default: (command: Command, cli: CLI) => Command;
|
|
8
|
-
export default _default;
|
|
9
|
-
export declare function stopShardsProcess(shards: ShardingManager): void;
|
package/dist/commands/shard.js
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { FileWriteStreamMode, Logger } from 'prtyprnt';
|
|
2
|
-
import { resolveEnvProtocol } from '@reciple/utils';
|
|
3
|
-
import { Config } from '../classes/Config.js';
|
|
4
|
-
import { ShardingManager } from 'discord.js';
|
|
5
|
-
import { EventHandlers } from '../index.js';
|
|
6
|
-
import { createReadStream } from 'node:fs';
|
|
7
|
-
import { kleur } from 'fallout-utility';
|
|
8
|
-
import { CLI } from '../classes/CLI.js';
|
|
9
|
-
import path from 'node:path';
|
|
10
|
-
export default (command, cli) => command
|
|
11
|
-
.command('shard')
|
|
12
|
-
.description('Starts in sharding mode')
|
|
13
|
-
.option('-t, --token <DiscordToken>', 'Set your Discord Bot token')
|
|
14
|
-
.option('-c, --config <file>', 'Set the config file path', 'reciple.mjs')
|
|
15
|
-
.action(async () => {
|
|
16
|
-
let logger = cli.logger ?? null;
|
|
17
|
-
const startFlags = CLI.stringifyFlags(cli.getFlags('shard'), cli.getCommand('shard'));
|
|
18
|
-
const recipleFlags = CLI.stringifyFlags(cli.getFlags(), cli.getCommand(), ['cwd']);
|
|
19
|
-
const processFlags = [...startFlags, ...recipleFlags];
|
|
20
|
-
const processErrorLogger = (err) => {
|
|
21
|
-
logger?.error(err);
|
|
22
|
-
process.exit(1);
|
|
23
|
-
};
|
|
24
|
-
process.once('uncaughtException', processErrorLogger);
|
|
25
|
-
process.once('unhandledRejection', processErrorLogger);
|
|
26
|
-
const flags = cli.getFlags('start', true);
|
|
27
|
-
const { config, sharding: shardingConfig } = await Config.readConfigFile({ path: flags.config, createIfNotExists: false }).then(data => data ?? ({ config: null, sharding: null }));
|
|
28
|
-
if (!config && !shardingConfig) {
|
|
29
|
-
logger?.error(`No config file found! Run ${kleur.green(`reciple init`)} to create one`);
|
|
30
|
-
process.exit(1);
|
|
31
|
-
}
|
|
32
|
-
let logFile = null;
|
|
33
|
-
let logsFolder = null;
|
|
34
|
-
process.env.SHARDS_DEPLOY_COMMANDS = '1';
|
|
35
|
-
process.env.SHARDING_MANAGER = '1';
|
|
36
|
-
if (!(config.logger instanceof Logger) && config.logger?.logToFile.enabled) {
|
|
37
|
-
logsFolder = path.resolve(path.join(config.logger?.logToFile?.logsFolder, 'sharder', process.pid.toString()));
|
|
38
|
-
logFile = path.join(logsFolder, config.logger?.logToFile?.file);
|
|
39
|
-
process.env.SHARDS_LOGS_FOLDER = logsFolder;
|
|
40
|
-
logger?.log(`Logs folder is at '${kleur.cyan(logsFolder)}'`);
|
|
41
|
-
}
|
|
42
|
-
logger = config.logger instanceof Logger
|
|
43
|
-
? config.logger
|
|
44
|
-
: config.logger?.enabled
|
|
45
|
-
? cli.logger?.clone({
|
|
46
|
-
label: 'Main',
|
|
47
|
-
writeStream: logFile ? await Logger.createFileWriteStream({
|
|
48
|
-
mode: FileWriteStreamMode.Rename,
|
|
49
|
-
path: logFile
|
|
50
|
-
}) : undefined
|
|
51
|
-
}) || null
|
|
52
|
-
: null;
|
|
53
|
-
config.token = flags.token ? resolveEnvProtocol(flags.token) ?? '' : config.token;
|
|
54
|
-
const manager = new ShardingManager(cli.binPath, {
|
|
55
|
-
...shardingConfig,
|
|
56
|
-
token: config.token,
|
|
57
|
-
shardArgs: processFlags,
|
|
58
|
-
});
|
|
59
|
-
EventHandlers.addExitListener(() => stopShardsProcess(manager));
|
|
60
|
-
manager.on('shardCreate', shard => {
|
|
61
|
-
let logs;
|
|
62
|
-
let readStream;
|
|
63
|
-
logger?.log(`Creating shard ${shard.id}...`);
|
|
64
|
-
shard.on('ready', () => {
|
|
65
|
-
logger?.log(`Shard ${shard.id} is ready!`);
|
|
66
|
-
if (!logs)
|
|
67
|
-
return;
|
|
68
|
-
logger?.log(`Logs for shards ${shard.id} is located at '${kleur.yellow(logs)}'`);
|
|
69
|
-
readStream = createReadStream(logs, 'utf-8');
|
|
70
|
-
if (logger?.writeStream)
|
|
71
|
-
readStream.pipe(logger.writeStream);
|
|
72
|
-
});
|
|
73
|
-
shard.on('reconnecting', () => logger?.log(`Shard ${shard.id} is reconnecting!`));
|
|
74
|
-
shard.on('disconnect', () => logger?.log(`Shard ${shard.id} disconnected!`));
|
|
75
|
-
shard.on('death', () => logger?.log(`Shard ${shard.id} died!`));
|
|
76
|
-
shard.on('error', err => logger?.log(`Shard ${shard.id} encountered an error!\n`, err));
|
|
77
|
-
shard.on('message', data => {
|
|
78
|
-
if (!('type' in data) || data.type !== 'ProcessInfo')
|
|
79
|
-
return;
|
|
80
|
-
logs = data.log;
|
|
81
|
-
if (process.env.SHARDS_DEPLOY_COMMANDS) {
|
|
82
|
-
delete process.env.SHARDS_DEPLOY_COMMANDS;
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
logger?.log(`Starting ${manager.totalShards} shards...`);
|
|
87
|
-
await manager.spawn();
|
|
88
|
-
});
|
|
89
|
-
export function stopShardsProcess(shards) {
|
|
90
|
-
shards.shards.map(c => {
|
|
91
|
-
logger.log(`Killed ${c.id}`);
|
|
92
|
-
if (c.process) {
|
|
93
|
-
c.process?.kill('SIGINT');
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
c.kill();
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
logger.log(`Exitting process!`);
|
|
100
|
-
setTimeout(() => process.exit(0), 500);
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=shard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shard.js","sourceRoot":"","sources":["../../src/commands/shard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAmB,MAAM,SAAS,CAAC;AAE5D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,eAAe,CAAC,OAAgB,EAAE,GAAQ,EAAE,EAAE,CAAC,OAAO;KACjD,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,4BAA4B,EAAE,4BAA4B,CAAC;KAClE,MAAM,CAAC,qBAAqB,EAAE,0BAA0B,EAAE,aAAa,CAAC;KACxE,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,IAAI,MAAM,GAAgB,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC;IAE7C,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAgB,OAAO,CAAE,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAE,CAAC,CAAC;IACvG,MAAM,YAAY,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC,CAAC;IAEtD,MAAM,kBAAkB,GAAG,CAAC,GAAQ,EAAE,EAAE;QACpC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;IAEvD,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAgB,OAAO,EAAE,IAAI,CAAE,CAAC;IAC1D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEpL,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7B,MAAM,EAAE,KAAK,CAAC,6BAA6B,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,GAAgB,IAAI,CAAC;IAChC,IAAI,UAAU,GAAgB,IAAI,CAAC;IAEnC,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,GAAG,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC;IAEnC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;QACzE,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE9G,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,UAAU,CAAC;QAE5C,MAAM,EAAE,GAAG,CAAC,sBAAsB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,GAAG,MAAM,CAAC,MAAM,YAAY,MAAM;QACpC,CAAC,CAAC,MAAM,CAAC,MAAM;QACf,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;YACpB,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;gBAChB,KAAK,EAAE,MAAM;gBACb,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC;oBACtD,IAAI,EAAE,mBAAmB,CAAC,MAAM;oBAChC,IAAI,EAAE,OAAO;iBAChB,CAAC,CAAC,CAAC,CAAC,SAAS;aACjB,CAAC,IAAI,IAAI;YACV,CAAC,CAAC,IAAI,CAAC;IAEf,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAElF,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE;QAC7C,GAAG,cAAc;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,YAAY;KAC1B,CAAC,CAAC;IAEH,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhE,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE;QAC9B,IAAI,IAAY,CAAC;QACjB,IAAI,UAAsB,CAAC;QAE3B,MAAM,EAAE,GAAG,CAAC,kBAAkB,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAE7C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,MAAM,EAAE,GAAG,CAAC,SAAS,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI;gBAAE,OAAO;YAElB,MAAM,EAAE,GAAG,CAAC,mBAAmB,KAAK,CAAC,EAAE,mBAAmB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEjF,UAAU,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAE7C,IAAI,MAAM,EAAE,WAAW;gBAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,KAAK,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAClF,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC7E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,KAAK,CAAC,EAAE,0BAA0B,EAAE,GAAG,CAAC,CAAC,CAAC;QAExF,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;YACvB,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;gBAAE,OAAO;YAE7D,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;YAEhB,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;gBACrC,OAAO,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;YAC9C,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,CAAC,YAAY,OAAO,CAAC,WAAW,YAAY,CAAC,CAAC;IACzD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEP,MAAM,UAAU,iBAAiB,CAAC,MAAuB;IACrD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAClB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE7B,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,CAAC,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAChC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC"}
|
package/dist/commands/start.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { Command } from 'commander';
|
|
2
|
-
import { CLI } from '../classes/CLI.js';
|
|
3
|
-
export interface CLIStartFlags {
|
|
4
|
-
token?: string;
|
|
5
|
-
config: string;
|
|
6
|
-
production?: boolean;
|
|
7
|
-
}
|
|
8
|
-
declare const _default: (command: Command, cli: CLI) => Command;
|
|
9
|
-
export default _default;
|
package/dist/commands/start.js
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { cliBuildVersion, cliVersion } from '../types/constants.js';
|
|
2
|
-
import { EventHandlers } from '../classes/EventHandlers.js';
|
|
3
|
-
import { ModuleLoader } from '../classes/ModuleLoader.js';
|
|
4
|
-
import { resolveEnvProtocol } from '@reciple/utils';
|
|
5
|
-
import { Config } from '../classes/Config.js';
|
|
6
|
-
import { buildVersion } from '@reciple/core';
|
|
7
|
-
import { RecipleClient } from '../index.js';
|
|
8
|
-
import { kleur } from 'fallout-utility';
|
|
9
|
-
import { CLI } from '../classes/CLI.js';
|
|
10
|
-
import { Logger } from 'prtyprnt';
|
|
11
|
-
import semver from 'semver';
|
|
12
|
-
export default (command, cli) => command
|
|
13
|
-
.command('start', { isDefault: true })
|
|
14
|
-
.description('Starts the bot')
|
|
15
|
-
.option('-t, --token <DiscordToken>', 'Set your Discord Bot token')
|
|
16
|
-
.option('-c, --config <file>', 'Set the config file path', 'reciple.mjs')
|
|
17
|
-
.allowUnknownOption(true)
|
|
18
|
-
.action(async () => {
|
|
19
|
-
let logger = cli.logger ?? null;
|
|
20
|
-
const processErrorLogger = (err) => {
|
|
21
|
-
logger?.error(err);
|
|
22
|
-
process.exit(1);
|
|
23
|
-
};
|
|
24
|
-
process.once('uncaughtException', processErrorLogger);
|
|
25
|
-
process.once('unhandledRejection', processErrorLogger);
|
|
26
|
-
process.on('warning', warn => logger?.warn(warn));
|
|
27
|
-
const flags = cli.getFlags('start', true);
|
|
28
|
-
const config = await Config.readConfigFile({ path: flags.config, createIfNotExists: false }).then(config => config?.config);
|
|
29
|
-
if (!config) {
|
|
30
|
-
logger?.error(`No config file found! Run ${kleur.green(`reciple init`)} to create one`);
|
|
31
|
-
process.exit(1);
|
|
32
|
-
}
|
|
33
|
-
logger = config.logger instanceof Logger
|
|
34
|
-
? config.logger
|
|
35
|
-
: config.logger?.enabled
|
|
36
|
-
? cli.logger?.clone(await Config.createLoggerOptions(config, { ...cli.logger.toJSON(), label: 'Reciple' }, cli)) || null
|
|
37
|
-
: null;
|
|
38
|
-
logger?.log(`Starting ${kleur.green('reciple@' + kleur.dim(cliBuildVersion) + ' @reciple/client@' + kleur.dim(buildVersion))} - ${kleur.dim(new Date().toISOString())}`);
|
|
39
|
-
if (cli.shardMode) {
|
|
40
|
-
if (!cli.shardDeployCommands) {
|
|
41
|
-
config.applicationCommandRegister = { ...config.applicationCommandRegister, enabled: false };
|
|
42
|
-
}
|
|
43
|
-
await cli.sendProcessInfo();
|
|
44
|
-
}
|
|
45
|
-
config.token = flags.token ? resolveEnvProtocol(flags.token) ?? '' : config.token;
|
|
46
|
-
if (config.version && !semver.satisfies(cliVersion, config.version)) {
|
|
47
|
-
logger?.error(`Your config version doesn't support Reciple CLI v${cliVersion}`);
|
|
48
|
-
process.exit(1);
|
|
49
|
-
}
|
|
50
|
-
const client = new RecipleClient(config);
|
|
51
|
-
global.reciple = client;
|
|
52
|
-
if (logger)
|
|
53
|
-
global.logger = logger;
|
|
54
|
-
client.setLogger(logger);
|
|
55
|
-
EventHandlers.addClientEvents(client);
|
|
56
|
-
const modules = config.modules
|
|
57
|
-
? await client.modules.resolveModuleFiles({
|
|
58
|
-
files: await ModuleLoader.getModulePaths({
|
|
59
|
-
config: config.modules,
|
|
60
|
-
cwd: cli.cwd,
|
|
61
|
-
filter: ModuleLoader.defaultModulePathsFilter
|
|
62
|
-
}),
|
|
63
|
-
disableVersionCheck: config.modules?.disableModuleVersionCheck
|
|
64
|
-
})
|
|
65
|
-
: [];
|
|
66
|
-
const startData = await ModuleLoader.startModules(client, modules);
|
|
67
|
-
if (startData.failed.length)
|
|
68
|
-
logger?.error(`Failed to start ${startData.failed.length} module(s):\n ${startData.failed.map(m => m.displayName).join('\n ')}`);
|
|
69
|
-
client.on('ready', async () => {
|
|
70
|
-
if (!client.isReady())
|
|
71
|
-
return;
|
|
72
|
-
logger?.debug(`Client is ready!`);
|
|
73
|
-
process.removeListener('uncaughtException', processErrorLogger);
|
|
74
|
-
process.removeListener('unhandledRejection', processErrorLogger);
|
|
75
|
-
const loadData = await ModuleLoader.loadModules(client, modules);
|
|
76
|
-
if (loadData.failed.length)
|
|
77
|
-
logger?.error(`Failed to load ${loadData.failed.length} module(s):\n ${loadData.failed.map(m => m.displayName).join('\n ')}`);
|
|
78
|
-
process.stdin.resume();
|
|
79
|
-
EventHandlers.addExitListener((signal) => ModuleLoader.processExitHandleModuleUnload(client, signal));
|
|
80
|
-
EventHandlers.addCommandExecuteHandlers(client);
|
|
81
|
-
if (config.applicationCommandRegister?.enabled !== false)
|
|
82
|
-
await client.commands.registerApplicationCommands();
|
|
83
|
-
logger?.warn(`Logged in as ${kleur.bold().cyan(client.user.tag)} ${kleur.magenta('(' + client.user.id + ')')}`);
|
|
84
|
-
logger?.log(`Loaded ${client.commands.contextMenuCommands.size} context menu command(s)`);
|
|
85
|
-
logger?.log(`Loaded ${client.commands.messageCommands.size} message command(s)`);
|
|
86
|
-
logger?.log(`Loaded ${client.commands.slashCommands.size} slash command(s)`);
|
|
87
|
-
logger?.log(`Loaded ${client.commands.preconditions.size} global command precondition(s)`);
|
|
88
|
-
logger?.log(`Loaded ${client.commands.halts.size} global command halt(s)`);
|
|
89
|
-
if (!config.checkForUpdates)
|
|
90
|
-
cli.updateChecker?.stopCheckInterval();
|
|
91
|
-
});
|
|
92
|
-
logger?.debug(`Logging in...`);
|
|
93
|
-
await client.login().then(() => logger?.debug(`Login successful`));
|
|
94
|
-
});
|
|
95
|
-
//# sourceMappingURL=start.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
package/dist/exports.d.ts
DELETED
package/dist/exports.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export * from './classes/CLI.js';
|
|
2
|
-
export * from './classes/Config.js';
|
|
3
|
-
export * from './classes/EventHandlers.js';
|
|
4
|
-
export * from './classes/ModuleLoader.js';
|
|
5
|
-
export * from './types/constants.js';
|
|
6
|
-
export * from './types/structures.js';
|
|
7
|
-
//# sourceMappingURL=exports.js.map
|
package/dist/exports.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAE1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
|
package/dist/index.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { Logger } from 'prtyprnt';
|
|
2
|
-
import type { CLI } from './classes/CLI.js';
|
|
3
|
-
import { RecipleClient as Client } from '@reciple/core';
|
|
4
|
-
import type { RecipleConfig } from './types/structures.js';
|
|
5
|
-
export * from '@reciple/core';
|
|
6
|
-
export * from './exports.js';
|
|
7
|
-
export { config as loadEnv } from 'dotenv';
|
|
8
|
-
export declare class RecipleClient<Ready extends boolean = boolean> extends Client<Ready> {
|
|
9
|
-
readonly config: RecipleConfig;
|
|
10
|
-
}
|
|
11
|
-
declare global {
|
|
12
|
-
var cli: CLI;
|
|
13
|
-
var logger: Logger;
|
|
14
|
-
var reciple: RecipleClient;
|
|
15
|
-
}
|
package/dist/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { cli, logger } from './types/constants.js';
|
|
2
|
-
import { RecipleClient as Client } from '@reciple/core';
|
|
3
|
-
export * from '@reciple/core';
|
|
4
|
-
export * from './exports.js';
|
|
5
|
-
global.cli = cli;
|
|
6
|
-
global.logger = logger;
|
|
7
|
-
export { config as loadEnv } from 'dotenv';
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,IAAI,MAAM,EAAE,MAAM,eAAe,CAAC;AAGxD,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAE7B,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;AACjB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAEvB,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC"}
|
package/dist/types/constants.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { readFile } from 'node:fs/promises';
|
|
2
|
-
import { CLI } from '../classes/CLI.js';
|
|
3
|
-
import path from 'node:path';
|
|
4
|
-
import { Command } from 'commander';
|
|
5
|
-
import { Logger } from '@reciple/core';
|
|
6
|
-
import { isDebugging } from 'fallout-utility';
|
|
7
|
-
import { coerce } from 'semver';
|
|
8
|
-
import { PackageUpdateChecker } from '@reciple/utils';
|
|
9
|
-
const packageJSON = JSON.parse(await readFile(path.join(CLI.root, './package.json'), 'utf-8'));
|
|
10
|
-
export const cliBuildVersion = packageJSON.version;
|
|
11
|
-
export const cliVersion = String(coerce(packageJSON.version));
|
|
12
|
-
export const logger = new Logger({
|
|
13
|
-
debugmode: {
|
|
14
|
-
enabled: isDebugging()
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
export const cli = new CLI({
|
|
18
|
-
packageJSON,
|
|
19
|
-
binPath: path.join(CLI.root, './dist/bin.js'),
|
|
20
|
-
commander: new Command(),
|
|
21
|
-
processCwd: process.cwd(),
|
|
22
|
-
logger: logger.clone({
|
|
23
|
-
label: 'CLI'
|
|
24
|
-
}),
|
|
25
|
-
updateChecker: new PackageUpdateChecker({
|
|
26
|
-
packages: []
|
|
27
|
-
})
|
|
28
|
-
});
|
|
29
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/types/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAE/F,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC;AACnD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;IAC7B,SAAS,EAAE;QACP,OAAO,EAAE,WAAW,EAAE;KACzB;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;IACvB,WAAW;IACX,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC;IAC7C,SAAS,EAAE,IAAI,OAAO,EAAE;IACxB,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;IACzB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACjB,KAAK,EAAE,KAAK;KACf,CAAC;IACF,aAAa,EAAE,IAAI,oBAAoB,CAAC;QACpC,QAAQ,EAAE,EAAE;KACf,CAAC;CACL,CAAC,CAAC"}
|