kythia-core 0.12.6-beta → 0.12.7-beta

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 (72) hide show
  1. package/dist/Kythia.d.ts.map +1 -1
  2. package/dist/Kythia.js +1 -521
  3. package/dist/Kythia.js.map +1 -1
  4. package/dist/KythiaClient.js +1 -78
  5. package/dist/cli/Command.js +1 -16
  6. package/dist/cli/commands/AboutCommand.js +1 -114
  7. package/dist/cli/commands/CacheClearCommand.js +1 -97
  8. package/dist/cli/commands/DIGenerateCommand.js +1 -168
  9. package/dist/cli/commands/LangCheckCommand.js +1 -478
  10. package/dist/cli/commands/LangSyncCommand.js +1 -253
  11. package/dist/cli/commands/LangTranslateCommand.js +1 -224
  12. package/dist/cli/commands/MakeMigrationCommand.js +1 -55
  13. package/dist/cli/commands/MakeModelCommand.js +1 -56
  14. package/dist/cli/commands/MigrateCommand.js +1 -190
  15. package/dist/cli/commands/NamespaceCommand.js +1 -92
  16. package/dist/cli/commands/StructureCommand.js +1 -51
  17. package/dist/cli/commands/UpversionCommand.js +1 -68
  18. package/dist/cli/index.js +1 -43
  19. package/dist/cli/utils/db.js +1 -93
  20. package/dist/database/KythiaMigrator.js +1 -94
  21. package/dist/database/KythiaModel.js +1 -1128
  22. package/dist/database/KythiaSequelize.js +1 -99
  23. package/dist/database/KythiaStorage.js +1 -80
  24. package/dist/database/ModelLoader.js +1 -54
  25. package/dist/index.js +1 -36
  26. package/dist/lang/lang/en.json +85 -0
  27. package/dist/managers/AddonManager.js +1 -1097
  28. package/dist/managers/EventManager.js +1 -106
  29. package/dist/managers/InteractionManager.d.ts.map +1 -1
  30. package/dist/managers/InteractionManager.js +1 -482
  31. package/dist/managers/InteractionManager.js.map +1 -1
  32. package/dist/managers/MiddlewareManager.js +1 -106
  33. package/dist/managers/ShutdownManager.js +1 -179
  34. package/dist/managers/TelemetryManager.d.ts +7 -0
  35. package/dist/managers/TelemetryManager.d.ts.map +1 -1
  36. package/dist/managers/TelemetryManager.js +1 -201
  37. package/dist/managers/TelemetryManager.js.map +1 -1
  38. package/dist/managers/TranslatorManager.js +1 -145
  39. package/dist/middlewares/botPermissions.js +1 -28
  40. package/dist/middlewares/cooldown.js +1 -42
  41. package/dist/middlewares/isInMainGuild.js +1 -52
  42. package/dist/middlewares/ownerOnly.js +1 -24
  43. package/dist/middlewares/userPermissions.js +1 -28
  44. package/dist/structures/BaseCommand.js +1 -42
  45. package/dist/types/AddonManager.js +1 -3
  46. package/dist/types/DiscordHelpers.js +1 -3
  47. package/dist/types/EventManager.js +1 -3
  48. package/dist/types/InteractionManager.js +1 -3
  49. package/dist/types/KythiaClient.js +1 -3
  50. package/dist/types/KythiaConfig.js +1 -3
  51. package/dist/types/KythiaContainer.d.ts +1 -0
  52. package/dist/types/KythiaContainer.d.ts.map +1 -1
  53. package/dist/types/KythiaContainer.js +1 -3
  54. package/dist/types/KythiaLogger.js +1 -3
  55. package/dist/types/KythiaMigrator.js +1 -3
  56. package/dist/types/KythiaModel.js +1 -3
  57. package/dist/types/KythiaOptions.js +1 -3
  58. package/dist/types/KythiaSequelize.js +1 -3
  59. package/dist/types/KythiaStorage.js +1 -3
  60. package/dist/types/MiddlewareManager.js +1 -3
  61. package/dist/types/ModelLoader.js +1 -3
  62. package/dist/types/ShutdownManager.js +1 -3
  63. package/dist/types/TranslatorManager.js +1 -3
  64. package/dist/types/error.js +1 -3
  65. package/dist/types/index.js +1 -29
  66. package/dist/utils/InteractionFactory.js +1 -334
  67. package/dist/utils/color.js +1 -156
  68. package/dist/utils/discord.js +1 -19
  69. package/dist/utils/formatter.js +1 -89
  70. package/dist/utils/index.js +1 -56
  71. package/dist/utils/logger.js +1 -204
  72. package/package.json +5 -2
