commandkit 1.0.0-dev.20250528125253 → 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 (91) 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/flag.cjs +6 -0
  90. package/flag.d.ts +1 -0
  91. package/package.json +10 -3
@@ -1,5 +1,5 @@
1
- "use strict";var Rn=Object.create;var z=Object.defineProperty;var Pn=Object.getOwnPropertyDescriptor;var Kn=Object.getOwnPropertyNames;var Dn=Object.getPrototypeOf,Tn=Object.prototype.hasOwnProperty;var Mt=o=>{throw TypeError(o)};var An=(o,e,t)=>e in o?z(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var i=(o,e)=>z(o,"name",{value:e,configurable:!0});var kn=(o,e)=>{for(var t in e)z(o,t,{get:e[t],enumerable:!0})},It=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Kn(e))!Tn.call(o,r)&&r!==t&&z(o,r,{get:()=>e[r],enumerable:!(n=Pn(e,r))||n.enumerable});return o};var _=(o,e,t)=>(t=o!=null?Rn(Dn(o)):{},It(e||!o||!o.__esModule?z(t,"default",{value:o,enumerable:!0}):t,o)),Bn=o=>It(z({},"__esModule",{value:!0}),o);var x=(o,e,t)=>An(o,typeof e!="symbol"?e+"":e,t),Fe=(o,e,t)=>e.has(o)||Mt("Cannot "+t);var p=(o,e,t)=>(Fe(o,e,"read from private field"),t?t.call(o):e.get(o)),b=(o,e,t)=>e.has(o)?Mt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,t),P=(o,e,t,n)=>(Fe(o,e,"write to private field"),n?n.call(o,t):e.set(o,t),t),S=(o,e,t)=>(Fe(o,e,"access private method"),t);var dr={};kn(dr,{exitContext:()=>N,getCommandKit:()=>H,getContext:()=>A,isCommandWorkerContext:()=>ur,makeContextAwareFunction:()=>lt,provideContext:()=>le,useEnvironment:()=>ct});module.exports=Bn(dr);var vn=require("async_hooks");var hn=_(require("events"));var St=require("picocolors"),h=(0,St.createColors)(!0);var On=require("discord.js");var Ue=require("discord.js");var Ln=require("discord.js");var Rt=require("discord.js");var Ne=require("discord.js");var Pt=require("discord.js");var Kt=require("discord.js");var Dt=require("discord.js");var Tt=require("discord.js");var At=require("discord.js");var $n=require("discord.js");var W=require("discord.js");var Fn=require("discord.js");var Bt=require("discord.js");var ue=require("discord.js");var Un=require("discord.js");var Nn=require("discord.js");var Ot=new Set;function Hn(o,e="CommandKitWarning"){process.emitWarning(o,{code:e})}i(Hn,"emitWarning");function He(o){Ot.has(o)||(Ot.add(o),Hn(`${o} is unstable and may change in future versions.`,"CommandKitUnstableWarning"))}i(He,"warnUnstable");function Lt(o){return He("CommandKit JSX"),Array.isArray(o.children)?o.children.flat():[o.children]}i(Lt,"Fragment");function $t(o,e,...t){return He("CommandKit JSX"),o({...e,children:e.children??t})}i($t,"createElement");var pe,Ft,Ge=class Ge{constructor(e){this.client=e;b(this,pe);x(this,"subscribers",new Map);x(this,"globalHandlers",new Map);x(this,"cleanupTimer",null);S(this,pe,Ft).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(l){if(a.onError)await a.onError(l);else throw l}finally{a.once&&this.unsubscribe(e,s,"once")}}},"handler");return this.globalHandlers.set(e,t),t}};pe=new WeakSet,Ft=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(Ge,"EventInterceptor");var de=Ge;var Le=require("discord.js");var Xe=require("fs"),Qe=require("path");var ta=Symbol("kCommandKitCacheTag"),O=process.env.COMMANDKIT_IS_DEV==="true",na=process.env.COMMANDKIT_IS_TEST==="true",ra=process.env.COMMANDKIT_BOOTSTRAP_MODE||"development",fe={ReloadCommands:"reload-commands",ReloadEvents:"reload-events",Unknown:"unknown"};var Ut=require("crypto");var _e=class _e{constructor(e){this.options=e}id=(0,Ut.randomUUID)();loadedAt=Date.now();async activate(e){}async deactivate(e){}};i(_e,"PluginCommon");var J=_e;function je(o){return o instanceof J}i(je,"isPlugin");var We=class We extends J{type="compiler";async transform(e){return null}async resolve(e){return null}async onBuildStart(){}async onBuildEnd(){}};i(We,"CompilerPlugin");var Y=We;function Nt(o){return je(o)&&o.type==="runtime"}i(Nt,"isRuntimePlugin");var Ht=require("discord.js");var v={ExitMiddleware:Symbol("kExitMiddleware"),ForwardedCommand:Symbol("kForwardedCommand"),InvalidCommandPrefix:Symbol("kInvalidCommandPrefix"),PluginCaptureHandle:Symbol("kPluginCaptureHandle")};function V(o){let e=new Error;return Reflect.set(e,"code",o),e}i(V,"createCommandKitError");function he(o){if(!(o instanceof Error))return!1;let e=Reflect.get(o,"code");for(let t in v)if(v[t]===e)return!0;return!1}i(he,"isCommandKitError");function $(o,e){if(!he(o))return!1;let t=Reflect.get(o,"code");return t?Array.isArray(e)?e.includes(t):t===e:!1}i($,"isErrorType");var jn={autocomplete:"Autocomplete",messageContextMenu:"MessageContextMenu",userContextMenu:"UserContextMenu",chatInput:"ChatInputCommand",message:"Message"},_n={0:h.blue,1:h.green,2:h.yellow,3:h.red,4:h.white},Wn={0:h.bgBlue,1:h.bgGreen,2:h.bgYellow,3:h.bgRed,4:h.bgWhite},Ce={vertical:"\u2502",horizontalDown:"\u252C",horizontalUp:"\u2534",verticalRight:"\u251C",corner:"\u2514"},Ve=class Ve{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=A();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=jn[t];if(!s&&!n)return"";let a=e.variables.get("forwardedBy"),m=e.variables.get("forwardedTo"),l=r?h.magenta(`/${r}`)+" ":"",c=m?`${h.yellowBright(`(${a||r} \u2192 ${m})`)} `:"";return h.dim(`${Ce.vertical} `)+h.cyanBright(`${l}${c}${s?h.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`${Wn[e](h.whiteBright(` ${t} `))} `}_getPrefix(e){let t=this._formatTime(new Date);return`${this._getLevelLabel(e)}${h.dim(Ce.vertical)} ${h.dim(t)}`}_log(e,...t){let n=this._getPrefix(e),r=this._getContext(),s=_n[e];r?this.logger.log(`${n}
2
- ${r} ${h.dim(Ce.corner)}`,...t.map(a=>s(a))):this.logger.log(`${n} ${h.dim(Ce.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(Ve,"DefaultLogger");var ge=Ve;function Vn(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(Vn,"createLogger");var C=Vn({provider:new ge});var qe=class qe{constructor(e){this.commandkit=e}plugins=new Ht.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 V(v.PluginCaptureHandle)}async execute(e){let t;for(let n of this.plugins.values())try{t=await e(this,n)}catch(r){if($(r,v.PluginCaptureHandle))return!0;C.error(`Plugin "${n.name}" failed`,(r==null?void 0:r.stack)||r)}return t}};i(qe,"CommandKitPluginRuntime");var xe=qe;var qn=require("fs/promises");var ze=class ze extends Y{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(ze,"MacroPlugin");var ye=ze;var Gt={plugins:[new ye({enabled:!0})],esbuildPlugins:[],compilerOptions:{macro:{development:!1}},static:!0,typescript:{ignoreBuildErrors:!1},distDir:"dist",env:{},sourceMap:{development:!0,production:!0},typedCommands:!0};var zn=Gt;function be(){return zn}i(be,"getConfig");var jt=require("async_hooks");var Jn=Symbol("commandkitEventWorker"),_t=new jt.AsyncLocalStorage;function Je(o,e){return Reflect.set(o,Jn,!0),_t.run(o,e)}i(Je,"runInEventWorkerContext");var Ye=null;function Wt(){if(Ye)return Ye;let o=(0,Qe.join)(process.cwd(),O?".commandkit":be().distDir);(0,Xe.existsSync)(o)||(o=process.cwd());let e=["app"].map(t=>(0,Qe.join)(o,t));for(let t of e)if((0,Xe.existsSync)(t))return Ye=t,t;return null}i(Wt,"findAppDirectory");var Ze=class Ze extends Error{constructor(){super("Event propagation stopped"),this.name="StopEventPropagationError"}};i(Ze,"StopEventPropagationError");var ne=Ze;var wt=require("path");var M=require("discord.js");var Vt=_(require("path"));function re(o,e=!1){return`${"file://"+Vt.default.resolve(o).replace(/\\\\|\\/g,"/")}${e?`?ts=${Date.now()}`:""}`}i(re,"toFileURL");var K=require("discord.js");var q,X,oe,tt=class tt{constructor(e,t,n){this.message=e;this.prefix=t;this.schema=n;b(this,q,null);b(this,X,null);b(this,oe,[])}getArgs(){return this.parse(),p(this,oe)}get options(){return p(this,X)||P(this,X,new et(this)),p(this,X)}getOption(e){var t;return(t=this.parse().options.find(n=>n.name===e))==null?void 0:t.value}getCommand(){return this.parse().command}getSubcommand(){return this.parse().subcommand}getSubcommandGroup(){return this.parse().subcommandGroup}getPrefix(){for(let e of this.prefix)if(this.message.content.startsWith(e))return e}getFullCommand(){return[this.getCommand(),this.getSubcommandGroup(),this.getSubcommand()].filter(e=>e).join(" ")}parse(){if(p(this,q))return p(this,q);let e=this.message.content,t=this.getPrefix();if(!t)throw V(v.InvalidCommandPrefix);let n=e.slice(t.length).trim().split(" "),r=n.shift();P(this,oe,n);let s,a;if(r!=null&&r.includes(":")){let[,c,d]=r.split(":");!d&&c?a=c:d&&c&&(s=c,a=d)}let m=this.schema([r,s,a].filter(Boolean).join(" ").trim()),l=n.map(c=>{try{let[d,f]=c.split(":");if(!(d in m))return null;switch(m[d]){case K.ApplicationCommandOptionType.Boolean:return{name:d,value:f==="true"};case K.ApplicationCommandOptionType.Integer:return{name:d,value:parseInt(f,10)};case K.ApplicationCommandOptionType.Number:return{name:d,value:parseFloat(f)};case K.ApplicationCommandOptionType.String:return{name:d,value:f};case K.ApplicationCommandOptionType.User:return{name:d,value:this.message.mentions.users.find(g=>g.id===f.replace(/[<@!>]/g,""))};case K.ApplicationCommandOptionType.Channel:return{name:d,value:this.message.mentions.channels.find(g=>g.id===f.replace(/[<#>]/g,""))};case K.ApplicationCommandOptionType.Role:return{name:d,value:this.message.mentions.roles.find(g=>g.id===f.replace(/[<@&>]/g,""))};case K.ApplicationCommandOptionType.Attachment:return{name:d,value:this.message.attachments.find(g=>g.name===f)};default:return null}}catch{return null}}).filter(c=>c!==null);return P(this,q,{command:r,options:l,subcommand:a,subcommandGroup:s}),p(this,q)}};q=new WeakMap,X=new WeakMap,oe=new WeakMap,i(tt,"MessageCommandParser");var Ee=tt,nt=class nt{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 K.GuildMember||n instanceof K.User||n instanceof K.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(nt,"MessageCommandOptions");var et=nt;var F=require("discord.js");var rt=class rt{constructor(e){this.commandkit=e;this.api.setToken(this.commandkit.client.token??process.env.DISCORD_TOKEN??process.env.TOKEN??"")}api=new F.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!==F.ApplicationCommandType.User&&s.push({...r,type:F.ApplicationCommandType.User,options:void 0,description_localizations:void 0,description:void 0}),n.data.messageContextMenu&&r.type!==F.ApplicationCommandType.Message&&s.push({...r,type:F.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,m)=>{if(!t)return m.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 m;return(m=a.guilds)==null?void 0:m.filter(Boolean).length}).map(a=>{var m;return{...a,guilds:Array.from(new Set((m=a.guilds)==null?void 0:m.filter(Boolean)))}}),s=e.filter(a=>{var m;return!((m=a.guilds)!=null&&m.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(F.Routes.applicationCommands(this.commandkit.client.user.id),{body:e.map(s=>({...s,guilds:void 0}))});C.info(`\u2728 Refreshed ${r.length} global application (/) commands`)}catch(r){C.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 m;(m=a.guilds)!=null&&m.length&&a.guilds.forEach(l=>{r.has(l)||r.set(l,[]),r.get(l).push(a)})}),!r.size)return;let s=0;for(let[a,m]of r){let l=!1,c={preventDefault(){l=!0},commands:m};if(await this.commandkit.plugins.execute(async(f,g)=>{if(!l)return g.onBeforeRegisterGuildCommands(f,c)}),l)continue;let d=await this.api.put(F.Routes.applicationGuildCommands(this.commandkit.client.user.id,a),{body:m.map(f=>({...f,guilds:void 0}))});s+=d.length}C.info(`\u2728 Refreshed ${s} guild application (/) commands`)}catch(r){C.error("Failed to update guild application (/) commands",r)}}};i(rt,"CommandRegistrar");var ve=rt;var Me=require("discord.js");var qt=require("crypto");var E,ot=class ot{constructor(e){this.commandkit=e;b(this,E,{executionError:null,type:null,variables:new Map,deferredFunctions:new Map,marker:"",markStart:0,markEnd:0,context:null})}setContext(e){p(this,E).context=e}get context(){return p(this,E).context}getExecutionError(){return p(this,E).executionError}setExecutionError(e){if(p(this,E).executionError)throw new Error("Execution error already set.");p(this,E).executionError=e}getType(){let e=p(this,E).type;if(!e)throw new Error("Environment type not set.");return e}setType(e){p(this,E).type=e}get variables(){return p(this,E).variables}registerDeferredFunction(e){let t=(0,qt.randomUUID)();return p(this,E).deferredFunctions.set(t,e),t}clearDeferredFunction(e){p(this,E).deferredFunctions.delete(e)}async runDeferredFunctions(){for(let[e,t]of p(this,E).deferredFunctions)try{await t(this)}catch(n){this.commandkit.emit("unhandledDeferredFunctionRejection",n)}finally{this.clearDeferredFunction(e)}}clearAllDeferredFunctions(){p(this,E).deferredFunctions.clear()}markStart(e){p(this,E).marker=e,p(this,E).markStart=performance.now()}markEnd(){p(this,E).markEnd||(p(this,E).markEnd=performance.now())}getMarker(){return p(this,E).marker}getExecutionTime(){return Math.abs(p(this,E).markEnd-p(this,E).markStart)}};E=new WeakMap,i(ot,"CommandKitEnvironment");var we=ot;function zt(){throw V(v.ExitMiddleware)}i(zt,"exitMiddleware");function Jt(){throw V(v.ForwardedCommand)}i(Jt,"redirect");var D={ChatInputCommand:"chatInput",MessageContextMenu:"messageContextMenu",UserContextMenu:"userContextMenu",Autocomplete:"autocomplete",Message:"message"},Q,ie=class ie{constructor(e,t){this.commandkit=e;this.config=t;x(this,"interaction");x(this,"message");x(this,"guild");x(this,"guildId");x(this,"channel");x(this,"channelId");x(this,"client");x(this,"command");b(this,Q);x(this,"_locale",null);this.interaction=t.interaction,this.message=t.message,this.client=e.client,P(this,Q,t.store??new Map),this.command=t.command,t.interaction&&(this.guild=t.interaction.guild,this.guildId=t.interaction.guildId,this.channel=t.interaction.channel,this.channelId=t.interaction.channelId),t.message&&(this.guild=t.message.guild,this.guildId=t.message.guildId,this.channel=t.message.channel,this.channelId=t.message.channelId),this.config.environment&&this.config.environment.setContext(this)}get store(){return p(this,Q)}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??A();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})),Jt()}get executionMode(){return this.config.executionMode}isInteraction(){return this.executionMode===D.ChatInputCommand||this.executionMode===D.Autocomplete||this.executionMode===D.MessageContextMenu||this.executionMode===D.UserContextMenu}isChatInputCommand(){return this.executionMode===D.ChatInputCommand}isAutocomplete(){return this.executionMode===D.Autocomplete}isMessageContextMenu(){return this.executionMode===D.MessageContextMenu}isUserContextMenu(){return this.executionMode===D.UserContextMenu}isMessage(){return this.executionMode===D.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:p(this,Q)}):new ie(this.commandkit,this.config)}isMiddleware(){return this instanceof ae}args(){return this.isMessage()?this.config.messageCommandParser.getArgs():[]}exit(){zt()}};Q=new WeakMap,i(ie,"Context");var it=ie,se,at=class at extends it{constructor(){super(...arguments);b(this,se,!1)}get cancelled(){return p(this,se)}cancel(){P(this,se,!0)}setCommandRunner(t){var n,r;(r=(n=this.config.customArgs)==null?void 0:n.setCommandRunner)==null||r.call(n,t)}};se=new WeakMap,i(at,"MiddlewareContext");var ae=at;var Se,Yt,st=class st{constructor(e){this.handler=e;b(this,Se)}async runCommand(e,t){let{commandkit:n}=this.handler,r=this.getExecutionMode(t),s=null,a=new we(n);a.setType("COMMAND_HANDLER"),a.variables.set("commandHandlerType","app"),a.variables.set("currentCommandName",e.command.command.name),a.variables.set("execHandlerKind",r);let m=new ae(n,{command:e.command,environment:a,executionMode:r,interaction:t instanceof Me.Message?null:t,message:t instanceof Me.Message?t:null,forwarded:!1,customArgs:{setCommandRunner:i(c=>{s=c},"setCommandRunner")},messageCommandParser:e.messageCommandParser}),l=!1;if(e.middlewares.length&&await le(a,async()=>{for(let c of e.middlewares)if(c.data.beforeExecute)try{await c.data.beforeExecute(m)}catch(d){if($(d,v.ExitMiddleware)){l=!0;return}if($(d,[v.ForwardedCommand,v.InvalidCommandPrefix]))continue;throw d}}),!m.cancelled){let d=e.command.data[r];if(d||C.warn(`Command ${e.command.command.name} has no handler for ${r}`),d)try{let f=lt(a,async()=>(a.registerDeferredFunction(I=>{I.markEnd();let w=I.getExecutionError(),y=I.getMarker(),R=`${I.getExecutionTime().toFixed(2)}ms`;if(w){C.error(`[${y} - ${R}] Error executing command: ${w.stack||w}`);return}C.info(`[${y} - ${R}] Command executed successfully`)}),d(m.clone())),S(this,Se,Yt).bind(this)),g=s!=null?s(f):f;a.markStart(e.command.data.command.name),await n.plugins.execute(async(I,w)=>w.executeCommand(I,a,t,e,g))||await g()}catch(f){$(f,v.ExitMiddleware)&&(l=!0),$(f,[v.ForwardedCommand,v.ExitMiddleware])||C.error(f)}}!l&&e.middlewares.length&&await le(a,async()=>{for(let c of e.middlewares)if(c.data.afterExecute)try{await c.data.afterExecute(m)}catch(d){if($(d,v.ExitMiddleware))return;throw d}})}getExecutionMode(e){return e instanceof Me.Message?D.Message:e.isChatInputCommand()?D.ChatInputCommand:e.isAutocomplete()?D.Autocomplete:e.isMessageContextMenuCommand()?D.MessageContextMenu:e.isUserContextMenuCommand()?D.UserContextMenu:null}};Se=new WeakSet,Yt=i(async function(){let e=ct();await e.runDeferredFunctions(),e.clearAllDeferredFunctions(),await this.handler.commandkit.plugins.execute(async(t,n)=>{await n.onAfterCommand(t,e)})},"#finalizer"),i(st,"AppCommandRunner");var Ie=st;var j=require("fs/promises"),G=require("path");var Xt=require("fs");async function Re(o=!1){let e=(0,G.join)(process.cwd(),"node_modules","commandkit-types");if(!O&&!o)return e;let t=(0,G.join)(e,"package.json"),n=(0,G.join)(e,"index.js"),r=(0,G.join)(e,"index.d.ts"),s=(0,G.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"},m="module.exports = {};",l=`// Main types index file - imports all type declarations
1
+ "use strict";var Rn=Object.create;var z=Object.defineProperty;var Pn=Object.getOwnPropertyDescriptor;var Kn=Object.getOwnPropertyNames;var Dn=Object.getPrototypeOf,Tn=Object.prototype.hasOwnProperty;var Mt=o=>{throw TypeError(o)};var An=(o,e,t)=>e in o?z(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var i=(o,e)=>z(o,"name",{value:e,configurable:!0});var kn=(o,e)=>{for(var t in e)z(o,t,{get:e[t],enumerable:!0})},It=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Kn(e))!Tn.call(o,r)&&r!==t&&z(o,r,{get:()=>e[r],enumerable:!(n=Pn(e,r))||n.enumerable});return o};var _=(o,e,t)=>(t=o!=null?Rn(Dn(o)):{},It(e||!o||!o.__esModule?z(t,"default",{value:o,enumerable:!0}):t,o)),Bn=o=>It(z({},"__esModule",{value:!0}),o);var x=(o,e,t)=>An(o,typeof e!="symbol"?e+"":e,t),$e=(o,e,t)=>e.has(o)||Mt("Cannot "+t);var p=(o,e,t)=>($e(o,e,"read from private field"),t?t.call(o):e.get(o)),b=(o,e,t)=>e.has(o)?Mt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,t),P=(o,e,t,n)=>($e(o,e,"write to private field"),n?n.call(o,t):e.set(o,t),t),S=(o,e,t)=>($e(o,e,"access private method"),t);var dr={};kn(dr,{exitContext:()=>N,getCommandKit:()=>H,getContext:()=>A,isCommandWorkerContext:()=>ur,makeContextAwareFunction:()=>lt,provideContext:()=>ce,useEnvironment:()=>ct});module.exports=Bn(dr);var wn=require("async_hooks");var hn=_(require("events"));var St=require("picocolors"),h=(0,St.createColors)(!0);var On=require("discord.js");var Ue=require("discord.js");var Ln=require("discord.js");var Rt=require("discord.js");var Ne=require("discord.js");var Pt=require("discord.js");var Kt=require("discord.js");var Dt=require("discord.js");var Tt=require("discord.js");var At=require("discord.js");var Fn=require("discord.js");var W=require("discord.js");var $n=require("discord.js");var Bt=require("discord.js");var ue=require("discord.js");var Un=require("discord.js");var Nn=require("discord.js");var Ot=new Set;function Hn(o,e="CommandKitWarning"){process.emitWarning(o,{code:e})}i(Hn,"emitWarning");function He(o){Ot.has(o)||(Ot.add(o),Hn(`${o} is unstable and may change in future versions.`,"CommandKitUnstableWarning"))}i(He,"warnUnstable");function Lt(o){return He("CommandKit JSX"),Array.isArray(o.children)?o.children.flat():[o.children]}i(Lt,"Fragment");function Ft(o,e,...t){return He("CommandKit JSX"),o({...e,children:e.children??t})}i(Ft,"createElement");var pe,$t,Ge=class Ge{constructor(e){this.client=e;b(this,pe);x(this,"subscribers",new Map);x(this,"globalHandlers",new Map);x(this,"cleanupTimer",null);S(this,pe,$t).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(l){if(a.onError)await a.onError(l);else throw l}finally{a.once&&this.unsubscribe(e,s,"once")}}},"handler");return this.globalHandlers.set(e,t),t}};pe=new WeakSet,$t=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(Ge,"EventInterceptor");var de=Ge;var Le=require("discord.js");var Xe=require("fs"),Qe=require("path");var ta=Symbol("kCommandKitCacheTag"),O=process.env.COMMANDKIT_IS_DEV==="true",na=process.env.COMMANDKIT_IS_TEST==="true",ra=process.env.COMMANDKIT_BOOTSTRAP_MODE||"development",fe={ReloadCommands:"reload-commands",ReloadEvents:"reload-events",Unknown:"unknown"};var Ut=require("crypto");var _e=class _e{constructor(e){this.options=e}id=(0,Ut.randomUUID)();loadedAt=Date.now();async activate(e){}async deactivate(e){}};i(_e,"PluginCommon");var J=_e;function je(o){return o instanceof J}i(je,"isPlugin");var We=class We extends J{type="compiler";async transform(e){return null}async resolve(e){return null}async onBuildStart(){}async onBuildEnd(){}};i(We,"CompilerPlugin");var Y=We;function Nt(o){return je(o)&&o.type==="runtime"}i(Nt,"isRuntimePlugin");var Ht=require("discord.js");var w={ExitMiddleware:Symbol("kExitMiddleware"),ForwardedCommand:Symbol("kForwardedCommand"),InvalidCommandPrefix:Symbol("kInvalidCommandPrefix"),PluginCaptureHandle:Symbol("kPluginCaptureHandle")};function V(o){let e=new Error;return Reflect.set(e,"code",o),e}i(V,"createCommandKitError");function he(o){if(!(o instanceof Error))return!1;let e=Reflect.get(o,"code");for(let t in w)if(w[t]===e)return!0;return!1}i(he,"isCommandKitError");function F(o,e){if(!he(o))return!1;let t=Reflect.get(o,"code");return t?Array.isArray(e)?e.includes(t):t===e:!1}i(F,"isErrorType");var jn={autocomplete:"Autocomplete",messageContextMenu:"MessageContextMenu",userContextMenu:"UserContextMenu",chatInput:"ChatInputCommand",message:"Message"},_n={0:h.blue,1:h.green,2:h.yellow,3:h.red,4:h.white},Wn={0:h.bgBlue,1:h.bgGreen,2:h.bgYellow,3:h.bgRed,4:h.bgWhite},Ce={vertical:"\u2502",horizontalDown:"\u252C",horizontalUp:"\u2534",verticalRight:"\u251C",corner:"\u2514"},Ve=class Ve{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=A();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=jn[t];if(!s&&!n)return"";let a=e.variables.get("forwardedBy"),m=e.variables.get("forwardedTo"),l=r?h.magenta(`/${r}`)+" ":"",c=m?`${h.yellowBright(`(${a||r} \u2192 ${m})`)} `:"";return h.dim(`${Ce.vertical} `)+h.cyanBright(`${l}${c}${s?h.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`${Wn[e](h.whiteBright(` ${t} `))} `}_getPrefix(e){let t=this._formatTime(new Date);return`${this._getLevelLabel(e)}${h.dim(Ce.vertical)} ${h.dim(t)}`}_log(e,...t){let n=this._getPrefix(e),r=this._getContext(),s=_n[e];r?this.logger.log(`${n}
2
+ ${r} ${h.dim(Ce.corner)}`,...t.map(a=>s(a))):this.logger.log(`${n} ${h.dim(Ce.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(Ve,"DefaultLogger");var ge=Ve;function Vn(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(Vn,"createLogger");var C=Vn({provider:new ge});var qe=class qe{constructor(e){this.commandkit=e}plugins=new Ht.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 V(w.PluginCaptureHandle)}async execute(e){let t;for(let n of this.plugins.values())try{t=await e(this,n)}catch(r){if(F(r,w.PluginCaptureHandle))return!0;C.error(`Plugin "${n.name}" failed`,(r==null?void 0:r.stack)||r)}return t}};i(qe,"CommandKitPluginRuntime");var xe=qe;var qn=require("fs/promises");var ze=class ze extends Y{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(ze,"MacroPlugin");var ye=ze;var Gt={plugins:[new ye({enabled:!0})],esbuildPlugins:[],compilerOptions:{macro:{development:!1}},static:!0,typescript:{ignoreBuildErrors:!1},distDir:"dist",env:{},sourceMap:{development:!0,production:!0},typedCommands:!0};var zn=Gt;function be(){return zn}i(be,"getConfig");var jt=require("async_hooks");var Jn=Symbol("commandkitEventWorker"),_t=new jt.AsyncLocalStorage;function Je(o,e){return Reflect.set(o,Jn,!0),_t.run(o,e)}i(Je,"runInEventWorkerContext");var Ye=null;function Wt(){if(Ye)return Ye;let o=(0,Qe.join)(process.cwd(),O?".commandkit":be().distDir);(0,Xe.existsSync)(o)||(o=process.cwd());let e=["app"].map(t=>(0,Qe.join)(o,t));for(let t of e)if((0,Xe.existsSync)(t))return Ye=t,t;return null}i(Wt,"findAppDirectory");var Ze=class Ze extends Error{constructor(){super("Event propagation stopped"),this.name="StopEventPropagationError"}};i(Ze,"StopEventPropagationError");var re=Ze;var vt=require("path");var M=require("discord.js");var Vt=_(require("path"));function oe(o,e=!1){return`${"file://"+Vt.default.resolve(o).replace(/\\\\|\\/g,"/")}${e?`?ts=${Date.now()}`:""}`}i(oe,"toFileURL");var K=require("discord.js");var q,X,ie,tt=class tt{constructor(e,t,n){this.message=e;this.prefix=t;this.schema=n;b(this,q,null);b(this,X,null);b(this,ie,[])}getArgs(){return this.parse(),p(this,ie)}get options(){return p(this,X)||P(this,X,new et(this)),p(this,X)}getOption(e){var t;return(t=this.parse().options.find(n=>n.name===e))==null?void 0:t.value}getCommand(){return this.parse().command}getSubcommand(){return this.parse().subcommand}getSubcommandGroup(){return this.parse().subcommandGroup}getPrefix(){for(let e of this.prefix)if(this.message.content.startsWith(e))return e}getFullCommand(){return[this.getCommand(),this.getSubcommandGroup(),this.getSubcommand()].filter(e=>e).join(" ")}parse(){if(p(this,q))return p(this,q);let e=this.message.content,t=this.getPrefix();if(!t)throw V(w.InvalidCommandPrefix);let n=e.slice(t.length).trim().split(" "),r=n.shift();P(this,ie,n);let s,a;if(r!=null&&r.includes(":")){let[,c,d]=r.split(":");!d&&c?a=c:d&&c&&(s=c,a=d)}let m=this.schema([r,s,a].filter(Boolean).join(" ").trim()),l=n.map(c=>{try{let[d,f]=c.split(":");if(!(d in m))return null;switch(m[d]){case K.ApplicationCommandOptionType.Boolean:return{name:d,value:f==="true"};case K.ApplicationCommandOptionType.Integer:return{name:d,value:parseInt(f,10)};case K.ApplicationCommandOptionType.Number:return{name:d,value:parseFloat(f)};case K.ApplicationCommandOptionType.String:return{name:d,value:f};case K.ApplicationCommandOptionType.User:return{name:d,value:this.message.mentions.users.find(g=>g.id===f.replace(/[<@!>]/g,""))};case K.ApplicationCommandOptionType.Channel:return{name:d,value:this.message.mentions.channels.find(g=>g.id===f.replace(/[<#>]/g,""))};case K.ApplicationCommandOptionType.Role:return{name:d,value:this.message.mentions.roles.find(g=>g.id===f.replace(/[<@&>]/g,""))};case K.ApplicationCommandOptionType.Attachment:return{name:d,value:this.message.attachments.find(g=>g.name===f)};default:return null}}catch{return null}}).filter(c=>c!==null);return P(this,q,{command:r,options:l,subcommand:a,subcommandGroup:s}),p(this,q)}};q=new WeakMap,X=new WeakMap,ie=new WeakMap,i(tt,"MessageCommandParser");var Ee=tt,nt=class nt{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 K.GuildMember||n instanceof K.User||n instanceof K.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(nt,"MessageCommandOptions");var et=nt;var $=require("discord.js");var rt=class rt{constructor(e){this.commandkit=e;this.api.setToken(this.commandkit.client.token??process.env.DISCORD_TOKEN??process.env.TOKEN??"")}api=new $.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!==$.ApplicationCommandType.User&&s.push({...r,type:$.ApplicationCommandType.User,options:void 0,description_localizations:void 0,description:void 0}),n.data.messageContextMenu&&r.type!==$.ApplicationCommandType.Message&&s.push({...r,type:$.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,m)=>{if(!t)return m.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 m;return(m=a.guilds)==null?void 0:m.filter(Boolean).length}).map(a=>{var m;return{...a,guilds:Array.from(new Set((m=a.guilds)==null?void 0:m.filter(Boolean)))}}),s=e.filter(a=>{var m;return!((m=a.guilds)!=null&&m.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($.Routes.applicationCommands(this.commandkit.client.user.id),{body:e.map(s=>({...s,guilds:void 0}))});C.info(`\u2728 Refreshed ${r.length} global application (/) commands`)}catch(r){C.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 m;(m=a.guilds)!=null&&m.length&&a.guilds.forEach(l=>{r.has(l)||r.set(l,[]),r.get(l).push(a)})}),!r.size)return;let s=0;for(let[a,m]of r){let l=!1,c={preventDefault(){l=!0},commands:m};if(await this.commandkit.plugins.execute(async(f,g)=>{if(!l)return g.onBeforeRegisterGuildCommands(f,c)}),l)continue;let d=await this.api.put($.Routes.applicationGuildCommands(this.commandkit.client.user.id,a),{body:m.map(f=>({...f,guilds:void 0}))});s+=d.length}C.info(`\u2728 Refreshed ${s} guild application (/) commands`)}catch(r){C.error("Failed to update guild application (/) commands",r)}}};i(rt,"CommandRegistrar");var we=rt;var Me=require("discord.js");var qt=require("crypto");var E,ot=class ot{constructor(e){this.commandkit=e;b(this,E,{executionError:null,type:null,variables:new Map,deferredFunctions:new Map,marker:"",markStart:0,markEnd:0,context:null})}setContext(e){p(this,E).context=e}get context(){return p(this,E).context}getExecutionError(){return p(this,E).executionError}setExecutionError(e){if(p(this,E).executionError)throw new Error("Execution error already set.");p(this,E).executionError=e}getType(){let e=p(this,E).type;if(!e)throw new Error("Environment type not set.");return e}setType(e){p(this,E).type=e}get variables(){return p(this,E).variables}registerDeferredFunction(e){let t=(0,qt.randomUUID)();return p(this,E).deferredFunctions.set(t,e),t}clearDeferredFunction(e){p(this,E).deferredFunctions.delete(e)}async runDeferredFunctions(){for(let[e,t]of p(this,E).deferredFunctions)try{await t(this)}catch(n){this.commandkit.emit("unhandledDeferredFunctionRejection",n)}finally{this.clearDeferredFunction(e)}}clearAllDeferredFunctions(){p(this,E).deferredFunctions.clear()}markStart(e){p(this,E).marker=e,p(this,E).markStart=performance.now()}markEnd(){p(this,E).markEnd||(p(this,E).markEnd=performance.now())}getMarker(){return p(this,E).marker}getExecutionTime(){return Math.abs(p(this,E).markEnd-p(this,E).markStart)}};E=new WeakMap,i(ot,"CommandKitEnvironment");var ve=ot;function zt(){throw V(w.ExitMiddleware)}i(zt,"exitMiddleware");function Jt(){throw V(w.ForwardedCommand)}i(Jt,"redirect");var D={ChatInputCommand:"chatInput",MessageContextMenu:"messageContextMenu",UserContextMenu:"userContextMenu",Autocomplete:"autocomplete",Message:"message"},Q,ae=class ae{constructor(e,t){this.commandkit=e;this.config=t;x(this,"interaction");x(this,"message");x(this,"guild");x(this,"guildId");x(this,"channel");x(this,"channelId");x(this,"client");x(this,"command");b(this,Q);x(this,"_locale",null);this.interaction=t.interaction,this.message=t.message,this.client=e.client,P(this,Q,t.store??new Map),this.command=t.command,t.interaction&&(this.guild=t.interaction.guild,this.guildId=t.interaction.guildId,this.channel=t.interaction.channel,this.channelId=t.interaction.channelId),t.message&&(this.guild=t.message.guild,this.guildId=t.message.guildId,this.channel=t.message.channel,this.channelId=t.message.channelId),this.config.environment&&this.config.environment.setContext(this)}get store(){return p(this,Q)}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??A();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})),Jt()}get executionMode(){return this.config.executionMode}isInteraction(){return this.executionMode===D.ChatInputCommand||this.executionMode===D.Autocomplete||this.executionMode===D.MessageContextMenu||this.executionMode===D.UserContextMenu}isChatInputCommand(){return this.executionMode===D.ChatInputCommand}isAutocomplete(){return this.executionMode===D.Autocomplete}isMessageContextMenu(){return this.executionMode===D.MessageContextMenu}isUserContextMenu(){return this.executionMode===D.UserContextMenu}isMessage(){return this.executionMode===D.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 ae(this.commandkit,{...this.config,...e,store:p(this,Q)}):new ae(this.commandkit,this.config)}isMiddleware(){return this instanceof se}args(){return this.isMessage()?this.config.messageCommandParser.getArgs():[]}exit(){zt()}};Q=new WeakMap,i(ae,"Context");var it=ae,le,at=class at extends it{constructor(){super(...arguments);b(this,le,!1)}get cancelled(){return p(this,le)}cancel(){P(this,le,!0)}setCommandRunner(t){var n,r;(r=(n=this.config.customArgs)==null?void 0:n.setCommandRunner)==null||r.call(n,t)}};le=new WeakMap,i(at,"MiddlewareContext");var se=at;var Se,Yt,st=class st{constructor(e){this.handler=e;b(this,Se)}async runCommand(e,t){let{commandkit:n}=this.handler,r=this.getExecutionMode(t),s=null,a=new ve(n);a.setType("COMMAND_HANDLER"),a.variables.set("commandHandlerType","app"),a.variables.set("currentCommandName",e.command.command.name),a.variables.set("execHandlerKind",r);let m=new se(n,{command:e.command,environment:a,executionMode:r,interaction:t instanceof Me.Message?null:t,message:t instanceof Me.Message?t:null,forwarded:!1,customArgs:{setCommandRunner:i(c=>{s=c},"setCommandRunner")},messageCommandParser:e.messageCommandParser}),l=!1;if(e.middlewares.length&&await ce(a,async()=>{for(let c of e.middlewares)if(c.data.beforeExecute)try{await c.data.beforeExecute(m)}catch(d){if(F(d,w.ExitMiddleware)){l=!0;return}if(F(d,[w.ForwardedCommand,w.InvalidCommandPrefix]))continue;throw d}}),!m.cancelled){let d=e.command.data[r];if(d||C.warn(`Command ${e.command.command.name} has no handler for ${r}`),d)try{let f=lt(a,async()=>(a.registerDeferredFunction(I=>{I.markEnd();let v=I.getExecutionError(),y=I.getMarker(),R=`${I.getExecutionTime().toFixed(2)}ms`;if(v){C.error(`[${y} - ${R}] Error executing command: ${v.stack||v}`);return}C.info(`[${y} - ${R}] Command executed successfully`)}),d(m.clone())),S(this,Se,Yt).bind(this)),g=s!=null?s(f):f;a.markStart(e.command.data.command.name),await n.plugins.execute(async(I,v)=>v.executeCommand(I,a,t,e,g))||await g()}catch(f){F(f,w.ExitMiddleware)&&(l=!0),F(f,[w.ForwardedCommand,w.ExitMiddleware])||C.error(f)}}!l&&e.middlewares.length&&await ce(a,async()=>{for(let c of e.middlewares)if(c.data.afterExecute)try{await c.data.afterExecute(m)}catch(d){if(F(d,w.ExitMiddleware))return;throw d}})}getExecutionMode(e){return e instanceof Me.Message?D.Message:e.isChatInputCommand()?D.ChatInputCommand:e.isAutocomplete()?D.Autocomplete:e.isMessageContextMenuCommand()?D.MessageContextMenu:e.isUserContextMenuCommand()?D.UserContextMenu:null}};Se=new WeakSet,Yt=i(async function(){let e=ct();await e.runDeferredFunctions(),e.clearAllDeferredFunctions(),await this.handler.commandkit.plugins.execute(async(t,n)=>{await n.onAfterCommand(t,e)})},"#finalizer"),i(st,"AppCommandRunner");var Ie=st;var j=require("fs/promises"),G=require("path");var Xt=require("fs");async function Re(o=!1){let e=(0,G.join)(process.cwd(),"node_modules","commandkit-types");if(!O&&!o)return e;let t=(0,G.join)(e,"package.json"),n=(0,G.join)(e,"index.js"),r=(0,G.join)(e,"index.d.ts"),s=(0,G.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"},m="module.exports = {};",l=`// Main types index file - imports all type declarations
3
3
  import './command';
4
4
  export {};
5
5
  `,c=`// Auto-generated command types
@@ -11,6 +11,6 @@ declare module 'commandkit' {
11
11
  ${o}
12
12
  }
13
13
  export {};
14
- `,t=(0,G.join)(process.cwd(),"node_modules","commandkit-types");if(!(0,Xt.existsSync)(t))return;let n=(0,G.join)(t,"command.d.ts");await(0,j.writeFile)(n,e,{encoding:"utf-8"})}i(Qt,"rewriteCommandDeclaration");var Yn={command:i(o=>o instanceof M.SlashCommandBuilder||o instanceof M.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")},Xn={beforeExecute:i(o=>typeof o=="function","beforeExecute"),afterExecute:i(o=>typeof o=="function","afterExecute")},mt=class mt{constructor(e){this.commandkit=e;this.registrar=new ve(this.commandkit)}loadedCommands=new M.Collection;loadedMiddlewares=new M.Collection;commandNameToId=new Map;subcommandPathToId=new Map;registrar;onInteraction=null;onMessageCreate=null;commandRunner=new Ie(this);externalCommandData=new M.Collection;externalMiddlewareData=new M.Collection;printBanner(){let e=crypto.randomUUID(),t=this.getCommandsArray().reduce((l,c)=>{let d=c.command.category||e;return l[d]=l[d]||[],l[d].push(c),l},{});console.log(h.green(`Loaded ${h.magenta(this.loadedCommands.size.toString())} commands:`));let n=Object.keys(t).sort(),r={};n.forEach(l=>{if(l!==e&&l.includes(":")){let c=l.split(":"),d=null;for(let f=c.length-1;f>0;f--){let g=c.slice(0,f).join(":");if(n.includes(g)){d=g;break}}d&&(r[d]=r[d]||[],r[d].push(l))}});let s=new Set,a=i((l,c="",d=!1,f="")=>{if(s.has(l))return;s.add(l);let g=t[l],T=r[l]&&r[l].length>0,I=d?"\u2514\u2500":"\u251C\u2500",w=f+(d?" ":"\u2502 ");if(l!==e){let y=l.includes(":")?l.split(":").pop():l;console.log(h.cyan(`${c}${I} ${h.bold(y)}`))}if(g.forEach((y,R)=>{let $e=R===g.length-1&&!T?"\u2514\u2500":"\u251C\u2500",Mn=l!==e?w:c,In=y.data.command.name,Sn=y.command.middlewares.length>0?h.magenta(" (\u03BB)"):"";console.log(`${h.green(`${Mn}${$e}`)} ${h.yellow(In)}${Sn}`)}),T){let y=r[l].sort();y.forEach((R,te)=>{let $e=te===y.length-1;a(R,w,$e,w)})}},"printCategory"),m=n.filter(l=>{if(l===e)return!0;if(l.includes(":")){let c=l.split(":");for(let d=1;d<c.length;d++){let f=c.slice(0,d).join(":");if(n.includes(f))return!1}return!0}return!0}).sort();m.forEach((l,c)=>{let d=c===m.length-1;a(l,"",d)})}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(M.Events.InteractionCreate,this.onInteraction),this.commandkit.client.on(M.Events.MessageCreate,this.onMessageCreate)}async prepareCommandRun(e,t){var m;let n;if(!t)if(e instanceof M.Message){if(e.author.bot)return null;let l=await this.commandkit.config.getMessageCommandPrefix(e);n=new Ee(e,Array.isArray(l)?l:[l],c=>{var T,I;let d=this.commandNameToId.get(c);if(!d)return null;let f=this.loadedCommands.get(d);return!f||e.guildId&&((T=f.guilds)!=null&&T.length)&&!f.guilds.includes(e.guildId)?null:((I=("toJSON"in f.data.command?f.data.command.toJSON():f.data.command).options)==null?void 0:I.reduce((w,y)=>(w[y.name]=y.type,w),{}))??{}});try{t=n.getFullCommand().split(" ")[0]}catch(c){return $(c,v.InvalidCommandPrefix)||C.error(c),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 M.CommandInteraction||e instanceof M.AutocompleteInteraction)&&e.guildId&&((m=s.guilds)!=null&&m.length)&&!s.guilds.includes(e.guildId))return null;let a=[];for(let l of s.command.middlewares){let c=this.loadedMiddlewares.get(l);c&&a.push(c)}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,m)=>m.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,m]of s)await this.loadMiddleware(a,m);for(let[a,m]of r)await this.loadCommand(a,m);O&&await Qt(`type CommandTypeData = ${Array.from(this.loadedCommands.mapValues(a=>JSON.stringify(a.command.name)).values()).join(" | ")}`),await this.commandkit.plugins.execute((a,m)=>m.onAfterCommandsLoad(a))}async loadMiddleware(e,t){try{let n=await import(`${re(t.path)}?t=${Date.now()}`),r=0;for(let[s,a]of Object.entries(Xn)){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){C.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(`${re(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,m]of Object.entries(Yn))if(a!=="command"&&n[a]&&r++,n[a]&&!await m(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,m)=>{let l=await m.prepareCommand(a,s);l&&(s=l)}),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){C.error(`Failed to load command ${t.name} (${e})`,n)}}};i(mt,"AppCommandHandler");var Pe=mt;var ut=require("discord.js"),tn=require("fs"),dt=require("fs/promises"),k=require("path");var Qn=/^\+middleware\.(m|c)?(j|t)sx?$/,Zt=/^\+([^+().][^().]*)\.middleware\.(m|c)?(j|t)sx?$/,en=/^\+global-middleware\.(m|c)?(j|t)sx?$/,Zn=/^([^+().][^().]*)\.(m|c)?(j|t)sx?$/,er=/^\(.+\)$/,pt=class pt{constructor(e){this.options=e}commands=new ut.Collection;middlewares=new ut.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,tn.existsSync)(this.options.entrypoint)}isCommand(e){return Zn.test(e)}isMiddleware(e){return Qn.test(e)||en.test(e)||Zt.test(e)}isCategory(e){return er.test(e)}clear(){this.commands.clear(),this.middlewares.clear()}async scan(){let e=await(0,dt.readdir)(this.options.entrypoint,{withFileTypes:!0});for(let t of e){if(t.name.startsWith("_"))continue;let n=(0,k.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,dt.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,k.join)(e,r.name),s)}}}async handle(e,t=null){let n=e.name,r=(0,k.join)(e.parentPath,e.name);if(this.isCommand(n)){let s={id:crypto.randomUUID(),name:(0,k.basename)(r,(0,k.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,k.basename)(r,(0,k.extname)(r)),path:r,relativePath:this.replaceEntrypoint(r),parentPath:e.parentPath,global:en.test(n),command:Zt.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,k.normalize)(e).replace(this.options.entrypoint,"")}};i(pt,"CommandsRouter");var Ke=pt;var nn=require("discord.js"),rn=require("fs"),ft=require("fs/promises"),De=require("path");var ht=class ht{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 nn.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,rn.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,ft.readdir)(e,{withFileTypes:!0});for(let n of t)if(n.isDirectory()){let r=(0,De.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,ft.readdir)(t,{withFileTypes:!0}),m=s&&/^\(.+\)$/.test(e),l=m?e.slice(1,-1):n??null;a.sort((c,d)=>c.name.localeCompare(d.name));for(let c of a)if(!c.name.startsWith("_")){if(c.isDirectory()){let d=(0,De.join)(t,c.name);await this.scanEvent(c.name,d,l,r);continue}c.isFile()&&/\.(m|c)?(j|t)sx?$/.test(c.name)&&r.push((0,De.join)(c.parentPath,c.name))}if(!m){let c=this.events.get(e);if(c){c.listeners=Array.from(new Set([...c.listeners,...r]));return}this.events.set(e,{event:e,path:t,listeners:r,namespace:l})}}};i(ht,"EventsRouter");var Te=ht;var on=require("discord.js");var Ct=class Ct{constructor(e){this.commandkit=e}loadedEvents=new on.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 m of n.listeners){let l=await import(re(m,!0));(!l.default||typeof l.default!="function")&&C.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:l.default,once:!!l.once})}let s=r.length;s||C.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}),C.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,m=s.filter(g=>g.once),l=s.filter(g=>!g.once),c=new Set,d=i(async(...g)=>{let T=!1,I={name:r,args:g,namespace:a??null,once:!1,metadata:n.event,accept(){T||(T=!0)}};await this.commandkit.plugins.execute(async(w,y)=>{var R;if(!T)return(R=y.willEmitEvent)==null?void 0:R.call(y,w,I)}).catch(Object),await Je({event:r,namespace:a??null,data:n.event,commandkit:this.commandkit,arguments:g},async()=>{for(let w of l)try{await w.handler(...g)}catch(y){if(y instanceof ne){C.debug(`Event propagation stopped for ${r}${a?` of namespace ${a}`:""}`);break}C.error(`Error handling event ${r}${a?` of namespace ${a}`:""}`,y)}})},"mainHandler"),f=i(async(...g)=>{let T=!1,I=!1,w={name:r,args:g,namespace:a??null,once:!0,metadata:n.event,accept(){I||(I=!0)}};await this.commandkit.plugins.execute(async(y,R)=>{var te;if(!I)return(te=R.willEmitEvent)==null?void 0:te.call(R,y,w)}).catch(Object);for(let y of m){if(T)break;await Je({event:r,namespace:a??null,data:n.event,commandkit:this.commandkit,arguments:g},async()=>{try{if(c.has(y.handler))return;await y.handler(...g),c.add(y.handler)}catch(R){R instanceof ne&&(C.debug(`Event propagation stopped for ${r}${a?` of namespace ${a}`:""}`),T=!0),C.error(`Error handling event ${r}${a?` of namespace ${a}`:""}`,R)}})}c.size===m.length&&l.length===0&&(this.loadedEvents.delete(t),C.info(`\u{1F9F9} Cleaned up completed once-only event ${r}${a?` of namespace ${a}`:""}`))},"onceHandler");this.loadedEvents.set(t,{...n,mainListener:l.length>0?{handler:d,once:!1}:void 0,executedOnceListeners:c}),a?(l.length>0&&this.commandkit.events.on(a,r,d),m.length>0&&this.commandkit.events.once(a,r,f)):(l.length>0&&e.on(r,d),m.length>0&&e.once(r,f)),C.info(`\u{1F50C} Registered event ${r}${a?` of namespace ${a}`:""} (${l.length} regular, ${m.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),C.info(`\u{1F5D1}\uFE0F Unregistered event ${n}${s?` of namespace ${s}`:""}`)}};i(Ct,"AppEventsHandler");var Ae=Ct;var cn=require("fs"),mn=require("path");var tr=require("rimraf"),gt=require("path"),ce=_(require("fs"));var sn=require("child_process");var L;function nr(o){process.stdout.write(o),process.stdout.write(`
15
- `)}i(nr,"write");function an(o){nr(h.red(`Error: ${o}`)),process.exit(1)}i(an,"panic");async function rr(o){return/\.(c|m)?tsx?$/.test(o)?(process.features.typescript||await ir(),!0):!1}i(rr,"ensureTypeScript");var Z;function or(){if(Z)return Z;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(ce.default.existsSync((0,gt.join)(process.cwd(),e))){Z=t;break}return Z||(Z="npm"),Z}i(or,"detectPackageManager");async function ir(o){if(L)return L;try{L=await import("typescript")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="MODULE_NOT_FOUND")try{let t=or();return(0,sn.execSync)(`${t} add typescript`,{stdio:"inherit",cwd:process.cwd()}),console.log(h.cyan("TypeScript has been installed automatically, restarting...")),L=await import("typescript"),L}catch{an("TypeScript is not installed and could not be installed automatically. Please install it manually.")}an(e||"TypeScript must be installed to use TypeScript config files.")}return L}i(ir,"loadTypeScript");async function ln(o){if(await ar(o),await rr(o)&&L){let{transpileModule:n}=L,r=ce.default.readFileSync(o,"utf8"),{outputText:s}=n(r,{compilerOptions:{module:L.ModuleKind.ESNext,target:L.ScriptTarget.ESNext,moduleResolution:L.ModuleResolutionKind.NodeNext},fileName:o}),a=await Re(),m=(0,gt.join)(a,"compiled-commandkit.config.mjs");ce.default.writeFileSync(m,s),o=m}return await import(`file://${o}`).then(n=>n.default||n)}i(ln,"loadConfigFileFromPath");async function ar(o){if(!ce.default.existsSync(o))throw new Error(`File not found: ${o}`)}i(ar,"ensureExists");var sr=["commandkit.config.js","commandkit.config.mjs","commandkit.config.cjs","commandkit.config.ts"];function lr(o){return sr.map(e=>(0,mn.join)(o,e))}i(lr,"getPossibleConfigPaths");function cr(o){let e=lr(o);for(let t of e)if((0,cn.existsSync)(t))return{path:t,isTypeScript:/\.ts$/.test(t)};return null}i(cr,"findConfigFile");var xt=null;async function un(o=process.cwd()){if(xt)return xt;let e=cr(o);if(!e)return be();let t=await ln(e.path);return xt=t,t}i(un,"loadConfigFile");function dn(o){O&&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"&&C.info(`Received HMR event: ${t}${n?` for ${n}`:""}`);let s=!1,a=!1,m=!1,l={accept(){s=!0},preventDefault(){a=!0},path:n,event:t};try{if(await o.plugins.execute(async(c,d)=>{var f;s||await((f=d.performHMR)==null?void 0:f.call(d,c,l))}),a)return;switch(t){case fe.ReloadCommands:o.commandHandler.reloadCommands(),m=!0;break;case fe.ReloadEvents:o.eventHandler.reloadEvents(),m=!0;break;case fe.Unknown:m=!1;break;default:break}}finally{r&&process.send&&process.send({type:"commandkit-hmr-ack",id:r,handled:m||s})}})}i(dn,"registerDevHooks");var Cn=require("fs");var pn=_(require("events"));var yt=class yt{constructor(e){this.commandkit=e}emitter=new pn.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(yt,"CommandKitEventsChannel");var ke=yt;var fn=require("discord.js");var bt=class bt extends fn.Collection{};i(bt,"FlagStore");var Be=bt;var mr,Et=new Set,vt=new Set;var ee,B,gn,xn,yn,bn,En,U=class U extends hn.default{constructor(t){if(U.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(h.red('"client" is required when instantiating CommandKit.'));super();this.options=t;b(this,B);b(this,ee,!1);x(this,"eventInterceptor");x(this,"config",{defaultLocale:Le.Locale.EnglishUS,getMessageCommandPrefix:i(()=>"!","getMessageCommandPrefix")});x(this,"store",new Map);x(this,"flags",new Be);x(this,"commandsRouter");x(this,"eventsRouter");x(this,"commandHandler",new Pe(this));x(this,"eventHandler",new Ae(this));x(this,"plugins");x(this,"events",new ke(this));this.plugins=new xe(this),U.instance||(U.instance=this),mr=U.instance,S(this,B,gn).call(this)}async start(t){if(!p(this,ee)){if(!this.options.client)throw new Error(h.red('"client" is required when starting CommandKit.'));if(this.eventInterceptor=new de(this.client),O)try{dn(this),await Re()}catch(n){process.env.COMMANDKIT_DEBUG_TYPEGEN&&C.error(n)}if(await this.loadPlugins(),await S(this,B,yn).call(this),this.commandHandler.registerCommandHandler(),this.incrementClientListenersCount(),t!==!1&&!this.options.client.isReady()){this.client.once(Le.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();P(this,ee,!0),await S(this,B,xn).call(this)}}async loadPlugins(){let n=(await un()).plugins.flat(2).filter(r=>Nt(r));if(n.length)for(let r of n)await this.plugins.softRegisterPlugin(r)}get started(){return p(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 Wt()}getPath(t){let n=this.getAppDirectory();if(!n)return null;switch(t){case"commands":return(0,wt.join)(n,"commands");case"events":return(0,wt.join)(n,"events");default:return t}}};ee=new WeakMap,B=new WeakSet,gn=i(async function(){for(let t of Et)try{await t(this)}catch(n){C.error("Error while executing bootstrap hook: ",n)}finally{Et.delete(t)}Et.clear()},"#bootstrapHooks"),xn=i(async function(){for(let t of vt)try{await t(this)}catch(n){C.error("Error while executing application bootstrap hook: ",n)}finally{vt.delete(t)}vt.clear()},"#applicationBootstrapHooks"),yn=i(async function(){if(!this.getAppDirectory())return;let n=this.getPath("commands"),r=this.getPath("events");this.commandsRouter=new Ke({entrypoint:n}),await this.plugins.execute((s,a)=>a.onCommandsRouterInit(s)),this.eventsRouter=new Te({entrypoints:[r]}),await this.plugins.execute((s,a)=>a.onEventsRouterInit(s)),await S(this,B,En).call(this),await S(this,B,bn).call(this)},"#init"),bn=i(async function(){if(this.commandsRouter.isValidPath()){let t=await this.commandsRouter.scan();O&&(0,Cn.writeFileSync)("./.commandkit/commands.json",JSON.stringify(t,null,2))}await this.commandHandler.loadCommands(),this.commandHandler.printBanner()},"#initCommands"),En=i(async function(){this.eventsRouter.isValidPath()&&await this.eventsRouter.scan(),await this.eventHandler.loadEvents()},"#initEvents"),i(U,"CommandKit"),x(U,"createElement",$t),x(U,"Fragment",Lt),x(U,"instance");var Oe=U;var wn=Symbol("commandkitCommandWorker"),me=new vn.AsyncLocalStorage;function ur(o){return o&&Reflect.get(o,wn)===!0}i(ur,"isCommandWorkerContext");function N(o){return me.exit(o)}i(N,"exitContext");function le(o,e){return Reflect.set(o,wn,!0),me.run(o,e)}i(le,"provideContext");function lt(o,e,t){return i((...r)=>le(o,async()=>{try{return await e(...r)}catch(s){he(s)||o.setExecutionError(s)}finally{typeof t=="function"&&setImmediate(async()=>{try{await t(...r)}catch{}})}}),"_fn")}i(lt,"makeContextAwareFunction");function H(o=!1){var t;let e=((t=me.getStore())==null?void 0:t.commandkit)??Oe.instance;if(!e&&o)throw new Error("CommandKit instance not found.");return e}i(H,"getCommandKit");function A(){return me.getStore()}i(A,"getContext");function ct(){let o=me.getStore();if(!o)throw new Error("No commandkit environment found. Please make sure you are inside commandkit handler.");return o}i(ct,"useEnvironment");0&&(module.exports={exitContext,getCommandKit,getContext,isCommandWorkerContext,makeContextAwareFunction,provideContext,useEnvironment});
14
+ `,t=(0,G.join)(process.cwd(),"node_modules","commandkit-types");if(!(0,Xt.existsSync)(t))return;let n=(0,G.join)(t,"command.d.ts");await(0,j.writeFile)(n,e,{encoding:"utf-8"})}i(Qt,"rewriteCommandDeclaration");var Yn={command:i(o=>o instanceof M.SlashCommandBuilder||o instanceof M.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")},Xn={beforeExecute:i(o=>typeof o=="function","beforeExecute"),afterExecute:i(o=>typeof o=="function","afterExecute")},mt=class mt{constructor(e){this.commandkit=e;this.registrar=new we(this.commandkit)}loadedCommands=new M.Collection;loadedMiddlewares=new M.Collection;commandNameToId=new Map;subcommandPathToId=new Map;registrar;onInteraction=null;onMessageCreate=null;commandRunner=new Ie(this);externalCommandData=new M.Collection;externalMiddlewareData=new M.Collection;printBanner(){let e=crypto.randomUUID(),t=this.getCommandsArray().reduce((l,c)=>{let d=c.command.category||e;return l[d]=l[d]||[],l[d].push(c),l},{});console.log(h.green(`Loaded ${h.magenta(this.loadedCommands.size.toString())} commands:`));let n=Object.keys(t).sort(),r={};n.forEach(l=>{if(l!==e&&l.includes(":")){let c=l.split(":"),d=null;for(let f=c.length-1;f>0;f--){let g=c.slice(0,f).join(":");if(n.includes(g)){d=g;break}}d&&(r[d]=r[d]||[],r[d].push(l))}});let s=new Set,a=i((l,c="",d=!1,f="")=>{if(s.has(l))return;s.add(l);let g=t[l],T=r[l]&&r[l].length>0,I=d?"\u2514\u2500":"\u251C\u2500",v=f+(d?" ":"\u2502 ");if(l!==e){let y=l.includes(":")?l.split(":").pop():l;console.log(h.cyan(`${c}${I} ${h.bold(y)}`))}if(g.forEach((y,R)=>{let Fe=R===g.length-1&&!T?"\u2514\u2500":"\u251C\u2500",Mn=l!==e?v:c,In=y.data.command.name,Sn=y.command.middlewares.length>0?h.magenta(" (\u03BB)"):"";console.log(`${h.green(`${Mn}${Fe}`)} ${h.yellow(In)}${Sn}`)}),T){let y=r[l].sort();y.forEach((R,ne)=>{let Fe=ne===y.length-1;a(R,v,Fe,v)})}},"printCategory"),m=n.filter(l=>{if(l===e)return!0;if(l.includes(":")){let c=l.split(":");for(let d=1;d<c.length;d++){let f=c.slice(0,d).join(":");if(n.includes(f))return!1}return!0}return!0}).sort();m.forEach((l,c)=>{let d=c===m.length-1;a(l,"",d)})}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(M.Events.InteractionCreate,this.onInteraction),this.commandkit.client.on(M.Events.MessageCreate,this.onMessageCreate)}async prepareCommandRun(e,t){var m;let n;if(!t)if(e instanceof M.Message){if(e.author.bot)return null;let l=await this.commandkit.config.getMessageCommandPrefix(e);n=new Ee(e,Array.isArray(l)?l:[l],c=>{var T,I;let d=this.commandNameToId.get(c);if(!d)return null;let f=this.loadedCommands.get(d);return!f||e.guildId&&((T=f.guilds)!=null&&T.length)&&!f.guilds.includes(e.guildId)?null:((I=("toJSON"in f.data.command?f.data.command.toJSON():f.data.command).options)==null?void 0:I.reduce((v,y)=>(v[y.name]=y.type,v),{}))??{}});try{t=n.getFullCommand().split(" ")[0]}catch(c){return F(c,w.InvalidCommandPrefix)||C.error(c),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 M.CommandInteraction||e instanceof M.AutocompleteInteraction)&&e.guildId&&((m=s.guilds)!=null&&m.length)&&!s.guilds.includes(e.guildId))return null;let a=[];for(let l of s.command.middlewares){let c=this.loadedMiddlewares.get(l);c&&a.push(c)}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,m)=>m.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,m]of s)await this.loadMiddleware(a,m);for(let[a,m]of r)await this.loadCommand(a,m);O&&await Qt(`type CommandTypeData = ${Array.from(this.loadedCommands.mapValues(a=>JSON.stringify(a.command.name)).values()).join(" | ")}`),await this.commandkit.plugins.execute((a,m)=>m.onAfterCommandsLoad(a))}async loadMiddleware(e,t){try{let n=await import(`${oe(t.path)}?t=${Date.now()}`),r=0;for(let[s,a]of Object.entries(Xn)){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){C.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(`${oe(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,m]of Object.entries(Yn))if(a!=="command"&&n[a]&&r++,n[a]&&!await m(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,m)=>{let l=await m.prepareCommand(a,s);l&&(s=l)}),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){C.error(`Failed to load command ${t.name} (${e})`,n)}}};i(mt,"AppCommandHandler");var Pe=mt;var ut=require("discord.js"),tn=require("fs"),dt=require("fs/promises"),k=require("path");var Qn=/^\+middleware\.(m|c)?(j|t)sx?$/,Zt=/^\+([^+().][^().]*)\.middleware\.(m|c)?(j|t)sx?$/,en=/^\+global-middleware\.(m|c)?(j|t)sx?$/,Zn=/^([^+().][^().]*)\.(m|c)?(j|t)sx?$/,er=/^\(.+\)$/,pt=class pt{constructor(e){this.options=e}commands=new ut.Collection;middlewares=new ut.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,tn.existsSync)(this.options.entrypoint)}isCommand(e){return Zn.test(e)}isMiddleware(e){return Qn.test(e)||en.test(e)||Zt.test(e)}isCategory(e){return er.test(e)}clear(){this.commands.clear(),this.middlewares.clear()}async scan(){let e=await(0,dt.readdir)(this.options.entrypoint,{withFileTypes:!0});for(let t of e){if(t.name.startsWith("_"))continue;let n=(0,k.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,dt.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,k.join)(e,r.name),s)}}}async handle(e,t=null){let n=e.name,r=(0,k.join)(e.parentPath,e.name);if(this.isCommand(n)){let s={id:crypto.randomUUID(),name:(0,k.basename)(r,(0,k.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,k.basename)(r,(0,k.extname)(r)),path:r,relativePath:this.replaceEntrypoint(r),parentPath:e.parentPath,global:en.test(n),command:Zt.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,k.normalize)(e).replace(this.options.entrypoint,"")}};i(pt,"CommandsRouter");var Ke=pt;var nn=require("discord.js"),rn=require("fs"),ft=require("fs/promises"),De=require("path");var ht=class ht{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 nn.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,rn.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,ft.readdir)(e,{withFileTypes:!0});for(let n of t)if(n.isDirectory()){let r=(0,De.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,ft.readdir)(t,{withFileTypes:!0}),m=s&&/^\(.+\)$/.test(e),l=m?e.slice(1,-1):n??null;a.sort((c,d)=>c.name.localeCompare(d.name));for(let c of a)if(!c.name.startsWith("_")){if(c.isDirectory()){let d=(0,De.join)(t,c.name);await this.scanEvent(c.name,d,l,r);continue}c.isFile()&&/\.(m|c)?(j|t)sx?$/.test(c.name)&&r.push((0,De.join)(c.parentPath,c.name))}if(!m){let c=this.events.get(e);if(c){c.listeners=Array.from(new Set([...c.listeners,...r]));return}this.events.set(e,{event:e,path:t,listeners:r,namespace:l})}}};i(ht,"EventsRouter");var Te=ht;var on=require("discord.js");var Ct=class Ct{constructor(e){this.commandkit=e}loadedEvents=new on.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 m of n.listeners){let l=await import(oe(m,!0));(!l.default||typeof l.default!="function")&&C.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:l.default,once:!!l.once})}let s=r.length;s||C.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}),C.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,m=s.filter(g=>g.once),l=s.filter(g=>!g.once),c=new Set,d=i(async(...g)=>{let T=!1,I={name:r,args:g,namespace:a??null,once:!1,metadata:n.event,accept(){T||(T=!0)}};await this.commandkit.plugins.execute(async(v,y)=>{var R;if(!T)return(R=y.willEmitEvent)==null?void 0:R.call(y,v,I)}).catch(Object),await Je({event:r,namespace:a??null,data:n.event,commandkit:this.commandkit,arguments:g},async()=>{for(let v of l)try{await v.handler(...g)}catch(y){if(y instanceof re){C.debug(`Event propagation stopped for ${r}${a?` of namespace ${a}`:""}`);break}C.error(`Error handling event ${r}${a?` of namespace ${a}`:""}`,y)}})},"mainHandler"),f=i(async(...g)=>{let T=!1,I=!1,v={name:r,args:g,namespace:a??null,once:!0,metadata:n.event,accept(){I||(I=!0)}};await this.commandkit.plugins.execute(async(y,R)=>{var ne;if(!I)return(ne=R.willEmitEvent)==null?void 0:ne.call(R,y,v)}).catch(Object);for(let y of m){if(T)break;await Je({event:r,namespace:a??null,data:n.event,commandkit:this.commandkit,arguments:g},async()=>{try{if(c.has(y.handler))return;await y.handler(...g),c.add(y.handler)}catch(R){R instanceof re&&(C.debug(`Event propagation stopped for ${r}${a?` of namespace ${a}`:""}`),T=!0),C.error(`Error handling event ${r}${a?` of namespace ${a}`:""}`,R)}})}c.size===m.length&&l.length===0&&(this.loadedEvents.delete(t),C.info(`\u{1F9F9} Cleaned up completed once-only event ${r}${a?` of namespace ${a}`:""}`))},"onceHandler");this.loadedEvents.set(t,{...n,mainListener:l.length>0?{handler:d,once:!1}:void 0,executedOnceListeners:c}),a?(l.length>0&&this.commandkit.events.on(a,r,d),m.length>0&&this.commandkit.events.once(a,r,f)):(l.length>0&&e.on(r,d),m.length>0&&e.once(r,f)),C.info(`\u{1F50C} Registered event ${r}${a?` of namespace ${a}`:""} (${l.length} regular, ${m.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),C.info(`\u{1F5D1}\uFE0F Unregistered event ${n}${s?` of namespace ${s}`:""}`)}};i(Ct,"AppEventsHandler");var Ae=Ct;var cn=require("fs"),mn=require("path");var tr=require("rimraf"),gt=require("path"),ee=_(require("fs"));var sn=require("child_process");var L;function nr(o){process.stdout.write(o),process.stdout.write(`
15
+ `)}i(nr,"write");function an(o){nr(h.red(`Error: ${o}`)),process.exit(1)}i(an,"panic");async function rr(o){return/\.(c|m)?tsx?$/.test(o)?(process.features.typescript||await ir(),!0):!1}i(rr,"ensureTypeScript");var Z;function or(){if(Z)return Z;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(ee.default.existsSync((0,gt.join)(process.cwd(),e))){Z=t;break}return Z||(Z="npm"),Z}i(or,"detectPackageManager");async function ir(o){if(L)return L;try{L=await import("typescript")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="MODULE_NOT_FOUND")try{let t=or();return(0,sn.execSync)(`${t} add typescript`,{stdio:"inherit",cwd:process.cwd()}),console.log(h.cyan("TypeScript has been installed automatically, restarting...")),L=await import("typescript"),L}catch{an("TypeScript is not installed and could not be installed automatically. Please install it manually.")}an(e||"TypeScript must be installed to use TypeScript config files.")}return L}i(ir,"loadTypeScript");async function ln(o){await ar(o);let e=await rr(o),t;if(e&&L){let{transpileModule:r}=L,s=ee.default.readFileSync(o,"utf8"),{outputText:a}=r(s,{compilerOptions:{module:L.ModuleKind.ESNext,target:L.ScriptTarget.ESNext,moduleResolution:L.ModuleResolutionKind.NodeNext},fileName:o});await Re();let m=process.cwd(),l=(0,gt.join)(m,"compiled-commandkit.config.mjs");ee.default.writeFileSync(l,a),t=l,o=l}let n=await import(`file://${o}`).then(r=>r.default||r);if(t)try{ee.default.unlinkSync(t)}catch{}return n}i(ln,"loadConfigFileFromPath");async function ar(o){if(!ee.default.existsSync(o))throw new Error(`File not found: ${o}`)}i(ar,"ensureExists");var sr=["commandkit.config.js","commandkit.config.mjs","commandkit.config.cjs","commandkit.config.ts"];function lr(o){return sr.map(e=>(0,mn.join)(o,e))}i(lr,"getPossibleConfigPaths");function cr(o){let e=lr(o);for(let t of e)if((0,cn.existsSync)(t))return{path:t,isTypeScript:/\.ts$/.test(t)};return null}i(cr,"findConfigFile");var xt=null;async function un(o=process.cwd()){if(xt)return xt;let e=cr(o);if(!e)return be();let t=await ln(e.path);return xt=t,t}i(un,"loadConfigFile");function dn(o){O&&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"&&C.info(`Received HMR event: ${t}${n?` for ${n}`:""}`);let s=!1,a=!1,m=!1,l={accept(){s=!0},preventDefault(){a=!0},path:n,event:t};try{if(await o.plugins.execute(async(c,d)=>{var f;s||await((f=d.performHMR)==null?void 0:f.call(d,c,l))}),a)return;switch(t){case fe.ReloadCommands:o.commandHandler.reloadCommands(),m=!0;break;case fe.ReloadEvents:o.eventHandler.reloadEvents(),m=!0;break;case fe.Unknown:m=!1;break;default:break}}finally{r&&process.send&&process.send({type:"commandkit-hmr-ack",id:r,handled:m||s})}})}i(dn,"registerDevHooks");var Cn=require("fs");var pn=_(require("events"));var yt=class yt{constructor(e){this.commandkit=e}emitter=new pn.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(yt,"CommandKitEventsChannel");var ke=yt;var fn=require("discord.js");var bt=class bt extends fn.Collection{};i(bt,"FlagStore");var Be=bt;var mr,Et=new Set,wt=new Set;var te,B,gn,xn,yn,bn,En,U=class U extends hn.default{constructor(t){if(U.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(h.red('"client" is required when instantiating CommandKit.'));super();this.options=t;b(this,B);b(this,te,!1);x(this,"eventInterceptor");x(this,"config",{defaultLocale:Le.Locale.EnglishUS,getMessageCommandPrefix:i(()=>"!","getMessageCommandPrefix")});x(this,"store",new Map);x(this,"flags",new Be);x(this,"commandsRouter");x(this,"eventsRouter");x(this,"commandHandler",new Pe(this));x(this,"eventHandler",new Ae(this));x(this,"plugins");x(this,"events",new ke(this));this.plugins=new xe(this),U.instance||(U.instance=this),mr=U.instance,S(this,B,gn).call(this)}async start(t){if(!p(this,te)){if(!this.options.client)throw new Error(h.red('"client" is required when starting CommandKit.'));if(this.eventInterceptor=new de(this.client),O)try{dn(this),await Re()}catch(n){process.env.COMMANDKIT_DEBUG_TYPEGEN&&C.error(n)}if(await this.loadPlugins(),await S(this,B,yn).call(this),this.commandHandler.registerCommandHandler(),this.incrementClientListenersCount(),t!==!1&&!this.options.client.isReady()){this.client.once(Le.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();P(this,te,!0),await S(this,B,xn).call(this)}}async loadPlugins(){let n=(await un()).plugins.flat(2).filter(r=>Nt(r));if(n.length)for(let r of n)await this.plugins.softRegisterPlugin(r)}get started(){return p(this,te)}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 Wt()}getPath(t){let n=this.getAppDirectory();if(!n)return null;switch(t){case"commands":return(0,vt.join)(n,"commands");case"events":return(0,vt.join)(n,"events");default:return t}}};te=new WeakMap,B=new WeakSet,gn=i(async function(){for(let t of Et)try{await t(this)}catch(n){C.error("Error while executing bootstrap hook: ",n)}finally{Et.delete(t)}Et.clear()},"#bootstrapHooks"),xn=i(async function(){for(let t of wt)try{await t(this)}catch(n){C.error("Error while executing application bootstrap hook: ",n)}finally{wt.delete(t)}wt.clear()},"#applicationBootstrapHooks"),yn=i(async function(){if(!this.getAppDirectory())return;let n=this.getPath("commands"),r=this.getPath("events");this.commandsRouter=new Ke({entrypoint:n}),await this.plugins.execute((s,a)=>a.onCommandsRouterInit(s)),this.eventsRouter=new Te({entrypoints:[r]}),await this.plugins.execute((s,a)=>a.onEventsRouterInit(s)),await S(this,B,En).call(this),await S(this,B,bn).call(this)},"#init"),bn=i(async function(){if(this.commandsRouter.isValidPath()){let t=await this.commandsRouter.scan();O&&(0,Cn.writeFileSync)("./.commandkit/commands.json",JSON.stringify(t,null,2))}await this.commandHandler.loadCommands(),this.commandHandler.printBanner()},"#initCommands"),En=i(async function(){this.eventsRouter.isValidPath()&&await this.eventsRouter.scan(),await this.eventHandler.loadEvents()},"#initEvents"),i(U,"CommandKit"),x(U,"createElement",Ft),x(U,"Fragment",Lt),x(U,"instance");var Oe=U;var vn=Symbol("commandkitCommandWorker"),me=new wn.AsyncLocalStorage;function ur(o){return o&&Reflect.get(o,vn)===!0}i(ur,"isCommandWorkerContext");function N(o){return me.exit(o)}i(N,"exitContext");function ce(o,e){return Reflect.set(o,vn,!0),me.run(o,e)}i(ce,"provideContext");function lt(o,e,t){return i((...r)=>ce(o,async()=>{try{return await e(...r)}catch(s){he(s)||o.setExecutionError(s)}finally{typeof t=="function"&&setImmediate(async()=>{try{await t(...r)}catch{}})}}),"_fn")}i(lt,"makeContextAwareFunction");function H(o=!1){var t;let e=((t=me.getStore())==null?void 0:t.commandkit)??Oe.instance;if(!e&&o)throw new Error("CommandKit instance not found.");return e}i(H,"getCommandKit");function A(){return me.getStore()}i(A,"getContext");function ct(){let o=me.getStore();if(!o)throw new Error("No commandkit environment found. Please make sure you are inside commandkit handler.");return o}i(ct,"useEnvironment");0&&(module.exports={exitContext,getCommandKit,getContext,isCommandWorkerContext,makeContextAwareFunction,provideContext,useEnvironment});
16
16
  //# sourceMappingURL=async-context.js.map