From 45ca0369d47321b181338a869815a6cf5e4f34aa Mon Sep 17 00:00:00 2001 From: Jacob Date: Thu, 22 Aug 2024 15:10:40 +0800 Subject: [PATCH] Prettier --- .editorconfig | 2 +- pnpm-lock.yaml | 674 +++++---- src/API/getAchievements.ts | 4 +- src/API/getActiveHouses.ts | 4 +- src/API/getBoosters.ts | 4 +- src/API/getChallenges.ts | 3 +- src/API/getGameCounts.ts | 4 +- src/API/getGuild.ts | 5 +- src/API/getGuildAchievements.ts | 4 +- src/API/getHouse.ts | 4 +- src/API/getLeaderboards.ts | 4 +- src/API/getPlayer.ts | 4 +- src/API/getPlayerHouses.ts | 4 +- src/API/getQuests.ts | 4 +- src/API/getRecentGames.ts | 4 +- src/API/getSkyblockAuction.ts | 4 +- src/API/getSkyblockAuctions.ts | 4 +- src/API/getSkyblockAuctionsByPlayer.ts | 4 +- src/API/getSkyblockBazaar.ts | 4 +- src/API/getSkyblockBingo.ts | 4 +- src/API/getSkyblockBingoByPlayer.ts | 4 +- src/API/getSkyblockFireSales.ts | 4 +- src/API/getSkyblockGarden.ts | 4 +- src/API/getSkyblockGovernment.ts | 4 +- src/API/getSkyblockMember.ts | 4 +- src/API/getSkyblockMuseum.ts | 10 +- src/API/getSkyblockNews.ts | 4 +- src/API/getSkyblockProfiles.ts | 7 +- src/API/getStatus.ts | 4 +- src/API/getWatchdogStats.ts | 4 +- src/API/index.ts | 1 - src/Client.ts | 8 - src/Errors.ts | 1 - src/Private/RateLimit.ts | 2 - src/Private/Requests.ts | 7 +- src/index.ts | 2 - src/structures/APIIncident.ts | 1 + src/structures/Color.ts | 2 - src/structures/Game.ts | 3 +- src/structures/Guild/Guild.ts | 3 +- src/structures/Guild/GuildMember.ts | 2 +- src/structures/Guild/GuildRank.ts | 2 +- src/structures/ItemBytes.ts | 1 + src/structures/MiniGames/Arcade.ts | 22 +- src/structures/MiniGames/BedWars.ts | 9 +- src/structures/MiniGames/CopsAndCrims.ts | 4 + src/structures/MiniGames/Duels.ts | 10 +- src/structures/MiniGames/MegaWalls.ts | 1 + src/structures/MiniGames/Pit.ts | 6 +- src/structures/MiniGames/SkyWars.ts | 20 +- src/structures/MiniGames/TNTGames.ts | 3 + src/structures/MiniGames/UHC.ts | 5 +- src/structures/MiniGames/WoolWars.ts | 1 + src/structures/Pet.ts | 1 - src/structures/Player.ts | 3 +- src/structures/PlayerCosmetics.ts | 1 + src/structures/RecentGame.ts | 2 +- src/structures/ServerInfo.ts | 2 +- src/structures/SkyBlock/News/SkyblockNews.ts | 1 + src/structures/SkyBlock/SkyblockGarden.ts | 1 + .../SkyBlock/SkyblockInventoryItem.ts | 5 +- src/structures/SkyBlock/SkyblockMember.ts | 25 +- src/structures/SkyBlock/SkyblockMuseumItem.ts | 4 +- src/structures/SkyBlock/SkyblockPet.ts | 1 + src/structures/Static/Achievement.ts | 2 +- src/structures/Static/AchievementTier.ts | 5 +- src/structures/Static/GameChallenges.ts | 1 - src/structures/Static/Quest.ts | 1 + src/structures/Status.ts | 1 + src/typings/index.d.ts | 4 - src/utils/Constants.ts | 1223 ++--------------- src/utils/Guild.ts | 5 - src/utils/Player.ts | 8 +- src/utils/SkyblockUtils.ts | 95 +- src/utils/oscillation.ts | 1 - src/utils/varInt.ts | 1 - 76 files changed, 726 insertions(+), 1580 deletions(-) diff --git a/.editorconfig b/.editorconfig index 88bf97c5..ebe51d3b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -6,7 +6,7 @@ root = true [*] indent_style = space indent_size = 2 -end_of_line = crlf +end_of_line = lf charset = utf-8 trim_trailing_whitespace = false insert_final_newline = false \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5793820a..f0349bdd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,6 @@ settings: excludeLinksFromLockfile: false importers: - .: dependencies: axios: @@ -53,68 +52,83 @@ importers: version: 8.2.0(eslint@9.9.0)(typescript@5.5.4) packages: - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 '@eslint-community/regexpp@4.11.0': - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + resolution: + { integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } '@eslint/config-array@0.17.1': - resolution: {integrity: sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } '@eslint/eslintrc@3.1.0': - resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } '@eslint/js@9.9.0': - resolution: {integrity: sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } '@eslint/object-schema@2.1.4': - resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} + resolution: + { integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== } + engines: { node: '>=12.22' } '@humanwhocodes/retry@0.3.0': - resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} - engines: {node: '>=18.18'} + resolution: + { integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew== } + engines: { node: '>=18.18' } '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== } + engines: { node: '>= 8' } '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== } + engines: { node: '>= 8' } '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== } + engines: { node: '>= 8' } '@types/eslint@9.6.0': - resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} + resolution: + { integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg== } '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + resolution: + { integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== } '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + resolution: + { integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== } '@types/node@20.16.1': - resolution: {integrity: sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==} + resolution: + { integrity: sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ== } '@typescript-eslint/eslint-plugin@8.2.0': - resolution: {integrity: sha512-02tJIs655em7fvt9gps/+4k4OsKULYGtLBPJfOsmOq1+3cdClYiF0+d6mHu6qDnTcg88wJBkcPLpQhq7FyDz0A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-02tJIs655em7fvt9gps/+4k4OsKULYGtLBPJfOsmOq1+3cdClYiF0+d6mHu6qDnTcg88wJBkcPLpQhq7FyDz0A== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 @@ -124,8 +138,9 @@ packages: optional: true '@typescript-eslint/parser@8.2.0': - resolution: {integrity: sha512-j3Di+o0lHgPrb7FxL3fdEy6LJ/j2NE8u+AP/5cQ9SKb+JLH6V6UHDqJ+e0hXBkHP1wn1YDFjYCS9LBQsZDlDEg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-j3Di+o0lHgPrb7FxL3fdEy6LJ/j2NE8u+AP/5cQ9SKb+JLH6V6UHDqJ+e0hXBkHP1wn1YDFjYCS9LBQsZDlDEg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '*' @@ -134,12 +149,14 @@ packages: optional: true '@typescript-eslint/scope-manager@8.2.0': - resolution: {integrity: sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } '@typescript-eslint/type-utils@8.2.0': - resolution: {integrity: sha512-g1CfXGFMQdT5S+0PSO0fvGXUaiSkl73U1n9LTK5aRAFnPlJ8dLKkXr4AaLFvPedW8lVDoMgLLE3JN98ZZfsj0w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-g1CfXGFMQdT5S+0PSO0fvGXUaiSkl73U1n9LTK5aRAFnPlJ8dLKkXr4AaLFvPedW8lVDoMgLLE3JN98ZZfsj0w== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: typescript: '*' peerDependenciesMeta: @@ -147,12 +164,14 @@ packages: optional: true '@typescript-eslint/types@8.2.0': - resolution: {integrity: sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } '@typescript-eslint/typescript-estree@8.2.0': - resolution: {integrity: sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: typescript: '*' peerDependenciesMeta: @@ -160,95 +179,119 @@ packages: optional: true '@typescript-eslint/utils@8.2.0': - resolution: {integrity: sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 '@typescript-eslint/visitor-keys@8.2.0': - resolution: {integrity: sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + resolution: + { integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== } peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} + resolution: + { integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== } + engines: { node: '>=0.4.0' } hasBin: true ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + resolution: + { integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== } ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== } + engines: { node: '>=8' } ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== } + engines: { node: '>=8' } argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + resolution: + { integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== } array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== } + engines: { node: '>=8' } asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + resolution: + { integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== } axios@1.7.4: - resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==} + resolution: + { integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== } balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + resolution: + { integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== } brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + resolution: + { integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== } brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + resolution: + { integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== } braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== } + engines: { node: '>=8' } callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== } + engines: { node: '>=6' } chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== } + engines: { node: '>=10' } clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} + resolution: + { integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== } + engines: { node: '>=0.8' } color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + resolution: + { integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== } + engines: { node: '>=7.0.0' } color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + resolution: + { integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== } combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + resolution: + { integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== } + engines: { node: '>= 0.8' } concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: + { integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== } cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== } + engines: { node: '>= 8' } debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} - engines: {node: '>=6.0'} + resolution: + { integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== } + engines: { node: '>=6.0' } peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -256,44 +299,54 @@ packages: optional: true deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + resolution: + { integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== } delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + resolution: + { integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== } + engines: { node: '>=0.4.0' } dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== } + engines: { node: '>=8' } entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + resolution: + { integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== } escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== } + engines: { node: '>=10' } eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + resolution: + { integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== } hasBin: true peerDependencies: eslint: '>=7.0.0' eslint-scope@8.0.2: - resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } eslint-visitor-keys@4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } eslint@9.9.0: - resolution: {integrity: sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } hasBin: true peerDependencies: jiti: '*' @@ -302,63 +355,79 @@ packages: optional: true espree@10.1.0: - resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} + resolution: + { integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== } + engines: { node: '>=0.10' } esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + resolution: + { integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== } + engines: { node: '>=4.0' } estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + resolution: + { integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== } + engines: { node: '>=4.0' } esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== } + engines: { node: '>=0.10.0' } fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + resolution: + { integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== } fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + resolution: + { integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== } + engines: { node: '>=8.6.0' } fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + resolution: + { integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== } fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + resolution: + { integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== } fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + resolution: + { integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== } file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} + resolution: + { integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== } + engines: { node: '>=16.0.0' } fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== } + engines: { node: '>=8' } find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== } + engines: { node: '>=10' } flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== } + engines: { node: '>=16' } flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + resolution: + { integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== } follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} + resolution: + { integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== } + engines: { node: '>=4.0' } peerDependencies: debug: '*' peerDependenciesMeta: @@ -366,277 +435,350 @@ packages: optional: true form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== } + engines: { node: '>= 6' } glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== } + engines: { node: '>= 6' } glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + resolution: + { integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== } + engines: { node: '>=10.13.0' } globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== } + engines: { node: '>=18' } globals@15.9.0: - resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} - engines: {node: '>=18'} + resolution: + { integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA== } + engines: { node: '>=18' } globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== } + engines: { node: '>=10' } graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + resolution: + { integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== } has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== } + engines: { node: '>=8' } ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} + resolution: + { integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== } + engines: { node: '>= 4' } import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== } + engines: { node: '>=6' } imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + resolution: + { integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== } + engines: { node: '>=0.8.19' } inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + resolution: + { integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== } is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== } + engines: { node: '>=0.10.0' } is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== } + engines: { node: '>=0.10.0' } is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + resolution: + { integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== } + engines: { node: '>=0.12.0' } is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== } + engines: { node: '>=8' } isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: + { integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== } js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + resolution: + { integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== } hasBin: true json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + resolution: + { integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== } json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + resolution: + { integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== } json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + resolution: + { integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== } keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + resolution: + { integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== } levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== } + engines: { node: '>= 0.8.0' } locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== } + engines: { node: '>=10' } lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + resolution: + { integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== } lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + resolution: + { integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== } lodash.reduce@4.6.0: - resolution: {integrity: sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw==} + resolution: + { integrity: sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw== } merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== } + engines: { node: '>= 8' } micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} + resolution: + { integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== } + engines: { node: '>=8.6' } mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== } + engines: { node: '>= 0.6' } mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + resolution: + { integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== } + engines: { node: '>= 0.6' } minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + resolution: + { integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== } minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== } + engines: { node: '>=16 || 14 >=14.17' } ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + resolution: + { integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== } natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + resolution: + { integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== } node-cache@5.1.2: - resolution: {integrity: sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==} - engines: {node: '>= 8.0.0'} + resolution: + { integrity: sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg== } + engines: { node: '>= 8.0.0' } optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== } + engines: { node: '>= 0.8.0' } p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== } + engines: { node: '>=10' } p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== } + engines: { node: '>=10' } parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== } + engines: { node: '>=6' } path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== } + engines: { node: '>=8' } path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== } + engines: { node: '>=8' } path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== } + engines: { node: '>=8' } picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + resolution: + { integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== } + engines: { node: '>=8.6' } prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== } + engines: { node: '>= 0.8.0' } prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== } + engines: { node: '>=14' } hasBin: true prismarine-nbt@2.5.0: - resolution: {integrity: sha512-F0/8UAa9SDDnAGrBYqZc4nG8h2zj5cE2eAJU5xlDR/IsQQ3moVxkOjE3h3nMv6SbvZrvAcgX7waA/nd9LLHYdA==} + resolution: + { integrity: sha512-F0/8UAa9SDDnAGrBYqZc4nG8h2zj5cE2eAJU5xlDR/IsQQ3moVxkOjE3h3nMv6SbvZrvAcgX7waA/nd9LLHYdA== } protodef-validator@1.3.1: - resolution: {integrity: sha512-lZ5FWKZYR9xOjpMw1+EfZRfCjzNRQWPq+Dk+jki47Sikl2EeWEPnTfnJERwnU/EwFq6us+0zqHHzSsmLeYX+Lg==} + resolution: + { integrity: sha512-lZ5FWKZYR9xOjpMw1+EfZRfCjzNRQWPq+Dk+jki47Sikl2EeWEPnTfnJERwnU/EwFq6us+0zqHHzSsmLeYX+Lg== } hasBin: true protodef@1.15.0: - resolution: {integrity: sha512-bZ2Omw8dT+DACjJHLrBWZlqN4MlT9g9oSpJDdkUAJOStUzgJp+Zn42FJfPUdwutUxjaxA0PftN0PDlNa2XbneA==} - engines: {node: '>=14'} + resolution: + { integrity: sha512-bZ2Omw8dT+DACjJHLrBWZlqN4MlT9g9oSpJDdkUAJOStUzgJp+Zn42FJfPUdwutUxjaxA0PftN0PDlNa2XbneA== } + engines: { node: '>=14' } proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + resolution: + { integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== } punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + resolution: + { integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== } + engines: { node: '>=6' } queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + resolution: + { integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== } readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + resolution: + { integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== } + engines: { node: '>= 6' } resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolution: + { integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== } + engines: { node: '>=4' } reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + resolution: + { integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== } + engines: { iojs: '>=1.0.0', node: '>=0.10.0' } rss-parser@3.13.0: - resolution: {integrity: sha512-7jWUBV5yGN3rqMMj7CZufl/291QAhvrrGpDNE4k/02ZchL0npisiYYqULF71jCEKoIiHvK/Q2e6IkDwPziT7+w==} + resolution: + { integrity: sha512-7jWUBV5yGN3rqMMj7CZufl/291QAhvrrGpDNE4k/02ZchL0npisiYYqULF71jCEKoIiHvK/Q2e6IkDwPziT7+w== } run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + resolution: + { integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== } safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + resolution: + { integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== } sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + resolution: + { integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== } semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== } + engines: { node: '>=10' } hasBin: true shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== } + engines: { node: '>=8' } shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== } + engines: { node: '>=8' } skyhelper-networth@1.24.0: - resolution: {integrity: sha512-+632T88RmPN2D57ReuHv6aGAEcuFjy+AT6v4tC8Pgkd6BYqvBEhJSo0WjPMQAvqrO7v6Pcf/M58OnVU6uJnAJw==} + resolution: + { integrity: sha512-+632T88RmPN2D57ReuHv6aGAEcuFjy+AT6v4tC8Pgkd6BYqvBEhJSo0WjPMQAvqrO7v6Pcf/M58OnVU6uJnAJw== } slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== } + engines: { node: '>=8' } string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + resolution: + { integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== } strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== } + engines: { node: '>=8' } strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== } + engines: { node: '>=8' } supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + resolution: + { integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== } + engines: { node: '>=8' } text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + resolution: + { integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== } to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + resolution: + { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } + engines: { node: '>=8.0' } ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} + resolution: + { integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== } + engines: { node: '>=16' } peerDependencies: typescript: '>=4.2.0' type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + resolution: + { integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== } + engines: { node: '>= 0.8.0' } typescript-eslint@8.2.0: - resolution: {integrity: sha512-DmnqaPcML0xYwUzgNbM1XaKXpEb7BShYf2P1tkUmmcl8hyeG7Pj08Er7R9bNy6AufabywzJcOybQAtnD/c9DGw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { integrity: sha512-DmnqaPcML0xYwUzgNbM1XaKXpEb7BShYf2P1tkUmmcl8hyeG7Pj08Er7R9bNy6AufabywzJcOybQAtnD/c9DGw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: typescript: '*' peerDependenciesMeta: @@ -644,42 +786,50 @@ packages: optional: true typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} - engines: {node: '>=14.17'} + resolution: + { integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== } + engines: { node: '>=14.17' } hasBin: true - undici-types@6.19.6: - resolution: {integrity: sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org==} + undici-types@6.19.8: + resolution: + { integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== } uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + resolution: + { integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== } util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + resolution: + { integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== } which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} + resolution: + { integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== } + engines: { node: '>= 8' } hasBin: true word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} + resolution: + { integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== } + engines: { node: '>=0.10.0' } xml2js@0.5.0: - resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} - engines: {node: '>=4.0.0'} + resolution: + { integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA== } + engines: { node: '>=4.0.0' } xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} + resolution: + { integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== } + engines: { node: '>=4.0' } yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + resolution: + { integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== } + engines: { node: '>=10' } snapshots: - '@eslint-community/eslint-utils@4.4.0(eslint@9.9.0)': dependencies: eslint: 9.9.0 @@ -740,7 +890,7 @@ snapshots: '@types/node@20.16.1': dependencies: - undici-types: 6.19.6 + undici-types: 6.19.8 '@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.0)(typescript@5.5.4))(eslint@9.9.0)(typescript@5.5.4)': dependencies: @@ -1271,7 +1421,7 @@ snapshots: typescript@5.5.4: {} - undici-types@6.19.6: {} + undici-types@6.19.8: {} uri-js@4.4.1: dependencies: diff --git a/src/API/getAchievements.ts b/src/API/getAchievements.ts index 6d95d4dc..4020c2a3 100644 --- a/src/API/getAchievements.ts +++ b/src/API/getAchievements.ts @@ -3,7 +3,7 @@ import { RequestOptions } from '../Private/Requests'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getAchievements extends Endpoint { +class getAchievements extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -16,3 +16,5 @@ export default class getAchievements extends Endpoint { return new Achievements(res); } } + +export default getAchievements; diff --git a/src/API/getActiveHouses.ts b/src/API/getActiveHouses.ts index b5c83890..49666e57 100644 --- a/src/API/getActiveHouses.ts +++ b/src/API/getActiveHouses.ts @@ -3,7 +3,7 @@ import Endpoint from '../Private/Endpoint'; import House from '../structures/House'; import Client from '../Client'; -export default class getActiveHouses extends Endpoint { +class getActiveHouses extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -16,3 +16,5 @@ export default class getActiveHouses extends Endpoint { return res.length ? res.map((b: any) => new House(b)) : []; } } + +export default getActiveHouses; diff --git a/src/API/getBoosters.ts b/src/API/getBoosters.ts index a7c3cd16..7723ebd8 100644 --- a/src/API/getBoosters.ts +++ b/src/API/getBoosters.ts @@ -3,7 +3,7 @@ import Booster from '../structures/Boosters/Booster'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getBoosters extends Endpoint { +class getBoosters extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -16,3 +16,5 @@ export default class getBoosters extends Endpoint { return res.boosters.length ? res.boosters.map((b: any) => new Booster(b)).reverse() : []; } } + +export default getBoosters; diff --git a/src/API/getChallenges.ts b/src/API/getChallenges.ts index cf83798f..21aa28d7 100644 --- a/src/API/getChallenges.ts +++ b/src/API/getChallenges.ts @@ -3,7 +3,7 @@ import { RequestOptions } from '../Private/Requests'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getChallenges extends Endpoint { +class getChallenges extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -16,3 +16,4 @@ export default class getChallenges extends Endpoint { return new Challenges(res); } } +export default getChallenges; diff --git a/src/API/getGameCounts.ts b/src/API/getGameCounts.ts index 444e9770..817c69dd 100644 --- a/src/API/getGameCounts.ts +++ b/src/API/getGameCounts.ts @@ -3,7 +3,7 @@ import GameCounts from '../structures/GameCounts'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getGameCounts extends Endpoint { +class getGameCounts extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -16,3 +16,5 @@ export default class getGameCounts extends Endpoint { return new GameCounts(res); } } + +export default getGameCounts; diff --git a/src/API/getGuild.ts b/src/API/getGuild.ts index fa17890d..a2065fdb 100644 --- a/src/API/getGuild.ts +++ b/src/API/getGuild.ts @@ -4,7 +4,7 @@ import isGuildID from '../utils/isGuildID'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getGuild extends Endpoint { +class getGuild extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -28,7 +28,8 @@ export default class getGuild extends Endpoint { if (!res.guild && 'player' !== searchParameter) { throw new Error(this.client.errors.GUILD_DOES_NOT_EXIST); } - return res.guild ? new Guild(res.guild, isPlayerQuery ? query : undefined) : null; } } + +export default getGuild; diff --git a/src/API/getGuildAchievements.ts b/src/API/getGuildAchievements.ts index 6cc2af1b..053a54b4 100644 --- a/src/API/getGuildAchievements.ts +++ b/src/API/getGuildAchievements.ts @@ -3,7 +3,7 @@ import { RequestOptions } from '../Private/Requests'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getGuildAchievements extends Endpoint { +class getGuildAchievements extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -16,3 +16,5 @@ export default class getGuildAchievements extends Endpoint { return new GuildAchievements(res); } } + +export default getGuildAchievements; diff --git a/src/API/getHouse.ts b/src/API/getHouse.ts index 85063a5e..d684c9ea 100644 --- a/src/API/getHouse.ts +++ b/src/API/getHouse.ts @@ -3,7 +3,7 @@ import Endpoint from '../Private/Endpoint'; import House from '../structures/House'; import Client from '../Client'; -export default class getHouse extends Endpoint { +class getHouse extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -17,3 +17,5 @@ export default class getHouse extends Endpoint { return new House(res); } } + +export default getHouse; diff --git a/src/API/getLeaderboards.ts b/src/API/getLeaderboards.ts index 297bba70..9119d70a 100644 --- a/src/API/getLeaderboards.ts +++ b/src/API/getLeaderboards.ts @@ -4,7 +4,7 @@ import Constants from '../utils/Constants'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getLeaderboards extends Endpoint { +class getLeaderboards extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -24,3 +24,5 @@ export default class getLeaderboards extends Endpoint { return lbnames; } } + +export default getLeaderboards; diff --git a/src/API/getPlayer.ts b/src/API/getPlayer.ts index 9155886d..ab806fd6 100644 --- a/src/API/getPlayer.ts +++ b/src/API/getPlayer.ts @@ -3,7 +3,7 @@ import Endpoint from '../Private/Endpoint'; import Player from '../structures/Player'; import Client from '../Client'; -export default class getPlayer extends Endpoint { +class getPlayer extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -21,3 +21,5 @@ export default class getPlayer extends Endpoint { return new Player(res.player, options?.getGuild ? await this.client.getGuild('player', query) : undefined); } } + +export default getPlayer; diff --git a/src/API/getPlayerHouses.ts b/src/API/getPlayerHouses.ts index 9739a531..3cc2debb 100644 --- a/src/API/getPlayerHouses.ts +++ b/src/API/getPlayerHouses.ts @@ -3,7 +3,7 @@ import Endpoint from '../Private/Endpoint'; import House from '../structures/House'; import Client from '../Client'; -export default class getPlayerHouses extends Endpoint { +class getPlayerHouses extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -18,3 +18,5 @@ export default class getPlayerHouses extends Endpoint { return res.length ? res.map((h: any) => new House(h)) : []; } } + +export default getPlayerHouses; diff --git a/src/API/getQuests.ts b/src/API/getQuests.ts index 1c11114b..d89062ca 100644 --- a/src/API/getQuests.ts +++ b/src/API/getQuests.ts @@ -3,7 +3,7 @@ import Quests from '../structures/Static/Quests'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getQuests extends Endpoint { +class getQuests extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -16,3 +16,5 @@ export default class getQuests extends Endpoint { return new Quests(res); } } + +export default getQuests; diff --git a/src/API/getRecentGames.ts b/src/API/getRecentGames.ts index f9e3c1a9..a5558cbc 100644 --- a/src/API/getRecentGames.ts +++ b/src/API/getRecentGames.ts @@ -3,7 +3,7 @@ import RecentGame from '../structures/RecentGame'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getRecentGames extends Endpoint { +class getRecentGames extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -21,3 +21,5 @@ export default class getRecentGames extends Endpoint { return res.games.map((x: any) => new RecentGame(x)); } } + +export default getRecentGames; diff --git a/src/API/getSkyblockAuction.ts b/src/API/getSkyblockAuction.ts index 5bab1e40..c0700ff7 100644 --- a/src/API/getSkyblockAuction.ts +++ b/src/API/getSkyblockAuction.ts @@ -3,7 +3,7 @@ import { AuctionRequestOptions } from './API'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getSkyblockAction extends Endpoint { +class getSkyblockAction extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -32,3 +32,5 @@ export default class getSkyblockAction extends Endpoint { return res.auctions.length ? res.auctions.map((a: any) => new Auction(a, options?.includeItemBytes ?? false)) : []; } } + +export default getSkyblockAction; diff --git a/src/API/getSkyblockAuctions.ts b/src/API/getSkyblockAuctions.ts index 5b83fc46..0e885167 100644 --- a/src/API/getSkyblockAuctions.ts +++ b/src/API/getSkyblockAuctions.ts @@ -12,7 +12,7 @@ export interface getSkyblockAuctionsOptions extends AuctionRequestOptions { noInfo?: boolean; } -export default class getSkyblockAuctions extends Endpoint { +class getSkyblockAuctions extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -101,3 +101,5 @@ export default class getSkyblockAuctions extends Endpoint { }; } } + +export default getSkyblockAuctions; diff --git a/src/API/getSkyblockAuctionsByPlayer.ts b/src/API/getSkyblockAuctionsByPlayer.ts index d8da4d8b..c26cd1b3 100644 --- a/src/API/getSkyblockAuctionsByPlayer.ts +++ b/src/API/getSkyblockAuctionsByPlayer.ts @@ -3,7 +3,7 @@ import { AuctionRequestOptions } from './API'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getSkyblockActionsByPlayer extends Endpoint { +class getSkyblockActionsByPlayer extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -18,3 +18,5 @@ export default class getSkyblockActionsByPlayer extends Endpoint { return res.auctions.length ? res.auctions.map((a: any) => new Auction(a, options?.includeItemBytes ?? false)) : []; } } + +export default getSkyblockActionsByPlayer; diff --git a/src/API/getSkyblockBazaar.ts b/src/API/getSkyblockBazaar.ts index 44404e54..2074257d 100644 --- a/src/API/getSkyblockBazaar.ts +++ b/src/API/getSkyblockBazaar.ts @@ -3,7 +3,7 @@ import { RequestOptions } from '../Private/Requests'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getSkyblockBazaar extends Endpoint { +class getSkyblockBazaar extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -17,3 +17,5 @@ export default class getSkyblockBazaar extends Endpoint { return productsKeys.map((x) => new Product(res.products[x])); } } + +export default getSkyblockBazaar; diff --git a/src/API/getSkyblockBingo.ts b/src/API/getSkyblockBingo.ts index 923eb3af..b0505d64 100644 --- a/src/API/getSkyblockBingo.ts +++ b/src/API/getSkyblockBingo.ts @@ -3,7 +3,7 @@ import { RequestOptions } from '../Private/Requests'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getSkyblockBingo extends Endpoint { +class getSkyblockBingo extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -16,3 +16,5 @@ export default class getSkyblockBingo extends Endpoint { return new BingoData(res); } } + +export default getSkyblockBingo; diff --git a/src/API/getSkyblockBingoByPlayer.ts b/src/API/getSkyblockBingoByPlayer.ts index e6d531bf..69ac0a8a 100644 --- a/src/API/getSkyblockBingoByPlayer.ts +++ b/src/API/getSkyblockBingoByPlayer.ts @@ -3,7 +3,7 @@ import { RequestOptions } from '../Private/Requests'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getBingoByPlayer extends Endpoint { +class getBingoByPlayer extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -18,3 +18,5 @@ export default class getBingoByPlayer extends Endpoint { return new PlayerBingo(res); } } + +export default getBingoByPlayer; diff --git a/src/API/getSkyblockFireSales.ts b/src/API/getSkyblockFireSales.ts index 39172649..0103c29e 100644 --- a/src/API/getSkyblockFireSales.ts +++ b/src/API/getSkyblockFireSales.ts @@ -3,7 +3,7 @@ import { RequestOptions } from '../Private/Requests'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getSkyblockFireSales extends Endpoint { +class getSkyblockFireSales extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -16,3 +16,5 @@ export default class getSkyblockFireSales extends Endpoint { return res.sales.length ? res.sales.map((a: any) => new FireSale(a)) : []; } } + +export default getSkyblockFireSales; diff --git a/src/API/getSkyblockGarden.ts b/src/API/getSkyblockGarden.ts index ceabc089..d3fbe6b9 100644 --- a/src/API/getSkyblockGarden.ts +++ b/src/API/getSkyblockGarden.ts @@ -3,7 +3,7 @@ import { RequestOptions } from '../Private/Requests'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getSkyblockGarden extends Endpoint { +class getSkyblockGarden extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -16,3 +16,5 @@ export default class getSkyblockGarden extends Endpoint { return new SkyblockGarden(res); } } + +export default getSkyblockGarden; diff --git a/src/API/getSkyblockGovernment.ts b/src/API/getSkyblockGovernment.ts index f0105796..62202800 100644 --- a/src/API/getSkyblockGovernment.ts +++ b/src/API/getSkyblockGovernment.ts @@ -3,7 +3,7 @@ import { RequestOptions } from '../Private/Requests'; import Endpoint from '../Private/Endpoint.js'; import Client from '../Client.js'; -export default class getSkyblockGovernment extends Endpoint { +class getSkyblockGovernment extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -16,3 +16,5 @@ export default class getSkyblockGovernment extends Endpoint { return new GovernmentData(res); } } + +export default getSkyblockGovernment; diff --git a/src/API/getSkyblockMember.ts b/src/API/getSkyblockMember.ts index 22bb687d..2b299961 100644 --- a/src/API/getSkyblockMember.ts +++ b/src/API/getSkyblockMember.ts @@ -3,7 +3,7 @@ import { SkyblockRequestOptions } from './API'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getSkyblockMember extends Endpoint { +class getSkyblockMember extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -41,3 +41,5 @@ export default class getSkyblockMember extends Endpoint { return memberByProfileName; } } + +export default getSkyblockMember; diff --git a/src/API/getSkyblockMuseum.ts b/src/API/getSkyblockMuseum.ts index bb2ef064..36ccb9b7 100644 --- a/src/API/getSkyblockMuseum.ts +++ b/src/API/getSkyblockMuseum.ts @@ -3,7 +3,7 @@ import { RequestOptions } from '../Private/Requests'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getSkyblockMuseum extends Endpoint { +class getSkyblockMuseum extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -15,10 +15,8 @@ export default class getSkyblockMuseum extends Endpoint { query = await this.client.requests.toUUID(query); const res = await this.client.requests.request(`/skyblock/museum?uuid=${query}&profile=${profileId}`, options); if (res.raw) return res; - return new SkyblockMuseum({ - uuid: query, - m: res, - profileId: profileId - }); + return new SkyblockMuseum({ uuid: query, m: res, profileId: profileId }); } } + +export default getSkyblockMuseum; diff --git a/src/API/getSkyblockNews.ts b/src/API/getSkyblockNews.ts index 1c746d27..74639940 100644 --- a/src/API/getSkyblockNews.ts +++ b/src/API/getSkyblockNews.ts @@ -3,7 +3,7 @@ import { RequestOptions } from '../Private/Requests'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getSkyblockNews extends Endpoint { +class getSkyblockNews extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -16,3 +16,5 @@ export default class getSkyblockNews extends Endpoint { return res.items.map((i: any) => new SkyblockNews(i)); } } + +export default getSkyblockNews; diff --git a/src/API/getSkyblockProfiles.ts b/src/API/getSkyblockProfiles.ts index 6bea087a..2a5abf19 100644 --- a/src/API/getSkyblockProfiles.ts +++ b/src/API/getSkyblockProfiles.ts @@ -2,7 +2,8 @@ import SkyblockProfile from '../structures/SkyBlock/SkyblockProfile'; import { SkyblockRequestOptions } from './API'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getSkyblockProfiles extends Endpoint { + +class getSkyblockProfiles extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -15,7 +16,6 @@ export default class getSkyblockProfiles extends Endpoint { const res = await this.client.requests.request(`/skyblock/profiles?uuid=${query}`, options); if (res.raw) return res; if (!res.profiles || !res.profiles.length) throw new Error(this.client.errors.NO_SKYBLOCK_PROFILES); - const profiles = []; for (let i = 0; i < res.profiles.length; i++) { profiles.push({ @@ -32,7 +32,8 @@ export default class getSkyblockProfiles extends Endpoint { members: res.profiles[i].members }); } - return profiles.map((p) => new SkyblockProfile(p)); } } + +export default getSkyblockProfiles; diff --git a/src/API/getStatus.ts b/src/API/getStatus.ts index bb70fd5a..bfb81e64 100644 --- a/src/API/getStatus.ts +++ b/src/API/getStatus.ts @@ -3,7 +3,7 @@ import Endpoint from '../Private/Endpoint'; import Status from '../structures/Status'; import Client from '../Client'; -export default class getStatus extends Endpoint { +class getStatus extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -17,3 +17,5 @@ export default class getStatus extends Endpoint { return new Status(res.session); } } + +export default getStatus; diff --git a/src/API/getWatchdogStats.ts b/src/API/getWatchdogStats.ts index 8dfef5de..19722e4f 100644 --- a/src/API/getWatchdogStats.ts +++ b/src/API/getWatchdogStats.ts @@ -3,7 +3,7 @@ import { RequestOptions } from '../Private/Requests'; import Endpoint from '../Private/Endpoint'; import Client from '../Client'; -export default class getWatchdogStats extends Endpoint { +class getWatchdogStats extends Endpoint { readonly client: Client; constructor(client: Client) { super(client); @@ -16,3 +16,5 @@ export default class getWatchdogStats extends Endpoint { return new WatchdogStats(res); } } + +export default getWatchdogStats; diff --git a/src/API/index.ts b/src/API/index.ts index fea0d75f..7be9a531 100644 --- a/src/API/index.ts +++ b/src/API/index.ts @@ -26,7 +26,6 @@ import getSkyblockNews from './getSkyblockNews'; import getSkyblockProfiles from './getSkyblockProfiles'; import getStatus from './getStatus'; import getWatchdogStats from './getWatchdogStats'; - export default { getAchievements, getActiveHouses, diff --git a/src/Client.ts b/src/Client.ts index 55bf32ce..412f278a 100644 --- a/src/Client.ts +++ b/src/Client.ts @@ -15,23 +15,18 @@ class Client { declare updater: Updater; declare errors: Errors; declare rateLimit: RateLimit; - readonly key: string; - declare interval: NodeJS.Timeout; - constructor(key: string, options?: ClientOptions) { this.key = key; this.parasOptions(options); if (!this.key.length) throw new Error(this.errors.NO_API_KEY); - this.requests = new Requests(this); this.cacheHandler = new CacheHandler(this); this.updater = new Updater(this); this.errors = new Errors(); this.rateLimit = new RateLimit(this); if ('NONE' !== this.options.rateLimit) this.rateLimit.initialize(); - for (const func in API) { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-expect-error @@ -40,7 +35,6 @@ class Client { // @ts-expect-error this[func] = endpoint.execute.bind(endpoint); } - if (clients.find((x) => x.key === key)) { // eslint-disable-next-line no-console console.warn(this.errors.MULTIPLE_INSTANCES); @@ -52,7 +46,6 @@ class Client { } return; } - if (this.options.checkForUpdates) { this.interval = setInterval( () => { @@ -61,7 +54,6 @@ class Client { 1000 * 60 * (this.options.checkForUpdatesInterval ?? 60) ); } - clients.push(this); } diff --git a/src/Errors.ts b/src/Errors.ts index 84e5e553..ff6ec5b0 100644 --- a/src/Errors.ts +++ b/src/Errors.ts @@ -1,5 +1,4 @@ /* eslint-disable max-len */ - class Errors { INVALID_API_KEY: string = '[Hypixel-API-Reborn] Invalid API Key! For help join our Discord Server https://discord.gg/NSEBNMM'; diff --git a/src/Private/RateLimit.ts b/src/Private/RateLimit.ts index 96f4058e..917e930a 100644 --- a/src/Private/RateLimit.ts +++ b/src/Private/RateLimit.ts @@ -8,11 +8,9 @@ class RateLimit { declare interval: NodeJS.Timeout; constructor(client: Client) { this.client = client; - this.requests = 0; this.limit = 0; this.initialized = false; - this.interval = setInterval(() => this.reset(), 300000); } diff --git a/src/Private/Requests.ts b/src/Private/Requests.ts index a1dfb225..18e4c8f2 100644 --- a/src/Private/Requests.ts +++ b/src/Private/Requests.ts @@ -15,10 +15,7 @@ class Requests { } async request(endpoint: string, options?: RequestOptions): Promise { - const info = { - raw: options?.raw ?? false, - noCache: options?.noCache ?? false - }; + const info = { raw: options?.raw ?? false, noCache: options?.noCache ?? false }; if (this.client.cacheHandler.has(endpoint)) { return this.client.cacheHandler.get(endpoint); } @@ -47,7 +44,6 @@ class Requests { throw new Error(this.client.errors.SOMETHING_WENT_WRONG.replace(/{cause}/, res.statusText)); } this.client.rateLimit.requests++; - // eslint-disable-next-line no-underscore-dangle parsedRes._headers = res.headers; parsedRes.raw = Boolean(info.raw); @@ -55,7 +51,6 @@ class Requests { if (this.client.options.cache && !info.raw) { this.client.cacheHandler.set(endpoint, parsedRes); } - return parsedRes; } diff --git a/src/index.ts b/src/index.ts index cbb50d73..abaaadd1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,11 +1,9 @@ export * from './Client'; export * from './Errors'; - export * from './Private/CacheHandler'; export * from './Private/Updater'; export * from './Private/Endpoint'; export * from './Private/Requests'; - export * from './API/getAchievements'; export * from './API/getActiveHouses'; export * from './API/getBoosters'; diff --git a/src/structures/APIIncident.ts b/src/structures/APIIncident.ts index a985b4b5..efe9dbd1 100644 --- a/src/structures/APIIncident.ts +++ b/src/structures/APIIncident.ts @@ -24,6 +24,7 @@ class APIIncident { this.categories = data.categories || []; this.isResolved = this.HTMLContent.includes('Resolved -') || this.HTMLContent.includes('Completed -'); } + toString(): string { return this.HTMLContent; } diff --git a/src/structures/Color.ts b/src/structures/Color.ts index b1483066..26311bf7 100644 --- a/src/structures/Color.ts +++ b/src/structures/Color.ts @@ -16,7 +16,6 @@ const ColorStrings: { [key: string]: string } = { YELLOW: 'Yellow', WHITE: 'White' }; - const ColorHex: { [key: string]: string } = { BLACK: '#000000', DARK_BLUE: '#0000AA', @@ -35,7 +34,6 @@ const ColorHex: { [key: string]: string } = { YELLOW: '#FFFF55', WHITE: '#FFFFFF' }; - const InGameCodes: { [key: string]: string } = { BLACK: '§0', DARK_BLUE: '§1', diff --git a/src/structures/Game.ts b/src/structures/Game.ts index 9c5d541d..6742fc25 100644 --- a/src/structures/Game.ts +++ b/src/structures/Game.ts @@ -1,5 +1,4 @@ import Constants from '../utils/Constants'; - export type GameString = | 'Quake Craft' | 'Walls' @@ -117,7 +116,6 @@ class Game { code: GameCode | null; name: GameString | null; found: boolean; - constructor(game: GameID | GameCode) { this.game = game; const result = Constants.games.find( @@ -132,6 +130,7 @@ class Game { toString(): GameString | null { return this.name; } + static get IDS(): GameID[] { return Constants.games.map((x) => x.id as GameID); } diff --git a/src/structures/Guild/Guild.ts b/src/structures/Guild/Guild.ts index 73994a2b..09f7d485 100644 --- a/src/structures/Guild/Guild.ts +++ b/src/structures/Guild/Guild.ts @@ -26,7 +26,6 @@ class Guild { expHistory: ExpHistory[]; achievements: { winners: number; experienceKings: number; onlinePlayers: number }; preferredGames: Game[]; - constructor(data: Record, uuid?: string) { // eslint-disable-next-line no-underscore-dangle this.id = data._id; @@ -55,9 +54,11 @@ class Guild { }; this.preferredGames = data.preferredGames ? data.preferredGames.map((g: any) => new Game(g)) : []; } + toString(): string { return this.name; } + guildMaster(): GuildMember { return this.members.find( (member) => 'Guild Master' === member.rank || 'GUILDMASTER' === member.rank diff --git a/src/structures/Guild/GuildMember.ts b/src/structures/Guild/GuildMember.ts index 9f60b35f..d12f5d83 100644 --- a/src/structures/Guild/GuildMember.ts +++ b/src/structures/Guild/GuildMember.ts @@ -10,7 +10,6 @@ class GuildMember { mutedUntil: Date | null; expHistory: ExpHistory[]; weeklyExperience: any | null; - constructor(data: Record) { this.uuid = data.uuid; this.joinedAtTimestamp = data.joined; @@ -23,6 +22,7 @@ class GuildMember { this.expHistory = parseHistory(data.expHistory); this.weeklyExperience = xpCheck ? Object.values(data.expHistory).reduce((pV: any, cV: any) => pV + cV, 0) : null; } + toString(): string { return this.uuid; } diff --git a/src/structures/Guild/GuildRank.ts b/src/structures/Guild/GuildRank.ts index eb2dfd9f..dc76c595 100644 --- a/src/structures/Guild/GuildRank.ts +++ b/src/structures/Guild/GuildRank.ts @@ -5,7 +5,6 @@ class GuildRank { createdAtTimestamp: number; createdAt: Date; priority: number; - constructor(data: Record) { this.name = data.name; this.default = data.default; @@ -14,6 +13,7 @@ class GuildRank { this.createdAt = new Date(data.created ? data.created : data.createdAtTimestamp); this.priority = data.priority; } + toString() { return this.name; } diff --git a/src/structures/ItemBytes.ts b/src/structures/ItemBytes.ts index 3fc69700..1e5891fd 100644 --- a/src/structures/ItemBytes.ts +++ b/src/structures/ItemBytes.ts @@ -14,4 +14,5 @@ class ItemBytes { return await decode(this.bytesBuffer, true); } } + export default ItemBytes; diff --git a/src/structures/MiniGames/Arcade.ts b/src/structures/MiniGames/Arcade.ts index cfc8482a..64c6dbd3 100644 --- a/src/structures/MiniGames/Arcade.ts +++ b/src/structures/MiniGames/Arcade.ts @@ -1,9 +1,7 @@ // IMPORTANT : a lot of the properties from the API seem to be nonsense - import { removeSnakeCaseString } from '../../utils/removeSnakeCase'; import { weekAB, monthAB } from '../../utils/oscillation'; import divide from '../../utils/divide'; - function parseZombiesKills(data: Record): Record { const matches = Array.from(Object.keys(data)) .map((x) => x.match(/^([A-Za-z]+)_zombie_kills_zombies$/)) @@ -11,6 +9,7 @@ function parseZombiesKills(data: Record): Record { // From entries might be broken return Object.fromEntries(matches.map((x: any) => [removeSnakeCaseString(x[1]), data[x[0]] || 0])); } + class ZombiesStats { bestRound: number; deaths: number; @@ -87,6 +86,7 @@ class BlockingDead { this.headshots = data.headshots_dayone || 0; } } + class BountyHunters { wins: number; kills: number; @@ -105,6 +105,7 @@ class BountyHunters { this.swordKills = data.sword_kills_oneinthequiver || 0; } } + class CaptureTheWool { wins: number; losses: number; @@ -133,6 +134,7 @@ class CaptureTheWool { this.longestGame = data.woolhunt_longest_game || 0; } } + class DragonWars { wins: number; kills: number; @@ -141,6 +143,7 @@ class DragonWars { this.kills = data.kills_dragonwars2 || 0; } } + class Dropper { wins: number; fails: number; @@ -164,6 +167,7 @@ class Dropper { }); } } + class EnderSpleef { wins: number; kills: number; @@ -182,6 +186,7 @@ class EnderSpleef { this.totalPowerUpActivations = this.bigShotActivations + this.tripleShotActivations; } } + class FarmHunt { wins: number; winsAsAnimal: number; @@ -210,6 +215,7 @@ class FarmHunt { this.poop = (data.poop_collected_farm_hunt || 0) + (data.poop_collected || 0); } } + class Football { wins: number; goals: number; @@ -222,6 +228,7 @@ class Football { this.powerKicks = data.powerkicks_soccer || 0; } } + class GalaxyWars { wins: number; kills: number; @@ -242,6 +249,7 @@ class GalaxyWars { this.defenderKills = data.sw_empire_kills || 0; } } + class PartyPopper { winsAsSeeker: number; winsAsHider: number; @@ -252,6 +260,7 @@ class PartyPopper { this.wins = this.winsAsSeeker + this.winsAsHider; } } + class PropHunt { winsAsSeeker: number; winsAsHider: number; @@ -262,6 +271,7 @@ class PropHunt { this.wins = this.winsAsSeeker + this.winsAsHider; } } + class HideAndSeek { partyPopper: PartyPopper; propHunt: PropHunt; @@ -274,6 +284,7 @@ class HideAndSeek { this.winsAsHider = data.hider_wins_hide_and_seek || 0; } } + class HoleInTheWall { wins: number; rounds: number; @@ -288,6 +299,7 @@ class HoleInTheWall { this.scoreRecordOverall = this.scoreRecordFinals + this.scoreRecordNormal; } } + class HypixelSays { wins: number; rounds: number; @@ -300,6 +312,7 @@ class HypixelSays { this.topScore = data.top_score_simon_says || 0; } } + class MiniWalls { kit: string; wins: number; @@ -326,6 +339,7 @@ class MiniWalls { this.bowAccuracy = divide(this.arrowsHit, this.arrowsShot); } } + class PartyGames { wins: number; roundWins: number; @@ -336,6 +350,7 @@ class PartyGames { this.stars = data.total_stars_party || 0; } } + class PixelPartyGameMode { wins: number; gamesPlayed: number; @@ -352,6 +367,7 @@ class PixelPartyGameMode { this.powerUpsCollected = data?.[`power_ups_collected_${modeName}`] || 0; } } + class PixelParty { wins: number; gamesPlayed: number; @@ -378,6 +394,7 @@ class PixelParty { this.colorBlind = data.pixelparty || {}; } } + class ThrowOut { wins: number; kills: number; @@ -390,6 +407,7 @@ class ThrowOut { this.KDRatio = divide(this.kills, this.deaths); } } + class Arcade { coins: number; weeklyCoins: number; diff --git a/src/structures/MiniGames/BedWars.ts b/src/structures/MiniGames/BedWars.ts index c148c5ab..62b895e8 100644 --- a/src/structures/MiniGames/BedWars.ts +++ b/src/structures/MiniGames/BedWars.ts @@ -87,6 +87,7 @@ export interface BedWarsModeStats { WLRatio: number; finalKDRatio: number; } + export interface BedwarsDreamModeStats { doubles: BedWarsModeStats; fours: BedWarsModeStats; @@ -154,28 +155,22 @@ function generateStatsForMode(data: Record, mode: string): BedWarsM return { winstreak: data[`${mode}_winstreak`] || 0, playedGames: data[`${mode}_games_played_bedwars`] || 0, - kills: data[`${mode}_kills_bedwars`] || 0, deaths: data[`${mode}_deaths_bedwars`] || 0, - wins: data[`${mode}_wins_bedwars`] || 0, losses: data[`${mode}_losses_bedwars`] || 0, - finalKills: data[`${mode}_final_kills_bedwars`] || 0, finalDeaths: data[`${mode}_final_deaths_bedwars`] || 0, - beds: { broken: data[`${mode}_beds_broken_bedwars`] || 0, lost: data[`${mode}_beds_lost_bedwars`] || 0, BLRatio: divide(data[`${mode}_beds_broken_bedwars`], data[`${mode}_beds_lost_bedwars`]) }, - avg: { kills: divide(data[`${mode}_kills_bedwars`], data[`${mode}_games_played_bedwars`]), finalKills: divide(data[`${mode}_final_kills_bedwars`], data[`${mode}_games_played_bedwars`]), bedsBroken: divide(data[`${mode}_beds_broken_bedwars`], data[`${mode}_games_played_bedwars`]) }, - KDRatio: divide(data[`${mode}_kills_bedwars`], data[`${mode}_deaths_bedwars`]), WLRatio: divide(data[`${mode}_wins_bedwars`], data[`${mode}_losses_bedwars`]), finalKDRatio: divide(data[`${mode}_final_kills_bedwars`], data[`${mode}_final_deaths_bedwars`]) @@ -245,7 +240,6 @@ const EASY_LEVELS_XP = 7000; const XP_PER_PRESTIGE = 96 * 5000 + EASY_LEVELS_XP; const LEVELS_PER_PRESTIGE = 100; const HIGHEST_PRESTIGE = 10; - function getLevelRespectingPrestige(level: number) { if (level > HIGHEST_PRESTIGE * LEVELS_PER_PRESTIGE) { return level - HIGHEST_PRESTIGE * LEVELS_PER_PRESTIGE; @@ -276,7 +270,6 @@ function getLevelForExp(exp: number) { const prestiges = Math.floor(exp / XP_PER_PRESTIGE); let level = prestiges * LEVELS_PER_PRESTIGE; let expWithoutPrestiges = exp - prestiges * XP_PER_PRESTIGE; - for (let i = 1; i <= EASY_LEVELS; ++i) { const expForEasyLevel = getExpForLevel(i); if (expWithoutPrestiges < expForEasyLevel) { diff --git a/src/structures/MiniGames/CopsAndCrims.ts b/src/structures/MiniGames/CopsAndCrims.ts index 338f55a2..ad31e72c 100644 --- a/src/structures/MiniGames/CopsAndCrims.ts +++ b/src/structures/MiniGames/CopsAndCrims.ts @@ -1,4 +1,5 @@ import divide from '../../utils/divide'; + class CopsAndCrimsDefusal { kills: number; headshotKills: number; @@ -33,6 +34,7 @@ class CopsAndCrimsDefusal { this.killsAsCop = data.cop_kills || 0; } } + class CopsAndCrimsDeathmatch { kills: number; assists: number; @@ -57,6 +59,7 @@ class CopsAndCrimsDeathmatch { this.killsAsCop = data.cop_kills_deathmatch || 0; } } + class CopsAndCrimsGunGame { kills: number; assists: number; @@ -83,6 +86,7 @@ class CopsAndCrimsGunGame { this.fastestWin = data.fastest_win_gungame || 0; } } + class CopsAndCrims { defusal: CopsAndCrimsDefusal; deathmath: CopsAndCrimsDeathmatch; diff --git a/src/structures/MiniGames/Duels.ts b/src/structures/MiniGames/Duels.ts index a657a974..c052b26c 100644 --- a/src/structures/MiniGames/Duels.ts +++ b/src/structures/MiniGames/Duels.ts @@ -2,9 +2,9 @@ import Constants from '../../utils/Constants'; import romanize from '../../utils/romanize'; import divide from '../../utils/divide'; -function getTitle(data: Record, mode: string | null = null): string { +function getTitle(data: Record, mode: string): string { for (const div of Constants.duelsDivisions.slice().reverse()) { - const prestige = data[`${mode ? mode : 'all_modes'}_${div.key}_title_prestige`]; + const prestige = data[`${mode}_${div.key}_title_prestige`]; if (prestige) { return `${div.name} ${romanize(prestige)}`; } @@ -115,6 +115,7 @@ class DuelsUHC { this.deathmatch.goldenApplesEatan; } } + class DuelsSkyWars { title: string; winstreak: number; @@ -161,6 +162,7 @@ class DuelsSkyWars { this.goldenApplesEatan = this.solo.goldenApplesEatan + this.doubles.goldenApplesEatan; } } + class DuelsMegaWalls { title: string; winstreak: number; @@ -207,6 +209,7 @@ class DuelsMegaWalls { this.goldenApplesEatan = this.solo.goldenApplesEatan + this.doubles.goldenApplesEatan; } } + class DuelsOP { title: string; winstreak: number; @@ -253,6 +256,7 @@ class DuelsOP { this.goldenApplesEatan = this.solo.goldenApplesEatan + this.doubles.goldenApplesEatan; } } + class DuelsBridge { title: string; winstreak: number; @@ -432,7 +436,7 @@ class Duels { arena: DuelsGamemode; constructor(data: Record) { this.tokens = data.coins || 0; - this.title = getTitle(data); + this.title = getTitle(data, 'all_modes'); this.kills = data.kills || 0; this.deaths = data.deaths || 0; this.KDRatio = divide(this.kills, this.deaths); diff --git a/src/structures/MiniGames/MegaWalls.ts b/src/structures/MiniGames/MegaWalls.ts index e3990f9b..d8e8b63d 100644 --- a/src/structures/MiniGames/MegaWalls.ts +++ b/src/structures/MiniGames/MegaWalls.ts @@ -43,6 +43,7 @@ class MegaWallsModeStats { this.damageDealt = data[`${kit}damage_dealt_${mode}`] || 0; } } + class MegaWallsKitStats { kills: number; assists: number; diff --git a/src/structures/MiniGames/Pit.ts b/src/structures/MiniGames/Pit.ts index f3cf0ca3..e7b8cc8b 100644 --- a/src/structures/MiniGames/Pit.ts +++ b/src/structures/MiniGames/Pit.ts @@ -44,7 +44,7 @@ class Pit { this.prestige = data.profile?.prestiges?.[data.profile?.prestiges?.length - 1].index || 0; this.xp = data.profile?.xp || 0; this.level = - Pit.calcLevel( + this.calcLevel( this.prestige, 0 < this.prestige ? this.xp - Constants.pit.Prestiges[this.prestige - 1].SumXp : this.xp ) ?? 0; @@ -74,7 +74,6 @@ class Pit { this.getInventory = async (): Promise => { let inventory = data.profile.inv_contents; if (!inventory) return []; - try { inventory = await decode(inventory.data); const edited = []; @@ -92,7 +91,6 @@ class Pit { this.getEnterChest = async () => { let chest = data.profile.inv_enderchest; if (!chest) return []; - try { chest = await decode(chest.data); const edited = []; @@ -120,7 +118,7 @@ class Pit { }; } // Credit https://github.com/PitPanda/PitPandaProduction/blob/b1971f56ea1aa8c829b722cbb33247c96591c0cb/structures/Pit.js - static calcLevel(prestige: number, xp: number): number { + private calcLevel(prestige: number, xp: number): number { const multiplier = Constants.pit.Prestiges[prestige].Multiplier; let level = 0; while (0 < xp && 120 > level) { diff --git a/src/structures/MiniGames/SkyWars.ts b/src/structures/MiniGames/SkyWars.ts index 81bf9e2b..271dcadc 100644 --- a/src/structures/MiniGames/SkyWars.ts +++ b/src/structures/MiniGames/SkyWars.ts @@ -45,13 +45,7 @@ function getSkyWarsLevelProgress(xp: number) { xpToNextLevel = 10000 - currentLevelXp; percent = Math.round(currentLevelXp) / 100; const percentRemaining = Math.round((100 - percent) * 100) / 100; - return { - currentLevelXp, - xpToNextLevel, - percent, - xpNextLevel: 10000, - percentRemaining - }; + return { currentLevelXp, xpToNextLevel, percent, xpNextLevel: 10000, percentRemaining }; } const totalXptoNextLevel = xpToNextLvl[totalXp.findIndex((x) => 0 < x * 10 - xp)] * 10; for (let i = 0; i < xpToNextLvl.length; i++) { @@ -60,12 +54,7 @@ function getSkyWarsLevelProgress(xp: number) { } xpToNextLevel = totalXptoNextLevel - currentLevelXp; percent = Math.round((currentLevelXp / totalXptoNextLevel) * 10000) / 100; - return { - currentLevelXp, - xpToNextLevel, - percent, - xpNextLevel: totalXptoNextLevel - }; + return { currentLevelXp, xpToNextLevel, percent, xpNextLevel: totalXptoNextLevel }; } class SkywarsMode { @@ -84,6 +73,7 @@ class SkywarsMode { this.WLRatio = divide(data.wins, data.losses); } } + class SkywarsModeStats { activeKit: string; killstreak: number; @@ -157,18 +147,17 @@ class SkywarsKits { constructor(kits: Record) { this.kits = kits.map((kit: any) => new SkywarsKit(kit)).filter((kit: SkywarsKit) => kit.isKit); } - get(gameMode: string = '', type: string = ''): SkywarsKit[] { return this.kits.filter((kit) => kit.gameMode.startsWith(gameMode) && kit.kitType.startsWith(type)); } } + class SkywarsPackages { rawPackages: Record; cages: any; kits: SkywarsKits; achievements: any; constructor(data: Record) { - // TODO : a lot more this.rawPackages = data; this.cages = this.parseCages(); this.kits = new SkywarsKits(data); @@ -185,6 +174,7 @@ class SkywarsPackages { .map((x: string[]) => x[1].replace(/-[a-z]/g, (x) => x[1].toUpperCase())); } } + class SkyWars { coins: number; souls: number; diff --git a/src/structures/MiniGames/TNTGames.ts b/src/structures/MiniGames/TNTGames.ts index 14902dc3..8c59272f 100644 --- a/src/structures/MiniGames/TNTGames.ts +++ b/src/structures/MiniGames/TNTGames.ts @@ -18,6 +18,7 @@ class TNTRun { this.prefix = data.prefix_tntrun || ''; } } + class PVPRun { wins: number; bestTime: number; @@ -42,6 +43,7 @@ class PVPRun { this.prefix = data.prefix_pvprun || ''; } } + class BowSpleef { wins: number; tags: number; @@ -76,6 +78,7 @@ class TNTTag { this.prefix = data.prefix_tntag || ''; } } + class TNTWizards { wins: number; kills: number; diff --git a/src/structures/MiniGames/UHC.ts b/src/structures/MiniGames/UHC.ts index 738ec147..c0d41f8f 100644 --- a/src/structures/MiniGames/UHC.ts +++ b/src/structures/MiniGames/UHC.ts @@ -1,7 +1,7 @@ import divide from '../../utils/divide'; -function getStarLevel(kills: number, wins: number) { - const sum = Number(kills) + wins * 10; +function getStarLevel(kills: number, wins: number): number { + const sum = kills + wins * 10; let starLevel = 1; const sums = [0, 1, 6, 21, 46, 96, 171, 271, 521, 1021, 1321, 1621, 1921, 2221, 2521, Infinity]; starLevel += sums.map((x) => x * 10 - sum).findIndex((x) => 0 < x) - 1; @@ -108,4 +108,5 @@ class UHC { this.starLevel = getStarLevel(this.kills, this.wins); } } + export default UHC; diff --git a/src/structures/MiniGames/WoolWars.ts b/src/structures/MiniGames/WoolWars.ts index 477a5484..0074e54b 100644 --- a/src/structures/MiniGames/WoolWars.ts +++ b/src/structures/MiniGames/WoolWars.ts @@ -12,6 +12,7 @@ export interface WoolWarsStats { assists: number; powerups: number; } + export interface WoolWarsPrivateGamesConfig { one_hit_one_kil: boolean; rainbow_wool: 'Enabled' | 'Disabled'; diff --git a/src/structures/Pet.ts b/src/structures/Pet.ts index 32abf6e2..ac5de18b 100644 --- a/src/structures/Pet.ts +++ b/src/structures/Pet.ts @@ -16,7 +16,6 @@ class Pet { rawNickname: string | null; nickname: string | null; experience: number; - constructor(name: string, data: Record) { this.isFavorite = data.vanityFavorites ? Boolean(data.vanityFavorites.includes(name.toUpperCase())) : false; name = name.replace('pet_', ''); diff --git a/src/structures/Player.ts b/src/structures/Player.ts index 5a25adab..f0ab972e 100644 --- a/src/structures/Player.ts +++ b/src/structures/Player.ts @@ -23,9 +23,9 @@ import Walls from './MiniGames/Walls'; import Duels from './MiniGames/Duels'; import UHC from './MiniGames/UHC'; import Pit from './MiniGames/Pit'; +import Guild from './Guild/Guild'; import Color from './Color'; import Game from './Game'; -import Guild from './Guild/Guild'; export interface LevelProgress { xpToNext: number; @@ -88,7 +88,6 @@ class Player { claimedLevelingRewards: number[]; globalCosmetics: PlayerCosmetics | null; ranksPurchaseTime: RanksPurchaseTime; - constructor(data: Record, guild?: Guild) { this.nickname = data.displayname; this.uuid = data.uuid; diff --git a/src/structures/PlayerCosmetics.ts b/src/structures/PlayerCosmetics.ts index 2e4614e7..fd9a7dd2 100644 --- a/src/structures/PlayerCosmetics.ts +++ b/src/structures/PlayerCosmetics.ts @@ -124,4 +124,5 @@ class PlayerCosmetics { return this._clickfx; } } + export default PlayerCosmetics; diff --git a/src/structures/RecentGame.ts b/src/structures/RecentGame.ts index 9305aadb..d4e8f8b7 100644 --- a/src/structures/RecentGame.ts +++ b/src/structures/RecentGame.ts @@ -8,7 +8,6 @@ class RecentGame extends Game { ongoing: boolean; endedAt: Date | null; endedTimestamp: number | null; - constructor(data: Record) { super(data.gameType); this.dateTimestamp = data.date || null; @@ -19,6 +18,7 @@ class RecentGame extends Game { this.endedAt = data.ended ? new Date(data.ended) : null; this.endedTimestamp = data.ended ? data.ended : null; } + toString(): any { return this.mode; } diff --git a/src/structures/ServerInfo.ts b/src/structures/ServerInfo.ts index 34cd2dc7..0c337db4 100644 --- a/src/structures/ServerInfo.ts +++ b/src/structures/ServerInfo.ts @@ -15,7 +15,6 @@ class ServerInfo { faviconB64: string; favicon: Buffer; ping: number; - constructor(data: Record, ping: string | number) { this.protocolUsed = data.version.protocol || 736; this.versionInfo = data.version.name || 'Unknown'; @@ -32,6 +31,7 @@ class ServerInfo { this.favicon = Buffer.from(this.faviconB64, 'base64'); this.ping = parseInt(String(ping), 10); } + toString(): string { return `${this.textMOTD} - ${this.players} Players (${this.ping} ms) - ${this.versionInfo}`; } diff --git a/src/structures/SkyBlock/News/SkyblockNews.ts b/src/structures/SkyBlock/News/SkyblockNews.ts index 425cb231..fc4d41fd 100644 --- a/src/structures/SkyBlock/News/SkyblockNews.ts +++ b/src/structures/SkyBlock/News/SkyblockNews.ts @@ -12,6 +12,7 @@ function parseVer(stringVer: string): string | null { if (!matches?.length) return null; return matches[0]; } + class SkyblockNews { title: string; link: string; diff --git a/src/structures/SkyBlock/SkyblockGarden.ts b/src/structures/SkyBlock/SkyblockGarden.ts index 01140d85..4ecc63e8 100644 --- a/src/structures/SkyBlock/SkyblockGarden.ts +++ b/src/structures/SkyBlock/SkyblockGarden.ts @@ -4,6 +4,7 @@ export interface SkyblockGardenVisitorServed { total: number; unique: number; } + export interface SkyblockGardenVisitor { visited: Record; completed: Record; diff --git a/src/structures/SkyBlock/SkyblockInventoryItem.ts b/src/structures/SkyBlock/SkyblockInventoryItem.ts index 073328ef..26c02740 100644 --- a/src/structures/SkyBlock/SkyblockInventoryItem.ts +++ b/src/structures/SkyBlock/SkyblockInventoryItem.ts @@ -50,10 +50,7 @@ class SkyblockInventoryItem { this.enchantments = data.tag.ExtraAttributes.enchantments ?? null; this.reforge = data.tag.ExtraAttributes.modifier ?? null; this.gemstones = Object.entries(data.tag.ExtraAttributes.gems).map((gem) => { - return { - type: gem[0].split('_')[0], - quality: gem[1] as SkyblockGemstoneQuality - }; + return { type: gem[0].split('_')[0], quality: gem[1] as SkyblockGemstoneQuality }; }); this.damage = data.Damage || 0; this.rarity = parseRarity(this.loreArray[this.loreArray.length - 1]); diff --git a/src/structures/SkyBlock/SkyblockMember.ts b/src/structures/SkyBlock/SkyblockMember.ts index 18947954..93d64655 100644 --- a/src/structures/SkyBlock/SkyblockMember.ts +++ b/src/structures/SkyBlock/SkyblockMember.ts @@ -22,9 +22,9 @@ import { import { getNetworth, NetworthResult } from 'skyhelper-networth'; import SkyblockInventoryItem from './SkyblockInventoryItem'; import Constants from '../../utils/Constants'; -import SkyblockPet from './SkyblockPet'; import SkyblockGarden from './SkyblockGarden'; import SkyblockMuseum from './SkyblockMuseum'; +import SkyblockPet from './SkyblockPet'; export interface SkyblockMemberEquipment { gauntlet: SkyblockInventoryItem | null; @@ -67,7 +67,6 @@ class SkyblockMember { pets: SkyblockPet[]; jacob: SkyblockMemberJacobData; chocolate: SkyblockMemberChocolateFactoryData; - getArmor: () => Promise; getWardrobe: () => Promise; getEnderChest: () => Promise; @@ -126,7 +125,6 @@ class SkyblockMember { this.getEnderChest = async () => { let chest = data.m.inventory.ender_chest_contents; if (!chest) return []; - try { chest = await decode(chest.data); const edited = []; @@ -144,7 +142,6 @@ class SkyblockMember { this.getInventory = async () => { let inventory = data.m.inventory.inv_contents; if (!inventory) return []; - try { inventory = await decode(inventory.data); const edited = []; @@ -169,21 +166,17 @@ class SkyblockMember { highestRarity[pet.type] = (Constants.petScore as { [key: number]: number })[pet.tier]; } } - const highestLevel: { [key: string]: any } = {}; for (const pet of data.m.pets_data.pets) { const maxLevel = 'GOLDEN_DRAGON' === pet.type ? 200 : 100; const petLevel = getPetLevel(pet.exp, pet.tier, maxLevel); - if (!(pet.type in highestLevel) || petLevel.level > highestLevel[pet.type]) { if (petLevel.level < maxLevel) { continue; } - highestLevel[pet.type] = 1; } } - return ( Object.values(highestRarity).reduce((a, b) => a + b, 0) + Object.values(highestLevel).reduce((a, b) => a + b, 0) ); @@ -191,14 +184,8 @@ class SkyblockMember { this.getEquipment = async () => { let equipment = data.m.inventory.equipment_contents; if (!equipment) { - return { - gauntlet: null, - belt: null, - cloak: null, - necklace: null - }; + return { gauntlet: null, belt: null, cloak: null, necklace: null }; } - try { equipment = await decode(equipment.data); const playerEquipment = { @@ -209,18 +196,12 @@ class SkyblockMember { }; return playerEquipment; } catch { - return { - gauntlet: null, - belt: null, - cloak: null, - necklace: null - }; + return { gauntlet: null, belt: null, cloak: null, necklace: null }; } }; this.getPersonalVault = async () => { let vault = data.m.inventory.personal_vault_contents; if (!vault) return []; - try { vault = await decode(vault.data); const edited = []; diff --git a/src/structures/SkyBlock/SkyblockMuseumItem.ts b/src/structures/SkyBlock/SkyblockMuseumItem.ts index e97f43ae..50ff93b9 100644 --- a/src/structures/SkyBlock/SkyblockMuseumItem.ts +++ b/src/structures/SkyBlock/SkyblockMuseumItem.ts @@ -1,7 +1,7 @@ import SkyblockInventoryItem from './SkyblockInventoryItem'; class SkyblockMuseumItem { - name: string | null; + name: string; items: SkyblockInventoryItem[]; donatedTime: number; donatedTimeAt: Date; @@ -20,7 +20,7 @@ class SkyblockMuseumItem { this.featuredSlot = data.featuredSlot; } - toString(): string | null { + toString(): string { return this.name; } } diff --git a/src/structures/SkyBlock/SkyblockPet.ts b/src/structures/SkyBlock/SkyblockPet.ts index 0206eba2..a9ac8309 100644 --- a/src/structures/SkyBlock/SkyblockPet.ts +++ b/src/structures/SkyBlock/SkyblockPet.ts @@ -23,4 +23,5 @@ class SkyblockPet { this.skin = data.skin; } } + export default SkyblockPet; diff --git a/src/structures/Static/Achievement.ts b/src/structures/Static/Achievement.ts index 8e0f9673..94f1bd34 100644 --- a/src/structures/Static/Achievement.ts +++ b/src/structures/Static/Achievement.ts @@ -35,12 +35,12 @@ class Achievement { globalPercentage: parseFloat(data.globalPercentUnlocked) * 100 || 0 }; this.tierInformation = 'TIERED' === this.type ? new AchievementTier(data.tiers) : null; - const { totalPoints = 0, totalAmount = 0 }: { totalPoints: number; totalAmount: number } = 'TIERED' === this.type ? collectAll(this.tierInformation) : { totalPoints: 0, totalAmount: 0 }; this.points = 'ONE_TIME' === this.type ? parseInt(data.points, 10) : totalPoints; this.totalAmountRequired = 'TIERED' === this.type ? totalAmount : null; } + toString(): string { return this.codeName; } diff --git a/src/structures/Static/AchievementTier.ts b/src/structures/Static/AchievementTier.ts index 103284bd..3f9fef2b 100644 --- a/src/structures/Static/AchievementTier.ts +++ b/src/structures/Static/AchievementTier.ts @@ -11,10 +11,7 @@ class AchievementTier { getTier(tier: number): Record<'pointsRewarded' | 'amountRequired', number> { const index = tier - 1; const info = this.tierInfo[index]; - return { - pointsRewarded: parseInt(info.points, 10) || 0, - amountRequired: parseInt(info.amount, 10) || 0 - }; + return { pointsRewarded: parseInt(info.points, 10) || 0, amountRequired: parseInt(info.amount, 10) || 0 }; } } diff --git a/src/structures/Static/GameChallenges.ts b/src/structures/Static/GameChallenges.ts index f4e03cd3..0a512af1 100644 --- a/src/structures/Static/GameChallenges.ts +++ b/src/structures/Static/GameChallenges.ts @@ -13,7 +13,6 @@ class GameChallenges { constructor(name: StaticGameNames, data: Record) { this.category = name; this.challenges = new Map(); - data.forEach((challenge: any) => { const content = { id: challenge.id, diff --git a/src/structures/Static/Quest.ts b/src/structures/Static/Quest.ts index b4cb0299..ce229ac0 100644 --- a/src/structures/Static/Quest.ts +++ b/src/structures/Static/Quest.ts @@ -28,6 +28,7 @@ class Quest { })); this.rewards = data.rewards || []; } + toString(): string { return this.questName; } diff --git a/src/structures/Status.ts b/src/structures/Status.ts index 5f7b494b..66ad2aae 100644 --- a/src/structures/Status.ts +++ b/src/structures/Status.ts @@ -11,6 +11,7 @@ class Status { this.mode = data.mode ?? null; this.map = data.map ?? null; } + toString(): string { return this.online ? 'Online' : 'Offline'; } diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts index d6c53754..7720a13e 100644 --- a/src/typings/index.d.ts +++ b/src/typings/index.d.ts @@ -58,16 +58,12 @@ export type StaticGameNames = declare module 'hypixel-api-reborn' { class Client { readonly key: string; - declare requests: Requests; declare cacheHandler: CacheHandler; declare updater: Updater; declare errors: Errors; - declare options: ClientOptions; - constructor(key: string, options?: ClientOptions); - getAchievements(options?: RequestOptions): Promise; getActiveHouses(options?: RequestOptions): Promise; getBoosters(options?: RequestOptions): Promise; diff --git a/src/utils/Constants.ts b/src/utils/Constants.ts index aa658a40..ec44a500 100644 --- a/src/utils/Constants.ts +++ b/src/utils/Constants.ts @@ -170,18 +170,7 @@ export default { 50: 1.1625e8, 55: 1e9 }, - hotmXp: { - 1: 0, - 2: 3000, - 3: 9000, - 4: 25000, - 5: 60000, - 6: 100000, - 7: 150000, - 8: 210000, - 9: 290000, - 10: 400000 - }, + hotmXp: { 1: 0, 2: 3000, 3: 9000, 4: 25000, 5: 60000, 6: 100000, 7: 150000, 8: 210000, 9: 290000, 10: 400000 }, socialXp: { 1: 50, 2: 100, @@ -706,23 +695,8 @@ export default { 45: 9000000, 46: 9000000 }, - petScore: { - COMMON: 1, - UNCOMMON: 2, - RARE: 3, - EPIC: 4, - LEGENDARY: 5, - MYTHIC: 6, - VERY_SPECIAL: 6 - }, - petRarityOffset: { - COMMON: 0, - UNCOMMON: 6, - RARE: 11, - EPIC: 16, - LEGENDARY: 20, - MYTHIC: 20 - }, + petScore: { COMMON: 1, UNCOMMON: 2, RARE: 3, EPIC: 4, LEGENDARY: 5, MYTHIC: 6, VERY_SPECIAL: 6 }, + petRarityOffset: { COMMON: 0, UNCOMMON: 6, RARE: 11, EPIC: 16, LEGENDARY: 20, MYTHIC: 20 }, petLevels: [ 100, 110, 120, 130, 145, 160, 175, 190, 210, 230, 250, 275, 300, 330, 360, 400, 440, 490, 540, 600, 660, 730, 800, 880, 960, 1050, 1150, 1260, 1380, 1510, 1650, 1800, 1960, 2130, 2310, 2500, 2700, 2920, 3160, 3420, 3700, 4000, @@ -802,8 +776,7 @@ export default { WOOL_GAMES: 'Wool Wars' }, SkyWarsPrestigeIcons: { - /* eslint-disable camelcase */ - default: '⋆', + /* eslint-disable camelcase */ default: '⋆', angel_1: '★', angel_2: '☆', angel_3: '⁕', @@ -866,24 +839,14 @@ export default { { name: 'Tournament Lobby', code: 'TOURNAMENT_LOBBY', id: -5 }, { name: 'Idle', code: 'IDLE', id: -6 } ], - - /* eslint-disable camelcase */ - bestiary: { + /* eslint-disable camelcase */ bestiary: { dynamic: { name: 'Private Island', - mobs: [ - { - name: 'Creeper', - cap: 200, - - mobs: ['creeper_1'], - bracket: 1 - }, + { name: 'Creeper', cap: 200, mobs: ['creeper_1'], bracket: 1 }, { name: 'Enderman', cap: 200, - mobs: [ 'enderman_1', 'enderman_2', @@ -906,7 +869,6 @@ export default { { name: 'Skeleton', cap: 200, - mobs: [ 'skeleton_1', 'skeleton_2', @@ -929,7 +891,6 @@ export default { { name: 'Slime', cap: 200, - mobs: [ 'slime_1', 'slime_2', @@ -952,7 +913,6 @@ export default { { name: 'Spider', cap: 200, - mobs: [ 'spider_1', 'spider_2', @@ -975,7 +935,6 @@ export default { { name: 'Witch', cap: 200, - mobs: [ 'witch_1', 'witch_2', @@ -998,7 +957,6 @@ export default { { name: 'Zombie', cap: 200, - mobs: [ 'zombie_1', 'zombie_2', @@ -1022,157 +980,44 @@ export default { }, hub: { name: 'Hub', - mobs: [ - { - name: 'Crypt Ghoul', - cap: 40000, - - mobs: ['unburried_zombie_30'], - bracket: 1 - }, - { - name: 'Golden Ghoul', - cap: 4000, - - mobs: ['unburried_zombie_60'], - bracket: 3 - }, - { - name: 'Graveyard Zombie', - cap: 200, - - mobs: ['graveyard_zombie_1'], - bracket: 1 - }, - { - name: 'Old Wolf', - cap: 4000, - - mobs: ['old_wolf_50'], - bracket: 3 - }, - { - name: 'Wolf', - cap: 40000, - - mobs: ['ruin_wolf_15'], - bracket: 1 - }, - { - name: 'Zombie Villager', - cap: 1000, - - mobs: ['zombie_villager_1'], - bracket: 4 - } + { name: 'Crypt Ghoul', cap: 40000, mobs: ['unburried_zombie_30'], bracket: 1 }, + { name: 'Golden Ghoul', cap: 4000, mobs: ['unburried_zombie_60'], bracket: 3 }, + { name: 'Graveyard Zombie', cap: 200, mobs: ['graveyard_zombie_1'], bracket: 1 }, + { name: 'Old Wolf', cap: 4000, mobs: ['old_wolf_50'], bracket: 3 }, + { name: 'Wolf', cap: 40000, mobs: ['ruin_wolf_15'], bracket: 1 }, + { name: 'Zombie Villager', cap: 1000, mobs: ['zombie_villager_1'], bracket: 4 } ] }, farming_1: { name: 'The Farming Islands', - mobs: [ - { - name: 'Chicken', - cap: 200, - - mobs: ['farming_chicken_1'], - bracket: 1 - }, - { - name: 'Cow', - cap: 200, - - mobs: ['farming_cow_1'], - bracket: 1 - }, - { - name: 'Mushroom Cow', - cap: 200, - - mobs: ['mushroom_cow_1'], - bracket: 1 - }, - { - name: 'Pig', - cap: 200, - - mobs: ['farming_pig_1'], - bracket: 1 - }, - { - name: 'Rabbit', - cap: 200, - - mobs: ['farming_rabbit_1'], - bracket: 1 - }, - { - name: 'Sheep', - cap: 200, - - mobs: ['farming_sheep_1'], - bracket: 1 - } + { name: 'Chicken', cap: 200, mobs: ['farming_chicken_1'], bracket: 1 }, + { name: 'Cow', cap: 200, mobs: ['farming_cow_1'], bracket: 1 }, + { name: 'Mushroom Cow', cap: 200, mobs: ['mushroom_cow_1'], bracket: 1 }, + { name: 'Pig', cap: 200, mobs: ['farming_pig_1'], bracket: 1 }, + { name: 'Rabbit', cap: 200, mobs: ['farming_rabbit_1'], bracket: 1 }, + { name: 'Sheep', cap: 200, mobs: ['farming_sheep_1'], bracket: 1 } ] }, combat_1: { name: 'Spiders Den', - mobs: [ - { - name: 'Arachne', - cap: 500, - - mobs: ['arachne_500', 'arachne_300'], - bracket: 7 - }, - { - name: "Arachne's Brood", - cap: 1000, - - mobs: ['arachne_brood_200', 'arachne_brood_100'], - bracket: 4 - }, - { - name: "Arachne's Keeper", - cap: 400, - - mobs: ['arachne_keeper_100'], - bracket: 5 - }, - { - name: 'Brood Mother', - cap: 400, - - mobs: ['brood_mother_spider_12'], - bracket: 5 - }, + { name: 'Arachne', cap: 500, mobs: ['arachne_500', 'arachne_300'], bracket: 7 }, + { name: "Arachne's Brood", cap: 1000, mobs: ['arachne_brood_200', 'arachne_brood_100'], bracket: 4 }, + { name: "Arachne's Keeper", cap: 400, mobs: ['arachne_keeper_100'], bracket: 5 }, + { name: 'Brood Mother', cap: 400, mobs: ['brood_mother_spider_12'], bracket: 5 }, { name: 'Dasher Spider', cap: 10000, - mobs: ['dasher_spider_50', 'dasher_spider_45', 'dasher_spider_42', 'dasher_spider_4', 'dasher_spider_6'], bracket: 2 }, - { - name: 'Gravel Skeleton', - cap: 4000, - - mobs: ['respawning_skeleton_2'], - bracket: 3 - }, - { - name: 'Rain Slime', - cap: 1000, - - mobs: ['random_slime_8', 'random_slime_20'], - bracket: 4 - }, + { name: 'Gravel Skeleton', cap: 4000, mobs: ['respawning_skeleton_2'], bracket: 3 }, + { name: 'Rain Slime', cap: 1000, mobs: ['random_slime_8', 'random_slime_20'], bracket: 4 }, { name: 'Silverfish', cap: 40000, - mobs: [ 'jockey_shot_silverfish_3', 'splitter_spider_silverfish_2', @@ -1186,14 +1031,12 @@ export default { { name: 'Spider Jockey', cap: 10000, - mobs: ['spider_jockey_3', 'spider_jockey_42', 'spider_jockey_5'], bracket: 2 }, { name: 'Splitter Spider', cap: 10000, - mobs: [ 'splitter_spider_2', 'splitter_spider_45', @@ -1207,14 +1050,12 @@ export default { { name: 'Voracious Spider', cap: 40000, - mobs: ['voracious_spider_50', 'voracious_spider_42', 'voracious_spider_45', 'voracious_spider_10'], bracket: 1 }, { name: 'Weaver Spider', cap: 10000, - mobs: [ 'weaver_spider_3', 'weaver_spider_4', @@ -1230,12 +1071,10 @@ export default { }, combat_3: { name: 'The End', - mobs: [ { name: 'Dragon', cap: 1000, - mobs: [ 'protector_dragon_100', 'old_dragon_100', @@ -1247,266 +1086,68 @@ export default { ], bracket: 5 }, - { - name: 'Enderman', - cap: 25000, - - mobs: ['enderman_50', 'enderman_45', 'enderman_42'], - bracket: 4 - }, - { - name: 'Endermite', - cap: 10000, - - mobs: ['nest_endermite_50', 'endermite_37', 'endermite_40'], - bracket: 5 - }, - { - name: 'Endstone Protector', - cap: 500, - - mobs: ['corrupted_protector_100'], - bracket: 7 - }, - { - name: 'Obsidian Defender', - cap: 25000, - - mobs: ['obsidian_wither_55'], - bracket: 4 - }, - { - name: 'Voidling Extremist', - cap: 4000, - - mobs: ['voidling_extremist_100'], - bracket: 3 - }, - { - name: 'Voidling Fanatic', - cap: 25000, - - mobs: ['voidling_fanatic_85'], - bracket: 4 - }, - { - name: 'Watcher', - cap: 25000, - - mobs: ['watcher_55'], - bracket: 4 - }, - { - name: 'Zealot', - cap: 100000, - - mobs: ['zealot_bruiser_100', 'zealot_enderman_55'], - bracket: 3 - } + { name: 'Enderman', cap: 25000, mobs: ['enderman_50', 'enderman_45', 'enderman_42'], bracket: 4 }, + { name: 'Endermite', cap: 10000, mobs: ['nest_endermite_50', 'endermite_37', 'endermite_40'], bracket: 5 }, + { name: 'Endstone Protector', cap: 500, mobs: ['corrupted_protector_100'], bracket: 7 }, + { name: 'Obsidian Defender', cap: 25000, mobs: ['obsidian_wither_55'], bracket: 4 }, + { name: 'Voidling Extremist', cap: 4000, mobs: ['voidling_extremist_100'], bracket: 3 }, + { name: 'Voidling Fanatic', cap: 25000, mobs: ['voidling_fanatic_85'], bracket: 4 }, + { name: 'Watcher', cap: 25000, mobs: ['watcher_55'], bracket: 4 }, + { name: 'Zealot', cap: 100000, mobs: ['zealot_bruiser_100', 'zealot_enderman_55'], bracket: 3 } ] }, crimson_isle: { name: 'Crimson Isle', - mobs: [ - { - name: 'Ashfang', - cap: 1000, - - mobs: ['ashfang_200'], - bracket: 5 - }, - { - name: 'Barbarian Duke X', - cap: 1000, - - mobs: ['barbarian_duke_x_200'], - bracket: 5 - }, - { - name: 'Bladesoul', - cap: 1000, - - mobs: ['bladesoul_200'], - bracket: 5 - }, - { - name: 'Blaze', - cap: 3000, - - mobs: ['blaze_25', 'blaze_70', 'bezal_80', 'mutated_blaze_70'], - bracket: 4 - }, - { - name: 'Smoldering Blaze', - cap: 25000, - - mobs: ['smoldering_blaze_95'], - bracket: 2 - }, - { - name: 'Millenia-Aged Blaze', - cap: 4000, - - mobs: ['old_blaze_110'], - bracket: 3 - }, - { - name: 'Flaming Spider', - cap: 10000, - - mobs: ['flaming_spider_80'], - bracket: 3 - }, - { - name: 'Flare', - cap: 100000, - - mobs: ['flare_90'], - bracket: 1 - }, - { - name: 'Ghast', - cap: 1000, - - mobs: ['ghast_85', 'dive_ghast_90'], - bracket: 4 - }, - { - name: 'Mage Outlaw', - cap: 1000, - - mobs: ['mage_outlaw_200'], - bracket: 5 - }, + { name: 'Ashfang', cap: 1000, mobs: ['ashfang_200'], bracket: 5 }, + { name: 'Barbarian Duke X', cap: 1000, mobs: ['barbarian_duke_x_200'], bracket: 5 }, + { name: 'Bladesoul', cap: 1000, mobs: ['bladesoul_200'], bracket: 5 }, + { name: 'Blaze', cap: 3000, mobs: ['blaze_25', 'blaze_70', 'bezal_80', 'mutated_blaze_70'], bracket: 4 }, + { name: 'Smoldering Blaze', cap: 25000, mobs: ['smoldering_blaze_95'], bracket: 2 }, + { name: 'Millenia-Aged Blaze', cap: 4000, mobs: ['old_blaze_110'], bracket: 3 }, + { name: 'Flaming Spider', cap: 10000, mobs: ['flaming_spider_80'], bracket: 3 }, + { name: 'Flare', cap: 100000, mobs: ['flare_90'], bracket: 1 }, + { name: 'Ghast', cap: 1000, mobs: ['ghast_85', 'dive_ghast_90'], bracket: 4 }, + { name: 'Mage Outlaw', cap: 1000, mobs: ['mage_outlaw_200'], bracket: 5 }, { name: 'Magma Cube', cap: 10000, - mobs: ['pack_magma_cube_90', 'magma_cube_75', 'fireball_magma_cube_75'], bracket: 3 }, - { - name: 'Magma Boss', - cap: 1000, - - mobs: ['magma_boss_500'], - bracket: 5 - }, - { - name: 'Matcho', - cap: 400, - - mobs: ['matcho_100'], - bracket: 5 - }, - { - name: 'Mushroom Bull', - cap: 10000, - - mobs: ['charging_mushroom_cow_80'], - bracket: 3 - }, - { - name: 'Pigman', - cap: 10000, - - mobs: ['kada_knight_90', 'magma_cube_rider_90', 'pigman_12'], - bracket: 3 - }, - { - name: 'Wither Skeleton', - cap: 10000, - - mobs: ['wither_skeleton_70'], - bracket: 3 - }, - { - name: 'Wither Spectre', - cap: 10000, - - mobs: ['wither_spectre_70'], - bracket: 3 - }, - { - name: 'Tentacle', - cap: 1000, - - mobs: ['hellwisp_100'], - bracket: 5 - }, - { - name: 'Vanquisher', - cap: 1000, - - mobs: ['vanquisher_100'], - bracket: 5 - } + { name: 'Magma Boss', cap: 1000, mobs: ['magma_boss_500'], bracket: 5 }, + { name: 'Matcho', cap: 400, mobs: ['matcho_100'], bracket: 5 }, + { name: 'Mushroom Bull', cap: 10000, mobs: ['charging_mushroom_cow_80'], bracket: 3 }, + { name: 'Pigman', cap: 10000, mobs: ['kada_knight_90', 'magma_cube_rider_90', 'pigman_12'], bracket: 3 }, + { name: 'Wither Skeleton', cap: 10000, mobs: ['wither_skeleton_70'], bracket: 3 }, + { name: 'Wither Spectre', cap: 10000, mobs: ['wither_spectre_70'], bracket: 3 }, + { name: 'Tentacle', cap: 1000, mobs: ['hellwisp_100'], bracket: 5 }, + { name: 'Vanquisher', cap: 1000, mobs: ['vanquisher_100'], bracket: 5 } ] }, mining_2: { name: 'Deep Caverns', - mobs: [ { name: 'Emerald Slime', cap: 3000, - mobs: ['emerald_slime_5', 'emerald_slime_10', 'emerald_slime_15'], bracket: 1 }, - { - name: 'Miner Skeleton', - cap: 3000, - - mobs: ['diamond_skeleton_15', 'diamond_skeleton_20'], - bracket: 1 - }, - { - name: 'Miner Zombie', - cap: 3000, - - mobs: ['diamond_zombie_15', 'diamond_zombie_20'], - bracket: 1 - }, - { - name: 'Redstone Pigman', - cap: 3000, - - mobs: ['redstone_pigman_10'], - bracket: 1 - }, - { - name: 'Sneaky Creeper', - cap: 300, - - mobs: ['invisible_creeper_3'], - bracket: 3 - }, - { - name: 'Lapis Zombie', - cap: 3000, - - mobs: ['lapis_zombie_7'], - bracket: 1 - } + { name: 'Miner Skeleton', cap: 3000, mobs: ['diamond_skeleton_15', 'diamond_skeleton_20'], bracket: 1 }, + { name: 'Miner Zombie', cap: 3000, mobs: ['diamond_zombie_15', 'diamond_zombie_20'], bracket: 1 }, + { name: 'Redstone Pigman', cap: 3000, mobs: ['redstone_pigman_10'], bracket: 1 }, + { name: 'Sneaky Creeper', cap: 300, mobs: ['invisible_creeper_3'], bracket: 3 }, + { name: 'Lapis Zombie', cap: 3000, mobs: ['lapis_zombie_7'], bracket: 1 } ] }, mining_3: { name: 'Dwarven Mines', - mobs: [ - { - name: 'Ghost', - cap: 250000, - - mobs: ['caverns_ghost_250'], - bracket: 2 - }, + { name: 'Ghost', cap: 250000, mobs: ['caverns_ghost_250'], bracket: 2 }, { name: 'Goblin', cap: 25000, - mobs: [ 'goblin_weakling_melee_25', 'goblin_weakling_melee_40', @@ -1524,7 +1165,6 @@ export default { { name: 'Goblin Raiders', cap: 1000, - mobs: [ 'goblin_weakling_melee_5', 'goblin_weakling_bow_5', @@ -1536,93 +1176,25 @@ export default { ], bracket: 4 }, - { - name: 'Golden Goblin', - cap: 400, - - mobs: ['goblin_50'], - bracket: 5 - }, - { - name: 'Ice Walker', - cap: 10000, - - mobs: ['ice_walker_45'], - bracket: 2 - }, - { - name: 'Powder Ghast', - cap: 200, - - mobs: ['powder_ghast_1'], - bracket: 1 - }, - { - name: 'Star Sentry', - cap: 1000, - - mobs: ['crystal_sentry_50'], - bracket: 4 - }, - { - name: 'Treasure Hoarder', - cap: 3000, - - mobs: ['treasure_hoarder_70'], - bracket: 3 - } + { name: 'Golden Goblin', cap: 400, mobs: ['goblin_50'], bracket: 5 }, + { name: 'Ice Walker', cap: 10000, mobs: ['ice_walker_45'], bracket: 2 }, + { name: 'Powder Ghast', cap: 200, mobs: ['powder_ghast_1'], bracket: 1 }, + { name: 'Star Sentry', cap: 1000, mobs: ['crystal_sentry_50'], bracket: 4 }, + { name: 'Treasure Hoarder', cap: 3000, mobs: ['treasure_hoarder_70'], bracket: 3 } ] }, crystal_hollows: { name: 'Crystal Hollows', - mobs: [ - { - name: 'Thyst', - cap: 4000, - - mobs: ['thyst_20'], - bracket: 3 - }, - { - name: 'Worm', - cap: 400, - - mobs: ['worm_5', 'scatha_10'], - bracket: 5 - }, - { - name: 'Yog', - cap: 4000, - - mobs: ['yog_100'], - bracket: 3 - }, - { - name: 'Sludge', - cap: 10000, - - mobs: ['sludge_5', 'sludge_10', 'sludge_100'], - bracket: 2 - }, - { - name: 'Automaton', - cap: 10000, - - mobs: ['automaton_100', 'automaton_150'], - bracket: 2 - }, - { - name: 'Butterfly', - cap: 1000, - - mobs: ['butterfly_100'], - bracket: 4 - }, + { name: 'Thyst', cap: 4000, mobs: ['thyst_20'], bracket: 3 }, + { name: 'Worm', cap: 400, mobs: ['worm_5', 'scatha_10'], bracket: 5 }, + { name: 'Yog', cap: 4000, mobs: ['yog_100'], bracket: 3 }, + { name: 'Sludge', cap: 10000, mobs: ['sludge_5', 'sludge_10', 'sludge_100'], bracket: 2 }, + { name: 'Automaton', cap: 10000, mobs: ['automaton_100', 'automaton_150'], bracket: 2 }, + { name: 'Butterfly', cap: 1000, mobs: ['butterfly_100'], bracket: 4 }, { name: 'Grunt', cap: 4000, - mobs: [ 'team_treasurite_grunt_50', 'team_treasurite_viper_100', @@ -1632,147 +1204,46 @@ export default { ], bracket: 3 }, - { - name: 'Bal', - cap: 250, - - mobs: ['bal_boss_100'], - bracket: 6 - }, - { - name: 'Key Guardian', - cap: 250, - - mobs: ['key_guardian_100'], - bracket: 6 - } + { name: 'Bal', cap: 250, mobs: ['bal_boss_100'], bracket: 6 }, + { name: 'Key Guardian', cap: 250, mobs: ['key_guardian_100'], bracket: 6 } ] }, foraging_1: { name: 'The Park', - mobs: [ - { - name: 'Howling Spirit', - cap: 10000, - - mobs: ['howling_spirit_35'], - bracket: 2 - }, - { - name: 'Pack Spirit', - cap: 10000, - - mobs: ['pack_spirit_30'], - bracket: 2 - }, - { - name: 'Soul of the Alpha', - cap: 1000, - - mobs: ['soul_of_the_alpha_55'], - bracket: 4 - } + { name: 'Howling Spirit', cap: 10000, mobs: ['howling_spirit_35'], bracket: 2 }, + { name: 'Pack Spirit', cap: 10000, mobs: ['pack_spirit_30'], bracket: 2 }, + { name: 'Soul of the Alpha', cap: 1000, mobs: ['soul_of_the_alpha_55'], bracket: 4 } ] }, spooky_festival: { name: 'Spooky Festival', - mobs: [ - { - name: 'Crazy Witch', - cap: 750, - - mobs: ['batty_witch_60'], - bracket: 2 - }, - { - name: 'Headless Horseman', - cap: 500, - - mobs: ['horseman_horse_100'], - bracket: 7 - }, - { - name: 'Phantom Spirit', - cap: 750, - - mobs: ['phantom_spirit_35'], - bracket: 2 - }, - { - name: 'Scary Jerry', - cap: 750, - - mobs: ['scary_jerry_30'], - bracket: 2 - }, - { - name: 'Trick or Treater', - cap: 750, - - mobs: ['trick_or_treater_30'], - bracket: 2 - }, - { - name: 'Wither Gourd', - cap: 750, - - mobs: ['wither_gourd_40'], - bracket: 2 - }, - { - name: 'Wraith', - cap: 750, - - mobs: ['wraith_50'], - bracket: 2 - } + { name: 'Crazy Witch', cap: 750, mobs: ['batty_witch_60'], bracket: 2 }, + { name: 'Headless Horseman', cap: 500, mobs: ['horseman_horse_100'], bracket: 7 }, + { name: 'Phantom Spirit', cap: 750, mobs: ['phantom_spirit_35'], bracket: 2 }, + { name: 'Scary Jerry', cap: 750, mobs: ['scary_jerry_30'], bracket: 2 }, + { name: 'Trick or Treater', cap: 750, mobs: ['trick_or_treater_30'], bracket: 2 }, + { name: 'Wither Gourd', cap: 750, mobs: ['wither_gourd_40'], bracket: 2 }, + { name: 'Wraith', cap: 750, mobs: ['wraith_50'], bracket: 2 } ] }, mythological_creatures: { name: 'Mythological Creatures', - mobs: [ - { - name: 'Gaia Construct', - cap: 3000, - - mobs: ['gaia_construct_140', 'gaia_construct_260'], - bracket: 4 - }, - { - name: 'Minos Champion', - cap: 1000, - - mobs: ['minos_champion_175', 'minos_champion_310'], - bracket: 5 - }, + { name: 'Gaia Construct', cap: 3000, mobs: ['gaia_construct_140', 'gaia_construct_260'], bracket: 4 }, + { name: 'Minos Champion', cap: 1000, mobs: ['minos_champion_175', 'minos_champion_310'], bracket: 5 }, { name: 'Minos Hunter', cap: 1000, - mobs: ['minos_hunter_125', 'minos_hunter_15', 'minos_hunter_60'], bracket: 5 }, - { - name: 'Minos Inquisitor', - cap: 500, - - mobs: ['minos_inquisitor_750'], - bracket: 7 - }, - { - name: 'Minotaur', - cap: 3000, - - mobs: ['minotaur_45', 'minotaur_120', 'minotaur_210'], - bracket: 4 - }, + { name: 'Minos Inquisitor', cap: 500, mobs: ['minos_inquisitor_750'], bracket: 7 }, + { name: 'Minotaur', cap: 3000, mobs: ['minotaur_45', 'minotaur_120', 'minotaur_210'], bracket: 4 }, { name: 'Siamese Lynx', cap: 3000, - mobs: ['siamese_lynx_25', 'siamese_lynx_85', 'siamese_lynx_155'], bracket: 4 } @@ -1780,46 +1251,19 @@ export default { }, jerry: { name: 'Jerry', - mobs: [ - { - name: 'Green Jerry', - cap: 75, - - mobs: ['mayor_jerry_green_1'], - bracket: 4 - }, - { - name: 'Blue Jerry', - cap: 30, - - mobs: ['mayor_jerry_blue_2'], - bracket: 5 - }, - { - name: 'Purple Jerry', - cap: 25, - - mobs: ['mayor_jerry_purple_3'], - bracket: 6 - }, - { - name: 'Golden Jerry', - cap: 20, - - mobs: ['mayor_jerry_golden_5'], - bracket: 7 - } + { name: 'Green Jerry', cap: 75, mobs: ['mayor_jerry_green_1'], bracket: 4 }, + { name: 'Blue Jerry', cap: 30, mobs: ['mayor_jerry_blue_2'], bracket: 5 }, + { name: 'Purple Jerry', cap: 25, mobs: ['mayor_jerry_purple_3'], bracket: 6 }, + { name: 'Golden Jerry', cap: 20, mobs: ['mayor_jerry_golden_5'], bracket: 7 } ] }, kuudra: { name: 'Kuudra', - mobs: [ { name: 'Blazing Golem', cap: 300, - mobs: [ 'blazing_golem_100', 'blazing_golem_200', @@ -1832,21 +1276,18 @@ export default { { name: 'Blight', cap: 10000, - mobs: ['blight_100', 'blight_200', 'blight_300', 'blight_400', 'blight_500'], bracket: 3 }, { name: 'Dropship', cap: 300, - mobs: ['dropship_100', 'dropship_200', 'dropship_300', 'dropship_400', 'dropship_500'], bracket: 3 }, { name: 'Explosive Imp', cap: 10000, - mobs: [ 'explosive_imp_100', 'explosive_imp_200', @@ -1859,7 +1300,6 @@ export default { { name: 'Inferno Magma Cube', cap: 10000, - mobs: [ 'inferno_magma_cube_100', 'inferno_magma_cube_200', @@ -1872,7 +1312,6 @@ export default { { name: 'Kuudra Berserker', cap: 10000, - mobs: [ 'kuudra_berserker_100', 'kuudra_berserker_200', @@ -1885,7 +1324,6 @@ export default { { name: 'Kuudra Follower', cap: 25000, - mobs: [ 'kuudra_follower_100', 'kuudra_follower_200', @@ -1898,7 +1336,6 @@ export default { { name: 'Kuudra Knocker', cap: 10000, - mobs: [ 'kuudra_knocker_100', 'kuudra_knocker_200', @@ -1911,7 +1348,6 @@ export default { { name: 'Kuudra Landmine', cap: 10000, - mobs: [ 'kuudra_landmine_100', 'kuudra_landmine_200', @@ -1924,7 +1360,6 @@ export default { { name: 'Kuudra Slasher', cap: 30, - mobs: [ 'kuudra_slasher_100', 'kuudra_slasher_200', @@ -1937,7 +1372,6 @@ export default { { name: 'Magma Follower', cap: 30, - mobs: [ 'magma_follower_100', 'magma_follower_200', @@ -1950,7 +1384,6 @@ export default { { name: 'Wandering Blaze', cap: 3000, - mobs: [ 'wandering_blaze_100', 'wandering_blaze_200', @@ -1963,7 +1396,6 @@ export default { { name: 'Wither Sentry', cap: 75, - mobs: [ 'wither_sentry_100', 'wither_sentry_200', @@ -1978,379 +1410,84 @@ export default { fishing: { fishing: { name: 'Fishing', - mobs: [ - { - name: 'Agarimoo', - cap: 4000, - - mobs: ['agarimoo_35'], - bracket: 3 - }, - { - name: 'Carrot King', - cap: 400, - - mobs: ['carrot_king_25'], - bracket: 5 - }, - { - name: 'Catfish', - cap: 1000, - - mobs: ['catfish_23'], - bracket: 4 - }, - { - name: 'Deep Sea Protector', - cap: 1000, - - mobs: ['deep_sea_protector_60'], - bracket: 4 - }, - { - name: 'Guardian Defender', - cap: 1000, - - mobs: ['guardian_defender_45'], - bracket: 4 - }, - { - name: 'Night Squid', - cap: 1000, - - mobs: ['night_squid_6'], - bracket: 4 - }, - { - name: 'Oasis Rabbit', - cap: 300, - - mobs: ['oasis_rabbit_10'], - bracket: 3 - }, - { - name: 'Oasis Sheep', - cap: 300, - - mobs: ['oasis_sheep_10'], - bracket: 3 - }, - { - name: 'Poisoned Water Worm', - cap: 1000, - - mobs: ['poisoned_water_worm_25'], - bracket: 4 - }, - { - name: 'Rider of the Deep', - cap: 4000, - - mobs: ['zombie_deep_20', 'chicken_deep_20'], - bracket: 3 - }, - { - name: 'Sea Archer', - cap: 4000, - - mobs: ['sea_archer_15'], - bracket: 3 - }, - { - name: 'Sea Guardian', - cap: 4000, - - mobs: ['sea_guardian_10'], - bracket: 3 - }, - { - name: 'Sea Leech', - cap: 1000, - - mobs: ['sea_leech_30'], - bracket: 4 - }, - { - name: 'Sea Walker', - cap: 4000, - - mobs: ['sea_walker_4'], - bracket: 3 - }, - { - name: 'Sea Witch', - cap: 4000, - - mobs: ['sea_witch_15'], - bracket: 3 - }, - { - name: 'Squid', - cap: 10000, - - mobs: ['pond_squid_1'], - bracket: 2 - }, - { - name: 'The Sea Emperor', - cap: 100, - - mobs: ['skeleton_emperor_150', 'guardian_emperor_150'], - bracket: 7 - }, - { - name: 'Water Hydra', - cap: 400, - - mobs: ['water_hydra_100'], - bracket: 5 - }, - { - name: 'Water Worm', - cap: 1000, - - mobs: ['water_worm_20'], - bracket: 4 - }, - { - name: 'Zombie Miner', - cap: 250, - - mobs: ['zombie_miner_150'], - bracket: 6 - } + { name: 'Agarimoo', cap: 4000, mobs: ['agarimoo_35'], bracket: 3 }, + { name: 'Carrot King', cap: 400, mobs: ['carrot_king_25'], bracket: 5 }, + { name: 'Catfish', cap: 1000, mobs: ['catfish_23'], bracket: 4 }, + { name: 'Deep Sea Protector', cap: 1000, mobs: ['deep_sea_protector_60'], bracket: 4 }, + { name: 'Guardian Defender', cap: 1000, mobs: ['guardian_defender_45'], bracket: 4 }, + { name: 'Night Squid', cap: 1000, mobs: ['night_squid_6'], bracket: 4 }, + { name: 'Oasis Rabbit', cap: 300, mobs: ['oasis_rabbit_10'], bracket: 3 }, + { name: 'Oasis Sheep', cap: 300, mobs: ['oasis_sheep_10'], bracket: 3 }, + { name: 'Poisoned Water Worm', cap: 1000, mobs: ['poisoned_water_worm_25'], bracket: 4 }, + { name: 'Rider of the Deep', cap: 4000, mobs: ['zombie_deep_20', 'chicken_deep_20'], bracket: 3 }, + { name: 'Sea Archer', cap: 4000, mobs: ['sea_archer_15'], bracket: 3 }, + { name: 'Sea Guardian', cap: 4000, mobs: ['sea_guardian_10'], bracket: 3 }, + { name: 'Sea Leech', cap: 1000, mobs: ['sea_leech_30'], bracket: 4 }, + { name: 'Sea Walker', cap: 4000, mobs: ['sea_walker_4'], bracket: 3 }, + { name: 'Sea Witch', cap: 4000, mobs: ['sea_witch_15'], bracket: 3 }, + { name: 'Squid', cap: 10000, mobs: ['pond_squid_1'], bracket: 2 }, + { name: 'The Sea Emperor', cap: 100, mobs: ['skeleton_emperor_150', 'guardian_emperor_150'], bracket: 7 }, + { name: 'Water Hydra', cap: 400, mobs: ['water_hydra_100'], bracket: 5 }, + { name: 'Water Worm', cap: 1000, mobs: ['water_worm_20'], bracket: 4 }, + { name: 'Zombie Miner', cap: 250, mobs: ['zombie_miner_150'], bracket: 6 } ] }, lava: { name: 'Lava Fishing', - mobs: [ - { - name: 'Fire Eel', - cap: 1000, - - mobs: ['fire_eel_240'], - bracket: 4 - }, - { - name: 'Flaming Worm', - cap: 4000, - - mobs: ['flaming_worm_50'], - bracket: 3 - }, - { - name: 'Lava Blaze', - cap: 1000, - - mobs: ['lava_blaze_100'], - bracket: 4 - }, - { - name: 'Lava Flame', - cap: 1000, - - mobs: ['lava_flame_230'], - bracket: 4 - }, - { - name: 'Lava Leech', - cap: 4000, - - mobs: ['lava_leech_220'], - bracket: 3 - }, - { - name: 'Lava Pigman', - cap: 1000, - - mobs: ['lava_pigman_100'], - bracket: 4 - }, - { - name: 'Lord Jawbus', - cap: 250, - - mobs: ['lord_jawbus_600'], - bracket: 6 - }, - { - name: 'Magma Slug', - cap: 10000, - - mobs: ['magma_slug_200'], - bracket: 2 - }, - { - name: 'Moogma', - cap: 4000, - - mobs: ['moogma_210'], - bracket: 3 - }, - { - name: 'Plhlegblast', - cap: 7, - - mobs: ['pond_squid_300'], - bracket: 7 - }, - { - name: 'Pyroclastic Worm', - cap: 4000, - - mobs: ['pyroclastic_worm_240'], - bracket: 3 - }, - { - name: 'Taurus', - cap: 1000, - - mobs: ['pig_rider_250'], - bracket: 4 - }, - { - name: 'Thunder', - cap: 400, - - mobs: ['thunder_400'], - bracket: 5 - } + { name: 'Fire Eel', cap: 1000, mobs: ['fire_eel_240'], bracket: 4 }, + { name: 'Flaming Worm', cap: 4000, mobs: ['flaming_worm_50'], bracket: 3 }, + { name: 'Lava Blaze', cap: 1000, mobs: ['lava_blaze_100'], bracket: 4 }, + { name: 'Lava Flame', cap: 1000, mobs: ['lava_flame_230'], bracket: 4 }, + { name: 'Lava Leech', cap: 4000, mobs: ['lava_leech_220'], bracket: 3 }, + { name: 'Lava Pigman', cap: 1000, mobs: ['lava_pigman_100'], bracket: 4 }, + { name: 'Lord Jawbus', cap: 250, mobs: ['lord_jawbus_600'], bracket: 6 }, + { name: 'Magma Slug', cap: 10000, mobs: ['magma_slug_200'], bracket: 2 }, + { name: 'Moogma', cap: 4000, mobs: ['moogma_210'], bracket: 3 }, + { name: 'Plhlegblast', cap: 7, mobs: ['pond_squid_300'], bracket: 7 }, + { name: 'Pyroclastic Worm', cap: 4000, mobs: ['pyroclastic_worm_240'], bracket: 3 }, + { name: 'Taurus', cap: 1000, mobs: ['pig_rider_250'], bracket: 4 }, + { name: 'Thunder', cap: 400, mobs: ['thunder_400'], bracket: 5 } ] }, spooky_festival: { name: 'Spooky Festival Fishing', - mobs: [ - { - name: 'Grim Reaper', - cap: 100, - - mobs: ['grim_reaper_190'], - bracket: 7 - }, - { - name: 'Nightmare', - cap: 1000, - - mobs: ['nightmare_24'], - bracket: 4 - }, - { - name: 'Phantom Fisher', - cap: 250, - - mobs: ['phantom_fisherman_160'], - bracket: 6 - }, - { - name: 'Scarecrow', - cap: 4000, - - mobs: ['scarecrow_9'], - bracket: 3 - }, - { - name: 'Werewolf', - cap: 1000, - - mobs: ['werewolf_50'], - bracket: 4 - } + { name: 'Grim Reaper', cap: 100, mobs: ['grim_reaper_190'], bracket: 7 }, + { name: 'Nightmare', cap: 1000, mobs: ['nightmare_24'], bracket: 4 }, + { name: 'Phantom Fisher', cap: 250, mobs: ['phantom_fisherman_160'], bracket: 6 }, + { name: 'Scarecrow', cap: 4000, mobs: ['scarecrow_9'], bracket: 3 }, + { name: 'Werewolf', cap: 1000, mobs: ['werewolf_50'], bracket: 4 } ] }, fishing_festival: { name: 'Fishing Festival', - mobs: [ - { - name: 'Blue Shark', - cap: 1000, - - mobs: ['blue_shark_20'], - bracket: 4 - }, - { - name: 'Great White Shark', - cap: 400, - - mobs: ['great_white_shark_180'], - bracket: 5 - }, - { - name: 'Nurse Shark', - cap: 4000, - - mobs: ['nurse_shark_6'], - bracket: 3 - }, - { - name: 'Tiger Shark', - cap: 1000, - - mobs: ['tiger_shark_50'], - bracket: 4 - } + { name: 'Blue Shark', cap: 1000, mobs: ['blue_shark_20'], bracket: 4 }, + { name: 'Great White Shark', cap: 400, mobs: ['great_white_shark_180'], bracket: 5 }, + { name: 'Nurse Shark', cap: 4000, mobs: ['nurse_shark_6'], bracket: 3 }, + { name: 'Tiger Shark', cap: 1000, mobs: ['tiger_shark_50'], bracket: 4 } ] }, winter: { name: 'Winter Fishing', - mobs: [ - { - name: 'Frosty', - cap: 4000, - - mobs: ['frosty_the_snowman_13'], - bracket: 3 - }, - { - name: 'Frozen Steve', - cap: 4000, - - mobs: ['frozen_steve_7'], - bracket: 3 - }, - { - name: 'Grinch', - cap: 250, - - mobs: ['grinch_21'], - bracket: 6 - }, - { - name: 'Nutcracker', - cap: 400, - - mobs: ['nutcracker_50'], - bracket: 5 - }, - { - name: 'Reindrake', - cap: 100, - - mobs: ['reindrake_100'], - bracket: 7 - }, - { - name: 'Yeti', - cap: 250, - - mobs: ['yeti_175'], - bracket: 6 - } + { name: 'Frosty', cap: 4000, mobs: ['frosty_the_snowman_13'], bracket: 3 }, + { name: 'Frozen Steve', cap: 4000, mobs: ['frozen_steve_7'], bracket: 3 }, + { name: 'Grinch', cap: 250, mobs: ['grinch_21'], bracket: 6 }, + { name: 'Nutcracker', cap: 400, mobs: ['nutcracker_50'], bracket: 5 }, + { name: 'Reindrake', cap: 100, mobs: ['reindrake_100'], bracket: 7 }, + { name: 'Yeti', cap: 250, mobs: ['yeti_175'], bracket: 6 } ] } }, catacombs: { name: 'Catacombs', - mobs: [ { name: 'Angry Archeologist', cap: 10000, - mobs: [ 'diamond_guy_80', 'diamond_guy_90', @@ -2377,7 +1514,6 @@ export default { }, { name: 'Lonely Spider', - cap: 25000, mobs: [ 'lonely_spider_35', @@ -2399,17 +1535,10 @@ export default { ], bracket: 4 }, - { - name: 'Bat', - cap: 1000, - - mobs: ['dungeon_secret_bat_1'], - bracket: 4 - }, + { name: 'Bat', cap: 1000, mobs: ['dungeon_secret_bat_1'], bracket: 4 }, { name: 'Cellar Spider', cap: 1000, - mobs: [ 'cellar_spider_45', 'cellar_spider_65', @@ -2433,7 +1562,6 @@ export default { { name: 'Crypt Dreadlord', cap: 25000, - mobs: [ 'crypt_dreadlord_47', 'crypt_dreadlord_67', @@ -2457,7 +1585,6 @@ export default { { name: 'Crypt Lurker', cap: 25000, - mobs: [ 'crypt_lurker_41', 'crypt_lurker_61', @@ -2481,7 +1608,6 @@ export default { { name: 'Crypt Souleater', cap: 25000, - mobs: [ 'crypt_souleater_45', 'crypt_souleater_65', @@ -2505,7 +1631,6 @@ export default { { name: 'Fels', cap: 25000, - mobs: [ 'tentaclees_90', 'tentaclees_100', @@ -2516,17 +1641,10 @@ export default { ], bracket: 4 }, - { - name: 'Golem', - cap: 1000, - - mobs: ['sadan_golem_1', 'master_sadan_golem_1'], - bracket: 4 - }, + { name: 'Golem', cap: 1000, mobs: ['sadan_golem_1', 'master_sadan_golem_1'], bracket: 4 }, { name: 'King Midas', cap: 1000, - mobs: [ 'king_midas_130', 'king_midas_140', @@ -2544,7 +1662,6 @@ export default { { name: 'Lost Adventurer', cap: 10000, - mobs: [ 'lost_adventurer_80', 'lost_adventurer_81', @@ -2642,14 +1759,12 @@ export default { { name: 'Mimic', cap: 1000, - mobs: ['mimic_115', 'mimic_125', 'master_mimic_115', 'master_mimic_125'], bracket: 4 }, { name: 'Scared Skeleton', cap: 4000, - mobs: [ 'scared_skeleton_42', 'scared_skeleton_62', @@ -2663,7 +1778,6 @@ export default { { name: 'Shadow Assassin', cap: 10000, - mobs: [ 'shadow_assassin_120', 'shadow_assassin_130', @@ -2685,7 +1799,6 @@ export default { { name: 'Skeleton Grunt', cap: 4000, - mobs: [ 'skeleton_grunt_40', 'skeleton_grunt_60', @@ -2698,17 +1811,10 @@ export default { ], bracket: 3 }, - { - name: 'Skeleton Lord', - cap: 1000, - - mobs: ['skeleton_lord_150', 'master_skeleton_lord_150'], - bracket: 5 - }, + { name: 'Skeleton Lord', cap: 1000, mobs: ['skeleton_lord_150', 'master_skeleton_lord_150'], bracket: 5 }, { name: 'Skeleton Master', cap: 25000, - mobs: [ 'skeleton_master_48', 'skeleton_master_68', @@ -2732,7 +1838,6 @@ export default { { name: 'Skeleton Soldier', cap: 40000, - mobs: [ 'skeleton_soldier_46', 'skeleton_soldier_66', @@ -2756,7 +1861,6 @@ export default { { name: 'Skeletor', cap: 10000, - mobs: [ 'skeletor_80', 'skeletor_90', @@ -2782,7 +1886,6 @@ export default { { name: 'Sniper', cap: 4000, - mobs: [ 'sniper_skeleton_43', 'sniper_skeleton_63', @@ -2806,7 +1909,6 @@ export default { { name: 'Super Archer', cap: 10000, - mobs: [ 'super_archer_90', 'super_archer_100', @@ -2822,7 +1924,6 @@ export default { { name: 'Super Tank Zombie', cap: 25000, - mobs: [ 'super_tank_zombie_90', 'super_tank_zombie_100', @@ -2838,7 +1939,6 @@ export default { { name: 'Tank Zombie', cap: 4000, - mobs: [ 'crypt_tank_zombie_40', 'crypt_tank_zombie_60', @@ -2855,7 +1955,6 @@ export default { }, { name: 'Withermancer', - cap: 25000, mobs: [ 'crypt_witherskeleton_90', @@ -2869,17 +1968,10 @@ export default { ], bracket: 4 }, - { - name: 'Terracotta', - cap: 40000, - - mobs: ['sadan_statue_1', 'master_sadan_statue_1'], - bracket: 1 - }, + { name: 'Terracotta', cap: 40000, mobs: ['sadan_statue_1', 'master_sadan_statue_1'], bracket: 1 }, { name: 'Undead', cap: 10000, - mobs: [ 'watcher_summon_undead_1', 'watcher_summon_undead_2', @@ -2903,7 +1995,6 @@ export default { { name: 'Undead Skeleton', cap: 25000, - mobs: [ 'dungeon_respawning_skeleton_40', 'dungeon_respawning_skeleton_40', @@ -2939,31 +2030,12 @@ export default { ], bracket: 4 }, - { - name: 'Wither Guard', - cap: 10000, - - mobs: ['wither_guard_100', 'master_wither_guard_100'], - bracket: 5 - }, - { - name: 'Wither Husk', - cap: 10000, - - mobs: ['master_wither_husk_100'], - bracket: 5 - }, - { - name: 'Wither Miner', - cap: 25000, - - mobs: ['wither_miner_100', 'master_wither_miner_100'], - bracket: 4 - }, + { name: 'Wither Guard', cap: 10000, mobs: ['wither_guard_100', 'master_wither_guard_100'], bracket: 5 }, + { name: 'Wither Husk', cap: 10000, mobs: ['master_wither_husk_100'], bracket: 5 }, + { name: 'Wither Miner', cap: 25000, mobs: ['wither_miner_100', 'master_wither_miner_100'], bracket: 4 }, { name: 'Zombie Commander', cap: 3000, - mobs: [ 'zombie_commander_110', 'zombie_commander_120', @@ -2975,7 +2047,6 @@ export default { { name: 'Zombie Grunt', cap: 4000, - mobs: [ 'zombie_grunt_40', 'zombie_grunt_60', @@ -2991,7 +2062,6 @@ export default { { name: 'Zombie Knight', cap: 25000, - mobs: [ 'zombie_knight_86', 'zombie_knight_96', @@ -3006,17 +2076,10 @@ export default { ], bracket: 4 }, - { - name: 'Zombie Lord', - cap: 1000, - - mobs: ['zombie_lord_150', 'master_zombie_lord_150'], - bracket: 5 - }, + { name: 'Zombie Lord', cap: 1000, mobs: ['zombie_lord_150', 'master_zombie_lord_150'], bracket: 5 }, { name: 'Zombie Soldier', cap: 40000, - mobs: [ 'zombie_soldier_83', 'zombie_soldier_93', diff --git a/src/utils/Guild.ts b/src/utils/Guild.ts index 995870cb..b0ba483a 100644 --- a/src/utils/Guild.ts +++ b/src/utils/Guild.ts @@ -9,7 +9,6 @@ export interface ExpHistory { } const dateRegExp = /(\d{4})-(\d{2})-(\d{2})/; - export function parseDate(date: Record) { date[1] -= 1; return new Date( @@ -41,9 +40,7 @@ export function getGuildLevel(exp: number) { 100000, 150000, 250000, 500000, 750000, 1000000, 1250000, 1500000, 2000000, 2500000, 2500000, 2500000, 2500000, 2500000, 3000000 ]; - let level = 0; - for (let i = 0; 1000 >= i; i += 1) { let need; if (i >= EXP_NEEDED.length) { @@ -51,14 +48,12 @@ export function getGuildLevel(exp: number) { } else { need = EXP_NEEDED[i]; } - if (0 > exp - need) { return Math.round((level + exp / need) * 100) / 100; } level += 1; exp -= need; } - return 1000; } diff --git a/src/utils/Player.ts b/src/utils/Player.ts index fdff0100..8c34adce 100644 --- a/src/utils/Player.ts +++ b/src/utils/Player.ts @@ -72,13 +72,7 @@ export function playerLevelProgress(xp: number): LevelProgress { currentXP = currentXP - 2500; const percent = Math.round((currentXP / xpToNext) * 100 * 100) / 100; const percentRemaining = Math.round((100 - percent) * 100) / 100; - return { - xpToNext, - remainingXP, - currentXP, - percent, - percentRemaining - }; + return { xpToNext, remainingXP, currentXP, percent, percentRemaining }; } export function getSocialMedia(data: Record): PlayerSocialMedia[] { diff --git a/src/utils/SkyblockUtils.ts b/src/utils/SkyblockUtils.ts index 35c3d1b4..91d6305c 100644 --- a/src/utils/SkyblockUtils.ts +++ b/src/utils/SkyblockUtils.ts @@ -230,7 +230,6 @@ export function getLevelByXp(xp: number, type: string): SkyblockSkillLevel { const xpCurrent = Math.floor(xp - xpTotal); if (level < maxLevel) xpForNext = Math.ceil(xpTable[level + 1]); const progress = Math.floor(Math.max(0, Math.min(xpCurrent / xpForNext, 1)) * 100 * 10) / 10; - return { xp: xp, level: level, @@ -244,21 +243,11 @@ export function getLevelByXp(xp: number, type: string): SkyblockSkillLevel { export function getSlayerLevel(slayer: Record): SkyblockMemberSlayerLevel { if (!slayer) { - return { - xp: 0, - tier1: 0, - tier2: 0, - tier3: 0, - tier4: 0, - tier5: 0, - level: 0 - }; + return { xp: 0, tier1: 0, tier2: 0, tier3: 0, tier4: 0, tier5: 0, level: 0 }; } - // eslint-disable-next-line camelcase const { claimed_levels } = slayer; let level = 0; - // eslint-disable-next-line camelcase for (const levelName in claimed_levels) { if (Object.prototype.hasOwnProperty.call(claimed_levels, levelName)) { @@ -283,11 +272,9 @@ export function getMemberStats(obj: Record): SkyblockMemberStats { return Object.keys(obj).reduce( (result, currentKey) => { const key = currentKey.replace(/_[a-z]/gi, (match) => match[1].toUpperCase()); - if (currentKey.startsWith('kills') || currentKey.startsWith('deaths')) { const category = currentKey.startsWith('kills') ? 'kills' : 'deaths'; const subKey = key === category ? 'total' : key; - result[category as keyof typeof result][ subKey.replace(category, (sub, _, key) => { return key[sub.length].toLowerCase() + key.slice(sub.length + 1); @@ -296,7 +283,6 @@ export function getMemberStats(obj: Record): SkyblockMemberStats { } else { result[key as keyof typeof result] = obj[currentKey]; } - return result; }, { kills: {}, deaths: {} } as { kills: Record; deaths: Record } @@ -337,25 +323,18 @@ export function getSkills(data: Record): SkyblockMemberSkills { skillsObject.average = levels.reduce((a, b) => a + b, 0) / levels.length; return skillsObject; } - function formatBestiaryMobs(userProfile: Record, mobs: any) { const output = []; for (const mob of mobs) { const mobBracket = (Constants.bestiaryBrackets as { [key: number]: number[] })[mob.bracket]; - const totalKills = mob.mobs.reduce((acc: any, cur: any) => { return acc + (userProfile.bestiary.kills[cur] ?? 0); }, 0); - const maxKills = mob.cap; const nextTierKills = mobBracket.find((tier: any) => totalKills < tier && tier <= maxKills); const tier = nextTierKills ? mobBracket.indexOf(nextTierKills) : mobBracket.indexOf(maxKills) + 1; - - output.push({ - tier: tier - }); + output.push({ tier: tier }); } - return output; } @@ -364,18 +343,14 @@ export function getBestiaryLevel(userProfile: Record): number { if (userProfile.bestiary?.kills === undefined) { return 0; } - const output: { [key: string]: any } = {}; let tiersUnlocked = 0; for (const [category, data] of Object.entries(Constants.bestiary)) { const { mobs } = data as { mobs: any }; output[category] = {}; - if ('fishing' === category) { for (const [key, value] of Object.entries(data)) { - output[category][key] = { - mobs: formatBestiaryMobs(userProfile, value.mobs) - }; + output[category][key] = { mobs: formatBestiaryMobs(userProfile, value.mobs) }; tiersUnlocked += output[category][key].mobs.reduce((acc: any, cur: any) => acc + cur.tier, 0); } } else { @@ -383,7 +358,6 @@ export function getBestiaryLevel(userProfile: Record): number { tiersUnlocked += output[category].mobs.reduce((acc: any, cur: any) => acc + cur.tier, 0); } } - return tiersUnlocked / 10; } catch { return 0; @@ -404,9 +378,7 @@ export function getSlayer(data: Record): SkyblockMemberSlayer | nul export function getDungeons(data: Record): SkyblockMemberDungeons | null { return { - types: { - catacombs: getLevelByXp(data.dungeons?.dungeon_types?.catacombs ?? 0, 'dungeons') - }, + types: { catacombs: getLevelByXp(data.dungeons?.dungeon_types?.catacombs ?? 0, 'dungeons') }, classes: { healer: getLevelByXp(data.dungeons?.player_classes?.healer ?? 0, 'dungeons'), mage: getLevelByXp(data.dungeons?.player_classes?.mage ?? 0, 'dungeons'), @@ -420,16 +392,8 @@ export function getDungeons(data: Record): SkyblockMemberDungeons | export function getJacobData(data: Record): SkyblockMemberJacobData { if (!data.jacobs_contest) { return { - medals: { - bronze: 0, - silver: 0, - gold: 0 - }, - perks: { - doubleDrops: 0, - farmingLevelCap: 0, - personalBests: false - }, + medals: { bronze: 0, silver: 0, gold: 0 }, + perks: { doubleDrops: 0, farmingLevelCap: 0, personalBests: false }, contests: {} }; } @@ -455,33 +419,11 @@ export function getJacobData(data: Record): SkyblockMemberJacobData export function getChocolateFactory(data: Record): SkyblockMemberChocolateFactoryData { if (!data?.events?.easter) { return { - employees: { - bro: 0, - cousin: 0, - sis: 0, - father: 0, - grandma: 0, - dog: 0, - uncle: 0 - }, - chocolate: { - current: 0, - total: 0, - sincePrestige: 0 - }, - timeTower: { - charges: 0, - level: 0 - }, - upgrades: { - click: 0, - multiplier: 0, - rabbitRarity: 0 - }, - goldenClick: { - amount: 0, - year: 0 - }, + employees: { bro: 0, cousin: 0, sis: 0, father: 0, grandma: 0, dog: 0, uncle: 0 }, + chocolate: { current: 0, total: 0, sincePrestige: 0 }, + timeTower: { charges: 0, level: 0 }, + upgrades: { click: 0, multiplier: 0, rabbitRarity: 0 }, + goldenClick: { amount: 0, year: 0 }, barnCapacity: 0, prestige: 0 }; @@ -522,16 +464,12 @@ export function getChocolateFactory(data: Record): SkyblockMemberCh export function getPetLevel(petExp: number, offsetRarity: number, maxLevel: number) { const rarityOffset = Constants.petRarityOffset[offsetRarity as unknown as keyof typeof Constants.petRarityOffset]; const levels = Constants.petLevels.slice(rarityOffset, rarityOffset + maxLevel - 1); - const xpMaxLevel = levels.reduce((a, b) => a + b, 0); let xpTotal = 0; let level = 1; - let xpForNext; - for (let i = 0; i < maxLevel; i++) { xpTotal += levels[i]; - if (xpTotal > petExp) { xpTotal -= levels[i]; break; @@ -539,10 +477,8 @@ export function getPetLevel(petExp: number, offsetRarity: number, maxLevel: numb level++; } } - let xpCurrent = Math.floor(petExp - xpTotal); let progress; - if (level < maxLevel) { xpForNext = Math.ceil(levels[level - 1]); progress = Math.max(0, Math.min(xpCurrent / xpForNext, 1)); @@ -552,14 +488,7 @@ export function getPetLevel(petExp: number, offsetRarity: number, maxLevel: numb xpForNext = 0; progress = 1; } - - return { - level, - xpCurrent, - xpForNext, - progress, - xpMaxLevel - }; + return { level, xpCurrent, xpForNext, progress, xpMaxLevel }; } export function parseRarity(str: string): SkyblockRarity { diff --git a/src/utils/oscillation.ts b/src/utils/oscillation.ts index 93a63d3c..b6f4028f 100644 --- a/src/utils/oscillation.ts +++ b/src/utils/oscillation.ts @@ -2,7 +2,6 @@ // Month oscillation started in December 2014, so every month that is pair ( odd in js!! ) is month A // Weekly oscillation started... just refer to the code in the docs const weeklyOscillationStart = 1417237200000; - export function monthAB() { return new Date().getMonth() % 2 ? 'a' : 'b'; } diff --git a/src/utils/varInt.ts b/src/utils/varInt.ts index 31f38aa8..47418357 100644 --- a/src/utils/varInt.ts +++ b/src/utils/varInt.ts @@ -10,6 +10,5 @@ export default function (bytes: any) { return NaN; } } while (numRead < bytes.length); - return result; }