diff --git a/.vscode/settings.json b/.vscode/settings.json index f37da75..adb3e3c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,4 @@ { "typescript.tsdk": "node_modules/typescript/lib", "editor.formatOnSave": true -} \ No newline at end of file +} diff --git a/eslint.config.mjs b/eslint.config.mjs index 51cfad9..16e537e 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -3,6 +3,7 @@ import eslint from "@eslint/js"; import tseslint from "typescript-eslint"; import eslintPluginUnicorn from "eslint-plugin-unicorn"; +import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended"; export default tseslint.config( eslint.configs.recommended, @@ -12,9 +13,13 @@ export default tseslint.config( { languageOptions: { parserOptions: { - projectService: true, + projectService: { + allowDefaultProject: ["*.js", "*.mjs"], + defaultProject: "tsconfig.json" + }, tsconfigRootDir: import.meta.dirname } } - } + }, + eslintPluginPrettierRecommended ); diff --git a/package.json b/package.json index e8c4572..8345f89 100644 --- a/package.json +++ b/package.json @@ -25,15 +25,16 @@ "@discordjs/rest": "^2.4.0", "@eslint/js": "^9.11.1", "@types/eslint__js": "^8.42.3", - "@types/node": "^18.19.50", + "@types/node": "^22.7.4", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "eslint": "^8.57.1", "eslint-config-prettier": "^8.10.0", + "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-unicorn": "^55.0.0", "husky": "^8.0.3", "lint-staged": "^13.3.0", - "prettier": "^2.8.8", + "prettier": "^3.3.3", "ts-node": "^10.9.2", "typescript": "^5.6.2", "typescript-eslint": "^8.7.0" @@ -42,4 +43,4 @@ "*.{ts,json,yaml,yml}": "prettier --plugin-search-dir=. --ignore-unknown --write", "*.ts": "eslint --cache --fix" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 423fb0f..04f22e1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -37,8 +37,8 @@ importers: specifier: ^8.42.3 version: 8.42.3 '@types/node': - specifier: ^18.19.50 - version: 18.19.50 + specifier: ^22.7.4 + version: 22.7.4 '@typescript-eslint/eslint-plugin': specifier: ^5.62.0 version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) @@ -51,6 +51,9 @@ importers: eslint-config-prettier: specifier: ^8.10.0 version: 8.10.0(eslint@8.57.1) + eslint-plugin-prettier: + specifier: ^5.2.1 + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@8.10.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3) eslint-plugin-unicorn: specifier: ^55.0.0 version: 55.0.0(eslint@8.57.1) @@ -61,11 +64,11 @@ importers: specifier: ^13.3.0 version: 13.3.0 prettier: - specifier: ^2.8.8 - version: 2.8.8 + specifier: ^3.3.3 + version: 3.3.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@18.19.50)(typescript@5.6.2) + version: 10.9.2(@types/node@22.7.4)(typescript@5.6.2) typescript: specifier: ^5.6.2 version: 5.6.2 @@ -176,6 +179,10 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@sapphire/async-queue@1.5.3': resolution: {integrity: sha512-x7zadcfJGxFka1Q3f8gCts1F0xMwCKbZweM85xECGI0hBTeIZJGGCrHgLggihBoprlQ/hBmDR5LKfIPqnmHM3w==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} @@ -215,8 +222,11 @@ packages: '@types/node-fetch@2.6.11': resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} - '@types/node@18.19.50': - resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} + '@types/node@18.19.54': + resolution: {integrity: sha512-+BRgt0G5gYjTvdLac9sIeE0iZcJxi4Jc4PV5EUzqi+88jmQLr+fRZdv2tCTV7IHKSGxM6SaLoOXQWWUiLUItMw==} + + '@types/node@22.7.4': + resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -590,6 +600,20 @@ packages: peerDependencies: eslint: '>=7.0.0' + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + eslint-plugin-unicorn@55.0.0: resolution: {integrity: sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==} engines: {node: '>=18.18'} @@ -651,6 +675,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -1090,9 +1117,13 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} hasBin: true punycode@2.3.1: @@ -1225,6 +1256,10 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + synckit@0.9.1: + resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} + engines: {node: ^14.18.0 || >=16.0.0} + text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -1307,6 +1342,9 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici@6.19.8: resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==} engines: {node: '>=18.17'} @@ -1508,6 +1546,8 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + '@pkgr/core@0.1.1': {} + '@sapphire/async-queue@1.5.3': {} '@sapphire/shapeshift@4.0.0': @@ -1540,20 +1580,24 @@ snapshots: '@types/node-fetch@2.6.11': dependencies: - '@types/node': 18.19.50 + '@types/node': 22.7.4 form-data: 4.0.0 - '@types/node@18.19.50': + '@types/node@18.19.54': dependencies: undici-types: 5.26.5 + '@types/node@22.7.4': + dependencies: + undici-types: 6.19.8 + '@types/normalize-package-data@2.4.4': {} '@types/semver@7.5.8': {} '@types/ws@8.5.12': dependencies: - '@types/node': 18.19.50 + '@types/node': 22.7.4 '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)': dependencies: @@ -1933,6 +1977,16 @@ snapshots: dependencies: eslint: 8.57.1 + eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@8.10.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3): + dependencies: + eslint: 8.57.1 + prettier: 3.3.3 + prettier-linter-helpers: 1.0.0 + synckit: 0.9.1 + optionalDependencies: + '@types/eslint': 9.6.1 + eslint-config-prettier: 8.10.0(eslint@8.57.1) + eslint-plugin-unicorn@55.0.0(eslint@8.57.1): dependencies: '@babel/helper-validator-identifier': 7.24.7 @@ -2046,6 +2100,8 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-diff@1.3.0: {} + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -2375,7 +2431,7 @@ snapshots: openai@4.63.0(zod@3.23.8): dependencies: - '@types/node': 18.19.50 + '@types/node': 18.19.54 '@types/node-fetch': 2.6.11 abort-controller: 3.0.0 agentkeepalive: 4.5.0 @@ -2447,7 +2503,11 @@ snapshots: prelude-ls@1.2.1: {} - prettier@2.8.8: {} + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier@3.3.3: {} punycode@2.3.1: {} @@ -2564,6 +2624,11 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + synckit@0.9.1: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.7.0 + text-table@0.2.0: {} to-regex-range@5.0.1: @@ -2578,14 +2643,14 @@ snapshots: ts-mixer@6.0.4: {} - ts-node@10.9.2(@types/node@18.19.50)(typescript@5.6.2): + ts-node@10.9.2(@types/node@22.7.4)(typescript@5.6.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.50 + '@types/node': 22.7.4 acorn: 8.12.1 acorn-walk: 8.3.4 arg: 4.1.3 @@ -2632,6 +2697,8 @@ snapshots: undici-types@5.26.5: {} + undici-types@6.19.8: {} + undici@6.19.8: {} update-browserslist-db@1.1.0(browserslist@4.24.0): diff --git a/tsconfig.json b/tsconfig.json index 0f5fab0..babb67d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,5 +10,6 @@ "incremental": true, "isolatedModules": true }, - "include": ["src/", "eslint.config.mjs"] + "include": ["src/", "eslint.config.mjs"], + "exclude": ["dist/"] }