commit 18c50852622dc4ed7f12383271f75c2021d7e8a1 Author: ayeuhugyu Date: Sat Sep 9 14:20:07 2023 -0700 Pepperbot initializing diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..725699d --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.env +src/logs +node_modules/ +TheBubbles/ +src/commands/cbrowser.js \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..6cb688c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1733 @@ +{ + "name": "pepperbot", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "pepperbot", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "discord.js": "^14.13.0", + "discord.js-collector": "^1.8.9", + "dotenv": "^16.3.1", + "emoji-regex": "^10.2.1", + "regex": "^0.1.1" + } + }, + "node_modules/@discordjs/builders": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.6.5.tgz", + "integrity": "sha512-SdweyCs/+mHj+PNhGLLle7RrRFX9ZAhzynHahMCLqp5Zeq7np7XC6/mgzHc79QoVlQ1zZtOkTTiJpOZu5V8Ufg==", + "dependencies": { + "@discordjs/formatters": "^0.3.2", + "@discordjs/util": "^1.0.1", + "@sapphire/shapeshift": "^3.9.2", + "discord-api-types": "0.37.50", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.3", + "tslib": "^2.6.1" + }, + "engines": { + "node": ">=16.11.0" + } + }, + "node_modules/@discordjs/collection": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.5.3.tgz", + "integrity": "sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==", + "engines": { + "node": ">=16.11.0" + } + }, + "node_modules/@discordjs/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@discordjs/formatters": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@discordjs/formatters/-/formatters-0.3.2.tgz", + "integrity": "sha512-lE++JZK8LSSDRM5nLjhuvWhGuKiXqu+JZ/DsOR89DVVia3z9fdCJVcHF2W/1Zxgq0re7kCzmAJlCMMX3tetKpA==", + "dependencies": { + "discord-api-types": "0.37.50" + }, + "engines": { + "node": ">=16.11.0" + } + }, + "node_modules/@discordjs/rest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-2.0.1.tgz", + "integrity": "sha512-/eWAdDRvwX/rIE2tuQUmKaxmWeHmGealttIzGzlYfI4+a7y9b6ZoMp8BG/jaohs8D8iEnCNYaZiOFLVFLQb8Zg==", + "dependencies": { + "@discordjs/collection": "^1.5.3", + "@discordjs/util": "^1.0.1", + "@sapphire/async-queue": "^1.5.0", + "@sapphire/snowflake": "^3.5.1", + "@vladfrangu/async_event_emitter": "^2.2.2", + "discord-api-types": "0.37.50", + "magic-bytes.js": "^1.0.15", + "tslib": "^2.6.1", + "undici": "5.22.1" + }, + "engines": { + "node": ">=16.11.0" + } + }, + "node_modules/@discordjs/util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@discordjs/util/-/util-1.0.1.tgz", + "integrity": "sha512-d0N2yCxB8r4bn00/hvFZwM7goDcUhtViC5un4hPj73Ba4yrChLSJD8fy7Ps5jpTLg1fE9n4K0xBLc1y9WGwSsA==", + "engines": { + "node": ">=16.11.0" + } + }, + "node_modules/@discordjs/ws": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@discordjs/ws/-/ws-1.0.1.tgz", + "integrity": "sha512-avvAolBqN3yrSvdBPcJ/0j2g42ABzrv3PEL76e3YTp2WYMGH7cuspkjfSyNWaqYl1J+669dlLp+YFMxSVQyS5g==", + "dependencies": { + "@discordjs/collection": "^1.5.3", + "@discordjs/rest": "^2.0.1", + "@discordjs/util": "^1.0.1", + "@sapphire/async-queue": "^1.5.0", + "@types/ws": "^8.5.5", + "@vladfrangu/async_event_emitter": "^2.2.2", + "discord-api-types": "0.37.50", + "tslib": "^2.6.1", + "ws": "^8.13.0" + }, + "engines": { + "node": ">=16.11.0" + } + }, + "node_modules/@sapphire/async-queue": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.0.tgz", + "integrity": "sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sapphire/shapeshift": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.9.2.tgz", + "integrity": "sha512-YRbCXWy969oGIdqR/wha62eX8GNHsvyYi0Rfd4rNW6tSVVa8p0ELiMEuOH/k8rgtvRoM+EMV7Csqz77YdwiDpA==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sapphire/snowflake": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.1.tgz", + "integrity": "sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@types/bson": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.5.tgz", + "integrity": "sha512-vVLwMUqhYJSQ/WKcE60eFqcyuWse5fGH+NMAXHuKrUAPoryq3ATxk5o4bgYNtg5aOM4APVg7Hnb3ASqUYG0PKg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/mongodb": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.20.tgz", + "integrity": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==", + "dependencies": { + "@types/bson": "*", + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "20.5.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.9.tgz", + "integrity": "sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ==" + }, + "node_modules/@types/ws": { + "version": "8.5.5", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", + "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vladfrangu/async_event_emitter": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.2.2.tgz", + "integrity": "sha512-HIzRG7sy88UZjBJamssEczH5q7t5+axva19UbZLO6u0ySbYPrwzWiXBcC0WuHyhKKoeCyneH+FvYzKQq/zTtkQ==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/async-lock": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz", + "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/augment": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/augment/-/augment-3.2.1.tgz", + "integrity": "sha512-g5E3vuN1RvCvCqNLKeNOyvTO4RbpOyasUjc/e8dnK9ecg9J9nrSv8N2PxDdnaBXYgmiTAErnen2harV2euPpEA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, + "node_modules/bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + }, + "node_modules/bson": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", + "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/colors": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", + "integrity": "sha512-XjsuUwpDeY98+yz959OlUK6m7mLBM+1MEG5oaenfuQnNnrQk1WvtcvFgN3FNDP3f2NmZ211t0mNEfSEN1h0eIg==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/denque": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/discord-api-types": { + "version": "0.37.50", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.50.tgz", + "integrity": "sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==" + }, + "node_modules/discord.js": { + "version": "14.13.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.13.0.tgz", + "integrity": "sha512-Kufdvg7fpyTEwANGy9x7i4od4yu5c6gVddGi5CKm4Y5a6sF0VBODObI3o0Bh7TGCj0LfNT8Qp8z04wnLFzgnbA==", + "dependencies": { + "@discordjs/builders": "^1.6.5", + "@discordjs/collection": "^1.5.3", + "@discordjs/formatters": "^0.3.2", + "@discordjs/rest": "^2.0.1", + "@discordjs/util": "^1.0.1", + "@discordjs/ws": "^1.0.1", + "@sapphire/snowflake": "^3.5.1", + "@types/ws": "^8.5.5", + "discord-api-types": "0.37.50", + "fast-deep-equal": "^3.1.3", + "lodash.snakecase": "^4.1.1", + "tslib": "^2.6.1", + "undici": "5.22.1", + "ws": "^8.13.0" + }, + "engines": { + "node": ">=16.11.0" + } + }, + "node_modules/discord.js-collector": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/discord.js-collector/-/discord.js-collector-1.8.9.tgz", + "integrity": "sha512-7+2g3pZPDGpJQwBtgzzO2osAVCfzHniWtTJjxSjVXM/nl8DljB/oEqi33XZaaFlimvHk0WK8pQOB0HTDrK/07A==", + "deprecated": "This library has no longer support, i will not maintenance this anymore, sorry for who use and like this project. I recommend each you re-do with your own code or migrate to another library who will keep supporting discord.js updates", + "dependencies": { + "async-lock": "^1.2.4", + "discord.js": "^12.3.1", + "mongoose": "^5.10.7", + "mquery": ">=3.2.3" + } + }, + "node_modules/discord.js-collector/node_modules/@discordjs/collection": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz", + "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==", + "deprecated": "no longer supported" + }, + "node_modules/discord.js-collector/node_modules/discord.js": { + "version": "12.5.3", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.3.tgz", + "integrity": "sha512-D3nkOa/pCkNyn6jLZnAiJApw2N9XrIsXUAdThf01i7yrEuqUmDGc7/CexVWwEcgbQR97XQ+mcnqJpmJ/92B4Aw==", + "deprecated": "no longer supported", + "dependencies": { + "@discordjs/collection": "^0.1.6", + "@discordjs/form-data": "^3.0.1", + "abort-controller": "^3.0.0", + "node-fetch": "^2.6.1", + "prism-media": "^1.2.9", + "setimmediate": "^1.0.5", + "tweetnacl": "^1.0.3", + "ws": "^7.4.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/discord.js-collector/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, + "node_modules/ebnf-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz", + "integrity": "sha512-urvSxVQ6XJcoTpc+/x2pWhhuOX4aljCNQpwzw+ifZvV1andZkAmiJc3Rq1oGEAQmcjiLceyMXOy1l8ms8qs2fQ==" + }, + "node_modules/emoji-regex": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.2.1.tgz", + "integrity": "sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==" + }, + "node_modules/escodegen": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.21.tgz", + "integrity": "sha512-BQL5g+BqyrM5HRAKt4Q4YuH9CqiEcIHWSJ8fg2PRNkGkXn/LgzeDCZzDDSX4UiljSAHgXaHgOZREQ2xOigbLzA==", + "dependencies": { + "esprima": "~1.0.2", + "estraverse": "~0.0.4" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.4.0" + }, + "optionalDependencies": { + "source-map": ">= 0.1.2" + } + }, + "node_modules/esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/estraverse": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz", + "integrity": "sha512-21DfBCsFJGb3HZr0vEBH1Wk1tGSbbzA8I/xtSSoy/pRtupHv0OgBmObcNGXM3ec6/pOXTOOUYY9/5bfluzz0sw==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/jison": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jison/-/jison-0.4.4.tgz", + "integrity": "sha512-8KfKaIIngog2VR5UfEmPhcK1i/2XbBzL5KZbuG8M0qLsYWnodWqq7x28XLsee0RazE0Z2OQAaG9/VCk7gi4VOA==", + "dependencies": { + "ebnf-parser": "0.1.x", + "escodegen": "0.0.21", + "esprima": "1.0.x", + "jison-lex": "0.2.x", + "JSONSelect": "0.4.0", + "lex-parser": "0.1.x", + "nomnom": "1.5.2" + }, + "bin": { + "jison": "lib/cli.js" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/jison-lex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/jison-lex/-/jison-lex-0.2.1.tgz", + "integrity": "sha512-WCNVPRxaTWdhwJAIrBsgkGT9n6H1yNR9Lfof5LUHaMul24ySrJ1SXbVPszZfs57jwXvASLWBpd0xpFEW2oIuVA==", + "dependencies": { + "lex-parser": "0.1.x", + "nomnom": "1.5.2" + }, + "bin": { + "jison-lex": "cli.js" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/JSONSelect": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", + "integrity": "sha512-VRLR3Su35MH+XV2lrvh9O7qWoug/TUyj9tLDjn9rtpUCNnILLrHjgd/tB0KrhugCxUpj3UqoLqfYb3fLJdIQQQ==", + "engines": { + "node": ">=0.4.7" + } + }, + "node_modules/kareem": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", + "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" + }, + "node_modules/lex": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/lex/-/lex-1.7.4.tgz", + "integrity": "sha512-9B1SLZjx8ZjYJx8AmlbVjeqYDllU7PCWwE/VYgq4DJ5gePjbzgdms+MC7tsj1tdyRp7O6BfXTTDHJnPiiPV0Pw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, + "node_modules/lex-parser": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz", + "integrity": "sha512-DuAEISsr1H4LOpmFLkyMc8YStiRWZCO8hMsoXAXSbgyfvs2WQhSt0+/FBv3ZU/JBFZMGcE+FWzEBSzwUU7U27w==" + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" + }, + "node_modules/magic-bytes.js": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/magic-bytes.js/-/magic-bytes.js-1.0.15.tgz", + "integrity": "sha512-bpRmwbRHqongRhA+mXzbLWjVy7ylqmfMBYaQkSs6pac0z6hBTvsgrH0r4FBYd/UYVJBmS6Rp/O+oCCQVLzKV1g==" + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mongodb": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.4.tgz", + "integrity": "sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==", + "dependencies": { + "bl": "^2.2.1", + "bson": "^1.1.4", + "denque": "^1.4.1", + "optional-require": "^1.1.8", + "safe-buffer": "^5.1.2" + }, + "engines": { + "node": ">=4" + }, + "optionalDependencies": { + "saslprep": "^1.0.0" + }, + "peerDependenciesMeta": { + "aws4": { + "optional": true + }, + "bson-ext": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "mongodb-extjson": { + "optional": true + }, + "snappy": { + "optional": true + } + } + }, + "node_modules/mongodb/node_modules/optional-require": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz", + "integrity": "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==", + "dependencies": { + "require-at": "^1.0.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mongoose": { + "version": "5.13.20", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.20.tgz", + "integrity": "sha512-TjGFa/XnJYt+wLmn8y9ssjyO2OhBMeEBtOHb9iJM16EWu2Du6L1Q6zSiEK2ziyYQM8agb4tumNIQFzqbxId7MA==", + "dependencies": { + "@types/bson": "1.x || 4.0.x", + "@types/mongodb": "^3.5.27", + "bson": "^1.1.4", + "kareem": "2.3.2", + "mongodb": "3.7.4", + "mongoose-legacy-pluralize": "1.0.2", + "mpath": "0.8.4", + "mquery": "3.2.5", + "ms": "2.1.2", + "optional-require": "1.0.x", + "regexp-clone": "1.0.0", + "safe-buffer": "5.2.1", + "sift": "13.5.2", + "sliced": "1.0.1" + }, + "engines": { + "node": ">=4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mongoose-legacy-pluralize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==", + "peerDependencies": { + "mongoose": "*" + } + }, + "node_modules/mongoose/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/mongoose/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/mongoose/node_modules/mquery": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz", + "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==", + "dependencies": { + "bluebird": "3.5.1", + "debug": "3.1.0", + "regexp-clone": "^1.0.0", + "safe-buffer": "5.1.2", + "sliced": "1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mongoose/node_modules/mquery/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/mpath": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz", + "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "dependencies": { + "debug": "4.x" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/nomnom": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", + "integrity": "sha512-fiVbT7BqxiQqjlR9U3FDGOSERFCKoXVCdxV2FwZuNN7/cmJ42iQx35nUFOAFDcyvemu9Adp+IlsCGlKQYLmBKw==", + "deprecated": "Package no longer supported. Contact support@npmjs.com for more info.", + "dependencies": { + "colors": "0.5.x", + "underscore": "1.1.x" + }, + "engines": { + "node": "*" + } + }, + "node_modules/optional-require": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz", + "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/prism-media": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.5.tgz", + "integrity": "sha512-IQdl0Q01m4LrkN1EGIE9lphov5Hy7WWlH6ulf5QdGePLlPas9p2mhgddTEHrlaXYjjFToM1/rWuwF37VF4taaA==", + "peerDependencies": { + "@discordjs/opus": ">=0.8.0 <1.0.0", + "ffmpeg-static": "^5.0.2 || ^4.2.7 || ^3.0.0 || ^2.4.0", + "node-opus": "^0.3.3", + "opusscript": "^0.0.8" + }, + "peerDependenciesMeta": { + "@discordjs/opus": { + "optional": true + }, + "ffmpeg-static": { + "optional": true + }, + "node-opus": { + "optional": true + }, + "opusscript": { + "optional": true + } + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/regex": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/regex/-/regex-0.1.1.tgz", + "integrity": "sha512-aZ/uNt2gUw9aD0K18LFAHdOUKsHL2fSny9YLqcxDfLmZOTK8mZxueHsAikh3UjPGZlmr4J3sdCNMPTp1wPR5hA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "augment": "3.2.1", + "jison": "0.4.4", + "lex": "1.7.4", + "statemachines": "0.1.0" + } + }, + "node_modules/regexp-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + }, + "node_modules/require-at": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz", + "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "dependencies": { + "sparse-bitfield": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/sift": { + "version": "13.5.2", + "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", + "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" + }, + "node_modules/sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==" + }, + "node_modules/sorted-array": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/sorted-array/-/sorted-array-1.1.0.tgz", + "integrity": "sha512-jZgZDuFkeb3MJ9dE88/vlK7IB4C1Fip5oyCgabmxk8885dQP+zfZAq88RWzD+4KUskhHETVmDkMtERzRclI6fg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "optional": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "optional": true, + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/statemachines": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/statemachines/-/statemachines-0.1.0.tgz", + "integrity": "sha512-RYZMSj20+WOobiIiBkCPUlZlJlnzPwzJ5DR6KA91RmxTBbe7EDB+ISNd2jU7QcI08BubqgL3bHFRhiL/KR3lYQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "augment": "3.2.1", + "sorted-array": "1.1.0" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/ts-mixer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.3.tgz", + "integrity": "sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ==" + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/underscore": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", + "integrity": "sha512-w4QtCHoLBXw1mjofIDoMyexaEdWGMedWNDhlWTtT1V1lCRqi65Pnoygkh6+WRdr+Bm8ldkBNkNeCsXGMlQS9HQ==", + "engines": { + "node": "*" + } + }, + "node_modules/undici": { + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz", + "integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==", + "dependencies": { + "busboy": "^1.6.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + }, + "dependencies": { + "@discordjs/builders": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.6.5.tgz", + "integrity": "sha512-SdweyCs/+mHj+PNhGLLle7RrRFX9ZAhzynHahMCLqp5Zeq7np7XC6/mgzHc79QoVlQ1zZtOkTTiJpOZu5V8Ufg==", + "requires": { + "@discordjs/formatters": "^0.3.2", + "@discordjs/util": "^1.0.1", + "@sapphire/shapeshift": "^3.9.2", + "discord-api-types": "0.37.50", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.3", + "tslib": "^2.6.1" + } + }, + "@discordjs/collection": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.5.3.tgz", + "integrity": "sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==" + }, + "@discordjs/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "@discordjs/formatters": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@discordjs/formatters/-/formatters-0.3.2.tgz", + "integrity": "sha512-lE++JZK8LSSDRM5nLjhuvWhGuKiXqu+JZ/DsOR89DVVia3z9fdCJVcHF2W/1Zxgq0re7kCzmAJlCMMX3tetKpA==", + "requires": { + "discord-api-types": "0.37.50" + } + }, + "@discordjs/rest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-2.0.1.tgz", + "integrity": "sha512-/eWAdDRvwX/rIE2tuQUmKaxmWeHmGealttIzGzlYfI4+a7y9b6ZoMp8BG/jaohs8D8iEnCNYaZiOFLVFLQb8Zg==", + "requires": { + "@discordjs/collection": "^1.5.3", + "@discordjs/util": "^1.0.1", + "@sapphire/async-queue": "^1.5.0", + "@sapphire/snowflake": "^3.5.1", + "@vladfrangu/async_event_emitter": "^2.2.2", + "discord-api-types": "0.37.50", + "magic-bytes.js": "^1.0.15", + "tslib": "^2.6.1", + "undici": "5.22.1" + } + }, + "@discordjs/util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@discordjs/util/-/util-1.0.1.tgz", + "integrity": "sha512-d0N2yCxB8r4bn00/hvFZwM7goDcUhtViC5un4hPj73Ba4yrChLSJD8fy7Ps5jpTLg1fE9n4K0xBLc1y9WGwSsA==" + }, + "@discordjs/ws": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@discordjs/ws/-/ws-1.0.1.tgz", + "integrity": "sha512-avvAolBqN3yrSvdBPcJ/0j2g42ABzrv3PEL76e3YTp2WYMGH7cuspkjfSyNWaqYl1J+669dlLp+YFMxSVQyS5g==", + "requires": { + "@discordjs/collection": "^1.5.3", + "@discordjs/rest": "^2.0.1", + "@discordjs/util": "^1.0.1", + "@sapphire/async-queue": "^1.5.0", + "@types/ws": "^8.5.5", + "@vladfrangu/async_event_emitter": "^2.2.2", + "discord-api-types": "0.37.50", + "tslib": "^2.6.1", + "ws": "^8.13.0" + } + }, + "@sapphire/async-queue": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.0.tgz", + "integrity": "sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==" + }, + "@sapphire/shapeshift": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.9.2.tgz", + "integrity": "sha512-YRbCXWy969oGIdqR/wha62eX8GNHsvyYi0Rfd4rNW6tSVVa8p0ELiMEuOH/k8rgtvRoM+EMV7Csqz77YdwiDpA==", + "requires": { + "fast-deep-equal": "^3.1.3", + "lodash": "^4.17.21" + } + }, + "@sapphire/snowflake": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.1.tgz", + "integrity": "sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA==" + }, + "@types/bson": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.5.tgz", + "integrity": "sha512-vVLwMUqhYJSQ/WKcE60eFqcyuWse5fGH+NMAXHuKrUAPoryq3ATxk5o4bgYNtg5aOM4APVg7Hnb3ASqUYG0PKg==", + "requires": { + "@types/node": "*" + } + }, + "@types/mongodb": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.20.tgz", + "integrity": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==", + "requires": { + "@types/bson": "*", + "@types/node": "*" + } + }, + "@types/node": { + "version": "20.5.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.9.tgz", + "integrity": "sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ==" + }, + "@types/ws": { + "version": "8.5.5", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", + "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", + "requires": { + "@types/node": "*" + } + }, + "@vladfrangu/async_event_emitter": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.2.2.tgz", + "integrity": "sha512-HIzRG7sy88UZjBJamssEczH5q7t5+axva19UbZLO6u0ySbYPrwzWiXBcC0WuHyhKKoeCyneH+FvYzKQq/zTtkQ==" + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "async-lock": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz", + "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "augment": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/augment/-/augment-3.2.1.tgz", + "integrity": "sha512-g5E3vuN1RvCvCqNLKeNOyvTO4RbpOyasUjc/e8dnK9ecg9J9nrSv8N2PxDdnaBXYgmiTAErnen2harV2euPpEA==" + }, + "bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + }, + "bson": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", + "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==" + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "requires": { + "streamsearch": "^1.1.0" + } + }, + "colors": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", + "integrity": "sha512-XjsuUwpDeY98+yz959OlUK6m7mLBM+1MEG5oaenfuQnNnrQk1WvtcvFgN3FNDP3f2NmZ211t0mNEfSEN1h0eIg==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "denque": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" + }, + "discord-api-types": { + "version": "0.37.50", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.50.tgz", + "integrity": "sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==" + }, + "discord.js": { + "version": "14.13.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.13.0.tgz", + "integrity": "sha512-Kufdvg7fpyTEwANGy9x7i4od4yu5c6gVddGi5CKm4Y5a6sF0VBODObI3o0Bh7TGCj0LfNT8Qp8z04wnLFzgnbA==", + "requires": { + "@discordjs/builders": "^1.6.5", + "@discordjs/collection": "^1.5.3", + "@discordjs/formatters": "^0.3.2", + "@discordjs/rest": "^2.0.1", + "@discordjs/util": "^1.0.1", + "@discordjs/ws": "^1.0.1", + "@sapphire/snowflake": "^3.5.1", + "@types/ws": "^8.5.5", + "discord-api-types": "0.37.50", + "fast-deep-equal": "^3.1.3", + "lodash.snakecase": "^4.1.1", + "tslib": "^2.6.1", + "undici": "5.22.1", + "ws": "^8.13.0" + } + }, + "discord.js-collector": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/discord.js-collector/-/discord.js-collector-1.8.9.tgz", + "integrity": "sha512-7+2g3pZPDGpJQwBtgzzO2osAVCfzHniWtTJjxSjVXM/nl8DljB/oEqi33XZaaFlimvHk0WK8pQOB0HTDrK/07A==", + "requires": { + "async-lock": "^1.2.4", + "discord.js": "^12.3.1", + "mongoose": "^5.10.7", + "mquery": ">=3.2.3" + }, + "dependencies": { + "@discordjs/collection": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz", + "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==" + }, + "discord.js": { + "version": "12.5.3", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.3.tgz", + "integrity": "sha512-D3nkOa/pCkNyn6jLZnAiJApw2N9XrIsXUAdThf01i7yrEuqUmDGc7/CexVWwEcgbQR97XQ+mcnqJpmJ/92B4Aw==", + "requires": { + "@discordjs/collection": "^0.1.6", + "@discordjs/form-data": "^3.0.1", + "abort-controller": "^3.0.0", + "node-fetch": "^2.6.1", + "prism-media": "^1.2.9", + "setimmediate": "^1.0.5", + "tweetnacl": "^1.0.3", + "ws": "^7.4.4" + } + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "requires": {} + } + } + }, + "dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==" + }, + "ebnf-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz", + "integrity": "sha512-urvSxVQ6XJcoTpc+/x2pWhhuOX4aljCNQpwzw+ifZvV1andZkAmiJc3Rq1oGEAQmcjiLceyMXOy1l8ms8qs2fQ==" + }, + "emoji-regex": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.2.1.tgz", + "integrity": "sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==" + }, + "escodegen": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.21.tgz", + "integrity": "sha512-BQL5g+BqyrM5HRAKt4Q4YuH9CqiEcIHWSJ8fg2PRNkGkXn/LgzeDCZzDDSX4UiljSAHgXaHgOZREQ2xOigbLzA==", + "requires": { + "esprima": "~1.0.2", + "estraverse": "~0.0.4", + "source-map": ">= 0.1.2" + } + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==" + }, + "estraverse": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz", + "integrity": "sha512-21DfBCsFJGb3HZr0vEBH1Wk1tGSbbzA8I/xtSSoy/pRtupHv0OgBmObcNGXM3ec6/pOXTOOUYY9/5bfluzz0sw==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "jison": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jison/-/jison-0.4.4.tgz", + "integrity": "sha512-8KfKaIIngog2VR5UfEmPhcK1i/2XbBzL5KZbuG8M0qLsYWnodWqq7x28XLsee0RazE0Z2OQAaG9/VCk7gi4VOA==", + "requires": { + "ebnf-parser": "0.1.x", + "escodegen": "0.0.21", + "esprima": "1.0.x", + "jison-lex": "0.2.x", + "JSONSelect": "0.4.0", + "lex-parser": "0.1.x", + "nomnom": "1.5.2" + } + }, + "jison-lex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/jison-lex/-/jison-lex-0.2.1.tgz", + "integrity": "sha512-WCNVPRxaTWdhwJAIrBsgkGT9n6H1yNR9Lfof5LUHaMul24ySrJ1SXbVPszZfs57jwXvASLWBpd0xpFEW2oIuVA==", + "requires": { + "lex-parser": "0.1.x", + "nomnom": "1.5.2" + } + }, + "JSONSelect": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", + "integrity": "sha512-VRLR3Su35MH+XV2lrvh9O7qWoug/TUyj9tLDjn9rtpUCNnILLrHjgd/tB0KrhugCxUpj3UqoLqfYb3fLJdIQQQ==" + }, + "kareem": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", + "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" + }, + "lex": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/lex/-/lex-1.7.4.tgz", + "integrity": "sha512-9B1SLZjx8ZjYJx8AmlbVjeqYDllU7PCWwE/VYgq4DJ5gePjbzgdms+MC7tsj1tdyRp7O6BfXTTDHJnPiiPV0Pw==" + }, + "lex-parser": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz", + "integrity": "sha512-DuAEISsr1H4LOpmFLkyMc8YStiRWZCO8hMsoXAXSbgyfvs2WQhSt0+/FBv3ZU/JBFZMGcE+FWzEBSzwUU7U27w==" + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" + }, + "magic-bytes.js": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/magic-bytes.js/-/magic-bytes.js-1.0.15.tgz", + "integrity": "sha512-bpRmwbRHqongRhA+mXzbLWjVy7ylqmfMBYaQkSs6pac0z6hBTvsgrH0r4FBYd/UYVJBmS6Rp/O+oCCQVLzKV1g==" + }, + "memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mongodb": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.4.tgz", + "integrity": "sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==", + "requires": { + "bl": "^2.2.1", + "bson": "^1.1.4", + "denque": "^1.4.1", + "optional-require": "^1.1.8", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" + }, + "dependencies": { + "optional-require": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz", + "integrity": "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==", + "requires": { + "require-at": "^1.0.6" + } + } + } + }, + "mongoose": { + "version": "5.13.20", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.20.tgz", + "integrity": "sha512-TjGFa/XnJYt+wLmn8y9ssjyO2OhBMeEBtOHb9iJM16EWu2Du6L1Q6zSiEK2ziyYQM8agb4tumNIQFzqbxId7MA==", + "requires": { + "@types/bson": "1.x || 4.0.x", + "@types/mongodb": "^3.5.27", + "bson": "^1.1.4", + "kareem": "2.3.2", + "mongodb": "3.7.4", + "mongoose-legacy-pluralize": "1.0.2", + "mpath": "0.8.4", + "mquery": "3.2.5", + "ms": "2.1.2", + "optional-require": "1.0.x", + "regexp-clone": "1.0.0", + "safe-buffer": "5.2.1", + "sift": "13.5.2", + "sliced": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "mquery": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz", + "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==", + "requires": { + "bluebird": "3.5.1", + "debug": "3.1.0", + "regexp-clone": "^1.0.0", + "safe-buffer": "5.1.2", + "sliced": "1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + } + } + }, + "mongoose-legacy-pluralize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==", + "requires": {} + }, + "mpath": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz", + "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==" + }, + "mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "requires": { + "debug": "4.x" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "nomnom": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", + "integrity": "sha512-fiVbT7BqxiQqjlR9U3FDGOSERFCKoXVCdxV2FwZuNN7/cmJ42iQx35nUFOAFDcyvemu9Adp+IlsCGlKQYLmBKw==", + "requires": { + "colors": "0.5.x", + "underscore": "1.1.x" + } + }, + "optional-require": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz", + "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==" + }, + "prism-media": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.5.tgz", + "integrity": "sha512-IQdl0Q01m4LrkN1EGIE9lphov5Hy7WWlH6ulf5QdGePLlPas9p2mhgddTEHrlaXYjjFToM1/rWuwF37VF4taaA==", + "requires": {} + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "regex": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/regex/-/regex-0.1.1.tgz", + "integrity": "sha512-aZ/uNt2gUw9aD0K18LFAHdOUKsHL2fSny9YLqcxDfLmZOTK8mZxueHsAikh3UjPGZlmr4J3sdCNMPTp1wPR5hA==", + "requires": { + "augment": "3.2.1", + "jison": "0.4.4", + "lex": "1.7.4", + "statemachines": "0.1.0" + } + }, + "regexp-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + }, + "require-at": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz", + "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "sift": { + "version": "13.5.2", + "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", + "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" + }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==" + }, + "sorted-array": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/sorted-array/-/sorted-array-1.1.0.tgz", + "integrity": "sha512-jZgZDuFkeb3MJ9dE88/vlK7IB4C1Fip5oyCgabmxk8885dQP+zfZAq88RWzD+4KUskhHETVmDkMtERzRclI6fg==" + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "optional": true + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "optional": true, + "requires": { + "memory-pager": "^1.0.2" + } + }, + "statemachines": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/statemachines/-/statemachines-0.1.0.tgz", + "integrity": "sha512-RYZMSj20+WOobiIiBkCPUlZlJlnzPwzJ5DR6KA91RmxTBbe7EDB+ISNd2jU7QcI08BubqgL3bHFRhiL/KR3lYQ==", + "requires": { + "augment": "3.2.1", + "sorted-array": "1.1.0" + } + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "ts-mixer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.3.tgz", + "integrity": "sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ==" + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "underscore": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", + "integrity": "sha512-w4QtCHoLBXw1mjofIDoMyexaEdWGMedWNDhlWTtT1V1lCRqi65Pnoygkh6+WRdr+Bm8ldkBNkNeCsXGMlQS9HQ==" + }, + "undici": { + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz", + "integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==", + "requires": { + "busboy": "^1.6.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "requires": {} + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..ee84441 --- /dev/null +++ b/package.json @@ -0,0 +1,19 @@ +{ + "name": "pepperbot", + "version": "1.0.0", + "description": "", + "main": "src/index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "discord.js": "^14.13.0", + "discord.js-collector": "^1.8.9", + "dotenv": "^16.3.1", + "emoji-regex": "^10.2.1", + "regex": "^0.1.1" + } +} diff --git a/src/commands/commands.js b/src/commands/commands.js new file mode 100644 index 0000000..e2d7ff2 --- /dev/null +++ b/src/commands/commands.js @@ -0,0 +1,26 @@ +const { EmbedBuilder } = require("discord.js"); +const fs = require("fs"); +module.exports = { + name: "commands", + description: "commands list", + execute(message, args) { + let text = ""; + + const commandFiles = fs + .readdirSync("src/commands/") + .filter((file) => file.endsWith(".js")); + for (const file of commandFiles) { + const command = require(`./${file}`); + text += `p/${command.name} - ${command.description}\n`; + } + + const embed = new EmbedBuilder(); + embed.setTitle("PepperBot Commands"); + embed.setDescription(text); + embed.setColor(0xff0000); + embed.setThumbnail( + "https://cdn.discordapp.com/attachments/755150633191080073/1149152214850469908/Map_Icon.png" + ); + message.reply({ embeds: [embed] }); + }, +}; diff --git a/src/commands/crash.js b/src/commands/crash.js new file mode 100644 index 0000000..ef8264c --- /dev/null +++ b/src/commands/crash.js @@ -0,0 +1,31 @@ +const whitelist = ["440163494529073152"]; +const fs = require("fs"); + +module.exports = { + name: "crash", + description: "crashes the bot (throws an error), requires whitelist", + execute(message, args) { + if (whitelist.includes(message.author.id)) { + message.reply("crashing bot..."); + fs.appendFileSync( + "../pepperbot/src/logs/errors.log", + "force crashed at " + Date() + "\n" + ); + throw "crash command executed"; + } else { + message.reply("UNAUTHORIZED"); + const path = require("path"); + const scriptName = path.basename(__filename); + fs.appendFileSync( + "../pepperbot/src/logs/failed.log", + "non whitelisted user " + + message.author.username + + " (" + + message.author + + ") attempted accessing " + + scriptName + + "\n" + ); + } + }, +}; diff --git a/src/commands/createreactionrole.js b/src/commands/createreactionrole.js new file mode 100644 index 0000000..7542d94 --- /dev/null +++ b/src/commands/createreactionrole.js @@ -0,0 +1,136 @@ +const { EmbedBuilder } = require("discord.js"); +const emojiRegex = require("emoji-regex"); +const irregularsRegex = require("../util/irregularsRegex.js"); +const irregulars = require("../util/irregulars.json"); +const fs = require("fs"); + +const getEmojis = (message) => { + const { content } = message; + const result = []; + // Normal emojis + const normalEmojis = content.match(emojiRegex()); + if (normalEmojis) { + // for (const emoji of normalEmojis) { + normalEmojis.forEach((emoji) => { + result.push(emoji); + }); + } + // Text emojis e.g โ™ฅ โœ‚ ๐Ÿ—จ + const textEmojis = content.match(irregularsRegex()); + if (textEmojis) { + textEmojis.forEach((emoji) => { + result.push(irregulars[emoji.trim()]); + }); + } + // Guild emojis + let guildEmojis = content.match(/:[_a-zA-Z0-9]*>/g); + if (guildEmojis) { + guildEmojis = guildEmojis.map((e) => e.substring(1, e.length - 1)); + guildEmojis.forEach((e) => { + try { + const guildEmoji = message.guild.emojis.get(e); + if (guildEmoji) { + result.push(guildEmoji); + } + } catch (error) { + console.log(error); + console.log("tried using guild emote lmao"); + } + }); + } + // Attempt to sort the results if its not null + if (result) { + const query = message.content; + result.sort((a, b) => { + const irregularA = getKeyByValue(irregulars, a); + const irregularB = getKeyByValue(irregulars, b); + const index1 = irregularA || a; + const index2 = irregularB || b; + return query.indexOf(index1) - query.indexOf(index2); + }); + } + return result; +}; + +let collectors = []; + +const whitelist = ["440163494529073152", "436321340304392222"]; + +module.exports = { + name: "createreactionrole", + description: "creates reaction role, requires whitelist", + execute(message, args) { + if (whitelist.includes(message.author.id)) { + let emojis = getEmojis(message); + let emoji = emojis[0]; + let role = message.mentions.roles.first(); + if (!role) { + console.log("role variable missing"); + fs.appendFileSync( + "../pepperbot/src/logs/failed.log", + "role variable missing" + + "from: " + + message.content + + " at " + + Date() + + "\n" + ); + return; + } + if (!emoji) { + console.log("emoji variable missing"); + fs.appendFileSync( + "../pepperbot/src/logs/failed.log", + " emoji variable missing" + + "from: " + + message.content + + " at " + + Date() + + "\n" + ); + return; + } + + const embed = new EmbedBuilder(); + + embed.setThumbnail( + "https://cdn.discordapp.com/attachments/755150633191080073/1149152214850469908/Map_Icon.png" + ); + embed.setColor(0xff0000); + + embed.setTitle(role.name); + embed.setDescription( + "React with " + emoji + " to recieve the " + role.name + " role." + ); + + message.channel.send({ embeds: [embed] }).then((m) => m.react(emoji)); + + const collectorFilter = function (reaction) { + return true; + }; + + const collector = message.createReactionCollector({ + filter: collectorFilter, + }); + collectors.push(collector); + + collector.on("collect", (reaction, user) => { + console.log(`Collected ${reaction.emoji.name} from ${user.tag}`); + }); + } else { + message.reply("UNAUTHORIZED"); + const path = require("path"); + const scriptName = path.basename(__filename); + fs.appendFileSync( + "../pepperbot/src/logs/failed.log", + "non whitelisted user " + + message.author.username + + " (" + + message.author + + ") attempted accessing " + + scriptName + + "\n" + ); + } + }, +}; diff --git a/src/commands/dmuser.js b/src/commands/dmuser.js new file mode 100644 index 0000000..f313159 --- /dev/null +++ b/src/commands/dmuser.js @@ -0,0 +1,65 @@ +const fs = require("fs"); + +const prefix = process.env.PREFIX; + +function delay(time) { + return new Promise((resolve) => { + setTimeout(resolve, time); + }); +} + +module.exports = { + name: "dmuser", + description: "forces bot to dm a user something (this will ghost ping them)", + execute(message, args, client) { + const user = message.mentions.users.first(); + if (!user) { + return; + } + const msgnoprefix = message.content.slice( + prefix.length + this.name.length + user.id.length + 4 + ); + + console.log(typeof user); + console.log(user.username); + //const usercache = client.users.fetch(user.id, false, true); + + const msg = msgnoprefix.slice(0, 2000); + + if (msg !== "") { + user.send(msg); + message.delete(); + fs.appendFileSync( + "../pepperbot/src/logs/forcesay.log", + Date() + + " " + + message.author.username + + " (" + + message.author + + ") forced bot to dm " + + user.username + + msg + + "\n", + (err) => { + if (err !== null) { + console.error(err); + fs.appendFileSync( + "../pepperbot/src/logs/errors.log", + err + " from: " + message.content + " at " + Date() + ); + } + } + ); + console.log( + Date() + + message.author.username + + " (" + + message.author + + ") forced bot to dm " + + user.username + + msg + + "\n" + ); + } + }, +}; diff --git a/src/commands/links.js b/src/commands/links.js new file mode 100644 index 0000000..356e4a4 --- /dev/null +++ b/src/commands/links.js @@ -0,0 +1,21 @@ +const { EmbedBuilder } = require("discord.js"); +module.exports = { + name: "links", + description: 'posts "important" links', + execute(message, args) { + const embed = new EmbedBuilder(); + embed.setTitle("very imphortance linkers"); + embed.setThumbnail( + "https://cdn.discordapp.com/attachments/755150633191080073/1149152214850469908/Map_Icon.png" + ); + embed.setColor(0xff0000); + + embed.setDescription(` + https://reidlab.online + https://goop.network -- VERY IMPORTANT!!!! + pepper.church releasing [TIME] (never (not anytime soon)) + `); + + message.reply({ embeds: [embed] }); + }, +}; diff --git a/src/commands/mymovie.js b/src/commands/mymovie.js new file mode 100644 index 0000000..bd91208 --- /dev/null +++ b/src/commands/mymovie.js @@ -0,0 +1,7 @@ +module.exports = { + name: 'mymovie', + description: 'posts my movie', + execute(message, args){ + message.reply('https://cdn.discordapp.com/attachments/755150633191080073/1149158052784775219/My_Movie.mp4') + } +} \ No newline at end of file diff --git a/src/commands/pepper.js b/src/commands/pepper.js new file mode 100644 index 0000000..2af0291 --- /dev/null +++ b/src/commands/pepper.js @@ -0,0 +1,12 @@ +const { EmbedBuilder } = require('discord.js'); +module.exports = { + name: 'pepper', + description: 'Muchas Perfectas!', + execute(message, args){ + const embed = new EmbedBuilder + embed.setTitle('Muchas Perfectas!') + embed.setImage('https://cdn.discordapp.com/attachments/755150633191080073/1148815491822002177/240_F_531030593_fOjJqzacbhzXwL1F9Mfyv0ML3YzZfm5c.jpg') + embed.setColor(0xFF0000) + message.reply({ embeds: [embed] }) + } +} \ No newline at end of file diff --git a/src/commands/say.js b/src/commands/say.js new file mode 100644 index 0000000..b01a595 --- /dev/null +++ b/src/commands/say.js @@ -0,0 +1,30 @@ +const fs = require('fs') + +const prefix = process.env.PREFIX + +function delay(time) { + return new Promise(resolve => { + setTimeout(resolve, time); + }); +} + +module.exports = { + name: 'say', + description: 'forces bot to say something', + execute(message, args){ + const msgnoprefix = message.content.slice(prefix.length + this.name.length) + const msg = msgnoprefix.slice(0, 2000) + + if (msg !== '') { + message.channel.send(msg) + message.delete() + fs.appendFileSync("../pepperbot/src/logs/forcesay.log", Date() + " " + message.author.username + " (" + message.author + ") forced bot to say " + msg + "\n", (err) => { + if (err !== null) { + console.error(err) + fs.appendFileSync("../pepperbot/src/logs/errors.log", err + ' from: ' + message.content + " at " + Date()) + } + }) + console.log(Date() + " " + message.author.username + " (" + message.author + ") forced bot to say " + msg) + } + } +} \ No newline at end of file diff --git a/src/commands/sendlog.js b/src/commands/sendlog.js new file mode 100644 index 0000000..9bfd770 --- /dev/null +++ b/src/commands/sendlog.js @@ -0,0 +1,35 @@ +const { Collection } = require("discord.js"); +const prefix = process.env.PREFIX; +const ignore = []; +const fs = require("fs"); + +module.exports = { + name: "sendlog", + description: "sends log file (if the file is valid)", + execute(message, args) { + let msgnoprefix = message.content.slice( + prefix.length + this.name.length + 1 + ); + if (!msgnoprefix.endsWith(".log")) { + msgnoprefix += ".log"; + } + + const logs = fs + .readdirSync("../pepperbot/src/logs/") + .filter((file) => file.endsWith(".log")); + if (!logs.includes(msgnoprefix)) { + message.reply("invalid log file"); + return; + } + if (ignore.includes(msgnoprefix)) return; + const path = `../pepperbot/src/logs/${msgnoprefix}`; + message.channel.send({ + files: [ + { + attachment: path, + name: "file.log", + }, + ], + }); + }, +}; diff --git a/src/commands/test.js b/src/commands/test.js new file mode 100644 index 0000000..cd1f2ce --- /dev/null +++ b/src/commands/test.js @@ -0,0 +1,7 @@ +module.exports = { + name: "test", + description: "test command", + execute(message, args) { + message.reply("MOTHAFUCKA SHUT UPPPPPP"); + }, +}; diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..038918c --- /dev/null +++ b/src/index.js @@ -0,0 +1,128 @@ +require("dotenv").config(); +const { + Client, + IntentsBitField, + EmbedBuilder, + Collection, +} = require("discord.js"); + +const fs = require("fs"); + +const client = new Client({ + intents: [ + IntentsBitField.Flags.Guilds, + IntentsBitField.Flags.GuildMembers, + IntentsBitField.Flags.GuildMessages, + IntentsBitField.Flags.MessageContent, + ], +}); + +client.commands = new Collection(); + +const commandFiles = fs + .readdirSync("src/commands/") + .filter((file) => file.endsWith(".js")); +for (const file of commandFiles) { + (async () => { + const command = await import(`./commands/${file}`); + client.commands.set(command.default.name, command.default); + })(); +} + +const prefix = process.env.PREFIX; + +client.on("ready", (c) => { + console.log(`${c.user.tag} is online.`); + const channel = client.channels.cache.get("1148814162273763418"); + channel.send("pepperbot restart complete"); +}); + +client.on("messageDelete", async (message) => { + if (message.content.startsWith(prefix)) { + const args = message.content.slice(prefix.length).split(/ +/); + const command = args.shift().toLowerCase(); + if (!client.commands.has(command)) { + fs.appendFileSync( + "../pepperbot/src/logs/deletedmessages.log", + "deleted message from: " + + message.author.username + + "(" + + message.author + + ") at " + + Date() + + ' with: "' + + message.content + + '"\n' + ); + } + } else { + fs.appendFileSync( + "../pepperbot/src/logs/deletedmessages.log", + "deleted message from: " + + message.author.username + + "(" + + message.author + + ") at " + + Date() + + ' with: "' + + message.content + + '"\n' + ); + } +}); + +client.on("messageCreate", async (message) => { + if (!message.content.startsWith(prefix)) return; + const args = message.content.slice(prefix.length).split(/ +/); + const command = args.shift().toLowerCase(); + + /*if (message.channelId !== "1148814162273763418") { + let text = "commands only work in <#1148814162273763418>"; + if (!client.commands.has(command)) { + text += ", also thats not a command lmao"; + } + message.reply(text); + return; + }*/ + + if (!client.commands.has(command)) { + message.reply("idiot thats not a command"); + fs.appendFileSync( + "../pepperbot/src/logs/failed.log", + "invalid command: " + "from: " + message.content + " at " + Date() + "\n" + ); + } + + if (client.commands.get(command)) { + client.commands.get(command).execute(message, args, client); + } +}); + +client.on("interactionCreate", (interaction) => { + if (!interaction.isChatInputCommand()) return; + + if (interaction.commandName === "test") { + interaction.reply( + "mothafucka you contacted my ass from a slash command end urself" + ); + } + + if (interaction.commandName === "say") { + try { + const msg = interaction.options.get("message"); + interaction.reply(msg.value); + } catch (error) { + console.log(error); + fs.appendFile( + "../pepperbot/src/logs/errors.log", + error + "from: " + interaction.msg + " at " + Date() + ); + } + } + + if (interaction.commandName === "commands") { + client.commands.get("commands").execute(interaction, undefined); + } +}); + +client.login(process.env.TOKEN); diff --git a/src/register-commands.js b/src/register-commands.js new file mode 100644 index 0000000..462e492 --- /dev/null +++ b/src/register-commands.js @@ -0,0 +1,52 @@ +require('dotenv').config(); +const { REST, Routes, ApplicationCommandOptionType } = require('discord.js'); + +export const commands = [ + { + name: 'say', + description: 'forces bot to say message', + options: [ + { + name: 'message', + description: 'the message', + type: ApplicationCommandOptionType.String, + required: true + } + ] + }, + { + name: 'administer', + description: 'administer.', + options: [ + { + name: 'password', + description: 'the protections.', + type: ApplicationCommandOptionType.String, + required: true + } + ] + }, + { + name: 'commands', + description: 'sends a command list', + }, + { + name: 'test', + description: 'test command', + }, +]; + +const rest = new REST({ version: '10' }).setToken(process.env.TOKEN); + +(async () => { + try { + await rest.put( + Routes.applicationGuildCommands(process.env.CLIENT_ID, process.env.GUILD_ID), + { body: commands } + ) + + console.log("slash commands registered") + } catch (error) { + console.log(error); + } +})(); \ No newline at end of file diff --git a/src/util/buildJson.js b/src/util/buildJson.js new file mode 100644 index 0000000..88e6663 --- /dev/null +++ b/src/util/buildJson.js @@ -0,0 +1,23 @@ +const fs = require('fs'); +const path = require('path'); + +const input = fs.readFileSync(path.resolve(__dirname, './irregulars.txt'), { + encoding: 'utf-8', +}); + +const data = input.split('\n'); + +const lines = data + .map((entry, i, arr) => { + const emojis = entry.split(','); + let jsonLine = ` "${emojis[1]}": "${emojis[0]}"`; + if (arr.length - 1 !== i) jsonLine += ','; + return jsonLine; + }) + .join('\n'); + +const json = `{\n${lines}\n}`; + +fs.writeFileSync(path.resolve(__dirname, 'irregulars.json'), json, { + encoding: 'utf-8', +}); \ No newline at end of file diff --git a/src/util/buildRegex.js b/src/util/buildRegex.js new file mode 100644 index 0000000..a8b1a61 --- /dev/null +++ b/src/util/buildRegex.js @@ -0,0 +1,25 @@ +const fs = require('fs'); +const path = require('path'); + +const base = '/โค/g'; + +const input = fs.readFileSync(path.resolve(__dirname, 'irregulars.txt'), { + encoding: 'utf-8', +}); + +const data = input.split('\n'); + +const piped = data + .map(emoji => { + const raw = emoji.split(',')[1]; + return raw.replace(/\*/g, '\\*'); + }) + .join('|'); + +const regex = base.replace(/โค/g, piped); + +const js = `module.exports = () => ${regex};`; + +fs.writeFileSync(path.resolve(__dirname, 'irregularsRegex.js'), js, { + encoding: 'utf-8', +}); \ No newline at end of file diff --git a/src/util/irregulars.json b/src/util/irregulars.json new file mode 100644 index 0000000..55939d3 --- /dev/null +++ b/src/util/irregulars.json @@ -0,0 +1,204 @@ +{ + "๐Ÿ…ฐ": ":a:", + "๐Ÿ…ฑ": ":b:", + "๐Ÿ…พ": ":o2:", + "๐Ÿ…ฟ": ":parking:", + "๐Ÿˆ‚": ":sa:", + "๐Ÿˆท": ":u6708:", + "๐ŸŒก": ":thermometer:", + "๐ŸŒค": ":white_sun_small_cloud:", + "๐ŸŒฅ": ":white_sun_cloud:", + "๐ŸŒฆ": ":white_sun_rain_cloud:", + "๐ŸŒง": ":cloud_rain:", + "๐ŸŒจ": ":cloud_snow:", + "๐ŸŒฉ": ":cloud_lightning:", + "๐ŸŒช": ":cloud_tornado:", + "๐ŸŒซ": ":fog:", + "๐ŸŒฌ": ":wind_blowing_face:", + "๐ŸŒถ": ":hot_pepper:", + "๐Ÿฝ": ":fork_knife_plate:", + "๐ŸŽ–": ":military_medal:", + "๐ŸŽ—": ":reminder_ribbon:", + "๐ŸŽ™": ":microphone2:", + "๐ŸŽš": ":level_slider:", + "๐ŸŽ›": ":control_knobs:", + "๐ŸŽž": ":film_frames:", + "๐ŸŽŸ": ":tickets:", + "๐Ÿ": ":motorcycle:", + "๐ŸŽ": ":race_car:", + "๐Ÿ”": ":mountain_snow:", + "๐Ÿ•": ":camping:", + "๐Ÿ–": ":beach:", + "๐Ÿ—": ":construction_site:", + "๐Ÿ˜": ":homes:", + "๐Ÿ™": ":cityscape:", + "๐Ÿš": ":house_abandoned:", + "๐Ÿ›": ":classical_building:", + "๐Ÿœ": ":desert:", + "๐Ÿ": ":island:", + "๐Ÿž": ":park:", + "๐ŸŸ": ":stadium:", + "๐Ÿณ": ":flag_white:", + "๐Ÿต": ":rosette:", + "๐Ÿท": ":label:", + "๐Ÿฟ": ":chipmunk:", + "๐Ÿ‘โ€๐Ÿ—จ": ":eye_in_speech_bubble:", + "๐Ÿ‘": ":eye:", + "๐Ÿ“ฝ": ":projector:", + "๐Ÿ•‰": ":om_symbol:", + "๐Ÿ•Š": ":dove:", + "๐Ÿ•ฏ": ":candle:", + "๐Ÿ•ฐ": ":clock:", + "๐Ÿ•ณ": ":hole:", + "๐Ÿ•ถ": ":dark_sunglasses:", + "๐Ÿ•ท": ":spider:", + "๐Ÿ•ธ": ":spider_web:", + "๐Ÿ•น": ":joystick:", + "๐Ÿ–‡": ":paperclips:", + "๐Ÿ–Š": ":pen_ballpoint:", + "๐Ÿ–‹": ":pen_fountain:", + "๐Ÿ–Œ": ":paintbrush:", + "๐Ÿ–": ":crayon:", + "๐Ÿ–ฅ": ":desktop:", + "๐Ÿ–จ": ":printer:", + "๐Ÿ–ฑ": ":mouse_three_button:", + "๐Ÿ–ฒ": ":trackball:", + "๐Ÿ–ผ": ":frame_photo:", + "๐Ÿ—‚": ":dividers:", + "๐Ÿ—ƒ": ":card_box:", + "๐Ÿ—„": ":file_cabinet:", + "๐Ÿ—‘": ":wastebasket:", + "๐Ÿ—’": ":notepad_spiral:", + "๐Ÿ—“": ":calendar_spiral:", + "๐Ÿ—œ": ":compression:", + "๐Ÿ—": ":key2:", + "๐Ÿ—ž": ":newspaper2:", + "๐Ÿ—ก": ":dagger:", + "๐Ÿ—ฃ": ":speaking_head:", + "๐Ÿ—จ": ":speech_left:", + "๐Ÿ—ฏ": ":anger_right:", + "๐Ÿ—ณ": ":ballot_box:", + "๐Ÿ—บ": ":map:", + "๐Ÿ›‹": ":couch:", + "๐Ÿ›": ":shopping_bags:", + "๐Ÿ›Ž": ":bellhop:", + "๐Ÿ›": ":bed:", + "๐Ÿ› ": ":tools:", + "๐Ÿ›ก": ":shield:", + "๐Ÿ›ข": ":oil:", + "๐Ÿ›ฃ": ":motorway:", + "๐Ÿ›ค": ":railway_track:", + "๐Ÿ›ฅ": ":motorboat:", + "๐Ÿ›ฉ": ":airplane_small:", + "๐Ÿ›ฐ": ":satellite_orbital:", + "๐Ÿ›ณ": ":cruise_ship:", + "โ€ผ": ":bangbang:", + "โ‰": ":interrobang:", + "โ„น": ":information_source:", + "โ†”": ":left_right_arrow:", + "โ†•": ":arrow_up_down:", + "โ†–": ":arrow_upper_left:", + "โ†—": ":arrow_upper_right:", + "โ†˜": ":arrow_lower_right:", + "โ†™": ":arrow_lower_left:", + "โ†ฉ": ":leftwards_arrow_with_hook:", + "โ†ช": ":arrow_right_hook:", + "#โƒฃ": ":hash:", + "โŒจ": ":keyboard:", + "โ": ":eject:", + "โญ": ":track_next:", + "โฎ": ":track_previous:", + "โฏ": ":play_pause:", + "โฑ": ":stopwatch:", + "โฒ": ":timer:", + "โธ": ":pause_button:", + "โน": ":stop_button:", + "โบ": ":record_button:", + "โ“‚": ":m:", + "โ–ช": ":black_small_square:", + "โ–ซ": ":white_small_square:", + "โ–ถ": ":arrow_forward:", + "โ—€": ":arrow_backward:", + "โ—ป": ":white_medium_square:", + "โ—ผ": ":black_medium_square:", + "โ˜€": ":sunny:", + "โ˜": ":cloud:", + "โ˜‚": ":umbrella2:", + "โ˜ƒ": ":snowman2:", + "โ˜„": ":comet:", + "โ˜Ž": ":telephone:", + "โ˜‘": ":ballot_box_with_check:", + "โ˜˜": ":shamrock:", + "โ˜ ": ":skull_crossbones:", + "โ˜ข": ":radioactive:", + "โ˜ฃ": ":biohazard:", + "โ˜ฆ": ":orthodox_cross:", + "โ˜ช": ":star_and_crescent:", + "โ˜ฎ": ":peace:", + "โ˜ฏ": ":yin_yang:", + "โ˜ธ": ":wheel_of_dharma:", + "โ˜น": ":frowning2:", + "โ˜บ": ":relaxed:", + "โ™ ": ":spades:", + "โ™ฃ": ":clubs:", + "โ™ฅ": ":hearts:", + "โ™ฆ": ":diamonds:", + "โ™จ": ":hotsprings:", + "โ™ป": ":recycle:", + "โš’": ":hammer_pick:", + "โš”": ":crossed_swords:", + "โš–": ":scales:", + "โš—": ":alembic:", + "โš™": ":gear:", + "โš›": ":atom:", + "โšœ": ":fleur_de_lis:", + "โš ": ":warning:", + "โšฐ": ":coffin:", + "โšฑ": ":urn:", + "โ›ˆ": ":thunder_cloud_rain:", + "โ›": ":pick:", + "โ›‘": ":helmet_with_cross:", + "โ›“": ":chains:", + "โ›ฉ": ":shinto_shrine:", + "โ›ฐ": ":mountain:", + "โ›ฑ": ":beach_umbrella:", + "โ›ด": ":ferry:", + "โ›ท": ":skier:", + "โ›ธ": ":ice_skate:", + "โœ‚": ":scissors:", + "โœˆ": ":airplane:", + "โœ‰": ":envelope:", + "โœ": ":pencil2:", + "โœ’": ":black_nib:", + "โœ”": ":heavy_check_mark:", + "โœ–": ":heavy_multiplication_x:", + "โœ": ":cross:", + "โœก": ":star_of_david:", + "โœณ": ":eight_spoked_asterisk:", + "โœด": ":eight_pointed_black_star:", + "โ„": ":snowflake:", + "โ‡": ":sparkle:", + "โฃ": ":heart_exclamation:", + "โค": ":heart:", + "โžก": ":arrow_right:", + "โคด": ":arrow_heading_up:", + "โคต": ":arrow_heading_down:", + "*โƒฃ": ":asterisk:", + "โฌ…": ":arrow_left:", + "โฌ†": ":arrow_up:", + "โฌ‡": ":arrow_down:", + "0โƒฃ": ":zero:", + "ใ€ฐ": ":wavy_dash:", + "ใ€ฝ": ":part_alternation_mark:", + "1โƒฃ": ":one:", + "2โƒฃ": ":two:", + "ใŠ—": ":congratulations:", + "ใŠ™": ":secret:", + "3โƒฃ": ":three:", + "4โƒฃ": ":four:", + "5โƒฃ": ":five:", + "6โƒฃ": ":six:", + "7โƒฃ": ":seven:", + "8โƒฃ": ":eight:", + "9โƒฃ": ":nine:" + } \ No newline at end of file diff --git a/src/util/irregulars.txt b/src/util/irregulars.txt new file mode 100644 index 0000000..9390d31 --- /dev/null +++ b/src/util/irregulars.txt @@ -0,0 +1,202 @@ +:a:,๐Ÿ…ฐ +:b:,๐Ÿ…ฑ +:o2:,๐Ÿ…พ +:parking:,๐Ÿ…ฟ +:sa:,๐Ÿˆ‚ +:u6708:,๐Ÿˆท +:thermometer:,๐ŸŒก +:white_sun_small_cloud:,๐ŸŒค +:white_sun_cloud:,๐ŸŒฅ +:white_sun_rain_cloud:,๐ŸŒฆ +:cloud_rain:,๐ŸŒง +:cloud_snow:,๐ŸŒจ +:cloud_lightning:,๐ŸŒฉ +:cloud_tornado:,๐ŸŒช +:fog:,๐ŸŒซ +:wind_blowing_face:,๐ŸŒฌ +:hot_pepper:,๐ŸŒถ +:fork_knife_plate:,๐Ÿฝ +:military_medal:,๐ŸŽ– +:reminder_ribbon:,๐ŸŽ— +:microphone2:,๐ŸŽ™ +:level_slider:,๐ŸŽš +:control_knobs:,๐ŸŽ› +:film_frames:,๐ŸŽž +:tickets:,๐ŸŽŸ +:motorcycle:,๐Ÿ +:race_car:,๐ŸŽ +:mountain_snow:,๐Ÿ” +:camping:,๐Ÿ• +:beach:,๐Ÿ– +:construction_site:,๐Ÿ— +:homes:,๐Ÿ˜ +:cityscape:,๐Ÿ™ +:house_abandoned:,๐Ÿš +:classical_building:,๐Ÿ› +:desert:,๐Ÿœ +:island:,๐Ÿ +:park:,๐Ÿž +:stadium:,๐ŸŸ +:flag_white:,๐Ÿณ +:rosette:,๐Ÿต +:label:,๐Ÿท +:chipmunk:,๐Ÿฟ +:eye_in_speech_bubble:,๐Ÿ‘โ€๐Ÿ—จ +:eye:,๐Ÿ‘ +:projector:,๐Ÿ“ฝ +:om_symbol:,๐Ÿ•‰ +:dove:,๐Ÿ•Š +:candle:,๐Ÿ•ฏ +:clock:,๐Ÿ•ฐ +:hole:,๐Ÿ•ณ +:dark_sunglasses:,๐Ÿ•ถ +:spider:,๐Ÿ•ท +:spider_web:,๐Ÿ•ธ +:joystick:,๐Ÿ•น +:paperclips:,๐Ÿ–‡ +:pen_ballpoint:,๐Ÿ–Š +:pen_fountain:,๐Ÿ–‹ +:paintbrush:,๐Ÿ–Œ +:crayon:,๐Ÿ– +:desktop:,๐Ÿ–ฅ +:printer:,๐Ÿ–จ +:mouse_three_button:,๐Ÿ–ฑ +:trackball:,๐Ÿ–ฒ +:frame_photo:,๐Ÿ–ผ +:dividers:,๐Ÿ—‚ +:card_box:,๐Ÿ—ƒ +:file_cabinet:,๐Ÿ—„ +:wastebasket:,๐Ÿ—‘ +:notepad_spiral:,๐Ÿ—’ +:calendar_spiral:,๐Ÿ—“ +:compression:,๐Ÿ—œ +:key2:,๐Ÿ— +:newspaper2:,๐Ÿ—ž +:dagger:,๐Ÿ—ก +:speaking_head:,๐Ÿ—ฃ +:speech_left:,๐Ÿ—จ +:anger_right:,๐Ÿ—ฏ +:ballot_box:,๐Ÿ—ณ +:map:,๐Ÿ—บ +:couch:,๐Ÿ›‹ +:shopping_bags:,๐Ÿ› +:bellhop:,๐Ÿ›Ž +:bed:,๐Ÿ› +:tools:,๐Ÿ›  +:shield:,๐Ÿ›ก +:oil:,๐Ÿ›ข +:motorway:,๐Ÿ›ฃ +:railway_track:,๐Ÿ›ค +:motorboat:,๐Ÿ›ฅ +:airplane_small:,๐Ÿ›ฉ +:satellite_orbital:,๐Ÿ›ฐ +:cruise_ship:,๐Ÿ›ณ +:bangbang:,โ€ผ +:interrobang:,โ‰ +:information_source:,โ„น +:left_right_arrow:,โ†” +:arrow_up_down:,โ†• +:arrow_upper_left:,โ†– +:arrow_upper_right:,โ†— +:arrow_lower_right:,โ†˜ +:arrow_lower_left:,โ†™ +:leftwards_arrow_with_hook:,โ†ฉ +:arrow_right_hook:,โ†ช +:hash:,#โƒฃ +:keyboard:,โŒจ +:eject:,โ +:track_next:,โญ +:track_previous:,โฎ +:play_pause:,โฏ +:stopwatch:,โฑ +:timer:,โฒ +:pause_button:,โธ +:stop_button:,โน +:record_button:,โบ +:m:,โ“‚ +:black_small_square:,โ–ช +:white_small_square:,โ–ซ +:arrow_forward:,โ–ถ +:arrow_backward:,โ—€ +:white_medium_square:,โ—ป +:black_medium_square:,โ—ผ +:sunny:,โ˜€ +:cloud:,โ˜ +:umbrella2:,โ˜‚ +:snowman2:,โ˜ƒ +:comet:,โ˜„ +:telephone:,โ˜Ž +:ballot_box_with_check:,โ˜‘ +:shamrock:,โ˜˜ +:skull_crossbones:,โ˜  +:radioactive:,โ˜ข +:biohazard:,โ˜ฃ +:orthodox_cross:,โ˜ฆ +:star_and_crescent:,โ˜ช +:peace:,โ˜ฎ +:yin_yang:,โ˜ฏ +:wheel_of_dharma:,โ˜ธ +:frowning2:,โ˜น +:relaxed:,โ˜บ +:spades:,โ™  +:clubs:,โ™ฃ +:hearts:,โ™ฅ +:diamonds:,โ™ฆ +:hotsprings:,โ™จ +:recycle:,โ™ป +:hammer_pick:,โš’ +:crossed_swords:,โš” +:scales:,โš– +:alembic:,โš— +:gear:,โš™ +:atom:,โš› +:fleur_de_lis:,โšœ +:warning:,โš  +:coffin:,โšฐ +:urn:,โšฑ +:thunder_cloud_rain:,โ›ˆ +:pick:,โ› +:helmet_with_cross:,โ›‘ +:chains:,โ›“ +:shinto_shrine:,โ›ฉ +:mountain:,โ›ฐ +:beach_umbrella:,โ›ฑ +:ferry:,โ›ด +:skier:,โ›ท +:ice_skate:,โ›ธ +:scissors:,โœ‚ +:airplane:,โœˆ +:envelope:,โœ‰ +:pencil2:,โœ +:black_nib:,โœ’ +:heavy_check_mark:,โœ” +:heavy_multiplication_x:,โœ– +:cross:,โœ +:star_of_david:,โœก +:eight_spoked_asterisk:,โœณ +:eight_pointed_black_star:,โœด +:snowflake:,โ„ +:sparkle:,โ‡ +:heart_exclamation:,โฃ +:heart:,โค +:arrow_right:,โžก +:arrow_heading_up:,โคด +:arrow_heading_down:,โคต +:asterisk:,*โƒฃ +:arrow_left:,โฌ… +:arrow_up:,โฌ† +:arrow_down:,โฌ‡ +:zero:,0โƒฃ +:wavy_dash:,ใ€ฐ +:part_alternation_mark:,ใ€ฝ +:one:,1โƒฃ +:two:,2โƒฃ +:congratulations:,ใŠ— +:secret:,ใŠ™ +:three:,3โƒฃ +:four:,4โƒฃ +:five:,5โƒฃ +:six:,6โƒฃ +:seven:,7โƒฃ +:eight:,8โƒฃ +:nine:,9โƒฃ \ No newline at end of file diff --git a/src/util/irregularsRegex.js b/src/util/irregularsRegex.js new file mode 100644 index 0000000..9d3837f --- /dev/null +++ b/src/util/irregularsRegex.js @@ -0,0 +1 @@ +module.exports = () => /๐Ÿ…ฐ|๐Ÿ…ฑ|๐Ÿ…พ|๐Ÿ…ฟ|๐Ÿˆ‚|๐Ÿˆท|๐ŸŒก|๐ŸŒค|๐ŸŒฅ|๐ŸŒฆ|๐ŸŒง|๐ŸŒจ|๐ŸŒฉ|๐ŸŒช|๐ŸŒซ|๐ŸŒฌ|๐ŸŒถ|๐Ÿฝ|๐ŸŽ–|๐ŸŽ—|๐ŸŽ™|๐ŸŽš|๐ŸŽ›|๐ŸŽž|๐ŸŽŸ|๐Ÿ|๐ŸŽ|๐Ÿ”|๐Ÿ•|๐Ÿ–|๐Ÿ—|๐Ÿ˜|๐Ÿ™|๐Ÿš|๐Ÿ›|๐Ÿœ|๐Ÿ|๐Ÿž|๐ŸŸ|๐Ÿณ|๐Ÿต|๐Ÿท|๐Ÿฟ|๐Ÿ‘โ€๐Ÿ—จ|๐Ÿ‘|๐Ÿ“ฝ|๐Ÿ•‰|๐Ÿ•Š|๐Ÿ•ฏ|๐Ÿ•ฐ|๐Ÿ•ณ|๐Ÿ•ถ|๐Ÿ•ท|๐Ÿ•ธ|๐Ÿ•น|๐Ÿ–‡|๐Ÿ–Š|๐Ÿ–‹|๐Ÿ–Œ|๐Ÿ–|๐Ÿ–ฅ|๐Ÿ–จ|๐Ÿ–ฑ|๐Ÿ–ฒ|๐Ÿ–ผ|๐Ÿ—‚|๐Ÿ—ƒ|๐Ÿ—„|๐Ÿ—‘|๐Ÿ—’|๐Ÿ—“|๐Ÿ—œ|๐Ÿ—|๐Ÿ—ž|๐Ÿ—ก|๐Ÿ—ฃ|๐Ÿ—จ|๐Ÿ—ฏ|๐Ÿ—ณ|๐Ÿ—บ|๐Ÿ›‹|๐Ÿ›|๐Ÿ›Ž|๐Ÿ›|๐Ÿ› |๐Ÿ›ก|๐Ÿ›ข|๐Ÿ›ฃ|๐Ÿ›ค|๐Ÿ›ฅ|๐Ÿ›ฉ|๐Ÿ›ฐ|๐Ÿ›ณ|โ€ผ|โ‰|โ„น|โ†”|โ†•|โ†–|โ†—|โ†˜|โ†™|โ†ฉ|โ†ช|#โƒฃ|โŒจ|โ|โญ|โฎ|โฏ|โฑ|โฒ|โธ|โน|โบ|โ“‚|โ–ช|โ–ซ|โ–ถ|โ—€|โ—ป|โ—ผ|โ˜€|โ˜|โ˜‚|โ˜ƒ|โ˜„|โ˜Ž|โ˜‘|โ˜˜|โ˜ |โ˜ข|โ˜ฃ|โ˜ฆ|โ˜ช|โ˜ฎ|โ˜ฏ|โ˜ธ|โ˜น|โ˜บ|โ™ |โ™ฃ|โ™ฅ|โ™ฆ|โ™จ|โ™ป|โš’|โš”|โš–|โš—|โš™|โš›|โšœ|โš |โšฐ|โšฑ|โ›ˆ|โ›|โ›‘|โ›“|โ›ฉ|โ›ฐ|โ›ฑ|โ›ด|โ›ท|โ›ธ|โœ‚|โœˆ|โœ‰|โœ|โœ’|โœ”|โœ–|โœ|โœก|โœณ|โœด|โ„|โ‡|โฃ|โค|โžก|โคด|โคต|\*โƒฃ|โฌ…|โฌ†|โฌ‡|0โƒฃ|ใ€ฐ|ใ€ฝ|1โƒฃ|2โƒฃ|ใŠ—|ใŠ™|3โƒฃ|4โƒฃ|5โƒฃ|6โƒฃ|7โƒฃ|8โƒฃ|9โƒฃ/g; \ No newline at end of file