2024-12-02

This commit is contained in:
gcch 2024-12-02 10:40:47 +01:00
commit 8613e0698c
12 changed files with 272 additions and 399 deletions

1
.gitignore vendored
View file

@ -13,6 +13,7 @@ web/.htaccess
# Compilation # Compilation
web/app/themes/haiku-atelier-2024/assets/js web/app/themes/haiku-atelier-2024/assets/js
web/app/themes/haiku-atelier-2024/assets/js/.vite/manifest.json
# Logs # Logs
*.log *.log

10
composer.lock generated
View file

@ -6383,12 +6383,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/szepeviktor/phpstan-wordpress.git", "url": "https://github.com/szepeviktor/phpstan-wordpress.git",
"reference": "fab61ad0e3ba963877eea48d29248eb1ae2a3eda" "reference": "f7beb13cd22998e3d913fdb897a1e2553ccd637e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/szepeviktor/phpstan-wordpress/zipball/fab61ad0e3ba963877eea48d29248eb1ae2a3eda", "url": "https://api.github.com/repos/szepeviktor/phpstan-wordpress/zipball/f7beb13cd22998e3d913fdb897a1e2553ccd637e",
"reference": "fab61ad0e3ba963877eea48d29248eb1ae2a3eda", "reference": "f7beb13cd22998e3d913fdb897a1e2553ccd637e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6436,9 +6436,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/szepeviktor/phpstan-wordpress/issues", "issues": "https://github.com/szepeviktor/phpstan-wordpress/issues",
"source": "https://github.com/szepeviktor/phpstan-wordpress/tree/v2.0.0" "source": "https://github.com/szepeviktor/phpstan-wordpress/tree/v2.0.1"
}, },
"time": "2024-11-17T13:12:31+00:00" "time": "2024-12-01T02:13:05+00:00"
}, },
{ {
"name": "vimeo/psalm", "name": "vimeo/psalm",

View file

@ -25,18 +25,18 @@
"@prettier/plugin-php": "^0.22.2", "@prettier/plugin-php": "^0.22.2",
"@prettier/plugin-xml": "^3.4.1", "@prettier/plugin-xml": "^3.4.1",
"@sentry/types": "8.41.0", "@sentry/types": "8.41.0",
"@swc/cli": "0.5.1", "@swc/cli": "0.5.2",
"@types/eslint__js": "^8.42.3", "@types/eslint__js": "^8.42.3",
"@types/node": "^22.10.1", "@types/node": "^22.10.1",
"better-typescript-lib": "^2.9.0", "better-typescript-lib": "^2.10.0",
"browserslist": "^4.24.2", "browserslist": "^4.24.2",
"eslint": "^9.16.0", "eslint": "^9.16.0",
"eslint-plugin-oxlint": "^0.13.2", "eslint-plugin-oxlint": "^0.14.0",
"eslint-plugin-perfectionist": "^4.1.2", "eslint-plugin-perfectionist": "^4.1.2",
"fdir": "^6.4.2", "fdir": "^6.4.2",
"globals": "^15.12.0", "globals": "^15.13.0",
"knip": "^5.38.3", "knip": "^5.38.3",
"oxlint": "^0.13.2", "oxlint": "^0.14.0",
"picomatch": "^4.0.2", "picomatch": "^4.0.2",
"prettier": "^3.4.1", "prettier": "^3.4.1",
"prettier-plugin-pkg": "^0.18.1", "prettier-plugin-pkg": "^0.18.1",
@ -50,7 +50,7 @@
"stylelint-plugin-logical-css": "^1.2.1", "stylelint-plugin-logical-css": "^1.2.1",
"typescript": "5.8.0-dev.20241122", "typescript": "5.8.0-dev.20241122",
"typescript-eslint": "^8.16.0", "typescript-eslint": "^8.16.0",
"vite": "^6.0.1", "vite": "^6.0.2",
"vite-plugin-manifest-sri": "^0.2.0", "vite-plugin-manifest-sri": "^0.2.0",
"vite-plugin-node-polyfills": "^0.22.0", "vite-plugin-node-polyfills": "^0.22.0",
"vite-plugin-valibot-env": "^0.9.2", "vite-plugin-valibot-env": "^0.9.2",

298
pnpm-lock.yaml generated
View file

@ -49,8 +49,8 @@ importers:
specifier: 8.41.0 specifier: 8.41.0
version: 8.41.0 version: 8.41.0
'@swc/cli': '@swc/cli':
specifier: 0.5.1 specifier: 0.5.2
version: 0.5.1(@swc/core@1.9.1) version: 0.5.2(@swc/core@1.9.1)
'@types/eslint__js': '@types/eslint__js':
specifier: ^8.42.3 specifier: ^8.42.3
version: 8.42.3 version: 8.42.3
@ -58,8 +58,8 @@ importers:
specifier: ^22.10.1 specifier: ^22.10.1
version: 22.10.1 version: 22.10.1
better-typescript-lib: better-typescript-lib:
specifier: ^2.9.0 specifier: ^2.10.0
version: 2.9.0(typescript@5.8.0-dev.20241122) version: 2.10.0(typescript@5.8.0-dev.20241122)
browserslist: browserslist:
specifier: ^4.24.2 specifier: ^4.24.2
version: 4.24.2 version: 4.24.2
@ -67,8 +67,8 @@ importers:
specifier: ^9.16.0 specifier: ^9.16.0
version: 9.16.0(jiti@2.4.1) version: 9.16.0(jiti@2.4.1)
eslint-plugin-oxlint: eslint-plugin-oxlint:
specifier: ^0.13.2 specifier: ^0.14.0
version: 0.13.2 version: 0.14.0
eslint-plugin-perfectionist: eslint-plugin-perfectionist:
specifier: ^4.1.2 specifier: ^4.1.2
version: 4.1.2(eslint@9.16.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122) version: 4.1.2(eslint@9.16.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)
@ -76,14 +76,14 @@ importers:
specifier: ^6.4.2 specifier: ^6.4.2
version: 6.4.2(picomatch@4.0.2) version: 6.4.2(picomatch@4.0.2)
globals: globals:
specifier: ^15.12.0 specifier: ^15.13.0
version: 15.12.0 version: 15.13.0
knip: knip:
specifier: ^5.38.3 specifier: ^5.38.3
version: 5.38.3(@types/node@22.10.1)(typescript@5.8.0-dev.20241122) version: 5.38.3(@types/node@22.10.1)(typescript@5.8.0-dev.20241122)
oxlint: oxlint:
specifier: ^0.13.2 specifier: ^0.14.0
version: 0.13.2 version: 0.14.0
picomatch: picomatch:
specifier: ^4.0.2 specifier: ^4.0.2
version: 4.0.2 version: 4.0.2
@ -124,20 +124,20 @@ importers:
specifier: ^8.16.0 specifier: ^8.16.0
version: 8.16.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122) version: 8.16.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)
vite: vite:
specifier: ^6.0.1 specifier: ^6.0.2
version: 6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6) version: 6.0.2(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)
vite-plugin-manifest-sri: vite-plugin-manifest-sri:
specifier: ^0.2.0 specifier: ^0.2.0
version: 0.2.0 version: 0.2.0
vite-plugin-node-polyfills: vite-plugin-node-polyfills:
specifier: ^0.22.0 specifier: ^0.22.0
version: 0.22.0(rollup@4.28.0)(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)) version: 0.22.0(rollup@4.28.0)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6))
vite-plugin-valibot-env: vite-plugin-valibot-env:
specifier: ^0.9.2 specifier: ^0.9.2
version: 0.9.2(valibot@1.0.0-beta.9(typescript@5.8.0-dev.20241122))(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)) version: 0.9.2(valibot@1.0.0-beta.9(typescript@5.8.0-dev.20241122))(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6))
vite-tsconfig-paths: vite-tsconfig-paths:
specifier: ^5.1.3 specifier: ^5.1.3
version: 5.1.3(typescript@5.8.0-dev.20241122)(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)) version: 5.1.3(typescript@5.8.0-dev.20241122)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6))
wp-types: wp-types:
specifier: ^4.67.0 specifier: ^4.67.0
version: 4.67.0 version: 4.67.0
@ -152,83 +152,88 @@ packages:
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
'@better-typescript-lib/decorators@2.9.0': '@better-typescript-lib/decorators@2.10.0':
resolution: {integrity: sha512-l7JqR0EFD01ucYRILPuhcdxCcST+f3dSMj+/39gqjl1RdAIWtRGV2K2DOsqW4ye++A39In12++7LnaZLQZEVUQ==} resolution: {integrity: sha512-b8l2W9ubtpQsKLxRpHOVT2yISoOyrNJQk/wFRJAeAfknjowl7os7hql4UcwSvAx7xXF2YbJpEwBGqaxMPLQ85g==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/dom@2.9.0': '@better-typescript-lib/dom@2.10.0':
resolution: {integrity: sha512-UONr6zeUg5Inl4cNoSK9FgW2Hc0tjACSxKWs2ftgdaCmdokd4hZdqgEBiDyP5Xynx5UECNXA7krLGbHi9VUR3w==} resolution: {integrity: sha512-0h4IuFOVmAEgGyG1thCptGyozProuQPFd+K7ldKSBPr2K6lsDnbbUNev8IMmUGCiGa5ylsKXiFWLA19T3bPV6w==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/es2015@2.9.0': '@better-typescript-lib/es2015@2.10.0':
resolution: {integrity: sha512-l/2PVV8bE/1jg0lvdodrxXX/vu2iiPNUjkcyuhXMLIKk4r48Pka1G87TisXtF4fptWEcqrry9C2fSuwVj59jSA==} resolution: {integrity: sha512-IfdGK/mVBwbeaiZL7MiS6GaZNAy15Hk4kZ8WPD3CHGGWhmR3CqpKMsZZ5KFzi9vq9aHVpeVXpkYH0B/zh+9oeg==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/es2016@2.9.0': '@better-typescript-lib/es2016@2.10.0':
resolution: {integrity: sha512-87jtcF08MkmJe3+hTjhP/SPz167O5A6PyldG8+1jOvEA23aUNTezpXEt0Y91g295qGwg6U3ATyOcJ6h5PzZEYw==} resolution: {integrity: sha512-PDfqN2tCLUYIeAQSVXELMBuzoeRGHuqYbPvILkbaXF6UitO8BE7g5vvrcUoXePfnMeowG8nhjwjtJ/8VIZGuUA==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/es2017@2.9.0': '@better-typescript-lib/es2017@2.10.0':
resolution: {integrity: sha512-245luMwR3nBlg/q2qzqnkqS/ZbJuNoeAVeriAu4QzUwIXDQxBteawJwiB8qO8EgYgAWhvPJUZzhqUJyYrCBAtQ==} resolution: {integrity: sha512-iOIXEj3ZrMFknfYZnHxDta9InS7WClYn193mJOnEdoxAzvojsqJ7MSlVkPem6YaTURgbjdZBW/bGj7fOQZ0S9A==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/es2018@2.9.0': '@better-typescript-lib/es2018@2.10.0':
resolution: {integrity: sha512-6pqeRyMwg2ub5VxY3TA7IbfqTNxY1oVw06DEskpnXuvsA5lSDhZVQxhegCryf8dsRbL2SY+JsDvqGPz2BB8qYA==} resolution: {integrity: sha512-LGpdHX5ymEhRdtgW816OW4L0MG8os8zJZxLzMhyGEUl4iUOen9GGE+55eMRGXmc5pGMop3T7jzAlvjudrT9cUQ==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/es2019@2.9.0': '@better-typescript-lib/es2019@2.10.0':
resolution: {integrity: sha512-8iT42/M3E93gsAL9wsB+nU39UBe1syLUHfxoGdlx9zLZw8vNnLxKmpFTO2vC2BVBWTTB5ZkLKtlg6+UaYiqQZg==} resolution: {integrity: sha512-1LeECJX9Buv2JIM7OKGHhBGnDNbwcyViy1CJXsRyV0CC/GZCQK98v0GISto4W3QTZnK1wrdx3J6JTijxyR1vfw==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/es2020@2.9.0': '@better-typescript-lib/es2020@2.10.0':
resolution: {integrity: sha512-1j4kkZQALxXRZ4yxszf8+GfrILq+Gt4cFNWTfLzdlm5cGmoWWbWci81HsudbvveWqfNKaSKcQIY5Z9bVrQCyeg==} resolution: {integrity: sha512-43ljO93zZh/qYU9SlqO3nBawtZT9v+/uAfAwHsI5VaMq4ulKhtqq3kWrDM1nUvhPiQtgiTyWrQ3B8c10Hlerag==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/es2021@2.9.0': '@better-typescript-lib/es2021@2.10.0':
resolution: {integrity: sha512-mA1VcDvXzkekL646fZ/AazRQwuG6reyuHf3kL5B5Wn/HeihfwHh96FGSblaQWyDwoTZjUTP0s9m7Mtj5SgGxGQ==} resolution: {integrity: sha512-olTKpT9cFXywIK71xyfqhWcSu2li2n7jKlF6snWBrPu46x0GluhxzKMCG7hFKb/DeYrYpQc4he9/KZ+ZKJtrAQ==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/es2022@2.9.0': '@better-typescript-lib/es2022@2.10.0':
resolution: {integrity: sha512-iDUAglx7axyGVlGrEk6gnzIYZK4drnu59OvHFieeg2dMyc1EJEedsmL9jK9XJcahZtpt/JEPqWJnE5os+N4Rgw==} resolution: {integrity: sha512-LW9fe94THNnEHML9g/tgumUaqfYaBKH2Rq8KkpSlkpEZyQIfCpFq27OagZZpJ2I5JSxrOjvrPs0Z0Yo941pHGQ==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/es2023@2.9.0': '@better-typescript-lib/es2023@2.10.0':
resolution: {integrity: sha512-OhFg1gIoO1IXdcWexLiFUpNiMeI54eSxi5p/r+VQgqbXtwqa2DvC17hR0kV1w6axjUsb/PFc8rAordS23xdb2A==} resolution: {integrity: sha512-jk18W6Y31tLfdCr13k/1WrfhhidJYAl02jT43buVJKkDd5zNjOy1TN43JYaMA9d/e0asscm6DLVNdpyPcKO5zA==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/es5@2.9.0': '@better-typescript-lib/es2024@2.10.0':
resolution: {integrity: sha512-jP76ajsZgAuMl1iaSGjFct70RwPeWkohAb7p6FgT9QG+KOpiXjZLLmRX2iRTnhib2pgoEvafuHjXOiqNmFYO+A==} resolution: {integrity: sha512-vorWk7njdt0z28jBjsT0tWQPvnW/mbqsSFa5ZMkIf5ZEYTmPwZPaA7kqU0oIOZ2sazO3tjFitjg34dC4MAsRyQ==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/es6@2.9.0': '@better-typescript-lib/es5@2.10.0':
resolution: {integrity: sha512-Xczl4Z43CFkjXCEqrD2K2W1/Wh4RUYVS8IU6eC21H2zZK1G3znTPo2BG3H5N5MncyvTGdiyExRLGo7jUfWgMAA==} resolution: {integrity: sha512-/VxVSom29tFdSyd/vVyDOHul1WOcRDN7PpWyZYTYeGS3acZyKsjPGEAWUUH30ykU782U0BC2ABAHn7MH7kz7Aw==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/esnext@2.9.0': '@better-typescript-lib/es6@2.10.0':
resolution: {integrity: sha512-G2xT/xJkpXlXQK8kCBy2yueMQvFBH8fXp/pTi+snMH11NrH1tOmX9bFnskQmATE4tTzlsc6PBxY19/8oxF5UQA==} resolution: {integrity: sha512-GK9C5S38ADAowEb0oe7563G7R/a34zOwJ9sJmsVBz3x3Z6x2Ydqslu65eu0j4e4EspsEM7oDVi3YGBHrrSaDyw==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/scripthost@2.9.0': '@better-typescript-lib/esnext@2.10.0':
resolution: {integrity: sha512-NlW35v/PbGCB6K1eqep3u5ckUbTS2LzF+tGoOxHRtgeRdLaLi0G9s9CJOT5a5Yl1X2gAogqT2KQMPyLeN4JcYw==} resolution: {integrity: sha512-cdjsZW4qiumcGhCT+tsJWRyOYchUsgheU2KSXOVHoeMIxVRJZMlbHOamgZ2zIWNHqzTvJt2TyBpVUC1wGg7WVA==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
'@better-typescript-lib/webworker@2.9.0': '@better-typescript-lib/scripthost@2.10.0':
resolution: {integrity: sha512-3jRXXzU9N8cQ6wdLKGoiCU0qBgxcmO9ALAYAe++IJqjXb1e1jaoKrA6LQO2xboy4UhbFwxyfKcr3Hl68EzTMqw==} resolution: {integrity: sha512-vtcfAd3FVJ3Al9cCMQJbzE9xtoQeHhJrv6a327lyUEcTLl80sjkpfqzOhZh2cxge4q9iMRRXx9HijCY1ALGODw==}
peerDependencies:
typescript: '>=4.5.2'
'@better-typescript-lib/webworker@2.10.0':
resolution: {integrity: sha512-YC2LdrTzL6r6Aw0NvfFMAEnCe3oMSqoDm1IS/5wSvbVeYPwHf/RsaRdE77mN8zbwDl82SMbwKE+7zTiGCjB0uQ==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
@ -638,43 +643,43 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'} engines: {node: '>= 8'}
'@oxlint/darwin-arm64@0.13.2': '@oxlint/darwin-arm64@0.14.0':
resolution: {integrity: sha512-Jbi2UX1xTFTpH/D6n15RzDSG/44oJ0FwrHWl96TsdD3PAOGxmm8LgcrsCU4d22TSN7ShDFB8y34MYplduRzhfA==} resolution: {integrity: sha512-TnGzzJ5BWfj4d3GYdtiMNrCswr00i/f3UwUL5gD71J67nyMAagYwyJI5atCV8LKoa9DJnuc7//HfuPHhQoNKdA==}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@oxlint/darwin-x64@0.13.2': '@oxlint/darwin-x64@0.14.0':
resolution: {integrity: sha512-ulA2vpNIM14VWJua6BjgX6l8nrjY8Un0uLqBLgELyDHMfpnC0HfrB2mR9PC9tRhb7+BEbgDLWTRs2aTV64eprw==} resolution: {integrity: sha512-MUbf9R2CjTuPQD+HOk9V+Aq05aWlzr2jj8cnIMUDiiwX2hTkprJKcoXyAIJp/OCDd1ufHpo9n7fKTyYtpJUFzA==}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@oxlint/linux-arm64-gnu@0.13.2': '@oxlint/linux-arm64-gnu@0.14.0':
resolution: {integrity: sha512-iwguvPnIx/yIMc2IrwLeRflEFwyn+gcsNR8le5aX5DvQfHiB3/3x5JxOVl7Nd93lLsOg8RyVr2E11CxV10rKWw==} resolution: {integrity: sha512-ofWwFpdD8to59cjOVE+fgIS+uJLX5VbJkkYB2MCpahdzffiWTTvZCVU2TSDJxVr8VpXrF1E8SWDnmHNHzke4bg==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@oxlint/linux-arm64-musl@0.13.2': '@oxlint/linux-arm64-musl@0.14.0':
resolution: {integrity: sha512-YJVvVyuvUobgCmiE47kBwN6dymLcQBG5/NsEaCbVyYw5HQJN7Ywp/x4suaF4c6M9ItPCnLxEZ4Lwu5TkrkU3vQ==} resolution: {integrity: sha512-yypOsNETNE/8DQELHbw34It1Ab0HxfIooNjmK4YrJBCbVYqr6HOl/oHHb/KauZrAAfoABOMPu5G1igyXNgPvlg==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@oxlint/linux-x64-gnu@0.13.2': '@oxlint/linux-x64-gnu@0.14.0':
resolution: {integrity: sha512-w78gjd3ZJ+ahByS5gmN0jxFn/+G3W/oBJbyGFOuteXYcJwLj6JIyS0VhpMKxuAdFNCnsjJeDHSbdWaCV6VkA3A==} resolution: {integrity: sha512-E9ZSFo+phvUKM9+pjKCxx6GeT+DfWK8fPxupCpFljWD0zgZQKiXv1FY5+TOPjJqI7aMjLfGuC5VfGjVRgs87Ug==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@oxlint/linux-x64-musl@0.13.2': '@oxlint/linux-x64-musl@0.14.0':
resolution: {integrity: sha512-yedk6KQT3jtBzpzExo3Ib7NwfuugaaFKvk/EzXEojMQ5aYh6CNhmVmm+adzwBp4YyOeXQZxSPHQ1LcNwDCUJIA==} resolution: {integrity: sha512-MmtNF/g0u15smzyYJd5QGlyhAU8V6ZMQrFAXGhoRo5AfWzbNyOOUFmJVNLa/yvs4F+1m7oEfaegxk3BeVyufPQ==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@oxlint/win32-arm64@0.13.2': '@oxlint/win32-arm64@0.14.0':
resolution: {integrity: sha512-KZvJ3uMWSCwkZtvOcO+K4mLmYU/jIcHUb00s8aPasG1taflbjINsq9ZUUj5LNigcDwJRZGUwNcvY5KuQ+E9WtQ==} resolution: {integrity: sha512-67dJ57QImulc8qu9xuF5NsQAHvwr1N3Fpy1j/gaGZE973pEVoW9fFO88tnmY2L5SjWf9o3nHwti1tlU99JuOlw==}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@oxlint/win32-x64@0.13.2': '@oxlint/win32-x64@0.14.0':
resolution: {integrity: sha512-G8FM8RTJRMt2dPRJ/TXhqIEu9k00vRAoh3DSV2r3o+jD8FZDBZXOgoDn2D0F9HqgFLEOVTxpfalmWntyk2hmyw==} resolution: {integrity: sha512-fw8IEW7osGYIgfEMEW4AqPg1q8/kZd0cpO51ixvekVOuhZNC8PX8Wdx97U+XTowOFrkCcr3+szR9PZEjKyR1FQ==}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@ -932,8 +937,8 @@ packages:
typescript: typescript:
optional: true optional: true
'@swc/cli@0.5.1': '@swc/cli@0.5.2':
resolution: {integrity: sha512-sxSXyjqFImYrqjhZSPymjmM/9V6auZG67UsDwbe7FZaBlyfW8ka3QG/zRjpJJ9+8Ahns/kKb8bXPKQq7V2MtBw==} resolution: {integrity: sha512-ul2qIqjM5bfe9zWLqFDmHZCf9HXXSZZAlZLe4czn+lH4PewO+OWZnQcYCscnJKlbx6MuWjzXVR7gkspjNEJwJA==}
engines: {node: '>= 16.14.0'} engines: {node: '>= 16.14.0'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -1218,8 +1223,8 @@ packages:
base64-js@1.5.1: base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
better-typescript-lib@2.9.0: better-typescript-lib@2.10.0:
resolution: {integrity: sha512-wW/QvxcVu2qscos4u6Gbq61yKaAe3SuxBrPKefucxkXaBVJld5tG5Ba22btKbW+VW590UB5k7AvoAZcG+ktdZQ==} resolution: {integrity: sha512-ZimEfuBVHq7r+k1dJ/qBh69VKbFgyzc1dY1DDOHtOrtCyn8Yaa6GWedScTjQPqBQieDiCPpoPi+AxJWYDA8UDA==}
peerDependencies: peerDependencies:
typescript: '>=4.5.2' typescript: '>=4.5.2'
@ -1309,8 +1314,8 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'} engines: {node: '>=6'}
caniuse-lite@1.0.30001684: caniuse-lite@1.0.30001685:
resolution: {integrity: sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==} resolution: {integrity: sha512-e/kJN1EMyHQzgcMEEgoo+YTCO1NGCmIYHk5Qk8jT6AazWemS5QFKJ5ShCJlH3GZrNIdZofcNCEwZqbMjjKzmnA==}
chalk@4.1.2: chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
@ -1516,8 +1521,8 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'} engines: {node: '>=10'}
eslint-plugin-oxlint@0.13.2: eslint-plugin-oxlint@0.14.0:
resolution: {integrity: sha512-/i/zrkpU7lsDqM/WPBa4QWv9s8iSFVdfHzbUyNqYejFgRqpfd9toqHiGPFLJ7qNaFbH3GVhS5refo3CHdU2nwg==} resolution: {integrity: sha512-/NediRWJgQhaC/sIUUrH8qpkxC6M584Nx2POIvkcfvtdkggMmtBZuNw3W6c1iGRZvHmd14pdeI0kig1Y/XHdNg==}
eslint-plugin-perfectionist@4.1.2: eslint-plugin-perfectionist@4.1.2:
resolution: {integrity: sha512-YjXPWB/rKe/gPUsyuxw75wTUrzN5MuJnRV0PH9NoonFvgcdVIXk551mkBKPr59nRZCbu7S3dFHwfo4gA42DB2w==} resolution: {integrity: sha512-YjXPWB/rKe/gPUsyuxw75wTUrzN5MuJnRV0PH9NoonFvgcdVIXk551mkBKPr59nRZCbu7S3dFHwfo4gA42DB2w==}
@ -1716,8 +1721,8 @@ packages:
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
globals@15.12.0: globals@15.13.0:
resolution: {integrity: sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==} resolution: {integrity: sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==}
engines: {node: '>=18'} engines: {node: '>=18'}
globby@11.1.0: globby@11.1.0:
@ -1751,8 +1756,8 @@ packages:
has-property-descriptors@1.0.2: has-property-descriptors@1.0.2:
resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
has-proto@1.0.3: has-proto@1.1.0:
resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} resolution: {integrity: sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
has-symbols@1.0.3: has-symbols@1.0.3:
@ -2125,8 +2130,8 @@ packages:
os-browserify@0.3.0: os-browserify@0.3.0:
resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==}
oxlint@0.13.2: oxlint@0.14.0:
resolution: {integrity: sha512-R7wXUspM75TeEXaAFLmuPH0W3h5B5r6BNtOvkcnVddD3BWbBiEOWe9bCqt4+te0l8wQ4a0/XLCGrJroxFFeajg==} resolution: {integrity: sha512-S0jZRxWPwgDEtLbpJfCVaMeK5/E7wvp6lYJdukwrmeLMRelgh9DjQzl2RBrSjHfmm2R6IcUwzpQ9h8BvqDH7ww==}
engines: {node: '>=14.*'} engines: {node: '>=14.*'}
hasBin: true hasBin: true
@ -2884,8 +2889,8 @@ packages:
vite: vite:
optional: true optional: true
vite@6.0.1: vite@6.0.2:
resolution: {integrity: sha512-Ldn6gorLGr4mCdFnmeAOLweJxZ34HjKnDm4HGo6P66IEqTxQb36VEdFJQENKxWjupNfoIjvRUnswjn1hpYEpjQ==} resolution: {integrity: sha512-XdQ+VsY2tJpBsKGs0wf3U/+azx8BBpYRHFAyKm5VeEZNOJZRB63q7Sc8Iup3k0TrN3KO6QgyzFf+opSbfY1y0g==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -2989,67 +2994,71 @@ snapshots:
'@babel/helper-validator-identifier@7.25.9': {} '@babel/helper-validator-identifier@7.25.9': {}
'@better-typescript-lib/decorators@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/decorators@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/dom@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/dom@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/es2015@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/es2015@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/es2016@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/es2016@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/es2017@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/es2017@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/es2018@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/es2018@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/es2019@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/es2019@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/es2020@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/es2020@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/es2021@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/es2021@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/es2022@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/es2022@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/es2023@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/es2023@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/es5@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/es2024@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/es6@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/es5@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/esnext@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/es6@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/scripthost@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/esnext@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@better-typescript-lib/webworker@2.9.0(typescript@5.8.0-dev.20241122)': '@better-typescript-lib/scripthost@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies:
typescript: 5.8.0-dev.20241122
'@better-typescript-lib/webworker@2.10.0(typescript@5.8.0-dev.20241122)':
dependencies: dependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
@ -3320,28 +3329,28 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5 '@nodelib/fs.scandir': 2.1.5
fastq: 1.17.1 fastq: 1.17.1
'@oxlint/darwin-arm64@0.13.2': '@oxlint/darwin-arm64@0.14.0':
optional: true optional: true
'@oxlint/darwin-x64@0.13.2': '@oxlint/darwin-x64@0.14.0':
optional: true optional: true
'@oxlint/linux-arm64-gnu@0.13.2': '@oxlint/linux-arm64-gnu@0.14.0':
optional: true optional: true
'@oxlint/linux-arm64-musl@0.13.2': '@oxlint/linux-arm64-musl@0.14.0':
optional: true optional: true
'@oxlint/linux-x64-gnu@0.13.2': '@oxlint/linux-x64-gnu@0.14.0':
optional: true optional: true
'@oxlint/linux-x64-musl@0.13.2': '@oxlint/linux-x64-musl@0.14.0':
optional: true optional: true
'@oxlint/win32-arm64@0.13.2': '@oxlint/win32-arm64@0.14.0':
optional: true optional: true
'@oxlint/win32-x64@0.13.2': '@oxlint/win32-x64@0.14.0':
optional: true optional: true
'@parcel/watcher-android-arm64@2.5.0': '@parcel/watcher-android-arm64@2.5.0':
@ -3548,7 +3557,7 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
'@swc/cli@0.5.1(@swc/core@1.9.1)': '@swc/cli@0.5.2(@swc/core@1.9.1)':
dependencies: dependencies:
'@swc/core': 1.9.1 '@swc/core': 1.9.1
'@swc/counter': 0.1.3 '@swc/counter': 0.1.3
@ -3864,24 +3873,25 @@ snapshots:
base64-js@1.5.1: {} base64-js@1.5.1: {}
better-typescript-lib@2.9.0(typescript@5.8.0-dev.20241122): better-typescript-lib@2.10.0(typescript@5.8.0-dev.20241122):
dependencies: dependencies:
'@typescript/lib-decorators': '@better-typescript-lib/decorators@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-decorators': '@better-typescript-lib/decorators@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-dom': '@better-typescript-lib/dom@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-dom': '@better-typescript-lib/dom@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-es2015': '@better-typescript-lib/es2015@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-es2015': '@better-typescript-lib/es2015@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-es2016': '@better-typescript-lib/es2016@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-es2016': '@better-typescript-lib/es2016@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-es2017': '@better-typescript-lib/es2017@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-es2017': '@better-typescript-lib/es2017@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-es2018': '@better-typescript-lib/es2018@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-es2018': '@better-typescript-lib/es2018@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-es2019': '@better-typescript-lib/es2019@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-es2019': '@better-typescript-lib/es2019@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-es2020': '@better-typescript-lib/es2020@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-es2020': '@better-typescript-lib/es2020@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-es2021': '@better-typescript-lib/es2021@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-es2021': '@better-typescript-lib/es2021@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-es2022': '@better-typescript-lib/es2022@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-es2022': '@better-typescript-lib/es2022@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-es2023': '@better-typescript-lib/es2023@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-es2023': '@better-typescript-lib/es2023@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-es5': '@better-typescript-lib/es5@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-es2024': '@better-typescript-lib/es2024@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-es6': '@better-typescript-lib/es6@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-es5': '@better-typescript-lib/es5@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-esnext': '@better-typescript-lib/esnext@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-es6': '@better-typescript-lib/es6@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-scripthost': '@better-typescript-lib/scripthost@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-esnext': '@better-typescript-lib/esnext@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-webworker': '@better-typescript-lib/webworker@2.9.0(typescript@5.8.0-dev.20241122)' '@typescript/lib-scripthost': '@better-typescript-lib/scripthost@2.10.0(typescript@5.8.0-dev.20241122)'
'@typescript/lib-webworker': '@better-typescript-lib/webworker@2.10.0(typescript@5.8.0-dev.20241122)'
typescript: 5.8.0-dev.20241122 typescript: 5.8.0-dev.20241122
bin-version-check@5.1.0: bin-version-check@5.1.0:
@ -3965,7 +3975,7 @@ snapshots:
browserslist@4.24.2: browserslist@4.24.2:
dependencies: dependencies:
caniuse-lite: 1.0.30001684 caniuse-lite: 1.0.30001685
electron-to-chromium: 1.5.67 electron-to-chromium: 1.5.67
node-releases: 2.0.18 node-releases: 2.0.18
update-browserslist-db: 1.1.1(browserslist@4.24.2) update-browserslist-db: 1.1.1(browserslist@4.24.2)
@ -4005,7 +4015,7 @@ snapshots:
callsites@3.1.0: {} callsites@3.1.0: {}
caniuse-lite@1.0.30001684: {} caniuse-lite@1.0.30001685: {}
chalk@4.1.2: chalk@4.1.2:
dependencies: dependencies:
@ -4241,7 +4251,7 @@ snapshots:
escape-string-regexp@4.0.0: {} escape-string-regexp@4.0.0: {}
eslint-plugin-oxlint@0.13.2: eslint-plugin-oxlint@0.14.0:
dependencies: dependencies:
jsonc-parser: 3.3.1 jsonc-parser: 3.3.1
@ -4444,7 +4454,7 @@ snapshots:
dependencies: dependencies:
es-errors: 1.3.0 es-errors: 1.3.0
function-bind: 1.1.2 function-bind: 1.1.2
has-proto: 1.0.3 has-proto: 1.1.0
has-symbols: 1.0.3 has-symbols: 1.0.3
hasown: 2.0.2 hasown: 2.0.2
@ -4475,7 +4485,7 @@ snapshots:
globals@14.0.0: {} globals@14.0.0: {}
globals@15.12.0: {} globals@15.13.0: {}
globby@11.1.0: globby@11.1.0:
dependencies: dependencies:
@ -4518,7 +4528,9 @@ snapshots:
dependencies: dependencies:
es-define-property: 1.0.0 es-define-property: 1.0.0
has-proto@1.0.3: {} has-proto@1.1.0:
dependencies:
call-bind: 1.0.7
has-symbols@1.0.3: {} has-symbols@1.0.3: {}
@ -4858,16 +4870,16 @@ snapshots:
os-browserify@0.3.0: {} os-browserify@0.3.0: {}
oxlint@0.13.2: oxlint@0.14.0:
optionalDependencies: optionalDependencies:
'@oxlint/darwin-arm64': 0.13.2 '@oxlint/darwin-arm64': 0.14.0
'@oxlint/darwin-x64': 0.13.2 '@oxlint/darwin-x64': 0.14.0
'@oxlint/linux-arm64-gnu': 0.13.2 '@oxlint/linux-arm64-gnu': 0.14.0
'@oxlint/linux-arm64-musl': 0.13.2 '@oxlint/linux-arm64-musl': 0.14.0
'@oxlint/linux-x64-gnu': 0.13.2 '@oxlint/linux-x64-gnu': 0.14.0
'@oxlint/linux-x64-musl': 0.13.2 '@oxlint/linux-x64-musl': 0.14.0
'@oxlint/win32-arm64': 0.13.2 '@oxlint/win32-arm64': 0.14.0
'@oxlint/win32-x64': 0.13.2 '@oxlint/win32-x64': 0.14.0
p-cancelable@3.0.0: {} p-cancelable@3.0.0: {}
@ -5593,33 +5605,33 @@ snapshots:
vite-plugin-manifest-sri@0.2.0: {} vite-plugin-manifest-sri@0.2.0: {}
vite-plugin-node-polyfills@0.22.0(rollup@4.28.0)(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)): vite-plugin-node-polyfills@0.22.0(rollup@4.28.0)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)):
dependencies: dependencies:
'@rollup/plugin-inject': 5.0.5(rollup@4.28.0) '@rollup/plugin-inject': 5.0.5(rollup@4.28.0)
node-stdlib-browser: 1.3.0 node-stdlib-browser: 1.3.0
vite: 6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6) vite: 6.0.2(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
vite-plugin-valibot-env@0.9.2(valibot@1.0.0-beta.9(typescript@5.8.0-dev.20241122))(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)): vite-plugin-valibot-env@0.9.2(valibot@1.0.0-beta.9(typescript@5.8.0-dev.20241122))(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)):
dependencies: dependencies:
kleur: 4.1.5 kleur: 4.1.5
log-symbols: 7.0.0 log-symbols: 7.0.0
valibot: 1.0.0-beta.9(typescript@5.8.0-dev.20241122) valibot: 1.0.0-beta.9(typescript@5.8.0-dev.20241122)
vite: 6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6) vite: 6.0.2(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)
vite-tsconfig-paths@5.1.3(typescript@5.8.0-dev.20241122)(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)): vite-tsconfig-paths@5.1.3(typescript@5.8.0-dev.20241122)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)):
dependencies: dependencies:
debug: 4.3.7 debug: 4.3.7
globrex: 0.1.2 globrex: 0.1.2
tsconfck: 3.1.4(typescript@5.8.0-dev.20241122) tsconfck: 3.1.4(typescript@5.8.0-dev.20241122)
optionalDependencies: optionalDependencies:
vite: 6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6) vite: 6.0.2(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
- typescript - typescript
vite@6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6): vite@6.0.2(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6):
dependencies: dependencies:
esbuild: 0.24.0 esbuild: 0.24.0
postcss: 8.4.49 postcss: 8.4.49

View file

@ -1,210 +0,0 @@
{
"_api.sn6CvYBX.js": {
"file": "api.sn6CvYBX.js",
"name": "api",
"integrity": "sha512-IHCUEXhZ0jGYLByQuCrZLLyT33rn+dZ+vE3cqzGnYODtRBf20xpDudhp9dJBYHK2WHuPXUO9TQ9RG23/UFKgEA=="
},
"_exports.B0KsqwcX.js": {
"file": "exports.B0KsqwcX.js",
"name": "exports",
"integrity": "sha512-4J3P0kXIHBndu9OwcKNN5eaSkK9pPXeILC4nQ0G6BGXo8TkHVbpNq1vtKhif4bJKmPB7BCfEN1qxrabF9002uw=="
},
"_gardes.DBQSoZA5.js": {
"file": "gardes.DBQSoZA5.js",
"name": "gardes",
"integrity": "sha512-h25A7ttXwwAmgkVObii1ElP0ao+/PYIq9q0VE0n5rvVF+MqaI6OKp+eSIWDHsmrNy0gfjOcakIFQjc9wKXaJmg=="
},
"_index-c1cc4c86.C0keEzN6.js": {
"file": "index-c1cc4c86.C0keEzN6.js",
"name": "index-c1cc4c86",
"imports": [
"_utils.CpY6lC-L.js"
],
"integrity": "sha512-+eWqf9Np9p4PooSLS38x1vueotM7CUQhE4+TOsEUOTiq71SJMJTKLhnmPu7pfs5vAPsfyFOLTcY6Y53Axdz0mg=="
},
"_index.CeK6pfoJ.js": {
"file": "index.CeK6pfoJ.js",
"name": "index",
"integrity": "sha512-1w99lJFYDu79R+hHxMxvYeqYSoK7veDPlF8Rzbs6qf56698A9BJslhj7GsDepyEXmawU05g6EBusu5e8sFgSjw=="
},
"_messages.Cfpdtehd.js": {
"file": "messages.Cfpdtehd.js",
"name": "messages",
"imports": [
"_validation.BxHP2h2i.js",
"_utils.CpY6lC-L.js",
"_exports.B0KsqwcX.js"
],
"integrity": "sha512-MAd2Uap9aHnb+4eD+JmEmuzmw9R5xyPrcExBzRRtRAB3C8CbHSj2qa5yyzEi/MRfY/poaALRYw9UR1wu7Eu3vw=="
},
"_nombres.BEH5KeJK.js": {
"file": "nombres.BEH5KeJK.js",
"name": "nombres",
"imports": [
"_exports.B0KsqwcX.js"
],
"integrity": "sha512-1YnZOciujiT2HT/ZEw/euv5CloN9v5BmWGlK1YB11pz6eUte9jCuf0LVSNytze7aKVABgieyPytilJKfkrhITA=="
},
"_reseau.BTSNCA1g.js": {
"file": "reseau.BTSNCA1g.js",
"name": "reseau",
"imports": [
"_api.sn6CvYBX.js",
"_utils.CpY6lC-L.js"
],
"integrity": "sha512-5XlkhlMl2cjhO3WGGBiZjs3fTwPUHssKwGsx4T8P9Fob5Ui0Rm7ibULQRGBBC9XyoBdci6HCqSvYJWVh4CJ3/w=="
},
"_utils.CpY6lC-L.js": {
"file": "utils.CpY6lC-L.js",
"name": "utils",
"imports": [
"_exports.B0KsqwcX.js"
],
"integrity": "sha512-S5zwOSk60GPiiMWS2FvWLFbj2M9UezotF8SDogLT3nyhwcVwlwhX1v2VkteSlxzRysxGfQoTLZ9A60dQYCQ2ww=="
},
"_validation.BxHP2h2i.js": {
"file": "validation.BxHP2h2i.js",
"name": "validation",
"imports": [
"_utils.CpY6lC-L.js"
],
"integrity": "sha512-wO9O4uiE8p6HzOs3vrR5dq03/lSRYBxnM3b15rDK9IB4ANkkpUD8BBWu+5jLYHndbmCX/bNNYDOHvEKga9HXTg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/gaffe.ts": {
"file": "gaffe.js",
"name": "gaffe",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/gaffe.ts",
"isEntry": true,
"imports": [
"_api.sn6CvYBX.js",
"_exports.B0KsqwcX.js"
],
"integrity": "sha512-slFdBLR4oN3CEi9YpXwX0sYUyTTWc6xTSgNtNRHBUyrQCFc3Hv0khwd52Ao/80gELsToD3/otO+SH3Vhq3Ttrg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts": {
"file": "scripts-bouton-panier.js",
"name": "scripts-bouton-panier",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts",
"isEntry": true,
"imports": [
"_utils.CpY6lC-L.js",
"_messages.Cfpdtehd.js",
"_exports.B0KsqwcX.js",
"_validation.BxHP2h2i.js"
],
"integrity": "sha512-oYY9nW57p388NsZjHHwp+hAdsp1bB0EUVNnSLhfhSl+wROZ1XwjXeVZKUV0Val2dUhA6Eu5iHdufzIcWoHMZTw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-retour-sommet.ts": {
"file": "scripts-bouton-retour-sommet.js",
"name": "scripts-bouton-retour-sommet",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-retour-sommet.ts",
"isEntry": true,
"imports": [
"_utils.CpY6lC-L.js",
"_exports.B0KsqwcX.js",
"_index-c1cc4c86.C0keEzN6.js"
],
"integrity": "sha512-uodiNu9VatWMjE3otfIawNnfI5dfPse56Yy+18M7dvkuW9eKVsLzPhgL9TuoO3uATKTIAuc9dhRP4nEKx6Fglg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-categories.ts": {
"file": "scripts-menu-categories.js",
"name": "scripts-menu-categories",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-categories.ts",
"isEntry": true,
"imports": [
"_index.CeK6pfoJ.js",
"_utils.CpY6lC-L.js",
"_exports.B0KsqwcX.js"
],
"integrity": "sha512-da/GHRU53343rznuQbNy0XHyfMeqGu779Ut2c8PGEfhaAYVOn64HBwJ08CZltOfl9VJHvcFl1Bc1GYVzWfV3OQ=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-mobile.ts": {
"file": "scripts-menu-mobile.js",
"name": "scripts-menu-mobile",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-mobile.ts",
"isEntry": true,
"imports": [
"_utils.CpY6lC-L.js",
"_exports.B0KsqwcX.js",
"_index-c1cc4c86.C0keEzN6.js"
],
"integrity": "sha512-OpH8rcFhryaJkylejvd+lBz/8471rvL531zUUSh1EW0j6vuZ7xlZkZnw/InUskptCAea/2RBfiN5F/SbMNycNQ=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-a-propos.ts": {
"file": "scripts-page-a-propos.js",
"name": "scripts-page-a-propos",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-a-propos.ts",
"isEntry": true,
"imports": [
"_utils.CpY6lC-L.js",
"_exports.B0KsqwcX.js",
"_index-c1cc4c86.C0keEzN6.js"
],
"integrity": "sha512-nlGl2dpx7IQoeyluJxLOqt2TEojjRoE5N1zzDCmlgCObDuJHONjMnW1AgTMFIQPFrLDdr+4ko829NGO6aZySiA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts": {
"file": "scripts-page-accueil.js",
"name": "scripts-page-accueil",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts",
"isEntry": true,
"imports": [
"_utils.CpY6lC-L.js",
"_nombres.BEH5KeJK.js",
"_exports.B0KsqwcX.js",
"_index-c1cc4c86.C0keEzN6.js"
],
"integrity": "sha512-pnghMb+57OAqAQZOzwx5ByQNSuzIB9AO75cgYEB2mwrcJ7BE2HxkFPAiFeDf7Et/l+bRnLUiFlF5DXQG4Plffw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-boutique.ts": {
"file": "scripts-page-boutique.js",
"name": "scripts-page-boutique",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-boutique.ts",
"isEntry": true,
"imports": [
"_index.CeK6pfoJ.js",
"_validation.BxHP2h2i.js",
"_api.sn6CvYBX.js",
"_utils.CpY6lC-L.js",
"_reseau.BTSNCA1g.js",
"_exports.B0KsqwcX.js"
],
"integrity": "sha512-eLiXDKtS0NQp3xgqb+TzTLgkFg5SDLeZKlNC0g7xcJm10yFWv1mQaTUcG7oA80hEkFR3wWGk8Ywlf3snGcQfDg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": {
"file": "scripts-page-panier.js",
"name": "scripts-page-panier",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts",
"isEntry": true,
"imports": [
"_utils.CpY6lC-L.js",
"_messages.Cfpdtehd.js",
"_nombres.BEH5KeJK.js",
"_index.CeK6pfoJ.js",
"_validation.BxHP2h2i.js",
"_api.sn6CvYBX.js",
"_reseau.BTSNCA1g.js",
"_exports.B0KsqwcX.js",
"_index-c1cc4c86.C0keEzN6.js",
"_gardes.DBQSoZA5.js"
],
"integrity": "sha512-f+g2Aj4Ngwii3Y2CgGpZt1bG8DL9UmgB2UhRiket/6PlnMmk4OZ57ji0tZdq022TjAud7Ll4OOSWzTMf+WPZnQ=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": {
"file": "scripts-page-produit.js",
"name": "scripts-page-produit",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts",
"isEntry": true,
"imports": [
"_index.CeK6pfoJ.js",
"_validation.BxHP2h2i.js",
"_api.sn6CvYBX.js",
"_utils.CpY6lC-L.js",
"_gardes.DBQSoZA5.js",
"_messages.Cfpdtehd.js",
"_reseau.BTSNCA1g.js",
"_exports.B0KsqwcX.js",
"_index-c1cc4c86.C0keEzN6.js"
],
"integrity": "sha512-TxxHyGL6JJUksf+8ohB0NoUpIwxvn/iroG7A0QiEzmJk17snbdNZH5WHfyNHmTo26T19KjkTsNwXqzURce9n8Q=="
}
}

View file

@ -100,7 +100,7 @@ $total_panier = Number::format(floatval(WC()->cart->get_totals()["total"]), prec
foreach (WC()->cart->get_cart() as $cle_panier => $article_panier) { foreach (WC()->cart->get_cart() as $cle_panier => $article_panier) {
$panier[$cle_panier] = [ $panier[$cle_panier] = [
"attributs" => recupere_et_formate_attributs_produit($article_panier["data"]?->get_attributes()), // "attributs" => recupere_et_formate_attributs_produit($article_panier["data"]?->get_attributes()),
"cle" => $cle_panier, "cle" => $cle_panier,
"id_produit" => $article_panier["product_id"], "id_produit" => $article_panier["product_id"],
"id_variation" => $article_panier["variation_id"], "id_variation" => $article_panier["variation_id"],

View file

@ -57,7 +57,7 @@ const client = new BrowserClient({
environment: import.meta.env.VITE_MODE, environment: import.meta.env.VITE_MODE,
integrations: [ integrations: [
breadcrumbsIntegration(), breadcrumbsIntegration(),
captureConsoleIntegration(), captureConsoleIntegration({ levels: ["warn", "error"] }),
dedupeIntegration(), dedupeIntegration(),
functionToStringIntegration(), functionToStringIntegration(),
globalHandlersIntegration(), globalHandlersIntegration(),

View file

@ -33,6 +33,12 @@ export class DOMElementAbsentError extends Error {
this.name = "DOMElementAbsentError"; this.name = "DOMElementAbsentError";
} }
} }
export class ForbiddenError extends Error {
constructor(message = "403 ForbiddenError") {
super(message);
this.name = "ForbiddenError";
}
}
export class NonExistingKeyError extends Error { export class NonExistingKeyError extends Error {
constructor(message: unknown) { constructor(message: unknown) {
super(JSON.stringify(message)); super(JSON.stringify(message));
@ -107,6 +113,16 @@ export const reporteErreur = <E extends Error>(erreur: E): string => captureExce
* @returns never Lève une Erreur et ne retourne donc rien. * @returns never Lève une Erreur et ne retourne donc rien.
*/ */
export const reporteEtLeveErreur = <E extends Error>(erreur: E): never => { export const reporteEtLeveErreur = <E extends Error>(erreur: E): never => {
reporteErreur<E>(erreur); reporteErreur(erreur);
throw erreur; throw erreur;
}; };
export const reporteEtJournaliseErreur = <E extends Error>(erreur: E): void => {
reporteErreur(erreur);
console.error(erreur);
};
export const reporteEtRetourneErreur = <E extends Error>(erreur: E): E => {
reporteErreur(erreur);
return erreur;
};

View file

@ -3,15 +3,20 @@ import { EitherAsync } from "purify-ts";
import { match, P } from "ts-pattern"; import { match, P } from "ts-pattern";
import { type GenericSchema, parse } from "valibot"; import { type GenericSchema, parse } from "valibot";
import type { ReponseSimplifiee } from "./types/reseau"; import type { HttpCodeErrors, ReponseSimplifiee } from "./types/reseau";
import { ENTETE_WC_NONCE } from "../constantes/api.ts"; import { ENTETE_WC_NONCE } from "../constantes/api.ts";
import { import {
BadRequestError,
ErreurInconnue, ErreurInconnue,
ForbiddenError,
leveBadRequestError, leveBadRequestError,
leveErreur, leveErreur,
leveNotFoundError, leveNotFoundError,
leveUnauthorizedError, leveUnauthorizedError,
NotFoundError,
ServerError,
UnauthorizedError,
type UnknownError, type UnknownError,
} from "./erreurs.ts"; } from "./erreurs.ts";
import { estWCError } from "./schemas/api/erreurs.ts"; import { estWCError } from "./schemas/api/erreurs.ts";
@ -147,3 +152,13 @@ export const creeReponseSimplifiee = async (reponse: Response): Promise<ReponseS
status: reponse.status, status: reponse.status,
}; };
}; };
export const traiteErreursBackendWooCommerce = (rs: ReponseSimplifiee): HttpCodeErrors => {
return match(rs)
.with({ status: 400 }, () => new BadRequestError())
.with({ status: 401 }, () => new UnauthorizedError())
.with({ status: 403 }, () => new ForbiddenError())
.with({ status: 404 }, () => new NotFoundError())
.with({ status: 500 }, () => new ServerError())
.otherwise(rs => new Error(String(rs.status)));
};

View file

@ -1,5 +1,15 @@
import type { BadRequestError, ForbiddenError, NotFoundError, ServerError, UnauthorizedError } from "../erreurs";
export type FetchErrors = DOMException | Error | TypeError; export type FetchErrors = DOMException | Error | TypeError;
export type HttpCodeErrors =
| BadRequestError
| Error
| ForbiddenError
| NotFoundError
| ServerError
| UnauthorizedError;
export interface ReponseSimplifiee { export interface ReponseSimplifiee {
body: unknown; body: unknown;
status: number; status: number;

View file

@ -9,7 +9,14 @@ import {
recupereElementsAvecSelecteur, recupereElementsAvecSelecteur,
recupereElementsOuLeve, recupereElementsOuLeve,
} from "./dom.ts"; } from "./dom.ts";
import { CleNonTrouveError } from "./erreurs.ts"; import {
BadRequestError,
CleNonTrouveError,
ForbiddenError,
NotFoundError,
ServerError,
UnauthorizedError,
} from "./erreurs.ts";
export const recupereElementsDocumentEither: <E extends Element = Element>( export const recupereElementsDocumentEither: <E extends Element = Element>(
selecteur: string, selecteur: string,
@ -68,3 +75,15 @@ export const majEtatChargementBouton = (bouton: HTMLButtonElement, activation: b
bouton.removeAttribute(ATTRIBUT_DESACTIVE); bouton.removeAttribute(ATTRIBUT_DESACTIVE);
} }
}; };
export const estErreurHttp = (erreur: unknown) =>
erreur instanceof BadRequestError
|| erreur instanceof ForbiddenError
|| erreur instanceof NotFoundError
|| erreur instanceof ServerError
|| erreur instanceof UnauthorizedError;
export const estErreurFetch = (erreur: unknown) =>
erreur instanceof DOMException
|| erreur instanceof TypeError
|| erreur instanceof Error;

View file

@ -13,7 +13,7 @@ import type { WCStoreShippingRateShippingRates } from "../lib/types/api/couts-li
import type { APIFetchErrors } from "../lib/types/api/erreurs"; import type { APIFetchErrors } from "../lib/types/api/erreurs";
import type { WCV3Order, WCV3OrdersArgs } from "../lib/types/api/v3/orders"; import type { WCV3Order, WCV3OrdersArgs } from "../lib/types/api/v3/orders";
import type { EtatsPageGenerique } from "../lib/types/pages"; import type { EtatsPageGenerique } from "../lib/types/pages";
import type { FetchErrors } from "../lib/types/reseau"; import type { FetchErrors, HttpCodeErrors } from "../lib/types/reseau";
import { ROUTE_API_MAJ_CLIENT, ROUTE_API_NOUVELLE_COMMANDES } from "../constantes/api"; import { ROUTE_API_MAJ_CLIENT, ROUTE_API_NOUVELLE_COMMANDES } from "../constantes/api";
import { import {
@ -36,17 +36,30 @@ import {
ERREUR_GENERIQUE_SOUMISSION_ADRESSES, ERREUR_GENERIQUE_SOUMISSION_ADRESSES,
} from "../constantes/messages-utilisateur"; } from "../constantes/messages-utilisateur";
import { eitherJsonParse, eitherSessionStorageGet } from "../lib/dom"; import { eitherJsonParse, eitherSessionStorageGet } from "../lib/dom";
import { BadRequestError, leveErreur, NonExistingKeyError, reporteErreur, ServerError } from "../lib/erreurs"; import {
BadRequestError,
leveErreur,
NonExistingKeyError,
reporteErreur,
reporteEtJournaliseErreur,
ServerError,
} from "../lib/erreurs";
import { ErreurAdresseInvalide } from "../lib/erreurs/adresses"; import { ErreurAdresseInvalide } from "../lib/erreurs/adresses";
import { emetUniqueMessageBroadcastChannel } from "../lib/messages"; import { emetUniqueMessageBroadcastChannel } from "../lib/messages";
import { diviseParCent, formateEnEuros } from "../lib/nombres"; import { diviseParCent, formateEnEuros } from "../lib/nombres";
import { creeReponseSimplifiee, eitherAsyncFetch, postBackend } from "../lib/reseau"; import { creeReponseSimplifiee, eitherAsyncFetch, postBackend, traiteErreursBackendWooCommerce } from "../lib/reseau";
import { WCStoreCartSchema } from "../lib/schemas/api/cart"; import { WCStoreCartSchema } from "../lib/schemas/api/cart";
import { WCStoreCartUpdateCustomerArgsSchema } from "../lib/schemas/api/cart-update-customer"; import { WCStoreCartUpdateCustomerArgsSchema } from "../lib/schemas/api/cart-update-customer";
import { WCStoreShippingRateShippingRatesSchema } from "../lib/schemas/api/couts-livraison"; import { WCStoreShippingRateShippingRatesSchema } from "../lib/schemas/api/couts-livraison";
import { estWCAddressError } from "../lib/schemas/api/erreurs"; import { estWCAddressError } from "../lib/schemas/api/erreurs";
import { WCV3OrdersArgsSchema, WCV3OrderSchema } from "../lib/schemas/api/v3/orders"; import { WCV3OrdersArgsSchema, WCV3OrderSchema } from "../lib/schemas/api/v3/orders";
import { majEtatChargementBouton, recupereElementsDocumentEither, recupereEleOuLeve } from "../lib/utils"; import {
estErreurFetch,
estErreurHttp,
majEtatChargementBouton,
recupereElementsDocumentEither,
recupereEleOuLeve,
} from "../lib/utils";
import { eitherParse } from "../lib/validation"; import { eitherParse } from "../lib/validation";
// @ts-expect-error -- États injectés par le modèle PHP // @ts-expect-error -- États injectés par le modèle PHP
@ -159,18 +172,16 @@ export const initialiseBoutonCalculLivraison = (): void => {
) )
// 4. Traite les cas d'Erreurs et récupère le Corps de la Réponse // 4. Traite les cas d'Erreurs et récupère le Corps de la Réponse
.chain((reponse: Response) => .chain((reponse: Response) =>
EitherAsync<BadRequestError | ErreurAdresseInvalide | ServerError, unknown>(async ({ throwE }) => EitherAsync<ErreurAdresseInvalide | HttpCodeErrors, unknown>(async ({ throwE }) =>
// Simplifie les données à matcher // Simplifie les données à matcher
match(await creeReponseSimplifiee(reponse)) match(await creeReponseSimplifiee(reponse))
.with({ status: 200 }, rs => rs.body) .with({ status: 200 }, rs => rs.body)
// Problème d'adresse // Problème d'adresse
.with({ .with(
body: P.when(body => estWCAddressError(body)), { body: P.when(body => estWCAddressError(body)), status: 400 },
status: 400, (r): never => throwE(new ErreurAdresseInvalide(r.body.data.params)),
}, (r): never => throwE(new ErreurAdresseInvalide(r.body.data.params))) )
.with({ status: 400 }, (): never => throwE(new BadRequestError("400 Bad Request Error"))) .otherwise((rs): never => throwE(traiteErreursBackendWooCommerce(rs)))
.with({ status: 500 }, (): never => throwE(new ServerError("500 Server Error")))
.otherwise((rs): never => throwE(new Error(`Erreur inconnue ${String(rs.status)}`)))
) )
) )
// 5. Vérifie le Schéma de la Réponse // 5. Vérifie le Schéma de la Réponse
@ -202,21 +213,30 @@ export const initialiseBoutonCalculLivraison = (): void => {
}) })
// 7. Traite les Erreurs et affiche un message à l'Utilisateur // 7. Traite les Erreurs et affiche un message à l'Utilisateur
.ifLeft( .ifLeft(
( (erreur: ErreurAdresseInvalide | FetchErrors | HttpCodeErrors | ValiError<AnySchema>): void => {
erreur: BadRequestError | ErreurAdresseInvalide | FetchErrors | ServerError | ValiError<AnySchema>,
): void => {
match(erreur) match(erreur)
.with(P.instanceOf(ValiError), (e): void => { .when(estErreurHttp, (e): void => {
reporteErreur(e); reporteEtJournaliseErreur(e);
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_SOUMISSION_ADRESSES;
})
.when(estErreurFetch, (e): void => {
reporteEtJournaliseErreur(e);
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_RESEAU;
})
.with(P.instanceOf(ValiError), (e: ValiError<AnySchema>): void => {
reporteEtJournaliseErreur(e);
console.error(e.issues); console.error(e.issues);
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_SOUMISSION_ADRESSES; E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_SOUMISSION_ADRESSES;
}) })
.with(P.instanceOf(ErreurAdresseInvalide), (e): void => { .with(P.instanceOf(ErreurAdresseInvalide), (e: ErreurAdresseInvalide): void => {
reporteErreur(e); reporteEtJournaliseErreur(e);
console.error(e, e.problemes); console.error(e.problemes);
match(e.problemes) match(e.problemes)
.when( .when(
// TODO: Créer une fonction utilitaire
p => pipe(dictValues(p), arrayFind(c => c === "The provided postcode is not valid")), p => pipe(dictValues(p), arrayFind(c => c === "The provided postcode is not valid")),
// TODO: Créer une fonction utililtaire pour fixer le texte d'un message
(): void => { (): void => {
E.MESSAGE_ADRESSES.textContent = ERREUR_ADRESSE_MAUVAIS_CODE_POSTAL; E.MESSAGE_ADRESSES.textContent = ERREUR_ADRESSE_MAUVAIS_CODE_POSTAL;
}, },
@ -225,16 +245,6 @@ export const initialiseBoutonCalculLivraison = (): void => {
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_SOUMISSION_ADRESSES; E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_SOUMISSION_ADRESSES;
}); });
}) })
.with(P.instanceOf(ServerError), P.instanceOf(BadRequestError), (e): void => {
reporteErreur(e);
console.error(e);
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_SOUMISSION_ADRESSES;
})
.with(P.instanceOf(DOMException), P.instanceOf(TypeError), P.instanceOf(Error), (e): void => {
reporteErreur(e);
console.error(e);
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_RESEAU;
})
.exhaustive(); .exhaustive();
E.BOUTON_ACTIONS_FORMULAIRE.textContent = "Submit your addresses"; E.BOUTON_ACTIONS_FORMULAIRE.textContent = "Submit your addresses";