commandkit 1.0.0-dev.20250529020123 → 1.0.0-dev.20250529125116

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 (89) hide show
  1. package/dist/CommandKit.js +4 -4
  2. package/dist/CommandKit.js.map +1 -1
  3. package/dist/app/commands/AppCommandRunner.js +2 -2
  4. package/dist/app/commands/AppCommandRunner.js.map +1 -1
  5. package/dist/app/commands/Context.js +2 -2
  6. package/dist/app/commands/Context.js.map +1 -1
  7. package/dist/app/handlers/AppCommandHandler.js +3 -3
  8. package/dist/app/handlers/AppCommandHandler.js.map +1 -1
  9. package/dist/app/handlers/AppEventsHandler.js +2 -2
  10. package/dist/app/handlers/AppEventsHandler.js.map +1 -1
  11. package/dist/app/index.js +3 -3
  12. package/dist/app/index.js.map +1 -1
  13. package/dist/app/register/CommandRegistrar.js +2 -2
  14. package/dist/app/register/CommandRegistrar.js.map +1 -1
  15. package/dist/cli/app-process.js +2 -2
  16. package/dist/cli/app-process.js.map +1 -1
  17. package/dist/cli/build.js +2 -2
  18. package/dist/cli/build.js.map +1 -1
  19. package/dist/cli/common.js +4 -4
  20. package/dist/cli/common.js.map +1 -1
  21. package/dist/cli/development.js +8 -8
  22. package/dist/cli/development.js.map +1 -1
  23. package/dist/cli/generators.js +4 -4
  24. package/dist/cli/generators.js.map +1 -1
  25. package/dist/cli/information.js +1 -1
  26. package/dist/cli/information.js.map +1 -1
  27. package/dist/cli/init.js +15 -15
  28. package/dist/cli/init.js.map +1 -1
  29. package/dist/cli/production.js +9 -9
  30. package/dist/cli/production.js.map +1 -1
  31. package/dist/cli/type-checker.js +2 -2
  32. package/dist/cli/type-checker.js.map +1 -1
  33. package/dist/components/index.js +4 -4
  34. package/dist/components/index.js.map +1 -1
  35. package/dist/components/v1/button/Button.js +4 -4
  36. package/dist/components/v1/button/Button.js.map +1 -1
  37. package/dist/components/v1/button/ButtonKit.js +4 -4
  38. package/dist/components/v1/button/ButtonKit.js.map +1 -1
  39. package/dist/components/v1/modal/Modal.js +4 -4
  40. package/dist/components/v1/modal/Modal.js.map +1 -1
  41. package/dist/components/v1/modal/ModalKit.js +4 -4
  42. package/dist/components/v1/modal/ModalKit.js.map +1 -1
  43. package/dist/components/v1/select-menu/ChannelSelectMenuKit.js +4 -4
  44. package/dist/components/v1/select-menu/ChannelSelectMenuKit.js.map +1 -1
  45. package/dist/components/v1/select-menu/MentionableSelectMenuKit.js +4 -4
  46. package/dist/components/v1/select-menu/MentionableSelectMenuKit.js.map +1 -1
  47. package/dist/components/v1/select-menu/RoleSelectMenuKit.js +4 -4
  48. package/dist/components/v1/select-menu/RoleSelectMenuKit.js.map +1 -1
  49. package/dist/components/v1/select-menu/SelectMenu.js +4 -4
  50. package/dist/components/v1/select-menu/SelectMenu.js.map +1 -1
  51. package/dist/components/v1/select-menu/StringSelectMenuKit.js +4 -4
  52. package/dist/components/v1/select-menu/StringSelectMenuKit.js.map +1 -1
  53. package/dist/components/v1/select-menu/UserSelectMenuKit.js +4 -4
  54. package/dist/components/v1/select-menu/UserSelectMenuKit.js.map +1 -1
  55. package/dist/config/config.js +2 -2
  56. package/dist/config/config.js.map +1 -1
  57. package/dist/config/default.js +2 -2
  58. package/dist/config/default.js.map +1 -1
  59. package/dist/config/loader.js +4 -4
  60. package/dist/config/loader.js.map +1 -1
  61. package/dist/context/async-context.js +4 -4
  62. package/dist/context/async-context.js.map +1 -1
  63. package/dist/context/environment.js +2 -2
  64. package/dist/context/environment.js.map +1 -1
  65. package/dist/flags/feature-flags.js +6 -6
  66. package/dist/flags/feature-flags.js.map +1 -1
  67. package/dist/index.js +4 -4
  68. package/dist/index.js.map +1 -1
  69. package/dist/logger/DefaultLogger.js +2 -2
  70. package/dist/logger/DefaultLogger.js.map +1 -1
  71. package/dist/logger/Logger.js +2 -2
  72. package/dist/logger/Logger.js.map +1 -1
  73. package/dist/plugins/index.js +2 -2
  74. package/dist/plugins/index.js.map +1 -1
  75. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js +1 -1
  76. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js.map +1 -1
  77. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js +1 -1
  78. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js.map +1 -1
  79. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js +2 -2
  80. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js.map +1 -1
  81. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js +2 -2
  82. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js.map +1 -1
  83. package/dist/utils/dev-hooks.js +1 -1
  84. package/dist/utils/dev-hooks.js.map +1 -1
  85. package/dist/utils/utilities.js +1 -1
  86. package/dist/utils/utilities.js.map +1 -1
  87. package/dist/version.js +1 -1
  88. package/dist/version.js.map +1 -1
  89. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
