reciple 9.9.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.
Files changed (163) hide show
  1. package/assets/config/reciple.config.js +87 -0
  2. package/assets/config/reciple.config.ts +80 -0
  3. package/assets/global/README.md +1 -0
  4. package/assets/global/gitignore +121 -0
  5. package/assets/global/nodemon.json +13 -0
  6. package/assets/modules/javascript/Base.js +21 -0
  7. package/assets/modules/javascript/ClientEvent.js +14 -0
  8. package/assets/modules/javascript/ContextMenuCommand.js +17 -0
  9. package/assets/modules/javascript/Event.js +17 -0
  10. package/assets/modules/javascript/MessageCommand.js +16 -0
  11. package/assets/modules/javascript/RESTEvent.js +14 -0
  12. package/assets/modules/javascript/SlashCommand.js +16 -0
  13. package/assets/modules/typescript/Base.ts +17 -0
  14. package/assets/modules/typescript/ClientEvent.ts +15 -0
  15. package/assets/modules/typescript/ContextMenuCommand.ts +15 -0
  16. package/assets/modules/typescript/Event.ts +16 -0
  17. package/assets/modules/typescript/MessageCommand.ts +14 -0
  18. package/assets/modules/typescript/RESTEvent.ts +15 -0
  19. package/assets/modules/typescript/SlashCommand.ts +14 -0
  20. package/assets/templates/javascript/jsconfig.json +17 -0
  21. package/assets/templates/typescript/tsconfig.json +17 -0
  22. package/dist/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs +10 -0
  23. package/dist/bin/commands/build.d.mts +16 -0
  24. package/dist/bin/commands/build.mjs +24 -0
  25. package/dist/bin/commands/build.mjs.map +1 -0
  26. package/dist/bin/commands/create.d.mts +23 -0
  27. package/dist/bin/commands/create.mjs +48 -0
  28. package/dist/bin/commands/create.mjs.map +1 -0
  29. package/dist/bin/commands/createModule.d.mts +21 -0
  30. package/dist/bin/commands/createModule.mjs +40 -0
  31. package/dist/bin/commands/createModule.mjs.map +1 -0
  32. package/dist/bin/commands/start.d.mts +18 -0
  33. package/dist/bin/commands/start.mjs +104 -0
  34. package/dist/bin/commands/start.mjs.map +1 -0
  35. package/dist/bin/reciple.d.mts +1 -0
  36. package/dist/bin/reciple.mjs +9 -0
  37. package/dist/bin/reciple.mjs.map +1 -0
  38. package/dist/classes/NotAnError.d.mts +7 -0
  39. package/dist/classes/NotAnError.mjs +11 -0
  40. package/dist/classes/NotAnError.mjs.map +1 -0
  41. package/dist/classes/cli/CLI.d.mts +54 -0
  42. package/dist/classes/cli/CLI.mjs +156 -0
  43. package/dist/classes/cli/CLI.mjs.map +1 -0
  44. package/dist/classes/cli/CLISubcommand.d.mts +27 -0
  45. package/dist/classes/cli/CLISubcommand.mjs +23 -0
  46. package/dist/classes/cli/CLISubcommand.mjs.map +1 -0
  47. package/dist/classes/cli/ConfigReader.d.mts +81 -0
  48. package/dist/classes/cli/ConfigReader.mjs +141 -0
  49. package/dist/classes/cli/ConfigReader.mjs.map +1 -0
  50. package/dist/classes/cli/RuntimeEnvironment.d.mts +14 -0
  51. package/dist/classes/cli/RuntimeEnvironment.mjs +36 -0
  52. package/dist/classes/cli/RuntimeEnvironment.mjs.map +1 -0
  53. package/dist/classes/client/EventListeners.d.mts +26 -0
  54. package/dist/classes/client/EventListeners.mjs +103 -0
  55. package/dist/classes/client/EventListeners.mjs.map +1 -0
  56. package/dist/classes/client/ModuleLoader.d.mts +55 -0
  57. package/dist/classes/client/ModuleLoader.mjs +152 -0
  58. package/dist/classes/client/ModuleLoader.mjs.map +1 -0
  59. package/dist/classes/managers/ModuleManager.d.mts +55 -0
  60. package/dist/classes/managers/ModuleManager.mjs +107 -0
  61. package/dist/classes/managers/ModuleManager.mjs.map +1 -0
  62. package/dist/classes/modules/BaseModule.d.mts +34 -0
  63. package/dist/classes/modules/BaseModule.mjs +33 -0
  64. package/dist/classes/modules/BaseModule.mjs.map +1 -0
  65. package/dist/classes/modules/PostconditionModule.d.mts +20 -0
  66. package/dist/classes/modules/PostconditionModule.mjs +24 -0
  67. package/dist/classes/modules/PostconditionModule.mjs.map +1 -0
  68. package/dist/classes/modules/PreconditionModule.d.mts +20 -0
  69. package/dist/classes/modules/PreconditionModule.mjs +24 -0
  70. package/dist/classes/modules/PreconditionModule.mjs.map +1 -0
  71. package/dist/classes/modules/commands/ContextMenuCommandModule.d.mts +24 -0
  72. package/dist/classes/modules/commands/ContextMenuCommandModule.mjs +27 -0
  73. package/dist/classes/modules/commands/ContextMenuCommandModule.mjs.map +1 -0
  74. package/dist/classes/modules/commands/MessageCommandModule.d.mts +24 -0
  75. package/dist/classes/modules/commands/MessageCommandModule.mjs +27 -0
  76. package/dist/classes/modules/commands/MessageCommandModule.mjs.map +1 -0
  77. package/dist/classes/modules/commands/SlashCommandModule.d.mts +24 -0
  78. package/dist/classes/modules/commands/SlashCommandModule.mjs +27 -0
  79. package/dist/classes/modules/commands/SlashCommandModule.mjs.map +1 -0
  80. package/dist/classes/modules/events/ClientEventModule.d.mts +11 -0
  81. package/dist/classes/modules/events/ClientEventModule.mjs +10 -0
  82. package/dist/classes/modules/events/ClientEventModule.mjs.map +1 -0
  83. package/dist/classes/modules/events/EventModule.d.mts +29 -0
  84. package/dist/classes/modules/events/EventModule.mjs +26 -0
  85. package/dist/classes/modules/events/EventModule.mjs.map +1 -0
  86. package/dist/classes/modules/events/RESTEventModule.d.mts +11 -0
  87. package/dist/classes/modules/events/RESTEventModule.mjs +10 -0
  88. package/dist/classes/modules/events/RESTEventModule.mjs.map +1 -0
  89. package/dist/classes/templates/ModuleTemplateBuilder.d.mts +84 -0
  90. package/dist/classes/templates/ModuleTemplateBuilder.mjs +288 -0
  91. package/dist/classes/templates/ModuleTemplateBuilder.mjs.map +1 -0
  92. package/dist/classes/templates/TemplateBuilder.d.mts +78 -0
  93. package/dist/classes/templates/TemplateBuilder.mjs +351 -0
  94. package/dist/classes/templates/TemplateBuilder.mjs.map +1 -0
  95. package/dist/classes/validation/BaseModuleValidator.d.mts +23 -0
  96. package/dist/classes/validation/BaseModuleValidator.mjs +46 -0
  97. package/dist/classes/validation/BaseModuleValidator.mjs.map +1 -0
  98. package/dist/classes/validation/CommandModuleValidator.d.mts +12 -0
  99. package/dist/classes/validation/CommandModuleValidator.mjs +16 -0
  100. package/dist/classes/validation/CommandModuleValidator.mjs.map +1 -0
  101. package/dist/classes/validation/EventModuleValidator.d.mts +21 -0
  102. package/dist/classes/validation/EventModuleValidator.mjs +42 -0
  103. package/dist/classes/validation/EventModuleValidator.mjs.map +1 -0
  104. package/dist/classes/validation/PostconditionModule.d.mts +18 -0
  105. package/dist/classes/validation/PostconditionModule.mjs +34 -0
  106. package/dist/classes/validation/PostconditionModule.mjs.map +1 -0
  107. package/dist/classes/validation/PreconditionModule.d.mts +16 -0
  108. package/dist/classes/validation/PreconditionModule.mjs +29 -0
  109. package/dist/classes/validation/PreconditionModule.mjs.map +1 -0
  110. package/dist/helpers/constants.d.mts +19 -0
  111. package/dist/helpers/constants.mjs +28 -0
  112. package/dist/helpers/constants.mjs.map +1 -0
  113. package/dist/helpers/types.d.mts +20 -0
  114. package/dist/helpers/types.mjs +1 -0
  115. package/dist/index.d.mts +39 -0
  116. package/dist/index.mjs +39 -0
  117. package/dist/index.mjs.map +1 -0
  118. package/dist/package.mjs +79 -0
  119. package/dist/package.mjs.map +1 -0
  120. package/package.json +80 -66
  121. package/LICENSE +0 -674
  122. package/README.md +0 -206
  123. package/dist/bin.d.ts +0 -2
  124. package/dist/bin.js +0 -4
  125. package/dist/bin.js.map +0 -1
  126. package/dist/classes/CLI.d.ts +0 -55
  127. package/dist/classes/CLI.js +0 -191
  128. package/dist/classes/CLI.js.map +0 -1
  129. package/dist/classes/Config.d.ts +0 -26
  130. package/dist/classes/Config.js +0 -73
  131. package/dist/classes/Config.js.map +0 -1
  132. package/dist/classes/EventHandlers.d.ts +0 -9
  133. package/dist/classes/EventHandlers.js +0 -71
  134. package/dist/classes/EventHandlers.js.map +0 -1
  135. package/dist/classes/ModuleLoader.d.ts +0 -25
  136. package/dist/classes/ModuleLoader.js +0 -91
  137. package/dist/classes/ModuleLoader.js.map +0 -1
  138. package/dist/commands/init.d.ts +0 -7
  139. package/dist/commands/init.js +0 -10
  140. package/dist/commands/init.js.map +0 -1
  141. package/dist/commands/modules.d.ts +0 -9
  142. package/dist/commands/modules.js +0 -33
  143. package/dist/commands/modules.js.map +0 -1
  144. package/dist/commands/shard.d.ts +0 -9
  145. package/dist/commands/shard.js +0 -102
  146. package/dist/commands/shard.js.map +0 -1
  147. package/dist/commands/start.d.ts +0 -9
  148. package/dist/commands/start.js +0 -95
  149. package/dist/commands/start.js.map +0 -1
  150. package/dist/exports.d.ts +0 -6
  151. package/dist/exports.js +0 -7
  152. package/dist/exports.js.map +0 -1
  153. package/dist/index.d.ts +0 -15
  154. package/dist/index.js +0 -8
  155. package/dist/index.js.map +0 -1
  156. package/dist/types/constants.d.ts +0 -6
  157. package/dist/types/constants.js +0 -29
  158. package/dist/types/constants.js.map +0 -1
  159. package/dist/types/structures.d.ts +0 -36
  160. package/dist/types/structures.js +0 -2
  161. package/dist/types/structures.js.map +0 -1
  162. package/static/config.d.mts +0 -5
  163. package/static/config.mjs +0 -105
