commandkit 1.0.0-dev.20250520125246 → 1.0.0-dev.20250521020104

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/components.cjs +1 -0
  2. package/components.d.ts +1 -0
  3. package/config.cjs +5 -0
  4. package/config.d.ts +1 -0
  5. package/dist/CommandKit-jZCy9fZX.d.ts +914 -0
  6. package/dist/CommandKit.d.ts +13 -0
  7. package/dist/CommandKit.js +16 -0
  8. package/dist/CommandKit.js.map +1 -0
  9. package/dist/app/commands/AppCommandRunner.d.ts +13 -0
  10. package/dist/app/commands/AppCommandRunner.js +3 -0
  11. package/dist/app/commands/AppCommandRunner.js.map +1 -0
  12. package/dist/app/commands/Context.d.ts +13 -0
  13. package/dist/app/commands/Context.js +3 -0
  14. package/dist/app/commands/Context.js.map +1 -0
  15. package/dist/app/commands/MessageCommandParser.d.ts +60 -0
  16. package/dist/app/commands/MessageCommandParser.js +2 -0
  17. package/dist/app/commands/MessageCommandParser.js.map +1 -0
  18. package/dist/app/commands/helpers.d.ts +7 -0
  19. package/dist/app/commands/helpers.js +2 -0
  20. package/dist/app/commands/helpers.js.map +1 -0
  21. package/dist/app/events/EventWorkerContext.d.ts +28 -0
  22. package/dist/app/events/EventWorkerContext.js +2 -0
  23. package/dist/app/events/EventWorkerContext.js.map +1 -0
  24. package/dist/app/handlers/AppCommandHandler.d.ts +13 -0
  25. package/dist/app/handlers/AppCommandHandler.js +8 -0
  26. package/dist/app/handlers/AppCommandHandler.js.map +1 -0
  27. package/dist/app/handlers/AppEventsHandler.d.ts +13 -0
  28. package/dist/app/handlers/AppEventsHandler.js +3 -0
  29. package/dist/app/handlers/AppEventsHandler.js.map +1 -0
  30. package/dist/app/index.d.ts +15 -0
  31. package/dist/app/index.js +8 -0
  32. package/dist/app/index.js.map +1 -0
  33. package/dist/app/middleware/signals.d.ts +18 -0
  34. package/dist/app/middleware/signals.js +2 -0
  35. package/dist/app/middleware/signals.js.map +1 -0
  36. package/dist/app/register/CommandRegistrar.d.ts +13 -0
  37. package/dist/app/register/CommandRegistrar.js +3 -0
  38. package/dist/app/register/CommandRegistrar.js.map +1 -0
  39. package/dist/app/router/CommandsRouter.d.ts +65 -0
  40. package/dist/app/router/CommandsRouter.js +2 -0
  41. package/dist/app/router/CommandsRouter.js.map +1 -0
  42. package/dist/app/router/EventsRouter.d.ts +88 -0
  43. package/dist/app/router/EventsRouter.js +2 -0
  44. package/dist/app/router/EventsRouter.js.map +1 -0
  45. package/dist/app/router/index.d.ts +3 -0
  46. package/dist/app/router/index.js +2 -0
  47. package/dist/app/router/index.js.map +1 -0
  48. package/dist/cli/app-process.d.ts +5 -0
  49. package/dist/cli/app-process.js +3 -0
  50. package/dist/cli/app-process.js.map +1 -0
  51. package/dist/cli/build.d.ts +24 -0
  52. package/dist/cli/build.js +49 -0
  53. package/dist/cli/build.js.map +1 -0
  54. package/dist/cli/common.d.ts +31 -0
  55. package/dist/cli/common.js +10 -0
  56. package/dist/cli/common.js.map +1 -0
  57. package/dist/cli/development.d.ts +3 -0
  58. package/dist/cli/development.js +55 -0
  59. package/dist/cli/development.js.map +1 -0
  60. package/dist/cli/env.d.ts +15 -0
  61. package/dist/cli/env.js +2 -0
  62. package/dist/cli/env.js.map +1 -0
  63. package/dist/cli/generators.d.ts +4 -0
  64. package/dist/cli/generators.js +42 -0
  65. package/dist/cli/generators.js.map +1 -0
  66. package/dist/cli/information.d.ts +3 -0
  67. package/dist/cli/information.js +7 -0
  68. package/dist/cli/information.js.map +1 -0
  69. package/dist/cli/init.d.ts +10 -0
  70. package/dist/cli/init.js +100 -0
  71. package/dist/cli/init.js.map +1 -0
  72. package/dist/cli/parse-env.d.ts +3 -0
  73. package/dist/cli/parse-env.js +2 -0
  74. package/dist/cli/parse-env.js.map +1 -0
  75. package/dist/cli/production.d.ts +6 -0
  76. package/dist/cli/production.js +50 -0
  77. package/dist/cli/production.js.map +1 -0
  78. package/dist/cli/type-checker.d.ts +7 -0
  79. package/dist/cli/type-checker.js +5 -0
  80. package/dist/cli/type-checker.js.map +1 -0
  81. package/dist/cli/utils.d.ts +5 -0
  82. package/dist/cli/utils.js +2 -0
  83. package/dist/cli/utils.js.map +1 -0
  84. package/dist/components/common/EventInterceptor.d.ts +82 -0
  85. package/dist/components/common/EventInterceptor.js +2 -0
  86. package/dist/components/common/EventInterceptor.js.map +1 -0
  87. package/dist/components/common/element.d.ts +29 -0
  88. package/dist/components/common/element.js +2 -0
  89. package/dist/components/common/element.js.map +1 -0
  90. package/dist/components/common/types.d.ts +3 -0
  91. package/dist/components/common/types.js +2 -0
  92. package/dist/components/common/types.js.map +1 -0
  93. package/dist/components/index.d.ts +22 -0
  94. package/dist/components/index.js +16 -0
  95. package/dist/components/index.js.map +1 -0
  96. package/dist/components/v1/action-row/ActionRow.d.ts +18 -0
  97. package/dist/components/v1/action-row/ActionRow.js +2 -0
  98. package/dist/components/v1/action-row/ActionRow.js.map +1 -0
  99. package/dist/components/v1/button/Button.d.ts +31 -0
  100. package/dist/components/v1/button/Button.js +16 -0
  101. package/dist/components/v1/button/Button.js.map +1 -0
  102. package/dist/components/v1/button/ButtonKit.d.ts +66 -0
  103. package/dist/components/v1/button/ButtonKit.js +16 -0
  104. package/dist/components/v1/button/ButtonKit.js.map +1 -0
  105. package/dist/components/v1/modal/Modal.d.ts +57 -0
  106. package/dist/components/v1/modal/Modal.js +16 -0
  107. package/dist/components/v1/modal/Modal.js.map +1 -0
  108. package/dist/components/v1/modal/ModalKit.d.ts +64 -0
  109. package/dist/components/v1/modal/ModalKit.js +16 -0
  110. package/dist/components/v1/modal/ModalKit.js.map +1 -0
  111. package/dist/components/v1/select-menu/ChannelSelectMenuKit.d.ts +49 -0
  112. package/dist/components/v1/select-menu/ChannelSelectMenuKit.js +16 -0
  113. package/dist/components/v1/select-menu/ChannelSelectMenuKit.js.map +1 -0
  114. package/dist/components/v1/select-menu/MentionableSelectMenuKit.d.ts +49 -0
  115. package/dist/components/v1/select-menu/MentionableSelectMenuKit.js +16 -0
  116. package/dist/components/v1/select-menu/MentionableSelectMenuKit.js.map +1 -0
  117. package/dist/components/v1/select-menu/RoleSelectMenuKit.d.ts +49 -0
  118. package/dist/components/v1/select-menu/RoleSelectMenuKit.js +16 -0
  119. package/dist/components/v1/select-menu/RoleSelectMenuKit.js.map +1 -0
  120. package/dist/components/v1/select-menu/SelectMenu.d.ts +40 -0
  121. package/dist/components/v1/select-menu/SelectMenu.js +16 -0
  122. package/dist/components/v1/select-menu/SelectMenu.js.map +1 -0
  123. package/dist/components/v1/select-menu/StringSelectMenuKit.d.ts +49 -0
  124. package/dist/components/v1/select-menu/StringSelectMenuKit.js +16 -0
  125. package/dist/components/v1/select-menu/StringSelectMenuKit.js.map +1 -0
  126. package/dist/components/v1/select-menu/UserSelectMenuKit.d.ts +49 -0
  127. package/dist/components/v1/select-menu/UserSelectMenuKit.js +16 -0
  128. package/dist/components/v1/select-menu/UserSelectMenuKit.js.map +1 -0
  129. package/dist/components/v1/select-menu/common.d.ts +23 -0
  130. package/dist/components/v1/select-menu/common.js +2 -0
  131. package/dist/components/v1/select-menu/common.js.map +1 -0
  132. package/dist/components/v2/common.d.ts +7 -0
  133. package/dist/components/v2/common.js +2 -0
  134. package/dist/components/v2/common.js.map +1 -0
  135. package/dist/components/v2/container.d.ts +8 -0
  136. package/dist/components/v2/container.js +2 -0
  137. package/dist/components/v2/container.js.map +1 -0
  138. package/dist/components/v2/file.d.ts +8 -0
  139. package/dist/components/v2/file.js +2 -0
  140. package/dist/components/v2/file.js.map +1 -0
  141. package/dist/components/v2/index.d.ts +7 -0
  142. package/dist/components/v2/index.js +2 -0
  143. package/dist/components/v2/index.js.map +1 -0
  144. package/dist/components/v2/media-gallery.d.ts +15 -0
  145. package/dist/components/v2/media-gallery.js +2 -0
  146. package/dist/components/v2/media-gallery.js.map +1 -0
  147. package/dist/components/v2/section.d.ts +16 -0
  148. package/dist/components/v2/section.js +2 -0
  149. package/dist/components/v2/section.js.map +1 -0
  150. package/dist/components/v2/separator.d.ts +7 -0
  151. package/dist/components/v2/separator.js +2 -0
  152. package/dist/components/v2/separator.js.map +1 -0
  153. package/dist/components/v2/text-display.d.ts +10 -0
  154. package/dist/components/v2/text-display.js +2 -0
  155. package/dist/components/v2/text-display.js.map +1 -0
  156. package/dist/config/config.d.ts +28 -0
  157. package/dist/config/config.js +3 -0
  158. package/dist/config/config.js.map +1 -0
  159. package/dist/config/default.d.ts +20 -0
  160. package/dist/config/default.js +3 -0
  161. package/dist/config/default.js.map +1 -0
  162. package/dist/config/loader.d.ts +25 -0
  163. package/dist/config/loader.js +11 -0
  164. package/dist/config/loader.js.map +1 -0
  165. package/dist/config/types.d.ts +83 -0
  166. package/dist/config/types.js +2 -0
  167. package/dist/config/types.js.map +1 -0
  168. package/dist/config/utils.d.ts +26 -0
  169. package/dist/config/utils.js +2 -0
  170. package/dist/config/utils.js.map +1 -0
  171. package/dist/context/async-context.d.ts +13 -0
  172. package/dist/context/async-context.js +16 -0
  173. package/dist/context/async-context.js.map +1 -0
  174. package/dist/context/environment.d.ts +13 -0
  175. package/dist/context/environment.js +3 -0
  176. package/dist/context/environment.js.map +1 -0
  177. package/dist/events/CommandKitEventsChannel.d.ts +13 -0
  178. package/dist/events/CommandKitEventsChannel.js +2 -0
  179. package/dist/events/CommandKitEventsChannel.js.map +1 -0
  180. package/dist/flags/feature-flags.d.ts +13 -0
  181. package/dist/flags/feature-flags.js +16 -0
  182. package/dist/flags/feature-flags.js.map +1 -0
  183. package/dist/flags/store.d.ts +13 -0
  184. package/dist/flags/store.js +2 -0
  185. package/dist/flags/store.js.map +1 -0
  186. package/dist/index.d.ts +51 -2024
  187. package/dist/index.js +43 -6912
  188. package/dist/index.js.map +1 -1
  189. package/dist/logger/DefaultLogger.d.ts +28 -0
  190. package/dist/logger/DefaultLogger.js +3 -0
  191. package/dist/logger/DefaultLogger.js.map +1 -0
  192. package/dist/logger/ILogger.d.ts +9 -0
  193. package/dist/logger/ILogger.js +2 -0
  194. package/dist/logger/ILogger.js.map +1 -0
  195. package/dist/logger/Logger.d.ts +15 -0
  196. package/dist/logger/Logger.js +3 -0
  197. package/dist/logger/Logger.js.map +1 -0
  198. package/dist/plugins/CompilerPlugin.d.ts +13 -0
  199. package/dist/plugins/CompilerPlugin.js +2 -0
  200. package/dist/plugins/CompilerPlugin.js.map +1 -0
  201. package/dist/plugins/PluginCommon.d.ts +13 -0
  202. package/dist/plugins/PluginCommon.js +2 -0
  203. package/dist/plugins/PluginCommon.js.map +1 -0
  204. package/dist/plugins/RuntimePlugin.d.ts +13 -0
  205. package/dist/plugins/RuntimePlugin.js +2 -0
  206. package/dist/plugins/RuntimePlugin.js.map +1 -0
  207. package/dist/plugins/index.d.ts +15 -0
  208. package/dist/plugins/index.js +3 -0
  209. package/dist/plugins/index.js.map +1 -0
  210. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.d.ts +13 -0
  211. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js +3 -0
  212. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js.map +1 -0
  213. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.d.ts +13 -0
  214. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js +3 -0
  215. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js.map +1 -0
  216. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.d.ts +26 -0
  217. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js +3 -0
  218. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js.map +1 -0
  219. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.d.ts +23 -0
  220. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js +3 -0
  221. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js.map +1 -0
  222. package/dist/plugins/plugin-runtime/runtime.d.ts +13 -0
  223. package/dist/plugins/plugin-runtime/runtime.js +2 -0
  224. package/dist/plugins/plugin-runtime/runtime.js.map +1 -0
  225. package/dist/plugins/plugin-runtime/types.d.ts +72 -0
  226. package/dist/plugins/plugin-runtime/types.js +2 -0
  227. package/dist/plugins/plugin-runtime/types.js.map +1 -0
  228. package/dist/plugins/types.d.ts +13 -0
  229. package/dist/plugins/types.js +2 -0
  230. package/dist/plugins/types.js.map +1 -0
  231. package/dist/types.d.ts +13 -0
  232. package/dist/types.js +2 -0
  233. package/dist/types.js.map +1 -0
  234. package/dist/utils/clone.d.ts +3 -0
  235. package/dist/utils/clone.js +2 -0
  236. package/dist/utils/clone.js.map +1 -0
  237. package/dist/utils/colors.d.ts +5 -0
  238. package/dist/utils/colors.js +2 -0
  239. package/dist/utils/colors.js.map +1 -0
  240. package/dist/utils/constants.d.ts +15 -0
  241. package/dist/utils/constants.js +2 -0
  242. package/dist/utils/constants.js.map +1 -0
  243. package/dist/utils/dev-hooks.d.ts +13 -0
  244. package/dist/utils/dev-hooks.js +3 -0
  245. package/dist/utils/dev-hooks.js.map +1 -0
  246. package/dist/utils/error-codes.d.ts +14 -0
  247. package/dist/utils/error-codes.js +2 -0
  248. package/dist/utils/error-codes.js.map +1 -0
  249. package/dist/utils/get-paths.d.ts +4 -0
  250. package/dist/utils/get-paths.js +2 -0
  251. package/dist/utils/get-paths.js.map +1 -0
  252. package/dist/utils/resolve-file-url.d.ts +9 -0
  253. package/dist/utils/resolve-file-url.js +2 -0
  254. package/dist/utils/resolve-file-url.js.map +1 -0
  255. package/dist/utils/types-package.d.ts +4 -0
  256. package/dist/utils/types-package.js +14 -0
  257. package/dist/utils/types-package.js.map +1 -0
  258. package/dist/utils/utilities.d.ts +40 -0
  259. package/dist/utils/utilities.js +3 -0
  260. package/dist/utils/utilities.js.map +1 -0
  261. package/dist/utils/warn-unstable.d.ts +4 -0
  262. package/dist/utils/warn-unstable.js +2 -0
  263. package/dist/utils/warn-unstable.js.map +1 -0
  264. package/dist/version.d.ts +6 -0
  265. package/dist/version.js +2 -0
  266. package/dist/version.js.map +1 -0
  267. package/hooks.cjs +48 -0
  268. package/hooks.d.ts +18 -0
  269. package/jsx-runtime.cjs +1 -1
  270. package/jsx-runtime.d.ts +1 -1
  271. package/package.json +32 -5
  272. package/plugin.cjs +10 -0
  273. package/plugin.d.ts +9 -0
  274. package/jsx-runtime.mjs +0 -5
