diff options
35 files changed, 883 insertions, 1636 deletions
@@ -55,4 +55,4 @@ data.db src/config/options_old.ts src/config/options_pi.ts -src/lib/badlinks-secret.json +lib/badlinks-secret.json5 diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 2b70e67..c242879 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -9,6 +9,7 @@ "github.vscode-pull-request-github", "ckolkman.vscode-postgres", "tobias-faller.vt100-syntax-highlighting", - "pkief.material-icon-theme" + "pkief.material-icon-theme", + "mrmlnc.vscode-json5" ] } diff --git a/src/lib/assets/Roboto-Regular.ttf b/lib/assets/Roboto-Regular.ttf Binary files differindex 3d6861b..3d6861b 100644 --- a/src/lib/assets/Roboto-Regular.ttf +++ b/lib/assets/Roboto-Regular.ttf diff --git a/lib/badlinks.json5 b/lib/badlinks.json5 new file mode 100644 index 0000000..6fedcd0 --- /dev/null +++ b/lib/badlinks.json5 @@ -0,0 +1,373 @@ +/* Links in this file are treated as severity 3 offences. */ +[ + 'acercup.com', + 'affix-cup.ru', + 'affix-sport.ru', + 'airdrops.tips', + 'aladdinhub.fun', + 'allskinz.xyz', + 'ano-skinspin.xyz', + 'anomalygiveaways.pro', + 'anomalyknifes.xyz', + 'anomalyskin.xyz', + 'anomalyskinz.xyz', + 'anoskinzz.xyz', + 'berrygamble.com', + 'bit-skins.ru', + 'bitknife.xyz', + 'bitskines.ru', + 'casefire.fun', + 'challengeme.in', + 'challengeme.vip', + 'challengme.ru', + 'cloud9team.space', + 'cmepure.com', + 'cmskillcup.com', + 'counterpaid.xyz', + 'counterspin.top', + 'counterstrikegift.xyz', + 'cs-beast.xyz', + 'cs-lucky.xyz', + 'cs-pill.xyz', + 'cs-prizeskins.xyz', + 'cs-prizeskinz.xyz', + 'cs-simpleroll.xyz', + 'cs-skinz.xyz', + 'cs-smoke.xyz', + 'cs-spinz.xyz', + 'cs-victory.xyz', + 'csallskin.xyz', + 'csbuyskins.in', + 'cscoat.eu', + 'csgo-analyst.com', + 'csgo-cash.eu', + 'csgo-gifts.com', + 'csgo-market.ru.com', + 'csgo-market.ru.com', + 'csgo-steamanalyst.net', + 'csgo-swapskin.com', + 'csgo-trade.net', + 'csgo-up.com', + 'csgobeats.com', + 'csgobelieve.ru', + 'csgocase.one', + 'csgocashs.com', + 'csgocheck.ru.com', + 'csgocheck.ru', + 'csgocompetive.com', + 'csgocupp.ru.com', + 'csgocybersport.ru.com', + 'csgodetails.info', + 'csgodreamer.com', + 'csgodrs.com', + 'csgoeasywin.ru.com', + 'csgoelite.xyz', + 'csgoencup.com', + 'csgoevent.xyz', + 'csgogift49.xyz', + 'csgoindex.ru.com', + 'csgoindex.ru', + 'csgoitemdetails.com', + 'csgoitemsprices.com', + 'csgoko.tk', + 'csgomarble.xyz', + 'csgomarketplace.net', + 'csgomarkets.net', + 'csgoorun.ru', + 'csgoprocupgo.com', + 'csgorcup.com', + 'csgorose.com', + 'csgoroyalskins1.com', + 'csgoskill.ru', + 'csgoskinprices.com', + 'csgoskinsinfo.com', + 'csgoskinsroll.com', + 'csgosteamanalysis.com', + 'csgosteamanalyst.ru', + 'csgoteammate.gq', + 'csgothunby.com', + 'csgotrades.net', + 'csgovip.ru', + 'csgoxgiveaway.ru', + 'csgozone.net.in', + 'csgunskins.xyz', + 'csmoneyskinz.xyz', + 'csmvcecup.com', + 'csprices.in', + 'csskill.com', + 'csskillpro.xyz', + 'csskinz.xyz', + 'cstournament.ru', + 'csxrnoney.com', + 'cybergamearena.ru', + 'd2cups.com', + 'd2faceit.com', + 'deamonbets.ru', + 'demonbets.ru', + 'denforapasi.cf', + 'diablobets.com', + 'dicksod.co', + 'dicsord.gifts', + 'dicsord.net', + 'dicsord.net', + 'dirscod.com', + 'dirscod.gift', + 'discod.gift', + 'discod.info', + 'discorb.co', + 'discorb.ru.com', + 'discorcl.click', + 'discorcl.link', + 'discord-gifts.com', + 'discord-nitro.gifts', + 'discord-nitro.link', + 'discord.blog', + 'discord.shop', + 'discordgivenitro.com', + 'discordnitrogift.ru', + 'discrod.gift', + 'discrod.gifts', + 'discrodnitro.org', + 'diskord.ru.com', + 'disrcod.com', + 'dlscord.info', + 'dlscord.online', + 'dlscord.press', + 'dlscord.store', + 'dlscord.wiki', + 'dlscord.world', + 'doatgiveaway.top', + 'dopeskins.com', + 'dota2fight.net', + 'dota2fight.ru', + 'dota2giveaway.top', + 'dota2giveaways.top', + 'dotafights.vip', + 'dotagiveaway.win', + 'dragon-up.online', + 'earnskinz.xyz', + 'emeraldbets.ru', + 'eplcups.com', + 'esea-mdl.com', + 'esportgaming.ru', + 'event-games4roll.com', + 'exchangeuritems.gq', + 'extraskinscs.xyz', + 'ezwin24.ru', + 'facecup.fun', + 'faceiteasyleague.ru', + 'fatown.net', + 'fineleague.fun', + 'fireopencase.com', + 'fivetown.net', + 'free-nitro.ru', + 'free-nitros.ru', + 'free-skins.ru', + 'freenitroi.ru', + 'freenitros.ru', + 'g2-give.ru', + 'g2-give.ru', + 'game4roll.com', + 'gameluck.ru', + 'gamerich.xyz', + 'games-roll.ga', + 'games-roll.ml', + 'games-roll.ru', + 'get-nitro.net', + 'gift4keys.com', + 'giftsdiscord.ru', + 'giveavvay.com', + 'giveawayskin.com', + 'global-skins.gq', + 'globalcsskins.xyz', + 'globalskins.tk', + 'go.rancah.com', + 'goldendota.com', + 'goodskins.gq', + 'gosteamanalyst.com', + 'gtakey.ru', + 'hellgiveaway.trade', + 'hellstores.xyz', + 'hltvcsgo.com', + 'hltvgames.net', + 'iemcup.com', + 'keys-loot.com', + 'knifespin.top', + 'knifespin.top', + 'knifespin.xyz', + 'knifespins.xyz', + 'knifez-roll.xyz', + 'knifez-win.xyz', + 'league-csgo.com', + 'lehatop-01.ru', + 'lootxmarket.com', + 'loungeztrade.com', + 'lucky-skins.xyz', + 'made-nitro.com', + 'makson-gta.ru', + 'maxskins.xyz', + 'mvcsgo.com', + 'mvpcup.ru', + 'mvptournament.com', + 'mygames4roll.com', + 'naviback.ru', + 'night-skins.com', + 'nitro-discord.org', + 'nitros-gift.com', + 'nwgwroqr.ru', + 'oligarph.club', + 'ownerbets.com', + 'playerskinz.xyz', + 'pubggift62.xyz', + 'rangskins.com', + 'rave-new.ru', + 'roll-skins.ru', + 'roll4knife.xyz', + 'roll4tune.com', + 'rollknfez.xyz', + 'rollskin-simple.xyz', + 'rushbskins.xyz', + 'rushskins.xyz', + 's1mple-spin.xyz', + 'sakuralive.ru.com', + 'scale-navi.pp.ru', + 'simple-knifez.xyz', + 'simple-win.xyz', + 'simplegamepro.ru', + 'simpleroll-cs.xyz', + 'simplespinz.xyz', + 'simplewinz.xyz', + 'skin-index.com', + 'skin888trade.com', + 'skincs-spin.top', + 'skincs-spin.xyz', + 'skinmarkets.net', + 'skins-hub.top', + 'skins-info.net', + 'skins-jungle.xyz', + 'skinsboost.ru', + 'skinsdatabse.com', + 'skinsind.com', + 'skinsmind.ru', + 'skinspace.ru', + 'skinsplane.com', + 'skinsplanes.com', + 'skinsplanets.com', + 'skinxinfo.net', + 'skinxmarket.site', + 'skinz-spin.top', + 'skinz-spin.xyz', + 'skinzjar.ru', + 'skinzprize.xyz', + 'skinzspin-cs.xyz', + 'skinzspinz.xyz', + 'sleanmconmunltiy.ru', + 'spin-games.com', + 'spin4skinzcs.top', + 'spin4skinzcs.xyz', + 'spinforskin.ml', + 'sponsored-simple.xyz', + 'staemcomnrnunitiy.ru.com', + 'staemcomrnunity.store', + 'staermcrommunity.me', + 'staffstatsgo.com', + 'starrygamble.com', + 'stat-csgo.ru', + 'stats-cs.ru', + 'stceamcomminity.com', + 'steam-analyst.ru', + 'steam-nitro.ru', + 'steam-trades.icu', + 'steamanalysts.com', + 'steamcomcunity.ru', + 'steamcomminutiu.ru', + 'steamcomminutiy.ru', + 'steamcomminytiu.com', + 'steamcomminytiu.ru', + 'steamcomminytu.ru', + 'steamcommnunily.com', + 'steamcommnuninty.com', + 'steamcommnuntiy.com', + 'steamcommrutiny.ru', + 'steamcommuniiy.ru', + 'steamcommunily.uno', + 'steamcommunitiyu.com', + 'steamcommunitlu.com', + 'steamcommunity.link', + 'steamcommunityu.com', + 'steamcommunityu.ru', + 'steamcommunityw.com', + 'steamcommunlty.pro', + 'steamcommunrlity.com', + 'steamcommunutiy.com', + 'steamcommunytiu.ru', + 'steamcommunytu.ru', + 'steamcommutiny.com', + 'steamcommynitu.ru', + 'steamcomnmuituy.com', + 'steamcomnumity.ru', + 'steamcomrnunity.ru', + 'steamcomrrnunity.com', + 'steamcomrunity.com', + 'steamcomuniity.ru.com', + 'steamconmunlty.com', + 'steamcormmuntiy.com', + 'steamgamesroll.ru', + 'steamncommuniity.com', + 'steamncommunity.com', + 'steamnmcomunnity.co', + 'steamoemmunity.com', + 'steamsupportpowered.icu', + 'steancommunity.link', + 'steancommynity.ru.com', + 'steancomnunytu.ru', + 'steancomunnity.ru', + 'steancomunyiti.ru', + 'stearmcommunnitty.online', + 'stearmmcomunitty.ru', + 'stearmmcomunity.ru', + 'stearmmcomuunity.ru', + 'stearncomminuty.ru', + 'stearncommunity.ru', + 'stearncommunytiy.ru', + 'stearncommuty.com', + 'stearncormmunity.com', + 'steemcommnunity.ru', + 'stemcommunnilty.com', + 'stermccommunitty.ru', + 'stermcommuniity.com', + 'stermcommunnitty.ru', + 'stewie2k-giveaway-150days.pro', + 'stiemcommunitty.ru', + 'stmeacomunnitty.ru', + 'store-stempowered.com', + 'streamcommulinty.com', + 'streamcommuninnity.com', + 'streamcommuunnity.com', + 'streamcomnumity.ru', + 'streamcomunity.com', + 'streammcomunnity.ru', + 'streancommunuty.ru', + 'streancommunuty.ru', + 'strearmcommunity.ru', + 'strearmcomunity.ru', + 'sunnygamble.com', + 'swapskins.live', + 'test-domuin2.com', + 'test-domuin3.ru', + 'test-domuin4.ru', + 'test-domuin5.ru', + 'tf2market.store', + 'tournamentt.com', + 'ultimateskins.xyz', + 'ultracup.fun', + 'uspringcup.com', + 'waterbets.ru', + 'win-skin.top', + 'win-skin.xyz', + 'winknifespin.xyz', + 'winskin-simple.xyz', + 'winskins.top', + 'wintheskin.xyz', + 'xgamercup.com' +] diff --git a/lib/badwords.json5 b/lib/badwords.json5 new file mode 100644 index 0000000..158842e --- /dev/null +++ b/lib/badwords.json5 @@ -0,0 +1,26 @@ +/* Severities: + - 0: Delete message + - 1: Delete message and warn user + - 2: Delete message and mute user for 15 minutes + - 3: Delete message and mute user permanently + */ +{ + 'nigger': 3, + 'nigga': 3, + 'retard': 2, + 'retarted': 2, + 'faggot': 2, + 'slut': 1, + 'whore': 1, + '卍': 3, + 'found a cool software that improves the': 3, + 'hi, bro h am leaving cs:go and giving away my skin': 3, + 'hi friend, today i am leaving this fucking game': 3, + "hi guys, i'm leaving this fucking game, take my": 3, + 'you can choose any skin for yourself': 3, + 'discord nitro for free - steam store': 3, + 'get 3 months of discord nitro': 3, + 'get discord nitro for free': 3, + 'free 3 months of discord nitro': 3, + 'free discord nitro airdrop': 3 +} diff --git a/package.json b/package.json index 5855fe9..0d13714 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ ], "license": "CC-BY-NC-SA-4.0", "_moduleAliases": { + "@root": ".", "@lib": "dist/src/lib" }, "scripts": { @@ -33,6 +34,7 @@ "@types/common-tags": "^1.8.0", "@types/express": "^4.17.12", "@types/humanize-duration": "^3", + "@types/lodash": "^4.14.172", "@types/module-alias": "^2", "@types/node": "^14.14.22", "@types/node-fetch": "^2", @@ -40,18 +42,10 @@ "@types/uuid": "^8.3.0", "@types/validator": "^13.6.3", "@typescript-eslint/eslint-plugin": "^4.14.1", - "@typescript-eslint/parser": "^4.14.1", - "esbuild": "^0.12.11", - "eslint": "^7.29.0", - "eslint-config-prettier": "^8.3.0", - "prettier": "^2.3.2", - "rimraf": "^3.0.2", - "source-map-support": "^0.5.19", - "typescript": "^4.3.5" + "@typescript-eslint/parser": "^4.14.1" }, "dependencies": { - "@discordjs/voice": "^0.4.0", - "body-parser": "^1.19.0", + "@discordjs/voice": "^0.6.0", "canvas": "^2.8.0", "chalk": "^4.1.1", "common-tags": "^1.8.0", @@ -60,18 +54,26 @@ "discord-api-types": "0.22.0", "discord.js": "NotEnoughUpdates/discord.js", "discord.js-minesweeper": "^1.0.6", + "esbuild": "^0.12.11", + "eslint": "^7.29.0", + "eslint-config-prettier": "^8.3.0", "fuse.js": "^6.4.6", "got": "^11.8.2", "humanize-duration": "^3.27.0", "json5": "^2.2.0", - "madge": "^5.0.1", + "lodash": "^4.17.21", + "mathjs": "^9.4.4", "module-alias": "^2.2.2", "moment": "^2.29.1", "node-fetch": "^2.6.1", "pg": "^8.5.1", "pg-hstore": "^2.3.3", + "prettier": "^2.3.2", + "rimraf": "^3.0.2", "sequelize": "^6.5.0", + "source-map-support": "^0.5.19", "tinycolor2": "^1.4.2", + "typescript": "^4.3.5", "uuid": "^8.3.2" }, "eslintConfig": { @@ -134,10 +136,5 @@ "singleQuote": true, "trailingComma": "none" }, - "packageManager": "yarn@3.0.0", - "dependenciesMeta": { - "discord.js@13.2.0-dev": { - "unplugged": true - } - } + "packageManager": "yarn@3.0.0" } diff --git a/src/commands/config/features.ts b/src/commands/config/features.ts index 0547bd0..1974297 100644 --- a/src/commands/config/features.ts +++ b/src/commands/config/features.ts @@ -1,29 +1,29 @@ -// import { BushCommand, BushMessage, BushSlashMessage, guildFeatures } from '@lib'; -// import { MessageEmbed } from 'discord.js'; +import { BushCommand, BushMessage, BushSlashMessage, guildFeatures } from '@lib'; +import { MessageEmbed } from 'discord.js'; -// export default class FeaturesCommand extends BushCommand { -// public constructor() { -// super('features', { -// aliases: ['features'], -// category: 'config', -// description: { -// content: 'Toggle features the server.', -// usage: 'features', -// examples: ['features'] -// }, -// slash: true, -// channel: 'guild', -// clientPermissions: ['SEND_MESSAGES', 'EMBED_LINKS'], -// userPermissions: ['SEND_MESSAGES', 'MANAGE_GUILD'] -// }); -// } -// public override async exec(message: BushMessage | BushSlashMessage): Promise<unknown> { -// if (!message.guild) return await message.util.reply(`${util.emojis.error} This command can only be used in servers.`); -// const featureEmbed = new MessageEmbed().setTitle(`${message.guild.name}'s Features`).setColor(util.colors.default); -// const featureList: string[] = []; -// const enabledFeatures = message.guild.getSetting('enabledFeatures'); -// guildFeatures.forEach(feature => { -// featureList.push(`${}`) -// }) -// } -// } +export default class FeaturesCommand extends BushCommand { + public constructor() { + super('features', { + aliases: ['features'], + category: 'config', + description: { + content: 'Toggle features the server.', + usage: 'features', + examples: ['features'] + }, + slash: true, + channel: 'guild', + clientPermissions: ['SEND_MESSAGES', 'EMBED_LINKS'], + userPermissions: ['SEND_MESSAGES', 'MANAGE_GUILD'] + }); + } + public override async exec(message: BushMessage | BushSlashMessage): Promise<unknown> { + if (!message.guild) return await message.util.reply(`${util.emojis.error} This command can only be used in servers.`); + const featureEmbed = new MessageEmbed().setTitle(`${message.guild.name}'s Features`).setColor(util.colors.default); + const featureList: string[] = []; + const enabledFeatures = await message.guild.getSetting('enabledFeatures'); + guildFeatures.forEach((feature) => { + // featureList.push(`**${feature}:** ${enabledFeatures.includes(feature)? util.emojis.}`); + }); + } +} diff --git a/src/commands/dev/test.ts b/src/commands/dev/test.ts index 151e4a1..aa421cd 100644 --- a/src/commands/dev/test.ts +++ b/src/commands/dev/test.ts @@ -24,7 +24,8 @@ export default class TestCommand extends BushCommand { optional: true } } - ] + ], + superUserOnly: true }); } diff --git a/src/commands/utilities/calculator.ts b/src/commands/utilities/calculator.ts new file mode 100644 index 0000000..5f91dca --- /dev/null +++ b/src/commands/utilities/calculator.ts @@ -0,0 +1,57 @@ +import { AllowedMentions, BushCommand, BushMessage, BushSlashMessage } from '@lib'; +import { MessageEmbed } from 'discord.js'; +import { evaluate } from 'mathjs'; + +export default class CalculatorCommand extends BushCommand { + public constructor() { + super('calculator', { + aliases: ['calculator', 'calc', 'math'], + category: 'utilities', + description: { + content: 'Calculates math expressions.', + usage: 'calculator <expression>', + examples: ['calculator '] + }, + args: [ + { + id: 'expression', + type: 'string', + match: 'rest', + prompt: { + start: 'What would you like to evaluate?', + retry: '{error} Pick something to evaluate.', + optional: false + } + } + ], + slash: true, + slashOptions: [ + { + name: 'expression', + description: 'What would you like to evaluate?', + type: 'STRING', + required: true + } + ], + hidden: true, + clientPermissions: ['SEND_MESSAGES'], + userPermissions: ['SEND_MESSAGES'] + }); + } + public override async exec(message: BushMessage | BushSlashMessage, args: { expression: string }): Promise<unknown> { + const decodedEmbed = new MessageEmbed() + .setTitle(`Calculator`) + .addField('📥 Input', await util.inspectCleanRedactCodeblock(args.expression, 'mma')); + try { + const calculated = evaluate(args.expression); + decodedEmbed + .setColor(util.colors.success) + .addField('📤 Output', await util.inspectCleanRedactCodeblock(calculated.toString(), 'mma')); + } catch (error) { + decodedEmbed + .setColor(util.colors.error) + .addField(`📤 Error Calculating`, await util.inspectCleanRedactCodeblock(`${error.name}: ${error.message}`, 'js')); + } + return await message.util.reply({ embeds: [decodedEmbed], allowedMentions: AllowedMentions.none() }); + } +} diff --git a/src/commands/utilities/decode.ts b/src/commands/utilities/decode.ts index 05e988a..a5a4c21 100644 --- a/src/commands/utilities/decode.ts +++ b/src/commands/utilities/decode.ts @@ -99,16 +99,14 @@ export default class DecodeCommand extends BushCommand { const encodeOrDecode = util.capitalizeFirstLetter(message?.util?.parsed?.alias || 'decoded'); const decodedEmbed = new MessageEmbed() .setTitle(`${encodeOrDecode} Information`) - .addField('📥 Input', await util.inspectCleanRedactCodeblock(data, undefined)); + .addField('📥 Input', await util.inspectCleanRedactCodeblock(data)); try { const decoded = Buffer.from(data, from).toString(to); - decodedEmbed - .setColor(util.colors.success) - .addField('📤 Output', await util.inspectCleanRedactCodeblock(decoded, undefined)); + decodedEmbed.setColor(util.colors.success).addField('📤 Output', await util.inspectCleanRedactCodeblock(decoded)); } catch (error) { decodedEmbed .setColor(util.colors.error) - .addField(`📤 Error ${encodeOrDecode.slice(1)}ing`, await util.inspectCleanRedactCodeblock(error.stack, undefined)); + .addField(`📤 Error ${encodeOrDecode.slice(1)}ing`, await util.inspectCleanRedactCodeblock(error?.stack ?? error)); } return await message.util.reply({ embeds: [decodedEmbed], allowedMentions: AllowedMentions.none() }); } diff --git a/src/inhibitors/blacklist/channelGlobalBlacklist.ts b/src/inhibitors/blacklist/channelGlobalBlacklist.ts index 9bbf30f..36a6757 100644 --- a/src/inhibitors/blacklist/channelGlobalBlacklist.ts +++ b/src/inhibitors/blacklist/channelGlobalBlacklist.ts @@ -5,7 +5,8 @@ export default class UserGlobalBlacklistInhibitor extends BushInhibitor { super('channelGlobalBlacklist', { reason: 'channelGlobalBlacklist', category: 'blacklist', - type: 'all' + type: 'post', + priority: 500 }); } @@ -14,7 +15,6 @@ export default class UserGlobalBlacklistInhibitor extends BushInhibitor { if (client.isOwner(message.author) || client.isSuperUser(message.author) || client.user!.id === message.author.id) return false; if (client.cache.global.blacklistedChannels.includes(message.channel!.id)) { - // client.console.debug(`channelGlobalBlacklist blocked message.`); return true; } return false; diff --git a/src/inhibitors/blacklist/channelGuildBlacklist.ts b/src/inhibitors/blacklist/channelGuildBlacklist.ts index b4c6f3f..54acb34 100644 --- a/src/inhibitors/blacklist/channelGuildBlacklist.ts +++ b/src/inhibitors/blacklist/channelGuildBlacklist.ts @@ -5,7 +5,8 @@ export default class ChannelGuildBlacklistInhibitor extends BushInhibitor { super('channelGuildBlacklist', { reason: 'channelGuildBlacklist', category: 'blacklist', - type: 'all' + type: 'post', + priority: 499 }); } @@ -14,7 +15,6 @@ export default class ChannelGuildBlacklistInhibitor extends BushInhibitor { if (client.isOwner(message.author) || client.isSuperUser(message.author) || client.user!.id === message.author.id) return false; if ((await message.guild.getSetting('blacklistedChannels'))?.includes(message.channel!.id)) { - // client.console.debug(`channelGuildBlacklist blocked message.`); return true; } return false; diff --git a/src/inhibitors/blacklist/guildBlacklist.ts b/src/inhibitors/blacklist/guildBlacklist.ts index de15d76..ec78995 100644 --- a/src/inhibitors/blacklist/guildBlacklist.ts +++ b/src/inhibitors/blacklist/guildBlacklist.ts @@ -5,7 +5,8 @@ export default class GuildBlacklistInhibitor extends BushInhibitor { super('guildBlacklist', { reason: 'guildBlacklist', category: 'blacklist', - type: 'all' + type: 'all', + priority: 50 }); } @@ -17,7 +18,6 @@ export default class GuildBlacklistInhibitor extends BushInhibitor { ) return false; if (client.cache.global.blacklistedGuilds.includes(message.guild.id)) { - // client.console.debug(`GuildBlacklistInhibitor blocked message.`); return true; } return false; diff --git a/src/inhibitors/blacklist/userGlobalBlacklist.ts b/src/inhibitors/blacklist/userGlobalBlacklist.ts index 967943d..65d763d 100644 --- a/src/inhibitors/blacklist/userGlobalBlacklist.ts +++ b/src/inhibitors/blacklist/userGlobalBlacklist.ts @@ -5,7 +5,8 @@ export default class UserGlobalBlacklistInhibitor extends BushInhibitor { super('userGlobalBlacklist', { reason: 'userGlobalBlacklist', category: 'blacklist', - type: 'all' + type: 'pre', + priority: 30 }); } @@ -14,7 +15,6 @@ export default class UserGlobalBlacklistInhibitor extends BushInhibitor { if (client.isOwner(message.author) || client.isSuperUser(message.author) || client.user!.id === message.author.id) return false; if (client.cache.global.blacklistedUsers.includes(message.author.id)) { - // client.console.debug(`userGlobalBlacklist blocked message.`); return true; } return false; diff --git a/src/inhibitors/blacklist/userGuildBlacklist.ts b/src/inhibitors/blacklist/userGuildBlacklist.ts index 0e28ba4..34a24d3 100644 --- a/src/inhibitors/blacklist/userGuildBlacklist.ts +++ b/src/inhibitors/blacklist/userGuildBlacklist.ts @@ -5,7 +5,8 @@ export default class UserGuildBlacklistInhibitor extends BushInhibitor { super('userGuildBlacklist', { reason: 'userGuildBlacklist', category: 'blacklist', - type: 'all' + type: 'pre', + priority: 20 }); } @@ -14,7 +15,6 @@ export default class UserGuildBlacklistInhibitor extends BushInhibitor { if (client.isOwner(message.author) || client.isSuperUser(message.author) || client.user!.id === message.author.id) return false; if ((await message.guild.getSetting('blacklistedUsers'))?.includes(message.author.id)) { - // client.console.debug(`userGuildBlacklist blocked message.`); return true; } return false; diff --git a/src/inhibitors/noCache.ts b/src/inhibitors/checks/fatal.ts index 673f3ac..6b62507 100644 --- a/src/inhibitors/noCache.ts +++ b/src/inhibitors/checks/fatal.ts @@ -1,10 +1,11 @@ import { BushInhibitor, BushMessage, BushSlashMessage } from '@lib'; -export default class NoCacheInhibitor extends BushInhibitor { +export default class FatalInhibitor extends BushInhibitor { public constructor() { - super('noCache', { - reason: 'noCache', + super('fatal', { + reason: 'fatal', type: 'all', + category: 'checks', priority: 100 }); } @@ -13,7 +14,6 @@ export default class NoCacheInhibitor extends BushInhibitor { if (client.isOwner(message.author)) return false; for (const property in client.cache.global) { if (!client.cache.global[property as keyof typeof client.cache.global]) { - client.console.debug(`NoCacheInhibitor blocked message.`); return true; } } diff --git a/src/inhibitors/checks/guildUnavailable.ts b/src/inhibitors/checks/guildUnavailable.ts new file mode 100644 index 0000000..0bd1bec --- /dev/null +++ b/src/inhibitors/checks/guildUnavailable.ts @@ -0,0 +1,19 @@ +import { BushInhibitor, BushMessage, BushSlashMessage } from '@lib'; + +export default class GuildUnavailableInhibitor extends BushInhibitor { + public constructor() { + super('guildUnavailable', { + reason: 'guildUnavailable', + type: 'all', + category: 'checks', + priority: 70 + }); + } + + public override async exec(message: BushMessage | BushSlashMessage): Promise<boolean> { + if (message.guild && !message.guild.available) { + return true; + } + return false; + } +} diff --git a/src/inhibitors/command/dm.ts b/src/inhibitors/command/dm.ts new file mode 100644 index 0000000..4e9c53e --- /dev/null +++ b/src/inhibitors/command/dm.ts @@ -0,0 +1,19 @@ +import { BushCommand, BushInhibitor, BushMessage, BushSlashMessage } from '@lib'; + +export default class DMInhibitor extends BushInhibitor { + public constructor() { + super('dm', { + reason: 'dm', + category: 'command', + type: 'post', + priority: 75 + }); + } + + public override async exec(message: BushMessage | BushSlashMessage, command: BushCommand): Promise<boolean> { + if (command.channel === 'dm' && message.guild) { + return true; + } + return false; + } +} diff --git a/src/inhibitors/commands/globalDisabledCommand.ts b/src/inhibitors/command/globalDisabledCommand.ts index 9a750cc..a6e24c7 100644 --- a/src/inhibitors/commands/globalDisabledCommand.ts +++ b/src/inhibitors/command/globalDisabledCommand.ts @@ -4,15 +4,15 @@ export default class DisabledGuildCommandInhibitor extends BushInhibitor { public constructor() { super('disabledGlobalCommand', { reason: 'disabledGlobal', - type: 'pre', - priority: 4 + category: 'command', + type: 'post', + priority: 300 }); } public override async exec(message: BushMessage | BushSlashMessage, command: BushCommand): Promise<boolean> { if (message.author.isOwner()) return false; if (client.cache.global.disabledCommands?.includes(command?.id)) { - client.console.debug(`disabledGlobalCommand blocked message.`); return true; } return false; diff --git a/src/inhibitors/command/guild.ts b/src/inhibitors/command/guild.ts new file mode 100644 index 0000000..b960439 --- /dev/null +++ b/src/inhibitors/command/guild.ts @@ -0,0 +1,19 @@ +import { BushCommand, BushInhibitor, BushMessage, BushSlashMessage } from '@lib'; + +export default class GuildInhibitor extends BushInhibitor { + public constructor() { + super('guild', { + reason: 'guild', + category: 'command', + type: 'post', + priority: 80 + }); + } + + public override async exec(message: BushMessage | BushSlashMessage, command: BushCommand): Promise<boolean> { + if (command.channel === 'guild' && !message.guild) { + return true; + } + return false; + } +} diff --git a/src/inhibitors/commands/guildDisabledCommand.ts b/src/inhibitors/command/guildDisabledCommand.ts index ee798e5..d56e42c 100644 --- a/src/inhibitors/commands/guildDisabledCommand.ts +++ b/src/inhibitors/command/guildDisabledCommand.ts @@ -4,8 +4,9 @@ export default class DisabledGuildCommandInhibitor extends BushInhibitor { public constructor() { super('disabledGuildCommand', { reason: 'disabledGuild', - type: 'pre', - priority: 3 + category: 'command', + type: 'post', + priority: 250 }); } @@ -14,7 +15,6 @@ export default class DisabledGuildCommandInhibitor extends BushInhibitor { if (message.author.isOwner() || message.author.isSuperUser()) return false; // super users bypass guild disabled commands if ((await message.guild.getSetting('disabledCommands'))?.includes(command?.id)) { - client.console.debug(`disabledGuildCommand blocked message.`); return true; } return false; diff --git a/src/inhibitors/command/nsfw.ts b/src/inhibitors/command/nsfw.ts new file mode 100644 index 0000000..563cb7a --- /dev/null +++ b/src/inhibitors/command/nsfw.ts @@ -0,0 +1,20 @@ +import { BushCommand, BushInhibitor, BushMessage, BushSlashMessage } from '@lib'; +import { TextChannel } from 'discord.js'; + +export default class NsfwInhibitor extends BushInhibitor { + public constructor() { + super('nsfw', { + reason: 'notNsfw', + category: 'command', + type: 'post', + priority: 25 + }); + } + + public override async exec(message: BushMessage | BushSlashMessage, command: BushCommand): Promise<boolean> { + if (command.onlyNsfw && !(message.channel as TextChannel).nsfw) { + return true; + } + return false; + } +} diff --git a/src/inhibitors/command/owner.ts b/src/inhibitors/command/owner.ts new file mode 100644 index 0000000..22ac913 --- /dev/null +++ b/src/inhibitors/command/owner.ts @@ -0,0 +1,21 @@ +import { BushCommand, BushInhibitor, BushMessage, BushSlashMessage } from '@lib'; + +export default class OwnerInhibitor extends BushInhibitor { + public constructor() { + super('owner', { + reason: 'owner', + category: 'command', + type: 'post', + priority: 100 + }); + } + + public override async exec(message: BushMessage | BushSlashMessage, command: BushCommand): Promise<boolean> { + if (command.ownerOnly) { + if (!client.isOwner(message.author)) { + return true; + } + } + return false; + } +} diff --git a/src/inhibitors/command/restrictedChannel.ts b/src/inhibitors/command/restrictedChannel.ts new file mode 100644 index 0000000..4578d95 --- /dev/null +++ b/src/inhibitors/command/restrictedChannel.ts @@ -0,0 +1,21 @@ +import { BushCommand, BushInhibitor, BushMessage, BushSlashMessage } from '@lib'; + +export default class RestrictedChannelInhibitor extends BushInhibitor { + public constructor() { + super('restrictedChannel', { + reason: 'restrictedChannel', + category: 'command', + type: 'post', + priority: 10 + }); + } + + public override async exec(message: BushMessage | BushSlashMessage, command: BushCommand): Promise<boolean> { + if (command.restrictedChannels?.length && message.channel) { + if (!command.restrictedChannels.includes(message.channel.id)) { + return true; + } + } + return false; + } +} diff --git a/src/inhibitors/command/restrictedGuild.ts b/src/inhibitors/command/restrictedGuild.ts new file mode 100644 index 0000000..7ec6926 --- /dev/null +++ b/src/inhibitors/command/restrictedGuild.ts @@ -0,0 +1,21 @@ +import { BushCommand, BushInhibitor, BushMessage, BushSlashMessage } from '@lib'; + +export default class RestrictedGuildInhibitor extends BushInhibitor { + public constructor() { + super('restrictedGuild', { + reason: 'restrictedGuild', + category: 'command', + type: 'post', + priority: 5 + }); + } + + public override async exec(message: BushMessage | BushSlashMessage, command: BushCommand): Promise<boolean> { + if (command.restrictedChannels?.length && message.channel) { + if (!command.restrictedChannels.includes(message.channel.id)) { + return true; + } + } + return false; + } +} diff --git a/src/inhibitors/command/superUser.ts b/src/inhibitors/command/superUser.ts new file mode 100644 index 0000000..28674ea --- /dev/null +++ b/src/inhibitors/command/superUser.ts @@ -0,0 +1,21 @@ +import { BushCommand, BushInhibitor, BushMessage, BushSlashMessage } from '@lib'; + +export default class SuperUserInhibitor extends BushInhibitor { + public constructor() { + super('superUser', { + reason: 'superUser', + category: 'command', + type: 'post', + priority: 99 + }); + } + + public override async exec(message: BushMessage | BushSlashMessage, command: BushCommand): Promise<boolean> { + if (command.superUserOnly) { + if (!client.isSuperUser(message.author)) { + return true; + } + } + return false; + } +} diff --git a/src/lib/badlinks.json b/src/lib/badlinks.json deleted file mode 100644 index 39212b5..0000000 --- a/src/lib/badlinks.json +++ /dev/null @@ -1,372 +0,0 @@ -[ - "acercup.com", - "affix-cup.ru", - "affix-sport.ru", - "airdrops.tips", - "aladdinhub.fun", - "allskinz.xyz", - "ano-skinspin.xyz", - "anomalygiveaways.pro", - "anomalyknifes.xyz", - "anomalyskin.xyz", - "anomalyskinz.xyz", - "anoskinzz.xyz", - "berrygamble.com", - "bit-skins.ru", - "bitknife.xyz", - "bitskines.ru", - "casefire.fun", - "challengeme.in", - "challengeme.vip", - "challengme.ru", - "cloud9team.space", - "cmepure.com", - "cmskillcup.com", - "counterpaid.xyz", - "counterspin.top", - "counterstrikegift.xyz", - "cs-beast.xyz", - "cs-lucky.xyz", - "cs-pill.xyz", - "cs-prizeskins.xyz", - "cs-prizeskinz.xyz", - "cs-simpleroll.xyz", - "cs-skinz.xyz", - "cs-smoke.xyz", - "cs-spinz.xyz", - "cs-victory.xyz", - "csallskin.xyz", - "csbuyskins.in", - "cscoat.eu", - "csgo-analyst.com", - "csgo-cash.eu", - "csgo-gifts.com", - "csgo-market.ru.com", - "csgo-market.ru.com", - "csgo-steamanalyst.net", - "csgo-swapskin.com", - "csgo-trade.net", - "csgo-up.com", - "csgobeats.com", - "csgobelieve.ru", - "csgocase.one", - "csgocashs.com", - "csgocheck.ru.com", - "csgocheck.ru", - "csgocompetive.com", - "csgocupp.ru.com", - "csgocybersport.ru.com", - "csgodetails.info", - "csgodreamer.com", - "csgodrs.com", - "csgoeasywin.ru.com", - "csgoelite.xyz", - "csgoencup.com", - "csgoevent.xyz", - "csgogift49.xyz", - "csgoindex.ru.com", - "csgoindex.ru", - "csgoitemdetails.com", - "csgoitemsprices.com", - "csgoko.tk", - "csgomarble.xyz", - "csgomarketplace.net", - "csgomarkets.net", - "csgoorun.ru", - "csgoprocupgo.com", - "csgorcup.com", - "csgorose.com", - "csgoroyalskins1.com", - "csgoskill.ru", - "csgoskinprices.com", - "csgoskinsinfo.com", - "csgoskinsroll.com", - "csgosteamanalysis.com", - "csgosteamanalyst.ru", - "csgoteammate.gq", - "csgothunby.com", - "csgotrades.net", - "csgovip.ru", - "csgoxgiveaway.ru", - "csgozone.net.in", - "csgunskins.xyz", - "csmoneyskinz.xyz", - "csmvcecup.com", - "csprices.in", - "csskill.com", - "csskillpro.xyz", - "csskinz.xyz", - "cstournament.ru", - "csxrnoney.com", - "cybergamearena.ru", - "d2cups.com", - "d2faceit.com", - "deamonbets.ru", - "demonbets.ru", - "denforapasi.cf", - "diablobets.com", - "dicsord.gifts", - "discod.gift", - "discord-gifts.com", - "discord-nitro.gifts", - "discord.blog", - "discord.shop", - "discordgivenitro.com", - "discrod.gift", - "disrcod.com", - "dlscord.info", - "dlscord.online", - "dlscord.press", - "dlscord.store", - "dlscord.world", - "discrod.gifts", - "dlscord.wiki", - "dirscod.gift", - "dirscod.com", - "discorcl.link", - "discod.info", - "dicsord.net", - "discorb.co", - "dicsord.net", - "dicksod.co", - "diskord.ru.com", - "discord-nitro.link", - "discorb.ru.com", - "discordnitrogift.ru", - "discorcl.click", - "doatgiveaway.top", - "dopeskins.com", - "dota2fight.net", - "dota2fight.ru", - "dota2giveaway.top", - "dota2giveaways.top", - "dotafights.vip", - "dotagiveaway.win", - "dragon-up.online", - "earnskinz.xyz", - "emeraldbets.ru", - "eplcups.com", - "esea-mdl.com", - "esportgaming.ru", - "event-games4roll.com", - "exchangeuritems.gq", - "extraskinscs.xyz", - "ezwin24.ru", - "facecup.fun", - "faceiteasyleague.ru", - "fatown.net", - "fineleague.fun", - "fireopencase.com", - "fivetown.net", - "free-skins.ru", - "free-nitro.ru", - "freenitros.ru", - "free-nitros.ru", - "freenitroi.ru", - "g2-give.ru", - "g2-give.ru", - "game4roll.com", - "gameluck.ru", - "gamerich.xyz", - "games-roll.ga", - "games-roll.ml", - "games-roll.ru", - "gift4keys.com", - "giveavvay.com", - "giveawayskin.com", - "global-skins.gq", - "globalcsskins.xyz", - "globalskins.tk", - "goldendota.com", - "goodskins.gq", - "gosteamanalyst.com", - "gtakey.ru", - "go.rancah.com", - "giftsdiscord.ru", - "get-nitro.net", - "hellgiveaway.trade", - "hellstores.xyz", - "hltvcsgo.com", - "hltvgames.net", - "iemcup.com", - "keys-loot.com", - "knifespin.top", - "knifespin.top", - "knifespin.xyz", - "knifespins.xyz", - "knifez-roll.xyz", - "knifez-win.xyz", - "league-csgo.com", - "lehatop-01.ru", - "lootxmarket.com", - "loungeztrade.com", - "lucky-skins.xyz", - "makson-gta.ru", - "maxskins.xyz", - "mvcsgo.com", - "mvpcup.ru", - "mvptournament.com", - "mygames4roll.com", - "made-nitro.com", - "naviback.ru", - "night-skins.com", - "nitros-gift.com", - "nitro-discord.org", - "nwgwroqr.ru", - "ownerbets.com", - "oligarph.club", - "playerskinz.xyz", - "pubggift62.xyz", - "rangskins.com", - "rave-new.ru", - "roll-skins.ru", - "roll4knife.xyz", - "roll4tune.com", - "rollknfez.xyz", - "rollskin-simple.xyz", - "rushbskins.xyz", - "rushskins.xyz", - "s1mple-spin.xyz", - "sakuralive.ru.com", - "scale-navi.pp.ru", - "simple-knifez.xyz", - "simple-win.xyz", - "simplegamepro.ru", - "simpleroll-cs.xyz", - "simplespinz.xyz", - "simplewinz.xyz", - "skin-index.com", - "skin888trade.com", - "skincs-spin.top", - "skincs-spin.xyz", - "skinmarkets.net", - "skins-hub.top", - "skins-info.net", - "skins-jungle.xyz", - "skinsboost.ru", - "skinsdatabse.com", - "skinsind.com", - "skinsmind.ru", - "skinspace.ru", - "skinsplane.com", - "skinsplanes.com", - "skinsplanets.com", - "skinxinfo.net", - "skinxmarket.site", - "skinz-spin.top", - "skinz-spin.xyz", - "skinzjar.ru", - "skinzprize.xyz", - "skinzspin-cs.xyz", - "skinzspinz.xyz", - "sleanmconmunltiy.ru", - "spin-games.com", - "spin4skinzcs.top", - "spin4skinzcs.xyz", - "spinforskin.ml", - "sponsored-simple.xyz", - "staemcomnrnunitiy.ru.com", - "staemcomrnunity.store", - "staermcrommunity.me", - "staffstatsgo.com", - "starrygamble.com", - "stat-csgo.ru", - "stats-cs.ru", - "stceamcomminity.com", - "steam-analyst.ru", - "steam-trades.icu", - "steamanalysts.com", - "steamcomcunity.ru", - "steamcomminutiu.ru", - "steamcomminutiy.ru", - "steamcomminytiu.com", - "steamcomminytiu.ru", - "steamcomminytu.ru", - "steamcommnunily.com", - "steamcommnuninty.com", - "steamcommnuntiy.com", - "steamcommrutiny.ru", - "steamcommuniiy.ru", - "steamcommunily.uno", - "steamcommunityu.com", - "steamcommunityw.com", - "steamcommunlty.pro", - "steamcommunutiy.com", - "steamcommunytiu.ru", - "steamcommunytu.ru", - "steamcommutiny.com", - "steamcommynitu.ru", - "steamcomnmuituy.com", - "steamcomnumity.ru", - "steamcomrnunity.ru", - "steamcomrrnunity.com", - "steamcomrunity.com", - "steamconmunlty.com", - "steamcormmuntiy.com", - "steamgamesroll.ru", - "steamncommuniity.com", - "steamncommunity.com", - "steamnmcomunnity.co", - "steamoemmunity.com", - "steamsupportpowered.icu", - "steancommynity.ru.com", - "steancomnunytu.ru", - "steancomunnity.ru", - "steancomunyiti.ru", - "stearmcommunnitty.online", - "stearmmcomunitty.ru", - "stearmmcomunity.ru", - "stearmmcomuunity.ru", - "stearncomminuty.ru", - "stearncommunity.ru", - "stearncommunytiy.ru", - "stearncormmunity.com", - "steemcommnunity.ru", - "stemcommunnilty.com", - "stermccommunitty.ru", - "stermcommuniity.com", - "stewie2k-giveaway-150days.pro", - "stiemcommunitty.ru", - "store-stempowered.com", - "streamcommulinty.com", - "streamcommuninnity.com", - "streamcommuunnity.com", - "streamcomnumity.ru", - "streamcomunity.com", - "streammcomunnity.ru", - "streancommunuty.ru", - "streancommunuty.ru", - "strearmcommunity.ru", - "strearmcomunity.ru", - "steamcommunityu.ru", - "steamcommunrlity.com", - "stearncommuty.com", - "steamcommunitiyu.com", - "stermcommunnitty.ru", - "steamcommunitlu.com", - "steamcommunity.link", - "steancommunity.link", - "steamcomuniity.ru.com", - "steam-nitro.ru", - "sunnygamble.com", - "swapskins.live", - "test-domuin2.com", - "test-domuin3.ru", - "test-domuin4.ru", - "test-domuin5.ru", - "tf2market.store", - "tournamentt.com", - "ultimateskins.xyz", - "ultracup.fun", - "uspringcup.com", - "waterbets.ru", - "win-skin.top", - "win-skin.xyz", - "winknifespin.xyz", - "winskin-simple.xyz", - "winskins.top", - "wintheskin.xyz", - "xgamercup.com", - "stmeacomunnitty.ru", - "discrodnitro.org" -] diff --git a/src/lib/badwords.json b/src/lib/badwords.json deleted file mode 100644 index fc7a5d6..0000000 --- a/src/lib/badwords.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "nigger": 3, - "nigga": 3, - "retard": 2, - "retarted": 2, - "faggot": 2, - "slut": 1, - "whore": 1, - "卍": 3, - "found a cool software that improves the": 3, - "hi, bro h am leaving cs:go and giving away my skin": 3, - "hi friend, today i am leaving this fucking game": 3, - "hi guys, i'm leaving this fucking game, take my": 3, - "you can choose any skin for yourself": 3, - "discord nitro for free - steam store": 3, - "get 3 months of discord nitro": 3, - "get discord nitro for free": 3, - "free 3 months of discord nitro": 3, - "free discord nitro airdrop": 3 -} diff --git a/src/lib/extensions/discord-akairo/BushCommandHandler.ts b/src/lib/extensions/discord-akairo/BushCommandHandler.ts index 21984ab..44a0966 100644 --- a/src/lib/extensions/discord-akairo/BushCommandHandler.ts +++ b/src/lib/extensions/discord-akairo/BushCommandHandler.ts @@ -9,7 +9,6 @@ import { BushSlashMessage } from './BushSlashMessage'; export type BushCommandHandlerOptions = CommandHandlerOptions; const commandHandlerEvents = BushConstants.CommandHandlerEvents; -const blockedReasons = BushConstants.BlockedReasons; export interface BushCommandHandlerEvents extends CommandHandlerEvents { commandBlocked: [message: BushMessage, command: BushCommand, reason: string]; @@ -34,76 +33,17 @@ export class BushCommandHandler extends CommandHandler { super(client, options); } - // protected override setup(): void { - // super.setup(); - // } - public override async runPostTypeInhibitors(message: BushMessage, command: BushCommand, slash = false): Promise<boolean> { - if (command.ownerOnly) { - const isOwner = client.isOwner(message.author); - if (!isOwner) { - this.emit( - slash ? commandHandlerEvents.SLASH_BLOCKED : commandHandlerEvents.COMMAND_BLOCKED, - message, - command, - blockedReasons.OWNER - ); - return true; - } - } - - if (command.superUserOnly) { - const isSuperUser = client.isSuperUser(message.author); - if (!isSuperUser) { - this.emit( - slash ? commandHandlerEvents.SLASH_BLOCKED : commandHandlerEvents.COMMAND_BLOCKED, - message, - command, - blockedReasons.OWNER - ); - return true; - } - } - - if (command.channel === 'guild' && !message.guild) { - this.emit( - slash ? commandHandlerEvents.SLASH_BLOCKED : commandHandlerEvents.COMMAND_BLOCKED, - message, - command, - blockedReasons.GUILD - ); + const reason = this.inhibitorHandler ? await this.inhibitorHandler.test('post', message, command) : null; + if (reason != null) { + this.emit(slash ? commandHandlerEvents.SLASH_BLOCKED : commandHandlerEvents.COMMAND_BLOCKED, message, command, reason); return true; } - if (command.channel === 'dm' && message.guild) { - this.emit( - slash ? commandHandlerEvents.SLASH_BLOCKED : commandHandlerEvents.COMMAND_BLOCKED, - message, - command, - blockedReasons.DM - ); - return true; - } - if (command.restrictedChannels?.length && message.channel) { - if (!command.restrictedChannels.includes(message.channel.id)) { - this.emit(commandHandlerEvents.COMMAND_BLOCKED, message, command, blockedReasons.RESTRICTED_CHANNEL); - return true; - } - } - if (command.restrictedGuilds?.length && message.guild) { - if (!command.restrictedGuilds.includes(message.guild.id)) { - this.emit(commandHandlerEvents.COMMAND_BLOCKED, message, command, blockedReasons.RESTRICTED_GUILD); - return true; - } - } if (await this.runPermissionChecks(message, command)) { return true; } - const reason = this.inhibitorHandler ? await this.inhibitorHandler.test('post', message, command) : null; - if (reason != null) { - this.emit(commandHandlerEvents.COMMAND_BLOCKED, message, command, reason); - return true; - } + return !!this.runCooldowns(message, command); } } diff --git a/src/lib/extensions/discord-akairo/BushSlashMessage.ts b/src/lib/extensions/discord-akairo/BushSlashMessage.ts index 215cf79..d10a024 100644 --- a/src/lib/extensions/discord-akairo/BushSlashMessage.ts +++ b/src/lib/extensions/discord-akairo/BushSlashMessage.ts @@ -10,10 +10,13 @@ import { BushCommandUtil } from './BushCommandUtil'; export class BushSlashMessage extends AkairoMessage { public declare client: BushClient; public declare util: BushCommandUtil; - public declare guild: BushGuild; public declare author: BushUser; public declare member: BushGuildMember; public constructor(client: BushClient, interaction: CommandInteraction, command: BushCommand) { super(client, interaction, command); } + + public override get guild(): BushGuild | null { + return super.guild as BushGuild | null; + } } diff --git a/src/listeners/commands/commandBlocked.ts b/src/listeners/commands/commandBlocked.ts index 485de37..03e34f5 100644 --- a/src/listeners/commands/commandBlocked.ts +++ b/src/listeners/commands/commandBlocked.ts @@ -1,4 +1,5 @@ -import { BushCommandHandlerEvents, BushListener, BushMessage } from '@lib'; +import { BushCommand, BushCommandHandlerEvents, BushListener, BushMessage, BushSlashMessage } from '@lib'; +import { InteractionReplyOptions, Message, MessagePayload, ReplyMessageOptions } from 'discord.js'; export default class CommandBlockedListener extends BushListener { public constructor() { @@ -13,38 +14,42 @@ export default class CommandBlockedListener extends BushListener { } public static async handleBlocked( - ...[message, command, reason]: BushCommandHandlerEvents['commandBlocked'] | BushCommandHandlerEvents['slashBlocked'] + message: Message | BushMessage | BushSlashMessage, + command: BushCommand | null, + reason?: string ): Promise<unknown> { - const isSlash = message.util.isSlash; + const isSlash = !!command && !!message.util?.isSlash; void client.console.info( `${isSlash ? 'Slash' : 'Command'}Blocked`, - `<<${message.author.tag}>> tried to run <<${command}>> but was blocked because <<${reason}>>.`, + `<<${message.author.tag}>>${ + command ? ` tried to run <<${command}>> but` : "'s message" + } was blocked because <<${reason}>>.`, true ); const reasons = client.consts.BlockedReasons; switch (reason) { case reasons.OWNER: { - return await message.util.reply({ + return await respond({ content: `${util.emojis.error} Only my developers can run the \`${command}\` command.`, ephemeral: true }); } case reasons.SUPER_USER: { - return await message.util.reply({ + return await respond({ content: `${util.emojis.error} You must be a superuser to run the \`${command}\` command.`, ephemeral: true }); } case reasons.DISABLED_GLOBAL: { - return await message.util.reply({ + return await respond({ content: `${util.emojis.error} My developers disabled the \`${command}\` command.`, ephemeral: true }); } case reasons.DISABLED_GUILD: { - return await message.util.reply({ + return await respond({ content: `${util.emojis.error} The \`${command}\` command is currently disabled in \`${message.guild?.name}\`.`, ephemeral: true }); @@ -52,51 +57,64 @@ export default class CommandBlockedListener extends BushListener { case reasons.CHANNEL_GLOBAL_BLACKLIST: case reasons.CHANNEL_GUILD_BLACKLIST: return isSlash - ? message.util.reply({ content: `${util.emojis.error} You cannot use this bot in this channel.`, ephemeral: true }) - : (message as BushMessage).react(util.emojis.error); + ? await respond({ + content: `${util.emojis.error} You cannot use this bot in this channel.`, + ephemeral: true + }) + : await (message as BushMessage).react(util.emojis.cross); case reasons.USER_GLOBAL_BLACKLIST: case reasons.USER_GUILD_BLACKLIST: return isSlash - ? message.util.reply({ content: `${util.emojis.error} You are blacklisted from using this bot.`, ephemeral: true }) - : (message as BushMessage).react(util.emojis.error); + ? await respond({ + content: `${util.emojis.error} You are blacklisted from using this bot.`, + ephemeral: true + }) + : await (message as BushMessage).react(util.emojis.cross); case reasons.ROLE_BLACKLIST: { return isSlash - ? message.util.reply({ + ? await respond({ content: `${util.emojis.error} One of your roles blacklists you from using this bot.`, ephemeral: true }) - : (message as BushMessage).react(util.emojis.error); + : await (message as BushMessage).react(util.emojis.cross); } case reasons.RESTRICTED_CHANNEL: { + if (!command) break; const channels = command.restrictedChannels; const names: string[] = []; channels.forEach((c) => { names.push(`<#${c}>`); }); const pretty = util.oxford(names, 'and'); - return await message.util.reply({ + return await respond({ content: `${util.emojis.error} \`${command}\` can only be run in ${pretty}.`, ephemeral: true }); } case reasons.RESTRICTED_GUILD: { + if (!command) break; const guilds = command.restrictedGuilds; const names: string[] = []; guilds.forEach((g) => { names.push(`\`${client.guilds.cache.get(g)?.name}\``); }); const pretty = util.oxford(names, 'and'); - return await message.util.reply({ + return await respond({ content: `${util.emojis.error} \`${command}\` can only be run in ${pretty}.`, ephemeral: true }); } default: { - return await message.util.reply({ + return await respond({ content: `${util.emojis.error} Command blocked with reason \`${reason}\``, ephemeral: true }); } } + + // some inhibitors do not have message.util yet + function respond(content: string | MessagePayload | ReplyMessageOptions | InteractionReplyOptions) { + return message.util ? message.util.reply(content) : message.reply(content); + } } } diff --git a/src/listeners/commands/messageBlocked.ts b/src/listeners/commands/messageBlocked.ts new file mode 100644 index 0000000..a36c03d --- /dev/null +++ b/src/listeners/commands/messageBlocked.ts @@ -0,0 +1,17 @@ +import { BushCommandHandlerEvents, BushListener } from '@lib'; + +export default class MessageBlockedListener extends BushListener { + public constructor() { + super('messageBlocked', { + emitter: 'commandHandler', + event: 'messageBlocked' + }); + } + + public override async exec(...[message, reason]: BushCommandHandlerEvents['messageBlocked']): Promise<unknown> { + const reasons = client.consts.BlockedReasons; + if ([reasons.CLIENT, reasons.BOT].includes(reason)) return; + // return await CommandBlockedListener.handleBlocked(message as Message, null, reason); + return void client.console.verbose(`MessageBlocked`, `<<${message.author.tag}>>'s message was blocked because ${reason}`); + } +} diff --git a/src/listeners/message/automodCreate.ts b/src/listeners/message/automodCreate.ts index 3f1780f..cfe3970 100644 --- a/src/listeners/message/automodCreate.ts +++ b/src/listeners/message/automodCreate.ts @@ -1,8 +1,11 @@ import { BushListener, BushMessage } from '@lib'; +// @ts-expect-error: ts doesn't recognize json5 +import _badLinks from '@root/lib/badlinks'; // Stolen from https://github.com/nacrt/SkyblockClient-REPO/blob/main/files/scamlinks.json +// @ts-expect-error: ts doesn't recognize json5 +import _badLinksSecret from '@root/lib/badlinks-secret'; // shhhh +// @ts-expect-error: ts doesn't recognize json5 +import badWords from '@root/lib/badwords'; import { MessageEmbed, TextChannel } from 'discord.js'; -import _badLinksSecret from '../../lib/badlinks-secret.json'; // shhhh -import _badLinks from '../../lib/badlinks.json'; // Stolen from https://github.com/nacrt/SkyblockClient-REPO/blob/main/files/scamlinks.json -import badWords from '../../lib/badwords.json'; import { BushClientEvents } from '../../lib/extensions/discord.js/BushClientEvents'; export default class AutomodMessageCreateListener extends BushListener { @@ -26,7 +29,7 @@ export default class AutomodMessageCreateListener extends BushListener { let temp = _badLinks; if (_badLinksSecret) temp = temp.concat(_badLinksSecret); - temp.forEach((link) => { + temp.forEach((link: string) => { badLinks[link] = 3; }); diff --git a/tsconfig.json b/tsconfig.json index a94bb7c..d6394be 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,7 +18,8 @@ "baseUrl": "./", "paths": { "src/*": ["./src/*"], - "@lib": ["./src/lib"] + "@lib": ["./src/lib"], + "@root": ["."] } }, "include": ["src/**/*.ts"], @@ -14,7 +14,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.14.5, @babel/helper-validator-identifier@npm:^7.14.9": +"@babel/helper-validator-identifier@npm:^7.14.5": version: 7.14.9 resolution: "@babel/helper-validator-identifier@npm:7.14.9" checksum: 58552531a7674363e74672434c312ddaf1545b8a43308e1a7f38db58bf79c796c095a6dab6a6105eb0d783b97441f6cbb525bb887f29a35f232fcdbd8cb240dc @@ -32,22 +32,12 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.0.0": +"@babel/runtime@npm:^7.14.6": version: 7.15.3 - resolution: "@babel/parser@npm:7.15.3" - bin: - parser: ./bin/babel-parser.js - checksum: 4b9ba7e8ffe0a3d0dd8c61dee975c79863f7744177de677cb7d12f96549eb5c8b9ffc70ca2b1b2488b06e056da99a6273e2d7d68fc31f498d01483dfac149e13 - languageName: node - linkType: hard - -"@babel/types@npm:^7.8.3": - version: 7.15.0 - resolution: "@babel/types@npm:7.15.0" + resolution: "@babel/runtime@npm:7.15.3" dependencies: - "@babel/helper-validator-identifier": ^7.14.9 - to-fast-properties: ^2.0.0 - checksum: 6d6bcdfce94b5446520a24087c6dede453e28425af092965b304d4028e9bca79712fd691cdad031e3570c7667bf3206e5f642bcccbfccb33d42ca4a8203587f9 + regenerator-runtime: ^0.13.4 + checksum: 2f0b8d2d4e36035ab1d84af0ec26aafa098536870f27c8e07de0a0e398f7a394fdea68a88165535ffb52ded6a68912bdc3450bdf91f229eb132e1c89470789f5 languageName: node linkType: hard @@ -82,16 +72,16 @@ __metadata: languageName: node linkType: hard -"@discordjs/voice@npm:^0.4.0": - version: 0.4.0 - resolution: "@discordjs/voice@npm:0.4.0" +"@discordjs/voice@npm:^0.6.0": + version: 0.6.0 + resolution: "@discordjs/voice@npm:0.6.0" dependencies: "@types/ws": ^7.4.4 - discord-api-types: ^0.18.1 + discord-api-types: ^0.22.0 prism-media: ^1.3.1 tiny-typed-emitter: ^2.0.3 ws: ^7.4.4 - checksum: 3cfed23e8ba008bad15274b0dcbce8019921836504088cfb2c984c7509fee48923f1252fa5b05ffea0f360e78f2e56fbf7f191a607afc61a6d2d4bca8d6765b2 + checksum: 2706185620abe148b07ce592e612eece40fc4fe9506a5b0c19e59c9e7c70a5451f9c7baf2cf38a05f8d564c9ff9a081a88cfcba00493e03eada83ce5fc83aa49 languageName: node linkType: hard @@ -307,6 +297,13 @@ __metadata: languageName: node linkType: hard +"@types/lodash@npm:^4.14.172": + version: 4.14.172 + resolution: "@types/lodash@npm:4.14.172" + checksum: 5fc51ea40d7e455bd1c760bcc60c9e81f82d85988666d4d4969bd8311367c63bbf1fe2be48755ba87836710e45fff94014ec164ebe6ccaa72815014981152434 + languageName: node + linkType: hard + "@types/mime@npm:^1": version: 1.3.2 resolution: "@types/mime@npm:1.3.2" @@ -332,16 +329,16 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 16.6.2 - resolution: "@types/node@npm:16.6.2" - checksum: 2245e50058ac49ab3d76af5ded7fc655d783a88a800139dad6caaf962f15c909287853012c9461b49600741bcc2b09042f94ce734f0440b6ad444d838e62904a + version: 16.7.1 + resolution: "@types/node@npm:16.7.1" + checksum: fcf1a2c7b1f19c2201574b2110176b49c6efd824a39b2ed8ac3e6688740e2a35bef95a3334dfa345f4bd4873fd8b79d8ac8cfcc9fcd3d2f4f8f993c2c37ce4ab languageName: node linkType: hard "@types/node@npm:^14.14.22": - version: 14.17.10 - resolution: "@types/node@npm:14.17.10" - checksum: ec618cb3e0223e6707c97f88ab8525a2addecfa6dc7b7dfb9e6b56f144d8ac47083bfe3fd7a8040e5234f9b7d46c6a5c0bb24ed0129815b6efe82d0f4a55ba60 + version: 14.17.11 + resolution: "@types/node@npm:14.17.11" + checksum: 94192a5f6f5da51a10dfa959049a5cfcff440fbeeefbf98084083c1370a107872fc7f4a2df42f100989dea873cb4128f376d5e4af6be43fec21273359d9dbdb0 languageName: node linkType: hard @@ -479,7 +476,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:4.29.2, @typescript-eslint/typescript-estree@npm:^4.8.2": +"@typescript-eslint/typescript-estree@npm:4.29.2": version: 4.29.2 resolution: "@typescript-eslint/typescript-estree@npm:4.29.2" dependencies: @@ -639,13 +636,6 @@ __metadata: languageName: node linkType: hard -"app-module-path@npm:^2.2.0": - version: 2.2.0 - resolution: "app-module-path@npm:2.2.0" - checksum: b52aa49cfa809efbad41b514222e8ef3f8ee9e147f5eccf79280b45eddcc61f7aeb302b0049474e3f42072dd53a28348c57dd96f36cd461d2e31cc8ab1ef56b5 - languageName: node - linkType: hard - "aproba@npm:^1.0.3": version: 1.2.0 resolution: "aproba@npm:1.2.0" @@ -679,13 +669,6 @@ __metadata: languageName: node linkType: hard -"ast-module-types@npm:^2.3.2, ast-module-types@npm:^2.4.0, ast-module-types@npm:^2.7.0, ast-module-types@npm:^2.7.1": - version: 2.7.1 - resolution: "ast-module-types@npm:2.7.1" - checksum: 6238647bcf34eeff2a1390cb60388da8a5064dd598acf48d68f8d972d9a332dc8d0382a5a7c511b16470e314b313bcbb95de4b0b669515393e043282c0489538 - languageName: node - linkType: hard - "astral-regex@npm:^2.0.0": version: 2.0.0 resolution: "astral-regex@npm:2.0.0" @@ -707,42 +690,6 @@ __metadata: languageName: node linkType: hard -"base64-js@npm:^1.3.1": - version: 1.5.1 - resolution: "base64-js@npm:1.5.1" - checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 - languageName: node - linkType: hard - -"bl@npm:^4.1.0": - version: 4.1.0 - resolution: "bl@npm:4.1.0" - dependencies: - buffer: ^5.5.0 - inherits: ^2.0.4 - readable-stream: ^3.4.0 - checksum: 9e8521fa7e83aa9427c6f8ccdcba6e8167ef30cc9a22df26effcc5ab682ef91d2cbc23a239f945d099289e4bbcfae7a192e9c28c84c6202e710a0dfec3722662 - languageName: node - linkType: hard - -"body-parser@npm:^1.19.0": - version: 1.19.0 - resolution: "body-parser@npm:1.19.0" - dependencies: - bytes: 3.1.0 - content-type: ~1.0.4 - debug: 2.6.9 - depd: ~1.1.2 - http-errors: 1.7.2 - iconv-lite: 0.4.24 - on-finished: ~2.3.0 - qs: 6.7.0 - raw-body: 2.4.0 - type-is: ~1.6.17 - checksum: 490231b4c89bbd43112762f7ba8e5342c174a6c9f64284a3b0fcabf63277e332f8316765596f1e5b15e4f3a6cf0422e005f4bb3149ed3a224bb025b7a36b9ac1 - languageName: node - linkType: hard - "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -776,24 +723,15 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^5.5.0": - version: 5.7.1 - resolution: "buffer@npm:5.7.1" - dependencies: - base64-js: ^1.3.1 - ieee754: ^1.1.13 - checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 - languageName: node - linkType: hard - "bush-bot@workspace:.": version: 0.0.0-use.local resolution: "bush-bot@workspace:." dependencies: - "@discordjs/voice": ^0.4.0 + "@discordjs/voice": ^0.6.0 "@types/common-tags": ^1.8.0 "@types/express": ^4.17.12 "@types/humanize-duration": ^3 + "@types/lodash": ^4.14.172 "@types/module-alias": ^2 "@types/node": ^14.14.22 "@types/node-fetch": ^2 @@ -802,7 +740,6 @@ __metadata: "@types/validator": ^13.6.3 "@typescript-eslint/eslint-plugin": ^4.14.1 "@typescript-eslint/parser": ^4.14.1 - body-parser: ^1.19.0 canvas: ^2.8.0 chalk: ^4.1.1 common-tags: ^1.8.0 @@ -818,7 +755,8 @@ __metadata: got: ^11.8.2 humanize-duration: ^3.27.0 json5: ^2.2.0 - madge: ^5.0.1 + lodash: ^4.17.21 + mathjs: ^9.4.4 module-alias: ^2.2.2 moment: ^2.29.1 node-fetch: ^2.6.1 @@ -831,19 +769,9 @@ __metadata: tinycolor2: ^1.4.2 typescript: ^4.3.5 uuid: ^8.3.2 - dependenciesMeta: - discord.js@13.2.0-dev: - unplugged: true languageName: unknown linkType: soft -"bytes@npm:3.1.0": - version: 3.1.0 - resolution: "bytes@npm:3.1.0" - checksum: 7c3b21c5d9d44ed455460d5d36a31abc6fa2ce3807964ba60a4b03fd44454c8cf07bb0585af83bfde1c5cc2ea4bbe5897bc3d18cd15e0acf25a3615a35aba2df - languageName: node - linkType: hard - "cacache@npm:^15.0.5": version: 15.2.0 resolution: "cacache@npm:15.2.0" @@ -921,7 +849,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.1": +"chalk@npm:^4.0.0, chalk@npm:^4.1.1": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -945,22 +873,6 @@ __metadata: languageName: node linkType: hard -"cli-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-cursor@npm:3.1.0" - dependencies: - restore-cursor: ^3.1.0 - checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 - languageName: node - linkType: hard - -"cli-spinners@npm:^2.5.0": - version: 2.6.0 - resolution: "cli-spinners@npm:2.6.0" - checksum: bc5d06af9f896e95d0c277e2a5ee0adc5876767decca6b3c22e212934b96033453268cb59be904eccb6d59119e57dbb3fc8ca9bdf5f8476506283b3dd8728748 - languageName: node - linkType: hard - "clone-response@npm:^1.0.2": version: 1.0.2 resolution: "clone-response@npm:1.0.2" @@ -970,13 +882,6 @@ __metadata: languageName: node linkType: hard -"clone@npm:^1.0.2": - version: 1.0.4 - resolution: "clone@npm:1.0.4" - checksum: d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd - languageName: node - linkType: hard - "code-point-at@npm:^1.0.0": version: 1.1.0 resolution: "code-point-at@npm:1.1.0" @@ -1009,20 +914,13 @@ __metadata: languageName: node linkType: hard -"color-name@npm:^1.1.4, color-name@npm:~1.1.4": +"color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 languageName: node linkType: hard -"colorette@npm:^1.2.2": - version: 1.3.0 - resolution: "colorette@npm:1.3.0" - checksum: bda403dfba4d032bee4169f2a6436a83ae3da488a53bcb3be92dc44ace056518245cc614b12429d7529493d6b090a119b2523b0d55e8cd6b81ad939a3003c008 - languageName: node - linkType: hard - "combined-stream@npm:^1.0.8": version: 1.0.8 resolution: "combined-stream@npm:1.0.8" @@ -1032,20 +930,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^2.16.0, commander@npm:^2.20.3, commander@npm:^2.8.1": - version: 2.20.3 - resolution: "commander@npm:2.20.3" - checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e - languageName: node - linkType: hard - -"commander@npm:^7.2.0": - version: 7.2.0 - resolution: "commander@npm:7.2.0" - checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc - languageName: node - linkType: hard - "common-tags@npm:^1.8.0": version: 1.8.0 resolution: "common-tags@npm:1.8.0" @@ -1053,10 +937,10 @@ __metadata: languageName: node linkType: hard -"commondir@npm:^1.0.1": - version: 1.0.1 - resolution: "commondir@npm:1.0.1" - checksum: 59715f2fc456a73f68826285718503340b9f0dd89bfffc42749906c5cf3d4277ef11ef1cca0350d0e79204f00f1f6d83851ececc9095dc88512a697ac0b9bdcb +"complex.js@npm:^2.0.15": + version: 2.0.15 + resolution: "complex.js@npm:2.0.15" + checksum: f39b4ee8f8c507f896e0a0ff440fa52074c15fc4476644c5db730f5da8e6e81a010ef90ea9eda907758737062c944ac6abd4783ff14978a8976aa41e56572e12 languageName: node linkType: hard @@ -1074,13 +958,6 @@ __metadata: languageName: node linkType: hard -"content-type@npm:~1.0.4": - version: 1.0.4 - resolution: "content-type@npm:1.0.4" - checksum: 3d93585fda985d1554eca5ebd251994327608d2e200978fdbfba21c0c679914d5faf266d17027de44b34a72c7b0745b18584ecccaa7e1fdfb6a68ac7114f12e0 - languageName: node - linkType: hard - "core-util-is@npm:~1.0.0": version: 1.0.2 resolution: "core-util-is@npm:1.0.2" @@ -1099,16 +976,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:2.6.9": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: 2.0.0 - checksum: d2f51589ca66df60bf36e1fa6e4386b318c3f1e06772280eea5b1ae9fd3d05e9c2b7fd8a7d862457d00853c75b00451aa2d7459b924629ee385287a650f58fe6 - languageName: node - linkType: hard - -"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1": +"debug@npm:4, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1": version: 4.3.2 resolution: "debug@npm:4.3.2" dependencies: @@ -1120,12 +988,10 @@ __metadata: languageName: node linkType: hard -"decomment@npm:^0.9.3": - version: 0.9.4 - resolution: "decomment@npm:0.9.4" - dependencies: - esprima: 4.0.1 - checksum: d883c9563e271bfc8741a371db405af6e4d952a16df37c93434ca2e6123e4a26c05b20355f663941bb8e9602d0ad9b209960dce32af8e57fbc166b16b5797d26 +"decimal.js@npm:^10.3.1": + version: 10.3.1 + resolution: "decimal.js@npm:10.3.1" + checksum: 0351ac9f05fe050f23227aa6a4573bee2d58fa7378fcf28d969a8c789525032effb488a90320fd3fe86a66e17b4bc507d811b15eada5b7f0e7ec5d2af4c24a59 languageName: node linkType: hard @@ -1147,29 +1013,13 @@ __metadata: languageName: node linkType: hard -"deep-extend@npm:^0.6.0": - version: 0.6.0 - resolution: "deep-extend@npm:0.6.0" - checksum: 7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7 - languageName: node - linkType: hard - -"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": +"deep-is@npm:^0.1.3": version: 0.1.3 resolution: "deep-is@npm:0.1.3" checksum: c15b04c3848a89880c94e25b077c19b47d9a30dd99048e70e5f95d943e7b246bee1da0c1376b56b01bc045be2cae7d9b1c856e68e47e9805634327de7c6cb6d5 languageName: node linkType: hard -"defaults@npm:^1.0.3": - version: 1.0.3 - resolution: "defaults@npm:1.0.3" - dependencies: - clone: ^1.0.2 - checksum: 96e2112da6553d376afd5265ea7cbdb2a3b45535965d71ab8bb1da10c8126d168fdd5268799625324b368356d21ba2a7b3d4ec50961f11a47b7feb9de3d4413e - languageName: node - linkType: hard - "defer-to-connect@npm:^2.0.0": version: 2.0.1 resolution: "defer-to-connect@npm:2.0.1" @@ -1191,28 +1041,13 @@ __metadata: languageName: node linkType: hard -"depd@npm:^1.1.2, depd@npm:~1.1.2": +"depd@npm:^1.1.2": version: 1.1.2 resolution: "depd@npm:1.1.2" checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 languageName: node linkType: hard -"dependency-tree@npm:^8.1.1": - version: 8.1.1 - resolution: "dependency-tree@npm:8.1.1" - dependencies: - commander: ^2.20.3 - debug: ^4.3.1 - filing-cabinet: ^3.0.0 - precinct: ^8.0.0 - typescript: ^3.9.7 - bin: - dependency-tree: bin/cli.js - checksum: 435e53c5c63ded037d948a86b95bf0179cef46238d4bc67844ae197535e8f1fe41d054c8dc544d0d799f0789b322a43cd7ca502ba14e39c9ba491d4465dfc193 - languageName: node - linkType: hard - "detect-libc@npm:^1.0.3": version: 1.0.3 resolution: "detect-libc@npm:1.0.3" @@ -1222,115 +1057,6 @@ __metadata: languageName: node linkType: hard -"detective-amd@npm:^3.0.1, detective-amd@npm:^3.1.0": - version: 3.1.0 - resolution: "detective-amd@npm:3.1.0" - dependencies: - ast-module-types: ^2.7.0 - escodegen: ^2.0.0 - get-amd-module-type: ^3.0.0 - node-source-walk: ^4.0.0 - bin: - detective-amd: bin/detective-amd.js - checksum: aa3783d5873823cbec6d10707afe0340231ec865f465f4b83e49eeebceb5ee455c701d96f295ba3d93b519ff8fd7568c87ccf3ce76083f498d9261e8253b4d3a - languageName: node - linkType: hard - -"detective-cjs@npm:^3.1.1": - version: 3.1.1 - resolution: "detective-cjs@npm:3.1.1" - dependencies: - ast-module-types: ^2.4.0 - node-source-walk: ^4.0.0 - checksum: 626aec314fa5ec04fdb23ef6de86c1cf18a4d23ec4cd46556d25d8bf05843c7393b2933c5271e5b46140738d55b2c3d8e73a47d3ec04a3804f28ddd17f741ff9 - languageName: node - linkType: hard - -"detective-es6@npm:^2.2.0": - version: 2.2.0 - resolution: "detective-es6@npm:2.2.0" - dependencies: - node-source-walk: ^4.0.0 - checksum: 5065731a2d2edc48ae374ce0f7d36e427447fd1ebae2144297e81319da662b7b70e9b0120cb93b228d9de2a7a30ae2f30df4e50ee351c339898829033884ac03 - languageName: node - linkType: hard - -"detective-less@npm:^1.0.2": - version: 1.0.2 - resolution: "detective-less@npm:1.0.2" - dependencies: - debug: ^4.0.0 - gonzales-pe: ^4.2.3 - node-source-walk: ^4.0.0 - checksum: 858936fbad87423bd5d7502ff5fafca023e7c99e4006ed01b31c12c4b5ff8697edce91419798479d857efec68ee8f022fcac64de5530db6a64012be600a2249e - languageName: node - linkType: hard - -"detective-postcss@npm:^4.0.0": - version: 4.0.0 - resolution: "detective-postcss@npm:4.0.0" - dependencies: - debug: ^4.1.1 - is-url: ^1.2.4 - postcss: ^8.1.7 - postcss-values-parser: ^2.0.1 - checksum: e4c9fed31613df43466357fb104c4c5cdaf45a12909f7c1174161a45ebb2ebe77bb0843b3c0c117b68f55c9acb4e0578668298594c7f0108dfb73e54aaec8513 - languageName: node - linkType: hard - -"detective-postcss@npm:^5.0.0": - version: 5.0.0 - resolution: "detective-postcss@npm:5.0.0" - dependencies: - debug: ^4.3.1 - is-url: ^1.2.4 - postcss: ^8.2.13 - postcss-values-parser: ^5.0.0 - checksum: 68e36bbc39fd143d19ed371710f1561162b603faf09caa0691d7d502b6bfbc7e9fbc6b30f62b7c33285753105048322fd5c71bb8b715e6422f3b47a3f327f588 - languageName: node - linkType: hard - -"detective-sass@npm:^3.0.1": - version: 3.0.1 - resolution: "detective-sass@npm:3.0.1" - dependencies: - debug: ^4.1.1 - gonzales-pe: ^4.2.3 - node-source-walk: ^4.0.0 - checksum: 86f76671d95740a4a298057ed56f6f56c44eba68fb07beb719c1c583e507d7a102db693a344abf7a3a382e389b923fc3366d83654f633664c8b80d3c5fd16455 - languageName: node - linkType: hard - -"detective-scss@npm:^2.0.1": - version: 2.0.1 - resolution: "detective-scss@npm:2.0.1" - dependencies: - debug: ^4.1.1 - gonzales-pe: ^4.2.3 - node-source-walk: ^4.0.0 - checksum: e130745b4ac53c5a38720ae004fb92f07cd1b9228eb8e21f960725b761ebcad99886a40092ca5a1c2f52ec9e00104deccad526f5b67456e5fe7c13803c816d37 - languageName: node - linkType: hard - -"detective-stylus@npm:^1.0.0": - version: 1.0.0 - resolution: "detective-stylus@npm:1.0.0" - checksum: e9c74c97633f4ebc0f0c08546e8fbce5ad145c0411e3e6f79ebeacc00d555a471489f8599dc62150c53c0a7741a8a7b6ea32cac0b987d239c5b035d80a125f73 - languageName: node - linkType: hard - -"detective-typescript@npm:^7.0.0": - version: 7.0.0 - resolution: "detective-typescript@npm:7.0.0" - dependencies: - "@typescript-eslint/typescript-estree": ^4.8.2 - ast-module-types: ^2.7.1 - node-source-walk: ^4.2.0 - typescript: ^3.9.7 - checksum: fc92e20e7b3aa9127c0a3809adea0e4101fa1e294328ad9b3868004cc6973e5f49b9296354ad79f10a2d5150c3ca03fc77d471d6afe2dc07f1f4845ef1e0cf98 - languageName: node - linkType: hard - "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -1349,11 +1075,12 @@ discord-akairo-message-util@NotEnoughUpdates/discord-akairo-message-util: discord-akairo@NotEnoughUpdates/discord-akairo: version: 8.2.2 - resolution: "discord-akairo@https://github.com/NotEnoughUpdates/discord-akairo.git#commit=0f30d95714060be2a41f4e1968416b86c0772d2b" + resolution: "discord-akairo@https://github.com/NotEnoughUpdates/discord-akairo.git#commit=840437bfc666689add3a24037fc5ef90e0335345" dependencies: discord-akairo-message-util: NotEnoughUpdates/discord-akairo-message-util + lodash: ^4.17.21 source-map-support: ^0.5.19 - checksum: 2a81e7efb334e85e8250ee01e6048d0d6ec81a005f4e82457ed9c9ac7ceab0596184076451c8601f7e0fc30230e0f769f6644ec396443ba3017b96e403cbdb0a + checksum: 6af32d8b76a22ec25582e806f04e500b3f4ce13d960df871535ef1b34adedbe6940fd19fdc0f12e3ba72f1272fba1f860ffee8e86beac7e624def943c2e57be0 languageName: node linkType: hard @@ -1364,13 +1091,6 @@ discord-akairo@NotEnoughUpdates/discord-akairo: languageName: node linkType: hard -"discord-api-types@npm:^0.18.1": - version: 0.18.1 - resolution: "discord-api-types@npm:0.18.1" - checksum: 05e56e7219492cba3075d6d7750bb84b935ea21fe760b2b6f7bbdc2c896b986e6b725f10645e91242cd8d20a409e6f7d8ac1c77cbd40bd14bc144349b2959939 - languageName: node - linkType: hard - "discord.js-minesweeper@npm:^1.0.6": version: 1.0.6 resolution: "discord.js-minesweeper@npm:1.0.6" @@ -1380,7 +1100,7 @@ discord-akairo@NotEnoughUpdates/discord-akairo: discord.js@NotEnoughUpdates/discord.js: version: 13.2.0-dev - resolution: "discord.js@https://github.com/NotEnoughUpdates/discord.js.git#commit=3ef7c2691d673fa0f17b5a712b29bcb6e1c1346a" + resolution: "discord.js@https://github.com/NotEnoughUpdates/discord.js.git#commit=2965801e1334034c81974a43a9b9e4afdcbfd990" dependencies: "@discordjs/builders": ^0.5.0 "@discordjs/collection": ^0.2.1 @@ -1390,7 +1110,7 @@ discord.js@NotEnoughUpdates/discord.js: discord-api-types: ^0.22.0 node-fetch: ^2.6.1 ws: ^7.5.1 - checksum: 205d0ce75a4cc978c2c4b4adf0acdc0493045a82bb56505f8bf2bb3b4da8d2213d83670b6a44c28b926cc0a9bf6c91c966195d322c4a373ccf1bf035a0bf3918 + checksum: 45864600112bd1563c0b0780c1bfe5259a1635ca03e915255f636f40f1efe99b7fb16036cfeddb83d8ea8de895708382a9af845e87ebf03b31f3d4972199b612 languageName: node linkType: hard @@ -1419,13 +1139,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"ee-first@npm:1.1.1": - version: 1.1.1 - resolution: "ee-first@npm:1.1.1" - checksum: 1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f - languageName: node - linkType: hard - "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -1451,16 +1164,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"enhanced-resolve@npm:^5.3.2": - version: 5.8.2 - resolution: "enhanced-resolve@npm:5.8.2" - dependencies: - graceful-fs: ^4.2.4 - tapable: ^2.2.0 - checksum: 6e871ec5b183220dbcdaff8580cbdacee5425e321790e5846abd1b573d20d2bcb37f73ee983fd10c6d6878d31a2d08e234e72fc91a81236d64623ee6ba7d6611 - languageName: node - linkType: hard - "enquirer@npm:^2.3.5": version: 2.3.6 resolution: "enquirer@npm:2.3.6" @@ -1485,11 +1188,18 @@ discord.js@NotEnoughUpdates/discord.js: linkType: hard "esbuild@npm:^0.12.11": - version: 0.12.20 - resolution: "esbuild@npm:0.12.20" + version: 0.12.22 + resolution: "esbuild@npm:0.12.22" bin: esbuild: bin/esbuild - checksum: 52a67e06a675fe632655b9edb8beba2b67e55ff1853561fc2b1d5098e5c4801e885707af2441f3b3612791085f132eb46868f7353949ef4054caa714233156db + checksum: db14cc10914d40a875da1b102cee7479ebe1b085cdc2deaa8e275468ada9bf3c6b793bd6004a031a9f2e34865fe629dc59030c5fe4820978f1cf071966aa2c5d + languageName: node + linkType: hard + +"escape-latex@npm:^1.2.0": + version: 1.2.0 + resolution: "escape-latex@npm:1.2.0" + checksum: 73a787319f0965ecb8244bb38bf3a3cba872f0b9a5d3da8821140e9f39fe977045dc953a62b1a2bed4d12bfccbe75a7d8ec786412bf00739eaa2f627d0a8e0d6 languageName: node linkType: hard @@ -1507,25 +1217,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"escodegen@npm:^2.0.0": - version: 2.0.0 - resolution: "escodegen@npm:2.0.0" - dependencies: - esprima: ^4.0.1 - estraverse: ^5.2.0 - esutils: ^2.0.2 - optionator: ^0.8.1 - source-map: ~0.6.1 - dependenciesMeta: - source-map: - optional: true - bin: - escodegen: bin/escodegen.js - esgenerate: bin/esgenerate.js - checksum: 5aa6b2966fafe0545e4e77936300cc94ad57cfe4dc4ebff9950492eaba83eef634503f12d7e3cbd644ecc1bab388ad0e92b06fd32222c9281a75d1cf02ec6cef - languageName: node - linkType: hard - "eslint-config-prettier@npm:^8.3.0": version: 8.3.0 resolution: "eslint-config-prettier@npm:8.3.0" @@ -1642,7 +1333,7 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"esprima@npm:4.0.1, esprima@npm:^4.0.0, esprima@npm:^4.0.1": +"esprima@npm:^4.0.0": version: 4.0.1 resolution: "esprima@npm:4.0.1" bin: @@ -1718,7 +1409,7 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": +"fast-levenshtein@npm:^2.0.6": version: 2.0.6 resolution: "fast-levenshtein@npm:2.0.6" checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c @@ -1726,11 +1417,11 @@ discord.js@NotEnoughUpdates/discord.js: linkType: hard "fastq@npm:^1.6.0": - version: 1.11.1 - resolution: "fastq@npm:1.11.1" + version: 1.12.0 + resolution: "fastq@npm:1.12.0" dependencies: reusify: ^1.0.4 - checksum: 3877a63bee4f63af9277d6169a766804c9e1c7829a070b6843c5b799aa72177e71465427889c96510e5608c334dd3c912ab0b3ca70c1c8c4c1b03449d9f2c5ba + checksum: 486db511686b5ab28b1d87170f05c3fa6c8d769cde6861ed34cf3756cdf356950ba9c7dde0bc976ad4308b85aa9ef6214c685887f9f724be72c054a7becb642a languageName: node linkType: hard @@ -1743,29 +1434,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"filing-cabinet@npm:^3.0.0": - version: 3.0.0 - resolution: "filing-cabinet@npm:3.0.0" - dependencies: - app-module-path: ^2.2.0 - commander: ^2.20.3 - debug: ^4.3.1 - decomment: ^0.9.3 - enhanced-resolve: ^5.3.2 - is-relative-path: ^1.0.2 - module-definition: ^3.3.1 - module-lookup-amd: ^7.0.0 - resolve: ^1.19.0 - resolve-dependency-path: ^2.0.0 - sass-lookup: ^3.0.0 - stylus-lookup: ^3.0.1 - typescript: ^3.9.7 - bin: - filing-cabinet: bin/cli.js - checksum: 509ffa5a51408eb6a146896a4ff24954eb029eac9c32602a75cca008f1579f8669cb75d8e361604efa1898da52e86464f7768dbdf159f88fb0a3dd60790e5591 - languageName: node - linkType: hard - "fill-range@npm:^7.0.1": version: 7.0.1 resolution: "fill-range@npm:7.0.1" @@ -1792,13 +1460,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"flatten@npm:^1.0.2": - version: 1.0.3 - resolution: "flatten@npm:1.0.3" - checksum: 5c57379816f1692aaa79fbc6390e0a0644e5e8442c5783ed57c6d315468eddbc53a659eaa03c9bb1e771b0f4a9bd8dd8a2620286bf21fd6538a7857321fdfb20 - languageName: node - linkType: hard - "form-data@npm:^3.0.0": version: 3.0.1 resolution: "form-data@npm:3.0.1" @@ -1810,6 +1471,13 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard +"fraction.js@npm:^4.1.1": + version: 4.1.1 + resolution: "fraction.js@npm:4.1.1" + checksum: e5a1f81d73e32aabf4fbd6581a7b3dfabd9a449ceb97c7e71ed2931dd0607095622341100d7819741eb9b435eb4e0d4a040a69e411dc943fa9b3a3872f3a2e0f + languageName: node + linkType: hard + "fs-minipass@npm:^2.0.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" @@ -1826,13 +1494,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"function-bind@npm:^1.1.1": - version: 1.1.1 - resolution: "function-bind@npm:1.1.1" - checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a - languageName: node - linkType: hard - "functional-red-black-tree@npm:^1.0.1": version: 1.0.1 resolution: "functional-red-black-tree@npm:1.0.1" @@ -1863,23 +1524,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"get-amd-module-type@npm:^3.0.0": - version: 3.0.0 - resolution: "get-amd-module-type@npm:3.0.0" - dependencies: - ast-module-types: ^2.3.2 - node-source-walk: ^4.0.0 - checksum: a2df61d329541e04d9ddeb3880b52df12d70d48822bd3ac340b17a445785fc8dcc195194e0ed79e04271217c1eaccf94c46bb8e5d5b7acd2cdd48661f004916f - languageName: node - linkType: hard - -"get-own-enumerable-property-symbols@npm:^3.0.0": - version: 3.0.2 - resolution: "get-own-enumerable-property-symbols@npm:3.0.2" - checksum: 8f0331f14159f939830884799f937343c8c0a2c330506094bc12cbee3665d88337fe97a4ea35c002cc2bdba0f5d9975ad7ec3abb925015cdf2a93e76d4759ede - languageName: node - linkType: hard - "get-stream@npm:^5.1.0": version: 5.2.0 resolution: "get-stream@npm:5.2.0" @@ -1898,7 +1542,7 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": +"glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.1.7 resolution: "glob@npm:7.1.7" dependencies: @@ -1935,17 +1579,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"gonzales-pe@npm:^4.2.3": - version: 4.3.0 - resolution: "gonzales-pe@npm:4.3.0" - dependencies: - minimist: ^1.2.5 - bin: - gonzales: bin/gonzales.js - checksum: 49d60fc49ad35639e5d55923c1516d3ec2e4de5e6e5913ec3458a479b66623e54a060d568295349b0bb9f96ee970c473ff984d4b82a5cfeaf736c55f0d6dc3b7 - languageName: node - linkType: hard - "got@npm:^11.8.2": version: 11.8.2 resolution: "got@npm:11.8.2" @@ -1965,22 +1598,13 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": +"graceful-fs@npm:^4.2.6": version: 4.2.8 resolution: "graceful-fs@npm:4.2.8" checksum: 5d224c8969ad0581d551dfabdb06882706b31af2561bd5e2034b4097e67cc27d05232849b8643866585fd0a41c7af152950f8776f4dd5579e9853733f31461c6 languageName: node linkType: hard -"graphviz@npm:0.0.9": - version: 0.0.9 - resolution: "graphviz@npm:0.0.9" - dependencies: - temp: ~0.4.0 - checksum: fb414f89763d568646f2d899f9a2baa19e1cdf1b97db831f64f2b3f7322609ca1e4e43bcb3d2e3bfc992b9e0f657803559d7a98e289d5aa6dc549d578939d599 - languageName: node - linkType: hard - "has-flag@npm:^3.0.0": version: 3.0.0 resolution: "has-flag@npm:3.0.0" @@ -2002,15 +1626,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"has@npm:^1.0.3": - version: 1.0.3 - resolution: "has@npm:1.0.3" - dependencies: - function-bind: ^1.1.1 - checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 - languageName: node - linkType: hard - "http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0": version: 4.1.0 resolution: "http-cache-semantics@npm:4.1.0" @@ -2018,19 +1633,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"http-errors@npm:1.7.2": - version: 1.7.2 - resolution: "http-errors@npm:1.7.2" - dependencies: - depd: ~1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.1 - statuses: ">= 1.5.0 < 2" - toidentifier: 1.0.0 - checksum: 5534b0ae08e77f5a45a2380f500e781f6580c4ff75b816cb1f09f99a290b57e78a518be6d866db1b48cca6b052c09da2c75fc91fb16a2fe3da3c44d9acbb9972 - languageName: node - linkType: hard - "http-proxy-agent@npm:^4.0.1": version: 4.0.1 resolution: "http-proxy-agent@npm:4.0.1" @@ -2078,15 +1680,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"iconv-lite@npm:0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: ">= 2.1.2 < 3" - checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 - languageName: node - linkType: hard - "iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" @@ -2096,13 +1689,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"ieee754@npm:^1.1.13": - version: 1.2.1 - resolution: "ieee754@npm:1.2.1" - checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e - languageName: node - linkType: hard - "ignore@npm:^4.0.6": version: 4.0.6 resolution: "ignore@npm:4.0.6" @@ -2141,13 +1727,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"indexes-of@npm:^1.0.1": - version: 1.0.1 - resolution: "indexes-of@npm:1.0.1" - checksum: 4f9799b1739a62f3e02d09f6f4162cf9673025282af7fa36e790146e7f4e216dad3e776a25b08536c093209c9fcb5ea7bd04b082d42686a45f58ff401d6da32e - languageName: node - linkType: hard - "infer-owner@npm:^1.0.4": version: 1.0.4 resolution: "infer-owner@npm:1.0.4" @@ -2172,27 +1751,13 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": +"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:~2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 languageName: node linkType: hard -"inherits@npm:2.0.3": - version: 2.0.3 - resolution: "inherits@npm:2.0.3" - checksum: 78cb8d7d850d20a5e9a7f3620db31483aa00ad5f722ce03a55b110e5a723539b3716a3b463e2b96ce3fe286f33afc7c131fa2f91407528ba80cea98a7545d4c0 - languageName: node - linkType: hard - -"ini@npm:~1.3.0": - version: 1.3.8 - resolution: "ini@npm:1.3.8" - checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 - languageName: node - linkType: hard - "ip@npm:^1.1.5": version: 1.1.5 resolution: "ip@npm:1.1.5" @@ -2200,15 +1765,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"is-core-module@npm:^2.2.0": - version: 2.6.0 - resolution: "is-core-module@npm:2.6.0" - dependencies: - has: ^1.0.3 - checksum: 183b3b96fed19822b13959876b0317e61fc2cb5ebcbc21639904c81f7ae328af57f8e18cc4750a9c4abebd686130c70d34a89521e57dbe002edfa4614507ce18 - languageName: node - linkType: hard - "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -2248,13 +1804,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"is-interactive@npm:^1.0.0": - version: 1.0.0 - resolution: "is-interactive@npm:1.0.0" - checksum: 824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9 - languageName: node - linkType: hard - "is-lambda@npm:^1.0.1": version: 1.0.1 resolution: "is-lambda@npm:1.0.1" @@ -2269,13 +1818,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"is-obj@npm:^1.0.1": - version: 1.0.1 - resolution: "is-obj@npm:1.0.1" - checksum: 3ccf0efdea12951e0b9c784e2b00e77e87b2f8bd30b42a498548a8afcc11b3287342a2030c308e473e93a7a19c9ea7854c99a8832a476591c727df2a9c79796c - languageName: node - linkType: hard - "is-obj@npm:^2.0.0": version: 2.0.0 resolution: "is-obj@npm:2.0.0" @@ -2283,41 +1825,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"is-regexp@npm:^1.0.0": - version: 1.0.0 - resolution: "is-regexp@npm:1.0.0" - checksum: be692828e24cba479ec33644326fa98959ec68ba77965e0291088c1a741feaea4919d79f8031708f85fd25e39de002b4520622b55460660b9c369e6f7187faef - languageName: node - linkType: hard - -"is-relative-path@npm:^1.0.2": - version: 1.0.2 - resolution: "is-relative-path@npm:1.0.2" - checksum: 6c2ccffd3c0a3e3990535d0571370883d558b825b51940085f3446ec338857f4552f44521dfec3e83b7e067de08c0b0369de290208a91200bcae2c569533e340 - languageName: node - linkType: hard - -"is-unicode-supported@npm:^0.1.0": - version: 0.1.0 - resolution: "is-unicode-supported@npm:0.1.0" - checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 - languageName: node - linkType: hard - -"is-url-superb@npm:^4.0.0": - version: 4.0.0 - resolution: "is-url-superb@npm:4.0.0" - checksum: fd55e91c96349acb0d688f95fcb1ac67450e5db934976e3a8ff13ef446841e779a6f4d18b15f02331f05a3429c8fdaba2382ac1ab444059e86e9ffcde1ec8db0 - languageName: node - linkType: hard - -"is-url@npm:^1.2.4": - version: 1.2.4 - resolution: "is-url@npm:1.2.4" - checksum: 100e74b3b1feab87a43ef7653736e88d997eb7bd32e71fd3ebc413e58c1cbe56269699c776aaea84244b0567f2a7d68dfaa512a062293ed2f9fdecb394148432 - languageName: node - linkType: hard - "isarray@npm:~1.0.0": version: 1.0.0 resolution: "isarray@npm:1.0.0" @@ -2332,6 +1839,13 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard +"javascript-natural-sort@npm:^0.7.1": + version: 0.7.1 + resolution: "javascript-natural-sort@npm:0.7.1" + checksum: 161e2c512cc7884bc055a582c6645d9032cab88497a76123d73cb23bfb03d97a04cf7772ecdb8bd3366fc07192c2f996366f479f725c23ef073fffe03d6a586a + languageName: node + linkType: hard + "js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -2409,16 +1923,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"levn@npm:~0.3.0": - version: 0.3.0 - resolution: "levn@npm:0.3.0" - dependencies: - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - checksum: 0d084a524231a8246bb10fec48cdbb35282099f6954838604f3c7fc66f2e16fa66fd9cc2f3f20a541a113c4dafdf181e822c887c8a319c9195444e6c64ac395e - languageName: node - linkType: hard - "lodash.clonedeep@npm:^4.5.0": version: 4.5.0 resolution: "lodash.clonedeep@npm:4.5.0" @@ -2447,23 +1951,13 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"lodash@npm:^4.17.20": +"lodash@npm:^4.17.20, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 languageName: node linkType: hard -"log-symbols@npm:^4.1.0": - version: 4.1.0 - resolution: "log-symbols@npm:4.1.0" - dependencies: - chalk: ^4.1.0 - is-unicode-supported: ^0.1.0 - checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 - languageName: node - linkType: hard - "lowercase-keys@npm:^2.0.0": version: 2.0.0 resolution: "lowercase-keys@npm:2.0.0" @@ -2480,38 +1974,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"madge@npm:^5.0.1": - version: 5.0.1 - resolution: "madge@npm:5.0.1" - dependencies: - chalk: ^4.1.1 - commander: ^7.2.0 - commondir: ^1.0.1 - debug: ^4.3.1 - dependency-tree: ^8.1.1 - detective-amd: ^3.1.0 - detective-cjs: ^3.1.1 - detective-es6: ^2.2.0 - detective-less: ^1.0.2 - detective-postcss: ^5.0.0 - detective-sass: ^3.0.1 - detective-scss: ^2.0.1 - detective-stylus: ^1.0.0 - detective-typescript: ^7.0.0 - graphviz: 0.0.9 - ora: ^5.4.1 - pluralize: ^8.0.0 - precinct: ^8.1.0 - pretty-ms: ^7.0.1 - rc: ^1.2.7 - typescript: ^3.9.5 - walkdir: ^0.4.1 - bin: - madge: bin/cli.js - checksum: 821db88fdcb6259cf4bf1665abb976dd859fb7157a712886468d4172ab6d758f3446212fcd3fa92be21e9e2b408854f96e9495b7119d7387e6fe5690bd9786c4 - languageName: node - linkType: hard - "make-dir@npm:^3.1.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" @@ -2544,10 +2006,22 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"media-typer@npm:0.3.0": - version: 0.3.0 - resolution: "media-typer@npm:0.3.0" - checksum: af1b38516c28ec95d6b0826f6c8f276c58aec391f76be42aa07646b4e39d317723e869700933ca6995b056db4b09a78c92d5440dc23657e6764be5d28874bba1 +"mathjs@npm:^9.4.4": + version: 9.4.4 + resolution: "mathjs@npm:9.4.4" + dependencies: + "@babel/runtime": ^7.14.6 + complex.js: ^2.0.15 + decimal.js: ^10.3.1 + escape-latex: ^1.2.0 + fraction.js: ^4.1.1 + javascript-natural-sort: ^0.7.1 + seedrandom: ^3.0.5 + tiny-emitter: ^2.1.0 + typed-function: ^2.0.0 + bin: + mathjs: bin/cli.js + checksum: 3fdaca4d0e8b73c1e75c87023101d8d047ccec395743c80f24031b7523fc8f2209f8bc572c603d8a8ba4e8b977f240e987f72902e48cce6ff261b3f904fefd5b languageName: node linkType: hard @@ -2575,7 +2049,7 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:~2.1.24": +"mime-types@npm:^2.1.12": version: 2.1.32 resolution: "mime-types@npm:2.1.32" dependencies: @@ -2584,13 +2058,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"mimic-fn@npm:^2.1.0": - version: 2.1.0 - resolution: "mimic-fn@npm:2.1.0" - checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a - languageName: node - linkType: hard - "mimic-response@npm:^1.0.0": version: 1.0.1 resolution: "mimic-response@npm:1.0.1" @@ -2621,7 +2088,7 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"minimist@npm:^1.2.0, minimist@npm:^1.2.5": +"minimist@npm:^1.2.5": version: 1.2.5 resolution: "minimist@npm:1.2.5" checksum: 86706ce5b36c16bfc35c5fe3dbb01d5acdc9a22f2b6cc810b6680656a1d2c0e44a0159c9a3ba51fb072bb5c203e49e10b51dcd0eec39c481f4c42086719bae52 @@ -2714,33 +2181,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"module-definition@npm:^3.3.1": - version: 3.3.1 - resolution: "module-definition@npm:3.3.1" - dependencies: - ast-module-types: ^2.7.1 - node-source-walk: ^4.0.0 - bin: - module-definition: bin/module-definition.js - checksum: f1c0587983aecb650c8e761b6defde383d308d2664c27f8e90b855b9a0d3415010dcaa46643fbe4c9761c8978978fd6f65315834b702544d7cec9af84b0a7528 - languageName: node - linkType: hard - -"module-lookup-amd@npm:^7.0.0": - version: 7.0.1 - resolution: "module-lookup-amd@npm:7.0.1" - dependencies: - commander: ^2.8.1 - debug: ^4.1.0 - glob: ^7.1.6 - requirejs: ^2.3.5 - requirejs-config-file: ^4.0.0 - bin: - lookup-amd: bin/cli.js - checksum: 911abd6b8fb1d82cfae4ef38050981d4eb7e710bfeba898903c5c49a4d3a44b3cacb6201ddf9930a39fae3473faf9b96d39930cfa8766dbf0da86689108895b1 - languageName: node - linkType: hard - "moment-timezone@npm:^0.5.31": version: 0.5.33 resolution: "moment-timezone@npm:0.5.33" @@ -2757,13 +2197,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"ms@npm:2.0.0": - version: 2.0.0 - resolution: "ms@npm:2.0.0" - checksum: 0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 - languageName: node - linkType: hard - "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -2787,15 +2220,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"nanoid@npm:^3.1.23": - version: 3.1.25 - resolution: "nanoid@npm:3.1.25" - bin: - nanoid: bin/nanoid.cjs - checksum: e2353828c7d8fde65265e9c981380102e2021f292038a93fd27288bad390339833286e8cbc7531abe1cb2c6b317e55f38b895dcb775151637bb487388558e0ff - languageName: node - linkType: hard - "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -2830,15 +2254,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"node-source-walk@npm:^4.0.0, node-source-walk@npm:^4.2.0": - version: 4.2.0 - resolution: "node-source-walk@npm:4.2.0" - dependencies: - "@babel/parser": ^7.0.0 - checksum: 995979cdd34e708a93c0ab0a9a7c6d89b46060608d12c5a92cb277e7a6e68707e3182dfcc5b50f17c21e442f47b0f3986aa6699bd21ab07e5c7e054652bb9fe8 - languageName: node - linkType: hard - "nopt@npm:^5.0.0": version: 5.0.0 resolution: "nopt@npm:5.0.0" @@ -2883,15 +2298,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"on-finished@npm:~2.3.0": - version: 2.3.0 - resolution: "on-finished@npm:2.3.0" - dependencies: - ee-first: 1.1.1 - checksum: 1db595bd963b0124d6fa261d18320422407b8f01dc65863840f3ddaaf7bcad5b28ff6847286703ca53f4ec19595bd67a2f1253db79fc4094911ec6aa8df1671b - languageName: node - linkType: hard - "once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -2901,29 +2307,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"onetime@npm:^5.1.0": - version: 5.1.2 - resolution: "onetime@npm:5.1.2" - dependencies: - mimic-fn: ^2.1.0 - checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 - languageName: node - linkType: hard - -"optionator@npm:^0.8.1": - version: 0.8.3 - resolution: "optionator@npm:0.8.3" - dependencies: - deep-is: ~0.1.3 - fast-levenshtein: ~2.0.6 - levn: ~0.3.0 - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - word-wrap: ~1.2.3 - checksum: b8695ddf3d593203e25ab0900e265d860038486c943ff8b774f596a310f8ceebdb30c6832407a8198ba3ec9debe1abe1f51d4aad94843612db3b76d690c61d34 - languageName: node - linkType: hard - "optionator@npm:^0.9.1": version: 0.9.1 resolution: "optionator@npm:0.9.1" @@ -2938,23 +2321,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"ora@npm:^5.4.1": - version: 5.4.1 - resolution: "ora@npm:5.4.1" - dependencies: - bl: ^4.1.0 - chalk: ^4.1.0 - cli-cursor: ^3.1.0 - cli-spinners: ^2.5.0 - is-interactive: ^1.0.0 - is-unicode-supported: ^0.1.0 - log-symbols: ^4.1.0 - strip-ansi: ^6.0.0 - wcwidth: ^1.0.1 - checksum: 28d476ee6c1049d68368c0dc922e7225e3b5600c3ede88fade8052837f9ed342625fdaa84a6209302587c8ddd9b664f71f0759833cbdb3a4cf81344057e63c63 - languageName: node - linkType: hard - "ow@npm:^0.27.0": version: 0.27.0 resolution: "ow@npm:0.27.0" @@ -3001,13 +2367,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"parse-ms@npm:^2.1.0": - version: 2.1.0 - resolution: "parse-ms@npm:2.1.0" - checksum: d5c66c76cca8df5bd0574e2d11b9c3752893b59b466e74308d4a2f09760dc5436a1633f549cad300fc8c3c19154d14959a3b8333d3b2f7bd75898fe18149d564 - languageName: node - linkType: hard - "path-is-absolute@npm:^1.0.0": version: 1.0.1 resolution: "path-is-absolute@npm:1.0.1" @@ -3022,13 +2381,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"path-parse@npm:^1.0.6": - version: 1.0.7 - resolution: "path-parse@npm:1.0.7" - checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a - languageName: node - linkType: hard - "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" @@ -3124,48 +2476,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"pluralize@npm:^8.0.0": - version: 8.0.0 - resolution: "pluralize@npm:8.0.0" - checksum: 08931d4a6a4a5561a7f94f67a31c17e6632cb21e459ab3ff4f6f629d9a822984cf8afef2311d2005fbea5d7ef26016ebb090db008e2d8bce39d0a9a9d218736e - languageName: node - linkType: hard - -"postcss-values-parser@npm:^2.0.1": - version: 2.0.1 - resolution: "postcss-values-parser@npm:2.0.1" - dependencies: - flatten: ^1.0.2 - indexes-of: ^1.0.1 - uniq: ^1.0.1 - checksum: 050877880937e15af8d18bf48902e547e2123d7cc32c1f215b392642bc5e2598a87a341995d62f38e450aab4186b8afeb2c9541934806d458ad8b117020b2ebf - languageName: node - linkType: hard - -"postcss-values-parser@npm:^5.0.0": - version: 5.0.0 - resolution: "postcss-values-parser@npm:5.0.0" - dependencies: - color-name: ^1.1.4 - is-url-superb: ^4.0.0 - quote-unquote: ^1.0.0 - peerDependencies: - postcss: ^8.0.9 - checksum: d45bde8606fdb721cf7fc1f971bc635b0da156fd75a1b706b0503af00416d5699afc477d028781229eabab56fa543b17f15b5b13807cfb8c5ba0e442281eb463 - languageName: node - linkType: hard - -"postcss@npm:^8.1.7, postcss@npm:^8.2.13": - version: 8.3.6 - resolution: "postcss@npm:8.3.6" - dependencies: - colorette: ^1.2.2 - nanoid: ^3.1.23 - source-map-js: ^0.6.2 - checksum: ff55b91bea21f42c2a94d77fd05c3f66dd15889c68506cf1dbb9cdee8c3b9e9d0e219bcbc6e61a107bd63e3cac0670176486e2a5794c106a4e1b9babceb79317 - languageName: node - linkType: hard - "postgres-array@npm:~2.0.0": version: 2.0.0 resolution: "postgres-array@npm:2.0.0" @@ -3196,29 +2506,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"precinct@npm:^8.0.0, precinct@npm:^8.1.0": - version: 8.1.0 - resolution: "precinct@npm:8.1.0" - dependencies: - commander: ^2.20.3 - debug: ^4.3.1 - detective-amd: ^3.0.1 - detective-cjs: ^3.1.1 - detective-es6: ^2.2.0 - detective-less: ^1.0.2 - detective-postcss: ^4.0.0 - detective-sass: ^3.0.1 - detective-scss: ^2.0.1 - detective-stylus: ^1.0.0 - detective-typescript: ^7.0.0 - module-definition: ^3.3.1 - node-source-walk: ^4.2.0 - bin: - precinct: bin/cli.js - checksum: 0b5667f55ad3d064add80ca70a548aa94fbb1f221ee6d1c6a6bbbc87b20328be8b0878148a974b4b5abc9c57bc89a7da40fa28fa11d11d0e939c1ac82774d5b7 - languageName: node - linkType: hard - "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -3226,13 +2513,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"prelude-ls@npm:~1.1.2": - version: 1.1.2 - resolution: "prelude-ls@npm:1.1.2" - checksum: c4867c87488e4a0c233e158e4d0d5565b609b105d75e4c05dc760840475f06b731332eb93cc8c9cecb840aa8ec323ca3c9a56ad7820ad2e63f0261dadcb154e4 - languageName: node - linkType: hard - "prettier@npm:^2.3.2": version: 2.3.2 resolution: "prettier@npm:2.3.2" @@ -3242,15 +2522,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"pretty-ms@npm:^7.0.1": - version: 7.0.1 - resolution: "pretty-ms@npm:7.0.1" - dependencies: - parse-ms: ^2.1.0 - checksum: d76c4920283b48be91f1d3797a2ce4bd51187d58d2a609ae993c028f73c92d16439449d857af57ccad91ae3a38b30c87307f5589749a056102ebb494c686957e - languageName: node - linkType: hard - "prism-media@npm:^1.3.1": version: 1.3.2 resolution: "prism-media@npm:1.3.2" @@ -3320,13 +2591,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"qs@npm:6.7.0": - version: 6.7.0 - resolution: "qs@npm:6.7.0" - checksum: dfd5f6adef50e36e908cfa70a6233871b5afe66fbaca37ecc1da352ba29eb2151a3797991948f158bb37fccde51bd57845cb619a8035287bfc24e4591172c347 - languageName: node - linkType: hard - "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" @@ -3341,39 +2605,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"quote-unquote@npm:^1.0.0": - version: 1.0.0 - resolution: "quote-unquote@npm:1.0.0" - checksum: 955a2ead534f5b6a3f8d4dc5a4b95ac6468213d3fb11f8c1592a0a56345c45a3d14d5ca04d3de2bc9891493fcac38c03dfa91c48a6159aef50124e9c5afcea49 - languageName: node - linkType: hard - -"raw-body@npm:2.4.0": - version: 2.4.0 - resolution: "raw-body@npm:2.4.0" - dependencies: - bytes: 3.1.0 - http-errors: 1.7.2 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - checksum: 6343906939e018c6e633a34a938a5d6d1e93ffcfa48646e00207d53b418e941953b521473950c079347220944dc75ba10e7b3c08bf97e3ac72c7624882db09bb - languageName: node - linkType: hard - -"rc@npm:^1.2.7": - version: 1.2.8 - resolution: "rc@npm:1.2.8" - dependencies: - deep-extend: ^0.6.0 - ini: ~1.3.0 - minimist: ^1.2.0 - strip-json-comments: ~2.0.1 - bin: - rc: ./cli.js - checksum: 2e26e052f8be2abd64e6d1dabfbd7be03f80ec18ccbc49562d31f617d0015fbdbcf0f9eed30346ea6ab789e0fdfe4337f033f8016efdbee0df5354751842080e - languageName: node - linkType: hard - "readable-stream@npm:^2.0.6": version: 2.3.7 resolution: "readable-stream@npm:2.3.7" @@ -3389,7 +2620,7 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"readable-stream@npm:^3.0.0, readable-stream@npm:^3.4.0": +"readable-stream@npm:^3.0.0": version: 3.6.0 resolution: "readable-stream@npm:3.6.0" dependencies: @@ -3400,6 +2631,13 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard +"regenerator-runtime@npm:^0.13.4": + version: 0.13.9 + resolution: "regenerator-runtime@npm:0.13.9" + checksum: 65ed455fe5afd799e2897baf691ca21c2772e1a969d19bb0c4695757c2d96249eb74ee3553ea34a91062b2a676beedf630b4c1551cc6299afb937be1426ec55e + languageName: node + linkType: hard + "regexpp@npm:^3.1.0": version: 3.2.0 resolution: "regexpp@npm:3.2.0" @@ -3414,26 +2652,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"requirejs-config-file@npm:^4.0.0": - version: 4.0.0 - resolution: "requirejs-config-file@npm:4.0.0" - dependencies: - esprima: ^4.0.0 - stringify-object: ^3.2.1 - checksum: 61ac1c419a8978df9484211827047f0a43d48a97e242ebca9628a2e52da8c739ee068bd67dc4d5dc5fd7be6d1c9a863006bb02df691c86914921fe12713fbebb - languageName: node - linkType: hard - -"requirejs@npm:^2.3.5": - version: 2.3.6 - resolution: "requirejs@npm:2.3.6" - bin: - r.js: ./bin/r.js - r_js: ./bin/r.js - checksum: 7c3c006bf5e1887d93ac7adb7f600328918d23cf3d28282a505a2873d4ddde499c7ec560e55cee3440d17fe1205cb4dcb72b07f35b39e8940372eca850e49b62 - languageName: node - linkType: hard - "resolve-alpn@npm:^1.0.0": version: 1.2.0 resolution: "resolve-alpn@npm:1.2.0" @@ -3441,13 +2659,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -"resolve-dependency-path@npm:^2.0.0": - version: 2.0.0 - resolution: "resolve-dependency-path@npm:2.0.0" - checksum: 161296969a0a7853ebb7710847154ffb5bd11a51c370b67a0d0c89cacfcb57063d204587617fd030ea227bfd19a3c4af79d39e9d20ae0fbe354c27598d1ea8a8 - languageName: node - linkType: hard - "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -3455,26 +2666,6 @@ discord.js@NotEnoughUpdates/discord.js: languageName: node linkType: hard -resolve@^1.19.0: - version: 1.20.0 - resolution: "resolve@npm:1.20.0" - dependencies: - is-core-module: ^2.2.0 - path-parse: ^1.0.6 - checksum: 40cf70b2cde00ef57f99daf2dc63c6a56d6c14a1b7fc51735d06a6f0a3b97cb67b4fb7ef6c747b4e13a7baba83b0ef625d7c4ce92a483cd5af923c3b65fd16fe - languageName: node - linkType: hard - -"resolve@patch:resolve@^1.19.0#~builtin<compat/resolve>": - version: 1.20.0 - resolution: "resolve@patch:resolve@npm%3A1.20.0#~builtin<compat/resolve>::version=1.20.0&hash=00b1ff" - dependencies: - is-core-module: ^2.2.0 - path-parse: ^1.0.6 - checksum: bed00be983cd20a8af0e7840664f655c4b269786dbd9595c5f156cd9d8a0050e65cdbbbdafc30ee9b6245b230c78a2c8ab6447a52545b582f476c29adb188cc5 - languageName: node - linkType: hard - "responselike@npm:^2.0.0": version: 2.0.0 resolution: "responselike@npm:2.0.0" @@ -3484,16 +2675,6 @@ resolve@^1.19.0: languageName: node linkType: hard -"restore-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "restore-cursor@npm:3.1.0" - dependencies: - onetime: ^5.1.0 - signal-exit: ^3.0.2 - checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 - languageName: node - linkType: hard - "retry-as-promised@npm:^3.2.0": version: 3.2.0 resolution: "retry-as-promised@npm:3.2.0" @@ -3551,21 +2732,17 @@ resolve@^1.19.0: languageName: node linkType: hard -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": +"safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 languageName: node linkType: hard -"sass-lookup@npm:^3.0.0": - version: 3.0.0 - resolution: "sass-lookup@npm:3.0.0" - dependencies: - commander: ^2.16.0 - bin: - sass-lookup: bin/cli.js - checksum: fd4bf1ad9c54111617dec30dd90aff083e87c96aef50aff6cec443ad2fbbfa65da09f6e67a7e5ef99fa39dff65c937dc7358f18d319e083c6031f21def85ce6d +"seedrandom@npm:^3.0.5": + version: 3.0.5 + resolution: "seedrandom@npm:3.0.5" + checksum: 728b56bc3bc1b9ddeabd381e449b51cb31bdc0aa86e27fcd0190cea8c44613d5bcb2f6bb63ed79f78180cbe791c20b8ec31a9627f7b7fc7f476fd2bdb7e2da9f languageName: node linkType: hard @@ -3637,13 +2814,6 @@ resolve@^1.19.0: languageName: node linkType: hard -"setprototypeof@npm:1.1.1": - version: 1.1.1 - resolution: "setprototypeof@npm:1.1.1" - checksum: a8bee29c1c64c245d460ce53f7460af8cbd0aceac68d66e5215153992cc8b3a7a123416353e0c642060e85cc5fd4241c92d1190eec97eda0dcb97436e8fcca3b - languageName: node - linkType: hard - "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -3660,7 +2830,7 @@ resolve@^1.19.0: languageName: node linkType: hard -"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2": +"signal-exit@npm:^3.0.0": version: 3.0.3 resolution: "signal-exit@npm:3.0.3" checksum: f0169d3f1263d06df32ca072b0bf33b34c6f8f0341a7a1621558a2444dfbe8f5fec76b35537fcc6f0bc4944bdb5336fe0bdcf41a5422c4e45a1dba3f45475e6c @@ -3731,13 +2901,6 @@ resolve@^1.19.0: languageName: node linkType: hard -"source-map-js@npm:^0.6.2": - version: 0.6.2 - resolution: "source-map-js@npm:0.6.2" - checksum: 9c8151a29e00fd8d3ba87709fdf9a9ce48313d653f4a29a39b4ae53d346ac79e005de624796ff42eff55cbaf26d2e87f4466001ca87831d400d818c5cf146a0e - languageName: node - linkType: hard - "source-map-support@npm:^0.5.19": version: 0.5.19 resolution: "source-map-support@npm:0.5.19" @@ -3748,7 +2911,7 @@ resolve@^1.19.0: languageName: node linkType: hard -"source-map@npm:^0.6.0, source-map@npm:~0.6.1": +"source-map@npm:^0.6.0": version: 0.6.1 resolution: "source-map@npm:0.6.1" checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 @@ -3780,13 +2943,6 @@ resolve@^1.19.0: languageName: node linkType: hard -"statuses@npm:>= 1.5.0 < 2": - version: 1.5.0 - resolution: "statuses@npm:1.5.0" - checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c - languageName: node - linkType: hard - "string-width@npm:^1.0.1": version: 1.0.2 resolution: "string-width@npm:1.0.2" @@ -3837,17 +2993,6 @@ resolve@^1.19.0: languageName: node linkType: hard -"stringify-object@npm:^3.2.1": - version: 3.3.0 - resolution: "stringify-object@npm:3.3.0" - dependencies: - get-own-enumerable-property-symbols: ^3.0.0 - is-obj: ^1.0.1 - is-regexp: ^1.0.0 - checksum: 6827a3f35975cfa8572e8cd3ed4f7b262def260af18655c6fde549334acdac49ddba69f3c861ea5a6e9c5a4990fe4ae870b9c0e6c31019430504c94a83b7a154 - languageName: node - linkType: hard - "strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1": version: 3.0.1 resolution: "strip-ansi@npm:3.0.1" @@ -3882,25 +3027,6 @@ resolve@^1.19.0: languageName: node linkType: hard -"strip-json-comments@npm:~2.0.1": - version: 2.0.1 - resolution: "strip-json-comments@npm:2.0.1" - checksum: 1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1 - languageName: node - linkType: hard - -"stylus-lookup@npm:^3.0.1": - version: 3.0.2 - resolution: "stylus-lookup@npm:3.0.2" - dependencies: - commander: ^2.8.1 - debug: ^4.1.0 - bin: - stylus-lookup: bin/cli.js - checksum: 460e9b6e7e662e2cf98d41ee670cb5da9ec8b8dbc1d4574de29ac422c632d5c7933772822fc12792f2ee9f9c2f62b3f60ed5850690e7c780ab7b6f07010199e4 - languageName: node - linkType: hard - "supports-color@npm:^5.3.0": version: 5.5.0 resolution: "supports-color@npm:5.5.0" @@ -3933,16 +3059,9 @@ resolve@^1.19.0: languageName: node linkType: hard -"tapable@npm:^2.2.0": - version: 2.2.0 - resolution: "tapable@npm:2.2.0" - checksum: 5a7e31ddd2400d524b68e7ba0373e492ba52b321b8e1eb15b65956e9c1b9ba90dd175210a1318b6752538cbe3b284f4a7218a714be942aeeb812623c243aea25 - languageName: node - linkType: hard - "tar@npm:^6.0.2, tar@npm:^6.1.0": - version: 6.1.8 - resolution: "tar@npm:6.1.8" + version: 6.1.10 + resolution: "tar@npm:6.1.10" dependencies: chownr: ^2.0.0 fs-minipass: ^2.0.0 @@ -3950,14 +3069,7 @@ resolve@^1.19.0: minizlib: ^2.1.1 mkdirp: ^1.0.3 yallist: ^4.0.0 - checksum: f5aa41340d3415ef6f19ed0ee620db1f7cb9ea3f5ea7bfef5ea199bdb39e978d11f31d347231193e0d9262f81de3e358aa3dda6ed0c1909f22a8ce3e3a743dad - languageName: node - linkType: hard - -"temp@npm:~0.4.0": - version: 0.4.0 - resolution: "temp@npm:0.4.0" - checksum: 8b83f98833b7f6cd03a1f523d17f8b06fe687cbdfc5654ae41edacdf640e71f1057c3cf2534ac44e265834c1af6270d9a0b9baeee6b86ccb2ef379e43dbc0d0a + checksum: 9e7ba4abc81a3095a5fc7a3e97a9f753103f5ce884c52431613f281954ec83d690e58f1ccad3cdd9eacdea901431f96f5f879dddc421f6b231994f6e7de07e1f languageName: node linkType: hard @@ -3968,6 +3080,13 @@ resolve@^1.19.0: languageName: node linkType: hard +"tiny-emitter@npm:^2.1.0": + version: 2.1.0 + resolution: "tiny-emitter@npm:2.1.0" + checksum: fbcfb5145751a0e3b109507a828eb6d6d4501352ab7bb33eccef46e22e9d9ad3953158870a6966a59e57ab7c3f9cfac7cab8521db4de6a5e757012f4677df2dd + languageName: node + linkType: hard + "tiny-typed-emitter@npm:^2.0.3": version: 2.1.0 resolution: "tiny-typed-emitter@npm:2.1.0" @@ -3982,13 +3101,6 @@ resolve@^1.19.0: languageName: node linkType: hard -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 - languageName: node - linkType: hard - "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -3998,13 +3110,6 @@ resolve@^1.19.0: languageName: node linkType: hard -"toidentifier@npm:1.0.0": - version: 1.0.0 - resolution: "toidentifier@npm:1.0.0" - checksum: 199e6bfca1531d49b3506cff02353d53ec987c9ee10ee272ca6484ed97f1fc10fb77c6c009079ca16d5c5be4a10378178c3cacdb41ce9ec954c3297c74c6053e - languageName: node - linkType: hard - "toposort-class@npm:^1.0.1": version: 1.0.1 resolution: "toposort-class@npm:1.0.1" @@ -4053,15 +3158,6 @@ resolve@^1.19.0: languageName: node linkType: hard -"type-check@npm:~0.3.2": - version: 0.3.2 - resolution: "type-check@npm:0.3.2" - dependencies: - prelude-ls: ~1.1.2 - checksum: dd3b1495642731bc0e1fc40abe5e977e0263005551ac83342ecb6f4f89551d106b368ec32ad3fb2da19b3bd7b2d1f64330da2ea9176d8ddbfe389fb286eb5124 - languageName: node - linkType: hard - "type-fest@npm:^0.20.2": version: 0.20.2 resolution: "type-fest@npm:0.20.2" @@ -4076,23 +3172,10 @@ resolve@^1.19.0: languageName: node linkType: hard -"type-is@npm:~1.6.17": - version: 1.6.18 - resolution: "type-is@npm:1.6.18" - dependencies: - media-typer: 0.3.0 - mime-types: ~2.1.24 - checksum: 2c8e47675d55f8b4e404bcf529abdf5036c537a04c2b20177bcf78c9e3c1da69da3942b1346e6edb09e823228c0ee656ef0e033765ec39a70d496ef601a0c657 - languageName: node - linkType: hard - -"typescript@^3.9.5, typescript@^3.9.7": - version: 3.9.10 - resolution: "typescript@npm:3.9.10" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 46c842e2cd4797b88b66ef06c9c41dd21da48b95787072ccf39d5f2aa3124361bc4c966aa1c7f709fae0509614d76751455b5231b12dbb72eb97a31369e1ff92 +"typed-function@npm:^2.0.0": + version: 2.0.0 + resolution: "typed-function@npm:2.0.0" + checksum: 8abb39dff088706f454cd3fa3e884ed98b61f28fcae6ea8b0f3b83225ca130d0ee5ab20acc91f820b41773532f0fd4308e25b5b346c9ab6a626bd8b4e83c59dc languageName: node linkType: hard @@ -4106,16 +3189,6 @@ typescript@^4.3.5: languageName: node linkType: hard -"typescript@patch:typescript@^3.9.5#~builtin<compat/typescript>, typescript@patch:typescript@^3.9.7#~builtin<compat/typescript>": - version: 3.9.10 - resolution: "typescript@patch:typescript@npm%3A3.9.10#~builtin<compat/typescript>::version=3.9.10&hash=d8b4e7" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 8dcd46a8a2cb81198497f00c7721a34c914bf6b3241bf9687b868bdec9e59f1f44da41e7917cfc1dcabee4595229c73bab047f2d85c1aedacc0d1b526cc81534 - languageName: node - linkType: hard - "typescript@patch:typescript@^4.3.5#~builtin<compat/typescript>": version: 4.3.5 resolution: "typescript@patch:typescript@npm%3A4.3.5#~builtin<compat/typescript>::version=4.3.5&hash=d8b4e7" @@ -4133,13 +3206,6 @@ typescript@^4.3.5: languageName: node linkType: hard -"uniq@npm:^1.0.1": - version: 1.0.1 - resolution: "uniq@npm:1.0.1" - checksum: 8206535f83745ea83f9da7035f3b983fd6ed5e35b8ed7745441944e4065b616bc67cf0d0a23a86b40ee0074426f0607f0a138f9b78e124eb6a7a6a6966055709 - languageName: node - linkType: hard - "unique-filename@npm:^1.1.1": version: 1.1.1 resolution: "unique-filename@npm:1.1.1" @@ -4158,13 +3224,6 @@ typescript@^4.3.5: languageName: node linkType: hard -"unpipe@npm:1.0.0": - version: 1.0.0 - resolution: "unpipe@npm:1.0.0" - checksum: 4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 - languageName: node - linkType: hard - "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -4211,22 +3270,6 @@ typescript@^4.3.5: languageName: node linkType: hard -"walkdir@npm:^0.4.1": - version: 0.4.1 - resolution: "walkdir@npm:0.4.1" - checksum: 71045c21dc19aae3321f897b6e9e507cf8039202665c35a0b908eecccaf25636aab769b31cbd61ef8267237fe22fc316923a691ecc2d9d38840a15c59c0f2594 - languageName: node - linkType: hard - -"wcwidth@npm:^1.0.1": - version: 1.0.1 - resolution: "wcwidth@npm:1.0.1" - dependencies: - defaults: ^1.0.3 - checksum: 814e9d1ddcc9798f7377ffa448a5a3892232b9275ebb30a41b529607691c0491de47cba426e917a4d08ded3ee7e9ba2f3fe32e62ee3cd9c7d3bafb7754bd553c - languageName: node - linkType: hard - "which@npm:^2.0.1, which@npm:^2.0.2": version: 2.0.2 resolution: "which@npm:2.0.2" @@ -4256,7 +3299,7 @@ typescript@^4.3.5: languageName: node linkType: hard -"word-wrap@npm:^1.2.3, word-wrap@npm:~1.2.3": +"word-wrap@npm:^1.2.3": version: 1.2.3 resolution: "word-wrap@npm:1.2.3" checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f |