diff --git a/.zed/settings.json b/.zed/settings.json index ec9c977f..fd002a27 100644 --- a/.zed/settings.json +++ b/.zed/settings.json @@ -17,7 +17,7 @@ "configPath": "cfg/oxlint.config.ts", "disableNestedConfig": false, "fixKind": "safe_fix", - "run": "onSave", + "run": "onType", "unusedDisableDirectives": "deny" } } diff --git a/bun.lock b/bun.lock index 12d2b644..18fe1f35 100644 --- a/bun.lock +++ b/bun.lock @@ -8,7 +8,7 @@ "@mobily/ts-belt": "v4.0.0-rc.5", "@sentry/browser": "^10.47.0", "a11y-dialog": "^8.1.5", - "effect": "^4.0.0-beta.49", + "effect": "^4.0.0-beta.48", "lit-html": "^3.3.2", "purify-ts": "2.1.2", "ts-pattern": "^5.9.0", @@ -26,11 +26,11 @@ "@vitejs/plugin-legacy": "^8.0.1", "better-typescript-lib": "^2.12.0", "browserslist": "^4.28.2", - "caniuse-lite": "^1.0.30001788", + "caniuse-lite": "^1.0.30001787", "eslint": "^10.2.0", "eslint-plugin-functional": "^9.0.4", "eslint-plugin-jsx-a11y": "^6.10.2", - "eslint-plugin-oxlint": "^1.60.0", + "eslint-plugin-oxlint": "^1.59.0", "eslint-plugin-perfectionist": "^5.8.0", "eslint-plugin-sonarjs": "^4.0.2", "fdir": "^6.5.0", @@ -39,10 +39,10 @@ "knip": "^6.4.1", "lightningcss": "^1.32.0", "lightningcss-cli": "^1.32.0", - "oxlint": "^1.60.0", - "oxlint-tsgolint": "^0.21.0", + "oxlint": "^1.59.0", + "oxlint-tsgolint": "^0.20.0", "playwright": "^1.59.1", - "prettier": "^3.8.3", + "prettier": "^3.8.1", "prettier-plugin-pkg": "^0.22.1", "prettier-plugin-sh": "^0.18.1", "sass-embedded": "^1.99.0", @@ -53,7 +53,7 @@ "stylelint-declaration-block-no-ignored-properties": "^3.0.0", "stylelint-plugin-logical-css": "^2.1.0", "typescript": "6.0.2", - "typescript-eslint": "^8.58.2", + "typescript-eslint": "^8.58.1", "vite": "^8.0.8", "vite-tsconfig-paths": "^6.1.1", }, @@ -428,55 +428,55 @@ "@oxc-resolver/binding-win32-x64-msvc": ["@oxc-resolver/binding-win32-x64-msvc@11.19.1", "", { "os": "win32", "cpu": "x64" }, "sha512-6hIU3RQu45B+VNTY4Ru8ppFwjVS/S5qwYyGhBotmjxfEKk41I2DlGtRfGJndZ5+6lneE2pwloqunlOyZuX/XAw=="], - "@oxlint-tsgolint/darwin-arm64": ["@oxlint-tsgolint/darwin-arm64@0.21.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-P20j3MLqfwIT+94qGU3htC7dWp4pXGZW1p1p7FRUzu1aopq7c9nPCgf0W/WjktqQ57+iuTq9mbSlwWinl6+H1A=="], + "@oxlint-tsgolint/darwin-arm64": ["@oxlint-tsgolint/darwin-arm64@0.20.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-KKQcIHZHMxqpHUA1VXIbOG6chNCFkUWbQy6M+AFVtPKkA/3xAeJkJ3njoV66bfzwPHRcWQO+kcj5XqtbkjakoA=="], - "@oxlint-tsgolint/darwin-x64": ["@oxlint-tsgolint/darwin-x64@0.21.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-81TmmuBcPedEA0MwRmObuQuXnCprS1UiHQWGe7pseqNAJzUWXeAPrayqKTACX92VpruJI+yvY0XJrFp11PpcTA=="], + "@oxlint-tsgolint/darwin-x64": ["@oxlint-tsgolint/darwin-x64@0.20.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-7HeVMuclGfG+NLZi2ybY0T4fMI7/XxO/208rJk+zEIloKkVnlh11Wd241JMGwgNFXn+MLJbOqOfojDb2Dt4L1g=="], - "@oxlint-tsgolint/linux-arm64": ["@oxlint-tsgolint/linux-arm64@0.21.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-sbjBr6zDduX8rNO0PTjhf7VYLCPWqdijWiMPp8e10qu6Tam1GdaVLaLlX8QrNupTgglO1GvqqgY/jcacWL8a6g=="], + "@oxlint-tsgolint/linux-arm64": ["@oxlint-tsgolint/linux-arm64@0.20.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-zxhUwz+WSxE6oWlZLK2z2ps9yC6ebmgoYmjAl0Oa48+GqkZ56NVgo+wb8DURNv6xrggzHStQxqQxe3mK51HZag=="], - "@oxlint-tsgolint/linux-x64": ["@oxlint-tsgolint/linux-x64@0.21.0", "", { "os": "linux", "cpu": "x64" }, "sha512-jNrOcy53R5TJQfrK444Cm60bW9437xDoxPbm3AdvFSo/fhdFMllawc7uZC2Wzr+EAjTkW13K8R4QHzsUdBG9fQ=="], + "@oxlint-tsgolint/linux-x64": ["@oxlint-tsgolint/linux-x64@0.20.0", "", { "os": "linux", "cpu": "x64" }, "sha512-/1l6FnahC9im8PK+Ekkx/V3yetO/PzZnJegE2FXcv/iXEhbeVxP/ouiTYcUQu9shT1FWJCSNti1VJHH+21Y1dg=="], - "@oxlint-tsgolint/win32-arm64": ["@oxlint-tsgolint/win32-arm64@0.21.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-xWeRxJJILDE4b9UqHEWGBxcBc1TUS6zWHhxcyxTZMwf4q3wdKeu0OHYAcwLGJzoSjEIf6FTjyfPiRNil2oqsdg=="], + "@oxlint-tsgolint/win32-arm64": ["@oxlint-tsgolint/win32-arm64@0.20.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-oPZ5Yz8sVdo7P/5q+i3IKeix31eFZ55JAPa1+RGPoe9PoaYVsdMvR6Jvib6YtrqoJnFPlg3fjEjlEPL8VBKYJA=="], - "@oxlint-tsgolint/win32-x64": ["@oxlint-tsgolint/win32-x64@0.21.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Ob9AA9teI8ckPo1whV1smLr5NrqwgBv/8boDbK0YZG+fKgNGRwr1hBj1ORgFWOQaUBv+5njp5A0RAfJJjQ95QQ=="], + "@oxlint-tsgolint/win32-x64": ["@oxlint-tsgolint/win32-x64@0.20.0", "", { "os": "win32", "cpu": "x64" }, "sha512-4stx8RHj3SP9vQyRF/yZbz5igtPvYMEUR8CUoha4BVNZihi39DpCR8qkU7lpjB5Ga1DRMo2pHaA4bdTOMaY4mw=="], - "@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.60.0", "", { "os": "android", "cpu": "arm" }, "sha512-YdeJKaZckDQL1qa62a1aKq/goyq48aX3yOxaaWqWb4sau4Ee4IiLbamftNLU3zbePky6QsDj6thnSSzHRBjDfA=="], + "@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.59.0", "", { "os": "android", "cpu": "arm" }, "sha512-etYDw/UaEv936AQUd/CRMBVd+e+XuuU6wC+VzOv1STvsTyZenLChepLWqLtnyTTp4YMlM22ypzogDDwqYxv5cg=="], - "@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.60.0", "", { "os": "android", "cpu": "arm64" }, "sha512-7ANS7PpXCfq84xZQ8E5WPs14gwcuPcl+/8TFNXfpSu0CQBXz3cUo2fDpHT8v8HJN+Ut02eacvMAzTnc9s6X4tw=="], + "@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.59.0", "", { "os": "android", "cpu": "arm64" }, "sha512-TgLc7XVLKH2a4h8j3vn1MDjfK33i9MY60f/bKhRGWyVzbk5LCZ4X01VZG7iHrMmi5vYbAp8//Ponigx03CLsdw=="], - "@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.60.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-pJsgd9AfplLGBm1fIr25V6V14vMrayhx4uIQvlfH7jWs2SZwSrvi3TfgfJySB8T+hvyEH8K2zXljQiUnkgUnfQ=="], + "@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.59.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-DXyFPf5ZKldMLloRHx/B9fsxsiTQomaw7cmEW3YIJko2HgCh+GUhp9gGYwHrqlLJPsEe3dYj9JebjX92D3j3AA=="], - "@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.60.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-Ue1aXHX49ivwflKqGJc7zcd/LeLgbhaTcDCQStgx5x06AXgjEAZmvrlMuIkWd4AL4FHQe6QJ9f33z04Cg448VQ=="], + "@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.59.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-LgvrsdgVLX1qWqIEmNsSmMXJhpAWdtUQ0M+oR0CySwi+9IHWyOGuIL8w8+u/kbZNMyZr4WUyYB5i0+D+AKgkLg=="], - "@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.60.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-YCyQzsQtusQw+gNRW9rRTifSO+Dt/+dtCl2NHoDMZqJlRTEZ/Oht9YnuporI9yiTx7+cB+eqzX3MtHHVHGIWhg=="], + "@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.59.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-bOJhqX/ny4hrFuTPlyk8foSRx/vLRpxJh0jOOKN2NWW6FScXHPAA5rQbrwdQPcgGB5V8Ua51RS03fke8ssBcug=="], - "@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.60.0", "", { "os": "linux", "cpu": "arm" }, "sha512-c7dxM2Zksa45Qw16i2iGY3Fti2NirJ38FrsBsKw+qcJ0OtqTsBgKJLF0xV+yLG56UH01Z8WRPgsw31e0MoRoGQ=="], + "@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.59.0", "", { "os": "linux", "cpu": "arm" }, "sha512-vVUXxYMF9trXCsz4m9H6U0IjehosVHxBzVgJUxly1uz4W1PdDyicaBnpC0KRXsHYretLVe+uS9pJy8iM57Kujw=="], - "@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.60.0", "", { "os": "linux", "cpu": "arm" }, "sha512-ZWALoA42UYqBEP1Tbw9OWURgFGS1nWj2AAvLdY6ZcGx/Gj93qVCBKjcvwXMupZibYwFbi9s/rzqkZseb/6gVtQ=="], + "@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.59.0", "", { "os": "linux", "cpu": "arm" }, "sha512-TULQW8YBPGRWg5yZpFPL54HLOnJ3/HiX6VenDPi6YfxB/jlItwSMFh3/hCeSNbh+DAMaE1Py0j5MOaivHkI/9Q=="], - "@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.60.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-tpy+1w4p9hN5CicMCxqNy6ymfRtV5ayE573vFNjp1k1TN/qhLFgflveZoE/0++RlkHikBz2vY545NWm/hp7big=="], + "@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.59.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-Gt54Y4eqSgYJ90xipm24xeyaPV854706o/kiT8oZvUt3VDY7qqxdqyGqchMaujd87ib+/MXvnl9WkK8Cc1BExg=="], - "@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.60.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-eDYDXZGhQAXyn6GwtwiX/qcLS0HlOLPJ/+iiIY8RYr+3P8oKBmgKxADLlniL6FtWfE7pPk7IGN9/xvDEvDvFeg=="], + "@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.59.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-3CtsKp7NFB3OfqQzbuAecrY7GIZeiv7AD+xutU4tefVQzlfmTI7/ygWLrvkzsDEjTlMq41rYHxgsn6Yh8tybmA=="], - "@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.60.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-nxehly5XYBHUWI9VJX1bqCf9j/B43DaK/aS/T1fcxCpX3PA4Rm9BB54nPD1CKayT8xg6REN1ao+01hSRNgy8OA=="], + "@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.59.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-K0diOpT3ncDmOfl9I1HuvpEsAuTxkts0VYwIv/w6Xiy9CdwyPBVX88Ga9l8VlGgMrwBMnSY4xIvVlVY/fkQk7Q=="], - "@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.60.0", "", { "os": "linux", "cpu": "none" }, "sha512-j1qf/NaUfOWQutjeoooNG1Q0zsK0XGmSu1uDLq3cctquRF3j7t9Hxqf/76ehCc5GEUAanth2W4Fa+XT1RFg/nw=="], + "@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-xAU7+QDU6kTJJ7mJLOGgo7oOjtAtkKyFZ0Yjdb5cEo3DiCCPFLvyr08rWiQh6evZ7RiUTf+o65NY/bqttzJiQQ=="], - "@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.60.0", "", { "os": "linux", "cpu": "none" }, "sha512-YELKPRefQ/q/h3RUmeRfPCUhh2wBvgV1RyZ/F9M9u8cDyXsQW2ojv1DeWQTt466yczDITjZnIOg/s05pk7Ve2A=="], + "@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-KUmZmKlTTyauOnvUNVxK7G40sSSx0+w5l1UhaGsC6KPpOYHenx2oqJTnabmpLJicok7IC+3Y6fXAUOMyexaeJQ=="], - "@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.60.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-JkO3C6Gki7Y6h/MiIkFKvHFOz98/YWvQ4WYbK9DLXACMP2rjULzkeGyAzorJE5S1dzLQGFgeqvN779kSFwoV1g=="], + "@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.59.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-4usRxC8gS0PGdkHnRmwJt/4zrQNZyk6vL0trCxwZSsAKM+OxhB8nKiR+mhjdBbl8lbMh2gc3bZpNN/ik8c4c2A=="], - "@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.60.0", "", { "os": "linux", "cpu": "x64" }, "sha512-XjKHdFVCpZZZSWBCKyyqCq65s2AKXykMXkjLoKYODrD+f5toLhlwsMESscu8FbgnJQ4Y/dpR/zdazsahmgBJIA=="], + "@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.59.0", "", { "os": "linux", "cpu": "x64" }, "sha512-s/rNE2gDmbwAOOP493xk2X7M8LZfI1LJFSSW1+yanz3vuQCFPiHkx4GY+O1HuLUDtkzGlhtMrIcxxzyYLv308w=="], - "@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.60.0", "", { "os": "linux", "cpu": "x64" }, "sha512-js29ZWIuPhNWzY8NC7KoffEMEeWG105vbmm+8EOJsC+T/jHBiKIJEUF78+F/IrgEWMMP9N0kRND4Pp75+xAhKg=="], + "@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.59.0", "", { "os": "linux", "cpu": "x64" }, "sha512-+yYj1udJa2UvvIUmEm0IcKgc0UlPMgz0nsSTvkPL2y6n0uU5LgIHSwVu4AHhrve6j9BpVSoRksnz8c9QcvITJA=="], - "@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.60.0", "", { "os": "none", "cpu": "arm64" }, "sha512-H+PUITKHk04stFpWj3x3Kg08Afp/bcXSBi0EhasR5a0Vw7StXHTzdl655PUI0fB4qdh2Wsu6Dsi+3ACxPoyQnA=="], + "@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.59.0", "", { "os": "none", "cpu": "arm64" }, "sha512-bUplUb48LYsB3hHlQXP2ZMOenpieWoOyppLAnnAhuPag3MGPnt+7caxE3w/Vl9wpQsTA3gzLntQi9rxWrs7Xqg=="], - "@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.60.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-WA/yc7f7ZfCefBXVzNHn1Ztulb1EFwNBb4jMZ6pjML0zz6pHujlF3Q3jySluz3XHl/GNeMTntG1seUBWVMlMag=="], + "@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.59.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-/HLsLuz42rWl7h7ePdmMTpHm2HIDmPtcEMYgm5BBEHiEiuNOrzMaUpd2z7UnNni5LGN9obJy2YoAYBLXQwazrA=="], - "@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.60.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-33YxL1sqwYNZXtn3MD/4dno6s0xeedXOJlT1WohkVD565WvohClZUr7vwKdAk954n4xiEWJkewiCr+zLeq7AeA=="], + "@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.59.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-rUPy+JnanpPwV/aJCPnxAD1fW50+XPI0VkWr7f0vEbqcdsS8NpB24Rw6RsS7SdpFv8Dw+8ugCwao5nCFbqOUSg=="], - "@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.60.0", "", { "os": "win32", "cpu": "x64" }, "sha512-JOro4ZcfBLamJCyfURQmOQByoorgOdx3ZjAkSqnb/CyG/i+lN3KoV5LAgk5ZAW6DPq7/Cx7n23f8DuTWXTWgyQ=="], + "@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.59.0", "", { "os": "win32", "cpu": "x64" }, "sha512-xkE7puteDS/vUyRngLXW0t8WgdWoS/tfxXjhP/P7SMqPDx+hs44SpssO3h3qmTqECYEuXBUPzcAw5257Ka+ofA=="], "@parcel/watcher": ["@parcel/watcher@2.5.6", "", { "dependencies": { "detect-libc": "^2.0.3", "is-glob": "^4.0.3", "node-addon-api": "^7.0.0", "picomatch": "^4.0.3" }, "optionalDependencies": { "@parcel/watcher-android-arm64": "2.5.6", "@parcel/watcher-darwin-arm64": "2.5.6", "@parcel/watcher-darwin-x64": "2.5.6", "@parcel/watcher-freebsd-x64": "2.5.6", "@parcel/watcher-linux-arm-glibc": "2.5.6", "@parcel/watcher-linux-arm-musl": "2.5.6", "@parcel/watcher-linux-arm64-glibc": "2.5.6", "@parcel/watcher-linux-arm64-musl": "2.5.6", "@parcel/watcher-linux-x64-glibc": "2.5.6", "@parcel/watcher-linux-x64-musl": "2.5.6", "@parcel/watcher-win32-arm64": "2.5.6", "@parcel/watcher-win32-ia32": "2.5.6", "@parcel/watcher-win32-x64": "2.5.6" } }, "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ=="], @@ -586,25 +586,25 @@ "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], - "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.58.2", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.58.2", "@typescript-eslint/type-utils": "8.58.2", "@typescript-eslint/utils": "8.58.2", "@typescript-eslint/visitor-keys": "8.58.2", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.58.2", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw=="], + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.58.1", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.58.1", "@typescript-eslint/type-utils": "8.58.1", "@typescript-eslint/utils": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.58.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-eSkwoemjo76bdXl2MYqtxg51HNwUSkWfODUOQ3PaTLZGh9uIWWFZIjyjaJnex7wXDu+TRx+ATsnSxdN9YWfRTQ=="], - "@typescript-eslint/parser": ["@typescript-eslint/parser@8.58.2", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.58.2", "@typescript-eslint/types": "8.58.2", "@typescript-eslint/typescript-estree": "8.58.2", "@typescript-eslint/visitor-keys": "8.58.2", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg=="], + "@typescript-eslint/parser": ["@typescript-eslint/parser@8.58.1", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.58.1", "@typescript-eslint/types": "8.58.1", "@typescript-eslint/typescript-estree": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-gGkiNMPqerb2cJSVcruigx9eHBlLG14fSdPdqMoOcBfh+vvn4iCq2C8MzUB89PrxOXk0y3GZ1yIWb9aOzL93bw=="], - "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.58.2", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.58.2", "@typescript-eslint/types": "^8.58.2", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-Cq6UfpZZk15+r87BkIh5rDpi38W4b+Sjnb8wQCPPDDweS/LRCFjCyViEbzHk5Ck3f2QDfgmlxqSa7S7clDtlfg=="], + "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.58.1", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.58.1", "@typescript-eslint/types": "^8.58.1", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-gfQ8fk6cxhtptek+/8ZIqw8YrRW5048Gug8Ts5IYcMLCw18iUgrZAEY/D7s4hkI0FxEfGakKuPK/XUMPzPxi5g=="], "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.58.1", "", { "dependencies": { "@typescript-eslint/types": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1" } }, "sha512-TPYUEqJK6avLcEjumWsIuTpuYODTTDAtoMdt8ZZa93uWMTX13Nb8L5leSje1NluammvU+oI3QRr5lLXPgihX3w=="], - "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.58.2", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A=="], + "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.58.1", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-JAr2hOIct2Q+qk3G+8YFfqkqi7sC86uNryT+2i5HzMa2MPjw4qNFvtjnw1IiA1rP7QhNKVe21mSSLaSjwA1Olw=="], "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.58.1", "", { "dependencies": { "@typescript-eslint/types": "8.58.1", "@typescript-eslint/typescript-estree": "8.58.1", "@typescript-eslint/utils": "8.58.1", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-HUFxvTJVroT+0rXVJC7eD5zol6ID+Sn5npVPWoFuHGg9Ncq5Q4EYstqR+UOqaNRFXi5TYkpXXkLhoCHe3G0+7w=="], "@typescript-eslint/types": ["@typescript-eslint/types@8.58.1", "", {}, "sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw=="], - "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.58.2", "", { "dependencies": { "@typescript-eslint/project-service": "8.58.2", "@typescript-eslint/tsconfig-utils": "8.58.2", "@typescript-eslint/types": "8.58.2", "@typescript-eslint/visitor-keys": "8.58.2", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw=="], + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.58.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.58.1", "@typescript-eslint/tsconfig-utils": "8.58.1", "@typescript-eslint/types": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-w4w7WR7GHOjqqPnvAYbazq+Y5oS68b9CzasGtnd6jIeOIeKUzYzupGTB2T4LTPSv4d+WPeccbxuneTFHYgAAWg=="], "@typescript-eslint/utils": ["@typescript-eslint/utils@8.58.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.58.1", "@typescript-eslint/types": "8.58.1", "@typescript-eslint/typescript-estree": "8.58.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-Ln8R0tmWC7pTtLOzgJzYTXSCjJ9rDNHAqTaVONF4FEi2qwce8mD9iSOxOpLFFvWp/wBFlew0mjM1L1ihYWfBdQ=="], - "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.2", "", { "dependencies": { "@typescript-eslint/types": "8.58.2", "eslint-visitor-keys": "^5.0.0" } }, "sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA=="], + "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.1", "", { "dependencies": { "@typescript-eslint/types": "8.58.1", "eslint-visitor-keys": "^5.0.0" } }, "sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ=="], "@typescript/lib-decorators": ["@better-typescript-lib/decorators@2.12.0", "", { "peerDependencies": { "typescript": ">=4.5.2" } }, "sha512-/m9Q5Xk66ThUJidTsxmXJH0+49iCLl5PFmue0HkNSGrcPU96oaoKNY5sH1AslwA/OWVvBg3hE58ZwSGm6TQFuQ=="], @@ -726,7 +726,7 @@ "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], - "caniuse-lite": ["caniuse-lite@1.0.30001788", "", {}, "sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ=="], + "caniuse-lite": ["caniuse-lite@1.0.30001787", "", {}, "sha512-mNcrMN9KeI68u7muanUpEejSLghOKlVhRqS/Za2IeyGllJ9I9otGpR9g3nsw7n4W378TE/LyIteA0+/FOZm4Kg=="], "change-case": ["change-case@5.4.4", "", {}, "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w=="], @@ -796,7 +796,7 @@ "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], - "effect": ["effect@4.0.0-beta.49", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.6.0", "find-my-way-ts": "^0.1.6", "ini": "^6.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^1.11.9", "multipasta": "^0.2.7", "toml": "^4.1.1", "uuid": "^13.0.0", "yaml": "^2.8.3" } }, "sha512-4+mx856l4zxJJ+ybVNamqjAAinYsTNDVGZ5H3kstqKhDxCBW7sK/mZTtHuI7azt5AXEKX2ZXsi3EPAQVnkZk0w=="], + "effect": ["effect@4.0.0-beta.48", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.6.0", "find-my-way-ts": "^0.1.6", "ini": "^6.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^1.11.9", "multipasta": "^0.2.7", "toml": "^4.1.1", "uuid": "^13.0.0", "yaml": "^2.8.3" } }, "sha512-MMAM/ZabuNdNmgXiin+BAanQXK7qM8mlt7nfXDoJ/Gn9V8i89JlCq+2N0AiWmqFLXjGLA0u3FjiOjSOYQk5uMw=="], "electron-to-chromium": ["electron-to-chromium@1.5.334", "", {}, "sha512-mgjZAz7Jyx1SRCwEpy9wefDS7GvNPazLthHg8eQMJ76wBdGQQDW33TCrUTvQ4wzpmOrv2zrFoD3oNufMdyMpog=="], @@ -838,7 +838,7 @@ "eslint-plugin-jsx-a11y": ["eslint-plugin-jsx-a11y@6.10.2", "", { "dependencies": { "aria-query": "^5.3.2", "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", "axe-core": "^4.10.0", "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "hasown": "^2.0.2", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "safe-regex-test": "^1.0.3", "string.prototype.includes": "^2.0.1" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q=="], - "eslint-plugin-oxlint": ["eslint-plugin-oxlint@1.60.0", "", { "dependencies": { "jsonc-parser": "^3.3.1" }, "peerDependencies": { "oxlint": "~1.60.0" } }, "sha512-9RUD23k7ablez1qg7JWnyPYPOlbucDDqaDr+qNUi0TbIQCPqIPCLzfllgqKF9lOxlg+l17H8hISErmarvm2J1w=="], + "eslint-plugin-oxlint": ["eslint-plugin-oxlint@1.59.0", "", { "dependencies": { "jsonc-parser": "^3.3.1" }, "peerDependencies": { "oxlint": "~1.59.0" } }, "sha512-g0DR+xSsnUdyaMc2KAXvBVGWz5V4GwlAE1PM+ocKxl2Eg7YgOjkRLLbxgJ3bhYOhRLhD8F0X4DjJu2FSDvrvAg=="], "eslint-plugin-perfectionist": ["eslint-plugin-perfectionist@5.8.0", "", { "dependencies": { "@typescript-eslint/utils": "^8.58.0", "natural-orderby": "^5.0.0" }, "peerDependencies": { "eslint": "^8.45.0 || ^9.0.0 || ^10.0.0" } }, "sha512-k8uIptWIxkUclonCFGyDzgYs9NI+Qh0a7cUXS3L7IYZDEsjXuimFBVbxXPQQngWqMiaxJRwbtYB4smMGMqF+cw=="], @@ -1256,9 +1256,9 @@ "oxc-resolver": ["oxc-resolver@11.19.1", "", { "optionalDependencies": { "@oxc-resolver/binding-android-arm-eabi": "11.19.1", "@oxc-resolver/binding-android-arm64": "11.19.1", "@oxc-resolver/binding-darwin-arm64": "11.19.1", "@oxc-resolver/binding-darwin-x64": "11.19.1", "@oxc-resolver/binding-freebsd-x64": "11.19.1", "@oxc-resolver/binding-linux-arm-gnueabihf": "11.19.1", "@oxc-resolver/binding-linux-arm-musleabihf": "11.19.1", "@oxc-resolver/binding-linux-arm64-gnu": "11.19.1", "@oxc-resolver/binding-linux-arm64-musl": "11.19.1", "@oxc-resolver/binding-linux-ppc64-gnu": "11.19.1", "@oxc-resolver/binding-linux-riscv64-gnu": "11.19.1", "@oxc-resolver/binding-linux-riscv64-musl": "11.19.1", "@oxc-resolver/binding-linux-s390x-gnu": "11.19.1", "@oxc-resolver/binding-linux-x64-gnu": "11.19.1", "@oxc-resolver/binding-linux-x64-musl": "11.19.1", "@oxc-resolver/binding-openharmony-arm64": "11.19.1", "@oxc-resolver/binding-wasm32-wasi": "11.19.1", "@oxc-resolver/binding-win32-arm64-msvc": "11.19.1", "@oxc-resolver/binding-win32-ia32-msvc": "11.19.1", "@oxc-resolver/binding-win32-x64-msvc": "11.19.1" } }, "sha512-qE/CIg/spwrTBFt5aKmwe3ifeDdLfA2NESN30E42X/lII5ClF8V7Wt6WIJhcGZjp0/Q+nQ+9vgxGk//xZNX2hg=="], - "oxlint": ["oxlint@1.60.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.60.0", "@oxlint/binding-android-arm64": "1.60.0", "@oxlint/binding-darwin-arm64": "1.60.0", "@oxlint/binding-darwin-x64": "1.60.0", "@oxlint/binding-freebsd-x64": "1.60.0", "@oxlint/binding-linux-arm-gnueabihf": "1.60.0", "@oxlint/binding-linux-arm-musleabihf": "1.60.0", "@oxlint/binding-linux-arm64-gnu": "1.60.0", "@oxlint/binding-linux-arm64-musl": "1.60.0", "@oxlint/binding-linux-ppc64-gnu": "1.60.0", "@oxlint/binding-linux-riscv64-gnu": "1.60.0", "@oxlint/binding-linux-riscv64-musl": "1.60.0", "@oxlint/binding-linux-s390x-gnu": "1.60.0", "@oxlint/binding-linux-x64-gnu": "1.60.0", "@oxlint/binding-linux-x64-musl": "1.60.0", "@oxlint/binding-openharmony-arm64": "1.60.0", "@oxlint/binding-win32-arm64-msvc": "1.60.0", "@oxlint/binding-win32-ia32-msvc": "1.60.0", "@oxlint/binding-win32-x64-msvc": "1.60.0" }, "peerDependencies": { "oxlint-tsgolint": ">=0.18.0" }, "optionalPeers": ["oxlint-tsgolint"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-tnRzTWiWJ9pg3ftRWnD0+Oqh78L6ZSwcEudvCZaER0PIqiAnNyXj5N1dPwjmNpDalkKS9m/WMLN1CTPUBPmsgw=="], + "oxlint": ["oxlint@1.59.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.59.0", "@oxlint/binding-android-arm64": "1.59.0", "@oxlint/binding-darwin-arm64": "1.59.0", "@oxlint/binding-darwin-x64": "1.59.0", "@oxlint/binding-freebsd-x64": "1.59.0", "@oxlint/binding-linux-arm-gnueabihf": "1.59.0", "@oxlint/binding-linux-arm-musleabihf": "1.59.0", "@oxlint/binding-linux-arm64-gnu": "1.59.0", "@oxlint/binding-linux-arm64-musl": "1.59.0", "@oxlint/binding-linux-ppc64-gnu": "1.59.0", "@oxlint/binding-linux-riscv64-gnu": "1.59.0", "@oxlint/binding-linux-riscv64-musl": "1.59.0", "@oxlint/binding-linux-s390x-gnu": "1.59.0", "@oxlint/binding-linux-x64-gnu": "1.59.0", "@oxlint/binding-linux-x64-musl": "1.59.0", "@oxlint/binding-openharmony-arm64": "1.59.0", "@oxlint/binding-win32-arm64-msvc": "1.59.0", "@oxlint/binding-win32-ia32-msvc": "1.59.0", "@oxlint/binding-win32-x64-msvc": "1.59.0" }, "peerDependencies": { "oxlint-tsgolint": ">=0.18.0" }, "optionalPeers": ["oxlint-tsgolint"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-0xBLeGGjP4vD9pygRo8iuOkOzEU1MqOnfiOl7KYezL/QvWL8NUg6n03zXc7ZVqltiOpUxBk2zgHI3PnRIEdAvw=="], - "oxlint-tsgolint": ["oxlint-tsgolint@0.21.0", "", { "optionalDependencies": { "@oxlint-tsgolint/darwin-arm64": "0.21.0", "@oxlint-tsgolint/darwin-x64": "0.21.0", "@oxlint-tsgolint/linux-arm64": "0.21.0", "@oxlint-tsgolint/linux-x64": "0.21.0", "@oxlint-tsgolint/win32-arm64": "0.21.0", "@oxlint-tsgolint/win32-x64": "0.21.0" }, "bin": { "tsgolint": "bin/tsgolint.js" } }, "sha512-HiWPhANwRnN1pZJQ2SgNB3WRR+1etLJHmRzQ/MJhyINsEIaOUCjxhlXJKbEaVUwdnyXwRWqo/P9Fx21lz0/mSg=="], + "oxlint-tsgolint": ["oxlint-tsgolint@0.20.0", "", { "optionalDependencies": { "@oxlint-tsgolint/darwin-arm64": "0.20.0", "@oxlint-tsgolint/darwin-x64": "0.20.0", "@oxlint-tsgolint/linux-arm64": "0.20.0", "@oxlint-tsgolint/linux-x64": "0.20.0", "@oxlint-tsgolint/win32-arm64": "0.20.0", "@oxlint-tsgolint/win32-x64": "0.20.0" }, "bin": { "tsgolint": "bin/tsgolint.js" } }, "sha512-/Uc9TQyN1l8w9QNvXtVHYtz+SzDJHKpb5X0UnHodl0BVzijUPk0LPlDOHAvogd1UI+iy9ZSF6gQxEqfzUxCULQ=="], "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], @@ -1308,7 +1308,7 @@ "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], - "prettier": ["prettier@3.8.3", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw=="], + "prettier": ["prettier@3.8.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-8c3mgTe0ASwWAJK+78dpviD+A8EqhndQPUBpNUIPt6+xWlIigCwfN01lWr9MAede4uqXGTEKeQWTvzb3vjia0Q=="], "prettier-plugin-curly": ["prettier-plugin-curly@0.4.1", "", { "peerDependencies": { "prettier": "^3" } }, "sha512-Xc7zatoD0/08zYFv+hwnlqT5ekM81DCbBr73CWAsr1Fmx7qLQT/M0wfPx6w/+zfnmXH009xYvjzLUPcwzq7Fbw=="], @@ -1556,7 +1556,7 @@ "typescript": ["typescript@6.0.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ=="], - "typescript-eslint": ["typescript-eslint@8.58.2", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.58.2", "@typescript-eslint/parser": "8.58.2", "@typescript-eslint/typescript-estree": "8.58.2", "@typescript-eslint/utils": "8.58.2" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-V8iSng9mRbdZjl54VJ9NKr6ZB+dW0J3TzRXRGcSbLIej9jV86ZRtlYeTKDR/QLxXykocJ5icNzbsl2+5TzIvcQ=="], + "typescript-eslint": ["typescript-eslint@8.58.1", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.58.1", "@typescript-eslint/parser": "8.58.1", "@typescript-eslint/typescript-estree": "8.58.1", "@typescript-eslint/utils": "8.58.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-gf6/oHChByg9HJvhMO1iBexJh12AqqTfnuxscMDOVqfJW3htsdRJI/GfPpHTTcyeB8cSTUY2JcZmVgoyPqcrDg=="], "unbash": ["unbash@2.2.0", "", {}, "sha512-X2wH19RAPZE3+ldGicOkoj/SIA83OIxcJ6Cuaw23hf8Xc6fQpvZXY0SftE2JgS0QhYLUG4uwodSI3R53keyh7w=="], @@ -1634,42 +1634,12 @@ "@gcch/configuration-eslint/globals": ["globals@17.4.0", "", {}, "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw=="], - "@gcch/configuration-eslint/typescript-eslint": ["typescript-eslint@8.58.1", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.58.1", "@typescript-eslint/parser": "8.58.1", "@typescript-eslint/typescript-estree": "8.58.1", "@typescript-eslint/utils": "8.58.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-gf6/oHChByg9HJvhMO1iBexJh12AqqTfnuxscMDOVqfJW3htsdRJI/GfPpHTTcyeB8cSTUY2JcZmVgoyPqcrDg=="], - "@gcch/configuration-oxlint/globals": ["globals@17.4.0", "", {}, "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw=="], - "@gcch/configuration-oxlint/oxlint": ["oxlint@1.59.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.59.0", "@oxlint/binding-android-arm64": "1.59.0", "@oxlint/binding-darwin-arm64": "1.59.0", "@oxlint/binding-darwin-x64": "1.59.0", "@oxlint/binding-freebsd-x64": "1.59.0", "@oxlint/binding-linux-arm-gnueabihf": "1.59.0", "@oxlint/binding-linux-arm-musleabihf": "1.59.0", "@oxlint/binding-linux-arm64-gnu": "1.59.0", "@oxlint/binding-linux-arm64-musl": "1.59.0", "@oxlint/binding-linux-ppc64-gnu": "1.59.0", "@oxlint/binding-linux-riscv64-gnu": "1.59.0", "@oxlint/binding-linux-riscv64-musl": "1.59.0", "@oxlint/binding-linux-s390x-gnu": "1.59.0", "@oxlint/binding-linux-x64-gnu": "1.59.0", "@oxlint/binding-linux-x64-musl": "1.59.0", "@oxlint/binding-openharmony-arm64": "1.59.0", "@oxlint/binding-win32-arm64-msvc": "1.59.0", "@oxlint/binding-win32-ia32-msvc": "1.59.0", "@oxlint/binding-win32-x64-msvc": "1.59.0" }, "peerDependencies": { "oxlint-tsgolint": ">=0.18.0" }, "optionalPeers": ["oxlint-tsgolint"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-0xBLeGGjP4vD9pygRo8iuOkOzEU1MqOnfiOl7KYezL/QvWL8NUg6n03zXc7ZVqltiOpUxBk2zgHI3PnRIEdAvw=="], - - "@gcch/configuration-oxlint/oxlint-tsgolint": ["oxlint-tsgolint@0.20.0", "", { "optionalDependencies": { "@oxlint-tsgolint/darwin-arm64": "0.20.0", "@oxlint-tsgolint/darwin-x64": "0.20.0", "@oxlint-tsgolint/linux-arm64": "0.20.0", "@oxlint-tsgolint/linux-x64": "0.20.0", "@oxlint-tsgolint/win32-arm64": "0.20.0", "@oxlint-tsgolint/win32-x64": "0.20.0" }, "bin": { "tsgolint": "bin/tsgolint.js" } }, "sha512-/Uc9TQyN1l8w9QNvXtVHYtz+SzDJHKpb5X0UnHodl0BVzijUPk0LPlDOHAvogd1UI+iy9ZSF6gQxEqfzUxCULQ=="], - - "@gcch/configuration-prettier/prettier": ["prettier@3.8.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-8c3mgTe0ASwWAJK+78dpviD+A8EqhndQPUBpNUIPt6+xWlIigCwfN01lWr9MAede4uqXGTEKeQWTvzb3vjia0Q=="], - "@keyv/bigmap/keyv": ["keyv@5.6.0", "", { "dependencies": { "@keyv/serialize": "^1.1.1" } }, "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.58.2", "", { "dependencies": { "@typescript-eslint/types": "8.58.2", "@typescript-eslint/visitor-keys": "8.58.2" } }, "sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q=="], - - "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.58.2", "", { "dependencies": { "@typescript-eslint/types": "8.58.2", "@typescript-eslint/typescript-estree": "8.58.2", "@typescript-eslint/utils": "8.58.2", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg=="], - - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils": ["@typescript-eslint/utils@8.58.2", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.58.2", "@typescript-eslint/types": "8.58.2", "@typescript-eslint/typescript-estree": "8.58.2" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA=="], - "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], - "@typescript-eslint/parser/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.58.2", "", { "dependencies": { "@typescript-eslint/types": "8.58.2", "@typescript-eslint/visitor-keys": "8.58.2" } }, "sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q=="], - - "@typescript-eslint/parser/@typescript-eslint/types": ["@typescript-eslint/types@8.58.2", "", {}, "sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ=="], - - "@typescript-eslint/project-service/@typescript-eslint/types": ["@typescript-eslint/types@8.58.2", "", {}, "sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ=="], - - "@typescript-eslint/scope-manager/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.1", "", { "dependencies": { "@typescript-eslint/types": "8.58.1", "eslint-visitor-keys": "^5.0.0" } }, "sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ=="], - - "@typescript-eslint/type-utils/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.58.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.58.1", "@typescript-eslint/tsconfig-utils": "8.58.1", "@typescript-eslint/types": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-w4w7WR7GHOjqqPnvAYbazq+Y5oS68b9CzasGtnd6jIeOIeKUzYzupGTB2T4LTPSv4d+WPeccbxuneTFHYgAAWg=="], - - "@typescript-eslint/typescript-estree/@typescript-eslint/types": ["@typescript-eslint/types@8.58.2", "", {}, "sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ=="], - - "@typescript-eslint/utils/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.58.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.58.1", "@typescript-eslint/tsconfig-utils": "8.58.1", "@typescript-eslint/types": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-w4w7WR7GHOjqqPnvAYbazq+Y5oS68b9CzasGtnd6jIeOIeKUzYzupGTB2T4LTPSv4d+WPeccbxuneTFHYgAAWg=="], - - "@typescript-eslint/visitor-keys/@typescript-eslint/types": ["@typescript-eslint/types@8.58.2", "", {}, "sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ=="], - "astro-eslint-parser/eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], "astro-eslint-parser/eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], @@ -1678,8 +1648,6 @@ "babel-plugin-polyfill-corejs2/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "browserslist/caniuse-lite": ["caniuse-lite@1.0.30001787", "", {}, "sha512-mNcrMN9KeI68u7muanUpEejSLghOKlVhRqS/Za2IeyGllJ9I9otGpR9g3nsw7n4W378TE/LyIteA0+/FOZm4Kg=="], - "browserslist-to-esbuild/meow": ["meow@13.2.0", "", {}, "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA=="], "cacheable/keyv": ["keyv@5.6.0", "", { "dependencies": { "@keyv/serialize": "^1.1.1" } }, "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw=="], @@ -1708,8 +1676,6 @@ "micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], - "prettier-plugin-ini/prettier": ["prettier@3.8.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-8c3mgTe0ASwWAJK+78dpviD+A8EqhndQPUBpNUIPt6+xWlIigCwfN01lWr9MAede4uqXGTEKeQWTvzb3vjia0Q=="], - "qified/hookified": ["hookified@2.1.1", "", {}, "sha512-AHb76R16GB5EsPBE2J7Ko5kiEyXwviB9P5SMrAKcuAu4vJPZttViAbj9+tZeaQE5zjDme+1vcHP78Yj/WoAveA=="], "rolldown/@oxc-project/types": ["@oxc-project/types@0.124.0", "", {}, "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg=="], @@ -1728,84 +1694,8 @@ "table/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "typescript-eslint/@typescript-eslint/utils": ["@typescript-eslint/utils@8.58.2", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.58.2", "@typescript-eslint/types": "8.58.2", "@typescript-eslint/typescript-estree": "8.58.2" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA=="], - "vite/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.58.1", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.58.1", "@typescript-eslint/type-utils": "8.58.1", "@typescript-eslint/utils": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.58.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-eSkwoemjo76bdXl2MYqtxg51HNwUSkWfODUOQ3PaTLZGh9uIWWFZIjyjaJnex7wXDu+TRx+ATsnSxdN9YWfRTQ=="], - - "@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/parser": ["@typescript-eslint/parser@8.58.1", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.58.1", "@typescript-eslint/types": "8.58.1", "@typescript-eslint/typescript-estree": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-gGkiNMPqerb2cJSVcruigx9eHBlLG14fSdPdqMoOcBfh+vvn4iCq2C8MzUB89PrxOXk0y3GZ1yIWb9aOzL93bw=="], - - "@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.58.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.58.1", "@typescript-eslint/tsconfig-utils": "8.58.1", "@typescript-eslint/types": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-w4w7WR7GHOjqqPnvAYbazq+Y5oS68b9CzasGtnd6jIeOIeKUzYzupGTB2T4LTPSv4d+WPeccbxuneTFHYgAAWg=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.59.0", "", { "os": "android", "cpu": "arm" }, "sha512-etYDw/UaEv936AQUd/CRMBVd+e+XuuU6wC+VzOv1STvsTyZenLChepLWqLtnyTTp4YMlM22ypzogDDwqYxv5cg=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.59.0", "", { "os": "android", "cpu": "arm64" }, "sha512-TgLc7XVLKH2a4h8j3vn1MDjfK33i9MY60f/bKhRGWyVzbk5LCZ4X01VZG7iHrMmi5vYbAp8//Ponigx03CLsdw=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.59.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-DXyFPf5ZKldMLloRHx/B9fsxsiTQomaw7cmEW3YIJko2HgCh+GUhp9gGYwHrqlLJPsEe3dYj9JebjX92D3j3AA=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.59.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-LgvrsdgVLX1qWqIEmNsSmMXJhpAWdtUQ0M+oR0CySwi+9IHWyOGuIL8w8+u/kbZNMyZr4WUyYB5i0+D+AKgkLg=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.59.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-bOJhqX/ny4hrFuTPlyk8foSRx/vLRpxJh0jOOKN2NWW6FScXHPAA5rQbrwdQPcgGB5V8Ua51RS03fke8ssBcug=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.59.0", "", { "os": "linux", "cpu": "arm" }, "sha512-vVUXxYMF9trXCsz4m9H6U0IjehosVHxBzVgJUxly1uz4W1PdDyicaBnpC0KRXsHYretLVe+uS9pJy8iM57Kujw=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.59.0", "", { "os": "linux", "cpu": "arm" }, "sha512-TULQW8YBPGRWg5yZpFPL54HLOnJ3/HiX6VenDPi6YfxB/jlItwSMFh3/hCeSNbh+DAMaE1Py0j5MOaivHkI/9Q=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.59.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-Gt54Y4eqSgYJ90xipm24xeyaPV854706o/kiT8oZvUt3VDY7qqxdqyGqchMaujd87ib+/MXvnl9WkK8Cc1BExg=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.59.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-3CtsKp7NFB3OfqQzbuAecrY7GIZeiv7AD+xutU4tefVQzlfmTI7/ygWLrvkzsDEjTlMq41rYHxgsn6Yh8tybmA=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.59.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-K0diOpT3ncDmOfl9I1HuvpEsAuTxkts0VYwIv/w6Xiy9CdwyPBVX88Ga9l8VlGgMrwBMnSY4xIvVlVY/fkQk7Q=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-xAU7+QDU6kTJJ7mJLOGgo7oOjtAtkKyFZ0Yjdb5cEo3DiCCPFLvyr08rWiQh6evZ7RiUTf+o65NY/bqttzJiQQ=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-KUmZmKlTTyauOnvUNVxK7G40sSSx0+w5l1UhaGsC6KPpOYHenx2oqJTnabmpLJicok7IC+3Y6fXAUOMyexaeJQ=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.59.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-4usRxC8gS0PGdkHnRmwJt/4zrQNZyk6vL0trCxwZSsAKM+OxhB8nKiR+mhjdBbl8lbMh2gc3bZpNN/ik8c4c2A=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.59.0", "", { "os": "linux", "cpu": "x64" }, "sha512-s/rNE2gDmbwAOOP493xk2X7M8LZfI1LJFSSW1+yanz3vuQCFPiHkx4GY+O1HuLUDtkzGlhtMrIcxxzyYLv308w=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.59.0", "", { "os": "linux", "cpu": "x64" }, "sha512-+yYj1udJa2UvvIUmEm0IcKgc0UlPMgz0nsSTvkPL2y6n0uU5LgIHSwVu4AHhrve6j9BpVSoRksnz8c9QcvITJA=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.59.0", "", { "os": "none", "cpu": "arm64" }, "sha512-bUplUb48LYsB3hHlQXP2ZMOenpieWoOyppLAnnAhuPag3MGPnt+7caxE3w/Vl9wpQsTA3gzLntQi9rxWrs7Xqg=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.59.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-/HLsLuz42rWl7h7ePdmMTpHm2HIDmPtcEMYgm5BBEHiEiuNOrzMaUpd2z7UnNni5LGN9obJy2YoAYBLXQwazrA=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.59.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-rUPy+JnanpPwV/aJCPnxAD1fW50+XPI0VkWr7f0vEbqcdsS8NpB24Rw6RsS7SdpFv8Dw+8ugCwao5nCFbqOUSg=="], - - "@gcch/configuration-oxlint/oxlint/@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.59.0", "", { "os": "win32", "cpu": "x64" }, "sha512-xkE7puteDS/vUyRngLXW0t8WgdWoS/tfxXjhP/P7SMqPDx+hs44SpssO3h3qmTqECYEuXBUPzcAw5257Ka+ofA=="], - - "@gcch/configuration-oxlint/oxlint-tsgolint/@oxlint-tsgolint/darwin-arm64": ["@oxlint-tsgolint/darwin-arm64@0.20.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-KKQcIHZHMxqpHUA1VXIbOG6chNCFkUWbQy6M+AFVtPKkA/3xAeJkJ3njoV66bfzwPHRcWQO+kcj5XqtbkjakoA=="], - - "@gcch/configuration-oxlint/oxlint-tsgolint/@oxlint-tsgolint/darwin-x64": ["@oxlint-tsgolint/darwin-x64@0.20.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-7HeVMuclGfG+NLZi2ybY0T4fMI7/XxO/208rJk+zEIloKkVnlh11Wd241JMGwgNFXn+MLJbOqOfojDb2Dt4L1g=="], - - "@gcch/configuration-oxlint/oxlint-tsgolint/@oxlint-tsgolint/linux-arm64": ["@oxlint-tsgolint/linux-arm64@0.20.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-zxhUwz+WSxE6oWlZLK2z2ps9yC6ebmgoYmjAl0Oa48+GqkZ56NVgo+wb8DURNv6xrggzHStQxqQxe3mK51HZag=="], - - "@gcch/configuration-oxlint/oxlint-tsgolint/@oxlint-tsgolint/linux-x64": ["@oxlint-tsgolint/linux-x64@0.20.0", "", { "os": "linux", "cpu": "x64" }, "sha512-/1l6FnahC9im8PK+Ekkx/V3yetO/PzZnJegE2FXcv/iXEhbeVxP/ouiTYcUQu9shT1FWJCSNti1VJHH+21Y1dg=="], - - "@gcch/configuration-oxlint/oxlint-tsgolint/@oxlint-tsgolint/win32-arm64": ["@oxlint-tsgolint/win32-arm64@0.20.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-oPZ5Yz8sVdo7P/5q+i3IKeix31eFZ55JAPa1+RGPoe9PoaYVsdMvR6Jvib6YtrqoJnFPlg3fjEjlEPL8VBKYJA=="], - - "@gcch/configuration-oxlint/oxlint-tsgolint/@oxlint-tsgolint/win32-x64": ["@oxlint-tsgolint/win32-x64@0.20.0", "", { "os": "win32", "cpu": "x64" }, "sha512-4stx8RHj3SP9vQyRF/yZbz5igtPvYMEUR8CUoha4BVNZihi39DpCR8qkU7lpjB5Ga1DRMo2pHaA4bdTOMaY4mw=="], - - "@typescript-eslint/eslint-plugin/@typescript-eslint/scope-manager/@typescript-eslint/types": ["@typescript-eslint/types@8.58.2", "", {}, "sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ=="], - - "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/types": ["@typescript-eslint/types@8.58.2", "", {}, "sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ=="], - - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.58.2", "", {}, "sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ=="], - - "@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.58.1", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.58.1", "@typescript-eslint/types": "^8.58.1", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-gfQ8fk6cxhtptek+/8ZIqw8YrRW5048Gug8Ts5IYcMLCw18iUgrZAEY/D7s4hkI0FxEfGakKuPK/XUMPzPxi5g=="], - - "@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.58.1", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-JAr2hOIct2Q+qk3G+8YFfqkqi7sC86uNryT+2i5HzMa2MPjw4qNFvtjnw1IiA1rP7QhNKVe21mSSLaSjwA1Olw=="], - - "@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.1", "", { "dependencies": { "@typescript-eslint/types": "8.58.1", "eslint-visitor-keys": "^5.0.0" } }, "sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ=="], - - "@typescript-eslint/utils/@typescript-eslint/typescript-estree/@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.58.1", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.58.1", "@typescript-eslint/types": "^8.58.1", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-gfQ8fk6cxhtptek+/8ZIqw8YrRW5048Gug8Ts5IYcMLCw18iUgrZAEY/D7s4hkI0FxEfGakKuPK/XUMPzPxi5g=="], - - "@typescript-eslint/utils/@typescript-eslint/typescript-estree/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.58.1", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-JAr2hOIct2Q+qk3G+8YFfqkqi7sC86uNryT+2i5HzMa2MPjw4qNFvtjnw1IiA1rP7QhNKVe21mSSLaSjwA1Olw=="], - - "@typescript-eslint/utils/@typescript-eslint/typescript-estree/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.1", "", { "dependencies": { "@typescript-eslint/types": "8.58.1", "eslint-visitor-keys": "^5.0.0" } }, "sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ=="], - "eslint-plugin-jsx-a11y/minimatch/brace-expansion": ["brace-expansion@1.1.13", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w=="], "stylelint/file-entry-cache/flat-cache": ["flat-cache@6.1.22", "", { "dependencies": { "cacheable": "^2.3.4", "flatted": "^3.4.2", "hookified": "^1.15.0" } }, "sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug=="], @@ -1816,22 +1706,6 @@ "table/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.58.2", "", { "dependencies": { "@typescript-eslint/types": "8.58.2", "@typescript-eslint/visitor-keys": "8.58.2" } }, "sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q=="], - - "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.58.2", "", {}, "sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ=="], - - "@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/eslint-plugin/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.1", "", { "dependencies": { "@typescript-eslint/types": "8.58.1", "eslint-visitor-keys": "^5.0.0" } }, "sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ=="], - - "@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], - - "@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/parser/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.1", "", { "dependencies": { "@typescript-eslint/types": "8.58.1", "eslint-visitor-keys": "^5.0.0" } }, "sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ=="], - - "@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.58.1", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.58.1", "@typescript-eslint/types": "^8.58.1", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-gfQ8fk6cxhtptek+/8ZIqw8YrRW5048Gug8Ts5IYcMLCw18iUgrZAEY/D7s4hkI0FxEfGakKuPK/XUMPzPxi5g=="], - - "@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.58.1", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-JAr2hOIct2Q+qk3G+8YFfqkqi7sC86uNryT+2i5HzMa2MPjw4qNFvtjnw1IiA1rP7QhNKVe21mSSLaSjwA1Olw=="], - - "@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.1", "", { "dependencies": { "@typescript-eslint/types": "8.58.1", "eslint-visitor-keys": "^5.0.0" } }, "sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ=="], - "eslint-plugin-jsx-a11y/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], } } diff --git a/composer.lock b/composer.lock index 90852164..745e769e 100644 --- a/composer.lock +++ b/composer.lock @@ -585,7 +585,7 @@ }, { "name": "illuminate/collections", - "version": "v13.5.0", + "version": "v13.4.0", "source": { "type": "git", "url": "https://github.com/illuminate/collections.git", @@ -644,7 +644,7 @@ }, { "name": "illuminate/conditionable", - "version": "v13.5.0", + "version": "v13.4.0", "source": { "type": "git", "url": "https://github.com/illuminate/conditionable.git", @@ -690,16 +690,16 @@ }, { "name": "illuminate/contracts", - "version": "v13.5.0", + "version": "v13.4.0", "source": { "type": "git", "url": "https://github.com/illuminate/contracts.git", - "reference": "022d9816b4ff052a3db5946a86be3cd2e224db0f" + "reference": "8796cc5f30124b81210ae2f3b2ae0f69ad4fc7f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/contracts/zipball/022d9816b4ff052a3db5946a86be3cd2e224db0f", - "reference": "022d9816b4ff052a3db5946a86be3cd2e224db0f", + "url": "https://api.github.com/repos/illuminate/contracts/zipball/8796cc5f30124b81210ae2f3b2ae0f69ad4fc7f8", + "reference": "8796cc5f30124b81210ae2f3b2ae0f69ad4fc7f8", "shasum": "" }, "require": { @@ -734,11 +734,11 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-04-12T17:46:48+00:00" + "time": "2026-03-26T17:13:01+00:00" }, { "name": "illuminate/macroable", - "version": "v13.5.0", + "version": "v13.4.0", "source": { "type": "git", "url": "https://github.com/illuminate/macroable.git", @@ -784,7 +784,7 @@ }, { "name": "illuminate/reflection", - "version": "v13.5.0", + "version": "v13.4.0", "source": { "type": "git", "url": "https://github.com/illuminate/reflection.git", @@ -835,16 +835,16 @@ }, { "name": "illuminate/support", - "version": "v13.5.0", + "version": "v13.4.0", "source": { "type": "git", "url": "https://github.com/illuminate/support.git", - "reference": "0e8642a79d385c644a75400cad176b042242c894" + "reference": "e7ce0496cae80c3e1aa72e37f09335a6454846dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/support/zipball/0e8642a79d385c644a75400cad176b042242c894", - "reference": "0e8642a79d385c644a75400cad176b042242c894", + "url": "https://api.github.com/repos/illuminate/support/zipball/e7ce0496cae80c3e1aa72e37f09335a6454846dc", + "reference": "e7ce0496cae80c3e1aa72e37f09335a6454846dc", "shasum": "" }, "require": { @@ -910,7 +910,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-04-13T14:52:53+00:00" + "time": "2026-04-07T13:34:38+00:00" }, { "name": "laravel/helpers", @@ -2506,7 +2506,7 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.35.0", + "version": "v1.34.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -2565,7 +2565,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.35.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.34.0" }, "funding": [ { @@ -2589,7 +2589,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.35.0", + "version": "v1.34.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -2650,7 +2650,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.35.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.34.0" }, "funding": [ { @@ -2674,7 +2674,7 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.35.0", + "version": "v1.34.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", @@ -2734,7 +2734,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.35.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.34.0" }, "funding": [ { @@ -2758,7 +2758,7 @@ }, { "name": "symfony/polyfill-php84", - "version": "v1.35.0", + "version": "v1.34.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php84.git", @@ -2814,7 +2814,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.35.0" + "source": "https://github.com/symfony/polyfill-php84/tree/v1.34.0" }, "funding": [ { @@ -2838,7 +2838,7 @@ }, { "name": "symfony/polyfill-php85", - "version": "v1.35.0", + "version": "v1.34.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php85.git", @@ -2894,7 +2894,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php85/tree/v1.35.0" + "source": "https://github.com/symfony/polyfill-php85/tree/v1.34.0" }, "funding": [ { @@ -2918,7 +2918,7 @@ }, { "name": "symfony/polyfill-uuid", - "version": "v1.35.0", + "version": "v1.34.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", @@ -2977,7 +2977,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.35.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.34.0" }, "funding": [ { @@ -3701,15 +3701,15 @@ }, { "name": "wpackagist-plugin/woocommerce", - "version": "10.7.0", + "version": "10.6.2", "source": { "type": "svn", "url": "https://plugins.svn.wordpress.org/woocommerce/", - "reference": "tags/10.7.0" + "reference": "tags/10.6.2" }, "dist": { "type": "zip", - "url": "https://downloads.wordpress.org/plugin/woocommerce.10.7.0.zip" + "url": "https://downloads.wordpress.org/plugin/woocommerce.10.6.2.zip" }, "require": { "composer/installers": "^1.0 || ^2.0" @@ -4516,11 +4516,11 @@ }, { "name": "phpstan/phpstan", - "version": "2.1.47", + "version": "2.1.46", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/79015445d8bd79e62b29140f12e5bfced1dcca65", - "reference": "79015445d8bd79e62b29140f12e5bfced1dcca65", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/a193923fc2d6325ef4e741cf3af8c3e8f54dbf25", + "reference": "a193923fc2d6325ef4e741cf3af8c3e8f54dbf25", "shasum": "" }, "require": { @@ -4565,7 +4565,7 @@ "type": "github" } ], - "time": "2026-04-13T15:49:08+00:00" + "time": "2026-04-01T09:25:14+00:00" }, { "name": "psr/event-dispatcher", @@ -5199,12 +5199,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "f8c7911d543be053da1601797a9d471110222b08" + "reference": "d830a949e5c180e97c2245221daf8b589552cc2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/f8c7911d543be053da1601797a9d471110222b08", - "reference": "f8c7911d543be053da1601797a9d471110222b08", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/d830a949e5c180e97c2245221daf8b589552cc2c", + "reference": "d830a949e5c180e97c2245221daf8b589552cc2c", "shasum": "" }, "conflict": { @@ -5334,7 +5334,7 @@ "codingms/modules": "<4.3.11|>=5,<5.7.4|>=6,<6.4.2|>=7,<7.5.5", "commerceteam/commerce": ">=0.9.6,<0.9.9", "components/jquery": ">=1.0.3,<3.5", - "composer/composer": "<1.10.27|>=2,<2.2.27|>=2.3,<2.9.6", + "composer/composer": "<1.10.27|>=2,<2.2.26|>=2.3,<2.9.3", "concrete5/concrete5": "<9.4.8", "concrete5/core": "<8.5.8|>=9,<9.1", "contao-components/mediaelement": ">=2.14.2,<2.21.1", @@ -5351,7 +5351,7 @@ "cpsit/typo3-mailqueue": "<0.4.5|>=0.5,<0.5.2", "craftcms/aws-s3": ">=2.0.2,<=2.2.4", "craftcms/azure-blob": ">=2.0.0.0-beta1,<=2.1", - "craftcms/cms": "<=4.17.8|>=5,<5.9.15", + "craftcms/cms": "<=4.17.7|>=5,<=5.9.13", "craftcms/commerce": ">=4,<4.11|>=5,<5.6", "craftcms/composer": ">=4.0.0.0-RC1-dev,<=4.10|>=5.0.0.0-RC1-dev,<=5.5.1", "craftcms/craft": ">=3.5,<=4.16.17|>=5.0.0.0-RC1-dev,<=5.8.21", @@ -5619,7 +5619,7 @@ "kelvinmo/simplexrd": "<3.1.1", "kevinpapst/kimai2": "<1.16.7", "khodakhah/nodcms": "<=3", - "kimai/kimai": "<=2.52", + "kimai/kimai": "<=2.50", "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4", "klaviyo/magento2-extension": ">=1,<3", "knplabs/knp-snappy": "<=1.4.2", @@ -5637,7 +5637,7 @@ "laravel/fortify": "<1.11.1", "laravel/framework": "<10.48.29|>=11,<11.44.1|>=12,<12.1.1", "laravel/laravel": ">=5.4,<5.4.22", - "laravel/passport": ">=13,<13.7.1", + "laravel/passport": "<13.7.1", "laravel/pulse": "<1.3.1", "laravel/reverb": "<1.7", "laravel/socialite": ">=1,<2.0.10", @@ -5760,8 +5760,8 @@ "october/backend": "<1.1.2", "october/cms": "<1.0.469|==1.0.469|==1.0.471|==1.1.1", "october/october": "<3.7.5", - "october/rain": "<=3.7.13|>=4,<=4.1.9", - "october/system": "<=3.7.13|>=4,<=4.1.9", + "october/rain": "<1.0.472|>=1.1,<1.1.2", + "october/system": "<=3.7.12|>=4,<=4.0.11", "oliverklee/phpunit": "<3.5.15", "omeka/omeka-s": "<4.0.3", "onelogin/php-saml": "<2.21.1|>=3,<3.8.1|>=4,<4.3.1", @@ -5894,7 +5894,6 @@ "rudloff/rtmpdump-bin": "<=2.3.1", "s-cart/core": "<=9.0.5", "s-cart/s-cart": "<6.9", - "s9y/serendipity": "<2.6", "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1", "sabre/dav": ">=1.6,<1.7.11|>=1.8,<1.8.9", "saloonphp/saloon": "<4", @@ -6124,7 +6123,6 @@ "webcoast/deferred-image-processing": "<1.0.2", "webklex/laravel-imap": "<5.3", "webklex/php-imap": "<5.3", - "webonyx/graphql-php": "<=15.31.4", "webpa/webpa": "<3.1.2", "webreinvent/vaahcms": "<=2.3.1", "wikibase/wikibase": "<=1.39.3", @@ -6144,7 +6142,7 @@ "wpcloud/wp-stateless": "<3.2", "wpglobus/wpglobus": "<=1.9.6", "wpmetabox/meta-box": "<5.11.2", - "wwbn/avideo": "<=29", + "wwbn/avideo": "<=26", "xataface/xataface": "<3", "xpressengine/xpressengine": "<3.0.15", "yab/quarx": "<2.4.5", @@ -6244,7 +6242,7 @@ "type": "tidelift" } ], - "time": "2026-04-15T00:40:17+00:00" + "time": "2026-04-10T21:13:58+00:00" }, { "name": "sebastian/diff", @@ -6787,7 +6785,7 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.35.0", + "version": "v1.34.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -6845,7 +6843,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.35.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.34.0" }, "funding": [ { @@ -6869,7 +6867,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.35.0", + "version": "v1.34.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -6930,7 +6928,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.35.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.34.0" }, "funding": [ { @@ -6954,7 +6952,7 @@ }, { "name": "symfony/polyfill-php81", - "version": "v1.35.0", + "version": "v1.34.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -7010,7 +7008,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.35.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.34.0" }, "funding": [ { diff --git a/mago-schema.json b/mago-schema.json index 6d8bf9d4..a4a12e52 100644 --- a/mago-schema.json +++ b/mago-schema.json @@ -9,11 +9,6 @@ "description": "Allow accessing array keys that may not be defined without reporting an issue.", "type": "boolean" }, - "allow-side-effects-in-conditions": { - "default": true, - "description": "Whether to allow calls to impure functions inside conditions.\n\nWhen set to `false`, any call to a function not marked `@pure` or\n`@mutation-free` inside an `if`, `while`, `for`, ternary, or `match`\ncondition is reported. This helps catch surprising evaluation-order\nbugs where a side effect in one part of a condition silently alters\na variable used in another part.\n\nDefaults to `true` (impure calls in conditions are allowed).", - "type": "boolean" - }, "analyze-dead-code": { "default": false, "description": "Whether to analyze dead code.", @@ -103,11 +98,6 @@ }, "type": "array" }, - "find-overly-wide-return-types": { - "default": false, - "description": "Whether to warn when a function's declared return type contains a branch the body never\nactually returns (e.g. `: string|false` on a function that always returns a string).", - "type": "boolean" - }, "find-unused-definitions": { "default": true, "description": "Whether to find unused definitions.", @@ -157,12 +147,11 @@ "performance": { "$ref": "#/$defs/PerformanceConfiguration", "default": { - "array-combination-threshold": 32, + "array-combination-threshold": 128, "consensus-limit-threshold": 256, "disjunction-complexity-threshold": 4096, "formula-size-threshold": 512, "integer-combination-threshold": 128, - "loop-assignment-depth-threshold": 1, "negation-complexity-threshold": 4096, "saturation-complexity-threshold": 8192, "string-combination-threshold": 128 @@ -282,33 +271,6 @@ ], "description": "An entry that can be either a simple string or an object with name and optional help." }, - "DisallowedTypeEntry": { - "anyOf": [ - { - "description": "Simple string entry (just the name).", - "type": "string" - }, - { - "description": "Entry with name and optional help message.", - "properties": { - "help": { - "type": [ - "null", - "string" - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - } - ], - "description": "An entry that can be either a simple string or an object with name and optional help." - }, "EndOfLine": { "description": "Specifies the style of line endings.", "enum": [ @@ -328,16 +290,6 @@ "description": "Whether to align consecutive assignment-like constructs in columns.\n\nWhen enabled, consecutive variable assignments, class properties, class constants,\nglobal constants, array key-value pairs, and backed enum cases are column-aligned.\n\nFor arrays, this applies to multiline or width-broken mappings. Compact inline arrays\nstay compact and are not padded into columns.\n\nExample with `true`:\n```php\n$foo = 1;\n$b = 2;\n$ccccccc = 3;\n\nclass X {\n public string $foo = 1;\n public readonly int $barrrr = 2;\n}\n```\n\nExample with `false`:\n```php\n$foo = 1;\n$b = 2;\n$ccccccc = 3;\n```\n\nNote: Blank lines and comments break alignment runs. In class bodies,\ndifferent member types (properties vs constants) are aligned separately.\n\nDefault: false", "type": "boolean" }, - "align-named-arguments": { - "default": false, - "description": "Whether to align named arguments in multiline argument lists.\n\nWhen enabled:\n```php\nsome_function(\n short: 1,\n longerName: 2,\n longestName: 3,\n);\n```\n\nSingle-line argument lists remain inline, and positional arguments are not aligned.\n\nDefault: false", - "type": "boolean" - }, - "align-parameters": { - "default": false, - "description": "Whether to align multiline function and method parameter lists by the variable column.\n\nThis is especially useful for promoted constructor properties with visibility modifiers.\n\nDefault: false", - "type": "boolean" - }, "always-break-attribute-named-argument-lists": { "default": false, "description": "Whether to always break named argument lists in attributes into multiple lines.\n\nWhen enabled:\n```php\n#[SomeAttribute(\n argument1: 'value1',\n argument2: 'value2',\n)]\nclass Foo {}\n```\n\nDefault: false", @@ -560,16 +512,6 @@ "default": "question", "description": "How to format null type hints.\n\nWith `Question`:\n```php\nfunction foo(\n ?string $a,\n null|int|string $b,\n int|null|string $c,\n) {}\n```\n\nWith `NullPipe`:\n```php\nfunction foo(\n null|string $a,\n null|int|string $b,\n int|null|string $c,\n) {}\n```\n\nWith `NullPipeLast`:\n```php\nfunction foo(\n string|null $a,\n int|string|null $b,\n int|string|null $c,\n) {}\n```\n\nDefault: `Question`" }, - "omit-redundant-arithmetic-binary-expression-parentheses": { - "default": false, - "description": "Whether to omit redundant parentheses around arithmetic binary expressions under comparison and null coalesce expressions.\n\nWhen enabled, parentheses are omitted where PHP precedence already preserves meaning:\n```php\nif ($i === $retries - 1) {\n}\n```\n\nWhen disabled, arithmetic binary expressions keep Mago's default grouping style:\n```php\nif ($i === ($retries - 1)) {\n}\n```\n\nDefault: false", - "type": "boolean" - }, - "omit-redundant-bitwise-binary-expression-parentheses": { - "default": false, - "description": "Whether to omit redundant parentheses around bitwise binary child expressions.\n\nWhen enabled, parentheses are omitted around bitwise binary child expressions where PHP precedence and\nassociativity already preserve meaning:\n```php\nif ($mask === $flags << 1) {\n}\n```\n\nWhen disabled, bitwise binary child expressions keep Mago's default grouping style:\n```php\nif ($mask === ($flags << 1)) {\n}\n```\n\nDefault: false", - "type": "boolean" - }, "opening-tag-on-own-line": { "default": true, "description": "Whether the opening `method1()\n ->method2()\n ->method3();\n```\n\nWhen disabled:\n```php\n$object\n ->method1()\n ->method2()\n ->method3();\n```\n\nDefault: false", - "type": "boolean" - }, "preserve-breaking-parameter-list": { "default": false, "description": "Whether to preserve line breaks in parameter lists, even if they could fit on a single line.\n\nDefault: false", @@ -896,7 +833,7 @@ "type": "string" }, { - "description": "Ignore a code in specific paths or glob patterns:\n`{ code = \"code2\", in = [\"tests/\", \"src/**/*.php\"] }`", + "description": "Ignore a code in specific paths: `{ code = \"code2\", in = \"path/\" }`", "properties": { "code": { "type": "string" @@ -915,7 +852,7 @@ "type": "object" } ], - "description": "Represents an entry in the analyzer's `ignore` configuration.\n\nCan be either a plain code string (ignored everywhere) or a scoped entry\nthat only ignores a code in specific paths. Scoped paths accept both\nplain directory/file prefixes (e.g. `\"tests/\"`, `\"src/Legacy.php\"`) and\nglob patterns (e.g. `\"src/**/*.php\"`); entries\ncontaining any of `*`, `?`, `[`, `{` are matched with [`ExclusionMatcher`]." + "description": "Represents an entry in the analyzer's `ignore` configuration.\n\nCan be either a plain code string (ignored everywhere) or a scoped entry\nthat only ignores a code in specific paths." }, "Level": { "description": "Represents the severity level of an issue.", @@ -1053,11 +990,6 @@ "functions": [], "level": "Warning" }, - "disallowed-type-instantiation": { - "enabled": false, - "level": "Warning", - "types": [] - }, "enum-name": { "enabled": true, "level": "Help" @@ -1309,10 +1241,6 @@ "enabled": false, "level": "Warning" }, - "no-literal-namespace-string": { - "enabled": false, - "level": "Warning" - }, "no-literal-password": { "enabled": true, "level": "Error" @@ -1329,10 +1257,6 @@ "enabled": true, "level": "Help" }, - "no-null-property-init": { - "enabled": false, - "level": "Help" - }, "no-only": { "enabled": true, "level": "Error" @@ -1433,25 +1357,6 @@ "enabled": true, "level": "Warning" }, - "no-service-state-mutation": { - "allowed-methods": [ - "__construct", - "reset" - ], - "enabled": false, - "exclude-namespaces": [ - "App\\DTO\\", - "App\\Entity\\", - "App\\ValueObject\\" - ], - "include-namespaces": [ - "App\\" - ], - "level": "Warning", - "reset-interfaces": [ - "Symfony\\Contracts\\Service\\ResetInterface" - ] - }, "no-shell-execute-string": { "enabled": true, "level": "Error" @@ -1468,13 +1373,6 @@ "enabled": true, "level": "Warning" }, - "no-side-effects-with-declarations": { - "allow-class-alias": true, - "allow-class-exists": true, - "allow-conditional-declarations": true, - "enabled": false, - "level": "Warning" - }, "no-sprintf-concat": { "enabled": true, "level": "Warning" @@ -1638,11 +1536,6 @@ "enabled": true, "level": "Warning" }, - "string-style": { - "enabled": false, - "level": "Note", - "style": "interpolation" - }, "switch-continue-to-break": { "enabled": false, "level": "Warning" @@ -1770,8 +1663,8 @@ "description": "Performance tuning settings for the analyzer.\n\nThese thresholds control the complexity limits for logical formula operations.\nAdjusting these values allows trading off between analysis precision and speed.", "properties": { "array-combination-threshold": { - "default": 32, - "description": "Maximum number of array elements to track individually.\n\nWhen building array types through repeated push operations (`$arr[] = ...`),\nthis limits how many individual elements are tracked before generalizing\nto a simpler array type. This prevents memory explosion on files with\nthousands of array pushes.\n\nDefaults to `32`.", + "default": 128, + "description": "Maximum number of array elements to track individually.\n\nWhen building array types through repeated push operations (`$arr[] = ...`),\nthis limits how many individual elements are tracked before generalizing\nto a simpler array type. This prevents memory explosion on files with\nthousands of array pushes.\n\nDefaults to `128`.", "format": "uint16", "maximum": 65535, "minimum": 0, @@ -1809,14 +1702,6 @@ "minimum": 0, "type": "integer" }, - "loop-assignment-depth-threshold": { - "default": 1, - "description": "Maximum depth of the loop assignment dependency graph that the\nfixed-point analyzer will explore when re-analysing loop bodies.\n\nThe analyzer uses fixed-point iteration to propagate widened types\nalong loop-carried dependency chains. A chain of length `N` can\nrequire up to `N` extra passes for the type at the end of the chain\nto fully stabilise, and each pass re-analyses the entire loop body.\nOn large, complex loops the per-pass cost dominates file analysis\ntime.\n\nThe default of `1` means each loop body is re-analysed at most once\nafter the initial pass; enough to stabilise virtually all real-world\ncode while keeping analysis cost bounded. Projects that require\nmaximally precise narrowing of long loop-carried chains can raise\nthis value (typically to `2` or `3`) at the cost of significantly\nslower analysis on complex files. Setting this to `0` disables\nfixed-point iteration entirely.\n\nDefaults to `1`.", - "format": "uint8", - "maximum": 255, - "minimum": 0, - "type": "integer" - }, "negation-complexity-threshold": { "default": 4096, "description": "Maximum cumulative complexity during formula negation.\n\nControls how complex the negation of a formula can become.\nIf exceeded, negation gives up to avoid exponential blowup.\n\nDefaults to `4096`.", @@ -1989,26 +1874,6 @@ "type": "object" }, "RuleSettings101": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": true, - "type": "boolean" - }, - "exclude": { - "items": { - "type": "string" - }, - "type": "array" - }, - "level": { - "$ref": "#/$defs/Level", - "default": "Warning" - } - }, - "type": "object" - }, - "RuleSettings102": { "additionalProperties": false, "properties": { "enabled": { @@ -2028,7 +1893,7 @@ }, "type": "object" }, - "RuleSettings103": { + "RuleSettings102": { "additionalProperties": false, "properties": { "enabled": { @@ -2054,7 +1919,7 @@ }, "type": "object" }, - "RuleSettings104": { + "RuleSettings103": { "additionalProperties": false, "properties": { "enabled": { @@ -2074,7 +1939,7 @@ }, "type": "object" }, - "RuleSettings105": { + "RuleSettings104": { "additionalProperties": false, "properties": { "enabled": { @@ -2094,7 +1959,7 @@ }, "type": "object" }, - "RuleSettings106": { + "RuleSettings105": { "additionalProperties": false, "properties": { "enabled": { @@ -2114,7 +1979,7 @@ }, "type": "object" }, - "RuleSettings107": { + "RuleSettings106": { "additionalProperties": false, "properties": { "enabled": { @@ -2134,7 +1999,7 @@ }, "type": "object" }, - "RuleSettings108": { + "RuleSettings107": { "additionalProperties": false, "properties": { "enabled": { @@ -2154,6 +2019,26 @@ }, "type": "object" }, + "RuleSettings108": { + "additionalProperties": false, + "properties": { + "enabled": { + "default": true, + "type": "boolean" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + }, + "level": { + "$ref": "#/$defs/Level", + "default": "Warning" + } + }, + "type": "object" + }, "RuleSettings109": { "additionalProperties": false, "properties": { @@ -2253,7 +2138,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" + "default": "Error" } }, "type": "object" @@ -2273,7 +2158,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Error" + "default": "Warning" } }, "type": "object" @@ -2381,6 +2266,10 @@ "RuleSettings119": { "additionalProperties": false, "properties": { + "allow-loose-behavior": { + "default": false, + "type": "boolean" + }, "enabled": { "default": true, "type": "boolean" @@ -2421,7 +2310,7 @@ "RuleSettings120": { "additionalProperties": false, "properties": { - "allow-loose-behavior": { + "allow-disabling": { "default": false, "type": "boolean" }, @@ -2445,10 +2334,6 @@ "RuleSettings121": { "additionalProperties": false, "properties": { - "allow-disabling": { - "default": false, - "type": "boolean" - }, "enabled": { "default": true, "type": "boolean" @@ -2501,7 +2386,14 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" + "default": "Error" + }, + "threshold": { + "default": 20, + "format": "uint16", + "maximum": 65535, + "minimum": 0, + "type": "integer" } }, "type": "object" @@ -2509,6 +2401,14 @@ "RuleSettings124": { "additionalProperties": false, "properties": { + "count-hooks": { + "default": false, + "type": "boolean" + }, + "count-setters-and-getters": { + "default": false, + "type": "boolean" + }, "enabled": { "default": true, "type": "boolean" @@ -2524,7 +2424,7 @@ "default": "Error" }, "threshold": { - "default": 20, + "default": 10, "format": "uint16", "maximum": 65535, "minimum": 0, @@ -2536,14 +2436,6 @@ "RuleSettings125": { "additionalProperties": false, "properties": { - "count-hooks": { - "default": false, - "type": "boolean" - }, - "count-setters-and-getters": { - "default": false, - "type": "boolean" - }, "enabled": { "default": true, "type": "boolean" @@ -2583,43 +2475,16 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Error" + "default": "Help" }, - "threshold": { - "default": 10, - "format": "uint16", - "maximum": 65535, - "minimum": 0, - "type": "integer" + "psr": { + "default": false, + "type": "boolean" } }, "type": "object" }, "RuleSettings127": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": true, - "type": "boolean" - }, - "exclude": { - "items": { - "type": "string" - }, - "type": "array" - }, - "level": { - "$ref": "#/$defs/Level", - "default": "Help" - }, - "psr": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "RuleSettings128": { "additionalProperties": false, "properties": { "enabled": { @@ -2639,7 +2504,7 @@ }, "type": "object" }, - "RuleSettings129": { + "RuleSettings128": { "additionalProperties": false, "properties": { "camel": { @@ -2671,6 +2536,26 @@ }, "type": "object" }, + "RuleSettings129": { + "additionalProperties": false, + "properties": { + "enabled": { + "default": true, + "type": "boolean" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + }, + "level": { + "$ref": "#/$defs/Level", + "default": "Help" + } + }, + "type": "object" + }, "RuleSettings13": { "additionalProperties": false, "properties": { @@ -2695,7 +2580,7 @@ "additionalProperties": false, "properties": { "enabled": { - "default": true, + "default": false, "type": "boolean" }, "exclude": { @@ -2706,7 +2591,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Help" + "default": "Warning" } }, "type": "object" @@ -2715,7 +2600,7 @@ "additionalProperties": false, "properties": { "enabled": { - "default": false, + "default": true, "type": "boolean" }, "exclude": { @@ -2735,7 +2620,7 @@ "additionalProperties": false, "properties": { "enabled": { - "default": true, + "default": false, "type": "boolean" }, "exclude": { @@ -2766,7 +2651,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" + "default": "Error" } }, "type": "object" @@ -2775,7 +2660,7 @@ "additionalProperties": false, "properties": { "enabled": { - "default": false, + "default": true, "type": "boolean" }, "exclude": { @@ -2794,23 +2679,8 @@ "RuleSettings135": { "additionalProperties": false, "properties": { - "allow-class-alias": { - "default": true, - "description": "When true, top-level `class_alias(...)` calls are allowed alongside\ndeclarations.", - "type": "boolean" - }, - "allow-class-exists": { - "default": true, - "description": "When true, top-level `class_exists(...)` calls are allowed alongside\ndeclarations. This is commonly used to trigger autoloading/preloading.", - "type": "boolean" - }, - "allow-conditional-declarations": { - "default": true, - "description": "When true, conditional declarations (`if (...) { class Foo {} }`)\nare allowed alongside declarations. This covers the common pattern\nof polyfilling a class depending on an extension or PHP version.", - "type": "boolean" - }, "enabled": { - "default": false, + "default": true, "type": "boolean" }, "exclude": { @@ -2821,7 +2691,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" + "default": "Error" } }, "type": "object" @@ -2839,6 +2709,16 @@ }, "type": "array" }, + "known-sink-functions": { + "default": [ + "printf" + ], + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, "level": { "$ref": "#/$defs/Level", "default": "Error" @@ -2869,29 +2749,27 @@ "RuleSettings138": { "additionalProperties": false, "properties": { - "enabled": { + "camel": { "default": true, "type": "boolean" }, + "either": { + "default": false, + "type": "boolean" + }, + "enabled": { + "default": false, + "type": "boolean" + }, "exclude": { "items": { "type": "string" }, "type": "array" }, - "known-sink-functions": { - "default": [ - "printf" - ], - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, "level": { "$ref": "#/$defs/Level", - "default": "Error" + "default": "Help" } }, "type": "object" @@ -2955,16 +2833,8 @@ "RuleSettings140": { "additionalProperties": false, "properties": { - "camel": { - "default": true, - "type": "boolean" - }, - "either": { - "default": false, - "type": "boolean" - }, "enabled": { - "default": false, + "default": true, "type": "boolean" }, "exclude": { @@ -2975,7 +2845,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Help" + "default": "Warning" } }, "type": "object" @@ -2995,7 +2865,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Error" + "default": "Warning" } }, "type": "object" @@ -3055,7 +2925,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" + "default": "Help" } }, "type": "object" @@ -3063,18 +2933,8 @@ "RuleSettings145": { "additionalProperties": false, "properties": { - "allowed-methods": { - "default": [ - "__construct", - "reset" - ], - "items": { - "type": "string" - }, - "type": "array" - }, "enabled": { - "default": false, + "default": true, "type": "boolean" }, "exclude": { @@ -3083,38 +2943,9 @@ }, "type": "array" }, - "exclude-namespaces": { - "default": [ - "App\\DTO\\", - "App\\Entity\\", - "App\\ValueObject\\" - ], - "items": { - "type": "string" - }, - "type": "array" - }, - "include-namespaces": { - "default": [ - "App\\" - ], - "items": { - "type": "string" - }, - "type": "array" - }, "level": { "$ref": "#/$defs/Level", "default": "Warning" - }, - "reset-interfaces": { - "default": [ - "Symfony\\Contracts\\Service\\ResetInterface" - ], - "items": { - "type": "string" - }, - "type": "array" } }, "type": "object" @@ -3123,7 +2954,7 @@ "additionalProperties": false, "properties": { "enabled": { - "default": true, + "default": false, "type": "boolean" }, "exclude": { @@ -3143,7 +2974,7 @@ "additionalProperties": false, "properties": { "enabled": { - "default": true, + "default": false, "type": "boolean" }, "exclude": { @@ -3183,7 +3014,7 @@ "additionalProperties": false, "properties": { "enabled": { - "default": false, + "default": true, "type": "boolean" }, "exclude": { @@ -3195,6 +3026,13 @@ "level": { "$ref": "#/$defs/Level", "default": "Warning" + }, + "min-digits": { + "default": 5, + "description": "Minimum number of digits before suggesting separators.", + "format": "uint", + "minimum": 0, + "type": "integer" } }, "type": "object" @@ -3268,11 +3106,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Note" - }, - "style": { - "$ref": "#/$defs/StringStyleOption", - "default": "interpolation" + "default": "Help" } }, "type": "object" @@ -3281,7 +3115,7 @@ "additionalProperties": false, "properties": { "enabled": { - "default": true, + "default": false, "type": "boolean" }, "exclude": { @@ -3301,7 +3135,7 @@ "additionalProperties": false, "properties": { "enabled": { - "default": true, + "default": false, "type": "boolean" }, "exclude": { @@ -3312,14 +3146,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" - }, - "min-digits": { - "default": 5, - "description": "Minimum number of digits before suggesting separators.", - "format": "uint", - "minimum": 0, - "type": "integer" + "default": "Help" } }, "type": "object" @@ -3339,7 +3166,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Help" + "default": "Warning" } }, "type": "object" @@ -3348,7 +3175,7 @@ "additionalProperties": false, "properties": { "enabled": { - "default": false, + "default": true, "type": "boolean" }, "exclude": { @@ -3359,7 +3186,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Help" + "default": "Warning" } }, "type": "object" @@ -3368,7 +3195,7 @@ "additionalProperties": false, "properties": { "enabled": { - "default": false, + "default": true, "type": "boolean" }, "exclude": { @@ -3388,7 +3215,7 @@ "additionalProperties": false, "properties": { "enabled": { - "default": false, + "default": true, "type": "boolean" }, "exclude": { @@ -3399,7 +3226,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Help" + "default": "Error" } }, "type": "object" @@ -3408,7 +3235,27 @@ "additionalProperties": false, "properties": { "enabled": { - "default": false, + "default": true, + "type": "boolean" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + }, + "level": { + "$ref": "#/$defs/Level", + "default": "Error" + } + }, + "type": "object" + }, + "RuleSettings159": { + "additionalProperties": false, + "properties": { + "enabled": { + "default": true, "type": "boolean" }, "exclude": { @@ -3424,11 +3271,11 @@ }, "type": "object" }, - "RuleSettings159": { + "RuleSettings16": { "additionalProperties": false, "properties": { "enabled": { - "default": false, + "default": true, "type": "boolean" }, "exclude": { @@ -3444,134 +3291,7 @@ }, "type": "object" }, - "RuleSettings16": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - }, - "exclude": { - "items": { - "type": "string" - }, - "type": "array" - }, - "level": { - "$ref": "#/$defs/Level", - "default": "Warning" - }, - "types": { - "default": [], - "items": { - "$ref": "#/$defs/DisallowedTypeEntry" - }, - "type": "array" - } - }, - "type": "object" - }, "RuleSettings160": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": true, - "type": "boolean" - }, - "exclude": { - "items": { - "type": "string" - }, - "type": "array" - }, - "level": { - "$ref": "#/$defs/Level", - "default": "Warning" - } - }, - "type": "object" - }, - "RuleSettings161": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": true, - "type": "boolean" - }, - "exclude": { - "items": { - "type": "string" - }, - "type": "array" - }, - "level": { - "$ref": "#/$defs/Level", - "default": "Warning" - } - }, - "type": "object" - }, - "RuleSettings162": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": true, - "type": "boolean" - }, - "exclude": { - "items": { - "type": "string" - }, - "type": "array" - }, - "level": { - "$ref": "#/$defs/Level", - "default": "Error" - } - }, - "type": "object" - }, - "RuleSettings163": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": true, - "type": "boolean" - }, - "exclude": { - "items": { - "type": "string" - }, - "type": "array" - }, - "level": { - "$ref": "#/$defs/Level", - "default": "Error" - } - }, - "type": "object" - }, - "RuleSettings164": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": true, - "type": "boolean" - }, - "exclude": { - "items": { - "type": "string" - }, - "type": "array" - }, - "level": { - "$ref": "#/$defs/Level", - "default": "Warning" - } - }, - "type": "object" - }, - "RuleSettings165": { "additionalProperties": false, "properties": { "classes": { @@ -3631,47 +3351,7 @@ }, "type": "object" }, - "RuleSettings166": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - }, - "exclude": { - "items": { - "type": "string" - }, - "type": "array" - }, - "level": { - "$ref": "#/$defs/Level", - "default": "Warning" - } - }, - "type": "object" - }, "RuleSettings17": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": true, - "type": "boolean" - }, - "exclude": { - "items": { - "type": "string" - }, - "type": "array" - }, - "level": { - "$ref": "#/$defs/Level", - "default": "Help" - } - }, - "type": "object" - }, - "RuleSettings18": { "additionalProperties": false, "properties": { "enabled": { @@ -3707,7 +3387,7 @@ }, "type": "object" }, - "RuleSettings19": { + "RuleSettings18": { "additionalProperties": false, "properties": { "constructor-threshold": { @@ -3744,6 +3424,26 @@ }, "type": "object" }, + "RuleSettings19": { + "additionalProperties": false, + "properties": { + "enabled": { + "default": true, + "type": "boolean" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + }, + "level": { + "$ref": "#/$defs/Level", + "default": "Error" + } + }, + "type": "object" + }, "RuleSettings2": { "additionalProperties": false, "properties": { @@ -3765,26 +3465,6 @@ "type": "object" }, "RuleSettings20": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": true, - "type": "boolean" - }, - "exclude": { - "items": { - "type": "string" - }, - "type": "array" - }, - "level": { - "$ref": "#/$defs/Level", - "default": "Error" - } - }, - "type": "object" - }, - "RuleSettings21": { "additionalProperties": false, "properties": { "difficulty-threshold": { @@ -3819,7 +3499,7 @@ }, "type": "object" }, - "RuleSettings22": { + "RuleSettings21": { "additionalProperties": false, "properties": { "enabled": { @@ -3844,7 +3524,7 @@ }, "type": "object" }, - "RuleSettings23": { + "RuleSettings22": { "additionalProperties": false, "properties": { "check-first-argument": { @@ -3875,7 +3555,7 @@ }, "type": "object" }, - "RuleSettings24": { + "RuleSettings23": { "additionalProperties": false, "properties": { "enabled": { @@ -3895,7 +3575,7 @@ }, "type": "object" }, - "RuleSettings25": { + "RuleSettings24": { "additionalProperties": false, "properties": { "enabled": { @@ -3915,7 +3595,7 @@ }, "type": "object" }, - "RuleSettings26": { + "RuleSettings25": { "additionalProperties": false, "properties": { "camel": { @@ -3950,7 +3630,7 @@ }, "type": "object" }, - "RuleSettings27": { + "RuleSettings26": { "additionalProperties": false, "properties": { "enabled": { @@ -3970,6 +3650,26 @@ }, "type": "object" }, + "RuleSettings27": { + "additionalProperties": false, + "properties": { + "enabled": { + "default": true, + "type": "boolean" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + }, + "level": { + "$ref": "#/$defs/Level", + "default": "Error" + } + }, + "type": "object" + }, "RuleSettings28": { "additionalProperties": false, "properties": { @@ -4005,7 +3705,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Error" + "default": "Warning" } }, "type": "object" @@ -4105,7 +3805,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" + "default": "Error" } }, "type": "object" @@ -4165,7 +3865,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Error" + "default": "Warning" } }, "type": "object" @@ -4173,6 +3873,10 @@ "RuleSettings37": { "additionalProperties": false, "properties": { + "check-functions": { + "default": false, + "type": "boolean" + }, "enabled": { "default": true, "type": "boolean" @@ -4193,10 +3897,6 @@ "RuleSettings38": { "additionalProperties": false, "properties": { - "check-functions": { - "default": false, - "type": "boolean" - }, "enabled": { "default": true, "type": "boolean" @@ -4269,7 +3969,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" + "default": "Note" } }, "type": "object" @@ -4289,7 +3989,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Note" + "default": "Help" } }, "type": "object" @@ -4489,7 +4189,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Help" + "default": "Warning" } }, "type": "object" @@ -4509,7 +4209,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" + "default": "Help" } }, "type": "object" @@ -4609,7 +4309,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Help" + "default": "Warning" } }, "type": "object" @@ -4629,7 +4329,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" + "default": "Help" } }, "type": "object" @@ -4649,7 +4349,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Help" + "default": "Warning" } }, "type": "object" @@ -4669,7 +4369,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" + "default": "Help" } }, "type": "object" @@ -4713,7 +4413,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Help" + "default": "Note" } }, "type": "object" @@ -4733,7 +4433,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Note" + "default": "Help" } }, "type": "object" @@ -4753,7 +4453,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Help" + "default": "Error" } }, "type": "object" @@ -4773,7 +4473,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Error" + "default": "Warning" } }, "type": "object" @@ -4873,7 +4573,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" + "default": "Note" } }, "type": "object" @@ -4893,7 +4593,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Note" + "default": "Error" } }, "type": "object" @@ -5002,7 +4702,7 @@ "additionalProperties": false, "properties": { "enabled": { - "default": true, + "default": false, "type": "boolean" }, "exclude": { @@ -5013,32 +4713,12 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Error" + "default": "Note" } }, "type": "object" }, "RuleSettings75": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - }, - "exclude": { - "items": { - "type": "string" - }, - "type": "array" - }, - "level": { - "$ref": "#/$defs/Level", - "default": "Note" - } - }, - "type": "object" - }, - "RuleSettings76": { "additionalProperties": false, "properties": { "enabled": { @@ -5058,7 +4738,7 @@ }, "type": "object" }, - "RuleSettings77": { + "RuleSettings76": { "additionalProperties": false, "properties": { "allow-array-checks": { @@ -5082,7 +4762,7 @@ }, "type": "object" }, - "RuleSettings78": { + "RuleSettings77": { "additionalProperties": false, "properties": { "enabled": { @@ -5102,7 +4782,7 @@ }, "type": "object" }, - "RuleSettings79": { + "RuleSettings78": { "additionalProperties": false, "properties": { "enabled": { @@ -5126,6 +4806,26 @@ }, "type": "object" }, + "RuleSettings79": { + "additionalProperties": false, + "properties": { + "enabled": { + "default": true, + "type": "boolean" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + }, + "level": { + "$ref": "#/$defs/Level", + "default": "Warning" + } + }, + "type": "object" + }, "RuleSettings8": { "additionalProperties": false, "properties": { @@ -5165,7 +4865,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" + "default": "Help" } }, "type": "object" @@ -5191,26 +4891,6 @@ "type": "object" }, "RuleSettings82": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": true, - "type": "boolean" - }, - "exclude": { - "items": { - "type": "string" - }, - "type": "array" - }, - "level": { - "$ref": "#/$defs/Level", - "default": "Help" - } - }, - "type": "object" - }, - "RuleSettings83": { "additionalProperties": false, "properties": { "enabled": { @@ -5240,7 +4920,7 @@ }, "type": "object" }, - "RuleSettings84": { + "RuleSettings83": { "additionalProperties": false, "properties": { "enabled": { @@ -5260,11 +4940,31 @@ }, "type": "object" }, + "RuleSettings84": { + "additionalProperties": false, + "properties": { + "enabled": { + "default": true, + "type": "boolean" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + }, + "level": { + "$ref": "#/$defs/Level", + "default": "Warning" + } + }, + "type": "object" + }, "RuleSettings85": { "additionalProperties": false, "properties": { "enabled": { - "default": true, + "default": false, "type": "boolean" }, "exclude": { @@ -5275,7 +4975,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" + "default": "Help" } }, "type": "object" @@ -5324,7 +5024,7 @@ "additionalProperties": false, "properties": { "enabled": { - "default": false, + "default": true, "type": "boolean" }, "exclude": { @@ -5335,7 +5035,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Help" + "default": "Note" } }, "type": "object" @@ -5355,7 +5055,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Note" + "default": "Help" } }, "type": "object" @@ -5395,7 +5095,7 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Help" + "default": "Warning" } }, "type": "object" @@ -5495,36 +5195,16 @@ }, "level": { "$ref": "#/$defs/Level", - "default": "Warning" + "default": "Help" + }, + "psr": { + "default": false, + "type": "boolean" } }, "type": "object" }, "RuleSettings96": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": true, - "type": "boolean" - }, - "exclude": { - "items": { - "type": "string" - }, - "type": "array" - }, - "level": { - "$ref": "#/$defs/Level", - "default": "Help" - }, - "psr": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "RuleSettings97": { "additionalProperties": false, "properties": { "enabled": { @@ -5544,7 +5224,7 @@ }, "type": "object" }, - "RuleSettings98": { + "RuleSettings97": { "additionalProperties": false, "properties": { "check-functions": { @@ -5568,7 +5248,7 @@ }, "type": "object" }, - "RuleSettings99": { + "RuleSettings98": { "additionalProperties": false, "properties": { "camel": { @@ -5596,6 +5276,26 @@ }, "type": "object" }, + "RuleSettings99": { + "additionalProperties": false, + "properties": { + "enabled": { + "default": true, + "type": "boolean" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + }, + "level": { + "$ref": "#/$defs/Level", + "default": "Warning" + } + }, + "type": "object" + }, "RulesSettings": { "additionalProperties": false, "properties": { @@ -5666,7 +5366,7 @@ } }, "constant-condition": { - "$ref": "#/$defs/RuleSettings130", + "$ref": "#/$defs/RuleSettings129", "default": { "enabled": true, "level": "Help" @@ -5689,21 +5389,21 @@ } }, "deprecated-cast": { - "$ref": "#/$defs/RuleSettings34", + "$ref": "#/$defs/RuleSettings33", "default": { "enabled": true, "level": "Error" } }, "deprecated-shell-execute-string": { - "$ref": "#/$defs/RuleSettings35", + "$ref": "#/$defs/RuleSettings34", "default": { "enabled": true, "level": "Error" } }, "deprecated-switch-semicolon": { - "$ref": "#/$defs/RuleSettings36", + "$ref": "#/$defs/RuleSettings35", "default": { "enabled": true, "level": "Error" @@ -5718,23 +5418,15 @@ "level": "Warning" } }, - "disallowed-type-instantiation": { - "$ref": "#/$defs/RuleSettings16", - "default": { - "enabled": false, - "level": "Warning", - "types": [] - } - }, "enum-name": { - "$ref": "#/$defs/RuleSettings17", + "$ref": "#/$defs/RuleSettings16", "default": { "enabled": true, "level": "Help" } }, "excessive-nesting": { - "$ref": "#/$defs/RuleSettings18", + "$ref": "#/$defs/RuleSettings17", "default": { "enabled": true, "function-like-threshold": null, @@ -5743,7 +5435,7 @@ } }, "excessive-parameter-list": { - "$ref": "#/$defs/RuleSettings19", + "$ref": "#/$defs/RuleSettings18", "default": { "constructor-threshold": null, "enabled": true, @@ -5752,21 +5444,21 @@ } }, "explicit-nullable-param": { - "$ref": "#/$defs/RuleSettings100", + "$ref": "#/$defs/RuleSettings99", "default": { "enabled": true, "level": "Warning" } }, "explicit-octal": { - "$ref": "#/$defs/RuleSettings101", + "$ref": "#/$defs/RuleSettings100", "default": { "enabled": true, "level": "Warning" } }, "file-name": { - "$ref": "#/$defs/RuleSettings98", + "$ref": "#/$defs/RuleSettings97", "default": { "check-functions": false, "enabled": true, @@ -5774,14 +5466,14 @@ } }, "final-controller": { - "$ref": "#/$defs/RuleSettings20", + "$ref": "#/$defs/RuleSettings19", "default": { "enabled": true, "level": "Error" } }, "function-name": { - "$ref": "#/$defs/RuleSettings99", + "$ref": "#/$defs/RuleSettings98", "default": { "camel": false, "either": false, @@ -5790,7 +5482,7 @@ } }, "halstead": { - "$ref": "#/$defs/RuleSettings21", + "$ref": "#/$defs/RuleSettings20", "default": { "difficulty-threshold": 12, "effort-threshold": 5000, @@ -5800,42 +5492,42 @@ } }, "identity-comparison": { - "$ref": "#/$defs/RuleSettings91", + "$ref": "#/$defs/RuleSettings90", "default": { "enabled": true, "level": "Warning" } }, "ineffective-format-ignore-next": { - "$ref": "#/$defs/RuleSettings92", + "$ref": "#/$defs/RuleSettings91", "default": { "enabled": true, "level": "Warning" } }, "ineffective-format-ignore-region": { - "$ref": "#/$defs/RuleSettings93", + "$ref": "#/$defs/RuleSettings92", "default": { "enabled": true, "level": "Warning" } }, "inline-variable-return": { - "$ref": "#/$defs/RuleSettings94", + "$ref": "#/$defs/RuleSettings93", "default": { "enabled": true, "level": "Warning" } }, "instanceof-stringable": { - "$ref": "#/$defs/RuleSettings95", + "$ref": "#/$defs/RuleSettings94", "default": { "enabled": true, "level": "Warning" } }, "interface-name": { - "$ref": "#/$defs/RuleSettings96", + "$ref": "#/$defs/RuleSettings95", "default": { "enabled": true, "level": "Help", @@ -5843,14 +5535,14 @@ } }, "invalid-open-tag": { - "$ref": "#/$defs/RuleSettings97", + "$ref": "#/$defs/RuleSettings96", "default": { "enabled": true, "level": "Note" } }, "kan-defect": { - "$ref": "#/$defs/RuleSettings22", + "$ref": "#/$defs/RuleSettings21", "default": { "enabled": true, "level": "Error", @@ -5858,7 +5550,7 @@ } }, "literal-named-argument": { - "$ref": "#/$defs/RuleSettings23", + "$ref": "#/$defs/RuleSettings22", "default": { "check-first-argument": false, "enabled": true, @@ -5867,28 +5559,28 @@ } }, "loop-does-not-iterate": { - "$ref": "#/$defs/RuleSettings24", + "$ref": "#/$defs/RuleSettings23", "default": { "enabled": true, "level": "Warning" } }, "lowercase-keyword": { - "$ref": "#/$defs/RuleSettings25", + "$ref": "#/$defs/RuleSettings24", "default": { "enabled": true, "level": "Help" } }, "lowercase-type-hint": { - "$ref": "#/$defs/RuleSettings90", + "$ref": "#/$defs/RuleSettings89", "default": { "enabled": true, "level": "Help" } }, "method-name": { - "$ref": "#/$defs/RuleSettings26", + "$ref": "#/$defs/RuleSettings25", "default": { "camel": true, "either": false, @@ -5898,14 +5590,14 @@ } }, "middleware-in-routes": { - "$ref": "#/$defs/RuleSettings146", + "$ref": "#/$defs/RuleSettings143", "default": { "enabled": true, "level": "Warning" } }, "missing-docs": { - "$ref": "#/$defs/RuleSettings165", + "$ref": "#/$defs/RuleSettings160", "default": { "classes": false, "constants": true, @@ -5922,42 +5614,42 @@ } }, "no-alias-function": { - "$ref": "#/$defs/RuleSettings89", + "$ref": "#/$defs/RuleSettings88", "default": { "enabled": true, "level": "Note" } }, "no-alternative-syntax": { - "$ref": "#/$defs/RuleSettings156", + "$ref": "#/$defs/RuleSettings152", "default": { "enabled": false, "level": "Warning" } }, "no-array-accumulation-in-loop": { - "$ref": "#/$defs/RuleSettings131", + "$ref": "#/$defs/RuleSettings130", "default": { "enabled": false, "level": "Warning" } }, "no-assign-in-argument": { - "$ref": "#/$defs/RuleSettings84", + "$ref": "#/$defs/RuleSettings83", "default": { "enabled": false, "level": "Warning" } }, "no-assign-in-condition": { - "$ref": "#/$defs/RuleSettings85", + "$ref": "#/$defs/RuleSettings84", "default": { "enabled": true, "level": "Warning" } }, "no-boolean-flag-parameter": { - "$ref": "#/$defs/RuleSettings83", + "$ref": "#/$defs/RuleSettings82", "default": { "enabled": true, "exclude-constructors": true, @@ -5966,56 +5658,56 @@ } }, "no-closing-tag": { - "$ref": "#/$defs/RuleSettings82", - "default": { - "enabled": true, - "level": "Help" - } - }, - "no-db-schema-change": { - "$ref": "#/$defs/RuleSettings162", - "default": { - "enabled": true, - "level": "Error" - } - }, - "no-debug-symbols": { - "$ref": "#/$defs/RuleSettings27", - "default": { - "enabled": true, - "level": "Note" - } - }, - "no-direct-db-query": { - "$ref": "#/$defs/RuleSettings161", - "default": { - "enabled": true, - "level": "Warning" - } - }, - "no-else-clause": { "$ref": "#/$defs/RuleSettings81", "default": { "enabled": true, "level": "Help" } }, + "no-db-schema-change": { + "$ref": "#/$defs/RuleSettings157", + "default": { + "enabled": true, + "level": "Error" + } + }, + "no-debug-symbols": { + "$ref": "#/$defs/RuleSettings26", + "default": { + "enabled": true, + "level": "Note" + } + }, + "no-direct-db-query": { + "$ref": "#/$defs/RuleSettings156", + "default": { + "enabled": true, + "level": "Warning" + } + }, + "no-else-clause": { + "$ref": "#/$defs/RuleSettings80", + "default": { + "enabled": true, + "level": "Help" + } + }, "no-empty": { - "$ref": "#/$defs/RuleSettings74", + "$ref": "#/$defs/RuleSettings73", "default": { "enabled": true, "level": "Error" } }, "no-empty-catch-clause": { - "$ref": "#/$defs/RuleSettings80", + "$ref": "#/$defs/RuleSettings79", "default": { "enabled": true, "level": "Warning" } }, "no-empty-comment": { - "$ref": "#/$defs/RuleSettings79", + "$ref": "#/$defs/RuleSettings78", "default": { "enabled": true, "level": "Note", @@ -6023,112 +5715,112 @@ } }, "no-empty-loop": { - "$ref": "#/$defs/RuleSettings78", + "$ref": "#/$defs/RuleSettings77", "default": { "enabled": true, "level": "Note" } }, "no-error-control-operator": { - "$ref": "#/$defs/RuleSettings73", - "default": { - "enabled": true, - "level": "Error" - } - }, - "no-eval": { "$ref": "#/$defs/RuleSettings72", "default": { "enabled": true, "level": "Error" } }, - "no-ffi": { + "no-eval": { "$ref": "#/$defs/RuleSettings71", "default": { "enabled": true, "level": "Error" } }, - "no-fully-qualified-global-class-like": { - "$ref": "#/$defs/RuleSettings86", - "default": { - "enabled": false, - "level": "Help" - } - }, - "no-fully-qualified-global-constant": { - "$ref": "#/$defs/RuleSettings87", - "default": { - "enabled": false, - "level": "Help" - } - }, - "no-fully-qualified-global-function": { - "$ref": "#/$defs/RuleSettings88", - "default": { - "enabled": false, - "level": "Help" - } - }, - "no-global": { + "no-ffi": { "$ref": "#/$defs/RuleSettings70", "default": { "enabled": true, "level": "Error" } }, - "no-goto": { + "no-fully-qualified-global-class-like": { + "$ref": "#/$defs/RuleSettings85", + "default": { + "enabled": false, + "level": "Help" + } + }, + "no-fully-qualified-global-constant": { + "$ref": "#/$defs/RuleSettings86", + "default": { + "enabled": false, + "level": "Help" + } + }, + "no-fully-qualified-global-function": { + "$ref": "#/$defs/RuleSettings87", + "default": { + "enabled": false, + "level": "Help" + } + }, + "no-global": { "$ref": "#/$defs/RuleSettings69", + "default": { + "enabled": true, + "level": "Error" + } + }, + "no-goto": { + "$ref": "#/$defs/RuleSettings68", "default": { "enabled": true, "level": "Note" } }, "no-hash-comment": { - "$ref": "#/$defs/RuleSettings67", - "default": { - "enabled": true, - "level": "Warning" - } - }, - "no-hash-emoji": { "$ref": "#/$defs/RuleSettings66", "default": { "enabled": true, "level": "Warning" } }, + "no-hash-emoji": { + "$ref": "#/$defs/RuleSettings65", + "default": { + "enabled": true, + "level": "Warning" + } + }, "no-ini-set": { - "$ref": "#/$defs/RuleSettings132", + "$ref": "#/$defs/RuleSettings131", "default": { "enabled": true, "level": "Warning" } }, "no-inline": { - "$ref": "#/$defs/RuleSettings134", + "$ref": "#/$defs/RuleSettings133", "default": { "enabled": false, "level": "Error" } }, "no-insecure-comparison": { - "$ref": "#/$defs/RuleSettings136", + "$ref": "#/$defs/RuleSettings134", "default": { "enabled": true, "level": "Error" } }, "no-is-null": { - "$ref": "#/$defs/RuleSettings75", + "$ref": "#/$defs/RuleSettings74", "default": { "enabled": false, "level": "Note" } }, "no-isset": { - "$ref": "#/$defs/RuleSettings77", + "$ref": "#/$defs/RuleSettings76", "default": { "allow-array-checks": false, "enabled": true, @@ -6136,361 +5828,315 @@ } }, "no-iterator-to-array-in-foreach": { - "$ref": "#/$defs/RuleSettings76", - "default": { - "enabled": false, - "level": "Warning" - } - }, - "no-literal-namespace-string": { - "$ref": "#/$defs/RuleSettings166", + "$ref": "#/$defs/RuleSettings75", "default": { "enabled": false, "level": "Warning" } }, "no-literal-password": { - "$ref": "#/$defs/RuleSettings137", + "$ref": "#/$defs/RuleSettings135", "default": { "enabled": true, "level": "Error" } }, "no-multi-assignments": { - "$ref": "#/$defs/RuleSettings64", + "$ref": "#/$defs/RuleSettings63", "default": { "enabled": true, "level": "Warning" } }, "no-nested-ternary": { - "$ref": "#/$defs/RuleSettings65", + "$ref": "#/$defs/RuleSettings64", "default": { "enabled": true, "level": "Warning" } }, "no-noop": { - "$ref": "#/$defs/RuleSettings62", + "$ref": "#/$defs/RuleSettings61", "default": { "enabled": true, "level": "Help" } }, - "no-null-property-init": { - "$ref": "#/$defs/RuleSettings159", - "default": { - "enabled": false, - "level": "Help" - } - }, "no-only": { - "$ref": "#/$defs/RuleSettings63", + "$ref": "#/$defs/RuleSettings62", "default": { "enabled": true, "level": "Error" } }, "no-parameter-shadowing": { - "$ref": "#/$defs/RuleSettings133", + "$ref": "#/$defs/RuleSettings132", "default": { "enabled": false, "level": "Warning" } }, "no-php-tag-terminator": { - "$ref": "#/$defs/RuleSettings61", + "$ref": "#/$defs/RuleSettings60", "default": { "enabled": true, "level": "Note" } }, "no-protected-in-final": { - "$ref": "#/$defs/RuleSettings60", + "$ref": "#/$defs/RuleSettings59", "default": { "enabled": true, "level": "Help" } }, "no-redundant-binary-string-prefix": { - "$ref": "#/$defs/RuleSettings44", - "default": { - "enabled": true, - "level": "Help" - } - }, - "no-redundant-block": { - "$ref": "#/$defs/RuleSettings56", - "default": { - "enabled": true, - "level": "Help" - } - }, - "no-redundant-continue": { - "$ref": "#/$defs/RuleSettings55", - "default": { - "enabled": true, - "level": "Help" - } - }, - "no-redundant-file": { - "$ref": "#/$defs/RuleSettings54", - "default": { - "enabled": true, - "level": "Help" - } - }, - "no-redundant-final": { - "$ref": "#/$defs/RuleSettings52", - "default": { - "enabled": true, - "level": "Help" - } - }, - "no-redundant-isset": { - "$ref": "#/$defs/RuleSettings47", - "default": { - "enabled": true, - "level": "Help" - } - }, - "no-redundant-label": { - "$ref": "#/$defs/RuleSettings50", - "default": { - "enabled": true, - "level": "Help" - } - }, - "no-redundant-literal-return": { - "$ref": "#/$defs/RuleSettings51", - "default": { - "enabled": true, - "level": "Warning" - } - }, - "no-redundant-math": { - "$ref": "#/$defs/RuleSettings49", - "default": { - "enabled": true, - "level": "Help" - } - }, - "no-redundant-method-override": { - "$ref": "#/$defs/RuleSettings46", - "default": { - "enabled": true, - "level": "Help" - } - }, - "no-redundant-nullsafe": { - "$ref": "#/$defs/RuleSettings48", - "default": { - "enabled": true, - "level": "Help" - } - }, - "no-redundant-parentheses": { - "$ref": "#/$defs/RuleSettings45", - "default": { - "enabled": true, - "level": "Help" - } - }, - "no-redundant-readonly": { - "$ref": "#/$defs/RuleSettings53", - "default": { - "enabled": true, - "level": "Help" - } - }, - "no-redundant-string-concat": { "$ref": "#/$defs/RuleSettings43", "default": { "enabled": true, "level": "Help" } }, - "no-redundant-use": { - "$ref": "#/$defs/RuleSettings57", + "no-redundant-block": { + "$ref": "#/$defs/RuleSettings55", + "default": { + "enabled": true, + "level": "Help" + } + }, + "no-redundant-continue": { + "$ref": "#/$defs/RuleSettings54", + "default": { + "enabled": true, + "level": "Help" + } + }, + "no-redundant-file": { + "$ref": "#/$defs/RuleSettings53", + "default": { + "enabled": true, + "level": "Help" + } + }, + "no-redundant-final": { + "$ref": "#/$defs/RuleSettings51", + "default": { + "enabled": true, + "level": "Help" + } + }, + "no-redundant-isset": { + "$ref": "#/$defs/RuleSettings46", + "default": { + "enabled": true, + "level": "Help" + } + }, + "no-redundant-label": { + "$ref": "#/$defs/RuleSettings49", + "default": { + "enabled": true, + "level": "Help" + } + }, + "no-redundant-literal-return": { + "$ref": "#/$defs/RuleSettings50", "default": { "enabled": true, "level": "Warning" } }, - "no-redundant-write-visibility": { + "no-redundant-math": { + "$ref": "#/$defs/RuleSettings48", + "default": { + "enabled": true, + "level": "Help" + } + }, + "no-redundant-method-override": { + "$ref": "#/$defs/RuleSettings45", + "default": { + "enabled": true, + "level": "Help" + } + }, + "no-redundant-nullsafe": { + "$ref": "#/$defs/RuleSettings47", + "default": { + "enabled": true, + "level": "Help" + } + }, + "no-redundant-parentheses": { + "$ref": "#/$defs/RuleSettings44", + "default": { + "enabled": true, + "level": "Help" + } + }, + "no-redundant-readonly": { + "$ref": "#/$defs/RuleSettings52", + "default": { + "enabled": true, + "level": "Help" + } + }, + "no-redundant-string-concat": { "$ref": "#/$defs/RuleSettings42", "default": { "enabled": true, "level": "Help" } }, + "no-redundant-use": { + "$ref": "#/$defs/RuleSettings56", + "default": { + "enabled": true, + "level": "Warning" + } + }, + "no-redundant-write-visibility": { + "$ref": "#/$defs/RuleSettings41", + "default": { + "enabled": true, + "level": "Help" + } + }, "no-redundant-yield-from": { - "$ref": "#/$defs/RuleSettings58", + "$ref": "#/$defs/RuleSettings57", "default": { "enabled": true, "level": "Help" } }, "no-request-all": { - "$ref": "#/$defs/RuleSettings144", + "$ref": "#/$defs/RuleSettings142", "default": { "enabled": true, "level": "Warning" } }, "no-request-variable": { - "$ref": "#/$defs/RuleSettings28", + "$ref": "#/$defs/RuleSettings27", "default": { "enabled": true, "level": "Error" } }, "no-roles-as-capabilities": { - "$ref": "#/$defs/RuleSettings164", + "$ref": "#/$defs/RuleSettings159", "default": { "enabled": true, "level": "Warning" } }, "no-self-assignment": { - "$ref": "#/$defs/RuleSettings59", + "$ref": "#/$defs/RuleSettings58", "default": { "enabled": true, "level": "Warning" } }, - "no-service-state-mutation": { - "$ref": "#/$defs/RuleSettings145", - "default": { - "allowed-methods": [ - "__construct", - "reset" - ], - "enabled": false, - "exclude-namespaces": [ - "App\\DTO\\", - "App\\Entity\\", - "App\\ValueObject\\" - ], - "include-namespaces": [ - "App\\" - ], - "level": "Warning", - "reset-interfaces": [ - "Symfony\\Contracts\\Service\\ResetInterface" - ] - } - }, "no-shell-execute-string": { - "$ref": "#/$defs/RuleSettings29", + "$ref": "#/$defs/RuleSettings28", "default": { "enabled": true, "level": "Error" } }, "no-short-bool-cast": { - "$ref": "#/$defs/RuleSettings155", + "$ref": "#/$defs/RuleSettings151", "default": { "enabled": false, "level": "Help" } }, "no-short-opening-tag": { - "$ref": "#/$defs/RuleSettings30", + "$ref": "#/$defs/RuleSettings29", "default": { "enabled": true, "level": "Warning" } }, "no-shorthand-ternary": { + "$ref": "#/$defs/RuleSettings30", + "default": { + "enabled": true, + "level": "Warning" + } + }, + "no-sprintf-concat": { "$ref": "#/$defs/RuleSettings31", "default": { "enabled": true, "level": "Warning" } }, - "no-side-effects-with-declarations": { - "$ref": "#/$defs/RuleSettings135", - "default": { - "allow-class-alias": true, - "allow-class-exists": true, - "allow-conditional-declarations": true, - "enabled": false, - "level": "Warning" - } - }, - "no-sprintf-concat": { - "$ref": "#/$defs/RuleSettings32", - "default": { - "enabled": true, - "level": "Warning" - } - }, "no-trailing-space": { - "$ref": "#/$defs/RuleSettings41", + "$ref": "#/$defs/RuleSettings40", "default": { "enabled": true, "level": "Note" } }, "no-underscore-class": { - "$ref": "#/$defs/RuleSettings40", - "default": { - "enabled": true, - "level": "Warning" - } - }, - "no-unescaped-output": { - "$ref": "#/$defs/RuleSettings163", - "default": { - "enabled": true, - "level": "Error" - } - }, - "no-unsafe-finally": { - "$ref": "#/$defs/RuleSettings141", - "default": { - "enabled": true, - "level": "Error" - } - }, - "no-variable-variable": { - "$ref": "#/$defs/RuleSettings68", - "default": { - "enabled": true, - "level": "Warning" - } - }, - "no-void-reference-return": { "$ref": "#/$defs/RuleSettings39", "default": { "enabled": true, "level": "Warning" } }, + "no-unescaped-output": { + "$ref": "#/$defs/RuleSettings158", + "default": { + "enabled": true, + "level": "Error" + } + }, + "no-unsafe-finally": { + "$ref": "#/$defs/RuleSettings139", + "default": { + "enabled": true, + "level": "Error" + } + }, + "no-variable-variable": { + "$ref": "#/$defs/RuleSettings67", + "default": { + "enabled": true, + "level": "Warning" + } + }, + "no-void-reference-return": { + "$ref": "#/$defs/RuleSettings38", + "default": { + "enabled": true, + "level": "Warning" + } + }, "optional-param-order": { - "$ref": "#/$defs/RuleSettings33", + "$ref": "#/$defs/RuleSettings32", "default": { "enabled": true, "level": "Warning" } }, "prefer-anonymous-migration": { - "$ref": "#/$defs/RuleSettings37", + "$ref": "#/$defs/RuleSettings36", "default": { "enabled": true, "level": "Warning" } }, "prefer-arrow-function": { - "$ref": "#/$defs/RuleSettings102", + "$ref": "#/$defs/RuleSettings101", "default": { "enabled": true, "level": "Help" } }, "prefer-early-continue": { - "$ref": "#/$defs/RuleSettings103", + "$ref": "#/$defs/RuleSettings102", "default": { "enabled": true, "level": "Help", @@ -6498,7 +6144,7 @@ } }, "prefer-first-class-callable": { - "$ref": "#/$defs/RuleSettings38", + "$ref": "#/$defs/RuleSettings37", "default": { "check-functions": false, "enabled": true, @@ -6506,49 +6152,49 @@ } }, "prefer-interface": { - "$ref": "#/$defs/RuleSettings104", + "$ref": "#/$defs/RuleSettings103", "default": { "enabled": true, "level": "Note" } }, "prefer-pre-increment": { - "$ref": "#/$defs/RuleSettings157", + "$ref": "#/$defs/RuleSettings153", "default": { "enabled": false, "level": "Help" } }, "prefer-static-closure": { - "$ref": "#/$defs/RuleSettings105", + "$ref": "#/$defs/RuleSettings104", "default": { "enabled": true, "level": "Help" } }, "prefer-test-attribute": { - "$ref": "#/$defs/RuleSettings106", + "$ref": "#/$defs/RuleSettings105", "default": { "enabled": false, "level": "Warning" } }, "prefer-view-array": { - "$ref": "#/$defs/RuleSettings107", + "$ref": "#/$defs/RuleSettings106", "default": { "enabled": true, "level": "Help" } }, "prefer-while-loop": { - "$ref": "#/$defs/RuleSettings108", + "$ref": "#/$defs/RuleSettings107", "default": { "enabled": true, "level": "Note" } }, "property-name": { - "$ref": "#/$defs/RuleSettings140", + "$ref": "#/$defs/RuleSettings138", "default": { "camel": true, "either": false, @@ -6557,70 +6203,70 @@ } }, "psl-array-functions": { - "$ref": "#/$defs/RuleSettings109", + "$ref": "#/$defs/RuleSettings108", "default": { "enabled": true, "level": "Warning" } }, "psl-data-structures": { - "$ref": "#/$defs/RuleSettings110", + "$ref": "#/$defs/RuleSettings109", "default": { "enabled": true, "level": "Warning" } }, "psl-datetime": { - "$ref": "#/$defs/RuleSettings111", + "$ref": "#/$defs/RuleSettings110", "default": { "enabled": true, "level": "Warning" } }, "psl-math-functions": { - "$ref": "#/$defs/RuleSettings112", + "$ref": "#/$defs/RuleSettings111", "default": { "enabled": true, "level": "Warning" } }, "psl-output": { - "$ref": "#/$defs/RuleSettings113", + "$ref": "#/$defs/RuleSettings112", "default": { "enabled": true, "level": "Error" } }, "psl-randomness-functions": { - "$ref": "#/$defs/RuleSettings114", + "$ref": "#/$defs/RuleSettings113", "default": { "enabled": true, "level": "Warning" } }, "psl-regex-functions": { - "$ref": "#/$defs/RuleSettings115", + "$ref": "#/$defs/RuleSettings114", "default": { "enabled": true, "level": "Warning" } }, "psl-sleep-functions": { - "$ref": "#/$defs/RuleSettings116", + "$ref": "#/$defs/RuleSettings115", "default": { "enabled": true, "level": "Warning" } }, "psl-string-functions": { - "$ref": "#/$defs/RuleSettings117", + "$ref": "#/$defs/RuleSettings116", "default": { "enabled": true, "level": "Warning" } }, "readable-literal": { - "$ref": "#/$defs/RuleSettings153", + "$ref": "#/$defs/RuleSettings149", "default": { "enabled": true, "level": "Warning", @@ -6628,63 +6274,63 @@ } }, "require-namespace": { - "$ref": "#/$defs/RuleSettings149", + "$ref": "#/$defs/RuleSettings146", "default": { "enabled": false, "level": "Warning" } }, "require-preg-quote-delimiter": { - "$ref": "#/$defs/RuleSettings148", + "$ref": "#/$defs/RuleSettings145", "default": { "enabled": true, "level": "Warning" } }, "sensitive-parameter": { - "$ref": "#/$defs/RuleSettings139", + "$ref": "#/$defs/RuleSettings137", "default": { "enabled": true, "level": "Error" } }, "single-class-per-file": { - "$ref": "#/$defs/RuleSettings152", + "$ref": "#/$defs/RuleSettings148", "default": { "enabled": true, "level": "Warning" } }, "sorted-integer-keys": { - "$ref": "#/$defs/RuleSettings150", + "$ref": "#/$defs/RuleSettings147", "default": { "enabled": false, "level": "Help" } }, "str-contains": { - "$ref": "#/$defs/RuleSettings118", + "$ref": "#/$defs/RuleSettings117", "default": { "enabled": true, "level": "Warning" } }, "str-starts-with": { - "$ref": "#/$defs/RuleSettings119", + "$ref": "#/$defs/RuleSettings118", "default": { "enabled": true, "level": "Warning" } }, "strict-assertions": { - "$ref": "#/$defs/RuleSettings142", + "$ref": "#/$defs/RuleSettings140", "default": { "enabled": true, "level": "Warning" } }, "strict-behavior": { - "$ref": "#/$defs/RuleSettings120", + "$ref": "#/$defs/RuleSettings119", "default": { "allow-loose-behavior": false, "enabled": true, @@ -6692,44 +6338,36 @@ } }, "strict-types": { - "$ref": "#/$defs/RuleSettings121", + "$ref": "#/$defs/RuleSettings120", "default": { "allow-disabling": false, "enabled": true, "level": "Warning" } }, - "string-style": { - "$ref": "#/$defs/RuleSettings151", - "default": { - "enabled": false, - "level": "Note", - "style": "interpolation" - } - }, "switch-continue-to-break": { - "$ref": "#/$defs/RuleSettings158", + "$ref": "#/$defs/RuleSettings154", "default": { "enabled": false, "level": "Warning" } }, "tagged-fixme": { - "$ref": "#/$defs/RuleSettings122", + "$ref": "#/$defs/RuleSettings121", "default": { "enabled": true, "level": "Warning" } }, "tagged-todo": { - "$ref": "#/$defs/RuleSettings123", + "$ref": "#/$defs/RuleSettings122", "default": { "enabled": true, "level": "Warning" } }, "tainted-data-to-sink": { - "$ref": "#/$defs/RuleSettings138", + "$ref": "#/$defs/RuleSettings136", "default": { "enabled": true, "known-sink-functions": [ @@ -6739,7 +6377,7 @@ } }, "too-many-enum-cases": { - "$ref": "#/$defs/RuleSettings124", + "$ref": "#/$defs/RuleSettings123", "default": { "enabled": true, "level": "Error", @@ -6747,7 +6385,7 @@ } }, "too-many-methods": { - "$ref": "#/$defs/RuleSettings125", + "$ref": "#/$defs/RuleSettings124", "default": { "count-hooks": false, "count-setters-and-getters": false, @@ -6757,7 +6395,7 @@ } }, "too-many-properties": { - "$ref": "#/$defs/RuleSettings126", + "$ref": "#/$defs/RuleSettings125", "default": { "enabled": true, "level": "Error", @@ -6765,7 +6403,7 @@ } }, "trait-name": { - "$ref": "#/$defs/RuleSettings127", + "$ref": "#/$defs/RuleSettings126", "default": { "enabled": true, "level": "Help", @@ -6773,7 +6411,7 @@ } }, "use-compound-assignment": { - "$ref": "#/$defs/RuleSettings147", + "$ref": "#/$defs/RuleSettings144", "default": { "enabled": true, "level": "Help" @@ -6794,7 +6432,7 @@ } }, "use-specific-assertions": { - "$ref": "#/$defs/RuleSettings143", + "$ref": "#/$defs/RuleSettings141", "default": { "enabled": true, "level": "Warning" @@ -6808,21 +6446,21 @@ } }, "use-wp-functions": { - "$ref": "#/$defs/RuleSettings160", + "$ref": "#/$defs/RuleSettings155", "default": { "enabled": true, "level": "Warning" } }, "valid-docblock": { - "$ref": "#/$defs/RuleSettings128", + "$ref": "#/$defs/RuleSettings127", "default": { "enabled": true, "level": "Note" } }, "variable-name": { - "$ref": "#/$defs/RuleSettings129", + "$ref": "#/$defs/RuleSettings128", "default": { "camel": false, "check-parameters": true, @@ -6832,7 +6470,7 @@ } }, "yoda-conditions": { - "$ref": "#/$defs/RuleSettings154", + "$ref": "#/$defs/RuleSettings150", "default": { "enabled": false, "level": "Help" @@ -6890,19 +6528,14 @@ "type": "array" }, "workspace": { - "default": "/home/gcch/Répertoires/git.gcch.fr/haiku-atelier-2024", "description": "The workspace directory from which to start scanning.\n\nDefaults to the current working directory.", "type": "string" } }, - "type": "object" - }, - "StringStyleOption": { - "enum": [ - "concatenation", - "interpolation" + "required": [ + "workspace" ], - "type": "string" + "type": "object" }, "StructuralInheritanceConstraint": { "anyOf": [ @@ -7105,7 +6738,6 @@ "$ref": "#/$defs/AnalyzerConfiguration", "default": { "allow-possibly-undefined-array-keys": true, - "allow-side-effects-in-conditions": true, "analyze-dead-code": false, "baseline": null, "baseline-variant": "loose", @@ -7122,7 +6754,6 @@ "disable-default-plugins": false, "enforce-class-finality": false, "excludes": [], - "find-overly-wide-return-types": false, "find-unused-definitions": true, "find-unused-expressions": true, "find-unused-parameters": false, @@ -7131,12 +6762,11 @@ "minimum-fail-level": "Error", "no-boolean-literal-comparison": false, "performance": { - "array-combination-threshold": 32, + "array-combination-threshold": 128, "consensus-limit-threshold": 256, "disjunction-complexity-threshold": 4096, "formula-size-threshold": 512, "integer-combination-threshold": 128, - "loop-assignment-depth-threshold": 1, "negation-complexity-threshold": 4096, "saturation-complexity-threshold": 8192, "string-combination-threshold": 128 @@ -7265,11 +6895,6 @@ "functions": [], "level": "Warning" }, - "disallowed-type-instantiation": { - "enabled": false, - "level": "Warning", - "types": [] - }, "enum-name": { "enabled": true, "level": "Help" @@ -7521,10 +7146,6 @@ "enabled": false, "level": "Warning" }, - "no-literal-namespace-string": { - "enabled": false, - "level": "Warning" - }, "no-literal-password": { "enabled": true, "level": "Error" @@ -7541,10 +7162,6 @@ "enabled": true, "level": "Help" }, - "no-null-property-init": { - "enabled": false, - "level": "Help" - }, "no-only": { "enabled": true, "level": "Error" @@ -7645,25 +7262,6 @@ "enabled": true, "level": "Warning" }, - "no-service-state-mutation": { - "allowed-methods": [ - "__construct", - "reset" - ], - "enabled": false, - "exclude-namespaces": [ - "App\\DTO\\", - "App\\Entity\\", - "App\\ValueObject\\" - ], - "include-namespaces": [ - "App\\" - ], - "level": "Warning", - "reset-interfaces": [ - "Symfony\\Contracts\\Service\\ResetInterface" - ] - }, "no-shell-execute-string": { "enabled": true, "level": "Error" @@ -7680,13 +7278,6 @@ "enabled": true, "level": "Warning" }, - "no-side-effects-with-declarations": { - "allow-class-alias": true, - "allow-class-exists": true, - "allow-conditional-declarations": true, - "enabled": false, - "level": "Warning" - }, "no-sprintf-concat": { "enabled": true, "level": "Warning" @@ -7850,11 +7441,6 @@ "enabled": true, "level": "Warning" }, - "string-style": { - "enabled": false, - "level": "Note", - "style": "interpolation" - }, "switch-continue-to-break": { "enabled": false, "level": "Warning" @@ -7939,11 +7525,6 @@ }, "description": "Linter service configuration.\n\nControls linting behavior, including enabled/disabled rules, rule-specific\nsettings, and reporting preferences. Defaults to an empty configuration\nif not specified in the config file." }, - "no-version-check": { - "default": false, - "description": "Whether to silence the project version drift warning.\n\nAffects only the minor / patch drift warning emitted when the installed\nmago binary does not match the `version` pinned in `mago.toml`. A major\ndrift is always fatal and is *not* affected by this flag; the whole\npoint of a major pin is to stop runs across incompatible config schemas.\n\nCan be enabled via `MAGO_NO_VERSION_CHECK` environment variable or\n`--no-version-check` CLI flag.", - "type": "boolean" - }, "parser": { "$ref": "#/$defs/ParserConfiguration", "default": { @@ -7988,14 +7569,6 @@ "format": "uint", "minimum": 0, "type": "integer" - }, - "version": { - "default": null, - "description": "The mago version this project is pinned to.\n\nAccepts three pin levels:\n\n- `\"1\"`: major pin; any `1.x.y` satisfies it. `mago init` emits this\n by default. Minor/patch drift within major 1 is a warning; a bump to\n `2.x` is a hard error.\n- `\"1.19\"`: minor pin; any `1.19.y` satisfies it.\n- `\"1.19.3\"`: exact pin; any drift is a warning, and this is the only\n form that `mago self-update --to-project-version` can target without\n ambiguity.\n\nEmpty / missing is currently a no-op; a future mago release is likely\nto start warning when the pin is absent, to prepare projects for 2.0.\n\n# Compatibility invariant (**do not break**)\n\nThis field's location (top-level) and type (string) are a load-bearing\ncontract for cross-major config compatibility: a future mago 2.x must\nbe able to read a mago 1.x `mago.toml` via a permissive top-level TOML\npass, find this field, and refuse to run with\n\"this config is pinned to mago 1\" *before* it ever hits its own strict\nschema. That means:\n\n- never move this field into a `[metadata]` section,\n- never rename it,\n- never change it from a string,\n- never change the pin grammar from `major[.minor[.patch]]`.", - "type": [ - "null", - "string" - ] } }, "title": "Configuration", diff --git a/mago.toml b/mago.toml index 453893a5..bdcdd94f 100644 --- a/mago.toml +++ b/mago.toml @@ -37,29 +37,27 @@ threads = 0 [analyzer] allow-possibly-undefined-array-keys = false - allow-side-effects-in-conditions = true analyze-dead-code = true check-arrow-function-missing-type-hints = true check-closure-missing-type-hints = true - check-experimental = true check-missing-override = true check-missing-type-hints = true - check-name-casing = true check-property-initialization = true check-throws = true check-use-statements = true enforce-class-finality = true - find-overly-wide-return-types = true find-unused-definitions = true find-unused-expressions = true find-unused-parameters = true - memoize-properties = true no-boolean-literal-comparison = false perform-heuristic-checks = true plugins = ["psl"] require-api-or-internal = true strict-list-index-checks = true trust-existence-checks = false + check-experimental = true + check-name-casing = true + memoize-properties = true [analyzer.performance] array-combination-threshold = 256 diff --git a/package.json b/package.json index 11513c4d..2817ca75 100755 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "@mobily/ts-belt": "v4.0.0-rc.5", "@sentry/browser": "^10.47.0", "a11y-dialog": "^8.1.5", - "effect": "^4.0.0-beta.49", + "effect": "^4.0.0-beta.48", "lit-html": "^3.3.2", "purify-ts": "2.1.2", "ts-pattern": "^5.9.0", @@ -32,11 +32,11 @@ "@vitejs/plugin-legacy": "^8.0.1", "better-typescript-lib": "^2.12.0", "browserslist": "^4.28.2", - "caniuse-lite": "^1.0.30001788", + "caniuse-lite": "^1.0.30001787", "eslint": "^10.2.0", "eslint-plugin-functional": "^9.0.4", "eslint-plugin-jsx-a11y": "^6.10.2", - "eslint-plugin-oxlint": "^1.60.0", + "eslint-plugin-oxlint": "^1.59.0", "eslint-plugin-perfectionist": "^5.8.0", "eslint-plugin-sonarjs": "^4.0.2", "fdir": "^6.5.0", @@ -45,10 +45,10 @@ "knip": "^6.4.1", "lightningcss": "^1.32.0", "lightningcss-cli": "^1.32.0", - "oxlint": "^1.60.0", - "oxlint-tsgolint": "^0.21.0", + "oxlint": "^1.59.0", + "oxlint-tsgolint": "^0.20.0", "playwright": "^1.59.1", - "prettier": "^3.8.3", + "prettier": "^3.8.1", "prettier-plugin-pkg": "^0.22.1", "prettier-plugin-sh": "^0.18.1", "sass-embedded": "^1.99.0", @@ -59,7 +59,7 @@ "stylelint-declaration-block-no-ignored-properties": "^3.0.0", "stylelint-plugin-logical-css": "^2.1.0", "typescript": "6.0.2", - "typescript-eslint": "^8.58.2", + "typescript-eslint": "^8.58.1", "vite": "^8.0.8", "vite-tsconfig-paths": "^6.1.1" }, diff --git a/web/app/themes/haiku-atelier-2024/single-product.php b/web/app/themes/haiku-atelier-2024/single-product.php index 445b0b68..e08501e1 100755 --- a/web/app/themes/haiku-atelier-2024/single-product.php +++ b/web/app/themes/haiku-atelier-2024/single-product.php @@ -22,9 +22,7 @@ use function add_action; use function assert; use function collect; use function is_array; -use function is_string; use function wc_get_product; -use function wp_create_nonce; use function wp_json_encode; $context = Timber::context(); @@ -68,19 +66,12 @@ $product_tags = $raw_product->get_tag_ids() |> (static fn(/** @var list> */ $tags) => Arr::map($tags, static fn($tag) => $tag->unwrap())); $tags = get_terms(['taxonomy' => 'product_tag', 'hide_empty' => true]); -// Injecte les états initiaux des données du Produit sous forme de JSON dans le contexte. -$page_states = [ - 'nonce' => wp_create_nonce('wc_store_api'), - 'product' => [ - 'attributes' => $product->attributes, - 'id' => $product->id, - 'price' => $product->price, - 'variations' => $product->variations, - ], -] - |> wp_json_encode(...); -assert(is_string($page_states)); -$context['page_states'] = $page_states; +// echo '
';
+// print_r($product_tags);
+// print_r($tags);
+// echo '
'; + +// exit(); add_action('wp_enqueue_scripts', function (): void { Resource::enqueue_script_module_file( diff --git a/web/app/themes/haiku-atelier-2024/src/inc/Data/Attribute.php b/web/app/themes/haiku-atelier-2024/src/inc/Data/Attribute.php index 36c2c669..3e9e57a9 100644 --- a/web/app/themes/haiku-atelier-2024/src/inc/Data/Attribute.php +++ b/web/app/themes/haiku-atelier-2024/src/inc/Data/Attribute.php @@ -27,8 +27,7 @@ final readonly class Attribute { $terms = $attribute->get_terms() ?? []; /** @var list */ $options = Arr::map($terms, AttributeOption::new(...)) - |> (static fn($options) => Arr::sort($options, static fn($attribute) => $attribute->id)) - |> array_values(...); + |> (static fn($options) => Arr::sort($options, static fn($attribute) => $attribute->id)); return new self(name: $name, slug: $slug, options: $options); } diff --git a/web/app/themes/haiku-atelier-2024/src/scripts-effect/api-service.ts b/web/app/themes/haiku-atelier-2024/src/scripts-effect/api-service.ts deleted file mode 100644 index f5492385..00000000 --- a/web/app/themes/haiku-atelier-2024/src/scripts-effect/api-service.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { Context, Effect, Layer, Schema } from "effect"; -import { ENTETE_WC_NONCE, ROUTE_API_AJOUTE_ARTICLE_PANIER } from "../scripts/constantes/api.ts"; -import { CartProduct } from "./schemas/api.ts"; - -const REQUEST_TIMEOUT = 5_000; - -class APIError extends Schema.TaggedErrorClass()("APIError", { - cause: Schema.Defect, -}) {} - -class WooCommerceAPI extends Context.Service< - WooCommerceAPI, - { - AddProductToCart: (nonce: string, requestBody: CartProduct) => Effect.Effect; - } ->()("haikuatelier.fr/WooCommerceAPI") { - static readonly layer = Layer.effect( - WooCommerceAPI, - // oxlint-disable-next-line require-yield - Effect.gen(function*() { - const AddProductToCart = Effect.fn("AddProductToCart")(function*(nonce: string, product: CartProduct) { - const response = yield* Effect.tryPromise({ - catch: error => new APIError({ cause: error }), - try: async () => - fetch(ROUTE_API_AJOUTE_ARTICLE_PANIER, { - // Convertis en chaîne de caractères (équivalent à JSON.stringify). - body: Schema.encodeSync(Schema.fromJsonString(CartProduct))(product), - credentials: "same-origin", - headers: { - Accept: "application/json", - "Content-Type": "application/json", - [ENTETE_WC_NONCE]: nonce, - }, - method: "POST", - mode: "same-origin", - signal: AbortSignal.timeout(REQUEST_TIMEOUT), - }), - }); - - return response; - }); - - return WooCommerceAPI.of({ - AddProductToCart, - }); - }), - ); -} - -export { WooCommerceAPI }; diff --git a/web/app/themes/haiku-atelier-2024/src/scripts-effect/schemas/api.ts b/web/app/themes/haiku-atelier-2024/src/scripts-effect/schemas/api.ts index e3480331..97c8b1ff 100644 --- a/web/app/themes/haiku-atelier-2024/src/scripts-effect/schemas/api.ts +++ b/web/app/themes/haiku-atelier-2024/src/scripts-effect/schemas/api.ts @@ -1,10 +1,10 @@ import { Schema } from "effect"; -import { ProductId, ProductQuantity, ProductVariationAttribute } from "./product.ts"; +import { ProductAttribute } from "./product.ts"; -class CartProduct extends Schema.Class("CartProduct")({ - id: ProductId, - quantity: ProductQuantity, - variation: Schema.Array(ProductVariationAttribute), +class AddProductToCart extends Schema.Class("AddProductToCart")({ + id: Schema.Int, + quantity: Schema.Int.check(Schema.isGreaterThan(0)), + variation: Schema.Array(ProductAttribute), }) {} -export { CartProduct }; +export { AddProductToCart }; diff --git a/web/app/themes/haiku-atelier-2024/src/scripts-effect/schemas/product.ts b/web/app/themes/haiku-atelier-2024/src/scripts-effect/schemas/product.ts index 80cb0405..1c8055a4 100644 --- a/web/app/themes/haiku-atelier-2024/src/scripts-effect/schemas/product.ts +++ b/web/app/themes/haiku-atelier-2024/src/scripts-effect/schemas/product.ts @@ -1,49 +1,7 @@ // oxlint-disable no-magic-numbers -- Pas besoin ici. -import { Effect, Option, pipe, Schema, SchemaIssue, SchemaTransformation } from "effect"; -import type { SchemaError } from "effect/Schema"; - -/** Représente l'identifiant numérique unique d'un Produit. */ -const ProductId = Schema.Int.pipe(Schema.brand("ProductId")).check(Schema.isGreaterThan(0)); - -/** Représente l'identifiant numérique unique d'un Attribut. */ -const AttributeId = Schema.Int.pipe(Schema.brand("AttributeId")).check(Schema.isGreaterThan(0)); - -/** Réprésente une quantité (nombre d'unités) de Produit. */ -const ProductQuantity = Schema.Int.pipe(Schema.brand("ProductQuantity")).check(Schema.isGreaterThanOrEqualTo(0)); -/** Schéma transformant une chaîne de caractères en `ProductId` avec validation. */ -const ProductQuantityFromString = Schema.String.pipe( - Schema.decodeTo( - ProductQuantity, - SchemaTransformation.transformOrFail({ - decode: (value: string) => - pipe( - globalThis.Number(value), - (number: number) => ProductQuantity.makeEffect(number), - Effect.mapError((error: SchemaError) => new SchemaIssue.InvalidValue(Option.some(value), { cause: error })), - ), - encode: (value: number) => Effect.succeed(String(value)), - }), - ), -); - -class AttributeValue extends Schema.Class("AttributeValue")({ - /** L'identifiant numérique de la Valeur de l'Attribut. */ - id: AttributeId, - /** Le nom (texte affiché) de la Valeur de l'Attribut. */ - name: Schema.String, - /** L'identifiant alphanumérique _(slug)_ de la Valeur de l'Attribut. */ - slug: Schema.String, -}) {} +import { Schema } from "effect"; class ProductAttribute extends Schema.Class("ProductAttribute")({ - /** Le nom de l'Attribut. */ - name: Schema.String, - options: Schema.Array(AttributeValue), - /** L'identifiant _(slug)_ de l'Attribut. */ - slug: Schema.String, -}) {} - -class ProductVariationAttribute extends Schema.Class("ProductVariationAttribute")({ /** L'identifiant _(slug)_ de l'Attribut. */ attribute: Schema.String, /** La valeur de l'attribut. */ @@ -52,32 +10,11 @@ class ProductVariationAttribute extends Schema.Class( class ProductVariation extends Schema.Class("ProductVariation")({ /** Les Attributs présents pour cette Variation. */ - attributes: Schema.Array(ProductVariationAttribute), + attributes: Schema.Array(ProductAttribute), /** L'identifiant numérique unique de la Variation. */ - id: ProductId, + id: Schema.Int.check(Schema.isGreaterThan(0)), /** Le prix de la Variation. */ - price: ProductQuantityFromString, + price: Schema.NonEmptyString, }) {} -class Product extends Schema.Class("Product")({ - /** Les Attributs applicables au Produit (en cas de Produit simple). */ - attributes: Schema.Union([Schema.Record(Schema.String, ProductAttribute), Schema.Array(ProductAttribute)]), - /** L'identifiant numérique unique du Produit. */ - id: ProductId, - /** Le prix du Produit. */ - price: ProductQuantityFromString, - /** Les Variations existantes du Produit (en cas de Produit variable). */ - variations: Schema.Array(ProductVariation), -}) {} - -export { - AttributeId, - AttributeValue, - Product, - ProductAttribute, - ProductId, - ProductQuantity, - ProductQuantityFromString, - ProductVariation, - ProductVariationAttribute, -}; +export { ProductAttribute, ProductVariation }; diff --git a/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/errors.ts b/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/errors.ts deleted file mode 100644 index ce6e4f35..00000000 --- a/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/errors.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Schema, SchemaIssue } from "effect"; -import { NoSuchElementError } from "effect/Cause"; -import { SchemaError } from "effect/Schema"; - -class IncoherentDOMError extends Schema.TaggedErrorClass()("IncoherentDOMError", { - cause: Schema.String, -}) { - static readonly fromSchemaError = (error: SchemaError): IncoherentDOMError => - new IncoherentDOMError({ - cause: SchemaIssue.makeFormatterDefault()(error.issue), - }); - static readonly fromNoSuchElementError = (error: NoSuchElementError): IncoherentDOMError => - new IncoherentDOMError({ - cause: `Impossible de trouver l'Element suivant dans le DOM : ${error.message}.`, - }); -} - -export { IncoherentDOMError }; diff --git a/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/runtime.ts b/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/runtime.ts index 0564730d..72941df3 100644 --- a/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/runtime.ts +++ b/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/runtime.ts @@ -1,5 +1,4 @@ import { Console, Layer, ManagedRuntime, pipe } from "effect"; -import { WooCommerceAPI } from "../../scripts-effect/api-service.ts"; import ProductPageDOM from "./service-dom.ts"; import ProductPageElements from "./service-elements.ts"; @@ -7,7 +6,6 @@ const ProductPageRuntime = ManagedRuntime.make( pipe( ProductPageDOM.layer, Layer.provide(ProductPageElements.layer), - Layer.provide(WooCommerceAPI.layer), Layer.tapError(error => Console.error("ProductPageRuntime", "Impossible de créer le Layer :", error)), ), ); diff --git a/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/service-dom.ts b/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/service-dom.ts index 8e323b67..672b94d0 100644 --- a/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/service-dom.ts +++ b/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/service-dom.ts @@ -14,36 +14,17 @@ import { Stream, } from "effect"; import type { NoSuchElementError } from "effect/Cause"; -import type { SchemaError } from "effect/Schema"; -import { WooCommerceAPI } from "../../scripts-effect/api-service.ts"; -import { AddProductToCart, CartProduct } from "../../scripts-effect/schemas/api.ts"; -import { Product, ProductVariation, ProductVariationAttribute } from "../../scripts-effect/schemas/product.ts"; +import { AddProductToCart } from "../../scripts-effect/schemas/api.ts"; +import { ProductAttribute, ProductVariation } from "../../scripts-effect/schemas/product.ts"; import { ATTRIBUT_ARIA_CONTROLS, ATTRIBUT_ARIA_EXPANDED, - ATTRIBUT_CHARGEMENT, ATTRIBUT_DESACTIVE, ATTRIBUT_HIDDEN, } from "../constantes/dom.ts"; -import { lanceAnimationCycleLoading } from "../lib/animations.ts"; -import { IncoherentDOMError } from "./errors.ts"; import ProductPageElements from "./service-elements.ts"; import type { DetailEnsemble } from "./types.d.ts"; -const PageStatesSchema = Schema.Struct({ - nonce: Schema.NonEmptyString, - product: Product, -}); - -class InvalidPageStateError extends Schema.TaggedErrorClass()("InvalidPageStateError", { - cause: Schema.String, -}) { - static readonly fromSchemaError = (schemaError: SchemaError): InvalidPageStateError => - new InvalidPageStateError({ - cause: SchemaIssue.makeFormatterDefault()(schemaError.issue), - }); -} - class ProductPageDOM extends Context.Service< ProductPageDOM, { @@ -67,7 +48,7 @@ class ProductPageDOM extends Context.Service< * Replie toutes les sections de la description du Produit. */ initAddToCartButtonClicks: () => unknown; - PageStates: typeof PageStatesSchema.Type; + ProductVariations: ReadonlyArray; CurrentVariation: Ref.Ref>; } >()("haikuatelier.fr/Produit/ProductPageDOM") { @@ -79,23 +60,11 @@ class ProductPageDOM extends Context.Service< Details, DetailsButtons, ProductPrice, + ProductRawJson, VariationChoiceForm, VariationSelectors, - PageStatesRawJson, } = yield* ProductPageElements; - const API = yield* WooCommerceAPI; - - const PageStates = yield* pipe( - PageStatesRawJson.textContent, - (textContent: string) => - Schema.decodeUnknownEffect(Schema.fromJsonString(PageStatesSchema))(textContent, { errors: "all" }), - Effect.mapError(InvalidPageStateError.fromSchemaError), - Effect.tapError(Console.error), - ); - - const CurrentProduct = yield* Ref.make(Option.none()); - - const onFormChangeHandler = Effect.fn("onFormChangeHandler")(function*(evt: Event) { + const onFormChangeHandler = Effect.fn("onFormChangeHandler")(function*(evt: Event): Effect.fn.Return { // La cible ne peut qu'être un Formulaire. const target: HTMLFormElement = evt.target as HTMLFormElement; const isClickAllowed = target.checkValidity() === false; @@ -106,57 +75,56 @@ class ProductPageDOM extends Context.Service< return yield* Effect.void; }); - const toggleAllDetails: (shouldOpen: boolean) => Effect.Effect = (shouldOpen: boolean) => + const toggleAllDetails: () => Effect.Effect = () => Effect.sync((): void => { - console.debug("toggleAllDetails"); pipe( // Récupère les Sections sous forme d'Ensembles. [...HashMap.values(Details)], FxArray.forEach((detail: DetailEnsemble) => { - detail.button.toggleAttribute(ATTRIBUT_ARIA_EXPANDED, shouldOpen); - detail.content.toggleAttribute(ATTRIBUT_HIDDEN, !shouldOpen); + detail.button.toggleAttribute(ATTRIBUT_ARIA_EXPANDED, false); + detail.content.toggleAttribute(ATTRIBUT_HIDDEN, true); }), ); }); - const onDetailButtonClickHandler = Effect.fn("onDetailButtonClickHandler")( - function*(evt: Event) { - // Empêche la pollution de l'historique de navigation - evt.preventDefault(); + const onDetailButtonClickHandler = Effect.fn("onDetailButtonClickHandler")(function*( + evt: Event, + ): Effect.fn.Return { + // Empêche la pollution de l'historique de navigation + evt.preventDefault(); - // La cible est connue. - const target = evt.target as HTMLButtonElement; + // La cible est connue. + const target = evt.target as HTMLButtonElement; - // Récupère le contenu correspondant au Bouton. - const linkedSection = yield* pipe( - Option.fromNullishOr(target.getAttribute(ATTRIBUT_ARIA_CONTROLS)), - Option.flatMap((contentId: string) => HashMap.get(Details, contentId)), - Effect.fromOption, - Effect.mapError( - () => new IncoherentDOMError({ cause: "Un bouton de section ne correspond à aucun contenu." }), - ), - ); + // Récupère le contenu correspondant au Bouton. + const linkedSection = yield* pipe( + Option.fromNullishOr(target.getAttribute(ATTRIBUT_ARIA_CONTROLS)), + Option.flatMap((contentId: string) => HashMap.get(Details, contentId)), + ); - // Sauvegarde l'état d'ouverture de la Section avant de toutes les fermer. - const wasCurrentSection: boolean = target.getAttribute(ATTRIBUT_ARIA_EXPANDED) === "true"; + // Sauvegarde l'état d'ouverture de la Section avant de toutes les fermer. + const wasCurrentSection: boolean = target.getAttribute(ATTRIBUT_ARIA_EXPANDED) === "true"; - // Replie toutes les Sections. - yield* toggleAllDetails(false); - - // Ne fais rien de plus si l'onglet sélectionné était le courant. - if (wasCurrentSection === true) { - return yield* Effect.void; - } - - // Ouvre le nouvel onglet sélectionné. - target.toggleAttribute(ATTRIBUT_ARIA_EXPANDED, true); - linkedSection.content.toggleAttribute(ATTRIBUT_HIDDEN, false); + // Replie toutes les Sections. + yield* toggleAllDetails(); + // Ne fais rien de plus si l'onglet sélectionné était le courant + if (wasCurrentSection === true) { return yield* Effect.void; - }, - Effect.tapError(Console.error), - // Ouvre toutes les Sections en cas d'erreur. - Effect.catch(() => toggleAllDetails(true)), + } + + // Ouvre le nouvel onglet sélectionné + target.toggleAttribute(ATTRIBUT_ARIA_EXPANDED, true); + linkedSection.content.toggleAttribute(ATTRIBUT_HIDDEN, false); + + return yield* Effect.void; + }); + + const ProductVariations: ReadonlyArray = yield* pipe( + JSON.parse(ProductRawJson.textContent)?.variations, + json => Schema.decodeUnknownEffect(Schema.Array(ProductVariation))(json, { onExcessProperty: "ignore" }), + Effect.mapError(error => SchemaIssue.makeFormatterStandardSchemaV1()(error.issue)), + Effect.tapCause(Console.error), ); const getChosenProductAttributesFromDOM = Effect.fn("getChosenProductAttributesFromDOM")(function*() { @@ -165,90 +133,60 @@ class ProductPageDOM extends Context.Service< attribute: select.id, value: select.value, })), - variations => - Schema.decodeEffect(Schema.Array(ProductVariationAttribute))(variations, { - errors: "all", - onExcessProperty: "error", - }), - Effect.mapError(IncoherentDOMError.fromSchemaError), - Effect.tapError(Console.error), + variations => Schema.decodeEffect(Schema.Array(ProductAttribute))(variations), + Effect.mapError(error => SchemaIssue.makeFormatterDefault()(error.issue)), + Effect.tapCause(Console.error), ); }); - const onVariationChangeHandler = Effect.fn("onVariationChangeHandler")(function*() { - yield* Console.log("onVariationChangeHandler"); + const CurrentVariation = yield* Ref.make(Option.none()); + + const onVariationChangeHandler = Effect.fn("onVariationChangeHandler")(function*(): Effect.fn.Return< + void, + NoSuchElementError | string + > { + yield* Console.debug("onVariationChangeHandler"); // Ne fais rien si le Formulaire n'est pas valide. if (VariationChoiceForm.checkValidity() === false) { yield* Console.debug("onVariationChangeHandler", "Le formulaire est invalide."); return yield* Effect.void; } - const equivalence = Schema.toEquivalence(Schema.Array(ProductVariationAttribute)); + const equivalence = Schema.toEquivalence(Schema.Array(ProductAttribute)); const chosenProductAttributes = yield* getChosenProductAttributesFromDOM(); - yield* Console.debug("onVariationChangeHandler", "chosenProductAttributes", chosenProductAttributes); - const chosenVariation = yield* pipe( - FxArray.findFirst( - PageStates.product.variations, - variation => equivalence(variation.attributes, chosenProductAttributes), - ), - Effect.fromOption, - Effect.mapError(error => new Error("Impossible de trouver la variation demandée.", { cause: error })), + const chosenVariation: ProductVariation = yield* FxArray.findFirst( + ProductVariations, + (variation: ProductVariation) => equivalence(variation.attributes, chosenProductAttributes), ); - yield* Console.debug("onVariationChangeHandler", "chosenVariation", chosenVariation); // Met à jour la valeur de la Variation choisie dans le Service. - yield* Ref.set(Option.some(chosenVariation))(CurrentProduct); + yield* Ref.set(Option.some(chosenVariation))(CurrentVariation); - const newPrice = String(chosenVariation.price); + const newPrice = chosenVariation.price; ProductPrice.textContent = `${newPrice}€`; return yield* Effect.void; - }, Effect.tapError(Console.error)); + }, Effect.tapCause(Console.error)); - /** - * Déclenche une ajout du Produit demandé au Panier auprès du Backend. - */ - const addToCartButtonClickHandler = Effect.fn("addToCartButtonClickHandler")(function*() { - yield* Console.log("addToCartButtonClickHandler"); - - // Créé le corps de la requête - const requestBody: CartProduct = yield* pipe( - Ref.get(CurrentProduct), - Effect.flatMap(Effect.fromOption), - // Pour un Produit simple, le Ref sera vide. - Effect.orElseSucceed(() => - ProductVariation.make({ - attributes: [], - id: PageStates.product.id, - price: PageStates.product.price, - }) - ), - Effect.map(({ id, attributes }) => - // Les données ont été validées en amont. - Schema.decodeSync(CartProduct)({ id: id, quantity: 1, variation: attributes }) - ), - Effect.tap(body => Console.debug("addToCartButtonClickHandler", "requestBody", body)), + const onAddToCartButtonHandler = Effect.fn("onAddToCartButtonHandler")(function*() { + const chosenVariation = yield* Ref.getUnsafe(CurrentVariation); + const productDetails = yield* Schema.decodeEffect(AddProductToCart)( + { + id: chosenVariation.id, + quantity: 1, + variation: chosenVariation.attributes, + }, + { errors: "all" }, ); - // Désactive les interactions le temps de la requête. - AddToCartButton.toggleAttribute(ATTRIBUT_DESACTIVE); - AddToCartButton.toggleAttribute(ATTRIBUT_CHARGEMENT); - lanceAnimationCycleLoading(AddToCartButton, 500); - - const responseBody = yield* pipe( - API.AddProductToCart(PageStates.nonce, requestBody), - Effect.flatMap((response: Response) => Effect.tryPromise(async () => response.json())), - Effect.tap((response: JSONValue) => Console.debug("addToCartButtonClickHandler", "response", response)), - ); - - return responseBody; + console.debug(productDetails); }); const initAddToCartButtonInitialState = Effect.fn("initAddToCartButtonInitialState")(function*() { /** Est-ce que le Produit affiché est en stock ? */ const isProductInStock = AddToCartButton.hasAttribute("data-in-stock") === true; - // S'('y a pas de stock, ne rien faire. + // S'il n'y a pas de stock, ne rien faire. if (isProductInStock === false) { return yield* Effect.void; } @@ -261,31 +199,31 @@ class ProductPageDOM extends Context.Service< return yield* Effect.void; }); - const initAddToCartButtonUpdates = Effect.fn("initAddToCartInteractionUpdates")( - function*(): Effect.fn.Return { - return yield* pipe( - Stream.fromEventListener(VariationChoiceForm, "change"), - Stream.tap(onFormChangeHandler), - Stream.runDrain, - ); - }, - ); + const initAddToCartButtonUpdates = Effect.fn("initAddToCartInteractionUpdates")(function*() { + return yield* pipe( + Stream.fromEventListener(VariationChoiceForm, "change"), + Stream.tap(onFormChangeHandler), + Stream.runDrain, + ); + }); const initAddToCartButtonClicks = Effect.fn("initAddToCartButtonClicks")(function*() { return yield* pipe( Stream.fromEventListener(AddToCartButton, "click"), - Stream.tap(addToCartButtonClickHandler), + Stream.tap(onAddToCartButtonHandler), Stream.runDrain, ); }); - const initPriceUpdatesOnVariationChange = Effect.fn("initPriceUpdatesOnVariationChange")(function*() { - return yield* pipe( - Stream.fromEventListener(VariationChoiceForm, "change"), - Stream.tap(onVariationChangeHandler), - Stream.runDrain, - ); - }); + const initPriceUpdatesOnVariationChange = Effect.fn("initPriceUpdatesOnVariationChange")( + function*(): Effect.fn.Return { + return yield* pipe( + Stream.fromEventListener(VariationChoiceForm, "change"), + Stream.tap(onVariationChangeHandler), + Stream.runDrain, + ); + }, + ); const initDetailInteractions = Effect.fn("initDetailInteractions")(function*() { return yield* pipe( @@ -301,13 +239,13 @@ class ProductPageDOM extends Context.Service< }); return ProductPageDOM.of({ - CurrentVariation: CurrentProduct, + CurrentVariation, + ProductVariations, initAddToCartButtonClicks, initAddToCartButtonInitialState, initAddToCartButtonUpdates, initDetailInteractions, initPriceUpdatesOnVariationChange, - PageStates, }); }), ); diff --git a/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/service-elements.ts b/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/service-elements.ts index 4bacd823..bb673c5f 100644 --- a/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/service-elements.ts +++ b/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/service-elements.ts @@ -9,7 +9,6 @@ import { DOM_CONTENUS_ACCORDEON, DOM_PRIX_PRODUIT, } from "../constantes/dom.ts"; -import { IncoherentDOMError } from "./errors.ts"; import type { DetailEnsemble } from "./types.d.ts"; class ProductPageElements extends Context.Service< @@ -19,8 +18,8 @@ class ProductPageElements extends Context.Service< Details: HashMap.HashMap; DetailsButtons: NonEmptyReadonlyArray; DetailsContents: NonEmptyReadonlyArray; - PageStatesRawJson: HTMLScriptElement; ProductPrice: HTMLParagraphElement; + ProductRawJson: HTMLScriptElement; VariationChoiceForm: HTMLFormElement; VariationSelectors: ReadonlyArray; } @@ -31,8 +30,8 @@ class ProductPageElements extends Context.Service< const AddToCartButton = yield* getFirstSelectorFromDocument(DOM_BOUTON_AJOUT_PANIER); const DetailsButtons = yield* getAllSelectorFromDocument(DOM_BOUTONS_ACCORDEON); const DetailsContents = yield* getAllSelectorFromDocument(DOM_CONTENUS_ACCORDEON); - const PageStatesRawJson = yield* getFirstSelectorFromDocument("#page-states"); const ProductPrice = yield* getFirstSelectorFromDocument(DOM_PRIX_PRODUIT); + const ProductRawJson = yield* getFirstSelectorFromDocument("#product-json"); const VariationChoiceForm = yield* getFirstSelectorFromDocument("#variation-choice"); const VariationSelectors = yield* pipe( getAllSelectorFromDocument(".selecteur-produit select"), @@ -59,12 +58,12 @@ class ProductPageElements extends Context.Service< Details, DetailsButtons, DetailsContents, - PageStatesRawJson, ProductPrice, + ProductRawJson, VariationChoiceForm, VariationSelectors, }); - }).pipe(Effect.mapError(IncoherentDOMError.fromNoSuchElementError)), + }), ); } diff --git a/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/types.d.ts b/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/types.d.ts index e2d10ebd..f1940311 100644 --- a/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/types.d.ts +++ b/web/app/themes/haiku-atelier-2024/src/scripts/page-produit/types.d.ts @@ -3,5 +3,4 @@ type DetailEnsemble = { button: HTMLButtonElement; content: HTMLDivElement; }; - export { DetailEnsemble }; diff --git a/web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts b/web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts index 574086ef..1b911096 100755 --- a/web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts +++ b/web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts @@ -4,26 +4,16 @@ import { Console, Effect } from "effect"; import ProductPageRuntime from "./page-produit/runtime.ts"; import ProductPageDOM from "./page-produit/service-dom.ts"; -document.addEventListener("DOMContentLoaded", (): void => { - Effect.gen(function*() { - const DOM = yield* ProductPageDOM; +/** États utiles pour les scripts de la page. */ +type EtatsPage = { + /** L'ID en base de données du Produit. */ + idProduit: number; + /** Un nonce pour l'authentification de requêtes API vers le backend WooCommerce. */ + nonce: string; +}; - const effects = Effect.all( - [ - DOM.initAddToCartButtonInitialState(), - DOM.initAddToCartButtonUpdates(), - DOM.initAddToCartButtonClicks(), - DOM.initDetailInteractions(), - DOM.initPriceUpdatesOnVariationChange(), - ], - { - concurrency: "unbounded", - }, - ); - - yield* effects.pipe(Effect.tapCause(Console.error)); - }).pipe(ProductPageRuntime.runFork); -}); +// @ts-expect-error -- États injectés par le modèle PHP +const ETATS_PAGE: EtatsPage = _etats; // const ajouteProduitAuPanier = (event: MouseEvent): void => { // event.preventDefault(); @@ -112,3 +102,26 @@ document.addEventListener("DOMContentLoaded", (): void => { // }) // .run(); // }; + +document.addEventListener("DOMContentLoaded", (): void => { + console.debug("oups"); + Effect.gen(function*() { + const DOM = yield* ProductPageDOM; + console.debug("oups"); + + const effects = Effect.all( + [ + DOM.initAddToCartButtonInitialState(), + DOM.initAddToCartButtonUpdates(), + DOM.initDetailInteractions(), + DOM.initPriceUpdatesOnVariationChange(), + DOM.initAddToCartButtonClicks(), + ], + { + concurrency: "unbounded", + }, + ); + + yield* effects.pipe(Effect.tapCause(Console.error)); + }).pipe(ProductPageRuntime.runFork); +}); diff --git a/web/app/themes/haiku-atelier-2024/views/produit.twig b/web/app/themes/haiku-atelier-2024/views/produit.twig index fe259b74..8835f74b 100755 --- a/web/app/themes/haiku-atelier-2024/views/produit.twig +++ b/web/app/themes/haiku-atelier-2024/views/produit.twig @@ -1,6 +1,23 @@ {% extends 'base.twig' %} {% block head %} + + - - - {% endblock head %} {% block contenu %}