@@ -0,0 +1,2 @@
1
+ "use strict";var b=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var K=Object.prototype.hasOwnProperty;var v=t=>{throw TypeError(t)};var p=(t,e)=>b(t,"name",{value:e,configurable:!0});var N=(t,e)=>{for(var r in e)b(t,r,{get:e[r],enumerable:!0})},k=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of R(e))!K.call(t,s)&&s!==r&&b(t,s,{get:()=>e[s],enumerable:!(n=I(e,s))||n.enumerable});return t};var P=t=>k(b({},"__esModule",{value:!0}),t);var M=(t,e,r)=>e.has(t)||v("Cannot "+r);var l=(t,e,r)=>(M(t,e,"read from private field"),r?r.call(t):e.get(t)),C=(t,e,r)=>e.has(t)?v("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),S=(t,e,r,n)=>(M(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r);var T={};N(T,{MessageCommandOptions:()=>w,MessageCommandParser:()=>E});module.exports=P(T);var i=require("discord.js");var q={ExitMiddleware:Symbol("kExitMiddleware"),ForwardedCommand:Symbol("kForwardedCommand"),InvalidCommandPrefix:Symbol("kInvalidCommandPrefix"),PluginCaptureHandle:Symbol("kPluginCaptureHandle")};function A(t){let e=new Error;return Reflect.set(e,"code",t),e}p(A,"createCommandKitError");var g,c,f,O=class O{constructor(e,r,n){this.message=e;this.prefix=r;this.schema=n;C(this,g,null);C(this,c,null);C(this,f,[])}getArgs(){return this.parse(),l(this,f)}get options(){return l(this,c)||S(this,c,new w(this)),l(this,c)}getOption(e){var r;return(r=this.parse().options.find(n=>n.name===e))==null?void 0:r.value}getCommand(){return this.parse().command}getSubcommand(){return this.parse().subcommand}getSubcommandGroup(){return this.parse().subcommandGroup}getPrefix(){for(let e of this.prefix)if(this.message.content.startsWith(e))return e}getFullCommand(){return[this.getCommand(),this.getSubcommandGroup(),this.getSubcommand()].filter(e=>e).join(" ")}parse(){if(l(this,g))return l(this,g);let e=this.message.content,r=this.getPrefix();if(!r)throw A(q.InvalidCommandPrefix);let n=e.slice(r.length).trim().split(" "),s=n.shift();S(this,f,n);let d,h;if(s!=null&&s.includes(":")){let[,a,o]=s.split(":");!o&&a?h=a:o&&a&&(d=a,h=o)}let y=this.schema([s,d,h].filter(Boolean).join(" ").trim()),G=n.map(a=>{try{let[o,u]=a.split(":");if(!(o in y))return null;switch(y[o]){case i.ApplicationCommandOptionType.Boolean:return{name:o,value:u==="true"};case i.ApplicationCommandOptionType.Integer:return{name:o,value:parseInt(u,10)};case i.ApplicationCommandOptionType.Number:return{name:o,value:parseFloat(u)};case i.ApplicationCommandOptionType.String:return{name:o,value:u};case i.ApplicationCommandOptionType.User:return{name:o,value:this.message.mentions.users.find(m=>m.id===u.replace(/[<@!>]/g,""))};case i.ApplicationCommandOptionType.Channel:return{name:o,value:this.message.mentions.channels.find(m=>m.id===u.replace(/[<#>]/g,""))};case i.ApplicationCommandOptionType.Role:return{name:o,value:this.message.mentions.roles.find(m=>m.id===u.replace(/[<@&>]/g,""))};case i.ApplicationCommandOptionType.Attachment:return{name:o,value:this.message.attachments.find(m=>m.name===u)};default:return null}}catch{return null}}).filter(a=>a!==null);return S(this,g,{command:s,options:G,subcommand:h,subcommandGroup:d}),l(this,g)}};g=new WeakMap,c=new WeakMap,f=new WeakMap,p(O,"MessageCommandParser");var E=O,x=class x{constructor(e){this.parser=e}assertOption(e,r=!1){let n=this.parser.getOption(e);if(r&&n===void 0)throw new Error(`Option "${e}" is required.`);return n??null}getMember(e,r=!1){var d;let n=this.assertOption(e,r),s=(d=this.parser.message.guild)==null?void 0:d.members.cache.get(n==null?void 0:n.id);if(r&&!s)throw new Error(`Member "${e}" is required.`);return s??null}getAttachment(e,r=!1){return this.assertOption(e,r)}getBoolean(e,r=!1){return this.assertOption(e,r)}getNumber(e,r=!1){return this.assertOption(e,r)}getString(e,r=!1){return this.assertOption(e,r)}getInteger(e,r=!1){return this.assertOption(e,r)}getUser(e,r=!1){return this.assertOption(e,r)}getChannel(e,r=!1){return this.assertOption(e,r)}getRole(e,r=!1){return this.assertOption(e,r)}getMentionable(e,r=!1){let n=this.assertOption(e,r);if(n instanceof i.GuildMember||n instanceof i.User||n instanceof i.Role)return n;if(r)throw new Error(`Mentionable "${e}" is required.`);return null}getSubcommand(e=!1){let r=this.parser.getSubcommand();if(e&&r===void 0)throw new Error("Subcommand is required.");return r??null}getSubcommandGroup(e=!1){let r=this.parser.getSubcommandGroup();if(e&&r===void 0)throw new Error("Subcommand group is required.");return r??null}};p(x,"MessageCommandOptions");var w=x;0&&(module.exports={MessageCommandOptions,MessageCommandParser});
2
+ //# sourceMappingURL=MessageCommandParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/app/commands/MessageCommandParser.ts","../../../src/utils/error-codes.ts"],"sourcesContent":["import { Channel } from 'diagnostics_channel';\nimport {\n Message,\n ApplicationCommandOptionType,\n GuildMember,\n Attachment,\n User,\n Role,\n CommandInteractionOption } from\n'discord.js';\nimport {\n CommandKitErrorCodes,\n createCommandKitError } from\n'../../utils/error-codes';\n\nexport interface ParsedMessageCommand {\n command: string;\n options: {name: string;value: unknown;}[];\n subcommand?: string;\n subcommandGroup?: string;\n}\n\nexport type MessageCommandOptionsSchema = Record<\n string,\n ApplicationCommandOptionType>;\n\n\nexport class MessageCommandParser {\n #parsed: ParsedMessageCommand | null = null;\n #options: MessageCommandOptions | null = null;\n #args: string[] = [];\n\n public constructor(\n public message: Message,\n private prefix: string[],\n private schema: (command: string) => MessageCommandOptionsSchema)\n {}\n\n public getArgs() {\n void this.parse();\n return this.#args;\n }\n\n public get options() {\n if (!this.#options) {\n this.#options = new MessageCommandOptions(this);\n }\n\n return this.#options;\n }\n\n public getOption<T>(name: string): T | undefined {\n return this.parse().options.find((o) => o.name === name)?.value as T;\n }\n\n public getCommand(): string {\n return this.parse().command;\n }\n\n public getSubcommand(): string | undefined {\n return this.parse().subcommand;\n }\n\n public getSubcommandGroup(): string | undefined {\n return this.parse().subcommandGroup;\n }\n\n public getPrefix() {\n for (const p of this.prefix) {\n if (this.message.content.startsWith(p)) {\n return p;\n }\n }\n }\n\n public getFullCommand() {\n return [this.getCommand(), this.getSubcommandGroup(), this.getSubcommand()].\n filter((v) => v).\n join(' ');\n }\n\n public parse(): ParsedMessageCommand {\n if (this.#parsed) {\n return this.#parsed;\n }\n\n const content = this.message.content;\n\n const prefix = this.getPrefix();\n\n if (!prefix) {\n throw createCommandKitError(CommandKitErrorCodes.InvalidCommandPrefix);\n }\n\n const parts = content.slice(prefix.length).trim().split(' ');\n const command = parts.shift();\n\n this.#args = parts;\n\n let subcommandGroup: string | undefined;\n let subcommand: string | undefined;\n\n if (command?.includes(':')) {\n const [, group, cmd] = command.split(':');\n\n if (!cmd && group) {\n subcommand = group;\n } else if (cmd && group) {\n subcommandGroup = group;\n subcommand = cmd;\n }\n }\n\n const schema = this.schema(\n [command, subcommandGroup, subcommand].filter(Boolean).join(' ').trim()\n );\n\n const options = parts.\n map((part) => {\n try {\n const [name, value] = part.split(':');\n\n if (!(name in schema)) return null;\n\n switch (schema[name]) {\n case ApplicationCommandOptionType.Boolean:\n return { name, value: value === 'true' };\n case ApplicationCommandOptionType.Integer:\n return { name, value: parseInt(value, 10) };\n case ApplicationCommandOptionType.Number:\n return { name, value: parseFloat(value) };\n case ApplicationCommandOptionType.String:\n return { name, value };\n case ApplicationCommandOptionType.User:\n return {\n name,\n value: this.message.mentions.users.find((u) => {\n return u.id === value.replace(/[<@!>]/g, '');\n })\n };\n case ApplicationCommandOptionType.Channel:\n return {\n name,\n value: this.message.mentions.channels.find((c) => {\n return c.id === value.replace(/[<#>]/g, '');\n })\n };\n case ApplicationCommandOptionType.Role:\n return {\n name,\n value: this.message.mentions.roles.find((r) => {\n return r.id === value.replace(/[<@&>]/g, '');\n })\n };\n case ApplicationCommandOptionType.Attachment:\n return {\n name,\n value: this.message.attachments.find((a) => {\n return a.name === value;\n })\n };\n default:\n return null;\n }\n } catch {\n // Invalid option\n return null;\n }\n }).\n filter((v) => v !== null);\n\n this.#parsed = {\n command: command!,\n options,\n subcommand,\n subcommandGroup\n };\n\n return this.#parsed;\n }\n}\n\nexport class MessageCommandOptions {\n public constructor(private parser: MessageCommandParser) {}\n\n private assertOption<T>(name: string, required = false) {\n const option = this.parser.getOption<T>(name);\n\n if (required && option === undefined) {\n throw new Error(`Option \"${name}\" is required.`);\n }\n\n return option ?? null;\n }\n\n getMember(name: string): GuildMember | null;\n getMember(name: string, required: true): GuildMember;\n getMember(name: string, required = false) {\n const user = this.assertOption<User>(name, required);\n const member = this.parser.message.guild?.members.cache.get(user?.id!);\n\n if (required && !member) {\n throw new Error(`Member \"${name}\" is required.`);\n }\n\n return member ?? null;\n }\n\n getAttachment(name: string): Attachment | null;\n getAttachment(name: string, required: true): Attachment;\n getAttachment(name: string, required = false) {\n return this.assertOption<Attachment>(name, required);\n }\n\n getBoolean(name: string): boolean | null;\n getBoolean(name: string, required: true): boolean;\n getBoolean(name: string, required = false) {\n return this.assertOption<boolean>(name, required);\n }\n\n getNumber(name: string): number | null;\n getNumber(name: string, required: true): number;\n getNumber(name: string, required = false) {\n return this.assertOption<number>(name, required);\n }\n\n getString(name: string): string | null;\n getString(name: string, required: true): string;\n getString(name: string, required = false) {\n return this.assertOption<string>(name, required);\n }\n\n getInteger(name: string): number | null;\n getInteger(name: string, required: true): number;\n getInteger(name: string, required = false) {\n return this.assertOption<number>(name, required);\n }\n\n getUser(name: string): User | null;\n getUser(name: string, required: true): User;\n getUser(name: string, required = false) {\n return this.assertOption<User>(name, required);\n }\n\n getChannel(name: string): Channel | null;\n getChannel(name: string, required: true): Channel;\n getChannel(name: string, required = false) {\n return this.assertOption<Channel>(name, required);\n }\n\n getRole(name: string): Role | null;\n getRole(name: string, required: true): Role;\n getRole(name: string, required = false) {\n return this.assertOption<Role>(name, required);\n }\n\n getMentionable(\n name: string)\n : NonNullable<CommandInteractionOption['member' | 'role' | 'user']> | null;\n getMentionable(\n name: string,\n required: true)\n : NonNullable<CommandInteractionOption['member' | 'role' | 'user']>;\n getMentionable(\n name: string,\n required = false)\n : NonNullable<CommandInteractionOption['member' | 'role' | 'user']> | null {\n const target = this.assertOption(name, required);\n\n if (\n target instanceof GuildMember ||\n target instanceof User ||\n target instanceof Role)\n {\n return target;\n }\n\n if (required) {\n throw new Error(`Mentionable \"${name}\" is required.`);\n }\n\n return null;\n }\n\n getSubcommand(): string | null;\n getSubcommand(required: true): string;\n getSubcommand(required = false) {\n const sub = this.parser.getSubcommand();\n\n if (required && sub === undefined) {\n throw new Error('Subcommand is required.');\n }\n\n return sub ?? null;\n }\n\n getSubcommandGroup(): string | null;\n getSubcommandGroup(required: true): string;\n getSubcommandGroup(required = false) {\n const sub = this.parser.getSubcommandGroup();\n\n if (required && sub === undefined) {\n throw new Error('Subcommand group is required.');\n }\n\n return sub ?? null;\n }\n}","export const CommandKitErrorCodes = {\n ExitMiddleware: Symbol('kExitMiddleware'),\n ForwardedCommand: Symbol('kForwardedCommand'),\n InvalidCommandPrefix: Symbol('kInvalidCommandPrefix'),\n PluginCaptureHandle: Symbol('kPluginCaptureHandle')\n} as const;\n\nexport type CommandKitError = Error & {code: symbol;};\n\nexport function createCommandKitError(code: symbol): CommandKitError {\n const error = new Error() as CommandKitError;\n\n Reflect.set(error, 'code', code);\n\n return error;\n}\n\nexport function isCommandKitError(error: unknown): error is CommandKitError {\n if (!(error instanceof Error)) return false;\n const code = Reflect.get(error, 'code');\n\n for (const key in CommandKitErrorCodes) {\n if (CommandKitErrorCodes[key as keyof typeof CommandKitErrorCodes] === code)\n return true;\n }\n\n return false;\n}\n\nexport function isErrorType(error: unknown, code: symbol | symbol[]): boolean {\n if (!isCommandKitError(error)) return false;\n const errorCode = Reflect.get(error, 'code');\n\n if (!errorCode) return false;\n\n if (Array.isArray(code)) return code.includes(errorCode);\n\n return errorCode === code;\n}"],"mappings":"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","names":["MessageCommandParser_exports","__export","MessageCommandOptions","MessageCommandParser","__toCommonJS","import_discord","CommandKitErrorCodes","createCommandKitError","code","error","__name","_parsed","_options","_args","_MessageCommandParser","message","prefix","schema","__privateAdd","__privateGet","__privateSet","MessageCommandOptions","name","_a","o","p","v","content","createCommandKitError","CommandKitErrorCodes","parts","command","subcommandGroup","subcommand","group","cmd","options","part","value","u","c","r","a","__name","MessageCommandParser","_MessageCommandOptions","parser","required","option","user","member","target","sub"]}
@@ -0,0 +1,7 @@
1
+ import { Interaction, Message } from 'discord.js';
2
+
3
+ type CommandSource = Interaction | Message;
4
+ declare function isMessageSource(source: CommandSource): source is Message;
5
+ declare function isInteractionSource(source: CommandSource): source is Interaction;
6
+
7
+ export { type CommandSource, isInteractionSource, isMessageSource };
@@ -0,0 +1,2 @@
1
+ "use strict";var t=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var s=(e,o)=>t(e,"name",{value:o,configurable:!0});var S=(e,o)=>{for(var n in o)t(e,n,{get:o[n],enumerable:!0})},f=(e,o,n,c)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of m(o))!p.call(e,r)&&r!==n&&t(e,r,{get:()=>o[r],enumerable:!(c=u(o,r))||c.enumerable});return e};var g=e=>f(t({},"__esModule",{value:!0}),e);var M={};S(M,{isInteractionSource:()=>I,isMessageSource:()=>i});module.exports=g(M);var a=require("discord.js");function i(e){return e instanceof a.Message}s(i,"isMessageSource");function I(e){return!i(e)}s(I,"isInteractionSource");0&&(module.exports={isInteractionSource,isMessageSource});
2
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/app/commands/helpers.ts"],"sourcesContent":["import { Interaction, Message } from 'discord.js';\n\nexport type CommandSource = Interaction | Message;\n\nexport function isMessageSource(source: CommandSource): source is Message {\n return source instanceof Message;\n}\n\nexport function isInteractionSource(\nsource: CommandSource)\n: source is Interaction {\n return !isMessageSource(source);\n}"],"mappings":"4dAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,EAAA,oBAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAqC,sBAI9B,SAASC,EAAgBC,EAA0C,CACxE,OAAOA,aAAkB,SAC3B,CAFgBC,EAAAF,EAAA,mBAIT,SAASG,EAChBF,EACwB,CACtB,MAAO,CAACD,EAAgBC,CAAM,CAChC,CAJgBC,EAAAC,EAAA","names":["helpers_exports","__export","isInteractionSource","isMessageSource","__toCommonJS","import_discord","isMessageSource","source","__name","isInteractionSource"]}
@@ -0,0 +1,28 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ import { ParsedEvent } from '../router/EventsRouter.js';
3
+ import { y as CommandKit } from '../../CommandKit-jZCy9fZX.js';
4
+ import 'discord.js';
5
+ import 'node:events';
6
+ import '../../components/common/element.js';
7
+ import '../../components/v1/button/ButtonKit.js';
8
+ import '../../components/common/EventInterceptor.js';
9
+ import '../../components/v1/modal/ModalKit.js';
10
+ import '../commands/MessageCommandParser.js';
11
+ import 'diagnostics_channel';
12
+ import '../router/CommandsRouter.js';
13
+ import '../../plugins/plugin-runtime/types.js';
14
+ import '../../utils/constants.js';
15
+
16
+ interface EventWorkerContext {
17
+ event: string;
18
+ namespace: string | null;
19
+ data: ParsedEvent;
20
+ commandkit: CommandKit;
21
+ arguments: any[];
22
+ }
23
+ declare const eventWorkerContext: AsyncLocalStorage<EventWorkerContext>;
24
+ declare function runInEventWorkerContext<T>(context: EventWorkerContext, callback: () => T): T;
25
+ declare function getEventWorkerContext(): EventWorkerContext;
26
+ declare function isEventWorkerContext(worker: any): worker is EventWorkerContext;
27
+
28
+ export { type EventWorkerContext, eventWorkerContext, getEventWorkerContext, isEventWorkerContext, runInEventWorkerContext };
@@ -0,0 +1,2 @@
1
+ "use strict";var o=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var m=(t,e)=>o(t,"name",{value:e,configurable:!0});var s=(t,e)=>{for(var r in e)o(t,r,{get:e[r],enumerable:!0})},u=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of x(e))!E.call(t,n)&&n!==r&&o(t,n,{get:()=>e[n],enumerable:!(i=v(e,n))||i.enumerable});return t};var f=t=>u(o({},"__esModule",{value:!0}),t);var d={};s(d,{eventWorkerContext:()=>a,getEventWorkerContext:()=>W,isEventWorkerContext:()=>p,runInEventWorkerContext:()=>C});module.exports=f(d);var c=require("async_hooks");var k=Symbol("commandkitEventWorker"),a=new c.AsyncLocalStorage;function C(t,e){return Reflect.set(t,k,!0),a.run(t,e)}m(C,"runInEventWorkerContext");function W(){let t=a.getStore();if(!t)throw new Error("Event worker context not found");return t}m(W,"getEventWorkerContext");function p(t){return t&&Reflect.get(t,k)===!0}m(p,"isEventWorkerContext");0&&(module.exports={eventWorkerContext,getEventWorkerContext,isEventWorkerContext,runInEventWorkerContext});
2
+ //# sourceMappingURL=EventWorkerContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/app/events/EventWorkerContext.ts"],"sourcesContent":["import { AsyncLocalStorage } from 'node:async_hooks';\nimport { ParsedEvent } from '../router';\nimport { CommandKit } from '../../CommandKit';\n\nexport interface EventWorkerContext {\n event: string;\n namespace: string | null;\n data: ParsedEvent;\n commandkit: CommandKit;\n arguments: any[];\n}\n\nconst kEventWorker = Symbol('commandkitEventWorker');\n\nexport const eventWorkerContext = new AsyncLocalStorage<EventWorkerContext>();\n\nexport function runInEventWorkerContext<T>(\ncontext: EventWorkerContext,\ncallback: () => T)\n: T {\n Reflect.set(context, kEventWorker, true);\n\n return eventWorkerContext.run(context, callback);\n}\n\nexport function getEventWorkerContext(): EventWorkerContext {\n const context = eventWorkerContext.getStore();\n\n if (!context) {\n throw new Error('Event worker context not found');\n }\n\n return context;\n}\n\nexport function isEventWorkerContext(\nworker: any)\n: worker is EventWorkerContext {\n return worker && Reflect.get(worker, kEventWorker) === true;\n}"],"mappings":"4dAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,EAAA,0BAAAC,EAAA,yBAAAC,EAAA,4BAAAC,IAAA,eAAAC,EAAAN,GAAA,IAAAO,EAAkC,uBAYlC,IAAMC,EAAe,OAAO,uBAAuB,EAEtCC,EAAqB,IAAI,oBAE/B,SAASC,EAChBC,EACAC,EACI,CACF,eAAQ,IAAID,EAASH,EAAc,EAAI,EAEhCC,EAAmB,IAAIE,EAASC,CAAQ,CACjD,CAPgBC,EAAAH,EAAA,2BAST,SAASI,GAA4C,CAC1D,IAAMH,EAAUF,EAAmB,SAAS,EAE5C,GAAI,CAACE,EACH,MAAM,IAAI,MAAM,gCAAgC,EAGlD,OAAOA,CACT,CARgBE,EAAAC,EAAA,yBAUT,SAASC,EAChBC,EAC+B,CAC7B,OAAOA,GAAU,QAAQ,IAAIA,EAAQR,CAAY,IAAM,EACzD,CAJgBK,EAAAE,EAAA","names":["EventWorkerContext_exports","__export","eventWorkerContext","getEventWorkerContext","isEventWorkerContext","runInEventWorkerContext","__toCommonJS","import_node_async_hooks","kEventWorker","eventWorkerContext","runInEventWorkerContext","context","callback","__name","getEventWorkerContext","isEventWorkerContext","worker"]}
@@ -0,0 +1,13 @@
1
+ export { A as AppCommandHandler, b as CommandBuilderLike, C as CommandTypeData, L as LoadedCommand, P as PreparedAppCommandExecution, a as ResolvableCommand, R as RunCommand } from '../../CommandKit-jZCy9fZX.js';
2
+ import 'discord.js';
3
+ import '../commands/MessageCommandParser.js';
4
+ import '../router/CommandsRouter.js';
5
+ import 'node:events';
6
+ import '../../components/common/element.js';
7
+ import '../../components/v1/button/ButtonKit.js';
8
+ import '../../components/common/EventInterceptor.js';
9
+ import '../../components/v1/modal/ModalKit.js';
10
+ import '../router/EventsRouter.js';
11
+ import '../../plugins/plugin-runtime/types.js';
12
+ import '../../utils/constants.js';
13
+ import 'diagnostics_channel';
@@ -0,0 +1,8 @@
1
+ "use strict";var at=Object.create;var $=Object.defineProperty;var st=Object.getOwnPropertyDescriptor;var lt=Object.getOwnPropertyNames;var ct=Object.getPrototypeOf,mt=Object.prototype.hasOwnProperty;var ke=i=>{throw TypeError(i)};var ut=(i,e,t)=>e in i?$(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var o=(i,e)=>$(i,"name",{value:e,configurable:!0});var dt=(i,e)=>{for(var t in e)$(i,t,{get:e[t],enumerable:!0})},Be=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of lt(e))!mt.call(i,r)&&r!==t&&$(i,r,{get:()=>e[r],enumerable:!(n=st(e,r))||n.enumerable});return i};var W=(i,e,t)=>(t=i!=null?at(ct(i)):{},Be(e||!i||!i.__esModule?$(t,"default",{value:i,enumerable:!0}):t,i)),pt=i=>Be($({},"__esModule",{value:!0}),i);var R=(i,e,t)=>ut(i,typeof e!="symbol"?e+"":e,t),pe=(i,e,t)=>e.has(i)||ke("Cannot "+t);var p=(i,e,t)=>(pe(i,e,"read from private field"),t?t.call(i):e.get(i)),g=(i,e,t)=>e.has(i)?ke("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(i):e.set(i,t),v=(i,e,t,n)=>(pe(i,e,"write to private field"),n?n.call(i,t):e.set(i,t),t),D=(i,e,t)=>(pe(i,e,"access private method"),t);var nn={};dt(nn,{AppCommandHandler:()=>re});module.exports=pt(nn);var E=require("discord.js");var Oe=W(require("path"));function X(i,e=!1){return`${"file://"+Oe.default.resolve(i).replace(/\\\\|\\/g,"/")}${e?`?ts=${Date.now()}`:""}`}o(X,"toFileURL");var w=require("discord.js");var y={ExitMiddleware:Symbol("kExitMiddleware"),ForwardedCommand:Symbol("kForwardedCommand"),InvalidCommandPrefix:Symbol("kInvalidCommandPrefix"),PluginCaptureHandle:Symbol("kPluginCaptureHandle")};function F(i){let e=new Error;return Reflect.set(e,"code",i),e}o(F,"createCommandKitError");function Q(i){if(!(i instanceof Error))return!1;let e=Reflect.get(i,"code");for(let t in y)if(y[t]===e)return!0;return!1}o(Q,"isCommandKitError");function A(i,e){if(!Q(i))return!1;let t=Reflect.get(i,"code");return t?Array.isArray(e)?e.includes(t):t===e:!1}o(A,"isErrorType");var k,U,V,he=class he{constructor(e,t,n){this.message=e;this.prefix=t;this.schema=n;g(this,k,null);g(this,U,null);g(this,V,[])}getArgs(){return this.parse(),p(this,V)}get options(){return p(this,U)||v(this,U,new fe(this)),p(this,U)}getOption(e){var t;return(t=this.parse().options.find(n=>n.name===e))==null?void 0:t.value}getCommand(){return this.parse().command}getSubcommand(){return this.parse().subcommand}getSubcommandGroup(){return this.parse().subcommandGroup}getPrefix(){for(let e of this.prefix)if(this.message.content.startsWith(e))return e}getFullCommand(){return[this.getCommand(),this.getSubcommandGroup(),this.getSubcommand()].filter(e=>e).join(" ")}parse(){if(p(this,k))return p(this,k);let e=this.message.content,t=this.getPrefix();if(!t)throw F(y.InvalidCommandPrefix);let n=e.slice(t.length).trim().split(" "),r=n.shift();v(this,V,n);let a,s;if(r!=null&&r.includes(":")){let[,d,m]=r.split(":");!m&&d?s=d:m&&d&&(a=d,s=m)}let u=this.schema([r,a,s].filter(Boolean).join(" ").trim()),c=n.map(d=>{try{let[m,f]=d.split(":");if(!(m in u))return null;switch(u[m]){case w.ApplicationCommandOptionType.Boolean:return{name:m,value:f==="true"};case w.ApplicationCommandOptionType.Integer:return{name:m,value:parseInt(f,10)};case w.ApplicationCommandOptionType.Number:return{name:m,value:parseFloat(f)};case w.ApplicationCommandOptionType.String:return{name:m,value:f};case w.ApplicationCommandOptionType.User:return{name:m,value:this.message.mentions.users.find(x=>x.id===f.replace(/[<@!>]/g,""))};case w.ApplicationCommandOptionType.Channel:return{name:m,value:this.message.mentions.channels.find(x=>x.id===f.replace(/[<#>]/g,""))};case w.ApplicationCommandOptionType.Role:return{name:m,value:this.message.mentions.roles.find(x=>x.id===f.replace(/[<@&>]/g,""))};case w.ApplicationCommandOptionType.Attachment:return{name:m,value:this.message.attachments.find(x=>x.name===f)};default:return null}}catch{return null}}).filter(d=>d!==null);return v(this,k,{command:r,options:c,subcommand:s,subcommandGroup:a}),p(this,k)}};k=new WeakMap,U=new WeakMap,V=new WeakMap,o(he,"MessageCommandParser");var Z=he,Ce=class Ce{constructor(e){this.parser=e}assertOption(e,t=!1){let n=this.parser.getOption(e);if(t&&n===void 0)throw new Error(`Option "${e}" is required.`);return n??null}getMember(e,t=!1){var a;let n=this.assertOption(e,t),r=(a=this.parser.message.guild)==null?void 0:a.members.cache.get(n==null?void 0:n.id);if(t&&!r)throw new Error(`Member "${e}" is required.`);return r??null}getAttachment(e,t=!1){return this.assertOption(e,t)}getBoolean(e,t=!1){return this.assertOption(e,t)}getNumber(e,t=!1){return this.assertOption(e,t)}getString(e,t=!1){return this.assertOption(e,t)}getInteger(e,t=!1){return this.assertOption(e,t)}getUser(e,t=!1){return this.assertOption(e,t)}getChannel(e,t=!1){return this.assertOption(e,t)}getRole(e,t=!1){return this.assertOption(e,t)}getMentionable(e,t=!1){let n=this.assertOption(e,t);if(n instanceof w.GuildMember||n instanceof w.User||n instanceof w.Role)return n;if(t)throw new Error(`Mentionable "${e}" is required.`);return null}getSubcommand(e=!1){let t=this.parser.getSubcommand();if(e&&t===void 0)throw new Error("Subcommand is required.");return t??null}getSubcommandGroup(e=!1){let t=this.parser.getSubcommandGroup();if(e&&t===void 0)throw new Error("Subcommand group is required.");return t??null}};o(Ce,"MessageCommandOptions");var fe=Ce;var T=require("discord.js");var Ye=require("async_hooks");var Vt=W(require("events"));var Le=require("picocolors"),h=(0,Le.createColors)(!0);var ft=require("discord.js");var ge=require("discord.js");var ht=require("discord.js");var $e=require("discord.js");var xe=require("discord.js");var Fe=require("discord.js");var Ue=require("discord.js");var Ne=require("discord.js");var He=require("discord.js");var Ge=require("discord.js");var Ct=require("discord.js");var B=require("discord.js");var gt=require("discord.js");var _e=require("discord.js");var ee=require("discord.js");var xt=require("discord.js");var yt=require("discord.js");var Je=require("discord.js");var Rt=require("fs"),Pt=require("path");var ai=Symbol("kCommandKitCacheTag"),G=process.env.COMMANDKIT_IS_DEV==="true",si=process.env.COMMANDKIT_IS_TEST==="true",li=process.env.COMMANDKIT_BOOTSTRAP_MODE||"development";var We=require("crypto");var ye=class ye{constructor(e){this.options=e}id=(0,We.randomUUID)();loadedAt=Date.now();async activate(e){}async deactivate(e){}};o(ye,"PluginCommon");var q=ye;var be=class be extends q{type="compiler";async transform(e){return null}async resolve(e){return null}async onBuildStart(){}async onBuildEnd(){}};o(be,"CompilerPlugin");var j=be;var vt=require("discord.js");var wt=require("fs/promises");var Ee=class Ee extends j{name="MacroPlugin";macroTransformer;async activate(){let e=await import("use-macro");this.macroTransformer=new e.MacroTransformer}async deactivate(){this.macroTransformer=null}async transform(e){if(!this.options.enabled)return null;let{contents:t,loader:n}=await this.macroTransformer.transform(e.contents.toString(),e.path);return{contents:t,loader:n}}};o(Ee,"MacroPlugin");var te=Ee;var Mt={plugins:[new te({enabled:!0})],esbuildPlugins:[],compilerOptions:{macro:{development:!1}},static:!0,typescript:{ignoreBuildErrors:!1},distDir:"dist",env:{},sourceMap:{development:!0,production:!0},typedCommands:!0};var Ve=require("async_hooks");var Ca=Symbol("commandkitEventWorker"),It=new Ve.AsyncLocalStorage;var qt=require("path");var Kt=require("discord.js"),Dt=require("fs"),Tt=require("fs/promises"),ne=require("path");var At=require("discord.js"),kt=require("fs"),Bt=require("fs/promises"),Ot=require("path");var Lt=require("discord.js");var Gt=require("fs"),jt=require("path");var Ft=require("rimraf"),Ut=require("path"),Nt=W(require("fs"));var we=require("fs/promises"),ve=require("path");var qe=require("fs");async function ze(i){let e=`// Auto-generated command types
2
+ declare module 'commandkit' {
3
+ ${i}
4
+ }
5
+ export {};
6
+ `,t=(0,ve.join)(process.cwd(),"node_modules","commandkit-types");if(!(0,qe.existsSync)(t))return;let n=(0,ve.join)(t,"command.d.ts");await(0,we.writeFile)(n,e,{encoding:"utf-8"})}o(ze,"rewriteCommandDeclaration");var Ht=require("child_process");var zt=require("fs");var _t=W(require("events"));var Wt=require("discord.js");var Jt=Symbol("commandkitCommandWorker"),Me=new Ye.AsyncLocalStorage;function oe(i,e){return Reflect.set(i,Jt,!0),Me.run(i,e)}o(oe,"provideContext");function Xe(i,e,t){return o((...r)=>oe(i,async()=>{try{return await e(...r)}catch(a){Q(a)||i.setExecutionError(a)}finally{typeof t=="function"&&setImmediate(async()=>{try{await t(...r)}catch{}})}}),"_fn")}o(Xe,"makeContextAwareFunction");function P(){return Me.getStore()}o(P,"getContext");function Qe(){let i=Me.getStore();if(!i)throw new Error("No commandkit environment found. Please make sure you are inside commandkit handler.");return i}o(Qe,"useEnvironment");var Yt={autocomplete:"Autocomplete",messageContextMenu:"MessageContextMenu",userContextMenu:"UserContextMenu",chatInput:"ChatInputCommand",message:"Message"},Xt={0:h.blue,1:h.green,2:h.yellow,3:h.red,4:h.white},Qt={0:h.bgBlue,1:h.bgGreen,2:h.bgYellow,3:h.bgRed,4:h.bgWhite},ie={vertical:"\u2502",horizontalDown:"\u252C",horizontalUp:"\u2534",verticalRight:"\u251C",corner:"\u2514"},Ie=class Ie{constructor(e=process.stdout,t=process.stderr){this.stdout=e;this.stderr=t;this.logger=new console.Console(this.stdout,this.stderr)}logger;_formatTime(e){let t=e.getHours().toString().padStart(2,"0"),n=e.getMinutes().toString().padStart(2,"0"),r=e.getSeconds().toString().padStart(2,"0"),a=e.getMilliseconds().toString().padStart(3,"0");return`${t}:${n}:${r}.${a}`}_getContext(){let e=P();if(!e)return"";let t=e.variables.get("execHandlerKind"),n=e.variables.get("commandHandlerType"),r=e.variables.get("currentCommandName");if(!t&&!n)return"";let a=Yt[t];if(!a&&!n)return"";let s=e.variables.get("forwardedBy"),u=e.variables.get("forwardedTo"),c=r?h.magenta(`/${r}`)+" ":"",d=u?`${h.yellowBright(`(${s||r} \u2192 ${u})`)} `:"";return h.dim(`${ie.vertical} `)+h.cyanBright(`${c}${d}${a?h.gray(`[${a}]`):""}`.trim())}_getLevelLabel(e){let t;switch(e){case 0:t="[DEBUG]";break;case 1:t="[INFO]";break;case 2:t="[WARN]";break;case 3:t="[ERROR]";break;default:t="[LOG]"}return`${Qt[e](h.whiteBright(` ${t} `))} `}_getPrefix(e){let t=this._formatTime(new Date);return`${this._getLevelLabel(e)}${h.dim(ie.vertical)} ${h.dim(t)}`}_log(e,...t){let n=this._getPrefix(e),r=this._getContext(),a=Xt[e];r?this.logger.log(`${n}
7
+ ${r} ${h.dim(ie.corner)}`,...t.map(s=>a(s))):this.logger.log(`${n} ${h.dim(ie.corner)}`,...t.map(s=>a(s)))}debug(...e){this._log(0,...e)}error(...e){this._log(3,...e)}log(...e){this._log(4,...e)}info(...e){this._log(1,...e)}warn(...e){this._log(2,...e)}};o(Ie,"DefaultLogger");var ae=Ie;function Zt(i){let e=i;if(!(e!=null&&e.provider))throw new Error("A logger provider must be provided.");let t=["log","error","warn","info","debug"],n={configure(r){e=r}};for(let r of t)n[r]=(...a)=>{e.provider[r](...a)};return n}o(Zt,"createLogger");var b=Zt({provider:new ae});var Se=class Se{constructor(e){this.commandkit=e;this.api.setToken(this.commandkit.client.token??process.env.DISCORD_TOKEN??process.env.TOKEN??"")}api=new T.REST;getCommandsData(){return this.commandkit.commandHandler.getCommandsArray().flatMap(n=>{let r="toJSON"in n.data.command?n.data.command.toJSON():n.data.command,a=[r];return n.data.userContextMenu&&r.type!==T.ApplicationCommandType.User&&a.push({...r,type:T.ApplicationCommandType.User,options:void 0,description_localizations:void 0,description:void 0}),n.data.messageContextMenu&&r.type!==T.ApplicationCommandType.Message&&a.push({...r,type:T.ApplicationCommandType.Message,description_localizations:void 0,description:void 0,options:void 0}),a})}async register(){let e=this.getCommandsData(),t=!1,n={preventDefault(){t=!0},commands:e};if(await this.commandkit.plugins.execute(async(s,u)=>{if(!t)return u.onBeforeRegisterCommands(s,n)}),t)return;if(!this.commandkit.client.isReady())throw new Error("Cannot register commands before the client is ready");let r=e.filter(s=>{var u;return(u=s.guilds)==null?void 0:u.filter(Boolean).length}).map(s=>{var u;return{...s,guilds:Array.from(new Set((u=s.guilds)==null?void 0:u.filter(Boolean)))}}),a=e.filter(s=>{var u;return!((u=s.guilds)!=null&&u.filter(Boolean).length)});await this.updateGlobalCommands(a),await this.updateGuildCommands(r)}async updateGlobalCommands(e){if(!e.length)return;let t=!1,n={preventDefault(){t=!0},commands:e};await this.commandkit.plugins.execute(async(r,a)=>{if(!t)return a.onBeforeRegisterGlobalCommands(r,n)});try{let r=await this.api.put(T.Routes.applicationCommands(this.commandkit.client.user.id),{body:e.map(a=>({...a,guilds:void 0}))});b.info(`\u2728 Refreshed ${r.length} global application (/) commands`)}catch(r){b.error("Failed to update global application (/) commands",r)}}async updateGuildCommands(e){if(!e.length)return;let t=!1,n={preventDefault(){t=!0},commands:e};if(await this.commandkit.plugins.execute(async(r,a)=>{if(!t)return a.onBeforePrepareGuildCommandsRegistration(r,n)}),!t)try{let r=new Map;if(e.forEach(s=>{var u;(u=s.guilds)!=null&&u.length&&s.guilds.forEach(c=>{r.has(c)||r.set(c,[]),r.get(c).push(s)})}),!r.size)return;let a=0;for(let[s,u]of r){let c=!1,d={preventDefault(){c=!0},commands:u};if(await this.commandkit.plugins.execute(async(f,x)=>{if(!c)return x.onBeforeRegisterGuildCommands(f,d)}),c)continue;let m=await this.api.put(T.Routes.applicationGuildCommands(this.commandkit.client.user.id,s),{body:u.map(f=>({...f,guilds:void 0}))});a+=m.length}b.info(`\u2728 Refreshed ${a} guild application (/) commands`)}catch(r){b.error("Failed to update guild application (/) commands",r)}}};o(Se,"CommandRegistrar");var se=Se;var ce=require("discord.js");var Ze=require("crypto");var C,Re=class Re{constructor(e){this.commandkit=e;g(this,C,{executionError:null,type:null,variables:new Map,deferredFunctions:new Map,marker:"",markStart:0,markEnd:0,context:null})}setContext(e){p(this,C).context=e}get context(){return p(this,C).context}getExecutionError(){return p(this,C).executionError}setExecutionError(e){if(p(this,C).executionError)throw new Error("Execution error already set.");p(this,C).executionError=e}getType(){let e=p(this,C).type;if(!e)throw new Error("Environment type not set.");return e}setType(e){p(this,C).type=e}get variables(){return p(this,C).variables}registerDeferredFunction(e){let t=(0,Ze.randomUUID)();return p(this,C).deferredFunctions.set(t,e),t}clearDeferredFunction(e){p(this,C).deferredFunctions.delete(e)}async runDeferredFunctions(){for(let[e,t]of p(this,C).deferredFunctions)try{await t(this)}catch(n){this.commandkit.emit("unhandledDeferredFunctionRejection",n)}finally{this.clearDeferredFunction(e)}}clearAllDeferredFunctions(){p(this,C).deferredFunctions.clear()}markStart(e){p(this,C).marker=e,p(this,C).markStart=performance.now()}markEnd(){p(this,C).markEnd||(p(this,C).markEnd=performance.now())}getMarker(){return p(this,C).marker}getExecutionTime(){return Math.abs(p(this,C).markEnd-p(this,C).markStart)}};C=new WeakMap,o(Re,"CommandKitEnvironment");var le=Re;function et(){throw F(y.ExitMiddleware)}o(et,"exitMiddleware");function tt(){throw F(y.ForwardedCommand)}o(tt,"redirect");var M={ChatInputCommand:"chatInput",MessageContextMenu:"messageContextMenu",UserContextMenu:"userContextMenu",Autocomplete:"autocomplete",Message:"message"},_,z=class z{constructor(e,t){this.commandkit=e;this.config=t;R(this,"interaction");R(this,"message");R(this,"guild");R(this,"guildId");R(this,"channel");R(this,"channelId");R(this,"client");R(this,"command");g(this,_);R(this,"_locale",null);this.interaction=t.interaction,this.message=t.message,this.client=e.client,v(this,_,t.store??new Map),this.command=t.command,t.interaction&&(this.guild=t.interaction.guild,this.guildId=t.interaction.guildId,this.channel=t.interaction.channel,this.channelId=t.interaction.channelId),t.message&&(this.guild=t.message.guild,this.guildId=t.message.guildId,this.channel=t.message.channel,this.channelId=t.message.channelId),this.config.environment&&this.config.environment.setContext(this)}get store(){return p(this,_)}get commandName(){return this.isInteraction()?this.interaction.commandName:this.config.messageCommandParser.getCommand()}get options(){return this.isMessage()?this.config.messageCommandParser.options:this.interaction.options}get forwarded(){return this.config.forwarded??!1}async forwardCommand(e){let t=await this.commandkit.commandHandler.prepareCommandRun(this.isInteraction()?this.interaction:this.message,e);if(!t)throw new Error(`Command ${e} not found`);let n=this.config.environment??P();if(!n)throw new Error("No commandkit environment found.");let r={chatInput:t.command.data.chatInput,autocomplete:t.command.data.autocomplete,message:t.command.data.message,messageContextMenu:t.command.data.messageContextMenu,userContextMenu:t.command.data.userContextMenu},a=n.variables.get("execHandlerKind");if(!a)throw new Error("No execution handler kind found.");let s=r[a];if(!s)throw new Error(`No handler found for ${a}`);n.variables.set("forwardedBy",this.commandName),n.variables.set("forwardedTo",e),await s(this.clone({forwarded:!0})),tt()}get executionMode(){return this.config.executionMode}isInteraction(){return this.executionMode===M.ChatInputCommand||this.executionMode===M.Autocomplete||this.executionMode===M.MessageContextMenu||this.executionMode===M.UserContextMenu}isChatInputCommand(){return this.executionMode===M.ChatInputCommand}isAutocomplete(){return this.executionMode===M.Autocomplete}isMessageContextMenu(){return this.executionMode===M.MessageContextMenu}isUserContextMenu(){return this.executionMode===M.UserContextMenu}isMessage(){return this.executionMode===M.Message}getCommandIdentifier(){return this.isInteraction()?this.interaction.commandName:this.message.content.split(" ")[0].slice(1)}getGuildLocale(){var e;return this.isInteraction()?this.interaction.guildLocale:((e=this.message.guild)==null?void 0:e.preferredLocale)??null}getUserLocale(){return this.isInteraction()?this.interaction.locale:null}getLocale(e=!1){if(this._locale)return this._locale;let t=e?this.getUserLocale():this.getGuildLocale();return t||this.commandkit.config.defaultLocale}setLocale(e){this._locale=e}clone(e){return e?new z(this.commandkit,{...this.config,...e,store:p(this,_)}):new z(this.commandkit,this.config)}isMiddleware(){return this instanceof J}args(){return this.isMessage()?this.config.messageCommandParser.getArgs():[]}exit(){et()}};_=new WeakMap,o(z,"Context");var Pe=z,Y,Ke=class Ke extends Pe{constructor(){super(...arguments);g(this,Y,!1)}get cancelled(){return p(this,Y)}cancel(){v(this,Y,!0)}setCommandRunner(t){var n,r;(r=(n=this.config.customArgs)==null?void 0:n.setCommandRunner)==null||r.call(n,t)}};Y=new WeakMap,o(Ke,"MiddlewareContext");var J=Ke;var ue,nt,De=class De{constructor(e){this.handler=e;g(this,ue)}async runCommand(e,t){let{commandkit:n}=this.handler,r=this.getExecutionMode(t),a=null,s=new le(n);s.setType("COMMAND_HANDLER"),s.variables.set("commandHandlerType","app"),s.variables.set("currentCommandName",e.command.command.name),s.variables.set("execHandlerKind",r);let u=new J(n,{command:e.command,environment:s,executionMode:r,interaction:t instanceof ce.Message?null:t,message:t instanceof ce.Message?t:null,forwarded:!1,customArgs:{setCommandRunner:o(d=>{a=d},"setCommandRunner")},messageCommandParser:e.messageCommandParser}),c=!1;if(e.middlewares.length&&await oe(s,async()=>{for(let d of e.middlewares)if(d.data.beforeExecute)try{await d.data.beforeExecute(u)}catch(m){if(A(m,y.ExitMiddleware)){c=!0;return}if(A(m,[y.ForwardedCommand,y.InvalidCommandPrefix]))continue;throw m}}),!u.cancelled){let m=e.command.data[r];if(m||b.warn(`Command ${e.command.command.name} has no handler for ${r}`),m)try{let f=Xe(s,async()=>(s.registerDeferredFunction(K=>{K.markEnd();let S=K.getExecutionError(),I=K.getMarker(),L=`${K.getExecutionTime().toFixed(2)}ms`;if(S){b.error(`[${I} - ${L}] Error executing command: ${S.stack||S}`);return}b.info(`[${I} - ${L}] Command executed successfully`)}),m(u.clone())),D(this,ue,nt).bind(this)),x=a!=null?a(f):f;s.markStart(e.command.data.command.name),await n.plugins.execute(async(K,S)=>S.executeCommand(K,s,t,e,x))||await x()}catch(f){A(f,y.ExitMiddleware)&&(c=!0),A(f,[y.ForwardedCommand,y.ExitMiddleware])||b.error(f)}}!c&&e.middlewares.length&&await oe(s,async()=>{for(let d of e.middlewares)if(d.data.afterExecute)try{await d.data.afterExecute(u)}catch(m){if(A(m,y.ExitMiddleware))return;throw m}})}getExecutionMode(e){return e instanceof ce.Message?M.Message:e.isChatInputCommand()?M.ChatInputCommand:e.isAutocomplete()?M.Autocomplete:e.isMessageContextMenuCommand()?M.MessageContextMenu:e.isUserContextMenuCommand()?M.UserContextMenu:null}};ue=new WeakSet,nt=o(async function(){let e=Qe();await e.runDeferredFunctions(),e.clearAllDeferredFunctions(),await this.handler.commandkit.plugins.execute(async(t,n)=>{await n.onAfterCommand(t,e)})},"#finalizer"),o(De,"AppCommandRunner");var me=De;var en={command:o(i=>i instanceof E.SlashCommandBuilder||i instanceof E.ContextMenuCommandBuilder||i&&typeof i=="object","command"),chatInput:o(i=>typeof i=="function","chatInput"),autocomplete:o(i=>typeof i=="function","autocomplete"),message:o(i=>typeof i=="function","message"),messageContextMenu:o(i=>typeof i=="function","messageContextMenu"),userContextMenu:o(i=>typeof i=="function","userContextMenu")},tn={beforeExecute:o(i=>typeof i=="function","beforeExecute"),afterExecute:o(i=>typeof i=="function","afterExecute")},Te=class Te{constructor(e){this.commandkit=e;this.registrar=new se(this.commandkit)}loadedCommands=new E.Collection;loadedMiddlewares=new E.Collection;commandNameToId=new Map;subcommandPathToId=new Map;registrar;onInteraction=null;onMessageCreate=null;commandRunner=new me(this);externalCommandData=new E.Collection;externalMiddlewareData=new E.Collection;printBanner(){let e=crypto.randomUUID(),t=this.getCommandsArray().reduce((c,d)=>{let m=d.command.category||e;return c[m]=c[m]||[],c[m].push(d),c},{});console.log(h.green(`Loaded ${h.magenta(this.loadedCommands.size.toString())} commands:`));let n=Object.keys(t).sort(),r={};n.forEach(c=>{if(c!==e&&c.includes(":")){let d=c.split(":"),m=null;for(let f=d.length-1;f>0;f--){let x=d.slice(0,f).join(":");if(n.includes(x)){m=x;break}}m&&(r[m]=r[m]||[],r[m].push(c))}});let a=new Set,s=o((c,d="",m=!1,f="")=>{if(a.has(c))return;a.add(c);let x=t[c],O=r[c]&&r[c].length>0,K=m?"\u2514\u2500":"\u251C\u2500",S=f+(m?" ":"\u2502 ");if(c!==e){let I=c.includes(":")?c.split(":").pop():c;console.log(h.cyan(`${d}${K} ${h.bold(I)}`))}if(x.forEach((I,L)=>{let de=L===x.length-1&&!O?"\u2514\u2500":"\u251C\u2500",rt=c!==e?S:d,ot=I.data.command.name,it=I.command.middlewares.length>0?h.magenta(" (\u03BB)"):"";console.log(`${h.green(`${rt}${de}`)} ${h.yellow(ot)}${it}`)}),O){let I=r[c].sort();I.forEach((L,Ae)=>{let de=Ae===I.length-1;s(L,S,de,S)})}},"printCategory"),u=n.filter(c=>{if(c===e)return!0;if(c.includes(":")){let d=c.split(":");for(let m=1;m<d.length;m++){let f=d.slice(0,m).join(":");if(n.includes(f))return!1}return!0}return!0}).sort();u.forEach((c,d)=>{let m=d===u.length-1;s(c,"",m)})}getCommandsArray(){return Array.from(this.loadedCommands.values())}registerCommandHandler(){this.onInteraction??=async e=>{if(await this.commandkit.plugins.execute(async(a,s)=>s.onBeforeInteraction(a,e))||!(e.isCommand()||e.isAutocomplete()||e.isUserContextMenuCommand()||e.isMessageContextMenuCommand()))return;let r=await this.prepareCommandRun(e);if(r)return this.commandRunner.runCommand(r,e)},this.onMessageCreate??=async e=>{if(await this.commandkit.plugins.execute(async(r,a)=>a.onBeforeMessageCommand(r,e))||e.author.bot)return;let n=await this.prepareCommandRun(e);if(n)return this.commandRunner.runCommand(n,e)},this.commandkit.client.on(E.Events.InteractionCreate,this.onInteraction),this.commandkit.client.on(E.Events.MessageCreate,this.onMessageCreate)}async prepareCommandRun(e,t){var u;let n;if(!t)if(e instanceof E.Message){if(e.author.bot)return null;let c=await this.commandkit.config.getMessageCommandPrefix(e);n=new Z(e,Array.isArray(c)?c:[c],d=>{var O,K;let m=this.commandNameToId.get(d);if(!m)return null;let f=this.loadedCommands.get(m);return!f||e.guildId&&((O=f.guilds)!=null&&O.length)&&!f.guilds.includes(e.guildId)?null:((K=("toJSON"in f.data.command?f.data.command.toJSON():f.data.command).options)==null?void 0:K.reduce((S,I)=>(S[I.name]=I.type,S),{}))??{}});try{t=n.getFullCommand().split(" ")[0]}catch(d){return A(d,y.InvalidCommandPrefix)||b.error(d),null}}else{if(!(e.isChatInputCommand()||e.isAutocomplete()||e.isContextMenuCommand()))return null;t=e.commandName}let r=this.commandNameToId.get(t);if(!r)return null;let a=this.loadedCommands.get(r);if(!a||(e instanceof E.CommandInteraction||e instanceof E.AutocompleteInteraction)&&e.guildId&&((u=a.guilds)!=null&&u.length)&&!a.guilds.includes(e.guildId))return null;let s=[];for(let c of a.command.middlewares){let d=this.loadedMiddlewares.get(c);d&&s.push(d)}return{command:a,middlewares:s,messageCommandParser:n}}async reloadCommands(){this.loadedCommands.clear(),this.loadedMiddlewares.clear(),this.commandNameToId.clear(),this.subcommandPathToId.clear(),this.externalCommandData.clear(),this.externalMiddlewareData.clear(),await this.loadCommands()}async addExternalMiddleware(e){for(let t of e)t.id&&this.externalMiddlewareData.set(t.id,t)}async addExternalCommands(e){for(let t of e)t.id&&this.externalCommandData.set(t.id,t)}async registerExternalLoadedMiddleware(e){for(let t of e)this.loadedMiddlewares.set(t.middleware.id,t)}async registerExternalLoadedCommands(e){for(let t of e)this.loadedCommands.set(t.command.id,t),this.commandNameToId.set(t.command.name,t.command.id)}async loadCommands(){await this.commandkit.plugins.execute((s,u)=>u.onBeforeCommandsLoad(s));let e=this.commandkit.commandsRouter;if(!e)throw new Error("Commands router has not yet initialized");let{commands:t,middlewares:n}=e.getData(),r=this.externalCommandData.size?t.concat(this.externalCommandData):t,a=this.externalMiddlewareData.size?n.concat(this.externalMiddlewareData):n;for(let[s,u]of a)await this.loadMiddleware(s,u);for(let[s,u]of r)await this.loadCommand(s,u);G&&await ze(`type CommandTypeData = ${Array.from(this.loadedCommands.mapValues(s=>JSON.stringify(s.command.name)).values()).join(" | ")}`),await this.commandkit.plugins.execute((s,u)=>u.onAfterCommandsLoad(s))}async loadMiddleware(e,t){try{let n=await import(`${X(t.path)}?t=${Date.now()}`),r=0;for(let[a,s]of Object.entries(tn)){if(n[a]&&!await s(n[a]))throw new Error(`Invalid export for middleware ${e}: ${a} does not match expected value`);n[a]&&r++}if(r===0)throw new Error(`Invalid export for middleware ${e}: at least one handler function must be provided`);this.loadedMiddlewares.set(e,{middleware:t,data:n})}catch(n){b.error(`Failed to load middleware ${e}`,n)}}async loadCommand(e,t){try{if(t.path===null){this.loadedCommands.set(e,{command:t,data:{command:{name:t.name,description:`${t.name} commands`,type:1}}});return}let n=await import(`${X(t.path)}?t=${Date.now()}`);if(!n.command)throw new Error(`Invalid export for command ${t.name}: no command definition found`);let r=0;for(let[s,u]of Object.entries(en))if(s!=="command"&&n[s]&&r++,n[s]&&!await u(n[s]))throw new Error(`Invalid export for command ${t.name}: ${s} does not match expected value`);if(r===0)throw new Error(`Invalid export for command ${t.name}: at least one handler function must be provided`);let a=n.command;await this.commandkit.plugins.execute(async(s,u)=>{let c=await u.prepareCommand(s,a);c&&(a=c)}),this.loadedCommands.set(e,{command:t,guilds:n.guilds,data:{...n,command:"toJSON"in a?a.toJSON():a}}),this.commandNameToId.set(t.name,e)}catch(n){b.error(`Failed to load command ${t.name} (${e})`,n)}}};o(Te,"AppCommandHandler");var re=Te;0&&(module.exports={AppCommandHandler});
8
+ //# sourceMappingURL=AppCommandHandler.js.map