UNPKG

@a-djs-handler/framework

Version:

Simple command handler for discord.js v14.

2 lines (1 loc) 22.2 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var Z=Object.defineProperty;var s=(n,e)=>Z(n,"name",{value:e,configurable:!0});var _discordjs = require('discord.js');var _ttytable = require('tty-table'); var _ttytable2 = _interopRequireDefault(_ttytable);var _glob = require('glob');var _path = require('path'); var _path2 = _interopRequireDefault(_path);var _url = require('url');async function te(...n){let e=[];return await Promise.all(n.map(async t=>{(await _glob.glob.call(void 0, t.split(_path2.default.sep).join("/"),{ignore:["node_modules/**"]})).forEach(i=>{e.includes(i)||e.push(`${i}`)})})),e}s(te,"resolve");async function L(...n){let e=await te(...n);return Promise.all(e.map(t=>Promise.resolve().then(() => require(t))))}s(L,"importx");var v=new _discordjs.Collection,Se= exports.allGuildIdsToRegister =new Set;function G(n){let e=v.get(n);if(e)return e;let t=new T(n);return v.set(n,t),t}s(G,"createRegistry");function A(n,e){return Object.getPrototypeOf(n)===e}s(A,"isClass");var j=class extends _discordjs.Client{constructor(t){super(t);this.commands=new _discordjs.Collection;this.events=new _discordjs.Collection;this.components=new _discordjs.Collection;this.jobs=new _discordjs.Collection;this.developers=[];this.baseDir=t.baseDir,this.developers=_nullishCoalesce(t.developers, () => ([]))}static{s(this,"MoodyClient")}async login(t){return await this.registerPaths(),console.log("Registered Listeners, Components & Commands"),this.jobs.size&&await Promise.allSettled(this.jobs.map(o=>o.init(this))),super.login(t)}async registerPaths(){let t=await L(`${this.baseDir}/{commands,components,jobs,listeners}/**/*.{ts,js}`);for(let o of t){let i=Object.values(o).flat(1/0);if(i.length){for(let a of i)if(A(a,O)){let m=new a;this.components.set(m.name,m)}else if(A(a,R)){let m=new a;this.jobs.set(m.name,m)}else if(A(a,w)){let m=new a;this.commands.set(m.name,m)}else if(A(a,f)){let m=new a;this.events.set(m.name,m),this[m.once?"once":"on"](m.event,m.run.bind(m,this))}}}return this}registerDefaultListeners(){return[b,y].forEach(t=>{let o=new t;this.events.set(o.name,o),this[o.once?"once":"on"](o.event,o.run.bind(o,this))}),this}async handleRegistryAPICalls(){let t=!1,o=!1,i=[],a=[],m=await this.application.commands.fetch({force:!0,withLocalizations:!0});for(let c of this.commands.values())c.registerCommand&&await c.registerCommand(c.registry);for(let c of v.values()){let{shouldGlobalDeploy:r,shouldGuildDeploy:l,allCommands:d}=await c.initialize(m,this);i.push(...d.global),a.push({guildId:c.guildId,commands:d.guild}),r&&(t=!0),l&&(o=!0)}if(t){let c=[{value:"Command Name"},{value:"Command ID"}];console.log("Deploying global commands...");let r=await _optionalChain([this, 'access', _2 => _2.application, 'optionalAccess', _3 => _3.commands, 'access', _4 => _4.set, 'call', _5 => _5(i), 'access', _6 => _6.catch, 'call', _7 => _7(console.error)]);if(r){let l=r.map(u=>[u.name,u.id]),d=_ttytable2.default.call(void 0, c,l).render();console.log(d)}else console.log("Failed to deploy commands.")}if(o){let c=[{value:"Command Name"},{value:"Command ID"}];for(let r of a){console.log(`Deploying guild commands for guild ${r.guildId}...`);let l=await _optionalChain([this, 'access', _8 => _8.guilds, 'access', _9 => _9.cache, 'access', _10 => _10.get, 'call', _11 => _11(r.guildId), 'optionalAccess', _12 => _12.commands, 'access', _13 => _13.set, 'call', _14 => _14(r.commands), 'access', _15 => _15.catch, 'call', _16 => _16(console.error)]);if(l){let d=l.map(P=>[P.name,P.id]),u=_ttytable2.default.call(void 0, c,d).render();console.log(u)}else console.log("Failed to deploy commands.")}}}};var w=class{constructor(e){this.preconditions=[];this.options=[];this.name=e.name,this.category=e.category,this.description=e.description,this.preconditions=_nullishCoalesce(e.preconditions, () => ([])),this.options=_nullishCoalesce(e.options, () => ([])),this.registry=G(this.name)}static{s(this,"Command")}registerCommand(e){throw new Error(`No registry found for ${e.name}`)}},M= exports.CommandContext =class{static{s(this,"CommandContext")}constructor(e){this.interaction=e.interaction,this.client=e.client,this.author=e.author,this.guild=e.guild,this.safeReply=this.safeReply.bind(this)}async safeReply(e){return this.interaction.replied||this.interaction.deferred?this.interaction.editReply(e):this.interaction.reply(e)}};var _result = require('@sapphire/result');var O=class{static{s(this,"Component")}constructor(e){this.type=e.type,this.name=e.name}parse(e){return this.some()}some(e){return _result.Option.some(e)}none(){return _result.Option.none}},V= exports.ComponentType =(i=>(i[i.Button=0]="Button",i[i.SelectMenu=1]="SelectMenu",i[i.ModalSubmit=2]="ModalSubmit",i[i.MessageComponent=3]="MessageComponent",i))(V||{});var _cronparser = require('cron-parser');var _nodeschedule = require('node-schedule');var R=class{constructor(e){this.runOnce=!1;this.name=e.name,this.schedule=e.schedule,this.runOnce=_nullishCoalesce(e.runOnce, () => (!1))}static{s(this,"Job")}init(e){if(!this.run)return!1;let t=this.runOnce?_cronparser.parseExpression.call(void 0, this.schedule,{currentDate:new Date}).next().toDate():{start:new Date,rule:this.schedule};return this.scheduledJob=_nodeschedule.scheduleJob.call(void 0, this.name,t,async()=>{try{await _optionalChain([this, 'access', _17 => _17.run, 'optionalCall', _18 => _18(e)])}catch(o){console.error(`Job failed to run "${this.name}"`,o)}}),console.log(`Scheduled ${this.name} job.`),!0}};var f=class{constructor(e){this.once=!1;this.event=e.event,this.name=_nullishCoalesce(e.name, () => (this.event)),this.once=_nullishCoalesce(e.once, () => (!1)),this._listener=this.name?this.once?this._runOnce.bind(this):this._run.bind(this):null}static{s(this,"Listener")}async _run(e,...t){(await _result.Result.fromAsync(()=>this.run(e,...t))).inspectErr(i=>console.error("Listener",i))}async _runOnce(e,...t){await this._run(e,...t),this.unload(e)}unload(e){this._listener&&e.off(this.event,this._listener)}};var g=class{static{s(this,"Precondition")}ok(){return _result.Result.ok()}error(e){return _result.Result.err(e)}};var _fastdeepequal = require('fast-deep-equal'); var _fastdeepequal2 = _interopRequireDefault(_fastdeepequal);function re(n){return n instanceof _discordjs.SlashCommandBuilder}s(re,"isBuilder");function W(n){if(n instanceof Function){let t=new _discordjs.SlashCommandBuilder;n(t);let o=t.toJSON();return o.dm_permission??=!0,o.type??=_discordjs.ApplicationCommandType.ChatInput,o}if(re(n)){let t=n.toJSON();return t.dm_permission??=!0,t.type??=_discordjs.ApplicationCommandType.ChatInput,t}let e={name:n.name,name_localizations:n.nameLocalizations,description:n.description,description_localizations:n.descriptionLocalizations,type:_discordjs.ApplicationCommandType.ChatInput,dm_permission:n.dmPermission,nsfw:n.nsfw};return typeof n.defaultMemberPermissions<"u"&&(e.default_member_permissions=n.defaultMemberPermissions===null?null:new (0, _discordjs.PermissionsBitField)(n.defaultMemberPermissions).bitfield.toString()),_optionalChain([n, 'access', _19 => _19.options, 'optionalAccess', _20 => _20.length])&&(e.options=n.options.map(t=>_discordjs.ApplicationCommand.transformOption(t))),e.dm_permission??=!0,e.type??=_discordjs.ApplicationCommandType.ChatInput,e}s(W,"normalizeChatInputCommand");function Y(n){if(n instanceof Function){let t=new _discordjs.ContextMenuCommandBuilder;n(t);let o=t.toJSON();return o.dm_permission??=!0,o}if(n instanceof _discordjs.ContextMenuCommandBuilder){let t=n.toJSON();return t.dm_permission??=!0,t}let e={name:n.name,name_localizations:n.nameLocalizations,type:n.type,dm_permission:n.dmPermission,nsfw:n.nsfw};return typeof n.defaultMemberPermissions<"u"&&(e.default_member_permissions=n.defaultMemberPermissions===null?null:new (0, _discordjs.PermissionsBitField)(n.defaultMemberPermissions).bitfield.toString()),e.dm_permission??=!0,e}s(Y,"normalizeContextMenuCommand");function E(n,e){let t=e?"channelTypes":"channel_types",o=e?"minValue":"min_value",i=e?"maxValue":"max_value",a=e?"minLength":"min_length",m=e?"maxLength":"max_length",c=e?"nameLocalizations":"name_localizations",r=e?"descriptionLocalizations":"description_localizations";return{type:n.type,name:n.name,[c]:"name_localizations"in n?_nullishCoalesce(n.nameLocalizations, () => (n.name_localizations)):void 0,description:n.description,[r]:"description_localizations"in n?_nullishCoalesce(n.descriptionLocalizations, () => (n.description_localizations)):void 0,required:n.type===_discordjs.ApplicationCommandOptionType.Subcommand||n.type===_discordjs.ApplicationCommandOptionType.SubcommandGroup?void 0:_nullishCoalesce(n.required, () => (!1)),autocomplete:_nullishCoalesce(n.autocomplete, () => (!1)),choices:"choices"in n?_nullishCoalesce(_optionalChain([n, 'access', _21 => _21.choices, 'optionalAccess', _22 => _22.map, 'call', _23 => _23(l=>({name:l.name,value:l.value}))]), () => ([])):[],options:"options"in n?_nullishCoalesce(_optionalChain([n, 'access', _24 => _24.options, 'optionalAccess', _25 => _25.map, 'call', _26 => _26(l=>E(l,e))]), () => ([])):[],[t]:n.type===_discordjs.ApplicationCommandOptionType.Channel?_nullishCoalesce(n.channelTypes, () => (n.channel_types)):void 0,[o]:n.type===_discordjs.ApplicationCommandOptionType.Integer||n.type===_discordjs.ApplicationCommandOptionType.Number?_nullishCoalesce(n.minValue, () => (n.min_value)):void 0,[i]:n.type===_discordjs.ApplicationCommandOptionType.Integer||n.type===_discordjs.ApplicationCommandOptionType.Number?_nullishCoalesce(n.maxValue, () => (n.max_value)):void 0,[a]:n.type===_discordjs.ApplicationCommandOptionType.String?_nullishCoalesce(n.minLength, () => (n.min_length)):void 0,[m]:n.type===_discordjs.ApplicationCommandOptionType.String?_nullishCoalesce(n.maxLength, () => (n.max_length)):void 0}}s(E,"transformOption");function D(n){let e={name:n.name,name_localizations:_nullishCoalesce(n.nameLocalizations, () => (void 0)),dm_permission:n.dmPermission,nsfw:n.nsfw,default_member_permissions:_nullishCoalesce(_optionalChain([n, 'access', _27 => _27.defaultMemberPermissions, 'optionalAccess', _28 => _28.bitfield, 'access', _29 => _29.toString, 'call', _30 => _30()]), () => (void 0))};if(n.type===_discordjs.ApplicationCommandType.ChatInput)e.type=_discordjs.ApplicationCommandType.ChatInput,e.description=n.description,e.description_localizations=_nullishCoalesce(n.descriptionLocalizations, () => (void 0));else if(n.type===_discordjs.ApplicationCommandType.Message)e.type=_discordjs.ApplicationCommandType.Message;else if(n.type===_discordjs.ApplicationCommandType.User)e.type=_discordjs.ApplicationCommandType.User;else throw new Error(`Unknown command type received: ${n.type}`);return n.options.length?e.options=n.options.map(t=>_discordjs.ApplicationCommand.transformOption(t)):e.options=[],e}s(D,"convertToApiData");function S(n,e){if(n.name!==e.name||"description"in n&&"description"in e&&n.description!==e.description||(_nullishCoalesce(n.dm_permission, () => (!0)))!==(_nullishCoalesce(e.dm_permission, () => (!0)))||n.default_member_permissions!==e.default_member_permissions||!_fastdeepequal2.default.call(void 0, n.name_localizations,e.name_localizations)||(_nullishCoalesce(n.nsfw, () => (!1)))!==(_nullishCoalesce(e.nsfw, () => (!1)))||!_fastdeepequal2.default.call(void 0, n.description_localizations,e.description_localizations)||(_nullishCoalesce(_optionalChain([n, 'access', _31 => _31.options, 'optionalAccess', _32 => _32.length]), () => (0)))!==(_nullishCoalesce(_optionalChain([e, 'access', _33 => _33.options, 'optionalAccess', _34 => _34.length]), () => (0))))return!1;let t=_nullishCoalesce(_optionalChain([n, 'access', _35 => _35.options, 'optionalAccess', _36 => _36.map, 'call', _37 => _37(i=>E(i,!0))]), () => ([])),o=_nullishCoalesce(_optionalChain([e, 'access', _38 => _38.options, 'optionalAccess', _39 => _39.map, 'call', _40 => _40(i=>E(i,!0))]), () => ([]));return!!_discordjs.ApplicationCommand.optionsEqual(t,o,!1)}s(S,"commandEquals");var T=class{constructor(e){this.name=e;this.globalCommandIds=[];this.guildCommandIds=[];this.chatInputCommands=[];this.contextMenuCommands=[];this.options={}}static{s(this,"CommandRegistry")}setOptions(e){e.guildId&&(this.options.guildId=e.guildId),e.commandIds&&(this.options.commandIds=e.commandIds,this.options.guildId?this.guildCommandIds.push(...e.commandIds):this.globalCommandIds.push(...e.commandIds))}registerChatInputCommand(e){let t=W(e);return this.chatInputCommands.push(t),this}registerContextMenuCommand(e){let t=Y(e);return this.contextMenuCommands.push(t),this}async initialize(e,t){let o=[],i=[],a=this.guildId?await _optionalChain([t, 'access', _41 => _41.guilds, 'access', _42 => _42.cache, 'access', _43 => _43.get, 'call', _44 => _44(this.guildId), 'optionalAccess', _45 => _45.commands, 'access', _46 => _46.fetch, 'call', _47 => _47({withLocalizations:!0,force:!0})]):void 0;if(a)if(this.guildCommandIds.length)for(let c of this.guildCommandIds){let r=a.get(c),l=r&&this.chatInputCommands.find(u=>u.name===r.name),d=r&&this.contextMenuCommands.find(u=>u.name===r.name);if(r){let u=D(r);switch(r.type){case _discordjs.ApplicationCommandType.ChatInput:{l&&!S(l,u)?i.push(l):l||i.push(...this.chatInputCommands);break}case _discordjs.ApplicationCommandType.Message:case _discordjs.ApplicationCommandType.User:{d&&!S(d,u)?i.push(d):d||i.push(...this.contextMenuCommands);break}}}else l&&i.push(l),d&&i.push(d)}else this.chatInputCommands.length&&i.push(...this.chatInputCommands),this.contextMenuCommands.length&&i.push(...this.contextMenuCommands);else if(this.globalCommandIds.length)for(let c of this.globalCommandIds){let r=e.get(c),l=r&&this.chatInputCommands.find(u=>u.name===r.name),d=r&&this.contextMenuCommands.find(u=>u.name===r.name);if(r){let u=D(r);switch(r.type){case _discordjs.ApplicationCommandType.ChatInput:{l&&!S(l,u)?o.push(l):l||o.push(...this.chatInputCommands);break}case _discordjs.ApplicationCommandType.Message:case _discordjs.ApplicationCommandType.User:{d&&!S(d,u)?o.push(d):d||o.push(...this.contextMenuCommands);break}}}else l&&o.push(l),d&&o.push(d)}else this.chatInputCommands.length&&o.push(...this.chatInputCommands),this.contextMenuCommands.length&&o.push(...this.contextMenuCommands);let m={global:[...this.chatInputCommands,...this.contextMenuCommands].filter(Boolean),guild:this.guildId?[...this.chatInputCommands,...this.contextMenuCommands].filter(Boolean):[]};return{shouldGlobalDeploy:o.length>=1,shouldGuildDeploy:i.length>=1,allCommands:m}}};var _={AddReactions:"Add Reactions",Administrator:"Administrator",AttachFiles:"Attach Files",BanMembers:"Ban Members",ChangeNickname:"Change Nickname",Connect:"Connect",CreateInstantInvite:"Create Instant Invite",CreatePrivateThreads:"Create Private Threads",CreatePublicThreads:"Create Public Threads",DeafenMembers:"Deafen Members",EmbedLinks:"Embed Links",KickMembers:"Kick Members",ManageChannels:"Manage Channels",ManageEmojisAndStickers:"Manage Emojis and Stickers",ManageEvents:"Manage Events",ManageGuild:"Manage Server",ManageGuildExpressions:"Manage Guild Expressions",ManageMessages:"Manage Messages",ManageNicknames:"Manage Nicknames",ManageRoles:"Manage Roles",ManageThreads:"Manage Threads",ManageWebhooks:"Manage Webhooks",MentionEveryone:"Mention Everyone",ModerateMembers:"Moderate Members",MoveMembers:"Move Members",MuteMembers:"Mute Members",PrioritySpeaker:"Priority Speaker",ReadMessageHistory:"Read Message History",RequestToSpeak:"Request to Speak",SendMessages:"Send Messages",SendMessagesInThreads:"Send Messages in Threads",SendTTSMessages:"Send TTS Messages",SendVoiceMessages:"Send Voice Messages",Speak:"Speak",Stream:"Stream",UseApplicationCommands:"Use Application Commands",UseEmbeddedActivities:"Start Activities",UseExternalEmojis:"Use External Emojis",UseExternalSounds:"Use External Sounds",UseExternalStickers:"Use External Stickers",UseSoundboard:"Use Soundboard",UseVAD:"Use Voice Activity",ViewAuditLog:"View Audit Log",ViewChannel:"Read Messages",ViewCreatorMonetizationAnalytics:"View Creator Monetization Analytics",ViewGuildInsights:"View Guild Insights"},Q= exports.readableChannelTypes ={[_discordjs.ChannelType.GuildText]:"Text Channel",[_discordjs.ChannelType.GuildVoice]:"Voice Channel",[_discordjs.ChannelType.GuildAnnouncement]:"Announcement Channel",[_discordjs.ChannelType.GuildCategory]:"Category Channel",[_discordjs.ChannelType.GuildDirectory]:"Server Directory",[_discordjs.ChannelType.GuildForum]:"Forum Channel",[_discordjs.ChannelType.PublicThread]:"Public Thread",[_discordjs.ChannelType.PrivateThread]:"Private Thread",[_discordjs.ChannelType.GuildMedia]:"Server Media Channel",[_discordjs.ChannelType.DM]:"DM",[_discordjs.ChannelType.GroupDM]:"Group Chat",[_discordjs.ChannelType.GuildStageVoice]:"Stage Channel",[_discordjs.ChannelType.AnnouncementThread]:"Announcement Thread"};var y=class extends f{static{s(this,"InteractionCreateListener")}constructor(){super({event:"interactionCreate",once:!1})}async run(e,t){if(t.isChatInputCommand()){let o=e.commands.get(t.commandName);if(o&&o.chatInputRun){let i=new M({interaction:t,client:e,author:t.user,guild:_nullishCoalesce(t.guild, () => (void 0))});if(o.preconditions.length)for(let a of o.preconditions){let m=await _optionalChain([a, 'access', _48 => _48.chatInputRun, 'optionalCall', _49 => _49(i)]);_optionalChain([m, 'optionalAccess', _50 => _50.isErr, 'call', _51 => _51()])&&await t.reply({ephemeral:!0,content:m.unwrapErr().message}).catch(()=>null)}try{await o.chatInputRun(i)}catch(a){console.error("Handle interaction error",a)}}}else if(t.isContextMenuCommand()){let o=e.commands.get(t.commandName);if(o&&o.contextMenuRun){let i=new M({interaction:t,client:e,author:t.user,guild:_nullishCoalesce(t.guild, () => (void 0))});if(o.preconditions.length)for(let a of o.preconditions){let m=await _optionalChain([a, 'access', _52 => _52.contextMenuRun, 'optionalCall', _53 => _53(i)]);_optionalChain([m, 'optionalAccess', _54 => _54.isErr, 'call', _55 => _55()])&&await t.reply({ephemeral:!0,content:m.unwrapErr().message}).catch(()=>null)}try{await o.contextMenuRun(i)}catch(a){console.error("Handle interaction error",a)}}}else if(t.isAutocomplete()){let o=e.commands.get(t.commandName);if(o&&o.autocompleteRun)try{await o.autocompleteRun(t)}catch(i){console.error("Handle interaction error",i)}}else if(t.isMessageComponent()||t.isModalSubmit()){if(!e.components.size)return;let o=[];for(let a of e.components.values()){if(!_optionalChain([me, 'access', _56 => _56.get, 'call', _57 => _57(a.type), 'optionalCall', _58 => _58(t)]))continue;(await _result.Result.fromAsync(()=>a.parse(t))).match({ok:r=>{r.match({some:l=>{let d=_result.Result.fromAsync(()=>a.run(t,l)).then(u=>u.mapErr(P=>({component:a,error:P})));o.push(d)},none:()=>{}})},err:r=>console.error("Component parse error",r)})}if(!o.length)return;let i=await Promise.allSettled(o);for(let a of i)a.value.inspectErr(c=>console.error("Component run error",c))}}},me=new Map([[0,n=>n.isButton()],[1,n=>n.isAnySelectMenu()],[2,n=>n.isModalSubmit()],[3,n=>n.isMessageComponent()]]);var b=class extends f{static{s(this,"ReadyListener")}constructor(){super({event:"ready",once:!0})}async run(e){await e.handleRegistryAPICalls()}};var B=class extends g{static{s(this,"DeveloperOnly")}constructor(){super()}async sharedRun({client:e,author:t}){return e.developers.includes(t.id)?this.ok():this.error({identifier:"Developer Only",message:"This command can only be used by a bot developer."})}async chatInputRun(e){return this.sharedRun(e)}async contextMenuRun(e){return this.sharedRun(e)}};var z=class extends g{constructor(t){super();this.permissions=t}static{s(this,"UserPermissions")}async chatInputRun({interaction:t}){if(!t.inCachedGuild())return this.ok();let o=t.member.permissions.missing(this.permissions);return o.length===0?this.ok():this.error({identifier:"Missing Permissions",message:`You are missing the following permissions to run this command: ${o.map(i=>_[i]).join(", ")}`})}async contextMenuRun({interaction:t}){if(!t.inCachedGuild())return this.ok();let o=t.member.permissions.missing(this.permissions);return o.length===0?this.ok():this.error({identifier:"Missing Permissions",message:`You are missing the following permissions to run this command: ${o.map(i=>_[i]).join(", ")}`})}};var N=class extends g{constructor(t){super();this.channelTypes=t}static{s(this,"ChannelTypeOnly")}async sharedRun({interaction:t}){return _optionalChain([t, 'access', _59 => _59.channel, 'optionalAccess', _60 => _60.isTextBased, 'call', _61 => _61()])?this.channelTypes.includes(t.channel.type)?this.ok():this.error({identifier:"Wrong Channel",message:`This command can only be used in: ${this.channelTypes.map(o=>`${Q[o]}`).join(", ")}`}):this.ok()}async chatInputRun(t){return this.sharedRun(t)}async contextMenuRun(t){return this.sharedRun(t)}};exports.ChannelTypeOnly = N; exports.Command = w; exports.CommandContext = M; exports.CommandRegistry = T; exports.Component = O; exports.ComponentType = V; exports.DeveloperOnly = B; exports.InteractionCreateListener = y; exports.Job = R; exports.Listener = f; exports.MoodyClient = j; exports.Precondition = g; exports.ReadyListener = b; exports.UserPermissions = z; exports.allGuildIdsToRegister = Se; exports.commandEquals = S; exports.convertToApiData = D; exports.createRegistry = G; exports.normalizeChatInputCommand = W; exports.normalizeContextMenuCommand = Y; exports.readableChannelTypes = Q; exports.readablePermissions = _; exports.registries = v; exports.transformOption = E;