- "use strict";var yr=Object.create;var fe=Object.defineProperty;var br=Object.getOwnPropertyDescriptor;var Er=Object.getOwnPropertyNames;var vr=Object.getPrototypeOf,wr=Object.prototype.hasOwnProperty;var mn=o=>{throw TypeError(o)};var Mr=(o,e,t)=>e in o?fe(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var i=(o,e)=>fe(o,"name",{value:e,configurable:!0});var Ir=(o,e)=>{for(var t in e)fe(o,t,{get:e[t],enumerable:!0})},un=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Er(e))!wr.call(o,r)&&r!==t&&fe(o,r,{get:()=>e[r],enumerable:!(n=br(e,r))||n.enumerable});return o};var ee=(o,e,t)=>(t=o!=null?yr(vr(o)):{},un(e||!o||!o.__esModule?fe(t,"default",{value:o,enumerable:!0}):t,o)),Sr=o=>un(fe({},"__esModule",{value:!0}),o);var E=(o,e,t)=>Mr(o,typeof e!="symbol"?e+"":e,t),ht=(o,e,t)=>e.has(o)||mn("Cannot "+t);var l=(o,e,t)=>(ht(o,e,"read from private field"),t?t.call(o):e.get(o)),h=(o,e,t)=>e.has(o)?mn("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,t),f=(o,e,t,n)=>(ht(o,e,"write to private field"),n?n.call(o,t):e.set(o,t),t),g=(o,e,t)=>(ht(o,e,"access private method"),t);var co={};Ir(co,{ChannelSelectMenu:()=>lo,MentionableSelectMenu:()=>so,RoleSelectMenu:()=>ao,StringSelectMenu:()=>ro,StringSelectMenuOption:()=>oo,UserSelectMenu:()=>io});module.exports=Sr(co);var hr=require("discord.js");var pt=require("discord.js");var dr=require("async_hooks");var ir=ee(require("events"));var dn=require("picocolors"),x=(0,dn.createColors)(!0);var Rr=require("discord.js");var Ct=require("discord.js");var Pr=require("discord.js");var pn=require("discord.js");var gt=require("discord.js");var Ae=require("discord.js");var te,S,ne,q,fn,hn,xt,yt=class yt extends Ae.StringSelectMenuBuilder{constructor(){super(...arguments);h(this,q);h(this,te,null);h(this,S,{autoReset:!1,time:5*60*1e3,once:!0});h(this,ne,null)}onSelect(t,n){var r,s,a,c;if(!t)throw new TypeError('Cannot setup "onClick" without a handler function parameter.');return l(this,te)&&g(this,q,xt).call(this),f(this,te,t),n&&f(this,S,{autoReset:n.autoReset??((r=l(this,S))==null?void 0:r.autoReset)??!0,time:n.time??((s=l(this,S))==null?void 0:s.time)??5*60*1e3,filter:n.filter??((a=l(this,S))==null?void 0:a.filter),onEnd:n.onEnd??((c=l(this,S))==null?void 0:c.onEnd)}),g(this,q,hn).call(this),this}onEnd(t){if(!t)throw new TypeError('Cannot setup "onEnd" without a handler function parameter.');return l(this,S)??f(this,S,{}),l(this,S).onEnd=t,this}onError(t){if(!t)throw new TypeError('Cannot setup "onError" without a handler function parameter.');return l(this,S)??f(this,S,{}),l(this,S).onError=t,this}filter(t){return l(this,S)??f(this,S,{autoReset:!0,time:5*60*1e3}),l(this,S).filter=t,this}get customId(){return this.data.custom_id??this.data.customId}dispose(){return g(this,q,xt).call(this),this}};te=new WeakMap,S=new WeakMap,ne=new WeakMap,q=new WeakSet,fn=i(function(){let t=k();return t?F(()=>t.commandkit.eventInterceptor):U(!0).eventInterceptor},"#getEventInterceptor"),hn=i(function(){if(!l(this,S))return;if(!this.customId)throw new TypeError("Cannot setup an modal collector without a custom ID.");let t=g(this,q,fn).call(this);t&&f(this,ne,t.subscribe(Ae.Events.InteractionCreate,async n=>{var m,u;if(!n.isStringSelectMenu())return;let r=this.customId??null,s=n.customId;if(r&&s!==r)return;let a=(m=l(this,S))==null?void 0:m.filter;if(a&&!await a(n))return;let c=l(this,te);return c?c(n,this):(u=l(this,ne))==null?void 0:u.call(this)},l(this,S)))},"#setupCollector"),xt=i(function(){var t;(t=l(this,ne))==null||t.call(this),f(this,ne,null),f(this,te,null),f(this,S,null)},"#destroyCollector"),i(yt,"StringSelectMenuKit");var Te=yt;var Be=require("discord.js");var re,R,oe,z,Cn,gn,bt,Et=class Et extends Be.MentionableSelectMenuBuilder{constructor(){super(...arguments);h(this,z);h(this,re,null);h(this,R,{autoReset:!1,time:5*60*1e3,once:!0});h(this,oe,null)}onSelect(t,n){var r,s,a,c;if(!t)throw new TypeError('Cannot setup "onClick" without a handler function parameter.');return l(this,re)&&g(this,z,bt).call(this),f(this,re,t),n&&f(this,R,{autoReset:n.autoReset??((r=l(this,R))==null?void 0:r.autoReset)??!0,time:n.time??((s=l(this,R))==null?void 0:s.time)??5*60*1e3,filter:n.filter??((a=l(this,R))==null?void 0:a.filter),onEnd:n.onEnd??((c=l(this,R))==null?void 0:c.onEnd)}),g(this,z,gn).call(this),this}onEnd(t){if(!t)throw new TypeError('Cannot setup "onEnd" without a handler function parameter.');return l(this,R)??f(this,R,{}),l(this,R).onEnd=t,this}onError(t){if(!t)throw new TypeError('Cannot setup "onError" without a handler function parameter.');return l(this,R)??f(this,R,{}),l(this,R).onError=t,this}filter(t){return l(this,R)??f(this,R,{autoReset:!0,time:5*60*1e3}),l(this,R).filter=t,this}get customId(){return this.data.custom_id??this.data.customId}dispose(){return g(this,z,bt).call(this),this}};re=new WeakMap,R=new WeakMap,oe=new WeakMap,z=new WeakSet,Cn=i(function(){let t=k();return t?F(()=>t.commandkit.eventInterceptor):U(!0).eventInterceptor},"#getEventInterceptor"),gn=i(function(){if(!l(this,R))return;if(!this.customId)throw new TypeError("Cannot setup an modal collector without a custom ID.");let t=g(this,z,Cn).call(this);t&&f(this,oe,t.subscribe(Be.Events.InteractionCreate,async n=>{var m,u;if(!n.isMentionableSelectMenu())return;let r=this.customId??null,s=n.customId;if(r&&s!==r)return;let a=(m=l(this,R))==null?void 0:m.filter;if(a&&!await a(n))return;let c=l(this,re);return c?c(n,this):(u=l(this,oe))==null?void 0:u.call(this)},l(this,R)))},"#setupCollector"),bt=i(function(){var t;(t=l(this,oe))==null||t.call(this),f(this,oe,null),f(this,re,null),f(this,R,null)},"#destroyCollector"),i(Et,"MentionableSelectMenuKit");var ke=Et;var Le=require("discord.js");var ie,P,ae,J,xn,yn,vt,wt=class wt extends Le.UserSelectMenuBuilder{constructor(){super(...arguments);h(this,J);h(this,ie,null);h(this,P,{autoReset:!1,time:5*60*1e3,once:!0});h(this,ae,null)}onSelect(t,n){var r,s,a,c;if(!t)throw new TypeError('Cannot setup "onClick" without a handler function parameter.');return l(this,ie)&&g(this,J,vt).call(this),f(this,ie,t),n&&f(this,P,{autoReset:n.autoReset??((r=l(this,P))==null?void 0:r.autoReset)??!0,time:n.time??((s=l(this,P))==null?void 0:s.time)??5*60*1e3,filter:n.filter??((a=l(this,P))==null?void 0:a.filter),onEnd:n.onEnd??((c=l(this,P))==null?void 0:c.onEnd)}),g(this,J,yn).call(this),this}onEnd(t){if(!t)throw new TypeError('Cannot setup "onEnd" without a handler function parameter.');return l(this,P)??f(this,P,{}),l(this,P).onEnd=t,this}onError(t){if(!t)throw new TypeError('Cannot setup "onError" without a handler function parameter.');return l(this,P)??f(this,P,{}),l(this,P).onError=t,this}filter(t){return l(this,P)??f(this,P,{autoReset:!0,time:5*60*1e3}),l(this,P).filter=t,this}get customId(){return this.data.custom_id??this.data.customId}dispose(){return g(this,J,vt).call(this),this}};ie=new WeakMap,P=new WeakMap,ae=new WeakMap,J=new WeakSet,xn=i(function(){let t=k();return t?F(()=>t.commandkit.eventInterceptor):U(!0).eventInterceptor},"#getEventInterceptor"),yn=i(function(){if(!l(this,P))return;if(!this.customId)throw new TypeError("Cannot setup an modal collector without a custom ID.");let t=g(this,J,xn).call(this);t&&f(this,ae,t.subscribe(Le.Events.InteractionCreate,async n=>{var m,u;if(!n.isUserSelectMenu())return;let r=this.customId??null,s=n.customId;if(r&&s!==r)return;let a=(m=l(this,P))==null?void 0:m.filter;if(a&&!await a(n))return;let c=l(this,ie);return c?c(n,this):(u=l(this,ae))==null?void 0:u.call(this)},l(this,P)))},"#setupCollector"),vt=i(function(){var t;(t=l(this,ae))==null||t.call(this),f(this,ae,null),f(this,ie,null),f(this,P,null)},"#destroyCollector"),i(wt,"UserSelectMenuKit");var Oe=wt;var Fe=require("discord.js");var se,K,le,Y,bn,En,Mt,It=class It extends Fe.RoleSelectMenuBuilder{constructor(){super(...arguments);h(this,Y);h(this,se,null);h(this,K,{autoReset:!1,time:5*60*1e3,once:!0});h(this,le,null)}onSelect(t,n){var r,s,a,c;if(!t)throw new TypeError('Cannot setup "onClick" without a handler function parameter.');return l(this,se)&&g(this,Y,Mt).call(this),f(this,se,t),n&&f(this,K,{autoReset:n.autoReset??((r=l(this,K))==null?void 0:r.autoReset)??!0,time:n.time??((s=l(this,K))==null?void 0:s.time)??5*60*1e3,filter:n.filter??((a=l(this,K))==null?void 0:a.filter),onEnd:n.onEnd??((c=l(this,K))==null?void 0:c.onEnd)}),g(this,Y,En).call(this),this}onEnd(t){if(!t)throw new TypeError('Cannot setup "onEnd" without a handler function parameter.');return l(this,K)??f(this,K,{}),l(this,K).onEnd=t,this}onError(t){if(!t)throw new TypeError('Cannot setup "onError" without a handler function parameter.');return l(this,K)??f(this,K,{}),l(this,K).onError=t,this}filter(t){return l(this,K)??f(this,K,{autoReset:!0,time:5*60*1e3}),l(this,K).filter=t,this}get customId(){return this.data.custom_id??this.data.customId}dispose(){return g(this,Y,Mt).call(this),this}};se=new WeakMap,K=new WeakMap,le=new WeakMap,Y=new WeakSet,bn=i(function(){let t=k();return t?F(()=>t.commandkit.eventInterceptor):U(!0).eventInterceptor},"#getEventInterceptor"),En=i(function(){if(!l(this,K))return;if(!this.customId)throw new TypeError("Cannot setup an modal collector without a custom ID.");let t=g(this,Y,bn).call(this);t&&f(this,le,t.subscribe(Fe.Events.InteractionCreate,async n=>{var m,u;if(!n.isRoleSelectMenu())return;let r=this.customId??null,s=n.customId;if(r&&s!==r)return;let a=(m=l(this,K))==null?void 0:m.filter;if(a&&!await a(n))return;let c=l(this,se);return c?c(n,this):(u=l(this,le))==null?void 0:u.call(this)},l(this,K)))},"#setupCollector"),Mt=i(function(){var t;(t=l(this,le))==null||t.call(this),f(this,le,null),f(this,se,null),f(this,K,null)},"#destroyCollector"),i(It,"RoleSelectMenuKit");var $e=It;var ce=require("discord.js");var Kr=require("discord.js");var wn=require("discord.js");var Ue=require("discord.js");var Dr=require("discord.js");var Tr=require("discord.js");var Mn=new Set;function Ar(o,e="CommandKitWarning"){process.emitWarning(o,{code:e})}i(Ar,"emitWarning");function St(o){Mn.has(o)||(Mn.add(o),Ar(`${o} is unstable and may change in future versions.`,"CommandKitUnstableWarning"))}i(St,"warnUnstable");function In(o){return St("CommandKit JSX"),Array.isArray(o.children)?o.children.flat():[o.children]}i(In,"Fragment");function Sn(o,e,...t){return St("CommandKit JSX"),o({...e,children:e.children??t})}i(Sn,"createElement");var He,Rn,Rt=class Rt{constructor(e){this.client=e;h(this,He);E(this,"subscribers",new Map);E(this,"globalHandlers",new Map);E(this,"cleanupTimer",null);g(this,He,Rn).call(this)}destroy(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=null);for(let[e,t]of this.subscribers)for(let n of t)this.unsubscribe(e,n,"destroy");this.subscribers.clear(),this.globalHandlers.clear()}hasSubscribers(e){return this.subscribers.has(e)}getSubscriberCount(e){let t=this.subscribers.get(e);return(t==null?void 0:t.size)??0}hasGlobalHandlers(){return this.globalHandlers.size>0}getGlobalHandlersCount(){return this.subscribers.size}subscribe(e,t,n){return this.subscribers.has(e)||(this.subscribers.set(e,new Set),this.client.on(e,this.createGlobalHandler(e)),this.client.setMaxListeners(this.client.getMaxListeners()+1)),n??={},n.registeredAt=Date.now(),Reflect.set(t,"options",n),this.subscribers.get(e).add(t),()=>{this.unsubscribe(e,t)}}unsubscribe(e,t,n){var s,a;let r=this.subscribers.get(e);r&&(r.delete(t),r.size<1&&(this.subscribers.delete(e),this.client.removeListener(e,this.globalHandlers.get(e)),this.globalHandlers.delete(e),this.client.setMaxListeners(Math.max(this.client.getMaxListeners()-1,0))),(a=(s=Reflect.get(t,"options")).onEnd)==null||a.call(s,n??"unsubscribe"))}createGlobalHandler(e){if(this.globalHandlers.has(e))return this.globalHandlers.get(e);let t=i(async(...n)=>{let r=this.subscribers.get(e);if(r&&r.size>0)for(let s of r){let a=Reflect.get(s,"options");if(a.time&&Date.now()-a.registeredAt>a.time){this.unsubscribe(e,s,"time");continue}if(a.autoReset&&(a.registeredAt=Date.now()),!(a.filter&&!await a.filter(...n)))try{await s(...n)}catch(m){if(a.onError)await a.onError(m);else throw m}finally{a.once&&this.unsubscribe(e,s,"once")}}},"handler");return this.globalHandlers.set(e,t),t}};He=new WeakSet,Rn=i(function(){this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=setInterval(()=>{for(let[e,t]of this.subscribers)for(let n of t){let r=Reflect.get(n,"options");r.time&&Date.now()-r.registeredAt>r.time&&this.unsubscribe(e,n,"time")}},6e4).unref()},"#cleanupLoop"),i(Rt,"EventInterceptor");var Ne=Rt;var ut=require("discord.js");var Lt=require("fs"),$t=require("path");var va=Symbol("kCommandKitCacheTag"),G=process.env.COMMANDKIT_IS_DEV==="true",wa=process.env.COMMANDKIT_IS_TEST==="true",Ma=process.env.COMMANDKIT_BOOTSTRAP_MODE||"development",Ge={ReloadCommands:"reload-commands",ReloadEvents:"reload-events",Unknown:"unknown"};var Pn=require("crypto");var Kt=class Kt{constructor(e){this.options=e}id=(0,Pn.randomUUID)();loadedAt=Date.now();async activate(e){}async deactivate(e){}};i(Kt,"PluginCommon");var he=Kt;function Pt(o){return o instanceof he}i(Pt,"isPlugin");var Dt=class Dt extends he{type="compiler";async transform(e){return null}async resolve(e){return null}async onBuildStart(){}async onBuildEnd(){}};i(Dt,"CompilerPlugin");var Ce=Dt;function Kn(o){return Pt(o)&&o.type==="runtime"}i(Kn,"isRuntimePlugin");var Dn=require("discord.js");var M={ExitMiddleware:Symbol("kExitMiddleware"),ForwardedCommand:Symbol("kForwardedCommand"),InvalidCommandPrefix:Symbol("kInvalidCommandPrefix"),PluginCaptureHandle:Symbol("kPluginCaptureHandle")};function me(o){let e=new Error;return Reflect.set(e,"code",o),e}i(me,"createCommandKitError");function je(o){if(!(o instanceof Error))return!1;let e=Reflect.get(o,"code");for(let t in M)if(M[t]===e)return!0;return!1}i(je,"isCommandKitError");function _(o,e){if(!je(o))return!1;let t=Reflect.get(o,"code");return t?Array.isArray(e)?e.includes(t):t===e:!1}i(_,"isErrorType");var Br={autocomplete:"Autocomplete",messageContextMenu:"MessageContextMenu",userContextMenu:"UserContextMenu",chatInput:"ChatInputCommand",message:"Message"},Or={0:x.blue,1:x.green,2:x.yellow,3:x.red,4:x.white},Lr={0:x.bgBlue,1:x.bgGreen,2:x.bgYellow,3:x.bgRed,4:x.bgWhite},_e={vertical:"\u2502",horizontalDown:"\u252C",horizontalUp:"\u2534",verticalRight:"\u251C",corner:"\u2514"},Tt=class Tt{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"),s=e.getMilliseconds().toString().padStart(3,"0");return`${t}:${n}:${r}.${s}`}_getContext(){let e=k();if(!e)return"";let t=e.variables.get("execHandlerKind"),n=e.variables.get("commandHandlerType"),r=e.variables.get("currentCommandName");if(!t&&!n)return"";let s=Br[t];if(!s&&!n)return"";let a=e.variables.get("forwardedBy"),c=e.variables.get("forwardedTo"),m=r?x.magenta(`/${r}`)+" ":"",u=c?`${x.yellowBright(`(${a||r} \u2192 ${c})`)} `:"";return x.dim(`${_e.vertical} `)+x.cyanBright(`${m}${u}${s?x.gray(`[${s}]`):""}`.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`${Lr[e](x.whiteBright(` ${t} `))} `}_getPrefix(e){let t=this._formatTime(new Date);return`${this._getLevelLabel(e)}${x.dim(_e.vertical)} ${x.dim(t)}`}_log(e,...t){let n=this._getPrefix(e),r=this._getContext(),s=Or[e];r?this.logger.log(`${n}
2
- ${r} ${x.dim(_e.corner)}`,...t.map(a=>s(a))):this.logger.log(`${n} ${x.dim(_e.corner)}`,...t.map(a=>s(a)))}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)}};i(Tt,"DefaultLogger");var We=Tt;function $r(o){let e=o;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]=(...s)=>{e.provider[r](...s)};return n}i($r,"createLogger");var y=$r({provider:new We});var At=class At{constructor(e){this.commandkit=e}plugins=new Dn.Collection;getPlugins(){return this.plugins}getPlugin(e){return this.plugins.get(e)??null}async softRegisterPlugin(e){let t=e.name;if(!this.plugins.has(t))try{await e.activate(this),this.plugins.set(t,e)}catch(n){throw new Error(`Failed to activate plugin "${t}": ${(n==null?void 0:n.stack)||n}`)}}async registerPlugin(e){let t=e.name;if(this.plugins.has(t))throw new Error(`Plugin with name "${t}" already exists.`);try{await e.activate(this),this.plugins.set(t,e)}catch(n){throw new Error(`Failed to activate plugin "${t}": ${(n==null?void 0:n.stack)||n}`)}}async unregisterPlugin(e){let t=e.name;if(!this.plugins.has(t))throw new Error(`Plugin with name "${t}" does not exist.`);this.plugins.delete(t);try{await e.deactivate(this)}catch(n){throw new Error(`Failed to deactivate plugin "${t}": ${(n==null?void 0:n.stack)||n}`)}}async unregisterAllPlugins(){for(let e of this.plugins.values())await this.unregisterPlugin(e)}capture(){throw me(M.PluginCaptureHandle)}async execute(e){let t;for(let n of this.plugins.values())try{t=await e(this,n)}catch(r){if(_(r,M.PluginCaptureHandle))return!0;y.error(`Plugin "${n.name}" failed`,(r==null?void 0:r.stack)||r)}return t}};i(At,"CommandKitPluginRuntime");var Ve=At;var Fr=require("fs/promises");var kt=class kt extends Ce{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}}};i(kt,"MacroPlugin");var qe=kt;var Tn={plugins:[new qe({enabled:!0})],esbuildPlugins:[],compilerOptions:{macro:{development:!1}},static:!0,typescript:{ignoreBuildErrors:!1},distDir:"dist",env:{},sourceMap:{development:!0,production:!0},typedCommands:!0};var Ur=Tn;function ze(){return Ur}i(ze,"getConfig");var An=require("async_hooks");var Nr=Symbol("commandkitEventWorker"),kn=new An.AsyncLocalStorage;function Bt(o,e){return Reflect.set(o,Nr,!0),kn.run(o,e)}i(Bt,"runInEventWorkerContext");var Ot=null;function Bn(){if(Ot)return Ot;let o=(0,$t.join)(process.cwd(),G?".commandkit":ze().distDir);(0,Lt.existsSync)(o)||(o=process.cwd());let e=["app"].map(t=>(0,$t.join)(o,t));for(let t of e)if((0,Lt.existsSync)(t))return Ot=t,t;return null}i(Bn,"findAppDirectory");var Ft=class Ft extends Error{constructor(){super("Event propagation stopped"),this.name="StopEventPropagationError"}};i(Ft,"StopEventPropagationError");var ve=Ft;var sn=require("path");var D=require("discord.js");var On=ee(require("path"));function we(o,e=!1){return`${"file://"+On.default.resolve(o).replace(/\\\\|\\/g,"/")}${e?`?ts=${Date.now()}`:""}`}i(we,"toFileURL");var O=require("discord.js");var ue,ge,Me,Nt=class Nt{constructor(e,t,n){this.message=e;this.prefix=t;this.schema=n;h(this,ue,null);h(this,ge,null);h(this,Me,[])}getArgs(){return this.parse(),l(this,Me)}get options(){return l(this,ge)||f(this,ge,new Ut(this)),l(this,ge)}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(l(this,ue))return l(this,ue);let e=this.message.content,t=this.getPrefix();if(!t)throw me(M.InvalidCommandPrefix);let n=e.slice(t.length).trim().split(" "),r=n.shift();f(this,Me,n);let s,a;if(r!=null&&r.includes(":")){let[,u,p]=r.split(":");!p&&u?a=u:p&&u&&(s=u,a=p)}let c=this.schema([r,s,a].filter(Boolean).join(" ").trim()),m=n.map(u=>{try{let[p,C]=u.split(":");if(!(p in c))return null;switch(c[p]){case O.ApplicationCommandOptionType.Boolean:return{name:p,value:C==="true"};case O.ApplicationCommandOptionType.Integer:return{name:p,value:parseInt(C,10)};case O.ApplicationCommandOptionType.Number:return{name:p,value:parseFloat(C)};case O.ApplicationCommandOptionType.String:return{name:p,value:C};case O.ApplicationCommandOptionType.User:return{name:p,value:this.message.mentions.users.find(b=>b.id===C.replace(/[<@!>]/g,""))};case O.ApplicationCommandOptionType.Channel:return{name:p,value:this.message.mentions.channels.find(b=>b.id===C.replace(/[<#>]/g,""))};case O.ApplicationCommandOptionType.Role:return{name:p,value:this.message.mentions.roles.find(b=>b.id===C.replace(/[<@&>]/g,""))};case O.ApplicationCommandOptionType.Attachment:return{name:p,value:this.message.attachments.find(b=>b.name===C)};default:return null}}catch{return null}}).filter(u=>u!==null);return f(this,ue,{command:r,options:m,subcommand:a,subcommandGroup:s}),l(this,ue)}};ue=new WeakMap,ge=new WeakMap,Me=new WeakMap,i(Nt,"MessageCommandParser");var Je=Nt,Ht=class Ht{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 s;let n=this.assertOption(e,t),r=(s=this.parser.message.guild)==null?void 0:s.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 O.GuildMember||n instanceof O.User||n instanceof O.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}};i(Ht,"MessageCommandOptions");var Ut=Ht;var W=require("discord.js");var Gt=class Gt{constructor(e){this.commandkit=e;this.api.setToken(this.commandkit.client.token??process.env.DISCORD_TOKEN??process.env.TOKEN??"")}api=new W.REST;getCommandsData(){return this.commandkit.commandHandler.getCommandsArray().flatMap(n=>{let r="toJSON"in n.data.command?n.data.command.toJSON():n.data.command,s=[r];return n.data.userContextMenu&&r.type!==W.ApplicationCommandType.User&&s.push({...r,type:W.ApplicationCommandType.User,options:void 0,description_localizations:void 0,description:void 0}),n.data.messageContextMenu&&r.type!==W.ApplicationCommandType.Message&&s.push({...r,type:W.ApplicationCommandType.Message,description_localizations:void 0,description:void 0,options:void 0}),s})}async register(){let e=this.getCommandsData(),t=!1,n={preventDefault(){t=!0},commands:e};if(await this.commandkit.plugins.execute(async(a,c)=>{if(!t)return c.onBeforeRegisterCommands(a,n)}),t)return;if(!this.commandkit.client.isReady())throw new Error("Cannot register commands before the client is ready");let r=e.filter(a=>{var c;return(c=a.guilds)==null?void 0:c.filter(Boolean).length}).map(a=>{var c;return{...a,guilds:Array.from(new Set((c=a.guilds)==null?void 0:c.filter(Boolean)))}}),s=e.filter(a=>{var c;return!((c=a.guilds)!=null&&c.filter(Boolean).length)});await this.updateGlobalCommands(s),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,s)=>{if(!t)return s.onBeforeRegisterGlobalCommands(r,n)});try{let r=await this.api.put(W.Routes.applicationCommands(this.commandkit.client.user.id),{body:e.map(s=>({...s,guilds:void 0}))});y.info(`\u2728 Refreshed ${r.length} global application (/) commands`)}catch(r){y.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,s)=>{if(!t)return s.onBeforePrepareGuildCommandsRegistration(r,n)}),!t)try{let r=new Map;if(e.forEach(a=>{var c;(c=a.guilds)!=null&&c.length&&a.guilds.forEach(m=>{r.has(m)||r.set(m,[]),r.get(m).push(a)})}),!r.size)return;let s=0;for(let[a,c]of r){let m=!1,u={preventDefault(){m=!0},commands:c};if(await this.commandkit.plugins.execute(async(C,b)=>{if(!m)return b.onBeforeRegisterGuildCommands(C,u)}),m)continue;let p=await this.api.put(W.Routes.applicationGuildCommands(this.commandkit.client.user.id,a),{body:c.map(C=>({...C,guilds:void 0}))});s+=p.length}y.info(`\u2728 Refreshed ${s} guild application (/) commands`)}catch(r){y.error("Failed to update guild application (/) commands",r)}}};i(Gt,"CommandRegistrar");var Ye=Gt;var Qe=require("discord.js");var Ln=require("crypto");var w,jt=class jt{constructor(e){this.commandkit=e;h(this,w,{executionError:null,type:null,variables:new Map,deferredFunctions:new Map,marker:"",markStart:0,markEnd:0,context:null})}setContext(e){l(this,w).context=e}get context(){return l(this,w).context}getExecutionError(){return l(this,w).executionError}setExecutionError(e){if(l(this,w).executionError)throw new Error("Execution error already set.");l(this,w).executionError=e}getType(){let e=l(this,w).type;if(!e)throw new Error("Environment type not set.");return e}setType(e){l(this,w).type=e}get variables(){return l(this,w).variables}registerDeferredFunction(e){let t=(0,Ln.randomUUID)();return l(this,w).deferredFunctions.set(t,e),t}clearDeferredFunction(e){l(this,w).deferredFunctions.delete(e)}async runDeferredFunctions(){for(let[e,t]of l(this,w).deferredFunctions)try{await t(this)}catch(n){this.commandkit.emit("unhandledDeferredFunctionRejection",n)}finally{this.clearDeferredFunction(e)}}clearAllDeferredFunctions(){l(this,w).deferredFunctions.clear()}markStart(e){l(this,w).marker=e,l(this,w).markStart=performance.now()}markEnd(){l(this,w).markEnd||(l(this,w).markEnd=performance.now())}getMarker(){return l(this,w).marker}getExecutionTime(){return Math.abs(l(this,w).markEnd-l(this,w).markStart)}};w=new WeakMap,i(jt,"CommandKitEnvironment");var Xe=jt;function $n(){throw me(M.ExitMiddleware)}i($n,"exitMiddleware");function Fn(){throw me(M.ForwardedCommand)}i(Fn,"redirect");var L={ChatInputCommand:"chatInput",MessageContextMenu:"messageContextMenu",UserContextMenu:"userContextMenu",Autocomplete:"autocomplete",Message:"message"},xe,Ie=class Ie{constructor(e,t){this.commandkit=e;this.config=t;E(this,"interaction");E(this,"message");E(this,"guild");E(this,"guildId");E(this,"channel");E(this,"channelId");E(this,"client");E(this,"command");h(this,xe);E(this,"_locale",null);this.interaction=t.interaction,this.message=t.message,this.client=e.client,f(this,xe,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 l(this,xe)}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??k();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},s=n.variables.get("execHandlerKind");if(!s)throw new Error("No execution handler kind found.");let a=r[s];if(!a)throw new Error(`No handler found for ${s}`);n.variables.set("forwardedBy",this.commandName),n.variables.set("forwardedTo",e),await a(this.clone({forwarded:!0})),Fn()}get executionMode(){return this.config.executionMode}isInteraction(){return this.executionMode===L.ChatInputCommand||this.executionMode===L.Autocomplete||this.executionMode===L.MessageContextMenu||this.executionMode===L.UserContextMenu}isChatInputCommand(){return this.executionMode===L.ChatInputCommand}isAutocomplete(){return this.executionMode===L.Autocomplete}isMessageContextMenu(){return this.executionMode===L.MessageContextMenu}isUserContextMenu(){return this.executionMode===L.UserContextMenu}isMessage(){return this.executionMode===L.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 Ie(this.commandkit,{...this.config,...e,store:l(this,xe)}):new Ie(this.commandkit,this.config)}isMiddleware(){return this instanceof Se}args(){return this.isMessage()?this.config.messageCommandParser.getArgs():[]}exit(){$n()}};xe=new WeakMap,i(Ie,"Context");var _t=Ie,Re,Wt=class Wt extends _t{constructor(){super(...arguments);h(this,Re,!1)}get cancelled(){return l(this,Re)}cancel(){f(this,Re,!0)}setCommandRunner(t){var n,r;(r=(n=this.config.customArgs)==null?void 0:n.setCommandRunner)==null||r.call(n,t)}};Re=new WeakMap,i(Wt,"MiddlewareContext");var Se=Wt;var et,Un,Vt=class Vt{constructor(e){this.handler=e;h(this,et)}async runCommand(e,t){let{commandkit:n}=this.handler,r=this.getExecutionMode(t),s=null,a=new Xe(n);a.setType("COMMAND_HANDLER"),a.variables.set("commandHandlerType","app"),a.variables.set("currentCommandName",e.command.command.name),a.variables.set("execHandlerKind",r);let c=new Se(n,{command:e.command,environment:a,executionMode:r,interaction:t instanceof Qe.Message?null:t,message:t instanceof Qe.Message?t:null,forwarded:!1,customArgs:{setCommandRunner:i(u=>{s=u},"setCommandRunner")},messageCommandParser:e.messageCommandParser}),m=!1;if(e.middlewares.length&&await tt(a,async()=>{for(let u of e.middlewares)if(u.data.beforeExecute)try{await u.data.beforeExecute(c)}catch(p){if(_(p,M.ExitMiddleware)){m=!0;return}if(_(p,[M.ForwardedCommand,M.InvalidCommandPrefix]))continue;throw p}}),!c.cancelled){let p=e.command.data[r];if(p||y.warn(`Command ${e.command.command.name} has no handler for ${r}`),p)try{let C=Nn(a,async()=>(a.registerDeferredFunction(A=>{A.markEnd();let I=A.getExecutionError(),v=A.getMarker(),B=`${A.getExecutionTime().toFixed(2)}ms`;if(I){y.error(`[${v} - ${B}] Error executing command: ${I.stack||I}`);return}y.info(`[${v} - ${B}] Command executed successfully`)}),p(c.clone())),g(this,et,Un).bind(this)),b=s!=null?s(C):C;a.markStart(e.command.data.command.name),await n.plugins.execute(async(A,I)=>I.executeCommand(A,a,t,e,b))||await b()}catch(C){_(C,M.ExitMiddleware)&&(m=!0),_(C,[M.ForwardedCommand,M.ExitMiddleware])||y.error(C)}}!m&&e.middlewares.length&&await tt(a,async()=>{for(let u of e.middlewares)if(u.data.afterExecute)try{await u.data.afterExecute(c)}catch(p){if(_(p,M.ExitMiddleware))return;throw p}})}getExecutionMode(e){return e instanceof Qe.Message?L.Message:e.isChatInputCommand()?L.ChatInputCommand:e.isAutocomplete()?L.Autocomplete:e.isMessageContextMenuCommand()?L.MessageContextMenu:e.isUserContextMenuCommand()?L.UserContextMenu:null}};et=new WeakSet,Un=i(async function(){let e=Hn();await e.runDeferredFunctions(),e.clearAllDeferredFunctions(),await this.handler.commandkit.plugins.execute(async(t,n)=>{await n.onAfterCommand(t,e)})},"#finalizer"),i(Vt,"AppCommandRunner");var Ze=Vt;var Z=require("fs/promises"),Q=require("path");var Gn=require("fs");async function nt(o=!1){let e=(0,Q.join)(process.cwd(),"node_modules","commandkit-types");if(!G&&!o)return e;let t=(0,Q.join)(e,"package.json"),n=(0,Q.join)(e,"index.js"),r=(0,Q.join)(e,"index.d.ts"),s=(0,Q.join)(e,"command.d.ts"),a={name:"commandkit-types",version:"1.0.0",description:"CommandKit types package",type:"commonjs",main:"index.js",types:"index.d.ts"},c="module.exports = {};",m=`// Main types index file - imports all type declarations
1
+ "use strict";var yr=Object.create;var fe=Object.defineProperty;var br=Object.getOwnPropertyDescriptor;var Er=Object.getOwnPropertyNames;var wr=Object.getPrototypeOf,vr=Object.prototype.hasOwnProperty;var mn=o=>{throw TypeError(o)};var Mr=(o,e,t)=>e in o?fe(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var i=(o,e)=>fe(o,"name",{value:e,configurable:!0});var Ir=(o,e)=>{for(var t in e)fe(o,t,{get:e[t],enumerable:!0})},un=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Er(e))!vr.call(o,r)&&r!==t&&fe(o,r,{get:()=>e[r],enumerable:!(n=br(e,r))||n.enumerable});return o};var ee=(o,e,t)=>(t=o!=null?yr(wr(o)):{},un(e||!o||!o.__esModule?fe(t,"default",{value:o,enumerable:!0}):t,o)),Sr=o=>un(fe({},"__esModule",{value:!0}),o);var E=(o,e,t)=>Mr(o,typeof e!="symbol"?e+"":e,t),ht=(o,e,t)=>e.has(o)||mn("Cannot "+t);var l=(o,e,t)=>(ht(o,e,"read from private field"),t?t.call(o):e.get(o)),h=(o,e,t)=>e.has(o)?mn("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,t),f=(o,e,t,n)=>(ht(o,e,"write to private field"),n?n.call(o,t):e.set(o,t),t),g=(o,e,t)=>(ht(o,e,"access private method"),t);var co={};Ir(co,{ChannelSelectMenu:()=>lo,MentionableSelectMenu:()=>so,RoleSelectMenu:()=>ao,StringSelectMenu:()=>ro,StringSelectMenuOption:()=>oo,UserSelectMenu:()=>io});module.exports=Sr(co);var hr=require("discord.js");var pt=require("discord.js");var dr=require("async_hooks");var ir=ee(require("events"));var dn=require("picocolors"),x=(0,dn.createColors)(!0);var Rr=require("discord.js");var Ct=require("discord.js");var Pr=require("discord.js");var pn=require("discord.js");var gt=require("discord.js");var Ae=require("discord.js");var te,S,ne,q,fn,hn,xt,yt=class yt extends Ae.StringSelectMenuBuilder{constructor(){super(...arguments);h(this,q);h(this,te,null);h(this,S,{autoReset:!1,time:5*60*1e3,once:!0});h(this,ne,null)}onSelect(t,n){var r,s,a,c;if(!t)throw new TypeError('Cannot setup "onClick" without a handler function parameter.');return l(this,te)&&g(this,q,xt).call(this),f(this,te,t),n&&f(this,S,{autoReset:n.autoReset??((r=l(this,S))==null?void 0:r.autoReset)??!0,time:n.time??((s=l(this,S))==null?void 0:s.time)??5*60*1e3,filter:n.filter??((a=l(this,S))==null?void 0:a.filter),onEnd:n.onEnd??((c=l(this,S))==null?void 0:c.onEnd)}),g(this,q,hn).call(this),this}onEnd(t){if(!t)throw new TypeError('Cannot setup "onEnd" without a handler function parameter.');return l(this,S)??f(this,S,{}),l(this,S).onEnd=t,this}onError(t){if(!t)throw new TypeError('Cannot setup "onError" without a handler function parameter.');return l(this,S)??f(this,S,{}),l(this,S).onError=t,this}filter(t){return l(this,S)??f(this,S,{autoReset:!0,time:5*60*1e3}),l(this,S).filter=t,this}get customId(){return this.data.custom_id??this.data.customId}dispose(){return g(this,q,xt).call(this),this}};te=new WeakMap,S=new WeakMap,ne=new WeakMap,q=new WeakSet,fn=i(function(){let t=k();return t?$(()=>t.commandkit.eventInterceptor):U(!0).eventInterceptor},"#getEventInterceptor"),hn=i(function(){if(!l(this,S))return;if(!this.customId)throw new TypeError("Cannot setup an modal collector without a custom ID.");let t=g(this,q,fn).call(this);t&&f(this,ne,t.subscribe(Ae.Events.InteractionCreate,async n=>{var m,u;if(!n.isStringSelectMenu())return;let r=this.customId??null,s=n.customId;if(r&&s!==r)return;let a=(m=l(this,S))==null?void 0:m.filter;if(a&&!await a(n))return;let c=l(this,te);return c?c(n,this):(u=l(this,ne))==null?void 0:u.call(this)},l(this,S)))},"#setupCollector"),xt=i(function(){var t;(t=l(this,ne))==null||t.call(this),f(this,ne,null),f(this,te,null),f(this,S,null)},"#destroyCollector"),i(yt,"StringSelectMenuKit");var Te=yt;var Be=require("discord.js");var re,R,oe,z,Cn,gn,bt,Et=class Et extends Be.MentionableSelectMenuBuilder{constructor(){super(...arguments);h(this,z);h(this,re,null);h(this,R,{autoReset:!1,time:5*60*1e3,once:!0});h(this,oe,null)}onSelect(t,n){var r,s,a,c;if(!t)throw new TypeError('Cannot setup "onClick" without a handler function parameter.');return l(this,re)&&g(this,z,bt).call(this),f(this,re,t),n&&f(this,R,{autoReset:n.autoReset??((r=l(this,R))==null?void 0:r.autoReset)??!0,time:n.time??((s=l(this,R))==null?void 0:s.time)??5*60*1e3,filter:n.filter??((a=l(this,R))==null?void 0:a.filter),onEnd:n.onEnd??((c=l(this,R))==null?void 0:c.onEnd)}),g(this,z,gn).call(this),this}onEnd(t){if(!t)throw new TypeError('Cannot setup "onEnd" without a handler function parameter.');return l(this,R)??f(this,R,{}),l(this,R).onEnd=t,this}onError(t){if(!t)throw new TypeError('Cannot setup "onError" without a handler function parameter.');return l(this,R)??f(this,R,{}),l(this,R).onError=t,this}filter(t){return l(this,R)??f(this,R,{autoReset:!0,time:5*60*1e3}),l(this,R).filter=t,this}get customId(){return this.data.custom_id??this.data.customId}dispose(){return g(this,z,bt).call(this),this}};re=new WeakMap,R=new WeakMap,oe=new WeakMap,z=new WeakSet,Cn=i(function(){let t=k();return t?$(()=>t.commandkit.eventInterceptor):U(!0).eventInterceptor},"#getEventInterceptor"),gn=i(function(){if(!l(this,R))return;if(!this.customId)throw new TypeError("Cannot setup an modal collector without a custom ID.");let t=g(this,z,Cn).call(this);t&&f(this,oe,t.subscribe(Be.Events.InteractionCreate,async n=>{var m,u;if(!n.isMentionableSelectMenu())return;let r=this.customId??null,s=n.customId;if(r&&s!==r)return;let a=(m=l(this,R))==null?void 0:m.filter;if(a&&!await a(n))return;let c=l(this,re);return c?c(n,this):(u=l(this,oe))==null?void 0:u.call(this)},l(this,R)))},"#setupCollector"),bt=i(function(){var t;(t=l(this,oe))==null||t.call(this),f(this,oe,null),f(this,re,null),f(this,R,null)},"#destroyCollector"),i(Et,"MentionableSelectMenuKit");var ke=Et;var Le=require("discord.js");var ie,P,ae,J,xn,yn,wt,vt=class vt extends Le.UserSelectMenuBuilder{constructor(){super(...arguments);h(this,J);h(this,ie,null);h(this,P,{autoReset:!1,time:5*60*1e3,once:!0});h(this,ae,null)}onSelect(t,n){var r,s,a,c;if(!t)throw new TypeError('Cannot setup "onClick" without a handler function parameter.');return l(this,ie)&&g(this,J,wt).call(this),f(this,ie,t),n&&f(this,P,{autoReset:n.autoReset??((r=l(this,P))==null?void 0:r.autoReset)??!0,time:n.time??((s=l(this,P))==null?void 0:s.time)??5*60*1e3,filter:n.filter??((a=l(this,P))==null?void 0:a.filter),onEnd:n.onEnd??((c=l(this,P))==null?void 0:c.onEnd)}),g(this,J,yn).call(this),this}onEnd(t){if(!t)throw new TypeError('Cannot setup "onEnd" without a handler function parameter.');return l(this,P)??f(this,P,{}),l(this,P).onEnd=t,this}onError(t){if(!t)throw new TypeError('Cannot setup "onError" without a handler function parameter.');return l(this,P)??f(this,P,{}),l(this,P).onError=t,this}filter(t){return l(this,P)??f(this,P,{autoReset:!0,time:5*60*1e3}),l(this,P).filter=t,this}get customId(){return this.data.custom_id??this.data.customId}dispose(){return g(this,J,wt).call(this),this}};ie=new WeakMap,P=new WeakMap,ae=new WeakMap,J=new WeakSet,xn=i(function(){let t=k();return t?$(()=>t.commandkit.eventInterceptor):U(!0).eventInterceptor},"#getEventInterceptor"),yn=i(function(){if(!l(this,P))return;if(!this.customId)throw new TypeError("Cannot setup an modal collector without a custom ID.");let t=g(this,J,xn).call(this);t&&f(this,ae,t.subscribe(Le.Events.InteractionCreate,async n=>{var m,u;if(!n.isUserSelectMenu())return;let r=this.customId??null,s=n.customId;if(r&&s!==r)return;let a=(m=l(this,P))==null?void 0:m.filter;if(a&&!await a(n))return;let c=l(this,ie);return c?c(n,this):(u=l(this,ae))==null?void 0:u.call(this)},l(this,P)))},"#setupCollector"),wt=i(function(){var t;(t=l(this,ae))==null||t.call(this),f(this,ae,null),f(this,ie,null),f(this,P,null)},"#destroyCollector"),i(vt,"UserSelectMenuKit");var Oe=vt;var $e=require("discord.js");var se,K,le,Y,bn,En,Mt,It=class It extends $e.RoleSelectMenuBuilder{constructor(){super(...arguments);h(this,Y);h(this,se,null);h(this,K,{autoReset:!1,time:5*60*1e3,once:!0});h(this,le,null)}onSelect(t,n){var r,s,a,c;if(!t)throw new TypeError('Cannot setup "onClick" without a handler function parameter.');return l(this,se)&&g(this,Y,Mt).call(this),f(this,se,t),n&&f(this,K,{autoReset:n.autoReset??((r=l(this,K))==null?void 0:r.autoReset)??!0,time:n.time??((s=l(this,K))==null?void 0:s.time)??5*60*1e3,filter:n.filter??((a=l(this,K))==null?void 0:a.filter),onEnd:n.onEnd??((c=l(this,K))==null?void 0:c.onEnd)}),g(this,Y,En).call(this),this}onEnd(t){if(!t)throw new TypeError('Cannot setup "onEnd" without a handler function parameter.');return l(this,K)??f(this,K,{}),l(this,K).onEnd=t,this}onError(t){if(!t)throw new TypeError('Cannot setup "onError" without a handler function parameter.');return l(this,K)??f(this,K,{}),l(this,K).onError=t,this}filter(t){return l(this,K)??f(this,K,{autoReset:!0,time:5*60*1e3}),l(this,K).filter=t,this}get customId(){return this.data.custom_id??this.data.customId}dispose(){return g(this,Y,Mt).call(this),this}};se=new WeakMap,K=new WeakMap,le=new WeakMap,Y=new WeakSet,bn=i(function(){let t=k();return t?$(()=>t.commandkit.eventInterceptor):U(!0).eventInterceptor},"#getEventInterceptor"),En=i(function(){if(!l(this,K))return;if(!this.customId)throw new TypeError("Cannot setup an modal collector without a custom ID.");let t=g(this,Y,bn).call(this);t&&f(this,le,t.subscribe($e.Events.InteractionCreate,async n=>{var m,u;if(!n.isRoleSelectMenu())return;let r=this.customId??null,s=n.customId;if(r&&s!==r)return;let a=(m=l(this,K))==null?void 0:m.filter;if(a&&!await a(n))return;let c=l(this,se);return c?c(n,this):(u=l(this,le))==null?void 0:u.call(this)},l(this,K)))},"#setupCollector"),Mt=i(function(){var t;(t=l(this,le))==null||t.call(this),f(this,le,null),f(this,se,null),f(this,K,null)},"#destroyCollector"),i(It,"RoleSelectMenuKit");var Fe=It;var ce=require("discord.js");var Kr=require("discord.js");var vn=require("discord.js");var Ue=require("discord.js");var Dr=require("discord.js");var Tr=require("discord.js");var Mn=new Set;function Ar(o,e="CommandKitWarning"){process.emitWarning(o,{code:e})}i(Ar,"emitWarning");function St(o){Mn.has(o)||(Mn.add(o),Ar(`${o} is unstable and may change in future versions.`,"CommandKitUnstableWarning"))}i(St,"warnUnstable");function In(o){return St("CommandKit JSX"),Array.isArray(o.children)?o.children.flat():[o.children]}i(In,"Fragment");function Sn(o,e,...t){return St("CommandKit JSX"),o({...e,children:e.children??t})}i(Sn,"createElement");var He,Rn,Rt=class Rt{constructor(e){this.client=e;h(this,He);E(this,"subscribers",new Map);E(this,"globalHandlers",new Map);E(this,"cleanupTimer",null);g(this,He,Rn).call(this)}destroy(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=null);for(let[e,t]of this.subscribers)for(let n of t)this.unsubscribe(e,n,"destroy");this.subscribers.clear(),this.globalHandlers.clear()}hasSubscribers(e){return this.subscribers.has(e)}getSubscriberCount(e){let t=this.subscribers.get(e);return(t==null?void 0:t.size)??0}hasGlobalHandlers(){return this.globalHandlers.size>0}getGlobalHandlersCount(){return this.subscribers.size}subscribe(e,t,n){return this.subscribers.has(e)||(this.subscribers.set(e,new Set),this.client.on(e,this.createGlobalHandler(e)),this.client.setMaxListeners(this.client.getMaxListeners()+1)),n??={},n.registeredAt=Date.now(),Reflect.set(t,"options",n),this.subscribers.get(e).add(t),()=>{this.unsubscribe(e,t)}}unsubscribe(e,t,n){var s,a;let r=this.subscribers.get(e);r&&(r.delete(t),r.size<1&&(this.subscribers.delete(e),this.client.removeListener(e,this.globalHandlers.get(e)),this.globalHandlers.delete(e),this.client.setMaxListeners(Math.max(this.client.getMaxListeners()-1,0))),(a=(s=Reflect.get(t,"options")).onEnd)==null||a.call(s,n??"unsubscribe"))}createGlobalHandler(e){if(this.globalHandlers.has(e))return this.globalHandlers.get(e);let t=i(async(...n)=>{let r=this.subscribers.get(e);if(r&&r.size>0)for(let s of r){let a=Reflect.get(s,"options");if(a.time&&Date.now()-a.registeredAt>a.time){this.unsubscribe(e,s,"time");continue}if(a.autoReset&&(a.registeredAt=Date.now()),!(a.filter&&!await a.filter(...n)))try{await s(...n)}catch(m){if(a.onError)await a.onError(m);else throw m}finally{a.once&&this.unsubscribe(e,s,"once")}}},"handler");return this.globalHandlers.set(e,t),t}};He=new WeakSet,Rn=i(function(){this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=setInterval(()=>{for(let[e,t]of this.subscribers)for(let n of t){let r=Reflect.get(n,"options");r.time&&Date.now()-r.registeredAt>r.time&&this.unsubscribe(e,n,"time")}},6e4).unref()},"#cleanupLoop"),i(Rt,"EventInterceptor");var Ne=Rt;var ut=require("discord.js");var Lt=require("fs"),Ft=require("path");var wa=Symbol("kCommandKitCacheTag"),G=process.env.COMMANDKIT_IS_DEV==="true",va=process.env.COMMANDKIT_IS_TEST==="true",Ma=process.env.COMMANDKIT_BOOTSTRAP_MODE||"development",Ge={ReloadCommands:"reload-commands",ReloadEvents:"reload-events",Unknown:"unknown"};var Pn=require("crypto");var Kt=class Kt{constructor(e){this.options=e}id=(0,Pn.randomUUID)();loadedAt=Date.now();async activate(e){}async deactivate(e){}};i(Kt,"PluginCommon");var he=Kt;function Pt(o){return o instanceof he}i(Pt,"isPlugin");var Dt=class Dt extends he{type="compiler";async transform(e){return null}async resolve(e){return null}async onBuildStart(){}async onBuildEnd(){}};i(Dt,"CompilerPlugin");var Ce=Dt;function Kn(o){return Pt(o)&&o.type==="runtime"}i(Kn,"isRuntimePlugin");var Dn=require("discord.js");var M={ExitMiddleware:Symbol("kExitMiddleware"),ForwardedCommand:Symbol("kForwardedCommand"),InvalidCommandPrefix:Symbol("kInvalidCommandPrefix"),PluginCaptureHandle:Symbol("kPluginCaptureHandle")};function me(o){let e=new Error;return Reflect.set(e,"code",o),e}i(me,"createCommandKitError");function je(o){if(!(o instanceof Error))return!1;let e=Reflect.get(o,"code");for(let t in M)if(M[t]===e)return!0;return!1}i(je,"isCommandKitError");function _(o,e){if(!je(o))return!1;let t=Reflect.get(o,"code");return t?Array.isArray(e)?e.includes(t):t===e:!1}i(_,"isErrorType");var Br={autocomplete:"Autocomplete",messageContextMenu:"MessageContextMenu",userContextMenu:"UserContextMenu",chatInput:"ChatInputCommand",message:"Message"},Or={0:x.blue,1:x.green,2:x.yellow,3:x.red,4:x.white},Lr={0:x.bgBlue,1:x.bgGreen,2:x.bgYellow,3:x.bgRed,4:x.bgWhite},_e={vertical:"\u2502",horizontalDown:"\u252C",horizontalUp:"\u2534",verticalRight:"\u251C",corner:"\u2514"},Tt=class Tt{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"),s=e.getMilliseconds().toString().padStart(3,"0");return`${t}:${n}:${r}.${s}`}_getContext(){let e=k();if(!e)return"";let t=e.variables.get("execHandlerKind"),n=e.variables.get("commandHandlerType"),r=e.variables.get("currentCommandName");if(!t&&!n)return"";let s=Br[t];if(!s&&!n)return"";let a=e.variables.get("forwardedBy"),c=e.variables.get("forwardedTo"),m=r?x.magenta(`/${r}`)+" ":"",u=c?`${x.yellowBright(`(${a||r} \u2192 ${c})`)} `:"";return x.dim(`${_e.vertical} `)+x.cyanBright(`${m}${u}${s?x.gray(`[${s}]`):""}`.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`${Lr[e](x.whiteBright(` ${t} `))} `}_getPrefix(e){let t=this._formatTime(new Date);return`${this._getLevelLabel(e)}${x.dim(_e.vertical)} ${x.dim(t)}`}_log(e,...t){let n=this._getPrefix(e),r=this._getContext(),s=Or[e];r?this.logger.log(`${n}
2
+ ${r} ${x.dim(_e.corner)}`,...t.map(a=>s(a))):this.logger.log(`${n} ${x.dim(_e.corner)}`,...t.map(a=>s(a)))}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)}};i(Tt,"DefaultLogger");var We=Tt;function Fr(o){let e=o;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]=(...s)=>{e.provider[r](...s)};return n}i(Fr,"createLogger");var y=Fr({provider:new We});var At=class At{constructor(e){this.commandkit=e}plugins=new Dn.Collection;getPlugins(){return this.plugins}getPlugin(e){return this.plugins.get(e)??null}async softRegisterPlugin(e){let t=e.name;if(!this.plugins.has(t))try{await e.activate(this),this.plugins.set(t,e)}catch(n){throw new Error(`Failed to activate plugin "${t}": ${(n==null?void 0:n.stack)||n}`)}}async registerPlugin(e){let t=e.name;if(this.plugins.has(t))throw new Error(`Plugin with name "${t}" already exists.`);try{await e.activate(this),this.plugins.set(t,e)}catch(n){throw new Error(`Failed to activate plugin "${t}": ${(n==null?void 0:n.stack)||n}`)}}async unregisterPlugin(e){let t=e.name;if(!this.plugins.has(t))throw new Error(`Plugin with name "${t}" does not exist.`);this.plugins.delete(t);try{await e.deactivate(this)}catch(n){throw new Error(`Failed to deactivate plugin "${t}": ${(n==null?void 0:n.stack)||n}`)}}async unregisterAllPlugins(){for(let e of this.plugins.values())await this.unregisterPlugin(e)}capture(){throw me(M.PluginCaptureHandle)}async execute(e){let t;for(let n of this.plugins.values())try{t=await e(this,n)}catch(r){if(_(r,M.PluginCaptureHandle))return!0;y.error(`Plugin "${n.name}" failed`,(r==null?void 0:r.stack)||r)}return t}};i(At,"CommandKitPluginRuntime");var Ve=At;var $r=require("fs/promises");var kt=class kt extends Ce{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}}};i(kt,"MacroPlugin");var qe=kt;var Tn={plugins:[new qe({enabled:!0})],esbuildPlugins:[],compilerOptions:{macro:{development:!1}},static:!0,typescript:{ignoreBuildErrors:!1},distDir:"dist",env:{},sourceMap:{development:!0,production:!0},typedCommands:!0};var Ur=Tn;function ze(){return Ur}i(ze,"getConfig");var An=require("async_hooks");var Nr=Symbol("commandkitEventWorker"),kn=new An.AsyncLocalStorage;function Bt(o,e){return Reflect.set(o,Nr,!0),kn.run(o,e)}i(Bt,"runInEventWorkerContext");var Ot=null;function Bn(){if(Ot)return Ot;let o=(0,Ft.join)(process.cwd(),G?".commandkit":ze().distDir);(0,Lt.existsSync)(o)||(o=process.cwd());let e=["app"].map(t=>(0,Ft.join)(o,t));for(let t of e)if((0,Lt.existsSync)(t))return Ot=t,t;return null}i(Bn,"findAppDirectory");var $t=class $t extends Error{constructor(){super("Event propagation stopped"),this.name="StopEventPropagationError"}};i($t,"StopEventPropagationError");var ve=$t;var sn=require("path");var D=require("discord.js");var On=ee(require("path"));function Me(o,e=!1){return`${"file://"+On.default.resolve(o).replace(/\\\\|\\/g,"/")}${e?`?ts=${Date.now()}`:""}`}i(Me,"toFileURL");var O=require("discord.js");var ue,ge,Ie,Nt=class Nt{constructor(e,t,n){this.message=e;this.prefix=t;this.schema=n;h(this,ue,null);h(this,ge,null);h(this,Ie,[])}getArgs(){return this.parse(),l(this,Ie)}get options(){return l(this,ge)||f(this,ge,new Ut(this)),l(this,ge)}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(l(this,ue))return l(this,ue);let e=this.message.content,t=this.getPrefix();if(!t)throw me(M.InvalidCommandPrefix);let n=e.slice(t.length).trim().split(" "),r=n.shift();f(this,Ie,n);let s,a;if(r!=null&&r.includes(":")){let[,u,p]=r.split(":");!p&&u?a=u:p&&u&&(s=u,a=p)}let c=this.schema([r,s,a].filter(Boolean).join(" ").trim()),m=n.map(u=>{try{let[p,C]=u.split(":");if(!(p in c))return null;switch(c[p]){case O.ApplicationCommandOptionType.Boolean:return{name:p,value:C==="true"};case O.ApplicationCommandOptionType.Integer:return{name:p,value:parseInt(C,10)};case O.ApplicationCommandOptionType.Number:return{name:p,value:parseFloat(C)};case O.ApplicationCommandOptionType.String:return{name:p,value:C};case O.ApplicationCommandOptionType.User:return{name:p,value:this.message.mentions.users.find(b=>b.id===C.replace(/[<@!>]/g,""))};case O.ApplicationCommandOptionType.Channel:return{name:p,value:this.message.mentions.channels.find(b=>b.id===C.replace(/[<#>]/g,""))};case O.ApplicationCommandOptionType.Role:return{name:p,value:this.message.mentions.roles.find(b=>b.id===C.replace(/[<@&>]/g,""))};case O.ApplicationCommandOptionType.Attachment:return{name:p,value:this.message.attachments.find(b=>b.name===C)};default:return null}}catch{return null}}).filter(u=>u!==null);return f(this,ue,{command:r,options:m,subcommand:a,subcommandGroup:s}),l(this,ue)}};ue=new WeakMap,ge=new WeakMap,Ie=new WeakMap,i(Nt,"MessageCommandParser");var Je=Nt,Ht=class Ht{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 s;let n=this.assertOption(e,t),r=(s=this.parser.message.guild)==null?void 0:s.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 O.GuildMember||n instanceof O.User||n instanceof O.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}};i(Ht,"MessageCommandOptions");var Ut=Ht;var W=require("discord.js");var Gt=class Gt{constructor(e){this.commandkit=e;this.api.setToken(this.commandkit.client.token??process.env.DISCORD_TOKEN??process.env.TOKEN??"")}api=new W.REST;getCommandsData(){return this.commandkit.commandHandler.getCommandsArray().flatMap(n=>{let r="toJSON"in n.data.command?n.data.command.toJSON():n.data.command,s=[r];return n.data.userContextMenu&&r.type!==W.ApplicationCommandType.User&&s.push({...r,type:W.ApplicationCommandType.User,options:void 0,description_localizations:void 0,description:void 0}),n.data.messageContextMenu&&r.type!==W.ApplicationCommandType.Message&&s.push({...r,type:W.ApplicationCommandType.Message,description_localizations:void 0,description:void 0,options:void 0}),s})}async register(){let e=this.getCommandsData(),t=!1,n={preventDefault(){t=!0},commands:e};if(await this.commandkit.plugins.execute(async(a,c)=>{if(!t)return c.onBeforeRegisterCommands(a,n)}),t)return;if(!this.commandkit.client.isReady())throw new Error("Cannot register commands before the client is ready");let r=e.filter(a=>{var c;return(c=a.guilds)==null?void 0:c.filter(Boolean).length}).map(a=>{var c;return{...a,guilds:Array.from(new Set((c=a.guilds)==null?void 0:c.filter(Boolean)))}}),s=e.filter(a=>{var c;return!((c=a.guilds)!=null&&c.filter(Boolean).length)});await this.updateGlobalCommands(s),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,s)=>{if(!t)return s.onBeforeRegisterGlobalCommands(r,n)});try{let r=await this.api.put(W.Routes.applicationCommands(this.commandkit.client.user.id),{body:e.map(s=>({...s,guilds:void 0}))});y.info(`\u2728 Refreshed ${r.length} global application (/) commands`)}catch(r){y.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,s)=>{if(!t)return s.onBeforePrepareGuildCommandsRegistration(r,n)}),!t)try{let r=new Map;if(e.forEach(a=>{var c;(c=a.guilds)!=null&&c.length&&a.guilds.forEach(m=>{r.has(m)||r.set(m,[]),r.get(m).push(a)})}),!r.size)return;let s=0;for(let[a,c]of r){let m=!1,u={preventDefault(){m=!0},commands:c};if(await this.commandkit.plugins.execute(async(C,b)=>{if(!m)return b.onBeforeRegisterGuildCommands(C,u)}),m)continue;let p=await this.api.put(W.Routes.applicationGuildCommands(this.commandkit.client.user.id,a),{body:c.map(C=>({...C,guilds:void 0}))});s+=p.length}y.info(`\u2728 Refreshed ${s} guild application (/) commands`)}catch(r){y.error("Failed to update guild application (/) commands",r)}}};i(Gt,"CommandRegistrar");var Ye=Gt;var Qe=require("discord.js");var Ln=require("crypto");var v,jt=class jt{constructor(e){this.commandkit=e;h(this,v,{executionError:null,type:null,variables:new Map,deferredFunctions:new Map,marker:"",markStart:0,markEnd:0,context:null})}setContext(e){l(this,v).context=e}get context(){return l(this,v).context}getExecutionError(){return l(this,v).executionError}setExecutionError(e){if(l(this,v).executionError)throw new Error("Execution error already set.");l(this,v).executionError=e}getType(){let e=l(this,v).type;if(!e)throw new Error("Environment type not set.");return e}setType(e){l(this,v).type=e}get variables(){return l(this,v).variables}registerDeferredFunction(e){let t=(0,Ln.randomUUID)();return l(this,v).deferredFunctions.set(t,e),t}clearDeferredFunction(e){l(this,v).deferredFunctions.delete(e)}async runDeferredFunctions(){for(let[e,t]of l(this,v).deferredFunctions)try{await t(this)}catch(n){this.commandkit.emit("unhandledDeferredFunctionRejection",n)}finally{this.clearDeferredFunction(e)}}clearAllDeferredFunctions(){l(this,v).deferredFunctions.clear()}markStart(e){l(this,v).marker=e,l(this,v).markStart=performance.now()}markEnd(){l(this,v).markEnd||(l(this,v).markEnd=performance.now())}getMarker(){return l(this,v).marker}getExecutionTime(){return Math.abs(l(this,v).markEnd-l(this,v).markStart)}};v=new WeakMap,i(jt,"CommandKitEnvironment");var Xe=jt;function Fn(){throw me(M.ExitMiddleware)}i(Fn,"exitMiddleware");function $n(){throw me(M.ForwardedCommand)}i($n,"redirect");var L={ChatInputCommand:"chatInput",MessageContextMenu:"messageContextMenu",UserContextMenu:"userContextMenu",Autocomplete:"autocomplete",Message:"message"},xe,Se=class Se{constructor(e,t){this.commandkit=e;this.config=t;E(this,"interaction");E(this,"message");E(this,"guild");E(this,"guildId");E(this,"channel");E(this,"channelId");E(this,"client");E(this,"command");h(this,xe);E(this,"_locale",null);this.interaction=t.interaction,this.message=t.message,this.client=e.client,f(this,xe,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 l(this,xe)}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??k();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},s=n.variables.get("execHandlerKind");if(!s)throw new Error("No execution handler kind found.");let a=r[s];if(!a)throw new Error(`No handler found for ${s}`);n.variables.set("forwardedBy",this.commandName),n.variables.set("forwardedTo",e),await a(this.clone({forwarded:!0})),$n()}get executionMode(){return this.config.executionMode}isInteraction(){return this.executionMode===L.ChatInputCommand||this.executionMode===L.Autocomplete||this.executionMode===L.MessageContextMenu||this.executionMode===L.UserContextMenu}isChatInputCommand(){return this.executionMode===L.ChatInputCommand}isAutocomplete(){return this.executionMode===L.Autocomplete}isMessageContextMenu(){return this.executionMode===L.MessageContextMenu}isUserContextMenu(){return this.executionMode===L.UserContextMenu}isMessage(){return this.executionMode===L.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 Se(this.commandkit,{...this.config,...e,store:l(this,xe)}):new Se(this.commandkit,this.config)}isMiddleware(){return this instanceof Re}args(){return this.isMessage()?this.config.messageCommandParser.getArgs():[]}exit(){Fn()}};xe=new WeakMap,i(Se,"Context");var _t=Se,Pe,Wt=class Wt extends _t{constructor(){super(...arguments);h(this,Pe,!1)}get cancelled(){return l(this,Pe)}cancel(){f(this,Pe,!0)}setCommandRunner(t){var n,r;(r=(n=this.config.customArgs)==null?void 0:n.setCommandRunner)==null||r.call(n,t)}};Pe=new WeakMap,i(Wt,"MiddlewareContext");var Re=Wt;var et,Un,Vt=class Vt{constructor(e){this.handler=e;h(this,et)}async runCommand(e,t){let{commandkit:n}=this.handler,r=this.getExecutionMode(t),s=null,a=new Xe(n);a.setType("COMMAND_HANDLER"),a.variables.set("commandHandlerType","app"),a.variables.set("currentCommandName",e.command.command.name),a.variables.set("execHandlerKind",r);let c=new Re(n,{command:e.command,environment:a,executionMode:r,interaction:t instanceof Qe.Message?null:t,message:t instanceof Qe.Message?t:null,forwarded:!1,customArgs:{setCommandRunner:i(u=>{s=u},"setCommandRunner")},messageCommandParser:e.messageCommandParser}),m=!1;if(e.middlewares.length&&await tt(a,async()=>{for(let u of e.middlewares)if(u.data.beforeExecute)try{await u.data.beforeExecute(c)}catch(p){if(_(p,M.ExitMiddleware)){m=!0;return}if(_(p,[M.ForwardedCommand,M.InvalidCommandPrefix]))continue;throw p}}),!c.cancelled){let p=e.command.data[r];if(p||y.warn(`Command ${e.command.command.name} has no handler for ${r}`),p)try{let C=Nn(a,async()=>(a.registerDeferredFunction(A=>{A.markEnd();let I=A.getExecutionError(),w=A.getMarker(),B=`${A.getExecutionTime().toFixed(2)}ms`;if(I){y.error(`[${w} - ${B}] Error executing command: ${I.stack||I}`);return}y.info(`[${w} - ${B}] Command executed successfully`)}),p(c.clone())),g(this,et,Un).bind(this)),b=s!=null?s(C):C;a.markStart(e.command.data.command.name),await n.plugins.execute(async(A,I)=>I.executeCommand(A,a,t,e,b))||await b()}catch(C){_(C,M.ExitMiddleware)&&(m=!0),_(C,[M.ForwardedCommand,M.ExitMiddleware])||y.error(C)}}!m&&e.middlewares.length&&await tt(a,async()=>{for(let u of e.middlewares)if(u.data.afterExecute)try{await u.data.afterExecute(c)}catch(p){if(_(p,M.ExitMiddleware))return;throw p}})}getExecutionMode(e){return e instanceof Qe.Message?L.Message:e.isChatInputCommand()?L.ChatInputCommand:e.isAutocomplete()?L.Autocomplete:e.isMessageContextMenuCommand()?L.MessageContextMenu:e.isUserContextMenuCommand()?L.UserContextMenu:null}};et=new WeakSet,Un=i(async function(){let e=Hn();await e.runDeferredFunctions(),e.clearAllDeferredFunctions(),await this.handler.commandkit.plugins.execute(async(t,n)=>{await n.onAfterCommand(t,e)})},"#finalizer"),i(Vt,"AppCommandRunner");var Ze=Vt;var Z=require("fs/promises"),Q=require("path");var Gn=require("fs");async function nt(o=!1){let e=(0,Q.join)(process.cwd(),"node_modules","commandkit-types");if(!G&&!o)return e;let t=(0,Q.join)(e,"package.json"),n=(0,Q.join)(e,"index.js"),r=(0,Q.join)(e,"index.d.ts"),s=(0,Q.join)(e,"command.d.ts"),a={name:"commandkit-types",version:"1.0.0",description:"CommandKit types package",type:"commonjs",main:"index.js",types:"index.d.ts"},c="module.exports = {};",m=`// Main types index file - imports all type declarations
3
3
  import './command';
4
4
  export {};
5
5
  `,u=`// Auto-generated command types
@@ -11,6 +11,6 @@ declare module 'commandkit' {
11
11
  ${o}
12
12
  }
13
13
  export {};
14
- `,t=(0,Q.join)(process.cwd(),"node_modules","commandkit-types");if(!(0,Gn.existsSync)(t))return;let n=(0,Q.join)(t,"command.d.ts");await(0,Z.writeFile)(n,e,{encoding:"utf-8"})}i(jn,"rewriteCommandDeclaration");var Hr={command:i(o=>o instanceof D.SlashCommandBuilder||o instanceof D.ContextMenuCommandBuilder||o&&typeof o=="object","command"),chatInput:i(o=>typeof o=="function","chatInput"),autocomplete:i(o=>typeof o=="function","autocomplete"),message:i(o=>typeof o=="function","message"),messageContextMenu:i(o=>typeof o=="function","messageContextMenu"),userContextMenu:i(o=>typeof o=="function","userContextMenu")},Gr={beforeExecute:i(o=>typeof o=="function","beforeExecute"),afterExecute:i(o=>typeof o=="function","afterExecute")},qt=class qt{constructor(e){this.commandkit=e;this.registrar=new Ye(this.commandkit)}loadedCommands=new D.Collection;loadedMiddlewares=new D.Collection;commandNameToId=new Map;subcommandPathToId=new Map;registrar;onInteraction=null;onMessageCreate=null;commandRunner=new Ze(this);externalCommandData=new D.Collection;externalMiddlewareData=new D.Collection;printBanner(){let e=crypto.randomUUID(),t=this.getCommandsArray().reduce((m,u)=>{let p=u.command.category||e;return m[p]=m[p]||[],m[p].push(u),m},{});console.log(x.green(`Loaded ${x.magenta(this.loadedCommands.size.toString())} commands:`));let n=Object.keys(t).sort(),r={};n.forEach(m=>{if(m!==e&&m.includes(":")){let u=m.split(":"),p=null;for(let C=u.length-1;C>0;C--){let b=u.slice(0,C).join(":");if(n.includes(b)){p=b;break}}p&&(r[p]=r[p]||[],r[p].push(m))}});let s=new Set,a=i((m,u="",p=!1,C="")=>{if(s.has(m))return;s.add(m);let b=t[m],$=r[m]&&r[m].length>0,A=p?"\u2514\u2500":"\u251C\u2500",I=C+(p?" ":"\u2502 ");if(m!==e){let v=m.includes(":")?m.split(":").pop():m;console.log(x.cyan(`${u}${A} ${x.bold(v)}`))}if(b.forEach((v,B)=>{let ft=B===b.length-1&&!$?"\u2514\u2500":"\u251C\u2500",Cr=m!==e?I:u,gr=v.data.command.name,xr=v.command.middlewares.length>0?x.magenta(" (\u03BB)"):"";console.log(`${x.green(`${Cr}${ft}`)} ${x.yellow(gr)}${xr}`)}),$){let v=r[m].sort();v.forEach((B,Ee)=>{let ft=Ee===v.length-1;a(B,I,ft,I)})}},"printCategory"),c=n.filter(m=>{if(m===e)return!0;if(m.includes(":")){let u=m.split(":");for(let p=1;p<u.length;p++){let C=u.slice(0,p).join(":");if(n.includes(C))return!1}return!0}return!0}).sort();c.forEach((m,u)=>{let p=u===c.length-1;a(m,"",p)})}getCommandsArray(){return Array.from(this.loadedCommands.values())}registerCommandHandler(){this.onInteraction??=async e=>{if(await this.commandkit.plugins.execute(async(s,a)=>a.onBeforeInteraction(s,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,s)=>s.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(D.Events.InteractionCreate,this.onInteraction),this.commandkit.client.on(D.Events.MessageCreate,this.onMessageCreate)}async prepareCommandRun(e,t){var c;let n;if(!t)if(e instanceof D.Message){if(e.author.bot)return null;let m=await this.commandkit.config.getMessageCommandPrefix(e);n=new Je(e,Array.isArray(m)?m:[m],u=>{var $,A;let p=this.commandNameToId.get(u);if(!p)return null;let C=this.loadedCommands.get(p);return!C||e.guildId&&(($=C.guilds)!=null&&$.length)&&!C.guilds.includes(e.guildId)?null:((A=("toJSON"in C.data.command?C.data.command.toJSON():C.data.command).options)==null?void 0:A.reduce((I,v)=>(I[v.name]=v.type,I),{}))??{}});try{t=n.getFullCommand().split(" ")[0]}catch(u){return _(u,M.InvalidCommandPrefix)||y.error(u),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 s=this.loadedCommands.get(r);if(!s||(e instanceof D.CommandInteraction||e instanceof D.AutocompleteInteraction)&&e.guildId&&((c=s.guilds)!=null&&c.length)&&!s.guilds.includes(e.guildId))return null;let a=[];for(let m of s.command.middlewares){let u=this.loadedMiddlewares.get(m);u&&a.push(u)}return{command:s,middlewares:a,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((a,c)=>c.onBeforeCommandsLoad(a));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,s=this.externalMiddlewareData.size?n.concat(this.externalMiddlewareData):n;for(let[a,c]of s)await this.loadMiddleware(a,c);for(let[a,c]of r)await this.loadCommand(a,c);G&&await jn(`type CommandTypeData = ${Array.from(this.loadedCommands.mapValues(a=>JSON.stringify(a.command.name)).values()).join(" | ")}`),await this.commandkit.plugins.execute((a,c)=>c.onAfterCommandsLoad(a))}async loadMiddleware(e,t){try{let n=await import(`${we(t.path)}?t=${Date.now()}`),r=0;for(let[s,a]of Object.entries(Gr)){if(n[s]&&!await a(n[s]))throw new Error(`Invalid export for middleware ${e}: ${s} does not match expected value`);n[s]&&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){y.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(`${we(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[a,c]of Object.entries(Hr))if(a!=="command"&&n[a]&&r++,n[a]&&!await c(n[a]))throw new Error(`Invalid export for command ${t.name}: ${a} 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 s=n.command;await this.commandkit.plugins.execute(async(a,c)=>{let m=await c.prepareCommand(a,s);m&&(s=m)}),this.loadedCommands.set(e,{command:t,guilds:n.guilds,data:{...n,command:"toJSON"in s?s.toJSON():s}}),this.commandNameToId.set(t.name,e)}catch(n){y.error(`Failed to load command ${t.name} (${e})`,n)}}};i(qt,"AppCommandHandler");var rt=qt;var zt=require("discord.js"),Vn=require("fs"),Jt=require("fs/promises"),N=require("path");var jr=/^\+middleware\.(m|c)?(j|t)sx?$/,_n=/^\+([^+().][^().]*)\.middleware\.(m|c)?(j|t)sx?$/,Wn=/^\+global-middleware\.(m|c)?(j|t)sx?$/,_r=/^([^+().][^().]*)\.(m|c)?(j|t)sx?$/,Wr=/^\(.+\)$/,Yt=class Yt{constructor(e){this.options=e}commands=new zt.Collection;middlewares=new zt.Collection;populate(e){for(let[t,n]of Object.entries(e.commands))this.commands.set(t,n);for(let[t,n]of Object.entries(e.middlewares))this.middlewares.set(t,n)}isValidPath(){return(0,Vn.existsSync)(this.options.entrypoint)}isCommand(e){return _r.test(e)}isMiddleware(e){return jr.test(e)||Wn.test(e)||_n.test(e)}isCategory(e){return Wr.test(e)}clear(){this.commands.clear(),this.middlewares.clear()}async scan(){let e=await(0,Jt.readdir)(this.options.entrypoint,{withFileTypes:!0});for(let t of e){if(t.name.startsWith("_"))continue;let n=(0,N.join)(this.options.entrypoint,t.name);if(t.isDirectory()){let r=this.isCategory(t.name)?t.name.slice(1,-1):null;await this.traverse(n,r)}else await this.handle(t)}return await this.applyMiddlewares(),this.toJSON()}getData(){return{commands:this.commands,middlewares:this.middlewares}}toJSON(){return{commands:Object.fromEntries(this.commands.entries()),middlewares:Object.fromEntries(this.middlewares.entries())}}async traverse(e,t){let n=await(0,Jt.readdir)(e,{withFileTypes:!0});for(let r of n)if(!r.name.startsWith("_")){if(r.isFile())(this.isCommand(r.name)||this.isMiddleware(r.name))&&await this.handle(r,t);else if(r.isDirectory()&&this.isCategory(r.name)&&t){let s=this.isCategory(r.name)?`${t}:${r.name.slice(1,-1)}`:null;await this.traverse((0,N.join)(e,r.name),s)}}}async handle(e,t=null){let n=e.name,r=(0,N.join)(e.parentPath,e.name);if(this.isCommand(n)){let s={id:crypto.randomUUID(),name:(0,N.basename)(r,(0,N.extname)(r)),path:r,category:t,parentPath:e.parentPath,relativePath:this.replaceEntrypoint(r),middlewares:[]};this.commands.set(s.id,s)}else if(this.isMiddleware(n)){let s={id:crypto.randomUUID(),name:(0,N.basename)(r,(0,N.extname)(r)),path:r,relativePath:this.replaceEntrypoint(r),parentPath:e.parentPath,global:Wn.test(n),command:_n.test(n)&&n.split(".")[0]||null};this.middlewares.set(s.id,s)}}applyMiddlewares(){this.commands.forEach(e=>{let t=e.parentPath,n=Array.from(this.middlewares.values()).filter(r=>r.global?!0:r.command?r.command===e.name:r.parentPath===t).map(r=>r.id);e.middlewares=Array.from(new Set([...e.middlewares,...n]))})}replaceEntrypoint(e){return(0,N.normalize)(e).replace(this.options.entrypoint,"")}};i(Yt,"CommandsRouter");var ot=Yt;var qn=require("discord.js"),zn=require("fs"),Xt=require("fs/promises"),it=require("path");var Qt=class Qt{constructor(e){this.options=e;var t;if(e.entrypoints&&(e.entrypoints=Array.from(new Set(e.entrypoints))),!((t=e.entrypoints)!=null&&t.length))throw new Error("Entrypoint directory must be provided")}events=new qn.Collection;addEntrypoints(e){this.options.entrypoints=Array.from(new Set([...this.options.entrypoints,...e]))}match(e){return this.events.get(e)??null}get entrypoints(){return this.options.entrypoints}isValidPath(){return this.entrypoints.every(e=>(0,zn.existsSync)(e))}clear(){this.events.clear()}async reload(){return this.clear(),this.scan()}async scan(){for(let e of this.entrypoints){let t=await(0,Xt.readdir)(e,{withFileTypes:!0});for(let n of t)if(n.isDirectory()){let r=(0,it.join)(e,n.name);await this.scanEvent(n.name,r,null,[],!0)}}return Object.fromEntries(this.events)}toJSON(){return Object.fromEntries(this.events)}async scanEvent(e,t,n=null,r=[],s=!1){let a=await(0,Xt.readdir)(t,{withFileTypes:!0}),c=s&&/^\(.+\)$/.test(e),m=c?e.slice(1,-1):n??null;a.sort((u,p)=>u.name.localeCompare(p.name));for(let u of a)if(!u.name.startsWith("_")){if(u.isDirectory()){let p=(0,it.join)(t,u.name);await this.scanEvent(u.name,p,m,r);continue}u.isFile()&&/\.(m|c)?(j|t)sx?$/.test(u.name)&&r.push((0,it.join)(u.parentPath,u.name))}if(!c){let u=this.events.get(e);if(u){u.listeners=Array.from(new Set([...u.listeners,...r]));return}this.events.set(e,{event:e,path:t,listeners:r,namespace:m})}}};i(Qt,"EventsRouter");var at=Qt;var Jn=require("discord.js");var Zt=class Zt{constructor(e){this.commandkit=e}loadedEvents=new Jn.Collection;getEvents(){return this.loadedEvents.size===0?[]:this.loadedEvents.toJSON().map(t=>({name:t.name,namespace:t.namespace,onceListeners:t.listeners.filter(n=>n.once).length,regularListeners:t.listeners.filter(n=>!n.once).length,metadata:t.event}))}async reloadEvents(){this.unregisterAll(),await this.loadEvents()}async loadEvents(){await this.commandkit.plugins.execute((n,r)=>r.onBeforeEventsLoad(n));let t=await this.commandkit.eventsRouter.scan();for(let n of Object.values(t)){let r=[];for(let c of n.listeners){let m=await import(we(c,!0));(!m.default||typeof m.default!="function")&&y.error(`Event handler for ${n.event}${n.namespace?` of namespace ${n.namespace}`:""} does not have a default export or is not a function`),r.push({handler:m.default,once:!!m.once})}let s=r.length;s||y.warn(`Event ${n.event}${n.namespace?` of namespace ${n.namespace}`:""} does not have any listeners`);let a=`${n.namespace?`${n.namespace}:`:""}${n.event}`;this.loadedEvents.set(a,{name:n.event,namespace:n.namespace,event:n,listeners:r}),y.info(`\u2728 Loaded event ${n.event}${n.namespace?` of namespace ${n.namespace}`:""} with ${s} listener${s===1?"":"s"}`)}this.registerAllClientEvents(),await this.commandkit.plugins.execute((n,r)=>r.onAfterEventsLoad(n))}unregisterAll(){this.unregisterAllClientListeners(),this.loadedEvents.clear()}registerAllClientEvents(){let e=this.commandkit.client;for(let[t,n]of this.loadedEvents.entries()){let{name:r,listeners:s,namespace:a}=n,c=s.filter(b=>b.once),m=s.filter(b=>!b.once),u=new Set,p=i(async(...b)=>{let $=!1,A={name:r,args:b,namespace:a??null,once:!1,metadata:n.event,accept(){$||($=!0)}};await this.commandkit.plugins.execute(async(I,v)=>{var B;if(!$)return(B=v.willEmitEvent)==null?void 0:B.call(v,I,A)}).catch(Object),await Bt({event:r,namespace:a??null,data:n.event,commandkit:this.commandkit,arguments:b},async()=>{for(let I of m)try{await I.handler(...b)}catch(v){if(v instanceof ve){y.debug(`Event propagation stopped for ${r}${a?` of namespace ${a}`:""}`);break}y.error(`Error handling event ${r}${a?` of namespace ${a}`:""}`,v)}})},"mainHandler"),C=i(async(...b)=>{let $=!1,A=!1,I={name:r,args:b,namespace:a??null,once:!0,metadata:n.event,accept(){A||(A=!0)}};await this.commandkit.plugins.execute(async(v,B)=>{var Ee;if(!A)return(Ee=B.willEmitEvent)==null?void 0:Ee.call(B,v,I)}).catch(Object);for(let v of c){if($)break;await Bt({event:r,namespace:a??null,data:n.event,commandkit:this.commandkit,arguments:b},async()=>{try{if(u.has(v.handler))return;await v.handler(...b),u.add(v.handler)}catch(B){B instanceof ve&&(y.debug(`Event propagation stopped for ${r}${a?` of namespace ${a}`:""}`),$=!0),y.error(`Error handling event ${r}${a?` of namespace ${a}`:""}`,B)}})}u.size===c.length&&m.length===0&&(this.loadedEvents.delete(t),y.info(`\u{1F9F9} Cleaned up completed once-only event ${r}${a?` of namespace ${a}`:""}`))},"onceHandler");this.loadedEvents.set(t,{...n,mainListener:m.length>0?{handler:p,once:!1}:void 0,executedOnceListeners:u}),a?(m.length>0&&this.commandkit.events.on(a,r,p),c.length>0&&this.commandkit.events.once(a,r,C)):(m.length>0&&e.on(r,p),c.length>0&&e.once(r,C)),y.info(`\u{1F50C} Registered event ${r}${a?` of namespace ${a}`:""} (${m.length} regular, ${c.length} once-only)`)}}unregisterAllClientListeners(){let e=this.commandkit.client;for(let[t,{name:n,mainListener:r,namespace:s}]of this.loadedEvents.entries())r?s?this.commandkit.events.off(s,n,r.handler):e.off(n,r.handler):s?this.commandkit.events.removeAllListeners(s,n):e.removeAllListeners(n),this.loadedEvents.delete(t),y.info(`\u{1F5D1}\uFE0F Unregistered event ${n}${s?` of namespace ${s}`:""}`)}};i(Zt,"AppEventsHandler");var st=Zt;var Zn=require("fs"),er=require("path");var Vr=require("rimraf"),en=require("path"),Pe=ee(require("fs"));var Xn=require("child_process");var j;function qr(o){process.stdout.write(o),process.stdout.write(`
15
- `)}i(qr,"write");function Yn(o){qr(x.red(`Error: ${o}`)),process.exit(1)}i(Yn,"panic");async function zr(o){return/\.(c|m)?tsx?$/.test(o)?(process.features.typescript||await Yr(),!0):!1}i(zr,"ensureTypeScript");var ye;function Jr(){if(ye)return ye;let o={"yarn.lock":"yarn","pnpm-lock.yaml":"pnpm","package-lock.json":"npm","bun.lock":"bun","bun.lockb":"bun"};for(let[e,t]of Object.entries(o))if(Pe.default.existsSync((0,en.join)(process.cwd(),e))){ye=t;break}return ye||(ye="npm"),ye}i(Jr,"detectPackageManager");async function Yr(o){if(j)return j;try{j=await import("typescript")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="MODULE_NOT_FOUND")try{let t=Jr();return(0,Xn.execSync)(`${t} add typescript`,{stdio:"inherit",cwd:process.cwd()}),console.log(x.cyan("TypeScript has been installed automatically, restarting...")),j=await import("typescript"),j}catch{Yn("TypeScript is not installed and could not be installed automatically. Please install it manually.")}Yn(e||"TypeScript must be installed to use TypeScript config files.")}return j}i(Yr,"loadTypeScript");async function Qn(o){if(await Xr(o),await zr(o)&&j){let{transpileModule:n}=j,r=Pe.default.readFileSync(o,"utf8"),{outputText:s}=n(r,{compilerOptions:{module:j.ModuleKind.ESNext,target:j.ScriptTarget.ESNext,moduleResolution:j.ModuleResolutionKind.NodeNext},fileName:o}),a=await nt(),c=(0,en.join)(a,"compiled-commandkit.config.mjs");Pe.default.writeFileSync(c,s),o=c}return await import(`file://${o}`).then(n=>n.default||n)}i(Qn,"loadConfigFileFromPath");async function Xr(o){if(!Pe.default.existsSync(o))throw new Error(`File not found: ${o}`)}i(Xr,"ensureExists");var Qr=["commandkit.config.js","commandkit.config.mjs","commandkit.config.cjs","commandkit.config.ts"];function Zr(o){return Qr.map(e=>(0,er.join)(o,e))}i(Zr,"getPossibleConfigPaths");function eo(o){let e=Zr(o);for(let t of e)if((0,Zn.existsSync)(t))return{path:t,isTypeScript:/\.ts$/.test(t)};return null}i(eo,"findConfigFile");var tn=null;async function tr(o=process.cwd()){if(tn)return tn;let e=eo(o);if(!e)return ze();let t=await Qn(e.path);return tn=t,t}i(tr,"loadConfigFile");function nr(o){G&&process.on("message",async e=>{if(typeof e!="object"||e===null)return;let{event:t,path:n,id:r}=e;if(!t)return;process.env.COMMANDKIT_DEBUG_HMR==="true"&&y.info(`Received HMR event: ${t}${n?` for ${n}`:""}`);let s=!1,a=!1,c=!1,m={accept(){s=!0},preventDefault(){a=!0},path:n,event:t};try{if(await o.plugins.execute(async(u,p)=>{var C;s||await((C=p.performHMR)==null?void 0:C.call(p,u,m))}),a)return;switch(t){case Ge.ReloadCommands:o.commandHandler.reloadCommands(),c=!0;break;case Ge.ReloadEvents:o.eventHandler.reloadEvents(),c=!0;break;case Ge.Unknown:c=!1;break;default:break}}finally{r&&process.send&&process.send({type:"commandkit-hmr-ack",id:r,handled:c||s})}})}i(nr,"registerDevHooks");var ar=require("fs");var rr=ee(require("events"));var nn=class nn{constructor(e){this.commandkit=e}emitter=new rr.default;to(e){return{on:this.on.bind(this,e),off:this.off.bind(this,e),once:this.once.bind(this,e),emit:this.emit.bind(this,e),removeAllListeners:this.removeAllListeners.bind(this,e)}}on(e,t,n){this.emitter.on(`${e}:${t}`,n)}off(e,t,n){this.emitter.off(`${e}:${t}`,n)}once(e,t,n){this.emitter.once(`${e}:${t}`,n)}emit(e,t,...n){return this.emitter.emit(`${e}:${t}`,...n)}removeAllListeners(e,t){t?this.emitter.removeAllListeners(`${e}:${t}`):this.emitter.removeAllListeners(e)}};i(nn,"CommandKitEventsChannel");var lt=nn;var or=require("discord.js");var rn=class rn extends or.Collection{};i(rn,"FlagStore");var ct=rn;var to,on=new Set,an=new Set;var be,H,sr,lr,cr,mr,ur,V=class V extends ir.default{constructor(t){if(V.instance&&process.emitWarning("CommandKit instance already exists. Having multiple instance in same project is discouraged and it may lead to unexpected behavior.",{code:"MultiInstanceWarning"}),!t.client)throw new Error(x.red('"client" is required when instantiating CommandKit.'));super();this.options=t;h(this,H);h(this,be,!1);E(this,"eventInterceptor");E(this,"config",{defaultLocale:ut.Locale.EnglishUS,getMessageCommandPrefix:i(()=>"!","getMessageCommandPrefix")});E(this,"store",new Map);E(this,"flags",new ct);E(this,"commandsRouter");E(this,"eventsRouter");E(this,"commandHandler",new rt(this));E(this,"eventHandler",new st(this));E(this,"plugins");E(this,"events",new lt(this));this.plugins=new Ve(this),V.instance||(V.instance=this),to=V.instance,g(this,H,sr).call(this)}async start(t){if(!l(this,be)){if(!this.options.client)throw new Error(x.red('"client" is required when starting CommandKit.'));if(this.eventInterceptor=new Ne(this.client),G)try{nr(this),await nt()}catch(n){process.env.COMMANDKIT_DEBUG_TYPEGEN&&y.error(n)}if(await this.loadPlugins(),await g(this,H,cr).call(this),this.commandHandler.registerCommandHandler(),this.incrementClientListenersCount(),t!==!1&&!this.options.client.isReady()){this.client.once(ut.Events.ClientReady,async()=>{await this.commandHandler.registrar.register()}),await this.plugins.execute((r,s)=>{var a;return(a=s.onBeforeClientLogin)==null?void 0:a.call(s,r)});let n=t??this.options.client.token??process.env.TOKEN??process.env.DISCORD_TOKEN;await this.options.client.login(n),await this.plugins.execute((r,s)=>{var a;return(a=s.onAfterClientLogin)==null?void 0:a.call(s,r)})}else this.options.client.isReady()&&await this.commandHandler.registrar.register();f(this,be,!0),await g(this,H,lr).call(this)}}async loadPlugins(){let n=(await tr()).plugins.flat(2).filter(r=>Kn(r));if(n.length)for(let r of n)await this.plugins.softRegisterPlugin(r)}get started(){return l(this,be)}setPrefixResolver(t){return this.config.getMessageCommandPrefix=t,this}setDefaultLocale(t){return this.config.defaultLocale=t,this}get client(){return this.options.client}async reloadCommands(){await this.commandHandler.reloadCommands()}async reloadEvents(){await this.eventHandler.reloadEvents()}incrementClientListenersCount(){this.options.client.setMaxListeners(this.options.client.getMaxListeners()+1)}decrementClientListenersCount(){this.options.client.setMaxListeners(this.options.client.getMaxListeners()-1)}getAppDirectory(){return Bn()}getPath(t){let n=this.getAppDirectory();if(!n)return null;switch(t){case"commands":return(0,sn.join)(n,"commands");case"events":return(0,sn.join)(n,"events");default:return t}}};be=new WeakMap,H=new WeakSet,sr=i(async function(){for(let t of on)try{await t(this)}catch(n){y.error("Error while executing bootstrap hook: ",n)}finally{on.delete(t)}on.clear()},"#bootstrapHooks"),lr=i(async function(){for(let t of an)try{await t(this)}catch(n){y.error("Error while executing application bootstrap hook: ",n)}finally{an.delete(t)}an.clear()},"#applicationBootstrapHooks"),cr=i(async function(){if(!this.getAppDirectory())return;let n=this.getPath("commands"),r=this.getPath("events");this.commandsRouter=new ot({entrypoint:n}),await this.plugins.execute((s,a)=>a.onCommandsRouterInit(s)),this.eventsRouter=new at({entrypoints:[r]}),await this.plugins.execute((s,a)=>a.onEventsRouterInit(s)),await g(this,H,ur).call(this),await g(this,H,mr).call(this)},"#init"),mr=i(async function(){if(this.commandsRouter.isValidPath()){let t=await this.commandsRouter.scan();G&&(0,ar.writeFileSync)("./.commandkit/commands.json",JSON.stringify(t,null,2))}await this.commandHandler.loadCommands(),this.commandHandler.printBanner()},"#initCommands"),ur=i(async function(){this.eventsRouter.isValidPath()&&await this.eventsRouter.scan(),await this.eventHandler.loadEvents()},"#initEvents"),i(V,"CommandKit"),E(V,"createElement",Sn),E(V,"Fragment",In),E(V,"instance");var mt=V;var no=Symbol("commandkitCommandWorker"),Ke=new dr.AsyncLocalStorage;function F(o){return Ke.exit(o)}i(F,"exitContext");function tt(o,e){return Reflect.set(o,no,!0),Ke.run(o,e)}i(tt,"provideContext");function Nn(o,e,t){return i((...r)=>tt(o,async()=>{try{return await e(...r)}catch(s){je(s)||o.setExecutionError(s)}finally{typeof t=="function"&&setImmediate(async()=>{try{await t(...r)}catch{}})}}),"_fn")}i(Nn,"makeContextAwareFunction");function U(o=!1){var t;let e=((t=Ke.getStore())==null?void 0:t.commandkit)??mt.instance;if(!e&&o)throw new Error("CommandKit instance not found.");return e}i(U,"getCommandKit");function k(){return Ke.getStore()}i(k,"getContext");function Hn(){let o=Ke.getStore();if(!o)throw new Error("No commandkit environment found. Please make sure you are inside commandkit handler.");return o}i(Hn,"useEnvironment");var de,T,pe,X,pr,fr,ln,cn=class cn extends pt.ChannelSelectMenuBuilder{constructor(){super(...arguments);h(this,X);h(this,de,null);h(this,T,{autoReset:!1,time:5*60*1e3,once:!0});h(this,pe,null)}onSelect(t,n){var r,s,a,c;if(!t)throw new TypeError('Cannot setup "onClick" without a handler function parameter.');return l(this,de)&&g(this,X,ln).call(this),f(this,de,t),n&&f(this,T,{autoReset:n.autoReset??((r=l(this,T))==null?void 0:r.autoReset)??!0,time:n.time??((s=l(this,T))==null?void 0:s.time)??5*60*1e3,filter:n.filter??((a=l(this,T))==null?void 0:a.filter),onEnd:n.onEnd??((c=l(this,T))==null?void 0:c.onEnd)}),g(this,X,fr).call(this),this}onEnd(t){if(!t)throw new TypeError('Cannot setup "onEnd" without a handler function parameter.');return l(this,T)??f(this,T,{}),l(this,T).onEnd=t,this}onError(t){if(!t)throw new TypeError('Cannot setup "onError" without a handler function parameter.');return l(this,T)??f(this,T,{}),l(this,T).onError=t,this}filter(t){return l(this,T)??f(this,T,{autoReset:!0,time:5*60*1e3}),l(this,T).filter=t,this}get customId(){return this.data.custom_id??this.data.customId}dispose(){return g(this,X,ln).call(this),this}};de=new WeakMap,T=new WeakMap,pe=new WeakMap,X=new WeakSet,pr=i(function(){let t=k();return t?F(()=>t.commandkit.eventInterceptor):U(!0).eventInterceptor},"#getEventInterceptor"),fr=i(function(){if(!l(this,T))return;if(!this.customId)throw new TypeError("Cannot setup an modal collector without a custom ID.");let t=g(this,X,pr).call(this);t&&f(this,pe,t.subscribe(pt.Events.InteractionCreate,async n=>{var m,u;if(!n.isChannelSelectMenu())return;let r=this.customId??null,s=n.customId;if(r&&s!==r)return;let a=(m=l(this,T))==null?void 0:m.filter;if(a&&!await a(n))return;let c=l(this,de);return c?c(n,this):(u=l(this,pe))==null?void 0:u.call(this)},l(this,T)))},"#setupCollector"),ln=i(function(){var t;(t=l(this,pe))==null||t.call(this),f(this,pe,null),f(this,de,null),f(this,T,null)},"#destroyCollector"),i(cn,"ChannelSelectMenuKit");var dt=cn;function De(o,e){o.setCustomId(e.customId??`select-menu::${crypto.randomUUID()}`),e.maxValues!=null&&o.setMaxValues(e.maxValues),e.minValues!=null&&o.setMinValues(e.minValues),e.placeholder&&o.setPlaceholder(e.placeholder),e.disabled&&o.setDisabled(e.disabled),e.onEnd&&o.onEnd(e.onEnd),e.onError&&o.onError(e.onError),e.onSelect&&o.onSelect(e.onSelect,e.options)}i(De,"applyPropsToBuilder");function ro(o){let e=new Te;return De(e,o),o.children&&e.setOptions(Array.isArray(o.children)?o.children:[o.children]),o.children&&e.setOptions(Array.isArray(o.children)?o.children:[o.children]),e}i(ro,"StringSelectMenu");function oo(o){return new hr.StringSelectMenuOptionBuilder(o)}i(oo,"StringSelectMenuOption");function io(o){let e=new Oe;return De(e,o),o.defaultValues&&e.setDefaultUsers(Array.isArray(o.defaultValues)?o.defaultValues:[o.defaultValues]),e}i(io,"UserSelectMenu");function ao(o){let e=new $e;return De(e,o),o.defaultValues&&e.setDefaultRoles(Array.isArray(o.defaultValues)?o.defaultValues:[o.defaultValues]),e}i(ao,"RoleSelectMenu");function so(o){let e=new ke;return De(e,o),o.defaultValues&&e.setDefaultValues(Array.isArray(o.defaultValues)?o.defaultValues:[o.defaultValues]),e}i(so,"MentionableSelectMenu");function lo(o){let e=new dt;return De(e,o),o.defaultValues&&e.setDefaultChannels(Array.isArray(o.defaultValues)?o.defaultValues:[o.defaultValues]),o.channelTypes&&e.setChannelTypes(Array.isArray(o.channelTypes)?o.channelTypes:[o.channelTypes]),e}i(lo,"ChannelSelectMenu");0&&(module.exports={ChannelSelectMenu,MentionableSelectMenu,RoleSelectMenu,StringSelectMenu,StringSelectMenuOption,UserSelectMenu});
14
+ `,t=(0,Q.join)(process.cwd(),"node_modules","commandkit-types");if(!(0,Gn.existsSync)(t))return;let n=(0,Q.join)(t,"command.d.ts");await(0,Z.writeFile)(n,e,{encoding:"utf-8"})}i(jn,"rewriteCommandDeclaration");var Hr={command:i(o=>o instanceof D.SlashCommandBuilder||o instanceof D.ContextMenuCommandBuilder||o&&typeof o=="object","command"),chatInput:i(o=>typeof o=="function","chatInput"),autocomplete:i(o=>typeof o=="function","autocomplete"),message:i(o=>typeof o=="function","message"),messageContextMenu:i(o=>typeof o=="function","messageContextMenu"),userContextMenu:i(o=>typeof o=="function","userContextMenu")},Gr={beforeExecute:i(o=>typeof o=="function","beforeExecute"),afterExecute:i(o=>typeof o=="function","afterExecute")},qt=class qt{constructor(e){this.commandkit=e;this.registrar=new Ye(this.commandkit)}loadedCommands=new D.Collection;loadedMiddlewares=new D.Collection;commandNameToId=new Map;subcommandPathToId=new Map;registrar;onInteraction=null;onMessageCreate=null;commandRunner=new Ze(this);externalCommandData=new D.Collection;externalMiddlewareData=new D.Collection;printBanner(){let e=crypto.randomUUID(),t=this.getCommandsArray().reduce((m,u)=>{let p=u.command.category||e;return m[p]=m[p]||[],m[p].push(u),m},{});console.log(x.green(`Loaded ${x.magenta(this.loadedCommands.size.toString())} commands:`));let n=Object.keys(t).sort(),r={};n.forEach(m=>{if(m!==e&&m.includes(":")){let u=m.split(":"),p=null;for(let C=u.length-1;C>0;C--){let b=u.slice(0,C).join(":");if(n.includes(b)){p=b;break}}p&&(r[p]=r[p]||[],r[p].push(m))}});let s=new Set,a=i((m,u="",p=!1,C="")=>{if(s.has(m))return;s.add(m);let b=t[m],F=r[m]&&r[m].length>0,A=p?"\u2514\u2500":"\u251C\u2500",I=C+(p?" ":"\u2502 ");if(m!==e){let w=m.includes(":")?m.split(":").pop():m;console.log(x.cyan(`${u}${A} ${x.bold(w)}`))}if(b.forEach((w,B)=>{let ft=B===b.length-1&&!F?"\u2514\u2500":"\u251C\u2500",Cr=m!==e?I:u,gr=w.data.command.name,xr=w.command.middlewares.length>0?x.magenta(" (\u03BB)"):"";console.log(`${x.green(`${Cr}${ft}`)} ${x.yellow(gr)}${xr}`)}),F){let w=r[m].sort();w.forEach((B,we)=>{let ft=we===w.length-1;a(B,I,ft,I)})}},"printCategory"),c=n.filter(m=>{if(m===e)return!0;if(m.includes(":")){let u=m.split(":");for(let p=1;p<u.length;p++){let C=u.slice(0,p).join(":");if(n.includes(C))return!1}return!0}return!0}).sort();c.forEach((m,u)=>{let p=u===c.length-1;a(m,"",p)})}getCommandsArray(){return Array.from(this.loadedCommands.values())}registerCommandHandler(){this.onInteraction??=async e=>{if(await this.commandkit.plugins.execute(async(s,a)=>a.onBeforeInteraction(s,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,s)=>s.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(D.Events.InteractionCreate,this.onInteraction),this.commandkit.client.on(D.Events.MessageCreate,this.onMessageCreate)}async prepareCommandRun(e,t){var c;let n;if(!t)if(e instanceof D.Message){if(e.author.bot)return null;let m=await this.commandkit.config.getMessageCommandPrefix(e);n=new Je(e,Array.isArray(m)?m:[m],u=>{var F,A;let p=this.commandNameToId.get(u);if(!p)return null;let C=this.loadedCommands.get(p);return!C||e.guildId&&((F=C.guilds)!=null&&F.length)&&!C.guilds.includes(e.guildId)?null:((A=("toJSON"in C.data.command?C.data.command.toJSON():C.data.command).options)==null?void 0:A.reduce((I,w)=>(I[w.name]=w.type,I),{}))??{}});try{t=n.getFullCommand().split(" ")[0]}catch(u){return _(u,M.InvalidCommandPrefix)||y.error(u),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 s=this.loadedCommands.get(r);if(!s||(e instanceof D.CommandInteraction||e instanceof D.AutocompleteInteraction)&&e.guildId&&((c=s.guilds)!=null&&c.length)&&!s.guilds.includes(e.guildId))return null;let a=[];for(let m of s.command.middlewares){let u=this.loadedMiddlewares.get(m);u&&a.push(u)}return{command:s,middlewares:a,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((a,c)=>c.onBeforeCommandsLoad(a));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,s=this.externalMiddlewareData.size?n.concat(this.externalMiddlewareData):n;for(let[a,c]of s)await this.loadMiddleware(a,c);for(let[a,c]of r)await this.loadCommand(a,c);G&&await jn(`type CommandTypeData = ${Array.from(this.loadedCommands.mapValues(a=>JSON.stringify(a.command.name)).values()).join(" | ")}`),await this.commandkit.plugins.execute((a,c)=>c.onAfterCommandsLoad(a))}async loadMiddleware(e,t){try{let n=await import(`${Me(t.path)}?t=${Date.now()}`),r=0;for(let[s,a]of Object.entries(Gr)){if(n[s]&&!await a(n[s]))throw new Error(`Invalid export for middleware ${e}: ${s} does not match expected value`);n[s]&&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){y.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(`${Me(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[a,c]of Object.entries(Hr))if(a!=="command"&&n[a]&&r++,n[a]&&!await c(n[a]))throw new Error(`Invalid export for command ${t.name}: ${a} 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 s=n.command;await this.commandkit.plugins.execute(async(a,c)=>{let m=await c.prepareCommand(a,s);m&&(s=m)}),this.loadedCommands.set(e,{command:t,guilds:n.guilds,data:{...n,command:"toJSON"in s?s.toJSON():s}}),this.commandNameToId.set(t.name,e)}catch(n){y.error(`Failed to load command ${t.name} (${e})`,n)}}};i(qt,"AppCommandHandler");var rt=qt;var zt=require("discord.js"),Vn=require("fs"),Jt=require("fs/promises"),N=require("path");var jr=/^\+middleware\.(m|c)?(j|t)sx?$/,_n=/^\+([^+().][^().]*)\.middleware\.(m|c)?(j|t)sx?$/,Wn=/^\+global-middleware\.(m|c)?(j|t)sx?$/,_r=/^([^+().][^().]*)\.(m|c)?(j|t)sx?$/,Wr=/^\(.+\)$/,Yt=class Yt{constructor(e){this.options=e}commands=new zt.Collection;middlewares=new zt.Collection;populate(e){for(let[t,n]of Object.entries(e.commands))this.commands.set(t,n);for(let[t,n]of Object.entries(e.middlewares))this.middlewares.set(t,n)}isValidPath(){return(0,Vn.existsSync)(this.options.entrypoint)}isCommand(e){return _r.test(e)}isMiddleware(e){return jr.test(e)||Wn.test(e)||_n.test(e)}isCategory(e){return Wr.test(e)}clear(){this.commands.clear(),this.middlewares.clear()}async scan(){let e=await(0,Jt.readdir)(this.options.entrypoint,{withFileTypes:!0});for(let t of e){if(t.name.startsWith("_"))continue;let n=(0,N.join)(this.options.entrypoint,t.name);if(t.isDirectory()){let r=this.isCategory(t.name)?t.name.slice(1,-1):null;await this.traverse(n,r)}else await this.handle(t)}return await this.applyMiddlewares(),this.toJSON()}getData(){return{commands:this.commands,middlewares:this.middlewares}}toJSON(){return{commands:Object.fromEntries(this.commands.entries()),middlewares:Object.fromEntries(this.middlewares.entries())}}async traverse(e,t){let n=await(0,Jt.readdir)(e,{withFileTypes:!0});for(let r of n)if(!r.name.startsWith("_")){if(r.isFile())(this.isCommand(r.name)||this.isMiddleware(r.name))&&await this.handle(r,t);else if(r.isDirectory()&&this.isCategory(r.name)&&t){let s=this.isCategory(r.name)?`${t}:${r.name.slice(1,-1)}`:null;await this.traverse((0,N.join)(e,r.name),s)}}}async handle(e,t=null){let n=e.name,r=(0,N.join)(e.parentPath,e.name);if(this.isCommand(n)){let s={id:crypto.randomUUID(),name:(0,N.basename)(r,(0,N.extname)(r)),path:r,category:t,parentPath:e.parentPath,relativePath:this.replaceEntrypoint(r),middlewares:[]};this.commands.set(s.id,s)}else if(this.isMiddleware(n)){let s={id:crypto.randomUUID(),name:(0,N.basename)(r,(0,N.extname)(r)),path:r,relativePath:this.replaceEntrypoint(r),parentPath:e.parentPath,global:Wn.test(n),command:_n.test(n)&&n.split(".")[0]||null};this.middlewares.set(s.id,s)}}applyMiddlewares(){this.commands.forEach(e=>{let t=e.parentPath,n=Array.from(this.middlewares.values()).filter(r=>r.global?!0:r.command?r.command===e.name:r.parentPath===t).map(r=>r.id);e.middlewares=Array.from(new Set([...e.middlewares,...n]))})}replaceEntrypoint(e){return(0,N.normalize)(e).replace(this.options.entrypoint,"")}};i(Yt,"CommandsRouter");var ot=Yt;var qn=require("discord.js"),zn=require("fs"),Xt=require("fs/promises"),it=require("path");var Qt=class Qt{constructor(e){this.options=e;var t;if(e.entrypoints&&(e.entrypoints=Array.from(new Set(e.entrypoints))),!((t=e.entrypoints)!=null&&t.length))throw new Error("Entrypoint directory must be provided")}events=new qn.Collection;addEntrypoints(e){this.options.entrypoints=Array.from(new Set([...this.options.entrypoints,...e]))}match(e){return this.events.get(e)??null}get entrypoints(){return this.options.entrypoints}isValidPath(){return this.entrypoints.every(e=>(0,zn.existsSync)(e))}clear(){this.events.clear()}async reload(){return this.clear(),this.scan()}async scan(){for(let e of this.entrypoints){let t=await(0,Xt.readdir)(e,{withFileTypes:!0});for(let n of t)if(n.isDirectory()){let r=(0,it.join)(e,n.name);await this.scanEvent(n.name,r,null,[],!0)}}return Object.fromEntries(this.events)}toJSON(){return Object.fromEntries(this.events)}async scanEvent(e,t,n=null,r=[],s=!1){let a=await(0,Xt.readdir)(t,{withFileTypes:!0}),c=s&&/^\(.+\)$/.test(e),m=c?e.slice(1,-1):n??null;a.sort((u,p)=>u.name.localeCompare(p.name));for(let u of a)if(!u.name.startsWith("_")){if(u.isDirectory()){let p=(0,it.join)(t,u.name);await this.scanEvent(u.name,p,m,r);continue}u.isFile()&&/\.(m|c)?(j|t)sx?$/.test(u.name)&&r.push((0,it.join)(u.parentPath,u.name))}if(!c){let u=this.events.get(e);if(u){u.listeners=Array.from(new Set([...u.listeners,...r]));return}this.events.set(e,{event:e,path:t,listeners:r,namespace:m})}}};i(Qt,"EventsRouter");var at=Qt;var Jn=require("discord.js");var Zt=class Zt{constructor(e){this.commandkit=e}loadedEvents=new Jn.Collection;getEvents(){return this.loadedEvents.size===0?[]:this.loadedEvents.toJSON().map(t=>({name:t.name,namespace:t.namespace,onceListeners:t.listeners.filter(n=>n.once).length,regularListeners:t.listeners.filter(n=>!n.once).length,metadata:t.event}))}async reloadEvents(){this.unregisterAll(),await this.loadEvents()}async loadEvents(){await this.commandkit.plugins.execute((n,r)=>r.onBeforeEventsLoad(n));let t=await this.commandkit.eventsRouter.scan();for(let n of Object.values(t)){let r=[];for(let c of n.listeners){let m=await import(Me(c,!0));(!m.default||typeof m.default!="function")&&y.error(`Event handler for ${n.event}${n.namespace?` of namespace ${n.namespace}`:""} does not have a default export or is not a function`),r.push({handler:m.default,once:!!m.once})}let s=r.length;s||y.warn(`Event ${n.event}${n.namespace?` of namespace ${n.namespace}`:""} does not have any listeners`);let a=`${n.namespace?`${n.namespace}:`:""}${n.event}`;this.loadedEvents.set(a,{name:n.event,namespace:n.namespace,event:n,listeners:r}),y.info(`\u2728 Loaded event ${n.event}${n.namespace?` of namespace ${n.namespace}`:""} with ${s} listener${s===1?"":"s"}`)}this.registerAllClientEvents(),await this.commandkit.plugins.execute((n,r)=>r.onAfterEventsLoad(n))}unregisterAll(){this.unregisterAllClientListeners(),this.loadedEvents.clear()}registerAllClientEvents(){let e=this.commandkit.client;for(let[t,n]of this.loadedEvents.entries()){let{name:r,listeners:s,namespace:a}=n,c=s.filter(b=>b.once),m=s.filter(b=>!b.once),u=new Set,p=i(async(...b)=>{let F=!1,A={name:r,args:b,namespace:a??null,once:!1,metadata:n.event,accept(){F||(F=!0)}};await this.commandkit.plugins.execute(async(I,w)=>{var B;if(!F)return(B=w.willEmitEvent)==null?void 0:B.call(w,I,A)}).catch(Object),await Bt({event:r,namespace:a??null,data:n.event,commandkit:this.commandkit,arguments:b},async()=>{for(let I of m)try{await I.handler(...b)}catch(w){if(w instanceof ve){y.debug(`Event propagation stopped for ${r}${a?` of namespace ${a}`:""}`);break}y.error(`Error handling event ${r}${a?` of namespace ${a}`:""}`,w)}})},"mainHandler"),C=i(async(...b)=>{let F=!1,A=!1,I={name:r,args:b,namespace:a??null,once:!0,metadata:n.event,accept(){A||(A=!0)}};await this.commandkit.plugins.execute(async(w,B)=>{var we;if(!A)return(we=B.willEmitEvent)==null?void 0:we.call(B,w,I)}).catch(Object);for(let w of c){if(F)break;await Bt({event:r,namespace:a??null,data:n.event,commandkit:this.commandkit,arguments:b},async()=>{try{if(u.has(w.handler))return;await w.handler(...b),u.add(w.handler)}catch(B){B instanceof ve&&(y.debug(`Event propagation stopped for ${r}${a?` of namespace ${a}`:""}`),F=!0),y.error(`Error handling event ${r}${a?` of namespace ${a}`:""}`,B)}})}u.size===c.length&&m.length===0&&(this.loadedEvents.delete(t),y.info(`\u{1F9F9} Cleaned up completed once-only event ${r}${a?` of namespace ${a}`:""}`))},"onceHandler");this.loadedEvents.set(t,{...n,mainListener:m.length>0?{handler:p,once:!1}:void 0,executedOnceListeners:u}),a?(m.length>0&&this.commandkit.events.on(a,r,p),c.length>0&&this.commandkit.events.once(a,r,C)):(m.length>0&&e.on(r,p),c.length>0&&e.once(r,C)),y.info(`\u{1F50C} Registered event ${r}${a?` of namespace ${a}`:""} (${m.length} regular, ${c.length} once-only)`)}}unregisterAllClientListeners(){let e=this.commandkit.client;for(let[t,{name:n,mainListener:r,namespace:s}]of this.loadedEvents.entries())r?s?this.commandkit.events.off(s,n,r.handler):e.off(n,r.handler):s?this.commandkit.events.removeAllListeners(s,n):e.removeAllListeners(n),this.loadedEvents.delete(t),y.info(`\u{1F5D1}\uFE0F Unregistered event ${n}${s?` of namespace ${s}`:""}`)}};i(Zt,"AppEventsHandler");var st=Zt;var Zn=require("fs"),er=require("path");var Vr=require("rimraf"),en=require("path"),be=ee(require("fs"));var Xn=require("child_process");var j;function qr(o){process.stdout.write(o),process.stdout.write(`
15
+ `)}i(qr,"write");function Yn(o){qr(x.red(`Error: ${o}`)),process.exit(1)}i(Yn,"panic");async function zr(o){return/\.(c|m)?tsx?$/.test(o)?(process.features.typescript||await Yr(),!0):!1}i(zr,"ensureTypeScript");var ye;function Jr(){if(ye)return ye;let o={"yarn.lock":"yarn","pnpm-lock.yaml":"pnpm","package-lock.json":"npm","bun.lock":"bun","bun.lockb":"bun"};for(let[e,t]of Object.entries(o))if(be.default.existsSync((0,en.join)(process.cwd(),e))){ye=t;break}return ye||(ye="npm"),ye}i(Jr,"detectPackageManager");async function Yr(o){if(j)return j;try{j=await import("typescript")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="MODULE_NOT_FOUND")try{let t=Jr();return(0,Xn.execSync)(`${t} add typescript`,{stdio:"inherit",cwd:process.cwd()}),console.log(x.cyan("TypeScript has been installed automatically, restarting...")),j=await import("typescript"),j}catch{Yn("TypeScript is not installed and could not be installed automatically. Please install it manually.")}Yn(e||"TypeScript must be installed to use TypeScript config files.")}return j}i(Yr,"loadTypeScript");async function Qn(o){await Xr(o);let e=await zr(o),t;if(e&&j){let{transpileModule:r}=j,s=be.default.readFileSync(o,"utf8"),{outputText:a}=r(s,{compilerOptions:{module:j.ModuleKind.ESNext,target:j.ScriptTarget.ESNext,moduleResolution:j.ModuleResolutionKind.NodeNext},fileName:o});await nt();let c=process.cwd(),m=(0,en.join)(c,"compiled-commandkit.config.mjs");be.default.writeFileSync(m,a),t=m,o=m}let n=await import(`file://${o}`).then(r=>r.default||r);if(t)try{be.default.unlinkSync(t)}catch{}return n}i(Qn,"loadConfigFileFromPath");async function Xr(o){if(!be.default.existsSync(o))throw new Error(`File not found: ${o}`)}i(Xr,"ensureExists");var Qr=["commandkit.config.js","commandkit.config.mjs","commandkit.config.cjs","commandkit.config.ts"];function Zr(o){return Qr.map(e=>(0,er.join)(o,e))}i(Zr,"getPossibleConfigPaths");function eo(o){let e=Zr(o);for(let t of e)if((0,Zn.existsSync)(t))return{path:t,isTypeScript:/\.ts$/.test(t)};return null}i(eo,"findConfigFile");var tn=null;async function tr(o=process.cwd()){if(tn)return tn;let e=eo(o);if(!e)return ze();let t=await Qn(e.path);return tn=t,t}i(tr,"loadConfigFile");function nr(o){G&&process.on("message",async e=>{if(typeof e!="object"||e===null)return;let{event:t,path:n,id:r}=e;if(!t)return;process.env.COMMANDKIT_DEBUG_HMR==="true"&&y.info(`Received HMR event: ${t}${n?` for ${n}`:""}`);let s=!1,a=!1,c=!1,m={accept(){s=!0},preventDefault(){a=!0},path:n,event:t};try{if(await o.plugins.execute(async(u,p)=>{var C;s||await((C=p.performHMR)==null?void 0:C.call(p,u,m))}),a)return;switch(t){case Ge.ReloadCommands:o.commandHandler.reloadCommands(),c=!0;break;case Ge.ReloadEvents:o.eventHandler.reloadEvents(),c=!0;break;case Ge.Unknown:c=!1;break;default:break}}finally{r&&process.send&&process.send({type:"commandkit-hmr-ack",id:r,handled:c||s})}})}i(nr,"registerDevHooks");var ar=require("fs");var rr=ee(require("events"));var nn=class nn{constructor(e){this.commandkit=e}emitter=new rr.default;to(e){return{on:this.on.bind(this,e),off:this.off.bind(this,e),once:this.once.bind(this,e),emit:this.emit.bind(this,e),removeAllListeners:this.removeAllListeners.bind(this,e)}}on(e,t,n){this.emitter.on(`${e}:${t}`,n)}off(e,t,n){this.emitter.off(`${e}:${t}`,n)}once(e,t,n){this.emitter.once(`${e}:${t}`,n)}emit(e,t,...n){return this.emitter.emit(`${e}:${t}`,...n)}removeAllListeners(e,t){t?this.emitter.removeAllListeners(`${e}:${t}`):this.emitter.removeAllListeners(e)}};i(nn,"CommandKitEventsChannel");var lt=nn;var or=require("discord.js");var rn=class rn extends or.Collection{};i(rn,"FlagStore");var ct=rn;var to,on=new Set,an=new Set;var Ee,H,sr,lr,cr,mr,ur,V=class V extends ir.default{constructor(t){if(V.instance&&process.emitWarning("CommandKit instance already exists. Having multiple instance in same project is discouraged and it may lead to unexpected behavior.",{code:"MultiInstanceWarning"}),!t.client)throw new Error(x.red('"client" is required when instantiating CommandKit.'));super();this.options=t;h(this,H);h(this,Ee,!1);E(this,"eventInterceptor");E(this,"config",{defaultLocale:ut.Locale.EnglishUS,getMessageCommandPrefix:i(()=>"!","getMessageCommandPrefix")});E(this,"store",new Map);E(this,"flags",new ct);E(this,"commandsRouter");E(this,"eventsRouter");E(this,"commandHandler",new rt(this));E(this,"eventHandler",new st(this));E(this,"plugins");E(this,"events",new lt(this));this.plugins=new Ve(this),V.instance||(V.instance=this),to=V.instance,g(this,H,sr).call(this)}async start(t){if(!l(this,Ee)){if(!this.options.client)throw new Error(x.red('"client" is required when starting CommandKit.'));if(this.eventInterceptor=new Ne(this.client),G)try{nr(this),await nt()}catch(n){process.env.COMMANDKIT_DEBUG_TYPEGEN&&y.error(n)}if(await this.loadPlugins(),await g(this,H,cr).call(this),this.commandHandler.registerCommandHandler(),this.incrementClientListenersCount(),t!==!1&&!this.options.client.isReady()){this.client.once(ut.Events.ClientReady,async()=>{await this.commandHandler.registrar.register()}),await this.plugins.execute((r,s)=>{var a;return(a=s.onBeforeClientLogin)==null?void 0:a.call(s,r)});let n=t??this.options.client.token??process.env.TOKEN??process.env.DISCORD_TOKEN;await this.options.client.login(n),await this.plugins.execute((r,s)=>{var a;return(a=s.onAfterClientLogin)==null?void 0:a.call(s,r)})}else this.options.client.isReady()&&await this.commandHandler.registrar.register();f(this,Ee,!0),await g(this,H,lr).call(this)}}async loadPlugins(){let n=(await tr()).plugins.flat(2).filter(r=>Kn(r));if(n.length)for(let r of n)await this.plugins.softRegisterPlugin(r)}get started(){return l(this,Ee)}setPrefixResolver(t){return this.config.getMessageCommandPrefix=t,this}setDefaultLocale(t){return this.config.defaultLocale=t,this}get client(){return this.options.client}async reloadCommands(){await this.commandHandler.reloadCommands()}async reloadEvents(){await this.eventHandler.reloadEvents()}incrementClientListenersCount(){this.options.client.setMaxListeners(this.options.client.getMaxListeners()+1)}decrementClientListenersCount(){this.options.client.setMaxListeners(this.options.client.getMaxListeners()-1)}getAppDirectory(){return Bn()}getPath(t){let n=this.getAppDirectory();if(!n)return null;switch(t){case"commands":return(0,sn.join)(n,"commands");case"events":return(0,sn.join)(n,"events");default:return t}}};Ee=new WeakMap,H=new WeakSet,sr=i(async function(){for(let t of on)try{await t(this)}catch(n){y.error("Error while executing bootstrap hook: ",n)}finally{on.delete(t)}on.clear()},"#bootstrapHooks"),lr=i(async function(){for(let t of an)try{await t(this)}catch(n){y.error("Error while executing application bootstrap hook: ",n)}finally{an.delete(t)}an.clear()},"#applicationBootstrapHooks"),cr=i(async function(){if(!this.getAppDirectory())return;let n=this.getPath("commands"),r=this.getPath("events");this.commandsRouter=new ot({entrypoint:n}),await this.plugins.execute((s,a)=>a.onCommandsRouterInit(s)),this.eventsRouter=new at({entrypoints:[r]}),await this.plugins.execute((s,a)=>a.onEventsRouterInit(s)),await g(this,H,ur).call(this),await g(this,H,mr).call(this)},"#init"),mr=i(async function(){if(this.commandsRouter.isValidPath()){let t=await this.commandsRouter.scan();G&&(0,ar.writeFileSync)("./.commandkit/commands.json",JSON.stringify(t,null,2))}await this.commandHandler.loadCommands(),this.commandHandler.printBanner()},"#initCommands"),ur=i(async function(){this.eventsRouter.isValidPath()&&await this.eventsRouter.scan(),await this.eventHandler.loadEvents()},"#initEvents"),i(V,"CommandKit"),E(V,"createElement",Sn),E(V,"Fragment",In),E(V,"instance");var mt=V;var no=Symbol("commandkitCommandWorker"),Ke=new dr.AsyncLocalStorage;function $(o){return Ke.exit(o)}i($,"exitContext");function tt(o,e){return Reflect.set(o,no,!0),Ke.run(o,e)}i(tt,"provideContext");function Nn(o,e,t){return i((...r)=>tt(o,async()=>{try{return await e(...r)}catch(s){je(s)||o.setExecutionError(s)}finally{typeof t=="function"&&setImmediate(async()=>{try{await t(...r)}catch{}})}}),"_fn")}i(Nn,"makeContextAwareFunction");function U(o=!1){var t;let e=((t=Ke.getStore())==null?void 0:t.commandkit)??mt.instance;if(!e&&o)throw new Error("CommandKit instance not found.");return e}i(U,"getCommandKit");function k(){return Ke.getStore()}i(k,"getContext");function Hn(){let o=Ke.getStore();if(!o)throw new Error("No commandkit environment found. Please make sure you are inside commandkit handler.");return o}i(Hn,"useEnvironment");var de,T,pe,X,pr,fr,ln,cn=class cn extends pt.ChannelSelectMenuBuilder{constructor(){super(...arguments);h(this,X);h(this,de,null);h(this,T,{autoReset:!1,time:5*60*1e3,once:!0});h(this,pe,null)}onSelect(t,n){var r,s,a,c;if(!t)throw new TypeError('Cannot setup "onClick" without a handler function parameter.');return l(this,de)&&g(this,X,ln).call(this),f(this,de,t),n&&f(this,T,{autoReset:n.autoReset??((r=l(this,T))==null?void 0:r.autoReset)??!0,time:n.time??((s=l(this,T))==null?void 0:s.time)??5*60*1e3,filter:n.filter??((a=l(this,T))==null?void 0:a.filter),onEnd:n.onEnd??((c=l(this,T))==null?void 0:c.onEnd)}),g(this,X,fr).call(this),this}onEnd(t){if(!t)throw new TypeError('Cannot setup "onEnd" without a handler function parameter.');return l(this,T)??f(this,T,{}),l(this,T).onEnd=t,this}onError(t){if(!t)throw new TypeError('Cannot setup "onError" without a handler function parameter.');return l(this,T)??f(this,T,{}),l(this,T).onError=t,this}filter(t){return l(this,T)??f(this,T,{autoReset:!0,time:5*60*1e3}),l(this,T).filter=t,this}get customId(){return this.data.custom_id??this.data.customId}dispose(){return g(this,X,ln).call(this),this}};de=new WeakMap,T=new WeakMap,pe=new WeakMap,X=new WeakSet,pr=i(function(){let t=k();return t?$(()=>t.commandkit.eventInterceptor):U(!0).eventInterceptor},"#getEventInterceptor"),fr=i(function(){if(!l(this,T))return;if(!this.customId)throw new TypeError("Cannot setup an modal collector without a custom ID.");let t=g(this,X,pr).call(this);t&&f(this,pe,t.subscribe(pt.Events.InteractionCreate,async n=>{var m,u;if(!n.isChannelSelectMenu())return;let r=this.customId??null,s=n.customId;if(r&&s!==r)return;let a=(m=l(this,T))==null?void 0:m.filter;if(a&&!await a(n))return;let c=l(this,de);return c?c(n,this):(u=l(this,pe))==null?void 0:u.call(this)},l(this,T)))},"#setupCollector"),ln=i(function(){var t;(t=l(this,pe))==null||t.call(this),f(this,pe,null),f(this,de,null),f(this,T,null)},"#destroyCollector"),i(cn,"ChannelSelectMenuKit");var dt=cn;function De(o,e){o.setCustomId(e.customId??`select-menu::${crypto.randomUUID()}`),e.maxValues!=null&&o.setMaxValues(e.maxValues),e.minValues!=null&&o.setMinValues(e.minValues),e.placeholder&&o.setPlaceholder(e.placeholder),e.disabled&&o.setDisabled(e.disabled),e.onEnd&&o.onEnd(e.onEnd),e.onError&&o.onError(e.onError),e.onSelect&&o.onSelect(e.onSelect,e.options)}i(De,"applyPropsToBuilder");function ro(o){let e=new Te;return De(e,o),o.children&&e.setOptions(Array.isArray(o.children)?o.children:[o.children]),o.children&&e.setOptions(Array.isArray(o.children)?o.children:[o.children]),e}i(ro,"StringSelectMenu");function oo(o){return new hr.StringSelectMenuOptionBuilder(o)}i(oo,"StringSelectMenuOption");function io(o){let e=new Oe;return De(e,o),o.defaultValues&&e.setDefaultUsers(Array.isArray(o.defaultValues)?o.defaultValues:[o.defaultValues]),e}i(io,"UserSelectMenu");function ao(o){let e=new Fe;return De(e,o),o.defaultValues&&e.setDefaultRoles(Array.isArray(o.defaultValues)?o.defaultValues:[o.defaultValues]),e}i(ao,"RoleSelectMenu");function so(o){let e=new ke;return De(e,o),o.defaultValues&&e.setDefaultValues(Array.isArray(o.defaultValues)?o.defaultValues:[o.defaultValues]),e}i(so,"MentionableSelectMenu");function lo(o){let e=new dt;return De(e,o),o.defaultValues&&e.setDefaultChannels(Array.isArray(o.defaultValues)?o.defaultValues:[o.defaultValues]),o.channelTypes&&e.setChannelTypes(Array.isArray(o.channelTypes)?o.channelTypes:[o.channelTypes]),e}i(lo,"ChannelSelectMenu");0&&(module.exports={ChannelSelectMenu,MentionableSelectMenu,RoleSelectMenu,StringSelectMenu,StringSelectMenuOption,UserSelectMenu});
16
16
  //# sourceMappingURL=SelectMenu.js.map