@ninenity/neutrun 1.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/README.md +5 -0
- package/dist/CLI/Bootstrap.d.ts +2 -0
- package/dist/CLI/Bootstrap.d.ts.map +1 -0
- package/dist/CLI/Bootstrap.js +71 -0
- package/dist/CLI/Bootstrap.js.map +1 -0
- package/dist/CLI/Localize.d.ts +2 -0
- package/dist/CLI/Localize.d.ts.map +1 -0
- package/dist/CLI/Localize.js +248 -0
- package/dist/CLI/Localize.js.map +1 -0
- package/dist/CLI/Translate.d.ts +2 -0
- package/dist/CLI/Translate.d.ts.map +1 -0
- package/dist/CLI/Translate.js +82 -0
- package/dist/CLI/Translate.js.map +1 -0
- package/dist/CLI/bin.d.ts +3 -0
- package/dist/CLI/bin.d.ts.map +1 -0
- package/dist/CLI/bin.js +36 -0
- package/dist/CLI/bin.js.map +1 -0
- package/dist/Emojis/EmojiLoader.d.ts +4 -0
- package/dist/Emojis/EmojiLoader.d.ts.map +1 -0
- package/dist/Emojis/EmojiLoader.js +262 -0
- package/dist/Emojis/EmojiLoader.js.map +1 -0
- package/dist/Emojis/Pool.d.ts +3 -0
- package/dist/Emojis/Pool.d.ts.map +1 -0
- package/dist/Emojis/Pool.js +33 -0
- package/dist/Emojis/Pool.js.map +1 -0
- package/dist/Emojis/index.d.ts +3 -0
- package/dist/Emojis/index.d.ts.map +1 -0
- package/dist/Emojis/index.js +9 -0
- package/dist/Emojis/index.js.map +1 -0
- package/dist/Emojis/types.d.ts +15 -0
- package/dist/Emojis/types.d.ts.map +1 -0
- package/dist/Emojis/types.js +3 -0
- package/dist/Emojis/types.js.map +1 -0
- package/dist/I18n/index.d.ts +34 -0
- package/dist/I18n/index.d.ts.map +1 -0
- package/dist/I18n/index.js +77 -0
- package/dist/I18n/index.js.map +1 -0
- package/dist/Logger/Color.d.ts +15 -0
- package/dist/Logger/Color.d.ts.map +1 -0
- package/dist/Logger/Color.js +54 -0
- package/dist/Logger/Color.js.map +1 -0
- package/dist/Logger/index.d.ts +38 -0
- package/dist/Logger/index.d.ts.map +1 -0
- package/dist/Logger/index.js +577 -0
- package/dist/Logger/index.js.map +1 -0
- package/dist/Modules/Bots/index.d.ts +4 -0
- package/dist/Modules/Bots/index.d.ts.map +1 -0
- package/dist/Modules/Bots/index.js +45 -0
- package/dist/Modules/Bots/index.js.map +1 -0
- package/dist/Modules/Component/index.d.ts +14 -0
- package/dist/Modules/Component/index.d.ts.map +1 -0
- package/dist/Modules/Component/index.js +32 -0
- package/dist/Modules/Component/index.js.map +1 -0
- package/dist/Modules/Config/index.d.ts +5 -0
- package/dist/Modules/Config/index.d.ts.map +1 -0
- package/dist/Modules/Config/index.js +13 -0
- package/dist/Modules/Config/index.js.map +1 -0
- package/dist/Modules/Database/index.d.ts +15 -0
- package/dist/Modules/Database/index.d.ts.map +1 -0
- package/dist/Modules/Database/index.js +22 -0
- package/dist/Modules/Database/index.js.map +1 -0
- package/dist/Modules/Diagnostics/ModuleDiagnostics.d.ts +18 -0
- package/dist/Modules/Diagnostics/ModuleDiagnostics.d.ts.map +1 -0
- package/dist/Modules/Diagnostics/ModuleDiagnostics.js +101 -0
- package/dist/Modules/Diagnostics/ModuleDiagnostics.js.map +1 -0
- package/dist/Modules/Diagnostics/index.d.ts +3 -0
- package/dist/Modules/Diagnostics/index.d.ts.map +1 -0
- package/dist/Modules/Diagnostics/index.js +7 -0
- package/dist/Modules/Diagnostics/index.js.map +1 -0
- package/dist/Modules/Logs/index.d.ts +4 -0
- package/dist/Modules/Logs/index.d.ts.map +1 -0
- package/dist/Modules/Logs/index.js +11 -0
- package/dist/Modules/Logs/index.js.map +1 -0
- package/dist/Modules/Storage/index.d.ts +3 -0
- package/dist/Modules/Storage/index.d.ts.map +1 -0
- package/dist/Modules/Storage/index.js +11 -0
- package/dist/Modules/Storage/index.js.map +1 -0
- package/dist/Modules/index.d.ts +8 -0
- package/dist/Modules/index.d.ts.map +1 -0
- package/dist/Modules/index.js +45 -0
- package/dist/Modules/index.js.map +1 -0
- package/dist/Shared/Autocomplete.d.ts +31 -0
- package/dist/Shared/Autocomplete.d.ts.map +1 -0
- package/dist/Shared/Autocomplete.js +37 -0
- package/dist/Shared/Autocomplete.js.map +1 -0
- package/dist/Shared/ChannelLoader.d.ts +4 -0
- package/dist/Shared/ChannelLoader.d.ts.map +1 -0
- package/dist/Shared/ChannelLoader.js +133 -0
- package/dist/Shared/ChannelLoader.js.map +1 -0
- package/dist/Shared/Client.d.ts +30 -0
- package/dist/Shared/Client.d.ts.map +1 -0
- package/dist/Shared/Client.js +517 -0
- package/dist/Shared/Client.js.map +1 -0
- package/dist/Shared/ComponentAutoDeploy.d.ts +3 -0
- package/dist/Shared/ComponentAutoDeploy.d.ts.map +1 -0
- package/dist/Shared/ComponentAutoDeploy.js +230 -0
- package/dist/Shared/ComponentAutoDeploy.js.map +1 -0
- package/dist/Shared/ComponentRuntime.d.ts +43 -0
- package/dist/Shared/ComponentRuntime.d.ts.map +1 -0
- package/dist/Shared/ComponentRuntime.js +393 -0
- package/dist/Shared/ComponentRuntime.js.map +1 -0
- package/dist/Shared/Config.d.ts +6 -0
- package/dist/Shared/Config.d.ts.map +1 -0
- package/dist/Shared/Config.js +15 -0
- package/dist/Shared/Config.js.map +1 -0
- package/dist/Shared/ConfigLoader.d.ts +2 -0
- package/dist/Shared/ConfigLoader.d.ts.map +1 -0
- package/dist/Shared/ConfigLoader.js +74 -0
- package/dist/Shared/ConfigLoader.js.map +1 -0
- package/dist/Shared/ConfigProxy.d.ts +2 -0
- package/dist/Shared/ConfigProxy.d.ts.map +1 -0
- package/dist/Shared/ConfigProxy.js +46 -0
- package/dist/Shared/ConfigProxy.js.map +1 -0
- package/dist/Shared/ConsoleLog.d.ts +7 -0
- package/dist/Shared/ConsoleLog.d.ts.map +1 -0
- package/dist/Shared/ConsoleLog.js +23 -0
- package/dist/Shared/ConsoleLog.js.map +1 -0
- package/dist/Shared/CooldownManager.d.ts +16 -0
- package/dist/Shared/CooldownManager.d.ts.map +1 -0
- package/dist/Shared/CooldownManager.js +167 -0
- package/dist/Shared/CooldownManager.js.map +1 -0
- package/dist/Shared/Definer.d.ts +10 -0
- package/dist/Shared/Definer.d.ts.map +1 -0
- package/dist/Shared/Definer.js +711 -0
- package/dist/Shared/Definer.js.map +1 -0
- package/dist/Shared/EventBus.d.ts +48 -0
- package/dist/Shared/EventBus.d.ts.map +1 -0
- package/dist/Shared/EventBus.js +181 -0
- package/dist/Shared/EventBus.js.map +1 -0
- package/dist/Shared/InteractionContext.d.ts +12 -0
- package/dist/Shared/InteractionContext.d.ts.map +1 -0
- package/dist/Shared/InteractionContext.js +34 -0
- package/dist/Shared/InteractionContext.js.map +1 -0
- package/dist/Shared/InteractionManager.d.ts +27 -0
- package/dist/Shared/InteractionManager.d.ts.map +1 -0
- package/dist/Shared/InteractionManager.js +256 -0
- package/dist/Shared/InteractionManager.js.map +1 -0
- package/dist/Shared/LocalBotRegistry.d.ts +14 -0
- package/dist/Shared/LocalBotRegistry.d.ts.map +1 -0
- package/dist/Shared/LocalBotRegistry.js +140 -0
- package/dist/Shared/LocalBotRegistry.js.map +1 -0
- package/dist/Shared/LogTransport.d.ts +49 -0
- package/dist/Shared/LogTransport.d.ts.map +1 -0
- package/dist/Shared/LogTransport.js +357 -0
- package/dist/Shared/LogTransport.js.map +1 -0
- package/dist/Shared/Neutrun.d.ts +55 -0
- package/dist/Shared/Neutrun.d.ts.map +1 -0
- package/dist/Shared/Neutrun.js +269 -0
- package/dist/Shared/Neutrun.js.map +1 -0
- package/dist/Shared/Plugin.d.ts +8 -0
- package/dist/Shared/Plugin.d.ts.map +1 -0
- package/dist/Shared/Plugin.js +3 -0
- package/dist/Shared/Plugin.js.map +1 -0
- package/dist/Shared/Pool.d.ts +3 -0
- package/dist/Shared/Pool.d.ts.map +1 -0
- package/dist/Shared/Pool.js +29 -0
- package/dist/Shared/Pool.js.map +1 -0
- package/dist/Shared/ProcessManager.d.ts +11 -0
- package/dist/Shared/ProcessManager.d.ts.map +1 -0
- package/dist/Shared/ProcessManager.js +56 -0
- package/dist/Shared/ProcessManager.js.map +1 -0
- package/dist/Shared/QueueManager.d.ts +9 -0
- package/dist/Shared/QueueManager.d.ts.map +1 -0
- package/dist/Shared/QueueManager.js +65 -0
- package/dist/Shared/QueueManager.js.map +1 -0
- package/dist/Shared/RoleLoader.d.ts +4 -0
- package/dist/Shared/RoleLoader.d.ts.map +1 -0
- package/dist/Shared/RoleLoader.js +138 -0
- package/dist/Shared/RoleLoader.js.map +1 -0
- package/dist/Shared/Supervisor.d.ts +67 -0
- package/dist/Shared/Supervisor.d.ts.map +1 -0
- package/dist/Shared/Supervisor.js +308 -0
- package/dist/Shared/Supervisor.js.map +1 -0
- package/dist/Shared/TelemetryService.d.ts +63 -0
- package/dist/Shared/TelemetryService.d.ts.map +1 -0
- package/dist/Shared/TelemetryService.js +631 -0
- package/dist/Shared/TelemetryService.js.map +1 -0
- package/dist/Shared/Utils.d.ts +94 -0
- package/dist/Shared/Utils.d.ts.map +1 -0
- package/dist/Shared/Utils.js +390 -0
- package/dist/Shared/Utils.js.map +1 -0
- package/dist/Shared/WebSocket.d.ts +15 -0
- package/dist/Shared/WebSocket.d.ts.map +1 -0
- package/dist/Shared/WebSocket.js +599 -0
- package/dist/Shared/WebSocket.js.map +1 -0
- package/dist/Types/Client.Type.d.ts +130 -0
- package/dist/Types/Client.Type.d.ts.map +1 -0
- package/dist/Types/Client.Type.js +182 -0
- package/dist/Types/Client.Type.js.map +1 -0
- package/dist/Types/Command.Type.d.ts +28 -0
- package/dist/Types/Command.Type.d.ts.map +1 -0
- package/dist/Types/Command.Type.js +4 -0
- package/dist/Types/Command.Type.js.map +1 -0
- package/dist/Types/Definer.Type.d.ts +37 -0
- package/dist/Types/Definer.Type.d.ts.map +1 -0
- package/dist/Types/Definer.Type.js +4 -0
- package/dist/Types/Definer.Type.js.map +1 -0
- package/dist/Types/InputInteraction.Type.d.ts +90 -0
- package/dist/Types/InputInteraction.Type.d.ts.map +1 -0
- package/dist/Types/InputInteraction.Type.js +339 -0
- package/dist/Types/InputInteraction.Type.js.map +1 -0
- package/dist/Types/Interaction.Type.d.ts +47 -0
- package/dist/Types/Interaction.Type.d.ts.map +1 -0
- package/dist/Types/Interaction.Type.js +4 -0
- package/dist/Types/Interaction.Type.js.map +1 -0
- package/dist/Types/Log.Type.d.ts +28 -0
- package/dist/Types/Log.Type.d.ts.map +1 -0
- package/dist/Types/Log.Type.js +3 -0
- package/dist/Types/Log.Type.js.map +1 -0
- package/dist/Types/Permission.Type.d.ts +17 -0
- package/dist/Types/Permission.Type.d.ts.map +1 -0
- package/dist/Types/Permission.Type.js +13 -0
- package/dist/Types/Permission.Type.js.map +1 -0
- package/dist/Types/PrefixCommandBuilder.Type.d.ts +81 -0
- package/dist/Types/PrefixCommandBuilder.Type.d.ts.map +1 -0
- package/dist/Types/PrefixCommandBuilder.Type.js +203 -0
- package/dist/Types/PrefixCommandBuilder.Type.js.map +1 -0
- package/dist/Types/TaskDefiner.Type.d.ts +14 -0
- package/dist/Types/TaskDefiner.Type.d.ts.map +1 -0
- package/dist/Types/TaskDefiner.Type.js +4 -0
- package/dist/Types/TaskDefiner.Type.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +122 -0
- package/dist/index.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const sharp_1 = __importDefault(require("sharp"));
|
|
9
|
+
const ConsoleLog_1 = require("../Shared/ConsoleLog");
|
|
10
|
+
const Color_1 = __importDefault(require("../Logger/Color"));
|
|
11
|
+
const Neutrun_1 = __importDefault(require("../Shared/Neutrun"));
|
|
12
|
+
const Pool_1 = __importDefault(require("./Pool"));
|
|
13
|
+
const ValidExtensions = ['.png', '.jpg', '.jpeg', '.gif'];
|
|
14
|
+
const MimeTypeMap = {
|
|
15
|
+
'.png': 'image/png',
|
|
16
|
+
'.jpg': 'image/jpeg',
|
|
17
|
+
'.jpeg': 'image/jpeg',
|
|
18
|
+
'.gif': 'image/gif'
|
|
19
|
+
};
|
|
20
|
+
const MAX_EMOJI_SIZE = 262144;
|
|
21
|
+
const MAX_RETRIES = 25;
|
|
22
|
+
const DELETE_CONCURRENCY = 10;
|
|
23
|
+
const COMPRESS_CONCURRENCY = 8;
|
|
24
|
+
const UPLOAD_CONCURRENCY = 5;
|
|
25
|
+
const UNDEFINED_EMOJI_NAME = '__';
|
|
26
|
+
const ReadLocalImages = (imagesDir) => {
|
|
27
|
+
const Images = new Map();
|
|
28
|
+
if (!fs_1.default.existsSync(imagesDir))
|
|
29
|
+
return Images;
|
|
30
|
+
const Files = fs_1.default.readdirSync(imagesDir);
|
|
31
|
+
for (const File of Files) {
|
|
32
|
+
const Ext = path_1.default.extname(File).toLowerCase();
|
|
33
|
+
if (!ValidExtensions.includes(Ext))
|
|
34
|
+
continue;
|
|
35
|
+
const Name = path_1.default.basename(File, Ext);
|
|
36
|
+
Images.set(Name, {
|
|
37
|
+
FilePath: path_1.default.join(imagesDir, File),
|
|
38
|
+
Extension: Ext
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return Images;
|
|
42
|
+
};
|
|
43
|
+
const CompressImage = async (buffer, extension, level) => {
|
|
44
|
+
try {
|
|
45
|
+
const sharpInstance = (0, sharp_1.default)(buffer);
|
|
46
|
+
if (extension === '.gif') {
|
|
47
|
+
return await sharpInstance
|
|
48
|
+
.resize({ width: Math.max(128 - level * 5, 32) })
|
|
49
|
+
.gif({ colours: Math.max(128 - level * 5, 16) })
|
|
50
|
+
.toBuffer();
|
|
51
|
+
}
|
|
52
|
+
if (extension === '.png') {
|
|
53
|
+
return await sharpInstance
|
|
54
|
+
.resize({ width: Math.max(128 - level * 5, 32) })
|
|
55
|
+
.png({ quality: Math.max(80 - level * 5, 10) })
|
|
56
|
+
.toBuffer();
|
|
57
|
+
}
|
|
58
|
+
return await sharpInstance
|
|
59
|
+
.resize({ width: Math.max(128 - level * 16, 32) })
|
|
60
|
+
.jpeg({ quality: Math.max(80 - level * 15, 10) })
|
|
61
|
+
.toBuffer();
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
(0, ConsoleLog_1.logWarn)(`Falha ao comprimir imagem (level ${level})`);
|
|
65
|
+
return buffer;
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
const PrepareEmoji = async (buffer, extension, name) => {
|
|
69
|
+
if (buffer.length <= MAX_EMOJI_SIZE)
|
|
70
|
+
return buffer;
|
|
71
|
+
let Current = buffer;
|
|
72
|
+
let Attempt = 0;
|
|
73
|
+
while (Current.length > MAX_EMOJI_SIZE && Attempt < MAX_RETRIES) {
|
|
74
|
+
Attempt++;
|
|
75
|
+
const SizeKB = Math.round(Current.length / 1024);
|
|
76
|
+
(0, ConsoleLog_1.logInfo)(`Emoji [${name}] muito grande (${SizeKB}KB), comprimindo (tentativa ${Attempt}/${MAX_RETRIES})...`);
|
|
77
|
+
Current = await CompressImage(Current, extension, Attempt);
|
|
78
|
+
}
|
|
79
|
+
if (Current.length > MAX_EMOJI_SIZE) {
|
|
80
|
+
const SizeKB = Math.round(Current.length / 1024);
|
|
81
|
+
(0, ConsoleLog_1.logWarn)(`Emoji [${name}] não comprimiu o suficiente (${SizeKB}KB), pulando`);
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
return Current;
|
|
85
|
+
};
|
|
86
|
+
const UploadUndefinedEmoji = async (application) => {
|
|
87
|
+
const AppEmojis = await application.emojis.fetch();
|
|
88
|
+
const Existing = AppEmojis.find((E) => E.name === UNDEFINED_EMOJI_NAME);
|
|
89
|
+
if (Existing) {
|
|
90
|
+
const Prefix = Existing.animated ? 'a:' : ':';
|
|
91
|
+
const Markdown = `<${Prefix}${Existing.name}:${Existing.id}>`;
|
|
92
|
+
return {
|
|
93
|
+
Id: Existing.id,
|
|
94
|
+
Markdown,
|
|
95
|
+
Image: Existing.imageURL(),
|
|
96
|
+
toString: () => Markdown
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
const FileBuffer = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==', 'base64');
|
|
100
|
+
const Base64 = FileBuffer.toString('base64');
|
|
101
|
+
const DataUri = `data:image/png;base64,${Base64}`;
|
|
102
|
+
const NewEmoji = await application.emojis.create({
|
|
103
|
+
attachment: DataUri,
|
|
104
|
+
name: UNDEFINED_EMOJI_NAME
|
|
105
|
+
});
|
|
106
|
+
(0, ConsoleLog_1.logSuccess)(`Emoji fallback [${NewEmoji.name}] criado`);
|
|
107
|
+
const Markdown = `<:${NewEmoji.name}:${NewEmoji.id}>`;
|
|
108
|
+
return {
|
|
109
|
+
Id: NewEmoji.id,
|
|
110
|
+
Markdown,
|
|
111
|
+
Image: NewEmoji.imageURL(),
|
|
112
|
+
toString: () => Markdown
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
const GenerateEmojisFile = (emojisData) => {
|
|
116
|
+
const FilePath = Neutrun_1.default.getGeneratedPath('Emojis.ts');
|
|
117
|
+
const OutputDir = path_1.default.dirname(FilePath);
|
|
118
|
+
if (!fs_1.default.existsSync(OutputDir)) {
|
|
119
|
+
fs_1.default.mkdirSync(OutputDir, { recursive: true });
|
|
120
|
+
}
|
|
121
|
+
const Names = Object.keys(emojisData).sort();
|
|
122
|
+
const Lines = [];
|
|
123
|
+
Lines.push("import type { EmojiData } from '@ninenity/neutrun'");
|
|
124
|
+
Lines.push('');
|
|
125
|
+
Lines.push('export interface AppEmojis {');
|
|
126
|
+
for (const Name of Names) {
|
|
127
|
+
Lines.push(` readonly ${Name}: EmojiData`);
|
|
128
|
+
}
|
|
129
|
+
Lines.push('}');
|
|
130
|
+
Lines.push('');
|
|
131
|
+
Lines.push('const Emojis: AppEmojis = {');
|
|
132
|
+
for (const Name of Names) {
|
|
133
|
+
const Emoji = emojisData[Name];
|
|
134
|
+
Lines.push(` ${Name}: {`);
|
|
135
|
+
Lines.push(` Id: '${Emoji.Id}',`);
|
|
136
|
+
Lines.push(` Markdown: '${Emoji.Markdown}',`);
|
|
137
|
+
Lines.push(` Image: '${Emoji.Image}',`);
|
|
138
|
+
Lines.push(` toString: () => '${Emoji.Markdown}'`);
|
|
139
|
+
Lines.push(' },');
|
|
140
|
+
}
|
|
141
|
+
Lines.push('}');
|
|
142
|
+
Lines.push('');
|
|
143
|
+
Lines.push('export default Emojis');
|
|
144
|
+
Lines.push('export type EmojiName = keyof AppEmojis');
|
|
145
|
+
const NewContent = Lines.join('\n');
|
|
146
|
+
const ExistingContent = fs_1.default.existsSync(FilePath)
|
|
147
|
+
? fs_1.default.readFileSync(FilePath, 'utf-8')
|
|
148
|
+
: '';
|
|
149
|
+
if (ExistingContent !== NewContent) {
|
|
150
|
+
fs_1.default.writeFileSync(FilePath, NewContent, 'utf-8');
|
|
151
|
+
(0, ConsoleLog_1.logSuccess)(`Arquivo ${(0, Color_1.default)('Emojis.ts', 'cyan', 'bold')} gerado em .ninenity/Generated/`, 'Emojis');
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
const LoadEmojis = async (client) => {
|
|
155
|
+
if (!client.application) {
|
|
156
|
+
(0, ConsoleLog_1.logError)('Client não possui aplicação válida para sincronizar emojis.');
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
const application = client.application;
|
|
160
|
+
const ImagesDir = path_1.default.join(process.cwd(), 'src', 'Shared', 'Emojis');
|
|
161
|
+
const LocalEmojis = ReadLocalImages(ImagesDir);
|
|
162
|
+
const UndefinedEmoji = await UploadUndefinedEmoji(application);
|
|
163
|
+
let AppEmojis = await application.emojis.fetch();
|
|
164
|
+
const deletePool = (0, Pool_1.default)(DELETE_CONCURRENCY);
|
|
165
|
+
const deletePromises = [];
|
|
166
|
+
for (const [EmojiId, AppEmoji] of AppEmojis) {
|
|
167
|
+
if (!AppEmoji.name ||
|
|
168
|
+
(!LocalEmojis.has(AppEmoji.name) &&
|
|
169
|
+
AppEmoji.name !== UNDEFINED_EMOJI_NAME)) {
|
|
170
|
+
deletePromises.push(deletePool(async () => {
|
|
171
|
+
try {
|
|
172
|
+
await application.emojis.delete(EmojiId);
|
|
173
|
+
(0, ConsoleLog_1.logInfo)(`Emoji [${AppEmoji.name || EmojiId}] removido`);
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
(0, ConsoleLog_1.logError)(`Erro ao deletar emoji [${AppEmoji.name || EmojiId}]: ${error.message || error}`);
|
|
177
|
+
}
|
|
178
|
+
}));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
await Promise.all(deletePromises);
|
|
182
|
+
if (deletePromises.length > 0) {
|
|
183
|
+
AppEmojis = await application.emojis.fetch();
|
|
184
|
+
}
|
|
185
|
+
const toUpload = [];
|
|
186
|
+
const compressPool = (0, Pool_1.default)(COMPRESS_CONCURRENCY);
|
|
187
|
+
const compressPromises = [];
|
|
188
|
+
for (const [Name, Info] of LocalEmojis.entries()) {
|
|
189
|
+
const Existing = AppEmojis.find((E) => E.name === Name);
|
|
190
|
+
if (Existing)
|
|
191
|
+
continue;
|
|
192
|
+
compressPromises.push(compressPool(async () => {
|
|
193
|
+
const FileBuffer = fs_1.default.readFileSync(Info.FilePath);
|
|
194
|
+
const Prepared = await PrepareEmoji(FileBuffer, Info.Extension, Name);
|
|
195
|
+
if (Prepared) {
|
|
196
|
+
toUpload.push({
|
|
197
|
+
Name,
|
|
198
|
+
Extension: Info.Extension,
|
|
199
|
+
Buffer: Prepared
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}));
|
|
203
|
+
}
|
|
204
|
+
await Promise.all(compressPromises);
|
|
205
|
+
if (toUpload.length === 0) {
|
|
206
|
+
(0, ConsoleLog_1.logSuccess)('Todos os emojis foram sincronizados', 'Emojis');
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
let SyncedCount = 0;
|
|
210
|
+
const uploadPool = (0, Pool_1.default)(UPLOAD_CONCURRENCY);
|
|
211
|
+
const uploadPromises = [];
|
|
212
|
+
for (const emoji of toUpload) {
|
|
213
|
+
uploadPromises.push(uploadPool(async () => {
|
|
214
|
+
try {
|
|
215
|
+
const Base64 = emoji.Buffer.toString('base64');
|
|
216
|
+
const MimeType = MimeTypeMap[emoji.Extension] || 'image/png';
|
|
217
|
+
const DataUri = `data:${MimeType};base64,${Base64}`;
|
|
218
|
+
const NewEmoji = await application.emojis.create({
|
|
219
|
+
attachment: DataUri,
|
|
220
|
+
name: emoji.Name
|
|
221
|
+
});
|
|
222
|
+
SyncedCount++;
|
|
223
|
+
(0, ConsoleLog_1.logSuccess)(`Emoji [${NewEmoji.name}] criado com sucesso`);
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
(0, ConsoleLog_1.logError)(`Erro ao fazer upload do emoji [${emoji.Name}]: ${error.message || error}`);
|
|
227
|
+
}
|
|
228
|
+
}));
|
|
229
|
+
}
|
|
230
|
+
await Promise.all(uploadPromises);
|
|
231
|
+
(0, ConsoleLog_1.logInfo)(`${SyncedCount} emojis adicionados`);
|
|
232
|
+
}
|
|
233
|
+
AppEmojis = await application.emojis.fetch();
|
|
234
|
+
const EmojisData = {};
|
|
235
|
+
for (const [_, Emoji] of AppEmojis) {
|
|
236
|
+
if (!Emoji.name || Emoji.name === UNDEFINED_EMOJI_NAME)
|
|
237
|
+
continue;
|
|
238
|
+
const IsAnimated = Emoji.animated;
|
|
239
|
+
const Prefix = IsAnimated ? 'a:' : ':';
|
|
240
|
+
const Markdown = `<${Prefix}${Emoji.name}:${Emoji.id}>`;
|
|
241
|
+
EmojisData[Emoji.name] = {
|
|
242
|
+
Id: Emoji.id,
|
|
243
|
+
Markdown,
|
|
244
|
+
Image: Emoji.imageURL(),
|
|
245
|
+
toString: () => Markdown
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
GenerateEmojisFile(EmojisData);
|
|
249
|
+
const appEmojisProxy = new Proxy(EmojisData, {
|
|
250
|
+
get(target, prop) {
|
|
251
|
+
const key = String(prop);
|
|
252
|
+
if (key in target)
|
|
253
|
+
return target[key];
|
|
254
|
+
return UndefinedEmoji;
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
const Total = Object.keys(EmojisData).length;
|
|
258
|
+
client.appEmojis = appEmojisProxy;
|
|
259
|
+
(0, ConsoleLog_1.logSuccess)(`${(0, Color_1.default)(String(Total), 'cyan', 'bold')} emojis carregados`, 'Emojis');
|
|
260
|
+
};
|
|
261
|
+
exports.default = LoadEmojis;
|
|
262
|
+
//# sourceMappingURL=EmojiLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmojiLoader.js","sourceRoot":"","sources":["../../src/Emojis/EmojiLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pool.d.ts","sourceRoot":"","sources":["../../src/Emojis/Pool.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,UAAU,GAAI,aAAa,MAAM,MAYvB,CAAC,EAAE,MAAM,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAgBpD,CAAA;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const CreatePool = (concurrency) => {
|
|
4
|
+
let active = 0;
|
|
5
|
+
const queue = [];
|
|
6
|
+
const next = () => {
|
|
7
|
+
if (active < concurrency && queue.length > 0) {
|
|
8
|
+
active++;
|
|
9
|
+
const fn = queue.shift();
|
|
10
|
+
fn();
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
return async (task) => {
|
|
14
|
+
return new Promise((resolve, reject) => {
|
|
15
|
+
queue.push(async () => {
|
|
16
|
+
try {
|
|
17
|
+
const res = await task();
|
|
18
|
+
resolve(res);
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
reject(err);
|
|
22
|
+
}
|
|
23
|
+
finally {
|
|
24
|
+
active--;
|
|
25
|
+
next();
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
next();
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
exports.default = CreatePool;
|
|
33
|
+
//# sourceMappingURL=Pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pool.js","sourceRoot":"","sources":["../../src/Emojis/Pool.ts"],"names":[],"mappings":";;AAAA,MAAM,UAAU,GAAG,CAAC,WAAmB,EAAE,EAAE;IACzC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,MAAM,KAAK,GAAmB,EAAE,CAAA;IAEhC,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,IAAI,MAAM,GAAG,WAAW,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,EAAE,CAAA;YACR,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAA;YACzB,EAAE,EAAE,CAAA;QACN,CAAC;IACH,CAAC,CAAA;IAED,OAAO,KAAK,EAAK,IAAsB,EAAc,EAAE;QACrD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBACpB,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,IAAI,EAAE,CAAA;oBACxB,OAAO,CAAC,GAAG,CAAC,CAAA;gBACd,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,GAAG,CAAC,CAAA;gBACb,CAAC;wBAAS,CAAC;oBACT,MAAM,EAAE,CAAA;oBACR,IAAI,EAAE,CAAA;gBACR,CAAC;YACH,CAAC,CAAC,CAAA;YACF,IAAI,EAAE,CAAA;QACR,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,UAAU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Emojis/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,mBAAmB,SAAS,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EmojiLoader = void 0;
|
|
7
|
+
var EmojiLoader_1 = require("./EmojiLoader");
|
|
8
|
+
Object.defineProperty(exports, "EmojiLoader", { enumerable: true, get: function () { return __importDefault(EmojiLoader_1).default; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Emojis/index.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAsD;AAA7C,2HAAA,OAAO,OAAe"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Client } from 'discord.js';
|
|
2
|
+
export interface EmojiData {
|
|
3
|
+
Id: string;
|
|
4
|
+
Markdown: string;
|
|
5
|
+
Image: string;
|
|
6
|
+
toString: () => string;
|
|
7
|
+
}
|
|
8
|
+
export interface AppEmojis {
|
|
9
|
+
readonly [key: string]: EmojiData;
|
|
10
|
+
}
|
|
11
|
+
export type EmojiName = string;
|
|
12
|
+
export interface EmojiClient extends Client {
|
|
13
|
+
appEmojis?: Record<string, EmojiData>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Emojis/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAClC;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B,MAAM,WAAW,WAAY,SAAQ,MAAM;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Emojis/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export type Locale = 'pt-BR' | 'en-US' | 'es-ES' | string;
|
|
2
|
+
export interface TranslationDictionary {
|
|
3
|
+
[key: string]: string | TranslationDictionary;
|
|
4
|
+
}
|
|
5
|
+
export type LocalesMap = Record<string, TranslationDictionary>;
|
|
6
|
+
declare class I18nManager {
|
|
7
|
+
private locales;
|
|
8
|
+
private defaultLocale;
|
|
9
|
+
/**
|
|
10
|
+
* Define o idioma padrão do sistema
|
|
11
|
+
*/
|
|
12
|
+
setDefaultLocale(locale: Locale): void;
|
|
13
|
+
/**
|
|
14
|
+
* Retorna o idioma padrão
|
|
15
|
+
*/
|
|
16
|
+
getDefaultLocale(): Locale;
|
|
17
|
+
/**
|
|
18
|
+
* Carrega e registra dicionários de tradução por idioma
|
|
19
|
+
*/
|
|
20
|
+
loadLocales(locales: LocalesMap): void;
|
|
21
|
+
/**
|
|
22
|
+
* Adiciona ou mescla um dicionário para determinado idioma
|
|
23
|
+
*/
|
|
24
|
+
setLocale(locale: Locale, dict: TranslationDictionary): void;
|
|
25
|
+
/**
|
|
26
|
+
* Obtém a tradução de uma chave (suporta dot notation: "commands.ping.description")
|
|
27
|
+
* Substitui variáveis passadas no objeto params: t('welcome', { user: 'Troick' }) -> "Bem-vindo, Troick!"
|
|
28
|
+
*/
|
|
29
|
+
t(key: string, params?: Record<string, any>, locale?: Locale): string;
|
|
30
|
+
private resolveKey;
|
|
31
|
+
}
|
|
32
|
+
export declare const I18n: I18nManager;
|
|
33
|
+
export default I18n;
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/I18n/index.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAA;AAEzD,MAAM,WAAW,qBAAqB;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,qBAAqB,CAAA;CAC9C;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;AAE9D,cAAM,WAAW;IACf,OAAO,CAAC,OAAO,CAAgD;IAC/D,OAAO,CAAC,aAAa,CAAkB;IAEvC;;OAEG;IACI,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI7C;;OAEG;IACI,gBAAgB,IAAI,MAAM;IAIjC;;OAEG;IACI,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAM7C;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAKnE;;;OAGG;IACI,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IA0B5E,OAAO,CAAC,UAAU;CAenB;AAED,eAAO,MAAM,IAAI,aAAoB,CAAA;AACrC,eAAe,IAAI,CAAA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.I18n = void 0;
|
|
4
|
+
class I18nManager {
|
|
5
|
+
locales = new Map();
|
|
6
|
+
defaultLocale = 'en-US';
|
|
7
|
+
/**
|
|
8
|
+
* Define o idioma padrão do sistema
|
|
9
|
+
*/
|
|
10
|
+
setDefaultLocale(locale) {
|
|
11
|
+
this.defaultLocale = locale;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Retorna o idioma padrão
|
|
15
|
+
*/
|
|
16
|
+
getDefaultLocale() {
|
|
17
|
+
return this.defaultLocale;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Carrega e registra dicionários de tradução por idioma
|
|
21
|
+
*/
|
|
22
|
+
loadLocales(locales) {
|
|
23
|
+
for (const [locale, dict] of Object.entries(locales)) {
|
|
24
|
+
this.locales.set(locale, dict);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Adiciona ou mescla um dicionário para determinado idioma
|
|
29
|
+
*/
|
|
30
|
+
setLocale(locale, dict) {
|
|
31
|
+
const existing = this.locales.get(locale) || {};
|
|
32
|
+
this.locales.set(locale, { ...existing, ...dict });
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Obtém a tradução de uma chave (suporta dot notation: "commands.ping.description")
|
|
36
|
+
* Substitui variáveis passadas no objeto params: t('welcome', { user: 'Troick' }) -> "Bem-vindo, Troick!"
|
|
37
|
+
*/
|
|
38
|
+
t(key, params, locale) {
|
|
39
|
+
const targetLocale = locale || this.defaultLocale;
|
|
40
|
+
let translation = this.resolveKey(this.locales.get(targetLocale), key);
|
|
41
|
+
// Fallback para o idioma padrão se não encontrar no idioma informado
|
|
42
|
+
if (!translation && targetLocale !== this.defaultLocale) {
|
|
43
|
+
translation = this.resolveKey(this.locales.get(this.defaultLocale), key);
|
|
44
|
+
}
|
|
45
|
+
// Se ainda não encontrou, retorna a própria chave
|
|
46
|
+
if (!translation) {
|
|
47
|
+
return key;
|
|
48
|
+
}
|
|
49
|
+
// Interpolação de parâmetros ex: {{user}} ou {user}
|
|
50
|
+
if (params) {
|
|
51
|
+
for (const [paramKey, val] of Object.entries(params)) {
|
|
52
|
+
const escapedKey = paramKey.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
53
|
+
const regex = new RegExp(`{\\s*${escapedKey}\\s*}|{{\\s*${escapedKey}\\s*}}`, 'g');
|
|
54
|
+
translation = translation.replace(regex, String(val));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return translation;
|
|
58
|
+
}
|
|
59
|
+
resolveKey(dict, key) {
|
|
60
|
+
if (!dict)
|
|
61
|
+
return null;
|
|
62
|
+
const parts = key.split('.');
|
|
63
|
+
let current = dict;
|
|
64
|
+
for (const part of parts) {
|
|
65
|
+
if (current && typeof current === 'object' && part in current) {
|
|
66
|
+
current = current[part];
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return typeof current === 'string' ? current : null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.I18n = new I18nManager();
|
|
76
|
+
exports.default = exports.I18n;
|
|
77
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/I18n/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type ColorToken = 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'gray' | 'lightRed' | 'lightGreen' | 'lightYellow' | 'lightBlue' | 'lightMagenta' | 'lightCyan' | 'lightWhite' | 'bold' | 'dim' | 'italic' | 'underline' | 'strikethrough' | 'inverse' | 'hidden' | 'visible';
|
|
2
|
+
export interface ColorChain {
|
|
3
|
+
(text?: string): string | ColorChain;
|
|
4
|
+
text(value: unknown): string;
|
|
5
|
+
value(): string;
|
|
6
|
+
toString(): string;
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
}
|
|
9
|
+
export interface ColorFunction {
|
|
10
|
+
(text?: string, ...styles: ColorToken[]): string | ColorChain;
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
}
|
|
13
|
+
declare const Color: ColorFunction;
|
|
14
|
+
export default Color;
|
|
15
|
+
//# sourceMappingURL=Color.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Color.d.ts","sourceRoot":"","sources":["../../src/Logger/Color.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAClB,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GACrF,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,cAAc,GAAG,WAAW,GAAG,YAAY,GACrG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,GAAG,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAEhG,MAAM,WAAW,UAAU;IACzB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAA;IACpC,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAA;IAC5B,KAAK,IAAI,MAAM,CAAA;IACf,QAAQ,IAAI,MAAM,CAAA;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,UAAU,CAAA;IAC7D,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AA8CD,QAAA,MAAM,KAAK,EAGL,aAAa,CAAA;AASnB,eAAe,KAAK,CAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
7
|
+
const util_1 = require("util");
|
|
8
|
+
const aliases = {
|
|
9
|
+
lightRed: 'redBright',
|
|
10
|
+
lightGreen: 'greenBright',
|
|
11
|
+
lightYellow: 'yellowBright',
|
|
12
|
+
lightBlue: 'blueBright',
|
|
13
|
+
lightMagenta: 'magentaBright',
|
|
14
|
+
lightCyan: 'cyanBright',
|
|
15
|
+
lightWhite: 'whiteBright'
|
|
16
|
+
};
|
|
17
|
+
const tokens = [
|
|
18
|
+
'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white', 'gray',
|
|
19
|
+
'lightRed', 'lightGreen', 'lightYellow', 'lightBlue', 'lightMagenta', 'lightCyan', 'lightWhite',
|
|
20
|
+
'bold', 'dim', 'italic', 'underline', 'strikethrough', 'inverse', 'hidden', 'visible'
|
|
21
|
+
];
|
|
22
|
+
const apply = (text, styles) => {
|
|
23
|
+
let formatter = chalk_1.default;
|
|
24
|
+
for (const style of styles)
|
|
25
|
+
formatter = formatter[aliases[style] || style];
|
|
26
|
+
return formatter(String(text ?? ''));
|
|
27
|
+
};
|
|
28
|
+
const createChain = (text, styles) => {
|
|
29
|
+
const chain = ((nextText) => nextText === undefined ? apply(text, styles) : apply(nextText, styles));
|
|
30
|
+
chain.text = (value) => apply(value, styles);
|
|
31
|
+
chain.value = () => apply(text, styles);
|
|
32
|
+
chain.toString = () => apply(text, styles);
|
|
33
|
+
chain[util_1.inspect.custom] = () => apply(text, styles);
|
|
34
|
+
for (const token of tokens) {
|
|
35
|
+
Object.defineProperty(chain, token, {
|
|
36
|
+
enumerable: false,
|
|
37
|
+
value: (nextText) => createChain(nextText === undefined ? text : nextText, [...styles, token])
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return chain;
|
|
41
|
+
};
|
|
42
|
+
const Color = ((text, ...styles) => {
|
|
43
|
+
if (typeof text === 'string' && styles.length > 0)
|
|
44
|
+
return apply(text, styles);
|
|
45
|
+
return createChain(text || '', styles);
|
|
46
|
+
});
|
|
47
|
+
for (const token of tokens) {
|
|
48
|
+
Object.defineProperty(Color, token, {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
value: (text) => createChain(text || '', [token])
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
exports.default = Color;
|
|
54
|
+
//# sourceMappingURL=Color.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Color.js","sourceRoot":"","sources":["../../src/Logger/Color.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import ora from 'ora';
|
|
2
|
+
import type { LogSink } from '../Types/Log.Type';
|
|
3
|
+
import Color from './Color';
|
|
4
|
+
declare global {
|
|
5
|
+
interface Console {
|
|
6
|
+
line(...args: ConsoleLineArgument[]): void;
|
|
7
|
+
success(...args: any[]): void;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
type ChalkStyle = 'bold' | 'dim' | 'italic' | 'underline' | 'strikethrough';
|
|
11
|
+
type ChalkColor = 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'gray' | 'redBright' | 'greenBright' | 'yellowBright' | 'blueBright' | 'magentaBright' | 'cyanBright';
|
|
12
|
+
interface ProgressOptions {
|
|
13
|
+
Total: number;
|
|
14
|
+
Label?: string;
|
|
15
|
+
}
|
|
16
|
+
type ConsoleLineArgument = string | number;
|
|
17
|
+
declare const Logger: {
|
|
18
|
+
color: (text: string, ...styles: (ChalkColor | ChalkStyle)[]) => string;
|
|
19
|
+
onEvent: (sink: LogSink) => (() => void);
|
|
20
|
+
log: (message: string) => void;
|
|
21
|
+
success: (message: string, tag?: string) => void;
|
|
22
|
+
spinner: (text: string) => ora.Ora;
|
|
23
|
+
progress: (label: string, options: ProgressOptions) => {
|
|
24
|
+
update: (current: number) => void;
|
|
25
|
+
finish: (msg?: string) => void;
|
|
26
|
+
};
|
|
27
|
+
box: (title: string, rows: Record<string, string>) => void;
|
|
28
|
+
line: (...args: ConsoleLineArgument[]) => void;
|
|
29
|
+
divisor: () => void;
|
|
30
|
+
clear: () => void;
|
|
31
|
+
startGroup: (name?: string) => void;
|
|
32
|
+
endGroup: () => void;
|
|
33
|
+
group: <T>(name: string, fn: () => Promise<T> | T) => Promise<T>;
|
|
34
|
+
captureConsole: () => (() => void);
|
|
35
|
+
};
|
|
36
|
+
export { Color };
|
|
37
|
+
export default Logger;
|
|
38
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Logger/index.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,KAAK,CAAA;AAKrB,OAAO,KAAK,EAAsB,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,KAAK,MAAM,SAAS,CAAA;AAE3B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO;QACf,IAAI,CAAC,GAAG,IAAI,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAA;QAC1C,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;KAC9B;CACF;AAED,KAAK,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,GAAG,eAAe,CAAA;AAC3E,KAAK,UAAU,GACX,OAAO,GACP,KAAK,GACL,OAAO,GACP,QAAQ,GACR,MAAM,GACN,SAAS,GACT,MAAM,GACN,OAAO,GACP,MAAM,GACN,WAAW,GACX,aAAa,GACb,cAAc,GACd,YAAY,GACZ,eAAe,GACf,YAAY,CAAA;AAEhB,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAWD,KAAK,mBAAmB,GAAG,MAAM,GAAG,MAAM,CAAA;AAypB1C,QAAA,MAAM,MAAM;kBAzmBJ,MAAM,aACD,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE,KACrC,MAAM;oBApCc,OAAO,KAAG,CAAC,MAAM,IAAI,CAAC;mBAkiBvB,MAAM;uBAQF,MAAM,QAAQ,MAAM;oBAcvB,MAAM;sBAQJ,MAAM,WAAW,eAAe;0BAcnC,MAAM;uBAGT,MAAM;;iBASL,MAAM,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;oBA6BjC,mBAAmB,EAAE;;;wBA7jBlB,MAAM;;YA2DX,CAAC,QAAQ,MAAM,MAAM,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC;0BA2NhD,CAAC,MAAM,IAAI,CAAC;CA0UtC,CAAA;AAKD,OAAO,EAAE,KAAK,EAAE,CAAA;AAChB,eAAe,MAAM,CAAA"}
|