commandkit 0.1.11-dev.20240203230231 → 0.1.11-dev.20241214134338

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 (274) hide show
  1. package/bin/build.mjs +126 -0
  2. package/bin/common.mjs +125 -0
  3. package/bin/development.mjs +180 -0
  4. package/bin/index.mjs +53 -0
  5. package/bin/parse-env.mjs +65 -0
  6. package/bin/production.mjs +86 -0
  7. package/dist/{CommandKit-GIHMEeqf.d.ts → CommandKit-Co5QNlps.d.ts} +143 -144
  8. package/dist/{CommandKit--SA9LcIq.d.mts → CommandKit-D84HlsL0.d.mts} +143 -144
  9. package/dist/CommandKit.d.mts +1 -1
  10. package/dist/CommandKit.d.ts +1 -1
  11. package/dist/CommandKit.js +1 -1
  12. package/dist/CommandKit.js.map +1 -1
  13. package/dist/CommandKit.mjs +1 -1
  14. package/dist/{chunk-BXBLPEWT.mjs → chunk-6B4TPFI4.mjs} +2 -2
  15. package/dist/chunk-6B4TPFI4.mjs.map +1 -0
  16. package/dist/{chunk-R6PIHRXD.mjs → chunk-6J4XVVL4.mjs} +2 -2
  17. package/dist/{chunk-7KD7ZCH6.mjs → chunk-6TIBWNPX.mjs} +1 -1
  18. package/dist/{chunk-KUU3KDAE.mjs → chunk-7YWJADOI.mjs} +2 -2
  19. package/dist/{chunk-TZXZ3UZS.mjs → chunk-CATZUF3K.mjs} +2 -2
  20. package/dist/{chunk-KATLDJ7Z.mjs → chunk-EQ62HPWY.mjs} +2 -2
  21. package/dist/{chunk-Q7UFCVZL.mjs → chunk-FBYSGXIA.mjs} +2 -2
  22. package/dist/chunk-FBYSGXIA.mjs.map +1 -0
  23. package/dist/{chunk-6CLMSPNA.mjs → chunk-IHDVSF4H.mjs} +2 -2
  24. package/dist/{chunk-6CLMSPNA.mjs.map → chunk-IHDVSF4H.mjs.map} +1 -1
  25. package/dist/{chunk-RQQKHSL6.mjs → chunk-JWT7PUZJ.mjs} +2 -2
  26. package/dist/chunk-JWT7PUZJ.mjs.map +1 -0
  27. package/dist/{chunk-SYOEMO4R.mjs → chunk-KR3OAQKX.mjs} +2 -2
  28. package/dist/chunk-MTG5LNGD.mjs +2 -0
  29. package/dist/chunk-MTG5LNGD.mjs.map +1 -0
  30. package/dist/{chunk-77LPS2WP.mjs → chunk-PXNT5WYC.mjs} +2 -2
  31. package/dist/{chunk-CHI4NRSH.mjs → chunk-Q7JC46G6.mjs} +2 -2
  32. package/dist/chunk-Q7JC46G6.mjs.map +1 -0
  33. package/dist/chunk-VHU3SDTR.mjs +2 -0
  34. package/dist/{chunk-FQGSVSCT.mjs.map → chunk-VHU3SDTR.mjs.map} +1 -1
  35. package/dist/chunk-XVIYQWRZ.mjs +2 -0
  36. package/dist/{chunk-SXUJOOQY.mjs → chunk-Y7QBWZVQ.mjs} +2 -2
  37. package/dist/components/ButtonKit.js +1 -1
  38. package/dist/components/ButtonKit.js.map +1 -1
  39. package/dist/components/ButtonKit.mjs +1 -1
  40. package/dist/components/index.js +1 -1
  41. package/dist/components/index.js.map +1 -1
  42. package/dist/components/index.mjs +1 -1
  43. package/dist/config.d.mts +5 -7
  44. package/dist/config.d.ts +5 -7
  45. package/dist/config.js +1 -1
  46. package/dist/config.js.map +1 -1
  47. package/dist/config.mjs +1 -1
  48. package/dist/handlers/command-handler/CommandHandler.d.mts +1 -1
  49. package/dist/handlers/command-handler/CommandHandler.d.ts +1 -1
  50. package/dist/handlers/command-handler/CommandHandler.js +1 -1
  51. package/dist/handlers/command-handler/CommandHandler.js.map +1 -1
  52. package/dist/handlers/command-handler/CommandHandler.mjs +1 -1
  53. package/dist/handlers/command-handler/functions/loadCommandsWithRest.d.mts +1 -1
  54. package/dist/handlers/command-handler/functions/loadCommandsWithRest.d.ts +1 -1
  55. package/dist/handlers/command-handler/functions/loadCommandsWithRest.js +1 -1
  56. package/dist/handlers/command-handler/functions/loadCommandsWithRest.js.map +1 -1
  57. package/dist/handlers/command-handler/functions/loadCommandsWithRest.mjs +1 -1
  58. package/dist/handlers/command-handler/functions/registerCommands.d.mts +1 -1
  59. package/dist/handlers/command-handler/functions/registerCommands.d.ts +1 -1
  60. package/dist/handlers/command-handler/functions/registerCommands.js +1 -1
  61. package/dist/handlers/command-handler/functions/registerCommands.js.map +1 -1
  62. package/dist/handlers/command-handler/functions/registerCommands.mjs +1 -1
  63. package/dist/handlers/command-handler/typings.d.mts +1 -1
  64. package/dist/handlers/command-handler/typings.d.ts +1 -1
  65. package/dist/handlers/command-handler/typings.js.map +1 -1
  66. package/dist/handlers/command-handler/utils/areSlashCommandsDifferent.mjs +1 -1
  67. package/dist/handlers/command-handler/validations/devOnly.d.mts +1 -1
  68. package/dist/handlers/command-handler/validations/devOnly.d.ts +1 -1
  69. package/dist/handlers/command-handler/validations/devOnly.mjs +1 -1
  70. package/dist/handlers/command-handler/validations/index.d.mts +1 -1
  71. package/dist/handlers/command-handler/validations/index.d.ts +1 -1
  72. package/dist/handlers/command-handler/validations/index.mjs +1 -1
  73. package/dist/handlers/command-handler/validations/permissions.d.mts +1 -1
  74. package/dist/handlers/command-handler/validations/permissions.d.ts +1 -1
  75. package/dist/handlers/command-handler/validations/permissions.mjs +1 -1
  76. package/dist/handlers/event-handler/EventHandler.d.mts +1 -1
  77. package/dist/handlers/event-handler/EventHandler.d.ts +1 -1
  78. package/dist/handlers/event-handler/EventHandler.js +1 -1
  79. package/dist/handlers/event-handler/EventHandler.js.map +1 -1
  80. package/dist/handlers/event-handler/EventHandler.mjs +1 -1
  81. package/dist/handlers/event-handler/typings.d.mts +1 -1
  82. package/dist/handlers/event-handler/typings.d.ts +1 -1
  83. package/dist/handlers/index.d.mts +1 -1
  84. package/dist/handlers/index.d.ts +1 -1
  85. package/dist/handlers/index.js +1 -1
  86. package/dist/handlers/index.js.map +1 -1
  87. package/dist/handlers/index.mjs +1 -1
  88. package/dist/handlers/validation-handler/ValidationHandler.js +1 -1
  89. package/dist/handlers/validation-handler/ValidationHandler.js.map +1 -1
  90. package/dist/handlers/validation-handler/ValidationHandler.mjs +1 -1
  91. package/dist/index.d.mts +1 -12
  92. package/dist/index.d.ts +1 -12
  93. package/dist/index.js +5 -5
  94. package/dist/index.js.map +1 -1
  95. package/dist/index.mjs +1 -1
  96. package/dist/index.mjs.map +1 -1
  97. package/dist/types.d.mts +5 -0
  98. package/dist/types.d.ts +5 -0
  99. package/dist/{types/index.js → types.js} +1 -1
  100. package/dist/types.js.map +1 -0
  101. package/dist/types.mjs +2 -0
  102. package/dist/types.mjs.map +1 -0
  103. package/dist/utils/clone.mjs +1 -1
  104. package/dist/utils/colors.js +1 -1
  105. package/dist/utils/colors.js.map +1 -1
  106. package/dist/utils/colors.mjs +1 -1
  107. package/dist/utils/get-paths.mjs +1 -1
  108. package/dist/utils/resolve-file-url.mjs +1 -1
  109. package/package.json +7 -8
  110. package/bin/index.cjs +0 -3
  111. package/dist/bootstrap/client.d.mts +0 -13
  112. package/dist/bootstrap/client.d.ts +0 -13
  113. package/dist/bootstrap/client.js +0 -2
  114. package/dist/bootstrap/client.js.map +0 -1
  115. package/dist/bootstrap/client.mjs +0 -2
  116. package/dist/bootstrap/loadEnv.d.mts +0 -3
  117. package/dist/bootstrap/loadEnv.d.ts +0 -3
  118. package/dist/bootstrap/loadEnv.js +0 -2
  119. package/dist/bootstrap/loadEnv.js.map +0 -1
  120. package/dist/bootstrap/loadEnv.mjs +0 -2
  121. package/dist/bootstrap/loadEnv.mjs.map +0 -1
  122. package/dist/chunk-5AIBE2QR.mjs +0 -2
  123. package/dist/chunk-7KD7ZCH6.mjs.map +0 -1
  124. package/dist/chunk-BCQP4DZP.mjs +0 -2
  125. package/dist/chunk-BCQP4DZP.mjs.map +0 -1
  126. package/dist/chunk-BJCWVCAY.mjs +0 -2
  127. package/dist/chunk-BJCWVCAY.mjs.map +0 -1
  128. package/dist/chunk-BXBLPEWT.mjs.map +0 -1
  129. package/dist/chunk-CHI4NRSH.mjs.map +0 -1
  130. package/dist/chunk-DEB7FLUS.mjs +0 -2
  131. package/dist/chunk-DEB7FLUS.mjs.map +0 -1
  132. package/dist/chunk-FQGSVSCT.mjs +0 -2
  133. package/dist/chunk-IFTUM7TS.mjs +0 -2
  134. package/dist/chunk-IFTUM7TS.mjs.map +0 -1
  135. package/dist/chunk-Q7UFCVZL.mjs.map +0 -1
  136. package/dist/chunk-QC2F7O3S.mjs +0 -2
  137. package/dist/chunk-QC2F7O3S.mjs.map +0 -1
  138. package/dist/chunk-QYJ4DE3N.mjs +0 -2
  139. package/dist/chunk-QYJ4DE3N.mjs.map +0 -1
  140. package/dist/chunk-RQQKHSL6.mjs.map +0 -1
  141. package/dist/chunk-SB3FAFCD.mjs +0 -2
  142. package/dist/chunk-SB3FAFCD.mjs.map +0 -1
  143. package/dist/chunk-UV2LVAQV.mjs +0 -2
  144. package/dist/chunk-UV2LVAQV.mjs.map +0 -1
  145. package/dist/chunk-ZJRAI4W5.mjs +0 -2
  146. package/dist/chunk-ZJRAI4W5.mjs.map +0 -1
  147. package/dist/environment/actions/development.d.mts +0 -8
  148. package/dist/environment/actions/development.d.ts +0 -8
  149. package/dist/environment/actions/development.js +0 -2
  150. package/dist/environment/actions/development.js.map +0 -1
  151. package/dist/environment/actions/development.mjs +0 -2
  152. package/dist/environment/actions/development.mjs.map +0 -1
  153. package/dist/environment/bundler/bundle.d.mts +0 -3
  154. package/dist/environment/bundler/bundle.d.ts +0 -3
  155. package/dist/environment/bundler/bundle.js +0 -2
  156. package/dist/environment/bundler/bundle.js.map +0 -1
  157. package/dist/environment/bundler/bundle.mjs +0 -2
  158. package/dist/environment/bundler/bundle.mjs.map +0 -1
  159. package/dist/environment/bundler/shims.d.mts +0 -3
  160. package/dist/environment/bundler/shims.d.ts +0 -3
  161. package/dist/environment/bundler/shims.js +0 -11
  162. package/dist/environment/bundler/shims.js.map +0 -1
  163. package/dist/environment/bundler/shims.mjs +0 -11
  164. package/dist/environment/bundler/shims.mjs.map +0 -1
  165. package/dist/environment/cli.d.mts +0 -2
  166. package/dist/environment/cli.d.ts +0 -2
  167. package/dist/environment/cli.js +0 -2
  168. package/dist/environment/cli.js.map +0 -1
  169. package/dist/environment/cli.mjs +0 -2
  170. package/dist/environment/cli.mjs.map +0 -1
  171. package/dist/environment/common/config.d.mts +0 -7
  172. package/dist/environment/common/config.d.ts +0 -7
  173. package/dist/environment/common/config.js +0 -2
  174. package/dist/environment/common/config.js.map +0 -1
  175. package/dist/environment/common/config.mjs +0 -2
  176. package/dist/environment/common/config.mjs.map +0 -1
  177. package/dist/environment/common/logger.d.mts +0 -9
  178. package/dist/environment/common/logger.d.ts +0 -9
  179. package/dist/environment/common/logger.js +0 -2
  180. package/dist/environment/common/logger.js.map +0 -1
  181. package/dist/environment/common/logger.mjs +0 -2
  182. package/dist/environment/common/logger.mjs.map +0 -1
  183. package/dist/hooks/common.d.mts +0 -12
  184. package/dist/hooks/common.d.ts +0 -12
  185. package/dist/hooks/common.js +0 -11
  186. package/dist/hooks/common.js.map +0 -1
  187. package/dist/hooks/common.mjs +0 -2
  188. package/dist/hooks/common.mjs.map +0 -1
  189. package/dist/hooks/index.d.mts +0 -14
  190. package/dist/hooks/index.d.ts +0 -14
  191. package/dist/hooks/index.js +0 -11
  192. package/dist/hooks/index.js.map +0 -1
  193. package/dist/hooks/index.mjs +0 -2
  194. package/dist/hooks/index.mjs.map +0 -1
  195. package/dist/hooks/response.d.mts +0 -7
  196. package/dist/hooks/response.d.ts +0 -7
  197. package/dist/hooks/response.js +0 -11
  198. package/dist/hooks/response.js.map +0 -1
  199. package/dist/hooks/response.mjs +0 -2
  200. package/dist/hooks/response.mjs.map +0 -1
  201. package/dist/hooks/useChannel.d.mts +0 -5
  202. package/dist/hooks/useChannel.d.ts +0 -5
  203. package/dist/hooks/useChannel.js +0 -11
  204. package/dist/hooks/useChannel.js.map +0 -1
  205. package/dist/hooks/useChannel.mjs +0 -2
  206. package/dist/hooks/useChannel.mjs.map +0 -1
  207. package/dist/hooks/useClient.d.mts +0 -5
  208. package/dist/hooks/useClient.d.ts +0 -5
  209. package/dist/hooks/useClient.js +0 -11
  210. package/dist/hooks/useClient.js.map +0 -1
  211. package/dist/hooks/useClient.mjs +0 -2
  212. package/dist/hooks/useClient.mjs.map +0 -1
  213. package/dist/hooks/useCommandData.d.mts +0 -5
  214. package/dist/hooks/useCommandData.d.ts +0 -5
  215. package/dist/hooks/useCommandData.js +0 -11
  216. package/dist/hooks/useCommandData.js.map +0 -1
  217. package/dist/hooks/useCommandData.mjs +0 -2
  218. package/dist/hooks/useCommandData.mjs.map +0 -1
  219. package/dist/hooks/useCommandKit.d.mts +0 -9
  220. package/dist/hooks/useCommandKit.d.ts +0 -9
  221. package/dist/hooks/useCommandKit.js +0 -11
  222. package/dist/hooks/useCommandKit.js.map +0 -1
  223. package/dist/hooks/useCommandKit.mjs +0 -2
  224. package/dist/hooks/useCommandKit.mjs.map +0 -1
  225. package/dist/hooks/useGuild.d.mts +0 -5
  226. package/dist/hooks/useGuild.d.ts +0 -5
  227. package/dist/hooks/useGuild.js +0 -11
  228. package/dist/hooks/useGuild.js.map +0 -1
  229. package/dist/hooks/useGuild.mjs +0 -2
  230. package/dist/hooks/useGuild.mjs.map +0 -1
  231. package/dist/hooks/useInteraction.d.mts +0 -9
  232. package/dist/hooks/useInteraction.d.ts +0 -9
  233. package/dist/hooks/useInteraction.js +0 -11
  234. package/dist/hooks/useInteraction.js.map +0 -1
  235. package/dist/hooks/useInteraction.mjs +0 -2
  236. package/dist/hooks/useInteraction.mjs.map +0 -1
  237. package/dist/hooks/useMember.d.mts +0 -5
  238. package/dist/hooks/useMember.d.ts +0 -5
  239. package/dist/hooks/useMember.js +0 -11
  240. package/dist/hooks/useMember.js.map +0 -1
  241. package/dist/hooks/useMember.mjs +0 -2
  242. package/dist/hooks/useMember.mjs.map +0 -1
  243. package/dist/hooks/useUser.d.mts +0 -5
  244. package/dist/hooks/useUser.d.ts +0 -5
  245. package/dist/hooks/useUser.js +0 -11
  246. package/dist/hooks/useUser.js.map +0 -1
  247. package/dist/hooks/useUser.mjs +0 -2
  248. package/dist/hooks/useUser.mjs.map +0 -1
  249. package/dist/types/index.d.mts +0 -5
  250. package/dist/types/index.d.ts +0 -5
  251. package/dist/types/index.js.map +0 -1
  252. package/dist/types/index.mjs +0 -2
  253. package/dist/types/index.mjs.map +0 -1
  254. package/dist/typings.d.mts +0 -5
  255. package/dist/typings.d.ts +0 -5
  256. package/dist/typings.js +0 -2
  257. package/dist/typings.js.map +0 -1
  258. package/dist/typings.mjs +0 -1
  259. package/dist/typings.mjs.map +0 -1
  260. package/dist/utils/signal.d.mts +0 -21
  261. package/dist/utils/signal.d.ts +0 -21
  262. package/dist/utils/signal.js +0 -2
  263. package/dist/utils/signal.js.map +0 -1
  264. package/dist/utils/signal.mjs +0 -2
  265. package/dist/utils/signal.mjs.map +0 -1
  266. /package/dist/{chunk-R6PIHRXD.mjs.map → chunk-6J4XVVL4.mjs.map} +0 -0
  267. /package/dist/{bootstrap/client.mjs.map → chunk-6TIBWNPX.mjs.map} +0 -0
  268. /package/dist/{chunk-KUU3KDAE.mjs.map → chunk-7YWJADOI.mjs.map} +0 -0
  269. /package/dist/{chunk-TZXZ3UZS.mjs.map → chunk-CATZUF3K.mjs.map} +0 -0
  270. /package/dist/{chunk-KATLDJ7Z.mjs.map → chunk-EQ62HPWY.mjs.map} +0 -0
  271. /package/dist/{chunk-SYOEMO4R.mjs.map → chunk-KR3OAQKX.mjs.map} +0 -0
  272. /package/dist/{chunk-77LPS2WP.mjs.map → chunk-PXNT5WYC.mjs.map} +0 -0
  273. /package/dist/{chunk-5AIBE2QR.mjs.map → chunk-XVIYQWRZ.mjs.map} +0 -0
  274. /package/dist/{chunk-SXUJOOQY.mjs.map → chunk-Y7QBWZVQ.mjs.map} +0 -0