package/README.md DELETED
@@ -1,206 +0,0 @@
1
- <h1 align="center">
2
- <img src="https://i.imgur.com/h0ljJR5.png" width="50%">
3
- <br>
4
- </h1>
5
-
6
- <h3 align="center">
7
- <a href="https://discord.gg/2gyckrwK7b">
8
- <img src="https://img.shields.io/discord/1032785824686817291?color=5865F2&logo=discord&logoColor=white">
9
- </a>
10
- <a href="https://npmjs.org/package/reciple">
11
- <img src="https://img.shields.io/npm/v/reciple?label=npm">
12
- </a>
13
- <a href="https://github.com/thenorthsolution/Reciple/tree/main/packages/reciple">
14
- <img src="https://img.shields.io/npm/dt/reciple?maxAge=3600">
15
- </a>
16
- <a href="https://www.codefactor.io/repository/github/thenorthsolution/reciple">
17
- <img src="https://www.codefactor.io/repository/github/thenorthsolution/reciple/badge">
18
- </a>
19
- <br>
20
- <div style="padding-top: 1rem">
21
- <a href="https://discord.gg/2gyckrwK7b">
22
- <img src="http://invidget.switchblade.xyz/2gyckrwK7b">
23
- </a>
24
- </div>
25
- </h3>
26
-
27
- ---
28
-
29
- ## Highlights
30
-
31
- - [CLI based handler](#cli-usage)
32
- - [Supports Context Menus](#context-menus)
33
- - [Supports Prefix/Message commands](#message-commands)
34
- - [Validate messsage command options](#validate-message-command-options)
35
- - [Supports Slash Commands](#slash-commands)
36
- - [Built-in command cooldowns](#command-cooldowns)
37
- - Automatically register application commands
38
- - [Highly configurable](#config)
39
-
40
- ## Using Templates
41
-
42
- To use templates use the following command in your terminal:
43
-
44
- ```bash
45
- npm create reciple@latest
46
- ```
47
-
48
- After that configure the template you want to use. [Learn More](https://reciple.js.org/guide/getting-started/installation)
49
-
50
- ## CLI usage
51
-
52
- ```yml
53
- Usage: reciple [options] [command]
54
-
55
- Reciple is a Discord.js bot framework
56
-
57
- Options:
58
- -v, --version output the version number
59
- --env <file> Set .env file path (default: [".env"])
60
- --debug Enable debug mode (default: false)
61
- --cwd <dir> Set current working directory (default: "./")
62
- -h, --help display help for command
63
-
64
- Commands:
65
- shard [options] Starts in sharding mode
66
- start [options] Starts the bot
67
- help [command] display help for command
68
- ```
69
-
70
- ## Message Commands
71
-
72
- Reciple provides a built-in `MessageCommandBuilder` class that can be used for message command handler.
73
-
74
- [**Read Docs**](https://reciple.js.org/docs/core/main/classes:MessageCommandBuilder)
75
- ```js
76
- import { MessageCommandBuilder } from 'reciple';
77
-
78
- new MessageCommandBuilder()
79
- .setName("command")
80
- .setDescription("Your lil tiny description")
81
- .addAliases("cmd", "cmd1")
82
- .setExecute(command => command.message.reply("Hello!"));
83
- ```
84
-
85
- ### Validate Message Command Options
86
-
87
- [**Read Docs**](https://reciple.js.org/docs/core/main/classes:MessageCommandOptionBuilder)
88
- ```js
89
- import { MessageCommandBuilder } from 'reciple';
90
-
91
- new MessageCommandBuilder()
92
- .setName("command")
93
- .setDescription("Your lil tiny description")
94
- .addAliases("cmd", "cmd1")
95
- .setValidateOptions(true) // Validate options
96
- .addOption(option => option
97
- .setName("quantity")
98
- .setDescription("Must be a number")
99
- .setRequired(true) // A required option
100
- .setValidate(({ value }) => !isNaN(Number(value))) // Validate value
101
- .setResolveValue(({ value }) => Number(value)) // Resolves the option value
102
- )
103
- .setExecute(async command => {
104
- /**
105
- * @type {number}
106
- */
107
- const quantity = await data.options.getOptionValue('number', { required: true, resolveValue: true });;
108
- await command.message.reply("Quantity: " + quantity);
109
- });
110
- ```
111
-
112
- ## Context Menus
113
-
114
- Reciple provides extended `ContextMenuCommandBuilder` class that can be used for context menu command handler.
115
-
116
- [**Read Docs**](https://reciple.js.org/docs/core/main/classes:ContextMenuCommandBuilder)
117
- ```js
118
- import { ApplicationCommandType } from 'discord.js';
119
- import { ContextMenuCommandBuilder } from 'reciple';
120
-
121
- new ContextMenuCommandBuilder()
122
- .setName("Ban")
123
- .setType(ApplicationCommandType.User)
124
- .setExecute(async ({ interaction }) => {
125
- if (!interaction.inCachedGuild()) return;
126
-
127
- await interaction.deferReply();
128
- await interaction.targetMember.ban();
129
- await interaction.editReply(`Banned ${interaction.targetUser}`);
130
- });
131
- ```
132
-
133
- ## Slash Commands
134
-
135
- Reciple provides extended `SlashCommandBuilder` class that can be used for slash command handler.
136
- [**Read Docs**](https://reciple.js.org/docs/core/main/classes:SlashCommandBuilder)
137
-
138
- ```js
139
- import { SlashCommandMenuBuilder } from 'reciple';
140
-
141
- new SlashCommandBuilder()
142
- .setName("ping")
143
- .setDescription("Pong")
144
- .setExecute(async ({ interaction }) => {
145
- await interaction.reply(`Pong!`);
146
- });
147
- ```
148
-
149
- ## Command Cooldowns
150
-
151
- [**Read Docs**](https://reciple.js.org/docs/core/main/classes:BaseCommandBuilder#setcooldown)
152
-
153
- ```js
154
- import { ContextMenuCommandBuilder, MessageCommandBuilder, SlashCommandBuilder } from 'reciple';
155
- import { ApplicationCommandType } from 'discord.js';
156
-
157
- new ContextMenuCommandBuilder()
158
- .setName("Context Menu")
159
- .setType(ApplicationCommandType.Message)
160
- .setCooldown(1000 * 5) // 5 seconds cooldown
161
- .setExecute(async ({ interaction }) => {
162
- await interaction.reply(`Hello!`);
163
- });
164
-
165
- new MessageCommandBuilder()
166
- .setName("message-command")
167
- .setDescription(`Your command`)
168
- .setCooldown(1000 * 5) // 5 seconds cooldown
169
- .setExecute(async ({ message }) => {
170
- await message.reply(`Hello!`);
171
- });
172
-
173
- new SlashCommandBuilder()
174
- .setName("slash-command")
175
- .setDescription(`Your command`)
176
- .setCooldown(1000 * 5) // 5 seconds cooldown
177
- .setExecute(async ({ interaction }) => {
178
- await interaction.reply(`Hello!`);
179
- });
180
- ```
181
-
182
- ## Config
183
-
184
- You can configure the bot in `reciple.mjs` usually located in the bot's root directory.
185
-
186
- ### Token
187
-
188
- You can change the token in config.
189
-
190
- ```js
191
- token: "Your Token" // Directly set token string
192
- token: process.env.TOKEN // Use env variable
193
- ```
194
-
195
- You can override the given token as cli flag
196
-
197
- ```bash
198
- reciple --token "YOUR_TOKEN_HERE"
199
- reciple --token "env:TOKEN_VARIABLE"
200
- ```
201
-
202
- ---
203
-
204
- > ## Fun Fact
205
- >
206
- > The name reciple is from a minecraft bug. The bug was a misspelling of the word `recipe`. [View Mojang Bug Report](https://bugs.mojang.com/browse/MC-225837)
package/dist/bin.d.ts DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
package/dist/bin.js DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env node
2
- import { cli } from './types/constants.js';
3
- await cli.parse();
4
- //# sourceMappingURL=bin.js.map
package/dist/bin.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC"}
@@ -1,55 +0,0 @@
1
- import { type Logger } from '@reciple/core';
2
- import { PackageUpdateChecker, type PackageUpdateCheckerOptions } from '@reciple/utils';
3
- import type { Command, OptionValues } from 'commander';
4
- import { type PackageJson } from 'fallout-utility';
5
- import type { CLIDefaultFlags } from '../types/structures.js';
6
- import { type ExecSyncOptions } from 'node:child_process';
7
- export interface CLIOptions {
8
- packageJSON: PackageJson;
9
- processCwd?: string;
10
- commander: Command;
11
- binPath: string;
12
- logger?: Logger;
13
- updateChecker?: PackageUpdateCheckerOptions | PackageUpdateChecker;
14
- }
15
- export declare class CLI implements CLIOptions {
16
- static root: string;
17
- static commandsDir: string;
18
- static get shardMode(): boolean;
19
- static get shardLogsFolder(): string | null;
20
- static get shardDeployCommands(): boolean | null;
21
- static get threadId(): number | null;
22
- static get shardEnv(): NodeJS.Dict<string> & NodeJS.ProcessEnv;
23
- packageJSON: PackageJson;
24
- processCwd: string;
25
- commander: Command;
26
- binPath: string;
27
- logger?: Logger;
28
- logPath?: string;
29
- updateChecker?: PackageUpdateChecker;
30
- get name(): string;
31
- get description(): string;
32
- get version(): string;
33
- get args(): string[];
34
- get flags(): CLIDefaultFlags;
35
- get cwd(): string;
36
- get isCwdUpdated(): boolean;
37
- get threadId(): number | null;
38
- get shardMode(): boolean;
39
- get shardLogsFolder(): string | null;
40
- get shardDeployCommands(): boolean | null;
41
- get nodeEnv(): string | undefined;
42
- constructor(options: CLIOptions);
43
- parse(): Promise<this>;
44
- registerSubcommands(dir?: string): Promise<Command>;
45
- getFlags<Flags extends OptionValues = OptionValues>(command: Command | string, mergeDefault?: false): Flags | undefined;
46
- getFlags<Flags extends OptionValues = OptionValues>(command: Command | string, mergeDefault: true): Flags & CLIDefaultFlags | undefined;
47
- getFlags(command?: undefined): CLIDefaultFlags;
48
- getCommand(name: string): Command | undefined;
49
- getCommand(name?: undefined): Command;
50
- sendProcessInfo(): Promise<void>;
51
- protected preActionHandler(command: Command, action: Command): void;
52
- static stringifyFlags(flags: OptionValues, command: Command, ignored?: string[]): string[];
53
- static run(script: string, options?: ExecSyncOptions): string | Buffer<ArrayBufferLike>;
54
- static clearConsole(): void;
55
- }
@@ -1,191 +0,0 @@
1
- import { buildVersion } from '@reciple/core';
2
- import { existsAsync, PackageUpdateChecker, recursiveDefaults } from '@reciple/utils';
3
- import { isDebugging, kleur } from 'fallout-utility';
4
- import { mkdir, readdir, stat } from 'node:fs/promises';
5
- import path from 'node:path';
6
- import { fileURLToPath } from 'node:url';
7
- import { isMainThread, parentPort, threadId, workerData } from 'node:worker_threads';
8
- import { cli } from '../types/constants.js';
9
- import { config as loadEnv } from 'dotenv';
10
- import { execSync } from 'node:child_process';
11
- export class CLI {
12
- static root = path.join(path.dirname(fileURLToPath(import.meta.url)), '../../');
13
- static commandsDir = path.join(CLI.root, './dist/commands');
14
- static get shardMode() {
15
- return 'SHARDS' in CLI.shardEnv && 'SHARD_COUNT' in CLI.shardEnv;
16
- }
17
- static get shardLogsFolder() {
18
- return CLI.shardMode ? CLI.shardEnv.SHARDS_LOGS_FOLDER ?? null : null;
19
- }
20
- static get shardDeployCommands() {
21
- return CLI.shardMode ? !!CLI.shardEnv.SHARDS_DEPLOY_COMMANDS : null;
22
- }
23
- static get threadId() {
24
- return (!isMainThread && parentPort !== undefined ? threadId : undefined) ?? null;
25
- }
26
- static get shardEnv() {
27
- return !isMainThread && 'SHARDING_MANAGER' in workerData ? workerData : process.env;
28
- }
29
- packageJSON;
30
- processCwd;
31
- commander;
32
- binPath;
33
- logger;
34
- logPath;
35
- updateChecker;
36
- get name() {
37
- return this.packageJSON.name ?? 'reciple';
38
- }
39
- get description() {
40
- return this.packageJSON.description ?? '';
41
- }
42
- get version() {
43
- return this.packageJSON.version;
44
- }
45
- get args() {
46
- return this.commander.args;
47
- }
48
- get flags() {
49
- return this.commander.opts();
50
- }
51
- get cwd() {
52
- const cwd = this.getFlags().cwd;
53
- return cwd
54
- ? path.isAbsolute(cwd) ? cwd : path.join(this.processCwd, cwd)
55
- : this.processCwd;
56
- }
57
- get isCwdUpdated() {
58
- return process.cwd() !== this.processCwd;
59
- }
60
- get threadId() {
61
- return CLI.threadId;
62
- }
63
- get shardMode() {
64
- return CLI.shardMode;
65
- }
66
- get shardLogsFolder() {
67
- return CLI.shardLogsFolder;
68
- }
69
- get shardDeployCommands() {
70
- return CLI.shardDeployCommands;
71
- }
72
- get nodeEnv() {
73
- return process.env.NODE_ENV;
74
- }
75
- constructor(options) {
76
- this.packageJSON = options.packageJSON;
77
- this.processCwd = options.processCwd ?? process.cwd();
78
- this.commander = options.commander;
79
- this.binPath = options.binPath;
80
- this.logger = options.logger;
81
- if (options.updateChecker) {
82
- this.updateChecker = options.updateChecker instanceof PackageUpdateChecker ? options.updateChecker : new PackageUpdateChecker(options.updateChecker);
83
- }
84
- this.commander
85
- .name(this.name)
86
- .description(this.description)
87
- .version(`reciple: ${this.version}\n@reciple/client: ${buildVersion}`, '-v, --version')
88
- .option('--env <file>', 'Set .env file path', (v, p) => p.concat(v), [path.join(this.cwd, '.env')])
89
- .option('--debug', 'Enable debug mode', isDebugging())
90
- .option('--production', 'Starts in production mode', false)
91
- .hook('preAction', (cmd, action) => this.preActionHandler(cmd, action))
92
- .allowUnknownOption(true);
93
- if (this.threadId === null)
94
- this.commander.option('--cwd <dir>', 'Set current working directory', this.processCwd);
95
- }
96
- async parse() {
97
- await this.registerSubcommands();
98
- if (!await existsAsync(this.cwd))
99
- await mkdir(this.cwd, { recursive: true });
100
- const flags = this.getFlags();
101
- if (flags.debug && this.logger) {
102
- this.logger.debugmode ??= {};
103
- this.logger.debugmode.enabled ??= flags.debug;
104
- this.logger.debugmode.printMessage ??= true;
105
- }
106
- this.logger?.debug(`Reciple CLI flags:`, flags);
107
- if (flags.env.length) {
108
- this.logger?.debug(`Loading environment variables from:\n ${kleur.cyan(flags.env.join('\n '))}`);
109
- loadEnv({ path: flags.env });
110
- }
111
- this.updateChecker?.on('updateAvailable', data => this.logger?.warn(`An update is available for ${kleur.cyan(data.package)}: ${kleur.red(data.currentVersion)} ${kleur.gray('->')} ${kleur.green().bold(data.updatedVersion)}`));
112
- this.updateChecker?.on('updateError', (pkg, error) => this.logger?.debug(`An error occured while checking for updates for ${pkg}:`, error));
113
- this.updateChecker?.startCheckInterval(1000 * 60 * 60);
114
- await this.commander.parseAsync();
115
- return this;
116
- }
117
- async registerSubcommands(dir = CLI.commandsDir) {
118
- const statData = await stat(dir).catch(() => null);
119
- if (!statData)
120
- return this.commander;
121
- const files = (await readdir(dir))
122
- .map(f => path.join(dir, f))
123
- .filter(f => f.endsWith('.js'));
124
- for (const file of files) {
125
- const command = recursiveDefaults(await import(path.isAbsolute(file) ? `file://${file}` : file));
126
- if (!command || typeof command !== 'function')
127
- continue;
128
- await Promise.resolve(command(this.commander, this)).catch(() => null);
129
- }
130
- return this.commander;
131
- }
132
- getFlags(command, mergeDefault = false) {
133
- if (!command)
134
- return this.flags;
135
- command = typeof command === 'string' ? this.commander.commands.find(c => c.name() === command) : command;
136
- const flags = command?.opts();
137
- return mergeDefault ? { ...this.flags, ...flags } : flags;
138
- }
139
- getCommand(name) {
140
- if (!name)
141
- return this.commander;
142
- return this.commander.commands.find(c => c.name() === name);
143
- }
144
- async sendProcessInfo() {
145
- const message = { type: 'ProcessInfo', pid: process.pid, threadId, log: cli.logPath };
146
- if (parentPort)
147
- parentPort.postMessage(message);
148
- if (process.send)
149
- process.send(message);
150
- }
151
- preActionHandler(command, action) {
152
- this.logger?.debug(`Running command: ${kleur.cyan(command.name())} ${kleur.gray(kleur.bold(action.name()))}`);
153
- const flags = this.getFlags();
154
- if (flags.debug)
155
- process.env.NODE_ENV = 'development';
156
- if (flags.production)
157
- process.env.NODE_ENV = 'production';
158
- if ((cli.cwd !== cli.processCwd && !cli.isCwdUpdated) || this.threadId === null)
159
- process.chdir(cli.cwd);
160
- if (flags.debug && this.logger) {
161
- this.logger.debugmode = {
162
- ...this.logger?.debugmode,
163
- enabled: true
164
- };
165
- }
166
- }
167
- static stringifyFlags(flags, command, ignored = []) {
168
- let arr = [];
169
- for (const [key, value] of Object.entries(flags)) {
170
- const option = command.options.find(o => o.name() === key || o.attributeName() === key);
171
- if (!option || ignored.includes(key))
172
- continue;
173
- const flag = option.long ?? option.short ?? `--${option.name()}`;
174
- if (!option.flags.endsWith('>') && !option.flags.endsWith(']') && typeof value === 'boolean') {
175
- if (value)
176
- arr.push(flag);
177
- continue;
178
- }
179
- arr.push(flag, String(value));
180
- }
181
- return arr;
182
- }
183
- static run(script, options) {
184
- return execSync(script, options);
185
- }
186
- static clearConsole() {
187
- process.stdout.write("\u001b[3J\u001b[2J\u001b[1J");
188
- console.clear();
189
- }
190
- }
191
- //# sourceMappingURL=CLI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CLI.js","sourceRoot":"","sources":["../../src/classes/CLI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAe,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,iBAAiB,EAAoC,MAAM,gBAAgB,CAAC;AAExH,OAAO,EAAoC,WAAW,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAwB,MAAM,oBAAoB,CAAC;AAWpE,MAAM,OAAO,GAAG;IACL,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChF,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAEnE,MAAM,KAAK,SAAS;QAChB,OAAO,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,aAAa,IAAI,GAAG,CAAC,QAAQ,CAAC;IACrE,CAAC;IAED,MAAM,KAAK,eAAe;QACtB,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,CAAC;IAED,MAAM,KAAK,mBAAmB;QAC1B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,CAAC;IAED,MAAM,KAAK,QAAQ;QACf,OAAO,CAAC,CAAC,YAAY,IAAI,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IACtF,CAAC;IAED,MAAM,KAAK,QAAQ;QACf,OAAO,CAAC,YAAY,IAAI,kBAAkB,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACxF,CAAC;IAEM,WAAW,CAAc;IACzB,UAAU,CAAS;IACnB,SAAS,CAAU;IACnB,OAAO,CAAS;IAChB,MAAM,CAAU;IAChB,OAAO,CAAU;IAEjB,aAAa,CAAwB;IAE5C,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,SAAS,CAAC;IAC9C,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,WAAW,CAAC,OAAQ,CAAC;IACrC,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAmB,CAAC;IAClD,CAAC;IAED,IAAI,GAAG;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC;QAEhC,OAAO,GAAG;YACN,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC;YAC9D,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IAC1B,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,OAAO,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC;IAC7C,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,GAAG,CAAC,QAAQ,CAAC;IACxB,CAAC;IAED,IAAI,SAAS;QACT,OAAO,GAAG,CAAC,SAAS,CAAC;IACzB,CAAC;IAED,IAAI,eAAe;QACf,OAAO,GAAG,CAAC,eAAe,CAAC;IAC/B,CAAC;IAED,IAAI,mBAAmB;QACnB,OAAO,GAAG,CAAC,mBAAmB,CAAC;IACnC,CAAC;IAED,IAAI,OAAO;QACP,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,YAAY,OAAmB;QAC3B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,YAAY,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACzJ,CAAC;QAED,IAAI,CAAC,SAAS;aACT,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;aACf,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;aAC7B,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,sBAAsB,YAAY,EAAE,EAAE,eAAe,CAAC;aACtF,MAAM,CAAC,cAAc,EAAE,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;aAClG,MAAM,CAAC,SAAS,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC;aACrD,MAAM,CAAC,cAAc,EAAE,2BAA2B,EAAE,KAAK,CAAC;aAC1D,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;aACtE,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,+BAA+B,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IACtH,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjC,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7E,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,KAAK,IAAI,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAEhD,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,4CAA4C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YACvG,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,8BAA8B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;QACjO,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,mDAAmD,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5I,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAEvD,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QAElC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,MAAc,GAAG,CAAC,WAAW;QAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC;QAErC,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,iBAAiB,CAAkD,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAClJ,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,UAAU;gBAAE,SAAS;YAExD,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAKM,QAAQ,CAAC,OAAwB,EAAE,eAAwB,KAAK;QACnE,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QAEhC,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1G,MAAM,KAAK,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC;QAE9B,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,CAAC;IAIM,UAAU,CAAC,IAAa;QAC3B,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC;QAEjC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;IAChE,CAAC;IAEM,KAAK,CAAC,eAAe;QACxB,MAAM,OAAO,GAAuB,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;QAE1G,IAAI,UAAU;YAAE,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAES,gBAAgB,CAAC,OAAgB,EAAE,MAAe;QACxD,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,oBAAoB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAE9G,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAI,KAAK,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAC;QACtD,IAAI,KAAK,CAAC,UAAU;YAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;QAC1D,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;YAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAExG,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG;gBACpB,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS;gBACzB,OAAO,EAAE,IAAI;aAChB,CAAA;QACL,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,KAAmB,EAAE,OAAgB,EAAE,UAAoB,EAAE;QACtF,IAAI,GAAG,GAAa,EAAE,CAAC;QAEvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC;YACxF,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS;YAE/C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAEjE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC3F,IAAI,KAAK;oBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,SAAS;YACb,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,MAAc,EAAE,OAAyB;QACvD,OAAO,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAEM,MAAM,CAAC,YAAY;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC"}
@@ -1,26 +0,0 @@
1
- import type { RecipleConfig } from '../types/structures.js';
2
- import { CLI } from './CLI.js';
3
- import { type LoggerOptions } from '@reciple/core';
4
- import type { ShardingManagerOptions } from 'discord.js';
5
- export interface RecipleConfigJS {
6
- config: RecipleConfig;
7
- sharding?: Omit<ShardingManagerOptions, 'shardArgs' | 'token' | 'execArgv'>;
8
- }
9
- export interface ConfigReadOptions {
10
- path: string;
11
- createIfNotExists?: boolean;
12
- }
13
- export declare class Config {
14
- private constructor();
15
- static defaultConfigFile: string;
16
- static getDefaultConfigData(): Promise<RecipleConfigJS>;
17
- static getDefaultConfigContent(): Promise<string>;
18
- static readConfigFile(options: ConfigReadOptions & {
19
- createIfNotExists: false;
20
- }): Promise<RecipleConfigJS | null>;
21
- static readConfigFile(options: ConfigReadOptions & {
22
- createIfNotExists?: true;
23
- }): Promise<RecipleConfigJS>;
24
- static createConfigFile(file: string): Promise<string>;
25
- static createLoggerOptions(config: RecipleConfig, options?: Partial<LoggerOptions>, cli?: CLI): Promise<LoggerOptions>;
26
- }
@@ -1,73 +0,0 @@
1
- import path from 'node:path';
2
- import { CLI } from './CLI.js';
3
- import { existsAsync, recursiveDefaults } from '@reciple/utils';
4
- import { mkdir, readFile, writeFile } from 'node:fs/promises';
5
- import { cliVersion } from '../types/constants.js';
6
- import { FileWriteStreamMode, Logger, RecipleError } from '@reciple/core';
7
- import { kleur } from 'fallout-utility';
8
- export class Config {
9
- constructor() { }
10
- static defaultConfigFile = path.join(CLI.root, './static/config.mjs');
11
- static async getDefaultConfigData() {
12
- return recursiveDefaults(await import('file://' + Config.defaultConfigFile));
13
- }
14
- static async getDefaultConfigContent() {
15
- let defaultConfig = (await readFile(Config.defaultConfigFile, 'utf-8')).replaceAll('\r\n', '\n');
16
- defaultConfig = defaultConfig.replace(`import { cliVersion } from 'reciple';\n`, '');
17
- defaultConfig = defaultConfig.replace('version: `^${cliVersion}`', 'version: `^' + cliVersion + '`');
18
- return defaultConfig;
19
- }
20
- static async readConfigFile(options) {
21
- const file = path.resolve(options.path);
22
- const fileExists = await existsAsync(file);
23
- const isFile = path.isAbsolute(options.path) || fileExists || options.path.startsWith('.') || ['reciple.js', 'reciple.mjs'].includes(options.path);
24
- if (isFile && !fileExists) {
25
- if (!options.createIfNotExists)
26
- return null;
27
- await Config.createConfigFile(file);
28
- }
29
- const data = recursiveDefaults(await import(isFile ? ('file://' + file) : options.path));
30
- if (!data || !('config' in data))
31
- throw new RecipleError(`Invalid config data in ${kleur.yellow("'" + file) + "'"}`);
32
- return data;
33
- }
34
- static async createConfigFile(file) {
35
- if (await existsAsync(file))
36
- return file;
37
- const defaultConfig = await Config.getDefaultConfigContent();
38
- await mkdir(path.dirname(file), { recursive: true });
39
- await writeFile(file, defaultConfig, 'utf-8');
40
- return file;
41
- }
42
- static async createLoggerOptions(config, options, cli) {
43
- const loggerConfig = !(config.logger instanceof Logger) ? config.logger : undefined;
44
- let file = loggerConfig?.logToFile.enabled && loggerConfig?.logToFile.logsFolder && loggerConfig?.logToFile.file
45
- ? path.join(loggerConfig?.logToFile.logsFolder, loggerConfig?.logToFile.file)
46
- : undefined;
47
- if (CLI.shardMode && loggerConfig?.logToFile.enabled) {
48
- const folder = CLI.shardLogsFolder ?? loggerConfig?.logToFile.logsFolder;
49
- file = path.join(folder, `${(process.env.SHARDS ? process.env.SHARDS + '-' : '') + (CLI.threadId !== null ? (CLI.threadId + '-') : '') + process.pid}.log`);
50
- }
51
- if (cli && file)
52
- cli.logPath = file;
53
- const data = {
54
- ...options,
55
- debugmode: {
56
- ...options?.debugmode,
57
- enabled: options?.debugmode?.enabled ?? (typeof loggerConfig?.debugmode === 'boolean'
58
- ? loggerConfig?.debugmode
59
- : undefined)
60
- },
61
- writeStream: loggerConfig?.logToFile.enabled && file
62
- ? await Logger.createFileWriteStream({
63
- mode: FileWriteStreamMode.Rename,
64
- path: file
65
- })
66
- : undefined,
67
- label: (cli?.shardMode ? `Shards ${process.env.SHARDS ?? CLI.threadId}` : null) || options?.label
68
- };
69
- logger.debug(`Created logger options:`, data);
70
- return data;
71
- }
72
- }
73
- //# sourceMappingURL=Config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/classes/Config.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { type RecipleClient } from '../index.js';
2
- export declare class EventHandlers {
3
- private constructor();
4
- static addClientEvents(client: RecipleClient): void;
5
- static addCommandExecuteHandlers(client: RecipleClient): void;
6
- private static quoteString;
7
- static addExitListener(listener: (signal: NodeJS.Signals) => any, once?: boolean): void;
8
- static removeExitListener(listener: (signal: NodeJS.Signals) => any): void;
9
- }