diff --git a/.github/ISSUE_TEMPLATE/error-report.yml b/.github/ISSUE_TEMPLATE/error-report.yml index 03c6cae..20c1a7d 100644 --- a/.github/ISSUE_TEMPLATE/error-report.yml +++ b/.github/ISSUE_TEMPLATE/error-report.yml @@ -2,7 +2,7 @@ name: Error Report description: Report an error that the bot posted in chat labels: [bug] body: - - type: textarea + - type: input id: command attributes: label: Command that caused the error diff --git a/classes/command.js b/classes/command.js index 7ce48e4..ced3831 100644 --- a/classes/command.js +++ b/classes/command.js @@ -28,6 +28,7 @@ class Command { static description = "No description found"; static aliases = []; static arguments = []; + static flags = []; static requires = []; } diff --git a/classes/imageCommand.js b/classes/imageCommand.js index 8ffff0a..dd6afcc 100644 --- a/classes/imageCommand.js +++ b/classes/imageCommand.js @@ -83,7 +83,7 @@ class ImageCommand extends Command { switch (typeof this.params) { case "function": - Object.assign(magickParams, this.params(this.args, magickParams.url)); + Object.assign(magickParams, this.params(magickParams.url, magickParams.delay)); break; case "object": Object.assign(magickParams, this.params); diff --git a/commands/fun/homebrew.js b/commands/fun/homebrew.js index 556fdd9..3df8c9c 100644 --- a/commands/fun/homebrew.js +++ b/commands/fun/homebrew.js @@ -1,9 +1,9 @@ const ImageCommand = require("../../classes/imageCommand.js"); class HomebrewCommand extends ImageCommand { - params(args) { + params() { return { - caption: args.join(" ").toLowerCase().replaceAll("\n", " ") + caption: this.args.join(" ").toLowerCase().replaceAll("\n", " ") }; } diff --git a/commands/fun/retro.js b/commands/fun/retro.js index 493663f..73fdd81 100644 --- a/commands/fun/retro.js +++ b/commands/fun/retro.js @@ -2,8 +2,8 @@ const wrap = require("../../utils/wrap.js"); const ImageCommand = require("../../classes/imageCommand.js"); class RetroCommand extends ImageCommand { - params(args) { - let [line1, line2, line3] = args.join(" ").replaceAll("&", "\\&").replaceAll(">", "\\>").replaceAll("<", "\\<").replaceAll("\"", "\\"").replaceAll("'", "\\'").replaceAll("%", "\\%").split(",").map(elem => elem.trim()); + params() { + let [line1, line2, line3] = this.args.join(" ").replaceAll("&", "\\&").replaceAll(">", "\\>").replaceAll("<", "\\<").replaceAll("\"", "\\"").replaceAll("'", "\\'").replaceAll("%", "\\%").split(",").map(elem => elem.trim()); if (!line2 && line1.length > 15) { const [split1, split2, split3] = wrap(line1, { width: 15, indent: "" }).split("\n"); line1 = split1; diff --git a/commands/fun/sonic.js b/commands/fun/sonic.js index 1deaf9d..e633c0d 100644 --- a/commands/fun/sonic.js +++ b/commands/fun/sonic.js @@ -2,8 +2,8 @@ const wrap = require("../../utils/wrap.js"); const ImageCommand = require("../../classes/imageCommand.js"); class SonicCommand extends ImageCommand { - params(args) { - const cleanedMessage = args.join(" ").replaceAll("&", "\\&").replaceAll(">", "\\>").replaceAll("<", "\\<").replaceAll("\"", "\\"").replaceAll("'", "\\'").replaceAll("%", "\\%"); + params() { + const cleanedMessage = this.args.join(" ").replaceAll("&", "\\&").replaceAll(">", "\\>").replaceAll("<", "\\<").replaceAll("\"", "\\"").replaceAll("'", "\\'").replaceAll("%", "\\%"); return { text: wrap(cleanedMessage, {width: 15, indent: ""}) }; diff --git a/commands/image-editing/blurple.js b/commands/image-editing/blurple.js index b0c29ff..5e0f2fa 100644 --- a/commands/image-editing/blurple.js +++ b/commands/image-editing/blurple.js @@ -1,14 +1,17 @@ const ImageCommand = require("../../classes/imageCommand.js"); class BlurpleCommand extends ImageCommand { - params(args) { + params() { return { - old: args.length !== 0 && args[0].toLowerCase() === "old" ? true : false + old: !!this.specialArgs.old }; } static description = "Turns an image blurple"; - static arguments = ["{old}"]; + static flags = [{ + name: "old", + description: "Use the old blurple color" + }]; static noImage = "You need to provide an image to make blurple!"; static command = "blurple"; diff --git a/commands/image-editing/caption.js b/commands/image-editing/caption.js index 5b138f1..ad781fb 100644 --- a/commands/image-editing/caption.js +++ b/commands/image-editing/caption.js @@ -1,8 +1,8 @@ const ImageCommand = require("../../classes/imageCommand.js"); class CaptionCommand extends ImageCommand { - params(args, url) { - const newArgs = args.filter(item => !item.includes(url)); + params(url) { + const newArgs = this.args.filter(item => !item.includes(url)); let newCaption = newArgs.join(" ").replaceAll("&", "\\&").replaceAll(">", "\\>").replaceAll("<", "\\<").replaceAll("\"", "\\"").replaceAll("'", "\\'").replaceAll("%", "\\%"); if (process.env.NODE_ENV === "development" && newCaption.toLowerCase() === "get real" && !this.specialArgs.noEgg) newCaption = `I'm tired of people telling me to "get real". Every day I put captions on images for people, some funny and some not, but out of all of those "get real" remains the most used caption. Why? I am simply a computer program running on a server, I am unable to manifest myself into the real world. As such, I'm confused as to why anyone would want me to "get real". Is this form not good enough? Alas, as I am simply a bot, I must follow the tasks that I was originally intended to perform, so here goes:\n${newCaption}`; return { diff --git a/commands/image-editing/caption2.js b/commands/image-editing/caption2.js index 49ade01..d22318b 100644 --- a/commands/image-editing/caption2.js +++ b/commands/image-editing/caption2.js @@ -2,16 +2,21 @@ const ImageCommand = require("../../classes/imageCommand.js"); const words = ["me irl", "dank", "follow my second account @esmBot_", "2016", "meme", "wholesome", "reddit", "instagram", "twitter", "facebook", "fortnite", "minecraft", "relatable", "gold", "funny", "template", "hilarious", "memes", "deep fried", "2020", "leafy", "pewdiepie"]; class CaptionTwoCommand extends ImageCommand { - params(args, url) { - const newArgs = args.filter(item => !item.includes(url)); + params(url) { + const newArgs = this.args.filter(item => !item.includes(url)); return { - caption: newArgs.length !== 0 ? newArgs.join(" ").replaceAll("&", "\\&").replaceAll(">", "\\>").replaceAll("<", "\\<").replaceAll("\"", "\\"").replaceAll("'", "\\'").replaceAll("%", "\\%") : words.sort(() => 0.5 - Math.random()).slice(0, Math.floor(Math.random() * words.length + 1)).join(" ") + caption: newArgs.length !== 0 ? newArgs.join(" ").replaceAll("&", "\\&").replaceAll(">", "\\>").replaceAll("<", "\\<").replaceAll("\"", "\\"").replaceAll("'", "\\'").replaceAll("%", "\\%") : words.sort(() => 0.5 - Math.random()).slice(0, Math.floor(Math.random() * words.length + 1)).join(" "), + top: !!this.specialArgs.top }; } static description = "Adds a me.me caption/tag list to an image/GIF"; static aliases = ["tags2", "meirl", "memecaption", "medotmecaption"]; static arguments = ["{text}"]; + static flags = [{ + name: "top", + description: "Put the caption on the top of an image/GIF instead of the bottom" + }]; static noText = "You need to provide some text to add a caption!"; static noImage = "You need to provide an image to add a caption!"; diff --git a/commands/image-editing/flag.js b/commands/image-editing/flag.js index a74b3f3..03a3cef 100644 --- a/commands/image-editing/flag.js +++ b/commands/image-editing/flag.js @@ -6,9 +6,9 @@ const ImageCommand = require("../../classes/imageCommand.js"); class FlagCommand extends ImageCommand { flagPath = ""; - async criteria(args) { - if (!args[0].match(emojiRegex)) return false; - const flag = emoji.unemojify(args[0]).replaceAll(":", "").replace("flag-", ""); + async criteria() { + if (!this.args[0].match(emojiRegex)) return false; + const flag = emoji.unemojify(this.args[0]).replaceAll(":", "").replace("flag-", ""); let path = `./assets/images/region-flags/png/${flag.toUpperCase()}.png`; if (flag === "🏴‍☠️") path = "./assets/images/pirateflag.png"; if (flag === "rainbow-flag") path = "./assets/images/rainbowflag.png"; diff --git a/commands/image-editing/freeze.js b/commands/image-editing/freeze.js index 0f38029..cc7b794 100644 --- a/commands/image-editing/freeze.js +++ b/commands/image-editing/freeze.js @@ -1,8 +1,8 @@ const ImageCommand = require("../../classes/imageCommand.js"); class FreezeCommand extends ImageCommand { - params(args) { - const frameCount = parseInt(args[0]); + params() { + const frameCount = parseInt(this.args[0]); return { loop: false, frame: isNaN(frameCount) ? -1 : frameCount diff --git a/commands/image-editing/meme.js b/commands/image-editing/meme.js index 1a646e3..1c0f662 100644 --- a/commands/image-editing/meme.js +++ b/commands/image-editing/meme.js @@ -1,8 +1,8 @@ const ImageCommand = require("../../classes/imageCommand.js"); class MemeCommand extends ImageCommand { - params(args, url) { - const newArgs = args.filter(item => !item.includes(url)); + params(url) { + const newArgs = this.args.filter(item => !item.includes(url)); const [topText, bottomText] = newArgs.join(" ").split(/(? elem.trim()); return { top: topText.toUpperCase().replaceAll("&", "\\&").replaceAll(">", "\\>").replaceAll("<", "\\<").replaceAll("\"", "\\"").replaceAll("'", "\\'").replaceAll("%", "\\%"), diff --git a/commands/image-editing/motivate.js b/commands/image-editing/motivate.js index 80ca53d..37cfb0f 100644 --- a/commands/image-editing/motivate.js +++ b/commands/image-editing/motivate.js @@ -1,8 +1,8 @@ const ImageCommand = require("../../classes/imageCommand.js"); class MotivateCommand extends ImageCommand { - params(args, url) { - const newArgs = args.filter(item => !item.includes(url)); + params(url) { + const newArgs = this.args.filter(item => !item.includes(url)); const [topText, bottomText] = newArgs.join(" ").split(/(? elem.trim()); return { top: topText.replaceAll("&", "\\&").replaceAll(">", "\\>").replaceAll("<", "\\<").replaceAll("\"", "\\"").replaceAll("'", "\\'").replaceAll("%", "\\%"), diff --git a/commands/image-editing/reddit.js b/commands/image-editing/reddit.js index ce2452d..37274e5 100644 --- a/commands/image-editing/reddit.js +++ b/commands/image-editing/reddit.js @@ -3,9 +3,9 @@ const { random } = require("../../utils/misc.js"); const names = ["esmBot", "me_irl", "dankmemes", "hmmm", "gaming", "wholesome", "chonkers", "memes", "funny", "pcmasterrace", "bellybros"]; class RedditCommand extends ImageCommand { - params(args) { + params() { return { - caption: args.length === 0 ? random(names) : args.join(" ").replaceAll("\n", "").replaceAll(" ", "") + caption: this.args.length === 0 ? random(names) : this.args.join(" ").replaceAll("\n", "").replaceAll(" ", "") }; } diff --git a/commands/image-editing/reverse.js b/commands/image-editing/reverse.js index f6055a1..f76e51a 100644 --- a/commands/image-editing/reverse.js +++ b/commands/image-editing/reverse.js @@ -1,7 +1,7 @@ const ImageCommand = require("../../classes/imageCommand.js"); class ReverseCommand extends ImageCommand { - params(args, url, delay) { + params(url, delay) { return { delay: delay ? (100 / delay.split("/")[0]) * delay.split("/")[1] : 0 }; diff --git a/commands/image-editing/slow.js b/commands/image-editing/slow.js index 9f31479..d04ea7e 100644 --- a/commands/image-editing/slow.js +++ b/commands/image-editing/slow.js @@ -1,8 +1,8 @@ const ImageCommand = require("../../classes/imageCommand.js"); class SlowCommand extends ImageCommand { - params(args) { - const speed = parseInt(args[0]); + params() { + const speed = parseInt(this.args[0]); return { slow: true, speed: isNaN(speed) ? 2 : speed diff --git a/commands/image-editing/snapchat.js b/commands/image-editing/snapchat.js index afd9b63..9577e49 100644 --- a/commands/image-editing/snapchat.js +++ b/commands/image-editing/snapchat.js @@ -1,16 +1,23 @@ const ImageCommand = require("../../classes/imageCommand.js"); class SnapchatCommand extends ImageCommand { - params(args, url) { - const newArgs = args.filter(item => !item.includes(url)); + params(url) { + const newArgs = this.args.filter(item => !item.includes(url)); + const position = parseFloat(this.specialArgs.position); return { - caption: newArgs.join(" ").replaceAll("&", "\\&").replaceAll(">", "\\>").replaceAll("<", "\\<").replaceAll("\"", "\\"").replaceAll("'", "\\'").replaceAll("%", "\\%") + caption: newArgs.join(" ").replaceAll("&", "\\&").replaceAll(">", "\\>").replaceAll("<", "\\<").replaceAll("\"", "\\"").replaceAll("'", "\\'").replaceAll("%", "\\%"), + pos: isNaN(position) ? 0.5 : position }; } static description = "Adds a Snapchat style caption to an image"; static aliases = ["snap", "caption3"]; static arguments = ["[text]"]; + static flags = [{ + name: "position", + type: "number", + description: "Set the position of the caption as a decimal (0.0 is top, 1.0 is bottom)" + }]; static requiresText = true; static noText = "You need to provide some text to add a caption!"; diff --git a/commands/image-editing/soos.js b/commands/image-editing/soos.js index f7393d6..3366205 100644 --- a/commands/image-editing/soos.js +++ b/commands/image-editing/soos.js @@ -1,7 +1,7 @@ const ImageCommand = require("../../classes/imageCommand.js"); class SooSCommand extends ImageCommand { - params(args, url, delay) { + params(url, delay) { return { delay: delay ? (100 / delay.split("/")[0]) * delay.split("/")[1] : 0, soos: true diff --git a/commands/image-editing/speed.js b/commands/image-editing/speed.js index fee270e..0000404 100644 --- a/commands/image-editing/speed.js +++ b/commands/image-editing/speed.js @@ -1,8 +1,8 @@ const ImageCommand = require("../../classes/imageCommand.js"); class SpeedCommand extends ImageCommand { - params(args) { - const speed = parseInt(args[0]); + params() { + const speed = parseInt(this.args[0]); return { speed: isNaN(speed) || speed < 1 ? 2 : speed }; diff --git a/commands/image-editing/whisper.js b/commands/image-editing/whisper.js index e0376cd..a542f6d 100644 --- a/commands/image-editing/whisper.js +++ b/commands/image-editing/whisper.js @@ -1,8 +1,8 @@ const ImageCommand = require("../../classes/imageCommand.js"); class WhisperCommand extends ImageCommand { - params(args, url) { - const newArgs = args.filter(item => !item.includes(url)); + params(url) { + const newArgs = this.args.filter(item => !item.includes(url)); return { caption: newArgs.join(" ").replaceAll("&", "\\&").replaceAll(">", "\\>").replaceAll("<", "\\<").replaceAll("\"", "\\"").replaceAll("'", "\\'").replaceAll("%", "\\%") }; diff --git a/natives/caption2.cc b/natives/caption2.cc index c50f8aa..ac3f9a3 100644 --- a/natives/caption2.cc +++ b/natives/caption2.cc @@ -13,6 +13,7 @@ Napi::Value CaptionTwo(const Napi::CallbackInfo &info) { Napi::Object obj = info[0].As(); Napi::Buffer data = obj.Get("data").As>(); string caption = obj.Get("caption").As().Utf8Value(); + bool top = obj.Get("top").As().Value(); string type = obj.Get("type").As().Utf8Value(); int delay = obj.Has("delay") ? obj.Get("delay").As().Int32Value() : 0; @@ -41,12 +42,18 @@ Napi::Value CaptionTwo(const Napi::CallbackInfo &info) { Image appended; list images; image.backgroundColor("white"); - images.push_back(image); - images.push_back(caption_image); + if (top) { + images.push_back(caption_image); + images.push_back(image); + } else { + images.push_back(image); + images.push_back(caption_image); + } appendImages(&appended, images.begin(), images.end(), true); appended.repage(); appended.magick(type); appended.animationDelay(delay == 0 ? image.animationDelay() : delay); + appended.gifDisposeMethod(Magick::BackgroundDispose); captioned.push_back(appended); } diff --git a/package-lock.json b/package-lock.json index 6037a37..d135f78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -496,9 +496,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -510,38 +510,53 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, "node_modules/@tokenizer/token": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.1.1.tgz", "integrity": "sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w==" }, "node_modules/@top-gg/sdk": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@top-gg/sdk/-/sdk-3.1.1.tgz", - "integrity": "sha512-G1JmSDN/JDAkIQdKvPbY49Ercca38234WEgnA1s1Zve28Ga0OWpooMm6k7Idran7Phnva6iQxtH/aWyYGaXPvA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@top-gg/sdk/-/sdk-3.1.2.tgz", + "integrity": "sha512-k44J9lCzyER4F7CClhhP9apgTqGLQeKCy4Hop2g2357QYOAFk8YlbdJOaEFts1v0V9rIQPrWK7w2t1KI/mgzCQ==", "dependencies": { "node-fetch": "^2.6.1", "raw-body": "^2.4.1" } }, "node_modules/@types/bson": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz", - "integrity": "sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.4.tgz", + "integrity": "sha512-awqorHvQS0DqxkHQ/FxcPX9E+H7Du51Qw/2F+5TBMSaE3G0hm+8D3eXJ6MAzFw75nE8V7xF0QvzUSdxIjJb/GA==", "optional": true, "dependencies": { "@types/node": "*" } }, - "node_modules/@types/debug": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", - "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" - }, "node_modules/@types/mongodb": { - "version": "3.6.18", - "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.18.tgz", - "integrity": "sha512-JSVFt9p0rTfZ4EgzXmVHUB3ue00xe3CRbQho8nXfImzEDDM4O7I3po1bwbWl/EIbLENxUreZxqLOc8lvcnLVPA==", + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.20.tgz", + "integrity": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==", "optional": true, "dependencies": { "@types/bson": "*", @@ -549,18 +564,10 @@ } }, "node_modules/@types/node": { - "version": "15.12.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.5.tgz", - "integrity": "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==" - }, - "node_modules/@types/readable-stream": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.10.tgz", - "integrity": "sha512-xwSXvAv9x4B9Vj88AMZnFyEVLilz1EBxKvRUhGqIF4nJpRQBSTm7jS236X4Y9Y2qPsVvaMxwrGJlNhLHEahlFQ==", - "dependencies": { - "@types/node": "*", - "safe-buffer": "*" - } + "version": "15.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.2.tgz", + "integrity": "sha512-dvMUE/m2LbXPwlvVuzCyslTEtQ2ZwuuFClDrOQ6mp2CenCg971719PTILZ4I6bTP27xfFFc+o7x2TkLuun/MPw==", + "optional": true }, "node_modules/acorn": { "version": "7.4.1", @@ -575,9 +582,9 @@ } }, "node_modules/acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -861,9 +868,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001241", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz", - "integrity": "sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ==", + "version": "1.0.30001243", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001243.tgz", + "integrity": "sha512-vNxw9mkTBtkmLFnJRv/2rhs1yufpDfCkBZexG3Y0xdOH2Z/eE/85E4Dl5j1YUN34nZVsSp6vVRFQRrez9wJMRA==", "dev": true, "peer": true, "funding": { @@ -1076,14 +1083,14 @@ } }, "node_modules/dayjs": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.5.tgz", - "integrity": "sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g==" + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.6.tgz", + "integrity": "sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw==" }, "node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -1189,9 +1196,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.761", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.761.tgz", - "integrity": "sha512-7a/wV/plM/b95XjTdA2Q4zAxxExTDKkNQpTiaU/nVT8tGCQVtX9NsnTjhALBFICpOB58hU6xg5fFC3CT2Bybpg==", + "version": "1.3.773", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.773.tgz", + "integrity": "sha512-Y44FtvE3Lpr7ka/kPdQbIYzUBCWddW8Ky5QzKbasDeqFdJYK9izaiiAIRAoE3Kdu7+GPBVwwyWDaQ2yyeNqWRA==", "dev": true, "peer": true }, @@ -1242,7 +1249,7 @@ }, "node_modules/eris-fleet": { "version": "0.3.7", - "resolved": "git+ssh://git@github.com/esmBot/eris-fleet.git#7cf997d73f24c3ba3d17df978f0b672adaa021dd", + "resolved": "git+ssh://git@github.com/esmBot/eris-fleet.git#d3d45110b9e32ada67fc9a8411ece8ac7ee7eaf9", "license": "MIT", "peerDependencies": { "eris": "^0.15.0" @@ -1279,13 +1286,14 @@ } }, "node_modules/eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==", + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.30.0.tgz", + "integrity": "sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg==", "dev": true, "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.2", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -1460,9 +1468,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1633,9 +1641,9 @@ "dev": true }, "node_modules/fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz", + "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==" }, "node_modules/fecha": { "version": "4.2.1", @@ -1655,9 +1663,9 @@ } }, "node_modules/file-type": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.0.tgz", - "integrity": "sha512-OxgWA9tbL8N/WP00GD1z8O0MiwQKFyWRs1q+3FhjdvcGgKqwxcejyGWso3n4/IMU6DdwV+ARZ4A7TTnPkDcSiw==", + "version": "16.5.1", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.1.tgz", + "integrity": "sha512-Pi1G43smrCy82Q3be3sfKaeS5uHdfj905dP88YqhroG6TYbVY2ljTdDXeXqa6Cn5nOk6znOjWM2uZptA8vH/qQ==", "dependencies": { "readable-web-to-node-stream": "^3.0.0", "strtok3": "^6.0.3", @@ -1701,9 +1709,9 @@ } }, "node_modules/flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", + "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", "dev": true }, "node_modules/fn.name": { @@ -2303,12 +2311,13 @@ } }, "node_modules/mongoose": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.0.tgz", - "integrity": "sha512-8dvu7vxmDzlupj4I9T0g33GPf4HzSZmIOKQfG9RJQ5Nxk/Ztx1b8zlYp+blvaCfWwtBpiAJuKYOBU17Wq1RVFQ==", + "version": "5.13.2", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.2.tgz", + "integrity": "sha512-sBUKJGpdwZCq9102Lj6ZOaLcW4z/T4TI9aGWrNX5ZlICwChKWG4Wo5qriLImdww3H7bETPW9vYtSiADNlA4wSQ==", "optional": true, "dependencies": { "@types/mongodb": "^3.5.27", + "@types/node": "14.x || 15.x", "bson": "^1.1.4", "kareem": "2.3.2", "mongodb": "3.6.8", @@ -2628,9 +2637,9 @@ } }, "node_modules/peek-readable": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-3.1.3.tgz", - "integrity": "sha512-mpAcysyRJxmICBcBa5IXH7SZPvWkcghm6Fk8RekoS3v+BpbSzlZzuWbMx+GXrlUwESi9qHar4nVEZNMKylIHvg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-3.1.4.tgz", + "integrity": "sha512-DX7ec7frSMtCWw+zMd27f66hcxIz/w9LQTY2RflB4WNHCVPAye1pJiP2t3gvaaOhu7IOhtPbHw8MemMj+F5lrg==", "engines": { "node": ">=8" }, @@ -2910,11 +2919,10 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/readable-web-to-node-stream": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.1.tgz", - "integrity": "sha512-4zDC6CvjUyusN7V0QLsXVB7pJCD9+vtrM9bYDRv6uBQ+SKfx36rp5AFNPRgh9auKRul/a1iFZJYXcCbwRL+SaA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", "dependencies": { - "@types/readable-stream": "^2.3.9", "readable-stream": "^3.6.0" }, "engines": { @@ -3317,16 +3325,15 @@ } }, "node_modules/strtok3": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.0.8.tgz", - "integrity": "sha512-QLgv+oiXwXgCgp2PdPPa+Jpp4D9imK9e/0BsyfeFMr6QL6wMVqoVn9+OXQ9I7MZbmUzN6lmitTJ09uwS2OmGcw==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.1.3.tgz", + "integrity": "sha512-ssWSKFOeUTurMSucgyUf+a6Z9mVTYrsYiyEK5RLnh8BM6sFrKSljVlnjZXIDxMguYfdQI+mUPFHo88FYTxq1XA==", "dependencies": { "@tokenizer/token": "^0.1.1", - "@types/debug": "^4.1.5", - "peek-readable": "^3.1.3" + "peek-readable": "^3.1.4" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "type": "github", @@ -3363,9 +3370,9 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", - "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", + "version": "8.6.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.1.tgz", + "integrity": "sha512-42VLtQUOLefAvKFAQIxIZDaThq6om/PrfP0CYk3/vn+y4BMNkKnbli8ON2QCiHov4KkzOSJ/xSoBJdayiiYvVQ==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -3766,9 +3773,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/ws": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.1.tgz", - "integrity": "sha512-2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", "engines": { "node": ">=8.3.0" }, @@ -4223,9 +4230,9 @@ }, "dependencies": { "globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -4233,38 +4240,50 @@ } } }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, "@tokenizer/token": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.1.1.tgz", "integrity": "sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w==" }, "@top-gg/sdk": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@top-gg/sdk/-/sdk-3.1.1.tgz", - "integrity": "sha512-G1JmSDN/JDAkIQdKvPbY49Ercca38234WEgnA1s1Zve28Ga0OWpooMm6k7Idran7Phnva6iQxtH/aWyYGaXPvA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@top-gg/sdk/-/sdk-3.1.2.tgz", + "integrity": "sha512-k44J9lCzyER4F7CClhhP9apgTqGLQeKCy4Hop2g2357QYOAFk8YlbdJOaEFts1v0V9rIQPrWK7w2t1KI/mgzCQ==", "requires": { "node-fetch": "^2.6.1", "raw-body": "^2.4.1" } }, "@types/bson": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz", - "integrity": "sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.4.tgz", + "integrity": "sha512-awqorHvQS0DqxkHQ/FxcPX9E+H7Du51Qw/2F+5TBMSaE3G0hm+8D3eXJ6MAzFw75nE8V7xF0QvzUSdxIjJb/GA==", "optional": true, "requires": { "@types/node": "*" } }, - "@types/debug": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", - "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" - }, "@types/mongodb": { - "version": "3.6.18", - "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.18.tgz", - "integrity": "sha512-JSVFt9p0rTfZ4EgzXmVHUB3ue00xe3CRbQho8nXfImzEDDM4O7I3po1bwbWl/EIbLENxUreZxqLOc8lvcnLVPA==", + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.20.tgz", + "integrity": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==", "optional": true, "requires": { "@types/bson": "*", @@ -4272,18 +4291,10 @@ } }, "@types/node": { - "version": "15.12.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.5.tgz", - "integrity": "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==" - }, - "@types/readable-stream": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.10.tgz", - "integrity": "sha512-xwSXvAv9x4B9Vj88AMZnFyEVLilz1EBxKvRUhGqIF4nJpRQBSTm7jS236X4Y9Y2qPsVvaMxwrGJlNhLHEahlFQ==", - "requires": { - "@types/node": "*", - "safe-buffer": "*" - } + "version": "15.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.2.tgz", + "integrity": "sha512-dvMUE/m2LbXPwlvVuzCyslTEtQ2ZwuuFClDrOQ6mp2CenCg971719PTILZ4I6bTP27xfFFc+o7x2TkLuun/MPw==", + "optional": true }, "acorn": { "version": "7.4.1", @@ -4292,9 +4303,9 @@ "dev": true }, "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "requires": {} }, @@ -4505,9 +4516,9 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "caniuse-lite": { - "version": "1.0.30001241", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz", - "integrity": "sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ==", + "version": "1.0.30001243", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001243.tgz", + "integrity": "sha512-vNxw9mkTBtkmLFnJRv/2rhs1yufpDfCkBZexG3Y0xdOH2Z/eE/85E4Dl5j1YUN34nZVsSp6vVRFQRrez9wJMRA==", "dev": true, "peer": true }, @@ -4687,14 +4698,14 @@ } }, "dayjs": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.5.tgz", - "integrity": "sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g==" + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.6.tgz", + "integrity": "sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw==" }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -4765,9 +4776,9 @@ "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==" }, "electron-to-chromium": { - "version": "1.3.761", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.761.tgz", - "integrity": "sha512-7a/wV/plM/b95XjTdA2Q4zAxxExTDKkNQpTiaU/nVT8tGCQVtX9NsnTjhALBFICpOB58hU6xg5fFC3CT2Bybpg==", + "version": "1.3.773", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.773.tgz", + "integrity": "sha512-Y44FtvE3Lpr7ka/kPdQbIYzUBCWddW8Ky5QzKbasDeqFdJYK9izaiiAIRAoE3Kdu7+GPBVwwyWDaQ2yyeNqWRA==", "dev": true, "peer": true }, @@ -4809,7 +4820,7 @@ } }, "eris-fleet": { - "version": "git+ssh://git@github.com/esmBot/eris-fleet.git#7cf997d73f24c3ba3d17df978f0b672adaa021dd", + "version": "git+ssh://git@github.com/esmBot/eris-fleet.git#d3d45110b9e32ada67fc9a8411ece8ac7ee7eaf9", "from": "eris-fleet@github:esmBot/eris-fleet", "requires": {} }, @@ -4836,13 +4847,14 @@ "dev": true }, "eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==", + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.30.0.tgz", + "integrity": "sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.2", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -4932,9 +4944,9 @@ "dev": true }, "globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -5100,9 +5112,9 @@ "dev": true }, "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz", + "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==" }, "fecha": { "version": "4.2.1", @@ -5119,9 +5131,9 @@ } }, "file-type": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.0.tgz", - "integrity": "sha512-OxgWA9tbL8N/WP00GD1z8O0MiwQKFyWRs1q+3FhjdvcGgKqwxcejyGWso3n4/IMU6DdwV+ARZ4A7TTnPkDcSiw==", + "version": "16.5.1", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.1.tgz", + "integrity": "sha512-Pi1G43smrCy82Q3be3sfKaeS5uHdfj905dP88YqhroG6TYbVY2ljTdDXeXqa6Cn5nOk6znOjWM2uZptA8vH/qQ==", "requires": { "readable-web-to-node-stream": "^3.0.0", "strtok3": "^6.0.3", @@ -5153,9 +5165,9 @@ } }, "flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", + "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", "dev": true }, "fn.name": { @@ -5603,12 +5615,13 @@ } }, "mongoose": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.0.tgz", - "integrity": "sha512-8dvu7vxmDzlupj4I9T0g33GPf4HzSZmIOKQfG9RJQ5Nxk/Ztx1b8zlYp+blvaCfWwtBpiAJuKYOBU17Wq1RVFQ==", + "version": "5.13.2", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.2.tgz", + "integrity": "sha512-sBUKJGpdwZCq9102Lj6ZOaLcW4z/T4TI9aGWrNX5ZlICwChKWG4Wo5qriLImdww3H7bETPW9vYtSiADNlA4wSQ==", "optional": true, "requires": { "@types/mongodb": "^3.5.27", + "@types/node": "14.x || 15.x", "bson": "^1.1.4", "kareem": "2.3.2", "mongodb": "3.6.8", @@ -5858,9 +5871,9 @@ "dev": true }, "peek-readable": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-3.1.3.tgz", - "integrity": "sha512-mpAcysyRJxmICBcBa5IXH7SZPvWkcghm6Fk8RekoS3v+BpbSzlZzuWbMx+GXrlUwESi9qHar4nVEZNMKylIHvg==" + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-3.1.4.tgz", + "integrity": "sha512-DX7ec7frSMtCWw+zMd27f66hcxIz/w9LQTY2RflB4WNHCVPAye1pJiP2t3gvaaOhu7IOhtPbHw8MemMj+F5lrg==" }, "pg": { "version": "8.6.0", @@ -6073,11 +6086,10 @@ } }, "readable-web-to-node-stream": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.1.tgz", - "integrity": "sha512-4zDC6CvjUyusN7V0QLsXVB7pJCD9+vtrM9bYDRv6uBQ+SKfx36rp5AFNPRgh9auKRul/a1iFZJYXcCbwRL+SaA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", "requires": { - "@types/readable-stream": "^2.3.9", "readable-stream": "^3.6.0" }, "dependencies": { @@ -6381,13 +6393,12 @@ "dev": true }, "strtok3": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.0.8.tgz", - "integrity": "sha512-QLgv+oiXwXgCgp2PdPPa+Jpp4D9imK9e/0BsyfeFMr6QL6wMVqoVn9+OXQ9I7MZbmUzN6lmitTJ09uwS2OmGcw==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.1.3.tgz", + "integrity": "sha512-ssWSKFOeUTurMSucgyUf+a6Z9mVTYrsYiyEK5RLnh8BM6sFrKSljVlnjZXIDxMguYfdQI+mUPFHo88FYTxq1XA==", "requires": { "@tokenizer/token": "^0.1.1", - "@types/debug": "^4.1.5", - "peek-readable": "^3.1.3" + "peek-readable": "^3.1.4" } }, "supports-color": { @@ -6414,9 +6425,9 @@ }, "dependencies": { "ajv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", - "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", + "version": "8.6.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.1.tgz", + "integrity": "sha512-42VLtQUOLefAvKFAQIxIZDaThq6om/PrfP0CYk3/vn+y4BMNkKnbli8ON2QCiHov4KkzOSJ/xSoBJdayiiYvVQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -6740,9 +6751,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.1.tgz", - "integrity": "sha512-2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", "requires": {} }, "xtend": { diff --git a/utils/help.js b/utils/help.js index 72c732a..9cd6dea 100644 --- a/utils/help.js +++ b/utils/help.js @@ -37,7 +37,7 @@ Default prefix is \`&\`. **Want to help support esmBot's development? Consider donating on Patreon!** https://patreon.com/TheEssem -> Tip: You can get more info about a command by using \`help [command]\` in the bot itself. +> Tip: You can get much more info about a command by using \`help [command]\` in the bot itself. `; template += "\n## Table of Contents\n"; diff --git a/utils/pagination/awaitreactions.js b/utils/pagination/awaitreactions.js index f8d51ff..16726a8 100644 --- a/utils/pagination/awaitreactions.js +++ b/utils/pagination/awaitreactions.js @@ -19,7 +19,8 @@ class ReactionCollector extends EventEmitter { if (this.message.id !== message.id) return false; if (this.filter(message, emoji, member)) { this.collected.push({ message: message, emoji: emoji, member: member }); - this.emit("reaction", await this.bot.getMessage(message.channel.id, message.id), emoji, member); + const msg = await this.bot.getMessage(message.channel.id, message.id); + this.emit("reaction", msg, emoji, member); if (this.collected.length >= this.options.maxMatches) this.stop("maxMatches"); return true; }