From 58cbf78fb991be8eeb33479413f8721dc1339657 Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Fri, 13 Dec 2024 16:47:32 -0300 Subject: [PATCH 01/17] chore: update libs --- package.json | 40 ++-- yarn.lock | 621 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 414 insertions(+), 247 deletions(-) diff --git a/package.json b/package.json index 3eb7bae4..a717997a 100644 --- a/package.json +++ b/package.json @@ -34,24 +34,24 @@ "dependencies": { "@electron-toolkit/preload": "^3.0.0", "@electron-toolkit/utils": "^3.0.0", - "@fontsource/noto-sans": "^5.0.22", - "@hookform/resolvers": "^3.9.0", + "@fontsource/noto-sans": "^5.1.0", + "@hookform/resolvers": "^3.9.1", "@primer/octicons-react": "^19.9.0", "@reduxjs/toolkit": "^2.2.3", "@vanilla-extract/css": "^1.14.2", - "@vanilla-extract/dynamic": "^2.1.1", + "@vanilla-extract/dynamic": "^2.1.2", "@vanilla-extract/recipes": "^0.5.2", "auto-launch": "^5.0.6", - "axios": "^1.7.7", - "better-sqlite3": "^11.3.0", + "axios": "^1.7.9", + "better-sqlite3": "^11.7.0", "check-disk-space": "^3.4.0", "classnames": "^2.5.1", "color": "^4.2.3", "color.js": "^1.2.0", "create-desktop-shortcuts": "^1.11.0", "date-fns": "^3.6.0", - "dexie": "^4.0.9", - "electron-log": "^5.2.0", + "dexie": "^4.0.10", + "electron-log": "^5.2.4", "electron-updater": "^6.3.9", "file-type": "^19.6.0", "flexsearch": "^0.7.43", @@ -72,14 +72,14 @@ "sudo-prompt": "^9.2.1", "tar": "^7.4.3", "typeorm": "^0.3.20", - "user-agents": "^1.1.193", - "yaml": "^2.4.1", - "yup": "^1.4.0", - "zod": "^3.23.8" + "user-agents": "^1.1.387", + "yaml": "^2.6.1", + "yup": "^1.5.0", + "zod": "^3.24.1" }, "devDependencies": { - "@commitlint/cli": "^19.5.0", - "@commitlint/config-conventional": "^19.5.0", + "@commitlint/cli": "^19.6.0", + "@commitlint/config-conventional": "^19.6.0", "@electron-toolkit/eslint-config-prettier": "^2.0.0", "@electron-toolkit/eslint-config-ts": "^2.0.0", "@electron-toolkit/tsconfig": "^1.0.1", @@ -87,8 +87,8 @@ "@types/auto-launch": "^5.0.5", "@types/color": "^3.0.6", "@types/folder-hash": "^4.0.4", - "@types/jsdom": "^21.1.6", - "@types/jsonwebtoken": "^9.0.6", + "@types/jsdom": "^21.1.7", + "@types/jsonwebtoken": "^9.0.7", "@types/lodash-es": "^4.17.12", "@types/node": "^20.12.7", "@types/parse-torrent": "^5.8.7", @@ -98,15 +98,15 @@ "@types/user-agents": "^1.0.4", "@vanilla-extract/vite-plugin": "^4.0.7", "@vitejs/plugin-react": "^4.2.1", - "electron": "^30.3.0", + "electron": "^31.7.6", "electron-builder": "^25.1.8", "electron-vite": "^2.0.0", "eslint": "^8.56.0", - "eslint-plugin-jsx-a11y": "^6.8.0", - "eslint-plugin-react": "^7.33.2", + "eslint-plugin-jsx-a11y": "^6.10.2", + "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^4.6.0", - "husky": "^9.0.11", - "prettier": "^3.2.4", + "husky": "^9.1.7", + "prettier": "^3.4.2", "react": "^18.2.0", "react-dom": "^18.2.0", "sass-embedded": "^1.80.6", diff --git a/yarn.lock b/yarn.lock index b6b2d3b9..f2a8c104 100644 --- a/yarn.lock +++ b/yarn.lock @@ -480,23 +480,23 @@ resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-2.2.2.tgz#1a6d89603fb215dc4d4178052d05b30b83c75402" integrity sha512-UNtPCbrwrenpmrXuRwn9jYpPoweNXj8X5sMvYgsqYyaH8jQ6LfUJSk3dJLnBK+6sfYPrF4iAIo5sd5HQ+tg75A== -"@commitlint/cli@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-19.5.0.tgz#a6e2f7f8397ddf9abd5ee5870e30a1bf51b7be2b" - integrity sha512-gaGqSliGwB86MDmAAKAtV9SV1SHdmN8pnGq4EJU4+hLisQ7IFfx4jvU4s+pk6tl0+9bv6yT+CaZkufOinkSJIQ== +"@commitlint/cli@^19.6.0": + version "19.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-19.6.0.tgz#98e7fc8501cc38b6eef4b7f61e19b15f3c53700e" + integrity sha512-v17BgGD9w5KnthaKxXnEg6KLq6DYiAxyiN44TpiRtqyW8NSq+Kx99mkEG8Qo6uu6cI5eMzMojW2muJxjmPnF8w== dependencies: "@commitlint/format" "^19.5.0" - "@commitlint/lint" "^19.5.0" + "@commitlint/lint" "^19.6.0" "@commitlint/load" "^19.5.0" "@commitlint/read" "^19.5.0" "@commitlint/types" "^19.5.0" tinyexec "^0.3.0" yargs "^17.0.0" -"@commitlint/config-conventional@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-19.5.0.tgz#f838cdaed0e0e223cdc2e865f055d474a49fe18c" - integrity sha512-OBhdtJyHNPryZKg0fFpZNOBM1ZDbntMvqMuSmpfyP86XSfwzGw4CaoYRG4RutUPg0BTK07VMRIkNJT6wi2zthg== +"@commitlint/config-conventional@^19.6.0": + version "19.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-19.6.0.tgz#badba72c8639ea79291e2941001bd7ea7fad3a2c" + integrity sha512-DJT40iMnTYtBtUfw9ApbsLZFke1zKh6llITVJ+x9mtpHD08gsNXaIRqHTmwTZL3dNX5+WoyK7pCN/5zswvkBCQ== dependencies: "@commitlint/types" "^19.5.0" conventional-changelog-conventionalcommits "^7.0.2" @@ -534,22 +534,22 @@ "@commitlint/types" "^19.5.0" chalk "^5.3.0" -"@commitlint/is-ignored@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-19.5.0.tgz#f8b7f365887acc1e3bdb31b17117bb435585dddf" - integrity sha512-0XQ7Llsf9iL/ANtwyZ6G0NGp5Y3EQ8eDQSxv/SRcfJ0awlBY4tHFAvwWbw66FVUaWICH7iE5en+FD9TQsokZ5w== +"@commitlint/is-ignored@^19.6.0": + version "19.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-19.6.0.tgz#6adb9097d36b68e00b9c06a73d7a08e9f54c54dc" + integrity sha512-Ov6iBgxJQFR9koOupDPHvcHU9keFupDgtB3lObdEZDroiG4jj1rzky60fbQozFKVYRTUdrBGICHG0YVmRuAJmw== dependencies: "@commitlint/types" "^19.5.0" semver "^7.6.0" -"@commitlint/lint@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-19.5.0.tgz#f4e162e7857a1c0694b20b92527704897558ff70" - integrity sha512-cAAQwJcRtiBxQWO0eprrAbOurtJz8U6MgYqLz+p9kLElirzSCc0vGMcyCaA1O7AqBuxo11l1XsY3FhOFowLAAg== +"@commitlint/lint@^19.6.0": + version "19.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-19.6.0.tgz#f9fc9b11b808c96bd3f85e882e056daabac40c36" + integrity sha512-LRo7zDkXtcIrpco9RnfhOKeg8PAnE3oDDoalnrVU/EVaKHYBWYL1DlRR7+3AWn0JiBqD8yKOfetVxJGdEtZ0tg== dependencies: - "@commitlint/is-ignored" "^19.5.0" + "@commitlint/is-ignored" "^19.6.0" "@commitlint/parse" "^19.5.0" - "@commitlint/rules" "^19.5.0" + "@commitlint/rules" "^19.6.0" "@commitlint/types" "^19.5.0" "@commitlint/load@^19.5.0": @@ -605,10 +605,10 @@ lodash.mergewith "^4.6.2" resolve-from "^5.0.0" -"@commitlint/rules@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-19.5.0.tgz#2a72ab506d49d7f33eda56f0ae072a3479429e74" - integrity sha512-hDW5TPyf/h1/EufSHEKSp6Hs+YVsDMHazfJ2azIk9tHPXS6UqSz1dIRs1gpqS3eMXgtkT7JH6TW4IShdqOwhAw== +"@commitlint/rules@^19.6.0": + version "19.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-19.6.0.tgz#2436da7974c3cf2a7236257f3ef5dd40c4d91312" + integrity sha512-1f2reW7lbrI0X0ozZMesS/WZxgPa4/wi56vFuJENBmed6mWq5KsheN/nxqnl/C23ioxpPO/PL6tXpiiFy5Bhjw== dependencies: "@commitlint/ensure" "^19.5.0" "@commitlint/message" "^19.5.0" @@ -1032,20 +1032,20 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== -"@fontsource/noto-sans@^5.0.22": - version "5.0.22" - resolved "https://registry.yarnpkg.com/@fontsource/noto-sans/-/noto-sans-5.0.22.tgz#2c5249347ba84fef16e71a58e0ec01b460174093" - integrity sha512-PwjvKPGFbgpwfKjWZj1zeUvd7ExUW2AqHE9PF9ysAJ2gOuzIHWE6mEVIlchYif7WC2pQhn+g0w6xooCObVi+4A== +"@fontsource/noto-sans@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@fontsource/noto-sans/-/noto-sans-5.1.0.tgz#54a5edd1b2b8c8e17bec6a85d4ee3a53b4b89c1f" + integrity sha512-P6X+ynPOteCsbUHI7rU4UIpRJcuraJ3OllKqPIjKgxPZS0yPtxFyquADb4SmcgZosRrgqDy34/dcSIhio3Qx4Q== "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@hookform/resolvers@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@hookform/resolvers/-/resolvers-3.9.0.tgz#cf540ac21c6c0cd24a40cf53d8e6d64391fb753d" - integrity sha512-bU0Gr4EepJ/EQsH/IwEzYLsT/PEj5C0ynLQ4m+GSHS+xKH4TfSelhluTgOaoc4kA5s7eCsQbM4wvZLzELmWzUg== +"@hookform/resolvers@^3.9.1": + version "3.9.1" + resolved "https://registry.yarnpkg.com/@hookform/resolvers/-/resolvers-3.9.1.tgz#a23883c40bfd449cb6c6ab5a0fa0729184c950ff" + integrity sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug== "@humanwhocodes/config-array@^0.13.0": version "0.13.0" @@ -1744,19 +1744,19 @@ resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== -"@types/jsdom@^21.1.6": - version "21.1.6" - resolved "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.6.tgz" - integrity sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw== +"@types/jsdom@^21.1.7": + version "21.1.7" + resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-21.1.7.tgz#9edcb09e0b07ce876e7833922d3274149c898cfa" + integrity sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA== dependencies: "@types/node" "*" "@types/tough-cookie" "*" parse5 "^7.0.0" -"@types/jsonwebtoken@^9.0.6": - version "9.0.6" - resolved "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.6.tgz" - integrity sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw== +"@types/jsonwebtoken@^9.0.7": + version "9.0.7" + resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.7.tgz#e49b96c2b29356ed462e9708fc73b833014727d2" + integrity sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg== dependencies: "@types/node" "*" @@ -2005,12 +2005,12 @@ modern-ahocorasick "^1.0.0" picocolors "^1.0.0" -"@vanilla-extract/dynamic@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@vanilla-extract/dynamic/-/dynamic-2.1.1.tgz#bc93a577b127a7dcb6f254973d13a863029a7faf" - integrity sha512-iqf736036ujEIKsIq28UsBEMaLC2vR2DhwKyrG3NDb/fRy9qL9FKl1TqTtBV4daU30Uh3saeik4vRzN8bzQMbw== +"@vanilla-extract/dynamic@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@vanilla-extract/dynamic/-/dynamic-2.1.2.tgz#b1d1c1e0e392934c5a3bbb53f99069a7721311ac" + integrity sha512-9BGMciD8rO1hdSPIAh1ntsG4LPD3IYKhywR7VOmmz9OO4Lx1hlwkSg3E6X07ujFx7YuBfx0GDQnApG9ESHvB2A== dependencies: - "@vanilla-extract/private" "^1.0.5" + "@vanilla-extract/private" "^1.0.6" "@vanilla-extract/integration@^7.1.3": version "7.1.4" @@ -2035,10 +2035,10 @@ resolved "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.4.tgz" integrity sha512-8FGD6AejeC/nXcblgNCM5rnZb9KXa4WNkR03HCWtdJBpANjTgjHEglNLFnhuvdQ78tC6afaxBPI+g7F2NX3tgg== -"@vanilla-extract/private@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@vanilla-extract/private/-/private-1.0.5.tgz#8c08ac4851f4cc89a3dcdb858d8938e69b1481c4" - integrity sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw== +"@vanilla-extract/private@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@vanilla-extract/private/-/private-1.0.6.tgz#f10bbf3189f7b827d0bd7f804a6219dd03ddbdd4" + integrity sha512-ytsG/JLweEjw7DBuZ/0JCN4WAQgM9erfSTdS1NQY778hFQSZ6cfCDEZZ0sgVm4k54uNz6ImKB33AYvSR//fjxw== "@vanilla-extract/recipes@^0.5.2": version "0.5.2" @@ -2274,14 +2274,12 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -aria-query@~5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" - integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== - dependencies: - deep-equal "^2.0.5" +aria-query@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" + integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== -array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: +array-buffer-byte-length@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== @@ -2426,10 +2424,10 @@ axe-core@^4.10.0: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59" integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g== -axios@^1.7.7: - version "1.7.7" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" - integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== +axios@^1.7.9: + version "1.7.9" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.9.tgz#d7d071380c132a24accda1b2cfc1535b79ec650a" + integrity sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw== dependencies: follow-redirects "^1.15.6" form-data "^4.0.0" @@ -2467,10 +2465,10 @@ bep53-range@^2.0.0: resolved "https://registry.yarnpkg.com/bep53-range/-/bep53-range-2.0.0.tgz#a1770475661b4b814c4359e4b66f7cbd88de2b10" integrity sha512-sMm2sV5PRs0YOVk0LTKtjuIprVzxgTQUsrGX/7Yph2Rm4FO2Fqqtq7hNjsOB5xezM4v4+5rljCgK++UeQJZguA== -better-sqlite3@^11.3.0: - version "11.3.0" - resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-11.3.0.tgz#f10b32ddff665c33176d148e707bd1e57dfd0284" - integrity sha512-iHt9j8NPYF3oKCNOO5ZI4JwThjt3Z6J6XrcwG85VNMVzv1ByqrHWv5VILEbCMFWDsoHhXvQ7oC8vgRXFAKgl9w== +better-sqlite3@^11.7.0: + version "11.7.0" + resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-11.7.0.tgz#3eaa0f54f9e57d0a100d980e42320f8b9a4cd676" + integrity sha512-mXpa5jnIKKHeoGzBrUJrc65cXFKcILGZpU3FXR0pradUEm9MA7UZz02qfEejaMcm9iXrSOCenwwYMJ/tZ1y5Ig== dependencies: bindings "^1.5.0" prebuild-install "^7.1.1" @@ -2653,6 +2651,14 @@ cacheable-request@^7.0.2: normalize-url "^6.0.1" responselike "^2.0.0" +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz#32e5892e6361b29b0b545ba6f7763378daca2840" + integrity sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" @@ -2664,6 +2670,24 @@ call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: get-intrinsic "^1.2.4" set-function-length "^1.2.1" +call-bind@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" + integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" + get-intrinsic "^1.2.4" + set-function-length "^1.2.2" + +call-bound@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.2.tgz#9dbd4daf9f5f753bec3e4c8fbb8a2ecc4de6c39b" + integrity sha512-0lk0PHFe/uz0vl527fG9CgdE9WdafjDbCXvBbs+LUv000TVt2Jjhqbs4Jwm8gz070w8xXyEAxrPOMullsxXeGg== + dependencies: + call-bind "^1.0.8" + get-intrinsic "^1.2.5" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -3126,30 +3150,6 @@ dedent@^1.5.1, dedent@^1.5.3: resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== -deep-equal@^2.0.5: - version "2.2.3" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1" - integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.5" - es-get-iterator "^1.1.3" - get-intrinsic "^1.2.2" - is-arguments "^1.1.1" - is-array-buffer "^3.0.2" - is-date-object "^1.0.5" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - isarray "^2.0.5" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.13" - deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -3220,10 +3220,10 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -dexie@^4.0.9: - version "4.0.9" - resolved "https://registry.yarnpkg.com/dexie/-/dexie-4.0.9.tgz#8c4e827815a84ef4fdc6aa7923f89ea2cda87610" - integrity sha512-VQG1huEVSAdDZssb9Bb9mFy+d3jAE0PT4d1nIRYlT46ip1fzbs1tXi0SlUayRDgV3tTbJG8ZRqAo2um49gtynA== +dexie@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/dexie/-/dexie-4.0.10.tgz#979e3ee75993b44eea3852f97ceb198019d5b287" + integrity sha512-eM2RzuR3i+M046r2Q0Optl3pS31qTWf8aFuA7H9wnsHTwl8EPvroVLwvQene/6paAs39Tbk6fWZcn2aZaHkc/w== diff@^4.0.1: version "4.0.2" @@ -3314,6 +3314,15 @@ dotenv@^16.0.3, dotenv@^16.4.4, dotenv@^16.4.5: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== +dunder-proto@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.0.tgz#c2fce098b3c8f8899554905f4377b6d85dabaa80" + integrity sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-errors "^1.3.0" + gopd "^1.2.0" + eastasianwidth@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" @@ -3349,10 +3358,10 @@ electron-builder@^25.1.8: simple-update-notifier "2.0.0" yargs "^17.6.2" -electron-log@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-5.2.0.tgz#505716926dfcf9cb3e74f42b1003be6d865bcb88" - integrity sha512-VjLkvaLmbP3AOGOh5Fob9M8bFU0mmeSAb5G2EoTBx+kQLf2XA/0byzjsVGBTHhikbT+m1AB27NEQUv9wX9nM8w== +electron-log@^5.2.4: + version "5.2.4" + resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-5.2.4.tgz#6b488d9db80aa3c6f3dc39bcd635fc9d1f79c8af" + integrity sha512-iX12WXc5XAaKeHg2QpiFjVwL+S1NVHPFd3V5RXtCmKhpAzXsVQnR3UEc0LovM6p6NkUQxDWnkdkaam9FNUVmCA== electron-publish@25.1.7: version "25.1.7" @@ -3398,10 +3407,10 @@ electron-vite@^2.0.0: magic-string "^0.30.10" picocolors "^1.0.1" -electron@^30.3.0: - version "30.5.1" - resolved "https://registry.yarnpkg.com/electron/-/electron-30.5.1.tgz#9f6060ce5b869c3803cbf8064305e9c3056c0744" - integrity sha512-AhL7+mZ8Lg14iaNfoYTkXQ2qee8mmsQyllKdqxlpv/zrKgfxz6jNVtcRRbQtLxtF8yzcImWdfTQROpYiPumdbw== +electron@^31.7.6: + version "31.7.6" + resolved "https://registry.yarnpkg.com/electron/-/electron-31.7.6.tgz#c3eccfdd2209cd782e9c2a1fc3b9a5532406928d" + integrity sha512-fc2kMaEc/zxGTW6oCxbuE7BQNOlDucSo+351AiovBAcp7G0iQkVu3k2kHIQolSsD38+tPdBj/N02DVpZTzi7rg== dependencies: "@electron/get" "^2.0.0" "@types/node" "^20.9.0" @@ -3453,7 +3462,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3: +es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2, es-abstract@^1.23.3: version "1.23.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== @@ -3505,6 +3514,58 @@ es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23 unbox-primitive "^1.0.2" which-typed-array "^1.1.15" +es-abstract@^1.23.5: + version "1.23.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.5.tgz#f4599a4946d57ed467515ed10e4f157289cd52fb" + integrity sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.3" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.3" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + es-define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" @@ -3512,30 +3573,20 @@ es-define-property@^1.0.0: dependencies: get-intrinsic "^1.2.4" +es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + es-errors@^1.2.1, es-errors@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-get-iterator@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - is-arguments "^1.1.1" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.7" - isarray "^2.0.5" - stop-iteration-iterator "^1.0.0" - -es-iterator-helpers@^1.0.19: - version "1.0.19" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz#117003d0e5fec237b4b5c08aded722e0c6d50ca8" - integrity sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw== +es-iterator-helpers@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz#2f1a3ab998b30cb2d10b195b587c6d9ebdebf152" + integrity sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q== dependencies: call-bind "^1.0.7" define-properties "^1.2.1" @@ -3544,12 +3595,13 @@ es-iterator-helpers@^1.0.19: es-set-tostringtag "^2.0.3" function-bind "^1.1.2" get-intrinsic "^1.2.4" - globalthis "^1.0.3" + globalthis "^1.0.4" + gopd "^1.0.1" has-property-descriptors "^1.0.2" has-proto "^1.0.3" has-symbols "^1.0.3" internal-slot "^1.0.7" - iterator.prototype "^1.1.2" + iterator.prototype "^1.1.3" safe-array-concat "^1.1.2" es-object-atoms@^1.0.0: @@ -3667,12 +3719,12 @@ eslint-config-prettier@^9.1.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== -eslint-plugin-jsx-a11y@^6.8.0: - version "6.10.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.0.tgz#36fb9dead91cafd085ddbe3829602fb10ef28339" - integrity sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg== +eslint-plugin-jsx-a11y@^6.10.2: + version "6.10.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz#d2812bb23bf1ab4665f1718ea442e8372e638483" + integrity sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q== dependencies: - aria-query "~5.1.3" + aria-query "^5.3.2" array-includes "^3.1.8" array.prototype.flatmap "^1.3.2" ast-types-flow "^0.0.8" @@ -3680,14 +3732,13 @@ eslint-plugin-jsx-a11y@^6.8.0: axobject-query "^4.1.0" damerau-levenshtein "^1.0.8" emoji-regex "^9.2.2" - es-iterator-helpers "^1.0.19" hasown "^2.0.2" jsx-ast-utils "^3.3.5" language-tags "^1.0.9" minimatch "^3.1.2" object.fromentries "^2.0.8" safe-regex-test "^1.0.3" - string.prototype.includes "^2.0.0" + string.prototype.includes "^2.0.1" eslint-plugin-prettier@^5.0.1: version "5.2.1" @@ -3702,17 +3753,17 @@ eslint-plugin-react-hooks@^4.6.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596" integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== -eslint-plugin-react@^7.33.2: - version "7.37.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz#56493d7d69174d0d828bc83afeffe96903fdadbd" - integrity sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg== +eslint-plugin-react@^7.37.2: + version "7.37.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz#cd0935987876ba2900df2f58339f6d92305acc7a" + integrity sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w== dependencies: array-includes "^3.1.8" array.prototype.findlast "^1.2.5" array.prototype.flatmap "^1.3.2" array.prototype.tosorted "^1.1.4" doctrine "^2.1.0" - es-iterator-helpers "^1.0.19" + es-iterator-helpers "^1.1.0" estraverse "^5.3.0" hasown "^2.0.2" jsx-ast-utils "^2.4.1 || ^3.0.0" @@ -4129,7 +4180,7 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== @@ -4140,6 +4191,22 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" +get-intrinsic@^1.2.5, get-intrinsic@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.6.tgz#43dd3dd0e7b49b82b2dfcad10dc824bf7fc265d5" + integrity sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA== + dependencies: + call-bind-apply-helpers "^1.0.1" + dunder-proto "^1.0.0" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + function-bind "^1.1.2" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.0.0" + get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -4284,7 +4351,7 @@ globals@^13.19.0: dependencies: type-fest "^0.20.2" -globalthis@^1.0.1, globalthis@^1.0.3: +globalthis@^1.0.1, globalthis@^1.0.3, globalthis@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== @@ -4311,6 +4378,11 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" +gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + got@^11.7.0, got@^11.8.5: version "11.8.6" resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" @@ -4370,6 +4442,11 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== +has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" @@ -4468,10 +4545,10 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -husky@^9.0.11: - version "9.1.6" - resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.6.tgz#e23aa996b6203ab33534bdc82306b0cf2cb07d6c" - integrity sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A== +husky@^9.1.7: + version "9.1.7" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.7.tgz#d46a38035d101b46a70456a850ff4201344c0b2d" + integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== i18next-browser-languagedetector@^7.2.1: version "7.2.1" @@ -4573,7 +4650,7 @@ ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -internal-slot@^1.0.4, internal-slot@^1.0.7: +internal-slot@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== @@ -4595,15 +4672,7 @@ ip-address@^9.0.5: jsbn "1.1.0" sprintf-js "^1.1.3" -is-arguments@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: +is-array-buffer@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== @@ -4635,6 +4704,13 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" +is-bigint@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.1.0.tgz#dda7a3445df57a42583db4228682eba7c4170672" + integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== + dependencies: + has-bigints "^1.0.2" + is-boolean-object@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" @@ -4643,6 +4719,14 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-boolean-object@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.1.tgz#c20d0c654be05da4fbc23c562635c019e93daf89" + integrity sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng== + dependencies: + call-bound "^1.0.2" + has-tostringtag "^1.0.2" + is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" @@ -4669,24 +4753,32 @@ is-data-view@^1.0.1: dependencies: is-typed-array "^1.1.13" -is-date-object@^1.0.1, is-date-object@^1.0.5: +is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" +is-date-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7" + integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== + dependencies: + call-bound "^1.0.2" + has-tostringtag "^1.0.2" + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-finalizationregistry@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" - integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== +is-finalizationregistry@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz#d74a7d0c5f3578e34a20729e69202e578d495dc2" + integrity sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -4717,7 +4809,7 @@ is-lambda@^1.0.1: resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== -is-map@^2.0.2, is-map@^2.0.3: +is-map@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== @@ -4734,6 +4826,14 @@ is-number-object@^1.0.4: dependencies: has-tostringtag "^1.0.0" +is-number-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.0.tgz#5a867e9ecc3d294dda740d9f127835857af7eb05" + integrity sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw== + dependencies: + call-bind "^1.0.7" + has-tostringtag "^1.0.2" + is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -4762,7 +4862,17 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-set@^2.0.2, is-set@^2.0.3: +is-regex@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" + integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== + dependencies: + call-bound "^1.0.2" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +is-set@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== @@ -4786,6 +4896,14 @@ is-string@^1.0.5, is-string@^1.0.7: dependencies: has-tostringtag "^1.0.0" +is-string@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.0.tgz#8cb83c5d57311bf8058bc6c8db294711641da45d" + integrity sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g== + dependencies: + call-bind "^1.0.7" + has-tostringtag "^1.0.2" + is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" @@ -4793,6 +4911,15 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" +is-symbol@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz#f47761279f532e2b05a7024a7506dbbedacd0634" + integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== + dependencies: + call-bound "^1.0.2" + has-symbols "^1.1.0" + safe-regex-test "^1.1.0" + is-text-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-2.0.0.tgz#b2484e2b720a633feb2e85b67dc193ff72c75636" @@ -4852,16 +4979,17 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -iterator.prototype@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" - integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== +iterator.prototype@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.4.tgz#4ae6cf98b97fdc717b7e159d79dc25f8fc9482f1" + integrity sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA== dependencies: - define-properties "^1.2.1" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - reflect.getprototypeof "^1.0.4" - set-function-name "^2.0.1" + define-data-property "^1.1.4" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.6" + has-symbols "^1.1.0" + reflect.getprototypeof "^1.0.8" + set-function-name "^2.0.2" jackspeak@^2.3.6: version "2.3.6" @@ -5321,6 +5449,11 @@ matcher@^3.0.0: dependencies: escape-string-regexp "^4.0.0" +math-intrinsics@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.0.0.tgz#4e04bf87c85aa51e90d078dac2252b4eb5260817" + integrity sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA== + media-query-parser@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/media-query-parser/-/media-query-parser-2.0.2.tgz#ff79e56cee92615a304a1c2fa4f2bd056c0a1d29" @@ -5664,13 +5797,10 @@ object-inspect@^1.13.1: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== -object-is@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" - integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" +object-inspect@^1.13.3: + version "1.13.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a" + integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA== object-keys@^1.1.1: version "1.1.1" @@ -5996,10 +6126,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^3.2.4: - version "3.3.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" - integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== +prettier@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.4.2.tgz#a5ce1fb522a588bf2b78ca44c6e6fe5aa5a2b13f" + integrity sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ== progress@^2.0.3: version "2.0.3" @@ -6185,25 +6315,26 @@ reflect-metadata@^0.2.1: resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b" integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== -reflect.getprototypeof@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz#3ab04c32a8390b770712b7a8633972702d278859" - integrity sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg== +reflect.getprototypeof@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.8.tgz#c58afb17a4007b4d1118c07b92c23fca422c5d82" + integrity sha512-B5dj6usc5dkk8uFliwjwDHM8To5/QwdKz9JcBZ8Ic4G1f0YmeeJTtE/ZTdgRFPAfxZFiUaPhZ1Jcs4qeagItGQ== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" define-properties "^1.2.1" - es-abstract "^1.23.1" + dunder-proto "^1.0.0" + es-abstract "^1.23.5" es-errors "^1.3.0" get-intrinsic "^1.2.4" - globalthis "^1.0.3" - which-builtin-type "^1.1.3" + gopd "^1.2.0" + which-builtin-type "^1.2.0" regenerator-runtime@^0.14.0: version "0.14.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== -regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.2: +regexp.prototype.flags@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== @@ -6213,6 +6344,16 @@ regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.2: es-errors "^1.3.0" set-function-name "^2.0.1" +regexp.prototype.flags@^1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42" + integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.2" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -6397,6 +6538,15 @@ safe-regex-test@^1.0.3: es-errors "^1.3.0" is-regex "^1.1.4" +safe-regex-test@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1" + integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-regex "^1.2.1" + "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -6589,7 +6739,7 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-function-length@^1.2.1: +set-function-length@^1.2.1, set-function-length@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== @@ -6768,13 +6918,6 @@ stat-mode@^1.0.0: resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== -stop-iteration-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" - integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== - dependencies: - internal-slot "^1.0.4" - "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -6802,13 +6945,14 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string.prototype.includes@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz#8986d57aee66d5460c144620a6d873778ad7289f" - integrity sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg== +string.prototype.includes@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz#eceef21283640761a81dbe16d6c7171a4edf7d92" + integrity sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg== dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" string.prototype.matchall@^4.0.11: version "4.0.11" @@ -7366,10 +7510,10 @@ use-sync-external-store@^1.0.0: resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz#c3b6390f3a30eba13200d2302dcdf1e7b57b2ef9" integrity sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw== -user-agents@^1.1.193: - version "1.1.325" - resolved "https://registry.yarnpkg.com/user-agents/-/user-agents-1.1.325.tgz#12c3602d6b0175468f45564b3c684c390c3be57e" - integrity sha512-BmVDscJOZsBBztMPHg+wf65QwbT+N3C46YEsuW8BmcxRxwKh2AbdSaKEjzoC7rDlyuECXEUXO+C2eW3QAhbl2A== +user-agents@^1.1.387: + version "1.1.387" + resolved "https://registry.yarnpkg.com/user-agents/-/user-agents-1.1.387.tgz#afc69da00b50eee7ffa17724890e755a6672b99f" + integrity sha512-EQ1tx80ucECUrw+mY/lI4lVQTEN7nYflGpuLwqZS6vXw+pfzHMnhKPwZN9NiR+Mo9QxmDeNmk+2ZDEvInsxrxw== dependencies: lodash.clonedeep "^4.5.0" @@ -7498,25 +7642,37 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-builtin-type@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.4.tgz#592796260602fc3514a1b5ee7fa29319b72380c3" - integrity sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w== +which-boxed-primitive@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.0.tgz#2d850d6c4ac37b95441a67890e19f3fda8b6c6d9" + integrity sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng== dependencies: + is-bigint "^1.1.0" + is-boolean-object "^1.2.0" + is-number-object "^1.1.0" + is-string "^1.1.0" + is-symbol "^1.1.0" + +which-builtin-type@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz#89183da1b4907ab089a6b02029cc5d8d6574270e" + integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== + dependencies: + call-bound "^1.0.2" function.prototype.name "^1.1.6" has-tostringtag "^1.0.2" is-async-function "^2.0.0" - is-date-object "^1.0.5" - is-finalizationregistry "^1.0.2" + is-date-object "^1.1.0" + is-finalizationregistry "^1.1.0" is-generator-function "^1.0.10" - is-regex "^1.1.4" + is-regex "^1.2.1" is-weakref "^1.0.2" isarray "^2.0.5" - which-boxed-primitive "^1.0.2" + which-boxed-primitive "^1.1.0" which-collection "^1.0.2" - which-typed-array "^1.1.15" + which-typed-array "^1.1.16" -which-collection@^1.0.1, which-collection@^1.0.2: +which-collection@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== @@ -7526,7 +7682,7 @@ which-collection@^1.0.1, which-collection@^1.0.2: is-weakmap "^2.0.2" is-weakset "^2.0.3" -which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15: +which-typed-array@^1.1.14, which-typed-array@^1.1.15: version "1.1.15" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== @@ -7537,6 +7693,17 @@ which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15: gopd "^1.0.1" has-tostringtag "^1.0.2" +which-typed-array@^1.1.16: + version "1.1.16" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.16.tgz#db4db429c4706feca2f01677a144278e4a8c216b" + integrity sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + which@2.0.2, which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -7633,10 +7800,10 @@ yallist@^5.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-5.0.0.tgz#00e2de443639ed0d78fd87de0d27469fbcffb533" integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw== -yaml@^2.4.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.1.tgz#c9772aacf62cb7494a95b0c4f1fb065b563db130" - integrity sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q== +yaml@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.6.1.tgz#42f2b1ba89203f374609572d5349fb8686500773" + integrity sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg== yargs-parser@^20.2.2: version "20.2.9" @@ -7697,17 +7864,17 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110" integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== -yup@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/yup/-/yup-1.4.0.tgz#898dcd660f9fb97c41f181839d3d65c3ee15a43e" - integrity sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg== +yup@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/yup/-/yup-1.5.0.tgz#1aaa5e453f04424094b9c8a0e5292e0ac2d97246" + integrity sha512-NJfBIHnp1QbqZwxcgl6irnDMIsb/7d1prNhFx02f1kp8h+orpi4xs3w90szNpOh68a/iHPdMsYvhZWoDmUvXBQ== dependencies: property-expr "^2.0.5" tiny-case "^1.0.3" toposort "^2.0.2" type-fest "^2.19.0" -zod@^3.23.8: - version "3.23.8" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" - integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== +zod@^3.24.1: + version "3.24.1" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.24.1.tgz#27445c912738c8ad1e9de1bea0359fa44d9d35ee" + integrity sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A== From 6f417d23d14bebf68c27bb8f28d53ad842495338 Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Fri, 13 Dec 2024 16:48:09 -0300 Subject: [PATCH 02/17] fix: handle achievement parse error causing hydra to never search new achievements in real time --- .../achievement-watcher-manager.ts | 36 +-- .../achievements/parse-achievement-file.ts | 224 +++++++++--------- 2 files changed, 127 insertions(+), 133 deletions(-) diff --git a/src/main/services/achievements/achievement-watcher-manager.ts b/src/main/services/achievements/achievement-watcher-manager.ts index b7c71f86..6a1eb11c 100644 --- a/src/main/services/achievements/achievement-watcher-manager.ts +++ b/src/main/services/achievements/achievement-watcher-manager.ts @@ -236,24 +236,28 @@ export class AchievementWatcherManager { }; public static preSearchAchievements = async () => { - const newAchievementsCount = - process.platform === "win32" - ? await this.preSearchAchievementsWindows() - : await this.preSearchAchievementsWithWine(); + try { + const newAchievementsCount = + process.platform === "win32" + ? await this.preSearchAchievementsWindows() + : await this.preSearchAchievementsWithWine(); - const totalNewGamesWithAchievements = newAchievementsCount.filter( - (achievements) => achievements - ).length; - const totalNewAchievements = newAchievementsCount.reduce( - (acc, val) => acc + val, - 0 - ); - - if (totalNewAchievements > 0) { - publishCombinedNewAchievementNotification( - totalNewAchievements, - totalNewGamesWithAchievements + const totalNewGamesWithAchievements = newAchievementsCount.filter( + (achievements) => achievements + ).length; + const totalNewAchievements = newAchievementsCount.reduce( + (acc, val) => acc + val, + 0 ); + + if (totalNewAchievements > 0) { + publishCombinedNewAchievementNotification( + totalNewAchievements, + totalNewGamesWithAchievements + ); + } + } catch (err) { + achievementsLogger.error("Error on preSearchAchievements", err); } this.hasFinishedMergingWithRemote = true; diff --git a/src/main/services/achievements/parse-achievement-file.ts b/src/main/services/achievements/parse-achievement-file.ts index 3aecadd6..18f0c25b 100644 --- a/src/main/services/achievements/parse-achievement-file.ts +++ b/src/main/services/achievements/parse-achievement-file.ts @@ -9,144 +9,134 @@ export const parseAchievementFile = ( ): UnlockedAchievement[] => { if (!existsSync(filePath)) return []; - if (type == Cracker.codex) { - const parsed = iniParse(filePath); - return processDefault(parsed); + try { + if (type == Cracker.codex) { + const parsed = iniParse(filePath); + return processDefault(parsed); + } + + if (type == Cracker.rune) { + const parsed = iniParse(filePath); + return processDefault(parsed); + } + + if (type === Cracker.onlineFix) { + const parsed = iniParse(filePath); + return processOnlineFix(parsed); + } + + if (type === Cracker.goldberg) { + const parsed = jsonParse(filePath); + return processGoldberg(parsed); + } + + if (type == Cracker.userstats) { + const parsed = iniParse(filePath); + return processUserStats(parsed); + } + + if (type == Cracker.rld) { + const parsed = iniParse(filePath); + return processRld(parsed); + } + + if (type === Cracker.skidrow) { + const parsed = iniParse(filePath); + return processSkidrow(parsed); + } + + if (type === Cracker._3dm) { + const parsed = iniParse(filePath); + return process3DM(parsed); + } + + if (type === Cracker.flt) { + const achievements = readdirSync(filePath); + + return achievements.map((achievement) => { + return { + name: achievement, + unlockTime: Date.now(), + }; + }); + } + + if (type === Cracker.creamAPI) { + const parsed = iniParse(filePath); + return processCreamAPI(parsed); + } + + if (type === Cracker.empress) { + const parsed = jsonParse(filePath); + return processGoldberg(parsed); + } + + if (type === Cracker.razor1911) { + return processRazor1911(filePath); + } + + achievementsLogger.log( + `Unprocessed ${type} achievements found on ${filePath}` + ); + return []; + } catch (err) { + achievementsLogger.error(`Error parsing ${type} - ${filePath}`, err); + return []; } - - if (type == Cracker.rune) { - const parsed = iniParse(filePath); - return processDefault(parsed); - } - - if (type === Cracker.onlineFix) { - const parsed = iniParse(filePath); - return processOnlineFix(parsed); - } - - if (type === Cracker.goldberg) { - const parsed = jsonParse(filePath); - return processGoldberg(parsed); - } - - if (type == Cracker.userstats) { - const parsed = iniParse(filePath); - return processUserStats(parsed); - } - - if (type == Cracker.rld) { - const parsed = iniParse(filePath); - return processRld(parsed); - } - - if (type === Cracker.skidrow) { - const parsed = iniParse(filePath); - return processSkidrow(parsed); - } - - if (type === Cracker._3dm) { - const parsed = iniParse(filePath); - return process3DM(parsed); - } - - if (type === Cracker.flt) { - const achievements = readdirSync(filePath); - - return achievements.map((achievement) => { - return { - name: achievement, - unlockTime: Date.now(), - }; - }); - } - - if (type === Cracker.creamAPI) { - const parsed = iniParse(filePath); - return processCreamAPI(parsed); - } - - if (type === Cracker.empress) { - const parsed = jsonParse(filePath); - return processGoldberg(parsed); - } - - if (type === Cracker.razor1911) { - return processRazor1911(filePath); - } - - achievementsLogger.log( - `Unprocessed ${type} achievements found on ${filePath}` - ); - return []; }; const iniParse = (filePath: string) => { - try { - const fileContent = readFileSync(filePath, "utf-8"); + const fileContent = readFileSync(filePath, "utf-8"); - const lines = - fileContent.charCodeAt(0) === 0xfeff - ? fileContent.slice(1).split(/[\r\n]+/) - : fileContent.split(/[\r\n]+/); + const lines = + fileContent.charCodeAt(0) === 0xfeff + ? fileContent.slice(1).split(/[\r\n]+/) + : fileContent.split(/[\r\n]+/); - let objectName = ""; - const object: Record> = {}; + let objectName = ""; + const object: Record> = {}; - for (const line of lines) { - if (line.startsWith("###") || !line.length) continue; + for (const line of lines) { + if (line.startsWith("###") || !line.length) continue; - if (line.startsWith("[") && line.endsWith("]")) { - objectName = line.slice(1, -1); - object[objectName] = {}; - } else { - const [name, ...value] = line.split("="); - object[objectName][name.trim()] = value.join("=").trim(); - } + if (line.startsWith("[") && line.endsWith("]")) { + objectName = line.slice(1, -1); + object[objectName] = {}; + } else { + const [name, ...value] = line.split("="); + object[objectName][name.trim()] = value.join("=").trim(); } - - return object; - } catch (err) { - achievementsLogger.error(`Error parsing ${filePath}`, err); - return {}; } + + return object; }; const jsonParse = (filePath: string) => { - try { - return JSON.parse(readFileSync(filePath, "utf-8")); - } catch (err) { - achievementsLogger.error(`Error parsing ${filePath}`, err); - return {}; - } + return JSON.parse(readFileSync(filePath, "utf-8")); }; const processRazor1911 = (filePath: string): UnlockedAchievement[] => { - try { - const fileContent = readFileSync(filePath, "utf-8"); + const fileContent = readFileSync(filePath, "utf-8"); - const lines = - fileContent.charCodeAt(0) === 0xfeff - ? fileContent.slice(1).split(/[\r\n]+/) - : fileContent.split(/[\r\n]+/); + const lines = + fileContent.charCodeAt(0) === 0xfeff + ? fileContent.slice(1).split(/[\r\n]+/) + : fileContent.split(/[\r\n]+/); - const achievements: UnlockedAchievement[] = []; - for (const line of lines) { - if (!line.length) continue; + const achievements: UnlockedAchievement[] = []; + for (const line of lines) { + if (!line.length) continue; - const [name, unlocked, unlockTime] = line.split(" "); - if (unlocked === "1") { - achievements.push({ - name, - unlockTime: Number(unlockTime) * 1000, - }); - } + const [name, unlocked, unlockTime] = line.split(" "); + if (unlocked === "1") { + achievements.push({ + name, + unlockTime: Number(unlockTime) * 1000, + }); } - - return achievements; - } catch (err) { - achievementsLogger.error(`Error processing ${filePath}`, err); - return []; } + + return achievements; }; const processOnlineFix = (unlockedAchievements: any): UnlockedAchievement[] => { From 454beff2d3ed0618e73addd884b7ad82e90d49ad Mon Sep 17 00:00:00 2001 From: hydrasources Date: Sat, 14 Dec 2024 16:04:19 +0300 Subject: [PATCH 03/17] Update translation.json --- src/locales/ru/translation.json | 105 ++++++++++++++++++++++++++------ 1 file changed, 86 insertions(+), 19 deletions(-) diff --git a/src/locales/ru/translation.json b/src/locales/ru/translation.json index d1282951..a0797ebc 100644 --- a/src/locales/ru/translation.json +++ b/src/locales/ru/translation.json @@ -4,12 +4,14 @@ "successfully_signed_in": "Успешный вход" }, "home": { - "featured": "Рекомендованное", + "featured": "Рекомендации", "surprise_me": "Удиви меня", "no_results": "Ничего не найдено", "hot": "Сейчас в топе", "start_typing": "Начинаю вводить текст для поиска...", - "weekly": "📅 Лучшие игры недели" + "weekly": "📅 Лучшие игры недели", + "achievements": "🏆 Игры, в которые нужно победить" + }, "sidebar": { "catalogue": "Каталог", @@ -19,7 +21,7 @@ "downloading_metadata": "{{title}} (Загрузка метаданных…)", "paused": "{{title}} (Приостановлено)", "downloading": "{{title}} ({{percentage}} - Загрузка…)", - "filter": "Фильтр библиотеки", + "filter": "Поиск", "home": "Главная", "queued": "{{title}} (В очереди)", "game_has_no_executable": "Файл запуска игры не выбран", @@ -49,10 +51,10 @@ "previous_page": "Предыдущая страница" }, "game_details": { - "open_download_options": "Открыть варианты загрузки", - "download_options_zero": "Нет вариантов загрузки", - "download_options_one": "{{count}} вариант загрузки", - "download_options_other": "{{count}} вариантов загрузки", + "open_download_options": "Открыть источники", + "download_options_zero": "Нет источников", + "download_options_one": "{{count}} источник", + "download_options_other": "{{count}} источников", "updated_at": "Обновлено {{updated_at}}", "install": "Установить", "resume": "Возобновить", @@ -63,7 +65,7 @@ "eta": "Окончание {{eta}}", "calculating_eta": "Подсчёт оставшегося времени…", "downloading_metadata": "Загрузка метаданных…", - "filter": "Фильтр репаков", + "filter": "Поиск репаков", "requirements": "Системные требования", "minimum": "Минимальные", "recommended": "Рекомендуемые", @@ -77,7 +79,7 @@ "accuracy": "точность {{accuracy}}%", "add_to_library": "Добавить в библиотеку", "remove_from_library": "Удалить из библиотеки", - "no_downloads": "Нет доступных загрузок", + "no_downloads": "Нет доступных источников", "play_time": "Сыграно {{amount}}", "last_time_played": "Последний запуск {{period}}", "not_played_yet": "Вы ещё не играли в {{title}}", @@ -91,7 +93,7 @@ "select_folder_hint": "Чтобы изменить папку загрузок по умолчанию, откройте <0>Настройки", "download_now": "Загрузить сейчас", "no_shop_details": "Не удалось получить описание", - "download_options": "Вариантов загрузки", + "download_options": "Источники", "download_path": "Путь для загрузок", "previous_screenshot": "Предыдущий скриншот", "next_screenshot": "Следующий скриншот", @@ -119,16 +121,55 @@ "last_downloaded_option": "Последний вариант загрузки", "create_shortcut_success": "Ярлык создан", "create_shortcut_error": "Не удалось создать ярлык", - "allow_nsfw_content": "Продолжать", + "allow_nsfw_content": "Продолжить", "download": "Скачать", "download_count": "Загрузки", "download_error": "Этот вариант загрузки недоступен", "executable_path_in_use": "Исполняемый файл уже используется \"{{game}}\"", "nsfw_content_description": "{{title}} содержит контент, который может не подходить для всех возрастов. \nВы уверены, что хотите продолжить?", "nsfw_content_title": "Эта игра содержит неприемлемый контент", + "refuse_nsfw_content": "Назад", + "stats": "Статистика", "player_count": "Активные игроки", - "refuse_nsfw_content": "Возвращаться", - "stats": "Статистика" + "executable_path_in_use": "Исполняемый файл уже используется \"{{game}}\"", + "warning": "Внимание:", + "hydra_needs_to_remain_open": "Для этой загрузки Hydra должна оставаться открытой до завершения. Если Hydra закроется до завершения, вы потеряете прогресс.", + "achievements": "Достижения", + "achievements_count": "Достижения {{unlockedCount}}/{{achievementsCount}}", + "cloud_save": "Облачное сохранение", + "cloud_save_description": "Сохраняйте ваш прогресс в облаке и продолжайте играть на любом устройстве", + "backups": "Резервные копии", + "install_backup": "Установить", + "delete_backup": "Удалить", + "create_backup": "Создать новую резервную копию", + "last_backup_date": "Последняя резервная копия от {{date}}", + "no_backup_preview": "Сохранения для этого заголовка не найдены", + "restoring_backup": "Восстановление резервной копии ({{progress}} завершено)…", + "uploading_backup": "Загрузка резервной копии…", + "no_backups": "Вы еще не создали резервных копий для этой игры", + "backup_uploaded": "Резервная копия загружена", + "backup_deleted": "Резервная копия удалена", + "backup_restored": "Резервная копия восстановлена", + "see_all_achievements": "Просмотреть все достижения", + "sign_in_to_see_achievements": "Войдите, чтобы увидеть достижения", + "mapping_method_automatic": "Автоматическая", + "mapping_method_manual": "Ручная", + "mapping_method_label": "Метод сопоставления", + "files_automatically_mapped": "Файлы автоматически сопоставлены", + "no_backups_created": "Для этой игры не создано резервных копий", + "manage_files": "Управление файлами", + "loading_save_preview": "Поиск сохранений…", + "wine_prefix": "Префикс Wine", + "wine_prefix_description": "Префикс Wine, используемый для запуска этой игры", + "no_download_option_info": "Информация недоступна", + "backup_deletion_failed": "Не удалось удалить резервную копию", + "max_number_of_artifacts_reached": "Достигнуто максимальное количество резервных копий для этой игры", + "achievements_not_sync": "Ваши достижения не синхронизированы", + "manage_files_description": "Управляйте файлами, которые будут сохраняться и восстанавливаться", + "select_folder": "Выбрать папку", + "backup_from": "Резервная копия от {{date}}", + "custom_backup_location_set": "Установлено настраиваемое местоположение резервной копии" + }, "activation": { "title": "Активировать Hydra", @@ -147,7 +188,7 @@ "completed": "Завершено", "removed": "Не скачано", "cancel": "Отмена", - "filter": "Фильтр загруженных игр", + "filter": "Поиск загруженных игр", "remove": "Удалить", "downloading_metadata": "Загрузка метаданных…", "deleting": "Удаление установщика…", @@ -168,10 +209,13 @@ "change": "Изменить", "notifications": "Уведомления", "enable_download_notifications": "По завершении загрузки", + "enable_achievement_notifications": "Когда достижение разблокировано", "enable_repack_list_notifications": "При добавлении нового репака", "real_debrid_api_token_label": "Real-Debrid API-токен", "quit_app_instead_hiding": "Закрывать приложение вместо сворачивания в трей", "launch_with_system": "Запускать Hydra вместе с системой", + "launch_minimized": "Запустить Hydra в свернутом виде", + "disable_nsfw_alert": "Отключить предупреждение о непристойном контенте", "general": "Основные", "behavior": "Поведение", "download_sources": "Источники загрузки", @@ -206,13 +250,13 @@ "found_download_option_other": "Найдено {{countFormatted}} вариантов загрузки", "import": "Импортировать", "blocked_users": "Заблокированные пользователи", - "friends_only": "Только друзья", + "friends_only": "Только для друзей", "must_be_valid_url": "Источник должен быть действительным URL-адресом.", "privacy": "Конфиденциальность", "private": "Частный", "profile_visibility": "Видимость профиля", "profile_visibility_description": "Выберите, кто может видеть ваш профиль и библиотеку", - "public": "Общественный", + "public": "Публичный", "required_field": "Это поле обязательно к заполнению", "source_already_exists": "Этот источник уже добавлен", "user_unblocked": "Пользователь разблокирован" @@ -223,15 +267,17 @@ "repack_list_updated": "Список репаков обновлен", "repack_count_one": "{{count}} репак добавлен", "repack_count_other": "{{count}} репаков добавлено", - "new_update_available": "Доступна версия {{version}}", - "restart_to_install_update": "Перезапустите Hydra для установки обновления" + "new_update_available": "Доступна новая версия {{version}}", + "restart_to_install_update": "Перезапустите Hydra для установки обновления", + "notification_achievement_unlocked_title": "Достижение разблокировано для {{game}}", + "notification_achievement_unlocked_body": "были разблокированы {{achievement}} и другие {{count}}" }, "system_tray": { "open": "Открыть Hydra", "quit": "Выйти" }, "game_card": { - "no_downloads": "Нет доступных загрузок" + "no_downloads": "Нет доступных источников" }, "binary_not_found_modal": { "title": "Программы не установлены", @@ -310,5 +356,26 @@ "report_reason_violence": "Насилие", "required_field": "Это поле обязательно к заполнению", "undo_friendship_modal_text": "Это отменит вашу дружбу с {{displayName}}." + }, + "achievement": { + "achievement_unlocked": "Достижение разблокировано", + "user_achievements": "Достижения {{displayName}}", + "your_achievements": "Ваши достижения", + "unlocked_at": "Разблокировано:", + "subscription_needed": "Для просмотра этого содержимого необходима подписка на Hydra Cloud", + "new_achievements_unlocked": "Разблокировано {{achievementCount}} новых достижений из {{gameCount}} игр", + "achievement_progress": "{{unlockedCount}}/{{totalCount}} достижений", + "achievements_unlocked_for_game": "Разблокировано {{achievementCount}} новых достижений для {{gameTitle}}" + + }, + "tour": { + "subscription_tour_title": "Подписка Hydra Cloud", + "subscribe_now": "Подпишитесь прямо сейчас", + "cloud_saving": "Сохранение в облаке", + "cloud_achievements": "Сохраняйте свои достижения в облаке", + "animated_profile_picture": "Анимированные фотографии профиля", + "premium_support": "Премиальная поддержка", + "show_and_compare_achievements": "Показывайте и сравнивайте свои достижения с достижениями других пользователей", + "animated_profile_banner": "Анимированный баннер профиля" } } From 1e78532dc5ac025fee44b32ce5bf42e484eed130 Mon Sep 17 00:00:00 2001 From: hydrasources Date: Sat, 14 Dec 2024 16:09:30 +0300 Subject: [PATCH 04/17] Update translation.json --- src/locales/ru/translation.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/ru/translation.json b/src/locales/ru/translation.json index a0797ebc..a1ddfb2d 100644 --- a/src/locales/ru/translation.json +++ b/src/locales/ru/translation.json @@ -10,7 +10,7 @@ "hot": "Сейчас в топе", "start_typing": "Начинаю вводить текст для поиска...", "weekly": "📅 Лучшие игры недели", - "achievements": "🏆 Игры, в которые нужно победить" + "achievements": "🏆 Игры, в которых нужно победить" }, "sidebar": { From 1ea98613fbc630573d963cbc4a1d4f69d9d910f0 Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Mon, 16 Dec 2024 14:57:02 -0300 Subject: [PATCH 05/17] feat: add hidden achievement description option --- src/locales/en/translation.json | 3 +- src/locales/pt-BR/translation.json | 3 +- src/main/entity/user-preferences.entity.ts | 3 + .../events/user/get-unlocked-achievements.ts | 18 ++++- src/main/knex-client.ts | 3 + ..._hidden_achievement_description_column .ts | 20 ++++++ src/main/scripts/get-games-icon-hash.ts | 40 ----------- .../achievements/get-game-achievement-data.ts | 13 ++-- src/main/services/index.ts | 1 - src/main/services/steam-grid.ts | 69 ------------------- .../src/pages/settings/settings-behavior.tsx | 14 ++++ src/types/index.ts | 1 + 12 files changed, 65 insertions(+), 123 deletions(-) create mode 100644 src/main/migrations/20241216140633_add_hidden_achievement_description_column .ts delete mode 100644 src/main/scripts/get-games-icon-hash.ts delete mode 100644 src/main/services/steam-grid.ts diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index 940e3185..b3e1caed 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -258,7 +258,8 @@ "user_unblocked": "User has been unblocked", "enable_achievement_notifications": "When an achievement is unlocked", "launch_minimized": "Launch Hydra minimized", - "disable_nsfw_alert": "Disable NSFW alert" + "disable_nsfw_alert": "Disable NSFW alert", + "show_hidden_achievement_description": "Show hidden achievements description before unlocking them" }, "notifications": { "download_complete": "Download complete", diff --git a/src/locales/pt-BR/translation.json b/src/locales/pt-BR/translation.json index e724cdc3..a1197c78 100644 --- a/src/locales/pt-BR/translation.json +++ b/src/locales/pt-BR/translation.json @@ -254,7 +254,8 @@ "user_unblocked": "Usuário desbloqueado", "enable_achievement_notifications": "Quando uma conquista é desbloqueada", "launch_minimized": "Iniciar o Hydra minimizado", - "disable_nsfw_alert": "Desativar alerta de conteúdo inapropriado" + "disable_nsfw_alert": "Desativar alerta de conteúdo inapropriado", + "show_hidden_achievement_description": "Mostrar descrição de conquistas ocultas antes de debloqueá-las" }, "notifications": { "download_complete": "Download concluído", diff --git a/src/main/entity/user-preferences.entity.ts b/src/main/entity/user-preferences.entity.ts index 357dfb50..6fe7ab77 100644 --- a/src/main/entity/user-preferences.entity.ts +++ b/src/main/entity/user-preferences.entity.ts @@ -41,6 +41,9 @@ export class UserPreferences { @Column("boolean", { default: false }) disableNsfwAlert: boolean; + @Column("boolean", { default: false }) + showHiddenAchievementsDescription: boolean; + @CreateDateColumn() createdAt: Date; diff --git a/src/main/events/user/get-unlocked-achievements.ts b/src/main/events/user/get-unlocked-achievements.ts index a831bc50..ffa25399 100644 --- a/src/main/events/user/get-unlocked-achievements.ts +++ b/src/main/events/user/get-unlocked-achievements.ts @@ -1,6 +1,9 @@ import type { GameShop, UnlockedAchievement, UserAchievement } from "@types"; import { registerEvent } from "../register-event"; -import { gameAchievementRepository } from "@main/repository"; +import { + gameAchievementRepository, + userPreferencesRepository, +} from "@main/repository"; import { getGameAchievementData } from "@main/services/achievements/get-game-achievement-data"; export const getUnlockedAchievements = async ( @@ -12,10 +15,17 @@ export const getUnlockedAchievements = async ( where: { objectId, shop }, }); + const userPreferences = await userPreferencesRepository.findOne({ + where: { id: 1 }, + }); + + const showHiddenAchievementsDescription = + userPreferences?.showHiddenAchievementsDescription || false; + const achievementsData = await getGameAchievementData( objectId, shop, - useCachedData + useCachedData ? cachedAchievements : null ); const unlockedAchievements = JSON.parse( @@ -50,6 +60,10 @@ export const getUnlockedAchievements = async ( unlocked: false, unlockTime: null, icongray: icongray, + description: + !achievementData.hidden || showHiddenAchievementsDescription + ? achievementData.description + : undefined, } as UserAchievement; }) .sort((a, b) => { diff --git a/src/main/knex-client.ts b/src/main/knex-client.ts index 988d42da..bfb4a430 100644 --- a/src/main/knex-client.ts +++ b/src/main/knex-client.ts @@ -13,6 +13,8 @@ import { AddBackgroundImageUrl } from "./migrations/20241016100249_add_backgroun import { AddWinePrefixToGame } from "./migrations/20241019081648_add_wine_prefix_to_game"; import { AddStartMinimizedColumn } from "./migrations/20241030171454_add_start_minimized_column"; import { AddDisableNsfwAlertColumn } from "./migrations/20241106053733_add_disable_nsfw_alert_column"; +import { AddHiddenAchievementDescriptionColumn } from "./migrations/20241216140633_add_hidden_achievement_description_column "; + export type HydraMigration = Knex.Migration & { name: string }; class MigrationSource implements Knex.MigrationSource { @@ -30,6 +32,7 @@ class MigrationSource implements Knex.MigrationSource { AddWinePrefixToGame, AddStartMinimizedColumn, AddDisableNsfwAlertColumn, + AddHiddenAchievementDescriptionColumn, ]); } getMigrationName(migration: HydraMigration): string { diff --git a/src/main/migrations/20241216140633_add_hidden_achievement_description_column .ts b/src/main/migrations/20241216140633_add_hidden_achievement_description_column .ts new file mode 100644 index 00000000..36771c43 --- /dev/null +++ b/src/main/migrations/20241216140633_add_hidden_achievement_description_column .ts @@ -0,0 +1,20 @@ +import type { HydraMigration } from "@main/knex-client"; +import type { Knex } from "knex"; + +export const AddHiddenAchievementDescriptionColumn: HydraMigration = { + name: "AddHiddenAchievementDescriptionColumn", + up: (knex: Knex) => { + return knex.schema.alterTable("user_preferences", (table) => { + return table + .boolean("showHiddenAchievementsDescription") + .notNullable() + .defaultTo(0); + }); + }, + + down: async (knex: Knex) => { + return knex.schema.alterTable("user_preferences", (table) => { + return table.dropColumn("showHiddenAchievementsDescription"); + }); + }, +}; diff --git a/src/main/scripts/get-games-icon-hash.ts b/src/main/scripts/get-games-icon-hash.ts deleted file mode 100644 index 36ecd35e..00000000 --- a/src/main/scripts/get-games-icon-hash.ts +++ /dev/null @@ -1,40 +0,0 @@ -import path from "node:path"; -import fs from "node:fs"; - -import { getSteamGameClientIcon, logger } from "@main/services"; -import { chunk } from "lodash-es"; -import { seedsPath } from "@main/constants"; - -import type { SteamGame } from "@types"; - -const steamGamesPath = path.join(seedsPath, "steam-games.json"); - -const steamGames = JSON.parse( - fs.readFileSync(steamGamesPath, "utf-8") -) as SteamGame[]; - -const chunks = chunk(steamGames, 1500); - -for (const chunk of chunks) { - await Promise.all( - chunk.map(async (steamGame) => { - if (steamGame.clientIcon) return; - - const index = steamGames.findIndex((game) => game.id === steamGame.id); - - try { - const clientIcon = await getSteamGameClientIcon(String(steamGame.id)); - - steamGames[index].clientIcon = clientIcon; - - logger.log("info", `Set ${steamGame.name} client icon`); - } catch (err) { - steamGames[index].clientIcon = null; - logger.log("info", `Could not set icon for ${steamGame.name}`); - } - }) - ); - - fs.writeFileSync(steamGamesPath, JSON.stringify(steamGames)); - logger.log("info", "Updated steam games"); -} diff --git a/src/main/services/achievements/get-game-achievement-data.ts b/src/main/services/achievements/get-game-achievement-data.ts index 02019dab..daac7e11 100644 --- a/src/main/services/achievements/get-game-achievement-data.ts +++ b/src/main/services/achievements/get-game-achievement-data.ts @@ -6,20 +6,15 @@ import { HydraApi } from "../hydra-api"; import type { AchievementData, GameShop } from "@types"; import { UserNotLoggedInError } from "@shared"; import { logger } from "../logger"; +import { GameAchievement } from "@main/entity"; export const getGameAchievementData = async ( objectId: string, shop: GameShop, - useCachedData: boolean + cachedAchievements: GameAchievement | null ) => { - if (useCachedData) { - const cachedAchievements = await gameAchievementRepository.findOne({ - where: { objectId, shop }, - }); - - if (cachedAchievements && cachedAchievements.achievements) { - return JSON.parse(cachedAchievements.achievements) as AchievementData[]; - } + if (cachedAchievements && cachedAchievements.achievements) { + return JSON.parse(cachedAchievements.achievements) as AchievementData[]; } const userPreferences = await userPreferencesRepository.findOne({ diff --git a/src/main/services/index.ts b/src/main/services/index.ts index 498159c9..5aaf5322 100644 --- a/src/main/services/index.ts +++ b/src/main/services/index.ts @@ -1,7 +1,6 @@ export * from "./logger"; export * from "./steam"; export * from "./steam-250"; -export * from "./steam-grid"; export * from "./window-manager"; export * from "./download"; export * from "./process-watcher"; diff --git a/src/main/services/steam-grid.ts b/src/main/services/steam-grid.ts deleted file mode 100644 index 540e5857..00000000 --- a/src/main/services/steam-grid.ts +++ /dev/null @@ -1,69 +0,0 @@ -import type { GameShop } from "@types"; -import axios from "axios"; - -export interface SteamGridResponse { - success: boolean; - data: { - id: number; - }; -} - -export interface SteamGridGameResponse { - data: { - platforms: { - steam: { - metadata: { - clienticon: string; - }; - }; - }; - }; -} - -export const getSteamGridData = async ( - objectId: string, - path: string, - shop: GameShop, - params: Record = {} -): Promise => { - const searchParams = new URLSearchParams(params); - - if (!import.meta.env.MAIN_VITE_STEAMGRIDDB_API_KEY) { - throw new Error("MAIN_VITE_STEAMGRIDDB_API_KEY is not set"); - } - - const response = await axios.get( - `https://www.steamgriddb.com/api/v2/${path}/${shop}/${objectId}?${searchParams.toString()}`, - { - headers: { - Authorization: `Bearer ${import.meta.env.MAIN_VITE_STEAMGRIDDB_API_KEY}`, - }, - } - ); - - return response.data; -}; - -export const getSteamGridGameById = async ( - id: number -): Promise => { - const response = await axios.get( - `https://www.steamgriddb.com/api/public/game/${id}`, - { - headers: { - Referer: "https://www.steamgriddb.com/", - }, - } - ); - - return response.data; -}; - -export const getSteamGameClientIcon = async (objectId: string) => { - const { - data: { id: steamGridGameId }, - } = await getSteamGridData(objectId, "games", "steam"); - - const steamGridGame = await getSteamGridGameById(steamGridGameId); - return steamGridGame.data.platforms.steam.metadata.clienticon; -}; diff --git a/src/renderer/src/pages/settings/settings-behavior.tsx b/src/renderer/src/pages/settings/settings-behavior.tsx index b4b91dd2..478cdffc 100644 --- a/src/renderer/src/pages/settings/settings-behavior.tsx +++ b/src/renderer/src/pages/settings/settings-behavior.tsx @@ -19,6 +19,7 @@ export function SettingsBehavior() { runAtStartup: false, startMinimized: false, disableNsfwAlert: false, + showHiddenAchievementsDescription: false, }); const { t } = useTranslation("settings"); @@ -30,6 +31,8 @@ export function SettingsBehavior() { runAtStartup: userPreferences.runAtStartup, startMinimized: userPreferences.startMinimized, disableNsfwAlert: userPreferences.disableNsfwAlert, + showHiddenAchievementsDescription: + userPreferences.showHiddenAchievementsDescription, }); } }, [userPreferences]); @@ -96,6 +99,17 @@ export function SettingsBehavior() { handleChange({ disableNsfwAlert: !form.disableNsfwAlert }) } /> + + + handleChange({ + showHiddenAchievementsDescription: + !form.showHiddenAchievementsDescription, + }) + } + /> ); } diff --git a/src/types/index.ts b/src/types/index.ts index 434a15e7..bd9293e8 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -162,6 +162,7 @@ export interface UserPreferences { runAtStartup: boolean; startMinimized: boolean; disableNsfwAlert: boolean; + showHiddenAchievementsDescription: boolean; } export interface Steam250Game { From d821fd7800c0abab41df507549c221e8ba3e28a0 Mon Sep 17 00:00:00 2001 From: hydrasources Date: Mon, 16 Dec 2024 22:38:16 +0300 Subject: [PATCH 06/17] Update translation.json --- src/locales/ru/translation.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/locales/ru/translation.json b/src/locales/ru/translation.json index a1ddfb2d..8203e983 100644 --- a/src/locales/ru/translation.json +++ b/src/locales/ru/translation.json @@ -11,7 +11,6 @@ "start_typing": "Начинаю вводить текст для поиска...", "weekly": "📅 Лучшие игры недели", "achievements": "🏆 Игры, в которых нужно победить" - }, "sidebar": { "catalogue": "Каталог", From a40638b6574460b0980e482962f2081a8f4b0852 Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Mon, 16 Dec 2024 16:55:10 -0300 Subject: [PATCH 07/17] chore: lint --- src/locales/ru/translation.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/locales/ru/translation.json b/src/locales/ru/translation.json index 8203e983..2de70bec 100644 --- a/src/locales/ru/translation.json +++ b/src/locales/ru/translation.json @@ -130,7 +130,6 @@ "refuse_nsfw_content": "Назад", "stats": "Статистика", "player_count": "Активные игроки", - "executable_path_in_use": "Исполняемый файл уже используется \"{{game}}\"", "warning": "Внимание:", "hydra_needs_to_remain_open": "Для этой загрузки Hydra должна оставаться открытой до завершения. Если Hydra закроется до завершения, вы потеряете прогресс.", "achievements": "Достижения", @@ -168,7 +167,6 @@ "select_folder": "Выбрать папку", "backup_from": "Резервная копия от {{date}}", "custom_backup_location_set": "Установлено настраиваемое местоположение резервной копии" - }, "activation": { "title": "Активировать Hydra", @@ -365,7 +363,6 @@ "new_achievements_unlocked": "Разблокировано {{achievementCount}} новых достижений из {{gameCount}} игр", "achievement_progress": "{{unlockedCount}}/{{totalCount}} достижений", "achievements_unlocked_for_game": "Разблокировано {{achievementCount}} новых достижений для {{gameTitle}}" - }, "tour": { "subscription_tour_title": "Подписка Hydra Cloud", From e75b2960c031cfbedad931acf29e6956d5853313 Mon Sep 17 00:00:00 2001 From: hydrasources Date: Mon, 16 Dec 2024 23:53:09 +0300 Subject: [PATCH 08/17] Update translation.json I just forgot to update another line --- src/locales/ru/translation.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/ru/translation.json b/src/locales/ru/translation.json index 2de70bec..ddeace23 100644 --- a/src/locales/ru/translation.json +++ b/src/locales/ru/translation.json @@ -237,7 +237,7 @@ "add_download_source_description": "Вставьте ссылку на .json-файл", "download_source_up_to_date": "Обновлён", "download_source_errored": "Ошибка", - "sync_download_sources": "Синхронизировать источники", + "sync_download_sources": "Обновить источники", "removed_download_source": "Источник загрузок удален", "added_download_source": "Источник загрузок добавлен", "download_sources_synced": "Все источники загрузок синхронизированы", From c611ff2229f43d0acb533d05d37012f56d7d022a Mon Sep 17 00:00:00 2001 From: hydrasources Date: Mon, 16 Dec 2024 23:58:55 +0300 Subject: [PATCH 09/17] Update README.ru.md --- docs/README.ru.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.ru.md b/docs/README.ru.md index 1ce831f7..57a75cde 100644 --- a/docs/README.ru.md +++ b/docs/README.ru.md @@ -2,7 +2,7 @@
-[](https://hydralauncher.site) +[](https://help.hydralauncher.gg)

Hydra Launcher

From feb325c2c7b4b26d45ef79d731733bce75cbd677 Mon Sep 17 00:00:00 2001 From: hydrasources Date: Tue, 17 Dec 2024 00:01:13 +0300 Subject: [PATCH 10/17] Update README.pt-BR.md --- docs/README.pt-BR.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.pt-BR.md b/docs/README.pt-BR.md index 7a2971c8..a929b88c 100644 --- a/docs/README.pt-BR.md +++ b/docs/README.pt-BR.md @@ -2,7 +2,7 @@
-[](https://hydralauncher.site) +[](https://help.hydralauncher.gg)

Hydra Launcher

From 84855447312efc4d9b947ff2e84babb2a9c07146 Mon Sep 17 00:00:00 2001 From: hydrasources Date: Tue, 17 Dec 2024 00:03:55 +0300 Subject: [PATCH 11/17] Update README.be.md --- docs/README.be.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.be.md b/docs/README.be.md index 2bdde26d..51d9552e 100644 --- a/docs/README.be.md +++ b/docs/README.be.md @@ -2,7 +2,7 @@
-[](https://hydralauncher.site) +[](https://help.hydralauncher.gg)

Hydra Launcher

From 165e346d3836bda29ba3e43d32ab8421407a98f8 Mon Sep 17 00:00:00 2001 From: hydrasources Date: Tue, 17 Dec 2024 00:05:12 +0300 Subject: [PATCH 12/17] Update README.nb.md --- docs/README.nb.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.nb.md b/docs/README.nb.md index 1ec4744b..c2878012 100644 --- a/docs/README.nb.md +++ b/docs/README.nb.md @@ -2,7 +2,7 @@
-[](https://hydralauncher.site) +[](https://help.hydralauncher.gg)

Hydra Launcher

From 166e53ceaa9337e2c610fb63c2e04e49fdb79175 Mon Sep 17 00:00:00 2001 From: hydrasources Date: Tue, 17 Dec 2024 00:05:37 +0300 Subject: [PATCH 13/17] Update README.nb.md --- docs/README.nb.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.nb.md b/docs/README.nb.md index c2878012..b821799e 100644 --- a/docs/README.nb.md +++ b/docs/README.nb.md @@ -2,7 +2,7 @@
-[](https://help.hydralauncher.gg) +[](https://help.hydralauncher.gg)

Hydra Launcher

From df46f1f1d0047549ec6c784bdd802e1640a8fc89 Mon Sep 17 00:00:00 2001 From: hydrasources Date: Tue, 17 Dec 2024 00:07:15 +0300 Subject: [PATCH 14/17] Update README.de.md --- docs/README.de.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.de.md b/docs/README.de.md index 45ef0fec..f9b27a62 100644 --- a/docs/README.de.md +++ b/docs/README.de.md @@ -2,7 +2,7 @@
-[](https://hydralauncher.site) +[](https://help.hydralauncher.gg)

Hydra Launcher

From 75140ccf97cd0ed8a429a3836b6d42546bd27d35 Mon Sep 17 00:00:00 2001 From: hydrasources Date: Tue, 17 Dec 2024 00:07:34 +0300 Subject: [PATCH 15/17] Update README.da.md --- docs/README.da.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.da.md b/docs/README.da.md index 79513fe3..979d03f7 100644 --- a/docs/README.da.md +++ b/docs/README.da.md @@ -2,7 +2,7 @@
-[](https://hydralauncher.site) +[](https://help.hydralauncher.gg)

Hydra Launcher

From 500db909742a09fac3c0041d8987c8816671aba5 Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Mon, 16 Dec 2024 19:56:14 -0300 Subject: [PATCH 16/17] chore: readme link --- README.md | 2 +- docs/README.cs.md | 2 +- docs/README.es.md | 2 +- docs/README.et.md | 2 +- docs/README.fr.md | 2 +- docs/README.it.md | 2 +- docs/README.pl.md | 2 +- docs/README.uk-UA.md | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index cf014c63..a24e4cf9 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@
-[](https://hydralauncher.site) +[](https://help.hydralauncher.gg)

Hydra Launcher

diff --git a/docs/README.cs.md b/docs/README.cs.md index 30bb39b7..ce45e990 100644 --- a/docs/README.cs.md +++ b/docs/README.cs.md @@ -2,7 +2,7 @@
-[](https://hydralauncher.site) +[](https://help.hydralauncher.gg)

Hydra Launcher

diff --git a/docs/README.es.md b/docs/README.es.md index 4209e94f..d47cf134 100644 --- a/docs/README.es.md +++ b/docs/README.es.md @@ -2,7 +2,7 @@
-[](https://hydralauncher.site) +[](https://help.hydralauncher.gg)

Hydra Launcher

diff --git a/docs/README.et.md b/docs/README.et.md index c54c5b71..50df3536 100644 --- a/docs/README.et.md +++ b/docs/README.et.md @@ -1,6 +1,6 @@
-[](https://hydralauncher.site) +[](https://help.hydralauncher.gg)

Hydra Launcher

diff --git a/docs/README.fr.md b/docs/README.fr.md index 0c35e059..65604a0a 100644 --- a/docs/README.fr.md +++ b/docs/README.fr.md @@ -2,7 +2,7 @@
-[](https://hydralauncher.site) +[](https://help.hydralauncher.gg)

Hydra Launcher

diff --git a/docs/README.it.md b/docs/README.it.md index e87cf28e..dea63eb2 100644 --- a/docs/README.it.md +++ b/docs/README.it.md @@ -2,7 +2,7 @@
-[](https://hydralauncher.site) +[](https://help.hydralauncher.gg)

Hydra Launcher

diff --git a/docs/README.pl.md b/docs/README.pl.md index 2fb31a6d..59ef046b 100644 --- a/docs/README.pl.md +++ b/docs/README.pl.md @@ -2,7 +2,7 @@
-[](https://hydralauncher.site) +[](https://help.hydralauncher.gg)

Hydra Launcher

diff --git a/docs/README.uk-UA.md b/docs/README.uk-UA.md index 8fec8508..e6189126 100644 --- a/docs/README.uk-UA.md +++ b/docs/README.uk-UA.md @@ -2,7 +2,7 @@
-[](https://hydralauncher.site) +[](https://help.hydralauncher.gg)

Hydra Launcher

From 3a964dcf1721dcdec31b6c69e1f379313368a875 Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Tue, 17 Dec 2024 13:23:56 -0300 Subject: [PATCH 17/17] feat: create game --- .../events/torrenting/start-game-download.ts | 27 +++++++++---------- src/preload/index.ts | 2 +- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/main/events/torrenting/start-game-download.ts b/src/main/events/torrenting/start-game-download.ts index ce16e97b..de10b07d 100644 --- a/src/main/events/torrenting/start-game-download.ts +++ b/src/main/events/torrenting/start-game-download.ts @@ -1,6 +1,6 @@ import { registerEvent } from "../register-event"; import type { StartGameDownloadPayload } from "@types"; -import { DownloadManager, HydraApi, logger } from "@main/services"; +import { DownloadManager, HydraApi } from "@main/services"; import { Not } from "typeorm"; import { steamGamesWorker } from "@main/workers"; @@ -76,24 +76,23 @@ const startGameDownload = async ( }, }); - createGame(updatedGame!).catch(() => {}); - - HydraApi.post( - "/games/download", - { - objectId: updatedGame!.objectID, - shop: updatedGame!.shop, - }, - { needsAuth: false } - ).catch((err) => { - logger.error("Failed to create game download", err); - }); - await DownloadManager.cancelDownload(updatedGame!.id); await DownloadManager.startDownload(updatedGame!); await downloadQueueRepository.delete({ game: { id: updatedGame!.id } }); await downloadQueueRepository.insert({ game: { id: updatedGame!.id } }); + + await Promise.all([ + createGame(updatedGame!).catch(() => {}), + HydraApi.post( + "/games/download", + { + objectId: updatedGame!.objectID, + shop: updatedGame!.shop, + }, + { needsAuth: false } + ).catch(() => {}), + ]); }); }; diff --git a/src/preload/index.ts b/src/preload/index.ts index f9d19644..d2a6a676 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -11,10 +11,10 @@ import type { GameRunning, FriendRequestAction, UpdateProfileRequest, + GameAchievement, } from "@types"; import type { CatalogueCategory } from "@shared"; import type { AxiosProgressEvent } from "axios"; -import { GameAchievement } from "@main/entity"; contextBridge.exposeInMainWorld("electron", { /* Torrenting */