From 11359fddab7a67d08482c30a912bbfa9f2e73093 Mon Sep 17 00:00:00 2001 From: Celtian Date: Tue, 21 Jul 2026 21:44:20 +0200 Subject: [PATCH 01/12] chore(deps): deps updated --- package.json | 21 +- yarn.lock | 1283 ++++++++++++++++++++++++-------------------------- 2 files changed, 635 insertions(+), 669 deletions(-) diff --git a/package.json b/package.json index cb65e33..c20eea1 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,13 @@ "bugs": { "url": "https://github.com/Celtian/soccerbot/issues" }, + "auto-changelog": { + "remote": "none", + "commitUrl": "https://github.com/Celtian/soccerbot/commit/{id}", + "issueUrl": "https://github.com/Celtian/soccerbot/issues/{id}", + "mergeUrl": "https://github.com/Celtian/soccerbot/pull/{id}", + "compareUrl": "https://github.com/Celtian/soccerbot/compare/{from}...{to}" + }, "homepage": "https://github.com/Celtian/soccerbot#readme", "engines": { "node": ">= 12", @@ -47,25 +54,25 @@ "node-html-parser": "^6.1.13" }, "devDependencies": { - "@commitlint/cli": "^20.5.3", - "@commitlint/config-conventional": "^20.5.3", + "@commitlint/cli": "^21.2.1", + "@commitlint/config-conventional": "^21.2.0", "@types/fs-extra": "^11.0.4", "@typescript-eslint/eslint-plugin": "^8.48.1", "@typescript-eslint/parser": "^8.48.1", - "@vitest/coverage-v8": "^4.1.5", - "auto-changelog": "^2.5.0", + "@vitest/coverage-v8": "^4.1.10", + "auto-changelog": "^2.6.0", "copyfiles": "^2.4.1", "eslint": "^9.39.1", - "fs-extra": "^11.3.4", + "fs-extra": "^11.3.6", "husky": "^9.1.7", "prettier": "^3.8.3", "pretty-quick": "^4.2.2", "rimraf": "^6.1.3", "ts-node": "^10.9.2", "tsc-watch": "^6.2.0", - "tsx": "^4.21.0", + "tsx": "^4.23.1", "typescript": "^5.4.5", - "vitest": "^4.1.5" + "vitest": "^4.1.10" }, "keywords": [ "data", diff --git a/yarn.lock b/yarn.lock index 2924d87..e7d511a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -58,165 +58,169 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz#bbe12dca5b4ef983a0d0af4b07b9bc90ea0ababa" integrity sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA== -"@commitlint/cli@^20.5.3": - version "20.5.3" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-20.5.3.tgz#6b4bfcf19fc149b0a357725f551bad11a930f145" - integrity sha512-OJdL0EXWD5y9LPa0nr/geOwzaS8BsdaybKkcloB0JgsguGxNv2R+hC2FTPqrAcprg35zF33KOQerY0x8W1aesA== - dependencies: - "@commitlint/format" "^20.5.0" - "@commitlint/lint" "^20.5.3" - "@commitlint/load" "^20.5.3" - "@commitlint/read" "^20.5.0" - "@commitlint/types" "^20.5.0" +"@commitlint/cli@^21.2.1": + version "21.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-21.2.1.tgz#a1b4fa3d4366ac5d09e591218cb633f7fc031704" + integrity sha512-blsZGe29hJ72VGEFVl72IVYX+1vsfINpjA9yWQA6i7OKD/McGEOXg08sKIRKjFk4JvzhV/9n0l3i6NooPLTNfg== + dependencies: + "@commitlint/config-conventional" "^21.2.0" + "@commitlint/format" "^21.2.0" + "@commitlint/lint" "^21.2.0" + "@commitlint/load" "^21.2.0" + "@commitlint/read" "^21.2.1" + "@commitlint/types" "^21.2.0" tinyexec "^1.0.0" - yargs "^17.0.0" + yargs "^18.0.0" -"@commitlint/config-conventional@^20.5.3": - version "20.5.3" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-20.5.3.tgz#ccf17ee4c695cd4b73784c6ce7fdb5b20d22be99" - integrity sha512-j34Qqeaa152chJgz2ysyk0BCpHenJn1lV0Rx0VXf8k3ccQcED+48EZrzMvo9jLmJUyBrrBwvu89I+2er4gW7QQ== +"@commitlint/config-conventional@^21.2.0": + version "21.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-21.2.0.tgz#9ce2b1f5a24e94883ed1e4c5530fb1b8c1d531eb" + integrity sha512-Qf8WRDVcyVd14if6VTWenebxFbKnVnbzPUJjlzjkyJGeHK2xCGd63Dr1XZzj0plXKQb9P0BfOxoc1HVeCo2BWQ== dependencies: - "@commitlint/types" "^20.5.0" - conventional-changelog-conventionalcommits "^9.2.0" + "@commitlint/types" "^21.2.0" + conventional-changelog-conventionalcommits "^10.0.0" -"@commitlint/config-validator@^20.5.0": - version "20.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-20.5.0.tgz#b0aad5fdd520b07ac52f9ad8d41844629e5fd40e" - integrity sha512-T/Uh6iJUzyx7j35GmHWdIiGRQB+ouZDk0pwAaYq4SXgB54KZhFdJ0vYmxiW6AMYICTIWuyMxDBl1jK74oFp/Gw== +"@commitlint/config-validator@^21.2.0": + version "21.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-21.2.0.tgz#9597a3195ec5371594868f1eca14a3b3e6ffdc36" + integrity sha512-t7AzNHAKeIdo/3NRGwzpufKHsKkPHmFs/56N2Fnsh0/r0rGtnQzTxk6vnFgjaGr4hdSQKNB50/KAhR9Yk4LJKA== dependencies: - "@commitlint/types" "^20.5.0" + "@commitlint/types" "^21.2.0" ajv "^8.11.0" -"@commitlint/ensure@^20.5.3": - version "20.5.3" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-20.5.3.tgz#6a63f52dad60a2db9b87ea1b11c8d483ced24aa1" - integrity sha512-4i4AgNvH62owG9MwSiWKrle7HGNpBHHdLnWFIp5fTsHUYe5kRuh15t08L/0pdbbrRk8JKXQxxN4hZQcn+szkrw== +"@commitlint/ensure@^21.2.0": + version "21.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-21.2.0.tgz#6a46807a290bc95ac3cc001fd4068e538977627b" + integrity sha512-76IF9vDNS13lAzEEik9eKwzt8f9hYhWiwVXZ2AnyLCz5/f511FsEQ3pw1X3/zSQpdRLQU7i5qDMVKyXi1GWjSg== dependencies: - "@commitlint/types" "^20.5.0" + "@commitlint/types" "^21.2.0" es-toolkit "^1.46.0" -"@commitlint/execute-rule@^20.0.0": - version "20.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-20.0.0.tgz#013628e09179cf2d3c977e1cf37937b5cb869af8" - integrity sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw== +"@commitlint/execute-rule@^21.0.1": + version "21.0.1" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-21.0.1.tgz#3ebeee4d645527edfc3cf583ecbad92a4c28eddb" + integrity sha512-RifH+FmImozKBE6mozhF4K3r2RRKP7SMi/Q/zLCmExtp5e05lhHOUYqGBlFBAGNHaZxU/WYw1XuugYK9jQzqnA== -"@commitlint/format@^20.5.0": - version "20.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-20.5.0.tgz#cd73c527ec60e70fc7ae45c1ce31a4f143c49202" - integrity sha512-TI9EwFU/qZWSK7a5qyXMpKPPv3qta7FO4tKW+Wt2al7sgMbLWTsAcDpX1cU8k16TRdsiiet9aOw0zpvRXNJu7Q== +"@commitlint/format@^21.2.0": + version "21.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-21.2.0.tgz#5e498cca2c030de725841011b0e885b71d68c9bd" + integrity sha512-c4q64xaav2U83t7k7RyzJerBZurPer7FxUOY0RL5L/6CZijZ7K+s6HIBGIghj0ey1P2+seRX0J9XQYtDued6tg== dependencies: - "@commitlint/types" "^20.5.0" + "@commitlint/types" "^21.2.0" picocolors "^1.1.1" -"@commitlint/is-ignored@^20.5.0": - version "20.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-20.5.0.tgz#c90ac785b0673c4aa4e6bb1e3a15fcfb399727b0" - integrity sha512-JWLarAsurHJhPozbuAH6GbP4p/hdOCoqS9zJMfqwswne+/GPs5V0+rrsfOkP68Y8PSLphwtFXV0EzJ+GTXTTGg== +"@commitlint/is-ignored@^21.2.0": + version "21.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-21.2.0.tgz#2f8e8cc1414edc4e12731c35826792620186046a" + integrity sha512-4/eB0vBN7L88O/oC4ajAEqi7j2ZfNgxl/+11RfAV9YosejZgDXhY2C9VcHnHJhOzPLoSy5P3Mg/46kqeyJfXKw== dependencies: - "@commitlint/types" "^20.5.0" + "@commitlint/types" "^21.2.0" semver "^7.6.0" -"@commitlint/lint@^20.5.3": - version "20.5.3" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-20.5.3.tgz#0848685798ea70045a1958dd3a758c01225e6cb4" - integrity sha512-M7JbWBNr2gXKaPc4i/KipsuW1gkDHpj35KPjWtKy3Z+2AQw5wu1gBi1LIO0uoaij67CqY4K8PxPZSGens4evCw== - dependencies: - "@commitlint/is-ignored" "^20.5.0" - "@commitlint/parse" "^20.5.0" - "@commitlint/rules" "^20.5.3" - "@commitlint/types" "^20.5.0" - -"@commitlint/load@^20.5.3": - version "20.5.3" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-20.5.3.tgz#06eabcb21941b70c3e5d6ea5c7fb64f7a2b27935" - integrity sha512-1FDZWuKyu98Myb8i7Tp31jPU2rZpOwAdYRyJcy2KoGg7Xk2A+bgHN8smhMaaNSNkmE8fwt53BokywZq8Gv/5XQ== - dependencies: - "@commitlint/config-validator" "^20.5.0" - "@commitlint/execute-rule" "^20.0.0" - "@commitlint/resolve-extends" "^20.5.3" - "@commitlint/types" "^20.5.0" +"@commitlint/lint@^21.2.0": + version "21.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-21.2.0.tgz#0c4d0bf90f9c0b5fb90213a932474d3182b64fcc" + integrity sha512-ceO5dp9pLjEZ6y6qbq/uXWXDPykqqlTsyzoQ0NzecpisSJhK3kTy9qzQoPeJuWG/IMNdV1lO0RgmzqoAlSi1uw== + dependencies: + "@commitlint/is-ignored" "^21.2.0" + "@commitlint/parse" "^21.2.0" + "@commitlint/rules" "^21.2.0" + "@commitlint/types" "^21.2.0" + +"@commitlint/load@^21.2.0": + version "21.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-21.2.0.tgz#e0200aa1949fa91da9552fea9f8a3a1b1b00c0a4" + integrity sha512-RjlzWQqruRwIenJEfZtq7kG97co97nKoHpflE5YnF61tDLXxHPrdWImgzw6VL6MlFyaOcVlk74eBV8ZQmc3oIA== + dependencies: + "@commitlint/config-validator" "^21.2.0" + "@commitlint/execute-rule" "^21.0.1" + "@commitlint/resolve-extends" "^21.2.0" + "@commitlint/types" "^21.2.0" cosmiconfig "^9.0.1" cosmiconfig-typescript-loader "^6.1.0" es-toolkit "^1.46.0" is-plain-obj "^4.1.0" picocolors "^1.1.1" -"@commitlint/message@^20.4.3": - version "20.4.3" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-20.4.3.tgz#0c377fbbe1c72487612330a01d1e7dea991fa467" - integrity sha512-6akwCYrzcrFcTYz9GyUaWlhisY4lmQ3KvrnabmhoeAV8nRH4dXJAh4+EUQ3uArtxxKQkvxJS78hNX2EU3USgxQ== - -"@commitlint/parse@^20.5.0": - version "20.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-20.5.0.tgz#196b75a7b870aa7cda311fac525f10fb6ccacd54" - integrity sha512-SeKWHBMk7YOTnnEWUhx+d1a9vHsjjuo6Uo1xRfPNfeY4bdYFasCH1dDpAv13Lyn+dDPOels+jP6D2GRZqzc5fA== - dependencies: - "@commitlint/types" "^20.5.0" - conventional-changelog-angular "^8.2.0" - conventional-commits-parser "^6.3.0" - -"@commitlint/read@^20.5.0": - version "20.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-20.5.0.tgz#59d4b0e98429d308be6ad0d3e5144a193638ee6b" - integrity sha512-JDEIJ2+GnWpK8QqwfmW7O42h0aycJEWNqcdkJnyzLD11nf9dW2dWLTVEa8Wtlo4IZFGLPATjR5neA5QlOvIH1w== - dependencies: - "@commitlint/top-level" "^20.4.3" - "@commitlint/types" "^20.5.0" - git-raw-commits "^5.0.0" - minimist "^1.2.8" +"@commitlint/message@^21.2.0": + version "21.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-21.2.0.tgz#72cbca26f7b1b37da5c1e40644c673efbb0e193e" + integrity sha512-YxGoiXD/HXNXLJPrQwE5poXa+XH0CBEm+mdvbHQP0g6MV/dmJyUFCzPNzZbxL93GvZ70TmtTK0Z0/IBpAqHv8g== + +"@commitlint/parse@^21.2.0": + version "21.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-21.2.0.tgz#cd9e80f813f6b57fdb342cb55c40b377597d1b99" + integrity sha512-QHWxG4d0PLTF634/AdyZ0MQS+CLn5YOuJlCFhMMlSGKFxzYGUetkHBj18xgBD+6fVzUrA2lrCdi/vlS2f/oYXg== + dependencies: + "@commitlint/types" "^21.2.0" + conventional-changelog-angular "^9.0.0" + conventional-commits-parser "^7.0.0" + +"@commitlint/read@^21.2.1": + version "21.2.1" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-21.2.1.tgz#a39f19f73b45a604619831fdcbf93fa022feb870" + integrity sha512-hUW7EJQnNTL0vPOmVMNK4CrnrNBN0nN+JJHReFkdHO5y4iyHeEmTBwuC15OCqUTjxWo7idnH1LftfpWVIaPWIA== + dependencies: + "@commitlint/top-level" "^21.2.0" + "@commitlint/types" "^21.2.0" + "@conventional-changelog/git-client" "^3.0.0" tinyexec "^1.0.0" -"@commitlint/resolve-extends@^20.5.3": - version "20.5.3" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-20.5.3.tgz#3c46fa1fa243f12f1cb0a4ffc47b38351abd9c50" - integrity sha512-+ogW9v/u9JqpvAgTrLra/YTFo0KkjU6iNblF89pPsj4NebNc+DAWctsludwezI8YnsjBmfHpApSwcXprN/f/ew== +"@commitlint/resolve-extends@^21.2.0": + version "21.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-21.2.0.tgz#e1bf8db26d51832b356fec9209c3c1752864bf28" + integrity sha512-4O/1j51+79Wth9s/MGxt/5gs0XYLDgNlYpltQfhAvLE0itusLKs9zruxbiNg1oOkmkb9L9L4USYGjEj7n87NxA== dependencies: - "@commitlint/config-validator" "^20.5.0" - "@commitlint/types" "^20.5.0" + "@commitlint/config-validator" "^21.2.0" + "@commitlint/types" "^21.2.0" es-toolkit "^1.46.0" global-directory "^5.0.0" - import-meta-resolve "^4.0.0" resolve-from "^5.0.0" -"@commitlint/rules@^20.5.3": - version "20.5.3" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-20.5.3.tgz#95151b38e30b35ccf13d6d091e4cc61cd363e3ec" - integrity sha512-MPlMnb9D3wbszYMp+1hPtuhtPJndRo6I6yfkZVA4+jR8w7Kqp0u2u/Y+gzbaItx5Lltq5rw7FSZQWJMoXUC4NQ== +"@commitlint/rules@^21.2.0": + version "21.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-21.2.0.tgz#7ef5727a50c82689bebb76af131059f8adf4511a" + integrity sha512-C2yXMNpiB8ETZKfx5JD8+ExgF8vTU1VQMKPSUUYwqKpw9oJWQBrlXBpdU038mj2WPjof7o9UzFpmTyBeGMZwZg== dependencies: - "@commitlint/ensure" "^20.5.3" - "@commitlint/message" "^20.4.3" - "@commitlint/to-lines" "^20.0.0" - "@commitlint/types" "^20.5.0" + "@commitlint/ensure" "^21.2.0" + "@commitlint/message" "^21.2.0" + "@commitlint/to-lines" "^21.0.1" + "@commitlint/types" "^21.2.0" -"@commitlint/to-lines@^20.0.0": - version "20.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-20.0.0.tgz#0f6d6106016272ef0e9f7c138093fe2cc06fc34b" - integrity sha512-2l9gmwiCRqZNWgV+pX1X7z4yP0b3ex/86UmUFgoRt672Ez6cAM2lOQeHFRUTuE6sPpi8XBCGnd8Kh3bMoyHwJw== +"@commitlint/to-lines@^21.0.1": + version "21.0.1" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-21.0.1.tgz#9a76fcc634f2be2b5effcf67a2d69fcb4bdec9f8" + integrity sha512-bd1BFII7p1EQZre9Kaj+kKaMFP3cFCdt21K7DItVux9XP5WjLgJ0/Uy1pJJh9aPwVJ6SKg62PxqlZaHI8hQAXw== -"@commitlint/top-level@^20.4.3": - version "20.4.3" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-20.4.3.tgz#6f94e558c1aa6ba3a1d6962e9adaa34f657efe81" - integrity sha512-qD9xfP6dFg5jQ3NMrOhG0/w5y3bBUsVGyJvXxdWEwBm8hyx4WOk3kKXw28T5czBYvyeCVJgJJ6aoJZUWDpaacQ== +"@commitlint/top-level@^21.2.0": + version "21.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-21.2.0.tgz#bf7dadeaf5a51771bd0c44cc8bcf23ac66715b9e" + integrity sha512-Y5gmQ+KxzqCrBFJfLvFEPvvwD3LDiNZoTT2yeFBm96M8qhmqSzQc5DvX3rheAaAMjyIvMXOCLS/mWfdpONsjyQ== dependencies: escalade "^3.2.0" -"@commitlint/types@^20.5.0": - version "20.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-20.5.0.tgz#65be36ca38183757563bd69451dbe465a5d001ef" - integrity sha512-ZJoS8oSq2CAZEpc/YI9SulLrdiIyXeHb/OGqGrkUP6Q7YV+0ouNAa7GjqRdXeQPncHQIDz/jbCTlHScvYvO/gA== +"@commitlint/types@^21.2.0": + version "21.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-21.2.0.tgz#da93897b416f788323f639cce6045310aeb03096" + integrity sha512-7zVFCDB2reMvJH5dmbKnOQPjZEvjdJTH8jc0U/PIPU1r3/+vf5pD1HlfitV2MWsWXrvu7u39iY1lyLUPOaN0Gw== dependencies: - conventional-commits-parser "^6.3.0" + conventional-commits-parser "^7.0.0" picocolors "^1.1.1" -"@conventional-changelog/git-client@^2.6.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@conventional-changelog/git-client/-/git-client-2.7.0.tgz#07ea8202fd822e71d32c54aaed08b2c5ae9cc7c2" - integrity sha512-j7A8/LBEQ+3rugMzPXoKYzyUPpw/0CBQCyvtTR7Lmu4olG4yRC/Tfkq79Mr3yuPs0SUitlO2HwGP3gitMJnRFw== +"@conventional-changelog/git-client@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@conventional-changelog/git-client/-/git-client-3.1.0.tgz#0d89e1d74ecc578ebe1bf46c09488beef41c58e8" + integrity sha512-Tqa/gHco2WJWa740NRjOrfKVvzIqxkZpecb8bemaQ8sKM5PXb1UK4uTyTb/1wIqNuOVaDOFxyBdhTIQZn6gdjQ== dependencies: - "@simple-libs/child-process-utils" "^1.0.0" - "@simple-libs/stream-utils" "^1.2.0" + "@simple-libs/child-process-utils" "^2.0.0" + "@simple-libs/stream-utils" "^2.0.0" semver "^7.5.2" +"@conventional-changelog/template@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@conventional-changelog/template/-/template-1.2.1.tgz#8f673635d6ec8289bc5d5a1264629fd1e88b8d4f" + integrity sha512-TzlTVpKPjaqW6qOYjQcYUDuGsLCNsvFHVBXkYGTAnf5V37jCWrE5haKNXzz0WZUtVHjrpV76L1buANjwXMfT8w== + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -224,157 +228,157 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@emnapi/core@1.10.0": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.10.0.tgz#380ccc8f2412ea22d1d972df7f8ee23a3b9c7467" - integrity sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw== +"@emnapi/core@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.11.1.tgz#b9e1064f3a6b1631e241e638eb48d736bfd372a6" + integrity sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ== dependencies: - "@emnapi/wasi-threads" "1.2.1" + "@emnapi/wasi-threads" "1.2.2" tslib "^2.4.0" -"@emnapi/runtime@1.10.0": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.10.0.tgz#4b260c0d3534204e98c6110b8db1a987d26ec87c" - integrity sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA== +"@emnapi/runtime@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.11.1.tgz#58f1f3d5d81a9b12f793ab688c96371901027c24" + integrity sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw== dependencies: tslib "^2.4.0" -"@emnapi/wasi-threads@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz#28fed21a1ba1ce797c44a070abc94d42f3ae8548" - integrity sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w== +"@emnapi/wasi-threads@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz#4c93becf5bfa3b13d1bbdcc06aee38321ad8139a" + integrity sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA== dependencies: tslib "^2.4.0" -"@esbuild/aix-ppc64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.27.1.tgz#116edcd62c639ed8ab551e57b38251bb28384de4" - integrity sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA== - -"@esbuild/android-arm64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.27.1.tgz#31c00d864c80f6de1900a11de8a506dbfbb27349" - integrity sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ== - -"@esbuild/android-arm@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.27.1.tgz#d2b73ab0ba894923a1d1378fd4b15cc20985f436" - integrity sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg== - -"@esbuild/android-x64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.27.1.tgz#d9f74d8278191317250cfe0c15a13f410540b122" - integrity sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ== - -"@esbuild/darwin-arm64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.27.1.tgz#baf6914b8c57ed9d41f9de54023aa3ff9b084680" - integrity sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ== - -"@esbuild/darwin-x64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.27.1.tgz#64e37400795f780a76c858a118ff19681a64b4e0" - integrity sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ== - -"@esbuild/freebsd-arm64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.1.tgz#6572f2f235933eee906e070dfaae54488ee60acd" - integrity sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg== - -"@esbuild/freebsd-x64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.27.1.tgz#83105dba9cf6ac4f44336799446d7f75c8c3a1e1" - integrity sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ== - -"@esbuild/linux-arm64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.27.1.tgz#035ff647d4498bdf16eb2d82801f73b366477dfa" - integrity sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q== - -"@esbuild/linux-arm@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.27.1.tgz#3516c74d2afbe305582dbb546d60f7978a8ece7f" - integrity sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA== - -"@esbuild/linux-ia32@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.27.1.tgz#788db5db8ecd3d75dd41c42de0fe8f1fd967a4a7" - integrity sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw== - -"@esbuild/linux-loong64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.27.1.tgz#8211f08b146916a6302ec2b8f87ec0cc4b62c49e" - integrity sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg== - -"@esbuild/linux-mips64el@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.27.1.tgz#cc58586ea83b3f171e727a624e7883a1c3eb4c04" - integrity sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA== - -"@esbuild/linux-ppc64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.27.1.tgz#632477bbd98175cf8e53a7c9952d17fb2d6d4115" - integrity sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ== - -"@esbuild/linux-riscv64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.27.1.tgz#35435a82435a8a750edf433b83ac0d10239ac3fe" - integrity sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ== - -"@esbuild/linux-s390x@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.27.1.tgz#172edd7086438edacd86c0e2ea25ac9dbb62aac5" - integrity sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw== - -"@esbuild/linux-x64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.27.1.tgz#09c771de9e2d8169d5969adf298ae21581f08c7f" - integrity sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA== - -"@esbuild/netbsd-arm64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.1.tgz#475ac0ce7edf109a358b1669f67759de4bcbb7c4" - integrity sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ== - -"@esbuild/netbsd-x64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.27.1.tgz#3c31603d592477dc43b63df1ae100000f7fb59d7" - integrity sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg== - -"@esbuild/openbsd-arm64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.1.tgz#482067c847665b10d66431e936d4bc5fa8025abf" - integrity sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g== - -"@esbuild/openbsd-x64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.27.1.tgz#687a188c2b184e5b671c5f74a6cd6247c0718c52" - integrity sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg== - -"@esbuild/openharmony-arm64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.1.tgz#9929ee7fa8c1db2f33ef4d86198018dac9c1744f" - integrity sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg== - -"@esbuild/sunos-x64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.27.1.tgz#94071a146f313e7394c6424af07b2b564f1f994d" - integrity sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA== - -"@esbuild/win32-arm64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.27.1.tgz#869fde72a3576fdf48824085d05493fceebe395d" - integrity sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg== - -"@esbuild/win32-ia32@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.27.1.tgz#31d7585893ed7b54483d0b8d87a4bfeba0ecfff5" - integrity sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ== - -"@esbuild/win32-x64@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.27.1.tgz#5efe5a112938b1180e98c76685ff9185cfa4f16e" - integrity sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw== +"@esbuild/aix-ppc64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz#7a01a8d2ec2fbb2dac78adad09b0fa781e4082be" + integrity sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ== + +"@esbuild/android-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz#b540a27d14e4afd058496a4dbec4d3f414db110a" + integrity sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg== + +"@esbuild/android-arm@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.1.tgz#704bd297de6d762de54eabbeafbf55f6756abe2f" + integrity sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ== + +"@esbuild/android-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.1.tgz#d1cb166d34b0fbf0fe8ab460a5594f24a378701e" + integrity sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng== + +"@esbuild/darwin-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz#1034b26457fc886368fe61bbd09f653f6afa8e54" + integrity sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q== + +"@esbuild/darwin-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz#65556a432a1e4d72032d8218c1932fcca1a49772" + integrity sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ== + +"@esbuild/freebsd-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz#2e61e0592f9030d7e3dae18ee25ebc535918aef6" + integrity sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw== + +"@esbuild/freebsd-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz#c95ec289959ef8079c4dca817a1e2c4be66b9bd3" + integrity sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ== + +"@esbuild/linux-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz#40b22175dda06182f3ee8141186c5ff304c4a717" + integrity sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g== + +"@esbuild/linux-arm@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz#c09a0f67917592ac0de892a9be4d3814debd2a6c" + integrity sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ== + +"@esbuild/linux-ia32@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz#a580f9c676797833891e519fc7a1337c8afd8db3" + integrity sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w== + +"@esbuild/linux-loong64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz#46452cf321dc7f9e91c2fa780a56bb56e79cd68b" + integrity sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg== + +"@esbuild/linux-mips64el@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz#4211b3184dd6608f53dcb22e39f5d34ee08852c8" + integrity sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ== + +"@esbuild/linux-ppc64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz#697857c2a61cb9b0b6bb6652e40c1dc5e1ca8e5d" + integrity sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ== + +"@esbuild/linux-riscv64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz#d192943eb146a40ac4c6497d0cf7be35b986bf08" + integrity sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ== + +"@esbuild/linux-s390x@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz#acea0356da0e0ebc08f97cf7b9c2e401e1e648dc" + integrity sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag== + +"@esbuild/linux-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz#6f0c3ce0cb64c534b70c4c45ecb2c16d34e35dfd" + integrity sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA== + +"@esbuild/netbsd-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz#8bcd77077a0dce3378b574fedb26d2a253b73d36" + integrity sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw== + +"@esbuild/netbsd-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz#e7fb2a01e99c830c94e6623cd9fefb4c8fb58347" + integrity sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg== + +"@esbuild/openbsd-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz#c52909372db8b86e2c55e05a8940033b5660a3b2" + integrity sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q== + +"@esbuild/openbsd-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz#c427b9be5a64c262ff9a7eb70b5fbbaadf446c6c" + integrity sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw== + +"@esbuild/openharmony-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz#dc9b147baca2e6c4b3c85571741ef4860a489097" + integrity sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg== + +"@esbuild/sunos-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz#ce866d12df13c15e4c99f073a3d466f6e0649b3a" + integrity sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ== + +"@esbuild/win32-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz#7468e3692d01d629d5941e5d83817bb80f9e39b4" + integrity sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA== + +"@esbuild/win32-ia32@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz#a5bc0063fb2bcab6d0ed63f2a1537958bc269ec6" + integrity sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg== + +"@esbuild/win32-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz#10064ee44f4347b90c9a02b446bbf80a91632b12" + integrity sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A== "@eslint-community/eslint-utils@^4.7.0": version "4.7.0" @@ -520,118 +524,118 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@napi-rs/wasm-runtime@^1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz#a46bbfedc29751b7170c5d23bc1d8ee8c7e3c1e1" - integrity sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow== +"@napi-rs/wasm-runtime@^1.1.6": + version "1.1.6" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz#ed33806d0f9be98dc76d0c3d4fd872fda701b5d5" + integrity sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg== dependencies: - "@tybys/wasm-util" "^0.10.1" + "@tybys/wasm-util" "^0.10.3" -"@oxc-project/types@=0.127.0": - version "0.127.0" - resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.127.0.tgz#8374fcdfb4a641861218daa5700c447c00b66663" - integrity sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ== +"@oxc-project/types@=0.139.0": + version "0.139.0" + resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.139.0.tgz#38d76b9dbf934c2a02be174fb32ceebf182fe742" + integrity sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw== "@pkgr/core@^0.2.7": version "0.2.7" resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.7.tgz#eb5014dfd0b03e7f3ba2eeeff506eed89b028058" integrity sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg== -"@rolldown/binding-android-arm64@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.17.tgz#0a502a88c39d0ffa81aa30b561dade6f6217dcc5" - integrity sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ== - -"@rolldown/binding-darwin-arm64@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.17.tgz#8b7f05ac9000ab19161a79a0346b1b64a1bc7ba3" - integrity sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw== - -"@rolldown/binding-darwin-x64@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.17.tgz#f8b465b3a4e992053890b162f1ae19e4f1719a6a" - integrity sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw== - -"@rolldown/binding-freebsd-x64@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.17.tgz#a8281e14fa9c243fe22dc2d0e54900e66b31935e" - integrity sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw== - -"@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.17.tgz#cd29cf869ddd4fac8d6929abf94b91ddb0494650" - integrity sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ== - -"@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.17.tgz#91c331236ec3728366218d61a62f0bd226546c6c" - integrity sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q== - -"@rolldown/binding-linux-arm64-musl@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.17.tgz#80108957db752e7826836e22240e56b8140e9684" - integrity sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg== - -"@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.17.tgz#1dce51148cbc6bab3c3f9157b5323d2a31aac924" - integrity sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA== - -"@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.17.tgz#d4a0d2e01d8d441e4ac3af3fa68eec17a7d0e9cd" - integrity sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA== - -"@rolldown/binding-linux-x64-gnu@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.17.tgz#0ac8b3139cefeea798ad147f30ea70572b133af1" - integrity sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA== - -"@rolldown/binding-linux-x64-musl@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.17.tgz#2af61bee087571728f58f1c47734bbbd41dd7050" - integrity sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw== - -"@rolldown/binding-openharmony-arm64@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.17.tgz#56c1afbf6c592819abf47b4a983987dc288b30c1" - integrity sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA== - -"@rolldown/binding-wasm32-wasi@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.17.tgz#5d112ff4dd0d268a60fb4e0eb3077e3ea2531f0d" - integrity sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA== - dependencies: - "@emnapi/core" "1.10.0" - "@emnapi/runtime" "1.10.0" - "@napi-rs/wasm-runtime" "^1.1.4" - -"@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.17.tgz#5125a85222d64a543201d28e16a395cc45bf4d17" - integrity sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA== - -"@rolldown/binding-win32-x64-msvc@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.17.tgz#fc6b78e759a0bb2054b5c0a3489da12b2cae54b4" - integrity sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg== - -"@rolldown/pluginutils@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.17.tgz#a89b30833fb628bc834fe2e89fea93a2da9fa69a" - integrity sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg== - -"@simple-libs/child-process-utils@^1.0.0": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@simple-libs/child-process-utils/-/child-process-utils-1.0.2.tgz#cb182d310c9bed3ace200b26258e090d898a1736" - integrity sha512-/4R8QKnd/8agJynkNdJmNw2MBxuFTRcNFnE5Sg/G+jkSsV8/UBgULMzhizWWW42p8L5H7flImV2ATi79Ove2Tw== +"@rolldown/binding-android-arm64@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz#f58cb9a0a8128ed0582282720528547fc5c035f3" + integrity sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ== + +"@rolldown/binding-darwin-arm64@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz#441144c05a4a831aa75269abc3a4a324374ea707" + integrity sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw== + +"@rolldown/binding-darwin-x64@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz#c82e30652cef52c4af925d5c66c8955a40319816" + integrity sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g== + +"@rolldown/binding-freebsd-x64@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz#c32e9ce7fa1c0fb2b80913a2a3a05c3e907d06b0" + integrity sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA== + +"@rolldown/binding-linux-arm-gnueabihf@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz#ce90b5e22316adeb502ea010582f498cd0604f27" + integrity sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw== + +"@rolldown/binding-linux-arm64-gnu@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz#91947110c4ddaa4eefb004e52688070977085201" + integrity sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q== + +"@rolldown/binding-linux-arm64-musl@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz#eb32b2d4108c1c702b91e8cde8a043eae5caa94d" + integrity sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA== + +"@rolldown/binding-linux-ppc64-gnu@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz#ccb943c11e5a72655cbb02fc1163541ceb640782" + integrity sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg== + +"@rolldown/binding-linux-s390x-gnu@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz#a33731ee567e90b75fac6e5e55307e8a2b3038f0" + integrity sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA== + +"@rolldown/binding-linux-x64-gnu@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz#a74c01aaacedfc11c39b6feba33a5fa0c654949f" + integrity sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ== + +"@rolldown/binding-linux-x64-musl@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz#28cd178494fa1e65dba412229b5ce55c4dd5cbd1" + integrity sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg== + +"@rolldown/binding-openharmony-arm64@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz#f7c75fa913fc20884d26a7d488d4f5c597cd71c0" + integrity sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw== + +"@rolldown/binding-wasm32-wasi@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz#c379581947787081df363ea106140fcd5fec252d" + integrity sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA== + dependencies: + "@emnapi/core" "1.11.1" + "@emnapi/runtime" "1.11.1" + "@napi-rs/wasm-runtime" "^1.1.6" + +"@rolldown/binding-win32-arm64-msvc@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz#f23c88694f7a729a12f395024aee38df80a16ba3" + integrity sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw== + +"@rolldown/binding-win32-x64-msvc@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz#3377c8de0e56a8857f11217561147090e874cb46" + integrity sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA== + +"@rolldown/pluginutils@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz#e3fcee093fbb5ce765e1ad088ff4de2889f6f9be" + integrity sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw== + +"@simple-libs/child-process-utils@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@simple-libs/child-process-utils/-/child-process-utils-2.0.0.tgz#90ea8a9008ab622cc50cf94ed3469ce5144e9eb6" + integrity sha512-dvNoRKLijXnD0XoJAz94pbNuB5GQgDr55UhpSPhffDkTT0Cmcqh9jSCOtwfT2d4H6MI9E7c4SgtMuJXZ6F3c6A== dependencies: - "@simple-libs/stream-utils" "^1.2.0" + "@simple-libs/stream-utils" "^2.0.0" -"@simple-libs/stream-utils@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@simple-libs/stream-utils/-/stream-utils-1.2.0.tgz#5af724b826f1ab4d7f2826d31d3efccec124102b" - integrity sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA== +"@simple-libs/stream-utils@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@simple-libs/stream-utils/-/stream-utils-2.0.0.tgz#758d2a0876b4d672dac1eae212cdbab452670d3c" + integrity sha512-fCTuZK4QBa+39Oz9l4OGfJfz+GpwCp3AqO7Zch3to99xHPgstVsRFpeQ8LNd2o1Gv8raL2mCFwiaHh7bFSp5DQ== "@standard-schema/spec@^1.1.0": version "1.1.0" @@ -658,10 +662,10 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== -"@tybys/wasm-util@^0.10.1": - version "0.10.2" - resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.2.tgz#12b3a1b33db1f9cad4ddff1f604ab7dd00bf464e" - integrity sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg== +"@tybys/wasm-util@^0.10.3": + version "0.10.3" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.3.tgz#015cba9e9dd47ce14d03d2a8c5d547bfb169665d" + integrity sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg== dependencies: tslib "^2.4.0" @@ -805,13 +809,13 @@ "@typescript-eslint/types" "8.48.1" eslint-visitor-keys "^4.2.1" -"@vitest/coverage-v8@^4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@vitest/coverage-v8/-/coverage-v8-4.1.5.tgz#26bbdbebecd66be77fa1b63a9ed985dd86a3ba85" - integrity sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A== +"@vitest/coverage-v8@^4.1.10": + version "4.1.10" + resolved "https://registry.yarnpkg.com/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz#037cd5e7ea8a2f448f4c2e10db1411c2b0c927bd" + integrity sha512-IM49HmthevbgAO4anp1hwtoT9wYe59w0LR00gr+eagHE+ZJ5lK4sLPeO0ubgoJcwLk6dehU3R24N+FbEEKDc8g== dependencies: "@bcoe/v8-coverage" "^1.0.2" - "@vitest/utils" "4.1.5" + "@vitest/utils" "4.1.10" ast-v8-to-istanbul "^1.0.0" istanbul-lib-coverage "^3.2.2" istanbul-lib-report "^3.0.1" @@ -821,63 +825,63 @@ std-env "^4.0.0-rc.1" tinyrainbow "^3.1.0" -"@vitest/expect@4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-4.1.5.tgz#5caab19535cfb04fbc37087c5608d46e74dc9292" - integrity sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw== +"@vitest/expect@4.1.10": + version "4.1.10" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-4.1.10.tgz#799c06fc44bb0cf7e2784137b627c5cc173285d4" + integrity sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA== dependencies: "@standard-schema/spec" "^1.1.0" "@types/chai" "^5.2.2" - "@vitest/spy" "4.1.5" - "@vitest/utils" "4.1.5" + "@vitest/spy" "4.1.10" + "@vitest/utils" "4.1.10" chai "^6.2.2" tinyrainbow "^3.1.0" -"@vitest/mocker@4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-4.1.5.tgz#9d5791733e4866cfb8af2d48ca371b127e7d2e93" - integrity sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw== +"@vitest/mocker@4.1.10": + version "4.1.10" + resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-4.1.10.tgz#2413987ab4cd7fa1c2b614b404c407bf6ad1ead1" + integrity sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow== dependencies: - "@vitest/spy" "4.1.5" + "@vitest/spy" "4.1.10" estree-walker "^3.0.3" magic-string "^0.30.21" -"@vitest/pretty-format@4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-4.1.5.tgz#4c13d77a77e2931e44db95522ed5700bcf0570d4" - integrity sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g== +"@vitest/pretty-format@4.1.10": + version "4.1.10" + resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-4.1.10.tgz#75542e7273a08cc10fd4d8dad4e3eb1f16cd958c" + integrity sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q== dependencies: tinyrainbow "^3.1.0" -"@vitest/runner@4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-4.1.5.tgz#a14dd2d2f48603f906dd52304a10c7fc623bb1de" - integrity sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ== +"@vitest/runner@4.1.10": + version "4.1.10" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-4.1.10.tgz#febf0a21a9168421422d1955370e606feab60355" + integrity sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg== dependencies: - "@vitest/utils" "4.1.5" + "@vitest/utils" "4.1.10" pathe "^2.0.3" -"@vitest/snapshot@4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-4.1.5.tgz#d07970d1448190ee5a258db6ab79c65b8018c13b" - integrity sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ== +"@vitest/snapshot@4.1.10": + version "4.1.10" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-4.1.10.tgz#7e3e9fec7d4d47232e493cfdcbd2170de4371c04" + integrity sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw== dependencies: - "@vitest/pretty-format" "4.1.5" - "@vitest/utils" "4.1.5" + "@vitest/pretty-format" "4.1.10" + "@vitest/utils" "4.1.10" magic-string "^0.30.21" pathe "^2.0.3" -"@vitest/spy@4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.1.5.tgz#fa7858ffab746fa9ac29496e626f5a0caf9a5a7f" - integrity sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ== +"@vitest/spy@4.1.10": + version "4.1.10" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.1.10.tgz#5c0bfa97b56bba9e37403c976db776ff6ab56f65" + integrity sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw== -"@vitest/utils@4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-4.1.5.tgz#20d6a6ae651a0dd33f945548921698d49701fa43" - integrity sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug== +"@vitest/utils@4.1.10": + version "4.1.10" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-4.1.10.tgz#ffc71055f18bfccb1fd0586365ebc2824892e403" + integrity sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA== dependencies: - "@vitest/pretty-format" "4.1.5" + "@vitest/pretty-format" "4.1.10" convert-source-map "^2.0.0" tinyrainbow "^3.1.0" @@ -917,20 +921,25 @@ ajv@^6.12.4: uri-js "^4.2.2" ajv@^8.11.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.2.tgz#aecb20b50607acf2569b6382167b65a96008bb78" - integrity sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg== + version "8.20.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.20.0.tgz#304b3636add88ba7d936760dd50ece006dea95f9" + integrity sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA== dependencies: - fast-deep-equal "^3.1.1" + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" - uri-js "^4.2.2" -ansi-regex@^5.0.0, ansi-regex@^5.0.1: +ansi-regex@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" + integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -945,6 +954,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@^6.2.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -955,10 +969,10 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== +argue-cli@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/argue-cli/-/argue-cli-3.1.0.tgz#5ab702af716dce3e30a95919bd1ac314e2d903f0" + integrity sha512-DhBpBfXL4SS2uC0N922MMajKR3CdrTG0u2or1PNYgXMsrSzViJrbtvT0nCLlLGUI0plam/ZZCs7aAauHtW9thw== assertion-error@^2.0.1: version "2.0.1" @@ -974,17 +988,16 @@ ast-v8-to-istanbul@^1.0.0: estree-walker "^3.0.3" js-tokens "^10.0.0" -auto-changelog@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/auto-changelog/-/auto-changelog-2.5.0.tgz#c7a3a203a99b54c3c7286b247911966581103c10" - integrity sha512-UTnLjT7I9U2U/xkCUH5buDlp8C7g0SGChfib+iDrJkamcj5kaMqNKHNfbKJw1kthJUq8sUo3i3q2S6FzO/l/wA== +auto-changelog@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/auto-changelog/-/auto-changelog-2.6.0.tgz#30f7ad70fba7f76927320ad8de40dac1311751d5" + integrity sha512-jJgUkuWXQ7fPLPXOMQk/XSSmy7KvzpzhjJa6w660dq1KTEez/GW2CPckBra3jMMMMpcwxp84bOslo29qRCewzA== dependencies: commander "^7.2.0" - handlebars "^4.7.7" + handlebars "^4.7.9" import-cwd "^3.0.0" - node-fetch "^2.6.1" - parse-github-url "^1.0.3" - semver "^7.3.5" + parse-github-url "^1.0.4" + semver "^7.8.1" balanced-match@^1.0.0: version "1.0.0" @@ -1002,9 +1015,9 @@ boolbase@^1.0.0: integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: - version "1.1.14" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.14.tgz#d9de602370d91347cd9ddad1224d4fd701eb348b" - integrity sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g== + version "1.1.16" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.16.tgz#723d3a30c0558c225abc9fc479a73e14e26c3c2f" + integrity sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -1059,14 +1072,14 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== +cliui@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-9.0.1.tgz#6f7890f386f6f1f79953adc1f78dec46fcc2d291" + integrity sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w== dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" + string-width "^7.2.0" + strip-ansi "^7.1.0" + wrap-ansi "^9.0.0" color-convert@^1.9.0: version "1.9.3" @@ -1097,40 +1110,32 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -compare-func@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" - integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== - dependencies: - array-ify "^1.0.0" - dot-prop "^5.1.0" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -conventional-changelog-angular@^8.2.0: - version "8.3.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-8.3.1.tgz#0b015e25ca7f2766a8c5352ab6488dcb76a9d881" - integrity sha512-6gfI3otXK5Ph5DfCOI1dblr+kN3FAm5a97hYoQkqNZxOaYa5WKfXH+AnpsmS+iUH2mgVC2Cg2Qw9m5OKcmNrIg== +conventional-changelog-angular@^9.0.0: + version "9.2.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-9.2.1.tgz#58c20e13f3cbaf4b41c23d898378c3e02ce716c3" + integrity sha512-oWSL6ZhnXbYraOFTK3PgRAQJ8fADDAEv5K6AdeyQPLvjFmhG8+ejL0jZZp/R7vTmGJaBvZEE+sE7dB4bCv7sAw== dependencies: - compare-func "^2.0.0" + "@conventional-changelog/template" "^1.2.1" -conventional-changelog-conventionalcommits@^9.2.0: - version "9.3.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-9.3.1.tgz#14f2dd65ccc5de09322a7eb0159f3e0259d7399c" - integrity sha512-dTYtpIacRpcZgrvBYvBfArMmK2xvIpv2TaxM0/ZI5CBtNUzvF2x0t15HsbRABWprS6UPmvj+PzHVjSx4qAVKyw== +conventional-changelog-conventionalcommits@^10.0.0: + version "10.2.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-10.2.1.tgz#dfa7cd9b3c6762bc65b2e7c97636097a3b426217" + integrity sha512-n4Kr1HFMTf3iMbES0TMxKIcYtUUv4rKqyQQp2JwfOEfFCOfGT3Tq4mCyJ8S9/YPyWhydjfKrrvnyl+gCjA+mJQ== dependencies: - compare-func "^2.0.0" + "@conventional-changelog/template" "^1.2.1" -conventional-commits-parser@^6.3.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-6.4.0.tgz#8ac1c12ec467354ed4d73ec940efe380e1e83686" - integrity sha512-tvRg7FIBNlyPzjdG8wWRlPHQJJHI7DylhtRGeU9Lq+JuoPh5BKpPRX83ZdLrvXuOSu5Eo/e7SzOQhU4Hd2Miuw== +conventional-commits-parser@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-7.1.0.tgz#1ce5fb1466b9b74ef68c861d37ca96179055c0f1" + integrity sha512-DPp6hkUjvwIivxbkrTiLXeRswNv1A/4GFA2X6scXma0AMa9632V3TwxmrlkUIEtUktiM3Ln+RrSH2xlP3/jUTw== dependencies: - "@simple-libs/stream-utils" "^1.2.0" - meow "^13.0.0" + "@simple-libs/stream-utils" "^2.0.0" + argue-cli "^3.1.0" convert-source-map@^2.0.0: version "2.0.0" @@ -1268,18 +1273,16 @@ domutils@^3.0.1: domelementtype "^2.3.0" domhandler "^5.0.1" -dot-prop@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - duplexer@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +emoji-regex@^10.3.0: + version "10.6.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.6.0.tgz#bf3d6e8f7f8fd22a65d9703475bc0147357a6b0d" + integrity sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -1312,37 +1315,37 @@ es-toolkit@^1.46.0: resolved "https://registry.yarnpkg.com/es-toolkit/-/es-toolkit-1.46.1.tgz#38ca27191a98a867fc544b81cf1477a68947fb06" integrity sha512-5eNtXOs3tbfxXOj04tjjseeWkRWaoCjdEI+96DgwzZoe6c9juL49pXlzAFTI72aWC9Y8p7168g6XIKjh7k6pyQ== -esbuild@~0.27.0: - version "0.27.1" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.27.1.tgz#56bf43e6a4b4d2004642ec7c091b78de02b0831a" - integrity sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA== +esbuild@~0.28.0: + version "0.28.1" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.28.1.tgz#ef45b4634c9c9d97a296aea4114a5f9840f95578" + integrity sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw== optionalDependencies: - "@esbuild/aix-ppc64" "0.27.1" - "@esbuild/android-arm" "0.27.1" - "@esbuild/android-arm64" "0.27.1" - "@esbuild/android-x64" "0.27.1" - "@esbuild/darwin-arm64" "0.27.1" - "@esbuild/darwin-x64" "0.27.1" - "@esbuild/freebsd-arm64" "0.27.1" - "@esbuild/freebsd-x64" "0.27.1" - "@esbuild/linux-arm" "0.27.1" - "@esbuild/linux-arm64" "0.27.1" - "@esbuild/linux-ia32" "0.27.1" - "@esbuild/linux-loong64" "0.27.1" - "@esbuild/linux-mips64el" "0.27.1" - "@esbuild/linux-ppc64" "0.27.1" - "@esbuild/linux-riscv64" "0.27.1" - "@esbuild/linux-s390x" "0.27.1" - "@esbuild/linux-x64" "0.27.1" - "@esbuild/netbsd-arm64" "0.27.1" - "@esbuild/netbsd-x64" "0.27.1" - "@esbuild/openbsd-arm64" "0.27.1" - "@esbuild/openbsd-x64" "0.27.1" - "@esbuild/openharmony-arm64" "0.27.1" - "@esbuild/sunos-x64" "0.27.1" - "@esbuild/win32-arm64" "0.27.1" - "@esbuild/win32-ia32" "0.27.1" - "@esbuild/win32-x64" "0.27.1" + "@esbuild/aix-ppc64" "0.28.1" + "@esbuild/android-arm" "0.28.1" + "@esbuild/android-arm64" "0.28.1" + "@esbuild/android-x64" "0.28.1" + "@esbuild/darwin-arm64" "0.28.1" + "@esbuild/darwin-x64" "0.28.1" + "@esbuild/freebsd-arm64" "0.28.1" + "@esbuild/freebsd-x64" "0.28.1" + "@esbuild/linux-arm" "0.28.1" + "@esbuild/linux-arm64" "0.28.1" + "@esbuild/linux-ia32" "0.28.1" + "@esbuild/linux-loong64" "0.28.1" + "@esbuild/linux-mips64el" "0.28.1" + "@esbuild/linux-ppc64" "0.28.1" + "@esbuild/linux-riscv64" "0.28.1" + "@esbuild/linux-s390x" "0.28.1" + "@esbuild/linux-x64" "0.28.1" + "@esbuild/netbsd-arm64" "0.28.1" + "@esbuild/netbsd-x64" "0.28.1" + "@esbuild/openbsd-arm64" "0.28.1" + "@esbuild/openbsd-x64" "0.28.1" + "@esbuild/openharmony-arm64" "0.28.1" + "@esbuild/sunos-x64" "0.28.1" + "@esbuild/win32-arm64" "0.28.1" + "@esbuild/win32-ia32" "0.28.1" + "@esbuild/win32-x64" "0.28.1" escalade@^3.1.1: version "3.1.1" @@ -1514,6 +1517,11 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-uri@^3.0.1: + version "3.1.4" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.4.tgz#3b3daf9ce68f41f956df0b505132c0cfce9ec7af" + integrity "sha1-Oz2vnOaPQflW3wtQUTLAz86ex68= sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==" + fdir@^6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" @@ -1552,10 +1560,10 @@ from@~0: resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== -fs-extra@^11.3.4: - version "11.3.4" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.4.tgz#ab6934eca8bcf6f7f6b82742e33591f86301d6fc" - integrity sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA== +fs-extra@^11.3.6: + version "11.3.6" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.6.tgz#f7cb80e9df550cd1db6f537fa5cdd568d3e70d10" + integrity sha512-w8ZNZr2mKIc7qeNaQ9AVPT1+iFaI+Avd4xudVOvdDJ8VytREi1Ft5Ih7hd9jjehod8vAM5GMsfQ/TpPf4EyoEA== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -1576,20 +1584,10 @@ 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-tsconfig@^4.7.5: - version "4.7.5" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.5.tgz#5e012498579e9a6947511ed0cd403272c7acbbaf" - integrity sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw== - dependencies: - resolve-pkg-maps "^1.0.0" - -git-raw-commits@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-5.0.1.tgz#e91d8fd4e3a264142166956fe1a23d08c069657e" - integrity sha512-Y+csSm2GD/PCSh6Isd/WiMjNAydu0VBiG9J7EdQsNA5P9uXvLayqjmTsNlK5Gs9IhblFZqOU0yid5Il5JPoLiQ== - dependencies: - "@conventional-changelog/git-client" "^2.6.0" - meow "^13.0.0" +get-east-asian-width@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz#216900f91df11a8b2c198c3e1d93d6c035a776b9" + integrity sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA== glob-parent@^6.0.2: version "6.0.2" @@ -1641,7 +1639,7 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -handlebars@^4.7.7: +handlebars@^4.7.9: version "4.7.9" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.9.tgz#6f139082ab58dc4e5a0e51efe7db5ae890d56a0f" integrity sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ== @@ -1710,11 +1708,6 @@ import-from@^3.0.0: dependencies: resolve-from "^5.0.0" -import-meta-resolve@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#f9db8bead9fafa61adb811db77a2bf22c5399706" - integrity sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw== - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -1760,11 +1753,6 @@ is-glob@^4.0.0, is-glob@^4.0.3: dependencies: is-extglob "^2.1.1" -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - is-plain-obj@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" @@ -1823,9 +1811,9 @@ js-tokens@^4.0.0: integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" - integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.0.tgz#d1900572a7f7cf0b5f540c83673e60bad3436592" + integrity sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q== dependencies: argparse "^2.0.1" @@ -1974,13 +1962,6 @@ lru-cache@^11.0.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.0.0.tgz#15d93a196f189034d7166caf9fe55e7384c98a21" integrity sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA== -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - magic-string@^0.30.21: version "0.30.21" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" @@ -2014,11 +1995,6 @@ map-stream@~0.1.0: resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== -meow@^13.0.0: - version "13.2.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-13.2.0.tgz#6b7d63f913f984063b3cc261b6e8800c4cd3474f" - integrity sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA== - minimatch@^10.2.2: version "10.2.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1" @@ -2027,9 +2003,9 @@ minimatch@^10.2.2: brace-expansion "^5.0.5" minimatch@^3.0.3, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + version "3.1.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e" + integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== dependencies: brace-expansion "^1.1.7" @@ -2040,7 +2016,7 @@ minimatch@^9.0.4: dependencies: brace-expansion "^2.0.2" -minimist@^1.2.5, minimist@^1.2.8: +minimist@^1.2.5: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -2070,10 +2046,10 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -nanoid@^3.3.11: - version "3.3.12" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.12.tgz#ab3d912e217a6d0a514f00a72a16543a28982c05" - integrity sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ== +nanoid@^3.3.16: + version "3.3.16" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.16.tgz#a04d8ec4b1f10009d2d533947aefe4293737816c" + integrity sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q== natural-compare@^1.4.0: version "1.4.0" @@ -2090,13 +2066,6 @@ node-cleanup@^2.1.2: resolved "https://registry.yarnpkg.com/node-cleanup/-/node-cleanup-2.1.2.tgz#7ac19abd297e09a7f72a71545d951b517e4dde2c" integrity sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw== -node-fetch@^2.6.1: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - node-fetch@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" @@ -2177,10 +2146,10 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-github-url@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.3.tgz#2ab55642c8685b63fbe2a196f5abe4ae9bd68abc" - integrity sha512-tfalY5/4SqGaV/GIGzWyHnFjlpTPTNpENR9Ea2lLldSJ8EWXMsvacWucqY3m3I4YPtas15IxTLQVQ5NSYXPrww== +parse-github-url@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.4.tgz#4b08752d219b4168a5502366cc459fe48fa8aa9f" + integrity sha512-CEtCOt55fHmd6DpBc/N7H5NC4vJpcquhzzs9Iw2mRj8bVxo1O5TQI5MXKOMO7+yBOqD+5dKCCRK4Kj1KskZc6Q== parse-json@^5.2.0: version "5.2.0" @@ -2232,27 +2201,22 @@ picocolors@^1.1.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" - integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== - -picomatch@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" - integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== +picomatch@^4.0.2, picomatch@^4.0.3, picomatch@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.5.tgz#51ea57a17d86f605f81039595fbc40ed06a55fab" + integrity sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A== picomatch@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589" integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A== -postcss@^8.5.10: - version "8.5.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.14.tgz#a66c2d7808fadf69ebb5b84a03f8bafd76c4919c" - integrity sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg== +postcss@^8.5.17: + version "8.5.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.21.tgz#47a779bd831733ff620e608d233b195ee1e7d66c" + integrity sha512-v4sDNP3fdNiWMfabO7OwOQdOX8TiQSztKyT1Wj0w+j7LDallJThJRBBBmzVGyYj0crMh7jlV4zepPkiNu9UwDQ== dependencies: - nanoid "^3.3.11" + nanoid "^3.3.16" picocolors "^1.1.1" source-map-js "^1.2.1" @@ -2339,11 +2303,6 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-pkg-maps@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" - integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - rimraf@^6.1.3: version "6.1.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.1.3.tgz#afbee236b3bd2be331d4e7ce4493bac1718981af" @@ -2352,42 +2311,35 @@ rimraf@^6.1.3: glob "^13.0.3" package-json-from-dist "^1.0.1" -rolldown@1.0.0-rc.17: - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0-rc.17.tgz#c524fc22f6bb37b5588aec862ab1ee11382610f3" - integrity sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA== +rolldown@~1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.1.5.tgz#339aae250844351fc55b74e2652d3ebd6fba389d" + integrity sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA== dependencies: - "@oxc-project/types" "=0.127.0" - "@rolldown/pluginutils" "1.0.0-rc.17" + "@oxc-project/types" "=0.139.0" + "@rolldown/pluginutils" "^1.0.0" optionalDependencies: - "@rolldown/binding-android-arm64" "1.0.0-rc.17" - "@rolldown/binding-darwin-arm64" "1.0.0-rc.17" - "@rolldown/binding-darwin-x64" "1.0.0-rc.17" - "@rolldown/binding-freebsd-x64" "1.0.0-rc.17" - "@rolldown/binding-linux-arm-gnueabihf" "1.0.0-rc.17" - "@rolldown/binding-linux-arm64-gnu" "1.0.0-rc.17" - "@rolldown/binding-linux-arm64-musl" "1.0.0-rc.17" - "@rolldown/binding-linux-ppc64-gnu" "1.0.0-rc.17" - "@rolldown/binding-linux-s390x-gnu" "1.0.0-rc.17" - "@rolldown/binding-linux-x64-gnu" "1.0.0-rc.17" - "@rolldown/binding-linux-x64-musl" "1.0.0-rc.17" - "@rolldown/binding-openharmony-arm64" "1.0.0-rc.17" - "@rolldown/binding-wasm32-wasi" "1.0.0-rc.17" - "@rolldown/binding-win32-arm64-msvc" "1.0.0-rc.17" - "@rolldown/binding-win32-x64-msvc" "1.0.0-rc.17" + "@rolldown/binding-android-arm64" "1.1.5" + "@rolldown/binding-darwin-arm64" "1.1.5" + "@rolldown/binding-darwin-x64" "1.1.5" + "@rolldown/binding-freebsd-x64" "1.1.5" + "@rolldown/binding-linux-arm-gnueabihf" "1.1.5" + "@rolldown/binding-linux-arm64-gnu" "1.1.5" + "@rolldown/binding-linux-arm64-musl" "1.1.5" + "@rolldown/binding-linux-ppc64-gnu" "1.1.5" + "@rolldown/binding-linux-s390x-gnu" "1.1.5" + "@rolldown/binding-linux-x64-gnu" "1.1.5" + "@rolldown/binding-linux-x64-musl" "1.1.5" + "@rolldown/binding-openharmony-arm64" "1.1.5" + "@rolldown/binding-wasm32-wasi" "1.1.5" + "@rolldown/binding-win32-arm64-msvc" "1.1.5" + "@rolldown/binding-win32-x64-msvc" "1.1.5" safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -semver@^7.3.5: - version "7.5.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" - integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== - dependencies: - lru-cache "^6.0.0" - semver@^7.5.2, semver@^7.5.3: version "7.7.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.4.tgz#28464e36060e991fa7a11d0279d2d3f3b57a7e8a" @@ -2398,6 +2350,11 @@ semver@^7.6.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== +semver@^7.8.1: + version "7.8.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.5.tgz#39b646037dd50c14fb451e7e4cac58ed8b863f69" + integrity sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA== + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -2463,14 +2420,14 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== +string-width@^7.0.0, string-width@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" + integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" string_decoder@~0.10.x: version "0.10.31" @@ -2491,12 +2448,12 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== +strip-ansi@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.2.0.tgz#d22a269522836a627af8d04b5c3fd2c7fa3e32e3" + integrity sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w== dependencies: - ansi-regex "^5.0.1" + ansi-regex "^6.2.2" strip-json-comments@^3.1.1: version "3.1.1" @@ -2558,10 +2515,10 @@ tinyglobby@^0.2.15: fdir "^6.5.0" picomatch "^4.0.3" -tinyglobby@^0.2.16: - version "0.2.16" - resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.16.tgz#1c3b7eb953fce42b226bc5a1ee06428281aff3d6" - integrity sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg== +tinyglobby@^0.2.17: + version "0.2.17" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.17.tgz#562a9a6c9eb2b3b123d39719f9af5bb44fcd7631" + integrity sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g== dependencies: fdir "^6.5.0" picomatch "^4.0.4" @@ -2615,13 +2572,12 @@ tslib@^2.4.0, tslib@^2.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== -tsx@^4.21.0: - version "4.21.0" - resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.21.0.tgz#32aa6cf17481e336f756195e6fe04dae3e6308b1" - integrity sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw== +tsx@^4.23.1: + version "4.23.1" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.23.1.tgz#1703da002ee4432b9a053917431f91462fca235b" + integrity sha512-GQHnkIfxyx1wYCOS/wonik5MVRZU9hi1TEZmzGZSCJB1y9YgoZ8H6itNE/u4suE+yLmOzuE4E5S4TZ/ZX2wcWQ== dependencies: - esbuild "~0.27.0" - get-tsconfig "^4.7.5" + esbuild "~0.28.0" optionalDependencies: fsevents "~2.3.3" @@ -2670,30 +2626,30 @@ v8-compile-cache-lib@^3.0.1: integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== "vite@^6.0.0 || ^7.0.0 || ^8.0.0": - version "8.0.10" - resolved "https://registry.yarnpkg.com/vite/-/vite-8.0.10.tgz#fb31868526ec874101fac084172a2cdc6776319b" - integrity sha512-rZuUu9j6J5uotLDs+cAA4O5H4K1SfPliUlQwqa6YEwSrWDZzP4rhm00oJR5snMewjxF5V/K3D4kctsUTsIU9Mw== + version "8.1.5" + resolved "https://registry.yarnpkg.com/vite/-/vite-8.1.5.tgz#ccffce3ee487b1886223b24ebb27b91674827d30" + integrity sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw== dependencies: lightningcss "^1.32.0" - picomatch "^4.0.4" - postcss "^8.5.10" - rolldown "1.0.0-rc.17" - tinyglobby "^0.2.16" + picomatch "^4.0.5" + postcss "^8.5.17" + rolldown "~1.1.5" + tinyglobby "^0.2.17" optionalDependencies: fsevents "~2.3.3" -vitest@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.1.5.tgz#cda189c0cd9dd1c920be477c0f371b64ec14782a" - integrity sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg== - dependencies: - "@vitest/expect" "4.1.5" - "@vitest/mocker" "4.1.5" - "@vitest/pretty-format" "4.1.5" - "@vitest/runner" "4.1.5" - "@vitest/snapshot" "4.1.5" - "@vitest/spy" "4.1.5" - "@vitest/utils" "4.1.5" +vitest@^4.1.10: + version "4.1.10" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.1.10.tgz#7e9285efe264b1167050b7a3a7ff34788e1b7afc" + integrity sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw== + dependencies: + "@vitest/expect" "4.1.10" + "@vitest/mocker" "4.1.10" + "@vitest/pretty-format" "4.1.10" + "@vitest/runner" "4.1.10" + "@vitest/snapshot" "4.1.10" + "@vitest/spy" "4.1.10" + "@vitest/utils" "4.1.10" es-module-lexer "^2.0.0" expect-type "^1.3.0" magic-string "^0.30.21" @@ -2750,6 +2706,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.2.tgz#956832dea9494306e6d209eb871643bb873d7c98" + integrity sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww== + dependencies: + ansi-styles "^6.2.1" + string-width "^7.0.0" + strip-ansi "^7.1.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -2765,20 +2730,15 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== +yargs-parser@^22.0.0: + version "22.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-22.0.0.tgz#87b82094051b0567717346ecd00fd14804b357c8" + integrity sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw== yargs@^16.1.0: version "16.2.0" @@ -2793,18 +2753,17 @@ yargs@^16.1.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.0.0: - version "17.6.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" - integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== +yargs@^18.0.0: + version "18.0.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-18.0.0.tgz#6c84259806273a746b09f579087b68a3c2d25bd1" + integrity sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg== dependencies: - cliui "^8.0.1" + cliui "^9.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" + string-width "^7.2.0" y18n "^5.0.5" - yargs-parser "^21.1.1" + yargs-parser "^22.0.0" yn@3.1.1: version "3.1.1" From c5bad9d5e0dcf29a92a0bcd00ba19efdabab087c Mon Sep 17 00:00:00 2001 From: Celtian Date: Tue, 21 Jul 2026 21:45:05 +0200 Subject: [PATCH 02/12] chore(deps): deps updated --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index c20eea1..a5af51a 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "eslint": "^9.39.1", "fs-extra": "^11.3.6", "husky": "^9.1.7", - "prettier": "^3.8.3", + "prettier": "^3.9.6", "pretty-quick": "^4.2.2", "rimraf": "^6.1.3", "ts-node": "^10.9.2", diff --git a/yarn.lock b/yarn.lock index e7d511a..7828e68 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2225,10 +2225,10 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^3.8.3: - version "3.8.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.3.tgz#560f2de55bf01b4c0503bc629d5df99b9a1d09b0" - integrity sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw== +prettier@^3.9.6: + version "3.9.6" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.6.tgz#b3ea5146515d40fc53f18aa63f74dfab1e10dbf6" + integrity sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g== pretty-quick@^4.2.2: version "4.2.2" From a3daa040d4f6260787782e37a3d9a35e34dfb4cd Mon Sep 17 00:00:00 2001 From: Celtian Date: Tue, 21 Jul 2026 22:07:34 +0200 Subject: [PATCH 03/12] chore(deps): all deps updated --- .eslintrc.js | 202 -------- .github/actions/cached-deps/action.yml | 37 +- .github/workflows/main.yml | 12 +- .github/workflows/pull-request.yml | 10 +- .nvmrc | 2 +- eslint.config.mjs | 16 + package.json | 19 +- scripts/prepare-dist.ts | 1 - tsconfig.es5.json | 3 +- tsconfig.es6.json | 5 +- tsconfig.json | 7 +- yarn.lock | 652 +++++++++++-------------- 12 files changed, 344 insertions(+), 622 deletions(-) delete mode 100644 .eslintrc.js create mode 100644 eslint.config.mjs diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 6b40f57..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,202 +0,0 @@ -/* -👋 Hi! This file was autogenerated by tslint-to-eslint-config. -https://github.com/typescript-eslint/tslint-to-eslint-config - -It represents the closest reasonable ESLint configuration to this -project's original TSLint configuration. - -We recommend eventually switching this configuration to extend from -the recommended rulesets in typescript-eslint. -https://github.com/typescript-eslint/tslint-to-eslint-config/blob/master/docs/FAQs.md - -Happy linting! 💖 -*/ -module.exports = { - env: { - browser: true, - es6: true, - node: true - }, - extends: ['plugin:@typescript-eslint/recommended', 'plugin:@typescript-eslint/recommended-requiring-type-checking'], - parser: '@typescript-eslint/parser', - parserOptions: { - project: 'tsconfig.json', - sourceType: 'module' - }, - plugins: ['eslint-plugin-import', 'eslint-plugin-jsdoc', 'eslint-plugin-prefer-arrow', '@typescript-eslint'], - rules: { - '@typescript-eslint/adjacent-overload-signatures': 'error', - '@typescript-eslint/array-type': [ - 'error', - { - default: 'array' - } - ], - '@typescript-eslint/ban-types': [ - 'error', - { - types: { - Object: { - message: 'Avoid using the `Object` type. Did you mean `object`?' - }, - Function: { - message: 'Avoid using the `Function` type. Prefer a specific function type, like `() => void`.' - }, - Boolean: { - message: 'Avoid using the `Boolean` type. Did you mean `boolean`?' - }, - Number: { - message: 'Avoid using the `Number` type. Did you mean `number`?' - }, - String: { - message: 'Avoid using the `String` type. Did you mean `string`?' - }, - Symbol: { - message: 'Avoid using the `Symbol` type. Did you mean `symbol`?' - } - } - } - ], - '@typescript-eslint/consistent-type-assertions': 'error', - '@typescript-eslint/dot-notation': 'error', - '@typescript-eslint/explicit-function-return-type': [ - 'error', - { - allowExpressions: false, - allowTypedFunctionExpressions: false, - allowHigherOrderFunctions: false, - allowDirectConstAssertionInArrowFunctions: true, - allowConciseArrowFunctionExpressionsStartingWithVoid: true - } - ], - '@typescript-eslint/explicit-member-accessibility': [ - 'error', - { - accessibility: 'explicit', - overrides: { - accessors: 'explicit' - } - } - ], - '@typescript-eslint/explicit-module-boundary-types': [ - 'error', - { - allowArgumentsExplicitlyTypedAsAny: true, - allowDirectConstAssertionInArrowFunctions: true, - allowHigherOrderFunctions: false, - allowTypedFunctionExpressions: false - } - ], - '@typescript-eslint/naming-convention': 'error', - '@typescript-eslint/no-empty-function': 'error', - '@typescript-eslint/no-empty-interface': 'warn', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-floating-promises': 'error', - '@typescript-eslint/no-misused-new': 'error', - '@typescript-eslint/no-namespace': 'error', - '@typescript-eslint/no-parameter-properties': 'off', - '@typescript-eslint/no-shadow': [ - 'error', - { - hoist: 'all' - } - ], - '@typescript-eslint/no-unnecessary-type-assertion': 'error', - '@typescript-eslint/no-unused-expressions': 'error', - '@typescript-eslint/no-use-before-define': 'off', - '@typescript-eslint/no-var-requires': 'error', - '@typescript-eslint/prefer-for-of': 'warn', - '@typescript-eslint/prefer-function-type': 'error', - '@typescript-eslint/prefer-namespace-keyword': 'error', - '@typescript-eslint/quotes': ['error', 'single'], - '@typescript-eslint/triple-slash-reference': [ - 'error', - { - path: 'always', - types: 'prefer-import', - lib: 'always' - } - ], - '@typescript-eslint/typedef': [ - 'error', - { - parameter: true - } - ], - '@typescript-eslint/unified-signatures': 'warn', - 'comma-dangle': 'off', - complexity: 'off', - 'constructor-super': 'error', - 'dot-notation': 'error', - eqeqeq: ['warn', 'always'], - 'guard-for-in': 'error', - 'id-denylist': [ - 'error', - 'any', - 'Number', - 'number', - 'String', - 'string', - 'Boolean', - 'boolean', - 'Undefined', - 'undefined' - ], - 'id-match': 'error', - 'import/no-deprecated': 'warn', - 'import/no-extraneous-dependencies': 'off', - 'import/no-unassigned-import': 'warn', - 'jsdoc/check-alignment': 'error', - 'jsdoc/check-indentation': 'error', - 'jsdoc/newline-after-description': 'error', - 'max-classes-per-file': ['error', 1], - 'new-parens': 'error', - 'no-bitwise': 'error', - 'no-caller': 'error', - 'no-cond-assign': 'error', - 'no-console': 'off', - 'no-debugger': 'error', - 'no-duplicate-case': 'error', - 'no-duplicate-imports': 'error', - 'no-empty': [ - 'error', - { - allowEmptyCatch: true - } - ], - 'no-empty-function': 'error', - 'no-eval': 'error', - 'no-fallthrough': 'off', - 'no-invalid-this': 'error', - 'no-new-wrappers': 'error', - 'no-param-reassign': 'error', - 'no-redeclare': 'error', - 'no-sequences': 'error', - 'no-shadow': 'error', - 'no-throw-literal': 'error', - 'no-trailing-spaces': 'error', - 'no-undef-init': 'error', - 'no-underscore-dangle': 'error', - 'no-unsafe-finally': 'error', - 'no-unused-expressions': 'error', - 'no-unused-labels': 'error', - 'no-use-before-define': 'off', - 'no-var': 'warn', - 'no-void': 'error', - 'object-shorthand': 'error', - 'one-var': ['error', 'never'], - 'prefer-arrow/prefer-arrow-functions': 'error', - 'prefer-const': 'warn', - quotes: 'error', - radix: 'error', - 'spaced-comment': [ - 'error', - 'always', - { - markers: ['/'] - } - ], - 'use-isnan': 'error', - 'valid-typeof': 'off' - } -}; diff --git a/.github/actions/cached-deps/action.yml b/.github/actions/cached-deps/action.yml index 660cbbc..90793c3 100644 --- a/.github/actions/cached-deps/action.yml +++ b/.github/actions/cached-deps/action.yml @@ -1,39 +1,8 @@ -name: Get & Cache Dependencies -description: Get dependencies via yarn and cache them -inputs: - caching: - description: Whether to cache dependencies or not - required: false - default: 'true' -outputs: - used-cache: - description: Whether the cache was used - value: ${{ steps.install.outputs.cache }} +name: Install Dependencies +description: Install dependencies from the frozen Yarn lockfile runs: using: composite steps: - - name: Cache dependencies - if: inputs.caching == 'true' - id: cache - uses: actions/cache@v3 - with: - path: node_modules - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.OS }}-yarn-${{ env.cache-name }}- - ${{ runner.OS }}-yarn- - ${{ runner.OS }}- - - name: Install - if: steps.cache.outputs.cache-hit != 'true' || inputs.caching != 'true' - id: install - run: | - yarn install --frozen-lockfile - echo "cache='${{ inputs.caching }}'" >> $GITHUB_OUTPUT - shell: bash - - - name: Postinstall - if: steps.cache.outputs.cache-hit == 'true' && inputs.caching == 'true' - id: postinstall - run: yarn postinstall + run: yarn install --frozen-lockfile shell: bash diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ace66ab..f98a5da 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -5,6 +5,10 @@ on: tags: - 'v*' +permissions: + contents: read + packages: write + jobs: install-and-build: name: 🛠️ Install & Build @@ -17,7 +21,8 @@ jobs: - name: 🗜️ Setup node version uses: actions/setup-node@v6 with: - node-version: 22 + node-version-file: .nvmrc + cache: yarn registry-url: 'https://registry.npmjs.org' - name: 🛠️ Install @@ -26,6 +31,9 @@ jobs: - name: 📦 Build run: yarn build + - name: 🧹 Run lint + run: yarn lint + - name: 🧪 Run tests run: yarn test --coverage --run @@ -58,7 +66,7 @@ jobs: if: startsWith(github.ref, 'refs/tags/v') && contains(github.ref, 'beta') == false uses: actions/setup-node@v6 with: - node-version: 22 + node-version-file: .nvmrc registry-url: https://npm.pkg.github.com/ scope: '@celtian' diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 8c470d8..36c47a9 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -1,6 +1,10 @@ name: 🐛 Test feature branch 'on': pull_request +permissions: + contents: read + pull-requests: write + jobs: install-and-test: name: 🛠️ Install & Test @@ -13,7 +17,8 @@ jobs: - name: 🗜️ Setup node version uses: actions/setup-node@v6 with: - node-version: 22 + node-version-file: .nvmrc + cache: yarn registry-url: 'https://registry.npmjs.org' - name: 🛠️ Install @@ -22,6 +27,9 @@ jobs: - name: 📦 Build run: yarn build + - name: 🧹 Run lint + run: yarn lint + - name: 🧪 Run tests run: yarn test --coverage --run diff --git a/.nvmrc b/.nvmrc index 2bd5a0a..a45fd52 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22 +24 diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..af6f554 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,16 @@ +import eslint from '@eslint/js'; +import tseslint from 'typescript-eslint'; + +export default tseslint.config( + { + ignores: ['coverage/**', 'dist/**', 'node_modules/**', 'test/mocks/**'] + }, + eslint.configs.recommended, + ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + rules: { + '@typescript-eslint/no-explicit-any': 'off' + } + } +); diff --git a/package.json b/package.json index a5af51a..153bbfc 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "demo": "yarn tsx ./demo.ts", "build": "rimraf dist && tsc --build tsconfig.es6.json && tsc --build tsconfig.es5.json", "postbuild": "copyfiles ./package.json ./README.md ./LICENSE ./dist && yarn prepare-dist", + "lint": "eslint .", "test": "vitest run", "husky:install": "husky", "prepare-source": "yarn tsx ./scripts/prepare-source.ts", @@ -43,35 +44,37 @@ }, "homepage": "https://github.com/Celtian/soccerbot#readme", "engines": { - "node": ">= 12", - "npm": "please-use-yarn" + "node": ">=22.13.0" }, + "packageManager": "yarn@1.22.22", "publishConfig": { "registry": "https://registry.npmjs.org" }, "dependencies": { "cross-fetch": "^4.1.0", - "node-html-parser": "^6.1.13" + "node-html-parser": "^9.0.0" }, "devDependencies": { "@commitlint/cli": "^21.2.1", "@commitlint/config-conventional": "^21.2.0", + "@eslint/js": "^10.0.1", "@types/fs-extra": "^11.0.4", - "@typescript-eslint/eslint-plugin": "^8.48.1", - "@typescript-eslint/parser": "^8.48.1", + "@types/node": "^24.13.3", "@vitest/coverage-v8": "^4.1.10", "auto-changelog": "^2.6.0", "copyfiles": "^2.4.1", - "eslint": "^9.39.1", + "eslint": "^10.7.0", "fs-extra": "^11.3.6", "husky": "^9.1.7", "prettier": "^3.9.6", "pretty-quick": "^4.2.2", "rimraf": "^6.1.3", "ts-node": "^10.9.2", - "tsc-watch": "^6.2.0", + "tsc-watch": "^7.2.1", "tsx": "^4.23.1", - "typescript": "^5.4.5", + "typescript": "^6.0.3", + "typescript-eslint": "^8.65.0", + "vite": "^8.1.5", "vitest": "^4.1.10" }, "keywords": [ diff --git a/scripts/prepare-dist.ts b/scripts/prepare-dist.ts index 4e9c1af..aeca702 100644 --- a/scripts/prepare-dist.ts +++ b/scripts/prepare-dist.ts @@ -10,7 +10,6 @@ pkg.devDependencies = {}; pkg.main = 'es5/index.js'; pkg.module = 'es6/index.js'; pkg.sideEffects = false; -pkg.engines.npm = undefined; writeFileSync(join(__dirname, '..', 'dist', 'package.json'), JSON.stringify(pkg, null, 2)); console.log('File package.json modified:', pkg); diff --git a/tsconfig.es5.json b/tsconfig.es5.json index b3c22de..49c85d0 100644 --- a/tsconfig.es5.json +++ b/tsconfig.es5.json @@ -2,10 +2,9 @@ "extends": "./tsconfig.json", "compilerOptions": { "module": "commonjs", - "target": "ES5", + "target": "ES2018", "declaration": true, "outDir": "./dist/es5", - "moduleResolution": "node", "lib": ["ES2020", "DOM"] }, "include": ["src/**/*"] diff --git a/tsconfig.es6.json b/tsconfig.es6.json index ae1f4d3..72ee824 100644 --- a/tsconfig.es6.json +++ b/tsconfig.es6.json @@ -2,11 +2,10 @@ "extends": "./tsconfig.json", "compilerOptions": { "module": "ES6", - "target": "ES5", + "target": "ES2018", "lib": ["ES2020", "DOM"], "declaration": true, - "outDir": "./dist/es6", - "moduleResolution": "node" + "outDir": "./dist/es6" }, "include": ["src/**/*"] } diff --git a/tsconfig.json b/tsconfig.json index 070f460..321584c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,13 +3,13 @@ "target": "es2019", "lib": ["dom"], "types": ["node", "vitest/globals"], - "baseUrl": "./src", "esModuleInterop": true, "module": "commonjs", - "moduleResolution": "node", + "moduleResolution": "bundler", "strictNullChecks": false, "sourceMap": false, "outDir": "./dist", + "rootDir": "./src", "strict": true, "declaration": true, "skipLibCheck": true, @@ -17,8 +17,7 @@ "noImplicitAny": true, "noImplicitReturns": true, "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, - "downlevelIteration": true + "resolveJsonModule": true }, "include": ["src"], "exclude": ["dist/**/*", "*/tests/**/*"] diff --git a/yarn.lock b/yarn.lock index 7828e68..7ff9866 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,11 +2,6 @@ # yarn lockfile v1 -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - "@babel/code-frame@^7.0.0": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" @@ -380,110 +375,86 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz#10064ee44f4347b90c9a02b446bbf80a91632b12" integrity sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A== -"@eslint-community/eslint-utils@^4.7.0": - version "4.7.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz#607084630c6c033992a082de6e6fbc1a8b52175a" - integrity sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw== +"@eslint-community/eslint-utils@^4.8.0", "@eslint-community/eslint-utils@^4.9.1": + version "4.9.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz#4e90af67bc51ddee6cdef5284edf572ec376b595" + integrity sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ== dependencies: eslint-visitor-keys "^3.4.3" -"@eslint-community/eslint-utils@^4.8.0": - version "4.9.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz#7308df158e064f0dd8b8fdb58aa14fa2a7f913b3" - integrity sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g== - dependencies: - eslint-visitor-keys "^3.4.3" - -"@eslint-community/regexpp@^4.10.0": - version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== - -"@eslint-community/regexpp@^4.12.1": - version "4.12.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" - integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== +"@eslint-community/regexpp@^4.12.2": + version "4.12.2" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b" + integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew== -"@eslint/config-array@^0.21.1": - version "0.21.1" - resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.1.tgz#7d1b0060fea407f8301e932492ba8c18aff29713" - integrity sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA== +"@eslint/config-array@^0.23.5": + version "0.23.5" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.23.5.tgz#56e86d243049195d8acc0c06a1b3dfdc3fa3de95" + integrity sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA== dependencies: - "@eslint/object-schema" "^2.1.7" + "@eslint/object-schema" "^3.0.5" debug "^4.3.1" - minimatch "^3.1.2" + minimatch "^10.2.4" -"@eslint/config-helpers@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.4.2.tgz#1bd006ceeb7e2e55b2b773ab318d300e1a66aeda" - integrity sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw== +"@eslint/config-helpers@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.6.0.tgz#ef9a36881d39dfd5dbeac22b0da997fabfb08b03" + integrity sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA== dependencies: - "@eslint/core" "^0.17.0" + "@eslint/core" "^1.2.1" -"@eslint/core@^0.17.0": - version "0.17.0" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.17.0.tgz#77225820413d9617509da9342190a2019e78761c" - integrity sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ== +"@eslint/core@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-1.2.1.tgz#c1da7cd1b82fa8787f98b5629fb811848a1b63ce" + integrity sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ== dependencies: "@types/json-schema" "^7.0.15" -"@eslint/eslintrc@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#e55f7f1dd400600dd066dbba349c4c0bac916964" - integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^10.0.1" - globals "^14.0.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" +"@eslint/js@^10.0.1": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-10.0.1.tgz#1e8a876f50117af8ab67e47d5ad94d38d6622583" + integrity sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA== -"@eslint/js@9.39.1": - version "9.39.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.1.tgz#0dd59c3a9f40e3f1882975c321470969243e0164" - integrity sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw== - -"@eslint/object-schema@^2.1.7": - version "2.1.7" - resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.7.tgz#6e2126a1347e86a4dedf8706ec67ff8e107ebbad" - integrity sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA== +"@eslint/object-schema@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-3.0.5.tgz#88e9bf4d11d2b19c082e78ebe7ce88724a5eb091" + integrity sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw== -"@eslint/plugin-kit@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz#9779e3fd9b7ee33571a57435cf4335a1794a6cb2" - integrity sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA== +"@eslint/plugin-kit@^0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz#4b0962f3f2c7ce8bc98b3ecfe34525c09d2cb729" + integrity sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A== dependencies: - "@eslint/core" "^0.17.0" + "@eslint/core" "^1.2.1" levn "^0.4.1" -"@humanfs/core@^0.19.1": - version "0.19.1" - resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" - integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== +"@humanfs/core@^0.19.2": + version "0.19.2" + resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.2.tgz#a8272ca03b2acf492670222b2320b6c421bfde60" + integrity sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA== + dependencies: + "@humanfs/types" "^0.15.0" "@humanfs/node@^0.16.6": - version "0.16.6" - resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e" - integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== + version "0.16.8" + resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.8.tgz#8f800cccc13f4f8cd3116e2d9c0a94939da3e3ed" + integrity sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ== dependencies: - "@humanfs/core" "^0.19.1" - "@humanwhocodes/retry" "^0.3.0" + "@humanfs/core" "^0.19.2" + "@humanfs/types" "^0.15.0" + "@humanwhocodes/retry" "^0.4.0" + +"@humanfs/types@^0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@humanfs/types/-/types-0.15.0.tgz#f2a09f62012390b2bff3fc6fb248ddec8c09a090" + integrity sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q== "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/retry@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.0.tgz#6d86b8cb322660f03d3f0aa94b99bdd8e172d570" - integrity sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew== - -"@humanwhocodes/retry@^0.4.2": +"@humanwhocodes/retry@^0.4.0", "@humanwhocodes/retry@^0.4.2": version "0.4.3" resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba" integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== @@ -682,11 +653,21 @@ resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== -"@types/estree@^1.0.0", "@types/estree@^1.0.6": +"@types/esrecurse@^4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@types/esrecurse/-/esrecurse-4.3.1.tgz#6f636af962fbe6191b830bd676ba5986926bccec" + integrity sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw== + +"@types/estree@^1.0.0": version "1.0.8" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== +"@types/estree@^1.0.6", "@types/estree@^1.0.8": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24" + integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== + "@types/fs-extra@^11.0.4": version "11.0.4" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-11.0.4.tgz#e16a863bb8843fba8c5004362b5a73e17becca45" @@ -712,102 +693,108 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== -"@typescript-eslint/eslint-plugin@^8.48.1": - version "8.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.1.tgz#c772d1dbdd97cfddf85f5a161a97783233643631" - integrity sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA== - dependencies: - "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.48.1" - "@typescript-eslint/type-utils" "8.48.1" - "@typescript-eslint/utils" "8.48.1" - "@typescript-eslint/visitor-keys" "8.48.1" - graphemer "^1.4.0" - ignore "^7.0.0" +"@types/node@^24.13.3": + version "24.13.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.13.3.tgz#49f18bd3c647866dcda51a0756c145e14590ce16" + integrity sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q== + dependencies: + undici-types "~7.18.0" + +"@typescript-eslint/eslint-plugin@8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.65.0.tgz#0a58df6fea8c0bf6b396f518077099bc8b762bb5" + integrity sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA== + dependencies: + "@eslint-community/regexpp" "^4.12.2" + "@typescript-eslint/scope-manager" "8.65.0" + "@typescript-eslint/type-utils" "8.65.0" + "@typescript-eslint/utils" "8.65.0" + "@typescript-eslint/visitor-keys" "8.65.0" + ignore "^7.0.5" natural-compare "^1.4.0" - ts-api-utils "^2.1.0" - -"@typescript-eslint/parser@^8.48.1": - version "8.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.48.1.tgz#4e3c66d9ec20683ec142417fafeadab61c479c3f" - integrity sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA== - dependencies: - "@typescript-eslint/scope-manager" "8.48.1" - "@typescript-eslint/types" "8.48.1" - "@typescript-eslint/typescript-estree" "8.48.1" - "@typescript-eslint/visitor-keys" "8.48.1" - debug "^4.3.4" - -"@typescript-eslint/project-service@8.48.1": - version "8.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.48.1.tgz#cfe1741613b9112d85ae766de9e09b27a7d3f2f1" - integrity sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w== - dependencies: - "@typescript-eslint/tsconfig-utils" "^8.48.1" - "@typescript-eslint/types" "^8.48.1" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@8.48.1": - version "8.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.48.1.tgz#8bc70643e7cca57864b1ff95dd350fc27756bec0" - integrity sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w== - dependencies: - "@typescript-eslint/types" "8.48.1" - "@typescript-eslint/visitor-keys" "8.48.1" - -"@typescript-eslint/tsconfig-utils@8.48.1", "@typescript-eslint/tsconfig-utils@^8.48.1": - version "8.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.1.tgz#68139ce2d258f984e2b33a95389158f1212af646" - integrity sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw== - -"@typescript-eslint/type-utils@8.48.1": - version "8.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.48.1.tgz#955bd3ddd648450f0a627925ff12ade63fb7516d" - integrity sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg== - dependencies: - "@typescript-eslint/types" "8.48.1" - "@typescript-eslint/typescript-estree" "8.48.1" - "@typescript-eslint/utils" "8.48.1" - debug "^4.3.4" - ts-api-utils "^2.1.0" - -"@typescript-eslint/types@8.48.1", "@typescript-eslint/types@^8.48.1": - version "8.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.48.1.tgz#a9ff808f5f798f28767d5c0b015a88fa7ce46bd7" - integrity sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q== - -"@typescript-eslint/typescript-estree@8.48.1": - version "8.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.1.tgz#0d0e31fc47c5796c6463ab50cde19e1718d465b1" - integrity sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg== - dependencies: - "@typescript-eslint/project-service" "8.48.1" - "@typescript-eslint/tsconfig-utils" "8.48.1" - "@typescript-eslint/types" "8.48.1" - "@typescript-eslint/visitor-keys" "8.48.1" - debug "^4.3.4" - minimatch "^9.0.4" - semver "^7.6.0" + ts-api-utils "^2.5.0" + +"@typescript-eslint/parser@8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.65.0.tgz#5295c1058c0a1dd746ef28baaf9c0341dbdf03dc" + integrity sha512-CZ4nMxWwgu1HEEFNkeaCptra9QCtkmKdgf3sWh1rl1trIhmxLilgTV4cwcbQ4wemnT4sWQN8CaKOmdYx+g2gMA== + dependencies: + "@typescript-eslint/scope-manager" "8.65.0" + "@typescript-eslint/types" "8.65.0" + "@typescript-eslint/typescript-estree" "8.65.0" + "@typescript-eslint/visitor-keys" "8.65.0" + debug "^4.4.3" + +"@typescript-eslint/project-service@8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.65.0.tgz#65fbbc9a1591abffaeab5513200f848271cb0aa5" + integrity sha512-SxnPhbTsGahizDgbu7oqFH/xVtzIqMd/s+WtnSxNxJZJpLbdT5IPdzg8EZxO3+PoKahXmwJLeNQOpKJb3/bi7Q== + dependencies: + "@typescript-eslint/tsconfig-utils" "^8.65.0" + "@typescript-eslint/types" "^8.65.0" + debug "^4.4.3" + +"@typescript-eslint/scope-manager@8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.65.0.tgz#9547202ce7e608e7b6283df585703b980a0ea70d" + integrity sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg== + dependencies: + "@typescript-eslint/types" "8.65.0" + "@typescript-eslint/visitor-keys" "8.65.0" + +"@typescript-eslint/tsconfig-utils@8.65.0", "@typescript-eslint/tsconfig-utils@^8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.65.0.tgz#36f168fcdbb1295f7446ff0379667f98c3cf1bf3" + integrity sha512-j6GzGqCiRdA7Qhur2VVmKZAkBLfnHFQfx4TaJGL9RMveZqCo48jSHHO0DTgizEnGhtWnqmbtCUSrqSkdiY/0Hg== + +"@typescript-eslint/type-utils@8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.65.0.tgz#d316d7522d93cff4cd14f305e02f3df2d804f9c1" + integrity sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g== + dependencies: + "@typescript-eslint/types" "8.65.0" + "@typescript-eslint/typescript-estree" "8.65.0" + "@typescript-eslint/utils" "8.65.0" + debug "^4.4.3" + ts-api-utils "^2.5.0" + +"@typescript-eslint/types@8.65.0", "@typescript-eslint/types@^8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.65.0.tgz#3e86738416a777c8b8925ab46745f48ecf904c9f" + integrity sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg== + +"@typescript-eslint/typescript-estree@8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.65.0.tgz#f1f514808f6aa713e2d678ae8ff592a65e1632af" + integrity sha512-JboAE2swaYt4tb1fHhHTABE2K+OLy09XfcTbhnk4Pw96f9dd2e9iYsJ28gBggHlo5z5x1rkyWvcPoTuNTd4oGg== + dependencies: + "@typescript-eslint/project-service" "8.65.0" + "@typescript-eslint/tsconfig-utils" "8.65.0" + "@typescript-eslint/types" "8.65.0" + "@typescript-eslint/visitor-keys" "8.65.0" + debug "^4.4.3" + minimatch "^10.2.2" + semver "^7.7.3" tinyglobby "^0.2.15" - ts-api-utils "^2.1.0" + ts-api-utils "^2.5.0" -"@typescript-eslint/utils@8.48.1": - version "8.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.48.1.tgz#6cf7b99e0943b33a983ef687b9a86b65578b5c32" - integrity sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA== +"@typescript-eslint/utils@8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.65.0.tgz#afedd974a0c8deeef553b509df5800bafd615a72" + integrity sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA== dependencies: - "@eslint-community/eslint-utils" "^4.7.0" - "@typescript-eslint/scope-manager" "8.48.1" - "@typescript-eslint/types" "8.48.1" - "@typescript-eslint/typescript-estree" "8.48.1" + "@eslint-community/eslint-utils" "^4.9.1" + "@typescript-eslint/scope-manager" "8.65.0" + "@typescript-eslint/types" "8.65.0" + "@typescript-eslint/typescript-estree" "8.65.0" -"@typescript-eslint/visitor-keys@8.48.1": - version "8.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.1.tgz#247d4fe6dcc044f45b7f1c15110bf95e5d73b334" - integrity sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q== +"@typescript-eslint/visitor-keys@8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.65.0.tgz#e3704c13cb4a1c22454c1abf28ff4737e15018c6" + integrity sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A== dependencies: - "@typescript-eslint/types" "8.48.1" - eslint-visitor-keys "^4.2.1" + "@typescript-eslint/types" "8.65.0" + eslint-visitor-keys "^5.0.0" "@vitest/coverage-v8@^4.1.10": version "4.1.10" @@ -895,22 +882,17 @@ acorn-walk@^8.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.1.tgz#3ddab7f84e4a7e2313f6c414c5b7dac85f4e3ebc" integrity sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w== -acorn@^8.12.0: - version "8.12.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" - integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== - -acorn@^8.15.0: - version "8.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== +acorn@^8.16.0: + version "8.17.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.17.0.tgz#1785adb84faf8d8add10369b93826fc2bd08f1fe" + integrity sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg== acorn@^8.4.1: version "8.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== -ajv@^6.12.4: +ajv@^6.14.0: version "6.15.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.15.0.tgz#07e982c74626167aa7a2495c53817892d7139492" integrity sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw== @@ -947,7 +929,7 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +ansi-styles@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -1022,17 +1004,10 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -brace-expansion@^2.0.2: - version "2.1.0" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.0.tgz#4f41a41190216ee36067ec381526fe9539c4f0ae" - integrity sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w== - dependencies: - balanced-match "^1.0.0" - brace-expansion@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.5.tgz#dcc3a37116b79f3e1b46db994ced5d570e930fdb" - integrity sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ== + version "5.0.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.7.tgz#1b0e46965b479dad65af737b4a02790a05498337" + integrity sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA== dependencies: balanced-match "^4.0.2" @@ -1055,14 +1030,6 @@ chalk@^2.0.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -1189,7 +1156,7 @@ cross-fetch@^4.1.0: dependencies: node-fetch "^2.7.0" -cross-spawn@^7.0.3, cross-spawn@^7.0.6: +cross-spawn@^7.0.6: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== @@ -1214,19 +1181,12 @@ css-what@^6.1.0: resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== -debug@^4.3.1: - version "4.3.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" - integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== - dependencies: - ms "2.1.2" - -debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== +debug@^4.3.1, debug@^4.3.2, debug@^4.4.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== dependencies: - ms "2.1.2" + ms "^2.1.3" deep-is@^0.1.3: version "0.1.4" @@ -1293,6 +1253,11 @@ entities@^4.2.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== +entities@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-8.0.0.tgz#c1df5fe3602429747fa233d0dd26f142f0ce4743" + integrity sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA== + env-paths@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" @@ -1367,11 +1332,13 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-scope@^8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz#88e646a207fad61436ffa39eb505147200655c82" - integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg== +eslint-scope@^9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-9.1.2.tgz#b9de6ace2fab1cff24d2e58d85b74c8fcea39802" + integrity sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ== dependencies: + "@types/esrecurse" "^4.3.1" + "@types/estree" "^1.0.8" esrecurse "^4.3.0" estraverse "^5.2.0" @@ -1380,42 +1347,34 @@ eslint-visitor-keys@^3.4.3: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint-visitor-keys@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" - integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== - -eslint-visitor-keys@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1" - integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== +eslint-visitor-keys@^5.0.0, eslint-visitor-keys@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz#9e3c9489697824d2d4ce3a8ad12628f91e9f59be" + integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA== -eslint@^9.39.1: - version "9.39.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.1.tgz#be8bf7c6de77dcc4252b5a8dcb31c2efff74a6e5" - integrity sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g== +eslint@^10.7.0: + version "10.7.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.7.0.tgz#cd3b8022f3b1e3b183760d90dfc58e9d3644106b" + integrity sha512-GVTD7s1vdIl6UYvAfriOPeY1Df8LIZjfofLvHwde+erDHGGuHyuM6xoxRxmHiebhYuD2p1vN4wWh0XzPARSGDQ== dependencies: "@eslint-community/eslint-utils" "^4.8.0" - "@eslint-community/regexpp" "^4.12.1" - "@eslint/config-array" "^0.21.1" - "@eslint/config-helpers" "^0.4.2" - "@eslint/core" "^0.17.0" - "@eslint/eslintrc" "^3.3.1" - "@eslint/js" "9.39.1" - "@eslint/plugin-kit" "^0.4.1" + "@eslint-community/regexpp" "^4.12.2" + "@eslint/config-array" "^0.23.5" + "@eslint/config-helpers" "^0.6.0" + "@eslint/core" "^1.2.1" + "@eslint/plugin-kit" "^0.7.2" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" "@humanwhocodes/retry" "^0.4.2" "@types/estree" "^1.0.6" - ajv "^6.12.4" - chalk "^4.0.0" + ajv "^6.14.0" cross-spawn "^7.0.6" debug "^4.3.2" escape-string-regexp "^4.0.0" - eslint-scope "^8.4.0" - eslint-visitor-keys "^4.2.1" - espree "^10.4.0" - esquery "^1.5.0" + eslint-scope "^9.1.2" + eslint-visitor-keys "^5.0.1" + espree "^11.2.0" + esquery "^1.7.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^8.0.0" @@ -1425,33 +1384,23 @@ eslint@^9.39.1: imurmurhash "^0.1.4" is-glob "^4.0.0" json-stable-stringify-without-jsonify "^1.0.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" + minimatch "^10.2.4" natural-compare "^1.4.0" optionator "^0.9.3" -espree@^10.0.1: - version "10.1.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-10.1.0.tgz#8788dae611574c0f070691f522e4116c5a11fc56" - integrity sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA== +espree@^11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-11.2.0.tgz#01d5e47dc332aaba3059008362454a8cc34ccaa5" + integrity sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw== dependencies: - acorn "^8.12.0" + acorn "^8.16.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^4.0.0" + eslint-visitor-keys "^5.0.1" -espree@^10.4.0: - version "10.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837" - integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ== - dependencies: - acorn "^8.15.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^4.2.1" - -esquery@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" - integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== +esquery@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.7.0.tgz#08d048f261f0ddedb5bae95f46809463d9c9496d" + integrity sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g== dependencies: estraverse "^5.1.0" @@ -1462,16 +1411,11 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^5.1.0: +estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - estree-walker@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" @@ -1515,7 +1459,7 @@ fast-json-stable-stringify@^2.0.0: fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fast-uri@^3.0.1: version "3.1.4" @@ -1624,21 +1568,11 @@ global-directory@^5.0.0: dependencies: ini "6.0.0" -globals@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" - integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== - graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - handlebars@^4.7.9: version "4.7.9" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.9.tgz#6f139082ab58dc4e5a0e51efe7db5ae890d56a0f" @@ -1661,11 +1595,6 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -1677,14 +1606,14 @@ husky@^9.1.7: integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== ignore@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== -ignore@^7.0.0, ignore@^7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9" - integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== +ignore@^7.0.5: + version "7.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.6.tgz#6a57aaef4c90df27ac3590875d29e8f11988c88e" + integrity sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw== import-cwd@^3.0.0: version "3.0.0" @@ -1693,7 +1622,7 @@ import-cwd@^3.0.0: dependencies: import-from "^3.0.0" -import-fresh@^3.2.1, import-fresh@^3.3.0: +import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -1711,7 +1640,7 @@ import-from@^3.0.0: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" @@ -1771,7 +1700,7 @@ isarray@~1.0.0: isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.2: version "3.2.2" @@ -1952,11 +1881,6 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - lru-cache@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.0.0.tgz#15d93a196f189034d7166caf9fe55e7384c98a21" @@ -1995,27 +1919,20 @@ map-stream@~0.1.0: resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== -minimatch@^10.2.2: +minimatch@^10.2.2, minimatch@^10.2.4: version "10.2.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1" integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg== dependencies: brace-expansion "^5.0.5" -minimatch@^3.0.3, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.3, minimatch@^3.1.1: version "3.1.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e" integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.4: - version "9.0.9" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.9.tgz#9b0cb9fcb78087f6fd7eababe2511c4d3d60574e" - integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== - dependencies: - brace-expansion "^2.0.2" - minimist@^1.2.5: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -2041,10 +1958,10 @@ mri@^1.2.0: resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nanoid@^3.3.16: version "3.3.16" @@ -2054,7 +1971,7 @@ nanoid@^3.3.16: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== neo-async@^2.6.2: version "2.6.2" @@ -2073,13 +1990,13 @@ node-fetch@^2.7.0: dependencies: whatwg-url "^5.0.0" -node-html-parser@^6.1.13: - version "6.1.13" - resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-6.1.13.tgz#a1df799b83df5c6743fcd92740ba14682083b7e4" - integrity sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg== +node-html-parser@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-9.0.0.tgz#2a4fd06ebb0c6e1b2b3c5341fc286a36421dbfe9" + integrity sha512-MhdaHPyxnyYu/sf0TpiRvDnTrkum0UKHC7FdbDGIUQNlx3I7xzwXoyV0eMUMv/XU+lkJT1glOUzpDPq7b2p1Ew== dependencies: css-select "^5.1.0" - he "1.2.0" + entities "^8.0.0" noms@0.0.0: version "0.0.0" @@ -2109,16 +2026,16 @@ once@^1.3.0: wrappy "1" optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" + word-wrap "^1.2.5" p-limit@^3.0.2: version "3.1.0" @@ -2256,9 +2173,9 @@ ps-tree@^1.2.0: event-stream "=3.3.4" punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== readable-stream@~1.0.31: version "1.0.34" @@ -2350,7 +2267,7 @@ semver@^7.6.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== -semver@^7.8.1: +semver@^7.7.3, semver@^7.8.1: version "7.8.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.5.tgz#39b646037dd50c14fb451e7e4cac58ed8b863f69" integrity sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA== @@ -2406,10 +2323,10 @@ stream-combiner@~0.0.4: dependencies: duplexer "~0.1.1" -string-argv@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== +string-argv@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== string-width@^4.1.0, string-width@^4.2.0: version "4.2.0" @@ -2455,11 +2372,6 @@ strip-ansi@^7.1.0: dependencies: ansi-regex "^6.2.2" -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -2507,15 +2419,7 @@ tinyexec@^1.0.2: resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.1.2.tgz#11feef204b706d4668ca4013db29f3bd64f5c4dc" integrity sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA== -tinyglobby@^0.2.15: - version "0.2.15" - resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2" - integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== - dependencies: - fdir "^6.5.0" - picomatch "^4.0.3" - -tinyglobby@^0.2.17: +tinyglobby@^0.2.15, tinyglobby@^0.2.17: version "0.2.17" resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.17.tgz#562a9a6c9eb2b3b123d39719f9af5bb44fcd7631" integrity sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g== @@ -2533,10 +2437,10 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= -ts-api-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91" - integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== +ts-api-utils@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.5.0.tgz#4acd4a155e22734990a5ed1fe9e97f113bcb37c1" + integrity sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA== ts-node@^10.9.2: version "10.9.2" @@ -2557,15 +2461,15 @@ ts-node@^10.9.2: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsc-watch@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/tsc-watch/-/tsc-watch-6.2.0.tgz#4b191c36c6ed24c2bf6e721013af0825cd73d217" - integrity sha512-2LBhf9kjKXnz7KQ/puLHlozMzzUNHAdYBNMkg3eksQJ9GBAgMg8czznM83T5PmsoUvDnXzfIeQn2lNcIYDr8LA== +tsc-watch@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/tsc-watch/-/tsc-watch-7.2.1.tgz#1e3261b49e3930df18dbf76db31ab7aebbc8eb7b" + integrity sha512-FcntBnz5bXGQ/q265acfDzU7xi6R/sgwMokI+Iu293n14Wu8ovAtcwqNfU9vv/DM1THlnmmxatSSyGOvWsSblg== dependencies: - cross-spawn "^7.0.3" + cross-spawn "^7.0.6" node-cleanup "^2.1.2" ps-tree "^1.2.0" - string-argv "^0.3.1" + string-argv "^0.3.2" tslib@^2.4.0, tslib@^2.8.1: version "2.8.1" @@ -2588,16 +2492,31 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -typescript@^5.4.5: - version "5.4.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" - integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== +typescript-eslint@^8.65.0: + version "8.65.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.65.0.tgz#754c953fd6a9a3d36fa54015bdba80a6eb2a4957" + integrity sha512-/ggrHAwyjENDusvyxbuqxAC2dTnZg/Z8F+fgQtYIz+L6n/9HfSlEZcFGV/NsMNa6CkGk0xUjUAFwC0vHOflvIA== + dependencies: + "@typescript-eslint/eslint-plugin" "8.65.0" + "@typescript-eslint/parser" "8.65.0" + "@typescript-eslint/typescript-estree" "8.65.0" + "@typescript-eslint/utils" "8.65.0" + +typescript@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-6.0.3.tgz#90251dc007916e972786cb94d74d15b185577d21" + integrity sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw== uglify-js@^3.1.4: version "3.14.1" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.1.tgz#e2cb9fe34db9cb4cf7e35d1d26dfea28e09a7d06" integrity sha512-JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g== +undici-types@~7.18.0: + version "7.18.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.18.2.tgz#29357a89e7b7ca4aef3bf0fd3fd0cd73884229e9" + integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w== + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -2625,7 +2544,7 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -"vite@^6.0.0 || ^7.0.0 || ^8.0.0": +"vite@^6.0.0 || ^7.0.0 || ^8.0.0", vite@^8.1.5: version "8.1.5" resolved "https://registry.yarnpkg.com/vite/-/vite-8.1.5.tgz#ccffce3ee487b1886223b24ebb27b91674827d30" integrity sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw== @@ -2692,6 +2611,11 @@ why-is-node-running@^2.3.0: siginfo "^2.0.0" stackback "0.0.2" +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" From 48b1c601231a8b075d866bfa23c0e3f41bbfa970 Mon Sep 17 00:00:00 2001 From: Celtian Date: Tue, 21 Jul 2026 22:09:29 +0200 Subject: [PATCH 04/12] feat(codecov): codecov added --- .github/workflows/main.yml | 14 +++++++------- .github/workflows/pull-request.yml | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f98a5da..a4adbf6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -37,13 +37,13 @@ jobs: - name: 🧪 Run tests run: yarn test --coverage --run - - name: ⬆️ Upload coverage reports - uses: codecov/codecov-action@v6 - with: - token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos - fail_ci_if_error: true - verbose: false - dry_run: false + # - name: ⬆️ Upload coverage reports + # uses: codecov/codecov-action@v6 + # with: + # token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos + # fail_ci_if_error: true + # verbose: false + # dry_run: false - name: 🚀 Publish NPM if: startsWith(github.ref, 'refs/tags/v') && contains(github.ref, 'beta') == false diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 36c47a9..8e702dc 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -41,10 +41,10 @@ jobs: json-summary-path: ./coverage/coverage-summary.json json-final-path: ./coverage/coverage-final.json - - name: ⬆️ Upload coverage reports - uses: codecov/codecov-action@v6 - with: - token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos - fail_ci_if_error: true - verbose: true - dry_run: true + # - name: ⬆️ Upload coverage reports + # uses: codecov/codecov-action@v6 + # with: + # token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos + # fail_ci_if_error: true + # verbose: true + # dry_run: true From 08902a26e9f8e0c2c2f08b6485414351d63b1e1f Mon Sep 17 00:00:00 2001 From: Celtian Date: Tue, 21 Jul 2026 22:17:27 +0200 Subject: [PATCH 05/12] feat(test): globals moved --- test/tsconfig.json | 11 +++++++++++ tsconfig.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 test/tsconfig.json diff --git a/test/tsconfig.json b/test/tsconfig.json new file mode 100644 index 0000000..07a43cd --- /dev/null +++ b/test/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "declaration": false, + "noEmit": true, + "rootDir": "..", + "types": ["node", "vitest/globals"] + }, + "include": ["**/*.spec.ts"], + "exclude": ["../coverage", "../dist", "../node_modules"] +} diff --git a/tsconfig.json b/tsconfig.json index 321584c..c2bdfaf 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "target": "es2019", "lib": ["dom"], - "types": ["node", "vitest/globals"], + "types": ["node"], "esModuleInterop": true, "module": "commonjs", "moduleResolution": "bundler", From fb102e45c95eca36695b814ab29d35e59250e075 Mon Sep 17 00:00:00 2001 From: Celtian Date: Tue, 21 Jul 2026 22:30:10 +0200 Subject: [PATCH 06/12] feat(husky): husky improved --- .husky/commit-msg | 5 +- .husky/pre-commit | 7 +- .lintstagedrc.json | 4 + package.json | 6 +- yarn.lock | 186 +++++++++++++++++++++++++++++++++++++-------- 5 files changed, 163 insertions(+), 45 deletions(-) create mode 100644 .lintstagedrc.json diff --git a/.husky/commit-msg b/.husky/commit-msg index 5e563eb..70bd3dd 100755 --- a/.husky/commit-msg +++ b/.husky/commit-msg @@ -1,4 +1 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -npx --no-install commitlint --edit +npx --no-install commitlint --edit "$1" diff --git a/.husky/pre-commit b/.husky/pre-commit index c537582..6c66e07 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,5 +1,2 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -npx pretty-quick --staged - +npx --no-install lint-staged --relative +npm test diff --git a/.lintstagedrc.json b/.lintstagedrc.json new file mode 100644 index 0000000..4dbfde8 --- /dev/null +++ b/.lintstagedrc.json @@ -0,0 +1,4 @@ +{ + "*.{js,cjs,mjs,ts}": ["eslint --fix", "prettier --write"], + "*.{json,md,yml,yaml}": "prettier --write" +} diff --git a/package.json b/package.json index 153bbfc..03e7d3e 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,6 @@ "postbuild": "copyfiles ./package.json ./README.md ./LICENSE ./dist && yarn prepare-dist", "lint": "eslint .", "test": "vitest run", - "husky:install": "husky", "prepare-source": "yarn tsx ./scripts/prepare-source.ts", "prepare-dist": "yarn tsx ./scripts/prepare-dist.ts", "gpr:setup": "yarn tsx ./scripts/gpr-setup.ts", @@ -21,7 +20,8 @@ "release:patch": "git checkout master && npm version patch -m \"chore(update): patch release %s 🐛 \"", "release:minor": "git checkout master && npm version minor -m \"chore(update): release %s 🚀\"", "release:major": "git checkout master && npm version major -m \"chore(update): major release %s 💥 \"", - "fix-vulnerabilities": "npx yarn-audit-fix && npx browserslist --update-db" + "fix-vulnerabilities": "npx yarn-audit-fix && npx browserslist --update-db", + "prepare": "husky" }, "repository": { "type": "git", @@ -66,8 +66,8 @@ "eslint": "^10.7.0", "fs-extra": "^11.3.6", "husky": "^9.1.7", + "lint-staged": "^16.4.0", "prettier": "^3.9.6", - "pretty-quick": "^4.2.2", "rimraf": "^6.1.3", "ts-node": "^10.9.2", "tsc-watch": "^7.2.1", diff --git a/yarn.lock b/yarn.lock index 7ff9866..266f176 100644 --- a/yarn.lock +++ b/yarn.lock @@ -507,11 +507,6 @@ resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.139.0.tgz#38d76b9dbf934c2a02be174fb32ceebf182fe742" integrity sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw== -"@pkgr/core@^0.2.7": - version "0.2.7" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.7.tgz#eb5014dfd0b03e7f3ba2eeeff506eed89b028058" - integrity sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg== - "@rolldown/binding-android-arm64@1.1.5": version "1.1.5" resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz#f58cb9a0a8128ed0582282720528547fc5c035f3" @@ -912,6 +907,13 @@ ajv@^8.11.0: json-schema-traverse "^1.0.0" require-from-string "^2.0.2" +ansi-escapes@^7.0.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-7.3.0.tgz#5395bb74b2150a4a1d6e3c2565f4aeca78d28627" + integrity sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg== + dependencies: + environment "^1.0.0" + ansi-regex@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -936,7 +938,7 @@ ansi-styles@^4.0.0: dependencies: color-convert "^2.0.1" -ansi-styles@^6.2.1: +ansi-styles@^6.2.1, ansi-styles@^6.2.3: version "6.2.3" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== @@ -1030,6 +1032,21 @@ chalk@^2.0.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +cli-cursor@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" + integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== + dependencies: + restore-cursor "^5.0.0" + +cli-truncate@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-5.2.0.tgz#c8e72aaca8339c773d128c36e0a17c6315b694eb" + integrity sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw== + dependencies: + slice-ansi "^8.0.0" + string-width "^8.2.0" + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -1072,6 +1089,16 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +commander@^14.0.3: + version "14.0.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" + integrity sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw== + commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" @@ -1263,6 +1290,11 @@ env-paths@^2.2.1: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== +environment@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" + integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -1441,6 +1473,11 @@ event-stream@=3.3.4: stream-combiner "~0.0.4" through "~2.3.1" +eventemitter3@^5.0.1: + version "5.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.4.tgz#a86d66170433712dde814707ac52b5271ceb1feb" + integrity sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw== + expect-type@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.3.0.tgz#0d58ed361877a31bbc4dd6cf71bbfef7faf6bd68" @@ -1528,7 +1565,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-east-asian-width@^1.0.0: +get-east-asian-width@^1.0.0, get-east-asian-width@^1.3.1, get-east-asian-width@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz#216900f91df11a8b2c198c3e1d93d6c035a776b9" integrity sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA== @@ -1675,6 +1712,13 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-fullwidth-code-point@^5.0.0, is-fullwidth-code-point@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz#046b2a6d4f6b156b2233d3207d4b5a9783999b98" + integrity sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ== + dependencies: + get-east-asian-width "^1.3.1" + is-glob@^4.0.0, is-glob@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -1874,6 +1918,30 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +lint-staged@^16.4.0: + version "16.4.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-16.4.0.tgz#a00b0e3abff59239cef6d7d9341e8f8473308e23" + integrity sha512-lBWt8hujh/Cjysw5GYVmZpFHXDCgZzhrOm8vbcUdobADZNOK/bRshr2kM3DfgrrtR1DQhfupW9gnIXOfiFi+bw== + dependencies: + commander "^14.0.3" + listr2 "^9.0.5" + picomatch "^4.0.3" + string-argv "^0.3.2" + tinyexec "^1.0.4" + yaml "^2.8.2" + +listr2@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-9.0.5.tgz#92df7c4416a6da630eb9ef46da469b70de97b316" + integrity sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g== + dependencies: + cli-truncate "^5.0.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^6.1.0" + rfdc "^1.4.1" + wrap-ansi "^9.0.0" + locate-path@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" @@ -1881,6 +1949,17 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +log-update@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4" + integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== + dependencies: + ansi-escapes "^7.0.0" + cli-cursor "^5.0.0" + slice-ansi "^7.1.0" + strip-ansi "^7.1.0" + wrap-ansi "^9.0.0" + lru-cache@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.0.0.tgz#15d93a196f189034d7166caf9fe55e7384c98a21" @@ -1919,6 +1998,11 @@ map-stream@~0.1.0: resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== +mimic-function@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" + integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== + minimatch@^10.2.2, minimatch@^10.2.4: version "10.2.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1" @@ -1953,11 +2037,6 @@ mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mri@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" @@ -2025,6 +2104,13 @@ once@^1.3.0: dependencies: wrappy "1" +onetime@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60" + integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== + dependencies: + mimic-function "^5.0.0" + optionator@^0.9.3: version "0.9.4" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" @@ -2118,7 +2204,7 @@ picocolors@^1.1.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^4.0.2, picomatch@^4.0.3, picomatch@^4.0.5: +picomatch@^4.0.3, picomatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.5.tgz#51ea57a17d86f605f81039595fbc40ed06a55fab" integrity sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A== @@ -2147,19 +2233,6 @@ prettier@^3.9.6: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.6.tgz#b3ea5146515d40fc53f18aa63f74dfab1e10dbf6" integrity sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g== -pretty-quick@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-4.2.2.tgz#0fc31da666f182fe14e119905fc9829b5b85a234" - integrity sha512-uAh96tBW1SsD34VhhDmWuEmqbpfYc/B3j++5MC/6b3Cb8Ow7NJsvKFhg0eoGu2xXX+o9RkahkTK6sUdd8E7g5w== - dependencies: - "@pkgr/core" "^0.2.7" - ignore "^7.0.5" - mri "^1.2.0" - picocolors "^1.1.1" - picomatch "^4.0.2" - tinyexec "^0.3.2" - tslib "^2.8.1" - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -2220,6 +2293,19 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== +restore-cursor@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" + integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== + dependencies: + onetime "^7.0.0" + signal-exit "^4.1.0" + +rfdc@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== + rimraf@^6.1.3: version "6.1.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.1.3.tgz#afbee236b3bd2be331d4e7ce4493bac1718981af" @@ -2289,6 +2375,27 @@ siginfo@^2.0.0: resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +slice-ansi@^7.1.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.2.tgz#adf7be70aa6d72162d907cd0e6d5c11f507b5403" + integrity sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w== + dependencies: + ansi-styles "^6.2.1" + is-fullwidth-code-point "^5.0.0" + +slice-ansi@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-8.0.0.tgz#22d0b66d18bc5c57f488bfcf36cbde3bef731537" + integrity sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg== + dependencies: + ansi-styles "^6.2.3" + is-fullwidth-code-point "^5.1.0" + source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" @@ -2346,6 +2453,14 @@ string-width@^7.0.0, string-width@^7.2.0: get-east-asian-width "^1.0.0" strip-ansi "^7.1.0" +string-width@^8.2.0: + version "8.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-8.2.2.tgz#7310516493df575742fe98af6fae87d85d5ed0ac" + integrity sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg== + dependencies: + get-east-asian-width "^1.5.0" + strip-ansi "^7.1.2" + string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -2365,7 +2480,7 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-ansi@^7.1.0: +strip-ansi@^7.1.0, strip-ansi@^7.1.2: version "7.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.2.0.tgz#d22a269522836a627af8d04b5c3fd2c7fa3e32e3" integrity sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w== @@ -2404,11 +2519,6 @@ tinybench@^2.9.0: resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== -tinyexec@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" - integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== - tinyexec@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.0.1.tgz#70c31ab7abbb4aea0a24f55d120e5990bfa1e0b1" @@ -2419,6 +2529,11 @@ tinyexec@^1.0.2: resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.1.2.tgz#11feef204b706d4668ca4013db29f3bd64f5c4dc" integrity sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA== +tinyexec@^1.0.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.2.4.tgz#ae45bb2edebda94c70f4ea897e0f1243e470db71" + integrity sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg== + tinyglobby@^0.2.15, tinyglobby@^0.2.17: version "0.2.17" resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.17.tgz#562a9a6c9eb2b3b123d39719f9af5bb44fcd7631" @@ -2471,7 +2586,7 @@ tsc-watch@^7.2.1: ps-tree "^1.2.0" string-argv "^0.3.2" -tslib@^2.4.0, tslib@^2.8.1: +tslib@^2.4.0: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== @@ -2654,6 +2769,11 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yaml@^2.8.2: + version "2.9.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.9.0.tgz#78274afd93598a1dfdd6130df6a566defcbf9aa4" + integrity sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA== + yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" From 184983a3f238114c8d33b671a7f13115ed499d2e Mon Sep 17 00:00:00 2001 From: Celtian Date: Tue, 21 Jul 2026 22:35:41 +0200 Subject: [PATCH 07/12] feat(tsconfig): config changed --- tsconfig.es5.json | 2 ++ tsconfig.es6.json | 4 +++- tsconfig.json | 6 ++---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/tsconfig.es5.json b/tsconfig.es5.json index 49c85d0..831c75c 100644 --- a/tsconfig.es5.json +++ b/tsconfig.es5.json @@ -4,7 +4,9 @@ "module": "commonjs", "target": "ES2018", "declaration": true, + "noEmit": false, "outDir": "./dist/es5", + "rootDir": "./src", "lib": ["ES2020", "DOM"] }, "include": ["src/**/*"] diff --git a/tsconfig.es6.json b/tsconfig.es6.json index 72ee824..b471664 100644 --- a/tsconfig.es6.json +++ b/tsconfig.es6.json @@ -5,7 +5,9 @@ "target": "ES2018", "lib": ["ES2020", "DOM"], "declaration": true, - "outDir": "./dist/es6" + "noEmit": false, + "outDir": "./dist/es6", + "rootDir": "./src" }, "include": ["src/**/*"] } diff --git a/tsconfig.json b/tsconfig.json index c2bdfaf..a80a826 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,10 +8,8 @@ "moduleResolution": "bundler", "strictNullChecks": false, "sourceMap": false, - "outDir": "./dist", - "rootDir": "./src", + "noEmit": true, "strict": true, - "declaration": true, "skipLibCheck": true, "alwaysStrict": true, "noImplicitAny": true, @@ -19,6 +17,6 @@ "forceConsistentCasingInFileNames": true, "resolveJsonModule": true }, - "include": ["src"], + "include": ["src", "demo.ts"], "exclude": ["dist/**/*", "*/tests/**/*"] } From c3d809bafc113fc66c048b4a0bef73f7989adccf Mon Sep 17 00:00:00 2001 From: Celtian Date: Tue, 21 Jul 2026 22:43:09 +0200 Subject: [PATCH 08/12] feat(transfermarkt): mock data updated --- test/mocks/transfermarkt/league.ts | 3672 ++++++++++++++-------------- test/mocks/transfermarkt/team.ts | 1763 ++++++++----- 2 files changed, 2994 insertions(+), 2441 deletions(-) diff --git a/test/mocks/transfermarkt/league.ts b/test/mocks/transfermarkt/league.ts index 9b474a4..51274aa 100644 --- a/test/mocks/transfermarkt/league.ts +++ b/test/mocks/transfermarkt/league.ts @@ -1,89 +1,146 @@ import { SoccerBotResponse, SoccerBotTeam } from '../../../src/shared/interfaces'; -export const LEAGUE_HTML = ` +export const LEAGUE_HTML = ` + - - - - + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + -Fortuna Liga 21/22 | Transfermarkt +Chance Liga 26/27 | Transfermarkt - - - - - - + + - + + function sendIvwData() {} + - - -
- - -
- - - - + + + + +
-
-
- - - - -
-
-
-
- -
+ +
+
+
+
+ -
-
-
-
-
-

Fortuna Liga

-
-
- - Czech Republic -
-
-
-
-
- Fortuna Liga
-
-
- - - - - - - - - - - - - - - - - - - - - - -
League level: - First Tier - Czech Republic Czech Republic
Number of teams: - 16 teams
Players: - 445
Foreigners: - 106 Players  23.8%
ø-Market value: - €561Th.
-
-
- - - - - - - - - - - - - - - - - - - - - -
UEFA coefficient: - 17. Pos.  26.800 Points
Record-holding champions: - AC Sparta Prague  12 time(s)
- ø-Age: - - 26.2
Reigning champion: - SK Slavia Prague
Most valuable player: - Adam Hlozek  €19.00m
-
+
+ +
+
+

+ Chance Liga

-
- Total Market Value:
€249.65m
-
+
+ + 
+                    Czech Republic + +
+ + + Czech Republic + + + League level: + First Tier + + + Reigning champion: + + SK Slavia Prague + + + Record-holding champions: + + AC Sparta Prague  38 time(s) + + + UEFA coefficient: + + 10. Pos.  43.025 Points + +
+
+
+ Chance Liga
+ +
+
+
    +
  • + Number of teams: + + 16 teams +
  • +
  • + Players: + + 498 +
  • +
  • + Foreigners: + + 197 Players  39.6% +
  • +
+
    +
  • + ø-Market value: + €863k +
  • +
  • + ø-Age: + + 25.8 +
  • +
  • + Most valuable player: + + Stepan Chaloupek  €10.00m +
  • +
+
-
- + + deadline-day banner + alt="deadline-day banner" + > - - - -
+ + +
-
+

Info

- Competition startpage

+ On the competition startpage, the participating teams of one season (selectable in the drop-down menu) are to begin with listed based on the total market value. In addition to news, a matchday overview and the list of goalscorers, the table offers further information.

-
+
@@ -685,7 +1041,17 @@ adition.srq.push(function(api) { data-placeholder="Filter by season" class="chzn-select" tabindex="0"> + selected="selected"value="2026">26/27 + + + + + + + + + + @@ -753,12 +1129,12 @@ adition.srq.push(function(api) {

- Clubs - Fortuna Liga 21/22

+ Clubs - Chance Liga 26/27
@@ -766,67 +1142,66 @@ adition.srq.push(function(api) {
- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
clubnameSquadø ageForeignersø market valueTotal market value
ClubnameSquadø ageForeignersø market valueTotal market value
  44526.2 Years106€561Th.€249.65m
  49825.8 Years197€863k€429.69m
SK Slavia Prague3026.213€2.43m€72.95m
SK Slavia Prague4124.423€3.05m€125.15m
AC Sparta Prague2924.56€1.86m€53.98m
AC Sparta Prague3325.220€2.42m€79.90m
FC Viktoria Plzen2726.46€834Th.€22.53m
FC Viktoria Plzen3025.114€1.98m€59.50m
SK Sigma Olomouc2925.75€337Th.€9.78m
SK Sigma Olomouc3624.718€846k€30.45m
FC Banik Ostrava2425.76€406Th.€9.75m
FC Slovan Liberec3224.913€791k€25.30m
FC Slovan Liberec3024.315€303Th.€9.08m
FC Banik Ostrava3125.212€594k€18.43m
1.FC Slovacko2227.95€388Th.€8.53m
FK Jablonec3126.916€465k€14.43m
FK Jablonec2726.44€300Th.€8.10m
FK Pardubice3124.514€431k€13.36m
Bohemians Prague 19053226.43€252Th.€8.08m
FC Hradec Kralove2826.97€411k€11.50m
FK Mlada Boleslav2624.92€273Th.€7.10m
FC Zbrojovka Brno3326.89€282k€9.30m
MFK Karvina2925.115€239Th.€6.93m
FK Mlada Boleslav2724.94€327k€8.83m
FK Teplice3126.55€215Th.€6.65m
FK Teplice3225.59€266k€8.53m
SK Dynamo Ceske Budejovice2325.59€288Th.€6.63m
1.FC Slovacko2826.913€258k€7.23m
FC Hradec Kralove3024.31€219Th.€6.58m
FC Zlin2827.110€238k€6.68m
FK Pardubice2824.03€235Th.€6.58m
SK Artis Brno3227.210€189k€6.05m
FC Fastav Zlin2826.78€230Th.€6.45m
Bohemians Prague 19052527.55€203k€5.08m
- +
+
- - +
+ @@ -836,281 +1211,249 @@ adition.srq.push(function(api) { - + + + + - + + + + - + + + + - + + + + + - + + Sun + 26/07/2026 + + + + - + + + + - + + + + - + + + + - - +
Date Home teamAway team
Sat - Feb 12, 2022 + 25/07/2026 - - Hradec Kralove - - FC Hradec Kralove - + Viktoria Plzeň + + FC Viktoria Plzen - 2:2 + 5:00 PM - - SK Dynamo Ceske Budejovice - - - C. Budejovice + FC Slovan Liberec + + Slovan Liberec - -
- - Bohemians 1905 - - Bohemians Prague 1905 - + Zlin + + FC Zlin - 1:0 + 5:00 PM - - FC Fastav Zlin - - - Fastav Zlin + FC Banik Ostrava + + Banik Ostrava - -
- - Banik Ostrava - - FC Banik Ostrava - + Teplice + + FK Teplice - 2:4 + 5:00 PM - - FK Teplice - - - Teplice + Bohemians Prague 1905 + + Bohemians 1905 - -
- Sun - Feb 13, 2022 - - - MFK Karvina - - MFK Karvina - + Zbrojovka Brno + + FC Zbrojovka Brno - 1:1 + 8:00 PM - - FK Jablonec - - - FK Jablonec + AC Sparta Prague + + Sparta Prague - -
- - - Slovacko - - 1.FC Slovacko - + Slavia Praha + + SK Slavia Prague - 0:1 + 3:00 PM - - SK Slavia Prague - - - Slavia Prague + 1.FC Slovacko + + Slovacko - -
- - Sigma Olomouc - - SK Sigma Olomouc - + Jablonec + + FK Jablonec - 2:1 + 5:30 PM - - FK Mlada Boleslav - - - Mlada Boleslav + SK Sigma Olomouc + + Sigma Olomouc - -
- - Sparta Prague - - AC Sparta Prague - + Hradec Kralove + + FC Hradec Kralove - 2:2 + 8:00 PM - - FC Viktoria Plzen - - - Viktoria Plzen + FK Pardubice + + Pardubice - -
- Wed - Mar 9, 2022 + Mon + 27/07/2026 - - Slovan Liberec - - FC Slovan Liberec - + Artis Brno + + SK Artis Brno - 4:30 PM + 6:00 PM - - FK Pardubice - - - FK Pardubice + FK Mlada Boleslav + + Mlada Boleslav - -
+
- - +
+ @@ -1120,1038 +1463,431 @@ adition.srq.push(function(api) { - + + + + - + + Sat + 01/08/2026 + + + + - + + + + - + + + + - + + + + + - + + Sun + 02/08/2026 + + + + - + + + + - + + + + - - +
Date Home teamAway team
- Sat - Feb 19, 2022 + Fri + 31/07/2026 - - FK Pardubice - - FK Pardubice - + Sparta Prague + + AC Sparta Prague - 0:0 + 7:00 PM - - FC Hradec Kralove - - - Hradec Kralove + FC Zlin + + Zlin - -
- - - Banik Ostrava - - FC Banik Ostrava - + Slovan Liberec + + FC Slovan Liberec - 1:0 + 5:00 PM - - SK Sigma Olomouc - - - Sigma Olomouc + FK Teplice + + Teplice - -
- - Fastav Zlin - - FC Fastav Zlin - + Banik Ostrava + + FC Banik Ostrava - 1:0 + 5:00 PM - - 1.FC Slovacko - - - Slovacko + SK Slavia Prague + + Slavia Praha - -
- - C. Budejovice - - SK Dynamo Ceske Budejovice - + Slovacko + + 1.FC Slovacko - 6:00 PM + 5:00 PM - - FC Viktoria Plzen - - - Viktoria Plzen + SK Artis Brno + + Artis Brno - -
- Sun - Feb 20, 2022 - - - FK Jablonec - - FK Jablonec - + Viktoria Plzeň + + FC Viktoria Plzen - 3:00 PM + 8:00 PM - - AC Sparta Prague - - - Sparta Prague + FC Zbrojovka Brno + + Zbrojovka Brno - -
- - - Teplice - - FK Teplice - + Sigma Olomouc + + SK Sigma Olomouc - 3:00 PM + 3:00 PM - - MFK Karvina - - - MFK Karvina + FK Mlada Boleslav + + Mlada Boleslav - -
- - Mlada Boleslav - - FK Mlada Boleslav - + Bohemians 1905 + + Bohemians Prague 1905 - 3:00 PM + 5:30 PM - - FC Slovan Liberec - - - Slovan Liberec + FC Hradec Kralove + + Hradec Kralove - -
- - Slavia Prague - - SK Slavia Prague - + Pardubice + + FK Pardubice - 6:00 PM + 8:00 PM - - Bohemians Prague 1905 - - - Bohemians 1905 + FK Jablonec + + Jablonec - -
+
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DateHome teamHome teamAway teamAway team
- Sat - Feb 26, 2022 - - - - Slovan Liberec - - FC Slovan Liberec - - - - 3:00 PM - - - - FK Jablonec - - - FK Jablonec - - -
- - - - Slovacko - - 1.FC Slovacko - - - - 3:00 PM - - - - FK Mlada Boleslav - - - Mlada Boleslav - - -
- - - - Bohemians 1905 - - Bohemians Prague 1905 - - - - 3:00 PM - - - - FC Banik Ostrava - - - Banik Ostrava - - -
- - - - Viktoria Plzen - - FC Viktoria Plzen - - - - 6:00 PM - - - - FK Pardubice - - - FK Pardubice - - -
- Sun - Feb 27, 2022 - - - - MFK Karvina - - MFK Karvina - - - - 3:00 PM - - - - SK Dynamo Ceske Budejovice - - - C. Budejovice - - -
- - - - Hradec Kralove - - FC Hradec Kralove - - - - 3:00 PM - - - - SK Slavia Prague - - - Slavia Prague - - -
- - - - Sigma Olomouc - - SK Sigma Olomouc - - - - 3:00 PM - - - - FK Teplice - - - Teplice - - -
- - - - Sparta Prague - - AC Sparta Prague - - - - 6:00 PM - - - - FC Fastav Zlin - - - Fastav Zlin - - -
- -
-
+
+
+
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DateHome teamHome teamAway teamAway team
- Tue - - Feb 22, 2022 - - - - - FK Pardubice - - FK Pardubice - - - - 5:00 PM - - - - 1.FC Slovacko - - - Slovacko - - -
- Wed - - Mar 9, 2022 - - - - - Slovan Liberec - - FC Slovan Liberec - - - - 4:30 PM - - - - FK Pardubice - - - FK Pardubice - - -
-
-
-
-
-
-
-
-

Top goalscorers

-
+
+
+Table Chance Liga
+
- + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#playerAgeclubGoals
#Club +/-Pts
1
Ladislav Almasi
Centre-Forward
22FC Banik Ostrava
2
Jean-David Beauguel
Centre-Forward
29FC Viktoria Plzen
3
Vaclav Jurecka
Centre-Forward
271.FC Slovacko
4
Jan Kuchta
Centre-Forward
24SK Slavia Prague
5
Fortune Bassey
Centre-Forward
23SK Dynamo Ceske Budejovice
SK Slavia Prague000
AC Sparta Prague000
FC Viktoria Plzen000
FC Hradec Kralove000
FK Jablonec000
FC Slovan Liberec000
SK Sigma Olomouc000
FK Pardubice000
Bohemians Prague 1905000
FK Teplice000
FC Zlin000
FK Mlada Boleslav000
1.FC Slovacko000
FC Banik Ostrava000
FC Zbrojovka Brno000
SK Artis Brno000
- -
-
-
-
- + +
+ +
+
+ Transfermarkt Videos
+
+ +
-
- - -
- Nicolae Stanciu
-
- - Update Fortuna Liga -

- Market values Czech Republic: Stanciu new in top 5 - Slavia with 13 players in top 15

-
-
- + +
+
+
+
+ + + + + + + + + +
-
- Lukas Provod
-
- - Intermediary update Fortuna Liga -

- Market values Czech Republic: Slavia biggest winner - Top provider Provod gains

-
+ betting sites
-
- -
-
-
- -

Latest transfers

- -
-
-
    -
  • -
    -
    - Pavel Osmancik
    -
    - -
    - Age: 21 Years  - Czech Republic
    - Position: Centre-Forward
    - Market value: €200Th.
    -
    -
    - Fee: loan transfer
    -
    -
    - Bohemians Prague 1905
    -
    -   -
    -
    - FK Viktoria Zizkov
    -
    -
    -
    -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
-
- -
-
-
-

Most valuable players in the league

-
-
-
-
- - - - - - - - - - - - - - - - - -
#playerclubMarket value
1
Adam Hlozek
Second Striker
AC Sparta Prague
2
Tomas Holes
Defensive Midfield
SK Slavia Prague
3
Nicolae Stanciu
Attacking Midfield
SK Slavia Prague
4
Peter Olayinka
Left Winger
SK Slavia Prague
5
Ondrej Kolar
Goalkeeper
SK Slavia Prague
- -
- -
-
-
-
-
Table Fortuna Liga 21/22
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#clubMatches+/-Pts
SK Slavia Prague213751
FC Viktoria Plzen212451
AC Sparta Prague212447
FC Banik Ostrava221642
1.FC Slovacko211439
FC Hradec Kralove22-327
SK Dynamo Ceske Budejovice21-427
FK Mlada Boleslav21-126
SK Sigma Olomouc22225
FC Fastav Zlin22-1225
FC Slovan Liberec20-1024
Bohemians Prague 190521-1721
FK Jablonec21-1920
FK Pardubice20-1718
FK Teplice21-1517
MFK Karvina21-199
+ + +
+ +
- -
-
+

Top rumours

@@ -2159,40 +1895,50 @@ adition.srq.push(function(api) {
+ +
  • +
  • +
  • +
  • +
  • +
  • -
    - - Who do you want to win? +
    +
    +

    + Who do you want to win?

    +
    +
    +

    + In this match you stick with...

    + + +
    +
    + +
    +
    +
    +
    -
    -

    In this match you stick with...

    - versus - - FC Fastav ZlinFC Fastav Zlin - - 1.FC Slovacko1.FC Slovacko -
    + +
    -
    -
    - -
    + - - - - - + - -
    - -
    - - - - -
    -
    -
    - -
    - -
    -
    -
    - -
    - - - - - - + + + + +
    Revoke Tracking
    +

    Sie haben erfolgreich Ihre Einwilligung in die Nutzung von Transfermarkt mit Tracking und Cookies widerrufen. Sie können sich jetzt zwischen dem Contentpass-Abo und der Nutzung mit personalisierter Werbung, Cookies und Tracking entscheiden.

    +
    + + + + + + + + + + + + + + + + + + + + + + - + `; export const LEAGUE_DATA: SoccerBotResponse = { ok: true, data: [ - { id: '62', name: 'SK Slavia Prague' }, - { id: '197', name: 'AC Sparta Prague' }, - { id: '941', name: 'FC Viktoria Plzen' }, - { id: '2311', name: 'SK Sigma Olomouc' }, - { id: '377', name: 'FC Banik Ostrava' }, - { id: '697', name: 'FC Slovan Liberec' }, - { id: '5544', name: '1.FC Slovacko' }, - { id: '1322', name: 'FK Jablonec' }, - { id: '715', name: 'Bohemians Prague 1905' }, - { id: '5546', name: 'FK Mlada Boleslav' }, - { id: '13726', name: 'MFK Karvina' }, - { id: '814', name: 'FK Teplice' }, - { id: '1321', name: 'SK Dynamo Ceske Budejovice' }, - { id: '1897', name: 'FC Hradec Kralove' }, - { id: '1496', name: 'FK Pardubice' }, - { id: '5545', name: 'FC Fastav Zlin' } + { + id: '62', + name: 'SK Slavia Prague' + }, + { + id: '197', + name: 'AC Sparta Prague' + }, + { + id: '941', + name: 'FC Viktoria Plzen' + }, + { + id: '2311', + name: 'SK Sigma Olomouc' + }, + { + id: '697', + name: 'FC Slovan Liberec' + }, + { + id: '377', + name: 'FC Banik Ostrava' + }, + { + id: '1322', + name: 'FK Jablonec' + }, + { + id: '1496', + name: 'FK Pardubice' + }, + { + id: '1897', + name: 'FC Hradec Kralove' + }, + { + id: '5225', + name: 'FC Zbrojovka Brno' + }, + { + id: '5546', + name: 'FK Mlada Boleslav' + }, + { + id: '814', + name: 'FK Teplice' + }, + { + id: '5544', + name: '1.FC Slovacko' + }, + { + id: '5545', + name: 'FC Zlin' + }, + { + id: '24325', + name: 'SK Artis Brno' + }, + { + id: '715', + name: 'Bohemians Prague 1905' + } ] }; diff --git a/test/mocks/transfermarkt/team.ts b/test/mocks/transfermarkt/team.ts index a444e77..5bebcd3 100644 --- a/test/mocks/transfermarkt/team.ts +++ b/test/mocks/transfermarkt/team.ts @@ -6,14 +6,11 @@ import { SoccerBotResponse } from '../../../src/shared/interfaces'; -export const TEAM_HTML = ` - - - +export const TEAM_HTML = ` - + @@ -22,7 +19,6 @@ window._sp_ = { config: {"accountId":1254,"propertyId":7427,"gdpr":{"consentLanguage":"en","targetingParams":{"acps":"false"}},"baseEndpoint":"https://cdn.privacy-mgmt.com","isSPA":true,"cpPropertyId":"7a84b340"}} - - - - - - - - + + + + + + + + + + +SK Slavia Prague - Detailed squad 26/27 (Detailed view) | Transfermarkt + + + + - - + +
    +
    - - + +
    - +
    - - + +
    -
    - +

    - SK Slavia Prague

    + SK Slavia Prague
    - - Czech Champion + + Czech Champion - 8 + 9 - - Intertoto-Cup Winner + + Intertoto-Cup Winner 7 - - Mitropacup + + Mitropacup 1 - - Czech Cup Winner + + Czech Cup Winner 7 - - Champion of Czechoslovakia + + Champion of Czechoslovakia 14 @@ -712,23 +936,22 @@ window._sp_ = { Table position: - 1 + In league since: - 35 years + 36 years
    - SK Slavia Prague -
    + SK Slavia Prague
    @@ -738,24 +961,24 @@ window._sp_ = {
  • Squad size: - 30 + 41
  • Average age: - 26.4 + 24.4
  • Foreigners: - 12  40.0 % + 23  56.1 %
    • National team players: - 22 + 19
    • Stadium: @@ -765,8 +988,8 @@ window._sp_ = {
    • Current transfer record: - - +€25.33m + + €-21.19m
    @@ -779,6 +1002,7 @@ window._sp_ = { SK Slavia Prague BSK Slavia Prague B
  • SK Slavia Prague U20SK Slavia Prague U20
  • SK Slavia Prague U19SK Slavia Prague U19
  • + SK Slavia Prague U17SK Slavia Prague U17
  • SK Slavia Prague UEFA U19SK Slavia Prague UEFA U19
  • SK Slavia Prague YouthSK Slavia Prague Youth
  • @@ -791,14 +1015,14 @@ window._sp_ = { }) }; - deadline-day banner + style="display: block; margin: 0 5px;"> +
    @@ -847,7 +1072,9 @@ window._sp_ = { data-placeholder="Filter by season" class="chzn-select" tabindex="0"> + selected="selected"value="2026">26/27 +
    - + +
    + +
    Compact
    Detailed
    Gallery
    - + - + - + + + + - - + + - + + + + + - + - + - + - + - - - + + - - + + + - + - + - + - + - + - + - + - + - - - + + + - + - + - + + + + + + + + + + + + + - + + + + + - + - + - + + - - + + +
    #PlayerDate of birth/AgeNat.HeightFootJoinedSigned fromContractMarket value
    #PlayerDate of birth/AgeNat.HeightFootJoinedSigned fromContractMarket value
    36
    +
    29
    Karpaty Lviv + Nazar Domchak @@ -1067,7 +1305,7 @@ window._sp_ = { Goalkeeper
    - Jindrich Stanek
    -
    27/04/1996 (29)Czech Republic1,92mright05/01/2024FC Viktoria Plzen30/06/2029
    06/04/2007 (19)Ukraine1,90mright01/07/2026Karpaty Lviv30/06/2031
    35
    @@ -1084,8 +1322,25 @@ window._sp_ = { Goalkeeper
    -
    13/07/2001 (24)Czech Republic1,87m 07/01/2025FC Banik Ostrava30/06/2029
    13/07/2001 (25)Czech Republic1,90m 07/01/2025FC Banik Ostrava30/06/2029
    36
    + + + + + + + + +
    + Jindrich Stanek
    + Goalkeeper
    +
    27/04/1996 (30)Czech Republic1,92mright05/01/2024FC Viktoria Plzen30/06/2029
    1
    @@ -1093,7 +1348,7 @@ window._sp_ = { Ondrej Kolar @@ -1101,16 +1356,16 @@ window._sp_ = { Goalkeeper
    -
    17/10/1994 (31)Czech Republic1,93mright22/01/2018FC Slovan Liberec30/06/2027
    5
    +17/10/1994 (31)Czech Republic1,93mright22/01/2018FC Slovan Liberec30/06/2027
    2
    + Stepan Chaloupek @@ -1118,8 +1373,8 @@ window._sp_ = { Centre-Back
    - Igoh Ogbu
    -
    08/02/2000 (25)Nigeria1,87mright06/01/2023Lillestrøm SK31/12/2027
    08/03/2003 (23)Czech Republic1,88mright01/07/2024FK Teplice30/06/2030
    4
    @@ -1135,16 +1390,33 @@ window._sp_ = { Centre-Back
    -
    08/11/2000 (25)Czech Republic1,92mright31/01/2024Torino FC30/06/2028
    08/11/2000 (25)Czech Republic1,90mright31/01/2024Torino FC30/06/2030
    5
    + + + + + + + + +
    + Igoh Ogbu
    + Centre-Back
    +
    08/02/2000 (26)Nigeria1,87mright06/01/2023Lillestrøm SK31/12/2027
    27
    +
    6
    FC Slovan Liberec + Ange N'Guessan @@ -1152,16 +1424,16 @@ window._sp_ = { Centre-Back
    - Tomas Vlcek
    -
    28/02/2001 (24)Czech Republic1,81mright03/08/2020SK Slavia Prague B30/06/2027
    01/09/2003 (22)France
    Cote d'Ivoire
    1,87mright01/07/2026FC Slovan Liberec30/06/2031
    2
    +
    27
    + Tomas Vlcek @@ -1169,16 +1441,16 @@ window._sp_ = { Centre-Back
    - Stepan Chaloupek
    -
    08/03/2003 (22)Czech Republic1,88mright01/07/2024FK Teplice30/06/2028
    28/02/2001 (25)Czech Republic1,82mright03/08/2020SK Slavia Prague B30/06/2030
    3
    +
    42
    FK Pardubice + Mikulas Konecny @@ -1186,16 +1458,16 @@ window._sp_ = { Centre-Back
    - Tomas Holes
    -
    31/03/1993 (32)Czech Republic1,80mright01/07/2019FK Jablonec30/06/2027
    02/06/2006 (20)Czech Republic1,89m 01/07/2025SK Slavia Prague B30/06/2028
    18
    +
    -
    FK Teplice + Denis Halinsky @@ -1203,50 +1475,50 @@ window._sp_ = { Centre-Back
    - Jan Boril
    -
    11/01/1991 (34)Czech Republic1,75mright07/01/2016FK Mlada Boleslav30/06/2026
    13/07/2003 (23)Czech Republic1,85mright01/07/2022FK Viagem Pribram30/06/2030
    33
    +
    41
    MFK Karvina + Sahmkou Camara + Centre-Back
    - Ondrej Zmrzly
    - Left-Back
    -
    22/04/1999 (26)Czech Republic1,85m 05/01/2024SK Sigma Olomouc30/06/2027
    12
    FC Vysocina Jihlava +10/06/2003 (23)Guinea
    France
    1,93mright25/01/2025FC Stade-Lausanne-Ouchy-
    3
    + Tomas Holes + Centre-Back
    - Youssoupha Mbodji
    - Left-Back
    -
    09/01/2004 (21)Senegal1,90mleft20/08/2025FC Vysocina Jihlava30/06/2030
    37
    MSK Zilina +31/03/1993 (33)Czech Republic1,80mright01/07/2019FK Jablonec30/06/2028
    39
    + David Jurásek @@ -1254,16 +1526,16 @@ window._sp_ = { Left-Back
    - Dominik Javorcek
    -
    02/11/2002 (23)Slovakia1,83mleft01/07/2025MSK Zilina30/06/2029
    07/08/2000 (25)Czech Republic1,83mleft16/01/2026SL Benfica30/06/2029
    15
    +
    12
    + Youssoupha Mbodji @@ -1271,203 +1543,310 @@ window._sp_ = { Left-Back
    - Emmanuel Fully
    -
    20/03/2006 (19)Liberia1,86mleft 30/06/2029
    09/01/2004 (22)Senegal1,90mleft20/08/2025FC Vysocina Jihlava30/06/2030
    8
    Luton Town +
    9
    MFK Karvina + Albert Labik + Left-Back
    - Daiki Hashioka
    - Right-Back
    -
    17/05/1999 (26)Japan1,84mright01/07/2025Luton Town30/06/2029
    13/05/2004 (22)Czech Republic1,78mleft01/07/2023SK Slavia Prague B-
    10
    PAOK Thessaloniki +
    -
    FC Banik Ostrava + Hamidou Kante + Left-Back
    - Christos Zafeiris
    - Central Midfield
    -
    23/02/2003 (22)Greece
    Norway
    1,73mright27/08/2025PAOK Thessaloniki31/12/2025
    18/12/2004 (21)Senegal1,81mleft16/01/2026SK Artis Brno30/06/2030
    19
    +
    37
    + Dominik Javorcek + Left-Back
    - Oscar
    - Central Midfield
    -
    19/07/1998 (27)Liberia1,74mleft11/08/2019FC Slovan Liberec30/06/2027
    02/11/2002 (23)Slovakia1,84mleft01/07/2025MSK Zilina30/06/2029
    23
    Twente Enschede FC +
    14
    + Samuel Isife + Right-Back
    - Michal Sadílek
    - Central Midfield
    -
    31/05/1999 (26)Czech Republic1,69mleft01/07/2025Twente Enschede FC30/06/2028
    13/07/2004 (22)Nigeria1,74m 16/01/2026FK Dukla Prague31/12/2029
    16
    +
    -
    KAA Gent + Daiki Hashioka + Right-Back
    - David Moses
    - Central Midfield
    -
    20/01/2004 (21)Nigeria1,71m 01/01/2025MFK Karvina30/06/2029
    17/05/1999 (27)Japan1,84mright01/07/2025Luton Town30/06/2029
    -
    FK Jablonec +
    -
    Pau FC + Neil Glossoa + Right-Back
    - Petr Sevcik
    - Central Midfield
    -
    04/05/1994 (31)Czech Republic1,72mright01/01/2019FC Slovan Liberec30/06/2026
    10/09/2004 (21)France
    Cote d'Ivoire
    1,88mright01/07/2026Pau FC30/06/2031
    21
    +
    -
    Lech Poznan + Timothy Ouma + Defensive Midfield
    - David Doudera
    - Right Midfield
    -
    31/05/1998 (27)Czech Republic1,75mright01/07/2022FK Mlada Boleslav30/06/2028
    10/06/2004 (22)Kenya1,83mright02/02/2025IF Elfsborg30/06/2029
    17
    +
    16
    + David Moses + Central Midfield
    - Lukas Provod
    - Attacking Midfield
    -
    23/10/1996 (29)Czech Republic1,89mleft01/01/2020FC Viktoria Plzen B30/06/2029
    7
    Trabzonspor +20/01/2004 (22)Nigeria1,71m 01/01/2025MFK Karvina30/06/2029
    23
    + Michal Sadílek + Central Midfield
    - Muhammed Cham
    - Attacking Midfield
    -
    26/09/2000 (25)Austria1,80mleft30/08/2025Trabzonspor30/06/2026
    31/05/1999 (27)Czech Republic1,69mleft01/07/2025FC Twente Enschede30/06/2028
    9
    +
    19
    + Oscar + Central Midfield
    - Vasil Kusej
    - Left Winger
    -
    24/05/2000 (25)Czech Republic1,68m 07/01/2025FK Mlada Boleslav31/12/2028
    19/07/1998 (28)Liberia1,74mleft11/08/2019FC Slovan Liberec30/06/2027
    11
    Östers IF +
    22
    FC Slovan Liberec + Toumani Diakite + Central Midfield
    - Youssoupha Sanyang
    - Left Winger
    -
    31/08/2005 (20)The Gambia
    Senegal
    1,75mleft01/07/2025Östers IF30/06/2030
    19/01/2006 (20)Cote d'Ivoire1,80mright01/07/2026FC Slovan Liberec30/06/2031
    22
    +
    15
    + Mubarak Suleiman + + + + +
    - Lukas Vorlicky
    + Central Midfield
    +
    13/04/2007 (19)Nigeria1,75mright01/02/2026SK Slavia Prague U20-
    -
    FK Pardubice + + + + + + + + +
    + Tomas Jelinek
    + Central Midfield
    +
    27/12/2005 (20)Czech Republic1,80m 01/01/2026SK Slavia Prague B-
    -
    Bohemians Prague 1905 + + + + + + + + +
    + Gibril Sosseh
    + Central Midfield
    +
    01/01/2007 (19)The Gambia1,84m 17/01/2026Kalmar FF31/12/2030
    21
    + + + + + + + + +
    + David Doudera
    + Right Midfield
    +
    31/05/1998 (28)Czech Republic1,75mright01/07/2022FK Mlada Boleslav30/06/2028
    -
    Arka Gdynia + + + + + + + + +
    + Oskar Kubiak
    + Left Midfield
    +
    25/09/2006 (19)Poland1,73mleft01/07/2026Arka Gdynia30/06/2030
    30
    Górnik Zabrze + + + + + + + + +
    + Wiktor Nowak
    + Attacking Midfield
    +
    20/09/2004 (21)Poland1,87mright01/07/2026Górnik Zabrze30/06/2030
    17
    + + + + @@ -1475,33 +1854,67 @@ window._sp_ = { Left Winger
    + Lukas Provod
    -
    18/01/2002 (23)Czech Republic1,86mright01/07/2024SK Slavia Prague B30/06/2027
    23/10/1996 (29)Czech Republic1,91mleft01/01/2020FC Viktoria Plzen B30/06/2031
    26
    +
    11
    + Youssoupha Sanyang + Left Winger + +
    - Ivan Schranz
    - Right Winger
    +
    31/08/2005 (20)The Gambia
    Senegal
    1,75mleft01/07/2025Östers IF30/06/2030
    10
    SK Sigma Olomouc + + + + + + + + +
    + Danijel Sturm
    + Left Winger
    +
    04/01/1999 (27)Slovenia1,82mright01/07/2026SK Sigma Olomouc30/06/2030
    20
    MFK Karvina + + + + + + +
    + Emmanuel Ayaosi
    + Left Winger
    -
    13/09/1993 (32)Slovakia1,85mright01/07/2021FK Jablonec30/06/2026
    28/10/2004 (21)Nigeria-right01/07/2026MFK Karvina30/06/2030
    -
    FK Teplice +
    -
    MFK Karvina + Pavel Kacor @@ -1509,33 +1922,50 @@ window._sp_ = { Right Winger
    - Filip Horsky
    -
    09/05/2003 (22)Czech Republic1,85mright01/07/2023SK Slavia Prague B30/06/2027
    12/09/2006 (19)Czech Republic1,81mright01/07/2026MFK Karvina30/06/2030
    13
    +
    18
    1.FC Slovacko + Adonija Ouanda + Right Winger
    - Mojmír Chytil
    - Centre-Forward
    -
    29/04/1999 (26)Czech Republic1,87m 01/07/2023SK Sigma Olomouc30/06/2027
    30/04/2005 (21)Canada
    Cote d'Ivoire
    1,80mright16/01/2026FK Vozdovac31/12/2030
    25
    +
    26
    + Ivan Schranz + + + + +
    - Tomas Chory
    + Right Winger
    +
    13/09/1993 (32)Slovakia1,85mright01/07/2021FK Jablonec31/12/2027
    13
    + + + + @@ -1543,16 +1973,18 @@ window._sp_ = { Centre-Forward
    + Mojmír Chytil
    -
    26/01/1995 (30)Czech Republic1,99mright03/07/2024FC Viktoria Plzen30/06/2027
    31
    FC Banik Ostrava +29/04/1999 (27)Czech Republic1,87mright01/07/2023SK Sigma Olomouc30/06/2029
    25
    + Tomas Chory @@ -1560,10 +1992,10 @@ window._sp_ = { Centre-Forward
    - Erik Prekop
    -
    08/10/1997 (28)Slovakia1,85mleft02/09/2025FC Banik Ostrava30/06/2028
    26/01/1995 (31)Czech Republic1,99mright03/07/2024FC Viktoria Plzen30/06/2027
    - +
    @@ -1573,24 +2005,6 @@ window._sp_ = {
    -
    @@ -1626,11 +2040,11 @@ window._sp_ = { class="tm-footer__link tm-footer__link--arrow" > FIFA World ranking - - Betting + Best betting sites @@ -1876,25 +2297,26 @@ window._sp_ = { - +
    Revoke Tracking

    Sie haben erfolgreich Ihre Einwilligung in die Nutzung von Transfermarkt mit Tracking und Cookies widerrufen. Sie können sich jetzt zwischen dem Contentpass-Abo und der Nutzung mit personalisierter Werbung, Cookies und Tracking entscheiden.

    - - + + + + - - + + - - + - - `; export const TEAM_DATA: SoccerBotResponse = { ok: true, data: [ { - id: '242089', - name: 'Jindrich Stanek', - jerseyNumber: 36, + id: '1161403', + name: 'Nazar Domchak', + jerseyNumber: 29, position: SoccerBotPositionGroup.GOALKEEPER, - birthdate: '1996-04-27', - height: 192, + birthdate: '2007-04-06', + height: 190, foot: SoccerBotFoot.RIGHT, - joined: '2024-01-05', - contractExpires: '2029-06-30', - marketValue: 3000000, + joined: '2026-07-01', + contractExpires: '2031-06-30', + marketValue: 4000000, country: { - databaseName: 'Czech Republic', - code2: SoccerBotCountryCode2.CZ, - code3: SoccerBotCountryCode3.CZE + databaseName: 'Ukraine', + code2: SoccerBotCountryCode2.UA, + code3: SoccerBotCountryCode3.UKR } }, { @@ -1941,10 +2361,27 @@ export const TEAM_DATA: SoccerBotResponse = { jerseyNumber: 35, position: SoccerBotPositionGroup.GOALKEEPER, birthdate: '2001-07-13', - height: 187, + height: 190, joined: '2025-01-07', contractExpires: '2029-06-30', - marketValue: 1500000, + marketValue: 3500000, + country: { + databaseName: 'Czech Republic', + code2: SoccerBotCountryCode2.CZ, + code3: SoccerBotCountryCode3.CZE + } + }, + { + id: '242089', + name: 'Jindrich Stanek', + jerseyNumber: 36, + position: SoccerBotPositionGroup.GOALKEEPER, + birthdate: '1996-04-27', + height: 192, + foot: SoccerBotFoot.RIGHT, + joined: '2024-01-05', + contractExpires: '2029-06-30', + marketValue: 2000000, country: { databaseName: 'Czech Republic', code2: SoccerBotCountryCode2.CZ, @@ -1961,7 +2398,41 @@ export const TEAM_DATA: SoccerBotResponse = { foot: SoccerBotFoot.RIGHT, joined: '2018-01-22', contractExpires: '2027-06-30', - marketValue: 125000, + marketValue: 50000, + country: { + databaseName: 'Czech Republic', + code2: SoccerBotCountryCode2.CZ, + code3: SoccerBotCountryCode3.CZE + } + }, + { + id: '944827', + name: 'Stepan Chaloupek', + jerseyNumber: 2, + position: SoccerBotPositionGroup.DEFENDER, + birthdate: '2003-03-08', + height: 188, + foot: SoccerBotFoot.RIGHT, + joined: '2024-07-01', + contractExpires: '2030-06-30', + marketValue: 10000000, + country: { + databaseName: 'Czech Republic', + code2: SoccerBotCountryCode2.CZ, + code3: SoccerBotCountryCode3.CZE + } + }, + { + id: '544149', + name: 'David Zima', + jerseyNumber: 4, + position: SoccerBotPositionGroup.DEFENDER, + birthdate: '2000-11-08', + height: 190, + foot: SoccerBotFoot.RIGHT, + joined: '2024-01-31', + contractExpires: '2030-06-30', + marketValue: 7000000, country: { databaseName: 'Czech Republic', code2: SoccerBotCountryCode2.CZ, @@ -1978,7 +2449,7 @@ export const TEAM_DATA: SoccerBotResponse = { foot: SoccerBotFoot.RIGHT, joined: '2023-01-06', contractExpires: '2027-12-31', - marketValue: 10000000, + marketValue: 7000000, country: { databaseName: 'Nigeria', code2: SoccerBotCountryCode2.NG, @@ -1986,20 +2457,20 @@ export const TEAM_DATA: SoccerBotResponse = { } }, { - id: '544149', - name: 'David Zima', - jerseyNumber: 4, + id: '804799', + name: "Ange N'Guessan", + jerseyNumber: 6, position: SoccerBotPositionGroup.DEFENDER, - birthdate: '2000-11-08', - height: 192, + birthdate: '2003-09-01', + height: 187, foot: SoccerBotFoot.RIGHT, - joined: '2024-01-31', - contractExpires: '2028-06-30', - marketValue: 6000000, + joined: '2026-07-01', + contractExpires: '2031-06-30', + marketValue: 4500000, country: { - databaseName: 'Czech Republic', - code2: SoccerBotCountryCode2.CZ, - code3: SoccerBotCountryCode3.CZE + databaseName: 'France', + code2: SoccerBotCountryCode2.FR, + code3: SoccerBotCountryCode3.FRA } }, { @@ -2008,10 +2479,10 @@ export const TEAM_DATA: SoccerBotResponse = { jerseyNumber: 27, position: SoccerBotPositionGroup.DEFENDER, birthdate: '2001-02-28', - height: 181, + height: 182, foot: SoccerBotFoot.RIGHT, joined: '2020-08-03', - contractExpires: '2027-06-30', + contractExpires: '2030-06-30', marketValue: 4000000, country: { databaseName: 'Czech Republic', @@ -2020,16 +2491,15 @@ export const TEAM_DATA: SoccerBotResponse = { } }, { - id: '944827', - name: 'Stepan Chaloupek', - jerseyNumber: 2, + id: '765094', + name: 'Mikulas Konecny', + jerseyNumber: 42, position: SoccerBotPositionGroup.DEFENDER, - birthdate: '2003-03-08', - height: 188, - foot: SoccerBotFoot.RIGHT, - joined: '2024-07-01', + birthdate: '2006-06-02', + height: 189, + joined: '2025-07-01', contractExpires: '2028-06-30', - marketValue: 3000000, + marketValue: 2500000, country: { databaseName: 'Czech Republic', code2: SoccerBotCountryCode2.CZ, @@ -2037,16 +2507,15 @@ export const TEAM_DATA: SoccerBotResponse = { } }, { - id: '216278', - name: 'Tomas Holes', - jerseyNumber: 3, + id: '816875', + name: 'Denis Halinsky', position: SoccerBotPositionGroup.DEFENDER, - birthdate: '1993-03-31', - height: 180, + birthdate: '2003-07-13', + height: 185, foot: SoccerBotFoot.RIGHT, - joined: '2019-07-01', - contractExpires: '2027-06-30', - marketValue: 1800000, + joined: '2022-07-01', + contractExpires: '2030-06-30', + marketValue: 2000000, country: { databaseName: 'Czech Republic', code2: SoccerBotCountryCode2.CZ, @@ -2054,16 +2523,32 @@ export const TEAM_DATA: SoccerBotResponse = { } }, { - id: '129655', - name: 'Jan Boril', - jerseyNumber: 18, + id: '1010818', + name: 'Sahmkou Camara', + jerseyNumber: 41, position: SoccerBotPositionGroup.DEFENDER, - birthdate: '1991-01-11', - height: 175, + birthdate: '2003-06-10', + height: 193, + foot: SoccerBotFoot.RIGHT, + joined: '2025-01-25', + marketValue: 1200000, + country: { + databaseName: 'Guinea', + code2: SoccerBotCountryCode2.GN, + code3: SoccerBotCountryCode3.GIN + } + }, + { + id: '216278', + name: 'Tomas Holes', + jerseyNumber: 3, + position: SoccerBotPositionGroup.DEFENDER, + birthdate: '1993-03-31', + height: 180, foot: SoccerBotFoot.RIGHT, - joined: '2016-01-07', - contractExpires: '2026-06-30', - marketValue: 250000, + joined: '2019-07-01', + contractExpires: '2028-06-30', + marketValue: 1000000, country: { databaseName: 'Czech Republic', code2: SoccerBotCountryCode2.CZ, @@ -2071,15 +2556,16 @@ export const TEAM_DATA: SoccerBotResponse = { } }, { - id: '343558', - name: 'Ondrej Zmrzly', - jerseyNumber: 33, + id: '500054', + name: 'David Jurásek', + jerseyNumber: 39, position: SoccerBotPositionGroup.DEFENDER, - birthdate: '1999-04-22', - height: 185, - joined: '2024-01-05', - contractExpires: '2027-06-30', - marketValue: 2000000, + birthdate: '2000-08-07', + height: 183, + foot: SoccerBotFoot.LEFT, + joined: '2026-01-16', + contractExpires: '2029-06-30', + marketValue: 5000000, country: { databaseName: 'Czech Republic', code2: SoccerBotCountryCode2.CZ, @@ -2096,7 +2582,39 @@ export const TEAM_DATA: SoccerBotResponse = { foot: SoccerBotFoot.LEFT, joined: '2025-08-20', contractExpires: '2030-06-30', - marketValue: 1500000, + marketValue: 1200000, + country: { + databaseName: 'Senegal', + code2: SoccerBotCountryCode2.SN, + code3: SoccerBotCountryCode3.SEN + } + }, + { + id: '671518', + name: 'Albert Labik', + jerseyNumber: 9, + position: SoccerBotPositionGroup.DEFENDER, + birthdate: '2004-05-13', + height: 178, + foot: SoccerBotFoot.LEFT, + joined: '2023-07-01', + marketValue: 1000000, + country: { + databaseName: 'Czech Republic', + code2: SoccerBotCountryCode2.CZ, + code3: SoccerBotCountryCode3.CZE + } + }, + { + id: '1379813', + name: 'Hamidou Kante', + position: SoccerBotPositionGroup.DEFENDER, + birthdate: '2004-12-18', + height: 181, + foot: SoccerBotFoot.LEFT, + joined: '2026-01-16', + contractExpires: '2030-06-30', + marketValue: 800000, country: { databaseName: 'Senegal', code2: SoccerBotCountryCode2.SN, @@ -2109,11 +2627,11 @@ export const TEAM_DATA: SoccerBotResponse = { jerseyNumber: 37, position: SoccerBotPositionGroup.DEFENDER, birthdate: '2002-11-02', - height: 183, + height: 184, foot: SoccerBotFoot.LEFT, joined: '2025-07-01', contractExpires: '2029-06-30', - marketValue: 550000, + marketValue: 350000, country: { databaseName: 'Slovakia', code2: SoccerBotCountryCode2.SK, @@ -2121,32 +2639,31 @@ export const TEAM_DATA: SoccerBotResponse = { } }, { - id: '1174744', - name: 'Emmanuel Fully', - jerseyNumber: 15, + id: '1372515', + name: 'Samuel Isife', + jerseyNumber: 14, position: SoccerBotPositionGroup.DEFENDER, - birthdate: '2006-03-20', - height: 186, - foot: SoccerBotFoot.LEFT, - contractExpires: '2029-06-30', - marketValue: 500000, + birthdate: '2004-07-13', + height: 174, + joined: '2026-01-16', + contractExpires: '2029-12-31', + marketValue: 3500000, country: { - databaseName: 'Liberia', - code2: SoccerBotCountryCode2.LR, - code3: SoccerBotCountryCode3.LBR + databaseName: 'Nigeria', + code2: SoccerBotCountryCode2.NG, + code3: SoccerBotCountryCode3.NGA } }, { id: '387191', name: 'Daiki Hashioka', - jerseyNumber: 8, position: SoccerBotPositionGroup.DEFENDER, birthdate: '1999-05-17', height: 184, foot: SoccerBotFoot.RIGHT, joined: '2025-07-01', contractExpires: '2029-06-30', - marketValue: 1800000, + marketValue: 1500000, country: { databaseName: 'Japan', code2: SoccerBotCountryCode2.JP, @@ -2154,37 +2671,51 @@ export const TEAM_DATA: SoccerBotResponse = { } }, { - id: '580978', - name: 'Christos Zafeiris', - jerseyNumber: 10, + id: '1016807', + name: 'Neil Glossoa', + position: SoccerBotPositionGroup.DEFENDER, + birthdate: '2004-09-10', + height: 188, + foot: SoccerBotFoot.RIGHT, + joined: '2026-07-01', + contractExpires: '2031-06-30', + marketValue: 500000, + country: { + databaseName: 'France', + code2: SoccerBotCountryCode2.FR, + code3: SoccerBotCountryCode3.FRA + } + }, + { + id: '952979', + name: 'Timothy Ouma', position: SoccerBotPositionGroup.MIDFIELDER, - birthdate: '2003-02-23', - height: 173, + birthdate: '2004-06-10', + height: 183, foot: SoccerBotFoot.RIGHT, - joined: '2025-08-27', - contractExpires: '2025-12-31', - marketValue: 11000000, + joined: '2025-02-02', + contractExpires: '2029-06-30', + marketValue: 1000000, country: { - databaseName: 'Greece', - code2: SoccerBotCountryCode2.GR, - code3: SoccerBotCountryCode3.GRC + databaseName: 'Kenya', + code2: SoccerBotCountryCode2.KE, + code3: SoccerBotCountryCode3.KEN } }, { - id: '401475', - name: 'Oscar', - jerseyNumber: 19, + id: '1001305', + name: 'David Moses', + jerseyNumber: 16, position: SoccerBotPositionGroup.MIDFIELDER, - birthdate: '1998-07-19', - height: 174, - foot: SoccerBotFoot.LEFT, - joined: '2019-08-11', - contractExpires: '2027-06-30', + birthdate: '2004-01-20', + height: 171, + joined: '2025-01-01', + contractExpires: '2029-06-30', marketValue: 10000000, country: { - databaseName: 'Liberia', - code2: SoccerBotCountryCode2.LR, - code3: SoccerBotCountryCode3.LBR + databaseName: 'Nigeria', + code2: SoccerBotCountryCode2.NG, + code3: SoccerBotCountryCode3.NGA } }, { @@ -2205,15 +2736,49 @@ export const TEAM_DATA: SoccerBotResponse = { } }, { - id: '1001305', - name: 'David Moses', - jerseyNumber: 16, + id: '401475', + name: 'Oscar', + jerseyNumber: 19, position: SoccerBotPositionGroup.MIDFIELDER, - birthdate: '2004-01-20', - height: 171, - joined: '2025-01-01', - contractExpires: '2029-06-30', - marketValue: 7000000, + birthdate: '1998-07-19', + height: 174, + foot: SoccerBotFoot.LEFT, + joined: '2019-08-11', + contractExpires: '2027-06-30', + marketValue: 6000000, + country: { + databaseName: 'Liberia', + code2: SoccerBotCountryCode2.LR, + code3: SoccerBotCountryCode3.LBR + } + }, + { + id: '1381483', + name: 'Toumani Diakite', + jerseyNumber: 22, + position: SoccerBotPositionGroup.MIDFIELDER, + birthdate: '2006-01-19', + height: 180, + foot: SoccerBotFoot.RIGHT, + joined: '2026-07-01', + contractExpires: '2031-06-30', + marketValue: 3000000, + country: { + databaseName: 'Ivory Coast', + code2: SoccerBotCountryCode2.CI, + code3: SoccerBotCountryCode3.CIV + } + }, + { + id: '1457962', + name: 'Mubarak Suleiman', + jerseyNumber: 15, + position: SoccerBotPositionGroup.MIDFIELDER, + birthdate: '2007-04-13', + height: 175, + foot: SoccerBotFoot.RIGHT, + joined: '2026-02-01', + marketValue: 1800000, country: { databaseName: 'Nigeria', code2: SoccerBotCountryCode2.NG, @@ -2221,21 +2786,34 @@ export const TEAM_DATA: SoccerBotResponse = { } }, { - id: '147555', - name: 'Petr Sevcik', + id: '1034738', + name: 'Tomas Jelinek', position: SoccerBotPositionGroup.MIDFIELDER, - birthdate: '1994-05-04', - height: 172, - foot: SoccerBotFoot.RIGHT, - joined: '2019-01-01', - contractExpires: '2026-06-30', - marketValue: 300000, + birthdate: '2005-12-27', + height: 180, + joined: '2026-01-01', + marketValue: 700000, country: { databaseName: 'Czech Republic', code2: SoccerBotCountryCode2.CZ, code3: SoccerBotCountryCode3.CZE } }, + { + id: '1372149', + name: 'Gibril Sosseh', + position: SoccerBotPositionGroup.MIDFIELDER, + birthdate: '2007-01-01', + height: 184, + joined: '2026-01-17', + contractExpires: '2030-12-31', + marketValue: 450000, + country: { + databaseName: 'Gambia', + code2: SoccerBotCountryCode2.GM, + code3: SoccerBotCountryCode3.GMB + } + }, { id: '493758', name: 'David Doudera', @@ -2246,7 +2824,7 @@ export const TEAM_DATA: SoccerBotResponse = { foot: SoccerBotFoot.RIGHT, joined: '2022-07-01', contractExpires: '2028-06-30', - marketValue: 3000000, + marketValue: 3500000, country: { databaseName: 'Czech Republic', code2: SoccerBotCountryCode2.CZ, @@ -2254,49 +2832,49 @@ export const TEAM_DATA: SoccerBotResponse = { } }, { - id: '292779', - name: 'Lukas Provod', - jerseyNumber: 17, + id: '1292977', + name: 'Oskar Kubiak', position: SoccerBotPositionGroup.MIDFIELDER, - birthdate: '1996-10-23', - height: 189, + birthdate: '2006-09-25', + height: 173, foot: SoccerBotFoot.LEFT, - joined: '2020-01-01', - contractExpires: '2029-06-30', - marketValue: 8000000, + joined: '2026-07-01', + contractExpires: '2030-06-30', + marketValue: 1500000, country: { - databaseName: 'Czech Republic', - code2: SoccerBotCountryCode2.CZ, - code3: SoccerBotCountryCode3.CZE + databaseName: 'Poland', + code2: SoccerBotCountryCode2.PL, + code3: SoccerBotCountryCode3.POL } }, { - id: '422281', - name: 'Muhammed Cham', - jerseyNumber: 7, + id: '1018224', + name: 'Wiktor Nowak', + jerseyNumber: 30, position: SoccerBotPositionGroup.MIDFIELDER, - birthdate: '2000-09-26', - height: 180, - foot: SoccerBotFoot.LEFT, - joined: '2025-08-30', - contractExpires: '2026-06-30', - marketValue: 5500000, + birthdate: '2004-09-20', + height: 187, + foot: SoccerBotFoot.RIGHT, + joined: '2026-07-01', + contractExpires: '2030-06-30', + marketValue: 1500000, country: { - databaseName: 'Austria', - code2: SoccerBotCountryCode2.AT, - code3: SoccerBotCountryCode3.AUT + databaseName: 'Poland', + code2: SoccerBotCountryCode2.PL, + code3: SoccerBotCountryCode3.POL } }, { - id: '396235', - name: 'Vasil Kusej', - jerseyNumber: 9, + id: '292779', + name: 'Lukas Provod', + jerseyNumber: 17, position: SoccerBotPositionGroup.ATTACKER, - birthdate: '2000-05-24', - height: 168, - joined: '2025-01-07', - contractExpires: '2028-12-31', - marketValue: 6000000, + birthdate: '1996-10-23', + height: 191, + foot: SoccerBotFoot.LEFT, + joined: '2020-01-01', + contractExpires: '2031-06-30', + marketValue: 8000000, country: { databaseName: 'Czech Republic', code2: SoccerBotCountryCode2.CZ, @@ -2313,7 +2891,7 @@ export const TEAM_DATA: SoccerBotResponse = { foot: SoccerBotFoot.LEFT, joined: '2025-07-01', contractExpires: '2030-06-30', - marketValue: 2500000, + marketValue: 2700000, country: { databaseName: 'Gambia', code2: SoccerBotCountryCode2.GM, @@ -2321,22 +2899,71 @@ export const TEAM_DATA: SoccerBotResponse = { } }, { - id: '552059', - name: 'Lukas Vorlicky', - jerseyNumber: 22, + id: '421758', + name: 'Danijel Sturm', + jerseyNumber: 10, position: SoccerBotPositionGroup.ATTACKER, - birthdate: '2002-01-18', - height: 186, + birthdate: '1999-01-04', + height: 182, foot: SoccerBotFoot.RIGHT, - joined: '2024-07-01', - contractExpires: '2027-06-30', - marketValue: 500000, + joined: '2026-07-01', + contractExpires: '2030-06-30', + marketValue: 2500000, + country: { + databaseName: 'Slovenia', + code2: SoccerBotCountryCode2.SI, + code3: SoccerBotCountryCode3.SVN + } + }, + { + id: '985844', + name: 'Emmanuel Ayaosi', + jerseyNumber: 20, + position: SoccerBotPositionGroup.ATTACKER, + birthdate: '2004-10-28', + foot: SoccerBotFoot.RIGHT, + joined: '2026-07-01', + contractExpires: '2030-06-30', + marketValue: 2000000, + country: { + databaseName: 'Nigeria', + code2: SoccerBotCountryCode2.NG, + code3: SoccerBotCountryCode3.NGA + } + }, + { + id: '995525', + name: 'Pavel Kacor', + position: SoccerBotPositionGroup.ATTACKER, + birthdate: '2006-09-12', + height: 181, + foot: SoccerBotFoot.RIGHT, + joined: '2026-07-01', + contractExpires: '2030-06-30', + marketValue: 2000000, country: { databaseName: 'Czech Republic', code2: SoccerBotCountryCode2.CZ, code3: SoccerBotCountryCode3.CZE } }, + { + id: '1157676', + name: 'Adonija Ouanda', + jerseyNumber: 18, + position: SoccerBotPositionGroup.ATTACKER, + birthdate: '2005-04-30', + height: 180, + foot: SoccerBotFoot.RIGHT, + joined: '2026-01-16', + contractExpires: '2030-12-31', + marketValue: 600000, + country: { + databaseName: 'Canada', + code2: SoccerBotCountryCode2.CA, + code3: SoccerBotCountryCode3.CAN + } + }, { id: '108416', name: 'Ivan Schranz', @@ -2346,30 +2973,14 @@ export const TEAM_DATA: SoccerBotResponse = { height: 185, foot: SoccerBotFoot.RIGHT, joined: '2021-07-01', - contractExpires: '2026-06-30', - marketValue: 1000000, + contractExpires: '2027-12-31', + marketValue: 600000, country: { databaseName: 'Slovakia', code2: SoccerBotCountryCode2.SK, code3: SoccerBotCountryCode3.SVK } }, - { - id: '820611', - name: 'Filip Horsky', - position: SoccerBotPositionGroup.ATTACKER, - birthdate: '2003-05-09', - height: 185, - foot: SoccerBotFoot.RIGHT, - joined: '2023-07-01', - contractExpires: '2027-06-30', - marketValue: 250000, - country: { - databaseName: 'Czech Republic', - code2: SoccerBotCountryCode2.CZ, - code3: SoccerBotCountryCode3.CZE - } - }, { id: '405855', name: 'Mojmír Chytil', @@ -2377,9 +2988,10 @@ export const TEAM_DATA: SoccerBotResponse = { position: SoccerBotPositionGroup.ATTACKER, birthdate: '1999-04-29', height: 187, + foot: SoccerBotFoot.RIGHT, joined: '2023-07-01', - contractExpires: '2027-06-30', - marketValue: 3500000, + contractExpires: '2029-06-30', + marketValue: 4000000, country: { databaseName: 'Czech Republic', code2: SoccerBotCountryCode2.CZ, @@ -2396,29 +3008,12 @@ export const TEAM_DATA: SoccerBotResponse = { foot: SoccerBotFoot.RIGHT, joined: '2024-07-03', contractExpires: '2027-06-30', - marketValue: 3000000, + marketValue: 2700000, country: { databaseName: 'Czech Republic', code2: SoccerBotCountryCode2.CZ, code3: SoccerBotCountryCode3.CZE } - }, - { - id: '446573', - name: 'Erik Prekop', - jerseyNumber: 31, - position: SoccerBotPositionGroup.ATTACKER, - birthdate: '1997-10-08', - height: 185, - foot: SoccerBotFoot.LEFT, - joined: '2025-09-02', - contractExpires: '2028-06-30', - marketValue: 1000000, - country: { - databaseName: 'Slovakia', - code2: SoccerBotCountryCode2.SK, - code3: SoccerBotCountryCode3.SVK - } } ] }; From 898fd6d5091d62ae1e807023050dafe394dbe173 Mon Sep 17 00:00:00 2001 From: Celtian Date: Tue, 21 Jul 2026 23:07:55 +0200 Subject: [PATCH 09/12] fix(soccerway): soccerway fixed --- README.md | 14 +- demo.ts | 12 +- src/clients/soccerway/index.ts | 101 +- src/helpers/date/index.ts | 5 +- src/helpers/position/index.ts | 4 +- test/client/soccerway.spec.ts | 60 +- test/helpers/country.spec.ts | 5 + test/helpers/date.spec.ts | 1 + test/helpers/position.spec.ts | 1 + test/mocks/soccerway/league.ts | 5414 ++++++++++++--------------- test/mocks/soccerway/player.ts | 5046 ++++++++++++-------------- test/mocks/soccerway/team.ts | 6217 ++++++++++++++++++-------------- 12 files changed, 8260 insertions(+), 8620 deletions(-) diff --git a/README.md b/README.md index b6096b6..af1ca80 100644 --- a/README.md +++ b/README.md @@ -35,9 +35,19 @@ _Type this into your ts file._ ```terminal import { soccerway, transfermarkt, fotbalunas, eurofotbal, sportnet } from 'soccerbot'; -console.log(soccerway.teamUrl('533')); // show url +console.log(soccerway.leagueUrl('czech-republic/chance-liga/standings/bNFMkskm')); // show url -soccerway.team('533') +soccerway.league('czech-republic/chance-liga/standings/bNFMkskm') + .then(res => console.log(res)); + +console.log(soccerway.teamUrl('slavia-prague/viXGgnyB')); // show url + +soccerway.team('slavia-prague/viXGgnyB') + .then(res => console.log(res)); + +console.log(soccerway.playerUrl('kolar-ondrej/xfBGcS1U')); // show url + +soccerway.player('kolar-ondrej/xfBGcS1U') .then(res => console.log(res)); console.log(transfermarkt.teamUrl('62')); // show url diff --git a/demo.ts b/demo.ts index 5e584ac..e003104 100644 --- a/demo.ts +++ b/demo.ts @@ -18,14 +18,14 @@ const transfermarktDemo = async (): Promise => { const soccerwayDemo = async (): Promise => { console.log('⚽⚽⚽ Soccerway demo ⚽⚽⚽'); - console.log(soccerway.leagueUrl('r59164', '20202021')); // CZE-1 - season 2020 - 2021 - console.log(await soccerway.league('r59164', '20202021')); + console.log(soccerway.leagueUrl('czech-republic/chance-liga/standings/bNFMkskm')); // CZE-1 + console.log(await soccerway.league('czech-republic/chance-liga/standings/bNFMkskm')); - console.log(soccerway.teamUrl('533')); // Slavia Prague - current season - console.log(await soccerway.team('533')); + console.log(soccerway.teamUrl('slavia-prague/viXGgnyB')); // Slavia Prague - current season + console.log(await soccerway.team('slavia-prague/viXGgnyB')); - console.log(soccerway.playerUrl('193498')); // player - console.log(await soccerway.player('193498')); + console.log(soccerway.playerUrl('kolar-ondrej/xfBGcS1U')); // Ondrej Kolar + console.log(await soccerway.player('kolar-ondrej/xfBGcS1U')); }; const fotbalunasDemo = async (): Promise => { diff --git a/src/clients/soccerway/index.ts b/src/clients/soccerway/index.ts index 1cadd0a..7283ca4 100644 --- a/src/clients/soccerway/index.ts +++ b/src/clients/soccerway/index.ts @@ -1,10 +1,10 @@ import parse from 'node-html-parser'; -import { coerceCountry, coerceDate, coerceFoot, coercePositionGroup, sleep } from '../../helpers'; -import { coerceHeight, coerceJerseyNumber, coerceMinutesPlayed, coerceWeight } from '../../helpers/number'; +import { coerceCountry, coerceDate, coercePositionGroup, sleep } from '../../helpers'; +import { coerceJerseyNumber, coerceMinutesPlayed } from '../../helpers/number'; import { SoccerBotPlayer, SoccerBotProvider, SoccerBotResponse, SoccerBotTeam } from '../../shared/interfaces'; import { SoccerBotClient, UserAgents } from '../shared'; -const BASE_URL = 'https://int.soccerway.com'; +const BASE_URL = 'https://www.soccerway.com'; export class SoccerBotSoccerwayClient extends SoccerBotClient { protected userAgents: UserAgents[] = [ @@ -20,46 +20,61 @@ export class SoccerBotSoccerwayClient extends SoccerBotClient { super(); } - public leagueUrl(id: string, season: string): string { - if (!id || !season) { + public leagueUrl(id: string): string { + if (!id) { return undefined; } - return `${BASE_URL}/national/country-slug/team-slug/${season}/regular-season/${id}/tables/`; + return `${BASE_URL}/${id}/standings/overall/`; } public teamUrl(id: string): string { if (!id) { return undefined; } - return `${BASE_URL}/teams/country-slug/team-slug/${id}/squad/`; + return `${BASE_URL}/team/${id}/squad/`; } public playerUrl(id: string): string { if (!id) { return undefined; } - return `${BASE_URL}/players/player-slug/${id}/`; + return `${BASE_URL}/player/${id}/`; } - public async league(id: string, season: string): Promise> { + public async league(id: string): Promise> { try { - const url = this.leagueUrl(id, season); - const html = parse(await this.fetchPage(url)); - const items = html.querySelectorAll('table[data-round_id].detailed-table > tbody > tr'); - const list: SoccerBotTeam[] = []; - for (const item of items) { - const link = item.querySelector('td.text.team.large-link > a'); - list.push({ - id: link - .getAttribute('href') - .trim() - .match(/^(.*)\/(?\d+)(\/)?$/).groups.id, - name: link.text.trim() - }); + const page = await this.fetchPage(this.leagueUrl(id)); + const feed = page.match(/data:\s*`(?SA÷[^`]+)`/s)?.groups?.data; + if (!feed) { + throw new Error('Soccerway league feed was not found'); + } + + const teams = new Map(); + for (const event of feed.split('¬~AA÷').slice(1)) { + const fields = new Map(); + for (const field of event.split('¬')) { + const separator = field.indexOf('÷'); + if (separator > 0) { + fields.set(field.slice(0, separator), field.slice(separator + 1)); + } + } + + for (const [idKey, nameKey, slugKey] of [ + ['PX', 'AE', 'WU'], + ['PY', 'AF', 'WV'] + ]) { + const teamId = fields.get(idKey); + const name = fields.get(nameKey); + const slug = fields.get(slugKey); + if (teamId && name && slug && !teams.has(teamId)) { + teams.set(teamId, { id: `${slug}/${teamId}`, name }); + } + } } + return { ok: true, - data: list + data: [...teams.values()] }; } catch (error) { return { @@ -72,16 +87,18 @@ export class SoccerBotSoccerwayClient extends SoccerBotClient { public async team(id: string): Promise> { try { const html = parse(await this.fetchPage(this.teamUrl(id))); - const items = html.querySelectorAll('table[data-season_id] > tbody > tr'); + const items = html.querySelectorAll('#overall-all-table .lineupTable__row'); const list: SoccerBotPlayer[] = []; for (const item of items) { - const link = item.querySelector('td.name.large-link > a'); + const link = item.querySelector('.lineupTable__cell--name'); const id = link .getAttribute('href') .trim() - .match(/^(.*)\/(?\d+)(\/)?$/).groups.id; - const jerseyNumber = coerceJerseyNumber(item.querySelector('td.shirtnumber')?.text?.trim()); - const minutesPlayed = coerceMinutesPlayed(item.querySelector('td.game-minutes')?.text?.trim()); + .match(/^\/player\/(?[^/]+\/[^/]+)\/?$/).groups.id; + const jerseyNumber = coerceJerseyNumber(item.querySelector('.lineupTable__cell--jersey')?.text?.trim()); + const minutesPlayed = coerceMinutesPlayed( + item.querySelector('.lineupTable__cell--minutesPlayed')?.text?.trim() + ); await sleep(this.sleepMs); // sleep for a moment because of rare limit const player = await this.player(id); list.push({ @@ -107,28 +124,24 @@ export class SoccerBotSoccerwayClient extends SoccerBotClient { try { const url = this.playerUrl(id); const html = parse(await this.fetchPage(url)); - const data = html.querySelector('.block_player_passport > div > div > div.yui-u.first > div.clearfix'); - const firstName = data.querySelector('[data-first_name="first_name"]')?.text?.trim(); - const lastName = data.querySelector('[data-last_name="last_name"]')?.text?.trim(); + const data = html.querySelector('#player-profile-heading'); + const name = data.querySelector('h2')?.text?.trim(); + const [firstName, ...lastNameParts] = name.split(/\s+/); + const lastName = lastNameParts.join(' '); + const age = data + .querySelectorAll('.playerInfoItem') + .find((item) => item.text.trim().startsWith('Age:')) + ?.text?.trim(); return { ok: true, data: { id, - name: `${firstName} ${lastName}`, + name, firstName, lastName, - country: coerceCountry( - data.querySelector('[data-nationality="nationality"]')?.text?.trim(), - SoccerBotProvider.SOCCERWAY - ), - birthdate: coerceDate( - data.querySelector('[data-date_of_birth="date_of_birth"]')?.text?.trim(), - SoccerBotProvider.SOCCERWAY - ), - position: coercePositionGroup(data.querySelector('[data-position="position"]')?.text?.trim()), - height: coerceHeight(data.querySelector('[data-height="height"]')?.text?.trim()), - weight: coerceWeight(data.querySelector('[data-weight="weight"]')?.text?.trim()), - foot: coerceFoot(data.querySelector('[data-foot="foot"]')?.text?.trim()) + country: coerceCountry(data.querySelector('[itemprop="name"]')?.text?.trim(), SoccerBotProvider.SOCCERWAY), + birthdate: coerceDate(age, SoccerBotProvider.SOCCERWAY), + position: coercePositionGroup(data.querySelector('.playerTeam > span')?.text?.trim()) } }; } catch (error) { diff --git a/src/helpers/date/index.ts b/src/helpers/date/index.ts index 2fbef9a..3b7a6ee 100644 --- a/src/helpers/date/index.ts +++ b/src/helpers/date/index.ts @@ -58,7 +58,10 @@ export const coerceDate = (date: string, type: SoccerBotProvider): string => { return corceDateByRegExp(date, regExp, MONTH_NUMBER); case SoccerBotProvider.SOCCERWAY: regExp = new RegExp('(?\\d{1,2})\\s(?(' + Object.keys(MONTH_LONG).join('|') + '))\\s(?\\d{4})'); - return corceDateByRegExp(date, regExp, MONTH_LONG); + return ( + corceDateByRegExp(date, regExp, MONTH_LONG) || + corceDateByRegExp(date, new RegExp('(?\\d{1,2})\\.(?\\d{1,2})\\.(?\\d{4})'), MONTH_NUMBER) + ); case SoccerBotProvider.EUROFOTBAL: regExp = new RegExp('(?\\d{1,2}).(?\\d{1,2}).(?\\d{4})'); return corceDateByRegExp(date, regExp, MONTH_NUMBER); diff --git a/src/helpers/position/index.ts b/src/helpers/position/index.ts index a20f842..991b10d 100644 --- a/src/helpers/position/index.ts +++ b/src/helpers/position/index.ts @@ -20,7 +20,9 @@ export const coercePositionGroup = (position: string): SoccerBotPositionGroup => ].includes(position) ) { return SoccerBotPositionGroup.MIDFIELDER; - } else if (['Left Winger', 'Right Winger', 'Centre-Forward', 'Attacker', 'Útočník', 'Útočníci'].includes(position)) { + } else if ( + ['Left Winger', 'Right Winger', 'Centre-Forward', 'Forward', 'Attacker', 'Útočník', 'Útočníci'].includes(position) + ) { return SoccerBotPositionGroup.ATTACKER; } return undefined; diff --git a/test/client/soccerway.spec.ts b/test/client/soccerway.spec.ts index eb27521..f736ff4 100644 --- a/test/client/soccerway.spec.ts +++ b/test/client/soccerway.spec.ts @@ -11,31 +11,29 @@ describe('SoccerBotSoccerwayClient', () => { client = new SoccerBotSoccerwayClient(5); }); + afterEach(() => { + vi.restoreAllMocks(); + }); + describe('leagueUrl', () => { it('should return correct value', () => { - expect(client.leagueUrl('r59164', '20202021')).toEqual( - 'https://int.soccerway.com/national/country-slug/team-slug/20202021/regular-season/r59164/tables/' + expect(client.leagueUrl('czech-republic/chance-liga/standings/bNFMkskm')).toEqual( + 'https://www.soccerway.com/czech-republic/chance-liga/standings/bNFMkskm/standings/overall/' ); }); it('should return undefined', () => { - expect(client.leagueUrl(undefined, '20202021')).toEqual(undefined); - expect(client.leagueUrl('r59164', undefined)).toEqual(undefined); - expect(client.leagueUrl(undefined, undefined)).toEqual(undefined); - - expect(client.leagueUrl(null, '20202021')).toEqual(undefined); - expect(client.leagueUrl('r59164', null)).toEqual(undefined); - expect(client.leagueUrl(null, null)).toEqual(undefined); - - expect(client.leagueUrl('', '20202021')).toEqual(undefined); - expect(client.leagueUrl('r59164', '')).toEqual(undefined); - expect(client.leagueUrl('', '')).toEqual(undefined); + expect(client.leagueUrl(undefined)).toEqual(undefined); + expect(client.leagueUrl(null)).toEqual(undefined); + expect(client.leagueUrl('')).toEqual(undefined); }); }); describe('teamUrl', () => { it('should return correct value', () => { - expect(client.teamUrl('533')).toEqual('https://int.soccerway.com/teams/country-slug/team-slug/533/squad/'); + expect(client.teamUrl('slavia-prague/viXGgnyB')).toEqual( + 'https://www.soccerway.com/team/slavia-prague/viXGgnyB/squad/' + ); }); it('should return undefined', () => { @@ -47,7 +45,9 @@ describe('SoccerBotSoccerwayClient', () => { describe('playerUrl', () => { it('should return correct value', () => { - expect(client.playerUrl('193498')).toEqual('https://int.soccerway.com/players/player-slug/193498/'); + expect(client.playerUrl('kolar-ondrej/xfBGcS1U')).toEqual( + 'https://www.soccerway.com/player/kolar-ondrej/xfBGcS1U/' + ); }); it('should return undefined', () => { @@ -68,11 +68,21 @@ describe('SoccerBotSoccerwayClient', () => { }); it('should return league', async () => { - expect(await client.league('r59164', '20202021')).toEqual(LEAGUE_DATA); + const result = await client.league('czech-republic/chance-liga/standings/bNFMkskm'); + + expect(result).toEqual(LEAGUE_DATA); + expect(result.ok).toBe(true); + if (result.ok) { + expect(result.data).toHaveLength(16); + expect(new Set(result.data.map(({ id }) => id)).size).toBe(16); + expect(result.data).toContainEqual({ id: 'slavia-prague/viXGgnyB', name: 'Slavia Prague' }); + } }); }); describe('team', () => { + let handlePlayerSpy: ReturnType; + beforeEach(() => { const handleSpy = vi.spyOn(SoccerBotSoccerwayClient.prototype as any, 'fetchPage'); handleSpy.mockImplementation(() => { @@ -81,16 +91,24 @@ describe('SoccerBotSoccerwayClient', () => { }); }); - const handlePlayerSpy = vi.spyOn(SoccerBotSoccerwayClient.prototype as any, 'player'); - handlePlayerSpy.mockImplementation(() => { + handlePlayerSpy = vi.spyOn(SoccerBotSoccerwayClient.prototype as any, 'player'); + handlePlayerSpy.mockImplementation((id: string) => { return new Promise((resolve) => { - resolve(PLAYER_DATA); + resolve({ + ok: true, + data: { id } + }); }); }); }); it('should return team', async () => { - expect(await client.team('533')).toEqual(TEAM_DATA); + expect(await client.team('slavia-prague/viXGgnyB')).toEqual(TEAM_DATA); + expect(handlePlayerSpy).toHaveBeenCalledTimes(48); + expect(handlePlayerSpy).toHaveBeenCalledWith('kolar-ondrej/xfBGcS1U'); + if (TEAM_DATA.ok) { + expect(handlePlayerSpy.mock.calls.map(([id]) => id)).toEqual(TEAM_DATA.data.map(({ id }) => id)); + } }); }); @@ -105,7 +123,7 @@ describe('SoccerBotSoccerwayClient', () => { }); it('should return player', async () => { - expect(await client.player('193498')).toEqual(PLAYER_DATA); + expect(await client.player('kolar-ondrej/xfBGcS1U')).toEqual(PLAYER_DATA); }); }); }); diff --git a/test/helpers/country.spec.ts b/test/helpers/country.spec.ts index c3d22d8..b3f1677 100644 --- a/test/helpers/country.spec.ts +++ b/test/helpers/country.spec.ts @@ -26,6 +26,11 @@ describe('coerceCountry', () => { code2: SoccerBotCountryCode2.AF, code3: SoccerBotCountryCode3.AFG }); + expect(coerceCountry('Czech Republic', SoccerBotProvider.SOCCERWAY)).toEqual({ + databaseName: 'Czech Republic', + code2: SoccerBotCountryCode2.CZ, + code3: SoccerBotCountryCode3.CZE + }); }); it('should return undefined', () => { diff --git a/test/helpers/date.spec.ts b/test/helpers/date.spec.ts index e646013..846753a 100644 --- a/test/helpers/date.spec.ts +++ b/test/helpers/date.spec.ts @@ -19,6 +19,7 @@ describe('coerceDate', () => { describe('soccerway', () => { it('should return correct value', () => { expect(coerceDate('4 March 1993', SoccerBotProvider.SOCCERWAY)).toEqual('1993-03-04'); + expect(coerceDate('Age: 31 (17.10.1994)', SoccerBotProvider.SOCCERWAY)).toEqual('1994-10-17'); }); it('should return undefined', () => { diff --git a/test/helpers/position.spec.ts b/test/helpers/position.spec.ts index 7fe1794..11faebb 100644 --- a/test/helpers/position.spec.ts +++ b/test/helpers/position.spec.ts @@ -34,6 +34,7 @@ describe('coercePositionGroup', () => { expect(coercePositionGroup('Left Winger')).toEqual(SoccerBotPositionGroup.ATTACKER); expect(coercePositionGroup('Right Winger')).toEqual(SoccerBotPositionGroup.ATTACKER); expect(coercePositionGroup('Centre-Forward')).toEqual(SoccerBotPositionGroup.ATTACKER); + expect(coercePositionGroup('Forward')).toEqual(SoccerBotPositionGroup.ATTACKER); expect(coercePositionGroup('Attacker')).toEqual(SoccerBotPositionGroup.ATTACKER); expect(coercePositionGroup('Útočník')).toEqual(SoccerBotPositionGroup.ATTACKER); expect(coercePositionGroup('Útočníci')).toEqual(SoccerBotPositionGroup.ATTACKER); diff --git a/test/mocks/soccerway/league.ts b/test/mocks/soccerway/league.ts index 7dc1e37..5037e02 100644 --- a/test/mocks/soccerway/league.ts +++ b/test/mocks/soccerway/league.ts @@ -1,3310 +1,2506 @@ import { SoccerBotResponse, SoccerBotTeam } from '../../../src/shared/interfaces'; -export const LEAGUE_HTML = ` - +export const LEAGUE_HTML = ` - - - Tables - Czech Liga - Czech Republic - Results, fixtures, tables and news - Soccerway - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + Chance Liga standings, Czech Republic | Soccerway + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + }, false); - - -
    - - +
    +
    +
    +

    Chance Liga standings

    +
    - -
    - -
    - + +
  • + +
  • +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • + + + + + + + +
    +
    + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + AD +
    - +
    + + France gouvernement +

    Les jeux d’argent et de hasard peuvent être dangereux : pertes d’argent, conflits familiaux, addiction…

    +

    Retrouvez nos conseils sur www.joueurs-info-service.fr (09-74-75-13-13, appel non surtaxé)

    +
    + + +
    +
    + + + + +

    18+ | Erlaubtes Glücksspiel gemäß der Whitelist | Suchtrisiken | Hilfe unter buwei.de

    +
    + + + const handleCountryLegalClassNames = (geoIp) => { + document.querySelectorAll(".gambling--" + "DE").forEach((element) => { + element.classList.remove("gambling--hidden"); + }); + document.body.classList.add("legal" + "DE"); - - - - - - - - - -
    +
    + + + + +

    18+. Verantwortungsbewusst wetten.

    +
    + + + if (!["FR"].includes(geoIp)) { + return; + } - - - - - + if (bocReviveWrapper.contains(document.getElementById("zoneContainer-detail_box_over_content"))) { + bocReviveWrapper.classList.add("fixed"); + } + } - + bocReviveWrapper && mo.observe(bocReviveWrapper, { childList: true}); + bocReviveWrapper && ro.observe(bocReviveWrapper); + +
    +
    + +

    18+ Ministério da Fazenda adverte: Aposta não é investimento.

    +
    + + -
    - -
    -
    -

    Czech Liga

    + bocReviveWrapper && mo.observe(bocReviveWrapper, { childList: true}); + bocReviveWrapper && ro.observe(bocReviveWrapper); + + +
    + + + + +

    21+ Участь в азартних іграх може викликати ігрову залежність. Дотримуйтеся правил (принципів) відповідальної гри

    +
    + + -
    + const setGamblingIndent = (bannerHeight = 0) => { + if (bannerHeight) { + gambleStyle.removeProperty('--marginTop-noBoc'); + gambleStyle.setProperty('--top-stickyIndent', bannerHeight + "px"); + } else { + gambleStyle.setProperty('--marginTop-noBoc', '5px'); + gambleStyle.removeProperty('--top-stickyIndent'); + } + } -
    -
    + const handleCountryLegalClassNames = (geoIp) => { + document.querySelectorAll(".gambling--" + "UA").forEach((element) => { + element.classList.remove("gambling--hidden"); + }); + document.body.classList.add("legal" + "UA"); -
    -
    -
    -
    -
    -
    -

    - Czech Republic -

    -
    -
    -
    -
    - -
    + if (!["FR"].includes(geoIp)) { + return; + } -
    -
    -
    + if (bocReviveWrapper.contains(document.getElementById("zoneContainer-detail_box_over_content"))) { + bocReviveWrapper.classList.add("fixed"); + } + } + cjs.Api.loader.get("geoIpResolver").call(function(geoIp) { + if (geoIp === "UA") { + handleCountryLegalClassNames(geoIp); + } else { + document.querySelectorAll(".gambling--" + "UA").forEach((element) => { + element.classList.add("gambling--noReservedSpace"); + }); + } + }); -
    - -
    - + bocReviveWrapper && mo.observe(bocReviveWrapper, { childList: true}); + bocReviveWrapper && ro.observe(bocReviveWrapper); + + +
    +
    + +
    +
    Chance Liga
    +
    +
    2026/2027
    -
    - -
    -
    - -
    +
    + -
    - - - -
    -
    - -
    - - - - - - - - - - - - -
    - - - -
    - -
    - - -
    - - - - -
    - - -
    - - - - - - -
    -
    -

    - - Tables -

    - - - -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    # TeamMPWDLFADPLast 5 matchesH2H
    1 - 2016405812+4652 - D - W - D - W - W - - -
    2 - 2014244324+1944 - W - W - W - L - W - - -
    3 - Previous rank: 4 - 2012443918+2140 - W - W - W - D - W - - -
    4 - Previous rank: 3 - 2112363625+1139 - W - L - D - L - L - - -
    5 - 2110653219+1336 - W - D - W - D - W - - -
    6 - Previous rank: 8 - 2110473826+1234 - W - W - D - L - W - - -
    7 - Previous rank: 9 - 219482128-731 - L - W - L - W - W - - -
    8 - Previous rank: 10 - 207942923+630 - W - D - L - D - W - - -
    9 - Previous rank: 6 - 218672621+530 - D - L - W - L - L - - -
    10 - Previous rank: 7 - 217952525+030 - D - L - D - W - D - - -
    11 - 206772431-725 - D - L - W - D - L - - -
    12 - 216692327-424 - D - L - D - W - W - - -
    13 - 2064102029-922 - W - L - L - D - L - - -
    14 - 2154122042-2219 - D - D - L - L - D - - -
    15 - 2135131635-1914 - L - L - D - L - W - - -
    16 - 2027112236-1413 - L - D - D - D - L - - -
    17 - 2026121640-2412 - L - D - D - L - L - - -
    18 - 2126131340-2712 - L - W - D - L - L - - -
    - -
    -
    -
    -
    - UEFA Champions League Qualifiers -
    -
    -
    -
    - UEFA Europa League Qualifiers -
    -
    -
    -
    - Relegation -
    -
    -
    -
    -
    - - -
    - - - - -
    -
    -
    - - -
    - - - -
    - -
    - - - - -
    -
    - - - -
    -
    -
    - -
    - -
    - -
    - -
    - - -
    -
    - - -
    - - -
    - -
    - -
    - -
    - -
    -
    -

    - - Tables - -

    - - - - -
    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + +
    + + +
    #TeamMPDP
    126+3662
    225+2149
    325
    + + + + +
    +
    +
    +
    + +
    + +
    + +
    + + + +

    21+ | COMPETENT REGULATOR EEEP | RISK OF ADDICTION & LOSS OF PROPERTY | KETHEA HELPLINE: 210 9237777 | PLAY RESPONSIBLY & SAFELY |

    +
    + +
    +
    + + France gouvernement +

    Les jeux d’argent et de hasard peuvent être dangereux : pertes d’argent, conflits familiaux, addiction…

    +

    Retrouvez nos conseils sur www.joueurs-info-service.fr (09-74-75-13-13, appel non surtaxé)

    +
    + + +
    +
    + + + + +

    18+ | Erlaubtes Glücksspiel gemäß der Whitelist | Suchtrisiken | Hilfe unter buwei.de

    +
    + + +
    +
    + + + + +

    18+. Verantwortungsbewusst wetten.

    +
    + + +
    +
    + +

    18+ Ministério da Fazenda adverte: Aposta não é investimento.

    +
    + + +
    +
    + + + + +

    21+ Участь в азартних іграх може викликати ігрову залежність. Дотримуйтеся правил (принципів) відповідальної гри

    +
    + + + const handleCountryLegalClassNames = (geoIp) => { + document.querySelectorAll(".gambling--" + "UA").forEach((element) => { + element.classList.remove("gambling--hidden"); + }); + document.body.classList.add("legal" + "UA"); -
    - -
    + bocReviveWrapper && mo.observe(bocReviveWrapper, { childList: true}); + bocReviveWrapper && ro.observe(bocReviveWrapper); + + +
    +
    +
    Do you want to withdraw your consent to display betting ads?
    + + Yes, change settings +
    -
    - + if (legalAgeConfirmation === "1" && legalAgeRevokeBox !== "1") { + document.getElementsByClassName("legalAgeRevokeBox")[0].classList.remove("legalAgeRevokeBox--hidden"); + extraContent.setProperty('--marginBottom', 0); + } +
    - - -
    - -
    - +
    +
    + - +
    +
    +
    +
    Soccerway.com
    +
    + +
    +
    +
    +
    +
    Mobile applications
    +
    + Our mobile app is optimized for your phone. Download it for free! +
    +
    + +
    +
    - + -
    - -
    + + -
    +
    +
    + +
    -
    - -
    - + +
    + + + -
    + + observer.unobserve(lazyElement); + } + }) + } + + const observer = new IntersectionObserver(lazyLoadCallback, options); + targetElements.forEach((element) => { + observer.observe(element); + }) + })(); + + - - - - - - - - - - - - - + + + + - - + + + `; export const LEAGUE_DATA: SoccerBotResponse = { ok: true, data: [ - { id: '533', name: 'Slavia Praha' }, - { id: '532', name: 'Sparta Praha' }, - { id: '2986', name: 'Slovácko' }, - { id: '540', name: 'Jablonec' }, - { id: '537', name: 'Slovan Liberec' }, - { id: '546', name: 'Viktoria Plzen' }, - { id: '11132', name: 'Pardubice' }, - { id: '534', name: 'Sigma Olomouc' }, - { id: '531', name: 'Baník Ostrava' }, - { id: '538', name: 'České Budějovice' }, - { id: '2784', name: 'Karviná' }, - { id: '550', name: 'Bohemians 1905' }, - { id: '536', name: 'Zlín' }, - { id: '539', name: 'Teplice' }, - { id: '543', name: 'Zbrojovka Brno' }, - { id: '548', name: 'Mladá Boleslav' }, - { id: '541', name: 'Příbram' }, - { id: '542', name: 'Opava' } + { + id: 'plzen/2LA0e86b', + name: 'Plzen' + }, + { + id: 'liberec/4bp6yRjU', + name: 'Liberec' + }, + { + id: 'teplice/r9XWmtLq', + name: 'Teplice' + }, + { + id: 'bohemians-1905/fuXqHnxa', + name: 'Bohemians' + }, + { + id: 'zlin/C09N1Ikd', + name: 'Zlin' + }, + { + id: 'ostrava/lI6ddlih', + name: 'Ostrava' + }, + { + id: 'brno/4d5TT6i5', + name: 'Brno' + }, + { + id: 'sparta-prague/6qA358jH', + name: 'Sparta Prague' + }, + { + id: 'slavia-prague/viXGgnyB', + name: 'Slavia Prague' + }, + { + id: 'slovacko/MNEDyOlF', + name: 'Slovacko' + }, + { + id: 'jablonec/CM8ySpMH', + name: 'Jablonec' + }, + { + id: 'sigma-olomouc/drA4fSL4', + name: 'Sigma Olomouc' + }, + { + id: 'hradec-kralove/vFXjbHms', + name: 'Hradec Kralove' + }, + { + id: 'fk-pardubice/Ys4YYBPn', + name: 'FK Pardubice' + }, + { + id: 'artis-brno/zHLktbZ1', + name: 'Artis Brno' + }, + { + id: 'mlada-boleslav/0f7GpAMu', + name: 'Mlada Boleslav' + } ] }; diff --git a/test/mocks/soccerway/player.ts b/test/mocks/soccerway/player.ts index 531b8e8..f70ce92 100644 --- a/test/mocks/soccerway/player.ts +++ b/test/mocks/soccerway/player.ts @@ -1,3057 +1,2511 @@ import { SoccerBotCountryCode2, SoccerBotCountryCode3 } from '../../../src/shared/countries'; -import { - SoccerBotFoot, - SoccerBotPlayer, - SoccerBotPositionGroup, - SoccerBotResponse -} from '../../../src/shared/interfaces'; - -export const PLAYER_HTML = ` - - - - - Czech Republic - O. Kolář - Profile with news, career statistics and history - Soccerway - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +import { SoccerBotPlayer, SoccerBotPositionGroup, SoccerBotResponse } from '../../../src/shared/interfaces'; - - - - +export const PLAYER_HTML = ` + + + + Ondrej Kolar Stats | Soccerway + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + }, false); - - -
    - - - -
    - -
    - +
    +
    +
    +

    Ondrej Kolar (Slavia Prague) Stats

    +
    - - - +
    - - - - - - - -
    - +
    + Skip to main content + +
    + + + + +
      +
    • + + + + +
    • +
    • + +
    • +
    • +
      + +
      +
    • +
    • +
      + +
      +
    - -
    -
    - - - -
    - -
    - - -
    - - -
    - -
    - - - -
    - - - - - +
    + + + + + - -
    -
    -
    - - -
    - +
    +
    +
    +
    + +
    +
    +
    +
    +
    + Advertisement
    - -
    -
    -

    O. Kolář

    - - -
    - -
    -
    -
    -
    -
    - -
    -
    - +
    -
    -
    -
    -
    -

    - - Passport - -

    - - - - -
    -
    -
    -
    -
    -
    -
    -
    First name
    -
    Ondřej
    -
    Last name
    -
    Kolář
    -
    Nationality
    -
    Czech Republic
    -
    Date of birth
    -
    17 October 1994
    -
    Age
    -
    26
    -
    Country of birth
    -
    Czech Republic
    -
    Place of birth
    -
    Liberec
    -
    Position
    -
    Goalkeeper
    -
    Height
    -
    193 cm
    -
    Weight
    -
    81 kg
    -
    Foot
    -
    Right
    -
    -
    -
    -
    - Ondřej  Kolář -
    -
    -
    + -
    -
    + sideMenuItem.href = config.url; + sideMenuItem.textContent = config.description; -
    + sideMenuItem.target = config.targetBlank ? "_blank" : "_self"; + sideMenuItem.setAttribute("data-analytics-affil_partner", prepareLinkForAnalytics(config.url)); + } -
    - -
    + function updateIcon(config, sideMenu) { + const defaultConfig = null; + const sideMenuIcon = sideMenu.querySelector(".leftMenu__head .leftMenu__icon"); -
    -
    -

    - - Career - -

    + if (!sideMenuIcon) return; + if (defaultConfig) { + sideMenuIcon.classList.remove("leftMenu__icon--" + defaultConfig.icon); + } + sideMenuIcon.classList.add("leftMenu__icon--" + config.icon); + } + function updateAdvertisement(config, sideMenu) { + const sideMenuAdvertisement = sideMenu.querySelector(".leftMenu__advertisement"); + if (!sideMenuAdvertisement) return; -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    SeasonTeamCompMinutes playedAppearancesLineupsSubstitute inSubstitute outSubstitutes on benchGoalYellow cardYellow 2nd/RCRed card
    2020/2021Slavia PrahaCZL180020200001000
    2019/2020Slavia PrahaCZL279031310010000
    2018/2019Slavia PrahaCZL297033330000100
    2017/2018Slavia PrahaCZL125714140100100
    2017/2018Slovan LiberecCZL117013130030100
    2016/2017Slovan LiberecCZL0000010000
    2016/2017VarnsdorfFNL630770000100
    2016/2017Slovan LiberecCZL0000010000
    2015/2016Slovan LiberecCZL0000010000
    2014/2015Slovan LiberecCZL144016160040100
    2013/2014Slovan LiberecCZL90110000000
    2012/2013VarnsdorfFNL90110000000
    2012/2013Slovan LiberecCZL0000020000
    Total1223713613601131500
    - - - -
    -
    -
    - -
    -
    -
    - -
    - + const geoIpWithSubdivision = geoIp + '-' + _cjs.dic.get("utilEnviroment").getGeoIpSubdivisionCode0(); + const geoIpConfig = {"GH":{"url":"https://refpa86887.com/L?tag=s_5284249m_5435c_&site=5284249&ad=5435","icon":"betting","title":"300%<\\/SPAN> Welcome bonus up to 5,500 GHS","description":"Get Your Bonus","targetBlank":true,"isAdvertisementLabelVisible":true,"isBetting":true},"IN":{"url":"https://refpa86887.com/L?tag=s_5284384m_355c_&site=5284384&ad=355","icon":"betting","title":"120% Bonus up to 33,000 INR","description":"Claim Now","targetBlank":true,"isAdvertisementLabelVisible":true,"isBetting":true},"KR":{"url":"https://refpa86887.com/L?tag=s_5284388m_355c_&site=5284388&ad=355","icon":"betting","title":"첫 입금 시 100% 보너스 최대 60만원!","description":"지급 받기","targetBlank":true,"isAdvertisementLabelVisible":true,"isBetting":true},"MY":{"url":"https://refpa86887.com/L?tag=s_5284452m_355c_&site=5284452&ad=355","icon":"betting","title":"Bônus de boas-vindas de 100% até R$1,200","description":"Ganha o teu bônus!","targetBlank":true,"isAdvertisementLabelVisible":true,"isBetting":true},"SG":{"url":"https://refpa86887.com/L?tag=s_5284399m_5435c_&site=5284399&ad=5435&r=promotions/1st","icon":"betting","title":"Bonus awaits you!","description":"Deposit doubled up to S$ 388!","targetBlank":true,"isAdvertisementLabelVisible":true,"isBetting":true},"TR":{"url":"https://refpa86887.com/L?tag=s_5284402m_5435c_&site=5284402&ad=5435","icon":"betting","title":"Birinci depozitə 680 AZN<\\/SPAN> bonus!","description":"Başla","targetBlank":true,"isAdvertisementLabelVisible":true,"isBetting":true}}[geoIpWithSubdivision] || {"GH":{"url":"https://refpa86887.com/L?tag=s_5284249m_5435c_&site=5284249&ad=5435","icon":"betting","title":"300%<\\/SPAN> Welcome bonus up to 5,500 GHS","description":"Get Your Bonus","targetBlank":true,"isAdvertisementLabelVisible":true,"isBetting":true},"IN":{"url":"https://refpa86887.com/L?tag=s_5284384m_355c_&site=5284384&ad=355","icon":"betting","title":"120% Bonus up to 33,000 INR","description":"Claim Now","targetBlank":true,"isAdvertisementLabelVisible":true,"isBetting":true},"KR":{"url":"https://refpa86887.com/L?tag=s_5284388m_355c_&site=5284388&ad=355","icon":"betting","title":"첫 입금 시 100% 보너스 최대 60만원!","description":"지급 받기","targetBlank":true,"isAdvertisementLabelVisible":true,"isBetting":true},"MY":{"url":"https://refpa86887.com/L?tag=s_5284452m_355c_&site=5284452&ad=355","icon":"betting","title":"Bônus de boas-vindas de 100% até R$1,200","description":"Ganha o teu bônus!","targetBlank":true,"isAdvertisementLabelVisible":true,"isBetting":true},"SG":{"url":"https://refpa86887.com/L?tag=s_5284399m_5435c_&site=5284399&ad=5435&r=promotions/1st","icon":"betting","title":"Bonus awaits you!","description":"Deposit doubled up to S$ 388!","targetBlank":true,"isAdvertisementLabelVisible":true,"isBetting":true},"TR":{"url":"https://refpa86887.com/L?tag=s_5284402m_5435c_&site=5284402&ad=5435","icon":"betting","title":"Birinci depozitə 680 AZN<\\/SPAN> bonus!","description":"Başla","targetBlank":true,"isAdvertisementLabelVisible":true,"isBetting":true}}[geoIp]; + if (!geoIpConfig || + (geoIpConfig.isBetting && window.localStorage.getItem("legal_age_confirmation") !== "1") + ) { + updateSideMenuLoading(sideMenus); + return; + } -
    -
    -

    - - Trophies - -

    - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Club Domestic
    - Czech Liga - Winner2x - 2019/2020, - 2018/2019 -
    - - Runner-up1x - 2017/2018 -
    - Cup - Winner3x - 2018/2019, - 2017/2018, - 2014/2015 -
    - Super Cup - Runner-up2x - 2015/2016, - 2012/2013 -
    - -
    + sideMenus.forEach(sideMenu => { + updateSideMenu(geoIpConfig, sideMenu); + sideMenu.classList.remove("sideMenu__loading"); + }); + }); + }); + +
    +
    +
    +
    + +
    +
    +
    +
    + AD
    -
    -
    + +
    + + France gouvernement +

    Les jeux d’argent et de hasard peuvent être dangereux : pertes d’argent, conflits familiaux, addiction…

    +

    Retrouvez nos conseils sur www.joueurs-info-service.fr (09-74-75-13-13, appel non surtaxé)

    +
    + + -
    -
    - -
    - - - -
    -
    -

    - - Matches of O. Kolář - -

    - - - - -
    - -
    - - - -
    - - - - - - - - - - - - - - - - - - - - - + +
    + + + + +

    18+ | Erlaubtes Glücksspiel gemäß der Whitelist | Suchtrisiken | Hilfe unter buwei.de

    +
    + + +
    +
    + + + + +

    18+. Verantwortungsbewusst wetten.

    +
    + + +
    +
    + +

    18+ Ministério da Fazenda adverte: Aposta não é investimento.

    +
    + + +
    +
    + + + + +

    21+ Участь в азартних іграх може викликати ігрову залежність. Дотримуйтеся правил (принципів) відповідальної гри

    +
    + + +
    +
    +
    Ondrej Kolar

    Ondrej Kolar

    Goalkeeper (Slavia Prague)
    Age: 31 (17.10.1994)
    Market value: €45k
    Contract expires: 30.06.2027
    +
    Last Matches

    Career

    Season
    Team
    Competition
    SV%
    CS
    2025/2026
    6.4
    1
    100.0
    0
    0
    0
    2024/2025
    6.3
    1
    -
    0
    0
    0
    2024/2025
    7
    69.0
    2
    0
    0
    2023/2024
    6.3
    6
    57.1
    3
    1
    0
    2022/2023
    6.6
    25
    69.0
    10
    1
    0
    2021/2022
    15
    60.0
    6
    1
    0
    2020/2021
    31
    76.5
    16
    0
    0
    2019/2020
    31
    84.6
    23
    0
    0
    2018/2019
    33
    69.6
    15
    1
    0
    2017/2018
    14
    76.0
    7
    1
    0
    2017/2018
    13
    78.6
    6
    1
    0
    2016/2017
    7
    -
    -
    1
    0
    2014/2015
    16
    74.7
    4
    1
    0
    2013/2014
    2
    88.9
    0
    0
    0
    2012/2013
    1
    -
    -
    0
    0
    Total
    254
    -
    92
    9
    0
    Season
    Team
    Competition
    SV%
    CS
    2023/2024
    1
    -
    -
    0
    0
    2022/2023
    7.2
    4
    86.7
    3
    0
    0
    2020/2021
    3
    100.0
    3
    1
    0
    2019/2020
    1
    60.0
    0
    0
    0
    2018/2019
    2
    100.0
    2
    1
    0
    2017/2018
    3
    90.9
    2
    0
    0
    2017/2018
    1
    -
    -
    0
    0
    2014/2015
    1
    100.0
    1
    0
    0
    Total
    16
    -
    11
    2
    0
    Season
    Team
    Competition
    SV%
    CS
    2023/2024
    7.1
    4
    72.7
    2
    0
    0
    2020/2021
    6.3
    12
    50.0
    4
    2
    0
    2019/2020
    7.0
    8
    76.2
    3
    1
    0
    2018/2019
    6.4
    12
    60.0
    5
    1
    0
    Total
    51
    -
    18
    4
    0
    Season
    Team
    Competition
    SV%
    CS
    Total
    2
    -
    0
    0
    0

    Transfers

    Date
    From
    Type
    To
    Fee
    22.01.2018
    Transfer
    Transfer
    Transfer
    (22.01.2018)
    26.02.2017
    Return from loan
    Return from loan
    Return from loan
    (26.02.2017)
    08.09.2016
    Loan
    Loan
    Loan
    (08.09.2016)

    Injury History

    FromUntilInjury
    10.07.202508.08.2025Health problems
    03.03.202416.05.2024Wrist Injury
    05.09.202210.09.2022Back Injury

    News

    NOTE: Older historical data may be incomplete, but we are in the process of updating our database.
    - -
    + +
    + +
    + - + + - - - +

    Each match page features essential insights such as line-ups, goal scorers, cards, substitutions, possession stats, xG data, and more. From club form to individual player ratings, Soccerway lets fans track their favourite teams and players across domestic and international competitions.

    + +
    + Show more +
    + + +
    + + + +

    21+ | COMPETENT REGULATOR EEEP | RISK OF ADDICTION & LOSS OF PROPERTY | KETHEA HELPLINE: 210 9237777 | PLAY RESPONSIBLY & SAFELY |

    +
    -
    + + +
    + + France gouvernement +

    Les jeux d’argent et de hasard peuvent être dangereux : pertes d’argent, conflits familiaux, addiction…

    +

    Retrouvez nos conseils sur www.joueurs-info-service.fr (09-74-75-13-13, appel non surtaxé)

    +
    + + +
    +
    + + + + +

    18+ | Erlaubtes Glücksspiel gemäß der Whitelist | Suchtrisiken | Hilfe unter buwei.de

    +
    + + +
    +
    + + + + +

    18+. Verantwortungsbewusst wetten.

    +
    + + +
    +
    + +

    18+ Ministério da Fazenda adverte: Aposta não é investimento.

    +
    + + + setGamblingIndent(entry.target.clientHeight); + }) + const ro = new ResizeObserver(([entry]) => { + if (!entry?.contentRect || !isTargetSticky(entry.target)) { + setGamblingIndent(); + return; + } - - - - - - - + cjs.Api.loader.get("geoIpResolver").call(function(geoIp) { + if (geoIp === "BR") { + handleCountryLegalClassNames(geoIp); + } else { + document.querySelectorAll(".gambling--" + "BR").forEach((element) => { + element.classList.add("gambling--noReservedSpace"); + }); + } + }); + bocReviveWrapper && mo.observe(bocReviveWrapper, { childList: true}); + bocReviveWrapper && ro.observe(bocReviveWrapper); + +
    +
    + + + + +

    21+ Участь в азартних іграх може викликати ігрову залежність. Дотримуйтеся правил (принципів) відповідальної гри

    +
    + + - + const ro = new ResizeObserver(([entry]) => { + if (!entry?.contentRect || !isTargetSticky(entry.target)) { + setGamblingIndent(); + return; + } - + setGamblingIndent(entry.contentRect.height); + }); -
    -
    -

    - - Slavia Praha Squad - -

    - - - - -
    -
    -
    DateCompetitionHome teamScore/TimeAway teamEvents 
    - View events -
    - - 3 - 3 + - - - - Slavia Praha - - + +
    - - Karviná - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    GoalkeeperAge
    26 
    35 
    24 
     
    DefenderAge
    30 
    29 
    27 
    27 
    26 
    33 
    20 
     
    MidfielderAge
    20 
    22 
    23 
    24 
    22 
    28 
    25 
    24 
    26 
    27 
    32 
     
    AttackerAge
    27 
    24 
    19 
    30 
    28 
    17 
     
    CoachAge
     
     
    - -
    -
    -
    - -
    -
    - -
    - -
    - -
    - -
    - -
    - + +
    +
    +
    Do you want to withdraw your consent to display betting ads?
    + + Yes, change settings +
    -
    +
    - +
    - + + observer.unobserve(lazyElement); + } + }) + } + + const observer = new IntersectionObserver(lazyLoadCallback, options); + targetElements.forEach((element) => { + observer.observe(element); + }) + })(); + + - - - - - - - - - - - - - + + + + - - + + + `; export const PLAYER_DATA: SoccerBotResponse = { ok: true, data: { - id: '193498', - name: 'Ondřej Kolář', - firstName: 'Ondřej', - lastName: 'Kolář', + id: 'kolar-ondrej/xfBGcS1U', + name: 'Ondrej Kolar', + firstName: 'Ondrej', + lastName: 'Kolar', country: { code2: SoccerBotCountryCode2.CZ, code3: SoccerBotCountryCode3.CZE, databaseName: 'Czech Republic' }, birthdate: '1994-10-17', - position: SoccerBotPositionGroup.GOALKEEPER, - height: 193, - weight: 81, - foot: SoccerBotFoot.RIGHT + position: SoccerBotPositionGroup.GOALKEEPER } }; diff --git a/test/mocks/soccerway/team.ts b/test/mocks/soccerway/team.ts index 780f18f..80af2d8 100644 --- a/test/mocks/soccerway/team.ts +++ b/test/mocks/soccerway/team.ts @@ -1,2754 +1,3616 @@ import { SoccerBotPlayer, SoccerBotResponse } from '../../../src/shared/interfaces'; -import { PLAYER_DATA } from './player'; -export const TEAM_HTML = ` - +export const TEAM_HTML = ` - - - Czech Republic - SK Slavia Praha - Results, fixtures, squad, statistics, photos, videos and news - Soccerway - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + Soccerway + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    - - - - function postMessageEventHandler(event) { - var msgIsString = typeof event.data === 'string'; - var json = {}; +
    +
    +
    +

    Soccerway

    +
    +
    - try { - if (msgIsString) { - json = JSON.parse(event.data); - } else { - json = event.data; - } - } catch (ignore) {} - - var payload = json.__tcfapiCall; - - if (payload) { - window.__tcfapi( - payload.command, - payload.version, - function(retValue, success) { - var returnMsg = { - __tcfapiReturn: { - returnValue: retValue, - success: success, - callId: payload.callId - } - }; - if (msgIsString) { - returnMsg = JSON.stringify(returnMsg); + - var uspStubFunction = function() { - var arg = arguments; - if (typeof window.__uspapi !== uspStubFunction) { - setTimeout(function() { - if (typeof window.__uspapi !== 'undefined') { - window.__uspapi.apply(window.__uspapi, arg); - } - }, 500); - } - }; - - var checkIfUspIsReady = function() { - uspTries++; - if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit) { - console.warn('USP is not accessible'); - } else { - clearInterval(uspInterval); - } - }; +
    - if (typeof window.__uspapi === 'undefined') { - window.__uspapi = uspStubFunction; - var uspInterval = setInterval(checkIfUspIsReady, 6000); - } -})(); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    +
    +
    + Skip to main content + +
    + + + + +
      +
    • + + + + +
    • +
    • + +
    • +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    + + + + + + +
    +
    + +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + AD +
    - - +
    - +
    + + France gouvernement +

    Les jeux d’argent et de hasard peuvent être dangereux : pertes d’argent, conflits familiaux, addiction…

    +

    Retrouvez nos conseils sur www.joueurs-info-service.fr (09-74-75-13-13, appel non surtaxé)

    +
    + + + const ro = new ResizeObserver(([entry]) => { + if (!entry?.contentRect || !isTargetSticky(entry.target)) { + setGamblingIndent(); + return; + } -
    - - +
    +
    + + + + +

    18+ | Erlaubtes Glücksspiel gemäß der Whitelist | Suchtrisiken | Hilfe unter buwei.de

    +
    + + - + setGamblingIndent(entry.target.clientHeight); + }) -
    - -
    - + if (!["FR"].includes(geoIp)) { + return; + } -
    - + +
    + + + + +

    18+. Verantwortungsbewusst wetten.

    +
    + + + setGamblingIndent(entry.target.clientHeight); + }) - +
    +
    + +

    18+ Ministério da Fazenda adverte: Aposta não é investimento.

    +
    + + +
    +
    + + + + +

    21+ Участь в азартних іграх може викликати ігрову залежність. Дотримуйтеся правил (принципів) відповідальної гри

    +
    + + - - - - - - - - -
    -
    - - - - - + const handleCountryLegalClassNames = (geoIp) => { + document.querySelectorAll(".gambling--" + "UA").forEach((element) => { + element.classList.remove("gambling--hidden"); + }); + document.body.classList.add("legal" + "UA"); -
    -
    + if (!["FR"].includes(geoIp)) { + return; + } -
    +
    +
    + +
    +
    Slavia Prague
    +
    - - -
    - - -
    +
    +
    + Stadium: Fortuna Arena + (Prague) +
    +
    + Capacity: 19 370 +
    +
    - - - -
    - -
    - - -
    - - -
    - +
    - - - -
    + +
    + + + +

    21+ | COMPETENT REGULATOR EEEP | RISK OF ADDICTION & LOSS OF PROPERTY | KETHEA HELPLINE: 210 9237777 | PLAY RESPONSIBLY & SAFELY |

    +
    + +
    +
    + + France gouvernement +

    Les jeux d’argent et de hasard peuvent être dangereux : pertes d’argent, conflits familiaux, addiction…

    +

    Retrouvez nos conseils sur www.joueurs-info-service.fr (09-74-75-13-13, appel non surtaxé)

    +
    + + -
    -
    -
    -

    - - Squad - -

    + const setGamblingIndent = (bannerHeight = 0) => { + if (bannerHeight) { + gambleStyle.removeProperty('--marginTop-noBoc'); + gambleStyle.setProperty('--top-stickyIndent', bannerHeight + "px"); + } else { + gambleStyle.setProperty('--marginTop-noBoc', '5px'); + gambleStyle.removeProperty('--top-stickyIndent'); + } + } + const handleCountryLegalClassNames = (geoIp) => { + document.querySelectorAll(".gambling--" + "FR").forEach((element) => { + element.classList.remove("gambling--hidden"); + }); + document.body.classList.add("legal" + "FR"); + if (!["FR"].includes(geoIp)) { + return; + } + if (bocReviveWrapper.contains(document.getElementById("zoneContainer-detail_box_over_content"))) { + bocReviveWrapper.classList.add("fixed"); + } + } -
    - -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Name AgePMinutes playedAppearancesLineupsSubstitute inSubstitute outSubstitutes on benchGoalAssistYellow cardYellow 2nd/RCRed card
    1 261800202000011000
    13 2400000000000
    31 35000001900000
    2 275128712101100
    3 2780513945522100
    4 292123210100000
    6 201035121202301100
    15 331633191810150300
    18 301441181621230200
    30 26721010500000
    5 235087612101200
    7 2713921917213345100
    9 251157171257563200
    17 241335181536339200
    19 22955151145610300
    20 20652111100000
    23 265958715104000
    25 242305231300100
    27 327221761121102200
    28 28980161156614400
    32 225031761161211100
    10 28101010200000
    11 303391331021130200
    12 1910411412272112400
    16 24104915132133112200
    29 2721010100000
     1700000000000
    - -

    Coach

    - - - - - - - - -
    -
    - - + cjs.Api.loader.get("geoIpResolver").call(function(geoIp) { + if (geoIp === "FR") { + handleCountryLegalClassNames(geoIp); + } else { + document.querySelectorAll(".gambling--" + "FR").forEach((element) => { + element.classList.add("gambling--noReservedSpace"); + }); + } + }); -
    -
    -
    - + +
    + + + + +

    18+ | Erlaubtes Glücksspiel gemäß der Whitelist | Suchtrisiken | Hilfe unter buwei.de

    +
    + + -
    -
    + const setGamblingIndent = (bannerHeight = 0) => { + if (bannerHeight) { + gambleStyle.removeProperty('--marginTop-noBoc'); + gambleStyle.setProperty('--top-stickyIndent', bannerHeight + "px"); + } else { + gambleStyle.setProperty('--marginTop-noBoc', '5px'); + gambleStyle.removeProperty('--top-stickyIndent'); + } + } + const handleCountryLegalClassNames = (geoIp) => { + document.querySelectorAll(".gambling--" + "DE").forEach((element) => { + element.classList.remove("gambling--hidden"); + }); + document.body.classList.add("legal" + "DE"); + if (!["FR"].includes(geoIp)) { + return; + } + if (bocReviveWrapper.contains(document.getElementById("zoneContainer-detail_box_over_content"))) { + bocReviveWrapper.classList.add("fixed"); + } + } -
    -
    -
    -
    + cjs.Api.loader.get("geoIpResolver").call(function(geoIp) { + if (geoIp === "DE") { + handleCountryLegalClassNames(geoIp); + } else { + document.querySelectorAll(".gambling--" + "DE").forEach((element) => { + element.classList.add("gambling--noReservedSpace"); + }); + } + }); -
    -
    -
    - + +
    + + + + +

    18+. Verantwortungsbewusst wetten.

    +
    + + -
    + const handleCountryLegalClassNames = (geoIp) => { + document.querySelectorAll(".gambling--" + "AT").forEach((element) => { + element.classList.remove("gambling--hidden"); + }); + document.body.classList.add("legal" + "AT"); + if (!["FR"].includes(geoIp)) { + return; + } -
    -
    + if (bocReviveWrapper.contains(document.getElementById("zoneContainer-detail_box_over_content"))) { + bocReviveWrapper.classList.add("fixed"); + } + } + cjs.Api.loader.get("geoIpResolver").call(function(geoIp) { + if (geoIp === "AT") { + handleCountryLegalClassNames(geoIp); + } else { + document.querySelectorAll(".gambling--" + "AT").forEach((element) => { + element.classList.add("gambling--noReservedSpace"); + }); + } + }); + bocReviveWrapper && mo.observe(bocReviveWrapper, { childList: true}); + bocReviveWrapper && ro.observe(bocReviveWrapper); + + +
    + +

    18+ Ministério da Fazenda adverte: Aposta não é investimento.

    +
    + + -
    + const ro = new ResizeObserver(([entry]) => { + if (!entry?.contentRect || !isTargetSticky(entry.target)) { + setGamblingIndent(); + return; + } -
    + setGamblingIndent(entry.contentRect.height); + }); + const isTargetSticky = (element) => { + return ( + (element.classList.contains("isSticky") && !element.classList.contains("fixed") && window.innerWidth >= breakpoint) || + (element.classList.contains("isMobileSticky") && !element.classList.contains("fixed") && window.innerWidth < breakpoint) || + (element.querySelector(".zone--sticky") && !element.classList.contains("fixed")) + ) + } -
    -
    + const setGamblingIndent = (bannerHeight = 0) => { + if (bannerHeight) { + gambleStyle.removeProperty('--marginTop-noBoc'); + gambleStyle.setProperty('--top-stickyIndent', bannerHeight + "px"); + } else { + gambleStyle.setProperty('--marginTop-noBoc', '5px'); + gambleStyle.removeProperty('--top-stickyIndent'); + } + } -
    + const handleCountryLegalClassNames = (geoIp) => { + document.querySelectorAll(".gambling--" + "BR").forEach((element) => { + element.classList.remove("gambling--hidden"); + }); + document.body.classList.add("legal" + "BR"); + if (!["FR"].includes(geoIp)) { + return; + } + if (bocReviveWrapper.contains(document.getElementById("zoneContainer-detail_box_over_content"))) { + bocReviveWrapper.classList.add("fixed"); + } + } + cjs.Api.loader.get("geoIpResolver").call(function(geoIp) { + if (geoIp === "BR") { + handleCountryLegalClassNames(geoIp); + } else { + document.querySelectorAll(".gambling--" + "BR").forEach((element) => { + element.classList.add("gambling--noReservedSpace"); + }); + } + }); -
    - -
    - -
    - -
    + +
    + + + + +

    21+ Участь в азартних іграх може викликати ігрову залежність. Дотримуйтеся правил (принципів) відповідальної гри

    +
    + + +
    +
    +
    +
    Do you want to withdraw your consent to display betting ads?
    + + Yes, change settings +
    -
    - +
    +
    + + observer.unobserve(lazyElement); + } + }) + } + + const observer = new IntersectionObserver(lazyLoadCallback, options); + targetElements.forEach((element) => { + observer.observe(element); + }) + })(); + + - - - - - - - - - - - - - + + + + - - + + + `; @@ -2756,166 +3618,241 @@ export const TEAM_DATA: SoccerBotResponse = { ok: true, data: [ { - id: '193498', + id: 'domchak-nazar/tblus7kT', + jerseyNumber: 41, + minutesPlayed: 0 + }, + { + id: 'kolar-ondrej/xfBGcS1U', jerseyNumber: 1, - minutesPlayed: 1800, - ...PLAYER_DATA.data + minutesPlayed: 0 }, { - id: '320083', - jerseyNumber: 13, - minutesPlayed: 0, - ...PLAYER_DATA.data + id: 'markovic-jakub/O8gQFEIi', + jerseyNumber: 35, + minutesPlayed: 0 }, { - id: '46100', - jerseyNumber: 31, - minutesPlayed: 0, - ...PLAYER_DATA.data + id: 'rezek-adam/Q5jtiynf', + jerseyNumber: 29, + minutesPlayed: 0 + }, + { + id: 'stanek-jindrich/xjKD0WQe', + jerseyNumber: 36, + minutesPlayed: 0 + }, + { + id: 'camara-sahmkou/8UoWc3zo', + jerseyNumber: 49, + minutesPlayed: 0 }, { - id: '302572', + id: 'chaloupek-stepan/W4rJpOaK', jerseyNumber: 2, - minutesPlayed: 512, - ...PLAYER_DATA.data + minutesPlayed: 0 }, { - id: '230375', - jerseyNumber: 3, - minutesPlayed: 805, - ...PLAYER_DATA.data + id: 'halinsky-denis/vFaA2SCd', + minutesPlayed: 0 }, { - id: '295384', + id: 'hashioka-daiki/6RiEbJDq', jerseyNumber: 4, - minutesPlayed: 212, - ...PLAYER_DATA.data + minutesPlayed: 0 + }, + { + id: 'holes-tomas/GU2BC13A', + jerseyNumber: 3, + minutesPlayed: 0 }, { - id: '574460', + id: 'isaiah-chinedu/CnKKbzKi', jerseyNumber: 6, - minutesPlayed: 1035, - ...PLAYER_DATA.data + minutesPlayed: 0 }, { - id: '15014', - jerseyNumber: 15, - minutesPlayed: 1633, - ...PLAYER_DATA.data + id: 'isife-samuel/hE35fb2L', + jerseyNumber: 14, + minutesPlayed: 0 }, { - id: '104810', - jerseyNumber: 18, - minutesPlayed: 1441, - ...PLAYER_DATA.data + id: 'javorcek-dominik/AyWIpa9s', + jerseyNumber: 37, + minutesPlayed: 0 }, { - id: '215360', - jerseyNumber: 30, - minutesPlayed: 72, - ...PLAYER_DATA.data + id: 'jurasek-david/AF2Br9IA', + jerseyNumber: 39, + minutesPlayed: 0 }, { - id: '454794', - jerseyNumber: 5, - minutesPlayed: 508, - ...PLAYER_DATA.data + id: 'kolisek-jakub/2sYP96UT', + jerseyNumber: 46, + minutesPlayed: 0 }, { - id: '130620', - jerseyNumber: 7, - minutesPlayed: 1392, - ...PLAYER_DATA.data + id: 'konecny-mikulas/6k1TE4WB', + jerseyNumber: 32, + minutesPlayed: 0 + }, + { + id: 'ubiak-oskar/dSZBOc9N', + jerseyNumber: 8, + minutesPlayed: 0 }, { - id: '274253', + id: 'labik-albert/bk9GfZKI', jerseyNumber: 9, - minutesPlayed: 1157, - ...PLAYER_DATA.data + minutesPlayed: 0 }, { - id: '317272', - jerseyNumber: 17, - minutesPlayed: 1335, - ...PLAYER_DATA.data + id: 'mbodji-youssoupha/tCDJqaVP', + jerseyNumber: 12, + minutesPlayed: 0 + }, + { + id: 'n-guessan-ange-caumenan/lU0M9sZL', + jerseyNumber: 6, + minutesPlayed: 0 + }, + { + id: 'ogbu-igoh/QkyQ3g8t', + jerseyNumber: 5, + minutesPlayed: 0 + }, + { + id: 'pitak-elias/jJMMI7lp', + jerseyNumber: 41, + minutesPlayed: 0 + }, + { + id: 'vlcek-tomas/ADkQ5Ufp', + jerseyNumber: 27, + minutesPlayed: 0 + }, + { + id: 'zima-david/8tVYh60A', + jerseyNumber: 4, + minutesPlayed: 0 + }, + { + id: 'ayaosi-emmanuel/67pmTmsN', + jerseyNumber: 14, + minutesPlayed: 0 + }, + { + id: 'diakite-toumani/O8K3UOLO', + jerseyNumber: 22, + minutesPlayed: 0 }, { - id: '424653', + id: 'oscar-dorley/jBZtJ5Rl', jerseyNumber: 19, - minutesPlayed: 955, - ...PLAYER_DATA.data + minutesPlayed: 0 + }, + { + id: 'doudera-david/pr09Lnhk', + jerseyNumber: 21, + minutesPlayed: 0 + }, + { + id: 'jelinek-tomas/pf9ysQF9', + jerseyNumber: 16, + minutesPlayed: 0 }, { - id: '616791', + id: 'kante-hamidou/0bNiT0Nc', + jerseyNumber: 3, + minutesPlayed: 0 + }, + { + id: 'michez-simion/KGxtsdTs', + jerseyNumber: 25, + minutesPlayed: 0 + }, + { + id: 'moses-david/vkbT7lsC', + jerseyNumber: 16, + minutesPlayed: 0 + }, + { + id: 'nowak-wiktor/2VeRfUpi', + jerseyNumber: 30, + minutesPlayed: 0 + }, + { + id: 'okonkwo-izuchukwu/880f5XCQ', + jerseyNumber: 18, + minutesPlayed: 0 + }, + { + id: 'provod-lukas/82A7cLmi', + jerseyNumber: 17, + minutesPlayed: 0 + }, + { + id: 'rajnoha-adam/OWQJmzTL', jerseyNumber: 20, - minutesPlayed: 65, - ...PLAYER_DATA.data + minutesPlayed: 0 }, { - id: '272749', + id: 'sadilek-michal/zJiFbA7r', jerseyNumber: 23, - minutesPlayed: 595, - ...PLAYER_DATA.data + minutesPlayed: 0 }, { - id: '317332', - jerseyNumber: 25, - minutesPlayed: 230, - ...PLAYER_DATA.data + id: 'suleiman-mubarak/ltctozq4', + jerseyNumber: 45, + minutesPlayed: 0 }, { - id: '334600', - jerseyNumber: 27, - minutesPlayed: 722, - ...PLAYER_DATA.data + id: 'teah-divine/A7u2ln9H', + jerseyNumber: 22, + minutesPlayed: 0 }, { - id: '254900', - jerseyNumber: 28, - minutesPlayed: 980, - ...PLAYER_DATA.data + id: 'chory-tomas/EgGI8vM6', + jerseyNumber: 25, + minutesPlayed: 0 + }, + { + id: 'chytil-mojmir/dhSLF6tC', + jerseyNumber: 13, + minutesPlayed: 0 }, { - id: '377533', + id: 'kacor-pavel/hOjD2le2', jerseyNumber: 32, - minutesPlayed: 503, - ...PLAYER_DATA.data + minutesPlayed: 0 }, { - id: '194723', - jerseyNumber: 10, - minutesPlayed: 10, - ...PLAYER_DATA.data + id: 'kohout-dan/bqAt3j3S', + jerseyNumber: 43, + minutesPlayed: 0 }, { - id: '78177', - jerseyNumber: 11, - minutesPlayed: 339, - ...PLAYER_DATA.data + id: 'ouanda-adonija/IBoly1YC', + jerseyNumber: 27, + minutesPlayed: 0 }, { - id: '661602', - jerseyNumber: 12, - minutesPlayed: 1041, - ...PLAYER_DATA.data + id: 'sanyang-youssoupha/Ox0lejKQ', + jerseyNumber: 11, + minutesPlayed: 0 }, { - id: '424988', - jerseyNumber: 16, - minutesPlayed: 1049, - ...PLAYER_DATA.data + id: 'schranz-ivan/p0I1WZDo', + jerseyNumber: 26, + minutesPlayed: 0 }, { - id: '389879', - jerseyNumber: 29, - minutesPlayed: 2, - ...PLAYER_DATA.data + id: 'sturm-danijel/WS55wx0h', + jerseyNumber: 10, + minutesPlayed: 0 }, { - id: '632402', - jerseyNumber: undefined, - minutesPlayed: 0, - ...PLAYER_DATA.data + id: 'trpisovsky-jindrich/beL2Sxh4' } ] }; From 84b2dafbc768470ab8e53d5bb4100ef8708abbf1 Mon Sep 17 00:00:00 2001 From: Celtian Date: Tue, 21 Jul 2026 23:19:08 +0200 Subject: [PATCH 10/12] feat(eurofotbal): eurofotbal updated --- demo.ts | 4 +- src/clients/eurofotbal/index.ts | 2 +- test/client/eurofotbal.spec.ts | 62 +- test/mocks/eurofotbal/league.ts | 2087 +++++++++++++++++++++---------- test/mocks/eurofotbal/team.ts | 1243 ++++++++++-------- 5 files changed, 2192 insertions(+), 1206 deletions(-) diff --git a/demo.ts b/demo.ts index e003104..5045764 100644 --- a/demo.ts +++ b/demo.ts @@ -41,8 +41,8 @@ const fotbalunasDemo = async (): Promise => { const eurofotbalDemo = async (): Promise => { console.log('⚽⚽⚽ Eurofotbal demo ⚽⚽⚽'); - console.log(eurofotbal.leagueUrl('fortuna-liga-cz')); - console.log(await eurofotbal.league('fortuna-liga-cz')); + console.log(eurofotbal.leagueUrl('chance-liga')); + console.log(await eurofotbal.league('chance-liga')); console.log(eurofotbal.teamUrl('cesko/slavia-praha')); console.log(await eurofotbal.team('cesko/slavia-praha')); diff --git a/src/clients/eurofotbal/index.ts b/src/clients/eurofotbal/index.ts index c596df2..a27aa5c 100644 --- a/src/clients/eurofotbal/index.ts +++ b/src/clients/eurofotbal/index.ts @@ -17,7 +17,7 @@ export class SoccerBotEurofotbalClient extends SoccerBotClient { if (!id) { return undefined; } - return `${BASE_URL}/${id}`; + return `${BASE_URL}/${id}/tabulky/`; } public teamUrl(id: string): string { diff --git a/test/client/eurofotbal.spec.ts b/test/client/eurofotbal.spec.ts index a4e4d43..c751f16 100644 --- a/test/client/eurofotbal.spec.ts +++ b/test/client/eurofotbal.spec.ts @@ -1,5 +1,6 @@ import { vi } from 'vitest'; import { SoccerBotEurofotbalClient } from '../../src/clients/eurofotbal'; +import { LEAGUE_DATA, LEAGUE_HTML } from '../mocks/eurofotbal/league'; import { TEAM_DATA, TEAM_HTML } from '../mocks/eurofotbal/team'; describe('SoccerBotEurofotbalClient', () => { @@ -9,18 +10,67 @@ describe('SoccerBotEurofotbalClient', () => { client = new SoccerBotEurofotbalClient(); }); + afterEach(() => { + vi.restoreAllMocks(); + }); + + describe('leagueUrl', () => { + it('should return correct value', () => { + expect(client.leagueUrl('chance-liga')).toEqual('https://www.eurofotbal.cz/chance-liga/tabulky/'); + }); + + it('should return undefined', () => { + expect(client.leagueUrl(undefined)).toEqual(undefined); + expect(client.leagueUrl(null)).toEqual(undefined); + expect(client.leagueUrl('')).toEqual(undefined); + }); + }); + + describe('teamUrl', () => { + it('should return correct value', () => { + expect(client.teamUrl('cesko/slavia-praha')).toEqual( + 'https://www.eurofotbal.cz/kluby/cesko/slavia-praha/soupiska' + ); + }); + + it('should return undefined', () => { + expect(client.teamUrl(undefined)).toEqual(undefined); + expect(client.teamUrl(null)).toEqual(undefined); + expect(client.teamUrl('')).toEqual(undefined); + }); + }); + + describe('league', () => { + beforeEach(() => { + const handleSpy = vi.spyOn(SoccerBotEurofotbalClient.prototype as any, 'fetchPage'); + handleSpy.mockResolvedValue(LEAGUE_HTML); + }); + + it('should return league', async () => { + const result = await client.league('chance-liga'); + + expect(result).toEqual(LEAGUE_DATA); + if (result.ok) { + expect(result.data).toHaveLength(16); + expect(result.data).toContainEqual({ id: 'cesko/slavia-praha', name: 'Slavia Praha' }); + } + }); + }); + describe('team', () => { beforeEach(() => { const handleSpy = vi.spyOn(SoccerBotEurofotbalClient.prototype as any, 'fetchPage'); - handleSpy.mockImplementation(() => { - return new Promise((resolve) => { - resolve(TEAM_HTML); - }); - }); + handleSpy.mockResolvedValue(TEAM_HTML); }); it('should return team', async () => { - expect(await client.team('cesko/slavia-praha')).toEqual(TEAM_DATA); + const result = await client.team('cesko/slavia-praha'); + + expect(result).toEqual(TEAM_DATA); + if (result.ok) { + expect(result.data).toHaveLength(33); + expect(result.data).toContainEqual(expect.objectContaining({ id: 'ondrej-kolar-32017', name: 'Ondřej Kolář' })); + } }); }); }); diff --git a/test/mocks/eurofotbal/league.ts b/test/mocks/eurofotbal/league.ts index 4422d28..d9828cc 100644 --- a/test/mocks/eurofotbal/league.ts +++ b/test/mocks/eurofotbal/league.ts @@ -1,7 +1,6 @@ import { SoccerBotResponse, SoccerBotTeam } from '../../../src/shared/interfaces'; -export const LEAGUE_HTML = ` - +export const LEAGUE_HTML = ` @@ -9,8 +8,8 @@ export const LEAGUE_HTML = ` - FORTUNA:LIGA - Fotbal Česko - FORTUNA:LIGA: zprávy, výsledky, statistiky - + Česko - Chance Liga - tabulky + - - - - - - - + + + + + + + @@ -75,9 +65,11 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
    -
    +
    +
    +
    @@ -132,7 +124,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=