@@ -1,3 +0,0 @@
1
- declare function loadEnv(type: 'development' | 'production'): string | undefined;
2
-
3
- export { loadEnv };
@@ -1,3 +0,0 @@
1
- declare function loadEnv(type: 'development' | 'production'): string | undefined;
2
-
3
- export { loadEnv };
@@ -1,2 +0,0 @@
1
- "use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var loadEnv_exports={};__export(loadEnv_exports,{loadEnv:()=>loadEnv});module.exports=__toCommonJS(loadEnv_exports);var import_dotenv_cra=require("dotenv-cra");function loadEnv(type){return process.env.NODE_ENV=type,(0,import_dotenv_cra.config)().error?.message}__name(loadEnv,"loadEnv");0&&(module.exports={loadEnv});
2
- //# sourceMappingURL=loadEnv.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/bootstrap/loadEnv.ts"],"sourcesContent":["import { config } from 'dotenv-cra';\n\nexport function loadEnv(type: 'development' | 'production') {\n process.env.NODE_ENV = type;\n\n const result = config();\n\n return result.error?.message;\n}\n"],"mappings":"ouBAAA,oHAAA,sBAAuB,sBAEhB,SAAS,QAAQ,KAAoC,CAC1D,eAAQ,IAAI,SAAW,QAER,0BAAO,EAER,OAAO,OACvB,CANgB","names":[]}
@@ -1,2 +0,0 @@
1
- import{loadEnv}from"../chunk-ZJRAI4W5.mjs";import"../chunk-7KD7ZCH6.mjs";export{loadEnv};
2
- //# sourceMappingURL=loadEnv.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,2 +0,0 @@
1
- import{devOnly_default}from"./chunk-R6PIHRXD.mjs";import{permissions_default}from"./chunk-SXUJOOQY.mjs";var validations_default=[devOnly_default,permissions_default];export{validations_default};
2
- //# sourceMappingURL=chunk-5AIBE2QR.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,2 +0,0 @@
1
- import{__name}from"./chunk-7KD7ZCH6.mjs";var context=[];function createSignal(value){let subscribers=new Set,disposed=!1,val=value instanceof Function?value():value;return[__name(()=>{if(!disposed){let running=getCurrentObserver();running&&subscribers.add(running)}return val},"getter"),__name(newValue=>{if(!disposed){val=newValue instanceof Function?newValue(val):newValue;for(let subscriber of subscribers)subscriber()}},"setter"),__name(()=>{subscribers.clear(),disposed=!0},"dispose")]}__name(createSignal,"createSignal");function createEffect(callback){let execute=__name(()=>{context.push(execute);try{callback()}finally{context.pop()}},"execute");execute()}__name(createEffect,"createEffect");function getCurrentObserver(){return context[context.length-1]}__name(getCurrentObserver,"getCurrentObserver");export{createSignal,createEffect};
2
- //# sourceMappingURL=chunk-BCQP4DZP.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/signal.ts"],"sourcesContent":["export type CommandKitEffectCallback = () => void;\nexport type CommandKitSignalInitializer<T> = T | (() => T);\nexport type CommandKitSignalUpdater<T> = T | ((prev: T) => T);\nexport type CommandKitSignal<T> = readonly [\n () => T,\n (value: CommandKitSignalUpdater<T>) => void,\n () => void,\n];\n\nconst context: CommandKitEffectCallback[] = [];\n\n/**\n * Creates a new signal.\n * @param value - The initial value to use.\n * @returns An array of functions: a getter, a setter, and a disposer.\n */\nexport function createSignal<T = unknown>(\n value?: CommandKitSignalInitializer<T>,\n) {\n const subscribers = new Set<() => void>();\n\n let disposed = false;\n let val: T | undefined = value instanceof Function ? value() : value;\n\n const getter = () => {\n if (!disposed) {\n const running = getCurrentObserver();\n if (running) subscribers.add(running);\n }\n\n return val;\n };\n\n const setter = (newValue: CommandKitSignalUpdater<T>) => {\n if (disposed) return;\n val = newValue instanceof Function ? newValue(val!) : newValue;\n\n for (const subscriber of subscribers) {\n subscriber();\n }\n };\n\n const dispose = () => {\n subscribers.clear();\n disposed = true;\n };\n\n return [getter, setter, dispose] as CommandKitSignal<T>;\n}\n\n/**\n * Creates a new effect.\n * @param callback - The callback function to execute.\n */\nexport function createEffect(callback: CommandKitEffectCallback) {\n const execute = () => {\n context.push(execute);\n\n try {\n callback();\n } finally {\n context.pop();\n }\n };\n\n execute();\n}\n\n/**\n * Get the current observer.\n */\nfunction getCurrentObserver() {\n return context[context.length - 1];\n}\n"],"mappings":"yCASA,IAAM,QAAsC,CAAC,EAOtC,SAAS,aACd,MACA,CACA,IAAM,YAAc,IAAI,IAEpB,SAAW,GACX,IAAqB,iBAAiB,SAAW,MAAM,EAAI,MAyB/D,MAAO,CAvBQ,WAAM,CACnB,GAAI,CAAC,SAAU,CACb,IAAM,QAAU,mBAAmB,EAC/B,SAAS,YAAY,IAAI,OAAO,CACtC,CAEA,OAAO,GACT,EAPe,UASA,OAAC,UAAyC,CACvD,GAAI,UACJ,KAAM,oBAAoB,SAAW,SAAS,GAAI,EAAI,SAEtD,QAAW,cAAc,YACvB,WAAW,EAEf,EAPe,UASC,WAAM,CACpB,YAAY,MAAM,EAClB,SAAW,EACb,EAHgB,UAKe,CACjC,CAhCgB,oCAsCT,SAAS,aAAa,SAAoC,CAC/D,IAAM,QAAU,WAAM,CACpB,QAAQ,KAAK,OAAO,EAEpB,GAAI,CACF,SAAS,CACX,QAAE,CACA,QAAQ,IAAI,CACd,CACF,EARgB,WAUhB,QAAQ,CACV,CAZgB,oCAiBhB,SAAS,oBAAqB,CAC5B,OAAO,QAAQ,QAAQ,OAAS,CAAC,CACnC,CAFS","names":[]}
@@ -1,2 +0,0 @@
1
- import{colors_default}from"./chunk-FQGSVSCT.mjs";var Logger={Fatal:(...message)=>{console.log(colors_default.red("[FATAL ERROR]"),...message),process.exit(1)},Warning:(...message)=>{console.log(colors_default.yellow("[WARNING]"),...message)},Info:(...message)=>{console.log(colors_default.green("[INFO]"),...message)},Debug:(...message)=>{console.log(colors_default.blue("[DEBUG]"),...message)},Log:(...message)=>{console.log(...message)}};export{Logger};
2
- //# sourceMappingURL=chunk-BJCWVCAY.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/environment/common/logger.ts"],"sourcesContent":["import colors from '../../utils/colors';\n\nexport const Logger = {\n Fatal: (...message: unknown[]) => {\n console.log(colors.red('[FATAL ERROR]'), ...message);\n process.exit(1);\n },\n Warning: (...message: unknown[]) => {\n console.log(colors.yellow('[WARNING]'), ...message);\n },\n Info: (...message: unknown[]) => {\n console.log(colors.green('[INFO]'), ...message);\n },\n Debug: (...message: unknown[]) => {\n console.log(colors.blue('[DEBUG]'), ...message);\n },\n Log: (...message: unknown[]) => {\n console.log(...message);\n },\n};\n"],"mappings":"iDAEO,IAAM,OAAS,CACpB,MAAO,IAAI,UAAuB,CAChC,QAAQ,IAAI,eAAO,IAAI,eAAe,EAAG,GAAG,OAAO,EACnD,QAAQ,KAAK,CAAC,CAChB,EACA,QAAS,IAAI,UAAuB,CAClC,QAAQ,IAAI,eAAO,OAAO,WAAW,EAAG,GAAG,OAAO,CACpD,EACA,KAAM,IAAI,UAAuB,CAC/B,QAAQ,IAAI,eAAO,MAAM,QAAQ,EAAG,GAAG,OAAO,CAChD,EACA,MAAO,IAAI,UAAuB,CAChC,QAAQ,IAAI,eAAO,KAAK,SAAS,EAAG,GAAG,OAAO,CAChD,EACA,IAAK,IAAI,UAAuB,CAC9B,QAAQ,IAAI,GAAG,OAAO,CACxB,CACF","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/handlers/command-handler/functions/registerCommands.ts"],"sourcesContent":["import type {\n Guild,\n Client,\n ApplicationCommandData,\n GuildApplicationCommandManager,\n ApplicationCommandDataResolvable,\n} from 'discord.js';\nimport type { CommandFileObject, ReloadOptions } from '../../../typings';\n\nimport areSlashCommandsDifferent from '../utils/areSlashCommandsDifferent';\n\nimport colors from '../../../utils/colors';\n\ntype RegisterCommandProps = {\n client: Client;\n commands: CommandFileObject[];\n devGuildIds: string[];\n reloading?: boolean;\n type?: ReloadOptions;\n};\n\n/**\n * Register client commands to Discord.\n * @param props\n */\nexport default async function registerCommands(props: RegisterCommandProps) {\n if (props.reloading) {\n if (props.client.isReady()) {\n await handleRegistration(\n props.client,\n props.commands,\n props.devGuildIds,\n props.type,\n );\n } else {\n throw new Error(\n colors.red(`Cannot reload commands when client is not ready.`),\n );\n }\n } else {\n props.client.once('ready', async (c) => {\n await handleRegistration(\n c,\n props.commands,\n props.devGuildIds,\n props.type,\n );\n });\n }\n}\n\nasync function handleRegistration(\n client: Client<true>,\n commands: CommandFileObject[],\n devGuildIds: string[],\n type?: ReloadOptions,\n) {\n const devOnlyCommands = commands.filter((cmd) => cmd.options?.devOnly);\n const globalCommands = commands.filter((cmd) => !cmd.options?.devOnly);\n\n if (type === 'dev') {\n await registerDevCommands(client, devOnlyCommands, devGuildIds);\n } else if (type === 'global') {\n await registerGlobalCommands(client, globalCommands);\n } else {\n await registerDevCommands(client, devOnlyCommands, devGuildIds);\n await registerGlobalCommands(client, globalCommands);\n }\n}\n\nasync function registerGlobalCommands(\n client: Client<true>,\n commands: CommandFileObject[],\n) {\n const appCommandsManager = client.application.commands;\n await appCommandsManager.fetch();\n\n for (const command of commands) {\n const targetCommand = appCommandsManager.cache.find(\n (cmd) => cmd.name === command.data.name,\n );\n\n // <!-- Delete global command -->\n if (command.options?.deleted) {\n if (!targetCommand) {\n process.emitWarning(\n colors.yellow(\n `Ignoring: Command \"${command.data.name}\" is globally marked as deleted.`,\n ),\n );\n } else {\n await targetCommand.delete().catch((error) => {\n throw new Error(\n colors.red(\n `Failed to delete command \"${command.data.name}\" globally.\\n`,\n ),\n error,\n );\n });\n\n console.log(\n colors.green(`Deleted command \"${command.data.name}\" globally.`),\n );\n }\n\n continue;\n }\n\n // <!-- Edit global command -->\n if (targetCommand) {\n const commandsAreDifferent = areSlashCommandsDifferent(\n targetCommand,\n command.data,\n );\n\n if (commandsAreDifferent) {\n await targetCommand\n .edit(command.data as Partial<ApplicationCommandData>)\n .catch((error) => {\n throw new Error(\n colors.red(\n `Failed to edit command \"${command.data.name}\" globally.\\n`,\n ),\n error,\n );\n });\n\n console.log(\n colors.green(`Edited command \"${command.data.name}\" globally.`),\n );\n\n continue;\n }\n }\n\n // <!-- Register global command -->\n if (targetCommand) continue;\n\n await appCommandsManager\n .create(command.data as ApplicationCommandDataResolvable)\n .catch((error) => {\n throw new Error(\n colors.red(\n `Failed to register command \"${command.data.name}\" globally.\\n`,\n ),\n error,\n );\n });\n\n console.log(\n colors.green(`Registered command \"${command.data.name}\" globally.`),\n );\n }\n}\n\nasync function registerDevCommands(\n client: Client<true>,\n commands: CommandFileObject[],\n guildIds: string[],\n) {\n const devGuilds: Guild[] = [];\n\n for (const guildId of guildIds) {\n const guild =\n client.guilds.cache.get(guildId) || (await client.guilds.fetch(guildId));\n\n if (!guild) {\n process.emitWarning(\n colors.yellow(\n `Ignoring: Guild ${guildId} doesn't exist or client isn't part of the guild.`,\n ),\n );\n continue;\n }\n\n devGuilds.push(guild);\n }\n\n const guildCommandsManagers: GuildApplicationCommandManager[] = [];\n\n for (const guild of devGuilds) {\n const guildCommandsManager = guild.commands;\n await guildCommandsManager.fetch();\n\n guildCommandsManagers.push(guildCommandsManager);\n }\n\n for (const command of commands) {\n for (const guildCommands of guildCommandsManagers) {\n const targetCommand = guildCommands.cache.find(\n (cmd) => cmd.name === command.data.name,\n );\n\n // <!-- Delete dev command -->\n if (command.options?.deleted) {\n if (!targetCommand) {\n process.emitWarning(\n colors.yellow(\n `Ignoring: Command \"${command.data.name}\" is marked as deleted in ${guildCommands.guild.name}.`,\n ),\n );\n } else {\n await targetCommand.delete().catch((error) => {\n throw new Error(\n colors.red(\n `Failed to delete command \"${command.data.name}\" in ${guildCommands.guild.name}.`,\n ),\n error,\n );\n });\n\n console.log(\n colors.green(\n `Deleted command \"${command.data.name}\" in ${guildCommands.guild.name}.`,\n ),\n );\n }\n\n continue;\n }\n\n // <!-- Edit dev command -->\n if (targetCommand) {\n const commandsAreDifferent = areSlashCommandsDifferent(\n targetCommand,\n command.data,\n );\n\n if (commandsAreDifferent) {\n await targetCommand\n .edit(command.data as Partial<ApplicationCommandData>)\n .catch((error) => {\n throw new Error(\n colors.red(\n `Failed to edit command \"${command.data.name}\" in ${guildCommands.guild.name}.\\n`,\n ),\n error,\n );\n });\n\n console.log(\n colors.green(\n `Edited command \"${command.data.name}\" in ${guildCommands.guild.name}.`,\n ),\n );\n\n continue;\n }\n }\n\n // <!-- Register guild command -->\n if (targetCommand) continue;\n\n await guildCommands\n .create(command.data as ApplicationCommandDataResolvable)\n .catch((error) => {\n throw new Error(\n colors.red(\n `Failed to register command \"${command.data.name}\" in ${guildCommands.guild.name}.\\n`,\n ),\n error,\n );\n });\n\n console.log(\n colors.green(\n `Registered command \"${command.data.name}\" in ${guildCommands.guild.name}.`,\n ),\n );\n }\n }\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/CommandKit.ts"],"sourcesContent":["import type {\n CommandKitData,\n CommandKitOptions,\n ReloadOptions,\n} from './typings';\nimport type { CommandObject } from './types';\n\nimport { CommandHandler, EventHandler, ValidationHandler } from './handlers';\n\nimport colors from './utils/colors';\n\nexport class CommandKit {\n #data: CommandKitData;\n static _instance: CommandKit | null = null;\n\n /**\n * Create a new command and event handler with CommandKit.\n *\n * @param options - The default CommandKit configuration.\n * @see {@link https://commandkit.js.org/docs/commandkit-setup}\n */\n constructor(options: CommandKitOptions) {\n if (!options.client) {\n throw new Error(\n colors.red('\"client\" is required when instantiating CommandKit.'),\n );\n }\n\n if (options.validationsPath && !options.commandsPath) {\n throw new Error(\n colors.red('\"commandsPath\" is required when \"validationsPath\" is set.'),\n );\n }\n\n this.#data = options;\n CommandKit._instance = this;\n\n this.#init();\n }\n\n /**\n * Get the client attached to this CommandKit instance.\n */\n get client() {\n return this.#data.client;\n }\n\n /**\n * Get command handler instance.\n */\n get commandHandler() {\n return this.#data.commandHandler;\n }\n\n /**\n * (Private) Initialize CommandKit.\n */\n async #init() {\n // <!-- Setup event handler -->\n if (this.#data.eventsPath) {\n const eventHandler = new EventHandler({\n client: this.#data.client,\n eventsPath: this.#data.eventsPath,\n commandKitInstance: this,\n });\n\n await eventHandler.init();\n\n this.#data.eventHandler = eventHandler;\n }\n\n // <!-- Setup validation handler -->\n if (this.#data.validationsPath) {\n const validationHandler = new ValidationHandler({\n validationsPath: this.#data.validationsPath,\n });\n\n await validationHandler.init();\n\n this.#data.validationHandler = validationHandler;\n }\n\n // <!-- Setup command handler -->\n if (this.#data.commandsPath) {\n const commandHandler = new CommandHandler({\n client: this.#data.client,\n commandsPath: this.#data.commandsPath,\n devGuildIds: this.#data.devGuildIds || [],\n devUserIds: this.#data.devUserIds || [],\n devRoleIds: this.#data.devRoleIds || [],\n validationHandler: this.#data.validationHandler,\n skipBuiltInValidations: this.#data.skipBuiltInValidations || false,\n commandkitInstance: this,\n bulkRegister: this.#data.bulkRegister || false,\n enableHooks: this.#data.experimental?.hooks ?? false,\n });\n\n await commandHandler.init();\n\n this.#data.commandHandler = commandHandler;\n }\n }\n\n /**\n * Updates application commands with the latest from \"commandsPath\".\n */\n async reloadCommands(type?: ReloadOptions) {\n if (!this.#data.commandHandler) return;\n await this.#data.commandHandler.reloadCommands(type);\n }\n\n /**\n * Updates application events with the latest from \"eventsPath\".\n */\n async reloadEvents() {\n if (!this.#data.eventHandler) return;\n await this.#data.eventHandler.reloadEvents(this.#data.commandHandler);\n }\n\n /**\n * Updates application command validations with the latest from \"validationsPath\".\n */\n async reloadValidations() {\n if (!this.#data.validationHandler) return;\n await this.#data.validationHandler.reloadValidations();\n }\n\n /**\n * @returns An array of objects of all the commands that CommandKit is handling.\n */\n get commands(): CommandObject[] {\n if (!this.#data.commandHandler) {\n return [];\n }\n\n const commands = this.#data.commandHandler.commands.map((cmd) => {\n const { run, autocomplete, ...command } = cmd;\n return command;\n });\n\n return commands;\n }\n\n /**\n * @returns The path to the commands folder which was set when instantiating CommandKit.\n */\n get commandsPath(): string | undefined {\n return this.#data.commandsPath;\n }\n\n /**\n * @returns The path to the events folder which was set when instantiating CommandKit.\n */\n get eventsPath(): string | undefined {\n return this.#data.eventsPath;\n }\n\n /**\n * @returns The path to the validations folder which was set when instantiating CommandKit.\n */\n get validationsPath(): string | undefined {\n return this.#data.validationsPath;\n }\n\n /**\n * @returns An array of all the developer user IDs which was set when instantiating CommandKit.\n */\n get devUserIds(): string[] {\n return this.#data.devUserIds || [];\n }\n\n /**\n * @returns An array of all the developer guild IDs which was set when instantiating CommandKit.\n */\n get devGuildIds(): string[] {\n return this.#data.devGuildIds || [];\n }\n\n /**\n * @returns An array of all the developer role IDs which was set when instantiating CommandKit.\n */\n get devRoleIds(): string[] {\n return this.#data.devRoleIds || [];\n }\n}\n"],"mappings":"8OAWO,IAAM,WAAN,MAAM,WAAW,CAXxB,MAWwB,2BACtB,MACA,OAAO,UAA+B,KAQtC,YAAY,QAA4B,CACtC,GAAI,CAAC,QAAQ,OACX,MAAM,IAAI,MACR,eAAO,IAAI,qDAAqD,CAClE,EAGF,GAAI,QAAQ,iBAAmB,CAAC,QAAQ,aACtC,MAAM,IAAI,MACR,eAAO,IAAI,2DAA2D,CACxE,EAGF,KAAK,MAAQ,QACb,YAAW,UAAY,KAEvB,KAAK,MAAM,CACb,CAKA,IAAI,QAAS,CACX,OAAO,KAAK,MAAM,MACpB,CAKA,IAAI,gBAAiB,CACnB,OAAO,KAAK,MAAM,cACpB,CAKA,KAAM,OAAQ,CAEZ,GAAI,KAAK,MAAM,WAAY,CACzB,IAAM,aAAe,IAAI,aAAa,CACpC,OAAQ,KAAK,MAAM,OACnB,WAAY,KAAK,MAAM,WACvB,mBAAoB,IACtB,CAAC,EAED,MAAM,aAAa,KAAK,EAExB,KAAK,MAAM,aAAe,YAC5B,CAGA,GAAI,KAAK,MAAM,gBAAiB,CAC9B,IAAM,kBAAoB,IAAI,kBAAkB,CAC9C,gBAAiB,KAAK,MAAM,eAC9B,CAAC,EAED,MAAM,kBAAkB,KAAK,EAE7B,KAAK,MAAM,kBAAoB,iBACjC,CAGA,GAAI,KAAK,MAAM,aAAc,CAC3B,IAAM,eAAiB,IAAI,eAAe,CACxC,OAAQ,KAAK,MAAM,OACnB,aAAc,KAAK,MAAM,aACzB,YAAa,KAAK,MAAM,aAAe,CAAC,EACxC,WAAY,KAAK,MAAM,YAAc,CAAC,EACtC,WAAY,KAAK,MAAM,YAAc,CAAC,EACtC,kBAAmB,KAAK,MAAM,kBAC9B,uBAAwB,KAAK,MAAM,wBAA0B,GAC7D,mBAAoB,KACpB,aAAc,KAAK,MAAM,cAAgB,GACzC,YAAa,KAAK,MAAM,cAAc,OAAS,EACjD,CAAC,EAED,MAAM,eAAe,KAAK,EAE1B,KAAK,MAAM,eAAiB,cAC9B,CACF,CAKA,MAAM,eAAe,KAAsB,CACpC,KAAK,MAAM,gBAChB,MAAM,KAAK,MAAM,eAAe,eAAe,IAAI,CACrD,CAKA,MAAM,cAAe,CACd,KAAK,MAAM,cAChB,MAAM,KAAK,MAAM,aAAa,aAAa,KAAK,MAAM,cAAc,CACtE,CAKA,MAAM,mBAAoB,CACnB,KAAK,MAAM,mBAChB,MAAM,KAAK,MAAM,kBAAkB,kBAAkB,CACvD,CAKA,IAAI,UAA4B,CAC9B,OAAK,KAAK,MAAM,eAIC,KAAK,MAAM,eAAe,SAAS,IAAK,KAAQ,CAC/D,GAAM,CAAE,IAAK,aAAc,GAAG,OAAQ,EAAI,IAC1C,OAAO,OACT,CAAC,EANQ,CAAC,CASZ,CAKA,IAAI,cAAmC,CACrC,OAAO,KAAK,MAAM,YACpB,CAKA,IAAI,YAAiC,CACnC,OAAO,KAAK,MAAM,UACpB,CAKA,IAAI,iBAAsC,CACxC,OAAO,KAAK,MAAM,eACpB,CAKA,IAAI,YAAuB,CACzB,OAAO,KAAK,MAAM,YAAc,CAAC,CACnC,CAKA,IAAI,aAAwB,CAC1B,OAAO,KAAK,MAAM,aAAe,CAAC,CACpC,CAKA,IAAI,YAAuB,CACzB,OAAO,KAAK,MAAM,YAAc,CAAC,CACnC,CACF","names":[]}
@@ -1,2 +0,0 @@
1
- import{getConfig}from"./chunk-QYJ4DE3N.mjs";import{__name}from"./chunk-7KD7ZCH6.mjs";import{Client}from"discord.js";var discord_client;function getClient(){return discord_client}__name(getClient,"getClient");function client(){if(!discord_client)throw new Error('Client was not initialized. Make sure to run "commandkit dev" to bootstrap the client.');return discord_client}__name(client,"client");function createClient(){let config=getConfig();return discord_client=new Client(config.clientOptions),discord_client}__name(createClient,"createClient");export{getClient,client,createClient};
2
- //# sourceMappingURL=chunk-DEB7FLUS.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/bootstrap/client.ts"],"sourcesContent":["import { Client } from 'discord.js';\nimport { getConfig } from '../config';\n\nlet discord_client: Client;\n\n/**\n * @internal\n */\nexport function getClient() {\n return discord_client;\n}\n\n/**\n * Fetches the client instance. If the client instance is not initialized, an error will be thrown.\n */\nexport function client<T extends boolean = boolean>() {\n if (!discord_client) {\n throw new Error(\n 'Client was not initialized. Make sure to run \"commandkit dev\" to bootstrap the client.',\n );\n }\n\n return discord_client as Client<T>;\n}\n\nexport function createClient() {\n const config = getConfig();\n\n discord_client = new Client(config.clientOptions);\n\n return discord_client;\n}\n"],"mappings":"qFAAA,OAAS,WAAc,aAGvB,IAAI,eAKG,SAAS,WAAY,CAC1B,OAAO,cACT,CAFgB,8BAOT,SAAS,QAAsC,CACpD,GAAI,CAAC,eACH,MAAM,IAAI,MACR,wFACF,EAGF,OAAO,cACT,CARgB,wBAUT,SAAS,cAAe,CAC7B,IAAM,OAAS,UAAU,EAEzB,sBAAiB,IAAI,OAAO,OAAO,aAAa,EAEzC,cACT,CANgB","names":[]}
@@ -1,2 +0,0 @@
1
- var resetColor="\x1B[0m",colors_default={reset:text=>`${text}${resetColor}`,bright:text=>`\x1B[1m${text}${resetColor}`,dim:text=>`\x1B[2m${text}${resetColor}`,underscore:text=>`\x1B[4m${text}${resetColor}`,blink:text=>`\x1B[5m${text}${resetColor}`,reverse:text=>`\x1B[7m${text}${resetColor}`,hidden:text=>`\x1B[8m${text}${resetColor}`,black:text=>`\x1B[30m${text}${resetColor}`,red:text=>`\x1B[31m${text}${resetColor}`,green:text=>`\x1B[32m${text}${resetColor}`,yellow:text=>`\x1B[33m${text}${resetColor}`,blue:text=>`\x1B[34m${text}${resetColor}`,magenta:text=>`\x1B[35m${text}${resetColor}`,cyan:text=>`\x1B[36m${text}${resetColor}`,white:text=>`\x1B[37m${text}${resetColor}`,bgBlack:text=>`\x1B[40m${text}${resetColor}`,bgRed:text=>`\x1B[41m${text}${resetColor}`,bgGreen:text=>`\x1B[42m${text}${resetColor}`,bgYellow:text=>`\x1B[43m${text}${resetColor}`,bgBlue:text=>`\x1B[44m${text}${resetColor}`,bgMagenta:text=>`\x1B[45m${text}${resetColor}`,bgCyan:text=>`\x1B[46m${text}${resetColor}`,bgWhite:text=>`\x1B[47m${text}${resetColor}`};export{colors_default};
2
- //# sourceMappingURL=chunk-FQGSVSCT.mjs.map
@@ -1,2 +0,0 @@
1
- import{CommandKit}from"./chunk-CHI4NRSH.mjs";import{__name}from"./chunk-7KD7ZCH6.mjs";function useCommandKit(){let kit=getCommandKit();if(!kit)throw new Error("CommandKit is not initialized.");return kit}__name(useCommandKit,"useCommandKit");function useClient(){return useCommandKit().client}__name(useClient,"useClient");function useInteraction(){let data=getContext().getStore();if(!data)throw prepareHookInvocationError("useInteraction");return data.interaction}__name(useInteraction,"useInteraction");async function response(data){let interaction=useInteraction();interaction.isAutocomplete()||(interaction.replied||interaction.deferred?await interaction.editReply(data):interaction.isMessageComponent()?await interaction.update(data):await interaction.reply(data))}__name(response,"response");function useChannel(){let data=getContext().getStore();if(!data)throw prepareHookInvocationError("useChannel");return data.interaction.channel}__name(useChannel,"useChannel");function useCommandData(){let data=getContext().getStore();if(!data)throw prepareHookInvocationError("useCommandData");return data.command}__name(useCommandData,"useCommandData");function useGuild(){let data=getContext().getStore();if(!data)throw prepareHookInvocationError("useGuild");return data.interaction.guild}__name(useGuild,"useGuild");function useMember(){let data=getContext().getStore();if(!data)throw prepareHookInvocationError("useMember");return data.interaction.member}__name(useMember,"useMember");function useUser(){let data=getContext().getStore();if(!data)throw prepareHookInvocationError("useUser");return data.interaction.user}__name(useUser,"useUser");var version="0.1.11-dev.20240203230231";function getCommandKit(){return CommandKit._instance}__name(getCommandKit,"getCommandKit");function getCommandHandler(){let handler=getCommandKit()?.commandHandler;if(!handler)throw new Error("CommandKit is not initialized.");return handler}__name(getCommandHandler,"getCommandHandler");function getContext(){let info=getCommandHandler().context;if(!info)throw new Error("Context is not available, did you forget to enable hooks?");return info}__name(getContext,"getContext");function prepareHookInvocationError(name){return new Error(`Cannot invoke hook "${name}" outside of a command.`)}__name(prepareHookInvocationError,"prepareHookInvocationError");export{getCommandKit,getCommandHandler,getContext,prepareHookInvocationError,useCommandKit,useClient,useInteraction,response,useChannel,useCommandData,useGuild,useMember,useUser,version};
2
- //# sourceMappingURL=chunk-IFTUM7TS.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/hooks/useCommandKit.ts","../src/hooks/useClient.ts","../src/hooks/useInteraction.ts","../src/hooks/response.ts","../src/hooks/useChannel.ts","../src/hooks/useCommandData.ts","../src/hooks/useGuild.ts","../src/hooks/useMember.ts","../src/hooks/useUser.ts","../src/index.ts","../src/hooks/common.ts"],"sourcesContent":["import { getCommandKit } from './common';\n\nexport function useCommandKit() {\n const kit = getCommandKit();\n if (!kit) throw new Error('CommandKit is not initialized.');\n\n return kit;\n}\n","import { useCommandKit } from './useCommandKit';\n\nexport function useClient() {\n return useCommandKit().client;\n}\n","import { getContext, prepareHookInvocationError } from './common';\nimport { CommandKitInteraction } from '../handlers/command-handler/typings';\n\nexport function useInteraction<\n T extends CommandKitInteraction = CommandKitInteraction,\n>(): T {\n const data = getContext().getStore();\n\n if (!data) throw prepareHookInvocationError('useInteraction');\n\n return data.interaction as T;\n}\n","// this is partially based on sapphire's safelyReplyToInteraction helper\n\nimport type {\n ChatInputCommandInteraction,\n MessageComponentInteraction,\n PartialTextBasedChannelFields,\n} from 'discord.js';\nimport { useInteraction } from './useInteraction';\nimport { CommandKitInteraction } from '../handlers/command-handler/typings';\n\ntype ChatInputReplyData = Parameters<ChatInputCommandInteraction['reply']>[0];\ntype UpdateData = Parameters<MessageComponentInteraction['update']>[0];\ntype MessageData =\n | Parameters<PartialTextBasedChannelFields['send']>[0]\n | ChatInputReplyData;\n\nexport async function response(data: MessageData) {\n const interaction = useInteraction() as\n | CommandKitInteraction\n | MessageComponentInteraction;\n\n if (interaction.isAutocomplete()) return;\n\n if (interaction.replied || interaction.deferred) {\n await interaction.editReply(data);\n } else if (interaction.isMessageComponent()) {\n // TODO: this is not yet allowed in command handler\n await interaction.update(data as UpdateData);\n } else {\n await interaction.reply(data as ChatInputReplyData);\n }\n\n // TODO: handle message based commands\n}\n","import type { TextBasedChannel } from 'discord.js';\nimport { getContext, prepareHookInvocationError } from './common';\n\nexport function useChannel(): TextBasedChannel | null {\n const data = getContext().getStore();\n\n if (!data) throw prepareHookInvocationError('useChannel');\n\n return data.interaction.channel;\n}\n","import { getContext, prepareHookInvocationError } from './common';\n\nexport function useCommandData() {\n const data = getContext().getStore();\n\n if (!data) throw prepareHookInvocationError('useCommandData');\n\n return data.command;\n}\n","import type { Guild } from 'discord.js';\nimport { getContext, prepareHookInvocationError } from './common';\n\nexport function useGuild(): Guild | null {\n const data = getContext().getStore();\n\n if (!data) throw prepareHookInvocationError('useGuild');\n\n return data.interaction.guild;\n}\n","import type { APIInteractionGuildMember, GuildMember } from 'discord.js';\nimport { getContext, prepareHookInvocationError } from './common';\n\nexport function useMember(): GuildMember | APIInteractionGuildMember | null {\n const data = getContext().getStore();\n\n if (!data) throw prepareHookInvocationError('useMember');\n\n return data.interaction.member;\n}\n","import type { User } from 'discord.js';\nimport { getContext, prepareHookInvocationError } from './common';\n\nexport function useUser(): User {\n const data = getContext().getStore();\n\n if (!data) throw prepareHookInvocationError('useUser');\n\n return data.interaction.user;\n}\n","export * from './CommandKit';\nexport * from './components';\nexport * from './config';\nexport * from './utils/signal';\nexport * from './hooks';\nexport { client } from './bootstrap/client';\nexport type * from './types';\n\n/**\n * The current version of CommandKit.\n */\n// Note to developers: This needs to explicitly be `string` so it is not typed as a \"const string\" that gets injected by esbuild\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const version: string = '0.1.11-dev.20240203230231';\n","import { CommandKit } from '..';\n\nexport function getCommandKit() {\n return CommandKit._instance;\n}\n\nexport function getCommandHandler() {\n const handler = getCommandKit()?.commandHandler;\n\n if (!handler) {\n throw new Error('CommandKit is not initialized.');\n }\n\n return handler;\n}\n\nexport function getContext() {\n const info = getCommandHandler().context;\n if (!info) {\n throw new Error(\n 'Context is not available, did you forget to enable hooks?',\n );\n }\n\n return info;\n}\n\nexport function prepareHookInvocationError(name: string) {\n return new Error(`Cannot invoke hook \"${name}\" outside of a command.`);\n}\n"],"mappings":"sFAEO,SAAS,eAAgB,CAC9B,IAAM,IAAM,cAAc,EAC1B,GAAI,CAAC,IAAK,MAAM,IAAI,MAAM,gCAAgC,EAE1D,OAAO,GACT,CALgB,sCCAT,SAAS,WAAY,CAC1B,OAAO,cAAc,EAAE,MACzB,CAFgB,8BCCT,SAAS,gBAET,CACL,IAAM,KAAO,WAAW,EAAE,SAAS,EAEnC,GAAI,CAAC,KAAM,MAAM,2BAA2B,gBAAgB,EAE5D,OAAO,KAAK,WACd,CARgB,wCCahB,eAAsB,SAAS,KAAmB,CAChD,IAAM,YAAc,eAAe,EAI/B,YAAY,eAAe,IAE3B,YAAY,SAAW,YAAY,SACrC,MAAM,YAAY,UAAU,IAAI,EACvB,YAAY,mBAAmB,EAExC,MAAM,YAAY,OAAO,IAAkB,EAE3C,MAAM,YAAY,MAAM,IAA0B,EAItD,CAjBsB,4BCbf,SAAS,YAAsC,CACpD,IAAM,KAAO,WAAW,EAAE,SAAS,EAEnC,GAAI,CAAC,KAAM,MAAM,2BAA2B,YAAY,EAExD,OAAO,KAAK,YAAY,OAC1B,CANgB,gCCDT,SAAS,gBAAiB,CAC/B,IAAM,KAAO,WAAW,EAAE,SAAS,EAEnC,GAAI,CAAC,KAAM,MAAM,2BAA2B,gBAAgB,EAE5D,OAAO,KAAK,OACd,CANgB,wCCCT,SAAS,UAAyB,CACvC,IAAM,KAAO,WAAW,EAAE,SAAS,EAEnC,GAAI,CAAC,KAAM,MAAM,2BAA2B,UAAU,EAEtD,OAAO,KAAK,YAAY,KAC1B,CANgB,4BCAT,SAAS,WAA4D,CAC1E,IAAM,KAAO,WAAW,EAAE,SAAS,EAEnC,GAAI,CAAC,KAAM,MAAM,2BAA2B,WAAW,EAEvD,OAAO,KAAK,YAAY,MAC1B,CANgB,8BCAT,SAAS,SAAgB,CAC9B,IAAM,KAAO,WAAW,EAAE,SAAS,EAEnC,GAAI,CAAC,KAAM,MAAM,2BAA2B,SAAS,EAErD,OAAO,KAAK,YAAY,IAC1B,CANgB,0BCUT,IAAM,QAAkB,4BCXxB,SAAS,eAAgB,CAC9B,OAAO,WAAW,SACpB,CAFgB,sCAIT,SAAS,mBAAoB,CAClC,IAAM,QAAU,cAAc,GAAG,eAEjC,GAAI,CAAC,QACH,MAAM,IAAI,MAAM,gCAAgC,EAGlD,OAAO,OACT,CARgB,8CAUT,SAAS,YAAa,CAC3B,IAAM,KAAO,kBAAkB,EAAE,QACjC,GAAI,CAAC,KACH,MAAM,IAAI,MACR,2DACF,EAGF,OAAO,IACT,CATgB,gCAWT,SAAS,2BAA2B,KAAc,CACvD,OAAO,IAAI,MAAM,uBAAuB,IAAI,yBAAyB,CACvE,CAFgB","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/handlers/command-handler/CommandHandler.ts"],"sourcesContent":["import type {\n CommandHandlerData,\n CommandHandlerOptions,\n CommandKitInteraction,\n} from './typings';\nimport type { CommandFileObject, ReloadOptions } from '../../typings';\n\nimport { toFileURL } from '../../utils/resolve-file-url';\nimport { getFilePaths } from '../../utils/get-paths';\nimport { clone } from '../../utils/clone';\n\nimport loadCommandsWithRest from './functions/loadCommandsWithRest';\nimport registerCommands from './functions/registerCommands';\nimport builtInValidationsFunctions from './validations';\nimport colors from '../../utils/colors';\nimport { AsyncLocalStorage } from 'async_hooks';\nimport type { CommandData } from '../../types';\n\nexport interface hCommandContext {\n interaction: CommandKitInteraction;\n command: CommandData;\n}\n\n/**\n * A handler for client application commands.\n */\nexport class CommandHandler {\n #data: CommandHandlerData;\n context: AsyncLocalStorage<hCommandContext> | null = null;\n\n constructor({ ...options }: CommandHandlerOptions) {\n this.#data = {\n ...options,\n builtInValidations: [],\n commands: [],\n };\n }\n\n async init() {\n if (this.#data.enableHooks && !this.context) {\n this.context = new AsyncLocalStorage();\n }\n await this.#buildCommands();\n\n this.#buildBuiltInValidations();\n\n const devOnlyCommands = this.#data.commands.filter(\n (cmd) => cmd.options?.devOnly,\n );\n\n if (devOnlyCommands.length && !this.#data.devGuildIds.length) {\n process.emitWarning(\n colors.yellow(\n 'You have commands marked as \"devOnly\", but \"devGuildIds\" have not been set.',\n ),\n );\n }\n\n if (\n devOnlyCommands.length &&\n !this.#data.devUserIds.length &&\n !this.#data.devRoleIds.length\n ) {\n process.emitWarning(\n colors.yellow(\n 'You have commands marked as \"devOnly\", but \"devUserIds\" or \"devRoleIds\" have not been set.',\n ),\n );\n }\n\n if (this.#data.bulkRegister) {\n await loadCommandsWithRest({\n client: this.#data.client,\n devGuildIds: this.#data.devGuildIds,\n commands: this.#data.commands,\n });\n } else {\n await registerCommands({\n client: this.#data.client,\n devGuildIds: this.#data.devGuildIds,\n commands: this.#data.commands,\n });\n }\n\n this.handleCommands();\n }\n\n async #buildCommands() {\n const allowedExtensions = /\\.(js|mjs|cjs|ts)$/i;\n const paths = await getFilePaths(this.#data.commandsPath, true);\n\n const commandFilePaths = paths.filter((path) =>\n allowedExtensions.test(path),\n );\n\n for (const commandFilePath of commandFilePaths) {\n const modulePath = toFileURL(commandFilePath);\n\n const importedObj = await import(`${modulePath}?t=${Date.now()}`);\n let commandObj: CommandFileObject = clone(importedObj); // Make commandObj extensible\n\n // If it's CommonJS, invalidate the import cache\n if (typeof module !== 'undefined' && typeof require !== 'undefined') {\n delete require.cache[require.resolve(commandFilePath)];\n }\n\n const compactFilePath =\n commandFilePath.split(process.cwd())[1] || commandFilePath;\n\n if (commandObj.default)\n commandObj = commandObj.default as CommandFileObject;\n\n // Ensure builder properties\n if (importedObj.default) {\n commandObj.data = importedObj.default.data;\n } else {\n commandObj.data = importedObj.data;\n }\n\n if (!commandObj.data) {\n process.emitWarning(\n colors.yellow(\n `Ignoring: Command file ${compactFilePath} does not export \"data\".`,\n ),\n );\n continue;\n }\n\n if (!commandObj.data.name) {\n process.emitWarning(\n colors.yellow(\n `Ignoring: Command file ${compactFilePath} does not export \"data.name\".`,\n ),\n );\n continue;\n }\n\n if (!commandObj.run) {\n process.emitWarning(\n colors.yellow(\n `Ignoring: Command file ${commandObj.data.name} does not export \"run\".`,\n ),\n );\n continue;\n }\n\n if (typeof commandObj.run !== 'function') {\n process.emitWarning(\n colors.yellow(\n `Ignoring: Command file ${commandObj.data.name} does not export \"run\" as a function.`,\n ),\n );\n continue;\n }\n\n commandObj.filePath = commandFilePath;\n\n let commandCategory =\n commandFilePath\n .split(this.#data.commandsPath)[1]\n ?.replace(/\\\\\\\\|\\\\/g, '/')\n .split('/')[1] || null;\n\n if (commandCategory && allowedExtensions.test(commandCategory)) {\n commandObj.category = null;\n } else {\n commandObj.category = commandCategory;\n }\n\n this.#data.commands.push(commandObj);\n }\n }\n\n #buildBuiltInValidations() {\n for (const builtInValidationFunction of builtInValidationsFunctions) {\n this.#data.builtInValidations.push(builtInValidationFunction);\n }\n }\n\n handleCommands() {\n const areHooksEnabled = this.#data.enableHooks;\n\n this.#data.client.on('interactionCreate', async (interaction) => {\n if (\n !interaction.isChatInputCommand() &&\n !interaction.isContextMenuCommand() &&\n !interaction.isAutocomplete()\n )\n return;\n\n const isAutocomplete = interaction.isAutocomplete();\n\n const targetCommand = this.#data.commands.find(\n (cmd) => cmd.data.name === interaction.commandName,\n );\n\n if (!targetCommand) return;\n\n const { data, options, run, autocomplete, ...rest } = targetCommand;\n\n // Skip if autocomplete handler is not defined\n if (isAutocomplete && !autocomplete) return;\n\n const executor = async () => {\n const commandObj = {\n data: targetCommand.data,\n options: targetCommand.options,\n ...rest,\n };\n\n if (this.#data.validationHandler) {\n let canRun = true;\n\n for (const validationFunction of this.#data.validationHandler\n .validations) {\n const stopValidationLoop = await validationFunction({\n interaction,\n commandObj,\n client: this.#data.client,\n handler: this.#data.commandkitInstance,\n });\n\n if (stopValidationLoop) {\n canRun = false;\n break;\n }\n }\n\n if (!canRun) return;\n }\n\n let canRun = true;\n\n // If custom validations pass and !skipBuiltInValidations, run built-in CommandKit validation functions\n if (!this.#data.skipBuiltInValidations) {\n for (const validation of this.#data.builtInValidations) {\n const stopValidationLoop = validation({\n targetCommand,\n interaction,\n handlerData: this.#data,\n });\n\n if (stopValidationLoop) {\n canRun = false;\n break;\n }\n }\n }\n\n if (!canRun) return;\n\n const command = targetCommand[isAutocomplete ? 'autocomplete' : 'run']!;\n\n // if hooks are not enabled, pass the context to the command via its arguments\n if (!areHooksEnabled) {\n const context = {\n interaction,\n client: this.#data.client,\n handler: this.#data.commandkitInstance,\n };\n return await command(context);\n }\n\n // @ts-expect-error - context data is not passed when hooks are enabled\n return command();\n };\n\n if (this.context)\n return this.context.run(\n {\n command: targetCommand.data,\n interaction,\n },\n executor,\n );\n return executor();\n });\n }\n\n get commands() {\n return this.#data.commands;\n }\n\n async reloadCommands(type?: ReloadOptions) {\n if (!this.#data.commandsPath) {\n throw new Error(\n colors.red(\n 'Cannot reload commands as \"commandsPath\" was not provided when instantiating CommandKit.',\n ),\n );\n }\n\n this.#data.commands = [];\n\n // Re-build commands tree\n await this.#buildCommands();\n\n if (this.#data.bulkRegister) {\n await loadCommandsWithRest({\n client: this.#data.client,\n devGuildIds: this.#data.devGuildIds,\n commands: this.#data.commands,\n reloading: true,\n type,\n });\n } else {\n await registerCommands({\n client: this.#data.client,\n devGuildIds: this.#data.devGuildIds,\n commands: this.#data.commands,\n reloading: true,\n type,\n });\n }\n }\n}\n"],"mappings":"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","names":["canRun"]}
@@ -1,2 +0,0 @@
1
- import{getConfig}from"./chunk-QYJ4DE3N.mjs";import{__name}from"./chunk-7KD7ZCH6.mjs";import{build}from"tsup";import{join}from"path";function bundle(mode){switch(mode){case"development":return buildDevelopment();default:throw new Error("Not implemented")}}__name(bundle,"bundle");function buildDevelopment(){let{watch}=getConfig(),outDir=join(process.cwd(),".commandkit");return build({clean:!0,format:["esm"],bundle:!1,dts:!1,skipNodeModulesBundle:!0,minify:!1,shims:!0,sourcemap:"inline",keepNames:!0,outDir:".commandkit",silent:!0,entry:["src"],watch,async onSuccess(){}}).then(()=>join(outDir,"client.mjs"))}__name(buildDevelopment,"buildDevelopment");export{bundle};
2
- //# sourceMappingURL=chunk-QC2F7O3S.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/environment/bundler/bundle.ts"],"sourcesContent":["import { build } from 'tsup';\nimport { getConfig } from '../../config';\nimport { join } from 'path';\n\nexport function bundle(mode: 'development' | 'production') {\n switch (mode) {\n case 'development':\n return buildDevelopment();\n default:\n throw new Error('Not implemented');\n }\n}\n\nfunction buildDevelopment() {\n const { watch } = getConfig();\n\n const outDir = join(process.cwd(), '.commandkit');\n\n return build({\n clean: true,\n format: ['esm'],\n bundle: false,\n dts: false,\n skipNodeModulesBundle: true,\n minify: false,\n shims: true,\n sourcemap: 'inline',\n keepNames: true,\n outDir: '.commandkit',\n silent: true,\n entry: ['src'],\n watch,\n async onSuccess() {\n // return await injectShims('.commandkit', main, false, requirePolyfill);\n },\n }).then(() => {\n return join(outDir, 'client.mjs');\n });\n}\n"],"mappings":"qFAAA,OAAS,UAAa,OAEtB,OAAS,SAAY,OAEd,SAAS,OAAO,KAAoC,CACzD,OAAQ,KAAM,CACZ,IAAK,cACH,OAAO,iBAAiB,EAC1B,QACE,MAAM,IAAI,MAAM,iBAAiB,CACrC,CACF,CAPgB,wBAShB,SAAS,kBAAmB,CAC1B,GAAM,CAAE,KAAM,EAAI,UAAU,EAEtB,OAAS,KAAK,QAAQ,IAAI,EAAG,aAAa,EAEhD,OAAO,MAAM,CACX,MAAO,GACP,OAAQ,CAAC,KAAK,EACd,OAAQ,GACR,IAAK,GACL,sBAAuB,GACvB,OAAQ,GACR,MAAO,GACP,UAAW,SACX,UAAW,GACX,OAAQ,cACR,OAAQ,GACR,MAAO,CAAC,KAAK,EACb,MACA,MAAM,WAAY,CAElB,CACF,CAAC,EAAE,KAAK,IACC,KAAK,OAAQ,YAAY,CACjC,CACH,CAzBS","names":[]}
@@ -1,2 +0,0 @@
1
- import{__name}from"./chunk-7KD7ZCH6.mjs";var globalConfig={envExtra:!0,outDir:"dist",watch:!0,clearRestartLogs:!0,minify:!1,sourcemap:!1,nodeOptions:[],antiCrash:!0,requirePolyfill:!0,token:process.env.DISCORD_TOKEN};function getConfig(){return globalConfig}__name(getConfig,"getConfig");var requiredProps=["clientOptions"];function defineConfig(config){for(let prop of requiredProps)if(!config[prop])throw new Error(`[CommandKit Config] Missing required config property: ${prop}`);return globalConfig={...globalConfig,...config},globalConfig}__name(defineConfig,"defineConfig");export{getConfig,defineConfig};
2
- //# sourceMappingURL=chunk-QYJ4DE3N.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/config.ts"],"sourcesContent":["import type { ClientOptions } from 'discord.js';\n\nexport interface CommandKitConfig {\n /**\n * The Discord client options.\n */\n clientOptions: ClientOptions;\n /**\n * The Discord bot token. Defaults to `process.env.DISCORD_TOKEN`.\n */\n token?: string;\n /**\n * Whether or not to use the watch mode. Defaults to `true`.\n */\n watch: boolean;\n /**\n * The output directory of the project. Defaults to `dist`.\n */\n outDir: string;\n /**\n * Whether or not to include extra env utilities. Defaults to `true`.\n */\n envExtra: boolean;\n /**\n * Node.js cli options.\n */\n nodeOptions: string[];\n /**\n * Whether or not to clear default restart logs. Defaults to `true`.\n */\n clearRestartLogs: boolean;\n /**\n * Whether or not to minify the output. Defaults to `false`.\n */\n minify: boolean;\n /**\n * Whether or not to include sourcemaps in production build. Defaults to `false`.\n */\n sourcemap: boolean | 'inline';\n /**\n * Whether or not to include anti-crash handler in production. Defaults to `true`.\n */\n antiCrash: boolean;\n /**\n * Whether or not to polyfill `require` function. Defaults to `true`.\n */\n requirePolyfill: boolean;\n}\n\nlet globalConfig: Partial<CommandKitConfig> = {\n envExtra: true,\n outDir: 'dist',\n watch: true,\n clearRestartLogs: true,\n minify: false,\n sourcemap: false,\n nodeOptions: [],\n antiCrash: true,\n requirePolyfill: true,\n token: process.env.DISCORD_TOKEN,\n};\n\nexport function getConfig(): CommandKitConfig {\n return globalConfig as CommandKitConfig;\n}\n\nconst requiredProps = ['clientOptions'] as const;\n\ntype R = (typeof requiredProps)[number];\n\ntype PartialConfig<T extends CommandKitConfig> = Partial<Omit<T, R>> &\n Pick<T, R>;\n\nexport function defineConfig(config: PartialConfig<CommandKitConfig>) {\n for (const prop of requiredProps) {\n if (!config[prop]) {\n throw new Error(\n `[CommandKit Config] Missing required config property: ${prop}`,\n );\n }\n }\n\n globalConfig = {\n ...globalConfig,\n ...config,\n };\n\n return globalConfig;\n}\n"],"mappings":"yCAiDA,IAAI,aAA0C,CAC5C,SAAU,GACV,OAAQ,OACR,MAAO,GACP,iBAAkB,GAClB,OAAQ,GACR,UAAW,GACX,YAAa,CAAC,EACd,UAAW,GACX,gBAAiB,GACjB,MAAO,QAAQ,IAAI,aACrB,EAEO,SAAS,WAA8B,CAC5C,OAAO,YACT,CAFgB,8BAIhB,IAAM,cAAgB,CAAC,eAAe,EAO/B,SAAS,aAAa,OAAyC,CACpE,QAAW,QAAQ,cACjB,GAAI,CAAC,OAAO,IAAI,EACd,MAAM,IAAI,MACR,yDAAyD,IAAI,EAC/D,EAIJ,oBAAe,CACb,GAAG,aACH,GAAG,MACL,EAEO,YACT,CAfgB","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/handlers/command-handler/functions/loadCommandsWithRest.ts"],"sourcesContent":["import type { ApplicationCommandDataResolvable, Client } from 'discord.js';\nimport type { CommandFileObject, ReloadOptions } from '../../../typings';\n\nimport colors from '../../../utils/colors';\n\ntype LoadCommandsWithRestProps = {\n /**\n * The main client.\n */\n client: Client;\n\n /**\n * An array of command objects.\n */\n commands: CommandFileObject[];\n\n /**\n * An array of developer guild IDs.\n */\n devGuildIds: string[];\n\n /**\n * A boolean indicating whether these commands are reloading.\n */\n reloading?: boolean;\n\n /**\n * A type for reloading the commands (if this is reloading).\n */\n type?: ReloadOptions;\n};\n\n/**\n * Use REST to load commands.\n * @param props - Options for loading commands.\n */\nexport default async function loadCommandsWithRest(\n props: LoadCommandsWithRestProps,\n) {\n if (props.reloading) {\n if (props.client.isReady()) {\n await handleLoading(\n props.client,\n props.commands,\n props.devGuildIds,\n props.reloading,\n props.type,\n );\n } else {\n throw new Error(\n colors.red(`Cannot reload commands when client is not ready.`),\n );\n }\n } else {\n props.client.once('ready', async (c) => {\n await handleLoading(\n c,\n props.commands,\n props.devGuildIds,\n props.reloading,\n props.type,\n );\n });\n }\n}\n\n/**\n * Handles loading commands.\n * @param client - The discord.js client instance.\n * @param commands - An array of command file objects.\n * @param devGuildIds - An array of developer guild IDs.\n * @param reloading - A boolean indicating whether this is reloading.\n * @param type - A type for reloading the commands (if this is reloading).\n */\nasync function handleLoading(\n client: Client<true>,\n commands: CommandFileObject[],\n devGuildIds: string[],\n reloading?: boolean,\n type?: ReloadOptions,\n) {\n commands = commands.filter((cmd) => !cmd.options?.deleted);\n const devOnlyCommands = commands.filter((cmd) => cmd.options?.devOnly);\n const globalCommands = commands.filter((cmd) => !cmd.options?.devOnly);\n\n if (type === 'dev') {\n await loadDevCommands(client, devOnlyCommands, devGuildIds, reloading);\n } else if (type === 'global') {\n await loadGlobalCommands(client, globalCommands, reloading);\n } else {\n await loadDevCommands(client, devOnlyCommands, devGuildIds, reloading);\n await loadGlobalCommands(client, globalCommands, reloading);\n }\n}\n\n/**\n * Load commands globally.\n * @param client - The discord.js client instance.\n * @param commands - An array of command file objects.\n * @param reloading - A boolean indicating whether the commands are reloading.\n */\nasync function loadGlobalCommands(\n client: Client<true>,\n commands: CommandFileObject[],\n reloading?: boolean,\n) {\n const requestBody = commands.map((cmd) => cmd.data);\n\n await client.application.commands\n .set(requestBody as ApplicationCommandDataResolvable[])\n .catch((error) => {\n throw new Error(\n colors.red(\n `Error ${\n reloading ? 'reloading' : 'loading'\n } global application commands.\\n`,\n ),\n error,\n );\n });\n\n console.log(\n colors.green(\n `${reloading ? 'Reloaded' : 'Loaded'} ${\n requestBody.length\n } global commands.`,\n ),\n );\n}\n\n/**\n * Load commands for dev guilds.\n * @param client - The discord.js client instance.\n * @param commands - An array of command file objects.\n * @param guildIds - An array of developer guild IDs.\n * @param reloading - A boolean indicating whether the commands are reloading.\n */\nasync function loadDevCommands(\n client: Client<true>,\n commands: CommandFileObject[],\n guildIds: string[],\n reloading?: boolean,\n) {\n const requestBody = commands.map((cmd) => cmd.data);\n\n for (const guildId of guildIds) {\n const targetGuild =\n client.guilds.cache.get(guildId) || (await client.guilds.fetch(guildId));\n\n if (!targetGuild) {\n process.emitWarning(\n `Cannot ${\n reloading ? 'reload' : 'load'\n } commands in guild \"${guildId}\" - guild doesn't exist or client isn't part of the guild.`,\n );\n\n continue;\n }\n\n await targetGuild.commands\n .set(requestBody as ApplicationCommandDataResolvable[])\n .catch((error) => {\n throw new Error(\n colors.red(\n `Error ${\n reloading ? 'reloading' : 'loading'\n } developer application commands in guild \"${\n targetGuild?.name || guildId\n }\".\\n`,\n ),\n error,\n );\n });\n\n console.log(\n colors.green(\n `${reloading ? 'Reloaded' : 'Loaded'} ${\n requestBody.length\n } developer commands in guild \"${targetGuild.name}\".`,\n ),\n );\n }\n}\n"],"mappings":"0FAoCA,eAAO,qBACL,MACA,CACA,GAAI,MAAM,UACR,GAAI,MAAM,OAAO,QAAQ,EACvB,MAAM,cACJ,MAAM,OACN,MAAM,SACN,MAAM,YACN,MAAM,UACN,MAAM,IACR,MAEA,OAAM,IAAI,MACR,eAAO,IAAI,kDAAkD,CAC/D,OAGF,MAAM,OAAO,KAAK,QAAS,MAAO,GAAM,CACtC,MAAM,cACJ,EACA,MAAM,SACN,MAAM,YACN,MAAM,UACN,MAAM,IACR,CACF,CAAC,CAEL,CA5B8B,oDAsC9B,eAAe,cACb,OACA,SACA,YACA,UACA,KACA,CACA,SAAW,SAAS,OAAQ,KAAQ,CAAC,IAAI,SAAS,OAAO,EACzD,IAAM,gBAAkB,SAAS,OAAQ,KAAQ,IAAI,SAAS,OAAO,EAC/D,eAAiB,SAAS,OAAQ,KAAQ,CAAC,IAAI,SAAS,OAAO,EAEjE,OAAS,MACX,MAAM,gBAAgB,OAAQ,gBAAiB,YAAa,SAAS,EAC5D,OAAS,SAClB,MAAM,mBAAmB,OAAQ,eAAgB,SAAS,GAE1D,MAAM,gBAAgB,OAAQ,gBAAiB,YAAa,SAAS,EACrE,MAAM,mBAAmB,OAAQ,eAAgB,SAAS,EAE9D,CAnBe,sCA2Bf,eAAe,mBACb,OACA,SACA,UACA,CACA,IAAM,YAAc,SAAS,IAAK,KAAQ,IAAI,IAAI,EAElD,MAAM,OAAO,YAAY,SACtB,IAAI,WAAiD,EACrD,MAAO,OAAU,CAChB,MAAM,IAAI,MACR,eAAO,IACL,SACE,UAAY,YAAc,SAC5B;AAAA,CACF,EACA,KACF,CACF,CAAC,EAEH,QAAQ,IACN,eAAO,MACL,GAAG,UAAY,WAAa,QAAQ,IAClC,YAAY,MACd,mBACF,CACF,CACF,CA3Be,gDAoCf,eAAe,gBACb,OACA,SACA,SACA,UACA,CACA,IAAM,YAAc,SAAS,IAAK,KAAQ,IAAI,IAAI,EAElD,QAAW,WAAW,SAAU,CAC9B,IAAM,YACJ,OAAO,OAAO,MAAM,IAAI,OAAO,GAAM,MAAM,OAAO,OAAO,MAAM,OAAO,EAExE,GAAI,CAAC,YAAa,CAChB,QAAQ,YACN,UACE,UAAY,SAAW,MACzB,uBAAuB,OAAO,4DAChC,EAEA,QACF,CAEA,MAAM,YAAY,SACf,IAAI,WAAiD,EACrD,MAAO,OAAU,CAChB,MAAM,IAAI,MACR,eAAO,IACL,SACE,UAAY,YAAc,SAC5B,6CACE,aAAa,MAAQ,OACvB;AAAA,CACF,EACA,KACF,CACF,CAAC,EAEH,QAAQ,IACN,eAAO,MACL,GAAG,UAAY,WAAa,QAAQ,IAClC,YAAY,MACd,iCAAiC,YAAY,IAAI,IACnD,CACF,CACF,CACF,CA7Ce","names":[]}
@@ -1,2 +0,0 @@
1
- import{bundle}from"./chunk-QC2F7O3S.mjs";import{findConfigPath,importConfig}from"./chunk-UV2LVAQV.mjs";import{Logger}from"./chunk-BJCWVCAY.mjs";import{colors_default}from"./chunk-FQGSVSCT.mjs";import{createClient,getClient}from"./chunk-DEB7FLUS.mjs";import{loadEnv}from"./chunk-ZJRAI4W5.mjs";import{__name}from"./chunk-7KD7ZCH6.mjs";var commandkitVersion="0.1.11-dev.20240203230231";function printBanner(){let banner=colors_default.magenta(`\u25C6 CommandKit ${commandkitVersion}`);Logger.Log(banner),Logger.Info("Initializing the development environment...")}__name(printBanner,"printBanner");async function initializeDevelopmentEnvironment(args){if(printBanner(),getClient()){Logger.Fatal("The development environment is already initialized.");return}let envErr=loadEnv("development");envErr?Logger.Warning("Failed to load .env",envErr):Logger.Debug("Loaded .env");let configPath=await findConfigPath(args.config??process.cwd());if(!configPath){let msg=`Could not locate the commandkit config file${args.config?" at "+args.config:" in the current working directory"}.`;Logger.Fatal(msg);return}try{var config=await importConfig(configPath);Logger.Debug("Loaded config from",colors_default.yellow(configPath))}catch(e){Logger.Warning("Failed to load config"),Logger.Fatal(colors_default.red(e.stack??`${e}`));return}let client=createClient(),entrypoint=await bundle("development");try{await import(`file://${entrypoint}`),await client.login(config.token)}catch(e){Logger.Fatal("Failed to load the client entrypoint",e)}}__name(initializeDevelopmentEnvironment,"initializeDevelopmentEnvironment");export{initializeDevelopmentEnvironment};
2
- //# sourceMappingURL=chunk-SB3FAFCD.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/environment/actions/development.ts"],"sourcesContent":["import type yargs from 'yargs';\nimport { findConfigPath, importConfig } from '../common/config';\nimport colors from '../../utils/colors';\nimport { Logger } from '../common/logger';\nimport { loadEnv } from '../../bootstrap/loadEnv';\nimport { createClient, getClient } from '../../bootstrap/client';\nimport { bundle } from '../bundler/bundle';\n\nconst commandkitVersion = '0.1.11-dev.20240203230231';\n\nfunction printBanner() {\n const banner = colors.magenta(\n `${String.fromCharCode(9670)} CommandKit ${commandkitVersion}`,\n );\n Logger.Log(banner);\n Logger.Info('Initializing the development environment...');\n}\n\nexport async function initializeDevelopmentEnvironment(\n args: yargs.ArgumentsCamelCase<{\n config?: string | undefined;\n nodeOptions?: string | undefined;\n }>,\n) {\n printBanner();\n\n if (getClient()) {\n Logger.Fatal('The development environment is already initialized.');\n return;\n }\n\n const envErr = loadEnv('development');\n\n if (envErr) {\n Logger.Warning('Failed to load .env', envErr);\n } else {\n Logger.Debug('Loaded .env');\n }\n\n const configPath = await findConfigPath(args.config ?? process.cwd());\n if (!configPath) {\n const msg = `Could not locate the commandkit config file${\n args.config ? ' at ' + args.config : ' in the current working directory'\n }.`;\n Logger.Fatal(msg);\n return;\n }\n\n try {\n var config = await importConfig(configPath);\n Logger.Debug('Loaded config from', colors.yellow(configPath));\n } catch (e) {\n Logger.Warning('Failed to load config');\n Logger.Fatal(colors.red((e as Error).stack ?? `${e}`));\n return;\n }\n\n const client = createClient();\n\n // build the project\n const entrypoint = await bundle('development');\n\n try {\n // load the client entrypoint\n await import(`file://${entrypoint}`);\n await client.login(config.token);\n } catch (e) {\n Logger.Fatal('Failed to load the client entrypoint', e);\n }\n}\n"],"mappings":"6UAQA,IAAM,kBAAoB,4BAE1B,SAAS,aAAc,CACrB,IAAM,OAAS,eAAO,QACpB,qBAA2C,iBAAiB,EAC9D,EACA,OAAO,IAAI,MAAM,EACjB,OAAO,KAAK,6CAA6C,CAC3D,CANS,kCAQT,eAAsB,iCACpB,KAIA,CAGA,GAFA,YAAY,EAER,UAAU,EAAG,CACf,OAAO,MAAM,qDAAqD,EAClE,MACF,CAEA,IAAM,OAAS,QAAQ,aAAa,EAEhC,OACF,OAAO,QAAQ,sBAAuB,MAAM,EAE5C,OAAO,MAAM,aAAa,EAG5B,IAAM,WAAa,MAAM,eAAe,KAAK,QAAU,QAAQ,IAAI,CAAC,EACpE,GAAI,CAAC,WAAY,CACf,IAAM,IAAM,8CACV,KAAK,OAAS,OAAS,KAAK,OAAS,mCACvC,IACA,OAAO,MAAM,GAAG,EAChB,MACF,CAEA,GAAI,CACF,IAAI,OAAS,MAAM,aAAa,UAAU,EAC1C,OAAO,MAAM,qBAAsB,eAAO,OAAO,UAAU,CAAC,CAC9D,OAAS,EAAG,CACV,OAAO,QAAQ,uBAAuB,EACtC,OAAO,MAAM,eAAO,IAAK,EAAY,OAAS,GAAG,CAAC,EAAE,CAAC,EACrD,MACF,CAEA,IAAM,OAAS,aAAa,EAGtB,WAAa,MAAM,OAAO,aAAa,EAE7C,GAAI,CAEF,MAAM,OAAO,UAAU,UAAU,IACjC,MAAM,OAAO,MAAM,OAAO,KAAK,CACjC,OAAS,EAAG,CACV,OAAO,MAAM,uCAAwC,CAAC,CACxD,CACF,CAnDsB","names":[]}
@@ -1,2 +0,0 @@
1
- import{__name}from"./chunk-7KD7ZCH6.mjs";import{existsSync}from"node:fs";import{join}from"node:path";var ConfigLookupPaths=["js","cjs","mjs"];async function findConfigPath(relative){for(let extension of ConfigLookupPaths){let path=join(relative,`commandkit.${extension}`);if(existsSync(path))return path}return null}__name(findConfigPath,"findConfigPath");async function importConfig(path){let config=await import(`file://${path}`);return config?.default??config}__name(importConfig,"importConfig");export{findConfigPath,importConfig};
2
- //# sourceMappingURL=chunk-UV2LVAQV.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/environment/common/config.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { join } from 'node:path';\nimport type { CommandKitConfig } from '../../config';\n\nconst ConfigLookupPaths = [\n // javascript\n 'js',\n 'cjs',\n 'mjs',\n];\n\nexport async function findConfigPath(relative: string) {\n for (const extension of ConfigLookupPaths) {\n const path = join(relative, `commandkit.${extension}`);\n if (existsSync(path)) return path;\n }\n\n return null;\n}\n\nexport async function importConfig(path: string): Promise<CommandKitConfig> {\n const config = await import(`file://${path}`);\n return config?.default ?? config;\n}\n"],"mappings":"yCAAA,OAAS,eAAkB,UAC3B,OAAS,SAAY,YAGrB,IAAM,kBAAoB,CAExB,KACA,MACA,KACF,EAEA,eAAsB,eAAe,SAAkB,CACrD,QAAW,aAAa,kBAAmB,CACzC,IAAM,KAAO,KAAK,SAAU,cAAc,SAAS,EAAE,EACrD,GAAI,WAAW,IAAI,EAAG,OAAO,IAC/B,CAEA,OAAO,IACT,CAPsB,wCAStB,eAAsB,aAAa,KAAyC,CAC1E,IAAM,OAAS,MAAM,OAAO,UAAU,IAAI,IAC1C,OAAO,QAAQ,SAAW,MAC5B,CAHsB","names":[]}
@@ -1,2 +0,0 @@
1
- import{__name}from"./chunk-7KD7ZCH6.mjs";import{config}from"dotenv-cra";function loadEnv(type){return process.env.NODE_ENV=type,config().error?.message}__name(loadEnv,"loadEnv");export{loadEnv};
2
- //# sourceMappingURL=chunk-ZJRAI4W5.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/bootstrap/loadEnv.ts"],"sourcesContent":["import { config } from 'dotenv-cra';\n\nexport function loadEnv(type: 'development' | 'production') {\n process.env.NODE_ENV = type;\n\n const result = config();\n\n return result.error?.message;\n}\n"],"mappings":"yCAAA,OAAS,WAAc,aAEhB,SAAS,QAAQ,KAAoC,CAC1D,eAAQ,IAAI,SAAW,KAER,OAAO,EAER,OAAO,OACvB,CANgB","names":[]}
@@ -1,8 +0,0 @@
1
- import yargs from 'yargs';
2
-
3
- declare function initializeDevelopmentEnvironment(args: yargs.ArgumentsCamelCase<{
4
- config?: string | undefined;
5
- nodeOptions?: string | undefined;
6
- }>): Promise<void>;
7
-
8
- export { initializeDevelopmentEnvironment };
@@ -1,8 +0,0 @@
1
- import yargs from 'yargs';
2
-
3
- declare function initializeDevelopmentEnvironment(args: yargs.ArgumentsCamelCase<{
4
- config?: string | undefined;
5
- nodeOptions?: string | undefined;
6
- }>): Promise<void>;
7
-
8
- export { initializeDevelopmentEnvironment };
@@ -1,2 +0,0 @@
1
- "use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var development_exports={};__export(development_exports,{initializeDevelopmentEnvironment:()=>initializeDevelopmentEnvironment});module.exports=__toCommonJS(development_exports);var import_node_fs=require("fs"),import_node_path=require("path");var ConfigLookupPaths=["js","cjs","mjs"];async function findConfigPath(relative){for(let extension of ConfigLookupPaths){let path=(0,import_node_path.join)(relative,`commandkit.${extension}`);if((0,import_node_fs.existsSync)(path))return path}return null}__name(findConfigPath,"findConfigPath");async function importConfig(path){let config2=await import(`file://${path}`);return config2?.default??config2}__name(importConfig,"importConfig");var resetColor="\x1B[0m",colors_default={reset:text=>`${text}${resetColor}`,bright:text=>`\x1B[1m${text}${resetColor}`,dim:text=>`\x1B[2m${text}${resetColor}`,underscore:text=>`\x1B[4m${text}${resetColor}`,blink:text=>`\x1B[5m${text}${resetColor}`,reverse:text=>`\x1B[7m${text}${resetColor}`,hidden:text=>`\x1B[8m${text}${resetColor}`,black:text=>`\x1B[30m${text}${resetColor}`,red:text=>`\x1B[31m${text}${resetColor}`,green:text=>`\x1B[32m${text}${resetColor}`,yellow:text=>`\x1B[33m${text}${resetColor}`,blue:text=>`\x1B[34m${text}${resetColor}`,magenta:text=>`\x1B[35m${text}${resetColor}`,cyan:text=>`\x1B[36m${text}${resetColor}`,white:text=>`\x1B[37m${text}${resetColor}`,bgBlack:text=>`\x1B[40m${text}${resetColor}`,bgRed:text=>`\x1B[41m${text}${resetColor}`,bgGreen:text=>`\x1B[42m${text}${resetColor}`,bgYellow:text=>`\x1B[43m${text}${resetColor}`,bgBlue:text=>`\x1B[44m${text}${resetColor}`,bgMagenta:text=>`\x1B[45m${text}${resetColor}`,bgCyan:text=>`\x1B[46m${text}${resetColor}`,bgWhite:text=>`\x1B[47m${text}${resetColor}`};var Logger={Fatal:(...message)=>{console.log(colors_default.red("[FATAL ERROR]"),...message),process.exit(1)},Warning:(...message)=>{console.log(colors_default.yellow("[WARNING]"),...message)},Info:(...message)=>{console.log(colors_default.green("[INFO]"),...message)},Debug:(...message)=>{console.log(colors_default.blue("[DEBUG]"),...message)},Log:(...message)=>{console.log(...message)}};var import_dotenv_cra=require("dotenv-cra");function loadEnv(type){return process.env.NODE_ENV=type,(0,import_dotenv_cra.config)().error?.message}__name(loadEnv,"loadEnv");var import_discord=require("discord.js");var globalConfig={envExtra:!0,outDir:"dist",watch:!0,clearRestartLogs:!0,minify:!1,sourcemap:!1,nodeOptions:[],antiCrash:!0,requirePolyfill:!0,token:process.env.DISCORD_TOKEN};function getConfig(){return globalConfig}__name(getConfig,"getConfig");var discord_client;function getClient(){return discord_client}__name(getClient,"getClient");function createClient(){let config2=getConfig();return discord_client=new import_discord.Client(config2.clientOptions),discord_client}__name(createClient,"createClient");var import_tsup=require("tsup");var import_path=require("path");function bundle(mode){switch(mode){case"development":return buildDevelopment();default:throw new Error("Not implemented")}}__name(bundle,"bundle");function buildDevelopment(){let{watch}=getConfig(),outDir=(0,import_path.join)(process.cwd(),".commandkit");return(0,import_tsup.build)({clean:!0,format:["esm"],bundle:!1,dts:!1,skipNodeModulesBundle:!0,minify:!1,shims:!0,sourcemap:"inline",keepNames:!0,outDir:".commandkit",silent:!0,entry:["src"],watch,async onSuccess(){}}).then(()=>(0,import_path.join)(outDir,"client.mjs"))}__name(buildDevelopment,"buildDevelopment");var commandkitVersion="0.1.11-dev.20240203230231";function printBanner(){let banner=colors_default.magenta(`\u25C6 CommandKit ${commandkitVersion}`);Logger.Log(banner),Logger.Info("Initializing the development environment...")}__name(printBanner,"printBanner");async function initializeDevelopmentEnvironment(args){if(printBanner(),getClient()){Logger.Fatal("The development environment is already initialized.");return}let envErr=loadEnv("development");envErr?Logger.Warning("Failed to load .env",envErr):Logger.Debug("Loaded .env");let configPath=await findConfigPath(args.config??process.cwd());if(!configPath){let msg=`Could not locate the commandkit config file${args.config?" at "+args.config:" in the current working directory"}.`;Logger.Fatal(msg);return}try{var config2=await importConfig(configPath);Logger.Debug("Loaded config from",colors_default.yellow(configPath))}catch(e){Logger.Warning("Failed to load config"),Logger.Fatal(colors_default.red(e.stack??`${e}`));return}let client=createClient(),entrypoint=await bundle("development");try{await import(`file://${entrypoint}`),await client.login(config2.token)}catch(e){Logger.Fatal("Failed to load the client entrypoint",e)}}__name(initializeDevelopmentEnvironment,"initializeDevelopmentEnvironment");0&&(module.exports={initializeDevelopmentEnvironment});
2
- //# sourceMappingURL=development.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/environment/actions/development.ts","../../../src/environment/common/config.ts","../../../src/utils/colors.ts","../../../src/environment/common/logger.ts","../../../src/bootstrap/loadEnv.ts","../../../src/bootstrap/client.ts","../../../src/config.ts","../../../src/environment/bundler/bundle.ts"],"sourcesContent":["import type yargs from 'yargs';\nimport { findConfigPath, importConfig } from '../common/config';\nimport colors from '../../utils/colors';\nimport { Logger } from '../common/logger';\nimport { loadEnv } from '../../bootstrap/loadEnv';\nimport { createClient, getClient } from '../../bootstrap/client';\nimport { bundle } from '../bundler/bundle';\n\nconst commandkitVersion = '0.1.11-dev.20240203230231';\n\nfunction printBanner() {\n const banner = colors.magenta(\n `${String.fromCharCode(9670)} CommandKit ${commandkitVersion}`,\n );\n Logger.Log(banner);\n Logger.Info('Initializing the development environment...');\n}\n\nexport async function initializeDevelopmentEnvironment(\n args: yargs.ArgumentsCamelCase<{\n config?: string | undefined;\n nodeOptions?: string | undefined;\n }>,\n) {\n printBanner();\n\n if (getClient()) {\n Logger.Fatal('The development environment is already initialized.');\n return;\n }\n\n const envErr = loadEnv('development');\n\n if (envErr) {\n Logger.Warning('Failed to load .env', envErr);\n } else {\n Logger.Debug('Loaded .env');\n }\n\n const configPath = await findConfigPath(args.config ?? process.cwd());\n if (!configPath) {\n const msg = `Could not locate the commandkit config file${\n args.config ? ' at ' + args.config : ' in the current working directory'\n }.`;\n Logger.Fatal(msg);\n return;\n }\n\n try {\n var config = await importConfig(configPath);\n Logger.Debug('Loaded config from', colors.yellow(configPath));\n } catch (e) {\n Logger.Warning('Failed to load config');\n Logger.Fatal(colors.red((e as Error).stack ?? `${e}`));\n return;\n }\n\n const client = createClient();\n\n // build the project\n const entrypoint = await bundle('development');\n\n try {\n // load the client entrypoint\n await import(`file://${entrypoint}`);\n await client.login(config.token);\n } catch (e) {\n Logger.Fatal('Failed to load the client entrypoint', e);\n }\n}\n","import { existsSync } from 'node:fs';\nimport { join } from 'node:path';\nimport type { CommandKitConfig } from '../../config';\n\nconst ConfigLookupPaths = [\n // javascript\n 'js',\n 'cjs',\n 'mjs',\n];\n\nexport async function findConfigPath(relative: string) {\n for (const extension of ConfigLookupPaths) {\n const path = join(relative, `commandkit.${extension}`);\n if (existsSync(path)) return path;\n }\n\n return null;\n}\n\nexport async function importConfig(path: string): Promise<CommandKitConfig> {\n const config = await import(`file://${path}`);\n return config?.default ?? config;\n}\n","const resetColor = '\\x1b[0m';\n\nexport default {\n reset: (text: string) => `${text}${resetColor}`,\n bright: (text: string) => `\\x1b[1m${text}${resetColor}`,\n dim: (text: string) => `\\x1b[2m${text}${resetColor}`,\n underscore: (text: string) => `\\x1b[4m${text}${resetColor}`,\n blink: (text: string) => `\\x1b[5m${text}${resetColor}`,\n reverse: (text: string) => `\\x1b[7m${text}${resetColor}`,\n hidden: (text: string) => `\\x1b[8m${text}${resetColor}`,\n\n black: (text: string) => `\\x1b[30m${text}${resetColor}`,\n red: (text: string) => `\\x1b[31m${text}${resetColor}`,\n green: (text: string) => `\\x1b[32m${text}${resetColor}`,\n yellow: (text: string) => `\\x1b[33m${text}${resetColor}`,\n blue: (text: string) => `\\x1b[34m${text}${resetColor}`,\n magenta: (text: string) => `\\x1b[35m${text}${resetColor}`,\n cyan: (text: string) => `\\x1b[36m${text}${resetColor}`,\n white: (text: string) => `\\x1b[37m${text}${resetColor}`,\n\n bgBlack: (text: string) => `\\x1b[40m${text}${resetColor}`,\n bgRed: (text: string) => `\\x1b[41m${text}${resetColor}`,\n bgGreen: (text: string) => `\\x1b[42m${text}${resetColor}`,\n bgYellow: (text: string) => `\\x1b[43m${text}${resetColor}`,\n bgBlue: (text: string) => `\\x1b[44m${text}${resetColor}`,\n bgMagenta: (text: string) => `\\x1b[45m${text}${resetColor}`,\n bgCyan: (text: string) => `\\x1b[46m${text}${resetColor}`,\n bgWhite: (text: string) => `\\x1b[47m${text}${resetColor}`,\n};\n","import colors from '../../utils/colors';\n\nexport const Logger = {\n Fatal: (...message: unknown[]) => {\n console.log(colors.red('[FATAL ERROR]'), ...message);\n process.exit(1);\n },\n Warning: (...message: unknown[]) => {\n console.log(colors.yellow('[WARNING]'), ...message);\n },\n Info: (...message: unknown[]) => {\n console.log(colors.green('[INFO]'), ...message);\n },\n Debug: (...message: unknown[]) => {\n console.log(colors.blue('[DEBUG]'), ...message);\n },\n Log: (...message: unknown[]) => {\n console.log(...message);\n },\n};\n","import { config } from 'dotenv-cra';\n\nexport function loadEnv(type: 'development' | 'production') {\n process.env.NODE_ENV = type;\n\n const result = config();\n\n return result.error?.message;\n}\n","import { Client } from 'discord.js';\nimport { getConfig } from '../config';\n\nlet discord_client: Client;\n\n/**\n * @internal\n */\nexport function getClient() {\n return discord_client;\n}\n\n/**\n * Fetches the client instance. If the client instance is not initialized, an error will be thrown.\n */\nexport function client<T extends boolean = boolean>() {\n if (!discord_client) {\n throw new Error(\n 'Client was not initialized. Make sure to run \"commandkit dev\" to bootstrap the client.',\n );\n }\n\n return discord_client as Client<T>;\n}\n\nexport function createClient() {\n const config = getConfig();\n\n discord_client = new Client(config.clientOptions);\n\n return discord_client;\n}\n","import type { ClientOptions } from 'discord.js';\n\nexport interface CommandKitConfig {\n /**\n * The Discord client options.\n */\n clientOptions: ClientOptions;\n /**\n * The Discord bot token. Defaults to `process.env.DISCORD_TOKEN`.\n */\n token?: string;\n /**\n * Whether or not to use the watch mode. Defaults to `true`.\n */\n watch: boolean;\n /**\n * The output directory of the project. Defaults to `dist`.\n */\n outDir: string;\n /**\n * Whether or not to include extra env utilities. Defaults to `true`.\n */\n envExtra: boolean;\n /**\n * Node.js cli options.\n */\n nodeOptions: string[];\n /**\n * Whether or not to clear default restart logs. Defaults to `true`.\n */\n clearRestartLogs: boolean;\n /**\n * Whether or not to minify the output. Defaults to `false`.\n */\n minify: boolean;\n /**\n * Whether or not to include sourcemaps in production build. Defaults to `false`.\n */\n sourcemap: boolean | 'inline';\n /**\n * Whether or not to include anti-crash handler in production. Defaults to `true`.\n */\n antiCrash: boolean;\n /**\n * Whether or not to polyfill `require` function. Defaults to `true`.\n */\n requirePolyfill: boolean;\n}\n\nlet globalConfig: Partial<CommandKitConfig> = {\n envExtra: true,\n outDir: 'dist',\n watch: true,\n clearRestartLogs: true,\n minify: false,\n sourcemap: false,\n nodeOptions: [],\n antiCrash: true,\n requirePolyfill: true,\n token: process.env.DISCORD_TOKEN,\n};\n\nexport function getConfig(): CommandKitConfig {\n return globalConfig as CommandKitConfig;\n}\n\nconst requiredProps = ['clientOptions'] as const;\n\ntype R = (typeof requiredProps)[number];\n\ntype PartialConfig<T extends CommandKitConfig> = Partial<Omit<T, R>> &\n Pick<T, R>;\n\nexport function defineConfig(config: PartialConfig<CommandKitConfig>) {\n for (const prop of requiredProps) {\n if (!config[prop]) {\n throw new Error(\n `[CommandKit Config] Missing required config property: ${prop}`,\n );\n }\n }\n\n globalConfig = {\n ...globalConfig,\n ...config,\n };\n\n return globalConfig;\n}\n","import { build } from 'tsup';\nimport { getConfig } from '../../config';\nimport { join } from 'path';\n\nexport function bundle(mode: 'development' | 'production') {\n switch (mode) {\n case 'development':\n return buildDevelopment();\n default:\n throw new Error('Not implemented');\n }\n}\n\nfunction buildDevelopment() {\n const { watch } = getConfig();\n\n const outDir = join(process.cwd(), '.commandkit');\n\n return build({\n clean: true,\n format: ['esm'],\n bundle: false,\n dts: false,\n skipNodeModulesBundle: true,\n minify: false,\n shims: true,\n sourcemap: 'inline',\n keepNames: true,\n outDir: '.commandkit',\n silent: true,\n entry: ['src'],\n watch,\n async onSuccess() {\n // return await injectShims('.commandkit', main, false, requirePolyfill);\n },\n }).then(() => {\n return join(outDir, 'client.mjs');\n });\n}\n"],"mappings":"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","names":["config","config","config"]}
@@ -1,2 +0,0 @@
1
- import{initializeDevelopmentEnvironment}from"../../chunk-SB3FAFCD.mjs";import"../../chunk-QC2F7O3S.mjs";import"../../chunk-UV2LVAQV.mjs";import"../../chunk-BJCWVCAY.mjs";import"../../chunk-FQGSVSCT.mjs";import"../../chunk-DEB7FLUS.mjs";import"../../chunk-QYJ4DE3N.mjs";import"../../chunk-ZJRAI4W5.mjs";import"../../chunk-7KD7ZCH6.mjs";export{initializeDevelopmentEnvironment};
2
- //# sourceMappingURL=development.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,3 +0,0 @@
1
- declare function bundle(mode: 'development' | 'production'): Promise<string>;
2
-
3
- export { bundle };
@@ -1,3 +0,0 @@
1
- declare function bundle(mode: 'development' | 'production'): Promise<string>;
2
-
3
- export { bundle };
@@ -1,2 +0,0 @@
1
- "use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var bundle_exports={};__export(bundle_exports,{bundle:()=>bundle});module.exports=__toCommonJS(bundle_exports);var import_tsup=require("tsup");var globalConfig={envExtra:!0,outDir:"dist",watch:!0,clearRestartLogs:!0,minify:!1,sourcemap:!1,nodeOptions:[],antiCrash:!0,requirePolyfill:!0,token:process.env.DISCORD_TOKEN};function getConfig(){return globalConfig}__name(getConfig,"getConfig");var import_path=require("path");function bundle(mode){switch(mode){case"development":return buildDevelopment();default:throw new Error("Not implemented")}}__name(bundle,"bundle");function buildDevelopment(){let{watch}=getConfig(),outDir=(0,import_path.join)(process.cwd(),".commandkit");return(0,import_tsup.build)({clean:!0,format:["esm"],bundle:!1,dts:!1,skipNodeModulesBundle:!0,minify:!1,shims:!0,sourcemap:"inline",keepNames:!0,outDir:".commandkit",silent:!0,entry:["src"],watch,async onSuccess(){}}).then(()=>(0,import_path.join)(outDir,"client.mjs"))}__name(buildDevelopment,"buildDevelopment");0&&(module.exports={bundle});
2
- //# sourceMappingURL=bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/environment/bundler/bundle.ts","../../../src/config.ts"],"sourcesContent":["import { build } from 'tsup';\nimport { getConfig } from '../../config';\nimport { join } from 'path';\n\nexport function bundle(mode: 'development' | 'production') {\n switch (mode) {\n case 'development':\n return buildDevelopment();\n default:\n throw new Error('Not implemented');\n }\n}\n\nfunction buildDevelopment() {\n const { watch } = getConfig();\n\n const outDir = join(process.cwd(), '.commandkit');\n\n return build({\n clean: true,\n format: ['esm'],\n bundle: false,\n dts: false,\n skipNodeModulesBundle: true,\n minify: false,\n shims: true,\n sourcemap: 'inline',\n keepNames: true,\n outDir: '.commandkit',\n silent: true,\n entry: ['src'],\n watch,\n async onSuccess() {\n // return await injectShims('.commandkit', main, false, requirePolyfill);\n },\n }).then(() => {\n return join(outDir, 'client.mjs');\n });\n}\n","import type { ClientOptions } from 'discord.js';\n\nexport interface CommandKitConfig {\n /**\n * The Discord client options.\n */\n clientOptions: ClientOptions;\n /**\n * The Discord bot token. Defaults to `process.env.DISCORD_TOKEN`.\n */\n token?: string;\n /**\n * Whether or not to use the watch mode. Defaults to `true`.\n */\n watch: boolean;\n /**\n * The output directory of the project. Defaults to `dist`.\n */\n outDir: string;\n /**\n * Whether or not to include extra env utilities. Defaults to `true`.\n */\n envExtra: boolean;\n /**\n * Node.js cli options.\n */\n nodeOptions: string[];\n /**\n * Whether or not to clear default restart logs. Defaults to `true`.\n */\n clearRestartLogs: boolean;\n /**\n * Whether or not to minify the output. Defaults to `false`.\n */\n minify: boolean;\n /**\n * Whether or not to include sourcemaps in production build. Defaults to `false`.\n */\n sourcemap: boolean | 'inline';\n /**\n * Whether or not to include anti-crash handler in production. Defaults to `true`.\n */\n antiCrash: boolean;\n /**\n * Whether or not to polyfill `require` function. Defaults to `true`.\n */\n requirePolyfill: boolean;\n}\n\nlet globalConfig: Partial<CommandKitConfig> = {\n envExtra: true,\n outDir: 'dist',\n watch: true,\n clearRestartLogs: true,\n minify: false,\n sourcemap: false,\n nodeOptions: [],\n antiCrash: true,\n requirePolyfill: true,\n token: process.env.DISCORD_TOKEN,\n};\n\nexport function getConfig(): CommandKitConfig {\n return globalConfig as CommandKitConfig;\n}\n\nconst requiredProps = ['clientOptions'] as const;\n\ntype R = (typeof requiredProps)[number];\n\ntype PartialConfig<T extends CommandKitConfig> = Partial<Omit<T, R>> &\n Pick<T, R>;\n\nexport function defineConfig(config: PartialConfig<CommandKitConfig>) {\n for (const prop of requiredProps) {\n if (!config[prop]) {\n throw new Error(\n `[CommandKit Config] Missing required config property: ${prop}`,\n );\n }\n }\n\n globalConfig = {\n ...globalConfig,\n ...config,\n };\n\n return globalConfig;\n}\n"],"mappings":"ouBAAA,+GAAA,gBAAsB,gBCiDtB,IAAI,aAA0C,CAC5C,SAAU,GACV,OAAQ,OACR,MAAO,GACP,iBAAkB,GAClB,OAAQ,GACR,UAAW,GACX,YAAa,CAAC,EACd,UAAW,GACX,gBAAiB,GACjB,MAAO,QAAQ,IAAI,aACrB,EAEO,SAAS,WAA8B,CAC5C,OAAO,YACT,CAFgB,8BD5DhB,gBAAqB,gBAEd,SAAS,OAAO,KAAoC,CACzD,OAAQ,KAAM,CACZ,IAAK,cACH,OAAO,iBAAiB,EAC1B,QACE,MAAM,IAAI,MAAM,iBAAiB,CACrC,CACF,CAPgB,wBAShB,SAAS,kBAAmB,CAC1B,GAAM,CAAE,KAAM,EAAI,UAAU,EAEtB,UAAS,kBAAK,QAAQ,IAAI,EAAG,aAAa,EAEhD,SAAO,mBAAM,CACX,MAAO,GACP,OAAQ,CAAC,KAAK,EACd,OAAQ,GACR,IAAK,GACL,sBAAuB,GACvB,OAAQ,GACR,MAAO,GACP,UAAW,SACX,UAAW,GACX,OAAQ,cACR,OAAQ,GACR,MAAO,CAAC,KAAK,EACb,MACA,MAAM,WAAY,CAElB,CACF,CAAC,EAAE,KAAK,OACC,kBAAK,OAAQ,YAAY,CACjC,CACH,CAzBS","names":[]}
@@ -1,2 +0,0 @@
1
- import{bundle}from"../../chunk-QC2F7O3S.mjs";import"../../chunk-QYJ4DE3N.mjs";import"../../chunk-7KD7ZCH6.mjs";export{bundle};
2
- //# sourceMappingURL=bundle.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,3 +0,0 @@
1
- declare function injectShims(outDir: string, main: string, antiCrash: boolean, polyfillRequire: boolean): Promise<void>;
2
-
3
- export { injectShims };
@@ -1,3 +0,0 @@
1
- declare function injectShims(outDir: string, main: string, antiCrash: boolean, polyfillRequire: boolean): Promise<void>;
2
-
3
- export { injectShims };
@@ -1,11 +0,0 @@
1
- "use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var shims_exports={};__export(shims_exports,{injectShims:()=>injectShims});module.exports=__toCommonJS(shims_exports);var import_promises=require("fs/promises"),import_node_path=require("path");async function injectShims(outDir,main,antiCrash,polyfillRequire){let path=(0,import_node_path.join)(process.cwd(),outDir,main),head=[`
2
-
3
- ;await (async()=>{`," 'use strict';"].join(`
4
- `),tail=`
5
- })();`,requireScript=polyfillRequire?["// --- CommandKit require() polyfill ---",' if (typeof require === "undefined") {',' const { createRequire } = await import("node:module");'," const __require = createRequire(import.meta.url);",' Object.defineProperty(globalThis, "require", {'," value: (id) => {"," return __require(id);"," },"," configurable: true,"," enumerable: false,"," writable: true,"," });"," }","// --- CommandKit require() polyfill ---"].join(`
6
- `):"",antiCrashScript=antiCrash?["// --- CommandKit Anti-Crash Monitor ---"," // 'uncaughtException' event is supposed to be used to perform synchronous cleanup before shutting down the process"," // instead of using it as a means to resume operation."," // But it exists here due to compatibility reasons with discord bot ecosystem."," const p = (t) => `\\x1b[33m${t}\\x1b[0m`, b = '[CommandKit Anti-Crash Monitor]', l = console.log, e1 = 'uncaughtException', e2 = 'unhandledRejection';"," if (!process.eventNames().includes(e1)) // skip if it is already handled"," process.on(e1, (e) => {"," l(p(`${b} Uncaught Exception`)); l(p(b), p(e.stack || e));"," })"," if (!process.eventNames().includes(e2)) // skip if it is already handled"," process.on(e2, (r) => {"," l(p(`${b} Unhandled promise rejection`)); l(p(`${b} ${r.stack || r}`));"," });","// --- CommandKit Anti-Crash Monitor ---"].join(`
7
- `):"",contents=await(0,import_promises.readFile)(path,"utf-8"),finalScript=[head,requireScript,antiCrashScript,tail,`
8
-
9
- `,contents].join(`
10
- `);return(0,import_promises.writeFile)(path,finalScript)}__name(injectShims,"injectShims");0&&(module.exports={injectShims});
11
- //# sourceMappingURL=shims.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/environment/bundler/shims.ts"],"sourcesContent":["import { readFile, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\nexport async function injectShims(\n outDir: string,\n main: string,\n antiCrash: boolean,\n polyfillRequire: boolean,\n) {\n const path = join(process.cwd(), outDir, main);\n\n const head = ['\\n\\n;await (async()=>{', \" 'use strict';\"].join('\\n');\n const tail = '\\n})();';\n const requireScript = polyfillRequire\n ? [\n '// --- CommandKit require() polyfill ---',\n ' if (typeof require === \"undefined\") {',\n ' const { createRequire } = await import(\"node:module\");',\n ' const __require = createRequire(import.meta.url);',\n ' Object.defineProperty(globalThis, \"require\", {',\n ' value: (id) => {',\n ' return __require(id);',\n ' },',\n ' configurable: true,',\n ' enumerable: false,',\n ' writable: true,',\n ' });',\n ' }',\n '// --- CommandKit require() polyfill ---',\n ].join('\\n')\n : '';\n\n const antiCrashScript = antiCrash\n ? [\n '// --- CommandKit Anti-Crash Monitor ---',\n \" // 'uncaughtException' event is supposed to be used to perform synchronous cleanup before shutting down the process\",\n ' // instead of using it as a means to resume operation.',\n ' // But it exists here due to compatibility reasons with discord bot ecosystem.',\n \" const p = (t) => `\\\\x1b[33m${t}\\\\x1b[0m`, b = '[CommandKit Anti-Crash Monitor]', l = console.log, e1 = 'uncaughtException', e2 = 'unhandledRejection';\",\n ' if (!process.eventNames().includes(e1)) // skip if it is already handled',\n ' process.on(e1, (e) => {',\n ' l(p(`${b} Uncaught Exception`)); l(p(b), p(e.stack || e));',\n ' })',\n ' if (!process.eventNames().includes(e2)) // skip if it is already handled',\n ' process.on(e2, (r) => {',\n ' l(p(`${b} Unhandled promise rejection`)); l(p(`${b} ${r.stack || r}`));',\n ' });',\n '// --- CommandKit Anti-Crash Monitor ---',\n ].join('\\n')\n : '';\n\n const contents = await readFile(path, 'utf-8');\n const finalScript = [\n head,\n requireScript,\n antiCrashScript,\n tail,\n '\\n\\n',\n contents,\n ].join('\\n');\n\n return writeFile(path, finalScript);\n}\n"],"mappings":"ouBAAA,sHAAA,oBAAoC,uBACpC,iBAAqB,gBAErB,eAAsB,YACpB,OACA,KACA,UACA,gBACA,CACA,IAAM,QAAO,uBAAK,QAAQ,IAAI,EAAG,OAAQ,IAAI,EAEvC,KAAO,CAAC;AAAA;AAAA,oBAA0B,iBAAiB,EAAE,KAAK;AAAA,CAAI,EAC9D,KAAO;AAAA,OACP,cAAgB,gBAClB,CACE,2CACA,0CACA,6DACA,wDACA,qDACA,yBACA,gCACA,WACA,4BACA,2BACA,wBACA,UACA,MACA,0CACF,EAAE,KAAK;AAAA,CAAI,EACX,GAEE,gBAAkB,UACpB,CACE,2CACA,wHACA,2DACA,mFACA,2JACA,6EACA,8BACA,mEACA,SACA,6EACA,8BACA,gFACA,UACA,0CACF,EAAE,KAAK;AAAA,CAAI,EACX,GAEE,SAAW,QAAM,0BAAS,KAAM,OAAO,EACvC,YAAc,CAClB,KACA,cACA,gBACA,KACA;AAAA;AAAA,EACA,QACF,EAAE,KAAK;AAAA,CAAI,EAEX,SAAO,2BAAU,KAAM,WAAW,CACpC,CA3DsB","names":[]}
@@ -1,11 +0,0 @@
1
- import{__name}from"../../chunk-7KD7ZCH6.mjs";import{readFile,writeFile}from"node:fs/promises";import{join}from"node:path";async function injectShims(outDir,main,antiCrash,polyfillRequire){let path=join(process.cwd(),outDir,main),head=[`
2
-
3
- ;await (async()=>{`," 'use strict';"].join(`
4
- `),tail=`
5
- })();`,requireScript=polyfillRequire?["// --- CommandKit require() polyfill ---",' if (typeof require === "undefined") {',' const { createRequire } = await import("node:module");'," const __require = createRequire(import.meta.url);",' Object.defineProperty(globalThis, "require", {'," value: (id) => {"," return __require(id);"," },"," configurable: true,"," enumerable: false,"," writable: true,"," });"," }","// --- CommandKit require() polyfill ---"].join(`
6
- `):"",antiCrashScript=antiCrash?["// --- CommandKit Anti-Crash Monitor ---"," // 'uncaughtException' event is supposed to be used to perform synchronous cleanup before shutting down the process"," // instead of using it as a means to resume operation."," // But it exists here due to compatibility reasons with discord bot ecosystem."," const p = (t) => `\\x1b[33m${t}\\x1b[0m`, b = '[CommandKit Anti-Crash Monitor]', l = console.log, e1 = 'uncaughtException', e2 = 'unhandledRejection';"," if (!process.eventNames().includes(e1)) // skip if it is already handled"," process.on(e1, (e) => {"," l(p(`${b} Uncaught Exception`)); l(p(b), p(e.stack || e));"," })"," if (!process.eventNames().includes(e2)) // skip if it is already handled"," process.on(e2, (r) => {"," l(p(`${b} Unhandled promise rejection`)); l(p(`${b} ${r.stack || r}`));"," });","// --- CommandKit Anti-Crash Monitor ---"].join(`
7
- `):"",contents=await readFile(path,"utf-8"),finalScript=[head,requireScript,antiCrashScript,tail,`
8
-
9
- `,contents].join(`
10
- `);return writeFile(path,finalScript)}__name(injectShims,"injectShims");export{injectShims};
11
- //# sourceMappingURL=shims.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/environment/bundler/shims.ts"],"sourcesContent":["import { readFile, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\nexport async function injectShims(\n outDir: string,\n main: string,\n antiCrash: boolean,\n polyfillRequire: boolean,\n) {\n const path = join(process.cwd(), outDir, main);\n\n const head = ['\\n\\n;await (async()=>{', \" 'use strict';\"].join('\\n');\n const tail = '\\n})();';\n const requireScript = polyfillRequire\n ? [\n '// --- CommandKit require() polyfill ---',\n ' if (typeof require === \"undefined\") {',\n ' const { createRequire } = await import(\"node:module\");',\n ' const __require = createRequire(import.meta.url);',\n ' Object.defineProperty(globalThis, \"require\", {',\n ' value: (id) => {',\n ' return __require(id);',\n ' },',\n ' configurable: true,',\n ' enumerable: false,',\n ' writable: true,',\n ' });',\n ' }',\n '// --- CommandKit require() polyfill ---',\n ].join('\\n')\n : '';\n\n const antiCrashScript = antiCrash\n ? [\n '// --- CommandKit Anti-Crash Monitor ---',\n \" // 'uncaughtException' event is supposed to be used to perform synchronous cleanup before shutting down the process\",\n ' // instead of using it as a means to resume operation.',\n ' // But it exists here due to compatibility reasons with discord bot ecosystem.',\n \" const p = (t) => `\\\\x1b[33m${t}\\\\x1b[0m`, b = '[CommandKit Anti-Crash Monitor]', l = console.log, e1 = 'uncaughtException', e2 = 'unhandledRejection';\",\n ' if (!process.eventNames().includes(e1)) // skip if it is already handled',\n ' process.on(e1, (e) => {',\n ' l(p(`${b} Uncaught Exception`)); l(p(b), p(e.stack || e));',\n ' })',\n ' if (!process.eventNames().includes(e2)) // skip if it is already handled',\n ' process.on(e2, (r) => {',\n ' l(p(`${b} Unhandled promise rejection`)); l(p(`${b} ${r.stack || r}`));',\n ' });',\n '// --- CommandKit Anti-Crash Monitor ---',\n ].join('\\n')\n : '';\n\n const contents = await readFile(path, 'utf-8');\n const finalScript = [\n head,\n requireScript,\n antiCrashScript,\n tail,\n '\\n\\n',\n contents,\n ].join('\\n');\n\n return writeFile(path, finalScript);\n}\n"],"mappings":"6CAAA,OAAS,SAAU,cAAiB,mBACpC,OAAS,SAAY,YAErB,eAAsB,YACpB,OACA,KACA,UACA,gBACA,CACA,IAAM,KAAO,KAAK,QAAQ,IAAI,EAAG,OAAQ,IAAI,EAEvC,KAAO,CAAC;AAAA;AAAA,oBAA0B,iBAAiB,EAAE,KAAK;AAAA,CAAI,EAC9D,KAAO;AAAA,OACP,cAAgB,gBAClB,CACE,2CACA,0CACA,6DACA,wDACA,qDACA,yBACA,gCACA,WACA,4BACA,2BACA,wBACA,UACA,MACA,0CACF,EAAE,KAAK;AAAA,CAAI,EACX,GAEE,gBAAkB,UACpB,CACE,2CACA,wHACA,2DACA,mFACA,2JACA,6EACA,8BACA,mEACA,SACA,6EACA,8BACA,gFACA,UACA,0CACF,EAAE,KAAK;AAAA,CAAI,EACX,GAEE,SAAW,MAAM,SAAS,KAAM,OAAO,EACvC,YAAc,CAClB,KACA,cACA,gBACA,KACA;AAAA;AAAA,EACA,QACF,EAAE,KAAK;AAAA,CAAI,EAEX,OAAO,UAAU,KAAM,WAAW,CACpC,CA3DsB","names":[]}
@@ -1,2 +0,0 @@
1
-
2
- export { }
@@ -1,2 +0,0 @@
1
-
2
- export { }
@@ -1,2 +0,0 @@
1
- "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod));var import_yargs=__toESM(require("yargs/yargs")),import_helpers=require("yargs/helpers");var import_node_fs=require("fs"),import_node_path=require("path");var ConfigLookupPaths=["js","cjs","mjs"];async function findConfigPath(relative){for(let extension of ConfigLookupPaths){let path=(0,import_node_path.join)(relative,`commandkit.${extension}`);if((0,import_node_fs.existsSync)(path))return path}return null}__name(findConfigPath,"findConfigPath");async function importConfig(path){let config2=await import(`file://${path}`);return config2?.default??config2}__name(importConfig,"importConfig");var resetColor="\x1B[0m",colors_default={reset:text=>`${text}${resetColor}`,bright:text=>`\x1B[1m${text}${resetColor}`,dim:text=>`\x1B[2m${text}${resetColor}`,underscore:text=>`\x1B[4m${text}${resetColor}`,blink:text=>`\x1B[5m${text}${resetColor}`,reverse:text=>`\x1B[7m${text}${resetColor}`,hidden:text=>`\x1B[8m${text}${resetColor}`,black:text=>`\x1B[30m${text}${resetColor}`,red:text=>`\x1B[31m${text}${resetColor}`,green:text=>`\x1B[32m${text}${resetColor}`,yellow:text=>`\x1B[33m${text}${resetColor}`,blue:text=>`\x1B[34m${text}${resetColor}`,magenta:text=>`\x1B[35m${text}${resetColor}`,cyan:text=>`\x1B[36m${text}${resetColor}`,white:text=>`\x1B[37m${text}${resetColor}`,bgBlack:text=>`\x1B[40m${text}${resetColor}`,bgRed:text=>`\x1B[41m${text}${resetColor}`,bgGreen:text=>`\x1B[42m${text}${resetColor}`,bgYellow:text=>`\x1B[43m${text}${resetColor}`,bgBlue:text=>`\x1B[44m${text}${resetColor}`,bgMagenta:text=>`\x1B[45m${text}${resetColor}`,bgCyan:text=>`\x1B[46m${text}${resetColor}`,bgWhite:text=>`\x1B[47m${text}${resetColor}`};var Logger={Fatal:(...message)=>{console.log(colors_default.red("[FATAL ERROR]"),...message),process.exit(1)},Warning:(...message)=>{console.log(colors_default.yellow("[WARNING]"),...message)},Info:(...message)=>{console.log(colors_default.green("[INFO]"),...message)},Debug:(...message)=>{console.log(colors_default.blue("[DEBUG]"),...message)},Log:(...message)=>{console.log(...message)}};var import_dotenv_cra=require("dotenv-cra");function loadEnv(type){return process.env.NODE_ENV=type,(0,import_dotenv_cra.config)().error?.message}__name(loadEnv,"loadEnv");var import_discord=require("discord.js");var globalConfig={envExtra:!0,outDir:"dist",watch:!0,clearRestartLogs:!0,minify:!1,sourcemap:!1,nodeOptions:[],antiCrash:!0,requirePolyfill:!0,token:process.env.DISCORD_TOKEN};function getConfig(){return globalConfig}__name(getConfig,"getConfig");var discord_client;function getClient(){return discord_client}__name(getClient,"getClient");function createClient(){let config2=getConfig();return discord_client=new import_discord.Client(config2.clientOptions),discord_client}__name(createClient,"createClient");var import_tsup=require("tsup");var import_path=require("path");function bundle(mode){switch(mode){case"development":return buildDevelopment();default:throw new Error("Not implemented")}}__name(bundle,"bundle");function buildDevelopment(){let{watch}=getConfig(),outDir=(0,import_path.join)(process.cwd(),".commandkit");return(0,import_tsup.build)({clean:!0,format:["esm"],bundle:!1,dts:!1,skipNodeModulesBundle:!0,minify:!1,shims:!0,sourcemap:"inline",keepNames:!0,outDir:".commandkit",silent:!0,entry:["src"],watch,async onSuccess(){}}).then(()=>(0,import_path.join)(outDir,"client.mjs"))}__name(buildDevelopment,"buildDevelopment");var commandkitVersion="0.1.11-dev.20240203230231";function printBanner(){let banner=colors_default.magenta(`\u25C6 CommandKit ${commandkitVersion}`);Logger.Log(banner),Logger.Info("Initializing the development environment...")}__name(printBanner,"printBanner");async function initializeDevelopmentEnvironment(args){if(printBanner(),getClient()){Logger.Fatal("The development environment is already initialized.");return}let envErr=loadEnv("development");envErr?Logger.Warning("Failed to load .env",envErr):Logger.Debug("Loaded .env");let configPath=await findConfigPath(args.config??process.cwd());if(!configPath){let msg=`Could not locate the commandkit config file${args.config?" at "+args.config:" in the current working directory"}.`;Logger.Fatal(msg);return}try{var config2=await importConfig(configPath);Logger.Debug("Loaded config from",colors_default.yellow(configPath))}catch(e){Logger.Warning("Failed to load config"),Logger.Fatal(colors_default.red(e.stack??`${e}`));return}let client=createClient(),entrypoint=await bundle("development");try{await import(`file://${entrypoint}`),await client.login(config2.token)}catch(e){Logger.Fatal("Failed to load the client entrypoint",e)}}__name(initializeDevelopmentEnvironment,"initializeDevelopmentEnvironment");(0,import_yargs.default)((0,import_helpers.hideBin)(process.argv)).scriptName("commandkit").command("dev","Start the bot in development mode",()=>{},async args=>{await initializeDevelopmentEnvironment(args)}).command("start","Start the production build").command("build","Generate production build of the project").options({config:{alias:"c",type:"string",description:"Path to the commandkit config file"},nodeOptions:{alias:"n",type:"string",description:"Node options to pass to the process"}}).version("0.1.11-dev.20240203230231").help().demandCommand().parse();
2
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/environment/cli.ts","../../src/environment/common/config.ts","../../src/utils/colors.ts","../../src/environment/common/logger.ts","../../src/bootstrap/loadEnv.ts","../../src/bootstrap/client.ts","../../src/config.ts","../../src/environment/bundler/bundle.ts","../../src/environment/actions/development.ts"],"sourcesContent":["import yargs from 'yargs/yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { initializeDevelopmentEnvironment } from './actions/development';\n\nyargs(hideBin(process.argv))\n .scriptName('commandkit')\n .command(\n 'dev',\n 'Start the bot in development mode',\n () => {},\n async (args) => {\n await initializeDevelopmentEnvironment(args);\n },\n )\n .command('start', 'Start the production build')\n .command('build', 'Generate production build of the project')\n .options({\n config: {\n alias: 'c',\n type: 'string',\n description: 'Path to the commandkit config file',\n },\n nodeOptions: {\n alias: 'n',\n type: 'string',\n description: 'Node options to pass to the process',\n },\n })\n .version('0.1.11-dev.20240203230231')\n .help()\n .demandCommand()\n .parse();\n","import { existsSync } from 'node:fs';\nimport { join } from 'node:path';\nimport type { CommandKitConfig } from '../../config';\n\nconst ConfigLookupPaths = [\n // javascript\n 'js',\n 'cjs',\n 'mjs',\n];\n\nexport async function findConfigPath(relative: string) {\n for (const extension of ConfigLookupPaths) {\n const path = join(relative, `commandkit.${extension}`);\n if (existsSync(path)) return path;\n }\n\n return null;\n}\n\nexport async function importConfig(path: string): Promise<CommandKitConfig> {\n const config = await import(`file://${path}`);\n return config?.default ?? config;\n}\n","const resetColor = '\\x1b[0m';\n\nexport default {\n reset: (text: string) => `${text}${resetColor}`,\n bright: (text: string) => `\\x1b[1m${text}${resetColor}`,\n dim: (text: string) => `\\x1b[2m${text}${resetColor}`,\n underscore: (text: string) => `\\x1b[4m${text}${resetColor}`,\n blink: (text: string) => `\\x1b[5m${text}${resetColor}`,\n reverse: (text: string) => `\\x1b[7m${text}${resetColor}`,\n hidden: (text: string) => `\\x1b[8m${text}${resetColor}`,\n\n black: (text: string) => `\\x1b[30m${text}${resetColor}`,\n red: (text: string) => `\\x1b[31m${text}${resetColor}`,\n green: (text: string) => `\\x1b[32m${text}${resetColor}`,\n yellow: (text: string) => `\\x1b[33m${text}${resetColor}`,\n blue: (text: string) => `\\x1b[34m${text}${resetColor}`,\n magenta: (text: string) => `\\x1b[35m${text}${resetColor}`,\n cyan: (text: string) => `\\x1b[36m${text}${resetColor}`,\n white: (text: string) => `\\x1b[37m${text}${resetColor}`,\n\n bgBlack: (text: string) => `\\x1b[40m${text}${resetColor}`,\n bgRed: (text: string) => `\\x1b[41m${text}${resetColor}`,\n bgGreen: (text: string) => `\\x1b[42m${text}${resetColor}`,\n bgYellow: (text: string) => `\\x1b[43m${text}${resetColor}`,\n bgBlue: (text: string) => `\\x1b[44m${text}${resetColor}`,\n bgMagenta: (text: string) => `\\x1b[45m${text}${resetColor}`,\n bgCyan: (text: string) => `\\x1b[46m${text}${resetColor}`,\n bgWhite: (text: string) => `\\x1b[47m${text}${resetColor}`,\n};\n","import colors from '../../utils/colors';\n\nexport const Logger = {\n Fatal: (...message: unknown[]) => {\n console.log(colors.red('[FATAL ERROR]'), ...message);\n process.exit(1);\n },\n Warning: (...message: unknown[]) => {\n console.log(colors.yellow('[WARNING]'), ...message);\n },\n Info: (...message: unknown[]) => {\n console.log(colors.green('[INFO]'), ...message);\n },\n Debug: (...message: unknown[]) => {\n console.log(colors.blue('[DEBUG]'), ...message);\n },\n Log: (...message: unknown[]) => {\n console.log(...message);\n },\n};\n","import { config } from 'dotenv-cra';\n\nexport function loadEnv(type: 'development' | 'production') {\n process.env.NODE_ENV = type;\n\n const result = config();\n\n return result.error?.message;\n}\n","import { Client } from 'discord.js';\nimport { getConfig } from '../config';\n\nlet discord_client: Client;\n\n/**\n * @internal\n */\nexport function getClient() {\n return discord_client;\n}\n\n/**\n * Fetches the client instance. If the client instance is not initialized, an error will be thrown.\n */\nexport function client<T extends boolean = boolean>() {\n if (!discord_client) {\n throw new Error(\n 'Client was not initialized. Make sure to run \"commandkit dev\" to bootstrap the client.',\n );\n }\n\n return discord_client as Client<T>;\n}\n\nexport function createClient() {\n const config = getConfig();\n\n discord_client = new Client(config.clientOptions);\n\n return discord_client;\n}\n","import type { ClientOptions } from 'discord.js';\n\nexport interface CommandKitConfig {\n /**\n * The Discord client options.\n */\n clientOptions: ClientOptions;\n /**\n * The Discord bot token. Defaults to `process.env.DISCORD_TOKEN`.\n */\n token?: string;\n /**\n * Whether or not to use the watch mode. Defaults to `true`.\n */\n watch: boolean;\n /**\n * The output directory of the project. Defaults to `dist`.\n */\n outDir: string;\n /**\n * Whether or not to include extra env utilities. Defaults to `true`.\n */\n envExtra: boolean;\n /**\n * Node.js cli options.\n */\n nodeOptions: string[];\n /**\n * Whether or not to clear default restart logs. Defaults to `true`.\n */\n clearRestartLogs: boolean;\n /**\n * Whether or not to minify the output. Defaults to `false`.\n */\n minify: boolean;\n /**\n * Whether or not to include sourcemaps in production build. Defaults to `false`.\n */\n sourcemap: boolean | 'inline';\n /**\n * Whether or not to include anti-crash handler in production. Defaults to `true`.\n */\n antiCrash: boolean;\n /**\n * Whether or not to polyfill `require` function. Defaults to `true`.\n */\n requirePolyfill: boolean;\n}\n\nlet globalConfig: Partial<CommandKitConfig> = {\n envExtra: true,\n outDir: 'dist',\n watch: true,\n clearRestartLogs: true,\n minify: false,\n sourcemap: false,\n nodeOptions: [],\n antiCrash: true,\n requirePolyfill: true,\n token: process.env.DISCORD_TOKEN,\n};\n\nexport function getConfig(): CommandKitConfig {\n return globalConfig as CommandKitConfig;\n}\n\nconst requiredProps = ['clientOptions'] as const;\n\ntype R = (typeof requiredProps)[number];\n\ntype PartialConfig<T extends CommandKitConfig> = Partial<Omit<T, R>> &\n Pick<T, R>;\n\nexport function defineConfig(config: PartialConfig<CommandKitConfig>) {\n for (const prop of requiredProps) {\n if (!config[prop]) {\n throw new Error(\n `[CommandKit Config] Missing required config property: ${prop}`,\n );\n }\n }\n\n globalConfig = {\n ...globalConfig,\n ...config,\n };\n\n return globalConfig;\n}\n","import { build } from 'tsup';\nimport { getConfig } from '../../config';\nimport { join } from 'path';\n\nexport function bundle(mode: 'development' | 'production') {\n switch (mode) {\n case 'development':\n return buildDevelopment();\n default:\n throw new Error('Not implemented');\n }\n}\n\nfunction buildDevelopment() {\n const { watch } = getConfig();\n\n const outDir = join(process.cwd(), '.commandkit');\n\n return build({\n clean: true,\n format: ['esm'],\n bundle: false,\n dts: false,\n skipNodeModulesBundle: true,\n minify: false,\n shims: true,\n sourcemap: 'inline',\n keepNames: true,\n outDir: '.commandkit',\n silent: true,\n entry: ['src'],\n watch,\n async onSuccess() {\n // return await injectShims('.commandkit', main, false, requirePolyfill);\n },\n }).then(() => {\n return join(outDir, 'client.mjs');\n });\n}\n","import type yargs from 'yargs';\nimport { findConfigPath, importConfig } from '../common/config';\nimport colors from '../../utils/colors';\nimport { Logger } from '../common/logger';\nimport { loadEnv } from '../../bootstrap/loadEnv';\nimport { createClient, getClient } from '../../bootstrap/client';\nimport { bundle } from '../bundler/bundle';\n\nconst commandkitVersion = '0.1.11-dev.20240203230231';\n\nfunction printBanner() {\n const banner = colors.magenta(\n `${String.fromCharCode(9670)} CommandKit ${commandkitVersion}`,\n );\n Logger.Log(banner);\n Logger.Info('Initializing the development environment...');\n}\n\nexport async function initializeDevelopmentEnvironment(\n args: yargs.ArgumentsCamelCase<{\n config?: string | undefined;\n nodeOptions?: string | undefined;\n }>,\n) {\n printBanner();\n\n if (getClient()) {\n Logger.Fatal('The development environment is already initialized.');\n return;\n }\n\n const envErr = loadEnv('development');\n\n if (envErr) {\n Logger.Warning('Failed to load .env', envErr);\n } else {\n Logger.Debug('Loaded .env');\n }\n\n const configPath = await findConfigPath(args.config ?? process.cwd());\n if (!configPath) {\n const msg = `Could not locate the commandkit config file${\n args.config ? ' at ' + args.config : ' in the current working directory'\n }.`;\n Logger.Fatal(msg);\n return;\n }\n\n try {\n var config = await importConfig(configPath);\n Logger.Debug('Loaded config from', colors.yellow(configPath));\n } catch (e) {\n Logger.Warning('Failed to load config');\n Logger.Fatal(colors.red((e as Error).stack ?? `${e}`));\n return;\n }\n\n const client = createClient();\n\n // build the project\n const entrypoint = await bundle('development');\n\n try {\n // load the client entrypoint\n await import(`file://${entrypoint}`);\n await client.login(config.token);\n } catch (e) {\n Logger.Fatal('Failed to load the client entrypoint', e);\n }\n}\n"],"mappings":"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","names":["config","config","config","yargs"]}
@@ -1,2 +0,0 @@
1
- import{initializeDevelopmentEnvironment}from"../chunk-SB3FAFCD.mjs";import"../chunk-QC2F7O3S.mjs";import"../chunk-UV2LVAQV.mjs";import"../chunk-BJCWVCAY.mjs";import"../chunk-FQGSVSCT.mjs";import"../chunk-DEB7FLUS.mjs";import"../chunk-QYJ4DE3N.mjs";import"../chunk-ZJRAI4W5.mjs";import"../chunk-7KD7ZCH6.mjs";import yargs from"yargs/yargs";import{hideBin}from"yargs/helpers";yargs(hideBin(process.argv)).scriptName("commandkit").command("dev","Start the bot in development mode",()=>{},async args=>{await initializeDevelopmentEnvironment(args)}).command("start","Start the production build").command("build","Generate production build of the project").options({config:{alias:"c",type:"string",description:"Path to the commandkit config file"},nodeOptions:{alias:"n",type:"string",description:"Node options to pass to the process"}}).version("0.1.11-dev.20240203230231").help().demandCommand().parse();
2
- //# sourceMappingURL=cli.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/environment/cli.ts"],"sourcesContent":["import yargs from 'yargs/yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { initializeDevelopmentEnvironment } from './actions/development';\n\nyargs(hideBin(process.argv))\n .scriptName('commandkit')\n .command(\n 'dev',\n 'Start the bot in development mode',\n () => {},\n async (args) => {\n await initializeDevelopmentEnvironment(args);\n },\n )\n .command('start', 'Start the production build')\n .command('build', 'Generate production build of the project')\n .options({\n config: {\n alias: 'c',\n type: 'string',\n description: 'Path to the commandkit config file',\n },\n nodeOptions: {\n alias: 'n',\n type: 'string',\n description: 'Node options to pass to the process',\n },\n })\n .version('0.1.11-dev.20240203230231')\n .help()\n .demandCommand()\n .parse();\n"],"mappings":"oTAAA,OAAO,UAAW,cAClB,OAAS,YAAe,gBAGxB,MAAM,QAAQ,QAAQ,IAAI,CAAC,EACxB,WAAW,YAAY,EACvB,QACC,MACA,oCACA,IAAM,CAAC,EACP,MAAO,MAAS,CACd,MAAM,iCAAiC,IAAI,CAC7C,CACF,EACC,QAAQ,QAAS,4BAA4B,EAC7C,QAAQ,QAAS,0CAA0C,EAC3D,QAAQ,CACP,OAAQ,CACN,MAAO,IACP,KAAM,SACN,YAAa,oCACf,EACA,YAAa,CACX,MAAO,IACP,KAAM,SACN,YAAa,qCACf,CACF,CAAC,EACA,QAAQ,2BAA2B,EACnC,KAAK,EACL,cAAc,EACd,MAAM","names":[]}
@@ -1,7 +0,0 @@
1
- import { CommandKitConfig } from '../../config.mjs';
2
- import 'discord.js';
3
-
4
- declare function findConfigPath(relative: string): Promise<string | null>;
5
- declare function importConfig(path: string): Promise<CommandKitConfig>;
6
-
7
- export { findConfigPath, importConfig };
@@ -1,7 +0,0 @@
1
- import { CommandKitConfig } from '../../config.js';
2
- import 'discord.js';
3
-
4
- declare function findConfigPath(relative: string): Promise<string | null>;
5
- declare function importConfig(path: string): Promise<CommandKitConfig>;
6
-
7
- export { findConfigPath, importConfig };
@@ -1,2 +0,0 @@
1
- "use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var config_exports={};__export(config_exports,{findConfigPath:()=>findConfigPath,importConfig:()=>importConfig});module.exports=__toCommonJS(config_exports);var import_node_fs=require("fs"),import_node_path=require("path");var ConfigLookupPaths=["js","cjs","mjs"];async function findConfigPath(relative){for(let extension of ConfigLookupPaths){let path=(0,import_node_path.join)(relative,`commandkit.${extension}`);if((0,import_node_fs.existsSync)(path))return path}return null}__name(findConfigPath,"findConfigPath");async function importConfig(path){let config=await import(`file://${path}`);return config?.default??config}__name(importConfig,"importConfig");0&&(module.exports={findConfigPath,importConfig});
2
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/environment/common/config.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { join } from 'node:path';\nimport type { CommandKitConfig } from '../../config';\n\nconst ConfigLookupPaths = [\n // javascript\n 'js',\n 'cjs',\n 'mjs',\n];\n\nexport async function findConfigPath(relative: string) {\n for (const extension of ConfigLookupPaths) {\n const path = join(relative, `commandkit.${extension}`);\n if (existsSync(path)) return path;\n }\n\n return null;\n}\n\nexport async function importConfig(path: string): Promise<CommandKitConfig> {\n const config = await import(`file://${path}`);\n return config?.default ?? config;\n}\n"],"mappings":"ouBAAA,6JAAA,mBAA2B,cAC3B,iBAAqB,gBAGrB,IAAM,kBAAoB,CAExB,KACA,MACA,KACF,EAEA,eAAsB,eAAe,SAAkB,CACrD,QAAW,aAAa,kBAAmB,CACzC,IAAM,QAAO,uBAAK,SAAU,cAAc,SAAS,EAAE,EACrD,MAAI,2BAAW,IAAI,EAAG,OAAO,IAC/B,CAEA,OAAO,IACT,CAPsB,wCAStB,eAAsB,aAAa,KAAyC,CAC1E,IAAM,OAAS,MAAM,OAAO,UAAU,IAAI,IAC1C,OAAO,QAAQ,SAAW,MAC5B,CAHsB","names":[]}
@@ -1,2 +0,0 @@
1
- import{findConfigPath,importConfig}from"../../chunk-UV2LVAQV.mjs";import"../../chunk-7KD7ZCH6.mjs";export{findConfigPath,importConfig};
2
- //# sourceMappingURL=config.mjs.map