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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/CommandKit.js +4 -4
  2. package/dist/CommandKit.js.map +1 -1
  3. package/dist/app/commands/AppCommandRunner.js +2 -2
  4. package/dist/app/commands/AppCommandRunner.js.map +1 -1
  5. package/dist/app/commands/Context.js +2 -2
  6. package/dist/app/commands/Context.js.map +1 -1
  7. package/dist/app/handlers/AppCommandHandler.js +3 -3
  8. package/dist/app/handlers/AppCommandHandler.js.map +1 -1
  9. package/dist/app/handlers/AppEventsHandler.js +2 -2
  10. package/dist/app/handlers/AppEventsHandler.js.map +1 -1
  11. package/dist/app/index.js +3 -3
  12. package/dist/app/index.js.map +1 -1
  13. package/dist/app/register/CommandRegistrar.js +2 -2
  14. package/dist/app/register/CommandRegistrar.js.map +1 -1
  15. package/dist/cli/app-process.js +2 -2
  16. package/dist/cli/app-process.js.map +1 -1
  17. package/dist/cli/build.js +2 -2
  18. package/dist/cli/build.js.map +1 -1
  19. package/dist/cli/common.js +4 -4
  20. package/dist/cli/common.js.map +1 -1
  21. package/dist/cli/development.js +8 -8
  22. package/dist/cli/development.js.map +1 -1
  23. package/dist/cli/generators.js +4 -4
  24. package/dist/cli/generators.js.map +1 -1
  25. package/dist/cli/information.js +1 -1
  26. package/dist/cli/information.js.map +1 -1
  27. package/dist/cli/init.js +15 -15
  28. package/dist/cli/init.js.map +1 -1
  29. package/dist/cli/production.js +9 -9
  30. package/dist/cli/production.js.map +1 -1
  31. package/dist/cli/type-checker.js +2 -2
  32. package/dist/cli/type-checker.js.map +1 -1
  33. package/dist/components/index.js +4 -4
  34. package/dist/components/index.js.map +1 -1
  35. package/dist/components/v1/button/Button.js +4 -4
  36. package/dist/components/v1/button/Button.js.map +1 -1
  37. package/dist/components/v1/button/ButtonKit.js +4 -4
  38. package/dist/components/v1/button/ButtonKit.js.map +1 -1
  39. package/dist/components/v1/modal/Modal.js +4 -4
  40. package/dist/components/v1/modal/Modal.js.map +1 -1
  41. package/dist/components/v1/modal/ModalKit.js +4 -4
  42. package/dist/components/v1/modal/ModalKit.js.map +1 -1
  43. package/dist/components/v1/select-menu/ChannelSelectMenuKit.js +4 -4
  44. package/dist/components/v1/select-menu/ChannelSelectMenuKit.js.map +1 -1
  45. package/dist/components/v1/select-menu/MentionableSelectMenuKit.js +4 -4
  46. package/dist/components/v1/select-menu/MentionableSelectMenuKit.js.map +1 -1
  47. package/dist/components/v1/select-menu/RoleSelectMenuKit.js +4 -4
  48. package/dist/components/v1/select-menu/RoleSelectMenuKit.js.map +1 -1
  49. package/dist/components/v1/select-menu/SelectMenu.js +4 -4
  50. package/dist/components/v1/select-menu/SelectMenu.js.map +1 -1
  51. package/dist/components/v1/select-menu/StringSelectMenuKit.js +4 -4
  52. package/dist/components/v1/select-menu/StringSelectMenuKit.js.map +1 -1
  53. package/dist/components/v1/select-menu/UserSelectMenuKit.js +4 -4
  54. package/dist/components/v1/select-menu/UserSelectMenuKit.js.map +1 -1
  55. package/dist/config/config.js +2 -2
  56. package/dist/config/config.js.map +1 -1
  57. package/dist/config/default.js +2 -2
  58. package/dist/config/default.js.map +1 -1
  59. package/dist/config/loader.js +4 -4
  60. package/dist/config/loader.js.map +1 -1
  61. package/dist/context/async-context.js +4 -4
  62. package/dist/context/async-context.js.map +1 -1
  63. package/dist/context/environment.js +2 -2
  64. package/dist/context/environment.js.map +1 -1
  65. package/dist/flags/feature-flags.js +6 -6
  66. package/dist/flags/feature-flags.js.map +1 -1
  67. package/dist/index.js +4 -4
  68. package/dist/index.js.map +1 -1
  69. package/dist/logger/DefaultLogger.js +2 -2
  70. package/dist/logger/DefaultLogger.js.map +1 -1
  71. package/dist/logger/Logger.js +2 -2
  72. package/dist/logger/Logger.js.map +1 -1
  73. package/dist/plugins/index.js +2 -2
  74. package/dist/plugins/index.js.map +1 -1
  75. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js +1 -1
  76. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js.map +1 -1
  77. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js +1 -1
  78. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js.map +1 -1
  79. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js +2 -2
  80. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js.map +1 -1
  81. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js +2 -2
  82. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js.map +1 -1
  83. package/dist/utils/dev-hooks.js +1 -1
  84. package/dist/utils/dev-hooks.js.map +1 -1
  85. package/dist/utils/utilities.js +1 -1
  86. package/dist/utils/utilities.js.map +1 -1
  87. package/dist/version.js +1 -1
  88. package/dist/version.js.map +1 -1
  89. package/package.json +2 -2
