kythia-core 0.11.1-beta → 0.12.0-beta.1

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 (260) hide show
  1. package/dist/Kythia.d.ts +45 -0
  2. package/dist/Kythia.d.ts.map +1 -0
  3. package/dist/Kythia.js +443 -0
  4. package/dist/Kythia.js.map +1 -0
  5. package/dist/KythiaClient.d.ts +3 -0
  6. package/dist/KythiaClient.d.ts.map +1 -0
  7. package/dist/KythiaClient.js +69 -0
  8. package/dist/KythiaClient.js.map +1 -0
  9. package/dist/cli/Command.d.ts +9 -0
  10. package/dist/cli/Command.d.ts.map +1 -0
  11. package/dist/cli/Command.js +19 -0
  12. package/dist/cli/Command.js.map +1 -0
  13. package/dist/cli/commands/CacheClearCommand.d.ts +8 -0
  14. package/dist/cli/commands/CacheClearCommand.d.ts.map +1 -0
  15. package/dist/cli/commands/CacheClearCommand.js +94 -0
  16. package/dist/cli/commands/CacheClearCommand.js.map +1 -0
  17. package/dist/cli/commands/LangCheckCommand.d.ts +7 -0
  18. package/dist/cli/commands/LangCheckCommand.d.ts.map +1 -0
  19. package/dist/cli/commands/LangCheckCommand.js +345 -0
  20. package/dist/cli/commands/LangCheckCommand.js.map +1 -0
  21. package/dist/cli/commands/LangTranslateCommand.d.ts +8 -0
  22. package/dist/cli/commands/LangTranslateCommand.d.ts.map +1 -0
  23. package/dist/cli/commands/LangTranslateCommand.js +221 -0
  24. package/dist/cli/commands/LangTranslateCommand.js.map +1 -0
  25. package/dist/cli/commands/MakeMigrationCommand.d.ts +7 -0
  26. package/dist/cli/commands/MakeMigrationCommand.d.ts.map +1 -0
  27. package/dist/cli/commands/MakeMigrationCommand.js +55 -0
  28. package/dist/cli/commands/MakeMigrationCommand.js.map +1 -0
  29. package/dist/cli/commands/MakeModelCommand.d.ts +7 -0
  30. package/dist/cli/commands/MakeModelCommand.d.ts.map +1 -0
  31. package/dist/cli/commands/MakeModelCommand.js +56 -0
  32. package/dist/cli/commands/MakeModelCommand.js.map +1 -0
  33. package/dist/cli/commands/MigrateCommand.d.ts +14 -0
  34. package/dist/cli/commands/MigrateCommand.d.ts.map +1 -0
  35. package/dist/cli/commands/MigrateCommand.js +190 -0
  36. package/dist/cli/commands/MigrateCommand.js.map +1 -0
  37. package/dist/cli/commands/NamespaceCommand.d.ts +7 -0
  38. package/dist/cli/commands/NamespaceCommand.d.ts.map +1 -0
  39. package/dist/cli/commands/NamespaceCommand.js +92 -0
  40. package/dist/cli/commands/NamespaceCommand.js.map +1 -0
  41. package/dist/cli/commands/StructureCommand.d.ts +7 -0
  42. package/dist/cli/commands/StructureCommand.d.ts.map +1 -0
  43. package/dist/cli/commands/StructureCommand.js +51 -0
  44. package/dist/cli/commands/StructureCommand.js.map +1 -0
  45. package/dist/cli/commands/UpversionCommand.d.ts +7 -0
  46. package/dist/cli/commands/UpversionCommand.d.ts.map +1 -0
  47. package/dist/cli/commands/UpversionCommand.js +68 -0
  48. package/dist/cli/commands/UpversionCommand.js.map +1 -0
  49. package/dist/cli/index.d.ts +3 -0
  50. package/dist/cli/index.d.ts.map +1 -0
  51. package/dist/cli/index.js +44 -0
  52. package/dist/cli/index.js.map +1 -0
  53. package/dist/cli/utils/db.d.ts +9 -0
  54. package/dist/cli/utils/db.d.ts.map +1 -0
  55. package/dist/cli/utils/db.js +90 -0
  56. package/dist/cli/utils/db.js.map +1 -0
  57. package/dist/database/KythiaMigrator.d.ts +4 -0
  58. package/dist/database/KythiaMigrator.d.ts.map +1 -0
  59. package/dist/database/KythiaMigrator.js +94 -0
  60. package/dist/database/KythiaMigrator.js.map +1 -0
  61. package/dist/database/KythiaModel.d.ts +83 -0
  62. package/dist/database/KythiaModel.d.ts.map +1 -0
  63. package/dist/database/KythiaModel.js +1121 -0
  64. package/dist/database/KythiaModel.js.map +1 -0
  65. package/dist/database/KythiaSequelize.d.ts +4 -0
  66. package/dist/database/KythiaSequelize.d.ts.map +1 -0
  67. package/dist/database/KythiaSequelize.js +99 -0
  68. package/dist/database/KythiaSequelize.js.map +1 -0
  69. package/dist/database/KythiaStorage.d.ts +21 -0
  70. package/dist/database/KythiaStorage.d.ts.map +1 -0
  71. package/dist/database/KythiaStorage.js +80 -0
  72. package/dist/database/KythiaStorage.js.map +1 -0
  73. package/dist/database/ModelLoader.d.ts +4 -0
  74. package/dist/database/ModelLoader.d.ts.map +1 -0
  75. package/dist/database/ModelLoader.js +54 -0
  76. package/dist/database/ModelLoader.js.map +1 -0
  77. package/dist/index.d.ts +10 -0
  78. package/dist/index.d.ts.map +1 -0
  79. package/dist/index.js +36 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/lang/en.json +85 -0
  82. package/dist/managers/AddonManager.d.ts +45 -0
  83. package/dist/managers/AddonManager.d.ts.map +1 -0
  84. package/dist/managers/AddonManager.js +937 -0
  85. package/dist/managers/AddonManager.js.map +1 -0
  86. package/dist/managers/EventManager.d.ts +19 -0
  87. package/dist/managers/EventManager.d.ts.map +1 -0
  88. package/dist/managers/EventManager.js +55 -0
  89. package/dist/managers/EventManager.js.map +1 -0
  90. package/dist/managers/InteractionManager.d.ts +41 -0
  91. package/dist/managers/InteractionManager.d.ts.map +1 -0
  92. package/dist/managers/InteractionManager.js +449 -0
  93. package/dist/managers/InteractionManager.js.map +1 -0
  94. package/dist/managers/MiddlewareManager.d.ts +14 -0
  95. package/dist/managers/MiddlewareManager.d.ts.map +1 -0
  96. package/dist/managers/MiddlewareManager.js +75 -0
  97. package/dist/managers/MiddlewareManager.js.map +1 -0
  98. package/dist/managers/ShutdownManager.d.ts +22 -0
  99. package/dist/managers/ShutdownManager.d.ts.map +1 -0
  100. package/dist/managers/ShutdownManager.js +151 -0
  101. package/dist/managers/ShutdownManager.js.map +1 -0
  102. package/dist/managers/TranslatorManager.d.ts +19 -0
  103. package/dist/managers/TranslatorManager.d.ts.map +1 -0
  104. package/dist/managers/TranslatorManager.js +118 -0
  105. package/dist/managers/TranslatorManager.js.map +1 -0
  106. package/dist/middlewares/botPermissions.d.ts +4 -0
  107. package/dist/middlewares/botPermissions.d.ts.map +1 -0
  108. package/dist/middlewares/botPermissions.js +28 -0
  109. package/dist/middlewares/botPermissions.js.map +1 -0
  110. package/dist/middlewares/cooldown.d.ts +4 -0
  111. package/dist/middlewares/cooldown.d.ts.map +1 -0
  112. package/dist/middlewares/cooldown.js +42 -0
  113. package/dist/middlewares/cooldown.js.map +1 -0
  114. package/dist/middlewares/isInMainGuild.d.ts +4 -0
  115. package/dist/middlewares/isInMainGuild.d.ts.map +1 -0
  116. package/dist/middlewares/isInMainGuild.js +52 -0
  117. package/dist/middlewares/isInMainGuild.js.map +1 -0
  118. package/dist/middlewares/ownerOnly.d.ts +4 -0
  119. package/dist/middlewares/ownerOnly.d.ts.map +1 -0
  120. package/dist/middlewares/ownerOnly.js +24 -0
  121. package/dist/middlewares/ownerOnly.js.map +1 -0
  122. package/dist/middlewares/teamOnly.d.ts +4 -0
  123. package/dist/middlewares/teamOnly.d.ts.map +1 -0
  124. package/dist/middlewares/teamOnly.js +26 -0
  125. package/dist/middlewares/teamOnly.js.map +1 -0
  126. package/dist/middlewares/userPermissions.d.ts +4 -0
  127. package/dist/middlewares/userPermissions.d.ts.map +1 -0
  128. package/dist/middlewares/userPermissions.js +28 -0
  129. package/dist/middlewares/userPermissions.js.map +1 -0
  130. package/dist/middlewares/voteLocked.d.ts +4 -0
  131. package/dist/middlewares/voteLocked.d.ts.map +1 -0
  132. package/dist/middlewares/voteLocked.js +50 -0
  133. package/dist/middlewares/voteLocked.js.map +1 -0
  134. package/dist/structures/BaseCommand.d.ts +23 -0
  135. package/dist/structures/BaseCommand.d.ts.map +1 -0
  136. package/dist/structures/BaseCommand.js +42 -0
  137. package/dist/structures/BaseCommand.js.map +1 -0
  138. package/dist/types/AddonManager.d.ts +58 -0
  139. package/dist/types/AddonManager.d.ts.map +1 -0
  140. package/dist/types/AddonManager.js +3 -0
  141. package/dist/types/AddonManager.js.map +1 -0
  142. package/dist/types/DiscordHelpers.d.ts +7 -0
  143. package/dist/types/DiscordHelpers.d.ts.map +1 -0
  144. package/dist/types/DiscordHelpers.js +3 -0
  145. package/dist/types/DiscordHelpers.js.map +1 -0
  146. package/dist/types/EventManager.d.ts +10 -0
  147. package/dist/types/EventManager.d.ts.map +1 -0
  148. package/dist/types/EventManager.js +3 -0
  149. package/dist/types/EventManager.js.map +1 -0
  150. package/dist/types/InteractionManager.d.ts +35 -0
  151. package/dist/types/InteractionManager.d.ts.map +1 -0
  152. package/dist/types/InteractionManager.js +3 -0
  153. package/dist/types/InteractionManager.js.map +1 -0
  154. package/dist/types/KythiaClient.d.ts +9 -0
  155. package/dist/types/KythiaClient.d.ts.map +1 -0
  156. package/dist/types/KythiaClient.js +3 -0
  157. package/dist/types/KythiaClient.js.map +1 -0
  158. package/dist/types/KythiaConfig.d.ts +291 -0
  159. package/dist/types/KythiaConfig.d.ts.map +1 -0
  160. package/dist/types/KythiaConfig.js +3 -0
  161. package/dist/types/KythiaConfig.js.map +1 -0
  162. package/dist/types/KythiaContainer.d.ts +38 -0
  163. package/dist/types/KythiaContainer.d.ts.map +1 -0
  164. package/dist/types/KythiaContainer.js +3 -0
  165. package/dist/types/KythiaContainer.js.map +1 -0
  166. package/dist/types/KythiaLogger.d.ts +5 -0
  167. package/dist/types/KythiaLogger.d.ts.map +1 -0
  168. package/dist/types/KythiaLogger.js +3 -0
  169. package/dist/types/KythiaLogger.js.map +1 -0
  170. package/dist/types/KythiaMigrator.d.ts +9 -0
  171. package/dist/types/KythiaMigrator.d.ts.map +1 -0
  172. package/dist/types/KythiaMigrator.js +3 -0
  173. package/dist/types/KythiaMigrator.js.map +1 -0
  174. package/dist/types/KythiaModel.d.ts +31 -0
  175. package/dist/types/KythiaModel.d.ts.map +1 -0
  176. package/dist/types/KythiaModel.js +3 -0
  177. package/dist/types/KythiaModel.js.map +1 -0
  178. package/dist/types/KythiaOptions.d.ts +13 -0
  179. package/dist/types/KythiaOptions.d.ts.map +1 -0
  180. package/dist/types/KythiaOptions.js +3 -0
  181. package/dist/types/KythiaOptions.js.map +1 -0
  182. package/dist/types/KythiaSequelize.d.ts +13 -0
  183. package/dist/types/KythiaSequelize.d.ts.map +1 -0
  184. package/dist/types/KythiaSequelize.js +3 -0
  185. package/dist/types/KythiaSequelize.js.map +1 -0
  186. package/dist/types/KythiaStorage.d.ts +22 -0
  187. package/dist/types/KythiaStorage.d.ts.map +1 -0
  188. package/dist/types/KythiaStorage.js +3 -0
  189. package/dist/types/KythiaStorage.js.map +1 -0
  190. package/dist/types/MiddlewareManager.d.ts +14 -0
  191. package/dist/types/MiddlewareManager.d.ts.map +1 -0
  192. package/dist/types/MiddlewareManager.js +3 -0
  193. package/dist/types/MiddlewareManager.js.map +1 -0
  194. package/dist/types/ModelLoader.d.ts +8 -0
  195. package/dist/types/ModelLoader.d.ts.map +1 -0
  196. package/dist/types/ModelLoader.js +3 -0
  197. package/dist/types/ModelLoader.js.map +1 -0
  198. package/dist/types/ShutdownManager.d.ts +15 -0
  199. package/dist/types/ShutdownManager.d.ts.map +1 -0
  200. package/dist/types/ShutdownManager.js +3 -0
  201. package/dist/types/ShutdownManager.js.map +1 -0
  202. package/dist/types/TranslatorManager.d.ts +16 -0
  203. package/dist/types/TranslatorManager.d.ts.map +1 -0
  204. package/dist/types/TranslatorManager.js +3 -0
  205. package/dist/types/TranslatorManager.js.map +1 -0
  206. package/dist/types/index.d.ts +13 -0
  207. package/dist/types/index.d.ts.map +1 -0
  208. package/dist/types/index.js +29 -0
  209. package/dist/types/index.js.map +1 -0
  210. package/dist/utils/color.d.ts +15 -0
  211. package/dist/utils/color.d.ts.map +1 -0
  212. package/dist/utils/color.js +156 -0
  213. package/dist/utils/color.js.map +1 -0
  214. package/dist/utils/discord.d.ts +8 -0
  215. package/dist/utils/discord.d.ts.map +1 -0
  216. package/dist/utils/discord.js +53 -0
  217. package/dist/utils/discord.js.map +1 -0
  218. package/dist/utils/formatter.d.ts +3 -0
  219. package/dist/utils/formatter.d.ts.map +1 -0
  220. package/dist/utils/formatter.js +89 -0
  221. package/dist/utils/formatter.js.map +1 -0
  222. package/dist/utils/index.d.ts +12 -0
  223. package/dist/utils/index.d.ts.map +1 -0
  224. package/dist/utils/index.js +54 -0
  225. package/dist/utils/index.js.map +1 -0
  226. package/dist/utils/logger.d.ts +5 -0
  227. package/dist/utils/logger.d.ts.map +1 -0
  228. package/dist/utils/logger.js +150 -0
  229. package/dist/utils/logger.js.map +1 -0
  230. package/package.json +28 -6
  231. package/src/lang/en.json +85 -0
  232. package/changelog.md +0 -53
  233. package/index.js +0 -15
  234. package/src/Kythia.js +0 -556
  235. package/src/KythiaClient.js +0 -93
  236. package/src/cli/Command.js +0 -68
  237. package/src/cli/commands/CacheClearCommand.js +0 -136
  238. package/src/cli/commands/LangCheckCommand.js +0 -396
  239. package/src/cli/commands/LangTranslateCommand.js +0 -336
  240. package/src/cli/commands/MakeMigrationCommand.js +0 -82
  241. package/src/cli/commands/MakeModelCommand.js +0 -81
  242. package/src/cli/commands/MigrateCommand.js +0 -259
  243. package/src/cli/commands/NamespaceCommand.js +0 -112
  244. package/src/cli/commands/StructureCommand.js +0 -70
  245. package/src/cli/commands/UpversionCommand.js +0 -94
  246. package/src/cli/index.js +0 -69
  247. package/src/cli/utils/db.js +0 -117
  248. package/src/database/KythiaMigrator.js +0 -116
  249. package/src/database/KythiaModel.js +0 -1586
  250. package/src/database/KythiaSequelize.js +0 -128
  251. package/src/database/KythiaStorage.js +0 -117
  252. package/src/database/ModelLoader.js +0 -79
  253. package/src/managers/AddonManager.js +0 -1219
  254. package/src/managers/EventManager.js +0 -104
  255. package/src/managers/InteractionManager.js +0 -869
  256. package/src/managers/ShutdownManager.js +0 -218
  257. package/src/structures/BaseCommand.js +0 -53
  258. package/src/utils/color.js +0 -180
  259. package/src/utils/formatter.js +0 -99
  260. package/src/utils/index.js +0 -4
