From f0cec057eb07960ff84d4d87ed9a2fc29cad88a3 Mon Sep 17 00:00:00 2001 From: MrSerge01 Date: Mon, 20 Jun 2022 21:45:07 +0600 Subject: [PATCH 1/6] commit cuz LOA --- src/events/ready.js | 11 +++++++++++ src/{commands => handlers}/cmdHandler.js | 9 +++++---- src/handlers/eventHandler.js | 25 ++++++++++++++++++++++++ src/index.js | 10 ++-------- 4 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 src/events/ready.js rename src/{commands => handlers}/cmdHandler.js (92%) create mode 100644 src/handlers/eventHandler.js diff --git a/src/events/ready.js b/src/events/ready.js new file mode 100644 index 0000000..6b463a7 --- /dev/null +++ b/src/events/ready.js @@ -0,0 +1,11 @@ +// const commands = require('../handlers/cmdHandler.js'); + +module.exports = { + name: 'ready', + callback: (client) => { + // commands(client); + + client.user.setPresence({ activities: [{ name: 'discord.gg/avdanos', type: 'WATCHING' }] }); + console.log('Start completed.'); + } +}; diff --git a/src/commands/cmdHandler.js b/src/handlers/cmdHandler.js similarity index 92% rename from src/commands/cmdHandler.js rename to src/handlers/cmdHandler.js index 12bf1e9..f73904e 100644 --- a/src/commands/cmdHandler.js +++ b/src/handlers/cmdHandler.js @@ -32,7 +32,7 @@ module.exports = (client) => { const args = message.content.slice(process.env.PREFIX.length).trim().split(/ +/); const commandName = args.shift().toLowerCase(); try { - commands[commandName].callback(message, args); + commands[commandName].callback(message, ...args); } catch (error) { console.error(error); @@ -49,11 +49,12 @@ module.exports = (client) => { const slashCommands = []; const slashCommandFiles = getFiles(`${path}\\slash`, '.js'); const guild = client.guilds.cache.get('986268144446341142'); - for (const slashCommand of slashCommandFiles) { - let slashCommandFile = require(slashCommand); - slashCommands[slashCommandFile.name.toLowerCase()] = slashCommandFile; + for (const slashCommandFile of slashCommandFiles) { + let slashCommand = require(slashCommandFile); + slashCommands[slashCommand.name.toLowerCase()] = slashCommand; slashCommands.push(slashCommandFile); }; + console.log(slashCommands); guild.commands.set(slashCommands); global.pollsList = {}; client.on('interactionCreate', (interaction) => { diff --git a/src/handlers/eventHandler.js b/src/handlers/eventHandler.js new file mode 100644 index 0000000..45f28c3 --- /dev/null +++ b/src/handlers/eventHandler.js @@ -0,0 +1,25 @@ +const getFiles = require('../utils/getFiles'); + +module.exports = (client) => { + const path = '\\events'; + const events = []; + const eventFiles = getFiles(`${path}`, '.js'); + + for (const eventFile of eventFiles) { + const event = require(eventFile); + events[event.name.toLowerCase()] = event; + + // try { + // if (eventFile.once) client.once(events[event.name], () => callback()); + // else client.on(events[event.name], () => callback()); + // } catch (error) { + // console.error(error); + // } + try { + client.on(events[event.name].callback(client)); + } catch (error) { + console.error(error); + } + console.log(events); + } +}; diff --git a/src/index.js b/src/index.js index a831a79..3be038b 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,6 @@ const { Client, Intents } = require('discord.js'); require('dotenv').config(); -const commands = require('./commands/cmdHandler.js'); +const events = require('./handlers/eventHandler'); const client = new Client({ intents: [ @@ -8,12 +8,6 @@ const client = new Client({ Intents.FLAGS.GUILD_MESSAGES, ] }); -module.exports = client; -client.on('ready', () => { - commands(client); - - client.user.setPresence({ activities: [{ name: 'discord.gg/avdanos', type: 'WATCHING' }] }); - console.log('Start completed.'); -}); +events(client); client.login(process.env.DISCORD_TOKEN); From a3610dc86d896ce15e6b2842ee2ad655f789e019 Mon Sep 17 00:00:00 2001 From: MrSerge01 Date: Sat, 2 Jul 2022 21:58:18 +0600 Subject: [PATCH 2/6] contribution guidelines, alot of other stuff --- CONTRIBUTING.md | 70 + README.md | 36 +- example.env | 1 - package-lock.json | 1984 +---------------- package.json | 11 +- src/autoDevRecruitment/devRecruiter.js | 10 - src/autoDevRecruitment/index.js | 14 - src/autoDevRecruitment/permissonProvider.js | 3 - src/commands/normal/;-;.js | 7 - src/commands/normal/help.js | 7 +- src/commands/normal/prefix.js | 24 - src/commands/normal/setprefix.js | 27 + src/commands/slash/help.js | 18 - src/commands/slash/loa.js | 46 +- src/commands/slash/poll.js | 26 +- .../slash/{prefix.js => setprefix.js} | 21 +- src/config.json | 2 +- src/examples/normal/button.js | 2 +- src/examples/normal/embed.js | 2 +- src/examples/normal/randomResponse.js | 2 +- src/examples/slash/button.js | 2 +- src/examples/slash/embed.js | 2 +- src/examples/slash/option.js | 2 +- src/examples/slash/randomResponse.js | 2 +- src/handlers/cmdHandler.js | 60 +- src/index.js | 28 +- 26 files changed, 220 insertions(+), 2189 deletions(-) create mode 100644 CONTRIBUTING.md delete mode 100644 example.env delete mode 100644 src/autoDevRecruitment/devRecruiter.js delete mode 100644 src/autoDevRecruitment/index.js delete mode 100644 src/autoDevRecruitment/permissonProvider.js delete mode 100644 src/commands/normal/;-;.js delete mode 100644 src/commands/normal/prefix.js create mode 100644 src/commands/normal/setprefix.js delete mode 100644 src/commands/slash/help.js rename src/commands/slash/{prefix.js => setprefix.js} (54%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..f230471 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,70 @@ +# Tinan Contributing Guide + +## Prerequisites + +If you want to contribute to this repository, you need basic knowledge of JavaScript and discord.js. + +The bot is getting rewritten in TypeScript, so it's also strongly recommended for you to understand TypeScript. + +For code convention: + +- 2 space indent, no tab, + +- const by default and let for reassignable + +- Be CaReFuL_WithHow-youName VARIABLES. + +## Forking + +Step 1: Make a contribution fork of this repository. + +## Setting up a Discord bot + +Step 2: Go to the [Discord Developer Portal](https://discord.com/developers/applications) and log in with your account. + +Step 3: Click on the "New Application" button near your profile picture on the upper right side of your screen and create a new application. Name it anything you want. + +Step 4: Click on the "Bot" button on the left side of your screen and create a new bot. + +### Step 5. Invite your bot to your server. + +Step 5.1: Click on "OAuth2", afterwards "URL Generator". Select `bot` and `applications.commands`. + +Step 5.2: Select "Administrator" in the list of bot permissions. + +Step 5.3: Copy the link in the bottom of the page and paste it into your search bar. Select the server where you want your bot to be in the dropdown list. + +Step 6: Reset your bot's token and copy it. It will be used later. + +## Making it work + +# **Step 7: .env magic (huge for devs to not add it into the repo)** + +## **Step 7.1: Inside the `src` folder, make a `.env` file.** + +## **Step 7.2: Type `DISCORD_TOKEN=your bot token` and `PREFIX=your prefix`** + +## Changing config.json + +Step 8: Create a channel (or channels) in your server and name it/them anything you want. + +If you haven't enabled Developer Mode, you can do so by going into Settings > Advanced > Developer Mode. + +Step 9: Copy your channel's ID by right clicking on it and selecting `Copy ID`. + +Step 10: Paste the channel's ID into your config.json file. + +Step 11: In your terminal, run `npm install`. It will install all the modules needed to run the bot. + +Step 12: Run `cd src` and afterwards `node .` to launch the bot. + +## How to make commands + +If you want to make commands for the bot, you can look at the example commands in the `examples` folder. + +## Pull requests + +Remember to put a short and concise list of changes to make the review process easier, and all PRs should get reviewed by peer before merging. + +# ***PLEASE SUBMIT A PR, NO DIRECT COMMITS!*** +![image](https://user-images.githubusercontent.com/51555391/176925763-cdfd57ba-ae1e-4bf3-85e9-b3ebd30b1d59.png) diff --git a/README.md b/README.md index 41a91c3..c7f6057 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,17 @@ # Tinan -The Discord Bot for the AvdanOS Community Discord server, made using discord.js v13.8. -# How to contribute -## Forking -Step 1: Make a contribution fork of this repository. -## Setting up a Discord bot -Step 2: Go to the [Discord Developer Portal](https://discord.com/developers/applications) and log in with your account. -Step 3: Click on the "New Application" button near your profile picture on the upper right side of your screen and create a new application. Name it anything you want. +The Discord bot for AvdanOS Community Discord server, built with discord.js v13.8.1. -Step 4: Click on the "Bot" button on the left side of your screen and create a new bot. +
-### Step 5. Invite your bot to your server. -Step 5.1: Click on "OAuth2", afterwards "URL Generator". Select `bot` and `applications.commands`. +![Banner](https://raw.githubusercontent.com/Avdan-OS/.github/main/banner/Tinan.png) -Step 5.2: Select "Administrator" in the list of bot permissions. +
-Step 5.3: Copy the link in the bottom of the page and paste it into your search bar. Select the server where you want your bot to be in the dropdown list. +# Current state -Step 6: Reset your bot's token and copy it. It will be used later. -## Making it work -Step 7: Inside the `src` folder, make a `.env` file, and type `DISCORD_TOKEN=your token` and `PREFIX=your prefix` +Currently, we are starting to rewrite the bot to TypeScript. -### Step 8. Get your Discord server ID -Step 8.1: Enable developer mode by going into Settings (near your profile picture in the bottom) > Advanced > Developer Mode. +# Contributing -Step 8.2: Copy your server ID by right clicking the server icon and clicking "Copy ID". - -Step 9: Inside the src > commands folder, open `cmdHandler.js` and in the 57th line, replace the number in a string with your ID. - -Step 10: In your terminal, run `npm install`. It will install all the modules needed to run the bot. - -Step 11: Run `cd src` and afterwards `node .` to launch the bot. -## How to make commands -Step 12: In the commands folder, there's 2 `example.js` files. You can use them as a reference to build new commands. -## Pull requests -Step 13: Remember to put a short and concise list of changes to make the review process easier. +To contribute, you can see `CONTRIBUTING.md`. diff --git a/example.env b/example.env deleted file mode 100644 index c0bb56d..0000000 --- a/example.env +++ /dev/null @@ -1 +0,0 @@ -DISCORD_TOKEN='' diff --git a/package-lock.json b/package-lock.json index 783e06c..6471bfd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,29 +7,9 @@ "name": "tinan", "license": "MIT", "dependencies": { - "@discordjs/builders": "^0.15.0", - "@octokit/webhooks": "^9.26.0", - "discord.js": "^13.8.0", + "discord.js": "^13.8.1", "dotenv": "^16.0.1", - "eventsource": "^2.0.2", - "nodemon": "^2.0.18", - "octokit": "^1.8.0" - } - }, - "node_modules/@discordjs/builders": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.15.0.tgz", - "integrity": "sha512-w1UfCPzx2iKycn6qh/f0c+PcDpcTHzHr7TXALXu/a4gKHGamiSg3lP8GhYswweSJk/Q5cbFLHZUsnoY3MVKNAg==", - "dependencies": { - "@sapphire/shapeshift": "^3.1.0", - "@sindresorhus/is": "^4.6.0", - "discord-api-types": "^0.33.3", - "fast-deep-equal": "^3.1.3", - "ts-mixer": "^6.0.1", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.9.0" + "octokit": "^1.8.1" } }, "node_modules/@discordjs/collection": { @@ -326,17 +306,6 @@ "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@types/aws-lambda": { "version": "8.10.101", "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.101.tgz", @@ -395,11 +364,6 @@ "@types/node": "*" } }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -412,48 +376,6 @@ "node": ">=8" } }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -520,11 +442,6 @@ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "optional": true }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -550,60 +467,11 @@ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, "node_modules/bottleneck": { "version": "2.19.5", "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/btoa-lite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", @@ -614,121 +482,6 @@ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -737,41 +490,6 @@ "node": ">=6" } }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -789,67 +507,6 @@ "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", "optional": true }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -904,17 +561,6 @@ "node": ">=16.9.0" } }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/dotenv": { "version": "16.0.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", @@ -923,11 +569,6 @@ "node": ">=12" } }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==" - }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -936,27 +577,6 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "engines": { - "node": ">=8" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -979,30 +599,11 @@ "node": ">=0.4.x" } }, - "node_modules/eventsource": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", - "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", - "engines": { - "node": ">=12.0.0" - } - }, "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/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -1035,136 +636,17 @@ } ] }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "optional": true }, - "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/got/node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", - "engines": { - "node": ">=4" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" - } + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "optional": true }, "node_modules/indent-string": { "version": "4.0.0", @@ -1174,131 +656,14 @@ "node": ">=8" } }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -1327,11 +692,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" - }, "node_modules/jsonwebtoken": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", @@ -1372,25 +732,6 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", @@ -1426,14 +767,6 @@ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -1445,28 +778,6 @@ "node": ">=10" } }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -1486,30 +797,6 @@ "node": ">= 0.6" } }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -1553,64 +840,6 @@ "webidl-conversions": "^3.0.0" } }, - "node_modules/nodemon": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.18.tgz", - "integrity": "sha512-uAvrKipi2zAz8E7nkSz4qW4F4zd5fs2wNGsTx+xXlP8KXqd9ucE0vY9wankOsPboeDyuUGN9vsXGV1pLn80l/A==", - "hasInstallScript": true, - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5", - "update-notifier": "^5.1.0" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "engines": { - "node": ">=8" - } - }, "node_modules/octokit": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/octokit/-/octokit-1.8.1.tgz", @@ -1634,86 +863,12 @@ "wrappy": "1" } }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", "optional": true }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -1724,66 +879,6 @@ "node": ">=0.4.x" } }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/registry-auth-token": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", - "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -1817,109 +912,12 @@ "semver": "bin/semver" } }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "optional": true }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dependencies": { - "nopt": "~1.0.10" - }, - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, "node_modules/ts-mixer": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", @@ -1930,41 +928,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/universal-github-app-jwt": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.0.tgz", @@ -1979,47 +942,6 @@ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/url": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", @@ -2030,17 +952,6 @@ "querystring": "0.2.0" } }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/uuid": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", @@ -2063,49 +974,11 @@ "node": ">=10.13.0" } }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "node_modules/ws": { "version": "8.8.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", @@ -2126,14 +999,6 @@ } } }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "engines": { - "node": ">=8" - } - }, "node_modules/xml2js": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", @@ -2160,19 +1025,6 @@ } }, "dependencies": { - "@discordjs/builders": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.15.0.tgz", - "integrity": "sha512-w1UfCPzx2iKycn6qh/f0c+PcDpcTHzHr7TXALXu/a4gKHGamiSg3lP8GhYswweSJk/Q5cbFLHZUsnoY3MVKNAg==", - "requires": { - "@sapphire/shapeshift": "^3.1.0", - "@sindresorhus/is": "^4.6.0", - "discord-api-types": "^0.33.3", - "fast-deep-equal": "^3.1.3", - "ts-mixer": "^6.0.1", - "tslib": "^2.4.0" - } - }, "@discordjs/collection": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.7.0.tgz", @@ -2439,14 +1291,6 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, "@types/aws-lambda": { "version": "8.10.101", "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.101.tgz", @@ -2504,11 +1348,6 @@ "@types/node": "*" } }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, "aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -2518,36 +1357,6 @@ "indent-string": "^4.0.0" } }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "requires": { - "string-width": "^4.1.0" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -2610,11 +1419,6 @@ } } }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -2626,48 +1430,11 @@ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, "bottleneck": { "version": "2.19.5", "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" }, - "boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, "btoa-lite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", @@ -2678,115 +1445,11 @@ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -2801,55 +1464,6 @@ "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", "optional": true }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -2896,24 +1510,11 @@ } } }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "requires": { - "is-obj": "^2.0.0" - } - }, "dotenv": { "version": "16.0.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==" - }, "ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -2922,24 +1523,6 @@ "safe-buffer": "^5.0.1" } }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" - }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -2952,24 +1535,11 @@ "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==", "optional": true }, - "eventsource": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", - "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==" - }, "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==" }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, "form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -2985,190 +1555,28 @@ "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==" }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, "glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "optional": true }, - "global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "requires": { - "ini": "2.0.0" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "dependencies": { - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - } - } - }, "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "optional": true }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - } - }, - "is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" - }, "is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -3191,11 +1599,6 @@ "esprima": "^4.0.0" } }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" - }, "jsonwebtoken": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", @@ -3232,22 +1635,6 @@ "safe-buffer": "^5.0.1" } }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "requires": { - "package-json": "^6.3.0" - } - }, "lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", @@ -3283,11 +1670,6 @@ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -3296,21 +1678,6 @@ "yallist": "^4.0.0" } }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -3324,24 +1691,6 @@ "mime-db": "1.52.0" } }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3376,41 +1725,6 @@ } } }, - "nodemon": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.18.tgz", - "integrity": "sha512-uAvrKipi2zAz8E7nkSz4qW4F4zd5fs2wNGsTx+xXlP8KXqd9ucE0vY9wankOsPboeDyuUGN9vsXGV1pLn80l/A==", - "requires": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5", - "update-notifier": "^5.1.0" - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - }, "octokit": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/octokit/-/octokit-1.8.1.tgz", @@ -3434,123 +1748,18 @@ "wrappy": "1" } }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==" - }, - "pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", "optional": true }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "requires": { - "escape-goat": "^2.0.0" - } - }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", "optional": true }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - } - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "registry-auth-token": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", - "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", - "requires": { - "rc": "1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "requires": { - "rc": "^1.2.8" - } - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -3567,84 +1776,12 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "optional": true }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "requires": { - "nopt": "~1.0.10" - } - }, "ts-mixer": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", @@ -3655,32 +1792,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "^2.0.0" - } - }, "universal-github-app-jwt": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.0.tgz", @@ -3695,37 +1806,6 @@ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" }, - "update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "requires": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, "url": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", @@ -3736,14 +1816,6 @@ "querystring": "0.2.0" } }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", - "requires": { - "prepend-http": "^2.0.0" - } - }, "uuid": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", @@ -3760,51 +1832,17 @@ "graceful-fs": "^4.1.2" } }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "ws": { "version": "8.8.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", "requires": {} }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - }, "xml2js": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", diff --git a/package.json b/package.json index 7a004ec..6b56d3a 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,5 @@ { "name": "tinan", - "scripts": { - "dev": "nodemon src/index.js" - }, "repository": { "type": "git", "url": "https://github.com/Avdan-OS/Tinan.git" @@ -12,12 +9,8 @@ "url": "https://github.com/Avdan-OS/Tinan/issues" }, "dependencies": { - "@discordjs/builders": "^0.15.0", - "@octokit/webhooks": "^9.26.0", - "discord.js": "^13.8.0", + "discord.js": "^13.8.1", "dotenv": "^16.0.1", - "eventsource": "^2.0.2", - "nodemon": "^2.0.18", - "octokit": "^1.8.0" + "octokit": "^1.8.1" } } diff --git a/src/autoDevRecruitment/devRecruiter.js b/src/autoDevRecruitment/devRecruiter.js deleted file mode 100644 index 05d7149..0000000 --- a/src/autoDevRecruitment/devRecruiter.js +++ /dev/null @@ -1,10 +0,0 @@ -const fs = require("fs"); - -module.exports = (payload) => { - console.log("it runs !!"); - let lines; - fetch(payload.compare).then((data) => { - data.replace("", ""); - lines = data; - }); -}; diff --git a/src/autoDevRecruitment/index.js b/src/autoDevRecruitment/index.js deleted file mode 100644 index c2be0a3..0000000 --- a/src/autoDevRecruitment/index.js +++ /dev/null @@ -1,14 +0,0 @@ -const { Webhooks } = require("@octokit/webhooks"); -const handler = require("./devRecruiter"); -const permissonUpdater = require("./permissonProvider"); - - -const webhooks = new Webhooks({ secret: "1111" }) - -webhooks.on("push", ({ id, name, payload }) => { - console.log(name, "event received and ", payload); - handler(payload); - permissonUpdater() -}); - -module.exports = webhooks \ No newline at end of file diff --git a/src/autoDevRecruitment/permissonProvider.js b/src/autoDevRecruitment/permissonProvider.js deleted file mode 100644 index c5797d7..0000000 --- a/src/autoDevRecruitment/permissonProvider.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = () => { - -} \ No newline at end of file diff --git a/src/commands/normal/;-;.js b/src/commands/normal/;-;.js deleted file mode 100644 index 45bf6db..0000000 --- a/src/commands/normal/;-;.js +++ /dev/null @@ -1,7 +0,0 @@ -const { MessageEmbed } = require('discord.js'); - -module.exports = { - callback: (message) => { - message.reply(";-;"); - } -}; diff --git a/src/commands/normal/help.js b/src/commands/normal/help.js index 663ae1d..b8fb721 100644 --- a/src/commands/normal/help.js +++ b/src/commands/normal/help.js @@ -1,13 +1,14 @@ const { MessageEmbed } = require('discord.js'); +const cfg = require('../../config.json'); module.exports = { callback: (message) => { const embed = new MessageEmbed() .setTitle('Help') - .setDescription('There may be bugs, if you find them report on GitHub') + .setDescription('There may be bugs.\nIf you find them, feel free to create an issue on our [GitHub repository](https://github.com/Avdan-OS/Tinan/issues).') .addFields( - { name: 'Prefix', value: process.env.PREFIX }, - { name: 'Test', value: 'repolist, prefix, poll' } + { name: 'Prefix', value: cfg.prefix }, + { name: 'Commands', value: 'loa, setprefix, poll, repolist' }, ) .setColor('BLUE') diff --git a/src/commands/normal/prefix.js b/src/commands/normal/prefix.js deleted file mode 100644 index b2da15d..0000000 --- a/src/commands/normal/prefix.js +++ /dev/null @@ -1,24 +0,0 @@ -const { MessageEmbed, Permissions } = require('discord.js'); - -module.exports = { - callback: (message, args) => { - const embed = new MessageEmbed() - .setTitle(`The current server prefix is ${process.env.PREFIX}`) - .setColor('BLUE') - - if (args[0]) { - if (message.member.permissions.has(Permissions.FLAGS.MANAGE_GUILD)) { - oldPrefix = process.env.PREFIX; - process.env.PREFIX = args[0]; - embed.setTitle(`Prefix changed from ${oldPrefix} to ${process.env.PREFIX}`) - embed.setColor('GREEN') - temp = false; - } else { - embed.setTitle(`Error`) - embed.setDescription(`You don't have sufficient permissions to execute that command`) - embed.setColor('RED') - } - } - message.channel.send({ embeds: [embed] }); - } -}; diff --git a/src/commands/normal/setprefix.js b/src/commands/normal/setprefix.js new file mode 100644 index 0000000..7d21ee1 --- /dev/null +++ b/src/commands/normal/setprefix.js @@ -0,0 +1,27 @@ +const { MessageEmbed, Permissions } = require('discord.js'); +const cfg = require('../../config.json'); + +module.exports = { + callback: (message, args) => { + const embed = new MessageEmbed() + + if (args[0]) { + if (message.member.permissions.has(Permissions.FLAGS.MANAGE_GUILD)) { + oldPrefix = cfg.prefix; + cfg.prefix = args[0]; + embed.setTitle(`Prefix changed from ${oldPrefix} to ${cfg.prefix}`) + embed.setColor('GREEN') + } else { + embed.setTitle('Error') + embed.setDescription("You don't have sufficient permissions to execute that command") + embed.setColor('RED') + } + } else { + embed.setTitle('Error') + embed.setDescription('Specify the prefix!') + embed.setColor('RED') + } + + message.channel.send({ embeds: [embed] }); + } +}; diff --git a/src/commands/slash/help.js b/src/commands/slash/help.js deleted file mode 100644 index a4337c3..0000000 --- a/src/commands/slash/help.js +++ /dev/null @@ -1,18 +0,0 @@ -const { MessageEmbed } = require('discord.js'); - -module.exports = { - name: 'help', - description: 'Get help and information about the bot.', - callback: (interaction) => { - const embed = new MessageEmbed() - .setTitle('Help') - .setDescription('There may be bugs, if you find them: ping goos#1337.') - .addFields( - { name: 'Prefix', value: process.env.PREFIX }, - { name: 'Test', value: 'repolist, prefix, poll' } - ) - .setColor('BLUE') - - interaction.reply({ embeds: [embed] , ephemeral: true }); - } -}; diff --git a/src/commands/slash/loa.js b/src/commands/slash/loa.js index 9529f60..aff0786 100644 --- a/src/commands/slash/loa.js +++ b/src/commands/slash/loa.js @@ -1,5 +1,5 @@ -const config = require('../../config.json'); -const { MessageEmbed, MessageActionRow, MessageButton, Constants, Permissions } = require('discord.js'); +const cfg = require('../../config.json'); +const { MessageEmbed, MessageActionRow, MessageButton, Permissions } = require('discord.js'); module.exports = { name: 'loa', @@ -10,6 +10,18 @@ module.exports = { name: 'apply', description: 'Apply for LOA', options: [ + { + name: 'github', + description: 'Your GitHub username.', + type: 'STRING', + required: true, + }, + { + name: 'figma', + description: 'Your Figma username.', + type: 'STRING', + required: true, + }, { name: 'reason', description: 'The reason for your leave', @@ -33,22 +45,32 @@ module.exports = { callback: async (interaction) => { const options = interaction.options; if (options._subcommand === 'apply') { - if (!interaction.member.roles.cache.find((r) => r.name === "Developer")) { + if (!interaction.member.roles.cache.find((r) => r.name === 'Developer')) { return interaction.reply({ content: 'You need the Developer role to apply for LOA', ephemeral: true }); } - if (interaction.member.roles.cache.find((r) => r.name === "[LOA]")) { + if (interaction.member.roles.cache.find((r) => r.name === '[LOA]')) { return interaction.reply({ content: 'You are already set to LOA', ephemeral: true }); } const dev = interaction.member; - const loaRole = interaction.guild.roles.cache.find((r) => r.name === "[LOA]"); - const loaChannel = interaction.guild.channels.cache.find((c) => c.id === config.loaReports); + const loaRole = interaction.guild.roles.cache.find((r) => r.name === '[LOA]'); + const loaChannel = interaction.guild.channels.cache.find((c) => c.id === cfg.loaReports); const embed = new MessageEmbed({ title: `LOA pending`, color: '#0099ff', fields: [ + { + name: 'GitHub username', + value: options.getString('github'), + inline: true, + }, + { + name: 'Figma Username', + value: options.getString('figma'), + inline: true, + }, { name: 'Reason', value: options.getString('reason'), @@ -83,27 +105,27 @@ module.exports = { dev.setNickname(`[LOA] ${dev.displayName}`); dev.roles.add(loaRole); embed.setTitle(`LOA granted by \`${collection.first().member.user.tag}\``) - embed.setColor("GREEN") + embed.setColor('GREEN') message.edit({ embeds: [embed], components: [] }); } else { embed.setTitle(`LOA denied by \`${collection.first().member.user.tag}\``) - embed.setColor("RED") + embed.setColor('RED') message.edit({ embeds: [embed], components: [] }); } }) }); } else if (options._subcommand === 'return') { - if (!interaction.member.roles.cache.find((r) => r.name === "Developer")) { + if (!interaction.member.roles.cache.find((r) => r.name === 'Developer')) { return interaction.reply({ content: 'You need the Developer role to return from LOA', ephemeral: true }); } - if (!interaction.member.roles.cache.find((r) => r.name === "[LOA]")) { + if (!interaction.member.roles.cache.find((r) => r.name === '[LOA]')) { return interaction.reply({ content: 'You are not set to LOA', ephemeral: true }); } const dev = interaction.member; - const loaRole = interaction.guild.roles.cache.find((r) => r.name === "[LOA]"); - const loaChannel = interaction.guild.channels.cache.find((c) => c.id === config.loaReports); + const loaRole = interaction.guild.roles.cache.find((r) => r.name === '[LOA]'); + const loaChannel = interaction.guild.channels.cache.find((c) => c.id === cfg.loaReports); const embed = new MessageEmbed({ title: `Returned from their LOA`, diff --git a/src/commands/slash/poll.js b/src/commands/slash/poll.js index 6bcf384..31bba78 100644 --- a/src/commands/slash/poll.js +++ b/src/commands/slash/poll.js @@ -118,12 +118,12 @@ module.exports = { description: `Poll ends `, color: 'BLUE', }); - if ( interaction.member.permissions.has(Permissions.FLAGS.MANAGE_EVENTS)) { - if ( interaction.options._subcommand == "create" ) { + if (interaction.member.permissions.has(Permissions.FLAGS.MANAGE_EVENTS)) { + if (interaction.options._subcommand == 'create') { embed.addFields([ { name: 'Total votes', - value: "0", + value: '0', inline: true, } ]) @@ -131,7 +131,7 @@ module.exports = { name: interaction.member.displayName, iconURL: interaction.member.displayAvatarURL() }) - embed.setFooter({ text: "Poll id: "+pollId.toString() }) + embed.setFooter({ text: 'Poll id: ' + pollId.toString() }) const getButton = (buttonID) => interaction.options.getString(buttonID); const row1 = new MessageActionRow(); const row2 = new MessageActionRow(); @@ -169,7 +169,7 @@ module.exports = { interaction.reply({ content: 'The poll has been created', ephemeral: true }) const collector = interaction.channel.createMessageComponentCollector({ time: interaction.options.getInteger('time') * 1000 }); collector.client.on('interactionCreate', (interact) => { - if (interact.isCommand()) if (interact.commandName == "poll") if (interact.options._subcommand == "end") if (interact.options.getInteger("id") == pollId) collector.stop() + if (interact.isCommand()) if (interact.commandName == 'poll') if (interact.options._subcommand == 'end') if (interact.options.getInteger('id') == pollId) collector.stop() }) collector.on('collect', () => { embed.fields[0].value = Object.values(pollsList[pollId]).length.toString() @@ -189,24 +189,22 @@ module.exports = { winners.push(interaction.options.getString(i.toString())); } } - const totalVotes = embed.fields[0].value - //embed.setTitle(`Poll ended: ${interaction.options.getString('subject')}`) + const totalVotes = embed.fields[0].value; embed.setDescription(`Poll ended `) embed.setFields([]) - if (winners.length == 1) embed.addFields([{ name: "Winner", value: `**${winners}** with **${maxLength}** votes`, inline: true }]) - else if (winners.length > 1) embed.addFields([{ name: "Winners", value: `**${winners}** with **${maxLength}** votes each`, inline: true }]) + if (winners.length == 1) embed.addFields([{ name: 'Winner', value: `**${winners}** with **${maxLength}** votes`, inline: true }]) + else if (winners.length > 1) embed.addFields([{ name: 'Winners', value: `**${winners}** with **${maxLength}** votes each`, inline: true }]) else embed.setDescription(`There was no winner (no votes have been performed)`) - embed.addFields([{ name: "Total votes", value: totalVotes, inline: true }]) - //embed.setFooter({ text: "" }) + embed.addFields([{ name: 'Total votes', value: totalVotes, inline: true }]) message.edit({ embeds: [embed], components: [] }); delete pollsList[pollId]; } }); }); } else { - embed.setTitle(`Poll \`${interaction.options.getInteger("id").toString()}\` was terminated by \`${interaction.member.user.tag}\``) - if (interaction.options.getString("reason")) embed.addFields([{ name: "Reason", value: interaction.options.getString("reason"), inline: true }]).setDescription("") - else embed.setDescription("No reason specified") + embed.setTitle(`Poll \`${interaction.options.getInteger('id').toString()}\` was terminated by \`${interaction.member.user.tag}\``) + if (interaction.options.getString('reason')) embed.addFields([{ name: 'Reason', value: interaction.options.getString('reason'), inline: true }]).setDescription('') + else embed.setDescription('No reason specified') interaction.reply({ embeds: [embed] }) } } else { diff --git a/src/commands/slash/prefix.js b/src/commands/slash/setprefix.js similarity index 54% rename from src/commands/slash/prefix.js rename to src/commands/slash/setprefix.js index 19249fb..eac17ec 100644 --- a/src/commands/slash/prefix.js +++ b/src/commands/slash/setprefix.js @@ -1,34 +1,31 @@ const { MessageEmbed, Constants, Permissions } = require('discord.js'); +const cfg = require('../../config.json'); module.exports = { - name: 'prefix', - description: 'View or set the bot prefix.', + name: 'setprefix', + description: 'Sets the bot prefix.', options: [ { name: 'prefix', - description: 'Changes the bot prefix', - required: false, + description: 'Changes the bot prefix.', + required: true, type: Constants.ApplicationCommandOptionTypes.STRING } ], callback: (interaction) => { - let temp = true; const embed = new MessageEmbed() - .setTitle(`The current server prefix is ${process.env.PREFIX}`) - .setColor('BLUE') if (interaction.options.getString('prefix')) { if (interaction.member.permissions.has(Permissions.FLAGS.MANAGE_GUILD)) { - oldPrefix = process.env.PREFIX; - process.env.PREFIX = interaction.options.getString('prefix'); - embed.setTitle(`Prefix changed from ${oldPrefix} to ${process.env.PREFIX}`) + oldPrefix = cfg.prefix; + cfg.prefix = interaction.options.getString('prefix'); + embed.setTitle(`Prefix changed from ${oldPrefix} to ${cfg.prefix}`) embed.setColor('GREEN') - temp = false; } else { embed.setTitle(`Error`) embed.setDescription(`You don't have sufficient permissions to execute that command`) embed.setColor('RED') } } - interaction.reply({ embeds: [embed] , ephemeral: temp }); + interaction.reply({ embeds: [embed] }); } }; diff --git a/src/config.json b/src/config.json index 4530247..575c2e7 100644 --- a/src/config.json +++ b/src/config.json @@ -1,5 +1,5 @@ { - "prefix": ";", + "prefix": "!", "logsChannel": "979473328622403674", "moderationChannel": "988414226299228201", "loaReports": "989611315893010502" diff --git a/src/examples/normal/button.js b/src/examples/normal/button.js index 5bbcc7a..7b3a98f 100644 --- a/src/examples/normal/button.js +++ b/src/examples/normal/button.js @@ -2,7 +2,7 @@ const { MessageEmbed, MessageActionRow, MessageButton } = require('discord.js'); /** * @file This command is an example that includes creating and responding to buttons. Normal command edition. - * @author Serge + * @author AvdanOS */ module.exports = { diff --git a/src/examples/normal/embed.js b/src/examples/normal/embed.js index ae838e2..5cb9dc5 100644 --- a/src/examples/normal/embed.js +++ b/src/examples/normal/embed.js @@ -2,7 +2,7 @@ const { MessageEmbed } = require('discord.js'); /** * @file This is an example of embeds. Normal command edition. - * @author Serge + * @author AvdanOS */ module.exports = { diff --git a/src/examples/normal/randomResponse.js b/src/examples/normal/randomResponse.js index 6e75025..3fc1759 100644 --- a/src/examples/normal/randomResponse.js +++ b/src/examples/normal/randomResponse.js @@ -2,7 +2,7 @@ const { MessageEmbed } = require('discord.js'); /** * @file This is an example of random responses. Normal command edition. - * @author Serge + * @author AvdanOS */ module.exports = { diff --git a/src/examples/slash/button.js b/src/examples/slash/button.js index 8e63808..1d0ed33 100644 --- a/src/examples/slash/button.js +++ b/src/examples/slash/button.js @@ -2,7 +2,7 @@ const { MessageEmbed, MessageActionRow, MessageButton } = require('discord.js'); /** * @file This command is an example that includes creating and responding to buttons. Slash command edition. - * @author Serge + * @author AvdanOS */ module.exports = { diff --git a/src/examples/slash/embed.js b/src/examples/slash/embed.js index 89b1d35..aa87fde 100644 --- a/src/examples/slash/embed.js +++ b/src/examples/slash/embed.js @@ -2,7 +2,7 @@ const { MessageEmbed } = require('discord.js'); /** * @file This is an example of embeds. Slash command edition. - * @author Serge + * @author AvdanOS */ module.exports = { diff --git a/src/examples/slash/option.js b/src/examples/slash/option.js index 356e486..55e8b7e 100644 --- a/src/examples/slash/option.js +++ b/src/examples/slash/option.js @@ -2,7 +2,7 @@ const { MessageEmbed, Constants } = require('discord.js'); /** * @file This is an example of options. - * @author Serge + * @author AvdanOS */ module.exports = { diff --git a/src/examples/slash/randomResponse.js b/src/examples/slash/randomResponse.js index 93cdfea..58b1559 100644 --- a/src/examples/slash/randomResponse.js +++ b/src/examples/slash/randomResponse.js @@ -2,7 +2,7 @@ const { MessageEmbed } = require('discord.js'); /** * @file This is an example of random responses. Slash command edition. - * @author Serge + * @author AvdanOS */ module.exports = { diff --git a/src/handlers/cmdHandler.js b/src/handlers/cmdHandler.js index bf0eb97..e644d95 100644 --- a/src/handlers/cmdHandler.js +++ b/src/handlers/cmdHandler.js @@ -1,20 +1,17 @@ const { MessageEmbed } = require('discord.js'); const getFiles = require('../utils/getFiles'); -const resolve = require('path').resolve -require('dotenv').config(); -const config = require('../config.json'); - -const path = '/commands'; +const cfg = require('../config.json'); module.exports = (client) => { + const path = '/commands'; const commands = []; const commandFiles = getFiles(`${path}/normal`, '.js'); const channelRegex = [ - ["964459799817363497", /\*\*Title:\*\* .+\n\*\*Information:\*\* .+/gm], - ["988920473897279498", /\*\*Title:\*\* .+\n\*\*Information:\*\* .+/gm] + ['964459799817363497', /\*\*Title:\*\* .+\n\*\*Information:\*\* .+/gm], + ['988920473897279498', /\*\*Title:\*\* .+\n\*\*Information:\*\* .+/gm] ] - global.pollsList = {}; + global.pollsList = {}; global.multiReact = (msg, reactions) => { for (const i of reactions) if (i != ' ') msg.react(i) } @@ -24,38 +21,32 @@ module.exports = (client) => { const commandName = split[split.length - 1].replace('.js', ''); commands[commandName.toLowerCase()] = require(command); } + client.on('messageCreate', (message) => { - const extCommands = [ [['bread'], () => { multiReact(message, 'šŸžšŸ‡§ šŸ‡· šŸ‡Ŗ šŸ‡¦ šŸ‡©šŸ‘') }], [['pineapple'], () => message.react('šŸ')], [['cheese'], () => message.react('šŸ§€')], [['forgor'], () => message.react('šŸ’€')], - [["download avdan os", "avdan os iso"],{ - embeds: [ - new MessageEmbed() - .setDescription("We have not finished developing AvdanOS, so there is not a download yet.\nWe are currently working on the **window manager**.\nSubscribe to [our Youtube channel](https://www.youtube.com/channel/UCKt_7dN4Y7SUy2gMJWf6suA) for updates on our development.") - .setColor("BLUE") - ] - } - ], - [ - ["how do i become developer", "how do i become a developer"], { - embeds: [ - new MessageEmbed() - .setDescription("To join the team please go to #join-the-team, you must meet the requirements specified there.") - .setColor("BLUE") - ] - } - ] + [['prefix'], { embeds: [ + new MessageEmbed() + .setTitle(`The current server prefix is ${cfg.prefix}`) + .setColor('BLUE') + ]}], + [['download avdan os', 'avdan os iso'], { embeds: [ + new MessageEmbed() + .setDescription('We have not finished developing AvdanOS, so there is not a download yet.\nWe are currently working on the **window manager**.\nSubscribe to [our Youtube channel](https://www.youtube.com/channel/UCKt_7dN4Y7SUy2gMJWf6suA) for updates on our development.') + .setColor('BLUE') + ]}], + // [[/this has been (.+) in 100 seconds/], () => message.channel.send('hit the like button and subscribe if you want to see more short videos like this thanks for watching and i will see you in the next one')] ] if (!message.author.bot) { - if (!message.content.startsWith(process.env.PREFIX)) { + if (!message.content.startsWith(cfg.prefix)) { for (const chann of channelRegex){ if (chann[0] == message.channelId) { if (!message.content.match(chann[1])/* && !message.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR)*/) { message.delete() - message.guild.channels.cache.find((c) => c.id === config.moderationChannel).send({ embeds: [new MessageEmbed() + message.guild.channels.cache.find((c) => c.id === cfg.moderationChannel).send({ embeds: [new MessageEmbed() .setTitle(`Regex not matched`) .setDescription(`Message deleted in <#${message.channelId}> because it didn't match the following regex :\n\`${chann[1].toString()}\``) .setAuthor({ @@ -75,20 +66,20 @@ module.exports = (client) => { } } for (const msg of extCommands) { - for (const msgEvent of msg[0]) { //If we need multiple triggers, that's why each element of extCommands have a list as first element + for (const msgEvent of msg[0]) { // If we need multiple triggers, that's why each element of extCommands have a list as first element let unmatch = false - for (const word of msgEvent.split(" ")) { //Uses word by word detection instead of full trigger detection + for (const word of msgEvent.split(' ')) { // Uses word by word detection instead of full trigger detection if (!message.content.toLowerCase().includes(word)) unmatch = true } if (!unmatch) { - if (typeof(msg[1]) != 'string' && typeof(msg[1]) != "object") return msg[1](); + if (typeof(msg[1]) != 'string' && typeof(msg[1]) != 'object') return msg[1](); else return message.reply(msg[1]); } } }; return; } else { - const args = message.content.slice(process.env.PREFIX.length).trim().split(/ +/); + const args = message.content.slice(cfg.prefix.length).trim().split(/ +/); const commandName = args.shift().toLowerCase(); try { commands[commandName].callback(message, ...args); @@ -104,7 +95,8 @@ module.exports = (client) => { } } else return; }); - client.on('messageUpdate', (oldMessage, message) => { + + client.on('messageUpdate', (message) => { for (const chann of channelRegex){ if (chann[0] == message.channelId) { if (!message.content.match(chann[1])/* && !message.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR)*/) { @@ -122,9 +114,11 @@ module.exports = (client) => { slashCommands[slashCommandFile.name.toLowerCase()] = slashCommandFile; slashCommands.push(slashCommandFile); }; + for (const guildID of client.guilds.cache.keys()) { const guild = client.guilds.cache.get(guildID); guild.commands.set(slashCommands); + client.on('interactionCreate', (interaction) => { if (interaction.isCommand() && interaction.guildId == guildID) { try { diff --git a/src/index.js b/src/index.js index 6362008..b0c488e 100644 --- a/src/index.js +++ b/src/index.js @@ -1,8 +1,6 @@ const { Client, Intents } = require('discord.js'); require('dotenv').config(); -const commands = require('./commands/cmdHandler'); -const webhooks = require("./autoDevRecruitment/index") -const EventSource = require('eventsource') +const commands = require('./handlers/cmdHandler'); const client = new Client({ intents: [ @@ -10,22 +8,12 @@ const client = new Client({ Intents.FLAGS.GUILD_MESSAGES, ] }); +module.exports = client; -events(client); -client.login(process.env.DISCORD_TOKEN); - -const webhookProxyUrl = "https://smee.io/s4GOrijLPs24DYA"; -const source = new EventSource(webhookProxyUrl); -source.onmessage = (event) => { - const webhookEvent = JSON.parse(event.data); - webhooks - .verifyAndReceive({ - id: webhookEvent["x-request-id"], - name: webhookEvent["x-github-event"], - signature: webhookEvent["x-hub-signature"], - payload: webhookEvent.body, - }) - .catch(console.error); -}; +client.on('ready', () => { + commands(client); -//require("http").createServer(createNodeMiddleware(webhooks)).listen(3000); + client.user.setPresence({ activities: [{ name: 'discord.gg/avdanos', type: 'WATCHING' }] }); + console.log('Start completed.'); +}); +client.login(process.env.DISCORD_TOKEN); From bc2bc5ad1dd17701cfc2e3b1a5b13a1df058d56b Mon Sep 17 00:00:00 2001 From: MrSerge01 Date: Sat, 9 Jul 2022 13:33:49 +0600 Subject: [PATCH 3/6] remove slash commands and do more changes --- CONTRIBUTING.md | 6 +- README.md | 11 ++- src/commands/{slash => }/loa.js | 61 +++++------- src/commands/normal/help.js | 17 ---- src/commands/normal/repolist.js | 27 ------ src/commands/normal/setprefix.js | 27 ------ src/commands/{slash => }/poll.js | 0 src/commands/{slash => }/repolist.js | 0 src/commands/slash/setprefix.js | 31 ------ src/config.json | 1 - src/examples/{slash => }/button.js | 2 +- src/examples/{slash => }/embed.js | 2 +- src/examples/normal/button.js | 47 --------- src/examples/normal/embed.js | 22 ----- src/examples/normal/randomResponse.js | 22 ----- src/examples/{slash => }/option.js | 0 src/examples/{slash => }/randomResponse.js | 2 +- src/handlers/cmdHandler.js | 108 ++++++++------------- 18 files changed, 74 insertions(+), 312 deletions(-) rename src/commands/{slash => }/loa.js (74%) delete mode 100644 src/commands/normal/help.js delete mode 100644 src/commands/normal/repolist.js delete mode 100644 src/commands/normal/setprefix.js rename src/commands/{slash => }/poll.js (100%) rename src/commands/{slash => }/repolist.js (100%) delete mode 100644 src/commands/slash/setprefix.js rename src/examples/{slash => }/button.js (93%) rename src/examples/{slash => }/embed.js (90%) delete mode 100644 src/examples/normal/button.js delete mode 100644 src/examples/normal/embed.js delete mode 100644 src/examples/normal/randomResponse.js rename src/examples/{slash => }/option.js (100%) rename src/examples/{slash => }/randomResponse.js (88%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f230471..e9ff139 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -28,11 +28,11 @@ Step 4: Click on the "Bot" button on the left side of your screen and create a n ### Step 5. Invite your bot to your server. -Step 5.1: Click on "OAuth2", afterwards "URL Generator". Select `bot` and `applications.commands`. +Step 5.1: Click on "OAuth2", afterward "URL Generator". Select `bot` and `applications.commands`. Step 5.2: Select "Administrator" in the list of bot permissions. -Step 5.3: Copy the link in the bottom of the page and paste it into your search bar. Select the server where you want your bot to be in the dropdown list. +Step 5.3: Copy the link at the bottom of the page and paste it into your search bar. Select the server where you want your bot to be in the dropdown list. Step 6: Reset your bot's token and copy it. It will be used later. @@ -56,7 +56,7 @@ Step 10: Paste the channel's ID into your config.json file. Step 11: In your terminal, run `npm install`. It will install all the modules needed to run the bot. -Step 12: Run `cd src` and afterwards `node .` to launch the bot. +Step 12: Run `cd src` and afterward `node .` to launch the bot. ## How to make commands diff --git a/README.md b/README.md index 8f43647..4bbcdbb 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,22 @@ -# Important: we are migrating to a new Discord server [.gg/avdanos](https://discord.gg/avdanos) +# Important: we are migrating to a new [Discord server.](https://discord.gg/avdanos) # Tinan -The Discord bot for AvdanOS Community Discord server, built with discord.js v13.8.1. +The Discord bot for the [AvdanOS Community Discord server](https://discord.gg/avdanos), built with discord.js v13.8.1.
![Banner](https://raw.githubusercontent.com/Avdan-OS/.github/main/banner/Tinan.png) +![yes](https://img.shields.io/badge/Node-%3E%3D16.9-informational) +![yes1](https://img.shields.io/badge/Notice-NO%20COMMIT%2C%20PR%20ONLY-critical) +
# Current state -Currently, we are starting to rewrite the bot to TypeScript. +Currently, we are planning to rewrite the bot to TypeScript. # Contributing -To contribute, you can see `CONTRIBUTING.md`. +See `CONTRIBUTING.md` for contributing guidelines. diff --git a/src/commands/slash/loa.js b/src/commands/loa.js similarity index 74% rename from src/commands/slash/loa.js rename to src/commands/loa.js index aff0786..e5b32d3 100644 --- a/src/commands/slash/loa.js +++ b/src/commands/loa.js @@ -1,4 +1,4 @@ -const cfg = require('../../config.json'); +const cfg = require('../config.json'); const { MessageEmbed, MessageActionRow, MessageButton, Permissions } = require('discord.js'); module.exports = { @@ -42,11 +42,13 @@ module.exports = { description: 'Return from LOA', }, ], + callback: async (interaction) => { const options = interaction.options; + if (options._subcommand === 'apply') { - if (!interaction.member.roles.cache.find((r) => r.name === 'Developer')) { - return interaction.reply({ content: 'You need the Developer role to apply for LOA', ephemeral: true }); + if (!interaction.member.roles.cache.find((r) => r.name === 'Developer' || 'Designer')) { + return interaction.reply({ content: 'You need the **Developer** or the **Designer** role to apply for LOA', ephemeral: true }); } if (interaction.member.roles.cache.find((r) => r.name === '[LOA]')) { @@ -57,35 +59,17 @@ module.exports = { const loaRole = interaction.guild.roles.cache.find((r) => r.name === '[LOA]'); const loaChannel = interaction.guild.channels.cache.find((c) => c.id === cfg.loaReports); - const embed = new MessageEmbed({ - title: `LOA pending`, - color: '#0099ff', - fields: [ - { - name: 'GitHub username', - value: options.getString('github'), - inline: true, - }, - { - name: 'Figma Username', - value: options.getString('figma'), - inline: true, - }, - { - name: 'Reason', - value: options.getString('reason'), - inline: true, - }, - { - name: 'Return', - value: options.getString('return'), - inline: true, - }, - ], - }).setAuthor({ - name: interaction.member.user.tag, - iconURL: interaction.member.displayAvatarURL() - }); + const embed = new MessageEmbed() + .setTitle('LOA pending.') + .setColor('#0099ff') + .setFields( + { name: 'GitHub username', value: options.getString('github'), inline: true }, + { name: 'Figma Username', value: options.getString('figma'), inline: true }, + { name: 'Reason', value: options.getString('reason'), inline: true }, + { name: 'Return', value: options.getString('return'), inline: true }, + ) + .setAuthor({ name: interaction.member.user.tag, iconURL: interaction.member.displayAvatarURL() }); + const buttons = new MessageActionRow().addComponents( new MessageButton() .setCustomId('accept') @@ -95,7 +79,8 @@ module.exports = { .setCustomId('deny') .setLabel('Deny') .setStyle('SECONDARY'), - ) + ) + const filter = (ButtonInteraction) => { return ButtonInteraction.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR); } loaChannel.send({ embeds: [embed], components: [buttons] }).then( message => { interaction.reply({ content: 'LOA asked successfully.', ephemeral: true }); @@ -115,12 +100,12 @@ module.exports = { }) }); } else if (options._subcommand === 'return') { - if (!interaction.member.roles.cache.find((r) => r.name === 'Developer')) { - return interaction.reply({ content: 'You need the Developer role to return from LOA', ephemeral: true }); + if (!interaction.member.roles.cache.find((r) => r.name === 'Developer' || 'Designer')) { + return interaction.reply({ content: 'You need the **Developer** or the **Designer** role to return from LOA.', ephemeral: true }); } if (!interaction.member.roles.cache.find((r) => r.name === '[LOA]')) { - return interaction.reply({ content: 'You are not set to LOA', ephemeral: true }); + return interaction.reply({ content: 'You are not set to LOA.', ephemeral: true }); } const dev = interaction.member; @@ -128,7 +113,7 @@ module.exports = { const loaChannel = interaction.guild.channels.cache.find((c) => c.id === cfg.loaReports); const embed = new MessageEmbed({ - title: `Returned from their LOA`, + title: `Returned from their LOA.`, color: '#0099ff', }).setAuthor({ name: interaction.member.user.tag, @@ -139,7 +124,7 @@ module.exports = { await dev.roles.remove(loaRole); await loaChannel.send({ embeds: [embed] }); - return interaction.reply({ content: 'Returned from LOA\nā„¹ It seems that your nickname was altered during your LOA, no actions will be executed on your nickname', ephemeral: true }); + return interaction.reply({ content: 'Returned from LOA.\nā„¹ It seems that your nickname was altered during your LOA, no actions will be executed on your nickname.', ephemeral: true }); } try { diff --git a/src/commands/normal/help.js b/src/commands/normal/help.js deleted file mode 100644 index b8fb721..0000000 --- a/src/commands/normal/help.js +++ /dev/null @@ -1,17 +0,0 @@ -const { MessageEmbed } = require('discord.js'); -const cfg = require('../../config.json'); - -module.exports = { - callback: (message) => { - const embed = new MessageEmbed() - .setTitle('Help') - .setDescription('There may be bugs.\nIf you find them, feel free to create an issue on our [GitHub repository](https://github.com/Avdan-OS/Tinan/issues).') - .addFields( - { name: 'Prefix', value: cfg.prefix }, - { name: 'Commands', value: 'loa, setprefix, poll, repolist' }, - ) - .setColor('BLUE') - - message.channel.send({ embeds: [embed] }); - } -}; diff --git a/src/commands/normal/repolist.js b/src/commands/normal/repolist.js deleted file mode 100644 index c69c8a6..0000000 --- a/src/commands/normal/repolist.js +++ /dev/null @@ -1,27 +0,0 @@ -const { MessageEmbed } = require('discord.js'); -const { Octokit } = require('octokit'); -require('dotenv').config(); - -module.exports = { - callback: async (message) => { - const octokit = new Octokit({ auth: process.env.GITHUB_API_KEY }); - - await octokit.request('GET /orgs/{org}/repos', { - org: 'Avdan-OS' - }) - .then((data) => { - let embed = new MessageEmbed() - .setTitle('Repository list') - .setColor('BLUE') - .setFooter({ text: 'Click on an arrow to open the corresponding repository' }) - - data.data.forEach(dataChildren => { - dataChildren.description = dataChildren.description || "N/A" - embed.addFields( - { name: `${dataChildren.name}`, value: `[>](https://github.com/Avdan-OS/${dataChildren.name}) ${dataChildren.description}` } - ) - }) - message.channel.send({ embeds: [embed] }); - }); - } -}; \ No newline at end of file diff --git a/src/commands/normal/setprefix.js b/src/commands/normal/setprefix.js deleted file mode 100644 index 7d21ee1..0000000 --- a/src/commands/normal/setprefix.js +++ /dev/null @@ -1,27 +0,0 @@ -const { MessageEmbed, Permissions } = require('discord.js'); -const cfg = require('../../config.json'); - -module.exports = { - callback: (message, args) => { - const embed = new MessageEmbed() - - if (args[0]) { - if (message.member.permissions.has(Permissions.FLAGS.MANAGE_GUILD)) { - oldPrefix = cfg.prefix; - cfg.prefix = args[0]; - embed.setTitle(`Prefix changed from ${oldPrefix} to ${cfg.prefix}`) - embed.setColor('GREEN') - } else { - embed.setTitle('Error') - embed.setDescription("You don't have sufficient permissions to execute that command") - embed.setColor('RED') - } - } else { - embed.setTitle('Error') - embed.setDescription('Specify the prefix!') - embed.setColor('RED') - } - - message.channel.send({ embeds: [embed] }); - } -}; diff --git a/src/commands/slash/poll.js b/src/commands/poll.js similarity index 100% rename from src/commands/slash/poll.js rename to src/commands/poll.js diff --git a/src/commands/slash/repolist.js b/src/commands/repolist.js similarity index 100% rename from src/commands/slash/repolist.js rename to src/commands/repolist.js diff --git a/src/commands/slash/setprefix.js b/src/commands/slash/setprefix.js deleted file mode 100644 index eac17ec..0000000 --- a/src/commands/slash/setprefix.js +++ /dev/null @@ -1,31 +0,0 @@ -const { MessageEmbed, Constants, Permissions } = require('discord.js'); -const cfg = require('../../config.json'); - -module.exports = { - name: 'setprefix', - description: 'Sets the bot prefix.', - options: [ - { - name: 'prefix', - description: 'Changes the bot prefix.', - required: true, - type: Constants.ApplicationCommandOptionTypes.STRING - } - ], - callback: (interaction) => { - const embed = new MessageEmbed() - if (interaction.options.getString('prefix')) { - if (interaction.member.permissions.has(Permissions.FLAGS.MANAGE_GUILD)) { - oldPrefix = cfg.prefix; - cfg.prefix = interaction.options.getString('prefix'); - embed.setTitle(`Prefix changed from ${oldPrefix} to ${cfg.prefix}`) - embed.setColor('GREEN') - } else { - embed.setTitle(`Error`) - embed.setDescription(`You don't have sufficient permissions to execute that command`) - embed.setColor('RED') - } - } - interaction.reply({ embeds: [embed] }); - } -}; diff --git a/src/config.json b/src/config.json index 575c2e7..4daa902 100644 --- a/src/config.json +++ b/src/config.json @@ -1,5 +1,4 @@ { - "prefix": "!", "logsChannel": "979473328622403674", "moderationChannel": "988414226299228201", "loaReports": "989611315893010502" diff --git a/src/examples/slash/button.js b/src/examples/button.js similarity index 93% rename from src/examples/slash/button.js rename to src/examples/button.js index 1d0ed33..c2f3a0a 100644 --- a/src/examples/slash/button.js +++ b/src/examples/button.js @@ -1,7 +1,7 @@ const { MessageEmbed, MessageActionRow, MessageButton } = require('discord.js'); /** - * @file This command is an example that includes creating and responding to buttons. Slash command edition. + * @file This is an example that includes creating and responding to buttons. * @author AvdanOS */ diff --git a/src/examples/slash/embed.js b/src/examples/embed.js similarity index 90% rename from src/examples/slash/embed.js rename to src/examples/embed.js index aa87fde..8d53051 100644 --- a/src/examples/slash/embed.js +++ b/src/examples/embed.js @@ -1,7 +1,7 @@ const { MessageEmbed } = require('discord.js'); /** - * @file This is an example of embeds. Slash command edition. + * @file This is an example of an embed. * @author AvdanOS */ diff --git a/src/examples/normal/button.js b/src/examples/normal/button.js deleted file mode 100644 index 7b3a98f..0000000 --- a/src/examples/normal/button.js +++ /dev/null @@ -1,47 +0,0 @@ -const { MessageEmbed, MessageActionRow, MessageButton } = require('discord.js'); - -/** - * @file This command is an example that includes creating and responding to buttons. Normal command edition. - * @author AvdanOS - */ - -module.exports = { - callback: (message) => { - let embed = new MessageEmbed() - .setTitle('example') - .setDescription('this is an example of buttons') - .setColor('BLUE') - - const buttons = new MessageActionRow().addComponents( - new MessageButton() - .setCustomId('primary') - .setLabel('example of a primary button') - .setStyle('PRIMARY'), - new MessageButton() - .setCustomId('secondary') - .setLabel('example of a secondary button') - .setStyle('SECONDARY') - ) - - message.channel.send({ embeds: [embed], components: [buttons] }); - - const filter = (ButtonInteraction) => { - return message.author.id != ButtonInteraction.user.id || message.author.id == ButtonInteraction.user.id; - } - const collector = message.channel.createMessageComponentCollector({ filter, max: 1, time: 30000 }); - - collector.on('end', (collection) => { - if (collection.first().customId == 'primary') { - embed.setTitle('you clicked a primary button') - embed.setDescription('you clicked a primary button') - - message.channel.send({ embeds: [embed] }); - } else { - embed.setTitle('you clicked a secondary button') - embed.setDescription('you clicked a secondary button') - - message.channel.send({ embeds: [embed] }); - } - }) - } -}; diff --git a/src/examples/normal/embed.js b/src/examples/normal/embed.js deleted file mode 100644 index 5cb9dc5..0000000 --- a/src/examples/normal/embed.js +++ /dev/null @@ -1,22 +0,0 @@ -const { MessageEmbed } = require('discord.js'); - -/** - * @file This is an example of embeds. Normal command edition. - * @author AvdanOS - */ - -module.exports = { - callback: (message) => { - const embed = new MessageEmbed() - .setTitle('example') - .setDescription('this is an example') - .addFields( - { name: 'field example 1', value: 'field example 1' }, - { name: 'field example 2', value: 'field example 2' } - ) - .setFooter({ text: 'footer example' }) - .setColor('BLUE') - - message.channel.send({ embeds: [embed] }); - } -}; diff --git a/src/examples/normal/randomResponse.js b/src/examples/normal/randomResponse.js deleted file mode 100644 index 3fc1759..0000000 --- a/src/examples/normal/randomResponse.js +++ /dev/null @@ -1,22 +0,0 @@ -const { MessageEmbed } = require('discord.js'); - -/** - * @file This is an example of random responses. Normal command edition. - * @author AvdanOS - */ - -module.exports = { - callback: (message) => { - const messages = [ - 'example', - 'wow, this is another message?', - 'hello world' - ]; - const title = messages[Math.floor(Math.random() * messages.length)]; - const embed = new MessageEmbed() - .setTitle(title) - .setColor('BLUE') - - message.channel.send({ embeds: [embed] }); - } -}; diff --git a/src/examples/slash/option.js b/src/examples/option.js similarity index 100% rename from src/examples/slash/option.js rename to src/examples/option.js diff --git a/src/examples/slash/randomResponse.js b/src/examples/randomResponse.js similarity index 88% rename from src/examples/slash/randomResponse.js rename to src/examples/randomResponse.js index 58b1559..40c1180 100644 --- a/src/examples/slash/randomResponse.js +++ b/src/examples/randomResponse.js @@ -1,7 +1,7 @@ const { MessageEmbed } = require('discord.js'); /** - * @file This is an example of random responses. Slash command edition. + * @file This is an example of random responses. * @author AvdanOS */ diff --git a/src/handlers/cmdHandler.js b/src/handlers/cmdHandler.js index 54a35a4..73766cf 100644 --- a/src/handlers/cmdHandler.js +++ b/src/handlers/cmdHandler.js @@ -3,9 +3,6 @@ const getFiles = require('../utils/getFiles'); const cfg = require('../config.json'); module.exports = (client) => { - const path = '/commands'; - const commands = []; - const commandFiles = getFiles(`${path}/normal`, '.js'); const channelRegex = [ ['964459799817363497', /\*\*Title:\*\* .+\n\*\*Information:\*\* .+/gm], ['988920473897279498', /\*\*Title:\*\* .+\n\*\*Information:\*\* .+/gm] @@ -16,30 +13,17 @@ module.exports = (client) => { for (const i of reactions) if (i != ' ') msg.react(i) } - const goosStanding = client.emojis.cache.get("993799647015481397"); - - for (const command of commandFiles) { - const split = command.replace(/\\/g, '/').split('/'); - const commandName = split[split.length - 1].replace('.js', ''); - commands[commandName.toLowerCase()] = require(command); - } - client.on('messageCreate', (message) => { - const extCommands = [ + const goosStanding = client.emojis.cache.get("993799647015481397"); + + const events = [ [['bread'], () => { multiReact(message, 'šŸžšŸ‡§ šŸ‡· šŸ‡Ŗ šŸ‡¦ šŸ‡©šŸ‘') }], [['honk'], () => { multiReact(message, `${goosStanding} šŸ‡­ šŸ‡“ šŸ‡³ šŸ‡°šŸ‘`) }], [['pineapple'], () => message.react('šŸ')], [['forgor'], () => message.react('šŸ’€')], - [[/this has been (.+) in 100 seconds/], () => message.channel.send('hit the like button and subscribe if you want to see more short videos like this thanks for watching and i will see you in the next one')] + // [[/this has been (.+) in 100 seconds/], () => message.channel.send('hit the like button and subscribe if you want to see more short videos like this thanks for watching and i will see you in the next one')] [['cheese'], () => message.react('šŸ§€')], - - [['prefix'], { - embeds: [ - new MessageEmbed() - .setTitle(`The current server prefix is ${cfg.prefix}`) - .setColor('BLUE') - ] - }], + [['download avdan os', 'avdan os iso'], { embeds: [ new MessageEmbed() @@ -49,58 +33,42 @@ module.exports = (client) => { }], ] if (!message.author.bot) { - if (!message.content.startsWith(cfg.prefix)) { - for (const chann of channelRegex){ - if (chann[0] == message.channelId) { - if (!message.content.match(chann[1])/* && !message.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR)*/) { - message.delete() - message.guild.channels.cache.find((c) => c.id === cfg.moderationChannel).send({ embeds: [new MessageEmbed() - .setTitle(`Regex not matched`) - .setDescription(`Message deleted in <#${message.channelId}> because it didn't match the following regex :\n\`${chann[1].toString()}\``) - .setAuthor({ - name: message.member.displayName, - iconURL: message.member.displayAvatarURL() - }) - .addFields([ - { - name: 'Content', - value: `>>> ${message.content}`, - inline: true, - } - ]) - ]}) - return message.author.send(`Your message was deleted in <#${chann[0]}> because you didn't respect the required format (check pinned messages of the channel)\n>>> ${message.content}`) - } + for (const chann of channelRegex){ + if (chann[0] == message.channelId) { + if (!message.content.match(chann[1])/* && !message.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR)*/) { + message.delete() + message.guild.channels.cache.find((c) => c.id === cfg.moderationChannel).send({ embeds: [new MessageEmbed() + .setTitle(`Regex not matched`) + .setDescription(`Message deleted in <#${message.channelId}> because it didn't match the following regex :\n\`${chann[1].toString()}\``) + .setAuthor({ + name: message.member.displayName, + iconURL: message.member.displayAvatarURL() + }) + .addFields([ + { + name: 'Content', + value: `>>> ${message.content}`, + inline: true, + } + ]) + ]}) + return message.author.send(`Your message was deleted in <#${chann[0]}> because you didn't respect the required format (check pinned messages of the channel)\n>>> ${message.content}`) } } - for (const msg of extCommands) { - for (const msgEvent of msg[0]) { // If we need multiple triggers, that's why each element of extCommands have a list as first element - let unmatch = false - for (const word of msgEvent.split(' ')) { // Uses word by word detection instead of full trigger detection - if (!message.content.toLowerCase().includes(word)) unmatch = true - } - if (!unmatch) { - if (typeof(msg[1]) != 'string' && typeof(msg[1]) != 'object') return msg[1](); - else return message.reply(msg[1]); - } + } + for (const msg of events) { + for (const msgEvent of msg[0]) { // If we need multiple triggers, that's why each element of extCommands have a list as first element + let unmatch = false + for (const word of msgEvent.split(' ')) { // Uses word by word detection instead of full trigger detection + if (!message.content.toLowerCase().includes(word)) unmatch = true + } + if (!unmatch) { + if (typeof(msg[1]) != 'string' && typeof(msg[1]) != 'object') return msg[1](); + else return message.reply(msg[1]); } - }; - return; - } else { - const args = message.content.slice(cfg.prefix.length).trim().split(/ +/); - const commandName = args.shift().toLowerCase(); - try { - commands[commandName].callback(message, ...args); - } catch (error) { - console.error(error); - - const embed = new MessageEmbed() - .setTitle('An error occured while executing that command.') - .setColor('RED'); - - message.channel.send({ embeds: [embed] }); } - } + }; + return; } else return; }); @@ -116,7 +84,7 @@ module.exports = (client) => { }); const slashCommands = []; - const slashCommandFiles = getFiles(`${path}/slash`, '.js'); + const slashCommandFiles = getFiles('/commands', '.js'); for (const slashCommand of slashCommandFiles) { let slashCommandFile = require(slashCommand); slashCommands[slashCommandFile.name.toLowerCase()] = slashCommandFile; From 1d0b2a0a23553efaee4538f8fc1e1f25548bb76d Mon Sep 17 00:00:00 2001 From: MrSerge01 Date: Sun, 17 Jul 2022 21:46:00 +0600 Subject: [PATCH 4/6] yes --- src/commands/normal/repolist.js | 27 -------- src/commands/repolist.js | 4 +- src/events/ready.js | 6 +- src/handlers/cmdHandler.js | 111 ++++++++++++-------------------- src/handlers/eventHandler.js | 3 +- src/index.js | 6 +- src/utils/getFiles.js | 22 ------- 7 files changed, 49 insertions(+), 130 deletions(-) delete mode 100644 src/commands/normal/repolist.js delete mode 100644 src/utils/getFiles.js diff --git a/src/commands/normal/repolist.js b/src/commands/normal/repolist.js deleted file mode 100644 index 1b3984a..0000000 --- a/src/commands/normal/repolist.js +++ /dev/null @@ -1,27 +0,0 @@ -const { MessageEmbed } = require('discord.js'); -const { Octokit } = require('octokit'); -require('dotenv').config(); - -module.exports = { - callback: async (message) => { - const octokit = new Octokit({ auth: process.env.GITHUB_API_KEY }); - - await octokit.request('GET /orgs/{org}/repos', { - org: 'Avdan-OS' - }) - .then((data) => { - let embed = new MessageEmbed() - .setTitle('Repository list') - .setColor('BLUE') - .setFooter({ text: 'Click on an arrow to open the corresponding repository' }) - - data.data.forEach(dataChildren => { - dataChildren.description = dataChildren.description || "N/A" - embed.addFields( - { name: `${dataChildren.name}`, value: `[>](https://github.com/Avdan-OS/${dataChildren.name}) ${dataChildren.description}`, inline: true } - ) - }) - message.channel.send({ embeds: [embed] }); - }); - } -}; \ No newline at end of file diff --git a/src/commands/repolist.js b/src/commands/repolist.js index fc60327..aef0a13 100644 --- a/src/commands/repolist.js +++ b/src/commands/repolist.js @@ -18,7 +18,7 @@ module.exports = { .setFooter({ text: 'Click on an arrow to open the corresponding repository' }) data.data.forEach(dataChildren => { - dataChildren.description = dataChildren.description || "N/A" + dataChildren.description = dataChildren.description || "N/A"; embed.addFields( { name: `${dataChildren.name}`, value: `[>](https://github.com/Avdan-OS/${dataChildren.name}) ${dataChildren.description}`, inline: true } ) @@ -26,4 +26,4 @@ module.exports = { interaction.reply({ embeds: [embed], ephemeral: true }); }); } -}; \ No newline at end of file +}; diff --git a/src/events/ready.js b/src/events/ready.js index 6b463a7..2b54134 100644 --- a/src/events/ready.js +++ b/src/events/ready.js @@ -1,10 +1,6 @@ -// const commands = require('../handlers/cmdHandler.js'); - module.exports = { name: 'ready', - callback: (client) => { - // commands(client); - + callback: (client) => { client.user.setPresence({ activities: [{ name: 'discord.gg/avdanos', type: 'WATCHING' }] }); console.log('Start completed.'); } diff --git a/src/handlers/cmdHandler.js b/src/handlers/cmdHandler.js index 73766cf..dfb651d 100644 --- a/src/handlers/cmdHandler.js +++ b/src/handlers/cmdHandler.js @@ -1,30 +1,35 @@ const { MessageEmbed } = require('discord.js'); -const getFiles = require('../utils/getFiles'); -const cfg = require('../config.json'); - -module.exports = (client) => { - const channelRegex = [ - ['964459799817363497', /\*\*Title:\*\* .+\n\*\*Information:\*\* .+/gm], - ['988920473897279498', /\*\*Title:\*\* .+\n\*\*Information:\*\* .+/gm] - ] +require('dotenv').config(); +const fs = require("fs"); +const path = require("path"); +module.exports = async (client) => { global.pollsList = {}; - global.multiReact = (msg, reactions) => { - for (const i of reactions) if (i != ' ') msg.react(i) + + global.multiReact = async (msg, ...reactions) => { + for (let i of reactions) { + if (typeof i !== 'object') { + for (let reaction of i) { + if(reaction !== ' ') await msg.react(reaction); + } + } else await msg.react(i); + } } - client.on('messageCreate', (message) => { - const goosStanding = client.emojis.cache.get("993799647015481397"); + client.on('messageCreate', async (message) => { + const goosStanding = await message.guild.emojis.fetch('993799647015481397').catch(() => { return ':duck:' }); const events = [ - [['bread'], () => { multiReact(message, 'šŸžšŸ‡§ šŸ‡· šŸ‡Ŗ šŸ‡¦ šŸ‡©šŸ‘') }], - [['honk'], () => { multiReact(message, `${goosStanding} šŸ‡­ šŸ‡“ šŸ‡³ šŸ‡°šŸ‘`) }], + [['bread'], () => { + await multiReact(message, 'šŸžšŸ‡§šŸ‡·šŸ‡ŖšŸ‡¦šŸ‡©šŸ‘') + }], + [['honk'], () => { + await multiReact(message, goosStanding, `šŸ‡­šŸ‡“šŸ‡³šŸ‡°šŸ‘`) + }], [['pineapple'], () => message.react('šŸ')], [['forgor'], () => message.react('šŸ’€')], - // [[/this has been (.+) in 100 seconds/], () => message.channel.send('hit the like button and subscribe if you want to see more short videos like this thanks for watching and i will see you in the next one')] [['cheese'], () => message.react('šŸ§€')], - - [['download avdan os', 'avdan os iso'], { + [['download avdan os', 'avdan os iso'], { embeds: [ new MessageEmbed() .setDescription('We have not finished developing AvdanOS, so there is not a download yet.\nWe are currently working on the **window manager**.\nSubscribe to [our Youtube channel](https://www.youtube.com/channel/UCHLCBj83J7bR82HwjhCJusA) for updates on our development.') @@ -32,73 +37,39 @@ module.exports = (client) => { ] }], ] + if (!message.author.bot) { - for (const chann of channelRegex){ - if (chann[0] == message.channelId) { - if (!message.content.match(chann[1])/* && !message.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR)*/) { - message.delete() - message.guild.channels.cache.find((c) => c.id === cfg.moderationChannel).send({ embeds: [new MessageEmbed() - .setTitle(`Regex not matched`) - .setDescription(`Message deleted in <#${message.channelId}> because it didn't match the following regex :\n\`${chann[1].toString()}\``) - .setAuthor({ - name: message.member.displayName, - iconURL: message.member.displayAvatarURL() - }) - .addFields([ - { - name: 'Content', - value: `>>> ${message.content}`, - inline: true, - } - ]) - ]}) - return message.author.send(`Your message was deleted in <#${chann[0]}> because you didn't respect the required format (check pinned messages of the channel)\n>>> ${message.content}`) + // Loop through the possible events, make them lowercase and check if the message contains it (if it does, execute the event) + for (const [key, value] of events) { + for (const i of key) { + if (message.content.toLowerCase().includes(i)) { + if (typeof value === 'function') value(); + else if (typeof value === 'object' || typeof value === 'string') { + if (value.embeds) for (const embed of value.embeds) { + message.reply({embed}) + } + } } } } - for (const msg of events) { - for (const msgEvent of msg[0]) { // If we need multiple triggers, that's why each element of extCommands have a list as first element - let unmatch = false - for (const word of msgEvent.split(' ')) { // Uses word by word detection instead of full trigger detection - if (!message.content.toLowerCase().includes(word)) unmatch = true - } - if (!unmatch) { - if (typeof(msg[1]) != 'string' && typeof(msg[1]) != 'object') return msg[1](); - else return message.reply(msg[1]); - } - } - }; - return; } else return; }); - client.on('messageUpdate', (message) => { - for (const chann of channelRegex){ - if (chann[0] == message.channelId) { - if (!message.content.match(chann[1])/* && !message.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR)*/) { - message.delete() - return message.author.send(`Your message was deleted in <#${chann[0]}> because you didn't respect the required format (check pinned messages of the channel)\n>>> ${message.content}`) - } - } - } + const commands = []; + fs.readdirSync(path.join(process.cwd(), commandPath)).filter(file => file.endsWith(".js")).forEach(file => { + let pull = require(path.join(process.cwd(), commandPath, file)); + commands[pull.name.toLowerCase()] = pull; + commands.push(pull); }); - const slashCommands = []; - const slashCommandFiles = getFiles('/commands', '.js'); - for (const slashCommand of slashCommandFiles) { - let slashCommandFile = require(slashCommand); - slashCommands[slashCommandFile.name.toLowerCase()] = slashCommandFile; - slashCommands.push(slashCommandFile); - }; - for (const guildID of client.guilds.cache.keys()) { const guild = client.guilds.cache.get(guildID); - guild.commands.set(slashCommands); + await guild.commands.set(commands); client.on('interactionCreate', (interaction) => { - if (interaction.isCommand() && interaction.guildId == guildID) { + if (interaction.isCommand() && interaction.guildId === guildID) { try { - slashCommands[interaction.commandName].callback(interaction); + commands[interaction.commandName].callback(interaction); } catch (error) { console.error(error); const embed = new MessageEmbed() diff --git a/src/handlers/eventHandler.js b/src/handlers/eventHandler.js index 45f28c3..2294d02 100644 --- a/src/handlers/eventHandler.js +++ b/src/handlers/eventHandler.js @@ -1,9 +1,8 @@ const getFiles = require('../utils/getFiles'); module.exports = (client) => { - const path = '\\events'; const events = []; - const eventFiles = getFiles(`${path}`, '.js'); + const eventFiles = getFiles('/events', '.js'); for (const eventFile of eventFiles) { const event = require(eventFile); diff --git a/src/index.js b/src/index.js index b0c488e..a7e73cd 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,7 @@ const { Client, Intents } = require('discord.js'); require('dotenv').config(); const commands = require('./handlers/cmdHandler'); +const events = require('./handlers/eventHandler'); const client = new Client({ intents: [ @@ -12,8 +13,9 @@ module.exports = client; client.on('ready', () => { commands(client); + events(client); - client.user.setPresence({ activities: [{ name: 'discord.gg/avdanos', type: 'WATCHING' }] }); - console.log('Start completed.'); + // client.user.setPresence({ activities: [{ name: 'discord.gg/avdanos', type: 'WATCHING' }] }); + // console.log('Start completed.'); }); client.login(process.env.DISCORD_TOKEN); diff --git a/src/utils/getFiles.js b/src/utils/getFiles.js deleted file mode 100644 index cb0bdd9..0000000 --- a/src/utils/getFiles.js +++ /dev/null @@ -1,22 +0,0 @@ -const fs = require('fs'); - -const getFiles = (dir, suffix) => { - const files = fs.readdirSync(process.cwd() + dir, { - withFileTypes: true, - }); - - let commandFiles = []; - - for (const file of files) { - if (file.isDirectory()) { - commandFiles = [ - ...commandFiles, - ...getFiles(`${dir}/${file.name}`, suffix), - ]; - } else if (file.name.endsWith(suffix)) { - commandFiles.push(`..${dir.replace('\\', '/')}/${file.name}`); - } - } - return commandFiles; -}; -module.exports = getFiles; From 16339ada6f7ea1093609e23739ca881502f9d970 Mon Sep 17 00:00:00 2001 From: MrSerge01 Date: Wed, 20 Jul 2022 00:19:17 +0600 Subject: [PATCH 5/6] merge and rewrite to djs v14.0.2 Co-authored-by: Froxcey --- CONTRIBUTING.md | 28 +- README.md | 6 +- package-lock.json | 2378 ++++++++++++++++++++++++-------- package.json | 4 +- src/commands/demote.js | 106 ++ src/commands/loa.js | 104 +- src/commands/poll.js | 154 +-- src/commands/repolist.js | 14 +- src/commands/suggest.js | 42 + src/events/ready.js | 6 +- src/examples/button.js | 16 +- src/examples/embed.js | 12 +- src/examples/option.js | 10 +- src/examples/randomResponse.js | 6 +- src/handlers/cmdHandler.js | 86 +- src/handlers/eventHandler.js | 26 +- src/index.js | 24 +- 17 files changed, 2235 insertions(+), 787 deletions(-) create mode 100644 src/commands/demote.js create mode 100644 src/commands/suggest.js diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e9ff139..61f6b35 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,11 +8,11 @@ The bot is getting rewritten in TypeScript, so it's also strongly recommended fo For code convention: -- 2 space indent, no tab, +- 2 space indent, no tab. -- const by default and let for reassignable +- const by default and let for reassignable. -- Be CaReFuL_WithHow-youName VARIABLES. +- Use SCREAMING_SNAKE_CASE naming for const and camelCase naming for let and var. ## Forking @@ -40,23 +40,27 @@ Step 6: Reset your bot's token and copy it. It will be used later. # **Step 7: .env magic (huge for devs to not add it into the repo)** -## **Step 7.1: Inside the `src` folder, make a `.env` file.** +## **Step 7.1: Inside the *`src`* folder, make a *`.env`* file.** -## **Step 7.2: Type `DISCORD_TOKEN=your bot token` and `PREFIX=your prefix`** +## **Step 7.2: Type *`DISCORD_TOKEN='your bot token'`*** -## Changing config.json +## Step 8: Creating config.json -Step 8: Create a channel (or channels) in your server and name it/them anything you want. +Step 8.1: Set the prefix you want. (for example: t!) -If you haven't enabled Developer Mode, you can do so by going into Settings > Advanced > Developer Mode. +Step 9: In your terminal, run `npm install`. It will install all the modules needed to run the bot. + +Step 10: Run `cd src` and afterward `node .` to launch the bot. -Step 9: Copy your channel's ID by right clicking on it and selecting `Copy ID`. +## Optional config.json stuff -Step 10: Paste the channel's ID into your config.json file. +Step 1: Create a channel (or channels) in your server and name it/them anything you want. + +If you haven't enabled Developer Mode, you can do so by going into Settings > Advanced > Developer Mode. -Step 11: In your terminal, run `npm install`. It will install all the modules needed to run the bot. +Step 2: Copy your channel's ID by right clicking on it and selecting `Copy ID`. -Step 12: Run `cd src` and afterward `node .` to launch the bot. +Step 3: Paste the channel's ID into your config.json file. ## How to make commands diff --git a/README.md b/README.md index 4bbcdbb..8dbb9ae 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ # Important: we are migrating to a new [Discord server.](https://discord.gg/avdanos) +# Notice: Pull Requests on this repository won't be reviewed often due to the main focus being the Desktop Environment. + # Tinan -The Discord bot for the [AvdanOS Community Discord server](https://discord.gg/avdanos), built with discord.js v13.8.1. +The Discord bot for the [AvdanOS Community Discord server](https://discord.gg/avdanos), built with discord.js v14.0.2.
@@ -15,7 +17,7 @@ The Discord bot for the [AvdanOS Community Discord server](https://discord.gg/av # Current state -Currently, we are planning to rewrite the bot to TypeScript. +Currently, we are rewriting the bot to TypeScript. # Contributing diff --git a/package-lock.json b/package-lock.json index 6471bfd..0dc936f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,199 +7,309 @@ "name": "tinan", "license": "MIT", "dependencies": { - "discord.js": "^13.8.1", + "discord.js": "^14.0.2", "dotenv": "^16.0.1", - "octokit": "^1.8.1" + "octokit": "^2.0.4" + } + }, + "node_modules/@discordjs/builders": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.0.0.tgz", + "integrity": "sha512-8y91ZfpOHubiGJu5tVyGI9tQCEyHZDTeqUWVcJd0dq7B96xIf84S0L4fwmD1k9zTe1eqEFSk0gc7BpY+FKn7Ww==", + "dependencies": { + "@sapphire/shapeshift": "^3.5.1", + "discord-api-types": "^0.36.2", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.9.0" } }, "node_modules/@discordjs/collection": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.7.0.tgz", - "integrity": "sha512-R5i8Wb8kIcBAFEPLLf7LVBQKBDYUL+ekb23sOgpkpyGT+V4P7V83wTxcsqmX+PbqHt4cEHn053uMWfRqh/Z/nA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.0.0.tgz", + "integrity": "sha512-nAxDQYE5dNAzEGQ7HU20sujDsG5vLowUKCEqZkKUIlrXERZFTt/60zKUj/g4+AVCGeq+pXC5hivMaNtiC+PY5Q==", + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/rest": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-1.0.0.tgz", + "integrity": "sha512-uDAvnE0P2a8axMdD4C51EGjvCRQ2HZk2Yxf6vHWZgIqG87D8DGKMPwmquIxrrB07MjV+rwci2ObU+mGhGP+bJg==", + "dependencies": { + "@discordjs/collection": "^1.0.0", + "@sapphire/async-queue": "^1.3.2", + "@sapphire/snowflake": "^3.2.2", + "discord-api-types": "^0.36.2", + "file-type": "^17.1.2", + "tslib": "^2.4.0", + "undici": "^5.7.0" + }, "engines": { "node": ">=16.9.0" } }, "node_modules/@octokit/app": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@octokit/app/-/app-12.0.5.tgz", - "integrity": "sha512-lM3pIfx2h+UbvsXHFVs1ApJ9Rmp8LO4ciFSr5q/9MdHmhsH6WtwayieUn875xwB77IoR9r8czxxxASu2WCtdeA==", - "dependencies": { - "@octokit/auth-app": "^3.3.0", - "@octokit/auth-unauthenticated": "^2.0.4", - "@octokit/core": "^3.4.0", - "@octokit/oauth-app": "^3.3.2", - "@octokit/plugin-paginate-rest": "^2.13.3", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@octokit/app/-/app-13.0.5.tgz", + "integrity": "sha512-3YoDyuQmC3kWWSio5pEOmLu1x8il3GnTYY5W0Ecni79btXhNIf6yVTZNJ5q541UNKWnNtejTBLYs2PcXwQg2ew==", + "dependencies": { + "@octokit/auth-app": "^4.0.0", + "@octokit/auth-unauthenticated": "^3.0.0", + "@octokit/core": "^4.0.0", + "@octokit/oauth-app": "^4.0.4", + "@octokit/plugin-paginate-rest": "^3.0.0", "@octokit/types": "^6.27.1", - "@octokit/webhooks": "^9.0.1" + "@octokit/webhooks": "^10.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/auth-app": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-3.6.1.tgz", - "integrity": "sha512-6oa6CFphIYI7NxxHrdVOzhG7hkcKyGyYocg7lNDSJVauVOLtylg8hNJzoUyPAYKKK0yUeoZamE/lMs2tG+S+JA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-4.0.4.tgz", + "integrity": "sha512-s3MK7M9e8TD/ih8lCBTrdZ74XPHMtHV7aycCKNBRQ2QJPdMwqx0mVbmLOIuW4dCwMX7K243+JAvf52tryFHRdQ==", "dependencies": { - "@octokit/auth-oauth-app": "^4.3.0", - "@octokit/auth-oauth-user": "^1.2.3", - "@octokit/request": "^5.6.0", - "@octokit/request-error": "^2.1.0", + "@octokit/auth-oauth-app": "^5.0.0", + "@octokit/auth-oauth-user": "^2.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", "@octokit/types": "^6.0.3", "@types/lru-cache": "^5.1.0", "deprecation": "^2.3.1", "lru-cache": "^6.0.0", "universal-github-app-jwt": "^1.0.1", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/auth-oauth-app": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-4.3.1.tgz", - "integrity": "sha512-FXkKcGtTXS2987rp11mSuhMOXDw8Iy/ED9aXs83T29VeMEWjv40q4ytC0voUDxkBC/of1QYOPQUAdI2tv/dwNg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-5.0.1.tgz", + "integrity": "sha512-SGQKQGWe60kucMLCzbwc4MIohB78YawbYgGegosapDg2GxwuEVCujJccArzgn3wO+pB4aflUjFWPjkECVR2fEQ==", "dependencies": { - "@octokit/auth-oauth-device": "^3.1.1", - "@octokit/auth-oauth-user": "^1.2.1", + "@octokit/auth-oauth-device": "^4.0.0", + "@octokit/auth-oauth-user": "^2.0.0", "@octokit/request": "^5.6.3", "@octokit/types": "^6.0.3", "@types/btoa-lite": "^1.0.0", "btoa-lite": "^1.0.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "dependencies": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/request": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "dependencies": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "dependencies": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" } }, "node_modules/@octokit/auth-oauth-device": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-3.1.2.tgz", - "integrity": "sha512-w7Po4Ck6N2aAn2VQyKLuojruiyKROTBv4qs6IwE5rbwF7HhBXXp4A/NKmkpoFIZkiXQtM+N8QtkSck4ApYWdGg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-4.0.0.tgz", + "integrity": "sha512-2bXBuF5DOnYD19wDafZNrnrNvLg7xNvDNAf3ELHlO/7/7x3BBhKna4dCvpJ4pfI6OYMja08Tt0D4XJ4sxK+YBA==", "dependencies": { - "@octokit/oauth-methods": "^1.1.0", - "@octokit/request": "^5.4.14", + "@octokit/oauth-methods": "^2.0.0", + "@octokit/request": "^6.0.0", "@octokit/types": "^6.10.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/auth-oauth-user": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-1.3.0.tgz", - "integrity": "sha512-3QC/TAdk7onnxfyZ24BnJRfZv8TRzQK7SEFUS9vLng4Vv6Hv6I64ujdk/CUkREec8lhrwU764SZ/d+yrjjqhaQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-2.0.2.tgz", + "integrity": "sha512-fr9+jPjkWG7cvpyUVnpJJH5F+wNCswRy9rTTwHUAXdy6z/kZj9uenPmUYdE6mja3wSTJUAt2yRqkfaaltzQlFA==", "dependencies": { - "@octokit/auth-oauth-device": "^3.1.1", - "@octokit/oauth-methods": "^1.1.0", - "@octokit/request": "^5.4.14", + "@octokit/auth-oauth-device": "^4.0.0", + "@octokit/oauth-methods": "^2.0.0", + "@octokit/request": "^6.0.0", "@octokit/types": "^6.12.2", "btoa-lite": "^1.0.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.0.tgz", + "integrity": "sha512-MDNFUBcJIptB9At7HiV7VCvU3NcL4GnfCQaP8C5lrxWrRPMJBnemYtehaKSOlaM7AYxeRyj9etenu8LVpSpVaQ==", "dependencies": { "@octokit/types": "^6.0.3" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/auth-unauthenticated": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-2.1.0.tgz", - "integrity": "sha512-+baofLfSL0CAv3CfGQ9rxiZZQEX8VNJMGuuS4PgrMRBUL52Ho5+hQYb63UJQshw7EXYMPDZxbXznc0y33cbPqw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-3.0.1.tgz", + "integrity": "sha512-Bzz19kSdK6dw6dd1CwZLsu5kfADPUAUz2PTlmVpMzAi5cWewsClDa7oQGVIa6uHSvlfowpRsUIJ8yNqYtntGCw==", "dependencies": { - "@octokit/request-error": "^2.1.0", + "@octokit/request-error": "^3.0.0", "@octokit/types": "^6.0.3" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.0.4.tgz", + "integrity": "sha512-sUpR/hc4Gc7K34o60bWC7WUH6Q7T6ftZ2dUmepSyJr9PRF76/qqkWjE2SOEzCqLA5W83SaISymwKtxks+96hPQ==", "dependencies": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", "@octokit/types": "^6.0.3", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.0.tgz", + "integrity": "sha512-Kz/mIkOTjs9rV50hf/JK9pIDl4aGwAtT8pry6Rpy+hVXkAPhXanNQRxMoq6AeRgDCZR6t/A1zKniY2V1YhrzlQ==", "dependencies": { "@octokit/types": "^6.0.3", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.0.tgz", + "integrity": "sha512-1ZZ8tX4lUEcLPvHagfIVu5S2xpHYXAmgN0+95eAOPoaVPzCfUXJtA5vASafcpWcO86ze0Pzn30TAx72aB2aguQ==", "dependencies": { - "@octokit/request": "^5.6.0", + "@octokit/request": "^6.0.0", "@octokit/types": "^6.0.3", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/oauth-app": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-3.6.3.tgz", - "integrity": "sha512-OEJvIW/RueTjO3Q9Fz0MCUQpvdGEUNPZrA60b8TNO+/rwPHAA68pB5sFZqKG9eg+nBZtfLXm9HujL8fXJPHm+g==", - "dependencies": { - "@octokit/auth-oauth-app": "^4.0.0", - "@octokit/auth-oauth-user": "^1.3.0", - "@octokit/auth-unauthenticated": "^2.0.0", - "@octokit/core": "^3.3.2", - "@octokit/oauth-authorization-url": "^4.2.1", - "@octokit/oauth-methods": "^1.2.2", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-4.0.6.tgz", + "integrity": "sha512-78+bfyD8Un2QLnBh7zCPOIywi4HU/P6kCjWmhjh3/GpqTMByXf5J37c7VYNHUFJlijMhc4AiKF8O8FDxbZaPAw==", + "dependencies": { + "@octokit/auth-oauth-app": "^5.0.0", + "@octokit/auth-oauth-user": "^2.0.0", + "@octokit/auth-unauthenticated": "^3.0.0", + "@octokit/core": "^4.0.0", + "@octokit/oauth-authorization-url": "^5.0.0", + "@octokit/oauth-methods": "^2.0.0", "@types/aws-lambda": "^8.10.83", "fromentries": "^1.3.1", "universal-user-agent": "^6.0.0" }, + "engines": { + "node": ">= 14" + }, "optionalDependencies": { "aws-lambda": "^1.0.7" } }, "node_modules/@octokit/oauth-authorization-url": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-4.3.3.tgz", - "integrity": "sha512-lhP/t0i8EwTmayHG4dqLXgU+uPVys4WD/qUNvC+HfB1S1dyqULm5Yx9uKc1x79aP66U1Cb4OZeW8QU/RA9A4XA==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-5.0.0.tgz", + "integrity": "sha512-y1WhN+ERDZTh0qZ4SR+zotgsQUE1ysKnvBt1hvDRB2WRzYtVKQjn97HEPzoehh66Fj9LwNdlZh+p6TJatT0zzg==", + "engines": { + "node": ">= 14" + } }, "node_modules/@octokit/oauth-methods": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-1.2.6.tgz", - "integrity": "sha512-nImHQoOtKnSNn05uk2o76om1tJWiAo4lOu2xMAHYsNr0fwopP+Dv+2MlGvaMMlFjoqVd3fF3X5ZDTKCsqgmUaQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-2.0.2.tgz", + "integrity": "sha512-AHF5bWGhgnZwH8fn4sgPLyVouRqMOafMSM2zX1de+aLZGZaS9rANK9RXH2d5fGvXjGEw3XR+ruNPZ0gwhM4QwA==", "dependencies": { - "@octokit/oauth-authorization-url": "^4.3.1", - "@octokit/request": "^5.4.14", - "@octokit/request-error": "^2.0.5", + "@octokit/oauth-authorization-url": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", "@octokit/types": "^6.12.2", "btoa-lite": "^1.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/openapi-types": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.4.0.tgz", - "integrity": "sha512-Npcb7Pv30b33U04jvcD7l75yLU0mxhuX2Xqrn51YyZ5WTkF04bpbxLaZ6GcaTqu03WZQHoO/Gbfp95NGRueDUA==" + "version": "12.10.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.10.1.tgz", + "integrity": "sha512-P+SukKanjFY0ZhsK6wSVnQmxTP2eVPPE8OPSNuxaMYtgVzwJZgfGdwlYjf4RlRU4vLEw4ts2fsE2icG4nZ5ddQ==" }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.19.0.tgz", - "integrity": "sha512-hQ4Qysg2hNmEMuZeJkvyzM4eSZiTifOKqYAMsW8FnxFKowhuwWICSgBQ9Gn9GpUmgKB7qaf1hFvMjYaTAg5jQA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-3.0.0.tgz", + "integrity": "sha512-fvw0Q5IXnn60D32sKeLIxgXCEZ7BTSAjJd8cFAE6QU5qUp0xo7LjFUjjX1J5D7HgN355CN4EXE4+Q1/96JaNUA==", "dependencies": { - "@octokit/types": "^6.36.0" + "@octokit/types": "^6.39.0" + }, + "engines": { + "node": ">= 14" }, "peerDependencies": { - "@octokit/core": ">=2" + "@octokit/core": ">=4" } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.15.0.tgz", - "integrity": "sha512-Gsw9+Xm56jVhfbJoy4pt6eOOyf8/3K6CAnx1Sl7U2GhZWcg8MR6YgXWnpfdF69S2ViMXLA7nfvTDAsZpFlkLRw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.1.2.tgz", + "integrity": "sha512-sAfSKtLHNq0UQ2iFuI41I6m5SK6bnKFRJ5kUjDRVbmQXiRVi4aQiIcgG4cM7bt+bhSiWL4HwnTxDkWFlKeKClA==", "dependencies": { - "@octokit/types": "^6.36.0", + "@octokit/types": "^6.40.0", "deprecation": "^2.3.1" }, + "engines": { + "node": ">= 14" + }, "peerDependencies": { "@octokit/core": ">=3" } @@ -214,98 +324,120 @@ } }, "node_modules/@octokit/plugin-throttling": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-3.7.0.tgz", - "integrity": "sha512-qrKT1Yl/KuwGSC6/oHpLBot3ooC9rq0/ryDYBCpkRtoj+R8T47xTMDT6Tk2CxWopFota/8Pi/2SqArqwC0JPow==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-4.1.0.tgz", + "integrity": "sha512-HZAf9aeH552jpMELlSTRhYMHGRlUe5gqm8jWB1mz+w8+O/WBlBmn55WpQyDmaDnb3YyfV4fmbjz5+dEACKznuQ==", "dependencies": { "@octokit/types": "^6.0.1", "bottleneck": "^2.15.3" }, + "engines": { + "node": ">= 14" + }, "peerDependencies": { - "@octokit/core": "^3.5.0" + "@octokit/core": "^4.0.0" } }, "node_modules/@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.0.tgz", + "integrity": "sha512-7IAmHnaezZrgUqtRShMlByJK33MT9ZDnMRgZjnRrRV9a/jzzFwKGz0vxhFU6i7VMLraYcQ1qmcAOin37Kryq+Q==", "dependencies": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", "@octokit/types": "^6.16.1", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.0.tgz", + "integrity": "sha512-WBtpzm9lR8z4IHIMtOqr6XwfkGvMOOILNLxsWvDwtzm/n7f5AWuqJTXQXdDtOvPfTDrH4TPhEvW2qMlR4JFA2w==", "dependencies": { "@octokit/types": "^6.0.3", "deprecation": "^2.0.0", "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/types": { - "version": "6.37.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.37.0.tgz", - "integrity": "sha512-BXWQhFKRkjX4dVW5L2oYa0hzWOAqsEsujXsQLSdepPoDZfYdubrD1KDGpyNldGXtR8QM/WezDcxcIN1UKJMGPA==", + "version": "6.40.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.40.0.tgz", + "integrity": "sha512-MFZOU5r8SwgJWDMhrLUSvyJPtVsqA6VnbVI3TNbsmw+Jnvrktzvq2fYES/6RiJA/5Ykdwq4mJmtlYUfW7CGjmw==", "dependencies": { - "@octokit/openapi-types": "^12.4.0" + "@octokit/openapi-types": "^12.10.0" } }, "node_modules/@octokit/webhooks": { - "version": "9.26.0", - "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-9.26.0.tgz", - "integrity": "sha512-foZlsgrTDwAmD5j2Czn6ji10lbWjGDVsUxTIydjG9KTkAWKJrFapXJgO5SbGxRwfPd3OJdhK3nA2YPqVhxLXqA==", + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.0.8.tgz", + "integrity": "sha512-B6TfNTPDf8y5WqzlT5jmeYaYSf6oT7NhkelcetaDT7PP9btu1iaIKWZG+1DFRm1CBQE9HIHdh9rR65qq64m/5g==", "dependencies": { - "@octokit/request-error": "^2.0.2", - "@octokit/webhooks-methods": "^2.0.0", - "@octokit/webhooks-types": "5.8.0", + "@octokit/request-error": "^3.0.0", + "@octokit/webhooks-methods": "^3.0.0", + "@octokit/webhooks-types": "6.2.3", "aggregate-error": "^3.1.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/webhooks-methods": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-2.0.0.tgz", - "integrity": "sha512-35cfQ4YWlnZnmZKmIxlGPUPLtbkF8lr/A/1Sk1eC0ddLMwQN06dOuLc+dI3YLQS+T+MoNt3DIQ0NynwgKPilig==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz", + "integrity": "sha512-FAIyAchH9JUKXugKMC17ERAXM/56vVJekwXOON46pmUDYfU7uXB4cFY8yc8nYr5ABqVI7KjRKfFt3mZF7OcyUA==", + "engines": { + "node": ">= 14" + } }, "node_modules/@octokit/webhooks-types": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-5.8.0.tgz", - "integrity": "sha512-8adktjIb76A7viIdayQSFuBEwOzwhDC+9yxZpKNHjfzrlostHCw0/N7JWpWMObfElwvJMk2fY2l1noENCk9wmw==" + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.2.3.tgz", + "integrity": "sha512-m2J23W6QZeB7KOMHSgTZG8F0mXqqWlWrVzn41Zj4l2umHb6H3Z+rqFsryTNBTZuUiO7YFOFqYaTtlSGHC5CgUg==" }, "node_modules/@sapphire/async-queue": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.1.tgz", - "integrity": "sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.2.tgz", + "integrity": "sha512-rUpMLATsoAMnlN3gecAcr9Ecnw1vG7zi5Xr+IX22YzRzi1k9PF9vKzoT8RuEJbiIszjcimu3rveqUnvwDopz8g==", "engines": { "node": ">=v14.0.0", "npm": ">=7.0.0" } }, "node_modules/@sapphire/shapeshift": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.3.1.tgz", - "integrity": "sha512-PB2e5JHWIMRz9HiN/sIWcNIzXjYvzc3OmeRHYICXreKhetDYf4Zufypr8A48Z/XZLzbMqIka6uoR+2dH58nksg==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.5.1.tgz", + "integrity": "sha512-7JFsW5IglyOIUQI1eE0g6h06D/Far6HqpcowRScgCiLSqTf3hhkPWCWotVTtVycnDCMYIwPeaw6IEPBomKC8pA==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "lodash.uniqwith": "^4.5.0" + }, "engines": { "node": ">=v14.0.0", "npm": ">=7.0.0" } }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "node_modules/@sapphire/snowflake": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.2.2.tgz", + "integrity": "sha512-ula2O0kpSZtX9rKXNeQMrHwNd7E4jPDJYUXmEGTFdMRfyfMw+FPyh04oKMjAiDuOi64bYgVkOV3MjK+loImFhQ==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "node": ">=v14.0.0", + "npm": ">=7.0.0" } }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + }, "node_modules/@types/aws-lambda": { "version": "8.10.101", "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.101.tgz", @@ -334,28 +466,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" }, - "node_modules/@types/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/@types/ws": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", @@ -385,10 +495,17 @@ "sprintf-js": "~1.0.2" } }, - "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/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/aws-lambda": { "version": "1.0.7", @@ -406,9 +523,9 @@ } }, "node_modules/aws-sdk": { - "version": "2.1161.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1161.0.tgz", - "integrity": "sha512-qpOtPovj3xJhdTFBkJgqmSuy5rc7vDu2HtM+S3sLiP8Uhkb3Pn3z7LtTZt5YUnY2lV1DDR9H1aWuRlRDK96k1w==", + "version": "2.1177.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1177.0.tgz", + "integrity": "sha512-0Ui7hBofMom6F9N4em357NzsUt0pXDLuuUS1Ojf7Vu7S/LjVjB5zwmY7L4H5wuf5KDOjSmNX8/zG6QfGGc5X/w==", "optional": true, "dependencies": { "buffer": "4.9.2", @@ -418,6 +535,7 @@ "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", + "util": "^0.12.4", "uuid": "8.0.0", "xml2js": "0.4.19" }, @@ -425,17 +543,6 @@ "node": ">= 10.0.0" } }, - "node_modules/aws-sdk/node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "optional": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, "node_modules/aws-sdk/node_modules/ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", @@ -477,11 +584,35 @@ "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==" }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "optional": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, "node_modules/buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "optional": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -490,29 +621,26 @@ "node": ">=6" } }, - "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/commander": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", "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==", + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "optional": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, "engines": { - "node": ">=0.4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/deprecation": { @@ -521,41 +649,26 @@ "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" }, "node_modules/discord-api-types": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.33.5.tgz", - "integrity": "sha512-dvO5M52v7m7Dy96+XUnzXNsQ/0npsYpU6dL205kAtEDueswoz3aU3bh1UMoK4cQmcGtB1YRyLKqp+DXi05lzFg==" + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.36.2.tgz", + "integrity": "sha512-TunPAvzwneK/m5fr4hxH3bMsrtI22nr9yjfHyo5NBGMjpsAauGNiGCmwoFf0oO3jSd2mZiKUvZwCKDaB166u2Q==" }, "node_modules/discord.js": { - "version": "13.8.1", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.8.1.tgz", - "integrity": "sha512-jOsD+4tEZWWx0RHVyH+FBcqoTrsL+d5Mm5p+ULQOdU0qSaxhLNkWYig+yDHNZoND7nlkXX3qi+BW+gO5erWylg==", - "dependencies": { - "@discordjs/builders": "^0.14.0", - "@discordjs/collection": "^0.7.0", - "@sapphire/async-queue": "^1.3.1", - "@types/node-fetch": "^2.6.1", - "@types/ws": "^8.5.3", - "discord-api-types": "^0.33.3", - "form-data": "^4.0.0", - "node-fetch": "^2.6.1", - "ws": "^8.7.0" - }, - "engines": { - "node": ">=16.6.0", - "npm": ">=7.0.0" - } - }, - "node_modules/discord.js/node_modules/@discordjs/builders": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.14.0.tgz", - "integrity": "sha512-+fqLIqa9wN3R+kvlld8sgG0nt04BAZxdCDP4t2qZ9TJsquLWA+xMtT8Waibb3d4li4AQS+IOfjiHAznv/dhHgQ==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.0.2.tgz", + "integrity": "sha512-aHZHwT4i5yyV4IotFm9lSSPq8mTUkYWTrpatPlT53wz8QyFUPw5XjvUxuOXlaioV1kBsgfhSjCP0BNqxfuSjRQ==", "dependencies": { - "@sapphire/shapeshift": "^3.1.0", - "@sindresorhus/is": "^4.6.0", - "discord-api-types": "^0.33.3", + "@discordjs/builders": "^1.0.0", + "@discordjs/collection": "^1.0.0", + "@discordjs/rest": "^1.0.0", + "@sapphire/snowflake": "^3.2.2", + "@types/ws": "^8.5.3", + "discord-api-types": "^0.36.2", "fast-deep-equal": "^3.1.3", - "ts-mixer": "^6.0.1", - "tslib": "^2.4.0" + "lodash.snakecase": "^4.1.1", + "tslib": "^2.4.0", + "undici": "^5.7.0", + "ws": "^8.8.1" }, "engines": { "node": ">=16.9.0" @@ -577,6 +690,60 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "optional": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "optional": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -604,17 +771,29 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/file-type": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-17.1.2.tgz", + "integrity": "sha512-3thBUSfa9YEUEGO/NAAiQGvjujZxZiJTF6xNwyDn6kB0NcEtwMn5ttkGG9jGwm/Nt/t8U1bpBNqyBNZCz4F4ig==", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0-alpha.7", + "token-types": "^5.0.0-alpha.2" }, "engines": { - "node": ">= 6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "optional": true, + "dependencies": { + "is-callable": "^1.1.3" } }, "node_modules/fromentries": { @@ -636,6 +815,69 @@ } ] }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "optional": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "optional": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "optional": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "optional": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "optional": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", @@ -648,22 +890,322 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "optional": true }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "optional": true, + "dependencies": { + "function-bind": "^1.1.1" + }, "engines": { - "node": ">=8" + "node": ">= 0.4.0" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "engines": { + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "optional": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "optional": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "optional": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "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/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "optional": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "optional": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "optional": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "optional": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "optional": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "optional": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "optional": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { "node": ">=0.10.0" } }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "optional": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "optional": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "optional": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "optional": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", + "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", + "optional": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "optional": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -767,6 +1309,16 @@ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" }, + "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/lodash.uniqwith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniqwith/-/lodash.uniqwith-4.5.0.tgz", + "integrity": "sha512-7lYL8bLopMoy4CTICbxygAUq6CdRJ36vFc80DucPueUee+d5NBRxz3FdT9Pes/HEx5mPoT9jwnsEJWz1N7uq7Q==" + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -778,25 +1330,6 @@ "node": ">=10" } }, - "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/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -821,38 +1354,58 @@ } } }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "optional": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/node-fetch/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/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "optional": true, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/node-fetch/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==", + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "optional": true, "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/octokit": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/octokit/-/octokit-1.8.1.tgz", - "integrity": "sha512-xBLKFIivbl7wnLwxzLYuDO/JDNYxdyxoSjFrl/QMrY/fwGGQYYklvKUDTUyGMU0aXPrQtJ0IZnG3BXpCkDQzWg==", - "dependencies": { - "@octokit/app": "^12.0.4", - "@octokit/core": "^3.5.1", - "@octokit/oauth-app": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.18.0", - "@octokit/plugin-rest-endpoint-methods": "^5.14.0", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/octokit/-/octokit-2.0.4.tgz", + "integrity": "sha512-9QvgYGzrSTGmr3koSGtbgeMgqYI20QI0Vv8Bk9y6phchk6L2aHFhcrUOIeNUPj1Z+KZnEBd6A/8faNpDFNfVjg==", + "dependencies": { + "@octokit/app": "^13.0.5", + "@octokit/core": "^4.0.4", + "@octokit/oauth-app": "^4.0.6", + "@octokit/plugin-paginate-rest": "^3.0.0", + "@octokit/plugin-rest-endpoint-methods": "^6.0.0", "@octokit/plugin-retry": "^3.0.9", - "@octokit/plugin-throttling": "^3.5.1", + "@octokit/plugin-throttling": "^4.0.1", "@octokit/types": "^6.35.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/once": { @@ -863,6 +1416,18 @@ "wrappy": "1" } }, + "node_modules/peek-readable": { + "version": "5.0.0-alpha.5", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0-alpha.5.tgz", + "integrity": "sha512-pJohF/tDwV3ntnT5+EkUo4E700q/j/OCDuPxtM+5/kFGjyOai/sK4/We4Cy1MB2OiTQliWU5DxPvYIKQAdPqAA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", @@ -879,6 +1444,51 @@ "node": ">=0.4.x" } }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readable-web-to-node-stream": { + "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": { + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "optional": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -912,12 +1522,99 @@ "semver": "bin/semver" } }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "optional": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "optional": true }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "optional": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "optional": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strtok3": { + "version": "7.0.0-alpha.8", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0-alpha.8.tgz", + "integrity": "sha512-u+k19v+rTxBjGYxncRQjGvZYwYvEd0uP3D+uHKe/s4WB1eXS5ZwpZsTlBu5xSS4zEd89mTXECXg6WW3FSeV8cA==", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0-alpha.5" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/token-types": { + "version": "5.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.0-alpha.2.tgz", + "integrity": "sha512-EsG9UxAW4M6VATrEEjhPFTKEUi1OiJqTUMIZOGBN49fGxYjZB36k0p7to3HZSmWRoHm1QfZgrg3e02fpqAt5fQ==", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "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.1", "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", @@ -928,6 +1625,29 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "optional": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.7.0.tgz", + "integrity": "sha512-ORgxwDkiPS+gK2VxE7iyVeR7JliVn5DqhZ4LgQqYLBXsuK+lwOEmnJ66dhvlpLM0tC3fC7eYF1Bti2frbw2eAA==", + "engines": { + "node": ">=12.18" + } + }, "node_modules/universal-github-app-jwt": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.0.tgz", @@ -952,6 +1672,25 @@ "querystring": "0.2.0" } }, + "node_modules/util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "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/uuid": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", @@ -974,15 +1713,65 @@ "node": ">=10.13.0" } }, + "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/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "optional": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", + "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", + "optional": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", - "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", + "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", "engines": { "node": ">=10.0.0" }, @@ -1025,34 +1814,60 @@ } }, "dependencies": { + "@discordjs/builders": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.0.0.tgz", + "integrity": "sha512-8y91ZfpOHubiGJu5tVyGI9tQCEyHZDTeqUWVcJd0dq7B96xIf84S0L4fwmD1k9zTe1eqEFSk0gc7BpY+FKn7Ww==", + "requires": { + "@sapphire/shapeshift": "^3.5.1", + "discord-api-types": "^0.36.2", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.1", + "tslib": "^2.4.0" + } + }, "@discordjs/collection": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.7.0.tgz", - "integrity": "sha512-R5i8Wb8kIcBAFEPLLf7LVBQKBDYUL+ekb23sOgpkpyGT+V4P7V83wTxcsqmX+PbqHt4cEHn053uMWfRqh/Z/nA==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.0.0.tgz", + "integrity": "sha512-nAxDQYE5dNAzEGQ7HU20sujDsG5vLowUKCEqZkKUIlrXERZFTt/60zKUj/g4+AVCGeq+pXC5hivMaNtiC+PY5Q==" + }, + "@discordjs/rest": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-1.0.0.tgz", + "integrity": "sha512-uDAvnE0P2a8axMdD4C51EGjvCRQ2HZk2Yxf6vHWZgIqG87D8DGKMPwmquIxrrB07MjV+rwci2ObU+mGhGP+bJg==", + "requires": { + "@discordjs/collection": "^1.0.0", + "@sapphire/async-queue": "^1.3.2", + "@sapphire/snowflake": "^3.2.2", + "discord-api-types": "^0.36.2", + "file-type": "^17.1.2", + "tslib": "^2.4.0", + "undici": "^5.7.0" + } }, "@octokit/app": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@octokit/app/-/app-12.0.5.tgz", - "integrity": "sha512-lM3pIfx2h+UbvsXHFVs1ApJ9Rmp8LO4ciFSr5q/9MdHmhsH6WtwayieUn875xwB77IoR9r8czxxxASu2WCtdeA==", - "requires": { - "@octokit/auth-app": "^3.3.0", - "@octokit/auth-unauthenticated": "^2.0.4", - "@octokit/core": "^3.4.0", - "@octokit/oauth-app": "^3.3.2", - "@octokit/plugin-paginate-rest": "^2.13.3", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@octokit/app/-/app-13.0.5.tgz", + "integrity": "sha512-3YoDyuQmC3kWWSio5pEOmLu1x8il3GnTYY5W0Ecni79btXhNIf6yVTZNJ5q541UNKWnNtejTBLYs2PcXwQg2ew==", + "requires": { + "@octokit/auth-app": "^4.0.0", + "@octokit/auth-unauthenticated": "^3.0.0", + "@octokit/core": "^4.0.0", + "@octokit/oauth-app": "^4.0.4", + "@octokit/plugin-paginate-rest": "^3.0.0", "@octokit/types": "^6.27.1", - "@octokit/webhooks": "^9.0.1" + "@octokit/webhooks": "^10.0.0" } }, "@octokit/auth-app": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-3.6.1.tgz", - "integrity": "sha512-6oa6CFphIYI7NxxHrdVOzhG7hkcKyGyYocg7lNDSJVauVOLtylg8hNJzoUyPAYKKK0yUeoZamE/lMs2tG+S+JA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-4.0.4.tgz", + "integrity": "sha512-s3MK7M9e8TD/ih8lCBTrdZ74XPHMtHV7aycCKNBRQ2QJPdMwqx0mVbmLOIuW4dCwMX7K243+JAvf52tryFHRdQ==", "requires": { - "@octokit/auth-oauth-app": "^4.3.0", - "@octokit/auth-oauth-user": "^1.2.3", - "@octokit/request": "^5.6.0", - "@octokit/request-error": "^2.1.0", + "@octokit/auth-oauth-app": "^5.0.0", + "@octokit/auth-oauth-user": "^2.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", "@octokit/types": "^6.0.3", "@types/lru-cache": "^5.1.0", "deprecation": "^2.3.1", @@ -1062,78 +1877,113 @@ } }, "@octokit/auth-oauth-app": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-4.3.1.tgz", - "integrity": "sha512-FXkKcGtTXS2987rp11mSuhMOXDw8Iy/ED9aXs83T29VeMEWjv40q4ytC0voUDxkBC/of1QYOPQUAdI2tv/dwNg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-5.0.1.tgz", + "integrity": "sha512-SGQKQGWe60kucMLCzbwc4MIohB78YawbYgGegosapDg2GxwuEVCujJccArzgn3wO+pB4aflUjFWPjkECVR2fEQ==", "requires": { - "@octokit/auth-oauth-device": "^3.1.1", - "@octokit/auth-oauth-user": "^1.2.1", + "@octokit/auth-oauth-device": "^4.0.0", + "@octokit/auth-oauth-user": "^2.0.0", "@octokit/request": "^5.6.3", "@octokit/types": "^6.0.3", "@types/btoa-lite": "^1.0.0", "btoa-lite": "^1.0.0", "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "requires": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "requires": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "requires": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + } } }, "@octokit/auth-oauth-device": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-3.1.2.tgz", - "integrity": "sha512-w7Po4Ck6N2aAn2VQyKLuojruiyKROTBv4qs6IwE5rbwF7HhBXXp4A/NKmkpoFIZkiXQtM+N8QtkSck4ApYWdGg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-4.0.0.tgz", + "integrity": "sha512-2bXBuF5DOnYD19wDafZNrnrNvLg7xNvDNAf3ELHlO/7/7x3BBhKna4dCvpJ4pfI6OYMja08Tt0D4XJ4sxK+YBA==", "requires": { - "@octokit/oauth-methods": "^1.1.0", - "@octokit/request": "^5.4.14", + "@octokit/oauth-methods": "^2.0.0", + "@octokit/request": "^6.0.0", "@octokit/types": "^6.10.0", "universal-user-agent": "^6.0.0" } }, "@octokit/auth-oauth-user": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-1.3.0.tgz", - "integrity": "sha512-3QC/TAdk7onnxfyZ24BnJRfZv8TRzQK7SEFUS9vLng4Vv6Hv6I64ujdk/CUkREec8lhrwU764SZ/d+yrjjqhaQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-2.0.2.tgz", + "integrity": "sha512-fr9+jPjkWG7cvpyUVnpJJH5F+wNCswRy9rTTwHUAXdy6z/kZj9uenPmUYdE6mja3wSTJUAt2yRqkfaaltzQlFA==", "requires": { - "@octokit/auth-oauth-device": "^3.1.1", - "@octokit/oauth-methods": "^1.1.0", - "@octokit/request": "^5.4.14", + "@octokit/auth-oauth-device": "^4.0.0", + "@octokit/oauth-methods": "^2.0.0", + "@octokit/request": "^6.0.0", "@octokit/types": "^6.12.2", "btoa-lite": "^1.0.0", "universal-user-agent": "^6.0.0" } }, "@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.0.tgz", + "integrity": "sha512-MDNFUBcJIptB9At7HiV7VCvU3NcL4GnfCQaP8C5lrxWrRPMJBnemYtehaKSOlaM7AYxeRyj9etenu8LVpSpVaQ==", "requires": { "@octokit/types": "^6.0.3" } }, "@octokit/auth-unauthenticated": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-2.1.0.tgz", - "integrity": "sha512-+baofLfSL0CAv3CfGQ9rxiZZQEX8VNJMGuuS4PgrMRBUL52Ho5+hQYb63UJQshw7EXYMPDZxbXznc0y33cbPqw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-3.0.1.tgz", + "integrity": "sha512-Bzz19kSdK6dw6dd1CwZLsu5kfADPUAUz2PTlmVpMzAi5cWewsClDa7oQGVIa6uHSvlfowpRsUIJ8yNqYtntGCw==", "requires": { - "@octokit/request-error": "^2.1.0", + "@octokit/request-error": "^3.0.0", "@octokit/types": "^6.0.3" } }, "@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.0.4.tgz", + "integrity": "sha512-sUpR/hc4Gc7K34o60bWC7WUH6Q7T6ftZ2dUmepSyJr9PRF76/qqkWjE2SOEzCqLA5W83SaISymwKtxks+96hPQ==", "requires": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", "@octokit/types": "^6.0.3", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" } }, "@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.0.tgz", + "integrity": "sha512-Kz/mIkOTjs9rV50hf/JK9pIDl4aGwAtT8pry6Rpy+hVXkAPhXanNQRxMoq6AeRgDCZR6t/A1zKniY2V1YhrzlQ==", "requires": { "@octokit/types": "^6.0.3", "is-plain-object": "^5.0.0", @@ -1141,26 +1991,26 @@ } }, "@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.0.tgz", + "integrity": "sha512-1ZZ8tX4lUEcLPvHagfIVu5S2xpHYXAmgN0+95eAOPoaVPzCfUXJtA5vASafcpWcO86ze0Pzn30TAx72aB2aguQ==", "requires": { - "@octokit/request": "^5.6.0", + "@octokit/request": "^6.0.0", "@octokit/types": "^6.0.3", "universal-user-agent": "^6.0.0" } }, "@octokit/oauth-app": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-3.6.3.tgz", - "integrity": "sha512-OEJvIW/RueTjO3Q9Fz0MCUQpvdGEUNPZrA60b8TNO+/rwPHAA68pB5sFZqKG9eg+nBZtfLXm9HujL8fXJPHm+g==", - "requires": { - "@octokit/auth-oauth-app": "^4.0.0", - "@octokit/auth-oauth-user": "^1.3.0", - "@octokit/auth-unauthenticated": "^2.0.0", - "@octokit/core": "^3.3.2", - "@octokit/oauth-authorization-url": "^4.2.1", - "@octokit/oauth-methods": "^1.2.2", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-4.0.6.tgz", + "integrity": "sha512-78+bfyD8Un2QLnBh7zCPOIywi4HU/P6kCjWmhjh3/GpqTMByXf5J37c7VYNHUFJlijMhc4AiKF8O8FDxbZaPAw==", + "requires": { + "@octokit/auth-oauth-app": "^5.0.0", + "@octokit/auth-oauth-user": "^2.0.0", + "@octokit/auth-unauthenticated": "^3.0.0", + "@octokit/core": "^4.0.0", + "@octokit/oauth-authorization-url": "^5.0.0", + "@octokit/oauth-methods": "^2.0.0", "@types/aws-lambda": "^8.10.83", "aws-lambda": "^1.0.7", "fromentries": "^1.3.1", @@ -1168,41 +2018,41 @@ } }, "@octokit/oauth-authorization-url": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-4.3.3.tgz", - "integrity": "sha512-lhP/t0i8EwTmayHG4dqLXgU+uPVys4WD/qUNvC+HfB1S1dyqULm5Yx9uKc1x79aP66U1Cb4OZeW8QU/RA9A4XA==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-5.0.0.tgz", + "integrity": "sha512-y1WhN+ERDZTh0qZ4SR+zotgsQUE1ysKnvBt1hvDRB2WRzYtVKQjn97HEPzoehh66Fj9LwNdlZh+p6TJatT0zzg==" }, "@octokit/oauth-methods": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-1.2.6.tgz", - "integrity": "sha512-nImHQoOtKnSNn05uk2o76om1tJWiAo4lOu2xMAHYsNr0fwopP+Dv+2MlGvaMMlFjoqVd3fF3X5ZDTKCsqgmUaQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-2.0.2.tgz", + "integrity": "sha512-AHF5bWGhgnZwH8fn4sgPLyVouRqMOafMSM2zX1de+aLZGZaS9rANK9RXH2d5fGvXjGEw3XR+ruNPZ0gwhM4QwA==", "requires": { - "@octokit/oauth-authorization-url": "^4.3.1", - "@octokit/request": "^5.4.14", - "@octokit/request-error": "^2.0.5", + "@octokit/oauth-authorization-url": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", "@octokit/types": "^6.12.2", "btoa-lite": "^1.0.0" } }, "@octokit/openapi-types": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.4.0.tgz", - "integrity": "sha512-Npcb7Pv30b33U04jvcD7l75yLU0mxhuX2Xqrn51YyZ5WTkF04bpbxLaZ6GcaTqu03WZQHoO/Gbfp95NGRueDUA==" + "version": "12.10.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.10.1.tgz", + "integrity": "sha512-P+SukKanjFY0ZhsK6wSVnQmxTP2eVPPE8OPSNuxaMYtgVzwJZgfGdwlYjf4RlRU4vLEw4ts2fsE2icG4nZ5ddQ==" }, "@octokit/plugin-paginate-rest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.19.0.tgz", - "integrity": "sha512-hQ4Qysg2hNmEMuZeJkvyzM4eSZiTifOKqYAMsW8FnxFKowhuwWICSgBQ9Gn9GpUmgKB7qaf1hFvMjYaTAg5jQA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-3.0.0.tgz", + "integrity": "sha512-fvw0Q5IXnn60D32sKeLIxgXCEZ7BTSAjJd8cFAE6QU5qUp0xo7LjFUjjX1J5D7HgN355CN4EXE4+Q1/96JaNUA==", "requires": { - "@octokit/types": "^6.36.0" + "@octokit/types": "^6.39.0" } }, "@octokit/plugin-rest-endpoint-methods": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.15.0.tgz", - "integrity": "sha512-Gsw9+Xm56jVhfbJoy4pt6eOOyf8/3K6CAnx1Sl7U2GhZWcg8MR6YgXWnpfdF69S2ViMXLA7nfvTDAsZpFlkLRw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.1.2.tgz", + "integrity": "sha512-sAfSKtLHNq0UQ2iFuI41I6m5SK6bnKFRJ5kUjDRVbmQXiRVi4aQiIcgG4cM7bt+bhSiWL4HwnTxDkWFlKeKClA==", "requires": { - "@octokit/types": "^6.36.0", + "@octokit/types": "^6.40.0", "deprecation": "^2.3.1" } }, @@ -1216,21 +2066,21 @@ } }, "@octokit/plugin-throttling": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-3.7.0.tgz", - "integrity": "sha512-qrKT1Yl/KuwGSC6/oHpLBot3ooC9rq0/ryDYBCpkRtoj+R8T47xTMDT6Tk2CxWopFota/8Pi/2SqArqwC0JPow==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-4.1.0.tgz", + "integrity": "sha512-HZAf9aeH552jpMELlSTRhYMHGRlUe5gqm8jWB1mz+w8+O/WBlBmn55WpQyDmaDnb3YyfV4fmbjz5+dEACKznuQ==", "requires": { "@octokit/types": "^6.0.1", "bottleneck": "^2.15.3" } }, "@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.0.tgz", + "integrity": "sha512-7IAmHnaezZrgUqtRShMlByJK33MT9ZDnMRgZjnRrRV9a/jzzFwKGz0vxhFU6i7VMLraYcQ1qmcAOin37Kryq+Q==", "requires": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", "@octokit/types": "^6.16.1", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", @@ -1238,9 +2088,9 @@ } }, "@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.0.tgz", + "integrity": "sha512-WBtpzm9lR8z4IHIMtOqr6XwfkGvMOOILNLxsWvDwtzm/n7f5AWuqJTXQXdDtOvPfTDrH4TPhEvW2qMlR4JFA2w==", "requires": { "@octokit/types": "^6.0.3", "deprecation": "^2.0.0", @@ -1248,48 +2098,57 @@ } }, "@octokit/types": { - "version": "6.37.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.37.0.tgz", - "integrity": "sha512-BXWQhFKRkjX4dVW5L2oYa0hzWOAqsEsujXsQLSdepPoDZfYdubrD1KDGpyNldGXtR8QM/WezDcxcIN1UKJMGPA==", + "version": "6.40.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.40.0.tgz", + "integrity": "sha512-MFZOU5r8SwgJWDMhrLUSvyJPtVsqA6VnbVI3TNbsmw+Jnvrktzvq2fYES/6RiJA/5Ykdwq4mJmtlYUfW7CGjmw==", "requires": { - "@octokit/openapi-types": "^12.4.0" + "@octokit/openapi-types": "^12.10.0" } }, "@octokit/webhooks": { - "version": "9.26.0", - "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-9.26.0.tgz", - "integrity": "sha512-foZlsgrTDwAmD5j2Czn6ji10lbWjGDVsUxTIydjG9KTkAWKJrFapXJgO5SbGxRwfPd3OJdhK3nA2YPqVhxLXqA==", + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.0.8.tgz", + "integrity": "sha512-B6TfNTPDf8y5WqzlT5jmeYaYSf6oT7NhkelcetaDT7PP9btu1iaIKWZG+1DFRm1CBQE9HIHdh9rR65qq64m/5g==", "requires": { - "@octokit/request-error": "^2.0.2", - "@octokit/webhooks-methods": "^2.0.0", - "@octokit/webhooks-types": "5.8.0", + "@octokit/request-error": "^3.0.0", + "@octokit/webhooks-methods": "^3.0.0", + "@octokit/webhooks-types": "6.2.3", "aggregate-error": "^3.1.0" } }, "@octokit/webhooks-methods": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-2.0.0.tgz", - "integrity": "sha512-35cfQ4YWlnZnmZKmIxlGPUPLtbkF8lr/A/1Sk1eC0ddLMwQN06dOuLc+dI3YLQS+T+MoNt3DIQ0NynwgKPilig==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz", + "integrity": "sha512-FAIyAchH9JUKXugKMC17ERAXM/56vVJekwXOON46pmUDYfU7uXB4cFY8yc8nYr5ABqVI7KjRKfFt3mZF7OcyUA==" }, "@octokit/webhooks-types": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-5.8.0.tgz", - "integrity": "sha512-8adktjIb76A7viIdayQSFuBEwOzwhDC+9yxZpKNHjfzrlostHCw0/N7JWpWMObfElwvJMk2fY2l1noENCk9wmw==" + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.2.3.tgz", + "integrity": "sha512-m2J23W6QZeB7KOMHSgTZG8F0mXqqWlWrVzn41Zj4l2umHb6H3Z+rqFsryTNBTZuUiO7YFOFqYaTtlSGHC5CgUg==" }, "@sapphire/async-queue": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.1.tgz", - "integrity": "sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.2.tgz", + "integrity": "sha512-rUpMLATsoAMnlN3gecAcr9Ecnw1vG7zi5Xr+IX22YzRzi1k9PF9vKzoT8RuEJbiIszjcimu3rveqUnvwDopz8g==" + }, + "@sapphire/shapeshift": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.5.1.tgz", + "integrity": "sha512-7JFsW5IglyOIUQI1eE0g6h06D/Far6HqpcowRScgCiLSqTf3hhkPWCWotVTtVycnDCMYIwPeaw6IEPBomKC8pA==", + "requires": { + "fast-deep-equal": "^3.1.3", + "lodash.uniqwith": "^4.5.0" + } }, - "@sapphire/shapeshift": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.3.1.tgz", - "integrity": "sha512-PB2e5JHWIMRz9HiN/sIWcNIzXjYvzc3OmeRHYICXreKhetDYf4Zufypr8A48Z/XZLzbMqIka6uoR+2dH58nksg==" + "@sapphire/snowflake": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.2.2.tgz", + "integrity": "sha512-ula2O0kpSZtX9rKXNeQMrHwNd7E4jPDJYUXmEGTFdMRfyfMw+FPyh04oKMjAiDuOi64bYgVkOV3MjK+loImFhQ==" }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" + "@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" }, "@types/aws-lambda": { "version": "8.10.101", @@ -1319,27 +2178,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" }, - "@types/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, "@types/ws": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", @@ -1366,10 +2204,11 @@ "sprintf-js": "~1.0.2" } }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "optional": true }, "aws-lambda": { "version": "1.0.7", @@ -1384,9 +2223,9 @@ } }, "aws-sdk": { - "version": "2.1161.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1161.0.tgz", - "integrity": "sha512-qpOtPovj3xJhdTFBkJgqmSuy5rc7vDu2HtM+S3sLiP8Uhkb3Pn3z7LtTZt5YUnY2lV1DDR9H1aWuRlRDK96k1w==", + "version": "2.1177.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1177.0.tgz", + "integrity": "sha512-0Ui7hBofMom6F9N4em357NzsUt0pXDLuuUS1Ojf7Vu7S/LjVjB5zwmY7L4H5wuf5KDOjSmNX8/zG6QfGGc5X/w==", "optional": true, "requires": { "buffer": "4.9.2", @@ -1396,21 +2235,11 @@ "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", + "util": "^0.12.4", "uuid": "8.0.0", "xml2js": "0.4.19" }, "dependencies": { - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "optional": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", @@ -1440,34 +2269,52 @@ "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==" }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "optional": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, "buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "optional": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, - "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" - } - }, "commander": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", "optional": true }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "optional": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } }, "deprecation": { "version": "2.3.1", @@ -1475,39 +2322,26 @@ "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" }, "discord-api-types": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.33.5.tgz", - "integrity": "sha512-dvO5M52v7m7Dy96+XUnzXNsQ/0npsYpU6dL205kAtEDueswoz3aU3bh1UMoK4cQmcGtB1YRyLKqp+DXi05lzFg==" + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.36.2.tgz", + "integrity": "sha512-TunPAvzwneK/m5fr4hxH3bMsrtI22nr9yjfHyo5NBGMjpsAauGNiGCmwoFf0oO3jSd2mZiKUvZwCKDaB166u2Q==" }, "discord.js": { - "version": "13.8.1", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.8.1.tgz", - "integrity": "sha512-jOsD+4tEZWWx0RHVyH+FBcqoTrsL+d5Mm5p+ULQOdU0qSaxhLNkWYig+yDHNZoND7nlkXX3qi+BW+gO5erWylg==", - "requires": { - "@discordjs/builders": "^0.14.0", - "@discordjs/collection": "^0.7.0", - "@sapphire/async-queue": "^1.3.1", - "@types/node-fetch": "^2.6.1", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.0.2.tgz", + "integrity": "sha512-aHZHwT4i5yyV4IotFm9lSSPq8mTUkYWTrpatPlT53wz8QyFUPw5XjvUxuOXlaioV1kBsgfhSjCP0BNqxfuSjRQ==", + "requires": { + "@discordjs/builders": "^1.0.0", + "@discordjs/collection": "^1.0.0", + "@discordjs/rest": "^1.0.0", + "@sapphire/snowflake": "^3.2.2", "@types/ws": "^8.5.3", - "discord-api-types": "^0.33.3", - "form-data": "^4.0.0", - "node-fetch": "^2.6.1", - "ws": "^8.7.0" - }, - "dependencies": { - "@discordjs/builders": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.14.0.tgz", - "integrity": "sha512-+fqLIqa9wN3R+kvlld8sgG0nt04BAZxdCDP4t2qZ9TJsquLWA+xMtT8Waibb3d4li4AQS+IOfjiHAznv/dhHgQ==", - "requires": { - "@sapphire/shapeshift": "^3.1.0", - "@sindresorhus/is": "^4.6.0", - "discord-api-types": "^0.33.3", - "fast-deep-equal": "^3.1.3", - "ts-mixer": "^6.0.1", - "tslib": "^2.4.0" - } - } + "discord-api-types": "^0.36.2", + "fast-deep-equal": "^3.1.3", + "lodash.snakecase": "^4.1.1", + "tslib": "^2.4.0", + "undici": "^5.7.0", + "ws": "^8.8.1" } }, "dotenv": { @@ -1523,6 +2357,48 @@ "safe-buffer": "^5.0.1" } }, + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "optional": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "optional": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -1540,14 +2416,23 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "file-type": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-17.1.2.tgz", + "integrity": "sha512-3thBUSfa9YEUEGO/NAAiQGvjujZxZiJTF6xNwyDn6kB0NcEtwMn5ttkGG9jGwm/Nt/t8U1bpBNqyBNZCz4F4ig==", + "requires": { + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0-alpha.7", + "token-types": "^5.0.0-alpha.2" + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "optional": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "is-callable": "^1.1.3" } }, "fromentries": { @@ -1555,6 +2440,51 @@ "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==" }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "optional": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "optional": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "optional": true + }, + "get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "optional": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "optional": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", @@ -1567,16 +2497,203 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "optional": true }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "optional": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "optional": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "optional": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "optional": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "optional": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "optional": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "optional": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "optional": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "optional": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "optional": true + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "optional": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "optional": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "optional": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "optional": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "optional": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "optional": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "optional": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "optional": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", + "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", + "optional": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", + "has-tostringtag": "^1.0.0" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "optional": true, + "requires": { + "call-bind": "^1.0.2" + } + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -1670,6 +2787,16 @@ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" }, + "lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" + }, + "lodash.uniqwith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniqwith/-/lodash.uniqwith-4.5.0.tgz", + "integrity": "sha512-7lYL8bLopMoy4CTICbxygAUq6CdRJ36vFc80DucPueUee+d5NBRxz3FdT9Pes/HEx5mPoT9jwnsEJWz1N7uq7Q==" + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -1678,19 +2805,6 @@ "yallist": "^4.0.0" } }, - "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" - } - }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -1702,41 +2816,44 @@ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "requires": { "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "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" - } - } + } + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "optional": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "optional": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "optional": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, "octokit": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/octokit/-/octokit-1.8.1.tgz", - "integrity": "sha512-xBLKFIivbl7wnLwxzLYuDO/JDNYxdyxoSjFrl/QMrY/fwGGQYYklvKUDTUyGMU0aXPrQtJ0IZnG3BXpCkDQzWg==", - "requires": { - "@octokit/app": "^12.0.4", - "@octokit/core": "^3.5.1", - "@octokit/oauth-app": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.18.0", - "@octokit/plugin-rest-endpoint-methods": "^5.14.0", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/octokit/-/octokit-2.0.4.tgz", + "integrity": "sha512-9QvgYGzrSTGmr3koSGtbgeMgqYI20QI0Vv8Bk9y6phchk6L2aHFhcrUOIeNUPj1Z+KZnEBd6A/8faNpDFNfVjg==", + "requires": { + "@octokit/app": "^13.0.5", + "@octokit/core": "^4.0.4", + "@octokit/oauth-app": "^4.0.6", + "@octokit/plugin-paginate-rest": "^3.0.0", + "@octokit/plugin-rest-endpoint-methods": "^6.0.0", "@octokit/plugin-retry": "^3.0.9", - "@octokit/plugin-throttling": "^3.5.1", + "@octokit/plugin-throttling": "^4.0.1", "@octokit/types": "^6.35.0" } }, @@ -1748,6 +2865,11 @@ "wrappy": "1" } }, + "peek-readable": { + "version": "5.0.0-alpha.5", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0-alpha.5.tgz", + "integrity": "sha512-pJohF/tDwV3ntnT5+EkUo4E700q/j/OCDuPxtM+5/kFGjyOai/sK4/We4Cy1MB2OiTQliWU5DxPvYIKQAdPqAA==" + }, "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", @@ -1760,6 +2882,35 @@ "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", "optional": true }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readable-web-to-node-stream": { + "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": { + "readable-stream": "^3.6.0" + } + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "optional": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -1776,12 +2927,76 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "optional": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "optional": true }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "optional": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "optional": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "strtok3": { + "version": "7.0.0-alpha.8", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0-alpha.8.tgz", + "integrity": "sha512-u+k19v+rTxBjGYxncRQjGvZYwYvEd0uP3D+uHKe/s4WB1eXS5ZwpZsTlBu5xSS4zEd89mTXECXg6WW3FSeV8cA==", + "requires": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0-alpha.5" + } + }, + "token-types": { + "version": "5.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.0-alpha.2.tgz", + "integrity": "sha512-EsG9UxAW4M6VATrEEjhPFTKEUi1OiJqTUMIZOGBN49fGxYjZB36k0p7to3HZSmWRoHm1QfZgrg3e02fpqAt5fQ==", + "requires": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + } + }, + "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.1", "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", @@ -1792,6 +3007,23 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "optional": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "undici": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.7.0.tgz", + "integrity": "sha512-ORgxwDkiPS+gK2VxE7iyVeR7JliVn5DqhZ4LgQqYLBXsuK+lwOEmnJ66dhvlpLM0tC3fC7eYF1Bti2frbw2eAA==" + }, "universal-github-app-jwt": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.0.tgz", @@ -1816,6 +3048,25 @@ "querystring": "0.2.0" } }, + "util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "optional": true, + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, "uuid": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", @@ -1832,15 +3083,56 @@ "graceful-fs": "^4.1.2" } }, + "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" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "optional": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", + "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", + "optional": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.9" + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "ws": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", - "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", + "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", "requires": {} }, "xml2js": { diff --git a/package.json b/package.json index 6b56d3a..d065a52 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,8 @@ "url": "https://github.com/Avdan-OS/Tinan/issues" }, "dependencies": { - "discord.js": "^13.8.1", + "discord.js": "^14.0.2", "dotenv": "^16.0.1", - "octokit": "^1.8.1" + "octokit": "^2.0.4" } } diff --git a/src/commands/demote.js b/src/commands/demote.js new file mode 100644 index 0000000..a08dfa4 --- /dev/null +++ b/src/commands/demote.js @@ -0,0 +1,106 @@ +const { EmbedBuilder, ApplicationCommandOptionType, Colors } = require('discord.js'); + +module.exports = { + name: 'demote', + description: 'Demotes a user. (manager only)', + options: [ + { + name: 'user', + description: 'User that will be demoted', + required: true, + type: ApplicationCommandOptionType.User, + }, + { + name: 'reason', + description: 'Why you are demoting this user', + required: false, + type: ApplicationCommandOptionType.String, + }, + ], + + callback: async (interaction) => { + if (interaction.member.roles.cache.some(role => ['993524668503949322', '986269171111297036'].includes(role.id))) { // check if member has manager role + const member = interaction.options.getMember('user'); + const reason = interaction.options.getString('reason'); + const rolesToRemove = [ + // main server + '993537552625705000', // senior dev + '993598471456178248', // design lead + '993471541176184842', // designer + '993514545165389834', // team avdan OS + '993562782756782181', // senior designer + '996010452561698897', // translator + '993524490493493308', // tester + '993471258371047455', // dev + '993579333119656098', // dev lead + '993529249128525878', // contributor + + // test server + '986269779469926450', // dev lead + '990841843497443349', // senior dev + '986269396890697738', // dev + '987642117813841960', // contributor + '997778183267037234', // senior designer + '986269279701831740', // designer + '991332275205713950', // AvdanOS team + ] + removedRoles = [] // roles that were removed + + if (member.user.bot) { + const embed = new EmbedBuilder() + .setTitle("You can't demote a bot") + .setColor(Colors.Red) + + return interaction.reply({ embeds: [embed], ephemeral: true }); + } + + if (member.roles.cache.some(role => ['993524668503949322', '986269171111297036'].includes(role.id))) { + const embed = new EmbedBuilder() + .setTitle("You can't demote a manager") + .setColor(Colors.Red) + + return interaction.reply({ embeds: [embed], ephemeral: true }); + } + + rolesToRemove.forEach((id)=>{ + if (member.roles.cache.some(role => role.id == id)) { + role = interaction.guild.roles.cache.get(id); + member.roles.remove(role); + removedRoles.push(`<@&${id}>`) + } + }) + + const embed = new EmbedBuilder() + + if (removedRoles.length > 0) { + embed + .setTitle(`${member.user.username}#${member.user.discriminator} was demoted`) + .setDescription('Removed roles:\n\n'+removedRoles.join('\n')) + .setColor(Colors.Blue) + try { + const demotedNotify = new EmbedBuilder() + .setTitle(`You were demoted by ${interaction.user.username}#${interaction.user.discriminator}`) + .setDescription(reason ? ('Reason: ' + reason) : 'No reason was provided') + .setColor(Colors.Red) + + await member.send({ embeds: [demotedNotify] }) + } catch (err) { + embed.setFooter({ text: 'P. S. Bot failed to send DM' }) + } + } else { + embed + .setTitle(`${member.user.username}#${member.user.discriminator} can't be demoted`) + .setDescription('This user has no team manager roles') + .setColor(Colors.Red) + } + + interaction.reply({ embeds: [embed], ephemeral: removedRoles.length == 0 }); + } else { + const embed = new EmbedBuilder() + .setTitle('You are not allowed to use this command') + .setColor(Colors.Red) + + interaction.reply({ embeds: [embed], ephemeral: true }); + } + } +}; diff --git a/src/commands/loa.js b/src/commands/loa.js index e5b32d3..59f66a9 100644 --- a/src/commands/loa.js +++ b/src/commands/loa.js @@ -1,43 +1,43 @@ const cfg = require('../config.json'); -const { MessageEmbed, MessageActionRow, MessageButton, Permissions } = require('discord.js'); +const { EmbedBuilder, ActionRowBuilder, ButtonBuilder, ApplicationCommandOptionType, ButtonStyle, PermissionsBitField, Colors } = require('discord.js'); module.exports = { name: 'loa', description: 'Apply or Return LOA', options: [ { - type: 'SUB_COMMAND', + type: ApplicationCommandOptionType.Subcommand, name: 'apply', description: 'Apply for LOA', options: [ { name: 'github', description: 'Your GitHub username.', - type: 'STRING', + type: ApplicationCommandOptionType.String, required: true, }, { name: 'figma', description: 'Your Figma username.', - type: 'STRING', + type: ApplicationCommandOptionType.String, required: true, }, { name: 'reason', description: 'The reason for your leave', - type: 'STRING', + type: ApplicationCommandOptionType.String, required: true, }, { name: 'return', description: 'Time of return from leave', - type: 'STRING', + type: ApplicationCommandOptionType.String, required: true, }, ], }, { - type: 'SUB_COMMAND', + type: ApplicationCommandOptionType.Subcommand, name: 'return', description: 'Return from LOA', }, @@ -48,94 +48,124 @@ module.exports = { if (options._subcommand === 'apply') { if (!interaction.member.roles.cache.find((r) => r.name === 'Developer' || 'Designer')) { - return interaction.reply({ content: 'You need the **Developer** or the **Designer** role to apply for LOA', ephemeral: true }); + const embed = new EmbedBuilder() + .setTitle('You need the **Developer** or the **Designer** role to apply for LOA.') + .setColor(Colors.Red) + + return interaction.reply({ embeds: [embed], ephemeral: true }); } if (interaction.member.roles.cache.find((r) => r.name === '[LOA]')) { - return interaction.reply({ content: 'You are already set to LOA', ephemeral: true }); + const embed = new EmbedBuilder() + .setTitle('You are already set to LOA.') + .setColor(Colors.Red) + + return interaction.reply({ embeds: [embed], ephemeral: true }); } const dev = interaction.member; - const loaRole = interaction.guild.roles.cache.find((r) => r.name === '[LOA]'); - const loaChannel = interaction.guild.channels.cache.find((c) => c.id === cfg.loaReports); + const loaRole = interaction.guild.roles.cache.find(r => r.name === '[LOA]'); + const loaChannel = interaction.guild.channels.cache.find(c => c.id === cfg.loaReports); - const embed = new MessageEmbed() + const embed = new EmbedBuilder() .setTitle('LOA pending.') - .setColor('#0099ff') - .setFields( + .setColor(Colors.Blue) + .setFields([ { name: 'GitHub username', value: options.getString('github'), inline: true }, { name: 'Figma Username', value: options.getString('figma'), inline: true }, { name: 'Reason', value: options.getString('reason'), inline: true }, { name: 'Return', value: options.getString('return'), inline: true }, - ) + ]) .setAuthor({ name: interaction.member.user.tag, iconURL: interaction.member.displayAvatarURL() }); - const buttons = new MessageActionRow().addComponents( - new MessageButton() + const buttons = new ActionRowBuilder().addComponents( + new ButtonBuilder() .setCustomId('accept') .setLabel('Accept') - .setStyle('PRIMARY'), - new MessageButton() + .setStyle(ButtonStyle.Primary), + new ButtonBuilder() .setCustomId('deny') .setLabel('Deny') - .setStyle('SECONDARY'), + .setStyle(ButtonStyle.Danger), ) - const filter = (ButtonInteraction) => { return ButtonInteraction.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR); } + const filter = (ButtonInteraction) => { return ButtonInteraction.member.permissions.has(PermissionsBitField.Flags.Administrator); } loaChannel.send({ embeds: [embed], components: [buttons] }).then( message => { - interaction.reply({ content: 'LOA asked successfully.', ephemeral: true }); + const embed = new EmbedBuilder() + .setTitle('LOA asked successfully.') + .setColor(Colors.Green) + + interaction.reply({ embeds: [embed], ephemeral: true }); const collector = message.channel.createMessageComponentCollector({ filter, max: 1 }); + collector.on('end', (collection) => { if (collection.first().customId == 'accept') { dev.setNickname(`[LOA] ${dev.displayName}`); dev.roles.add(loaRole); embed.setTitle(`LOA granted by \`${collection.first().member.user.tag}\``) - embed.setColor('GREEN') + embed.setColor(Colors.Green) + message.edit({ embeds: [embed], components: [] }); } else { embed.setTitle(`LOA denied by \`${collection.first().member.user.tag}\``) - embed.setColor('RED') + embed.setColor(Colors.Red) + message.edit({ embeds: [embed], components: [] }); } }) }); } else if (options._subcommand === 'return') { if (!interaction.member.roles.cache.find((r) => r.name === 'Developer' || 'Designer')) { - return interaction.reply({ content: 'You need the **Developer** or the **Designer** role to return from LOA.', ephemeral: true }); + const embed = new EmbedBuilder() + .setTitle('You need the **Developer** or the **Designer** role to return from LOA.') + .setColor(Colors.Red) + + return interaction.reply({ embeds: [embed], ephemeral: true }); } if (!interaction.member.roles.cache.find((r) => r.name === '[LOA]')) { - return interaction.reply({ content: 'You are not set to LOA.', ephemeral: true }); + const embed = new EmbedBuilder() + .setTitle('You are not set to LOA.') + .setColor(Colors.Red) + + return interaction.reply({ embeds: [embed], ephemeral: true }); } const dev = interaction.member; const loaRole = interaction.guild.roles.cache.find((r) => r.name === '[LOA]'); const loaChannel = interaction.guild.channels.cache.find((c) => c.id === cfg.loaReports); - const embed = new MessageEmbed({ - title: `Returned from their LOA.`, - color: '#0099ff', - }).setAuthor({ - name: interaction.member.user.tag, - iconURL: interaction.member.displayAvatarURL() - }); + const embed = new EmbedBuilder() + .setTitle('Returned from their LOA.') + .setColor(Colors.Blue) + .setAuthor({ name: interaction.member.user.tag, iconURL: interaction.member.displayAvatarURL() }); if (dev.displayName.slice(0, 6) !== '[LOA] ') { await dev.roles.remove(loaRole); await loaChannel.send({ embeds: [embed] }); + const embed = new EmbedBuilder() + .setTitle('Returned from LOA.\nā„¹ It seems that your nickname was altered during your LOA, no actions will be executed on your nickname.') + .setColor(Colors.Green); - return interaction.reply({ content: 'Returned from LOA.\nā„¹ It seems that your nickname was altered during your LOA, no actions will be executed on your nickname.', ephemeral: true }); + return interaction.reply({ embeds: [embed], ephemeral: true }); } try { await dev.setNickname(dev.displayName.slice(6)); await dev.roles.remove(loaRole); await loaChannel.send({ embeds: [embed] }); - - interaction.reply({ content: 'Returned from LOA', ephemeral: true }); + const embed = new EmbedBuilder() + .setTitle('Returned from LOA') + .setColor(Colors.Green) + + interaction.reply({ embeds: [embed], ephemeral: true }); } catch (err) { console.log(err); - interaction.reply({ content: 'Something went wrong', ephemeral: true }); + const embed = new EmbedBuilder() + .setTitle('Something went wrong') + .setColor(Colors.Red) + + interaction.reply({ embeds: [embed], ephemeral: true }); } } }, diff --git a/src/commands/poll.js b/src/commands/poll.js index 31bba78..218e6ff 100644 --- a/src/commands/poll.js +++ b/src/commands/poll.js @@ -1,96 +1,60 @@ -const { MessageEmbed, MessageActionRow, MessageButton, Constants, Permissions } = require('discord.js'); +const { EmbedBuilder, ActionRowBuilder, ButtonBuilder, ApplicationCommandOptionType, ButtonStyle, PermissionsBitField, Colors } = require('discord.js'); module.exports = { name: 'poll', - description: 'Poll util management', + description: 'Creates a poll. (manager only)', options: [ { - type: 'SUB_COMMAND', + type: ApplicationCommandOptionType.Subcommand, name: 'create', description: 'Create a poll', options: [ { - name: 'subject', - description: 'Subject of the poll', + name: 'title', + description: 'Title of the poll', required: true, - type: Constants.ApplicationCommandOptionTypes.STRING + type: ApplicationCommandOptionType.String, }, { name: 'time', description: 'Duration of the poll (in seconds)', required: true, - type: Constants.ApplicationCommandOptionTypes.INTEGER + type: ApplicationCommandOptionType.Integer, }, { - name: '1', - description: 'Choice 1', - required: false, - type: Constants.ApplicationCommandOptionTypes.STRING - }, - { - name: '2', - description: 'Choice 2', - required: false, - type: Constants.ApplicationCommandOptionTypes.STRING - }, - { - name: '3', - description: 'Choice 3', - required: false, - type: Constants.ApplicationCommandOptionTypes.STRING - }, - { - name: '4', - description: 'Choice 4', - required: false, - type: Constants.ApplicationCommandOptionTypes.STRING - }, - { - name: '5', - description: 'Choice 5', - required: false, - type: Constants.ApplicationCommandOptionTypes.STRING - }, - { - name: '6', - description: 'Choice 6', - required: false, - type: Constants.ApplicationCommandOptionTypes.STRING + name: 'button-1', + description: 'Button 1', + required: true, + type: ApplicationCommandOptionType.String, }, { - name: '7', - description: 'Choice 7', - required: false, - type: Constants.ApplicationCommandOptionTypes.STRING + name: 'button-2', + description: 'Button 2', + required: true, + type: ApplicationCommandOptionType.String, }, { - name: '8', - description: 'Choice 8', + name: 'button-3', + description: 'Button 3', required: false, - type: Constants.ApplicationCommandOptionTypes.STRING + type: ApplicationCommandOptionType.String, }, { - name: '9', - description: 'Choice 9', + name: 'button-4', + description: 'Button 4', required: false, - type: Constants.ApplicationCommandOptionTypes.STRING + type: ApplicationCommandOptionType.String, }, { - name: '10', - description: 'Choice 10', + name: 'button-5', + description: 'Button 5', required: false, - type: Constants.ApplicationCommandOptionTypes.STRING + type: ApplicationCommandOptionType.String, }, - { - name: 'mention', - description: 'Mention everyone (default: False)', - required: false, - type: Constants.ApplicationCommandOptionTypes.BOOLEAN - } ] }, { - type: 'SUB_COMMAND', + type: ApplicationCommandOptionType.Subcommand, name: 'end', description: 'End a poll', options: [ @@ -98,13 +62,13 @@ module.exports = { name: 'id', description: 'ID of the poll', required: true, - type: Constants.ApplicationCommandOptionTypes.INTEGER + type: ApplicationCommandOptionType.Integer, }, { name: 'reason', description: 'Reason for ending the poll', required: false, - type: Constants.ApplicationCommandOptionTypes.STRING + type: ApplicationCommandOptionType.String, }, ], }, @@ -113,48 +77,42 @@ module.exports = { callback: (interaction) => { const pollId = Math.floor(Math.random() * 89999) + 10000; const timestamp = parseInt(Date.now().toString().substring(0,10)) + interaction.options.getInteger('time') + 1 - let embed = new MessageEmbed({ - title: `Poll: ${interaction.options.getString('subject')}`, - description: `Poll ends `, - color: 'BLUE', - }); - if (interaction.member.permissions.has(Permissions.FLAGS.MANAGE_EVENTS)) { + let embed = new EmbedBuilder() + .setTitle(`Poll: ${interaction.options.getString('title')}`) + .setDescription(`Poll ends in `) + .setColor(Colors.Blue) + + if (interaction.member.permissions.has(PermissionsBitField.Flags.ManageEvents)) { if (interaction.options._subcommand == 'create') { - embed.addFields([ - { - name: 'Total votes', - value: '0', - inline: true, - } - ]) + embed.addFields([{ name: 'Total votes', value: '0', inline: true }]) embed.setAuthor({ name: interaction.member.displayName, iconURL: interaction.member.displayAvatarURL() }) embed.setFooter({ text: 'Poll id: ' + pollId.toString() }) + const getButton = (buttonID) => interaction.options.getString(buttonID); - const row1 = new MessageActionRow(); - const row2 = new MessageActionRow(); - + const row1 = new ActionRowBuilder(); + const row2 = new ActionRowBuilder(); for (let i = 1; i < 6; i++) { if (getButton(i.toString())) { row1.addComponents( - new MessageButton() + new ButtonBuilder() .setCustomId('poll_' + pollId.toString() + '_' + i.toString()) .setLabel(getButton(i.toString())) - .setStyle('SECONDARY') - ) + .setStyle(ButtonStyle.Secondary), + ) } } for (let i = 6; i < 11; i++) { if (getButton(i.toString())) { row2.addComponents( - new MessageButton() + new ButtonBuilder() .setCustomId('poll_' + pollId.toString() + '_' + i.toString()) .setLabel(getButton(i.toString())) - .setStyle('SECONDARY') + .setStyle(ButtonStyle.Secondary), ) } } @@ -165,16 +123,22 @@ module.exports = { global.getLabel = function (pollID, buttonID) { if (pollID == pollId) return interaction.options.getString(buttonID) }; let mention = ' '; if (interaction.options.getBoolean('mention')) mention = '@everyone'; + interaction.channel.send({ content: mention, embeds: [embed], components: rows }).then(message => { - interaction.reply({ content: 'The poll has been created', ephemeral: true }) + const embed = new EmbedBuilder() + .setTitle('The poll has been created') + .setColor(Colors.Green) + interaction.reply({ embeds: [embed], ephemeral: true }); const collector = interaction.channel.createMessageComponentCollector({ time: interaction.options.getInteger('time') * 1000 }); collector.client.on('interactionCreate', (interact) => { - if (interact.isCommand()) if (interact.commandName == 'poll') if (interact.options._subcommand == 'end') if (interact.options.getInteger('id') == pollId) collector.stop() + if (interact.isCommand()) if (interact.commandName == 'poll') if (interact.options._subcommand == 'end') if (interact.options.getInteger('id') == pollId) collector.stop(); }) + collector.on('collect', () => { embed.fields[0].value = Object.values(pollsList[pollId]).length.toString() message.edit({ embeds: [embed] }) }); + collector.on('end', () => { if (pollsList[pollId]) { let winners = []; @@ -203,27 +167,29 @@ module.exports = { }); } else { embed.setTitle(`Poll \`${interaction.options.getInteger('id').toString()}\` was terminated by \`${interaction.member.user.tag}\``) - if (interaction.options.getString('reason')) embed.addFields([{ name: 'Reason', value: interaction.options.getString('reason'), inline: true }]).setDescription('') - else embed.setDescription('No reason specified') - interaction.reply({ embeds: [embed] }) + if (interaction.options.getString('reason')) { + embed.addFields([{ name: 'Reason', value: interaction.options.getString('reason'), inline: true }]) + embed.setDescription('') + } else embed.setDescription('No reason specified'); + interaction.reply({ embeds: [embed] }); } } else { embed.setTitle(`Error`) embed.setDescription(`You don't have sufficient permissions to execute that command`) - embed.setColor('RED') + embed.setColor(Colors.Red) interaction.reply({ embeds: [embed], ephemeral: true }); } interaction.client.on('interactionCreate', (interact) => { if (interact.isButton()) { if (interact.customId.substring(0,4) == 'poll') { const pollId = interact.customId.substring(5, 10); - let embed = new MessageEmbed() - if (global.pollsList[pollId][interact.user.id]) embed.setTitle('You have already voted for this poll').setColor('RED'); + let embed = new EmbedBuilder() + if (global.pollsList[pollId][interact.user.id]) embed.setTitle('You have already voted for this poll').setColor(Colors.Red); else { global.pollsList[pollId][interact.user.id] = interact.customId; - embed.setTitle(`You successfully voted for **${getLabel(pollId, interact.customId.substring(11,13))}**`).setColor('GREEN'); + embed.setTitle(`You successfully voted for **${getLabel(pollId, interact.customId.substring(11,13))}**`).setColor(Colors.Green); } - return interact.reply({embeds: [embed], ephemeral: true }); + return interact.reply({ embeds: [embed], ephemeral: true }); } else return; } else return; }); diff --git a/src/commands/repolist.js b/src/commands/repolist.js index aef0a13..4ec5726 100644 --- a/src/commands/repolist.js +++ b/src/commands/repolist.js @@ -1,4 +1,4 @@ -const { MessageEmbed } = require('discord.js'); +const { EmbedBuilder, Colors } = require('discord.js'); const { Octokit } = require('octokit'); require('dotenv').config(); @@ -8,20 +8,18 @@ module.exports = { callback: async (interaction) => { const octokit = new Octokit({ auth: process.env.GITHUB_API_KEY }); - await octokit.request('GET /orgs/{org}/repos', { - org: 'Avdan-OS' - }) + await octokit.request('GET /orgs/{org}/repos', { org: 'Avdan-OS'}) .then((data) => { - let embed = new MessageEmbed() + let embed = new EmbedBuilder() .setTitle('Repository list') - .setColor('BLUE') + .setColor(Colors.Blue) .setFooter({ text: 'Click on an arrow to open the corresponding repository' }) data.data.forEach(dataChildren => { dataChildren.description = dataChildren.description || "N/A"; - embed.addFields( + embed.addFields([ { name: `${dataChildren.name}`, value: `[>](https://github.com/Avdan-OS/${dataChildren.name}) ${dataChildren.description}`, inline: true } - ) + ]) }) interaction.reply({ embeds: [embed], ephemeral: true }); }); diff --git a/src/commands/suggest.js b/src/commands/suggest.js new file mode 100644 index 0000000..f319a22 --- /dev/null +++ b/src/commands/suggest.js @@ -0,0 +1,42 @@ +const { EmbedBuilder, ApplicationCommandOptionType, Colors } = require('discord.js'); + +module.exports = { + name: 'suggest', + description: 'Sends your idea', + options: [ + { + name: 'title', + description: 'Title of your suggestion', + required: true, + type: ApplicationCommandOptionType.String, + }, + { + name: 'description', + description: 'Description of your suggestion', + required: true, + type: ApplicationCommandOptionType.String, + }, + ], + + callback: async (interaction) => { + const title = interaction.options.getString('title'); + const text = interaction.options.getString('description'); + + const ideaEmbed = new EmbedBuilder() + .setAuthor({ name: interaction.user.username, iconURL: interaction.user.avatarURL() }) + .setTitle(title) + .setDescription(text) + .setColor(Colors.Blue) + + const channel = interaction.guild.channels.cache.find(cnl => cnl.id === '993466949889703996'); + const msg = await channel.send({ embeds: [ideaEmbed] }); + + msg.startThread({ name: title }); + + const embed = new EmbedBuilder() + .setTitle('Your suggestion was sent') + .setColor(Colors.Blue) + + interaction.reply({ embeds: [embed], ephemeral: true }) + } +} diff --git a/src/events/ready.js b/src/events/ready.js index 2b54134..595295b 100644 --- a/src/events/ready.js +++ b/src/events/ready.js @@ -1,7 +1,9 @@ +const commands = require('../handlers/cmdHandler'); + module.exports = { name: 'ready', - callback: (client) => { - client.user.setPresence({ activities: [{ name: 'discord.gg/avdanos', type: 'WATCHING' }] }); + callback: (client) => { + commands(client); console.log('Start completed.'); } }; diff --git a/src/examples/button.js b/src/examples/button.js index c2f3a0a..6573f6c 100644 --- a/src/examples/button.js +++ b/src/examples/button.js @@ -1,4 +1,4 @@ -const { MessageEmbed, MessageActionRow, MessageButton } = require('discord.js'); +const { EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, Colors } = require('discord.js'); /** * @file This is an example that includes creating and responding to buttons. @@ -9,20 +9,20 @@ module.exports = { name: 'button', description: 'this is an example for buttons', callback: (interaction) => { - let embed = new MessageEmbed() + let embed = new EmbedBuilder() .setTitle('example') .setDescription('this is an example for buttons') - .setColor('BLUE') + .setColor(Colors.Blue) - const buttons = new MessageActionRow().addComponents( - new MessageButton() + const buttons = new ActionRowBuilder().addComponents( + new ButtonBuilder() .setCustomId('primary') .setLabel('example of a primary button') - .setStyle('PRIMARY'), - new MessageButton() + .setStyle(ButtonStyle.Primary), + new ButtonBuilder() .setCustomId('secondary') .setLabel('example of a secondary button') - .setStyle('SECONDARY'), + .setStyle(ButtonStyle.Secondary), ) interaction.reply({ embeds: [embed], components: [buttons], ephemeral: true }); diff --git a/src/examples/embed.js b/src/examples/embed.js index 8d53051..0a67cfb 100644 --- a/src/examples/embed.js +++ b/src/examples/embed.js @@ -1,4 +1,4 @@ -const { MessageEmbed } = require('discord.js'); +const { EmbedBuilder, Colors } = require('discord.js'); /** * @file This is an example of an embed. @@ -9,15 +9,15 @@ module.exports = { name: 'embed', description: 'this is an embed example', callback: (interaction) => { - const embed = new MessageEmbed() + const embed = new EmbedBuilder() .setTitle('example') .setDescription('this is an example of an embed') - .addFields( + .addFields([ { name: 'field example 1', value: 'field example 1' }, - { name: 'field example 2', value: 'field example 2' } - ) + { name: 'field example 2', value: 'field example 2' }, + ]) .setFooter({ text: 'footer example' }) - .setColor('BLUE') + .setColor(Colors.Blue) interaction.reply({ embeds: [embed], ephemeral: true }); } diff --git a/src/examples/option.js b/src/examples/option.js index 55e8b7e..a25d580 100644 --- a/src/examples/option.js +++ b/src/examples/option.js @@ -1,4 +1,4 @@ -const { MessageEmbed, Constants } = require('discord.js'); +const { EmbedBuilder, ApplicationCommandOptionType, Colors } = require('discord.js'); /** * @file This is an example of options. @@ -12,7 +12,7 @@ module.exports = { { name: 'option', description: 'option', - type: Constants.ApplicationCommandOptionTypes.STRING, + type: ApplicationCommandOptionType.String, required: true, // or false choices: [ { @@ -28,14 +28,14 @@ module.exports = { ], callback: (interaction) => { const option = interaction.options.getString('option'); - let embed = new MessageEmbed() + let embed = new EmbedBuilder() if (option == 'yes') { embed.setTitle('you like option') - embed.setColor('GREEN') + embed.setColor(Colors.Green) } else { embed.setTitle('you hate option :<') - embed.setColor('RED') + embed.setColor(Colors.Red) } interaction.reply({ embeds: [embed], ephemeral: true }); } diff --git a/src/examples/randomResponse.js b/src/examples/randomResponse.js index 40c1180..9dd0f0b 100644 --- a/src/examples/randomResponse.js +++ b/src/examples/randomResponse.js @@ -1,4 +1,4 @@ -const { MessageEmbed } = require('discord.js'); +const { EmbedBuilder, Colors } = require('discord.js'); /** * @file This is an example of random responses. @@ -15,9 +15,9 @@ module.exports = { 'hello world' ]; const title = messages[Math.floor(Math.random() * messages.length)]; - const embed = new MessageEmbed() + const embed = new EmbedBuilder() .setTitle(`${title}`) - .setColor('BLUE') + .setColor(Colors.Blue) interaction.reply({ embeds: [embed], ephemeral: true }); } diff --git a/src/handlers/cmdHandler.js b/src/handlers/cmdHandler.js index dfb651d..e502717 100644 --- a/src/handlers/cmdHandler.js +++ b/src/handlers/cmdHandler.js @@ -1,42 +1,52 @@ -const { MessageEmbed } = require('discord.js'); +const { EmbedBuilder, InteractionType, Colors } = require('discord.js'); require('dotenv').config(); -const fs = require("fs"); -const path = require("path"); +const fs = require('fs'); +const path = require('path'); module.exports = async (client) => { global.pollsList = {}; - + global.multiReact = async (msg, ...reactions) => { for (let i of reactions) { - if (typeof i !== 'object') { - for (let reaction of i) { - if(reaction !== ' ') await msg.react(reaction); - } - } else await msg.react(i); + if (typeof i !== 'object') for (let reaction of i) { if (reaction !== ' ') { + try { + await msg.react(reaction); + } catch (A) {} + }} else await msg.react(i); } } - + client.on('messageCreate', async (message) => { - const goosStanding = await message.guild.emojis.fetch('993799647015481397').catch(() => { return ':duck:' }); + const goosStanding = await message.guild.emojis.fetch('993799647015481397').catch(() => { return 'šŸ¦†' }); const events = [ - [['bread'], () => { + [['bread'], async () => { await multiReact(message, 'šŸžšŸ‡§šŸ‡·šŸ‡ŖšŸ‡¦šŸ‡©šŸ‘') }], - [['honk'], () => { - await multiReact(message, goosStanding, `šŸ‡­šŸ‡“šŸ‡³šŸ‡°šŸ‘`) + [['honk'], async () => { + await multiReact(message, goosStanding, 'šŸ‡­šŸ‡“šŸ‡³šŸ‡°šŸ‘') + }], + [['akane', 'akane cat'], async () => { + await multiReact(message, 'šŸ…°ļø šŸ‡° šŸ‡¦ šŸ‡³ šŸ‡Ŗ šŸ±') }], [['pineapple'], () => message.react('šŸ')], [['forgor'], () => message.react('šŸ’€')], [['cheese'], () => message.react('šŸ§€')], + [['oink'], () => message.react('šŸ·')], [['download avdan os', 'avdan os iso'], { embeds: [ - new MessageEmbed() + new EmbedBuilder() .setDescription('We have not finished developing AvdanOS, so there is not a download yet.\nWe are currently working on the **window manager**.\nSubscribe to [our Youtube channel](https://www.youtube.com/channel/UCHLCBj83J7bR82HwjhCJusA) for updates on our development.') - .setColor('BLUE') + .setColor(Colors.Blue) ] }], ] + + if ( + message.content.startsWith('this has been') && + message.content.endsWith('in 100 seconds') && + message.content != 'this has been in 100 seconds' + ) message.channel.send('hit the like button and subscribe if you want to see more short videos like this thanks for watching and I will see you in the next one'); if (!message.author.bot) { // Loop through the possible events, make them lowercase and check if the message contains it (if it does, execute the event) @@ -45,9 +55,7 @@ module.exports = async (client) => { if (message.content.toLowerCase().includes(i)) { if (typeof value === 'function') value(); else if (typeof value === 'object' || typeof value === 'string') { - if (value.embeds) for (const embed of value.embeds) { - message.reply({embed}) - } + if (value.embeds) for (const embed of value.embeds) { message.reply({ embeds: [embed] }) }; } } } @@ -56,28 +64,32 @@ module.exports = async (client) => { }); const commands = []; - fs.readdirSync(path.join(process.cwd(), commandPath)).filter(file => file.endsWith(".js")).forEach(file => { - let pull = require(path.join(process.cwd(), commandPath, file)); - commands[pull.name.toLowerCase()] = pull; - commands.push(pull); - }); + const commandPath = './commands'; for (const guildID of client.guilds.cache.keys()) { const guild = client.guilds.cache.get(guildID); await guild.commands.set(commands); + } + + fs.readdirSync(path.join(process.cwd(), commandPath)).filter(file => file.endsWith('.js')).forEach(file => { + let pull = require(path.join(process.cwd(), commandPath, file)); + commands.push(pull); + }); - client.on('interactionCreate', (interaction) => { - if (interaction.isCommand() && interaction.guildId === guildID) { - try { - commands[interaction.commandName].callback(interaction); - } catch (error) { - console.error(error); - const embed = new MessageEmbed() - .setTitle('An error occured while executing that command.') - .setColor('RED') - interaction.reply({ embeds: [embed], ephemeral: true }); + client.on('interactionCreate', async (interaction) => { + if (interaction.type === InteractionType.ApplicationCommand) { + try { + for (cmd of commands) { + if (cmd.name == interaction.commandName) await cmd.callback(interaction), () => {}; } - } - }); - } + } catch (error) { + console.error(error); + + const embed = new EmbedBuilder() + .setTitle('An error occured while executing that command.') + .setColor(Colors.Red) + interaction.reply({ embeds: [embed], ephemeral: true }); + } + } + }); }; diff --git a/src/handlers/eventHandler.js b/src/handlers/eventHandler.js index 2294d02..502ce01 100644 --- a/src/handlers/eventHandler.js +++ b/src/handlers/eventHandler.js @@ -1,24 +1,18 @@ -const getFiles = require('../utils/getFiles'); +const fs = require('fs'); +const path = require('path'); -module.exports = (client) => { +module.exports = async (client) => { const events = []; - const eventFiles = getFiles('/events', '.js'); + const eventPath = './events'; + + fs.readdirSync(path.join(process.cwd(), eventPath)).filter(file => file.endsWith('.js')).forEach(async file => { + const pull = require(path.join(process.cwd(), eventPath, file)); + events.push(pull); - for (const eventFile of eventFiles) { - const event = require(eventFile); - events[event.name.toLowerCase()] = event; - - // try { - // if (eventFile.once) client.once(events[event.name], () => callback()); - // else client.on(events[event.name], () => callback()); - // } catch (error) { - // console.error(error); - // } try { - client.on(events[event.name].callback(client)); + for (evt of events) { await client.on(evt.callback(client), () => {}) } } catch (error) { console.error(error); } - console.log(events); - } + }); }; diff --git a/src/index.js b/src/index.js index a7e73cd..18222f1 100644 --- a/src/index.js +++ b/src/index.js @@ -1,21 +1,21 @@ -const { Client, Intents } = require('discord.js'); +const { Client, GatewayIntentBits, ActivityType } = require('discord.js'); require('dotenv').config(); -const commands = require('./handlers/cmdHandler'); const events = require('./handlers/eventHandler'); const client = new Client({ + presence: { + activities: [{ + name: 'discord.gg/avdanos', + type: ActivityType.Watching, + }], + }, intents: [ - Intents.FLAGS.GUILDS, - Intents.FLAGS.GUILD_MESSAGES, - ] + GatewayIntentBits.MessageContent, + GatewayIntentBits.Guilds, + GatewayIntentBits.GuildMessages, + ], }); module.exports = client; +events(client); -client.on('ready', () => { - commands(client); - events(client); - - // client.user.setPresence({ activities: [{ name: 'discord.gg/avdanos', type: 'WATCHING' }] }); - // console.log('Start completed.'); -}); client.login(process.env.DISCORD_TOKEN); From c38bb6fcd517dccd39de9461a915a7c132f15a76 Mon Sep 17 00:00:00 2001 From: MrSerge01 Date: Wed, 20 Jul 2022 12:07:57 +0600 Subject: [PATCH 6/6] they somehow got into v13 version --- src/commands/demote.js | 88 ++++++++++++++++++++--------------------- src/commands/suggest.js | 40 ++++++++++--------- 2 files changed, 65 insertions(+), 63 deletions(-) diff --git a/src/commands/demote.js b/src/commands/demote.js index 6e43fe3..a08dfa4 100644 --- a/src/commands/demote.js +++ b/src/commands/demote.js @@ -1,62 +1,63 @@ -const { MessageEmbed, Constants } = require('discord.js'); +const { EmbedBuilder, ApplicationCommandOptionType, Colors } = require('discord.js'); module.exports = { name: 'demote', description: 'Demotes a user. (manager only)', options: [ { - type: Constants.ApplicationCommandOptionTypes.USER, name: 'user', description: 'User that will be demoted', - required: true + required: true, + type: ApplicationCommandOptionType.User, }, { - type: Constants.ApplicationCommandOptionTypes.STRING, name: 'reason', - description: 'Why you are demoting this user' - } + description: 'Why you are demoting this user', + required: false, + type: ApplicationCommandOptionType.String, + }, ], + callback: async (interaction) => { - if (interaction.member.roles.cache.some(role => ['993524668503949322', '986269171111297036'].includes(role.id))) { //check if member has manager role - const member = interaction.options.getMember('user') - const reason = interaction.options.getString('reason') + if (interaction.member.roles.cache.some(role => ['993524668503949322', '986269171111297036'].includes(role.id))) { // check if member has manager role + const member = interaction.options.getMember('user'); + const reason = interaction.options.getString('reason'); const rolesToRemove = [ - //main server - '993537552625705000', //senior dev - '993598471456178248', //design lead - '993471541176184842', //designer - '993514545165389834', //team avdan OS - '993562782756782181', //senior designer - '996010452561698897', //translator - '993524490493493308', //tester - '993471258371047455', //dev - '993579333119656098', //dev lead - '993529249128525878', //contributor + // main server + '993537552625705000', // senior dev + '993598471456178248', // design lead + '993471541176184842', // designer + '993514545165389834', // team avdan OS + '993562782756782181', // senior designer + '996010452561698897', // translator + '993524490493493308', // tester + '993471258371047455', // dev + '993579333119656098', // dev lead + '993529249128525878', // contributor - //test server - '986269779469926450', //dev lead - '990841843497443349', //senior dev - '986269396890697738', //dev - '987642117813841960', //contributor - '997778183267037234', //senior designer - '986269279701831740', //designer - '991332275205713950', //AvdanOS team + // test server + '986269779469926450', // dev lead + '990841843497443349', // senior dev + '986269396890697738', // dev + '987642117813841960', // contributor + '997778183267037234', // senior designer + '986269279701831740', // designer + '991332275205713950', // AvdanOS team ] - removedRoles = [] // roles that was removed - //this array contains only mentions (<@&ID>) + removedRoles = [] // roles that were removed if (member.user.bot) { - const embed = new MessageEmbed() - .setTitle('No one can demote a bot') - .setColor('RED') + const embed = new EmbedBuilder() + .setTitle("You can't demote a bot") + .setColor(Colors.Red) return interaction.reply({ embeds: [embed], ephemeral: true }); } if (member.roles.cache.some(role => ['993524668503949322', '986269171111297036'].includes(role.id))) { - const embed = new MessageEmbed() - .setTitle('No one can demote a manager') - .setColor('RED') + const embed = new EmbedBuilder() + .setTitle("You can't demote a manager") + .setColor(Colors.Red) return interaction.reply({ embeds: [embed], ephemeral: true }); } @@ -69,18 +70,18 @@ module.exports = { } }) - const embed = new MessageEmbed() + const embed = new EmbedBuilder() if (removedRoles.length > 0) { embed .setTitle(`${member.user.username}#${member.user.discriminator} was demoted`) .setDescription('Removed roles:\n\n'+removedRoles.join('\n')) - .setColor('BLUE') + .setColor(Colors.Blue) try { - const demotedNotify = new MessageEmbed() + const demotedNotify = new EmbedBuilder() .setTitle(`You were demoted by ${interaction.user.username}#${interaction.user.discriminator}`) .setDescription(reason ? ('Reason: ' + reason) : 'No reason was provided') - .setColor('RED') + .setColor(Colors.Red) await member.send({ embeds: [demotedNotify] }) } catch (err) { @@ -90,17 +91,16 @@ module.exports = { embed .setTitle(`${member.user.username}#${member.user.discriminator} can't be demoted`) .setDescription('This user has no team manager roles') - .setColor('RED') + .setColor(Colors.Red) } interaction.reply({ embeds: [embed], ephemeral: removedRoles.length == 0 }); } else { - const embed = new MessageEmbed() + const embed = new EmbedBuilder() .setTitle('You are not allowed to use this command') - .setColor('RED') + .setColor(Colors.Red) interaction.reply({ embeds: [embed], ephemeral: true }); } - } }; diff --git a/src/commands/suggest.js b/src/commands/suggest.js index abbb11c..f319a22 100644 --- a/src/commands/suggest.js +++ b/src/commands/suggest.js @@ -1,40 +1,42 @@ -const { MessageEmbed, Constants } = require('discord.js'); +const { EmbedBuilder, ApplicationCommandOptionType, Colors } = require('discord.js'); module.exports = { name: 'suggest', description: 'Sends your idea', - options: [{ + options: [ + { name: 'title', description: 'Title of your suggestion', required: true, - type: Constants.ApplicationCommandOptionTypes.STRING - }, { + type: ApplicationCommandOptionType.String, + }, + { name: 'description', description: 'Description of your suggestion', required: true, - type: Constants.ApplicationCommandOptionTypes.STRING - }], + type: ApplicationCommandOptionType.String, + }, + ], + callback: async (interaction) => { - title = interaction.options.getString('title') - text = interaction.options.getString('description') + const title = interaction.options.getString('title'); + const text = interaction.options.getString('description'); - ideaEmbed = new MessageEmbed() - .setAuthor({name: interaction.user.username, iconURL: interaction.user.avatarURL()}) + const ideaEmbed = new EmbedBuilder() + .setAuthor({ name: interaction.user.username, iconURL: interaction.user.avatarURL() }) .setTitle(title) .setDescription(text) - .setColor('BLUE') + .setColor(Colors.Blue) - channel = interaction.guild.channels.cache.find(cnl => cnl.id == '993466949889703996') - msg = await channel.send({embeds: [ideaEmbed]}) + const channel = interaction.guild.channels.cache.find(cnl => cnl.id === '993466949889703996'); + const msg = await channel.send({ embeds: [ideaEmbed] }); - msg.startThread({ - name: title, - }); + msg.startThread({ name: title }); - embed = new MessageEmbed() + const embed = new EmbedBuilder() .setTitle('Your suggestion was sent') - .setColor('BLUE') + .setColor(Colors.Blue) - interaction.reply({embeds: [embed], ephemeral: true}) + interaction.reply({ embeds: [embed], ephemeral: true }) } }