kythia-core 0.12.5-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.
- package/dist/Kythia.d.ts +7 -6
- package/dist/Kythia.d.ts.map +1 -1
- package/dist/Kythia.js +1 -503
- package/dist/Kythia.js.map +1 -1
- package/dist/KythiaClient.d.ts.map +1 -1
- package/dist/KythiaClient.js +1 -76
- package/dist/KythiaClient.js.map +1 -1
- package/dist/cli/Command.js +1 -16
- package/dist/cli/commands/AboutCommand.d.ts +7 -0
- package/dist/cli/commands/AboutCommand.d.ts.map +1 -0
- package/dist/cli/commands/AboutCommand.js +1 -0
- package/dist/cli/commands/AboutCommand.js.map +1 -0
- package/dist/cli/commands/CacheClearCommand.js +1 -97
- package/dist/cli/commands/DIGenerateCommand.js +1 -168
- package/dist/cli/commands/LangCheckCommand.js +1 -478
- package/dist/cli/commands/LangCheckCommand.js.map +1 -1
- package/dist/cli/commands/LangSyncCommand.js +1 -253
- package/dist/cli/commands/LangTranslateCommand.js +1 -224
- package/dist/cli/commands/MakeMigrationCommand.js +1 -55
- package/dist/cli/commands/MakeModelCommand.js +1 -56
- package/dist/cli/commands/MigrateCommand.js +1 -190
- package/dist/cli/commands/NamespaceCommand.js +1 -92
- package/dist/cli/commands/StructureCommand.js +1 -51
- package/dist/cli/commands/UpversionCommand.js +1 -68
- package/dist/cli/index.js +1 -43
- package/dist/cli/utils/db.js +1 -93
- package/dist/database/KythiaMigrator.js +1 -94
- package/dist/database/KythiaModel.d.ts +4 -3
- package/dist/database/KythiaModel.d.ts.map +1 -1
- package/dist/database/KythiaModel.js +1 -1128
- package/dist/database/KythiaModel.js.map +1 -1
- package/dist/database/KythiaSequelize.js +1 -99
- package/dist/database/KythiaStorage.js +1 -80
- package/dist/database/ModelLoader.js +1 -54
- package/dist/index.js +1 -36
- package/dist/lang/lang/en.json +85 -0
- package/dist/managers/AddonManager.d.ts +2 -2
- package/dist/managers/AddonManager.d.ts.map +1 -1
- package/dist/managers/AddonManager.js +1 -1097
- package/dist/managers/AddonManager.js.map +1 -1
- package/dist/managers/EventManager.js +1 -106
- package/dist/managers/InteractionManager.d.ts +8 -6
- package/dist/managers/InteractionManager.d.ts.map +1 -1
- package/dist/managers/InteractionManager.js +1 -470
- package/dist/managers/InteractionManager.js.map +1 -1
- package/dist/managers/MiddlewareManager.d.ts +4 -3
- package/dist/managers/MiddlewareManager.d.ts.map +1 -1
- package/dist/managers/MiddlewareManager.js +1 -106
- package/dist/managers/MiddlewareManager.js.map +1 -1
- package/dist/managers/ShutdownManager.js +1 -179
- package/dist/managers/TelemetryManager.d.ts +7 -0
- package/dist/managers/TelemetryManager.d.ts.map +1 -1
- package/dist/managers/TelemetryManager.js +1 -201
- package/dist/managers/TelemetryManager.js.map +1 -1
- package/dist/managers/TranslatorManager.d.ts.map +1 -1
- package/dist/managers/TranslatorManager.js +1 -145
- package/dist/managers/TranslatorManager.js.map +1 -1
- package/dist/middlewares/botPermissions.js +1 -28
- package/dist/middlewares/cooldown.js +1 -42
- package/dist/middlewares/isInMainGuild.js +1 -52
- package/dist/middlewares/ownerOnly.js +1 -24
- package/dist/middlewares/userPermissions.js +1 -28
- package/dist/structures/BaseCommand.js +1 -42
- package/dist/types/AddonManager.d.ts +22 -9
- package/dist/types/AddonManager.d.ts.map +1 -1
- package/dist/types/AddonManager.js +1 -3
- package/dist/types/DiscordHelpers.js +1 -3
- package/dist/types/EventManager.d.ts +1 -1
- package/dist/types/EventManager.d.ts.map +1 -1
- package/dist/types/EventManager.js +1 -3
- package/dist/types/InteractionManager.d.ts +8 -6
- package/dist/types/InteractionManager.d.ts.map +1 -1
- package/dist/types/InteractionManager.js +1 -3
- package/dist/types/KythiaClient.d.ts +2 -1
- package/dist/types/KythiaClient.d.ts.map +1 -1
- package/dist/types/KythiaClient.js +1 -3
- package/dist/types/KythiaConfig.d.ts +1 -1
- package/dist/types/KythiaConfig.d.ts.map +1 -1
- package/dist/types/KythiaConfig.js +1 -3
- package/dist/types/KythiaContainer.d.ts +3 -2
- package/dist/types/KythiaContainer.d.ts.map +1 -1
- package/dist/types/KythiaContainer.js +1 -3
- package/dist/types/KythiaLogger.d.ts +1 -1
- package/dist/types/KythiaLogger.d.ts.map +1 -1
- package/dist/types/KythiaLogger.js +1 -3
- package/dist/types/KythiaMigrator.d.ts +2 -1
- package/dist/types/KythiaMigrator.d.ts.map +1 -1
- package/dist/types/KythiaMigrator.js +1 -3
- package/dist/types/KythiaModel.d.ts +6 -5
- package/dist/types/KythiaModel.d.ts.map +1 -1
- package/dist/types/KythiaModel.js +1 -3
- package/dist/types/KythiaOptions.d.ts +9 -6
- package/dist/types/KythiaOptions.d.ts.map +1 -1
- package/dist/types/KythiaOptions.js +1 -3
- package/dist/types/KythiaSequelize.d.ts +2 -1
- package/dist/types/KythiaSequelize.d.ts.map +1 -1
- package/dist/types/KythiaSequelize.js +1 -3
- package/dist/types/KythiaStorage.js +1 -3
- package/dist/types/MiddlewareManager.js +1 -3
- package/dist/types/ModelLoader.d.ts +2 -1
- package/dist/types/ModelLoader.d.ts.map +1 -1
- package/dist/types/ModelLoader.js +1 -3
- package/dist/types/ShutdownManager.js +1 -3
- package/dist/types/TranslatorManager.js +1 -3
- package/dist/types/error.d.ts +7 -0
- package/dist/types/error.d.ts.map +1 -0
- package/dist/types/error.js +1 -0
- package/dist/types/error.js.map +1 -0
- package/dist/types/index.js +1 -29
- package/dist/utils/InteractionFactory.d.ts.map +1 -1
- package/dist/utils/InteractionFactory.js +1 -334
- package/dist/utils/InteractionFactory.js.map +1 -1
- package/dist/utils/color.js +1 -156
- package/dist/utils/discord.js +1 -19
- package/dist/utils/formatter.js +1 -89
- package/dist/utils/index.js +1 -56
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +1 -202
- package/dist/utils/logger.js.map +1 -1
- package/package.json +5 -2
package/dist/cli/utils/db.js
CHANGED
|
@@ -1,93 +1 @@
|
|
|
1
|
-
|
|
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.storage = exports.umzug = exports.sequelize = void 0;
|
|
7
|
-
const sequelize_1 = require("sequelize");
|
|
8
|
-
const dotenvx_1 = require("@dotenvx/dotenvx");
|
|
9
|
-
const umzug_1 = require("umzug");
|
|
10
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
12
|
-
(0, dotenvx_1.config)({
|
|
13
|
-
quiet: true,
|
|
14
|
-
});
|
|
15
|
-
const pc = require('picocolors');
|
|
16
|
-
const KythiaSequelize_1 = __importDefault(require("../../database/KythiaSequelize"));
|
|
17
|
-
const KythiaStorage_1 = __importDefault(require("../../database/KythiaStorage"));
|
|
18
|
-
const configPath = node_path_1.default.resolve(process.cwd(), 'kythia.config.js');
|
|
19
|
-
if (!node_fs_1.default.existsSync(configPath)) {
|
|
20
|
-
console.error('❌ kythia.config.js not found in root directory!');
|
|
21
|
-
process.exit(1);
|
|
22
|
-
}
|
|
23
|
-
const kythiaConfig = require(configPath);
|
|
24
|
-
const sequelize = (0, KythiaSequelize_1.default)(kythiaConfig);
|
|
25
|
-
exports.sequelize = sequelize;
|
|
26
|
-
function getMigrationFiles() {
|
|
27
|
-
const rootDir = process.cwd();
|
|
28
|
-
const addonsDir = node_path_1.default.join(rootDir, 'addons');
|
|
29
|
-
if (!node_fs_1.default.existsSync(addonsDir))
|
|
30
|
-
return [];
|
|
31
|
-
const migrationFiles = [];
|
|
32
|
-
const addonFolders = node_fs_1.default
|
|
33
|
-
.readdirSync(addonsDir)
|
|
34
|
-
.filter((f) => node_fs_1.default.statSync(node_path_1.default.join(addonsDir, f)).isDirectory());
|
|
35
|
-
for (const addon of addonFolders) {
|
|
36
|
-
const migrationDir = node_path_1.default.join(addonsDir, addon, 'database', 'migrations');
|
|
37
|
-
if (node_fs_1.default.existsSync(migrationDir)) {
|
|
38
|
-
const files = node_fs_1.default
|
|
39
|
-
.readdirSync(migrationDir)
|
|
40
|
-
.filter((f) => f.endsWith('.js') || f.endsWith('.ts'))
|
|
41
|
-
.map((f) => ({
|
|
42
|
-
name: f,
|
|
43
|
-
path: node_path_1.default.join(migrationDir, f),
|
|
44
|
-
}));
|
|
45
|
-
migrationFiles.push(...files);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return migrationFiles.sort((a, b) => a.name.localeCompare(b.name));
|
|
49
|
-
}
|
|
50
|
-
const storage = new KythiaStorage_1.default({ sequelize });
|
|
51
|
-
exports.storage = storage;
|
|
52
|
-
const umzugLogger = {
|
|
53
|
-
info: (event) => {
|
|
54
|
-
if (typeof event === 'object') {
|
|
55
|
-
if (event.event === 'migrated') {
|
|
56
|
-
console.log(pc.green(`✅ Migrated: ${event.name} `) +
|
|
57
|
-
pc.gray(`(${event.durationSeconds}s)`));
|
|
58
|
-
}
|
|
59
|
-
else if (event.event === 'reverting') {
|
|
60
|
-
console.log(pc.yellow(`↩️ Reverting: ${event.name}`));
|
|
61
|
-
}
|
|
62
|
-
else if (event.event === 'reverted') {
|
|
63
|
-
console.log(pc.red(`❌ Reverted: ${event.name} `) +
|
|
64
|
-
pc.gray(`(${event.durationSeconds}s)`));
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
console.log(pc.dim(event));
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
warn: (msg) => console.warn(pc.yellow(`⚠️ ${typeof msg === 'object' ? JSON.stringify(msg) : msg}`)),
|
|
72
|
-
error: (msg) => console.error(pc.red(`🔥 ${typeof msg === 'object' ? JSON.stringify(msg) : msg}`)),
|
|
73
|
-
debug: (msg) => console.debug(pc.gray(`🐛 ${typeof msg === 'object' ? JSON.stringify(msg) : msg}`)),
|
|
74
|
-
};
|
|
75
|
-
const umzug = new umzug_1.Umzug({
|
|
76
|
-
migrations: getMigrationFiles().map((m) => ({
|
|
77
|
-
name: m.name,
|
|
78
|
-
path: m.path,
|
|
79
|
-
up: async ({ context }) => {
|
|
80
|
-
const migration = require(m.path);
|
|
81
|
-
return migration.up(context, sequelize_1.DataTypes);
|
|
82
|
-
},
|
|
83
|
-
down: async ({ context }) => {
|
|
84
|
-
const migration = require(m.path);
|
|
85
|
-
return migration.down(context, sequelize_1.DataTypes);
|
|
86
|
-
},
|
|
87
|
-
})),
|
|
88
|
-
context: sequelize.getQueryInterface(),
|
|
89
|
-
storage: storage,
|
|
90
|
-
logger: umzugLogger,
|
|
91
|
-
});
|
|
92
|
-
exports.umzug = umzug;
|
|
93
|
-
//# sourceMappingURL=db.js.map
|
|
1
|
+
'use strict';const a16_0x48a9f9=a16_0x5c17;function a16_0x1b29(){const _0x3d5320=['CgLJB2nVBg9YCW','z3jHEq','x19LC01VzhvSzq','zg93BG','BMfTzq','C29YDa','zMLSDgvY','zw5KC1DPDgG','y29UzMLN','Bg9N','zxHPDa','CMvK','A3L0AgLHlMnVBMzPzY5QCW','otG1nJmYvuv5uxzh','zgvMyxvSDa','odi1mdCWnvf1shrVtW','mtaWmJyWnenYz3LQBG','x19PBxbVCNrezwzHDwX0','mta3nJuZmKvUEM1UuW','BwLNCMf0zwq','BwfW','mJf3tNbdD0K','BM9KztPMCW','zxjYB3i','4PQG77Ipia','C3rVCMfNzq','C3rYAw5NAwz5','8j+uPsa','Dw16DwC','zxzLBNq','Cgf0Aa','4P2migT5DgHPys5JB25MAwCUANmGBM90igzVDw5KigLUihjVB3qGzgLYzwn0B3j5iq','C2vXDwvSAxPL','AM9PBG','mti2mda4mtLyEKXOCfy','otm1nJq2mhnHqLnqBG','CMvZB2X2zq','EwvSBg93','C3rHDfn5BMm','D2fYBG','y3DK','zgLT','wxjjD3m','4PYfie1Pz3jHDgvKoIaG','mZzwEwvQv1O','B2jQzwn0','mti4odm0nfDuy0fTCG','ChvZAa','ywrKB25Z','CMvHzgrPCLn5BMm','zhvYyxrPB25tzwnVBMrZ','BM9KztPWyxrO','BwLNCMf0Aw9UCW','AxneAxjLy3rVCNK'];a16_0x1b29=function(){return _0x3d5320;};return a16_0x1b29();}(function(_0xd913fb,_0x2015df){const a16_0x2614bb={_0x40176d:0x18e,_0x56d6d6:0x1a1,_0x63308:0x1ad,_0x1088bd:0x1ab},_0x29d0bd=a16_0x5c17,_0x84caa7=_0xd913fb();while(!![]){try{const _0x86b058=-parseInt(_0x29d0bd(0x191))/(-0x8cb*-0x4+-0x12*0x16f+-0x95d)+-parseInt(_0x29d0bd(0x18c))/(-0x1882+0x1b33+0x1*-0x2af)+parseInt(_0x29d0bd(0x194))/(0x7*-0x2a5+-0x1a7e*-0x1+0x1*-0x7f8)*(parseInt(_0x29d0bd(0x18f))/(0x1ce0+0x22f*0x1+-0x1*0x1f0b))+parseInt(_0x29d0bd(a16_0x2614bb._0x40176d))/(-0x2cb+-0x1e*-0xc7+0x15*-0xfa)+parseInt(_0x29d0bd(0x1a2))/(0xa97+0xbb*0x2b+-0x2*0x14fd)+-parseInt(_0x29d0bd(a16_0x2614bb._0x56d6d6))/(0xc0d+0xda1+-0x19a7*0x1)+parseInt(_0x29d0bd(a16_0x2614bb._0x63308))/(-0x423*0x2+-0x1be+0x2*0x506)*(-parseInt(_0x29d0bd(a16_0x2614bb._0x1088bd))/(-0x1*0xa5d+-0x23a9+-0x38b*-0xd));if(_0x86b058===_0x2015df)break;else _0x84caa7['push'](_0x84caa7['shift']());}catch(_0x4ab36c){_0x84caa7['push'](_0x84caa7['shift']());}}}(a16_0x1b29,-0xcfabc+0x13a757+0x1147*0x74));var __importDefault=this&&this[a16_0x48a9f9(0x190)]||function(_0x16c577){const _0x4c678e=a16_0x48a9f9;return _0x16c577&&_0x16c577[_0x4c678e(0x1b7)]?_0x16c577:{'default':_0x16c577};};Object['defineProperty'](exports,a16_0x48a9f9(0x1b7),{'value':!![]}),exports['storage']=exports[a16_0x48a9f9(0x19b)]=exports['sequelize']=void(0x16b4+0xa*-0x2a1+-0x9*-0x66);const sequelize_1=require(a16_0x48a9f9(0x19f)),dotenvx_1=require('@dotenvx/dotenvx'),umzug_1=require(a16_0x48a9f9(0x19b)),node_path_1=__importDefault(require(a16_0x48a9f9(0x1b2))),node_fs_1=__importDefault(require(a16_0x48a9f9(0x195)));(0xdee+0x1867+0x3*-0xcc7,dotenvx_1[a16_0x48a9f9(0x187)])({'quiet':!![]});const pc=require(a16_0x48a9f9(0x1b5)),KythiaSequelize_1=__importDefault(require('../../database/KythiaSequelize')),KythiaStorage_1=__importDefault(require('../../database/KythiaStorage')),configPath=node_path_1['default'][a16_0x48a9f9(0x1a3)](process['cwd'](),a16_0x48a9f9(0x18b));!node_fs_1['default']['existsSync'](configPath)&&(console[a16_0x48a9f9(0x196)](a16_0x48a9f9(0x19e)),process[a16_0x48a9f9(0x189)](0x9f0+-0x649+-0x1*0x3a6));const kythiaConfig=require(configPath),sequelize=(-0xfb*0xc+-0x5b*0x62+0x2e9a,KythiaSequelize_1['default'])(kythiaConfig);exports[a16_0x48a9f9(0x19f)]=sequelize;function a16_0x5c17(_0x12e6cd,_0x2a7d07){_0x12e6cd=_0x12e6cd-(0x723+0xfcb*0x2+-0x1*0x2535);const _0xe447c3=a16_0x1b29();let _0x41610c=_0xe447c3[_0x12e6cd];if(a16_0x5c17['lgJGDA']===undefined){var _0x1e0216=function(_0x5a3f12){const _0xfe5db='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x270a10='',_0x376a32='';for(let _0x10c517=0x1b*-0x97+0x2255+0x24d*-0x8,_0x2bb7f9,_0x5c5792,_0x20aaa3=-0x3b*-0x3b+0x2*0x327+-0x13e7;_0x5c5792=_0x5a3f12['charAt'](_0x20aaa3++);~_0x5c5792&&(_0x2bb7f9=_0x10c517%(0x25d0+0x131b+-0x38e7*0x1)?_0x2bb7f9*(0x2612+0x86b*-0x2+0x22*-0x9e)+_0x5c5792:_0x5c5792,_0x10c517++%(-0xc1*-0x18+0x2*0x170+0x1*-0x14f4))?_0x270a10+=String['fromCharCode'](-0x1f9c+0x92e*0x1+0x1*0x176d&_0x2bb7f9>>(-(-0x2388*-0x1+0x1c3f+0x3fc5*-0x1)*_0x10c517&-0xa0+0xb38+-0xa92)):0x22*-0x80+-0x1e00+-0x4*-0xbc0){_0x5c5792=_0xfe5db['indexOf'](_0x5c5792);}for(let _0x3e8226=-0xf92+0x19c1+-0xa2f,_0x287632=_0x270a10['length'];_0x3e8226<_0x287632;_0x3e8226++){_0x376a32+='%'+('00'+_0x270a10['charCodeAt'](_0x3e8226)['toString'](-0x3*0x546+0xf67+0x7b))['slice'](-(0x1*0xd95+0x2534+-0x32c7));}return decodeURIComponent(_0x376a32);};a16_0x5c17['jHFZAI']=_0x1e0216,a16_0x5c17['OEkvqk']={},a16_0x5c17['lgJGDA']=!![];}const _0x59646d=_0xe447c3[-0x1*-0x24ba+0x1*-0x611+-0x1ea9],_0x2a206b=_0x12e6cd+_0x59646d,_0x122f27=a16_0x5c17['OEkvqk'][_0x2a206b];return!_0x122f27?(_0x41610c=a16_0x5c17['jHFZAI'](_0x41610c),a16_0x5c17['OEkvqk'][_0x2a206b]=_0x41610c):_0x41610c=_0x122f27,_0x41610c;}function getMigrationFiles(){const a16_0x2e87ae={_0x364e40:0x1a7,_0x2ddca5:0x1a0,_0x3c5142:0x1b3,_0x448acc:0x18d,_0x2ceeee:0x1b0,_0x4c9f5c:0x193},_0x4b1d66=a16_0x48a9f9,_0x45768c=process[_0x4b1d66(a16_0x2e87ae._0x364e40)](),_0x1dbe69=node_path_1['default'][_0x4b1d66(a16_0x2e87ae._0x2ddca5)](_0x45768c,_0x4b1d66(0x1af));if(!node_fs_1['default']['existsSync'](_0x1dbe69))return[];const _0x56a5a9=[],_0x5e8edc=node_fs_1['default'][_0x4b1d66(0x1b0)](_0x1dbe69)[_0x4b1d66(0x185)](_0x116fa8=>node_fs_1['default'][_0x4b1d66(0x1a5)](node_path_1['default'][_0x4b1d66(0x1a0)](_0x1dbe69,_0x116fa8))[_0x4b1d66(0x1b4)]());for(const _0xbdd3c3 of _0x5e8edc){const _0x36f855=node_path_1[_0x4b1d66(0x18d)]['join'](_0x1dbe69,_0xbdd3c3,'database',_0x4b1d66(a16_0x2e87ae._0x3c5142));if(node_fs_1[_0x4b1d66(0x18d)]['existsSync'](_0x36f855)){const _0x3c053c=node_fs_1[_0x4b1d66(a16_0x2e87ae._0x448acc)][_0x4b1d66(a16_0x2e87ae._0x2ceeee)](_0x36f855)[_0x4b1d66(0x185)](_0x5860a9=>_0x5860a9['endsWith']('.js')||_0x5860a9[_0x4b1d66(0x186)]('.ts'))[_0x4b1d66(a16_0x2e87ae._0x4c9f5c)](_0x81d356=>({'name':_0x81d356,'path':node_path_1['default'][_0x4b1d66(0x1a0)](_0x36f855,_0x81d356)}));_0x56a5a9[_0x4b1d66(0x1ae)](..._0x3c053c);}}return _0x56a5a9[_0x4b1d66(0x184)]((_0x352155,_0xfe9cd9)=>_0x352155[_0x4b1d66(0x1b9)]['localeCompare'](_0xfe9cd9['name']));}const storage=new KythiaStorage_1['default']({'sequelize':sequelize});exports[a16_0x48a9f9(0x198)]=storage;const umzugLogger={'info':_0x2285ce=>{const a16_0x932b94={_0x45c7d2:0x1ac,_0x115459:0x1aa,_0x1245f1:0x19c,_0x82431b:0x188,_0x432869:0x1b1,_0x2b9af2:0x1a8},_0x43cd8d=a16_0x48a9f9,_0x3782d5={'jogQK':function(_0x1ce3d7,_0x3d201f){return _0x1ce3d7===_0x3d201f;},'wpRsd':_0x43cd8d(0x192)};if(typeof _0x2285ce===_0x43cd8d(a16_0x932b94._0x45c7d2)){if(_0x3782d5['jogQK'](_0x2285ce['event'],_0x3782d5['wpRsd']))console['log'](pc['green'](_0x43cd8d(a16_0x932b94._0x115459)+_0x2285ce['name']+'\x20')+pc['gray']('('+_0x2285ce['durationSeconds']+'s)'));else{if(_0x2285ce[_0x43cd8d(a16_0x932b94._0x1245f1)]==='reverting')console[_0x43cd8d(0x188)](pc[_0x43cd8d(0x1a4)]('↩️\x20Reverting:\x20'+_0x2285ce[_0x43cd8d(0x1b9)]));else _0x2285ce[_0x43cd8d(0x19c)]==='reverted'&&console[_0x43cd8d(a16_0x932b94._0x82431b)](pc['red']('❌\x20Reverted:\x20\x20'+_0x2285ce[_0x43cd8d(0x1b9)]+'\x20')+pc[_0x43cd8d(0x1b6)]('('+_0x2285ce[_0x43cd8d(a16_0x932b94._0x432869)]+'s)'));}}else console['log'](pc[_0x43cd8d(a16_0x932b94._0x2b9af2)](_0x2285ce));},'warn':_0x3b7810=>console[a16_0x48a9f9(0x1a6)](pc['yellow'](a16_0x48a9f9(0x197)+(typeof _0x3b7810===a16_0x48a9f9(0x1ac)?JSON['stringify'](_0x3b7810):_0x3b7810))),'error':_0x12b382=>console[a16_0x48a9f9(0x196)](pc[a16_0x48a9f9(0x18a)](a16_0x48a9f9(0x19a)+(typeof _0x12b382===a16_0x48a9f9(0x1ac)?JSON['stringify'](_0x12b382):_0x12b382))),'debug':_0x43af3d=>console['debug'](pc[a16_0x48a9f9(0x1b6)]('🐛\x20'+(typeof _0x43af3d==='object'?JSON[a16_0x48a9f9(0x199)](_0x43af3d):_0x43af3d)))},umzug=new umzug_1['Umzug']({'migrations':getMigrationFiles()['map'](_0x57f9e4=>({'name':_0x57f9e4['name'],'path':_0x57f9e4[a16_0x48a9f9(0x19d)],'up':async({context:_0x1bcad3})=>{const _0x3a7998=a16_0x48a9f9,_0x33442c=require(_0x57f9e4[_0x3a7998(0x19d)]);return _0x33442c['up'](_0x1bcad3,sequelize_1['DataTypes']);},'down':async({context:_0x1f5d77})=>{const _0x3827a2=a16_0x48a9f9,_0x5b693d={'YrIws':function(_0x3e9121,_0x265461){return _0x3e9121(_0x265461);}},_0x26e2ae=_0x5b693d[_0x3827a2(0x1a9)](require,_0x57f9e4['path']);return _0x26e2ae[_0x3827a2(0x1b8)](_0x1f5d77,sequelize_1['DataTypes']);}})),'context':sequelize['getQueryInterface'](),'storage':storage,'logger':umzugLogger});exports[a16_0x48a9f9(0x19b)]=umzug;
|
|
@@ -1,94 +1 @@
|
|
|
1
|
-
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
const KythiaStorage = require("./KythiaStorage");
|
|
6
|
-
const sequelize_1 = require("sequelize");
|
|
7
|
-
const umzug_1 = require("umzug");
|
|
8
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
|
-
function getMigrationFiles(rootDir) {
|
|
11
|
-
const addonsDir = node_path_1.default.join(rootDir, 'addons');
|
|
12
|
-
if (!node_fs_1.default.existsSync(addonsDir))
|
|
13
|
-
return [];
|
|
14
|
-
const migrationFiles = [];
|
|
15
|
-
const addonFolders = node_fs_1.default
|
|
16
|
-
.readdirSync(addonsDir)
|
|
17
|
-
.filter((f) => node_fs_1.default.statSync(node_path_1.default.join(addonsDir, f)).isDirectory());
|
|
18
|
-
for (const addon of addonFolders) {
|
|
19
|
-
const migrationDir = node_path_1.default.join(addonsDir, addon, 'database', 'migrations');
|
|
20
|
-
if (node_fs_1.default.existsSync(migrationDir)) {
|
|
21
|
-
const files = node_fs_1.default
|
|
22
|
-
.readdirSync(migrationDir)
|
|
23
|
-
.filter((f) => f.endsWith('.js'))
|
|
24
|
-
.map((f) => ({
|
|
25
|
-
name: f,
|
|
26
|
-
path: node_path_1.default.join(migrationDir, f),
|
|
27
|
-
folder: migrationDir,
|
|
28
|
-
}));
|
|
29
|
-
migrationFiles.push(...files);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return migrationFiles.sort((a, b) => a.name.localeCompare(b.name));
|
|
33
|
-
}
|
|
34
|
-
const KythiaMigrator = async ({ sequelize, container, logger, }) => {
|
|
35
|
-
const rootDir = container.appRoot;
|
|
36
|
-
const migrations = getMigrationFiles(rootDir);
|
|
37
|
-
if (migrations.length === 0) {
|
|
38
|
-
logger.info('📭 No migrations found in addons.');
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
const umzugLogger = {
|
|
42
|
-
info: (event) => {
|
|
43
|
-
if (typeof event === 'object') {
|
|
44
|
-
if (event.event === 'migrating') {
|
|
45
|
-
}
|
|
46
|
-
else if (event.event === 'migrated') {
|
|
47
|
-
logger.info(`✅ Migrated: ${event.name}`);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
logger.info(event);
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
warn: (msg) => logger.warn(msg),
|
|
55
|
-
error: (msg) => logger.error(msg),
|
|
56
|
-
debug: (msg) => logger.debug(msg),
|
|
57
|
-
};
|
|
58
|
-
const umzug = new umzug_1.Umzug({
|
|
59
|
-
migrations: migrations.map((m) => ({
|
|
60
|
-
name: m.name,
|
|
61
|
-
path: m.path,
|
|
62
|
-
up: async ({ context }) => {
|
|
63
|
-
const migration = require(m.path);
|
|
64
|
-
return migration.up(context, sequelize_1.DataTypes);
|
|
65
|
-
},
|
|
66
|
-
down: async ({ context }) => {
|
|
67
|
-
const migration = require(m.path);
|
|
68
|
-
return migration.down(context, sequelize_1.DataTypes);
|
|
69
|
-
},
|
|
70
|
-
})),
|
|
71
|
-
context: sequelize.getQueryInterface(),
|
|
72
|
-
storage: new KythiaStorage({ sequelize }),
|
|
73
|
-
logger: umzugLogger,
|
|
74
|
-
});
|
|
75
|
-
logger.info(`🚜 Checking migrations for ${migrations.length} files...`);
|
|
76
|
-
try {
|
|
77
|
-
const pending = await umzug.pending();
|
|
78
|
-
if (pending.length > 0) {
|
|
79
|
-
const executed = await umzug.up();
|
|
80
|
-
if (executed.length > 0) {
|
|
81
|
-
logger.info(`✨ Successfully applied ${executed.length} migrations.`);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
logger.info('✨ Database is already up to date.');
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
catch (error) {
|
|
89
|
-
logger.error('🔥 Migration Failed:', error);
|
|
90
|
-
process.exit(1);
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
module.exports = KythiaMigrator;
|
|
94
|
-
//# sourceMappingURL=KythiaMigrator.js.map
|
|
1
|
+
'use strict';function a17_0x4e2e(_0x53676a,_0x28d20c){_0x53676a=_0x53676a-(0xb11*-0x1+-0x167f+-0x15*-0x1a0);const _0x5d9e3b=a17_0x3137();let _0x24a710=_0x5d9e3b[_0x53676a];if(a17_0x4e2e['AmElHt']===undefined){var _0x2ab135=function(_0x357dfd){const _0x35d810='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2a199c='',_0x444bcd='';for(let _0x53fbff=0x1388+-0xb8b+-0x7fd,_0x4db4c2,_0x4a7c83,_0x3ccd5d=-0x1*0x16fa+-0x1ff1+0x1*0x36eb;_0x4a7c83=_0x357dfd['charAt'](_0x3ccd5d++);~_0x4a7c83&&(_0x4db4c2=_0x53fbff%(-0x75b+0x3*-0x757+0x1d64)?_0x4db4c2*(0x11*0x157+-0x25cb+0x3d1*0x4)+_0x4a7c83:_0x4a7c83,_0x53fbff++%(0xe9b+0x13*0xc5+-0x1d36))?_0x2a199c+=String['fromCharCode'](-0x1*0x17cf+0x2*-0x22c+0x1d26&_0x4db4c2>>(-(-0x50f+0x2459*-0x1+-0x2*-0x14b5)*_0x53fbff&-0x38a+-0xfb0+0x1340)):-0x80d+0x25ac+0x1*-0x1d9f){_0x4a7c83=_0x35d810['indexOf'](_0x4a7c83);}for(let _0x155235=-0x1d5d*0x1+-0x10*-0x93+0x142d*0x1,_0x484b2a=_0x2a199c['length'];_0x155235<_0x484b2a;_0x155235++){_0x444bcd+='%'+('00'+_0x2a199c['charCodeAt'](_0x155235)['toString'](-0x73a+-0x1718+0x2*0xf31))['slice'](-(0x4*0xb+0x587*0x1+-0x5b1));}return decodeURIComponent(_0x444bcd);};a17_0x4e2e['DdwRkA']=_0x2ab135,a17_0x4e2e['wOPbYO']={},a17_0x4e2e['AmElHt']=!![];}const _0x1dd7cd=_0x5d9e3b[0x47c+0x1b89+-0x2005],_0x58d811=_0x53676a+_0x1dd7cd,_0x54c13c=a17_0x4e2e['wOPbYO'][_0x58d811];return!_0x54c13c?(_0x24a710=a17_0x4e2e['DdwRkA'](_0x24a710),a17_0x4e2e['wOPbYO'][_0x58d811]=_0x24a710):_0x24a710=_0x54c13c,_0x24a710;}const a17_0x1bae01=a17_0x4e2e;(function(_0x287163,_0x2cc607){const a17_0x22bec2={_0x25b12b:0x9a,_0x2e6439:0xb0,_0x3256c3:0x9f},_0x255352=a17_0x4e2e,_0x93cabf=_0x287163();while(!![]){try{const _0x2a2973=-parseInt(_0x255352(0xb1))/(-0x4a*0x25+0x2137+0x4*-0x5a1)+-parseInt(_0x255352(0xb6))/(0x13e6+0x82f+-0x1c13)*(parseInt(_0x255352(a17_0x22bec2._0x25b12b))/(-0x1e82+0xa2f+0x1456))+parseInt(_0x255352(0xaa))/(0x1*-0x16c3+-0x57e+0x1c45)*(parseInt(_0x255352(0x90))/(-0x1*0x1c20+-0x158e+0x31b3))+parseInt(_0x255352(0xb5))/(0xe*0x18d+0xe*-0xb6+-0xbbc)+parseInt(_0x255352(a17_0x22bec2._0x2e6439))/(0x2123+-0x24d7+-0x1*-0x3bb)*(parseInt(_0x255352(0xa6))/(-0x12*0x1eb+-0x1d*-0x2b+-0x11*-0x1bf))+parseInt(_0x255352(0xba))/(0x1*0xbcf+0x21d*-0xb+0xb79)*(parseInt(_0x255352(0xaf))/(-0x6be*-0x3+-0x587+-0x8b*0x1b))+parseInt(_0x255352(a17_0x22bec2._0x3256c3))/(-0x1*0xc0b+0x1259+-0x643*0x1);if(_0x2a2973===_0x2cc607)break;else _0x93cabf['push'](_0x93cabf['shift']());}catch(_0x29eea5){_0x93cabf['push'](_0x93cabf['shift']());}}}(a17_0x3137,-0x26303+0xa3b59*0x1+-0x22533));function a17_0x3137(){const _0x2a0da7=['BwLNCMf0zwq','BM9KztPWyxrO','mtyZmde0m1nvyLrcsq','mJK1mdm3nwvrtML3zG','vw16DwC','CMvHzgrPCLn5BMm','8j+uPsbnAwDYyxrPB24GrMfPBgvKoG','tw1hC1O','lI9lExrOAwftDg9YywDL','zxHPC3rZu3LUyW','DK5Wq2m','x19PBxbVCNrezwzHDwX0','x19LC01VzhvSzq','mtqZnJK3ouTmswP6qW','C3rHDfn5BMm','4PYfie1Pz3jHDgvKoIa','CgvUzgLUzW','zgvIDwC','ndu2nJu1mw1tu0zvvq','BwfW','zgvMyxvSDa','AM9PBG','Bg9JywXLq29TCgfYzq','C2vXDwvSAxPL','8j+ANcbdAgvJA2LUzYbTAwDYyxrPB25ZigzVCIa','ndC0ndbuBwDrtLe','zgf0ywjHC2u','BMfTzq','B2jQzwn0','nfziqvbUua','BwLNCMf0Aw9UCW','AxneAxjLy3rVCNK','zMLSDgvY','ywrKB25Z','mtbHCwfLC0i','mtyXCu1hA3ri','ntu1nJmYwezUBNPW','zxHWB3j0CW','Aw5MBW','BgvUz3rO','nteYntG2zfPJqMfm','mNrSBxztDa','Cgf0Aa'];a17_0x3137=function(){return _0x2a0da7;};return a17_0x3137();}var __importDefault=this&&this[a17_0x1bae01(0x98)]||function(_0x22fef3){const _0x1bf69b=a17_0x1bae01;return _0x22fef3&&_0x22fef3[_0x1bf69b(0x99)]?_0x22fef3:{'default':_0x22fef3};};const KythiaStorage=require(a17_0x1bae01(0x95)),sequelize_1=require(a17_0x1bae01(0xa4)),umzug_1=require('umzug'),node_path_1=__importDefault(require(a17_0x1bae01(0xb9))),node_fs_1=__importDefault(require('node:fs'));function getMigrationFiles(_0x2df7b4){const a17_0xcc6b2c={_0x321c2f:0xa2,_0xce79cd:0x96,_0xb08daf:0xa1,_0x3e91a4:0xad,_0x5aa2fe:0xa7,_0x22f09b:0xa1,_0x17ae99:0xad},_0x58937e=a17_0x1bae01,_0x36e311=node_path_1['default'][_0x58937e(a17_0xcc6b2c._0x321c2f)](_0x2df7b4,_0x58937e(0xae));if(!node_fs_1['default'][_0x58937e(a17_0xcc6b2c._0xce79cd)](_0x36e311))return[];const _0x5ae003=[],_0x55eadd=node_fs_1[_0x58937e(a17_0xcc6b2c._0xb08daf)]['readdirSync'](_0x36e311)[_0x58937e(a17_0xcc6b2c._0x3e91a4)](_0x42b96c=>node_fs_1['default'][_0x58937e(0x9b)](node_path_1[_0x58937e(0xa1)][_0x58937e(0xa2)](_0x36e311,_0x42b96c))[_0x58937e(0xac)]());for(const _0x372275 of _0x55eadd){const _0x2ede0c=node_path_1[_0x58937e(0xa1)][_0x58937e(0xa2)](_0x36e311,_0x372275,_0x58937e(a17_0xcc6b2c._0x5aa2fe),_0x58937e(0xab));if(node_fs_1['default']['existsSync'](_0x2ede0c)){const _0x255756=node_fs_1[_0x58937e(a17_0xcc6b2c._0x22f09b)][_0x58937e(0x92)](_0x2ede0c)[_0x58937e(a17_0xcc6b2c._0x17ae99)](_0x16ac8b=>_0x16ac8b['endsWith']('.js'))[_0x58937e(0xa0)](_0x290db4=>({'name':_0x290db4,'path':node_path_1[_0x58937e(0xa1)][_0x58937e(0xa2)](_0x2ede0c,_0x290db4),'folder':_0x2ede0c}));_0x5ae003['push'](..._0x255756);}}return _0x5ae003['sort']((_0x1141a5,_0x40974e)=>_0x1141a5[_0x58937e(0xa8)][_0x58937e(0xa3)](_0x40974e['name']));}const KythiaMigrator=async({sequelize:_0x4cd477,container:_0x366018,logger:_0x142885})=>{const a17_0x1ec501={_0x583413:0xa9,_0x11801d:0xb4,_0x2c412c:0xb3,_0x3ef065:0x93},_0x5a277d=a17_0x1bae01,_0x583be9={'ZrcIL':_0x5a277d(a17_0x1ec501._0x583413),'MmGsZ':function(_0x37d7ae,_0x4d041d){return _0x37d7ae===_0x4d041d;},'vNpCc':'✨\x20Database\x20is\x20already\x20up\x20to\x20date.'},_0x4f07d1=_0x366018['appRoot'],_0x462a88=getMigrationFiles(_0x4f07d1);if(_0x462a88['length']===-0x2*0xe21+0x104+0x1b3e){_0x142885['info']('📭\x20No\x20migrations\x20found\x20in\x20addons.');return;}const _0x508b81={'info':_0x48efb3=>{const _0x502c62=_0x5a277d;if(typeof _0x48efb3===_0x583be9['ZrcIL']){if(_0x583be9[_0x502c62(0x94)](_0x48efb3['event'],'migrating')){}else _0x48efb3['event']===_0x502c62(0xb8)&&_0x142885['info'](_0x502c62(0x9c)+_0x48efb3['name']);}else _0x142885['info'](_0x48efb3);},'warn':_0x4bf097=>_0x142885['warn'](_0x4bf097),'error':_0x390c7e=>_0x142885['error'](_0x390c7e),'debug':_0x3b6e13=>_0x142885[_0x5a277d(0x9e)](_0x3b6e13)},_0x142c8b=new umzug_1[(_0x5a277d(0x91))]({'migrations':_0x462a88['map'](_0x58e41a=>({'name':_0x58e41a['name'],'path':_0x58e41a['path'],'up':async({context:_0x190311})=>{const _0x17d8d8=_0x5a277d,_0x2694a3=require(_0x58e41a[_0x17d8d8(0xb7)]);return _0x2694a3['up'](_0x190311,sequelize_1['DataTypes']);},'down':async({context:_0x45c163})=>{const _0x16dccf=require(_0x58e41a['path']);return _0x16dccf['down'](_0x45c163,sequelize_1['DataTypes']);}})),'context':_0x4cd477['getQueryInterface'](),'storage':new KythiaStorage({'sequelize':_0x4cd477}),'logger':_0x508b81});_0x142885['info'](_0x5a277d(0xa5)+_0x462a88['length']+'\x20files...');try{const _0x6fad33=await _0x142c8b[_0x5a277d(0x9d)]();if(_0x6fad33[_0x5a277d(0xb4)]>-0xcc*0x26+-0xb26+0x296e){const _0x1c551f=await _0x142c8b['up']();_0x1c551f[_0x5a277d(a17_0x1ec501._0x11801d)]>0x4*-0x416+0x546+0x1*0xb12&&_0x142885[_0x5a277d(0xb3)]('✨\x20Successfully\x20applied\x20'+_0x1c551f[_0x5a277d(0xb4)]+'\x20migrations.');}else _0x142885[_0x5a277d(a17_0x1ec501._0x2c412c)](_0x583be9[_0x5a277d(0x97)]);}catch(_0x584083){_0x142885['error'](_0x5a277d(a17_0x1ec501._0x3ef065),_0x584083),process['exit'](0x1670+0x82b+0xf4d*-0x2);}};module[a17_0x1bae01(0xb2)]=KythiaMigrator;
|
|
@@ -3,11 +3,12 @@ import { LRUCache } from 'lru-cache';
|
|
|
3
3
|
import type { Redis } from 'ioredis';
|
|
4
4
|
import type { KythiaConfig } from '../types/KythiaConfig';
|
|
5
5
|
import type { CacheStats, KythiaModelDependencies, CacheEntry, KythiaModelStructure } from '../types/KythiaModel';
|
|
6
|
+
import type { KythiaLogger } from '@src/types';
|
|
6
7
|
export declare class KythiaModel<T extends object = any, TCreationAttributes extends object = T> extends Model<T, TCreationAttributes> {
|
|
7
8
|
static client: any;
|
|
8
9
|
static redis: Redis | undefined;
|
|
9
10
|
static isRedisConnected: boolean;
|
|
10
|
-
static logger:
|
|
11
|
+
static logger: KythiaLogger;
|
|
11
12
|
static config: KythiaConfig | {};
|
|
12
13
|
static CACHE_VERSION: string;
|
|
13
14
|
static localCache: LRUCache<string, {
|
|
@@ -71,10 +72,10 @@ export declare class KythiaModel<T extends object = any, TCreationAttributes ext
|
|
|
71
72
|
static scheduleGetExpired(keySuffix: string, scoreLimit?: number): Promise<string[]>;
|
|
72
73
|
static scheduleClear(keySuffix: string): Promise<void>;
|
|
73
74
|
static findOrCreateWithCache(options: any): Promise<any>;
|
|
74
|
-
static countWithCache(options?: any, ttl?: number): Promise<
|
|
75
|
+
static countWithCache(options?: any, ttl?: number): Promise<unknown>;
|
|
75
76
|
saveAndUpdateCache(): Promise<this>;
|
|
76
77
|
static clearNegativeCache(keys: any): Promise<void>;
|
|
77
|
-
static aggregateWithCache(options?: any, cacheOptions?: any): Promise<
|
|
78
|
+
static aggregateWithCache(options?: any, cacheOptions?: any): Promise<unknown>;
|
|
78
79
|
static initializeCacheHooks(): void;
|
|
79
80
|
static attachHooksToAllModels(sequelizeInstance: Sequelize, client: any): void;
|
|
80
81
|
static touchParent(childInstance: any, foreignKeyField: string, ParentModel: typeof KythiaModel, timestampField?: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KythiaModel.d.ts","sourceRoot":"","sources":["../../src/database/KythiaModel.ts"],"names":[],"mappings":"AAsBA,OAAO,EACN,KAAK,EACL,SAAS,EACT,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EAEpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACX,UAAU,EACV,uBAAuB,EACvB,UAAU,EACV,oBAAoB,EACpB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"KythiaModel.d.ts","sourceRoot":"","sources":["../../src/database/KythiaModel.ts"],"names":[],"mappings":"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"}
|