@@ -0,0 +1,45 @@
1
+ import type { KythiaConfig as IKythiaConfig, KythiaContainer as IKythiaContainer, KythiaClient as IKythiaClient, IAddonManager, KythiaButtonHandler, KythiaModalHandler, KythiaSelectMenuHandler, IInteractionManager, IShutdownManager, KythiaLogger, IEventManager, ITranslatorManager } from './types';
2
+ import { REST } from 'discord.js';
3
+ import type { Sequelize } from 'sequelize';
4
+ import type Redis from 'ioredis';
5
+ declare class Kythia {
6
+ kythiaConfig: IKythiaConfig;
7
+ appRoot: string;
8
+ client: IKythiaClient;
9
+ rest: REST;
10
+ models: Record<string, any>;
11
+ helpers: Record<string, any>;
12
+ utils: Record<string, any>;
13
+ redis?: Redis;
14
+ sequelize?: Sequelize;
15
+ logger: KythiaLogger;
16
+ container: IKythiaContainer;
17
+ dbReadyHooks: Function[];
18
+ clientReadyHooks: Function[];
19
+ addonManager: IAddonManager;
20
+ interactionManager: IInteractionManager;
21
+ eventManager: IEventManager;
22
+ shutdownManager: IShutdownManager;
23
+ translator: ITranslatorManager;
24
+ constructor({ config, logger, redis, sequelize, models, helpers, utils, appRoot, }: {
25
+ config: IKythiaConfig;
26
+ logger?: KythiaLogger;
27
+ redis?: Redis;
28
+ sequelize?: Sequelize;
29
+ models?: Record<string, any>;
30
+ helpers?: Record<string, any>;
31
+ utils?: Record<string, any>;
32
+ appRoot?: string;
33
+ });
34
+ private _checkRequiredConfig;
35
+ registerButtonHandler(customId: string, handler: KythiaButtonHandler): void;
36
+ registerModalHandler(customIdPrefix: string, handler: KythiaModalHandler): void;
37
+ registerSelectMenuHandler(customIdPrefix: string, handler: KythiaSelectMenuHandler): void;
38
+ private _deployCommands;
39
+ private _getCommandCounts;
40
+ addDbReadyHook(callback: Function): void;
41
+ addClientReadyHook(callback: Function): void;
42
+ start(): Promise<void>;
43
+ }
44
+ export = Kythia;
45
+ //# sourceMappingURL=Kythia.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Kythia.d.ts","sourceRoot":"","sources":["../src/Kythia.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACX,YAAY,IAAI,aAAa,EAC7B,eAAe,IAAI,gBAAgB,EACnC,YAAY,IAAI,aAAa,EAC7B,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAmC,MAAM,YAAY,CAAC;AAyBnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,cAAM,MAAM;IACJ,YAAY,EAAE,aAAa,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,YAAY,EAAE,QAAQ,EAAE,CAAC;IACzB,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAE7B,YAAY,EAAG,aAAa,CAAC;IAC7B,kBAAkB,EAAG,mBAAmB,CAAC;IACzC,YAAY,EAAG,aAAa,CAAC;IAC7B,eAAe,EAAG,gBAAgB,CAAC;IACnC,UAAU,EAAG,kBAAkB,CAAC;gBAO3B,EACX,MAAM,EACN,MAAM,EACN,KAAK,EACL,SAAS,EACT,MAAW,EACX,OAAY,EACZ,KAAU,EACV,OAAO,GACP,EAAE;QACF,MAAM,EAAE,aAAa,CAAC;QACtB,MAAM,CAAC,EAAE,YAAY,CAAC;QACtB,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB;IAqED,OAAO,CAAC,oBAAoB;IA+ErB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB;IAYpE,oBAAoB,CAC1B,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,kBAAkB;IAYrB,yBAAyB,CAC/B,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,uBAAuB;YAYnB,eAAe;IA+D7B,OAAO,CAAC,iBAAiB;IAgClB,cAAc,CAAC,QAAQ,EAAE,QAAQ;IAQjC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ;IAe/B,KAAK;CAuNlB;AAED,SAAS,MAAM,CAAC"}
package/dist/Kythia.js ADDED
@@ -0,0 +1,443 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ const discord_js_1 = require("discord.js");
39
+ const Sentry = __importStar(require("@sentry/node"));
40
+ const node_path_1 = __importDefault(require("node:path"));
41
+ const figlet_1 = __importDefault(require("figlet"));
42
+ const cli_color_1 = __importDefault(require("cli-color"));
43
+ const AddonManager_1 = __importDefault(require("./managers/AddonManager"));
44
+ const InteractionManager_1 = require("./managers/InteractionManager");
45
+ const ShutdownManager_1 = require("./managers/ShutdownManager");
46
+ const EventManager_1 = __importDefault(require("./managers/EventManager"));
47
+ const MiddlewareManager_1 = __importDefault(require("./managers/MiddlewareManager"));
48
+ const TranslatorManager_1 = __importDefault(require("./managers/TranslatorManager"));
49
+ const KythiaMigrator_1 = __importDefault(require("./database/KythiaMigrator"));
50
+ const ModelLoader_1 = __importDefault(require("./database/ModelLoader"));
51
+ const KythiaModel_1 = __importDefault(require("./database/KythiaModel"));
52
+ const logger_1 = __importDefault(require("./utils/logger"));
53
+ const discord_1 = __importDefault(require("./utils/discord"));
54
+ const package_json_1 = require("../package.json");
55
+ const KythiaClient_1 = __importDefault(require("./KythiaClient"));
56
+ class Kythia {
57
+ kythiaConfig;
58
+ appRoot;
59
+ client;
60
+ rest;
61
+ models;
62
+ helpers;
63
+ utils;
64
+ redis;
65
+ sequelize;
66
+ logger;
67
+ container;
68
+ dbReadyHooks;
69
+ clientReadyHooks;
70
+ addonManager;
71
+ interactionManager;
72
+ eventManager;
73
+ shutdownManager;
74
+ translator;
75
+ constructor({ config, logger, redis, sequelize, models = {}, helpers = {}, utils = {}, appRoot, }) {
76
+ const missingDeps = [];
77
+ if (!config)
78
+ missingDeps.push('config');
79
+ if (missingDeps.length > 0) {
80
+ console.error(`FATAL: Missing required dependencies: ${missingDeps.join(', ')}.`);
81
+ process.exit(1);
82
+ }
83
+ this.kythiaConfig = config;
84
+ this.appRoot = appRoot || process.cwd();
85
+ this.client = (0, KythiaClient_1.default)();
86
+ this.client.commands = new discord_js_1.Collection();
87
+ this.rest = new discord_js_1.REST({ version: '10' }).setToken(this.kythiaConfig.bot.token);
88
+ this.models = models;
89
+ const internalDiscordHelpers = (0, discord_1.default)({
90
+ kythiaConfig: this.kythiaConfig,
91
+ models: this.models,
92
+ });
93
+ const userHelpers = helpers || {};
94
+ const userDiscordHelpers = userHelpers.discord || {};
95
+ this.helpers = {
96
+ ...userHelpers,
97
+ discord: {
98
+ ...internalDiscordHelpers,
99
+ ...userDiscordHelpers,
100
+ },
101
+ };
102
+ this.utils = utils;
103
+ this.redis = redis;
104
+ this.sequelize = sequelize;
105
+ this.logger = logger || logger_1.default;
106
+ this.container = {
107
+ client: this.client,
108
+ sequelize: this.sequelize,
109
+ logger: this.logger,
110
+ redis: this.redis,
111
+ kythiaConfig: this.kythiaConfig,
112
+ helpers: this.helpers,
113
+ appRoot: this.appRoot,
114
+ t: async () => '',
115
+ models: this.models,
116
+ };
117
+ this.client.container = this.container;
118
+ this.client.cooldowns = new discord_js_1.Collection();
119
+ this.dbReadyHooks = [];
120
+ this.clientReadyHooks = [];
121
+ }
122
+ _checkRequiredConfig() {
123
+ const requiredBotConfig = [
124
+ ['bot', 'token'],
125
+ ['bot', 'clientId'],
126
+ ['bot', 'clientSecret'],
127
+ ];
128
+ const missingBotConfigs = [];
129
+ for (const pathArr of requiredBotConfig) {
130
+ let value = this.kythiaConfig;
131
+ for (const key of pathArr) {
132
+ value = value?.[key];
133
+ }
134
+ if (value === undefined || value === null || value === '') {
135
+ missingBotConfigs.push(pathArr.join('.'));
136
+ }
137
+ }
138
+ if (!this.kythiaConfig.db)
139
+ this.kythiaConfig.db = {};
140
+ let driver = this.kythiaConfig.db.driver;
141
+ if (!driver || driver === '') {
142
+ this.kythiaConfig.db.driver = 'sqlite';
143
+ driver = 'sqlite';
144
+ this.logger.info('💡 DB driver not specified. Defaulting to: sqlite');
145
+ }
146
+ else {
147
+ driver = driver.toLowerCase();
148
+ this.kythiaConfig.db.driver = driver;
149
+ }
150
+ if (driver === 'sqlite') {
151
+ if (!this.kythiaConfig.db.name || this.kythiaConfig.db.name === '') {
152
+ this.kythiaConfig.db.name = 'kythiadata.sqlite';
153
+ }
154
+ }
155
+ const requiredDbConfig = [
156
+ ['db', 'driver'],
157
+ ['db', 'name'],
158
+ ];
159
+ if (driver !== 'sqlite') {
160
+ requiredDbConfig.push(['db', 'host'], ['db', 'port'], ['db', 'user'], ['db', 'pass']);
161
+ }
162
+ const missingDbConfigs = [];
163
+ for (const pathArr of requiredDbConfig) {
164
+ let value = this.kythiaConfig;
165
+ for (const key of pathArr) {
166
+ value = value?.[key];
167
+ }
168
+ if (value === undefined || value === null || value === '') {
169
+ missingDbConfigs.push(pathArr.join('.'));
170
+ }
171
+ }
172
+ const missingConfigs = missingBotConfigs.concat(missingDbConfigs);
173
+ if (missingConfigs.length > 0) {
174
+ this.logger.error('❌ Required configurations are not set:');
175
+ for (const missing of missingConfigs) {
176
+ this.logger.error(` - ${missing}`);
177
+ }
178
+ process.exit(1);
179
+ }
180
+ this.logger.info('✔️ All required configurations are set');
181
+ }
182
+ registerButtonHandler(customId, handler) {
183
+ if (this.addonManager) {
184
+ this.addonManager.registerButtonHandler(customId, handler);
185
+ }
186
+ }
187
+ registerModalHandler(customIdPrefix, handler) {
188
+ if (this.addonManager) {
189
+ this.addonManager.registerModalHandler(customIdPrefix, handler);
190
+ }
191
+ }
192
+ registerSelectMenuHandler(customIdPrefix, handler) {
193
+ if (this.addonManager) {
194
+ this.addonManager.registerSelectMenuHandler(customIdPrefix, handler);
195
+ }
196
+ }
197
+ async _deployCommands(commands) {
198
+ if (!commands || commands.length === 0) {
199
+ this.logger.info('No commands to deploy.');
200
+ return;
201
+ }
202
+ try {
203
+ const { slash, user, message } = this._getCommandCounts(commands);
204
+ const clientId = this.kythiaConfig.bot.clientId;
205
+ const devGuildId = this.kythiaConfig.bot.devGuildId;
206
+ if (this.kythiaConfig.env === 'development') {
207
+ if (!devGuildId) {
208
+ this.logger.warn('⚠️ devGuildId not set in config. Skipping guild command deployment.');
209
+ return;
210
+ }
211
+ this.logger.info(`🟠 Deploying to GUILD ${devGuildId}...`);
212
+ await this.rest.put(discord_js_1.Routes.applicationGuildCommands(clientId, devGuildId), { body: commands });
213
+ this.logger.info('✅ Guild commands deployed instantly!');
214
+ }
215
+ else {
216
+ this.logger.info(`🟢 Deploying globally...`);
217
+ await this.rest.put(discord_js_1.Routes.applicationCommands(clientId), {
218
+ body: commands,
219
+ });
220
+ this.logger.info('✅ Global commands deployed successfully!');
221
+ if (devGuildId) {
222
+ this.logger.info(`🧹 Clearing old commands from dev guild: ${devGuildId}...`);
223
+ try {
224
+ await this.rest.put(discord_js_1.Routes.applicationGuildCommands(clientId, devGuildId), { body: [] });
225
+ this.logger.info('✅ Dev guild commands cleared successfully.');
226
+ }
227
+ catch (err) {
228
+ this.logger.warn(`⚠️ Could not clear dev guild commands (maybe it was already clean): ${err.message}`);
229
+ }
230
+ }
231
+ }
232
+ this.logger.info(`⭕ All Slash Commands: ${commands.length}`);
233
+ this.logger.info(`⭕ Top Level Slash Commands: ${slash}`);
234
+ this.logger.info(`⭕ User Context Menu: ${user}`);
235
+ this.logger.info(`⭕ Message Context Menu: ${message}`);
236
+ this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
237
+ }
238
+ catch (err) {
239
+ this.logger.error('❌ Failed to deploy slash commands:', err);
240
+ }
241
+ }
242
+ _getCommandCounts(commandJsonArray) {
243
+ const counts = { slash: 0, user: 0, message: 0 };
244
+ if (!Array.isArray(commandJsonArray)) {
245
+ this.logger.warn('commandJsonArray is not iterable. Returning zero counts.');
246
+ return counts;
247
+ }
248
+ for (const cmd of commandJsonArray) {
249
+ switch (cmd?.type) {
250
+ case 1:
251
+ case undefined:
252
+ counts.slash++;
253
+ break;
254
+ case 2:
255
+ counts.user++;
256
+ break;
257
+ case 3:
258
+ counts.message++;
259
+ break;
260
+ }
261
+ }
262
+ return counts;
263
+ }
264
+ addDbReadyHook(callback) {
265
+ this.dbReadyHooks.push(callback);
266
+ }
267
+ addClientReadyHook(callback) {
268
+ this.clientReadyHooks.push(callback);
269
+ }
270
+ async start() {
271
+ const figletText = (text, opts) => new Promise((resolve, reject) => {
272
+ figlet_1.default.text(text, opts, (err, data) => {
273
+ if (err)
274
+ reject(err);
275
+ else
276
+ resolve(data);
277
+ });
278
+ });
279
+ try {
280
+ const data = await figletText('KYTHIA', {
281
+ font: 'ANSI Shadow',
282
+ horizontalLayout: 'full',
283
+ verticalLayout: 'full',
284
+ });
285
+ const infoLines = [
286
+ cli_color_1.default.cyan('Created by kenndeclouv'),
287
+ cli_color_1.default.cyan('Discord Support: ') + cli_color_1.default.underline('https://dsc.gg/kythia'),
288
+ cli_color_1.default.cyan('Official Documentation: ') +
289
+ cli_color_1.default.underline('https://kythia.me'),
290
+ '',
291
+ cli_color_1.default.cyanBright(`Kythia version: ${package_json_1.version}`),
292
+ '',
293
+ cli_color_1.default.yellowBright('Respect my work by not removing the credit'),
294
+ ];
295
+ const rawInfoLines = infoLines.map((line) => cli_color_1.default.strip(line));
296
+ const infoMaxLen = Math.max(...rawInfoLines.map((l) => l.length));
297
+ const pad = 8;
298
+ const borderWidth = infoMaxLen + pad * 2;
299
+ const borderChar = cli_color_1.default.cyanBright('═');
300
+ const sideChar = cli_color_1.default.cyanBright('║');
301
+ const topBorder = cli_color_1.default.cyanBright(`╔${borderChar.repeat(borderWidth)}╗`);
302
+ const bottomBorder = cli_color_1.default.cyanBright(`╚${borderChar.repeat(borderWidth)}╝`);
303
+ const emptyLine = sideChar + ' '.repeat(borderWidth) + sideChar;
304
+ const figletLines = data.split('\n');
305
+ const centeredFigletInBorder = figletLines
306
+ .map((line) => {
307
+ const rawLen = cli_color_1.default.strip(line).length;
308
+ const spaces = ' '.repeat(Math.max(0, Math.floor((borderWidth - rawLen) / 2)));
309
+ return (sideChar +
310
+ spaces +
311
+ cli_color_1.default.cyanBright(line) +
312
+ ' '.repeat(borderWidth - spaces.length - rawLen) +
313
+ sideChar);
314
+ })
315
+ .join('\n');
316
+ const centeredInfo = infoLines
317
+ .map((line, idx) => {
318
+ const raw = rawInfoLines[idx];
319
+ const spaces = ' '.repeat(Math.floor((borderWidth - raw.length) / 2));
320
+ return (sideChar +
321
+ spaces +
322
+ line +
323
+ ' '.repeat(borderWidth - spaces.length - raw.length) +
324
+ sideChar);
325
+ })
326
+ .join('\n');
327
+ console.log(`\n${topBorder}`);
328
+ console.log(emptyLine);
329
+ console.log(centeredFigletInBorder);
330
+ console.log(emptyLine);
331
+ console.log(centeredInfo);
332
+ console.log(emptyLine);
333
+ console.log(`${bottomBorder}\n`);
334
+ }
335
+ catch (err) {
336
+ this.logger.error('❌ Failed to render figlet banner:', err);
337
+ }
338
+ this.logger.info('🚀 Starting kythia...');
339
+ if (this.kythiaConfig.sentry?.dsn) {
340
+ Sentry.init({
341
+ dsn: this.kythiaConfig.sentry.dsn,
342
+ tracesSampleRate: 1.0,
343
+ profilesSampleRate: 1.0,
344
+ });
345
+ this.logger.info('✔️ Sentry Error Tracking is ACTIVE');
346
+ }
347
+ else {
348
+ this.logger.warn('🟠 Sentry DSN not found in config. Error tracking is INACTIVE.');
349
+ }
350
+ this._checkRequiredConfig();
351
+ try {
352
+ const shouldDeploy = process.argv.includes('--deploy');
353
+ this.logger.info('▬▬▬▬▬▬▬▬▬▬▬[ Load Fonts ]▬▬▬▬▬▬▬▬▬▬▬');
354
+ if (this.helpers?.fonts &&
355
+ typeof this.helpers.fonts.loadFonts === 'function') {
356
+ this.helpers.fonts.loadFonts({ logger: this.logger });
357
+ }
358
+ this.logger.info('▬▬▬▬▬▬▬▬▬▬▬[ Translator System ]▬▬▬▬▬▬▬▬▬▬▬');
359
+ this.translator = new TranslatorManager_1.default({ container: this.container });
360
+ const coreLangPath = node_path_1.default.join(__dirname, 'lang');
361
+ this.translator.loadLocalesFromDir(coreLangPath);
362
+ const userLangPath = node_path_1.default.join(this.appRoot, 'lang');
363
+ this.translator.loadLocalesFromDir(userLangPath);
364
+ this.container.translator = this.translator;
365
+ this.container.t = this.translator.t.bind(this.translator);
366
+ this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬[ Kythia Addons ]▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
367
+ this.addonManager = new AddonManager_1.default({
368
+ client: this.client,
369
+ container: this.container,
370
+ });
371
+ const allCommands = await this.addonManager.loadAddons(this);
372
+ if (this.sequelize) {
373
+ this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬▬[ Connect Database ]▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
374
+ await this.sequelize.authenticate();
375
+ await (0, KythiaMigrator_1.default)({
376
+ sequelize: this.sequelize,
377
+ container: this.container,
378
+ logger: this.logger,
379
+ });
380
+ await (0, ModelLoader_1.default)(this, this.sequelize);
381
+ this.logger.info('🪝 Attaching Cache Hooks...');
382
+ KythiaModel_1.default.attachHooksToAllModels(this.sequelize, this.client);
383
+ }
384
+ else {
385
+ this.logger.warn('⚠️ Sequelize instance not provided. Skipping database initialization.');
386
+ }
387
+ const handlers = this.addonManager.getHandlers();
388
+ this.eventManager = new EventManager_1.default({
389
+ client: this.client,
390
+ container: this.container,
391
+ eventHandlers: handlers.eventHandlers,
392
+ });
393
+ this.eventManager.initialize();
394
+ this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬[ Middleware ]▬▬▬▬▬▬▬▬▬▬▬▬▬');
395
+ const middlewareManager = new MiddlewareManager_1.default({
396
+ container: this.container,
397
+ });
398
+ await middlewareManager.loadMiddlewares();
399
+ this.container.middlewareManager = middlewareManager;
400
+ this.interactionManager = new InteractionManager_1.InteractionManager({
401
+ client: this.client,
402
+ container: this.container,
403
+ handlers: handlers,
404
+ });
405
+ this.interactionManager.initialize();
406
+ this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬[ Deploy Commands ]▬▬▬▬▬▬▬▬▬▬▬▬▬');
407
+ if (shouldDeploy) {
408
+ await this._deployCommands(allCommands);
409
+ }
410
+ else {
411
+ this.logger.info('⏭️ Skipping command deployment. Use --deploy flag to force update.');
412
+ }
413
+ this.shutdownManager = new ShutdownManager_1.ShutdownManager({
414
+ client: this.client,
415
+ container: this.container,
416
+ });
417
+ this.shutdownManager.initialize();
418
+ this.logger.info('▬▬▬▬▬▬▬▬▬▬▬[ Systems Initializing ]▬▬▬▬▬▬▬▬▬▬▬▬');
419
+ this.client.once('clientReady', async (c) => {
420
+ this.logger.info(`🌸 Logged in as ${this.client.user?.tag}`);
421
+ this.logger.info(`🚀 Executing ${this.clientReadyHooks.length} client-ready hooks...`);
422
+ for (const hook of this.clientReadyHooks) {
423
+ try {
424
+ await hook(c);
425
+ }
426
+ catch (error) {
427
+ this.logger.error('Failed to execute a client-ready hook:', error);
428
+ }
429
+ }
430
+ });
431
+ await this.client.login(this.kythiaConfig.bot.token);
432
+ }
433
+ catch (error) {
434
+ this.logger.error('❌ Kythia initialization failed:', error);
435
+ if (this.kythiaConfig.sentry?.dsn) {
436
+ Sentry.captureException(error);
437
+ }
438
+ process.exit(1);
439
+ }
440
+ }
441
+ }
442
+ module.exports = Kythia;
443
+ //# sourceMappingURL=Kythia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Kythia.js","sourceRoot":"","sources":["../src/Kythia.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { KythiaClient as IKythiaClient } from './types';
2
+ export default function kythiaClient(): IKythiaClient;
3
+ //# sourceMappingURL=KythiaClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KythiaClient.d.ts","sourceRoot":"","sources":["../src/KythiaClient.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7D,MAAM,CAAC,OAAO,UAAU,YAAY,IAAI,aAAa,CAuEpD"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = kythiaClient;
4
+ const discord_js_1 = require("discord.js");
5
+ function kythiaClient() {
6
+ const client = new discord_js_1.Client({
7
+ intents: [
8
+ discord_js_1.GatewayIntentBits.Guilds,
9
+ discord_js_1.GatewayIntentBits.GuildMessages,
10
+ discord_js_1.GatewayIntentBits.MessageContent,
11
+ discord_js_1.GatewayIntentBits.GuildMembers,
12
+ discord_js_1.GatewayIntentBits.GuildModeration,
13
+ discord_js_1.GatewayIntentBits.GuildInvites,
14
+ discord_js_1.GatewayIntentBits.GuildVoiceStates,
15
+ discord_js_1.GatewayIntentBits.AutoModerationExecution,
16
+ discord_js_1.GatewayIntentBits.DirectMessages,
17
+ discord_js_1.GatewayIntentBits.DirectMessageReactions,
18
+ discord_js_1.GatewayIntentBits.DirectMessageTyping,
19
+ discord_js_1.GatewayIntentBits.GuildExpressions,
20
+ ],
21
+ partials: [
22
+ discord_js_1.Partials.Message,
23
+ discord_js_1.Partials.Channel,
24
+ discord_js_1.Partials.Reaction,
25
+ discord_js_1.Partials.User,
26
+ discord_js_1.Partials.GuildMember,
27
+ ],
28
+ makeCache: discord_js_1.Options.cacheWithLimits({
29
+ PresenceManager: 0,
30
+ ThreadManager: {
31
+ maxSize: 25,
32
+ },
33
+ GuildMemberManager: {
34
+ maxSize: 2000,
35
+ keepOverLimit: (member) => (member.client.user && member.id === member.client.user.id) ||
36
+ (member.guild && member.id === member.guild.ownerId) ||
37
+ (member.voice && member.voice.channelId !== null) ||
38
+ member.roles.cache.size > 5,
39
+ },
40
+ UserManager: {
41
+ maxSize: 20000,
42
+ keepOverLimit: (user) => user.id === user.client.user.id,
43
+ },
44
+ }),
45
+ sweepers: {
46
+ ...discord_js_1.Options.DefaultSweeperSettings,
47
+ messages: {
48
+ interval: 3600,
49
+ lifetime: 1800,
50
+ },
51
+ threads: {
52
+ interval: 3600,
53
+ lifetime: 1800,
54
+ },
55
+ users: {
56
+ interval: 3600,
57
+ filter: () => (user) => {
58
+ if (user.bot)
59
+ return false;
60
+ if (user.id === user.client.user.id)
61
+ return false;
62
+ return true;
63
+ },
64
+ },
65
+ },
66
+ });
67
+ return client;
68
+ }
69
+ //# sourceMappingURL=KythiaClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KythiaClient.js","sourceRoot":"","sources":["../src/KythiaClient.ts"],"names":[],"mappings":";;AAsBA,+BAuEC;AA1ED,2CAA0E;AAG1E,SAAwB,YAAY;IACnC,MAAM,MAAM,GAAG,IAAI,mBAAM,CAAC;QACzB,OAAO,EAAE;YACR,8BAAiB,CAAC,MAAM;YACxB,8BAAiB,CAAC,aAAa;YAC/B,8BAAiB,CAAC,cAAc;YAChC,8BAAiB,CAAC,YAAY;YAC9B,8BAAiB,CAAC,eAAe;YACjC,8BAAiB,CAAC,YAAY;YAC9B,8BAAiB,CAAC,gBAAgB;YAClC,8BAAiB,CAAC,uBAAuB;YACzC,8BAAiB,CAAC,cAAc;YAChC,8BAAiB,CAAC,sBAAsB;YACxC,8BAAiB,CAAC,mBAAmB;YACrC,8BAAiB,CAAC,gBAAgB;SAClC;QAED,QAAQ,EAAE;YACT,qBAAQ,CAAC,OAAO;YAChB,qBAAQ,CAAC,OAAO;YAChB,qBAAQ,CAAC,QAAQ;YACjB,qBAAQ,CAAC,IAAI;YACb,qBAAQ,CAAC,WAAW;SACpB;QAED,SAAS,EAAE,oBAAO,CAAC,eAAe,CAAC;YAClC,eAAe,EAAE,CAAC;YAElB,aAAa,EAAE;gBACd,OAAO,EAAE,EAAE;aACX;YAED,kBAAkB,EAAE;gBACnB,OAAO,EAAE,IAAI;gBACb,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CACzB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3D,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;oBACpD,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;oBACjD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;aAC5B;YAED,WAAW,EAAE;gBACZ,OAAO,EAAE,KAAK;gBACd,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;aACxD;SACD,CAAC;QAEF,QAAQ,EAAE;YACT,GAAG,oBAAO,CAAC,sBAAsB;YACjC,QAAQ,EAAE;gBACT,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,IAAI;aACd;YACD,OAAO,EAAE;gBACR,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,IAAI;aACd;YAED,KAAK,EAAE;gBACN,QAAQ,EAAE,IAAI;gBAEd,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;oBACtB,IAAI,IAAI,CAAC,GAAG;wBAAE,OAAO,KAAK,CAAC;oBAC3B,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;wBAAE,OAAO,KAAK,CAAC;oBAClD,OAAO,IAAI,CAAC;gBACb,CAAC;aACD;SACD;KACD,CAAC,CAAC;IAEH,OAAO,MAAkC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Command as CommanderCommand } from 'commander';
2
+ export default abstract class Command {
3
+ abstract signature: string;
4
+ abstract description: string;
5
+ abstract handle(options: Record<string, any>, ...args: any[]): Promise<void>;
6
+ register(program: CommanderCommand): void;
7
+ configure(cmd: CommanderCommand): void;
8
+ }
9
+ //# sourceMappingURL=Command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../src/cli/Command.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,OAAO;IAIpC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAKlC,SAAgB,WAAW,EAAE,MAAM,CAAC;aAOpB,MAAM,CACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,GAAG,IAAI,EAAE,GAAG,EAAE,GACZ,OAAO,CAAC,IAAI,CAAC;IAKT,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAsBzC,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;CAG7C"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class Command {
4
+ register(program) {
5
+ const cmd = program
6
+ .command(this.signature)
7
+ .description(this.description)
8
+ .action((...args) => {
9
+ const commandObj = args.pop();
10
+ const options = args.pop() || {};
11
+ this.handle(options, ...args);
12
+ });
13
+ this.configure(cmd);
14
+ }
15
+ configure(cmd) {
16
+ }
17
+ }
18
+ exports.default = Command;
19
+ //# sourceMappingURL=Command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Command.js","sourceRoot":"","sources":["../../src/cli/Command.ts"],"names":[],"mappings":";;AAmBA,MAA8B,OAAO;IAwB7B,QAAQ,CAAC,OAAyB;QACxC,MAAM,GAAG,GAAG,OAAO;aACjB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;aACvB,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;aAC7B,MAAM,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;YAG1B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAGjC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAOM,SAAS,CAAC,GAAqB;IAEtC,CAAC;CACD;AAjDD,0BAiDC"}
@@ -0,0 +1,8 @@
1
+ import Command from '../Command';
2
+ import 'dotenv/config';
3
+ export default class CacheClearCommand extends Command {
4
+ signature: string;
5
+ description: string;
6
+ handle(): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=CacheClearCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheClearCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/CacheClearCommand.ts"],"names":[],"mappings":"AAkBA,OAAO,OAAO,MAAM,YAAY,CAAC;AAIjC,OAAO,eAAe,CAAC;AAevB,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,OAAO;IAC9C,SAAS,SAAiB;IAC1B,WAAW,SAA2D;IAEhE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CA4FpC"}