@@ -1,106 +1 @@
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 node_fs_1 = __importDefault(require("node:fs"));
7
- const node_path_1 = __importDefault(require("node:path"));
8
- class MiddlewareManager {
9
- container;
10
- logger;
11
- middlewares;
12
- constructor({ container }) {
13
- this.container = container;
14
- this.logger = container.logger;
15
- this.middlewares = [];
16
- }
17
- async loadMiddlewares() {
18
- try {
19
- this.middlewares = [];
20
- const coreMiddlewarePath = node_path_1.default.join(__dirname, '..', 'middlewares');
21
- if (node_fs_1.default.existsSync(coreMiddlewarePath)) {
22
- await this._loadFromPath(coreMiddlewarePath, 'core');
23
- }
24
- else {
25
- this.logger.warn(`⚠️ Core middlewares path not found: ${coreMiddlewarePath}`);
26
- }
27
- const appRoot = this.container.appRoot || process.cwd();
28
- const userPaths = [
29
- node_path_1.default.join(appRoot, 'src', 'middlewares'),
30
- node_path_1.default.join(appRoot, 'middlewares'),
31
- ];
32
- for (const userPath of userPaths) {
33
- if (node_fs_1.default.existsSync(userPath) && userPath !== coreMiddlewarePath) {
34
- await this._loadFromPath(userPath, 'bot');
35
- }
36
- }
37
- this.middlewares.sort((a, b) => (a.priority || 10) - (b.priority || 10));
38
- this.logger.info(`🛡️ Total Loaded: ${this.middlewares.length} middlewares.`);
39
- }
40
- catch (error) {
41
- this.logger.error('Failed to load middlewares:', error);
42
- this.container.telemetry?.report('error', 'Middleware Loading Failed', {
43
- message: error.message,
44
- stack: error.stack,
45
- });
46
- }
47
- }
48
- async _loadFromPath(dirPath, source) {
49
- try {
50
- const files = node_fs_1.default
51
- .readdirSync(dirPath)
52
- .filter((f) => (f.endsWith('.js') || f.endsWith('.ts')) && !f.endsWith('.d.ts'));
53
- let loadedCount = 0;
54
- for (const file of files) {
55
- try {
56
- const middleware = require(node_path_1.default.join(dirPath, file));
57
- const mw = middleware.default || middleware;
58
- if (!mw.name || typeof mw.execute !== 'function') {
59
- this.logger.warn(`⚠️ Middleware ${file} invalid structure. Skipping.`);
60
- continue;
61
- }
62
- this.middlewares.push(mw);
63
- loadedCount++;
64
- }
65
- catch (err) {
66
- this.logger.error(`❌ Failed to load middleware ${file}:`, err);
67
- this.container.telemetry?.report('error', `Middleware Load Failed: [${file}]`, {
68
- message: err.message,
69
- stack: err.stack,
70
- source,
71
- });
72
- }
73
- }
74
- this.logger.info(`🛡️ Loaded ${loadedCount} middlewares from ${source}`);
75
- }
76
- catch (error) {
77
- this.logger.error(`Failed to read middleware directory [${dirPath}]:`, error);
78
- this.container.telemetry?.report('error', `Middleware Directory Read Failed: [${dirPath}]`, {
79
- message: error.message,
80
- stack: error.stack,
81
- source,
82
- });
83
- }
84
- }
85
- async handle(interaction, command) {
86
- for (const middleware of this.middlewares) {
87
- try {
88
- const shouldContinue = await middleware.execute(interaction, command, this.container);
89
- if (!shouldContinue)
90
- return false;
91
- }
92
- catch (err) {
93
- this.logger.error(`❌ Error in middleware ${middleware.name}:`, err);
94
- this.container.telemetry?.report('error', `Middleware Execution Failed: [${middleware.name}]`, {
95
- message: err.message,
96
- stack: err.stack,
97
- command: command.name,
98
- });
99
- return false;
100
- }
101
- }
102
- return true;
103
- }
104
- }
105
- exports.default = MiddlewareManager;
106
- //# sourceMappingURL=MiddlewareManager.js.map
1
+ 'use strict';const a26_0x130328=a26_0x370b;(function(_0x5c04b0,_0x4ae696){const a26_0x3e91f5={_0x1a6b86:0xf1,_0x3428d8:0xe6,_0x389d88:0xe5,_0x3068d6:0xf9,_0xb26add:0x103,_0x32877b:0xee},_0x348d72=a26_0x370b,_0x19e7f7=_0x5c04b0();while(!![]){try{const _0x3ff2f9=parseInt(_0x348d72(a26_0x3e91f5._0x1a6b86))/(0x3*-0x3e+-0x1*-0x13b1+-0x12f6)+parseInt(_0x348d72(0xe3))/(0xa*-0x2d+0x230d+0x1*-0x2149)*(-parseInt(_0x348d72(0xf0))/(0x1f5+-0x29*-0xeb+-0x2795))+-parseInt(_0x348d72(a26_0x3e91f5._0x3428d8))/(-0x95e+-0x7*0x397+0xf*0x24d)*(parseInt(_0x348d72(a26_0x3e91f5._0x389d88))/(0x2466+0x25f1+-0x4a52))+parseInt(_0x348d72(0xdc))/(0xa0*-0xe+0x117+0x7af)*(parseInt(_0x348d72(a26_0x3e91f5._0x3068d6))/(-0x2063+-0xd*-0x17+0x1*0x1f3f))+-parseInt(_0x348d72(0xf3))/(-0x18f3+0x253d+-0xc42)+-parseInt(_0x348d72(a26_0x3e91f5._0xb26add))/(-0x246b+-0x774+0x5*0x8c8)*(-parseInt(_0x348d72(0xf8))/(0x14af+-0x70d*-0x5+-0x37e6))+parseInt(_0x348d72(a26_0x3e91f5._0x32877b))/(0x1878+-0x24b*-0x4+-0x2199);if(_0x3ff2f9===_0x4ae696)break;else _0x19e7f7['push'](_0x19e7f7['shift']());}catch(_0x4b71eb){_0x19e7f7['push'](_0x19e7f7['shift']());}}}(a26_0x34de,0xce386+-0x6505c+0x3bd47));var __importDefault=this&&this[a26_0x130328(0xfe)]||function(_0xa68510){const a26_0x512297={_0x555be1:0xeb},_0x11f6b5=a26_0x130328;return _0xa68510&&_0xa68510[_0x11f6b5(a26_0x512297._0x555be1)]?_0xa68510:{'default':_0xa68510};};function a26_0x34de(){const _0x48b76e=['ChjPB3jPDhK','8j+BOE+4JYaGtg9HzgvKia','zgvMAw5LuhjVCgvYDhK','CwXtv0W','x2XVywrgCM9Tugf0Aa','ndq3nNnVAKjbvG','yxbWuM9VDa','y29UDgfPBMvY','CMvWB3j0','ChvZAa','4PQG77Ipie1PzgrSzxDHCMuG','twLKzgXLD2fYzsbmB2fKAw5NiezHAwXLza','ndiZndzjrvDUvMS','DgvSzw1LDhj5','nwvPtgLABa','nda2mdeWngzxyKnSDq','Bg9Nz2vY','zw5KC1DPDgG','AM9PBG','zxjYB3i','x19LC01VzhvSzq','CMvHzgrPCLn5BMm','8j+BOE+4JYaGvg90ywWGtg9HzgvKoIa','mta4nJyXodvlCfv4r0u','C3jJ','nZHhz1LzwxO','ndi5nJGZz1jvBxbj','lMPZ','mZi4odC1mLjhBK5qCW','4PQG77IpienVCMuGBwLKzgXLD2fYzxmGCgf0AcbUB3qGzM91BMq6ia','ig1PzgrSzxDHCMvZigzYB20G','BwvZC2fNzq','zgvMyxvSDa','mZqXnZbMrMLoA3K','otu2ounoEMHbrq','BMfTzq','twLKzgXLD2fYzsbeAxjLy3rVCNKGuMvHzcbgywLSzwq6ifS','4P2miezHAwXLzcb0BYbSB2fKig1PzgrSzxDHCMuG','twLKzgXLD2fYzsbmB2fKiezHAwXLzdOGwW','x19PBxbVCNrezwzHDwX0','CxPqBMq','BM9KztPWyxrO','BwLKzgXLD2fYzxm','rMfPBgvKihrVigXVywqGBwLKzgXLD2fYzxm6','nty3wgPADNLv','zMLSDgvY','D2fYBG','y29Yzq'];a26_0x34de=function(){return _0x48b76e;};return a26_0x34de();}function a26_0x370b(_0x6bb28d,_0x56cfb5){_0x6bb28d=_0x6bb28d-(0x3*-0xc85+-0x1*-0xb03+0x1b61);const _0x2bd6f5=a26_0x34de();let _0x54fb87=_0x2bd6f5[_0x6bb28d];if(a26_0x370b['lGwiCL']===undefined){var _0x4add1c=function(_0x46ea81){const _0x4261ac='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x265337='',_0xf38819='';for(let _0x540a46=0x17bb+-0x1ad8+0x1*0x31d,_0x440bf9,_0x35bd77,_0x5bc878=-0x22cd*0x1+0x1a74+0x859;_0x35bd77=_0x46ea81['charAt'](_0x5bc878++);~_0x35bd77&&(_0x440bf9=_0x540a46%(0x7*0x30a+0xfaa*-0x1+-0xb3*0x8)?_0x440bf9*(0xac0+-0x4*0x3b7+0xba*0x6)+_0x35bd77:_0x35bd77,_0x540a46++%(0x175*0xb+-0x22c+-0xdd7))?_0x265337+=String['fromCharCode'](-0x2460+0x5*0x51e+-0x7*-0x1af&_0x440bf9>>(-(-0x4*-0x5c6+0x18*0x8b+-0x241e)*_0x540a46&0x3*0x14f+-0x952+0x13*0x49)):-0x20f7+-0x13e9+0x8d0*0x6){_0x35bd77=_0x4261ac['indexOf'](_0x35bd77);}for(let _0x4c3024=0x3*0x5ae+0x1475*0x1+-0x257f*0x1,_0x30713c=_0x265337['length'];_0x4c3024<_0x30713c;_0x4c3024++){_0xf38819+='%'+('00'+_0x265337['charCodeAt'](_0x4c3024)['toString'](-0xacd+0x1*-0xf4c+0x1a29))['slice'](-(0x7*0x1a3+-0x1b18+0xfa5));}return decodeURIComponent(_0xf38819);};a26_0x370b['ncpioG']=_0x4add1c,a26_0x370b['LmCEpB']={},a26_0x370b['lGwiCL']=!![];}const _0x3f3bb2=_0x2bd6f5[-0x191a+0x598+-0x16*-0xe3],_0x50b75b=_0x6bb28d+_0x3f3bb2,_0x1ef277=a26_0x370b['LmCEpB'][_0x50b75b];return!_0x1ef277?(_0x54fb87=a26_0x370b['ncpioG'](_0x54fb87),a26_0x370b['LmCEpB'][_0x50b75b]=_0x54fb87):_0x54fb87=_0x1ef277,_0x54fb87;}Object[a26_0x130328(0xd9)](exports,a26_0x130328(0xeb),{'value':!![]});const node_fs_1=__importDefault(require('node:fs')),node_path_1=__importDefault(require(a26_0x130328(0x100)));class MiddlewareManager{['container'];['logger'];['middlewares'];constructor({container:_0x1b51df}){const _0x144ec3=a26_0x130328;this['container']=_0x1b51df,this[_0x144ec3(0xe7)]=_0x1b51df[_0x144ec3(0xe7)],this['middlewares']=[];}async['loadMiddlewares'](){const a26_0x29e38f={_0x3b4f9b:0x102,_0x23ca0b:0xe9,_0x34b8b4:0xf4,_0x4cdde9:0xde,_0x3cf05b:0xdd,_0x3fac29:0xe9,_0xe2336a:0xf7,_0x2192ad:0xe7,_0x254791:0xed,_0x5d2e19:0xe4,_0x1cbe9a:0xe2,_0x4a9f98:0xf6},_0x7ca663=a26_0x130328,_0x11e0c9={'qlSWL':_0x7ca663(a26_0x29e38f._0x3b4f9b)};try{this[_0x7ca663(0x101)]=[];const _0x3708d8=node_path_1['default'][_0x7ca663(a26_0x29e38f._0x23ca0b)](__dirname,'..','middlewares');node_fs_1['default']['existsSync'](_0x3708d8)?await this['_loadFromPath'](_0x3708d8,_0x7ca663(0xd6)):this['logger'][_0x7ca663(0xd5)](_0x7ca663(a26_0x29e38f._0x34b8b4)+_0x3708d8);const _0x475eff=this[_0x7ca663(a26_0x29e38f._0x4cdde9)][_0x7ca663(a26_0x29e38f._0x3cf05b)]||process['cwd'](),_0x46590e=[node_path_1['default']['join'](_0x475eff,_0x7ca663(0xef),_0x7ca663(0x101)),node_path_1['default'][_0x7ca663(a26_0x29e38f._0x3fac29)](_0x475eff,_0x7ca663(0x101))];for(const _0x577d15 of _0x46590e){node_fs_1[_0x7ca663(a26_0x29e38f._0xe2336a)]['existsSync'](_0x577d15)&&_0x577d15!==_0x3708d8&&await this[_0x7ca663(0xdb)](_0x577d15,'bot');}this['middlewares']['sort']((_0x412cbd,_0x2dca91)=>(_0x412cbd[_0x7ca663(0xd7)]||0x1*0x13d9+-0x2*0x80b+-0x3b9)-(_0x2dca91[_0x7ca663(0xd7)]||-0x6d9*-0x4+0x1*0x188b+0x33e5*-0x1)),this[_0x7ca663(a26_0x29e38f._0x2192ad)]['info'](_0x7ca663(a26_0x29e38f._0x254791)+this[_0x7ca663(0x101)]['length']+'\x20middlewares.');}catch(_0x3c206f){this[_0x7ca663(0xe7)][_0x7ca663(0xea)](_0x11e0c9[_0x7ca663(0xda)],_0x3c206f),this['container'][_0x7ca663(a26_0x29e38f._0x5d2e19)]?.[_0x7ca663(0xdf)](_0x7ca663(0xea),_0x7ca663(a26_0x29e38f._0x1cbe9a),{'message':_0x3c206f[_0x7ca663(a26_0x29e38f._0x4a9f98)],'stack':_0x3c206f['stack']});}}async['_loadFromPath'](_0x440189,_0x1f0fa1){const a26_0x327537={_0x440786:0xff,_0x35c83f:0xe9,_0x4514a1:0xe7,_0x5ba859:0xd5,_0x1f3e61:0xea,_0x3c1874:0xfc,_0x4c4003:0xde,_0x4f3084:0xea,_0x46f972:0xfd,_0x1cb137:0xd8,_0x309b58:0xf5,_0x57f494:0xe4,_0x5e2516:0xfb,_0x58a757:0xf6},_0x42abda=a26_0x130328,_0x5ee6d2={'qzPnd':function(_0x1b99e3,_0x2ef314){return _0x1b99e3(_0x2ef314);}};try{const _0x574b04=node_fs_1['default'][_0x42abda(0xec)](_0x440189)[_0x42abda(0x104)](_0x22fedd=>(_0x22fedd['endsWith'](_0x42abda(0xf2))||_0x22fedd['endsWith']('.ts'))&&!_0x22fedd[_0x42abda(0xe8)]('.d.ts'));let _0xe95b44=0x2*-0xc0b+-0x1e43+0x3659;for(const _0x34069b of _0x574b04){try{const _0x22b0ca=_0x5ee6d2[_0x42abda(a26_0x327537._0x440786)](require,node_path_1[_0x42abda(0xf7)][_0x42abda(a26_0x327537._0x35c83f)](_0x440189,_0x34069b)),_0x34fd44=_0x22b0ca['default']||_0x22b0ca;if(!_0x34fd44['name']||typeof _0x34fd44['execute']!=='function'){this[_0x42abda(a26_0x327537._0x4514a1)][_0x42abda(a26_0x327537._0x5ba859)](_0x42abda(0xe1)+_0x34069b+'\x20invalid\x20structure.\x20Skipping.');continue;}this['middlewares'][_0x42abda(0xe0)](_0x34fd44),_0xe95b44++;}catch(_0x2bcde2){this[_0x42abda(a26_0x327537._0x4514a1)][_0x42abda(a26_0x327537._0x1f3e61)](_0x42abda(a26_0x327537._0x3c1874)+_0x34069b+':',_0x2bcde2),this[_0x42abda(a26_0x327537._0x4c4003)][_0x42abda(0xe4)]?.['report'](_0x42abda(a26_0x327537._0x4f3084),_0x42abda(a26_0x327537._0x46f972)+_0x34069b+']',{'message':_0x2bcde2['message'],'stack':_0x2bcde2['stack'],'source':_0x1f0fa1});}}this[_0x42abda(0xe7)]['info'](_0x42abda(a26_0x327537._0x1cb137)+_0xe95b44+_0x42abda(a26_0x327537._0x309b58)+_0x1f0fa1);}catch(_0x24c6e4){this['logger']['error']('Failed\x20to\x20read\x20middleware\x20directory\x20['+_0x440189+']:',_0x24c6e4),this[_0x42abda(0xde)][_0x42abda(a26_0x327537._0x57f494)]?.['report']('error',_0x42abda(a26_0x327537._0x5e2516)+_0x440189+']',{'message':_0x24c6e4[_0x42abda(a26_0x327537._0x58a757)],'stack':_0x24c6e4['stack'],'source':_0x1f0fa1});}}async['handle'](_0x41921,_0x256929){const a26_0x26bdbe={_0x539e65:0xfa,_0x2bff92:0xfa},_0x5263a8=a26_0x130328;for(const _0x4d1a4b of this['middlewares']){try{const _0x17717b=await _0x4d1a4b['execute'](_0x41921,_0x256929,this[_0x5263a8(0xde)]);if(!_0x17717b)return![];}catch(_0x5c7729){return this[_0x5263a8(0xe7)][_0x5263a8(0xea)]('❌\x20Error\x20in\x20middleware\x20'+_0x4d1a4b[_0x5263a8(a26_0x26bdbe._0x539e65)]+':',_0x5c7729),this['container'][_0x5263a8(0xe4)]?.[_0x5263a8(0xdf)]('error','Middleware\x20Execution\x20Failed:\x20['+_0x4d1a4b[_0x5263a8(a26_0x26bdbe._0x2bff92)]+']',{'message':_0x5c7729['message'],'stack':_0x5c7729['stack'],'command':_0x256929['name']}),![];}}return!![];}}exports[a26_0x130328(0xf7)]=MiddlewareManager;
@@ -1,179 +1 @@
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.ShutdownManager = void 0;
7
- const async_exit_hook_1 = __importDefault(require("async-exit-hook"));
8
- class ShutdownManager {
9
- client;
10
- container;
11
- logger;
12
- _activeIntervals;
13
- _messagesWithActiveCollectors;
14
- _collectorPatched;
15
- _cleanupAttached;
16
- constructor({ client, container, }) {
17
- this.client = client;
18
- this.container = container;
19
- this._activeIntervals = new Set();
20
- this._messagesWithActiveCollectors = new Set();
21
- this._collectorPatched = false;
22
- this._cleanupAttached = false;
23
- this.logger = this.container.logger;
24
- }
25
- initializeGlobalIntervalTracker() {
26
- try {
27
- if (!this._activeIntervals)
28
- this._activeIntervals = new Set();
29
- const originalSetInterval = global.setInterval;
30
- const originalClearInterval = global.clearInterval;
31
- global.setInterval = (callback, ms, ...args) => {
32
- const intervalId = originalSetInterval(callback, ms, ...args);
33
- this._activeIntervals.add(intervalId);
34
- return intervalId;
35
- };
36
- global.clearInterval = (intervalId) => {
37
- if (intervalId) {
38
- originalClearInterval(intervalId);
39
- this._activeIntervals.delete(intervalId);
40
- }
41
- };
42
- this.logger.info('✅ Global setInterval/clearInterval has been patched for tracking.');
43
- }
44
- catch (error) {
45
- this.logger.error('Failed to initialize global interval tracker:', error);
46
- this.container.telemetry?.report('error', 'Global Interval Tracker Initialization Failed', {
47
- message: error.message,
48
- stack: error.stack,
49
- });
50
- }
51
- }
52
- disableRecursively(components) {
53
- return components.map((comp) => {
54
- if (comp.components && Array.isArray(comp.components)) {
55
- comp.components = this.disableRecursively(comp.components);
56
- }
57
- if (comp.type === 2 || comp.type === 3 || comp.type >= 5) {
58
- return { ...comp, disabled: true };
59
- }
60
- return comp;
61
- });
62
- }
63
- initializeShutdownCollectors() {
64
- try {
65
- if (!this._messagesWithActiveCollectors)
66
- this._messagesWithActiveCollectors = new Set();
67
- if (!this._collectorPatched) {
68
- const DiscordMessage = require('discord.js').Message;
69
- const origCreateCollector = DiscordMessage.prototype.createMessageComponentCollector;
70
- const botInstance = this;
71
- DiscordMessage.prototype.createMessageComponentCollector = function (...args) {
72
- const collector = origCreateCollector.apply(this, args);
73
- if (botInstance._messagesWithActiveCollectors) {
74
- botInstance._messagesWithActiveCollectors.add(this);
75
- }
76
- collector.once('end', () => {
77
- if (botInstance._messagesWithActiveCollectors) {
78
- botInstance._messagesWithActiveCollectors.delete(this);
79
- }
80
- });
81
- return collector;
82
- };
83
- this._collectorPatched = true;
84
- this.logger.info('✅ Corrected collector-based component tracking has been patched.');
85
- }
86
- if (!this._cleanupAttached) {
87
- const cleanupAndFlush = async (callback) => {
88
- this.logger.info('🛑 Graceful shutdown initiated...');
89
- if (this._activeIntervals && this._activeIntervals.size > 0) {
90
- this.logger.info(`🛑 Halting ${this._activeIntervals.size} active global intervals...`);
91
- for (const intervalId of this._activeIntervals) {
92
- clearInterval(intervalId);
93
- }
94
- }
95
- const messagesToProcess = this._messagesWithActiveCollectors;
96
- if (messagesToProcess && messagesToProcess.size > 0) {
97
- this.logger.info(`🛑 Disabling components on up to ${messagesToProcess.size} messages.`);
98
- const editPromises = [];
99
- for (const msg of messagesToProcess) {
100
- if (!msg.editable ||
101
- !msg.components ||
102
- msg.components.length === 0)
103
- continue;
104
- try {
105
- const rawComponents = msg.components.map((c) => c.toJSON());
106
- const disabledComponents = this.disableRecursively(rawComponents);
107
- editPromises.push(msg.edit({ components: disabledComponents }).catch(() => { }));
108
- }
109
- catch (error) {
110
- this.logger.error(error);
111
- }
112
- }
113
- await Promise.allSettled(editPromises);
114
- }
115
- this.logger.info('✅ Component cleanup complete.');
116
- this.logger.info('🚰 Flushing remaining logs...');
117
- this.logger.on('finish', () => {
118
- console.log('⏳ Logger has flushed. Kythia is now safely shutting down.');
119
- if (callback)
120
- callback();
121
- });
122
- this.logger.end();
123
- setTimeout(() => {
124
- console.log('⏳ Logger flush timeout. Forcing exit.');
125
- if (callback)
126
- callback();
127
- }, 4000);
128
- };
129
- (0, async_exit_hook_1.default)(cleanupAndFlush);
130
- process.on('unhandledRejection', (error) => {
131
- this.logger.error('‼️ UNHANDLED PROMISE REJECTION:', error);
132
- this.container.telemetry?.report('error', 'Unhandled Promise Rejection', {
133
- message: error.message,
134
- stack: error.stack,
135
- });
136
- });
137
- process.on('uncaughtException', (error) => {
138
- this.logger.error('‼️ UNCAUGHT EXCEPTION! Bot will shutdown.', error);
139
- this.container.telemetry?.report('error', 'Uncaught Exception', {
140
- message: error.message,
141
- stack: error.stack,
142
- });
143
- process.exit(1);
144
- });
145
- this._cleanupAttached = true;
146
- this.logger.info('🛡️ Graceful shutdown and error handlers are now active.');
147
- }
148
- }
149
- catch (error) {
150
- this.logger.error('Failed to initialize shutdown collectors:', error);
151
- this.container.telemetry?.report('error', 'Shutdown Collector Initialization Failed', {
152
- message: error.message,
153
- stack: error.stack,
154
- });
155
- }
156
- }
157
- initialize() {
158
- this.initializeGlobalIntervalTracker();
159
- this.initializeShutdownCollectors();
160
- }
161
- getActiveIntervalsCount() {
162
- return this._activeIntervals ? this._activeIntervals.size : 0;
163
- }
164
- getActiveCollectorsCount() {
165
- return this._messagesWithActiveCollectors
166
- ? this._messagesWithActiveCollectors.size
167
- : 0;
168
- }
169
- forceCleanup() {
170
- if (this._activeIntervals) {
171
- for (const intervalId of this._activeIntervals) {
172
- clearInterval(intervalId);
173
- }
174
- this._activeIntervals.clear();
175
- }
176
- }
177
- }
178
- exports.ShutdownManager = ShutdownManager;
179
- //# sourceMappingURL=ShutdownManager.js.map
1
+ 'use strict';const a27_0x9105c7=a27_0x2cc5;(function(_0x2cb6d0,_0x5f4eca){const a27_0x462af9={_0x3d9f83:0xc8,_0x5eec29:0xd4,_0x497a46:0xb2,_0x1c7dad:0xb8,_0x13b4cf:0xa7,_0x35bf96:0xbe,_0x37f055:0xad},_0x126632=a27_0x2cc5,_0x260b38=_0x2cb6d0();while(!![]){try{const _0x466b24=-parseInt(_0x126632(0xbd))/(0x14e8+0x1ba2+0x1*-0x3089)+-parseInt(_0x126632(a27_0x462af9._0x3d9f83))/(0x228a+-0x23b0*-0x1+-0x4638)+parseInt(_0x126632(0xbb))/(-0x2255+-0x1ac5+0x3d1d)*(-parseInt(_0x126632(a27_0x462af9._0x5eec29))/(-0x70*0x58+-0x1d36+0x43ba))+-parseInt(_0x126632(a27_0x462af9._0x497a46))/(0x949*0x2+0x1*0x557+-0x8b*0x2c)+-parseInt(_0x126632(a27_0x462af9._0x1c7dad))/(0x4c7*-0x1+-0x3f1+0x8be)+-parseInt(_0x126632(0xba))/(-0x2da*0x1+0xaa9+-0x7c8)*(-parseInt(_0x126632(a27_0x462af9._0x13b4cf))/(-0x677+0x2*0x1ca+0x2eb))+parseInt(_0x126632(a27_0x462af9._0x35bf96))/(-0x4b*-0x60+-0x4*-0x916+0x406f*-0x1)*(parseInt(_0x126632(a27_0x462af9._0x37f055))/(0x1818+0x10*0x216+-0x396e));if(_0x466b24===_0x5f4eca)break;else _0x260b38['push'](_0x260b38['shift']());}catch(_0x3fb6e4){_0x260b38['push'](_0x260b38['shift']());}}}(a27_0x45ae,0x969*-0xd+-0x1af4a*0x3+0xacafd));function a27_0x2cc5(_0x5999f5,_0x15c0c8){_0x5999f5=_0x5999f5-(-0x1*-0x3d2+-0x25*-0xf5+0x1*-0x2697);const _0xe296d5=a27_0x45ae();let _0x121624=_0xe296d5[_0x5999f5];if(a27_0x2cc5['wvtqRV']===undefined){var _0x5f4b53=function(_0xf7de6f){const _0x2f7693='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4e0430='',_0x49d59b='';for(let _0x1cbae8=0x1*-0x6d3+-0x19f2+-0x20c5*-0x1,_0x5f43df,_0x55f4fa,_0x57901c=-0x158d+0x2*0x552+0xae9;_0x55f4fa=_0xf7de6f['charAt'](_0x57901c++);~_0x55f4fa&&(_0x5f43df=_0x1cbae8%(0x7*0x1dc+0x1*0x1979+-0x57f*0x7)?_0x5f43df*(0x842+-0x5d9+-0x4f*0x7)+_0x55f4fa:_0x55f4fa,_0x1cbae8++%(-0x24d0+-0x1a17+0x3eeb*0x1))?_0x4e0430+=String['fromCharCode'](-0x76+-0x2b4+0x429&_0x5f43df>>(-(-0xd*0x1a3+-0x1*-0x7be+0xd8b)*_0x1cbae8&-0xd*-0x18c+0x15d3*-0x1+0x1bd)):0x94*-0x1f+-0x731+-0x191d*-0x1){_0x55f4fa=_0x2f7693['indexOf'](_0x55f4fa);}for(let _0x280beb=-0x1a5d+0x1*-0x101b+-0x25c*-0x12,_0x109a28=_0x4e0430['length'];_0x280beb<_0x109a28;_0x280beb++){_0x49d59b+='%'+('00'+_0x4e0430['charCodeAt'](_0x280beb)['toString'](0x19*-0x19+0x207d*-0x1+0x22fe))['slice'](-(0x1*-0xfd+-0x1867*-0x1+-0x1768));}return decodeURIComponent(_0x49d59b);};a27_0x2cc5['VXoKLc']=_0x5f4b53,a27_0x2cc5['KWYHjf']={},a27_0x2cc5['wvtqRV']=!![];}const _0x369eb2=_0xe296d5[0x22e5*0x1+-0x1581+-0xd64],_0x596b71=_0x5999f5+_0x369eb2,_0x10a8e9=a27_0x2cc5['KWYHjf'][_0x596b71];return!_0x10a8e9?(_0x121624=a27_0x2cc5['VXoKLc'](_0x121624),a27_0x2cc5['KWYHjf'][_0x596b71]=_0x121624):_0x121624=_0x10a8e9,_0x121624;}var __importDefault=this&&this['__importDefault']||function(_0x482368){const a27_0x3d2c4b={_0xdf1ae6:0xd9},_0x3e709e=a27_0x2cc5;return _0x482368&&_0x482368[_0x3e709e(a27_0x3d2c4b._0xdf1ae6)]?_0x482368:{'default':_0x482368};};Object['defineProperty'](exports,a27_0x9105c7(0xd9),{'value':!![]}),exports['ShutdownManager']=void(0xa69+-0x993+0x2*-0x6b);const async_exit_hook_1=__importDefault(require(a27_0x9105c7(0xa4)));class ShutdownManager{[a27_0x9105c7(0xab)];[a27_0x9105c7(0xb7)];['logger'];[a27_0x9105c7(0xcf)];[a27_0x9105c7(0xb0)];[a27_0x9105c7(0xcd)];[a27_0x9105c7(0xbf)];constructor({client:_0x44f03a,container:_0x47497d}){const _0x1d610f=a27_0x9105c7;this['client']=_0x44f03a,this[_0x1d610f(0xb7)]=_0x47497d,this[_0x1d610f(0xcf)]=new Set(),this['_messagesWithActiveCollectors']=new Set(),this['_collectorPatched']=![],this['_cleanupAttached']=![],this['logger']=this[_0x1d610f(0xb7)]['logger'];}['initializeGlobalIntervalTracker'](){const a27_0x163dfb={_0x53313d:0xc6,_0x56c900:0xc9,_0x28a792:0xb7,_0x42be89:0xac,_0x3f2885:0xc0,_0x482acf:0xa5},a27_0x56fcc2={_0x37c63e:0xcf},a27_0xda3efb={_0x394a5b:0xcf},_0x16b5b2=a27_0x9105c7,_0x559c82={'mLZzy':function(_0x591344,_0x4cff1f,_0x446d89,..._0x4caf4a){return _0x591344(_0x4cff1f,_0x446d89,..._0x4caf4a);}};try{if(!this['_activeIntervals'])this['_activeIntervals']=new Set();const _0x5203a0=global[_0x16b5b2(0xc4)],_0x897847=global['clearInterval'];global['setInterval']=(_0x2b2469,_0x24c653,..._0x27bf26)=>{const _0x56a70e=_0x16b5b2,_0x3c5022=_0x559c82[_0x56a70e(0xd5)](_0x5203a0,_0x2b2469,_0x24c653,..._0x27bf26);return this[_0x56a70e(a27_0xda3efb._0x394a5b)]['add'](_0x3c5022),_0x3c5022;},global[_0x16b5b2(0xce)]=_0x20ae09=>{const _0x2f1f40=_0x16b5b2;_0x20ae09&&(_0x897847(_0x20ae09),this[_0x2f1f40(a27_0x56fcc2._0x37c63e)][_0x2f1f40(0xd2)](_0x20ae09));},this['logger'][_0x16b5b2(a27_0x163dfb._0x53313d)]('✅\x20Global\x20setInterval/clearInterval\x20has\x20been\x20patched\x20for\x20tracking.');}catch(_0x4842d5){this[_0x16b5b2(a27_0x163dfb._0x56c900)][_0x16b5b2(0xac)]('Failed\x20to\x20initialize\x20global\x20interval\x20tracker:',_0x4842d5),this[_0x16b5b2(a27_0x163dfb._0x28a792)][_0x16b5b2(0xd7)]?.['report'](_0x16b5b2(a27_0x163dfb._0x42be89),'Global\x20Interval\x20Tracker\x20Initialization\x20Failed',{'message':_0x4842d5[_0x16b5b2(a27_0x163dfb._0x3f2885)],'stack':_0x4842d5[_0x16b5b2(a27_0x163dfb._0x482acf)]});}}['disableRecursively'](_0x4354a3){const a27_0x1d0a07={_0x1ef5f9:0xbc},a27_0xc8a064={_0x2a37e9:0xd3,_0x2965f4:0xb5},_0x56c443=a27_0x9105c7;return _0x4354a3[_0x56c443(a27_0x1d0a07._0x1ef5f9)](_0x58e921=>{const _0x1d12ef=_0x56c443;_0x58e921[_0x1d12ef(a27_0xc8a064._0x2a37e9)]&&Array['isArray'](_0x58e921[_0x1d12ef(a27_0xc8a064._0x2a37e9)])&&(_0x58e921['components']=this['disableRecursively'](_0x58e921['components']));if(_0x58e921[_0x1d12ef(0xb5)]===-0x2337+-0x18b1+0x3bea*0x1||_0x58e921[_0x1d12ef(a27_0xc8a064._0x2965f4)]===0xfd3+-0x1da9+0xdd9||_0x58e921[_0x1d12ef(a27_0xc8a064._0x2965f4)]>=0xef1+0x8c5+-0x17b1)return{..._0x58e921,'disabled':!![]};return _0x58e921;});}['initializeShutdownCollectors'](){const a27_0x30751c={_0x941c70:0xd8,_0x488955:0xb0,_0x3f5e5c:0xa8,_0x5c5aa1:0xd1,_0x379522:0xd1,_0x4957b9:0xd0,_0x53a9fa:0xaa,_0x4e7cbb:0xc6,_0x30f497:0xc9,_0x26a124:0xac,_0x48945b:0xa5},a27_0x417898={_0x25029d:0xc9,_0x71a72c:0xac,_0x333c5b:0xd7},a27_0x20d436={_0x241a71:0xc9},a27_0x41e701={_0x16d5d1:0xcf,_0x4cd2ef:0xc2,_0x346d30:0xa6,_0x593193:0xc6,_0x38d00d:0xc7,_0x3c57fd:0xd3,_0x37986c:0xd3,_0x331f0b:0xbc,_0x419968:0xb4,_0x55a7eb:0xc9,_0x326101:0xca,_0x59da2e:0xc9},a27_0xcbe625={_0x59bb0b:0xb1},_0x35ba8e=a27_0x9105c7,_0x114b4f={'yETuO':'⏳\x20Logger\x20flush\x20timeout.\x20Forcing\x20exit.','XqnuH':_0x35ba8e(0xae),'WMVOi':function(_0x12a794,_0x2bf647){return _0x12a794>_0x2bf647;},'lCjEb':_0x35ba8e(a27_0x30751c._0x941c70),'Rjhtg':_0x35ba8e(0xc3),'KlBIm':'error','kRGkJ':'uncaughtException'};try{if(!this['_messagesWithActiveCollectors'])this[_0x35ba8e(a27_0x30751c._0x488955)]=new Set();if(!this[_0x35ba8e(0xcd)]){const _0x413e19=require('discord.js')[_0x35ba8e(a27_0x30751c._0x3f5e5c)],_0x401c93=_0x413e19[_0x35ba8e(a27_0x30751c._0x5c5aa1)]['createMessageComponentCollector'],_0x3f810d=this;_0x413e19[_0x35ba8e(a27_0x30751c._0x379522)][_0x35ba8e(a27_0x30751c._0x4957b9)]=function(..._0x5ab278){const _0x344344=_0x35ba8e,_0x503b7a=_0x401c93['apply'](this,_0x5ab278);return _0x3f810d['_messagesWithActiveCollectors']&&_0x3f810d[_0x344344(0xb0)]['add'](this),_0x503b7a['once']('end',()=>{_0x3f810d['_messagesWithActiveCollectors']&&_0x3f810d['_messagesWithActiveCollectors']['delete'](this);}),_0x503b7a;},this['_collectorPatched']=!![],this['logger'][_0x35ba8e(0xc6)]('✅\x20Corrected\x20collector-based\x20component\x20tracking\x20has\x20been\x20patched.');}if(!this['_cleanupAttached']){const _0x55dcbd=async _0x1936b0=>{const _0x1247ea=_0x35ba8e,_0x1b2c8c={'cidFr':'⏳\x20Logger\x20has\x20flushed.\x20Kythia\x20is\x20now\x20safely\x20shutting\x20down.','lnHFJ':function(_0x145a04){return _0x145a04();},'QTlSF':_0x114b4f['yETuO']};this[_0x1247ea(0xc9)][_0x1247ea(0xc6)](_0x114b4f['XqnuH']);if(this[_0x1247ea(a27_0x41e701._0x16d5d1)]&&this['_activeIntervals']['size']>-0x3*-0x823+0x937+0x21a*-0x10){this['logger']['info'](_0x1247ea(a27_0x41e701._0x4cd2ef)+this['_activeIntervals']['size']+'\x20active\x20global\x20intervals...');for(const _0x420b28 of this[_0x1247ea(0xcf)]){clearInterval(_0x420b28);}}const _0x22e63a=this['_messagesWithActiveCollectors'];if(_0x22e63a&&_0x114b4f[_0x1247ea(a27_0x41e701._0x346d30)](_0x22e63a['size'],0x10b*-0x5+-0x1a*-0x4a+-0x24d)){this['logger'][_0x1247ea(a27_0x41e701._0x593193)]('🛑\x20Disabling\x20components\x20on\x20up\x20to\x20'+_0x22e63a['size']+_0x1247ea(0xc5));const _0x3547a5=[];for(const _0x329a72 of _0x22e63a){if(!_0x329a72[_0x1247ea(a27_0x41e701._0x38d00d)]||!_0x329a72[_0x1247ea(0xd3)]||_0x329a72[_0x1247ea(a27_0x41e701._0x3c57fd)]['length']===-0xda9+-0x23c+0xfe5)continue;try{const _0x49508a=_0x329a72[_0x1247ea(a27_0x41e701._0x37986c)][_0x1247ea(a27_0x41e701._0x331f0b)](_0x2294aa=>_0x2294aa['toJSON']()),_0x136ddf=this[_0x1247ea(0xa9)](_0x49508a);_0x3547a5[_0x1247ea(a27_0x41e701._0x419968)](_0x329a72['edit']({'components':_0x136ddf})['catch'](()=>{}));}catch(_0x58ed58){this[_0x1247ea(a27_0x41e701._0x55a7eb)]['error'](_0x58ed58);}}await Promise['allSettled'](_0x3547a5);}this[_0x1247ea(a27_0x41e701._0x55a7eb)][_0x1247ea(0xc6)](_0x114b4f[_0x1247ea(0xcb)]),this[_0x1247ea(a27_0x41e701._0x55a7eb)]['info']('🚰\x20Flushing\x20remaining\x20logs...'),this['logger']['on'](_0x1247ea(a27_0x41e701._0x326101),()=>{const _0x45504a=_0x1247ea;console['log'](_0x1b2c8c[_0x45504a(0xb3)]);if(_0x1936b0)_0x1b2c8c[_0x45504a(a27_0xcbe625._0x59bb0b)](_0x1936b0);}),this[_0x1247ea(a27_0x41e701._0x59da2e)]['end'](),setTimeout(()=>{console['log'](_0x1b2c8c['QTlSF']);if(_0x1936b0)_0x1936b0();},0xe*0x1ee+0xb1e+-0x1682);};(-0x20d3+0x2*-0xc4+0x6df*0x5,async_exit_hook_1[_0x35ba8e(a27_0x30751c._0x53a9fa)])(_0x55dcbd),process['on'](_0x35ba8e(0xcc),_0x2b6c3d=>{const _0x475c54=_0x35ba8e;this[_0x475c54(a27_0x20d436._0x241a71)][_0x475c54(0xac)]('‼️\x20UNHANDLED\x20PROMISE\x20REJECTION:',_0x2b6c3d),this['container'][_0x475c54(0xd7)]?.['report']('error','Unhandled\x20Promise\x20Rejection',{'message':_0x2b6c3d['message'],'stack':_0x2b6c3d['stack']});}),process['on'](_0x114b4f['kRGkJ'],_0x4fc586=>{const _0x2dad1c=_0x35ba8e;this[_0x2dad1c(a27_0x417898._0x25029d)][_0x2dad1c(a27_0x417898._0x71a72c)](_0x114b4f['Rjhtg'],_0x4fc586),this['container'][_0x2dad1c(a27_0x417898._0x333c5b)]?.['report'](_0x114b4f['KlBIm'],'Uncaught\x20Exception',{'message':_0x4fc586['message'],'stack':_0x4fc586[_0x2dad1c(0xa5)]}),process['exit'](-0x21a+0x1*-0x724+0x9*0x107);}),this['_cleanupAttached']=!![],this['logger'][_0x35ba8e(a27_0x30751c._0x4e7cbb)]('🛡️\x20\x20Graceful\x20shutdown\x20and\x20error\x20handlers\x20are\x20now\x20active.');}}catch(_0x111861){this[_0x35ba8e(a27_0x30751c._0x30f497)][_0x35ba8e(a27_0x30751c._0x26a124)]('Failed\x20to\x20initialize\x20shutdown\x20collectors:',_0x111861),this['container']['telemetry']?.['report'](_0x114b4f['KlBIm'],'Shutdown\x20Collector\x20Initialization\x20Failed',{'message':_0x111861[_0x35ba8e(0xc0)],'stack':_0x111861[_0x35ba8e(a27_0x30751c._0x48945b)]});}}[a27_0x9105c7(0xb6)](){const _0x294c5e=a27_0x9105c7;this['initializeGlobalIntervalTracker'](),this[_0x294c5e(0xaf)]();}[a27_0x9105c7(0xd6)](){const a27_0x2fe925={_0x359a53:0xc1},_0x1161a5=a27_0x9105c7;return this[_0x1161a5(0xcf)]?this[_0x1161a5(0xcf)][_0x1161a5(a27_0x2fe925._0x359a53)]:-0xbd9+0x20f9+-0xa90*0x2;}['getActiveCollectorsCount'](){const a27_0x50448c={_0x4aa922:0xb0},_0x1ef998=a27_0x9105c7;return this['_messagesWithActiveCollectors']?this[_0x1ef998(a27_0x50448c._0x4aa922)]['size']:0x7e9+-0x829*0x4+0x18bb;}['forceCleanup'](){const a27_0x257c97={_0x1fbfb4:0xcf,_0x9d00fd:0xcf,_0x17dcf5:0xb9},_0x31f23e=a27_0x9105c7,_0x4a42bf={'fBHlv':function(_0x5922a3,_0x53b3b8){return _0x5922a3(_0x53b3b8);}};if(this[_0x31f23e(a27_0x257c97._0x1fbfb4)]){for(const _0x5698b5 of this[_0x31f23e(a27_0x257c97._0x9d00fd)]){_0x4a42bf['fBHlv'](clearInterval,_0x5698b5);}this[_0x31f23e(a27_0x257c97._0x1fbfb4)][_0x31f23e(a27_0x257c97._0x17dcf5)]();}}}exports['ShutdownManager']=ShutdownManager;function a27_0x45ae(){const _0x138c34=['x2fJDgL2zuLUDgvYDMfSCW','y3jLyxrLtwvZC2fNzunVBxbVBMvUDenVBgXLy3rVCG','ChjVDg90ExbL','zgvSzxrL','y29TCg9Uzw50CW','mJGXndH2uKPLt20','BuXAENK','z2v0qwn0AxzLsw50zxj2ywXZq291BNq','DgvSzw1LDhj5','4PYfienVBxbVBMvUDcbJBgvHBNvWignVBxbSzxrLlG','x19LC01VzhvSzq','yxn5BMmTzxHPDc1OB29R','C3rHy2S','v01wt2K','nZGWohjZAuDTtq','twvZC2fNzq','zgLZywjSzvjLy3vYC2L2zwX5','zgvMyxvSDa','y2XPzw50','zxjYB3i','odu5ndqWv2j1zMrU','8j+BKsbhCMfJzwz1BcbZAhv0zg93BIbPBML0Awf0zwqUlI4','Aw5PDgLHBgL6zvnODxrKB3DUq29SBgvJDg9YCW','x21LC3nHz2vZv2L0AefJDgL2zunVBgXLy3rVCNm','Bg5irKO','nti5nty1tKzZtxDf','y2LKrNi','ChvZAa','DhLWzq','Aw5PDgLHBgL6zq','y29UDgfPBMvY','mZu3ntG4yNHHsK5u','y2XLyxi','mte3nLLqAMvAtG','mtK1wuzQvg5u','BwfW','ntC0mJC2swfnq0Du','mtyYzLvTrgf4','x2nSzwfUDxbbDhrHy2HLza','BwvZC2fNzq','C2L6zq','8j+BKsbiywX0Aw5Nia','4Oc877Ipifvoq0fvr0Huievyq0vqveLptIeGqM90ihDPBgWGC2H1DgrVD24U','C2v0sw50zxj2ywW','ig1LC3nHz2vZlG','Aw5MBW','zwrPDgfIBgu','mZm3otGWu0vAtxrK','Bg9Nz2vY','zMLUAxnO','BenQrwi','Dw5Oyw5KBgvKuMvQzwn0Aw9U','x2nVBgXLy3rVCLbHDgnOzwq','y2XLyxjjBNrLCNzHBa'];a27_0x45ae=function(){return _0x138c34;};return a27_0x45ae();}
@@ -17,12 +17,19 @@ export declare class TelemetryManager {
17
17
  private readonly _e;
18
18
  private readonly _t;
19
19
  flushInterval: NodeJS.Timeout | undefined;
20
+ private _vt;
21
+ private _vtTimestamp;
22
+ private readonly TOKEN_VALIDITY_MS;
20
23
  private get _ep();
21
24
  private get _tp();
22
25
  constructor(options: TelemetryOptions);
23
26
  private getSystemSpec;
24
27
  verifyStatus(): Promise<'VALID' | 'INVALID' | 'NETWORK_ERROR' | 'SERVER_ERROR'>;
25
28
  verify(): Promise<boolean>;
29
+ private _generateToken;
30
+ isTokenValid(): boolean;
31
+ getToken(): string | null;
32
+ private _s0;
26
33
  report(level: 'info' | 'warn' | 'error', message: string, metadata?: any): void;
27
34
  private flush;
28
35
  startAutoFlush(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"TelemetryManager.d.ts","sourceRoot":"","sources":["../../src/managers/TelemetryManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,IAAI,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE5E,UAAU,gBAAgB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;CACtB;AASD,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,QAAQ,CAAsB;IAEtC,OAAO,CAAC,eAAe,CAAK;IAE5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAK;IAE1C,OAAO,CAAC,iBAAiB,CAA+B;IAExD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAC6E;IAEhG,OAAO,CAAC,QAAQ,CAAC,EAAE,CACiF;IAEpG,aAAa,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;IAE1C,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,GAAG,GAEd;gBAEW,OAAO,EAAE,gBAAgB;IAOrC,OAAO,CAAC,aAAa;IA8BR,YAAY,IAAI,OAAO,CACnC,OAAO,GAAG,SAAS,GAAG,eAAe,GAAG,cAAc,CACtD;IA+CY,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAKhC,MAAM,CACZ,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAChC,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,GAAG;YAmBD,KAAK;IAkBZ,cAAc;IAiBd,cAAc;CA0DrB"}
1
+ {"version":3,"file":"TelemetryManager.d.ts","sourceRoot":"","sources":["../../src/managers/TelemetryManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,IAAI,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE5E,UAAU,gBAAgB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;CACtB;AASD,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,QAAQ,CAAsB;IAEtC,OAAO,CAAC,eAAe,CAAK;IAE5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAK;IAE1C,OAAO,CAAC,iBAAiB,CAA+B;IAExD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAC6E;IAEhG,OAAO,CAAC,QAAQ,CAAC,EAAE,CACiF;IAEpG,aAAa,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAuB;IAClC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkB;IAEpD,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,GAAG,GAEd;gBAEW,OAAO,EAAE,gBAAgB;IAOrC,OAAO,CAAC,aAAa;IA6BR,YAAY,IAAI,OAAO,CACnC,OAAO,GAAG,SAAS,GAAG,eAAe,GAAG,cAAc,CACtD;IA+CY,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAgBvC,OAAO,CAAC,cAAc;IA8Bf,YAAY,IAAI,OAAO;IA+BvB,QAAQ,IAAI,MAAM,GAAG,IAAI;YAOlB,GAAG;IA2BV,MAAM,CACZ,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAChC,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,GAAG;YAkBD,KAAK;IAkBZ,cAAc;IAiBd,cAAc;CAqDrB"}
@@ -1,201 +1 @@
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.TelemetryManager = void 0;
7
- const axios_1 = __importDefault(require("axios"));
8
- const node_os_1 = __importDefault(require("node:os"));
9
- class TelemetryManager {
10
- licenseKey;
11
- logger;
12
- version;
13
- config;
14
- logQueue = [];
15
- networkFailures = 0;
16
- MAX_NETWORK_FAILURES = 6;
17
- heartbeatInterval = null;
18
- _e = 'aHR0cHM6Ly9reXRoaWEtbGljZW5zZS56dXVsaXppbHV1ei53b3JrZXJzLmRldi9hcGkvdjEvbGljZW5zZS92ZXJpZnk=';
19
- _t = 'aHR0cHM6Ly9reXRoaWEtbGljZW5zZS56dXVsaXppbHV1ei53b3JrZXJzLmRldi9hcGkvdjEvbGljZW5zZS90ZWxlbWV0cnk=';
20
- flushInterval;
21
- get _ep() {
22
- return Buffer.from(this._e, 'base64').toString('utf-8');
23
- }
24
- get _tp() {
25
- return Buffer.from(this._t, 'base64').toString('utf-8');
26
- }
27
- constructor(options) {
28
- this.licenseKey = options.licenseKey;
29
- this.logger = options.logger;
30
- this.version = options.version;
31
- this.config = options.config;
32
- }
33
- getSystemSpec() {
34
- try {
35
- const cpus = node_os_1.default.cpus();
36
- const ramTotal = `${(node_os_1.default.totalmem() / 1024 / 1024 / 1024).toFixed(2)} GB`;
37
- return {
38
- platform: `${node_os_1.default.type()} ${node_os_1.default.release()} (${node_os_1.default.arch()})`,
39
- hostname: node_os_1.default.hostname(),
40
- cpu: cpus.length > 0 ? cpus[0].model : 'Unknown CPU',
41
- cores: cpus.length,
42
- ram: ramTotal,
43
- nodeVersion: process.version,
44
- botVersion: this.version,
45
- };
46
- }
47
- catch (error) {
48
- this.logger.error('Failed to get system specs:', error);
49
- return {
50
- platform: 'Unknown',
51
- hostname: 'Unknown',
52
- cpu: 'Unknown',
53
- cores: 0,
54
- ram: 'Unknown',
55
- nodeVersion: process.version,
56
- botVersion: this.version,
57
- };
58
- }
59
- }
60
- async verifyStatus() {
61
- try {
62
- const specs = this.getSystemSpec();
63
- const botClientId = this.config.bot.clientId;
64
- const response = await axios_1.default.post(this._ep, {
65
- key: this.licenseKey,
66
- clientId: botClientId,
67
- hwid: specs,
68
- config: this.config,
69
- }, {
70
- timeout: 5000,
71
- });
72
- if (response.status === 200 && response.data.valid) {
73
- return 'VALID';
74
- }
75
- else {
76
- return 'INVALID';
77
- }
78
- }
79
- catch (error) {
80
- if (error.response) {
81
- if (error.response.status === 401 || error.response.status === 403) {
82
- this.logger.error(`❌ License Rejected by Server: ${error.response.status}`);
83
- return 'INVALID';
84
- }
85
- if (error.response.status >= 500) {
86
- this.logger.warn(`⚠️ License Server Error: ${error.response.status}`);
87
- return 'SERVER_ERROR';
88
- }
89
- return 'NETWORK_ERROR';
90
- }
91
- else if (error.request) {
92
- this.logger.warn(`⚠️ License Server Unreachable: ${error.message}`);
93
- return 'NETWORK_ERROR';
94
- }
95
- return 'NETWORK_ERROR';
96
- }
97
- }
98
- async verify() {
99
- const status = await this.verifyStatus();
100
- return status === 'VALID';
101
- }
102
- report(level, message, metadata) {
103
- try {
104
- this.logQueue.push({
105
- level,
106
- message,
107
- metadata: metadata ? JSON.stringify(metadata) : null,
108
- timestamp: Date.now(),
109
- });
110
- if (this.logQueue.length >= 50) {
111
- this.flush();
112
- }
113
- }
114
- catch (error) {
115
- this.logger.warn('Failed to queue telemetry log:', error);
116
- }
117
- }
118
- async flush() {
119
- if (this.logQueue.length === 0)
120
- return;
121
- const logsToSend = [...this.logQueue];
122
- this.logQueue = [];
123
- try {
124
- await axios_1.default.post(this._tp, {
125
- key: this.licenseKey,
126
- logs: logsToSend,
127
- });
128
- }
129
- catch (error) {
130
- this.logger.warn(`⚠️ Failed to flush telemetry logs: ${error.message}`);
131
- }
132
- }
133
- startAutoFlush() {
134
- try {
135
- this.flushInterval = setInterval(() => {
136
- this.flush();
137
- }, 5 * 60 * 1000);
138
- }
139
- catch (error) {
140
- this.logger.error('Failed to start auto flush:', error);
141
- this.report('error', 'Auto Flush Start Failed', {
142
- message: error.message,
143
- stack: error.stack,
144
- });
145
- }
146
- }
147
- startHeartbeat() {
148
- try {
149
- if (this.heartbeatInterval)
150
- clearInterval(this.heartbeatInterval);
151
- const minMs = 10 * 60 * 1000;
152
- const maxMs = 20 * 60 * 1000;
153
- const randomMs = Math.floor(Math.random() * (maxMs - minMs + 1)) + minMs;
154
- this.heartbeatInterval = setInterval(async () => {
155
- try {
156
- this.logger.debug('💓 Checking License Status...');
157
- const status = await this.verifyStatus();
158
- if (status === 'VALID') {
159
- if (this.networkFailures > 0) {
160
- this.logger.info('✅ Reconnected to License Server!');
161
- }
162
- this.networkFailures = 0;
163
- }
164
- else if (status === 'INVALID') {
165
- this.logger.error('💀 LICENSE REVOKED/INVALID. SHUTTING DOWN.');
166
- await this.report('error', 'License Revoked (Heartbeat Check)');
167
- await this.flush();
168
- process.exit(1);
169
- }
170
- else if (status === 'NETWORK_ERROR' || status === 'SERVER_ERROR') {
171
- this.networkFailures++;
172
- const msg = status === 'SERVER_ERROR'
173
- ? `⚠️ License Server Error (5xx). Attempt ${this.networkFailures}/${this.MAX_NETWORK_FAILURES}`
174
- : `⚠️ Cannot reach license server. Attempt ${this.networkFailures}/${this.MAX_NETWORK_FAILURES}`;
175
- this.logger.warn(msg);
176
- if (this.networkFailures >= this.MAX_NETWORK_FAILURES) {
177
- this.logger.error('💀 Unable to verify license for too long. Shutting down for security.');
178
- process.exit(1);
179
- }
180
- }
181
- }
182
- catch (error) {
183
- this.logger.error('Error during heartbeat check:', error);
184
- this.report('error', 'Heartbeat Check Failed', {
185
- message: error.message,
186
- stack: error.stack,
187
- });
188
- }
189
- }, randomMs);
190
- }
191
- catch (error) {
192
- this.logger.error('Failed to start heartbeat:', error);
193
- this.report('error', 'Heartbeat Start Failed', {
194
- message: error.message,
195
- stack: error.stack,
196
- });
197
- }
198
- }
199
- }
200
- exports.TelemetryManager = TelemetryManager;
201
- //# sourceMappingURL=TelemetryManager.js.map
1
+ 'use strict';function a28_0x4986(){const _0x3388bd=['zxjYB3i','zgvMyxvSDa','y3jPDgLJywXFzxjYB3i','yMfZzty0','BgLJzw5Zzv9PBNzHBgLK','y3jLyxrLsgfZAa','ndjmEhPTzhq','CMfUzg9T','Agv4','rgf0ywjHC2uGy29UBMvJDgLVBIbWB29Sigv4Agf1C3rLza','z2v0u3LZDgvTu3bLyW','Ag9ZDg5HBwu','tKvuv09ss19fuLjpuG','x3mW','x3z0','Bg9NuxvLDwu','uLbVr1m','vKfmsuq','BM9KztPVCW','8j+sKYbdAgvJA2LUzYbmAwnLBNnLifn0yxr1CY4UlG','y3b1CW','vw5RBM93BG','qxv0BYbgBhvZAcbtDgfYDcbgywLSzwq','wvDVBeW','mJC3ody0nwvhD3LdDW','y3HOEMu','vw5RBM93BIbdufu','odK1mZbWqxrMyxa','zMX1C2G','otC5odvzseX1s1C','uhjVy2vZCYb3AwXSihrLCM1PBMf0zsbPBIaXltuGBwLUDxrLCYb0BYbWCMv2zw50igrHDgeGy29YCNvWDgLVBI4','C3rHDhvZ','ve9lru5FvKfmsurjvfLFtvm','ywvZlti1nI1JyMm','rMfPBgvKihrVigDLDcbZExn0zw0GC3bLy3m6','rMfPBgvKihrVihf1zxvLihrLBgvTzxrYEsbSB2C6','nJa5ndy1mKfjtNz1vW','DxbKyxrL','z2v0vg9Rzw4','yxHPB3m','CMvXDwvZDa','4PQG77IpieXPy2vUC2uGu2vYDMvYievYCM9YoIa','Dg90ywXTzw0','4PQG77IpienHBM5VDcbYzwfJAcbSAwnLBNnLihnLCNzLCI4Gqxr0zw1WDca','Bg9Nz2vY','sgvHCNrIzwf0ifn0yxj0iezHAwXLza','DMvYAwz5u3rHDhvZ','D2fYBG','rMfPBgvKihrVihn0yxj0igf1Dg8GzMX1C2G6','DMvYC2LVBG','vw5YzwnVDMvYywjSzsbeAxnJB3jKiefqssbLCNjVCG','zgLNzxn0','CMvWB3j0','suHmEem','mZmXmgXKu1fsrq','q3jPDgLJywWGC3LZDgvTihjLC291CMnLihvUyxzHAwXHyMXL','C2XPy2u','su5wquXjra','tufyx05fvfDpuKTFrKfjtfvsrvm','BgvUz3rO','DuXvzwO','Cg9ZDa','BgLJzw5ZzuTLEq','ndKWmJiYne9zy2XeCa','C0rkvvu','4PQG77IpieXPy2vUC2uGu2vYDMvYievYCM9YicG1EhGPlIbbDhrLBxb0ia','nMT2uhH4BG','Aw5MBW','rMfPBgvKihrVihn0yxj0igHLyxj0yMvHDdO','8j+sGcbmsunftLnfifzfuKLgsunbveLptIbgquLmruqU','C3rHy2S','BMv0D29YA0zHAwX1CMvZ','zMLUywW','x19PBxbVCNrezwzHDwX0','u3LZDgvTifnODxrKB3DUoIa','CMvZCg9UC2u','mZmWmJfdB01RBLe','u0vsvKvsx0vsuK9s','zMXVB3i','x3rW','AgvHCNrIzwf0sw50zxj2ywW','sgvHCNrIzwf0ienOzwnRiezHAwXLza','BwvZC2fNzq','DMvYAwz5','zNjVBq','Dg9tDhjPBMC','y29UzMLN','C3bSAxq','x2DLBMvYyxrLvg9Rzw4','nZC4mtm2oeLmyxjtua','C2HHmJu2','DxrMltG','ChvZAa','zgvMAw5LuhjVCgvYDhK','y05uqNa','DxrMoa','BM93'];a28_0x4986=function(){return _0x3388bd;};return a28_0x4986();}const a28_0x29d886=a28_0x3401;(function(_0x354635,_0x3f8f53){const a28_0xe2d69={_0x2ea7e0:0x12d,_0x584cff:0x134,_0x4f459e:0x128,_0x2a9586:0x169,_0x26719a:0x14f,_0x2fa05c:0x15c},_0x22bc33=a28_0x3401,_0x406197=_0x354635();while(!![]){try{const _0x569e07=-parseInt(_0x22bc33(a28_0xe2d69._0x2ea7e0))/(0x10e1+-0x11a3+-0x27*-0x5)+-parseInt(_0x22bc33(0x12b))/(0xd95+0x55*0x32+-0x19*0x135)*(-parseInt(_0x22bc33(0x116))/(0x6e0+0x1dbf+0xc34*-0x3))+parseInt(_0x22bc33(a28_0xe2d69._0x584cff))/(0x1*0x243a+0x17*-0xc1+0x1*-0x12df)+-parseInt(_0x22bc33(a28_0xe2d69._0x4f459e))/(-0x94f+0x6*-0x524+0x282c)*(parseInt(_0x22bc33(0x152))/(-0x1824+-0x476*-0x2+0xf3e))+-parseInt(_0x22bc33(a28_0xe2d69._0x2a9586))/(-0x2501*0x1+-0x1e1*0x5+0x2e6d)+-parseInt(_0x22bc33(a28_0xe2d69._0x26719a))/(0x1d38+0xe0e+-0x2b3e)+parseInt(_0x22bc33(a28_0xe2d69._0x2fa05c))/(-0xa1b+0x5*0x4a7+0x1*-0xd1f)*(parseInt(_0x22bc33(0x146))/(0xa84*0x1+-0x3c*-0x1f+-0x11be));if(_0x569e07===_0x3f8f53)break;else _0x406197['push'](_0x406197['shift']());}catch(_0x2ba31f){_0x406197['push'](_0x406197['shift']());}}}(a28_0x4986,-0x1bad62*0x1+-0x18b045+0x436bef));var __importDefault=this&&this[a28_0x29d886(0x159)]||function(_0x5382a9){return _0x5382a9&&_0x5382a9['__esModule']?_0x5382a9:{'default':_0x5382a9};};function a28_0x3401(_0x28f8d4,_0x3c01a5){_0x28f8d4=_0x28f8d4-(0x2*-0x12d7+0x1*-0x13c3+0x3a82);const _0x4e8c41=a28_0x4986();let _0x484e79=_0x4e8c41[_0x28f8d4];if(a28_0x3401['PMGdNC']===undefined){var _0x2d07bb=function(_0x439fc3){const _0x2fa7d1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x111ea1='',_0x19ae5e='';for(let _0x1a6fba=-0x1215+0x1a9a+-0x885,_0x35b3f1,_0x116af5,_0xad4428=0x67*0x2e+-0x404+-0xe7e;_0x116af5=_0x439fc3['charAt'](_0xad4428++);~_0x116af5&&(_0x35b3f1=_0x1a6fba%(0xfe0+-0x1843+0x9*0xef)?_0x35b3f1*(-0x1dab+0x106e+0x1*0xd7d)+_0x116af5:_0x116af5,_0x1a6fba++%(0x398+0xc5+-0x459))?_0x111ea1+=String['fromCharCode'](0x40a*-0x7+-0x1c7f+0x39c4&_0x35b3f1>>(-(0x134a+0x1*-0x35b+-0xfed)*_0x1a6fba&0xc2*-0x19+0x1*0x2a9+0x5*0x343)):-0x944*-0x1+0x21dd+0x1*-0x2b21){_0x116af5=_0x2fa7d1['indexOf'](_0x116af5);}for(let _0x2aec03=0x2*0x321+-0x92*-0x7+-0x290*0x4,_0x514a82=_0x111ea1['length'];_0x2aec03<_0x514a82;_0x2aec03++){_0x19ae5e+='%'+('00'+_0x111ea1['charCodeAt'](_0x2aec03)['toString'](0x2*-0xe+0xf*-0x62+-0x1*-0x5ea))['slice'](-(-0xae0+-0x361*0x5+-0x1bc7*-0x1));}return decodeURIComponent(_0x19ae5e);};a28_0x3401['vMBcnA']=_0x2d07bb,a28_0x3401['DGLuhV']={},a28_0x3401['PMGdNC']=!![];}const _0x42ffe1=_0x4e8c41[0x693+-0x212e+0x1a9b],_0x22652a=_0x28f8d4+_0x42ffe1,_0x307cb4=a28_0x3401['DGLuhV'][_0x22652a];return!_0x307cb4?(_0x484e79=a28_0x3401['vMBcnA'](_0x484e79),a28_0x3401['DGLuhV'][_0x22652a]=_0x484e79):_0x484e79=_0x307cb4,_0x484e79;}Object[a28_0x29d886(0x16d)](exports,'__esModule',{'value':!![]}),exports['TelemetryManager']=void(-0x1976*0x1+0x1da6+-0x430);const axios_1=__importDefault(require(a28_0x29d886(0x137))),node_os_1=__importDefault(require(a28_0x29d886(0x122))),node_crypto_1=__importDefault(require('node:crypto'));class TelemetryManager{['licenseKey'];[a28_0x29d886(0x13c)];['version'];['config'];[a28_0x29d886(0x11f)]=[];[a28_0x29d886(0x157)]=0x1013+0x2205*0x1+0x728*-0x7;[a28_0x29d886(0x14a)]=0x1*-0x2173+-0x5*0x650+-0x4109*-0x1;[a28_0x29d886(0x160)]=null;['_e']='aHR0cHM6Ly9reXRoaWEtbGljZW5zZS56dXVsaXppbHV1ei53b3JrZXJzLmRldi9hcGkvdjEvbGljZW5zZS92ZXJpZnk=';['_t']='aHR0cHM6Ly9reXRoaWEtbGljZW5zZS56dXVsaXppbHV1ei53b3JrZXJzLmRldi9hcGkvdjEvbGljZW5zZS90ZWxlbWV0cnk=';['flushInterval'];[a28_0x29d886(0x11e)]=null;['_vtTimestamp']=-0x5b0+-0x98d+0xf3d;[a28_0x29d886(0x130)]=(-0x7*0xd+-0x1adb+0x1b54)*(-0x26ab+-0x1802+0x3ee9)*(0xf0b*-0x1+0xd*-0x1bb+0x2972);get['_ep'](){const a28_0x161664={_0x18a728:0x16b},_0xdcae1=a28_0x29d886;return Buffer[_0xdcae1(0x164)](this['_e'],'base64')['toString'](_0xdcae1(a28_0x161664._0x18a728));}get[a28_0x29d886(0x15f)](){const a28_0x5b2ff7={_0x233ec1:0x113},_0x15ca99=a28_0x29d886;return Buffer['from'](this['_t'],_0x15ca99(a28_0x5b2ff7._0x233ec1))['toString'](_0x15ca99(0x16b));}constructor(_0x31a8b7){const a28_0x54eaef={_0x2e7379:0x166,_0x5f57cd:0x166},_0x5d1898=a28_0x29d886;this[_0x5d1898(0x14e)]=_0x31a8b7['licenseKey'],this['logger']=_0x31a8b7['logger'],this['version']=_0x31a8b7[_0x5d1898(0x141)],this[_0x5d1898(a28_0x54eaef._0x2e7379)]=_0x31a8b7[_0x5d1898(a28_0x54eaef._0x5f57cd)];}[a28_0x29d886(0x11a)](){const a28_0x2803c5={_0x2d9bbf:0x124,_0x53ba87:0x13a,_0xf1d4ef:0x111,_0x25c5f4:0x111,_0x44c7e1:0x11b,_0x3ae7e1:0x12a,_0x14a17a:0x141,_0x38d44c:0x141,_0xef2382:0x171,_0x827d7c:0x125,_0x1e5127:0x125},_0x14d5f5=a28_0x29d886;try{const _0x3e2780=node_os_1[_0x14d5f5(0x111)][_0x14d5f5(a28_0x2803c5._0x2d9bbf)](),_0x17ebff=(node_os_1[_0x14d5f5(0x111)][_0x14d5f5(a28_0x2803c5._0x53ba87)]()/(-0x1da9+-0x1725+0x2*0x1c67)/(-0x6e4+-0x6f5+0x11d9)/(0x1662+0x29*-0x39+-0x67*0x17))['toFixed'](0x12b4+0xde1+-0x2093*0x1)+'\x20GB';return{'platform':node_os_1[_0x14d5f5(0x111)]['type']()+'\x20'+node_os_1['default']['release']()+'\x20('+node_os_1[_0x14d5f5(a28_0x2803c5._0xf1d4ef)]['arch']()+')','hostname':node_os_1[_0x14d5f5(a28_0x2803c5._0x25c5f4)][_0x14d5f5(a28_0x2803c5._0x44c7e1)](),'cpu':_0x3e2780[_0x14d5f5(0x14b)]>0x12c6+-0x165f*-0x1+0xdb7*-0x3?_0x3e2780[0xc65+0x13f*-0x7+-0x3ac]['model']:_0x14d5f5(a28_0x2803c5._0x3ae7e1),'cores':_0x3e2780['length'],'ram':_0x17ebff,'nodeVersion':process[_0x14d5f5(a28_0x2803c5._0x14a17a)],'botVersion':this[_0x14d5f5(a28_0x2803c5._0x38d44c)]};}catch(_0x568e6a){return this[_0x14d5f5(0x13c)][_0x14d5f5(a28_0x2803c5._0xef2382)](_0x14d5f5(0x132),_0x568e6a),{'platform':_0x14d5f5(a28_0x2803c5._0x827d7c),'hostname':_0x14d5f5(a28_0x2803c5._0x1e5127),'cpu':'Unknown','cores':0x0,'ram':'Unknown','nodeVersion':process['version'],'botVersion':this['version']};}}async[a28_0x29d886(0x13e)](){const a28_0x2cc396={_0x3e454f:0x149,_0x5509b2:0x11c,_0x2be9a2:0x111,_0x407877:0x14d,_0x36b3f4:0x14e,_0x265a69:0x171,_0x4f3518:0x15b,_0x57caa9:0x12f,_0x2c431f:0x13c,_0x4980e1:0x15d,_0x292812:0x138,_0x1b5f5f:0x162,_0x86adcf:0x11c},_0x565320=a28_0x29d886,_0x494573={'xSZJM':_0x565320(a28_0x2cc396._0x3e454f),'cNTBp':_0x565320(a28_0x2cc396._0x5509b2)};try{const _0x2490a2=this['getSystemSpec'](),_0x5ee82d=this['config']['bot']['clientId'],_0x19148c=await axios_1[_0x565320(a28_0x2cc396._0x2be9a2)][_0x565320(a28_0x2cc396._0x407877)](this['_ep'],{'key':this[_0x565320(a28_0x2cc396._0x36b3f4)],'clientId':_0x5ee82d,'hwid':_0x2490a2,'config':this['config']},{'timeout':0x1388});return _0x19148c[_0x565320(0x12f)]===-0x20e0+0x1f*0x119+-0x5f&&_0x19148c['data']['valid']?_0x565320(0x121):_0x494573['xSZJM'];}catch(_0x42757c){if(_0x42757c[_0x565320(0x15b)]){if(_0x42757c[_0x565320(0x15b)]['status']===0x5f2+0x371+0x5b*-0x16||_0x42757c[_0x565320(0x15b)][_0x565320(0x12f)]===-0xef+0x224e+-0x2*0xfe6)return this['logger'][_0x565320(a28_0x2cc396._0x265a69)]('❌\x20License\x20Rejected\x20by\x20Server:\x20'+_0x42757c[_0x565320(a28_0x2cc396._0x4f3518)][_0x565320(0x12f)]),'INVALID';if(_0x42757c[_0x565320(a28_0x2cc396._0x4f3518)][_0x565320(a28_0x2cc396._0x57caa9)]>=0x1686+-0xc54+-0x83e)return this[_0x565320(a28_0x2cc396._0x2c431f)][_0x565320(0x13f)](_0x565320(0x139)+_0x42757c['response'][_0x565320(0x12f)]),_0x565320(a28_0x2cc396._0x4980e1);return _0x494573[_0x565320(0x16e)];}else{if(_0x42757c[_0x565320(a28_0x2cc396._0x292812)])return this['logger']['warn']('⚠️\x20License\x20Server\x20Unreachable:\x20'+_0x42757c[_0x565320(a28_0x2cc396._0x1b5f5f)]),'NETWORK_ERROR';}return _0x565320(a28_0x2cc396._0x86adcf);}}async[a28_0x29d886(0x163)](){const a28_0x44e406={_0x51e029:0x13e,_0x45f5c8:0x129},_0x22701e=a28_0x29d886,_0x4ce165={'cxhze':function(_0x5174bf,_0x5e9dd4){return _0x5174bf===_0x5e9dd4;}},_0x29d3f7=await this[_0x22701e(a28_0x44e406._0x51e029)](),_0x3dda5e=_0x4ce165[_0x22701e(a28_0x44e406._0x45f5c8)](_0x29d3f7,'VALID');return _0x3dda5e&&(this[_0x22701e(0x11e)]=this[_0x22701e(0x168)](),this['_vtTimestamp']=Date['now']()),_0x3dda5e;}[a28_0x29d886(0x168)](){const a28_0x5e2982={_0x4afbc9:0x16a,_0x7c4feb:0x111,_0x2a8561:0x165,_0x7b2ab2:0x158},_0x3a16d6=a28_0x29d886,_0x44f161={'JCavb':_0x3a16d6(a28_0x5e2982._0x4afbc9),'ARKTd':function(_0x23b2aa,_0x2fef10){return _0x23b2aa+_0x2fef10;},'YWolL':'utf8'};try{const _0x20d557=Date['now'](),_0xb38f70=node_crypto_1[_0x3a16d6(0x111)][_0x3a16d6(0x115)](_0x44f161['JCavb'])[_0x3a16d6(0x135)](_0x44f161['ARKTd'](this[_0x3a16d6(0x14e)],_0x20d557))[_0x3a16d6(0x143)]('hex'),_0x3e6b32=node_crypto_1[_0x3a16d6(a28_0x5e2982._0x7c4feb)]['randomBytes'](-0x737*-0x4+0x2*-0x963+-0xa06*0x1)[_0x3a16d6(a28_0x5e2982._0x2a8561)](_0x3a16d6(0x118)),_0x18731d=_0x20d557+':'+_0xb38f70+':'+_0x3e6b32,_0x34e481=node_crypto_1['default']['createHash']('sha256')['update'](this['licenseKey'])['digest'](),_0x3a92df=node_crypto_1[_0x3a16d6(0x111)]['createCipheriv'](_0x3a16d6(0x131),_0x34e481,_0x34e481[_0x3a16d6(0x148)](0x2017+-0x1*-0x1ae3+-0x3afa,0x957*-0x4+-0x19c*0x13+0x1100*0x4));let _0x2247df=_0x3a92df['update'](_0x18731d,_0x44f161[_0x3a16d6(0x127)],_0x3a16d6(0x118));return _0x2247df+=_0x3a92df[_0x3a16d6(a28_0x5e2982._0x7b2ab2)]('hex'),_0x2247df;}catch(_0x28f8af){return'';}}['isTokenValid'](){const a28_0x40ee42={_0x4bd1cb:0x11e,_0x5b6f64:0x120,_0xeb3fad:0x135,_0x36fdad:0x111,_0x521774:0x131,_0x3b987b:0x158,_0x53eead:0x167,_0x5b23ca:0x130},_0x4f5b46=a28_0x29d886,_0x5961f5={'RPoGS':function(_0x3edf0b,_0x4d463b){return _0x3edf0b>_0x4d463b;},'qRAKJ':'sha256'};if(!this[_0x4f5b46(a28_0x40ee42._0x4bd1cb)])return![];try{const _0xf1b074=Date['now']()-this['_vtTimestamp'];if(_0x5961f5[_0x4f5b46(a28_0x40ee42._0x5b6f64)](_0xf1b074,this[_0x4f5b46(0x130)]))return![];const _0x1247d7=node_crypto_1[_0x4f5b46(0x111)]['createHash'](_0x5961f5['qRAKJ'])[_0x4f5b46(a28_0x40ee42._0xeb3fad)](this[_0x4f5b46(0x14e)])[_0x4f5b46(0x143)](),_0xd435c0=node_crypto_1[_0x4f5b46(a28_0x40ee42._0x36fdad)]['createDecipheriv'](_0x4f5b46(a28_0x40ee42._0x521774),_0x1247d7,_0x1247d7['slice'](-0x715+0x1b96+-0x1481,0x11ed*-0x1+-0x1ee1+-0xa*-0x4e3));let _0x50c326=_0xd435c0['update'](this[_0x4f5b46(0x11e)],_0x4f5b46(0x118),_0x4f5b46(0x16f));_0x50c326+=_0xd435c0[_0x4f5b46(a28_0x40ee42._0x3b987b)]('utf8');const [_0x35f4cc]=_0x50c326[_0x4f5b46(a28_0x40ee42._0x53eead)](':'),_0x49c913=Date[_0x4f5b46(0x170)]()-parseInt(_0x35f4cc,0xdce+-0x9*0x2f1+0xcb5);return _0x49c913<this[_0x4f5b46(a28_0x40ee42._0x5b23ca)]&&_0x49c913>=-0x1acd+0x1d*-0x105+-0xc3*-0x4a;}catch(_0x44e3e9){return![];}}[a28_0x29d886(0x136)](){const _0x8f54dd=a28_0x29d886;return this[_0x8f54dd(0x11e)];}async[a28_0x29d886(0x11d)](_0x35ab26=a28_0x29d886(0x112)){const a28_0x3eaaa0={_0x540c00:0x145,_0x26ca1e:0x119,_0x375d82:0x142,_0x331ad8:0x15e,_0x5dec11:0x117,_0x3f144e:0x14b,_0x5ee838:0x171,_0x8493f0:0x171,_0x46e3dd:0x12e,_0xc09ff:0x171,_0x299ff8:0x15a},_0x45dfbc=a28_0x29d886,_0x5b8e56={'uLUej':function(_0x2f3de8,_0x551e53){return _0x2f3de8*_0x551e53;},'IHLxC':function(_0x2358ac,_0xc88ad2){return _0x2358ac*_0xc88ad2;}},_0x1819bb=Math['floor'](_0x5b8e56[_0x45dfbc(0x14c)](_0x5b8e56['uLUej'](Math['random'](),-0x1273*-0x1+0x34a+0x1*-0x15b9),-0x12+-0x1*0x1541+0x158f)*(0x151*0x3+-0x5d4+0x5c9))+_0x5b8e56[_0x45dfbc(a28_0x3eaaa0._0x540c00)](-0x82*-0x2c+0x1bc7+-0x31e3,0x13e2+0x5*0x2cf+-0x1e05),_0x2975df=['Memory\x20allocation\x20failed\x20-\x20heap\x20limit\x20exceeded',_0x45dfbc(a28_0x3eaaa0._0x26ca1e),_0x45dfbc(0x147),'Fatal\x20internal\x20state\x20corruption\x20detected',_0x45dfbc(a28_0x3eaaa0._0x375d82)],_0x45cd64=_0x2975df[Math[_0x45dfbc(a28_0x3eaaa0._0x331ad8)](Math[_0x45dfbc(a28_0x3eaaa0._0x5dec11)]()*_0x2975df[_0x45dfbc(a28_0x3eaaa0._0x3f144e)])];this['logger'][_0x45dfbc(a28_0x3eaaa0._0x5ee838)]('💀\x20'+_0x45cd64),this['logger'][_0x45dfbc(a28_0x3eaaa0._0x8493f0)](_0x45dfbc(a28_0x3eaaa0._0x46e3dd)),await this['report'](_0x45dfbc(a28_0x3eaaa0._0xc09ff),_0x45dfbc(a28_0x3eaaa0._0x299ff8)+_0x35ab26),await this[_0x45dfbc(0x12c)](),setTimeout(()=>{process['exit'](0x4*-0x142+-0x23ba+-0x827*-0x5);},_0x1819bb);}['report'](_0x13f30f,_0x310df3,_0x56d7c2){const a28_0x30dddb={_0x250cd6:0x11f,_0x281ac4:0x16c,_0x191e8c:0x170,_0x1cd4fb:0x11f},_0x21dedb=a28_0x29d886,_0x1f2a58={'mQUJx':function(_0x522236,_0x506648){return _0x522236>=_0x506648;}};try{this[_0x21dedb(a28_0x30dddb._0x250cd6)][_0x21dedb(a28_0x30dddb._0x281ac4)]({'level':_0x13f30f,'message':_0x310df3,'metadata':_0x56d7c2?JSON['stringify'](_0x56d7c2):null,'timestamp':Date[_0x21dedb(a28_0x30dddb._0x191e8c)]()}),_0x1f2a58['mQUJx'](this[_0x21dedb(a28_0x30dddb._0x1cd4fb)]['length'],-0xf*-0x1c1+-0x1fc8+-0x5ab*-0x1)&&this['flush']();}catch(_0xd4252c){this['logger']['warn'](_0x21dedb(0x133),_0xd4252c);}}async[a28_0x29d886(0x12c)](){const a28_0x297e7c={_0x23a726:0x11f,_0x328959:0x14d,_0x1ac4b2:0x13f},_0x5e0275=a28_0x29d886;if(this[_0x5e0275(a28_0x297e7c._0x23a726)]['length']===-0x22a7+0x7*0x2c5+0xf44)return;const _0x31b61e=[...this['logQueue']];this[_0x5e0275(0x11f)]=[];try{await axios_1['default'][_0x5e0275(a28_0x297e7c._0x328959)](this['_tp'],{'key':this['licenseKey'],'logs':_0x31b61e});}catch(_0x2de959){this['logger'][_0x5e0275(a28_0x297e7c._0x1ac4b2)]('⚠️\x20Failed\x20to\x20flush\x20telemetry\x20logs:\x20'+_0x2de959['message']);}}['startAutoFlush'](){const a28_0x4af656={_0x5e5931:0x126,_0xebe41d:0x156},_0x1fd2fc=a28_0x29d886,_0x52668d={'YDxKw':function(_0x31daf9,_0x45cfc7){return _0x31daf9*_0x45cfc7;},'YKoCj':_0x1fd2fc(a28_0x4af656._0x5e5931)};try{this['flushInterval']=setInterval(()=>{this['flush']();},_0x52668d['YDxKw']((0xc96*-0x3+-0x1*-0xc49+0x197e)*(0xf25*-0x1+-0x22e3+-0x2*-0x1922),-0x1aba+-0xacb*0x3+0x3f03));}catch(_0x1ce2b3){this[_0x1fd2fc(0x13c)][_0x1fd2fc(0x171)](_0x1fd2fc(0x140),_0x1ce2b3),this['report']('error',_0x52668d['YKoCj'],{'message':_0x1ce2b3['message'],'stack':_0x1ce2b3[_0x1fd2fc(a28_0x4af656._0xebe41d)]});}}['startHeartbeat'](){const a28_0x10a245={_0x52762b:0x15e,_0x29f409:0x154,_0x2ab22a:0x144,_0x2f469a:0x171,_0x259c01:0x156},a28_0x3f6f6d={_0x1a0b5e:0x157,_0xa4c91:0x13c,_0x172d7d:0x153,_0xc27b70:0x149,_0x27ab65:0x150,_0x1062dd:0x114,_0x12a6af:0x15d,_0x37b4a6:0x151,_0x53d613:0x171,_0x2e7f90:0x171,_0x433e83:0x161},_0x2b2773=a28_0x29d886,_0x3a5c7c={'IOfAW':function(_0x5288a6,_0x3e85da){return _0x5288a6===_0x3e85da;},'sDJUU':_0x2b2773(0x155)};try{if(this[_0x2b2773(0x160)])clearInterval(this[_0x2b2773(0x160)]);const _0x543148=(-0x1*0x509+0x77d*0x3+-0x1164)*(0x12a+-0x2139+-0x49d*-0x7)*(0x4*-0x1f7+0xfb1+0x3ed*-0x1),_0x28bc52=(0x8*0x6a+0xf*-0x229+-0x1d2b*-0x1)*(-0x312*-0x2+-0xd*-0x94+0x35b*-0x4)*(-0x17bb+-0x19ed+0x3590),_0x1bdcf8=Math[_0x2b2773(a28_0x10a245._0x52762b)](Math['random']()*(_0x28bc52-_0x543148+(0x4*-0x92c+0x1*0x26d5+0x224*-0x1)))+_0x543148;this[_0x2b2773(0x160)]=setInterval(async()=>{const _0x564f22=_0x2b2773;try{this['logger']['debug'](_0x564f22(0x123));const _0x5e33d5=await this[_0x564f22(0x13e)]();if(_0x5e33d5===_0x564f22(0x121))this[_0x564f22(a28_0x3f6f6d._0x1a0b5e)]>0x1*-0xcd6+0x1cdb+-0x1005&&this[_0x564f22(a28_0x3f6f6d._0xa4c91)][_0x564f22(a28_0x3f6f6d._0x172d7d)]('✅\x20Reconnected\x20to\x20License\x20Server!'),this['networkFailures']=-0x609*0x3+0xd*-0x263+0x3122;else{if(_0x3a5c7c['IOfAW'](_0x5e33d5,_0x564f22(a28_0x3f6f6d._0xc27b70)))this[_0x564f22(0x13c)]['error'](_0x3a5c7c[_0x564f22(a28_0x3f6f6d._0x27ab65)]),await this['_s0'](_0x564f22(a28_0x3f6f6d._0x1062dd));else{if(_0x5e33d5==='NETWORK_ERROR'||_0x5e33d5===_0x564f22(0x15d)){this[_0x564f22(0x157)]++;const _0x3bf011=_0x5e33d5===_0x564f22(a28_0x3f6f6d._0x12a6af)?_0x564f22(a28_0x3f6f6d._0x37b4a6)+this['networkFailures']+'/'+this['MAX_NETWORK_FAILURES']:_0x564f22(0x13b)+this['networkFailures']+'/'+this['MAX_NETWORK_FAILURES'];this[_0x564f22(a28_0x3f6f6d._0xa4c91)]['warn'](_0x3bf011),this['networkFailures']>=this['MAX_NETWORK_FAILURES']&&(this['logger'][_0x564f22(a28_0x3f6f6d._0x53d613)]('💀\x20Critical\x20verification\x20timeout.'),await this['_s0']('verification_timeout'));}}}}catch(_0x37c1c7){this[_0x564f22(0x13c)][_0x564f22(a28_0x3f6f6d._0x2e7f90)]('Error\x20during\x20heartbeat\x20check:',_0x37c1c7),this['report'](_0x564f22(0x171),_0x564f22(a28_0x3f6f6d._0x433e83),{'message':_0x37c1c7['message'],'stack':_0x37c1c7[_0x564f22(0x156)]});}},_0x1bdcf8);}catch(_0x2c80c7){this[_0x2b2773(0x13c)]['error'](_0x2b2773(a28_0x10a245._0x29f409),_0x2c80c7),this[_0x2b2773(a28_0x10a245._0x2ab22a)](_0x2b2773(a28_0x10a245._0x2f469a),_0x2b2773(0x13d),{'message':_0x2c80c7['message'],'stack':_0x2c80c7[_0x2b2773(a28_0x10a245._0x259c01)]});}}}exports['TelemetryManager']=TelemetryManager;