@arox/framework 0.1.2-beta.1 → 0.1.3
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.
- package/dist/constants/exports.d.ts +1 -0
- package/dist/constants/lang.d.ts +2 -0
- package/dist/events/interaction.d.ts +4 -1
- package/dist/events/message.d.ts +4 -1
- package/dist/events/ready.d.ts +4 -1
- package/dist/index.cjs +3 -0
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -1194
- package/dist/structures/builder/Builder.d.ts +60 -9
- package/dist/structures/builder/Command.d.ts +23 -11
- package/dist/structures/builder/Context.d.ts +33 -18
- package/dist/structures/builder/Event.d.ts +7 -6
- package/dist/structures/builder/index.d.ts +4 -4
- package/dist/structures/core/Client.d.ts +29 -6
- package/dist/structures/core/index.d.ts +1 -1
- package/dist/structures/index.d.ts +3 -2
- package/dist/structures/parser/MessageCommandParser.d.ts +25 -0
- package/dist/structures/parser/index.d.ts +1 -0
- package/dist/utils/applicationCommandLocalization.d.ts +3 -0
- package/dist/utils/builderAutoSet.d.ts +7 -0
- package/dist/utils/index.d.ts +3 -3
- package/dist/utils/logger/ILogger.d.ts +2 -44
- package/dist/utils/logger/Logger.d.ts +18 -54
- package/dist/utils/util.d.ts +8 -3
- package/package.json +1 -1
- package/types/client.d.ts +43 -13
- package/types/logger.d.ts +66 -0
- package/dist/context.d.ts +0 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const MAX_EXPORT_FACTORY_DEPTH = 16;
|
package/dist/events/message.d.ts
CHANGED
package/dist/events/ready.d.ts
CHANGED
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";var Zt=Object.create;var J=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var re=Object.getPrototypeOf,ne=Object.prototype.hasOwnProperty;var u=(r,t)=>()=>(r&&(t=r(r=0)),t);var W=(r,t)=>{for(var e in t)J(r,e,{get:t[e],enumerable:!0})},xt=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ee(t))!ne.call(r,s)&&s!==e&&J(r,s,{get:()=>t[s],enumerable:!(n=te(t,s))||n.enumerable});return r};var L=(r,t,e)=>(e=r!=null?Zt(re(r)):{},xt(t||!r||!r.__esModule?J(e,"default",{value:r,enumerable:!0}):e,r)),se=r=>xt(J({},"__esModule",{value:!0}),r);function et(r){if(r==null)return"";let t;return typeof r=="string"?t=r:typeof r=="number"||typeof r=="boolean"||typeof r=="bigint"?t=`${r}`:r instanceof Date?t=r.toISOString():typeof r=="object"?t=JSON.stringify(r):typeof r=="symbol"?t=r.description?`Symbol(${r.description})`:"Symbol()":typeof r=="function"?t=r.name?`[Function: ${r.name}]`:"[Function]":t="",t.replaceAll("@","@\u200B")}function rt(r,t,e){let n=String(r),s=0,o="";for(;s<n.length;){let i=n.indexOf("{{",s);if(i===-1){o+=n.slice(s);break}o+=n.slice(s,i);let c=n.indexOf("}}",i+2);if(c===-1){o+=n.slice(i);break}let h=n.slice(i,c+2),f=n.slice(i+2,c),x=f.trim();if(!x||f.includes("{")||f.includes("}"))o+=h;else{let y=e(x,t);o+=typeof y=="string"?y:h}s=c+2}return o}function nt(r){let t=String(r),e=new Set,n=0;for(;n<t.length;){let s=t.indexOf("{{",n);if(s===-1)break;let o=t.indexOf("}}",s+2);if(o===-1)break;let i=t.slice(s+2,o),c=i.trim();c&&!i.includes("{")&&!i.includes("}")&&e.add(c),n=o+2}return e}function Y(r,t=15e3){return new Promise(e=>{setTimeout(()=>{r.delete().catch(()=>{}),e()},t)})}function V(r){if(r&&oe.has(r))return r}function st(r){return r.isInteraction()?V(r.data.locale)??V(r.data.guildLocale)??tt.Locale.EnglishUS:V(r.data.guild?.preferredLocale)??tt.Locale.EnglishUS}var tt,Ot,oe,ot=u(()=>{"use strict";tt=require("discord.js"),Ot=["id","en-US","en-GB","bg","zh-CN","zh-TW","hr","cs","da","nl","fi","fr","de","el","hi","hu","it","ja","ko","lt","no","pl","pt-BR","ro","ru","es-ES","es-419","sv-SE","th","tr","uk","vi"],oe=new Set(Ot)});function it(r){return Ct.default.sync(["**/*.ts","**/*.js","**/*.cjs","**/*.mjs"],{cwd:r,absolute:!0,ignore:["**/*.d.ts","node_modules/**",".git/**","dist/**","lib/**","out/**","build/**",".next/**","coverage/**"]})}function at(){let r=[];r.push(w.default.resolve(process.cwd()));let t=typeof require<"u"?require.main?.filename:void 0;t&&r.push(w.default.dirname(w.default.resolve(t))),typeof module<"u"&&module.parent?.filename&&r.push(w.default.dirname(w.default.resolve(module.parent.filename)));for(let e of r){let n=ie(e);if(n)return n}return r[0]}function ie(r){let t=w.default.resolve(r);for(;;){let e=w.default.join(t,"package.json");if((0,yt.existsSync)(e))return w.default.normalize(t);let n=w.default.dirname(t);if(n===t)return null;t=n}}var Ct,yt,w,St=u(()=>{"use strict";Ct=L(require("fast-glob"),1),yt=require("node:fs"),w=L(require("path"),1)});var a,lt=u(()=>{"use strict";a=(function(r){return r[r.Trace=10]="Trace",r[r.Debug=20]="Debug",r[r.Info=30]="Info",r[r.Warn=40]="Warn",r[r.Error=50]="Error",r[r.Fatal=60]="Fatal",r[r.None=100]="None",r})({})});var Et,At,d,Mt,M,D,H,A,Se,ae,le,ce,z,ct=u(()=>{"use strict";Et=require("console"),At=require("util"),d=L(require("colorette"),1),Mt=require("@sapphire/timestamp");lt();lt();M=class r{level;formats;join;depth;console;static instance=null;static LOG_METHODS=new Map([[a.Trace,"trace"],[a.Debug,"debug"],[a.Info,"info"],[a.Warn,"warn"],[a.Error,"error"],[a.Fatal,"error"]]);static DEFAULT_COLORS=new Map([[a.Trace,d.gray],[a.Debug,d.magenta],[a.Info,d.cyan],[a.Warn,d.yellow],[a.Error,d.red],[a.Fatal,d.bgRed],[a.None,d.white]]);static DEFAULT_NAMES=new Map([[a.Trace,"TRACE"],[a.Debug,"DEBUG"],[a.Info,"INFO"],[a.Warn,"WARN"],[a.Error,"ERROR"],[a.Fatal,"FATAL"],[a.None,""]]);constructor(t={}){this.level=t.level??a.Info,this.console=new Et.Console(t.stdout??process.stdout,t.stderr??process.stderr),this.formats=this.createFormatMap(t.format,t.defaultFormat??t.format?.none??{}),this.join=t.join??" ",this.depth=t.depth??2}static getInstance(){return this.instance||(this.instance=new r),this.instance}static get stylize(){return d.isColorSupported}setLevel(t){this.level=t}has(t){return t>=this.level}trace(...t){this.write(a.Trace,...t)}debug(...t){this.write(a.Debug,...t)}info(...t){this.write(a.Info,...t)}log(...t){this.write(a.Info,...t)}warn(...t){this.write(a.Warn,...t)}error(...t){this.write(a.Error,...t)}fatal(...t){this.write(a.Fatal,...t)}write(t,...e){if(t<this.level)return;let n=r.LOG_METHODS.get(t),o=(this.formats.get(t)??this.formats.get(a.None)).run(this.preprocess(e));switch(n){case"trace":this.console.trace(o);break;case"debug":this.console.debug(o);break;case"info":this.console.info(o);break;case"warn":this.console.warn(o);break;case"error":this.console.error(o);break;default:this.console.log(o)}}preprocess(t){let e={colors:d.isColorSupported,depth:this.depth};return t.map(n=>typeof n=="string"?n:(0,At.inspect)(n,e)).join(this.join)}createFormatMap(t={},e){let n=new Map;for(let[s,o]of r.DEFAULT_COLORS){let i=r.DEFAULT_NAMES.get(s),c=t[this.getLevelKey(s)]??this.createDefaultLevel(e,o,i??"");n.set(s,c instanceof A?c:new A(c))}return n}createDefaultLevel(t,e,n){return new A({...t,timestamp:t.timestamp===null?null:{...t.timestamp,color:e},infix:n.length?`${e(n.padEnd(5," "))} `:""})}getLevelKey(t){return{[a.Trace]:"trace",[a.Debug]:"debug",[a.Info]:"info",[a.Warn]:"warn",[a.Error]:"error",[a.Fatal]:"fatal",[a.None]:"none"}[t]}},D=class{style;constructor(t={}){if(typeof t=="function")this.style=t;else{let e=this.buildStyleArray(t);this.style=this.combineStyles(e)}}run(t){return this.style(String(t))}buildStyleArray(t){let e=[];return t.effects&&e.push(...t.effects.map(n=>d[n])),t.text&&e.push(d[t.text]),t.background&&e.push(d[t.background]),e}combineStyles(t){return t.length===0?d.reset:t.length===1?t[0]:(e=>t.reduce((n,s)=>s(n),e))}},H=class{timestamp;utc;color;formatter;constructor(t={}){this.timestamp=new Mt.Timestamp(t.pattern??"YYYY-MM-DD HH:mm:ss"),this.utc=t.utc??!1,this.color=t.color===null?null:new D(t.color),this.formatter=t.formatter??(e=>`${e} `)}run(){let t=new Date,e=this.utc?this.timestamp.displayUTC(t):this.timestamp.display(t);return this.formatter(this.color?this.color.run(e):e)}},A=class{timestamp;infix;message;constructor(t={}){this.timestamp=t.timestamp===null?null:new H(t.timestamp),this.infix=t.infix??"",this.message=t.message===null?null:new D(t.message)}run(t){let e=(this.timestamp?.run()??"")+this.infix;if(e.length){let n=this.message?s=>e+this.message?.run(s):s=>e+s;return t.split(`
|
|
2
|
+
`).map(n).join(`
|
|
3
|
+
`)}return this.message?this.message.run(t):t}},Se=M.getInstance(),ae=(function(r){return r.Reset="reset",r.Bold="bold",r.Dim="dim",r.Italic="italic",r.Underline="underline",r.Inverse="inverse",r.Hidden="hidden",r.Strikethrough="strikethrough",r})({}),le=(function(r){return r.Black="black",r.Red="red",r.Green="green",r.Yellow="yellow",r.Blue="blue",r.Magenta="magenta",r.Cyan="cyan",r.White="white",r.Gray="gray",r.BlackBright="blackBright",r.RedBright="redBright",r.GreenBright="greenBright",r.YellowBright="yellowBright",r.BlueBright="blueBright",r.MagentaBright="magentaBright",r.CyanBright="cyanBright",r.WhiteBright="whiteBright",r})({}),ce=(function(r){return r.Black="bgBlack",r.Red="bgRed",r.Green="bgGreen",r.Yellow="bgYellow",r.Blue="bgBlue",r.Magenta="bgMagenta",r.Cyan="bgCyan",r.White="bgWhite",r.BlackBright="bgBlackBright",r.RedBright="bgRedBright",r.GreenBright="bgGreenBright",r.YellowBright="bgYellowBright",r.BlueBright="bgBlueBright",r.MagentaBright="bgMagentaBright",r.CyanBright="bgCyanBright",r.WhiteBright="bgWhiteBright",r})({}),z=class{type="logger";constructor(t){this.logger=t}log(...t){this.logger.debug("[i18next]",...t)}warn(...t){this.logger.warn("[i18next]",...t)}error(...t){this.logger.error("[i18next]",...t)}}});var X=u(()=>{"use strict";ot();St();ct()});var kt=u(()=>{"use strict"});var It={};W(It,{default:()=>ue});var Nt,ue,Tt=u(()=>{"use strict";Nt=require("discord.js");k();ue=new b(Nt.Events.ClientReady).onExecute(async function(r){r.client.options.autoRegisterCommands&&await r.client.registerCommands()})});var N,ut,dt=u(()=>{"use strict";N="Command not found or disabled.",ut="There was an error while executing this command!"});var Dt={};W(Dt,{default:()=>de});var E,de,zt=u(()=>{"use strict";E=require("discord.js");dt();k();de=new b(E.Events.InteractionCreate,!1).onExecute(async function(r,t){if(!t.isChatInputCommand())return;let e=r.client.resolveInteractionCommand(t.commandName),n=new O(r.client,{interaction:t});if(!e){await t.reply({content:n.t("error:command.notfound",{defaultValue:N}),flags:E.MessageFlags.Ephemeral});return}if(!e.supportsSlash){await t.reply({content:n.t("error:command.disabled",{defaultValue:N}),flags:E.MessageFlags.Ephemeral});return}try{r.logger.debug(`${n.author?.tag??"Unknown"} used ${e.data.name}(interaction)`),e._onInteraction&&await e._onInteraction(n.toJSON())}catch(s){r.client.logger.error(`Error executing command ${e.data.name}:`,s),t.replied||t.deferred?await t.followUp({content:ut,flags:E.MessageFlags.Ephemeral}):await t.reply({content:ut,flags:E.MessageFlags.Ephemeral})}})});var Rt={};W(Rt,{default:()=>me});var Bt,me,$t=u(()=>{"use strict";Bt=require("discord.js");dt();k();X();me=new b(Bt.Events.MessageCreate,!1,async function(r,t){if(t.author.bot)return;let e=r.client.prefix(new O(r.client,{message:t}));if(typeof e!="string"||e.length===0||!t.content.startsWith(e))return;let n=t.content.slice(e.length).trim().split(/ +/),s=n.shift();if(!s)return;let o=new O(r.client,{message:t,args:n}),i=r.client.resolveMessageCommand(s);if(!i){await t.reply({content:o.t("error:command.notfound",{defaultValue:N}),allowedMentions:{repliedUser:!1}}).then(Y);return}if(!i.supportsPrefix){await t.reply({content:o.t("error:command.disabled",{defaultValue:N}),allowedMentions:{repliedUser:!1}}).then(Y);return}try{r.logger.debug(`${o.author?.tag??"Unknown"} used ${i.data.name}(message)`),i._onMessage&&await i._onMessage(o.toJSON())}catch(c){r.client.logger.error(`Error executing command ${i.data.name}:`,c)}})});var C,Ft,mt,Pt,he,ht,vt=u(()=>{"use strict";C=require("discord.js"),Ft=require("node:fs"),mt=L(require("node:path"),1),Pt=require("node:url");X();kt();k();he={includePaths:["events","commands"],autoRegisterCommands:!0,getDefaultLang:st},ht=class extends C.Client{logger;commands;slashCommandLookup=null;prefixCommandLookup=null;templateParsers=[];prefix;i18n;i18next;constructor(t){super({...he,...t}),this.logger=new M(t.logger),this.commands=new C.Collection,this.prefix=this.options.prefix??(()=>!1),this.options.i18n&&(this.i18n=this.options.i18n,this.i18n.use(new z(this.logger))),this.i18next={instance:this.i18n,parser:{addParser:e=>{this.addTemplateParser(e)},removeParser:e=>this.removeTemplateParser(e),clearParsers:()=>{this.clearTemplateParsers()}}}}async login(t){await this.#e();for(let e of this.options.includePaths)try{let n=mt.default.isAbsolute(e)?e:mt.default.join(at(),e);await this.#t(n)}catch(n){this.logger.error(`Error loading ${e}:`,n)}return this.i18n&&!this.i18n.isInitialized&&await this.i18n.init(),this.invalidateCommandLookupCache(),super.login(t)}async#t(t){if(!(0,Ft.existsSync)(t)){this.logger.debug(`Directory not found: ${t}`);return}let e=it(t);for(let n of e)await this.#r(n)}async#e(){let t=[()=>Promise.resolve().then(()=>(Tt(),It)),()=>Promise.resolve().then(()=>(zt(),Dt))];for(let e of t){let n=await e();await this.#n(n,"[core]")}if(this.options.prefix){let e=await Promise.resolve().then(()=>($t(),Rt));await this.#n(e,"[core]")}}async#r(t){try{let e=(0,Pt.pathToFileURL)(t);e.searchParams.set("ts",Date.now().toString(36));let n=await import(e.href);await this.#n(n,t)}catch(e){this.logger.error(`Error loading file ${t}:`,e)}}async#n(t,e){let n=new Set;for(let s of Object.values(t))n.add(s);for(let s of n)await this.registerExport(s,e)}async registerExport(t,e,n=0){if(t!=null){if(Array.isArray(t)){for(let s of t)await this.registerExport(s,e,n);return}if(t instanceof I){t.attach(this);return}if(t instanceof b){t.attach(this);return}if(typeof t=="object"&&"attach"in t&&typeof t.attach=="function"){await t.attach(this);return}if(typeof t=="function"){if(n>=16){this.logger.error(`Skipped export factory in ${e}: max depth (${16}) exceeded.`);return}let s=await t(this);await this.registerExport(s,e,n+1);return}this.logger.debug(`Skipped unsupported export type in ${e}: ${typeof t}`)}}normalizeCommandName(t){return t.trim().toLowerCase()}invalidateCommandLookupCache(){this.slashCommandLookup=null,this.prefixCommandLookup=null}addTemplateParser(t){this.templateParsers.includes(t)||this.templateParsers.push(t)}removeTemplateParser(t){let e=this.templateParsers.indexOf(t);return e===-1?!1:(this.templateParsers.splice(e,1),!0)}clearTemplateParsers(){this.templateParsers.length=0}parseTemplateToken(t,e){for(let n of this.templateParsers){let s=n(t,e);if(typeof s=="string")return s}}buildCommandLookup(t){let e=new Map;for(let n of this.commands.values()){if(t?!n.supportsPrefix:!n.supportsSlash)continue;let s=n.data.toClientJSON(this),o=Object.values(s.name_localizations??{}).filter(i=>typeof i=="string");for(let i of new Set([s.name,...o])){let c=this.normalizeCommandName(i),h=e.get(c);if(!h){e.set(c,n);continue}if(h!==n){let f=h.data.toJSON().name;this.logger.warn(`Command lookup conflict (${t?"prefix":"slash"}) for "${i}" (normalized: "${c}"): "${s.name}" conflicts with "${f}". Keeping "${f}".`)}}}return e}getSlashCommandLookup(){return this.slashCommandLookup||(this.slashCommandLookup=this.buildCommandLookup(!1)),this.slashCommandLookup}getPrefixCommandLookup(){return this.prefixCommandLookup||(this.prefixCommandLookup=this.buildCommandLookup(!0)),this.prefixCommandLookup}getSlashCommandsPayload(){return this.commands.filter(t=>t.supportsSlash).map(t=>t.data.toClientJSON(this))}resolveInteractionCommand(t){let e=this.normalizeCommandName(t),n=this.commands.get(e)??this.commands.get(t);return n?.supportsSlash?n:this.getSlashCommandLookup().get(e)}resolveMessageCommand(t){let e=this.normalizeCommandName(t),n=this.commands.get(e)??this.commands.get(t);return n?.supportsPrefix?n:this.getPrefixCommandLookup().get(e)}async registerCommands(){if(!this.token){this.logger.warn("registerCommands skipped: client token is not set.");return}if(!this.application){this.logger.warn("registerCommands skipped: client application is not ready.");return}let t=this.getSlashCommandsPayload(),e=new C.REST({version:"10"}).setToken(this.token);try{this.logger.debug(`Started refreshing ${t.length} application (/) commands.`),await e.put(C.Routes.applicationCommands(this.application.id),{body:t}),this.logger.info(`Loaded ${t.length} application (/) commands.`)}catch(n){this.logger.error("Failed to register commands:",n)}}}});var Ut=u(()=>{"use strict";vt()});var I,pt,Gt=u(()=>{"use strict";I=class{#t=null;#e=null;#r;#n;#s=!1;_onMessage;_onInteraction;createContextHandler(t,e){if(t)return n=>t(n);if(e)return n=>e(n)}get client(){if(!this.#t)throw new Error("Command is not attached to a client");return this.#t}get logger(){if(!this.#e)throw new Error("Command is not attached to a client");return this.#e}get supportsSlash(){return this.#r&&!!this._onInteraction}get supportsPrefix(){return this.#n&&!!this._onMessage}constructor(t){this.data=t;let e=t.toJSON(),{name:n}=e;if(this.#n=e.prefix_support??!1,this.#r=e.slash_support??!1,!this.#n&&!this.#r)throw new Error(`Command ${n} must support either slash or prefix commands.`)}attach(t){if(this.#s)return this;let e=this.data.toJSON(),{name:n}=e;if(this.#t=t,this.#e=t.logger,t.commands.has(n))throw new Error(`Command name "${n}" is already registered.`);return t.commands.set(n,this),t.invalidateCommandLookupCache(),this.logger.debug(`Loaded Command ${n}`),this.#s=!0,this}onMessage(t){return this._onMessage=t,this}onInteraction(t){return this._onInteraction=t,this}},pt=class extends I{constructor(t){super(t.data);let e=t.data.toJSON();if(e.prefix_support){let n=this.createContextHandler(t.onMessage,t.execute);n&&this.onMessage(n)}if(e.slash_support){let n=this.createContextHandler(t.onInteraction,t.execute);n&&this.onInteraction(n)}}}});var T,O,jt=u(()=>{"use strict";T=require("discord.js");ot();O=class{args;data;locale;constructor(t,e){this.client=t,this.args=e.args??[],"interaction"in e?this.data=e.interaction:this.data=e.message,this.locale=this.client.options.getDefaultLang?.(this)}#t(){let t=this.client.i18n.options.fallbackLng;return(Array.isArray(t)?t[0]:t)??T.Locale.EnglishUS}#e(){return this.locale??this.client.options.getDefaultLang?.(this)??this.#t()}#r(){return(t,e)=>this.t(t,e)}#n(){return(t,e)=>this.getDefaultLocalization(t,e)}#s(){return(t,e)=>this.getLocalizationAliases(t,e)}#o(t){return Array.isArray(t)?t.flatMap(e=>this.#o(e)).filter(e=>e.length>0):typeof t=="string"?t.split(/[,\n|]/g).map(e=>e.trim()).filter(e=>e.length>0):[]}isInteraction(){return this.data instanceof T.ChatInputCommandInteraction}isMessage(){return this.data instanceof T.Message}get author(){return this.isInteraction()?this.data.user:this.isMessage()?this.data.author:null}resolveIdentityToken(t,e){if(t){if(e===""||e==="name"||e==="username")return et(t.username);if(e==="id")return t.id;if(e==="ping"||e==="mention")return`<@${t.id}>`}}resolveContextToken(t){let[e,...n]=t.toLowerCase().split("."),s=n.join("."),o=e.trim();if(o==="user"||o==="author")return this.resolveIdentityToken(this.author,s);if(o==="bot")return s==="ws.ping"?`${this.client.ws.ping}`:this.resolveIdentityToken(this.client.user,s)}resolveTemplateToken(t){return this.resolveContextToken(t)??this.client.parseTemplateToken(t,this)}t(t,e){if(!this.client.i18n)throw new Error("i18n is not initialized");let n=this.client.i18n.getFixedT(this.#e()),s=n(t,{...e,skipInterpolation:!0}),o=s===t&&e?.defaultValue?e.defaultValue:s,i=nt(o),c=n(t,e),h=c===t&&e?.defaultValue?e.defaultValue:c;return i.size===0?h:rt(h,this,(f,x)=>{if(i.has(f))return x.resolveTemplateToken(f)})}getDefaultLocalization(t,e){if(!this.client.i18n)return e??t;let n=this.client.i18n.t(t,{lng:this.#t(),defaultValue:e??t});return typeof n=="string"?n:e??t}getLocalizationAliases(t,e){let n=this.#o(e??[]);if(!this.client.i18n)return n;let s=Array.from(new Set([this.#e(),this.#t()])),o=new Set;for(let i of s){let c=this.client.i18n.t(t,{lng:i,defaultValue:"",returnObjects:!0});for(let h of this.#o(c))h!==t&&o.add(h)}if(o.size===0)for(let i of n)o.add(i);return Array.from(o)}toJSON(){let{data:t,args:e,author:n}=this,s=this.#r(),o=this.#n(),i=this.#s();return this.isInteraction()?{kind:"interaction",interaction:t,author:n,t:s,getDefaultLocalization:o,getLocalizationAliases:i}:{kind:"message",message:t,args:e,author:n,t:s,getDefaultLocalization:o,getLocalizationAliases:i}}}});var b,Jt=u(()=>{"use strict";b=class{#t=null;#e=null;#r;#n=!1;get client(){if(!this.#t)throw new Error("Event is not attached to a client");return this.#t}get logger(){if(!this.#e)throw new Error("Event is not attached to a client");return this.#e}#s=async(...t)=>{if(this.#t&&this.#r)try{await this.#r(this,...t)}catch(e){this.client.logger.error(`Error executing event ${this.name} (${this.constructor.name}):`,e)}};constructor(t,e=!1,n){this.name=t,this.once=e,n&&(this.#r=n)}#o(){this.#n||!this.#r||!this.#t||!this.#e||(this.once?this.client.once(this.name,this.#s):this.client.on(this.name,this.#s),this.#n=!0,this.logger.debug(`Loaded Event ${String(this.name)}`))}attach(t){return this.#t?this:(this.#t=t,this.#e=t.logger,this.#o(),this)}onExecute(t){return this.#r=t,this.#o(),this}}});var p,m,Wt=u(()=>{"use strict";p=(r,t)=>(r.setName(t),r.setDescription(t),r),m=(r,t)=>(r instanceof t||Object.setPrototypeOf(r,t.prototype),r)});var g,pe,fe,q,Lt,Vt,Yt=u(()=>{"use strict";g=require("discord.js"),pe={[g.ApplicationCommandOptionType.User]:"user",[g.ApplicationCommandOptionType.String]:"string",[g.ApplicationCommandOptionType.Number]:"number",[g.ApplicationCommandOptionType.Integer]:"number",[g.ApplicationCommandOptionType.Boolean]:"boolean",[g.ApplicationCommandOptionType.Role]:"role",[g.ApplicationCommandOptionType.Channel]:"channel",[g.ApplicationCommandOptionType.Mentionable]:"mentionable",[g.ApplicationCommandOptionType.Attachment]:"attachment"},fe=r=>{let t=Object.keys(r.store.data),e=Array.isArray(r.options.supportedLngs)?r.options.supportedLngs.filter(n=>n!=="cimode"):[];return Array.from(new Set([...t,...e]))},q=(r,t,e)=>{let n={};for(let s of fe(r)){let o=r.t(t,{lng:s,defaultValue:e});n[s]=typeof o=="string"&&o.length>0?o:e}return n},Lt=(r,t,e)=>{let n;if(r.type===g.ApplicationCommandOptionType.Subcommand)n=`${t}.subcommand.${r.name}`;else if(r.type===g.ApplicationCommandOptionType.SubcommandGroup)n=`${t}.group.${r.name}`;else{let s=pe[r.type]??"option";n=`${t}.${s}.${r.name}`}r.name_localizations=q(e,`${n}.name`,r.name),typeof r.description=="string"&&(r.description_localizations=q(e,`${n}.description`,r.description));for(let s of r.options??[])Lt(s,n,e)},Vt=(r,t)=>{let e=`command:${r.name}`;r.name_localizations=q(t,`${e}.name`,r.name),r.description_localizations=q(t,`${e}.description`,r.description);for(let n of r.options??[])Lt(n,e,t);return r}});var l,B,R,$,_,F,P,v,U,G,j,K,ft,Ht=u(()=>{"use strict";l=require("discord.js");Wt();Yt();B=class extends l.SlashCommandStringOption{autoSet(t){return p(this,t)}},R=class extends l.SlashCommandIntegerOption{autoSet(t){return p(this,t)}},$=class extends l.SlashCommandNumberOption{autoSet(t){return p(this,t)}},_=class extends l.SlashCommandBooleanOption{autoSet(t){return p(this,t)}},F=class extends l.SlashCommandUserOption{autoSet(t){return p(this,t)}},P=class extends l.SlashCommandChannelOption{autoSet(t){return p(this,t)}},v=class extends l.SlashCommandRoleOption{autoSet(t){return p(this,t)}},U=class extends l.SlashCommandMentionableOption{autoSet(t){return p(this,t)}},G=class extends l.SlashCommandAttachmentOption{autoSet(t){return p(this,t)}},j=class extends l.SlashCommandSubcommandBuilder{autoSet(t){return p(this,t)}addStringOption(t){return typeof t!="function"?super.addStringOption(t):super.addStringOption(e=>t(m(e,B)))}addIntegerOption(t){return typeof t!="function"?super.addIntegerOption(t):super.addIntegerOption(e=>t(m(e,R)))}addNumberOption(t){return typeof t!="function"?super.addNumberOption(t):super.addNumberOption(e=>t(m(e,$)))}addBooleanOption(t){return typeof t!="function"?super.addBooleanOption(t):super.addBooleanOption(e=>t(m(e,_)))}addUserOption(t){return typeof t!="function"?super.addUserOption(t):super.addUserOption(e=>t(m(e,F)))}addChannelOption(t){return typeof t!="function"?super.addChannelOption(t):super.addChannelOption(e=>t(m(e,P)))}addRoleOption(t){return typeof t!="function"?super.addRoleOption(t):super.addRoleOption(e=>t(m(e,v)))}addMentionableOption(t){return typeof t!="function"?super.addMentionableOption(t):super.addMentionableOption(e=>t(m(e,U)))}addAttachmentOption(t){return typeof t!="function"?super.addAttachmentOption(t):super.addAttachmentOption(e=>t(m(e,G)))}},K=class extends l.SlashCommandSubcommandGroupBuilder{autoSet(t){return p(this,t)}addSubcommand(t){return typeof t!="function"?super.addSubcommand(t):super.addSubcommand(e=>t(m(e,j)))}},ft=class extends l.SlashCommandBuilder{prefix_support=!0;slash_support=!0;setPrefixSupport(t=!0){return this.prefix_support=t,this}setSlashSupport(t=!0){return this.slash_support=t,this}autoSet(t){return p(this,t)}addStringOption(t){return typeof t!="function"?super.addStringOption(t):super.addStringOption(e=>t(m(e,B)))}addIntegerOption(t){return typeof t!="function"?super.addIntegerOption(t):super.addIntegerOption(e=>t(m(e,R)))}addNumberOption(t){return typeof t!="function"?super.addNumberOption(t):super.addNumberOption(e=>t(m(e,$)))}addBooleanOption(t){return typeof t!="function"?super.addBooleanOption(t):super.addBooleanOption(e=>t(m(e,_)))}addUserOption(t){return typeof t!="function"?super.addUserOption(t):super.addUserOption(e=>t(m(e,F)))}addChannelOption(t){return typeof t!="function"?super.addChannelOption(t):super.addChannelOption(e=>t(m(e,P)))}addRoleOption(t){return typeof t!="function"?super.addRoleOption(t):super.addRoleOption(e=>t(m(e,v)))}addMentionableOption(t){return typeof t!="function"?super.addMentionableOption(t):super.addMentionableOption(e=>t(m(e,U)))}addAttachmentOption(t){return typeof t!="function"?super.addAttachmentOption(t):super.addAttachmentOption(e=>t(m(e,G)))}addSubcommand(t){return typeof t!="function"?super.addSubcommand(t):super.addSubcommand(e=>t(m(e,j)))}addSubcommandGroup(t){return typeof t!="function"?super.addSubcommandGroup(t):super.addSubcommandGroup(e=>t(m(e,K)))}toJSON(){let t=super.toJSON();return t.prefix_support=this.prefix_support,t.slash_support=this.slash_support,this.assertNoMixedTopLevelOptionTypes(t),t}toClientJSON(t){let e=this.toJSON();return t.i18n?Vt(e,t.i18n):e}assertNoMixedTopLevelOptionTypes(t){let e=t.options;if(!(!e||e.length===0||!e.some(o=>o.type===l.ApplicationCommandOptionType.Subcommand||o.type===l.ApplicationCommandOptionType.SubcommandGroup)||!e.some(o=>o.type!==l.ApplicationCommandOptionType.Subcommand&&o.type!==l.ApplicationCommandOptionType.SubcommandGroup)))throw new Error(`Command "${t.name}" mixes subcommands/subcommand groups with regular options at the top level. Discord requires choosing one structure.`)}}});var Xt=u(()=>{"use strict";Gt();jt();Jt();Ht()});var Q,gt,qt=u(()=>{"use strict";Q=require("fastest-levenshtein"),gt=class r{args;normalizedArgs;constructor(t){this.ctx=t,this.args=t.args,this.normalizedArgs=this.args.map(e=>r.normalizeToken(e))}static normalizeToken(t){return String(t).trim().toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"")}getAliases(t,e=[]){return this.ctx.getLocalizationAliases(t,e).map(n=>r.normalizeToken(n)).filter((n,s,o)=>n.length>0&&o.indexOf(n)===s)}findClosestAlias(t,e,n=1){if(!t||e.length===0)return null;let s=(0,Q.closest)(t,e);return s&&(0,Q.distance)(t,s)<=n?s:null}matchesArg(t,e,n=[],s={}){let o=this.normalizedArgs[t];if(!o)return!1;let i=this.getAliases(e,n);return new Set(i).has(o)?!0:s.useFuzzy?this.findClosestAlias(o,i,s.maxDistance??1)!==null:!1}parseIntegerOption(t){let{key:e,fallbackAliases:n=[],defaultValue:s=0,startIndex:o=0,useFuzzy:i=!1,maxDistance:c=1}=t,h=this.getAliases(e,n),f=new Set(h),x=Number.parseInt(this.normalizedArgs[o+1]??"",10);if(Number.isFinite(x)&&x>=0)return x;for(let y=o+1;y<this.normalizedArgs.length;y+=1){let Z=this.normalizedArgs[y],[bt,wt]=Z.split(":"),Qt=i?this.findClosestAlias(bt,h,c):null;if(f.has(Z)||i&&this.findClosestAlias(Z,h,c)){let S=Number.parseInt(this.normalizedArgs[y+1]??"",10);if(Number.isFinite(S)&&S>=0)return S}if(wt&&(f.has(bt)||Qt)){let S=Number.parseInt(wt,10);if(Number.isFinite(S)&&S>=0)return S}}return s}}});var Kt=u(()=>{"use strict";qt()});var k=u(()=>{"use strict";Ut();Xt();Kt()});var be={};W(be,{ApplicationCommandBuilder:()=>ft,AutoSlashCommandAttachmentOption:()=>G,AutoSlashCommandBooleanOption:()=>_,AutoSlashCommandChannelOption:()=>P,AutoSlashCommandIntegerOption:()=>R,AutoSlashCommandMentionableOption:()=>U,AutoSlashCommandNumberOption:()=>$,AutoSlashCommandRoleOption:()=>v,AutoSlashCommandStringOption:()=>B,AutoSlashCommandSubcommandBuilder:()=>j,AutoSlashCommandSubcommandGroupBuilder:()=>K,AutoSlashCommandUserOption:()=>F,Client:()=>ht,Command:()=>pt,CommandBuilder:()=>I,Context:()=>O,EventBuilder:()=>b,I18nLoggerAdapter:()=>z,LogLevel:()=>a,Logger:()=>M,LoggerLevel:()=>A,LoggerStyle:()=>D,LoggerStyleBackground:()=>ce,LoggerStyleEffect:()=>ae,LoggerStyleText:()=>le,LoggerTimestamp:()=>H,MessageCommandParser:()=>gt,allowedLocales:()=>Ot,collectTemplateTokens:()=>nt,deleteMessageAfterSent:()=>Y,getDefaultLang:()=>st,getFiles:()=>it,getProjectRoot:()=>at,parseThings:()=>rt,sanitizeDiscordText:()=>et,toAllowedLocale:()=>V,version:()=>ge});module.exports=se(be);k();X();ct();var ge="v0.1.3";0&&(module.exports={ApplicationCommandBuilder,AutoSlashCommandAttachmentOption,AutoSlashCommandBooleanOption,AutoSlashCommandChannelOption,AutoSlashCommandIntegerOption,AutoSlashCommandMentionableOption,AutoSlashCommandNumberOption,AutoSlashCommandRoleOption,AutoSlashCommandStringOption,AutoSlashCommandSubcommandBuilder,AutoSlashCommandSubcommandGroupBuilder,AutoSlashCommandUserOption,Client,Command,CommandBuilder,Context,EventBuilder,I18nLoggerAdapter,LogLevel,Logger,LoggerLevel,LoggerStyle,LoggerStyleBackground,LoggerStyleEffect,LoggerStyleText,LoggerTimestamp,MessageCommandParser,allowedLocales,collectTemplateTokens,deleteMessageAfterSent,getDefaultLang,getFiles,getProjectRoot,parseThings,sanitizeDiscordText,toAllowedLocale,version});
|
package/dist/index.d.cts
ADDED
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from "./structures";
|
|
2
|
-
export * from "./utils/
|
|
3
|
-
export * from "./
|
|
1
|
+
export * from "./structures/index.js";
|
|
2
|
+
export * from "./utils/index.js";
|
|
3
|
+
export * from "./utils/logger/Logger.js";
|
|
4
4
|
export declare const version = "[VI]{{version}}[/VI]";
|