@@ -1,8 +1,8 @@
1
- "use strict";var at=Object.create;var $=Object.defineProperty;var st=Object.getOwnPropertyDescriptor;var lt=Object.getOwnPropertyNames;var ct=Object.getPrototypeOf,mt=Object.prototype.hasOwnProperty;var ke=i=>{throw TypeError(i)};var ut=(i,e,t)=>e in i?$(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var o=(i,e)=>$(i,"name",{value:e,configurable:!0});var dt=(i,e)=>{for(var t in e)$(i,t,{get:e[t],enumerable:!0})},Be=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of lt(e))!mt.call(i,r)&&r!==t&&$(i,r,{get:()=>e[r],enumerable:!(n=st(e,r))||n.enumerable});return i};var W=(i,e,t)=>(t=i!=null?at(ct(i)):{},Be(e||!i||!i.__esModule?$(t,"default",{value:i,enumerable:!0}):t,i)),pt=i=>Be($({},"__esModule",{value:!0}),i);var R=(i,e,t)=>ut(i,typeof e!="symbol"?e+"":e,t),pe=(i,e,t)=>e.has(i)||ke("Cannot "+t);var p=(i,e,t)=>(pe(i,e,"read from private field"),t?t.call(i):e.get(i)),g=(i,e,t)=>e.has(i)?ke("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(i):e.set(i,t),v=(i,e,t,n)=>(pe(i,e,"write to private field"),n?n.call(i,t):e.set(i,t),t),D=(i,e,t)=>(pe(i,e,"access private method"),t);var nn={};dt(nn,{AppCommandHandler:()=>re});module.exports=pt(nn);var E=require("discord.js");var Oe=W(require("path"));function X(i,e=!1){return`${"file://"+Oe.default.resolve(i).replace(/\\\\|\\/g,"/")}${e?`?ts=${Date.now()}`:""}`}o(X,"toFileURL");var w=require("discord.js");var y={ExitMiddleware:Symbol("kExitMiddleware"),ForwardedCommand:Symbol("kForwardedCommand"),InvalidCommandPrefix:Symbol("kInvalidCommandPrefix"),PluginCaptureHandle:Symbol("kPluginCaptureHandle")};function F(i){let e=new Error;return Reflect.set(e,"code",i),e}o(F,"createCommandKitError");function Q(i){if(!(i instanceof Error))return!1;let e=Reflect.get(i,"code");for(let t in y)if(y[t]===e)return!0;return!1}o(Q,"isCommandKitError");function A(i,e){if(!Q(i))return!1;let t=Reflect.get(i,"code");return t?Array.isArray(e)?e.includes(t):t===e:!1}o(A,"isErrorType");var k,U,V,he=class he{constructor(e,t,n){this.message=e;this.prefix=t;this.schema=n;g(this,k,null);g(this,U,null);g(this,V,[])}getArgs(){return this.parse(),p(this,V)}get options(){return p(this,U)||v(this,U,new fe(this)),p(this,U)}getOption(e){var t;return(t=this.parse().options.find(n=>n.name===e))==null?void 0:t.value}getCommand(){return this.parse().command}getSubcommand(){return this.parse().subcommand}getSubcommandGroup(){return this.parse().subcommandGroup}getPrefix(){for(let e of this.prefix)if(this.message.content.startsWith(e))return e}getFullCommand(){return[this.getCommand(),this.getSubcommandGroup(),this.getSubcommand()].filter(e=>e).join(" ")}parse(){if(p(this,k))return p(this,k);let e=this.message.content,t=this.getPrefix();if(!t)throw F(y.InvalidCommandPrefix);let n=e.slice(t.length).trim().split(" "),r=n.shift();v(this,V,n);let a,s;if(r!=null&&r.includes(":")){let[,d,m]=r.split(":");!m&&d?s=d:m&&d&&(a=d,s=m)}let u=this.schema([r,a,s].filter(Boolean).join(" ").trim()),c=n.map(d=>{try{let[m,f]=d.split(":");if(!(m in u))return null;switch(u[m]){case w.ApplicationCommandOptionType.Boolean:return{name:m,value:f==="true"};case w.ApplicationCommandOptionType.Integer:return{name:m,value:parseInt(f,10)};case w.ApplicationCommandOptionType.Number:return{name:m,value:parseFloat(f)};case w.ApplicationCommandOptionType.String:return{name:m,value:f};case w.ApplicationCommandOptionType.User:return{name:m,value:this.message.mentions.users.find(x=>x.id===f.replace(/[<@!>]/g,""))};case w.ApplicationCommandOptionType.Channel:return{name:m,value:this.message.mentions.channels.find(x=>x.id===f.replace(/[<#>]/g,""))};case w.ApplicationCommandOptionType.Role:return{name:m,value:this.message.mentions.roles.find(x=>x.id===f.replace(/[<@&>]/g,""))};case w.ApplicationCommandOptionType.Attachment:return{name:m,value:this.message.attachments.find(x=>x.name===f)};default:return null}}catch{return null}}).filter(d=>d!==null);return v(this,k,{command:r,options:c,subcommand:s,subcommandGroup:a}),p(this,k)}};k=new WeakMap,U=new WeakMap,V=new WeakMap,o(he,"MessageCommandParser");var Z=he,Ce=class Ce{constructor(e){this.parser=e}assertOption(e,t=!1){let n=this.parser.getOption(e);if(t&&n===void 0)throw new Error(`Option "${e}" is required.`);return n??null}getMember(e,t=!1){var a;let n=this.assertOption(e,t),r=(a=this.parser.message.guild)==null?void 0:a.members.cache.get(n==null?void 0:n.id);if(t&&!r)throw new Error(`Member "${e}" is required.`);return r??null}getAttachment(e,t=!1){return this.assertOption(e,t)}getBoolean(e,t=!1){return this.assertOption(e,t)}getNumber(e,t=!1){return this.assertOption(e,t)}getString(e,t=!1){return this.assertOption(e,t)}getInteger(e,t=!1){return this.assertOption(e,t)}getUser(e,t=!1){return this.assertOption(e,t)}getChannel(e,t=!1){return this.assertOption(e,t)}getRole(e,t=!1){return this.assertOption(e,t)}getMentionable(e,t=!1){let n=this.assertOption(e,t);if(n instanceof w.GuildMember||n instanceof w.User||n instanceof w.Role)return n;if(t)throw new Error(`Mentionable "${e}" is required.`);return null}getSubcommand(e=!1){let t=this.parser.getSubcommand();if(e&&t===void 0)throw new Error("Subcommand is required.");return t??null}getSubcommandGroup(e=!1){let t=this.parser.getSubcommandGroup();if(e&&t===void 0)throw new Error("Subcommand group is required.");return t??null}};o(Ce,"MessageCommandOptions");var fe=Ce;var T=require("discord.js");var Ye=require("async_hooks");var Vt=W(require("events"));var Le=require("picocolors"),h=(0,Le.createColors)(!0);var ft=require("discord.js");var ge=require("discord.js");var ht=require("discord.js");var $e=require("discord.js");var xe=require("discord.js");var Fe=require("discord.js");var Ue=require("discord.js");var Ne=require("discord.js");var He=require("discord.js");var Ge=require("discord.js");var Ct=require("discord.js");var B=require("discord.js");var gt=require("discord.js");var _e=require("discord.js");var ee=require("discord.js");var xt=require("discord.js");var yt=require("discord.js");var Je=require("discord.js");var Rt=require("fs"),Pt=require("path");var ai=Symbol("kCommandKitCacheTag"),G=process.env.COMMANDKIT_IS_DEV==="true",si=process.env.COMMANDKIT_IS_TEST==="true",li=process.env.COMMANDKIT_BOOTSTRAP_MODE||"development";var We=require("crypto");var ye=class ye{constructor(e){this.options=e}id=(0,We.randomUUID)();loadedAt=Date.now();async activate(e){}async deactivate(e){}};o(ye,"PluginCommon");var q=ye;var be=class be extends q{type="compiler";async transform(e){return null}async resolve(e){return null}async onBuildStart(){}async onBuildEnd(){}};o(be,"CompilerPlugin");var j=be;var vt=require("discord.js");var wt=require("fs/promises");var Ee=class Ee extends j{name="MacroPlugin";macroTransformer;async activate(){let e=await import("use-macro");this.macroTransformer=new e.MacroTransformer}async deactivate(){this.macroTransformer=null}async transform(e){if(!this.options.enabled)return null;let{contents:t,loader:n}=await this.macroTransformer.transform(e.contents.toString(),e.path);return{contents:t,loader:n}}};o(Ee,"MacroPlugin");var te=Ee;var Mt={plugins:[new te({enabled:!0})],esbuildPlugins:[],compilerOptions:{macro:{development:!1}},static:!0,typescript:{ignoreBuildErrors:!1},distDir:"dist",env:{},sourceMap:{development:!0,production:!0},typedCommands:!0};var Ve=require("async_hooks");var Ca=Symbol("commandkitEventWorker"),It=new Ve.AsyncLocalStorage;var qt=require("path");var Kt=require("discord.js"),Dt=require("fs"),Tt=require("fs/promises"),ne=require("path");var At=require("discord.js"),kt=require("fs"),Bt=require("fs/promises"),Ot=require("path");var Lt=require("discord.js");var Gt=require("fs"),jt=require("path");var Ft=require("rimraf"),Ut=require("path"),Nt=W(require("fs"));var we=require("fs/promises"),ve=require("path");var qe=require("fs");async function ze(i){let e=`// Auto-generated command types
1
+ "use strict";var at=Object.create;var F=Object.defineProperty;var st=Object.getOwnPropertyDescriptor;var lt=Object.getOwnPropertyNames;var ct=Object.getPrototypeOf,mt=Object.prototype.hasOwnProperty;var ke=i=>{throw TypeError(i)};var ut=(i,e,t)=>e in i?F(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var o=(i,e)=>F(i,"name",{value:e,configurable:!0});var dt=(i,e)=>{for(var t in e)F(i,t,{get:e[t],enumerable:!0})},Be=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of lt(e))!mt.call(i,r)&&r!==t&&F(i,r,{get:()=>e[r],enumerable:!(n=st(e,r))||n.enumerable});return i};var W=(i,e,t)=>(t=i!=null?at(ct(i)):{},Be(e||!i||!i.__esModule?F(t,"default",{value:i,enumerable:!0}):t,i)),pt=i=>Be(F({},"__esModule",{value:!0}),i);var R=(i,e,t)=>ut(i,typeof e!="symbol"?e+"":e,t),pe=(i,e,t)=>e.has(i)||ke("Cannot "+t);var p=(i,e,t)=>(pe(i,e,"read from private field"),t?t.call(i):e.get(i)),g=(i,e,t)=>e.has(i)?ke("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(i):e.set(i,t),w=(i,e,t,n)=>(pe(i,e,"write to private field"),n?n.call(i,t):e.set(i,t),t),D=(i,e,t)=>(pe(i,e,"access private method"),t);var nn={};dt(nn,{AppCommandHandler:()=>re});module.exports=pt(nn);var E=require("discord.js");var Oe=W(require("path"));function X(i,e=!1){return`${"file://"+Oe.default.resolve(i).replace(/\\\\|\\/g,"/")}${e?`?ts=${Date.now()}`:""}`}o(X,"toFileURL");var v=require("discord.js");var y={ExitMiddleware:Symbol("kExitMiddleware"),ForwardedCommand:Symbol("kForwardedCommand"),InvalidCommandPrefix:Symbol("kInvalidCommandPrefix"),PluginCaptureHandle:Symbol("kPluginCaptureHandle")};function $(i){let e=new Error;return Reflect.set(e,"code",i),e}o($,"createCommandKitError");function Q(i){if(!(i instanceof Error))return!1;let e=Reflect.get(i,"code");for(let t in y)if(y[t]===e)return!0;return!1}o(Q,"isCommandKitError");function A(i,e){if(!Q(i))return!1;let t=Reflect.get(i,"code");return t?Array.isArray(e)?e.includes(t):t===e:!1}o(A,"isErrorType");var k,U,V,he=class he{constructor(e,t,n){this.message=e;this.prefix=t;this.schema=n;g(this,k,null);g(this,U,null);g(this,V,[])}getArgs(){return this.parse(),p(this,V)}get options(){return p(this,U)||w(this,U,new fe(this)),p(this,U)}getOption(e){var t;return(t=this.parse().options.find(n=>n.name===e))==null?void 0:t.value}getCommand(){return this.parse().command}getSubcommand(){return this.parse().subcommand}getSubcommandGroup(){return this.parse().subcommandGroup}getPrefix(){for(let e of this.prefix)if(this.message.content.startsWith(e))return e}getFullCommand(){return[this.getCommand(),this.getSubcommandGroup(),this.getSubcommand()].filter(e=>e).join(" ")}parse(){if(p(this,k))return p(this,k);let e=this.message.content,t=this.getPrefix();if(!t)throw $(y.InvalidCommandPrefix);let n=e.slice(t.length).trim().split(" "),r=n.shift();w(this,V,n);let a,s;if(r!=null&&r.includes(":")){let[,d,m]=r.split(":");!m&&d?s=d:m&&d&&(a=d,s=m)}let u=this.schema([r,a,s].filter(Boolean).join(" ").trim()),c=n.map(d=>{try{let[m,f]=d.split(":");if(!(m in u))return null;switch(u[m]){case v.ApplicationCommandOptionType.Boolean:return{name:m,value:f==="true"};case v.ApplicationCommandOptionType.Integer:return{name:m,value:parseInt(f,10)};case v.ApplicationCommandOptionType.Number:return{name:m,value:parseFloat(f)};case v.ApplicationCommandOptionType.String:return{name:m,value:f};case v.ApplicationCommandOptionType.User:return{name:m,value:this.message.mentions.users.find(x=>x.id===f.replace(/[<@!>]/g,""))};case v.ApplicationCommandOptionType.Channel:return{name:m,value:this.message.mentions.channels.find(x=>x.id===f.replace(/[<#>]/g,""))};case v.ApplicationCommandOptionType.Role:return{name:m,value:this.message.mentions.roles.find(x=>x.id===f.replace(/[<@&>]/g,""))};case v.ApplicationCommandOptionType.Attachment:return{name:m,value:this.message.attachments.find(x=>x.name===f)};default:return null}}catch{return null}}).filter(d=>d!==null);return w(this,k,{command:r,options:c,subcommand:s,subcommandGroup:a}),p(this,k)}};k=new WeakMap,U=new WeakMap,V=new WeakMap,o(he,"MessageCommandParser");var Z=he,Ce=class Ce{constructor(e){this.parser=e}assertOption(e,t=!1){let n=this.parser.getOption(e);if(t&&n===void 0)throw new Error(`Option "${e}" is required.`);return n??null}getMember(e,t=!1){var a;let n=this.assertOption(e,t),r=(a=this.parser.message.guild)==null?void 0:a.members.cache.get(n==null?void 0:n.id);if(t&&!r)throw new Error(`Member "${e}" is required.`);return r??null}getAttachment(e,t=!1){return this.assertOption(e,t)}getBoolean(e,t=!1){return this.assertOption(e,t)}getNumber(e,t=!1){return this.assertOption(e,t)}getString(e,t=!1){return this.assertOption(e,t)}getInteger(e,t=!1){return this.assertOption(e,t)}getUser(e,t=!1){return this.assertOption(e,t)}getChannel(e,t=!1){return this.assertOption(e,t)}getRole(e,t=!1){return this.assertOption(e,t)}getMentionable(e,t=!1){let n=this.assertOption(e,t);if(n instanceof v.GuildMember||n instanceof v.User||n instanceof v.Role)return n;if(t)throw new Error(`Mentionable "${e}" is required.`);return null}getSubcommand(e=!1){let t=this.parser.getSubcommand();if(e&&t===void 0)throw new Error("Subcommand is required.");return t??null}getSubcommandGroup(e=!1){let t=this.parser.getSubcommandGroup();if(e&&t===void 0)throw new Error("Subcommand group is required.");return t??null}};o(Ce,"MessageCommandOptions");var fe=Ce;var T=require("discord.js");var Ye=require("async_hooks");var Vt=W(require("events"));var Le=require("picocolors"),h=(0,Le.createColors)(!0);var ft=require("discord.js");var ge=require("discord.js");var ht=require("discord.js");var Fe=require("discord.js");var xe=require("discord.js");var $e=require("discord.js");var Ue=require("discord.js");var Ne=require("discord.js");var He=require("discord.js");var Ge=require("discord.js");var Ct=require("discord.js");var B=require("discord.js");var gt=require("discord.js");var _e=require("discord.js");var ee=require("discord.js");var xt=require("discord.js");var yt=require("discord.js");var Je=require("discord.js");var Rt=require("fs"),Pt=require("path");var ai=Symbol("kCommandKitCacheTag"),G=process.env.COMMANDKIT_IS_DEV==="true",si=process.env.COMMANDKIT_IS_TEST==="true",li=process.env.COMMANDKIT_BOOTSTRAP_MODE||"development";var We=require("crypto");var ye=class ye{constructor(e){this.options=e}id=(0,We.randomUUID)();loadedAt=Date.now();async activate(e){}async deactivate(e){}};o(ye,"PluginCommon");var q=ye;var be=class be extends q{type="compiler";async transform(e){return null}async resolve(e){return null}async onBuildStart(){}async onBuildEnd(){}};o(be,"CompilerPlugin");var j=be;var wt=require("discord.js");var vt=require("fs/promises");var Ee=class Ee extends j{name="MacroPlugin";macroTransformer;async activate(){let e=await import("use-macro");this.macroTransformer=new e.MacroTransformer}async deactivate(){this.macroTransformer=null}async transform(e){if(!this.options.enabled)return null;let{contents:t,loader:n}=await this.macroTransformer.transform(e.contents.toString(),e.path);return{contents:t,loader:n}}};o(Ee,"MacroPlugin");var te=Ee;var Mt={plugins:[new te({enabled:!0})],esbuildPlugins:[],compilerOptions:{macro:{development:!1}},static:!0,typescript:{ignoreBuildErrors:!1},distDir:"dist",env:{},sourceMap:{development:!0,production:!0},typedCommands:!0};var Ve=require("async_hooks");var Ca=Symbol("commandkitEventWorker"),It=new Ve.AsyncLocalStorage;var qt=require("path");var Kt=require("discord.js"),Dt=require("fs"),Tt=require("fs/promises"),ne=require("path");var At=require("discord.js"),kt=require("fs"),Bt=require("fs/promises"),Ot=require("path");var Lt=require("discord.js");var Gt=require("fs"),jt=require("path");var $t=require("rimraf"),Ut=require("path"),Nt=W(require("fs"));var ve=require("fs/promises"),we=require("path");var qe=require("fs");async function ze(i){let e=`// Auto-generated command types
2
2
  declare module 'commandkit' {
3
3
  ${i}
4
4
  }
5
5
  export {};
6
- `,t=(0,ve.join)(process.cwd(),"node_modules","commandkit-types");if(!(0,qe.existsSync)(t))return;let n=(0,ve.join)(t,"command.d.ts");await(0,we.writeFile)(n,e,{encoding:"utf-8"})}o(ze,"rewriteCommandDeclaration");var Ht=require("child_process");var zt=require("fs");var _t=W(require("events"));var Wt=require("discord.js");var Jt=Symbol("commandkitCommandWorker"),Me=new Ye.AsyncLocalStorage;function oe(i,e){return Reflect.set(i,Jt,!0),Me.run(i,e)}o(oe,"provideContext");function Xe(i,e,t){return o((...r)=>oe(i,async()=>{try{return await e(...r)}catch(a){Q(a)||i.setExecutionError(a)}finally{typeof t=="function"&&setImmediate(async()=>{try{await t(...r)}catch{}})}}),"_fn")}o(Xe,"makeContextAwareFunction");function P(){return Me.getStore()}o(P,"getContext");function Qe(){let i=Me.getStore();if(!i)throw new Error("No commandkit environment found. Please make sure you are inside commandkit handler.");return i}o(Qe,"useEnvironment");var Yt={autocomplete:"Autocomplete",messageContextMenu:"MessageContextMenu",userContextMenu:"UserContextMenu",chatInput:"ChatInputCommand",message:"Message"},Xt={0:h.blue,1:h.green,2:h.yellow,3:h.red,4:h.white},Qt={0:h.bgBlue,1:h.bgGreen,2:h.bgYellow,3:h.bgRed,4:h.bgWhite},ie={vertical:"\u2502",horizontalDown:"\u252C",horizontalUp:"\u2534",verticalRight:"\u251C",corner:"\u2514"},Ie=class Ie{constructor(e=process.stdout,t=process.stderr){this.stdout=e;this.stderr=t;this.logger=new console.Console(this.stdout,this.stderr)}logger;_formatTime(e){let t=e.getHours().toString().padStart(2,"0"),n=e.getMinutes().toString().padStart(2,"0"),r=e.getSeconds().toString().padStart(2,"0"),a=e.getMilliseconds().toString().padStart(3,"0");return`${t}:${n}:${r}.${a}`}_getContext(){let e=P();if(!e)return"";let t=e.variables.get("execHandlerKind"),n=e.variables.get("commandHandlerType"),r=e.variables.get("currentCommandName");if(!t&&!n)return"";let a=Yt[t];if(!a&&!n)return"";let s=e.variables.get("forwardedBy"),u=e.variables.get("forwardedTo"),c=r?h.magenta(`/${r}`)+" ":"",d=u?`${h.yellowBright(`(${s||r} \u2192 ${u})`)} `:"";return h.dim(`${ie.vertical} `)+h.cyanBright(`${c}${d}${a?h.gray(`[${a}]`):""}`.trim())}_getLevelLabel(e){let t;switch(e){case 0:t="[DEBUG]";break;case 1:t="[INFO]";break;case 2:t="[WARN]";break;case 3:t="[ERROR]";break;default:t="[LOG]"}return`${Qt[e](h.whiteBright(` ${t} `))} `}_getPrefix(e){let t=this._formatTime(new Date);return`${this._getLevelLabel(e)}${h.dim(ie.vertical)} ${h.dim(t)}`}_log(e,...t){let n=this._getPrefix(e),r=this._getContext(),a=Xt[e];r?this.logger.log(`${n}
7
- ${r} ${h.dim(ie.corner)}`,...t.map(s=>a(s))):this.logger.log(`${n} ${h.dim(ie.corner)}`,...t.map(s=>a(s)))}debug(...e){this._log(0,...e)}error(...e){this._log(3,...e)}log(...e){this._log(4,...e)}info(...e){this._log(1,...e)}warn(...e){this._log(2,...e)}};o(Ie,"DefaultLogger");var ae=Ie;function Zt(i){let e=i;if(!(e!=null&&e.provider))throw new Error("A logger provider must be provided.");let t=["log","error","warn","info","debug"],n={configure(r){e=r}};for(let r of t)n[r]=(...a)=>{e.provider[r](...a)};return n}o(Zt,"createLogger");var b=Zt({provider:new ae});var Se=class Se{constructor(e){this.commandkit=e;this.api.setToken(this.commandkit.client.token??process.env.DISCORD_TOKEN??process.env.TOKEN??"")}api=new T.REST;getCommandsData(){return this.commandkit.commandHandler.getCommandsArray().flatMap(n=>{let r="toJSON"in n.data.command?n.data.command.toJSON():n.data.command,a=[r];return n.data.userContextMenu&&r.type!==T.ApplicationCommandType.User&&a.push({...r,type:T.ApplicationCommandType.User,options:void 0,description_localizations:void 0,description:void 0}),n.data.messageContextMenu&&r.type!==T.ApplicationCommandType.Message&&a.push({...r,type:T.ApplicationCommandType.Message,description_localizations:void 0,description:void 0,options:void 0}),a})}async register(){let e=this.getCommandsData(),t=!1,n={preventDefault(){t=!0},commands:e};if(await this.commandkit.plugins.execute(async(s,u)=>{if(!t)return u.onBeforeRegisterCommands(s,n)}),t)return;if(!this.commandkit.client.isReady())throw new Error("Cannot register commands before the client is ready");let r=e.filter(s=>{var u;return(u=s.guilds)==null?void 0:u.filter(Boolean).length}).map(s=>{var u;return{...s,guilds:Array.from(new Set((u=s.guilds)==null?void 0:u.filter(Boolean)))}}),a=e.filter(s=>{var u;return!((u=s.guilds)!=null&&u.filter(Boolean).length)});await this.updateGlobalCommands(a),await this.updateGuildCommands(r)}async updateGlobalCommands(e){if(!e.length)return;let t=!1,n={preventDefault(){t=!0},commands:e};await this.commandkit.plugins.execute(async(r,a)=>{if(!t)return a.onBeforeRegisterGlobalCommands(r,n)});try{let r=await this.api.put(T.Routes.applicationCommands(this.commandkit.client.user.id),{body:e.map(a=>({...a,guilds:void 0}))});b.info(`\u2728 Refreshed ${r.length} global application (/) commands`)}catch(r){b.error("Failed to update global application (/) commands",r)}}async updateGuildCommands(e){if(!e.length)return;let t=!1,n={preventDefault(){t=!0},commands:e};if(await this.commandkit.plugins.execute(async(r,a)=>{if(!t)return a.onBeforePrepareGuildCommandsRegistration(r,n)}),!t)try{let r=new Map;if(e.forEach(s=>{var u;(u=s.guilds)!=null&&u.length&&s.guilds.forEach(c=>{r.has(c)||r.set(c,[]),r.get(c).push(s)})}),!r.size)return;let a=0;for(let[s,u]of r){let c=!1,d={preventDefault(){c=!0},commands:u};if(await this.commandkit.plugins.execute(async(f,x)=>{if(!c)return x.onBeforeRegisterGuildCommands(f,d)}),c)continue;let m=await this.api.put(T.Routes.applicationGuildCommands(this.commandkit.client.user.id,s),{body:u.map(f=>({...f,guilds:void 0}))});a+=m.length}b.info(`\u2728 Refreshed ${a} guild application (/) commands`)}catch(r){b.error("Failed to update guild application (/) commands",r)}}};o(Se,"CommandRegistrar");var se=Se;var ce=require("discord.js");var Ze=require("crypto");var C,Re=class Re{constructor(e){this.commandkit=e;g(this,C,{executionError:null,type:null,variables:new Map,deferredFunctions:new Map,marker:"",markStart:0,markEnd:0,context:null})}setContext(e){p(this,C).context=e}get context(){return p(this,C).context}getExecutionError(){return p(this,C).executionError}setExecutionError(e){if(p(this,C).executionError)throw new Error("Execution error already set.");p(this,C).executionError=e}getType(){let e=p(this,C).type;if(!e)throw new Error("Environment type not set.");return e}setType(e){p(this,C).type=e}get variables(){return p(this,C).variables}registerDeferredFunction(e){let t=(0,Ze.randomUUID)();return p(this,C).deferredFunctions.set(t,e),t}clearDeferredFunction(e){p(this,C).deferredFunctions.delete(e)}async runDeferredFunctions(){for(let[e,t]of p(this,C).deferredFunctions)try{await t(this)}catch(n){this.commandkit.emit("unhandledDeferredFunctionRejection",n)}finally{this.clearDeferredFunction(e)}}clearAllDeferredFunctions(){p(this,C).deferredFunctions.clear()}markStart(e){p(this,C).marker=e,p(this,C).markStart=performance.now()}markEnd(){p(this,C).markEnd||(p(this,C).markEnd=performance.now())}getMarker(){return p(this,C).marker}getExecutionTime(){return Math.abs(p(this,C).markEnd-p(this,C).markStart)}};C=new WeakMap,o(Re,"CommandKitEnvironment");var le=Re;function et(){throw F(y.ExitMiddleware)}o(et,"exitMiddleware");function tt(){throw F(y.ForwardedCommand)}o(tt,"redirect");var M={ChatInputCommand:"chatInput",MessageContextMenu:"messageContextMenu",UserContextMenu:"userContextMenu",Autocomplete:"autocomplete",Message:"message"},_,z=class z{constructor(e,t){this.commandkit=e;this.config=t;R(this,"interaction");R(this,"message");R(this,"guild");R(this,"guildId");R(this,"channel");R(this,"channelId");R(this,"client");R(this,"command");g(this,_);R(this,"_locale",null);this.interaction=t.interaction,this.message=t.message,this.client=e.client,v(this,_,t.store??new Map),this.command=t.command,t.interaction&&(this.guild=t.interaction.guild,this.guildId=t.interaction.guildId,this.channel=t.interaction.channel,this.channelId=t.interaction.channelId),t.message&&(this.guild=t.message.guild,this.guildId=t.message.guildId,this.channel=t.message.channel,this.channelId=t.message.channelId),this.config.environment&&this.config.environment.setContext(this)}get store(){return p(this,_)}get commandName(){return this.isInteraction()?this.interaction.commandName:this.config.messageCommandParser.getCommand()}get options(){return this.isMessage()?this.config.messageCommandParser.options:this.interaction.options}get forwarded(){return this.config.forwarded??!1}async forwardCommand(e){let t=await this.commandkit.commandHandler.prepareCommandRun(this.isInteraction()?this.interaction:this.message,e);if(!t)throw new Error(`Command ${e} not found`);let n=this.config.environment??P();if(!n)throw new Error("No commandkit environment found.");let r={chatInput:t.command.data.chatInput,autocomplete:t.command.data.autocomplete,message:t.command.data.message,messageContextMenu:t.command.data.messageContextMenu,userContextMenu:t.command.data.userContextMenu},a=n.variables.get("execHandlerKind");if(!a)throw new Error("No execution handler kind found.");let s=r[a];if(!s)throw new Error(`No handler found for ${a}`);n.variables.set("forwardedBy",this.commandName),n.variables.set("forwardedTo",e),await s(this.clone({forwarded:!0})),tt()}get executionMode(){return this.config.executionMode}isInteraction(){return this.executionMode===M.ChatInputCommand||this.executionMode===M.Autocomplete||this.executionMode===M.MessageContextMenu||this.executionMode===M.UserContextMenu}isChatInputCommand(){return this.executionMode===M.ChatInputCommand}isAutocomplete(){return this.executionMode===M.Autocomplete}isMessageContextMenu(){return this.executionMode===M.MessageContextMenu}isUserContextMenu(){return this.executionMode===M.UserContextMenu}isMessage(){return this.executionMode===M.Message}getCommandIdentifier(){return this.isInteraction()?this.interaction.commandName:this.message.content.split(" ")[0].slice(1)}getGuildLocale(){var e;return this.isInteraction()?this.interaction.guildLocale:((e=this.message.guild)==null?void 0:e.preferredLocale)??null}getUserLocale(){return this.isInteraction()?this.interaction.locale:null}getLocale(e=!1){if(this._locale)return this._locale;let t=e?this.getUserLocale():this.getGuildLocale();return t||this.commandkit.config.defaultLocale}setLocale(e){this._locale=e}clone(e){return e?new z(this.commandkit,{...this.config,...e,store:p(this,_)}):new z(this.commandkit,this.config)}isMiddleware(){return this instanceof J}args(){return this.isMessage()?this.config.messageCommandParser.getArgs():[]}exit(){et()}};_=new WeakMap,o(z,"Context");var Pe=z,Y,Ke=class Ke extends Pe{constructor(){super(...arguments);g(this,Y,!1)}get cancelled(){return p(this,Y)}cancel(){v(this,Y,!0)}setCommandRunner(t){var n,r;(r=(n=this.config.customArgs)==null?void 0:n.setCommandRunner)==null||r.call(n,t)}};Y=new WeakMap,o(Ke,"MiddlewareContext");var J=Ke;var ue,nt,De=class De{constructor(e){this.handler=e;g(this,ue)}async runCommand(e,t){let{commandkit:n}=this.handler,r=this.getExecutionMode(t),a=null,s=new le(n);s.setType("COMMAND_HANDLER"),s.variables.set("commandHandlerType","app"),s.variables.set("currentCommandName",e.command.command.name),s.variables.set("execHandlerKind",r);let u=new J(n,{command:e.command,environment:s,executionMode:r,interaction:t instanceof ce.Message?null:t,message:t instanceof ce.Message?t:null,forwarded:!1,customArgs:{setCommandRunner:o(d=>{a=d},"setCommandRunner")},messageCommandParser:e.messageCommandParser}),c=!1;if(e.middlewares.length&&await oe(s,async()=>{for(let d of e.middlewares)if(d.data.beforeExecute)try{await d.data.beforeExecute(u)}catch(m){if(A(m,y.ExitMiddleware)){c=!0;return}if(A(m,[y.ForwardedCommand,y.InvalidCommandPrefix]))continue;throw m}}),!u.cancelled){let m=e.command.data[r];if(m||b.warn(`Command ${e.command.command.name} has no handler for ${r}`),m)try{let f=Xe(s,async()=>(s.registerDeferredFunction(K=>{K.markEnd();let S=K.getExecutionError(),I=K.getMarker(),L=`${K.getExecutionTime().toFixed(2)}ms`;if(S){b.error(`[${I} - ${L}] Error executing command: ${S.stack||S}`);return}b.info(`[${I} - ${L}] Command executed successfully`)}),m(u.clone())),D(this,ue,nt).bind(this)),x=a!=null?a(f):f;s.markStart(e.command.data.command.name),await n.plugins.execute(async(K,S)=>S.executeCommand(K,s,t,e,x))||await x()}catch(f){A(f,y.ExitMiddleware)&&(c=!0),A(f,[y.ForwardedCommand,y.ExitMiddleware])||b.error(f)}}!c&&e.middlewares.length&&await oe(s,async()=>{for(let d of e.middlewares)if(d.data.afterExecute)try{await d.data.afterExecute(u)}catch(m){if(A(m,y.ExitMiddleware))return;throw m}})}getExecutionMode(e){return e instanceof ce.Message?M.Message:e.isChatInputCommand()?M.ChatInputCommand:e.isAutocomplete()?M.Autocomplete:e.isMessageContextMenuCommand()?M.MessageContextMenu:e.isUserContextMenuCommand()?M.UserContextMenu:null}};ue=new WeakSet,nt=o(async function(){let e=Qe();await e.runDeferredFunctions(),e.clearAllDeferredFunctions(),await this.handler.commandkit.plugins.execute(async(t,n)=>{await n.onAfterCommand(t,e)})},"#finalizer"),o(De,"AppCommandRunner");var me=De;var en={command:o(i=>i instanceof E.SlashCommandBuilder||i instanceof E.ContextMenuCommandBuilder||i&&typeof i=="object","command"),chatInput:o(i=>typeof i=="function","chatInput"),autocomplete:o(i=>typeof i=="function","autocomplete"),message:o(i=>typeof i=="function","message"),messageContextMenu:o(i=>typeof i=="function","messageContextMenu"),userContextMenu:o(i=>typeof i=="function","userContextMenu")},tn={beforeExecute:o(i=>typeof i=="function","beforeExecute"),afterExecute:o(i=>typeof i=="function","afterExecute")},Te=class Te{constructor(e){this.commandkit=e;this.registrar=new se(this.commandkit)}loadedCommands=new E.Collection;loadedMiddlewares=new E.Collection;commandNameToId=new Map;subcommandPathToId=new Map;registrar;onInteraction=null;onMessageCreate=null;commandRunner=new me(this);externalCommandData=new E.Collection;externalMiddlewareData=new E.Collection;printBanner(){let e=crypto.randomUUID(),t=this.getCommandsArray().reduce((c,d)=>{let m=d.command.category||e;return c[m]=c[m]||[],c[m].push(d),c},{});console.log(h.green(`Loaded ${h.magenta(this.loadedCommands.size.toString())} commands:`));let n=Object.keys(t).sort(),r={};n.forEach(c=>{if(c!==e&&c.includes(":")){let d=c.split(":"),m=null;for(let f=d.length-1;f>0;f--){let x=d.slice(0,f).join(":");if(n.includes(x)){m=x;break}}m&&(r[m]=r[m]||[],r[m].push(c))}});let a=new Set,s=o((c,d="",m=!1,f="")=>{if(a.has(c))return;a.add(c);let x=t[c],O=r[c]&&r[c].length>0,K=m?"\u2514\u2500":"\u251C\u2500",S=f+(m?" ":"\u2502 ");if(c!==e){let I=c.includes(":")?c.split(":").pop():c;console.log(h.cyan(`${d}${K} ${h.bold(I)}`))}if(x.forEach((I,L)=>{let de=L===x.length-1&&!O?"\u2514\u2500":"\u251C\u2500",rt=c!==e?S:d,ot=I.data.command.name,it=I.command.middlewares.length>0?h.magenta(" (\u03BB)"):"";console.log(`${h.green(`${rt}${de}`)} ${h.yellow(ot)}${it}`)}),O){let I=r[c].sort();I.forEach((L,Ae)=>{let de=Ae===I.length-1;s(L,S,de,S)})}},"printCategory"),u=n.filter(c=>{if(c===e)return!0;if(c.includes(":")){let d=c.split(":");for(let m=1;m<d.length;m++){let f=d.slice(0,m).join(":");if(n.includes(f))return!1}return!0}return!0}).sort();u.forEach((c,d)=>{let m=d===u.length-1;s(c,"",m)})}getCommandsArray(){return Array.from(this.loadedCommands.values())}registerCommandHandler(){this.onInteraction??=async e=>{if(await this.commandkit.plugins.execute(async(a,s)=>s.onBeforeInteraction(a,e))||!(e.isCommand()||e.isAutocomplete()||e.isUserContextMenuCommand()||e.isMessageContextMenuCommand()))return;let r=await this.prepareCommandRun(e);if(r)return this.commandRunner.runCommand(r,e)},this.onMessageCreate??=async e=>{if(await this.commandkit.plugins.execute(async(r,a)=>a.onBeforeMessageCommand(r,e))||e.author.bot)return;let n=await this.prepareCommandRun(e);if(n)return this.commandRunner.runCommand(n,e)},this.commandkit.client.on(E.Events.InteractionCreate,this.onInteraction),this.commandkit.client.on(E.Events.MessageCreate,this.onMessageCreate)}async prepareCommandRun(e,t){var u;let n;if(!t)if(e instanceof E.Message){if(e.author.bot)return null;let c=await this.commandkit.config.getMessageCommandPrefix(e);n=new Z(e,Array.isArray(c)?c:[c],d=>{var O,K;let m=this.commandNameToId.get(d);if(!m)return null;let f=this.loadedCommands.get(m);return!f||e.guildId&&((O=f.guilds)!=null&&O.length)&&!f.guilds.includes(e.guildId)?null:((K=("toJSON"in f.data.command?f.data.command.toJSON():f.data.command).options)==null?void 0:K.reduce((S,I)=>(S[I.name]=I.type,S),{}))??{}});try{t=n.getFullCommand().split(" ")[0]}catch(d){return A(d,y.InvalidCommandPrefix)||b.error(d),null}}else{if(!(e.isChatInputCommand()||e.isAutocomplete()||e.isContextMenuCommand()))return null;t=e.commandName}let r=this.commandNameToId.get(t);if(!r)return null;let a=this.loadedCommands.get(r);if(!a||(e instanceof E.CommandInteraction||e instanceof E.AutocompleteInteraction)&&e.guildId&&((u=a.guilds)!=null&&u.length)&&!a.guilds.includes(e.guildId))return null;let s=[];for(let c of a.command.middlewares){let d=this.loadedMiddlewares.get(c);d&&s.push(d)}return{command:a,middlewares:s,messageCommandParser:n}}async reloadCommands(){this.loadedCommands.clear(),this.loadedMiddlewares.clear(),this.commandNameToId.clear(),this.subcommandPathToId.clear(),this.externalCommandData.clear(),this.externalMiddlewareData.clear(),await this.loadCommands()}async addExternalMiddleware(e){for(let t of e)t.id&&this.externalMiddlewareData.set(t.id,t)}async addExternalCommands(e){for(let t of e)t.id&&this.externalCommandData.set(t.id,t)}async registerExternalLoadedMiddleware(e){for(let t of e)this.loadedMiddlewares.set(t.middleware.id,t)}async registerExternalLoadedCommands(e){for(let t of e)this.loadedCommands.set(t.command.id,t),this.commandNameToId.set(t.command.name,t.command.id)}async loadCommands(){await this.commandkit.plugins.execute((s,u)=>u.onBeforeCommandsLoad(s));let e=this.commandkit.commandsRouter;if(!e)throw new Error("Commands router has not yet initialized");let{commands:t,middlewares:n}=e.getData(),r=this.externalCommandData.size?t.concat(this.externalCommandData):t,a=this.externalMiddlewareData.size?n.concat(this.externalMiddlewareData):n;for(let[s,u]of a)await this.loadMiddleware(s,u);for(let[s,u]of r)await this.loadCommand(s,u);G&&await ze(`type CommandTypeData = ${Array.from(this.loadedCommands.mapValues(s=>JSON.stringify(s.command.name)).values()).join(" | ")}`),await this.commandkit.plugins.execute((s,u)=>u.onAfterCommandsLoad(s))}async loadMiddleware(e,t){try{let n=await import(`${X(t.path)}?t=${Date.now()}`),r=0;for(let[a,s]of Object.entries(tn)){if(n[a]&&!await s(n[a]))throw new Error(`Invalid export for middleware ${e}: ${a} does not match expected value`);n[a]&&r++}if(r===0)throw new Error(`Invalid export for middleware ${e}: at least one handler function must be provided`);this.loadedMiddlewares.set(e,{middleware:t,data:n})}catch(n){b.error(`Failed to load middleware ${e}`,n)}}async loadCommand(e,t){try{if(t.path===null){this.loadedCommands.set(e,{command:t,data:{command:{name:t.name,description:`${t.name} commands`,type:1}}});return}let n=await import(`${X(t.path)}?t=${Date.now()}`);if(!n.command)throw new Error(`Invalid export for command ${t.name}: no command definition found`);let r=0;for(let[s,u]of Object.entries(en))if(s!=="command"&&n[s]&&r++,n[s]&&!await u(n[s]))throw new Error(`Invalid export for command ${t.name}: ${s} does not match expected value`);if(r===0)throw new Error(`Invalid export for command ${t.name}: at least one handler function must be provided`);let a=n.command;await this.commandkit.plugins.execute(async(s,u)=>{let c=await u.prepareCommand(s,a);c&&(a=c)}),this.loadedCommands.set(e,{command:t,guilds:n.guilds,data:{...n,command:"toJSON"in a?a.toJSON():a}}),this.commandNameToId.set(t.name,e)}catch(n){b.error(`Failed to load command ${t.name} (${e})`,n)}}};o(Te,"AppCommandHandler");var re=Te;0&&(module.exports={AppCommandHandler});
6
+ `,t=(0,we.join)(process.cwd(),"node_modules","commandkit-types");if(!(0,qe.existsSync)(t))return;let n=(0,we.join)(t,"command.d.ts");await(0,ve.writeFile)(n,e,{encoding:"utf-8"})}o(ze,"rewriteCommandDeclaration");var Ht=require("child_process");var zt=require("fs");var _t=W(require("events"));var Wt=require("discord.js");var Jt=Symbol("commandkitCommandWorker"),Me=new Ye.AsyncLocalStorage;function oe(i,e){return Reflect.set(i,Jt,!0),Me.run(i,e)}o(oe,"provideContext");function Xe(i,e,t){return o((...r)=>oe(i,async()=>{try{return await e(...r)}catch(a){Q(a)||i.setExecutionError(a)}finally{typeof t=="function"&&setImmediate(async()=>{try{await t(...r)}catch{}})}}),"_fn")}o(Xe,"makeContextAwareFunction");function P(){return Me.getStore()}o(P,"getContext");function Qe(){let i=Me.getStore();if(!i)throw new Error("No commandkit environment found. Please make sure you are inside commandkit handler.");return i}o(Qe,"useEnvironment");var Yt={autocomplete:"Autocomplete",messageContextMenu:"MessageContextMenu",userContextMenu:"UserContextMenu",chatInput:"ChatInputCommand",message:"Message"},Xt={0:h.blue,1:h.green,2:h.yellow,3:h.red,4:h.white},Qt={0:h.bgBlue,1:h.bgGreen,2:h.bgYellow,3:h.bgRed,4:h.bgWhite},ie={vertical:"\u2502",horizontalDown:"\u252C",horizontalUp:"\u2534",verticalRight:"\u251C",corner:"\u2514"},Ie=class Ie{constructor(e=process.stdout,t=process.stderr){this.stdout=e;this.stderr=t;this.logger=new console.Console(this.stdout,this.stderr)}logger;_formatTime(e){let t=e.getHours().toString().padStart(2,"0"),n=e.getMinutes().toString().padStart(2,"0"),r=e.getSeconds().toString().padStart(2,"0"),a=e.getMilliseconds().toString().padStart(3,"0");return`${t}:${n}:${r}.${a}`}_getContext(){let e=P();if(!e)return"";let t=e.variables.get("execHandlerKind"),n=e.variables.get("commandHandlerType"),r=e.variables.get("currentCommandName");if(!t&&!n)return"";let a=Yt[t];if(!a&&!n)return"";let s=e.variables.get("forwardedBy"),u=e.variables.get("forwardedTo"),c=r?h.magenta(`/${r}`)+" ":"",d=u?`${h.yellowBright(`(${s||r} \u2192 ${u})`)} `:"";return h.dim(`${ie.vertical} `)+h.cyanBright(`${c}${d}${a?h.gray(`[${a}]`):""}`.trim())}_getLevelLabel(e){let t;switch(e){case 0:t="[DEBUG]";break;case 1:t="[INFO]";break;case 2:t="[WARN]";break;case 3:t="[ERROR]";break;default:t="[LOG]"}return`${Qt[e](h.whiteBright(` ${t} `))} `}_getPrefix(e){let t=this._formatTime(new Date);return`${this._getLevelLabel(e)}${h.dim(ie.vertical)} ${h.dim(t)}`}_log(e,...t){let n=this._getPrefix(e),r=this._getContext(),a=Xt[e];r?this.logger.log(`${n}
7
+ ${r} ${h.dim(ie.corner)}`,...t.map(s=>a(s))):this.logger.log(`${n} ${h.dim(ie.corner)}`,...t.map(s=>a(s)))}debug(...e){this._log(0,...e)}error(...e){this._log(3,...e)}log(...e){this._log(4,...e)}info(...e){this._log(1,...e)}warn(...e){this._log(2,...e)}};o(Ie,"DefaultLogger");var ae=Ie;function Zt(i){let e=i;if(!(e!=null&&e.provider))throw new Error("A logger provider must be provided.");let t=["log","error","warn","info","debug"],n={configure(r){e=r}};for(let r of t)n[r]=(...a)=>{e.provider[r](...a)};return n}o(Zt,"createLogger");var b=Zt({provider:new ae});var Se=class Se{constructor(e){this.commandkit=e;this.api.setToken(this.commandkit.client.token??process.env.DISCORD_TOKEN??process.env.TOKEN??"")}api=new T.REST;getCommandsData(){return this.commandkit.commandHandler.getCommandsArray().flatMap(n=>{let r="toJSON"in n.data.command?n.data.command.toJSON():n.data.command,a=[r];return n.data.userContextMenu&&r.type!==T.ApplicationCommandType.User&&a.push({...r,type:T.ApplicationCommandType.User,options:void 0,description_localizations:void 0,description:void 0}),n.data.messageContextMenu&&r.type!==T.ApplicationCommandType.Message&&a.push({...r,type:T.ApplicationCommandType.Message,description_localizations:void 0,description:void 0,options:void 0}),a})}async register(){let e=this.getCommandsData(),t=!1,n={preventDefault(){t=!0},commands:e};if(await this.commandkit.plugins.execute(async(s,u)=>{if(!t)return u.onBeforeRegisterCommands(s,n)}),t)return;if(!this.commandkit.client.isReady())throw new Error("Cannot register commands before the client is ready");let r=e.filter(s=>{var u;return(u=s.guilds)==null?void 0:u.filter(Boolean).length}).map(s=>{var u;return{...s,guilds:Array.from(new Set((u=s.guilds)==null?void 0:u.filter(Boolean)))}}),a=e.filter(s=>{var u;return!((u=s.guilds)!=null&&u.filter(Boolean).length)});await this.updateGlobalCommands(a),await this.updateGuildCommands(r)}async updateGlobalCommands(e){if(!e.length)return;let t=!1,n={preventDefault(){t=!0},commands:e};await this.commandkit.plugins.execute(async(r,a)=>{if(!t)return a.onBeforeRegisterGlobalCommands(r,n)});try{let r=await this.api.put(T.Routes.applicationCommands(this.commandkit.client.user.id),{body:e.map(a=>({...a,guilds:void 0}))});b.info(`\u2728 Refreshed ${r.length} global application (/) commands`)}catch(r){b.error("Failed to update global application (/) commands",r)}}async updateGuildCommands(e){if(!e.length)return;let t=!1,n={preventDefault(){t=!0},commands:e};if(await this.commandkit.plugins.execute(async(r,a)=>{if(!t)return a.onBeforePrepareGuildCommandsRegistration(r,n)}),!t)try{let r=new Map;if(e.forEach(s=>{var u;(u=s.guilds)!=null&&u.length&&s.guilds.forEach(c=>{r.has(c)||r.set(c,[]),r.get(c).push(s)})}),!r.size)return;let a=0;for(let[s,u]of r){let c=!1,d={preventDefault(){c=!0},commands:u};if(await this.commandkit.plugins.execute(async(f,x)=>{if(!c)return x.onBeforeRegisterGuildCommands(f,d)}),c)continue;let m=await this.api.put(T.Routes.applicationGuildCommands(this.commandkit.client.user.id,s),{body:u.map(f=>({...f,guilds:void 0}))});a+=m.length}b.info(`\u2728 Refreshed ${a} guild application (/) commands`)}catch(r){b.error("Failed to update guild application (/) commands",r)}}};o(Se,"CommandRegistrar");var se=Se;var ce=require("discord.js");var Ze=require("crypto");var C,Re=class Re{constructor(e){this.commandkit=e;g(this,C,{executionError:null,type:null,variables:new Map,deferredFunctions:new Map,marker:"",markStart:0,markEnd:0,context:null})}setContext(e){p(this,C).context=e}get context(){return p(this,C).context}getExecutionError(){return p(this,C).executionError}setExecutionError(e){if(p(this,C).executionError)throw new Error("Execution error already set.");p(this,C).executionError=e}getType(){let e=p(this,C).type;if(!e)throw new Error("Environment type not set.");return e}setType(e){p(this,C).type=e}get variables(){return p(this,C).variables}registerDeferredFunction(e){let t=(0,Ze.randomUUID)();return p(this,C).deferredFunctions.set(t,e),t}clearDeferredFunction(e){p(this,C).deferredFunctions.delete(e)}async runDeferredFunctions(){for(let[e,t]of p(this,C).deferredFunctions)try{await t(this)}catch(n){this.commandkit.emit("unhandledDeferredFunctionRejection",n)}finally{this.clearDeferredFunction(e)}}clearAllDeferredFunctions(){p(this,C).deferredFunctions.clear()}markStart(e){p(this,C).marker=e,p(this,C).markStart=performance.now()}markEnd(){p(this,C).markEnd||(p(this,C).markEnd=performance.now())}getMarker(){return p(this,C).marker}getExecutionTime(){return Math.abs(p(this,C).markEnd-p(this,C).markStart)}};C=new WeakMap,o(Re,"CommandKitEnvironment");var le=Re;function et(){throw $(y.ExitMiddleware)}o(et,"exitMiddleware");function tt(){throw $(y.ForwardedCommand)}o(tt,"redirect");var M={ChatInputCommand:"chatInput",MessageContextMenu:"messageContextMenu",UserContextMenu:"userContextMenu",Autocomplete:"autocomplete",Message:"message"},_,z=class z{constructor(e,t){this.commandkit=e;this.config=t;R(this,"interaction");R(this,"message");R(this,"guild");R(this,"guildId");R(this,"channel");R(this,"channelId");R(this,"client");R(this,"command");g(this,_);R(this,"_locale",null);this.interaction=t.interaction,this.message=t.message,this.client=e.client,w(this,_,t.store??new Map),this.command=t.command,t.interaction&&(this.guild=t.interaction.guild,this.guildId=t.interaction.guildId,this.channel=t.interaction.channel,this.channelId=t.interaction.channelId),t.message&&(this.guild=t.message.guild,this.guildId=t.message.guildId,this.channel=t.message.channel,this.channelId=t.message.channelId),this.config.environment&&this.config.environment.setContext(this)}get store(){return p(this,_)}get commandName(){return this.isInteraction()?this.interaction.commandName:this.config.messageCommandParser.getCommand()}get options(){return this.isMessage()?this.config.messageCommandParser.options:this.interaction.options}get forwarded(){return this.config.forwarded??!1}async forwardCommand(e){let t=await this.commandkit.commandHandler.prepareCommandRun(this.isInteraction()?this.interaction:this.message,e);if(!t)throw new Error(`Command ${e} not found`);let n=this.config.environment??P();if(!n)throw new Error("No commandkit environment found.");let r={chatInput:t.command.data.chatInput,autocomplete:t.command.data.autocomplete,message:t.command.data.message,messageContextMenu:t.command.data.messageContextMenu,userContextMenu:t.command.data.userContextMenu},a=n.variables.get("execHandlerKind");if(!a)throw new Error("No execution handler kind found.");let s=r[a];if(!s)throw new Error(`No handler found for ${a}`);n.variables.set("forwardedBy",this.commandName),n.variables.set("forwardedTo",e),await s(this.clone({forwarded:!0})),tt()}get executionMode(){return this.config.executionMode}isInteraction(){return this.executionMode===M.ChatInputCommand||this.executionMode===M.Autocomplete||this.executionMode===M.MessageContextMenu||this.executionMode===M.UserContextMenu}isChatInputCommand(){return this.executionMode===M.ChatInputCommand}isAutocomplete(){return this.executionMode===M.Autocomplete}isMessageContextMenu(){return this.executionMode===M.MessageContextMenu}isUserContextMenu(){return this.executionMode===M.UserContextMenu}isMessage(){return this.executionMode===M.Message}getCommandIdentifier(){return this.isInteraction()?this.interaction.commandName:this.message.content.split(" ")[0].slice(1)}getGuildLocale(){var e;return this.isInteraction()?this.interaction.guildLocale:((e=this.message.guild)==null?void 0:e.preferredLocale)??null}getUserLocale(){return this.isInteraction()?this.interaction.locale:null}getLocale(e=!1){if(this._locale)return this._locale;let t=e?this.getUserLocale():this.getGuildLocale();return t||this.commandkit.config.defaultLocale}setLocale(e){this._locale=e}clone(e){return e?new z(this.commandkit,{...this.config,...e,store:p(this,_)}):new z(this.commandkit,this.config)}isMiddleware(){return this instanceof J}args(){return this.isMessage()?this.config.messageCommandParser.getArgs():[]}exit(){et()}};_=new WeakMap,o(z,"Context");var Pe=z,Y,Ke=class Ke extends Pe{constructor(){super(...arguments);g(this,Y,!1)}get cancelled(){return p(this,Y)}cancel(){w(this,Y,!0)}setCommandRunner(t){var n,r;(r=(n=this.config.customArgs)==null?void 0:n.setCommandRunner)==null||r.call(n,t)}};Y=new WeakMap,o(Ke,"MiddlewareContext");var J=Ke;var ue,nt,De=class De{constructor(e){this.handler=e;g(this,ue)}async runCommand(e,t){let{commandkit:n}=this.handler,r=this.getExecutionMode(t),a=null,s=new le(n);s.setType("COMMAND_HANDLER"),s.variables.set("commandHandlerType","app"),s.variables.set("currentCommandName",e.command.command.name),s.variables.set("execHandlerKind",r);let u=new J(n,{command:e.command,environment:s,executionMode:r,interaction:t instanceof ce.Message?null:t,message:t instanceof ce.Message?t:null,forwarded:!1,customArgs:{setCommandRunner:o(d=>{a=d},"setCommandRunner")},messageCommandParser:e.messageCommandParser}),c=!1;if(e.middlewares.length&&await oe(s,async()=>{for(let d of e.middlewares)if(d.data.beforeExecute)try{await d.data.beforeExecute(u)}catch(m){if(A(m,y.ExitMiddleware)){c=!0;return}if(A(m,[y.ForwardedCommand,y.InvalidCommandPrefix]))continue;throw m}}),!u.cancelled){let m=e.command.data[r];if(m||b.warn(`Command ${e.command.command.name} has no handler for ${r}`),m)try{let f=Xe(s,async()=>(s.registerDeferredFunction(K=>{K.markEnd();let S=K.getExecutionError(),I=K.getMarker(),L=`${K.getExecutionTime().toFixed(2)}ms`;if(S){b.error(`[${I} - ${L}] Error executing command: ${S.stack||S}`);return}b.info(`[${I} - ${L}] Command executed successfully`)}),m(u.clone())),D(this,ue,nt).bind(this)),x=a!=null?a(f):f;s.markStart(e.command.data.command.name),await n.plugins.execute(async(K,S)=>S.executeCommand(K,s,t,e,x))||await x()}catch(f){A(f,y.ExitMiddleware)&&(c=!0),A(f,[y.ForwardedCommand,y.ExitMiddleware])||b.error(f)}}!c&&e.middlewares.length&&await oe(s,async()=>{for(let d of e.middlewares)if(d.data.afterExecute)try{await d.data.afterExecute(u)}catch(m){if(A(m,y.ExitMiddleware))return;throw m}})}getExecutionMode(e){return e instanceof ce.Message?M.Message:e.isChatInputCommand()?M.ChatInputCommand:e.isAutocomplete()?M.Autocomplete:e.isMessageContextMenuCommand()?M.MessageContextMenu:e.isUserContextMenuCommand()?M.UserContextMenu:null}};ue=new WeakSet,nt=o(async function(){let e=Qe();await e.runDeferredFunctions(),e.clearAllDeferredFunctions(),await this.handler.commandkit.plugins.execute(async(t,n)=>{await n.onAfterCommand(t,e)})},"#finalizer"),o(De,"AppCommandRunner");var me=De;var en={command:o(i=>i instanceof E.SlashCommandBuilder||i instanceof E.ContextMenuCommandBuilder||i&&typeof i=="object","command"),chatInput:o(i=>typeof i=="function","chatInput"),autocomplete:o(i=>typeof i=="function","autocomplete"),message:o(i=>typeof i=="function","message"),messageContextMenu:o(i=>typeof i=="function","messageContextMenu"),userContextMenu:o(i=>typeof i=="function","userContextMenu")},tn={beforeExecute:o(i=>typeof i=="function","beforeExecute"),afterExecute:o(i=>typeof i=="function","afterExecute")},Te=class Te{constructor(e){this.commandkit=e;this.registrar=new se(this.commandkit)}loadedCommands=new E.Collection;loadedMiddlewares=new E.Collection;commandNameToId=new Map;subcommandPathToId=new Map;registrar;onInteraction=null;onMessageCreate=null;commandRunner=new me(this);externalCommandData=new E.Collection;externalMiddlewareData=new E.Collection;printBanner(){let e=crypto.randomUUID(),t=this.getCommandsArray().reduce((c,d)=>{let m=d.command.category||e;return c[m]=c[m]||[],c[m].push(d),c},{});console.log(h.green(`Loaded ${h.magenta(this.loadedCommands.size.toString())} commands:`));let n=Object.keys(t).sort(),r={};n.forEach(c=>{if(c!==e&&c.includes(":")){let d=c.split(":"),m=null;for(let f=d.length-1;f>0;f--){let x=d.slice(0,f).join(":");if(n.includes(x)){m=x;break}}m&&(r[m]=r[m]||[],r[m].push(c))}});let a=new Set,s=o((c,d="",m=!1,f="")=>{if(a.has(c))return;a.add(c);let x=t[c],O=r[c]&&r[c].length>0,K=m?"\u2514\u2500":"\u251C\u2500",S=f+(m?" ":"\u2502 ");if(c!==e){let I=c.includes(":")?c.split(":").pop():c;console.log(h.cyan(`${d}${K} ${h.bold(I)}`))}if(x.forEach((I,L)=>{let de=L===x.length-1&&!O?"\u2514\u2500":"\u251C\u2500",rt=c!==e?S:d,ot=I.data.command.name,it=I.command.middlewares.length>0?h.magenta(" (\u03BB)"):"";console.log(`${h.green(`${rt}${de}`)} ${h.yellow(ot)}${it}`)}),O){let I=r[c].sort();I.forEach((L,Ae)=>{let de=Ae===I.length-1;s(L,S,de,S)})}},"printCategory"),u=n.filter(c=>{if(c===e)return!0;if(c.includes(":")){let d=c.split(":");for(let m=1;m<d.length;m++){let f=d.slice(0,m).join(":");if(n.includes(f))return!1}return!0}return!0}).sort();u.forEach((c,d)=>{let m=d===u.length-1;s(c,"",m)})}getCommandsArray(){return Array.from(this.loadedCommands.values())}registerCommandHandler(){this.onInteraction??=async e=>{if(await this.commandkit.plugins.execute(async(a,s)=>s.onBeforeInteraction(a,e))||!(e.isCommand()||e.isAutocomplete()||e.isUserContextMenuCommand()||e.isMessageContextMenuCommand()))return;let r=await this.prepareCommandRun(e);if(r)return this.commandRunner.runCommand(r,e)},this.onMessageCreate??=async e=>{if(await this.commandkit.plugins.execute(async(r,a)=>a.onBeforeMessageCommand(r,e))||e.author.bot)return;let n=await this.prepareCommandRun(e);if(n)return this.commandRunner.runCommand(n,e)},this.commandkit.client.on(E.Events.InteractionCreate,this.onInteraction),this.commandkit.client.on(E.Events.MessageCreate,this.onMessageCreate)}async prepareCommandRun(e,t){var u;let n;if(!t)if(e instanceof E.Message){if(e.author.bot)return null;let c=await this.commandkit.config.getMessageCommandPrefix(e);n=new Z(e,Array.isArray(c)?c:[c],d=>{var O,K;let m=this.commandNameToId.get(d);if(!m)return null;let f=this.loadedCommands.get(m);return!f||e.guildId&&((O=f.guilds)!=null&&O.length)&&!f.guilds.includes(e.guildId)?null:((K=("toJSON"in f.data.command?f.data.command.toJSON():f.data.command).options)==null?void 0:K.reduce((S,I)=>(S[I.name]=I.type,S),{}))??{}});try{t=n.getFullCommand().split(" ")[0]}catch(d){return A(d,y.InvalidCommandPrefix)||b.error(d),null}}else{if(!(e.isChatInputCommand()||e.isAutocomplete()||e.isContextMenuCommand()))return null;t=e.commandName}let r=this.commandNameToId.get(t);if(!r)return null;let a=this.loadedCommands.get(r);if(!a||(e instanceof E.CommandInteraction||e instanceof E.AutocompleteInteraction)&&e.guildId&&((u=a.guilds)!=null&&u.length)&&!a.guilds.includes(e.guildId))return null;let s=[];for(let c of a.command.middlewares){let d=this.loadedMiddlewares.get(c);d&&s.push(d)}return{command:a,middlewares:s,messageCommandParser:n}}async reloadCommands(){this.loadedCommands.clear(),this.loadedMiddlewares.clear(),this.commandNameToId.clear(),this.subcommandPathToId.clear(),this.externalCommandData.clear(),this.externalMiddlewareData.clear(),await this.loadCommands()}async addExternalMiddleware(e){for(let t of e)t.id&&this.externalMiddlewareData.set(t.id,t)}async addExternalCommands(e){for(let t of e)t.id&&this.externalCommandData.set(t.id,t)}async registerExternalLoadedMiddleware(e){for(let t of e)this.loadedMiddlewares.set(t.middleware.id,t)}async registerExternalLoadedCommands(e){for(let t of e)this.loadedCommands.set(t.command.id,t),this.commandNameToId.set(t.command.name,t.command.id)}async loadCommands(){await this.commandkit.plugins.execute((s,u)=>u.onBeforeCommandsLoad(s));let e=this.commandkit.commandsRouter;if(!e)throw new Error("Commands router has not yet initialized");let{commands:t,middlewares:n}=e.getData(),r=this.externalCommandData.size?t.concat(this.externalCommandData):t,a=this.externalMiddlewareData.size?n.concat(this.externalMiddlewareData):n;for(let[s,u]of a)await this.loadMiddleware(s,u);for(let[s,u]of r)await this.loadCommand(s,u);G&&await ze(`type CommandTypeData = ${Array.from(this.loadedCommands.mapValues(s=>JSON.stringify(s.command.name)).values()).join(" | ")}`),await this.commandkit.plugins.execute((s,u)=>u.onAfterCommandsLoad(s))}async loadMiddleware(e,t){try{let n=await import(`${X(t.path)}?t=${Date.now()}`),r=0;for(let[a,s]of Object.entries(tn)){if(n[a]&&!await s(n[a]))throw new Error(`Invalid export for middleware ${e}: ${a} does not match expected value`);n[a]&&r++}if(r===0)throw new Error(`Invalid export for middleware ${e}: at least one handler function must be provided`);this.loadedMiddlewares.set(e,{middleware:t,data:n})}catch(n){b.error(`Failed to load middleware ${e}`,n)}}async loadCommand(e,t){try{if(t.path===null){this.loadedCommands.set(e,{command:t,data:{command:{name:t.name,description:`${t.name} commands`,type:1}}});return}let n=await import(`${X(t.path)}?t=${Date.now()}`);if(!n.command)throw new Error(`Invalid export for command ${t.name}: no command definition found`);let r=0;for(let[s,u]of Object.entries(en))if(s!=="command"&&n[s]&&r++,n[s]&&!await u(n[s]))throw new Error(`Invalid export for command ${t.name}: ${s} does not match expected value`);if(r===0)throw new Error(`Invalid export for command ${t.name}: at least one handler function must be provided`);let a=n.command;await this.commandkit.plugins.execute(async(s,u)=>{let c=await u.prepareCommand(s,a);c&&(a=c)}),this.loadedCommands.set(e,{command:t,guilds:n.guilds,data:{...n,command:"toJSON"in a?a.toJSON():a}}),this.commandNameToId.set(t.name,e)}catch(n){b.error(`Failed to load command ${t.name} (${e})`,n)}}};o(Te,"AppCommandHandler");var re=Te;0&&(module.exports={AppCommandHandler});
8
8
  //# sourceMappingURL=AppCommandHandler.js.map