@spatulox/discord-interaction-manager 2.0.2 → 2.0.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.
Files changed (2) hide show
  1. package/dist/MainCLI.js +1 -1
  2. package/package.json +1 -1
package/dist/MainCLI.js CHANGED
@@ -98,7 +98,7 @@ Save this file? (y/n): `))return console.log("Cancelled"),await this.prompt("Pre
98
98
  `)),this.guilds}catch(n){return console.error(`Error when listing guilds: ${n}`),[]}}async getGuild(A){return await this.rest.get(cA.guild(A))}async chooseGuild(){if(await this.list(),console.log("Please select a guild to continue"),!this.guilds.length)return console.log(`No available Guild
99
99
  `),null;let A=await this.requireInput("Enter guild index (0-"+(this.guilds.length-1)+"): ",r=>{let i=Number(r);return!isNaN(i)&&i>=0&&i<this.guilds.length},!1),n=Number(A);return this.guilds[n]??null}};var Tc=class extends kA{getTitle(){return`${this.managerKey} - ${this.manager.folderPath}`}constructor(t,A,n){super(t),this.manager=A,this.managerKey=n,this.menuSelection=[{label:`List Global ${this.manager.folderPath}`,action:()=>this.listRemote()},{label:`List Specific ${this.manager.folderPath} for a Guild`,action:async()=>this.guildListRemote(await new Sr(ht.clientId,ht.token).chooseGuild())},{label:`List ${this.manager.folderPath} for a Guild`,action:async()=>this.guildListAllRemote(await new Sr(ht.clientId,ht.token).chooseGuild())},{label:`Count ${this.manager.folderPath} per Guilds`,action:async()=>this.guildCountAllRemote()},{label:`Save global ${this.manager.folderPath} into local file`,action:async()=>this.getAndSaveToLocalFile()},{label:"Back",action:()=>this.goBack()}]}execute(){throw new Error("Method not implemented.")}async listRemote(){await this.manager.list()}async guildListRemote(t){t&&await this.manager.listGuild(t.id)}async guildListAllRemote(t){if(!t)return;let A=await this.manager.list(!1),n=await this.manager.listGuild(t.id,!1);console.log("Global Command"),await this.manager.printInteraction(A),console.log("Specific Command to this guild"),await this.manager.printInteraction(n)}async guildCountAllRemote(){await this.manager.listAllGuilds(await new Sr(ht.clientId,ht.token).list(!1))}async getAndSaveToLocalFile(){let t=await this.manager.list();for(let A of t)await In.writeJsonFile(Zt.createPathFolder("generated_"+this.manager.folderPath),A.name,A)}};var Gc=class extends Tc{getTitle(){return`${this.managerKey} - ${this.manager.folderPath}`}constructor(t,A,n){super(t,A,n),this.manager=A,this.managerKey=n,this.menuSelection=[{label:`List ${this.manager.folderPath}`,action:()=>new Tc(this,A,this.managerKey)},{label:"Deploy local",action:()=>this.handleDeploy()},{label:"Update remote",action:()=>this.handleUpdate()},{label:"Delete remote",action:()=>this.handleDelete()},{label:"Back",action:()=>this.goBack()}]}execute(){throw new Error("Method not implemented.")}async handleDeploy(){let t=await this.selectCommands(this.manager,await this.manager.listFromFile(2));t.length!==0&&await this.manager.deploy(t)}async handleUpdate(){let t=null,A=await this.yesNoInput("Do you want to update a global command or a specific guild command (y=global/n=specific): ");console.log("\u2550".repeat(80)),console.log(`ACTUAL DEPLOYED ${this.manager.folderPath?.toUpperCase()}`),A?(console.log("Specific guild interaction cannot be detected here, but can still be updated"),await this.listRemote()):(t=await new Sr(ht.clientId,ht.token).chooseGuild(),await this.guildListRemote(t)),console.log("\u2550".repeat(80)),console.log(`ACTUAL LOCAL ${this.manager.folderPath?.toUpperCase()}`);let n=await this.selectCommands(this.manager,await this.manager.listFromFile(1,t?.id));n.length!==0&&await this.manager.update(n,t)}async handleDelete(){let t=await this.yesNoInput("Do you want to delete a global command or a specific guild command (y=global/n=specific): "),A=null,n;if(t)n=await this.manager.list();else{if(A=await new Sr(ht.clientId,ht.token).chooseGuild(),!A){console.log("Error, cannot find guild");return}n=await this.manager.listGuild(A?.id)}let r=await this.selectCommands(this.manager,n);r.length!==0&&await this.manager.delete(r,A)}async selectCommands(t,A){let n=`${t.folderPath}(s)`;if(!A?.length)return console.log(`No ${n} found`),[];let r=await this.prompt('Enter numbers (sperated by a comma, or "all" or "exit"): ');if(r.toLowerCase()==="all")return A;if(r.toLowerCase()==="exit")return[];let o=r.split(",").map(s=>parseInt(s.trim())).filter(s=>!isNaN(s)).map(s=>A[s]).filter(s=>s!==void 0);return o.length===0?(console.log("Invalid number"),[]):(console.log(`${o.length} selected ${n}`),o)}};var xg=class extends kA{constructor(A){super(A);this.managers={};this.menuSelection=[{label:"Command Manager",action:()=>new Gc(this,this.managers.CommandManager,"CommandManager")},{label:"ContextMenu Manager",action:()=>new Gc(this,this.managers.ContextMenuManager,"ContextMenuManager")},{label:"Back",action:()=>this.goBack()}];let{clientId:n,token:r}=ht;this.managers.CommandManager=new ga(n,r),this.managers.ContextMenuManager=new Dg(n,r)}getTitle(){return"\u{1F504} Interaction Manager CLI"}async execute(){throw new Error("Method not implemented.")}};var MF=require("discord.js");var ha=class extends kA{async nsfw(t){await this.yesNoInput("NSFW ? (y/n)")&&(t.nsfw=!0)}async addPermissions(t){console.clear();let A=Object.entries(MF.PermissionFlagsBits),n=A.map(([s,a],l)=>`${l}. ${s}`).join(`
100
100
  `);console.log(`Valid Permissions:
101
- `+n);let r=await this.requireInput("Permission numbers (comma-separated, 'everyone', or leave empty): ",s=>!s.trim()||s.toLowerCase()==="everyone"?!0:s.split(",").every(a=>{let l=parseInt(a.trim());return l>=0&&l<=A.length&&!isNaN(l)}),!0);if(!r.trim()||r.toLowerCase()==="everyone")return;let i=r.split(",").map(s=>parseInt(s.trim())),o=[];for(let s of i){let a=A[s];a&&o.push(a[0])}t.default_member_permissions_string=o,t.default_member_permissions=Nr.permissionsToBitfield(o)}async optionalGuildIds(){let t=await this.prompt("Guild IDs (separated by comma, or 'none' to cancel): ");return t.trim()&&t.toLowerCase()!=="none"?Object.fromEntries(t.split(",").map(A=>A.trim()).filter(vi.GUILD_ID.test.bind(vi.GUILD_ID)).map(A=>[A,null])):void 0}async context(){let t=Object.values(yg).filter(o=>typeof o=="number"),n=Object.keys(yg).filter(o=>isNaN(Number(o))).map((o,s)=>`${s}=${o}`).join(", "),r=await this.requireInput(`Enter context indices (${n}) separated by commas: `,o=>{if(!o)return!1;if(o=="all")return!0;let s=o.split(",").map(a=>parseInt(a.trim(),10)).filter(a=>!isNaN(a));return s.length===0?!1:s.every(a=>t.includes(a))});if(r.toLowerCase()==="all")return t;let i=r.split(",").map(o=>parseInt(o.trim(),10)).filter(o=>!isNaN(o)&&t.includes(o));return Array.from(new Set(i))}async integration_context(){let t=Object.values(pg).filter(o=>typeof o=="number"),n=Object.keys(pg).filter(o=>isNaN(Number(o))).map((o,s)=>`${s}=${o}`).join(", "),r=await this.requireInput(`Enter integration context indices (${n}) separated by commas: `,o=>{if(!o)return!1;if(o=="all")return!0;let s=o.split(",").map(a=>parseInt(a.trim(),10)).filter(a=>!isNaN(a));return s.length===0?!1:s.every(a=>t.includes(a))});if(r.toLowerCase()==="all")return t;let i=r.split(",").map(o=>parseInt(o.trim(),10)).filter(o=>!isNaN(o)&&t.includes(o));return Array.from(new Set(i))}};var kg=class extends ha{constructor(){super(...arguments);this.menuSelection=[{label:"Generate Context Menu",action:()=>this},{label:"Back",action:()=>this.goBack()}]}getTitle(){return"\u{1F37D}\uFE0F Context Menu JSON Generator"}async execute(){let A={command_scope:"global",id:"",dm_permission:!0,name:"",type:2};console.clear(),console.log("\u{1F37D}\uFE0F 1/7 - Menu Type"),console.log("2 = User Menu | 3 = Message Menu"),A.type=parseInt(await this.requireInput("Type (2 or 3): ",i=>["2","3"].includes(i))),console.clear(),A.name=await this.requireInput("Name (1-32 chars): ",i=>i.length>=1&&i.length<=32),await this.nsfw(A),console.clear(),console.log("\u{1F510} 2/7 - Command Permissions"),await this.addPermissions(A),console.clear(),console.log("\u{1F4AC} 3/7 - DM Permissions"),A.dm_permission=await this.yesNoInput("Authorize in DM ? (y/n): "),console.clear(),console.log("\u{1F4AC} 4/7 - Context");let n=await this.context();n.length>0&&(A.contexts=n),console.clear(),console.log("\u{1F4AC} 5/7 - Integration Type");let r=await this.integration_context();if(n.length>0&&(A.integration_types=r),console.clear(),console.log("\u2699\uFE0F 6/7 - Guild Specific"),await this.yesNoInput("Guild Specific ? (y/n): ")){let i=await this.optionalGuildIds();i&&(A.id=i,A.command_scope="guild")}return console.clear(),console.log("\u{1F4BE} 7/7 - Save"),await this.save("context_menu",A)}};var Mg=class extends ha{constructor(){super(...arguments);this.menuSelection=[{label:"Generate Slash Command",action:()=>this},{label:"Back",action:()=>this.goBack()}]}getTitle(){return"\u{1F4DD} Slash Command JSON Generator"}async execute(){let A={command_scope:"global",id:"",name:"",description:"",type:1,dm_permission:!1};console.clear(),console.log("\u{1F4DD} 1/7 - Base"),A.name=await this.requireInput("Name (a-z0-9_-, 1-32 chars): ",i=>/^[a-z0-9_-]{1,32}$/.test(i)),A.description=await this.requireInput("Description (1-100 chars): ",i=>i.length>=1&&i.length<=100),await this.nsfw(A),console.clear(),console.log("\u{1F510} 2/7 - Command Permissions"),await this.addPermissions(A),console.clear(),console.log("\u{1F4AC} 3/7 - DM Permissions"),A.dm_permission=await this.yesNoInput("Authorize DM ? (y/n): "),console.clear(),console.log("\u{1F4AC} 4/7 - Context");let n=await this.context();n.length>0&&(A.contexts=n),console.clear(),console.log("\u{1F4AC} 4/7 - Integration Type");let r=await this.integration_context();if(n.length>0&&(A.integration_types=r),console.clear(),console.log("\u2699\uFE0F 5/7 - Options/Subcommands"),await this.addOptions(A.options),console.clear(),console.log("\u2699\uFE0F 6/7 - Guild Specific"),await this.yesNoInput("Guild Specific ? (y/n): ")){let i=await this.optionalGuildIds();i&&(A.command_scope="guild",A.id=i)}return console.clear(),console.log("\u{1F4BE} 7/7 - Save"),await this.save("commands",A)}async addOptions(A){if(await this.yesNoInput("Add options/subcommands ? (y/n): "))for(;;){console.clear(),console.log("\u{1F680} Options type :"),console.log("Valid options : "+Object.entries(wg).filter(([,l])=>typeof l=="number").map(([l,I])=>`${I}.${l}`).join(", "));let r=Object.values(wg).filter(l=>typeof l=="number"),i=Math.max(...r),o=Math.min(...r),s=parseInt(await this.requireInput(`Type (${o}-${i}): `,l=>{let I=parseInt(l);return I>=o&&I<=i})),a=await this.buildOption(s);if(A.push(a),!await this.yesNoInput("Other option ? (y/n): "))break}}async buildOption(A){let n=await this.requireInput("Option name (a-z0-9_-, 1-32): ",s=>/^[a-z0-9_-]{1,32}$/.test(s)),r=await this.requireInput("Description (1-100): ",s=>s.length>=1&&s.length<=100),i=A!==2&&await this.yesNoInput("Required ? (y/n): "),o={type:A,name:n,description:r,required:i};return await this.handleOptionType(o,A),(A===1||A===2)&&(o.options=[],await this.addOptions(o.options)),o}async handleOptionType(A,n){switch(n){case 3:await this.yesNoInput("Autocomplete ? ")&&(A.autocomplete=!0),A.min_length=await this.optionalNumber("Min length: "),A.max_length=await this.optionalNumber("Max Length: "),A.autocomplete||(A.choices=await this.addChoices());break;case 4:case 10:A.min_value=await this.optionalNumber("Min value: "),A.max_value=await this.optionalNumber("Max value: "),n===4&&(A.choices=await this.addChoices());break;case 7:A.channel_types=await this.addChannelTypes();break}}async optionalNumber(A){let n=await this.prompt(A);return n.trim()?parseFloat(n):void 0}async addChoices(){if(!await this.yesNoInput("Add Choices (25 max) ? "))return;let A=[];for(;A.length<25;){let n=await this.requireInput("Choice name (\u2264100): ",i=>i.length<=100),r=await this.requireInput("Choice value (\u2264100): ",i=>i.length<=100);if(A.push({name:n,value:r}),!await this.yesNoInput("Another choice ? "))break}return A.length>=25&&console.log("You can't have 25+ choices"),A}async addChannelTypes(){console.log("Types: "+Object.entries(bg).filter(([,n])=>typeof n=="number").map(([n,r])=>`${r}. ${n}`).join(", "));let A=await this.requireInput("Types (separated by comma, or leave empty for all): ",n=>!n.trim()||n.trim().toLowerCase()==="all"?!0:n.split(",").every(i=>{let o=parseInt(i.trim());return!isNaN(o)&&Object.values(bg).includes(o)}),!0);if(!(!A.trim()||A.trim()=="all"))return A.split(",").map(n=>parseInt(n.trim()))}};var Fg=class extends kA{constructor(){super(...arguments);this.menuSelection=[{label:"Generate Slash Command Template",action:()=>new Mg(this)},{label:"Generate Context Menu Template",action:()=>new kg(this)},{label:"Back",action:()=>this.goBack()}]}getTitle(){return"\u2699\uFE0F Generation Manager CLI"}async execute(){throw new Error("Method not implemented.")}};var Rg=class extends kA{constructor(){super();this.menuSelection=[{label:"Manage Interactions",action:()=>new xg(this)},{label:"Generate Files",action:()=>new Fg(this)},{label:"Help",action:()=>this.showHelp()},{label:"Exit",action:()=>this}];let{clientId:A,token:n}=ht;if(!A||!n)throw new Error("Missing clientId or token");this.showMainMenu()}getTitle(){return"\u{1F4A0} SimpleDiscordBot CLI"}execute(){console.log("\u{1F44B} Bye !"),process.exit()}};new Rg;0&&(module.exports={MainCLI});
101
+ `+n);let r=await this.requireInput("Permission numbers (comma-separated, 'everyone', or leave empty): ",s=>!s.trim()||s.toLowerCase()==="everyone"?!0:s.split(",").every(a=>{let l=parseInt(a.trim());return l>=0&&l<=A.length&&!isNaN(l)}),!0);if(!r.trim()||r.toLowerCase()==="everyone")return;let i=r.split(",").map(s=>parseInt(s.trim())),o=[];for(let s of i){let a=A[s];a&&o.push(a[0])}t.default_member_permissions_string=o,t.default_member_permissions=Nr.permissionsToBitfield(o)}async optionalGuildIds(){let t=await this.prompt("Guild IDs (separated by comma, or 'none' to cancel): ");return t.trim()&&t.toLowerCase()!=="none"?Object.fromEntries(t.split(",").map(A=>A.trim()).filter(vi.GUILD_ID.test.bind(vi.GUILD_ID)).map(A=>[A,null])):void 0}async context(){let t=Object.values(yg).filter(o=>typeof o=="number"),n=Object.keys(yg).filter(o=>isNaN(Number(o))).map((o,s)=>`${s}=${o}`).join(", "),r=await this.requireInput(`Enter context indices (${n}) separated by commas: `,o=>{if(!o)return!1;if(o=="all")return!0;let s=o.split(",").map(a=>parseInt(a.trim(),10)).filter(a=>!isNaN(a));return s.length===0?!1:s.every(a=>t.includes(a))});if(r.toLowerCase()==="all")return t;let i=r.split(",").map(o=>parseInt(o.trim(),10)).filter(o=>!isNaN(o)&&t.includes(o));return Array.from(new Set(i))}async integration_context(){let t=Object.values(pg).filter(o=>typeof o=="number"),n=Object.keys(pg).filter(o=>isNaN(Number(o))).map((o,s)=>`${s}=${o}`).join(", "),r=await this.requireInput(`Enter integration context indices (${n}) separated by commas: `,o=>{if(!o)return!1;if(o=="all")return!0;let s=o.split(",").map(a=>parseInt(a.trim(),10)).filter(a=>!isNaN(a));return s.length===0?!1:s.every(a=>t.includes(a))});if(r.toLowerCase()==="all")return t;let i=r.split(",").map(o=>parseInt(o.trim(),10)).filter(o=>!isNaN(o)&&t.includes(o));return Array.from(new Set(i))}};var kg=class extends ha{constructor(){super(...arguments);this.menuSelection=[{label:"Generate Context Menu",action:()=>this},{label:"Back",action:()=>this.goBack()}]}getTitle(){return"\u{1F37D}\uFE0F Context Menu JSON Generator"}async execute(){let A={command_scope:"global",id:"",dm_permission:!0,name:"",type:2};console.clear(),console.log("\u{1F37D}\uFE0F 1/7 - Menu Type"),console.log("2 = User Menu | 3 = Message Menu"),A.type=parseInt(await this.requireInput("Type (2 or 3): ",i=>["2","3"].includes(i))),console.clear(),A.name=await this.requireInput("Name (1-32 chars): ",i=>i.length>=1&&i.length<=32),await this.nsfw(A),console.clear(),console.log("\u{1F510} 2/7 - Command Permissions"),await this.addPermissions(A),console.clear(),console.log("\u{1F4AC} 3/7 - DM Permissions"),A.dm_permission=await this.yesNoInput("Authorize in DM ? (y/n): "),console.clear(),console.log("\u{1F4AC} 4/7 - Context");let n=await this.context();n.length>0&&(A.contexts=n),console.clear(),console.log("\u{1F4AC} 5/7 - Integration Type");let r=await this.integration_context();if(n.length>0&&(A.integration_types=r),console.clear(),console.log("\u2699\uFE0F 6/7 - Guild Specific"),await this.yesNoInput("Guild Specific ? (y/n): ")){let i=await this.optionalGuildIds();i&&(A.id=i,A.command_scope="guild")}return console.clear(),console.log("\u{1F4BE} 7/7 - Save"),await this.save("context_menu",A)}};var Mg=class extends ha{constructor(){super(...arguments);this.menuSelection=[{label:"Generate Slash Command",action:()=>this},{label:"Back",action:()=>this.goBack()}]}getTitle(){return"\u{1F4DD} Slash Command JSON Generator"}async execute(){let A={command_scope:"global",id:"",name:"",description:"",type:1,dm_permission:!1};console.clear(),console.log("\u{1F4DD} 1/7 - Base"),A.name=await this.requireInput("Name (a-z0-9_-, 1-32 chars): ",i=>/^[a-z0-9_-]{1,32}$/.test(i)),A.description=await this.requireInput("Description (1-100 chars): ",i=>i.length>=1&&i.length<=100),await this.nsfw(A),console.clear(),console.log("\u{1F510} 2/7 - Command Permissions"),await this.addPermissions(A),console.clear(),console.log("\u{1F4AC} 3/7 - DM Permissions"),A.dm_permission=await this.yesNoInput("Authorize DM ? (y/n): "),console.clear(),console.log("\u{1F4AC} 4/7 - Context");let n=await this.context();n.length>0&&(A.contexts=n),console.clear(),console.log("\u{1F4AC} 4/7 - Integration Type");let r=await this.integration_context();if(n.length>0&&(A.integration_types=r),console.clear(),console.log("\u2699\uFE0F 5/7 - Options/Subcommands"),await this.addOptions(A.options),console.clear(),console.log("\u2699\uFE0F 6/7 - Guild Specific"),await this.yesNoInput("Guild Specific ? (y/n): ")){let i=await this.optionalGuildIds();i&&(A.command_scope="guild",A.id=i)}return console.clear(),console.log("\u{1F4BE} 7/7 - Save"),await this.save("commands",A)}async addOptions(A){if(await this.yesNoInput("Add options/subcommands ? (y/n): "))for(A||(A=[]);;){console.clear(),console.log("\u{1F680} Options type :"),console.log("Valid options : "+Object.entries(wg).filter(([,l])=>typeof l=="number").map(([l,I])=>`${I}.${l}`).join(", "));let r=Object.values(wg).filter(l=>typeof l=="number"),i=Math.max(...r),o=Math.min(...r),s=parseInt(await this.requireInput(`Type (${o}-${i}): `,l=>{let I=parseInt(l);return I>=o&&I<=i})),a=await this.buildOption(s);if(A.push(a),!await this.yesNoInput("Other option ? (y/n): "))break}}async buildOption(A){let n=await this.requireInput("Option name (a-z0-9_-, 1-32): ",s=>/^[a-z0-9_-]{1,32}$/.test(s)),r=await this.requireInput("Description (1-100): ",s=>s.length>=1&&s.length<=100),i=A!==2&&await this.yesNoInput("Required ? (y/n): "),o={type:A,name:n,description:r,required:i};return await this.handleOptionType(o,A),(A===1||A===2)&&(o.options=[],await this.addOptions(o.options)),o}async handleOptionType(A,n){switch(n){case 3:await this.yesNoInput("Autocomplete ? ")&&(A.autocomplete=!0),A.min_length=await this.optionalNumber("Min length: "),A.max_length=await this.optionalNumber("Max Length: "),A.autocomplete||(A.choices=await this.addChoices());break;case 4:case 10:A.min_value=await this.optionalNumber("Min value: "),A.max_value=await this.optionalNumber("Max value: "),n===4&&(A.choices=await this.addChoices());break;case 7:A.channel_types=await this.addChannelTypes();break}}async optionalNumber(A){let n=await this.prompt(A);return n.trim()?parseFloat(n):void 0}async addChoices(){if(!await this.yesNoInput("Add Choices (25 max) ? "))return;let A=[];for(;A.length<25;){let n=await this.requireInput("Choice name (\u2264100): ",i=>i.length<=100),r=await this.requireInput("Choice value (\u2264100): ",i=>i.length<=100);if(A.push({name:n,value:r}),!await this.yesNoInput("Another choice ? "))break}return A.length>=25&&console.log("You can't have 25+ choices"),A}async addChannelTypes(){console.log("Types: "+Object.entries(bg).filter(([,n])=>typeof n=="number").map(([n,r])=>`${r}. ${n}`).join(", "));let A=await this.requireInput("Types (separated by comma, or leave empty for all): ",n=>!n.trim()||n.trim().toLowerCase()==="all"?!0:n.split(",").every(i=>{let o=parseInt(i.trim());return!isNaN(o)&&Object.values(bg).includes(o)}),!0);if(!(!A.trim()||A.trim()=="all"))return A.split(",").map(n=>parseInt(n.trim()))}};var Fg=class extends kA{constructor(){super(...arguments);this.menuSelection=[{label:"Generate Slash Command Template",action:()=>new Mg(this)},{label:"Generate Context Menu Template",action:()=>new kg(this)},{label:"Back",action:()=>this.goBack()}]}getTitle(){return"\u2699\uFE0F Generation Manager CLI"}async execute(){throw new Error("Method not implemented.")}};var Rg=class extends kA{constructor(){super();this.menuSelection=[{label:"Manage Interactions",action:()=>new xg(this)},{label:"Generate Files",action:()=>new Fg(this)},{label:"Help",action:()=>this.showHelp()},{label:"Exit",action:()=>this}];let{clientId:A,token:n}=ht;if(!A||!n)throw new Error("Missing clientId or token");this.showMainMenu()}getTitle(){return"\u{1F4A0} SimpleDiscordBot CLI"}execute(){console.log("\u{1F44B} Bye !"),process.exit()}};new Rg;0&&(module.exports={MainCLI});
102
102
  /*! Bundled license information:
103
103
 
104
104
  undici/lib/web/fetch/body.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spatulox/discord-interaction-manager",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "author": "Spatulox",
5
5
  "description": "discord-interaction-manager is a lightweight CLI tool to manage Discord bot interactions (slash commands, context menus) in under 30 seconds. Deploy, update, delete, and generate interaction files with an interactive terminal interface.",
6
6
  "bin": {