From 0b92214d2d89d3dc08b068fb8632105f323f162c Mon Sep 17 00:00:00 2001 From: Taken Date: Tue, 20 Aug 2024 21:48:15 +0200 Subject: [PATCH 1/2] Cleanup --- .gitignore | 4 +- dev-compose.yml | 14 ------ src/commands/poll.ts | 110 ------------------------------------------- 3 files changed, 1 insertion(+), 127 deletions(-) delete mode 100644 dev-compose.yml delete mode 100644 src/commands/poll.ts diff --git a/.gitignore b/.gitignore index 771307a..0f59df2 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,4 @@ node_modules/* .env dist/ data/ -dev/ -.pnp.cjs -.pnp.loader.mjs +dev/ \ No newline at end of file diff --git a/dev-compose.yml b/dev-compose.yml deleted file mode 100644 index 3e7413f..0000000 --- a/dev-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -version: '3.7' -services: - db: - container_name: postgres - image: postgres - restart: unless-stopped - ports: - - 5432:5432 - volumes: - - ./data:/var/lib/postgresql/data - environment: - - POSTGRES_PASSWORD=dev - - POSTGRES_USER=dev - - POSTGRES_DB=illegitimate diff --git a/src/commands/poll.ts b/src/commands/poll.ts deleted file mode 100644 index a8c11bf..0000000 --- a/src/commands/poll.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { PermissionFlagsBits, SlashCommandBuilder, TextChannel } from "discord.js" -import { ICommand } from "interfaces" -import { embedColor } from "config/options" - -export = { - name: "poll", - description: "Polls management", - dev: true, - public: true, - subcommands: true, - - data: new SlashCommandBuilder() - .setName("poll") - .setDescription("Polls creation") - .addStringOption(option => - option - .setName("question") - .setDescription("The question of the poll") - .setRequired(true) - ) - .addStringOption(option => - option - .setName("choice1") - .setDescription("The options of the poll") - .setRequired(true) - ) - .addStringOption(option => - option - .setName("choice2") - .setDescription("The options of the poll") - .setRequired(true) - ) - .addStringOption(option => - option - .setName("choice3") - .setDescription("The options of the poll") - ) - .addStringOption(option => - option - .setName("choice4") - .setDescription("The options of the poll") - ) - .addStringOption(option => - option - .setName("choice5") - .setDescription("The options of the poll") - ) - .addStringOption(option => - option - .setName("choice6") - .setDescription("The options of the poll") - ) - .addStringOption(option => - option - .setName("choice7") - .setDescription("The options of the poll") - ) - .addStringOption(option => - option - .setName("choice8") - .setDescription("The options of the poll") - ) - .addStringOption(option => - option - .setName("choice9") - .setDescription("The options of the poll") - ) - .addStringOption(option => - option - .setName("choice10") - .setDescription("The options of the poll") - ) - .addNumberOption(option => - option - .setName("duration") - .setDescription("The duration of the poll") - ) - .setDefaultMemberPermissions(PermissionFlagsBits.SendPolls) - .setDMPermission(false), - - async execute({ interaction }) { - const question = interaction.options.getString("question")! - const duration = interaction.options.getNumber("duration") || 1 - - const choices: { text: string }[] = [] - for (let i = 1; i <= 10; i++) { - const choice = interaction.options.getString(`choice${i}`) - if (choice) choices.push({ text: choice }) - } - - const channel = interaction.channel as TextChannel - - await channel.send({ - poll: { - question: { text: question }, - answers: choices, - duration: duration, - allowMultiselect: false - } - }) - - await interaction.reply({ - embeds: [{ - description: "Poll susccessfully created", - color: embedColor - }], - ephemeral: true - }) - } -} as ICommand From 79a879f60fdfe1e2fd48122f3ceb847d155a581e Mon Sep 17 00:00:00 2001 From: Taken Date: Tue, 20 Aug 2024 22:27:46 +0200 Subject: [PATCH 2/2] Updated eslint --- .devcontainer/Dockerfile | 8 - .devcontainer/devcontainer.json | 46 --- .dockerignore | 6 +- eslint.config.mjs | 92 +++++ .eslintignore => old/.eslintignore | 0 .eslintrc.js => old/.eslintrc.js | 0 package.json | 9 +- src/commands/guild/member.ts | 2 +- src/commands/unban.ts | 1 + .../buttons/guildapplicationaccept.ts | 1 + src/components/buttons/guildapply.ts | 1 + src/components/buttons/guildinactivitylog.ts | 1 + src/components/buttons/staffapply.ts | 1 + src/components/modals/denyreasonbox.ts | 1 + src/events/server/interactions/logBtnsCmds.ts | 1 + src/interfaces/IAutocomplete.ts | 3 +- src/interfaces/IButton.ts | 1 - src/interfaces/ICommand.ts | 1 - src/interfaces/IContextMenu.ts | 1 - src/interfaces/IEvent.ts | 1 - src/interfaces/IModal.ts | 1 - src/utils/Hypixel/account.ts | 2 + yarn.lock | 313 +++++++++--------- 23 files changed, 266 insertions(+), 227 deletions(-) delete mode 100644 .devcontainer/Dockerfile delete mode 100644 .devcontainer/devcontainer.json create mode 100644 eslint.config.mjs rename .eslintignore => old/.eslintignore (100%) rename .eslintrc.js => old/.eslintrc.js (100%) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index cd8b62d..0000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM node:20.9.0-alpine3.18 - -RUN apk add git fish openssh gnupg fish -RUN yarn global add typescript ts-node nodemon - -RUN sed -i 's/bin\/ash/usr\/bin\/fish/g' /etc/passwd - -RUN mkdir -p /root/.ssh \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index f8c5135..0000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - // "remoteUser": "vscode", - "name": "Illegitimate dev", - "build": { - "context": "..", - "dockerfile": "./Dockerfile" - }, - - "mounts": [ - "source=${localEnv:HOME}/.ssh/gitlab,target=/root/.ssh/gitlab,type=bind", - "source=${localEnv:HOME}/.ssh/config,target=/root/.ssh/config,type=bind", - "source=${localEnv:HOME}/.wakatime.cfg,target=/root/.wakatime.cfg,type=bind" - ], - - "postCreateCommand": "chmod 600 -R /root/.ssh", - "customizations": { - "vscode": { - "extensions": [ - "dbaeumer.vscode-eslint", - "eamodio.gitlens", - "tal7aouy.icons", - "oderwat.indent-rainbow", - "ms-vscode.vscode-typescript-next", - "mongodb.mongodb-vscode", - "quicktype.quicktype", - "esbenp.prettier-vscode", - "YoavBls.pretty-ts-errors", - "rangav.vscode-thunder-client", - "WakaTime.vscode-wakatime", - "gamunu.vscode-yarn" - ] - } - } - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": { } - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Uncomment the next line to run commands after the container is created. - - // Configure tool-specific properties. - // "customizations": {}, - -} diff --git a/.dockerignore b/.dockerignore index 3807759..ee79c5f 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,19 +1,17 @@ -.devcontainer .git -.vscode .yarn dist +old node_modules scripts .dockerignore .env .env.example -.eslintignore -.eslintrc.js .gitignore .gitlab-ci.yml docker-compose.yml Dockerfile Dockerfile.cache +eslint.config.mjs nodemon-js.json nodemon.json diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..469ca94 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,92 @@ +import typescriptEslint from "@typescript-eslint/eslint-plugin" +import globals from "globals" +import tsParser from "@typescript-eslint/parser" +import path from "node:path" +import { fileURLToPath } from "node:url" +import js from "@eslint/js" +import { FlatCompat } from "@eslint/eslintrc" + +// eslint-disable-next-line no-redeclare +const __filename = fileURLToPath(import.meta.url) +// eslint-disable-next-line no-redeclare +const __dirname = path.dirname(__filename) +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}) + +export default [{ + ignores: ["**/node_modules", "**/dist"], +}, ...compat.extends("eslint:recommended", "plugin:@typescript-eslint/recommended"), { + plugins: { + "@typescript-eslint": typescriptEslint, + }, + + languageOptions: { + globals: { + ...globals.node, + ...globals.browser, + }, + + parser: tsParser, + ecmaVersion: "latest", + sourceType: "module", + }, + + rules: { + indent: ["error", 4, { + SwitchCase: 1, + }], + + "linebreak-style": ["error", "unix"], + quotes: ["warn", "double"], + semi: ["error", "never"], + "no-unused-vars": "off", + "prefer-const": "warn", + "no-var": "error", + + "no-multiple-empty-lines": ["error", { + max: 2, + maxEOF: 1, + maxBOF: 0, + }], + + "no-lonely-if": "error", + "no-empty-function": "error", + "no-inline-comments": "error", + "no-trailing-spaces": ["error"], + + "arrow-spacing": ["warn", { + before: true, + after: true, + }], + + "space-before-function-paren": ["error", { + anonymous: "never", + named: "never", + asyncArrow: "always", + }], + + "comma-spacing": "error", + "@typescript-eslint/no-var-requires": "off", + "@typescript-eslint/no-explicit-any": "off", + + "@typescript-eslint/no-unused-vars": ["warn", { + vars: "all", + args: "after-used", + ignoreRestSiblings: false, + }], + "@typescript-eslint/no-empty-object-type": "off", + "@typescript-eslint/no-require-imports": "off", + }, +}, { + languageOptions: { + globals: { + ...globals.node, + }, + + ecmaVersion: 5, + sourceType: "commonjs", + }, +}] \ No newline at end of file diff --git a/.eslintignore b/old/.eslintignore similarity index 100% rename from .eslintignore rename to old/.eslintignore diff --git a/.eslintrc.js b/old/.eslintrc.js similarity index 100% rename from .eslintrc.js rename to old/.eslintrc.js diff --git a/package.json b/package.json index 672f81c..cf01a06 100644 --- a/package.json +++ b/package.json @@ -44,14 +44,17 @@ "youtube-ext": "^1.1.25" }, "devDependencies": { + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.9.0", "@types/ms": "^0.7.34", "@types/node": "^20.14.15", "@types/pg": "^8", - "@typescript-eslint/eslint-plugin": "^7.18.0", - "@typescript-eslint/parser": "^7.18.0", + "@typescript-eslint/eslint-plugin": "^8.2.0", + "@typescript-eslint/parser": "^8.2.0", "concurrently": "^8.2.2", "cross-env": "^7.0.3", - "eslint": "^8.57.0", + "eslint": "^9.9.0", + "globals": "^15.9.0", "sqlite3": "^5.1.7", "ts-node": "^10.9.2", "typescript": "^5.5.4" diff --git a/src/commands/guild/member.ts b/src/commands/guild/member.ts index 13bffe9..10ae56c 100644 --- a/src/commands/guild/member.ts +++ b/src/commands/guild/member.ts @@ -94,7 +94,7 @@ export default async function guildMember(interaction: ChatInputCommandInteracti } const guildName = guild.name - const guildTag = " [" + guild.tag + "]" ?? "" + const guildTag = guild.tag ? " [" + guild.tag + "]" : "" const guildMembers = guild.members const guildMember = guildMembers.find(member => member.uuid === uuid) diff --git a/src/commands/unban.ts b/src/commands/unban.ts index 74017eb..1a3239b 100644 --- a/src/commands/unban.ts +++ b/src/commands/unban.ts @@ -49,6 +49,7 @@ export = { try { user = await interaction.client.users.fetch(userid) + // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (error) { await interaction.editReply({ embeds: [{ diff --git a/src/components/buttons/guildapplicationaccept.ts b/src/components/buttons/guildapplicationaccept.ts index 0ff18b3..dacb6b1 100644 --- a/src/components/buttons/guildapplicationaccept.ts +++ b/src/components/buttons/guildapplicationaccept.ts @@ -125,6 +125,7 @@ export = { timestamp: new Date().toISOString() }] }) + // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (err) { console.log( color("Error while trying to update waiting list.", "red") diff --git a/src/components/buttons/guildapply.ts b/src/components/buttons/guildapply.ts index 045b56b..590fe86 100644 --- a/src/components/buttons/guildapply.ts +++ b/src/components/buttons/guildapply.ts @@ -48,6 +48,7 @@ export = { color: embedColor }] }) + // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (error) { await interaction.editReply("Please enable your DMs.") return diff --git a/src/components/buttons/guildinactivitylog.ts b/src/components/buttons/guildinactivitylog.ts index ff4eb27..a0443b6 100644 --- a/src/components/buttons/guildinactivitylog.ts +++ b/src/components/buttons/guildinactivitylog.ts @@ -44,6 +44,7 @@ export = { color: embedColor }] }) + // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (error) { await interaction.reply({ content: "Please enable your DMs.", diff --git a/src/components/buttons/staffapply.ts b/src/components/buttons/staffapply.ts index 4c41dc0..431ea0b 100644 --- a/src/components/buttons/staffapply.ts +++ b/src/components/buttons/staffapply.ts @@ -66,6 +66,7 @@ export = { color: embedColor }] }) + // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (error) { await interaction.editReply("Please enable your DMs.") return diff --git a/src/components/modals/denyreasonbox.ts b/src/components/modals/denyreasonbox.ts index bc51b64..67ef1dc 100644 --- a/src/components/modals/denyreasonbox.ts +++ b/src/components/modals/denyreasonbox.ts @@ -41,6 +41,7 @@ export = { let applicant: GuildMember | null try { applicant = await guild.members.fetch(applicantId) + // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (error) { applicant = null } diff --git a/src/events/server/interactions/logBtnsCmds.ts b/src/events/server/interactions/logBtnsCmds.ts index 848731b..d982e84 100644 --- a/src/events/server/interactions/logBtnsCmds.ts +++ b/src/events/server/interactions/logBtnsCmds.ts @@ -13,6 +13,7 @@ export = { try { subcommand = interaction.options.getSubcommand() + // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (e) { subcommand = null } diff --git a/src/interfaces/IAutocomplete.ts b/src/interfaces/IAutocomplete.ts index 937d4ed..834c679 100644 --- a/src/interfaces/IAutocomplete.ts +++ b/src/interfaces/IAutocomplete.ts @@ -1,9 +1,8 @@ -/* eslint-disable no-unused-vars */ import { AutocompleteInteraction } from "discord.js" import { ExtendedClient } from "utils/Client" export default interface IAutocomplete { name: string description: string - execute: (arg: { interaction: AutocompleteInteraction, client :ExtendedClient }) => Promise + execute: (arg: { interaction: AutocompleteInteraction, client: ExtendedClient }) => Promise } diff --git a/src/interfaces/IButton.ts b/src/interfaces/IButton.ts index 069ced5..2dd6af4 100644 --- a/src/interfaces/IButton.ts +++ b/src/interfaces/IButton.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-unused-vars */ import { ButtonInteraction } from "discord.js" import { ExtendedClient } from "utils/Client" diff --git a/src/interfaces/ICommand.ts b/src/interfaces/ICommand.ts index 3b1c094..dda9ecf 100644 --- a/src/interfaces/ICommand.ts +++ b/src/interfaces/ICommand.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-unused-vars */ import { ChatInputCommandInteraction, SlashCommandBuilder } from "discord.js" import { ExtendedClient as Client } from "utils/Client" diff --git a/src/interfaces/IContextMenu.ts b/src/interfaces/IContextMenu.ts index 7db513f..83079d6 100644 --- a/src/interfaces/IContextMenu.ts +++ b/src/interfaces/IContextMenu.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-unused-vars */ import { ContextMenuCommandInteraction, ContextMenuCommandBuilder } from "discord.js" import { ExtendedClient } from "utils/Client" diff --git a/src/interfaces/IEvent.ts b/src/interfaces/IEvent.ts index 17d6196..205182d 100644 --- a/src/interfaces/IEvent.ts +++ b/src/interfaces/IEvent.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-unused-vars */ import { ClientEvents } from "discord.js" export default interface IEvent { diff --git a/src/interfaces/IModal.ts b/src/interfaces/IModal.ts index f4a0d79..c2dd9bf 100644 --- a/src/interfaces/IModal.ts +++ b/src/interfaces/IModal.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-unused-vars */ import { ModalSubmitInteraction } from "discord.js" import { ExtendedClient } from "utils/Client" diff --git a/src/utils/Hypixel/account.ts b/src/utils/Hypixel/account.ts index 38ed5f4..c85b4c8 100644 --- a/src/utils/Hypixel/account.ts +++ b/src/utils/Hypixel/account.ts @@ -30,6 +30,7 @@ async function getUUID(ign: string): Promise { try { const req: Profile = await fetch(mojang + ign) return req.data.id + // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (err) { return null } @@ -39,6 +40,7 @@ async function getIGN(uuid: string): Promise { try { const req: Profile2 = await fetch(mojanguuid + uuid) return req.data.name + // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (err) { return null } diff --git a/yarn.lock b/yarn.lock index 24039d1..8bdc0fa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -159,34 +159,52 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.11.0": version: 4.11.0 resolution: "@eslint-community/regexpp@npm:4.11.0" checksum: 10c0/0f6328869b2741e2794da4ad80beac55cba7de2d3b44f796a60955b0586212ec75e6b0253291fd4aad2100ad471d1480d8895f2b54f1605439ba4c875e05e523 languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" +"@eslint/config-array@npm:^0.17.1": + version: 0.17.1 + resolution: "@eslint/config-array@npm:0.17.1" + dependencies: + "@eslint/object-schema": "npm:^2.1.4" + debug: "npm:^4.3.1" + minimatch: "npm:^3.1.2" + checksum: 10c0/b986a0a96f2b42467578968ce3d4ae3b9284e587f8490f2dcdc44ff1b8d30580c62b221da6e58d07b09e156c3050e2dc38267f9370521d9cafc099c4e30154ef + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^3.1.0": + version: 3.1.0 + resolution: "@eslint/eslintrc@npm:3.1.0" dependencies: ajv: "npm:^6.12.4" debug: "npm:^4.3.2" - espree: "npm:^9.6.0" - globals: "npm:^13.19.0" + espree: "npm:^10.0.1" + globals: "npm:^14.0.0" ignore: "npm:^5.2.0" import-fresh: "npm:^3.2.1" js-yaml: "npm:^4.1.0" minimatch: "npm:^3.1.2" strip-json-comments: "npm:^3.1.1" - checksum: 10c0/32f67052b81768ae876c84569ffd562491ec5a5091b0c1e1ca1e0f3c24fb42f804952fdd0a137873bc64303ba368a71ba079a6f691cee25beee9722d94cc8573 + checksum: 10c0/5b7332ed781edcfc98caa8dedbbb843abfb9bda2e86538529c843473f580e40c69eb894410eddc6702f487e9ee8f8cfa8df83213d43a8fdb549f23ce06699167 languageName: node linkType: hard -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 10c0/9a518bb8625ba3350613903a6d8c622352ab0c6557a59fe6ff6178bf882bf57123f9d92aa826ee8ac3ee74b9c6203fe630e9ee00efb03d753962dcf65ee4bd94 +"@eslint/js@npm:9.9.0, @eslint/js@npm:^9.9.0": + version: 9.9.0 + resolution: "@eslint/js@npm:9.9.0" + checksum: 10c0/6ec9f1f0d576132444d6a5c66a8a08b0be9444e3ebb563fa6a6bebcf5299df3da7e454dc04c0fa601bb811197f00764b3a04430d8458cdb8e3a4677993d23f30 + languageName: node + linkType: hard + +"@eslint/object-schema@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/object-schema@npm:2.1.4" + checksum: 10c0/e9885532ea70e483fb007bf1275968b05bb15ebaa506d98560c41a41220d33d342e19023d5f2939fed6eb59676c1bda5c847c284b4b55fce521d282004da4dda languageName: node linkType: hard @@ -204,17 +222,6 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" - dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.2" - debug: "npm:^4.3.1" - minimatch: "npm:^3.0.5" - checksum: 10c0/66f725b4ee5fdd8322c737cb5013e19fac72d4d69c8bf4b7feb192fcb83442b035b92186f8e9497c220e58b2d51a080f28a73f7899bc1ab288c3be172c467541 - languageName: node - linkType: hard - "@humanwhocodes/module-importer@npm:^1.0.1": version: 1.0.1 resolution: "@humanwhocodes/module-importer@npm:1.0.1" @@ -222,10 +229,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.2": - version: 2.0.3 - resolution: "@humanwhocodes/object-schema@npm:2.0.3" - checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c +"@humanwhocodes/retry@npm:^0.3.0": + version: 0.3.0 + resolution: "@humanwhocodes/retry@npm:0.3.0" + checksum: 10c0/7111ec4e098b1a428459b4e3be5a5d2a13b02905f805a2468f4fa628d072f0de2da26a27d04f65ea2846f73ba51f4204661709f05bfccff645e3cedef8781bb6 languageName: node linkType: hard @@ -509,87 +516,85 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0" +"@typescript-eslint/eslint-plugin@npm:^8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.2.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:7.18.0" - "@typescript-eslint/type-utils": "npm:7.18.0" - "@typescript-eslint/utils": "npm:7.18.0" - "@typescript-eslint/visitor-keys": "npm:7.18.0" + "@typescript-eslint/scope-manager": "npm:8.2.0" + "@typescript-eslint/type-utils": "npm:8.2.0" + "@typescript-eslint/utils": "npm:8.2.0" + "@typescript-eslint/visitor-keys": "npm:8.2.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" ts-api-utils: "npm:^1.3.0" peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/2b37948fa1b0dab77138909dabef242a4d49ab93e4019d4ef930626f0a7d96b03e696cd027fa0087881c20e73be7be77c942606b4a76fa599e6b37f6985304c3 + checksum: 10c0/17243ee1b34d78723fe3e1a308c64490eee49bd83301e3abe8a6f05bce05434d70f56caf75756b8cffa051154dc89cdf485114ede6781fc087f0aaca37a026ec languageName: node linkType: hard -"@typescript-eslint/parser@npm:^7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/parser@npm:7.18.0" +"@typescript-eslint/parser@npm:^8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/parser@npm:8.2.0" dependencies: - "@typescript-eslint/scope-manager": "npm:7.18.0" - "@typescript-eslint/types": "npm:7.18.0" - "@typescript-eslint/typescript-estree": "npm:7.18.0" - "@typescript-eslint/visitor-keys": "npm:7.18.0" + "@typescript-eslint/scope-manager": "npm:8.2.0" + "@typescript-eslint/types": "npm:8.2.0" + "@typescript-eslint/typescript-estree": "npm:8.2.0" + "@typescript-eslint/visitor-keys": "npm:8.2.0" debug: "npm:^4.3.4" peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/370e73fca4278091bc1b657f85e7d74cd52b24257ea20c927a8e17546107ce04fbf313fec99aed0cc2a145ddbae1d3b12e9cc2c1320117636dc1281bcfd08059 + checksum: 10c0/bb4ebc0a40b5e68c5287de17af3acf3045e2ef7886ebee8d1c4a6fd07bd6d55e9fc12bc7b89d07d15a2a4182cbf6380b50ad148d4a37e93d2e54930aa386a3bf languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/scope-manager@npm:7.18.0" +"@typescript-eslint/scope-manager@npm:8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/scope-manager@npm:8.2.0" dependencies: - "@typescript-eslint/types": "npm:7.18.0" - "@typescript-eslint/visitor-keys": "npm:7.18.0" - checksum: 10c0/038cd58c2271de146b3a594afe2c99290034033326d57ff1f902976022c8b0138ffd3cb893ae439ae41003b5e4bcc00cabf6b244ce40e8668f9412cc96d97b8e + "@typescript-eslint/types": "npm:8.2.0" + "@typescript-eslint/visitor-keys": "npm:8.2.0" + checksum: 10c0/8026e11d9cfbb674c62eb38929d08d42c4a373f3463c2591ed6603c496d3d00321f553edce47f1d7504b55fcbe9664ea2bdcaa3131c8c834bde1b1f07497af5d languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/type-utils@npm:7.18.0" +"@typescript-eslint/type-utils@npm:8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/type-utils@npm:8.2.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.18.0" - "@typescript-eslint/utils": "npm:7.18.0" + "@typescript-eslint/typescript-estree": "npm:8.2.0" + "@typescript-eslint/utils": "npm:8.2.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" - peerDependencies: - eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/ad92a38007be620f3f7036f10e234abdc2fdc518787b5a7227e55fd12896dacf56e8b34578723fbf9bea8128df2510ba8eb6739439a3879eda9519476d5783fd + checksum: 10c0/5ff387d39fec3ba47af167ca3e48a200f87e4b97b010170245f495cd3d2e30fd0a5b2a9b27aae2ae929c99f92acabcd07315944dc6f9de963bad1c61ba9ea53c languageName: node linkType: hard -"@typescript-eslint/types@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/types@npm:7.18.0" - checksum: 10c0/eb7371ac55ca77db8e59ba0310b41a74523f17e06f485a0ef819491bc3dd8909bb930120ff7d30aaf54e888167e0005aa1337011f3663dc90fb19203ce478054 +"@typescript-eslint/types@npm:8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/types@npm:8.2.0" + checksum: 10c0/2ffba0d0183dfdd2f859fb414013d17d009f5e886664823f973aaa1145243fceb52cfe26aa7c50208af7833b3703b7788337f1aab136c9a4eb36d905493847d1 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" +"@typescript-eslint/typescript-estree@npm:8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.2.0" dependencies: - "@typescript-eslint/types": "npm:7.18.0" - "@typescript-eslint/visitor-keys": "npm:7.18.0" + "@typescript-eslint/types": "npm:8.2.0" + "@typescript-eslint/visitor-keys": "npm:8.2.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -599,38 +604,31 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/0c7f109a2e460ec8a1524339479cf78ff17814d23c83aa5112c77fb345e87b3642616291908dcddea1e671da63686403dfb712e4a4435104f92abdfddf9aba81 + checksum: 10c0/f49aabc78e396908307394812fdebc4015ca407983efc361be106d3e2d58971dec4a1a725362fcfbd637f3d8150baa0735eb5929fd170172b7f2a65e06eeb3d2 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/utils@npm:7.18.0" +"@typescript-eslint/utils@npm:8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/utils@npm:8.2.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:7.18.0" - "@typescript-eslint/types": "npm:7.18.0" - "@typescript-eslint/typescript-estree": "npm:7.18.0" + "@typescript-eslint/scope-manager": "npm:8.2.0" + "@typescript-eslint/types": "npm:8.2.0" + "@typescript-eslint/typescript-estree": "npm:8.2.0" peerDependencies: - eslint: ^8.56.0 - checksum: 10c0/a25a6d50eb45c514469a01ff01f215115a4725fb18401055a847ddf20d1b681409c4027f349033a95c4ff7138d28c3b0a70253dfe8262eb732df4b87c547bd1e + eslint: ^8.57.0 || ^9.0.0 + checksum: 10c0/0f3d5cf804c2863ea9432ef76bfdb1cadbb244cbf8a64ac77c0e559c012a1e98382c4535354e54696c564c0abd9c10dffc78d38972c97035e963798d360d1830 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" +"@typescript-eslint/visitor-keys@npm:8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.2.0" dependencies: - "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/types": "npm:8.2.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/538b645f8ff1d9debf264865c69a317074eaff0255e63d7407046176b0f6a6beba34a6c51d511f12444bae12a98c69891eb6f403c9f54c6c2e2849d1c1cb73c0 - languageName: node - linkType: hard - -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d + checksum: 10c0/788633bd2905c88ea2cf20d9e317a2bc992a70fcf725cb54bbe55a17c42138a6fe877c89fbda41a733e0e8ad6dce893163bada60509a1b856321f4329a316973 languageName: node linkType: hard @@ -680,7 +678,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.11.0, acorn@npm:^8.4.1, acorn@npm:^8.9.0": +"acorn@npm:^8.11.0, acorn@npm:^8.12.0, acorn@npm:^8.4.1": version: 8.12.1 resolution: "acorn@npm:8.12.1" bin: @@ -1309,15 +1307,6 @@ __metadata: languageName: node linkType: hard -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: "npm:^2.0.2" - checksum: 10c0/c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520 - languageName: node - linkType: hard - "dom-serializer@npm:^2.0.0": version: 2.0.0 resolution: "dom-serializer@npm:2.0.0" @@ -1444,57 +1433,60 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" +"eslint-scope@npm:^8.0.2": + version: 8.0.2 + resolution: "eslint-scope@npm:8.0.2" dependencies: esrecurse: "npm:^4.3.0" estraverse: "npm:^5.2.0" - checksum: 10c0/613c267aea34b5a6d6c00514e8545ef1f1433108097e857225fed40d397dd6b1809dffd11c2fde23b37ca53d7bf935fe04d2a18e6fc932b31837b6ad67e1c116 + checksum: 10c0/477f820647c8755229da913025b4567347fd1f0bf7cbdf3a256efff26a7e2e130433df052bd9e3d014025423dc00489bea47eb341002b15553673379c1a7dc36 languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 languageName: node linkType: hard -"eslint@npm:^8.57.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" +"eslint-visitor-keys@npm:^4.0.0": + version: 4.0.0 + resolution: "eslint-visitor-keys@npm:4.0.0" + checksum: 10c0/76619f42cf162705a1515a6868e6fc7567e185c7063a05621a8ac4c3b850d022661262c21d9f1fc1d144ecf0d5d64d70a3f43c15c3fc969a61ace0fb25698cf5 + languageName: node + linkType: hard + +"eslint@npm:^9.9.0": + version: 9.9.0 + resolution: "eslint@npm:9.9.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" - "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.57.0" - "@humanwhocodes/config-array": "npm:^0.11.14" + "@eslint-community/regexpp": "npm:^4.11.0" + "@eslint/config-array": "npm:^0.17.1" + "@eslint/eslintrc": "npm:^3.1.0" + "@eslint/js": "npm:9.9.0" "@humanwhocodes/module-importer": "npm:^1.0.1" + "@humanwhocodes/retry": "npm:^0.3.0" "@nodelib/fs.walk": "npm:^1.2.8" - "@ungap/structured-clone": "npm:^1.2.0" ajv: "npm:^6.12.4" chalk: "npm:^4.0.0" cross-spawn: "npm:^7.0.2" debug: "npm:^4.3.2" - doctrine: "npm:^3.0.0" escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^7.2.2" - eslint-visitor-keys: "npm:^3.4.3" - espree: "npm:^9.6.1" - esquery: "npm:^1.4.2" + eslint-scope: "npm:^8.0.2" + eslint-visitor-keys: "npm:^4.0.0" + espree: "npm:^10.1.0" + esquery: "npm:^1.5.0" esutils: "npm:^2.0.2" fast-deep-equal: "npm:^3.1.3" - file-entry-cache: "npm:^6.0.1" + file-entry-cache: "npm:^8.0.0" find-up: "npm:^5.0.0" glob-parent: "npm:^6.0.2" - globals: "npm:^13.19.0" - graphemer: "npm:^1.4.0" ignore: "npm:^5.2.0" imurmurhash: "npm:^0.1.4" is-glob: "npm:^4.0.0" is-path-inside: "npm:^3.0.3" - js-yaml: "npm:^4.1.0" json-stable-stringify-without-jsonify: "npm:^1.0.1" levn: "npm:^0.4.1" lodash.merge: "npm:^4.6.2" @@ -1503,24 +1495,29 @@ __metadata: optionator: "npm:^0.9.3" strip-ansi: "npm:^6.0.1" text-table: "npm:^0.2.0" + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true bin: eslint: bin/eslint.js - checksum: 10c0/00bb96fd2471039a312435a6776fe1fd557c056755eaa2b96093ef3a8508c92c8775d5f754768be6b1dddd09fdd3379ddb231eeb9b6c579ee17ea7d68000a529 + checksum: 10c0/3a22f68c99d75dcbafe6e2fef18d2b5bbcc960c2437f48a414ccf9ca214254733a18e6b79d07bbd374a2369a648413e421aabd07b11be3de5a44d5a4b9997877 languageName: node linkType: hard -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" +"espree@npm:^10.0.1, espree@npm:^10.1.0": + version: 10.1.0 + resolution: "espree@npm:10.1.0" dependencies: - acorn: "npm:^8.9.0" + acorn: "npm:^8.12.0" acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10c0/1a2e9b4699b715347f62330bcc76aee224390c28bb02b31a3752e9d07549c473f5f986720483c6469cf3cfb3c9d05df612ffc69eb1ee94b54b739e67de9bb460 + eslint-visitor-keys: "npm:^4.0.0" + checksum: 10c0/52e6feaa77a31a6038f0c0e3fce93010a4625701925b0715cd54a2ae190b3275053a0717db698697b32653788ac04845e489d6773b508d6c2e8752f3c57470a0 languageName: node linkType: hard -"esquery@npm:^1.4.2": +"esquery@npm:^1.5.0": version: 1.6.0 resolution: "esquery@npm:1.6.0" dependencies: @@ -1619,12 +1616,12 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" dependencies: - flat-cache: "npm:^3.0.4" - checksum: 10c0/58473e8a82794d01b38e5e435f6feaf648e3f36fdb3a56e98f417f4efae71ad1c0d4ebd8a9a7c50c3ad085820a93fc7494ad721e0e4ebc1da3573f4e1c3c7cdd + flat-cache: "npm:^4.0.0" + checksum: 10c0/9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638 languageName: node linkType: hard @@ -1665,14 +1662,13 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" +"flat-cache@npm:^4.0.0": + version: 4.0.1 + resolution: "flat-cache@npm:4.0.1" dependencies: flatted: "npm:^3.2.9" - keyv: "npm:^4.5.3" - rimraf: "npm:^3.0.2" - checksum: 10c0/b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75 + keyv: "npm:^4.5.4" + checksum: 10c0/2c59d93e9faa2523e4fda6b4ada749bed432cfa28c8e251f33b25795e426a1c6dbada777afb1f74fcfff33934fdbdea921ee738fcc33e71adc9d6eca984a1cfc languageName: node linkType: hard @@ -1843,12 +1839,17 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: "npm:^0.20.2" - checksum: 10c0/d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd +"globals@npm:^14.0.0": + version: 14.0.0 + resolution: "globals@npm:14.0.0" + checksum: 10c0/b96ff42620c9231ad468d4c58ff42afee7777ee1c963013ff8aabe095a451d0ceeb8dcd8ef4cbd64d2538cef45f787a78ba3a9574f4a634438963e334471302d + languageName: node + linkType: hard + +"globals@npm:^15.9.0": + version: 15.9.0 + resolution: "globals@npm:15.9.0" + checksum: 10c0/de4b553e412e7e830998578d51b605c492256fb2a9273eaeec6ec9ee519f1c5aa50de57e3979911607fd7593a4066420e01d8c3d551e7a6a236e96c521aee36c languageName: node linkType: hard @@ -1995,12 +1996,14 @@ __metadata: resolution: "illegitimate-bot@workspace:." dependencies: "@discord-player/extractor": "npm:^4.5.1" + "@eslint/eslintrc": "npm:^3.1.0" + "@eslint/js": "npm:^9.9.0" "@evan/opus": "npm:^1.0.3" "@types/ms": "npm:^0.7.34" "@types/node": "npm:^20.14.15" "@types/pg": "npm:^8" - "@typescript-eslint/eslint-plugin": "npm:^7.18.0" - "@typescript-eslint/parser": "npm:^7.18.0" + "@typescript-eslint/eslint-plugin": "npm:^8.2.0" + "@typescript-eslint/parser": "npm:^8.2.0" anilist: "npm:^0.12.4" axios: "npm:^1.7.3" chalk: "npm:^4.1.2" @@ -2010,7 +2013,8 @@ __metadata: discord-player: "npm:^6.7.1" discord.js: "npm:^14.15.3" dotenv: "npm:^16.4.5" - eslint: "npm:^8.57.0" + eslint: "npm:^9.9.0" + globals: "npm:^15.9.0" ioredis: "npm:^5.4.1" mongoose: "npm:^8.5.2" ms: "npm:^2.1.3" @@ -2241,7 +2245,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.5.3": +"keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -2448,7 +2452,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -3985,13 +3989,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 10c0/dea9df45ea1f0aaa4e2d3bed3f9a0bfe9e5b2592bddb92eb1bf06e50bcf98dbb78189668cd8bc31a0511d3fc25539b4cd5c704497e53e93e2d40ca764b10bfc3 - languageName: node - linkType: hard - "typescript@npm:^5.5.4": version: 5.5.4 resolution: "typescript@npm:5.5.4"