Compare commits

..

4 commits

Author SHA1 Message Date
2ef5fbba66 2026-05-06
- corvée(gitignore) exclus les fichiers CSS compilés
2026-05-06 15:50:17 +02:00
67f96263df corvée(formatage) formate 2026-05-06 11:43:07 +02:00
e6e4203129 corvée(images) ajoute les dernières images 2026-05-06 11:42:36 +02:00
f62f82a657 corvée(db) exporte les dernières versions de BDD 2026-05-06 11:42:21 +02:00
49 changed files with 20690 additions and 207003 deletions

2
.gitignore vendored
View file

@ -7,7 +7,7 @@ web/app/upgrade
web/app/cache/*
web/app/languages/
web/app/object-cache.php
web/app/themes/haiku-atelier-2024/assets/css/**/*
web/app/themes/haiku-atelier-2024/assets/css/*
web/app/themes/haiku-atelier-2024/assets/js/*
# WordPress

View file

@ -1,19 +1,11 @@
# :schema: https://github.com/AJenbo/phpantom_lsp/raw/main/config-schema.json
#:schema https://github.com/AJenbo/phpantom_lsp/raw/main/config-schema.json
[php]
# Override the detected PHP version (default: inferred from composer.json, or 8.5).
# version = "8.5"
#
[diagnostics]
extra-arguments = true
# Report member access on subjects whose type could not be resolved.
# Useful for discovering gaps in type coverage. Off by default.
unresolved-member-access = false
[indexing]
# How PHPantom discovers classes across the workspace.
# "composer" (default) - use Composer classmap, self-scan on fallback
# "self" - always self-scan, ignore Composer classmap
# "none" - no proactive scanning, Composer classmap only
strategy = "composer"

View file

@ -9,7 +9,7 @@
"!oxc",
"!oxfmt",
"!oxlint",
"!phptools",
"!phpantom_lsp",
"!prettier",
"!tailwindcss-language-server",
"!tsgo",
@ -20,7 +20,7 @@
"PHP": {
"language_servers": [
"phpactor",
"phpantom_lsp"
"phptools"
]
}
},

View file

@ -5,17 +5,15 @@ settings:
excludeLinksFromLockfile: false
time:
'@typescript/native-preview-darwin-arm64@7.0.0-dev.20260504.1': 2026-05-04T08:07:16.408Z
'@typescript/native-preview-linux-arm64@7.0.0-dev.20260504.1': 2026-05-04T08:07:08.493Z
'@typescript/native-preview-linux-x64@7.0.0-dev.20260504.1': 2026-05-04T08:07:00.673Z
'@typescript/native-preview-win32-arm64@7.0.0-dev.20260504.1': 2026-05-04T08:06:56.870Z
'@typescript/native-preview-win32-x64@7.0.0-dev.20260504.1': 2026-05-04T08:06:52.760Z
'@typescript/native-preview@7.0.0-dev.20260504.1': 2026-05-04T08:07:19.165Z
'@effect/platform-browser@4.0.0-beta.60': 2026-05-03T12:37:59.961Z
importers:
.:
dependencies:
'@effect/platform-browser':
specifier: ^4.0.0-beta.60
version: 4.0.0-beta.60(effect@4.0.0-beta.60)
'@mobily/ts-belt':
specifier: v4.0.0-rc.5
version: 4.0.0-rc.5
@ -45,7 +43,7 @@ importers:
version: 2.1.2
stylelint-order:
specifier: '>=6'
version: 8.1.1(stylelint@17.10.0)
version: 8.1.1(stylelint@17.11.0)
terser:
specifier: ^5.16.0
version: 5.46.2
@ -91,7 +89,7 @@ importers:
version: 7.0.0-dev.20260504.1
'@vitejs/plugin-legacy':
specifier: ^8.0.1
version: 8.0.1(terser@5.46.2)(vite@8.0.10(@types/node@25.6.0)(jiti@2.6.1)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3))
version: 8.0.1(terser@5.46.2)(vite@8.0.10(@types/node@25.6.0)(jiti@2.7.0)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3))
better-typescript-lib:
specifier: ^2.12.0
version: 2.12.0(typescript@6.0.3)
@ -99,23 +97,23 @@ importers:
specifier: ^4.28.2
version: 4.28.2
caniuse-lite:
specifier: ^1.0.30001791
version: 1.0.30001791
specifier: ^1.0.30001792
version: 1.0.30001792
eslint:
specifier: ^10.3.0
version: 10.3.0(jiti@2.6.1)
version: 10.3.0(jiti@2.7.0)
eslint-plugin-functional:
specifier: ^9.0.4
version: 9.0.4(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
version: 9.0.4(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
eslint-plugin-jsx-a11y:
specifier: ^6.10.2
version: 6.10.2(eslint@10.3.0(jiti@2.6.1))
version: 6.10.2(eslint@10.3.0(jiti@2.7.0))
eslint-plugin-oxlint:
specifier: ^1.62.0
version: 1.62.0(oxlint@1.62.0(oxlint-tsgolint@0.22.1))
specifier: ^1.63.0
version: 1.63.0(oxlint@1.63.0(oxlint-tsgolint@0.22.1))
eslint-plugin-perfectionist:
specifier: ^5.9.0
version: 5.9.0(eslint@10.3.0(jiti@2.6.1))
version: 5.9.0(eslint@10.3.0(jiti@2.7.0))
fdir:
specifier: ^6.5.0
version: 6.5.0(picomatch@4.0.4)
@ -123,8 +121,8 @@ importers:
specifier: '17'
version: 17.5.0
jiti:
specifier: ^2.6.1
version: 2.6.1
specifier: ^2.7.0
version: 2.7.0
knip:
specifier: ^6.11.0
version: 6.11.0
@ -135,8 +133,8 @@ importers:
specifier: ^1.32.0
version: 1.32.0
oxlint:
specifier: ^1.62.0
version: 1.62.0(oxlint-tsgolint@0.22.1)
specifier: ^1.63.0
version: 1.63.0(oxlint-tsgolint@0.22.1)
oxlint-tsgolint:
specifier: ^0.22.1
version: 0.22.1
@ -168,35 +166,35 @@ importers:
specifier: ^1.99.0
version: 1.99.0
stylelint:
specifier: ^17.10.0
version: 17.10.0
specifier: ^17.11.0
version: 17.11.0
stylelint-config-clean-order:
specifier: ^8.0.1
version: 8.0.1(stylelint@17.10.0)(stylelint-order@8.1.1(stylelint@17.10.0))
version: 8.0.1(stylelint@17.11.0)(stylelint-order@8.1.1(stylelint@17.11.0))
stylelint-config-sass-guidelines:
specifier: ^13.0.0
version: 13.0.0(postcss@8.5.13)(stylelint@17.10.0)
version: 13.0.0(postcss@8.5.13)(stylelint@17.11.0)
stylelint-config-standard-scss:
specifier: ^17.0.0
version: 17.0.0(postcss@8.5.13)(stylelint@17.10.0)
version: 17.0.0(postcss@8.5.13)(stylelint@17.11.0)
stylelint-declaration-block-no-ignored-properties:
specifier: ^3.0.0
version: 3.0.0(stylelint@17.10.0)
version: 3.0.0(stylelint@17.11.0)
stylelint-plugin-logical-css:
specifier: ^2.1.0
version: 2.1.0(stylelint@17.10.0)
version: 2.1.0(stylelint@17.11.0)
typescript:
specifier: ^6.0.3
version: 6.0.3
typescript-eslint:
specifier: ^8.59.1
version: 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
specifier: ^8.59.2
version: 8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
vite:
specifier: ^8.0.10
version: 8.0.10(@types/node@25.6.0)(jiti@2.6.1)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3)
version: 8.0.10(@types/node@25.6.0)(jiti@2.7.0)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3)
vite-tsconfig-paths:
specifier: ^6.1.1
version: 6.1.1(vite@8.0.10(@types/node@25.6.0)(jiti@2.6.1)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3))
version: 6.1.1(vite@8.0.10(@types/node@25.6.0)(jiti@2.7.0)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3))
packages:
@ -751,6 +749,11 @@ packages:
resolution: {integrity: sha512-EXnJjIy6zQ3nUO/MZ+ynWUb8B895KZPotd1++oTs9JjDkplwM7cb6zo8Zq2zU6piwq+KflO7amXbEfj1UMpHkw==}
hasBin: true
'@effect/platform-browser@4.0.0-beta.60':
resolution: {integrity: sha512-trM/3DM5VhVBGZt8KccLG7LA+F34gw6o3APHa70dl8jHXNQ04tZ74WbG5RbCkekUHitj0MFC0sfuhGLNGxDtDg==}
peerDependencies:
effect: ^4.0.0-beta.60
'@effect/tsgo-linux-x64@0.5.2':
resolution: {integrity: sha512-V6sHIZlKQv693ABb9REX0RzIvzyCbNg2uP5+4MXwetlSxz8pmeAUCpraAQLXBkKlYL5rG9kMIobDFU9A88Nqig==}
os:
@ -932,16 +935,16 @@ packages:
cpu:
- x64
'@oxlint/binding-linux-x64-gnu@1.62.0':
resolution: {integrity: sha512-5z25jcAA0gfKyVwz71A0VXgaPlocPoTAxhlv/hgoK6tlCrfoNuw7haWbDHvGMfjXhdic4EqVXGRv5XsTqFnbRQ==}
'@oxlint/binding-linux-x64-gnu@1.63.0':
resolution: {integrity: sha512-Vgq9rkRVcPcjbcH+ihYTfpeR7vCXfqpd+z5ItTGc0yYUV59L5ceHYN1iV4H9bKGV7Rn5hkVc7x3mSvHegduENA==}
engines: {node: ^20.19.0 || >=22.12.0}
os:
- linux
cpu:
- x64
'@oxlint/binding-linux-x64-musl@1.62.0':
resolution: {integrity: sha512-IWpHmMB6ZDllPvqWDkG6AmXrN7JF5e/c4g/0PuURsmlK+vHoYZPB70rr4u1bn3I4LsKCSpqqfveyx6UCOC8wdg==}
'@oxlint/binding-linux-x64-musl@1.63.0':
resolution: {integrity: sha512-3/Lkq/ncooA61rorrC+ZQed1Bc4VpGj+WnGsp58zmxKgvZ2vhreu+dcVyr3mX8NUpq7mfZ4gDDTou/yrF1Pd7A==}
engines: {node: ^20.19.0 || >=22.12.0}
os:
- linux
@ -1051,16 +1054,16 @@ packages:
'@types/unist@3.0.3':
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
'@typescript-eslint/eslint-plugin@8.59.1':
resolution: {integrity: sha512-BOziFIfE+6osHO9FoJG4zjoHUcvI7fTNBSpdAwrNH0/TLvzjsk2oo8XSSOT2HhqUyhZPfHv4UOffoJ9oEEQ7Ag==}
'@typescript-eslint/eslint-plugin@8.59.2':
resolution: {integrity: sha512-j/bwmkBvHUtPNxzuWe5z6BEk3q54YRyGlBXkSsmfoih7zNrBvl5A9A98anlp/7JbyZcWIJ8KXo/3Tq/DjFLtuQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
'@typescript-eslint/parser': ^8.59.1
'@typescript-eslint/parser': ^8.59.2
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/parser@8.59.1':
resolution: {integrity: sha512-HDQH9O/47Dxi1ceDhBXdaldtf/WV9yRYMjbjCuNk3qnaTD564qwv61Y7+gTxwxRKzSrgO5uhtw584igXVuuZkA==}
'@typescript-eslint/parser@8.59.2':
resolution: {integrity: sha512-plR3pp6D+SSUn1HM7xvSkx12/DhoHInI2YF35KAcVFNZvlC0gtrWqx7Qq1oH2Ssgi0vlFRCTbP+DZc7B9+TtsQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
@ -1072,16 +1075,32 @@ packages:
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/project-service@8.59.2':
resolution: {integrity: sha512-+2hqvEkeyf/0FBor67duF0Ll7Ot8jyKzDQOSrxazF/danillRq2DwR9dLptsXpoZQqxE1UisSmoZewrlPas9Vw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/scope-manager@8.59.1':
resolution: {integrity: sha512-LwuHQI4pDOYVKvmH2dkaJo6YZCSgouVgnS/z7yBPKBMvgtBvyLqiLy9Z6b7+m/TRcX1NFYUqZetI5Y+aT4GEfg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/scope-manager@8.59.2':
resolution: {integrity: sha512-JzfyEpEtOU89CcFSwyNS3mu4MLvLSXqnmX05+aKBDM+TdR5jzcGOEBwxwGNxrEQ7p/z6kK2WyioCGBf2zZBnvg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/tsconfig-utils@8.59.1':
resolution: {integrity: sha512-/0nEyPbX7gRsk0Uwfe4ALwwgxuA66d/l2mhRDNlAvaj4U3juhUtJNq0DsY8M2AYwwb9rEq2hrC3IcIcEt++iJA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/tsconfig-utils@8.59.2':
resolution: {integrity: sha512-BKK4alN7oi4C/zv4VqHQ+uRU+lTa6JGIZ7s1juw7b3RHo9OfKB+bKX3u0iVZetdsUCBBkSbdWbarJbmN0fTeSw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/type-utils@8.59.1':
resolution: {integrity: sha512-klWPBR2ciQHS3f++ug/mVnWKPjBUo7icEL3FAO1lhAR1Z1i5NQYZ1EannMSRYcq5qCv5wNALlXr6fksRHyYl7w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@ -1089,16 +1108,33 @@ packages:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/type-utils@8.59.2':
resolution: {integrity: sha512-nhqaj1nmTdVVl/BP5omXNRGO38jn5iosis2vbdmupF2txCf8ylWT8lx+JlvMYYVqzGVKtjojUFoQ3JRWK+mfzQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/types@8.59.1':
resolution: {integrity: sha512-ZDCjgccSdYPw5Bxh+my4Z0lJU96ZDN7jbBzvmEn0FZx3RtU1C7VWl6NbDx94bwY3V5YsgwRzJPOgeY2Q/nLG8A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/types@8.59.2':
resolution: {integrity: sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@8.59.1':
resolution: {integrity: sha512-OUd+vJS05sSkOip+BkZ/2NS8RMxrAAJemsC6vU3kmfLyeaJT0TftHkV9mcx2107MmsBVXXexhVu4F0TZXyMl4g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/typescript-estree@8.59.2':
resolution: {integrity: sha512-o0XPGNwcWw+FIwStOWn+BwBuEmL6QXP0rsvAFg7ET1dey1Nr6Wb1ac8p5HEsK0ygO/6mUxlk+YWQD9xcb/nnXg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/utils@8.59.1':
resolution: {integrity: sha512-3pIeoXhCeYH9FSCBI8P3iNwJlGuzPlYKkTlen2O9T1DSeeg8UG8jstq6BLk+Mda0qup7mgk4z4XL4OzRaxZ8LA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@ -1106,10 +1142,21 @@ packages:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/utils@8.59.2':
resolution: {integrity: sha512-Juw3EinkXqjaffxz6roowvV7GZT/kET5vSKKZT6upl5TXdWkLkYmNPXwDDL2Vkt2DPn0nODIS4egC/0AGxKo/Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/visitor-keys@8.59.1':
resolution: {integrity: sha512-LdDNl6C5iJExcM0Yh0PwAIBb9PrSiCsWamF/JyEZawm3kFDnRoaq3LGE4bpyRao/fWeGKKyw7icx0YxrLFC5Cg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/visitor-keys@8.59.2':
resolution: {integrity: sha512-NwjLUnGy8/Zfx23fl50tRC8rYaYnM52xNRYFAXvmiil9yh1+K6aRVQMnzW6gQB/1DLgWt977lYQn7C+wtgXZiA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript/lib-decorators@2.12.0':
resolution: {integrity: sha512-/m9Q5Xk66ThUJidTsxmXJH0+49iCLl5PFmue0HkNSGrcPU96oaoKNY5sH1AslwA/OWVvBg3hE58ZwSGm6TQFuQ==}
peerDependencies:
@ -1212,22 +1259,6 @@ packages:
typescript: '>=4.5.2'
aliasOf: '@better-typescript-lib/webworker'
'@typescript/native-preview-darwin-arm64@7.0.0-dev.20260504.1':
resolution: {integrity: sha512-+Qs1Q7Qxfp11n/hU3pweFU+EQ37FnDsdWOOxb7/vCy8QGBysrLUUYRhQ+GSW3s663oMtN6+9Kf82hk3ZT+kXlg==}
engines: {node: '>=16.20.0'}
os:
- darwin
cpu:
- arm64
'@typescript/native-preview-linux-arm64@7.0.0-dev.20260504.1':
resolution: {integrity: sha512-y1Qai5l55Sl+/3B0hyQtvynq//C22BKFH3CfU35fbLYUo4P/ISUycyAbcA+PAPazpDFO3E56I96QUQrbJL2VVA==}
engines: {node: '>=16.20.0'}
os:
- linux
cpu:
- arm64
'@typescript/native-preview-linux-x64@7.0.0-dev.20260504.1':
resolution: {integrity: sha512-ngN3Ie3Vin6pFtqeNywxm86RTxgI0Fo0GZyJ1PxokLES8J3xfMPtMYfv85c/+5uz5+7T+m4LRLyY5IoLY4gtuw==}
engines: {node: '>=16.20.0'}
@ -1236,22 +1267,6 @@ packages:
cpu:
- x64
'@typescript/native-preview-win32-arm64@7.0.0-dev.20260504.1':
resolution: {integrity: sha512-/GZDJN/CsLbqIe7EdWDkXhNX9C41VjemBeUN6+9ckvEFLH8XyKTmXPYikNOn0N819M1KSeNZltplyUslfROOdw==}
engines: {node: '>=16.20.0'}
os:
- win32
cpu:
- arm64
'@typescript/native-preview-win32-x64@7.0.0-dev.20260504.1':
resolution: {integrity: sha512-EYQBdVZq4xIzhTtKxw6wvee9238hEb7XrPG413AEZBD3kcR3qqvPULXsPzQyEpneCReATSaihscP/LfhMQYUmA==}
engines: {node: '>=16.20.0'}
os:
- win32
cpu:
- x64
'@typescript/native-preview@7.0.0-dev.20260504.1':
resolution: {integrity: sha512-bHFGxyIU83qjj6ywn3817A+Ug2ZID0GiBA5WFdbc/T7EjcrKnUUylexq0fU81N/mTbfw3FyP6ZCEdO2Ntcl/VQ==}
engines: {node: '>=16.20.0'}
@ -1458,8 +1473,8 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
caniuse-lite@1.0.30001791:
resolution: {integrity: sha512-yk0l/YSrOnFZk3UROpDLQD9+kC1l4meK/wed583AXrzoarMGJcbRi2Q4RaUYbKxYAsZ8sWmaSa/DsLmdBeI1vQ==}
caniuse-lite@1.0.30001792:
resolution: {integrity: sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==}
change-case@5.4.4:
resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==}
@ -1689,10 +1704,10 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
eslint-plugin-oxlint@1.62.0:
resolution: {integrity: sha512-fJ1xrPPw7AwJPH+4rD10qaXbCQfMNa743WnwPwteXLFsUQ0qs9N1Zx8xGJvuWCwvciRJ19dwG+G460fLHrrPdw==}
eslint-plugin-oxlint@1.63.0:
resolution: {integrity: sha512-eqZ8pLk4Lz2HKqXC/BLceVzYP/cO0OHOAUBlLOau3Vk/I39mYbAFcmlAqJusTqEn2tgH/Nh/JUGKbCwf8k4DMA==}
peerDependencies:
oxlint: ~1.62.0
oxlint: ~1.63.0
eslint-plugin-perfectionist@5.9.0:
resolution: {integrity: sha512-8TWzg02zmnBdZwCkWLi8jhzqXI+fE7Z/RwV8SL6xD45tJ8Bp3wGuYL2XtQgfe/Wd0eBqOUX+s6ey73IyszvKTA==}
@ -2155,8 +2170,8 @@ packages:
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
jiti@2.6.1:
resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
jiti@2.7.0:
resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==}
hasBin: true
js-tokens@4.0.0:
@ -2488,12 +2503,12 @@ packages:
resolution: {integrity: sha512-YUSGSLUnoolsu8gxISEDio3q1rtsCozwfOzASUn3DT2mR2EeQ93uEEnen7s+6LpF+lyTQFln1pQfqwBh/fsVEg==}
hasBin: true
oxlint@1.62.0:
resolution: {integrity: sha512-1uFkg6HakjsGIpW9wNdeW4/2LOHW9MEkoWjZUTUfQtIHyLIZPYt00w3Sg+H3lH+206FgBPHBbW5dVE5l2ExECQ==}
oxlint@1.63.0:
resolution: {integrity: sha512-9TGXetdjgIHOJ9OiReomP7nnrMkV9HxC1xM2ramJSLQpzxjsAJtQwa4wqkJN2f/uCrqZuJseFuSlWDdvcruveg==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
oxlint-tsgolint: '>=0.18.0'
oxlint-tsgolint: '>=0.22.1'
peerDependenciesMeta:
oxlint-tsgolint:
optional: true
@ -2970,8 +2985,8 @@ packages:
peerDependencies:
stylelint: ^16.8.2 || ^17.0.0
stylelint@17.10.0:
resolution: {integrity: sha512-cI7I6HHEYOHHVNVci+s92WlA3QfmNhjwFdgCgYV3TLEysilOjk+B3EFxMED1xY9GYB0Kre3OD+mSLj19VLTIvA==}
stylelint@17.11.0:
resolution: {integrity: sha512-/3czzmbF9XdGWvReDF3Ex4R23Ajolo7j8RB2bFNEqk6Ht356nlpVV+G5bG2Qt8AW1ofJzXztBRDnAtd7cgowWA==}
engines: {node: '>=20.19.0'}
hasBin: true
@ -3081,8 +3096,8 @@ packages:
resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
engines: {node: '>= 0.4'}
typescript-eslint@8.59.1:
resolution: {integrity: sha512-xqDcFVBmlrltH64lklOVp1wYxgJr6LVdg3NamBgH2OOQDLFdTKfIZXF5PfghrnXQKXZGTQs8tr1vL7fJvq8CTQ==}
typescript-eslint@8.59.2:
resolution: {integrity: sha512-pJw051uomb3ZeCzGTpRb8RbEqB5Y4WWet8gl/GcTlU35BSx0PVdZ86/bqkQCyKKuraVQEK7r6kBHQXF+fBhkoQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
@ -3886,6 +3901,11 @@ snapshots:
'@effect/language-service@0.85.1': {}
'@effect/platform-browser@4.0.0-beta.60(effect@4.0.0-beta.60)':
dependencies:
effect: 4.0.0-beta.60
multipasta: 0.2.7
'@effect/tsgo-linux-x64@0.5.2': {}
'@effect/tsgo@0.5.2':
@ -3902,9 +3922,9 @@ snapshots:
'@es-joy/resolve.exports@1.2.0': {}
'@eslint-community/eslint-utils@4.9.1(eslint@10.3.0(jiti@2.6.1))':
'@eslint-community/eslint-utils@4.9.1(eslint@10.3.0(jiti@2.7.0))':
dependencies:
eslint: 10.3.0(jiti@2.6.1)
eslint: 10.3.0(jiti@2.7.0)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.2': {}
@ -3923,9 +3943,9 @@ snapshots:
dependencies:
'@types/json-schema': 7.0.15
'@eslint/js@10.0.1(eslint@10.3.0(jiti@2.6.1))':
'@eslint/js@10.0.1(eslint@10.3.0(jiti@2.7.0))':
dependencies:
eslint: 10.3.0(jiti@2.6.1)
eslint: 10.3.0(jiti@2.7.0)
'@eslint/object-schema@3.0.5': {}
@ -3936,25 +3956,25 @@ snapshots:
'@gcch/configuration-eslint@https://git.gcch.fr/gcch/configuration-eslint#888eb4aa54e5bfd6251566d7469ee99204c19f45':
dependencies:
'@eslint/js': 10.0.1(eslint@10.3.0(jiti@2.6.1))
'@eslint/js': 10.0.1(eslint@10.3.0(jiti@2.7.0))
astro-eslint-parser: 1.4.0
eslint: 10.3.0(jiti@2.6.1)
eslint-plugin-functional: 9.0.4(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
eslint-plugin-jsdoc: 62.9.0(eslint@10.3.0(jiti@2.6.1))
eslint-plugin-perfectionist: 5.9.0(eslint@10.3.0(jiti@2.6.1))
eslint-plugin-sonarjs: 4.0.3(eslint@10.3.0(jiti@2.6.1))
eslint-plugin-unicorn: 64.0.0(eslint@10.3.0(jiti@2.6.1))
eslint: 10.3.0(jiti@2.7.0)
eslint-plugin-functional: 9.0.4(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
eslint-plugin-jsdoc: 62.9.0(eslint@10.3.0(jiti@2.7.0))
eslint-plugin-perfectionist: 5.9.0(eslint@10.3.0(jiti@2.7.0))
eslint-plugin-sonarjs: 4.0.3(eslint@10.3.0(jiti@2.7.0))
eslint-plugin-unicorn: 64.0.0(eslint@10.3.0(jiti@2.7.0))
globals: 17.5.0
typescript-eslint: 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
typescript-eslint: 8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
'@gcch/configuration-oxlint@https://git.gcch.fr/gcch/configuration-oxlint#83547fc1ebfd6cb402e3c7f074b3e267632ebf4a':
dependencies:
eslint-plugin-astro: 1.7.0(eslint@10.3.0(jiti@2.6.1))
eslint-plugin-functional: 9.0.4(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
eslint-plugin-jsx-a11y: 6.10.2(eslint@10.3.0(jiti@2.6.1))
eslint-plugin-perfectionist: 5.9.0(eslint@10.3.0(jiti@2.6.1))
eslint-plugin-astro: 1.7.0(eslint@10.3.0(jiti@2.7.0))
eslint-plugin-functional: 9.0.4(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
eslint-plugin-jsx-a11y: 6.10.2(eslint@10.3.0(jiti@2.7.0))
eslint-plugin-perfectionist: 5.9.0(eslint@10.3.0(jiti@2.7.0))
globals: 17.5.0
oxlint: 1.62.0(oxlint-tsgolint@0.22.1)
oxlint: 1.63.0(oxlint-tsgolint@0.22.1)
oxlint-tsgolint: 0.22.1
'@gcch/configuration-prettier@https://git.gcch.fr/gcch/configuration-prettier#d267d6dc5ee8f14378180d71f651009bf7aa3acc':
@ -4045,9 +4065,9 @@ snapshots:
'@oxlint-tsgolint/linux-x64@0.22.1': {}
'@oxlint/binding-linux-x64-gnu@1.62.0': {}
'@oxlint/binding-linux-x64-gnu@1.63.0': {}
'@oxlint/binding-linux-x64-musl@1.62.0': {}
'@oxlint/binding-linux-x64-musl@1.63.0': {}
'@pkgr/core@0.2.9': {}
@ -4097,7 +4117,7 @@ snapshots:
'@standard-schema/spec@1.1.0': {}
'@stylistic/stylelint-plugin@5.1.0(stylelint@17.10.0)':
'@stylistic/stylelint-plugin@5.1.0(stylelint@17.11.0)':
dependencies:
'@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
'@csstools/css-tokenizer': 4.0.0
@ -4106,7 +4126,7 @@ snapshots:
postcss-selector-parser: 7.1.1
postcss-value-parser: 4.2.0
style-search: 0.1.0
stylelint: 17.10.0
stylelint: 17.11.0
'@types/bun@1.3.13':
dependencies:
@ -4135,29 +4155,29 @@ snapshots:
'@types/trusted-types@2.0.7': {}
'@types/unist@3.0.3': {}
? '@typescript-eslint/eslint-plugin@8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)'
? '@typescript-eslint/eslint-plugin@8.59.2(@typescript-eslint/parser@8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)'
: dependencies:
'@eslint-community/regexpp': 4.12.2
'@typescript-eslint/parser': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
'@typescript-eslint/scope-manager': 8.59.1
'@typescript-eslint/type-utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
'@typescript-eslint/utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
'@typescript-eslint/visitor-keys': 8.59.1
eslint: 10.3.0(jiti@2.6.1)
'@typescript-eslint/parser': 8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
'@typescript-eslint/scope-manager': 8.59.2
'@typescript-eslint/type-utils': 8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
'@typescript-eslint/utils': 8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
'@typescript-eslint/visitor-keys': 8.59.2
eslint: 10.3.0(jiti@2.7.0)
ignore: 7.0.5
natural-compare: 1.4.0
ts-api-utils: 2.5.0(typescript@6.0.3)
typescript: 6.0.3
'@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)':
'@typescript-eslint/parser@8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.59.1
'@typescript-eslint/types': 8.59.1
'@typescript-eslint/typescript-estree': 8.59.1(typescript@6.0.3)
'@typescript-eslint/visitor-keys': 8.59.1
'@typescript-eslint/scope-manager': 8.59.2
'@typescript-eslint/types': 8.59.2
'@typescript-eslint/typescript-estree': 8.59.2(typescript@6.0.3)
'@typescript-eslint/visitor-keys': 8.59.2
debug: 4.4.3
eslint: 10.3.0(jiti@2.6.1)
eslint: 10.3.0(jiti@2.7.0)
typescript: 6.0.3
'@typescript-eslint/project-service@8.59.1(typescript@6.0.3)':
@ -4167,27 +4187,55 @@ snapshots:
debug: 4.4.3
typescript: 6.0.3
'@typescript-eslint/project-service@8.59.2(typescript@6.0.3)':
dependencies:
'@typescript-eslint/tsconfig-utils': 8.59.2(typescript@6.0.3)
'@typescript-eslint/types': 8.59.2
debug: 4.4.3
typescript: 6.0.3
'@typescript-eslint/scope-manager@8.59.1':
dependencies:
'@typescript-eslint/types': 8.59.1
'@typescript-eslint/visitor-keys': 8.59.1
'@typescript-eslint/scope-manager@8.59.2':
dependencies:
'@typescript-eslint/types': 8.59.2
'@typescript-eslint/visitor-keys': 8.59.2
'@typescript-eslint/tsconfig-utils@8.59.1(typescript@6.0.3)':
dependencies:
typescript: 6.0.3
'@typescript-eslint/type-utils@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)':
'@typescript-eslint/tsconfig-utils@8.59.2(typescript@6.0.3)':
dependencies:
typescript: 6.0.3
'@typescript-eslint/type-utils@8.59.1(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)':
dependencies:
'@typescript-eslint/types': 8.59.1
'@typescript-eslint/typescript-estree': 8.59.1(typescript@6.0.3)
'@typescript-eslint/utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
'@typescript-eslint/utils': 8.59.1(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
debug: 4.4.3
eslint: 10.3.0(jiti@2.6.1)
eslint: 10.3.0(jiti@2.7.0)
ts-api-utils: 2.5.0(typescript@6.0.3)
typescript: 6.0.3
'@typescript-eslint/type-utils@8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)':
dependencies:
'@typescript-eslint/types': 8.59.2
'@typescript-eslint/typescript-estree': 8.59.2(typescript@6.0.3)
'@typescript-eslint/utils': 8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
debug: 4.4.3
eslint: 10.3.0(jiti@2.7.0)
ts-api-utils: 2.5.0(typescript@6.0.3)
typescript: 6.0.3
'@typescript-eslint/types@8.59.1': {}
'@typescript-eslint/types@8.59.2': {}
'@typescript-eslint/typescript-estree@8.59.1(typescript@6.0.3)':
dependencies:
'@typescript-eslint/project-service': 8.59.1(typescript@6.0.3)
@ -4201,13 +4249,35 @@ snapshots:
ts-api-utils: 2.5.0(typescript@6.0.3)
typescript: 6.0.3
'@typescript-eslint/utils@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)':
'@typescript-eslint/typescript-estree@8.59.2(typescript@6.0.3)':
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1))
'@typescript-eslint/project-service': 8.59.2(typescript@6.0.3)
'@typescript-eslint/tsconfig-utils': 8.59.2(typescript@6.0.3)
'@typescript-eslint/types': 8.59.2
'@typescript-eslint/visitor-keys': 8.59.2
debug: 4.4.3
minimatch: 10.2.5
semver: 7.7.4
tinyglobby: 0.2.16
ts-api-utils: 2.5.0(typescript@6.0.3)
typescript: 6.0.3
'@typescript-eslint/utils@8.59.1(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)':
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.7.0))
'@typescript-eslint/scope-manager': 8.59.1
'@typescript-eslint/types': 8.59.1
'@typescript-eslint/typescript-estree': 8.59.1(typescript@6.0.3)
eslint: 10.3.0(jiti@2.6.1)
eslint: 10.3.0(jiti@2.7.0)
typescript: 6.0.3
'@typescript-eslint/utils@8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)':
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.7.0))
'@typescript-eslint/scope-manager': 8.59.2
'@typescript-eslint/types': 8.59.2
'@typescript-eslint/typescript-estree': 8.59.2(typescript@6.0.3)
eslint: 10.3.0(jiti@2.7.0)
typescript: 6.0.3
'@typescript-eslint/visitor-keys@8.59.1':
@ -4215,6 +4285,11 @@ snapshots:
'@typescript-eslint/types': 8.59.1
eslint-visitor-keys: 5.0.1
'@typescript-eslint/visitor-keys@8.59.2':
dependencies:
'@typescript-eslint/types': 8.59.2
eslint-visitor-keys: 5.0.1
'@typescript/lib-decorators@2.12.0(typescript@6.0.3)':
dependencies:
typescript: 6.0.3
@ -4283,24 +4358,12 @@ snapshots:
dependencies:
typescript: 6.0.3
'@typescript/native-preview-darwin-arm64@7.0.0-dev.20260504.1': {}
'@typescript/native-preview-linux-arm64@7.0.0-dev.20260504.1': {}
'@typescript/native-preview-linux-x64@7.0.0-dev.20260504.1': {}
'@typescript/native-preview-win32-arm64@7.0.0-dev.20260504.1': {}
'@typescript/native-preview-win32-x64@7.0.0-dev.20260504.1': {}
'@typescript/native-preview@7.0.0-dev.20260504.1':
optionalDependencies:
'@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260504.1
'@typescript/native-preview-linux-arm64': 7.0.0-dev.20260504.1
'@typescript/native-preview-linux-x64': 7.0.0-dev.20260504.1
'@typescript/native-preview-win32-arm64': 7.0.0-dev.20260504.1
'@typescript/native-preview-win32-x64': 7.0.0-dev.20260504.1
? '@vitejs/plugin-legacy@8.0.1(terser@5.46.2)(vite@8.0.10(@types/node@25.6.0)(jiti@2.6.1)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3))'
? '@vitejs/plugin-legacy@8.0.1(terser@5.46.2)(vite@8.0.10(@types/node@25.6.0)(jiti@2.7.0)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3))'
: dependencies:
'@babel/core': 7.29.0
@ -4316,7 +4379,7 @@ snapshots:
regenerator-runtime: 0.14.1
systemjs: 6.15.1
terser: 5.46.2
vite: 8.0.10(@types/node@25.6.0)(jiti@2.6.1)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3)
vite: 8.0.10(@types/node@25.6.0)(jiti@2.7.0)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3)
a11y-dialog@8.1.5:
dependencies:
@ -4500,7 +4563,7 @@ snapshots:
browserslist@4.28.2:
dependencies:
baseline-browser-mapping: 2.10.24
caniuse-lite: 1.0.30001791
caniuse-lite: 1.0.30001792
electron-to-chromium: 1.5.344
node-releases: 2.0.38
update-browserslist-db: 1.2.3(browserslist@4.28.2)
@ -4544,7 +4607,7 @@ snapshots:
callsites@3.1.0: {}
caniuse-lite@1.0.30001791: {}
caniuse-lite@1.0.30001792: {}
change-case@5.4.4: {}
@ -4778,35 +4841,35 @@ snapshots:
escape-string-regexp@5.0.0: {}
eslint-compat-utils@0.6.5(eslint@10.3.0(jiti@2.6.1)):
eslint-compat-utils@0.6.5(eslint@10.3.0(jiti@2.7.0)):
dependencies:
eslint: 10.3.0(jiti@2.6.1)
eslint: 10.3.0(jiti@2.7.0)
semver: 7.7.4
eslint-plugin-astro@1.7.0(eslint@10.3.0(jiti@2.6.1)):
eslint-plugin-astro@1.7.0(eslint@10.3.0(jiti@2.7.0)):
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1))
'@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.7.0))
'@jridgewell/sourcemap-codec': 1.5.5
'@typescript-eslint/types': 8.59.1
astro-eslint-parser: 1.4.0
eslint: 10.3.0(jiti@2.6.1)
eslint-compat-utils: 0.6.5(eslint@10.3.0(jiti@2.6.1))
eslint: 10.3.0(jiti@2.7.0)
eslint-compat-utils: 0.6.5(eslint@10.3.0(jiti@2.7.0))
globals: 16.5.0
postcss: 8.5.12
postcss-selector-parser: 7.1.1
eslint-plugin-functional@9.0.4(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3):
eslint-plugin-functional@9.0.4(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3):
dependencies:
'@typescript-eslint/utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
'@typescript-eslint/utils': 8.59.1(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
deepmerge-ts: 7.1.5
escape-string-regexp: 5.0.0
eslint: 10.3.0(jiti@2.6.1)
is-immutable-type: 5.0.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
eslint: 10.3.0(jiti@2.7.0)
is-immutable-type: 5.0.1(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
ts-api-utils: 2.5.0(typescript@6.0.3)
ts-declaration-location: 1.0.7(typescript@6.0.3)
typescript: 6.0.3
eslint-plugin-jsdoc@62.9.0(eslint@10.3.0(jiti@2.6.1)):
eslint-plugin-jsdoc@62.9.0(eslint@10.3.0(jiti@2.7.0)):
dependencies:
'@es-joy/jsdoccomment': 0.86.0
'@es-joy/resolve.exports': 1.2.0
@ -4814,7 +4877,7 @@ snapshots:
comment-parser: 1.4.6
debug: 4.4.3
escape-string-regexp: 4.0.0
eslint: 10.3.0(jiti@2.6.1)
eslint: 10.3.0(jiti@2.7.0)
espree: 11.2.0
esquery: 1.7.0
html-entities: 2.6.0
@ -4824,7 +4887,7 @@ snapshots:
spdx-expression-parse: 4.0.0
to-valid-identifier: 1.0.0
eslint-plugin-jsx-a11y@6.10.2(eslint@10.3.0(jiti@2.6.1)):
eslint-plugin-jsx-a11y@6.10.2(eslint@10.3.0(jiti@2.7.0)):
dependencies:
aria-query: 5.3.2
array-includes: 3.1.9
@ -4834,7 +4897,7 @@ snapshots:
axobject-query: 4.1.0
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
eslint: 10.3.0(jiti@2.6.1)
eslint: 10.3.0(jiti@2.7.0)
hasown: 2.0.3
jsx-ast-utils: 3.3.5
language-tags: 1.0.9
@ -4843,23 +4906,23 @@ snapshots:
safe-regex-test: 1.1.0
string.prototype.includes: 2.0.1
eslint-plugin-oxlint@1.62.0(oxlint@1.62.0(oxlint-tsgolint@0.22.1)):
eslint-plugin-oxlint@1.63.0(oxlint@1.63.0(oxlint-tsgolint@0.22.1)):
dependencies:
jsonc-parser: 3.3.1
oxlint: 1.62.0(oxlint-tsgolint@0.22.1)
oxlint: 1.63.0(oxlint-tsgolint@0.22.1)
eslint-plugin-perfectionist@5.9.0(eslint@10.3.0(jiti@2.6.1)):
eslint-plugin-perfectionist@5.9.0(eslint@10.3.0(jiti@2.7.0)):
dependencies:
'@typescript-eslint/utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
eslint: 10.3.0(jiti@2.6.1)
'@typescript-eslint/utils': 8.59.1(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
eslint: 10.3.0(jiti@2.7.0)
natural-orderby: 5.0.0
eslint-plugin-sonarjs@4.0.3(eslint@10.3.0(jiti@2.6.1)):
eslint-plugin-sonarjs@4.0.3(eslint@10.3.0(jiti@2.7.0)):
dependencies:
'@eslint-community/regexpp': 4.12.2
builtin-modules: 3.3.0
bytes: 3.1.2
eslint: 10.3.0(jiti@2.6.1)
eslint: 10.3.0(jiti@2.7.0)
functional-red-black-tree: 1.0.1
globals: 17.5.0
jsx-ast-utils-x: 0.1.0
@ -4870,15 +4933,15 @@ snapshots:
ts-api-utils: 2.5.0(typescript@6.0.3)
typescript: 6.0.3
eslint-plugin-unicorn@64.0.0(eslint@10.3.0(jiti@2.6.1)):
eslint-plugin-unicorn@64.0.0(eslint@10.3.0(jiti@2.7.0)):
dependencies:
'@babel/helper-validator-identifier': 7.28.5
'@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1))
'@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.7.0))
change-case: 5.4.4
ci-info: 4.4.0
clean-regexp: 1.0.0
core-js-compat: 3.49.0
eslint: 10.3.0(jiti@2.6.1)
eslint: 10.3.0(jiti@2.7.0)
find-up-simple: 1.0.1
globals: 17.5.0
indent-string: 5.0.0
@ -4908,9 +4971,9 @@ snapshots:
eslint-visitor-keys@5.0.1: {}
eslint@10.3.0(jiti@2.6.1):
eslint@10.3.0(jiti@2.7.0):
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1))
'@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.7.0))
'@eslint-community/regexpp': 4.12.2
'@eslint/config-array': 0.23.5
'@eslint/config-helpers': 0.5.5
@ -4936,7 +4999,7 @@ snapshots:
ignore: 5.3.2
imurmurhash: 0.1.4
is-glob: 4.0.3
jiti: 2.6.1
jiti: 2.7.0
json-stable-stringify-without-jsonify: 1.0.1
minimatch: 10.2.5
natural-compare: 1.4.0
@ -5276,10 +5339,10 @@ snapshots:
dependencies:
is-extglob: 2.1.1
is-immutable-type@5.0.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3):
is-immutable-type@5.0.1(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3):
dependencies:
'@typescript-eslint/type-utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
eslint: 10.3.0(jiti@2.6.1)
'@typescript-eslint/type-utils': 8.59.1(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
eslint: 10.3.0(jiti@2.7.0)
ts-api-utils: 2.5.0(typescript@6.0.3)
ts-declaration-location: 1.0.7(typescript@6.0.3)
typescript: 6.0.3
@ -5342,7 +5405,7 @@ snapshots:
isexe@2.0.0: {}
jiti@2.6.1: {}
jiti@2.7.0: {}
js-tokens@4.0.0: {}
@ -5392,7 +5455,7 @@ snapshots:
fdir: 6.5.0(picomatch@4.0.4)
formatly: 0.3.0
get-tsconfig: 4.14.0
jiti: 2.6.1
jiti: 2.7.0
minimist: 1.2.8
oxc-parser: 0.128.0
oxc-resolver: 11.19.1
@ -5730,12 +5793,12 @@ snapshots:
optionalDependencies:
'@oxlint-tsgolint/linux-x64': 0.22.1
oxlint@1.62.0(oxlint-tsgolint@0.22.1):
oxlint@1.63.0(oxlint-tsgolint@0.22.1):
dependencies:
oxlint-tsgolint: 0.22.1
optionalDependencies:
'@oxlint/binding-linux-x64-gnu': 1.62.0
'@oxlint/binding-linux-x64-musl': 1.62.0
'@oxlint/binding-linux-x64-gnu': 1.63.0
'@oxlint/binding-linux-x64-musl': 1.63.0
p-limit@3.1.0:
dependencies:
@ -6148,58 +6211,58 @@ snapshots:
style-search@0.1.0: {}
stylelint-config-clean-order@8.0.1(stylelint@17.10.0)(stylelint-order@8.1.1(stylelint@17.10.0)):
stylelint-config-clean-order@8.0.1(stylelint@17.11.0)(stylelint-order@8.1.1(stylelint@17.11.0)):
dependencies:
stylelint: 17.10.0
stylelint-order: 8.1.1(stylelint@17.10.0)
stylelint: 17.11.0
stylelint-order: 8.1.1(stylelint@17.11.0)
stylelint-config-recommended-scss@17.0.1(postcss@8.5.13)(stylelint@17.10.0):
stylelint-config-recommended-scss@17.0.1(postcss@8.5.13)(stylelint@17.11.0):
dependencies:
postcss: 8.5.13
postcss-scss: 4.0.9(postcss@8.5.13)
stylelint: 17.10.0
stylelint-config-recommended: 18.0.0(stylelint@17.10.0)
stylelint-scss: 7.0.0(stylelint@17.10.0)
stylelint: 17.11.0
stylelint-config-recommended: 18.0.0(stylelint@17.11.0)
stylelint-scss: 7.0.0(stylelint@17.11.0)
stylelint-config-recommended@18.0.0(stylelint@17.10.0):
stylelint-config-recommended@18.0.0(stylelint@17.11.0):
dependencies:
stylelint: 17.10.0
stylelint: 17.11.0
stylelint-config-sass-guidelines@13.0.0(postcss@8.5.13)(stylelint@17.10.0):
stylelint-config-sass-guidelines@13.0.0(postcss@8.5.13)(stylelint@17.11.0):
dependencies:
'@stylistic/stylelint-plugin': 5.1.0(stylelint@17.10.0)
'@stylistic/stylelint-plugin': 5.1.0(stylelint@17.11.0)
postcss: 8.5.13
postcss-scss: 4.0.9(postcss@8.5.13)
stylelint: 17.10.0
stylelint-scss: 7.0.0(stylelint@17.10.0)
stylelint: 17.11.0
stylelint-scss: 7.0.0(stylelint@17.11.0)
stylelint-config-standard-scss@17.0.0(postcss@8.5.13)(stylelint@17.10.0):
stylelint-config-standard-scss@17.0.0(postcss@8.5.13)(stylelint@17.11.0):
dependencies:
postcss: 8.5.13
stylelint: 17.10.0
stylelint-config-recommended-scss: 17.0.1(postcss@8.5.13)(stylelint@17.10.0)
stylelint-config-standard: 40.0.0(stylelint@17.10.0)
stylelint: 17.11.0
stylelint-config-recommended-scss: 17.0.1(postcss@8.5.13)(stylelint@17.11.0)
stylelint-config-standard: 40.0.0(stylelint@17.11.0)
stylelint-config-standard@40.0.0(stylelint@17.10.0):
stylelint-config-standard@40.0.0(stylelint@17.11.0):
dependencies:
stylelint: 17.10.0
stylelint-config-recommended: 18.0.0(stylelint@17.10.0)
stylelint: 17.11.0
stylelint-config-recommended: 18.0.0(stylelint@17.11.0)
stylelint-declaration-block-no-ignored-properties@3.0.0(stylelint@17.10.0):
stylelint-declaration-block-no-ignored-properties@3.0.0(stylelint@17.11.0):
dependencies:
stylelint: 17.10.0
stylelint: 17.11.0
stylelint-order@8.1.1(stylelint@17.10.0):
stylelint-order@8.1.1(stylelint@17.11.0):
dependencies:
postcss: 8.5.12
postcss-sorting: 10.0.0(postcss@8.5.12)
stylelint: 17.10.0
stylelint: 17.11.0
stylelint-plugin-logical-css@2.1.0(stylelint@17.10.0):
stylelint-plugin-logical-css@2.1.0(stylelint@17.11.0):
dependencies:
stylelint: 17.10.0
stylelint: 17.11.0
stylelint-scss@7.0.0(stylelint@17.10.0):
stylelint-scss@7.0.0(stylelint@17.11.0):
dependencies:
css-tree: 3.2.1
is-plain-object: 5.0.0
@ -6209,9 +6272,9 @@ snapshots:
postcss-resolve-nested-selector: 0.1.6
postcss-selector-parser: 7.1.1
postcss-value-parser: 4.2.0
stylelint: 17.10.0
stylelint: 17.11.0
stylelint@17.10.0:
stylelint@17.11.0:
dependencies:
'@csstools/css-calc': 3.2.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
'@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
@ -6362,13 +6425,13 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
typescript-eslint@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3):
typescript-eslint@8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3):
dependencies:
'@typescript-eslint/eslint-plugin': 8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
'@typescript-eslint/parser': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
'@typescript-eslint/typescript-estree': 8.59.1(typescript@6.0.3)
'@typescript-eslint/utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)
eslint: 10.3.0(jiti@2.6.1)
'@typescript-eslint/eslint-plugin': 8.59.2(@typescript-eslint/parser@8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
'@typescript-eslint/parser': 8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
'@typescript-eslint/typescript-estree': 8.59.2(typescript@6.0.3)
'@typescript-eslint/utils': 8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3)
eslint: 10.3.0(jiti@2.7.0)
typescript: 6.0.3
typescript@6.0.3: {}
@ -6421,17 +6484,17 @@ snapshots:
varint@6.0.0: {}
vite-tsconfig-paths@6.1.1(vite@8.0.10(@types/node@25.6.0)(jiti@2.6.1)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3)):
vite-tsconfig-paths@6.1.1(vite@8.0.10(@types/node@25.6.0)(jiti@2.7.0)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3)):
dependencies:
debug: 4.4.3
globrex: 0.1.2
tsconfck: 3.1.6(typescript@6.0.3)
vite: 8.0.10(@types/node@25.6.0)(jiti@2.6.1)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3)
vite: 8.0.10(@types/node@25.6.0)(jiti@2.7.0)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3)
vite@8.0.10(@types/node@25.6.0)(jiti@2.6.1)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3):
vite@8.0.10(@types/node@25.6.0)(jiti@2.7.0)(sass-embedded@1.99.0)(terser@5.46.2)(yaml@2.8.3):
dependencies:
'@types/node': 25.6.0
jiti: 2.6.1
jiti: 2.7.0
lightningcss: 1.32.0
picomatch: 4.0.4
postcss: 8.5.13

View file

@ -2,5 +2,4 @@ jailBuilds: false
nodeLinker: isolated
packageManagerStrict: true
packageManagerStrictVersion: true
trustPolicy: off
useBetaCli: true

View file

@ -96,5 +96,32 @@ services:
volumes:
- "./containers/conf/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro"
- "./:/var/www/wordpress:rw"
jaeger:
container_name: "haikuatelier.fr-jaeger"
environment:
- "COLLECTOR_OTLP_ENABLED=true"
healthcheck:
interval: "5s"
retries: 3
start_period: "5s"
test:
- "CMD"
- "wget"
- "--spider"
- "http://localhost:16686"
timeout: "2s"
image: "cr.jaegertracing.io/jaegertracing/jaeger:latest"
networks:
- "haiku-network"
ports:
- "4317:4317"
- "4318:4318"
- "5778:5778"
- "6831:6831/udp"
- "6832:6832/udp"
- "14250:14250"
- "14268:14268"
- "14269:14269"
- "16686:16686"
volumes:
db-data: null

159
composer.lock generated
View file

@ -585,16 +585,16 @@
},
{
"name": "illuminate/collections",
"version": "v13.7.0",
"version": "v13.8.0",
"source": {
"type": "git",
"url": "https://github.com/illuminate/collections.git",
"reference": "36cfc25fc23ca18714fc8ee6abc947ee99c18462"
"reference": "17b082d0c66fb030f22d5bdd62ba652c045ff522"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/collections/zipball/36cfc25fc23ca18714fc8ee6abc947ee99c18462",
"reference": "36cfc25fc23ca18714fc8ee6abc947ee99c18462",
"url": "https://api.github.com/repos/illuminate/collections/zipball/17b082d0c66fb030f22d5bdd62ba652c045ff522",
"reference": "17b082d0c66fb030f22d5bdd62ba652c045ff522",
"shasum": ""
},
"require": {
@ -603,7 +603,8 @@
"illuminate/macroable": "^13.0",
"php": "^8.3",
"symfony/polyfill-php84": "^1.33",
"symfony/polyfill-php85": "^1.33"
"symfony/polyfill-php85": "^1.33",
"symfony/polyfill-php86": "^1.36"
},
"suggest": {
"illuminate/http": "Required to convert collections to API resources (^13.0).",
@ -640,11 +641,11 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2026-04-27T18:16:57+00:00"
"time": "2026-04-28T17:17:15+00:00"
},
{
"name": "illuminate/conditionable",
"version": "v13.7.0",
"version": "v13.8.0",
"source": {
"type": "git",
"url": "https://github.com/illuminate/conditionable.git",
@ -690,16 +691,16 @@
},
{
"name": "illuminate/contracts",
"version": "v13.7.0",
"version": "v13.8.0",
"source": {
"type": "git",
"url": "https://github.com/illuminate/contracts.git",
"reference": "a5f08426a807faac42616f733113ba263779f2dd"
"reference": "ce6f5561f88743639c76835ad82cfe39b468bdc8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/contracts/zipball/a5f08426a807faac42616f733113ba263779f2dd",
"reference": "a5f08426a807faac42616f733113ba263779f2dd",
"url": "https://api.github.com/repos/illuminate/contracts/zipball/ce6f5561f88743639c76835ad82cfe39b468bdc8",
"reference": "ce6f5561f88743639c76835ad82cfe39b468bdc8",
"shasum": ""
},
"require": {
@ -734,20 +735,20 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2026-04-24T14:55:56+00:00"
"time": "2026-04-28T17:16:27+00:00"
},
{
"name": "illuminate/macroable",
"version": "v13.7.0",
"version": "v13.8.0",
"source": {
"type": "git",
"url": "https://github.com/illuminate/macroable.git",
"reference": "f108cb3a8680f26e23c6ce7367c64525412d85b0"
"reference": "59b5b5f3cf290a91db8cf6cd3d35ff56978bc057"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/macroable/zipball/f108cb3a8680f26e23c6ce7367c64525412d85b0",
"reference": "f108cb3a8680f26e23c6ce7367c64525412d85b0",
"url": "https://api.github.com/repos/illuminate/macroable/zipball/59b5b5f3cf290a91db8cf6cd3d35ff56978bc057",
"reference": "59b5b5f3cf290a91db8cf6cd3d35ff56978bc057",
"shasum": ""
},
"require": {
@ -780,11 +781,11 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2026-03-28T19:16:13+00:00"
"time": "2026-04-29T09:35:06+00:00"
},
{
"name": "illuminate/reflection",
"version": "v13.7.0",
"version": "v13.8.0",
"source": {
"type": "git",
"url": "https://github.com/illuminate/reflection.git",
@ -835,16 +836,16 @@
},
{
"name": "illuminate/support",
"version": "v13.7.0",
"version": "v13.8.0",
"source": {
"type": "git",
"url": "https://github.com/illuminate/support.git",
"reference": "cc0d9d484ddd83fa54a0495cf15e7606e6a6f4b1"
"reference": "ff687db22aefef516efd3ea21d01664af332da38"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/support/zipball/cc0d9d484ddd83fa54a0495cf15e7606e6a6f4b1",
"reference": "cc0d9d484ddd83fa54a0495cf15e7606e6a6f4b1",
"url": "https://api.github.com/repos/illuminate/support/zipball/ff687db22aefef516efd3ea21d01664af332da38",
"reference": "ff687db22aefef516efd3ea21d01664af332da38",
"shasum": ""
},
"require": {
@ -910,7 +911,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2026-04-27T13:46:05+00:00"
"time": "2026-05-04T12:34:54+00:00"
},
{
"name": "laravel/helpers",
@ -2916,6 +2917,86 @@
],
"time": "2026-04-26T13:10:57+00:00"
},
{
"name": "symfony/polyfill-php86",
"version": "v1.37.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php86.git",
"reference": "33d8fc5a705481e21fe3a81212b26f9b1f61749c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php86/zipball/33d8fc5a705481e21fe3a81212b26f9b1f61749c",
"reference": "33d8fc5a705481e21fe3a81212b26f9b1f61749c",
"shasum": ""
},
"require": {
"php": ">=7.2"
},
"type": "library",
"extra": {
"thanks": {
"url": "https://github.com/symfony/polyfill",
"name": "symfony/polyfill"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Php86\\": ""
},
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 8.6+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php86/tree/v1.37.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2026-04-26T13:13:48+00:00"
},
{
"name": "symfony/polyfill-uuid",
"version": "v1.37.0",
@ -3663,15 +3744,15 @@
},
{
"name": "wpackagist-plugin/redis-cache",
"version": "2.7.0",
"version": "2.8.0",
"source": {
"type": "svn",
"url": "https://plugins.svn.wordpress.org/redis-cache/",
"reference": "tags/2.7.0"
"reference": "tags/2.8.0"
},
"dist": {
"type": "zip",
"url": "https://downloads.wordpress.org/plugin/redis-cache.2.7.0.zip"
"url": "https://downloads.wordpress.org/plugin/redis-cache.2.8.0.zip"
},
"require": {
"composer/installers": "^1.0 || ^2.0"
@ -5215,12 +5296,12 @@
"source": {
"type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git",
"reference": "2221f6ef09e87784e78e188aadd8f7e3a50e679a"
"reference": "9d468c11a8da481c22b4e610494babae032fdb03"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/2221f6ef09e87784e78e188aadd8f7e3a50e679a",
"reference": "2221f6ef09e87784e78e188aadd8f7e3a50e679a",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/9d468c11a8da481c22b4e610494babae032fdb03",
"reference": "9d468c11a8da481c22b4e610494babae032fdb03",
"shasum": ""
},
"conflict": {
@ -5280,7 +5361,7 @@
"awesome-support/awesome-support": "<=6.0.7",
"aws/aws-sdk-php": "<=3.371.3",
"ayacoo/redirect-tab": "<2.1.2|>=3,<3.1.7|>=4,<4.0.5",
"azuracast/azuracast": "<=0.23.3",
"azuracast/azuracast": "<=0.23.5",
"b13/seo_basics": "<0.8.2",
"backdrop/backdrop": "<=1.32",
"backpack/crud": "<3.4.9",
@ -5335,7 +5416,7 @@
"cesnet/simplesamlphp-module-proxystatistics": "<3.1",
"chriskacerguis/codeigniter-restserver": "<=2.7.1",
"chrome-php/chrome": "<1.14",
"ci4-cms-erp/ci4ms": "<=0.31.6",
"ci4-cms-erp/ci4ms": "<=0.31.7",
"civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3",
"ckeditor/ckeditor": "<4.25",
"clickstorm/cs-seo": ">=6,<6.8|>=7,<7.5|>=8,<8.4|>=9,<9.3",
@ -5387,6 +5468,7 @@
"david-garcia/phpwhois": "<=4.3.1",
"dbrisinajumi/d2files": "<1",
"dcat/laravel-admin": "<=2.1.3|==2.2.0.0-beta|==2.2.2.0-beta",
"dedoc/scramble": ">=0.13.2,<0.13.22",
"derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3",
"derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1|>=7,<7.4",
"desperado/xml-bundle": "<=0.1.7",
@ -5539,7 +5621,8 @@
"georgringer/news": "<1.3.3",
"geshi/geshi": "<=1.0.9.1",
"getformwork/formwork": "<=2.3.3",
"getgrav/grav": "<1.11.0.0-beta1",
"getgrav/grav": "<2.0.0.0-beta2",
"getgrav/grav-plugin-api": "<1.0.0.0-beta15",
"getkirby/cms": "<4.9|>=5,<5.4",
"getkirby/kirby": "<3.9.8.3-dev|>=3.10,<3.10.1.2-dev|>=4,<4.7.1",
"getkirby/panel": "<2.5.14",
@ -5706,6 +5789,7 @@
"mautic/core-lib": ">=1.0.0.0-beta,<4.4.13|>=5.0.0.0-alpha,<5.1.1",
"mautic/grapes-js-builder-bundle": ">=4,<4.4.18|>=5,<5.2.9|>=6,<6.0.7",
"maximebf/debugbar": "<1.19",
"mckenziearts/livewire-markdown-editor": "<1.3",
"mdanter/ecc": "<2",
"mediawiki/abuse-filter": "<1.39.9|>=1.40,<1.41.3|>=1.42,<1.42.2",
"mediawiki/cargo": "<3.8.3",
@ -5749,6 +5833,7 @@
"munkireport/softwareupdate": "<1.6",
"mustache/mustache": ">=2,<2.14.1",
"mwdelaney/wp-enable-svg": "<=0.2",
"nabeel/phpvms": "<7.0.6",
"namshi/jose": "<2.2",
"nasirkhan/laravel-starter": "<11.11",
"nategood/httpful": "<1",
@ -5789,7 +5874,7 @@
"open-web-analytics/open-web-analytics": "<1.8.1",
"opencart/opencart": ">=0",
"openid/php-openid": "<2.3",
"openmage/magento-lts": "<20.17",
"openmage/magento-lts": "<=20.17",
"opensolutions/vimbadmin": "<=3.0.15",
"opensource-workshop/connect-cms": "<1.41.1|>=2,<2.41.1",
"orchid/platform": ">=8,<14.43",
@ -5838,7 +5923,7 @@
"phpoffice/phpexcel": "<=1.8.2",
"phpoffice/phpspreadsheet": "<=1.30.3|>=2,<=2.1.15|>=2.2,<=2.4.4|>=3,<=3.10.4|>=4,<=5.6",
"phppgadmin/phppgadmin": "<=7.13",
"phpseclib/phpseclib": "<2.0.53|>=3,<3.0.51",
"phpseclib/phpseclib": "<=2.0.53|>=3,<=3.0.51",
"phpservermon/phpservermon": "<3.6",
"phpsysinfo/phpsysinfo": "<3.4.3",
"phpunit/phpunit": "<8.5.52|>=9,<9.6.33|>=10,<10.5.62|>=11,<11.5.50|>=12,<12.5.8|>=12.5.21,<12.5.22|>=13.1.5,<13.1.6",
@ -5932,7 +6017,7 @@
"shopware/shopware": "<=5.7.17|>=6.4.6,<6.6.10.10-dev|>=6.7,<6.7.6.1-dev",
"shopware/storefront": "<6.6.10.10-dev|>=6.7,<6.7.5.1-dev",
"shopxo/shopxo": "<=6.4",
"showdoc/showdoc": "<2.10.4",
"showdoc/showdoc": "<3.8.1",
"shuchkin/simplexlsx": ">=1.0.12,<1.1.13",
"silverstripe-australia/advancedreports": ">=1,<=2",
"silverstripe/admin": "<1.13.19|>=2,<2.1.8",
@ -6145,7 +6230,7 @@
"webcoast/deferred-image-processing": "<1.0.2",
"webklex/laravel-imap": "<5.3",
"webklex/php-imap": "<5.3",
"webonyx/graphql-php": "<=15.31.4",
"webonyx/graphql-php": "<=15.32.2",
"webpa/webpa": "<3.1.2",
"webreinvent/vaahcms": "<=2.3.1",
"wikibase/wikibase": "<=1.39.3",
@ -6265,7 +6350,7 @@
"type": "tidelift"
}
],
"time": "2026-04-30T21:24:12+00:00"
"time": "2026-05-05T21:24:41+00:00"
},
{
"name": "sebastian/diff",

View file

@ -11,7 +11,7 @@ http:
security:
headers:
accessControlAllowCredentials: true
accessControlAllowHeaders: "content-type"
accessControlAllowHeaders: "content-type,user-agent"
accessControlAllowMethods:
- GET
- OPTIONS

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -7179,7 +7179,7 @@
"type": "array"
},
"workspace": {
"default": "/home/gcch/Répertoires/git.gcch.fr/gcch/haiku-atelier-2024",
"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"
}
@ -8297,7 +8297,7 @@
},
"includes": [],
"paths": [],
"workspace": "/home/gcch/Répertoires/git.gcch.fr/gcch/haiku-atelier-2024"
"workspace": "/home/gcch/Répertoires/git.gcch.fr/haiku-atelier-2024"
},
"description": "Source discovery and workspace configuration.\n\nDefines the workspace root, source paths to scan, and exclusion patterns.\nThis configuration determines which PHP files are loaded into the database\nfor analysis, linting, or formatting."
},
@ -8309,7 +8309,7 @@
"type": "integer"
},
"threads": {
"default": 12,
"default": 4,
"description": "Number of worker threads for parallel processing.\n\nControls the thread pool size used by Rayon for parallel operations.\nIf set to 0, defaults to the number of logical CPUs available.\nCan be overridden via `MAGO_THREADS` environment variable or `--threads` CLI flag.",
"format": "uint",
"minimum": 0,

103
mise.lock
View file

@ -61,79 +61,44 @@ checksum = "sha256:21388b1f7d6c2f572e1ce9231f7dfc08f80a062438908791ab078c1d76b10
url = "https://github.com/numtide/treefmt/releases/download/v2.5.0/treefmt_2.5.0_darwin_amd64.tar.gz"
[[tools.aube]]
version = "1.8.0"
version = "1.9.0"
backend = "github:endevco/aube"
[tools.aube."platforms.linux-arm64"]
checksum = "sha256:622c470feba3270e2290d4f2ffb7fcde0e391dd34bd352d24e5b7fd36ddbbbb5"
url = "https://github.com/endevco/aube/releases/download/v1.8.0/aube-v1.8.0-aarch64-unknown-linux-gnu.tar.gz"
url_api = "https://api.github.com/repos/endevco/aube/releases/assets/411310208"
checksum = "sha256:218559ad1bc0335689b0bf94217dec53147e6819b514cd1edca2b25578a9eb71"
url = "https://github.com/endevco/aube/releases/download/v1.9.0/aube-v1.9.0-aarch64-unknown-linux-gnu.tar.gz"
url_api = "https://api.github.com/repos/endevco/aube/releases/assets/412878187"
provenance = "github-attestations"
[tools.aube."platforms.linux-arm64-musl"]
checksum = "sha256:7b1b946986f71a625d48b6c602696d859e4f683bf35f29e2cc1096fedacce6a2"
url = "https://github.com/endevco/aube/releases/download/v1.8.0/aube-v1.8.0-aarch64-unknown-linux-musl.tar.gz"
url_api = "https://api.github.com/repos/endevco/aube/releases/assets/411310268"
checksum = "sha256:6a635d407637d94ef2aba1cfd8f36189b88d3703080a788fe3e36cf628d91049"
url = "https://github.com/endevco/aube/releases/download/v1.9.0/aube-v1.9.0-aarch64-unknown-linux-musl.tar.gz"
url_api = "https://api.github.com/repos/endevco/aube/releases/assets/412876816"
provenance = "github-attestations"
[tools.aube."platforms.linux-x64"]
checksum = "sha256:298ff8f1a1820a68a369d03c3dfa46aca8ccbceb1a4facd97329b10a03322abb"
url = "https://github.com/endevco/aube/releases/download/v1.8.0/aube-v1.8.0-x86_64-unknown-linux-gnu.tar.gz"
url_api = "https://api.github.com/repos/endevco/aube/releases/assets/411329171"
provenance = "github-attestations"
checksum = "sha256:f27e4ecdd5669e76d2d1f7be69ca29e0ba0a8943b71172e5f7b785ab9a5c5132"
url = "https://github.com/endevco/aube/releases/download/v1.9.0/aube-v1.9.0-x86_64-unknown-linux-gnu.tar.gz"
url_api = "https://api.github.com/repos/endevco/aube/releases/assets/412877756"
[tools.aube."platforms.linux-x64-musl"]
checksum = "sha256:332379d6b167c83b7ab7d5a393e55f9dcea5185d3819ee5211739a6d81dba328"
url = "https://github.com/endevco/aube/releases/download/v1.8.0/aube-v1.8.0-x86_64-unknown-linux-musl.tar.gz"
url_api = "https://api.github.com/repos/endevco/aube/releases/assets/411310212"
checksum = "sha256:6245a25dab1903d76222edc493f5c908b6fc52cac1dc591a3e1760b066af5c6b"
url = "https://github.com/endevco/aube/releases/download/v1.9.0/aube-v1.9.0-x86_64-unknown-linux-musl.tar.gz"
url_api = "https://api.github.com/repos/endevco/aube/releases/assets/412878508"
provenance = "github-attestations"
[tools.aube."platforms.macos-arm64"]
checksum = "sha256:9f1aaf17fe031a8356a41388cec852aef3a82b741b25b14b40a2c403500d1201"
url = "https://github.com/endevco/aube/releases/download/v1.8.0/aube-v1.8.0-aarch64-apple-darwin.tar.gz"
url_api = "https://api.github.com/repos/endevco/aube/releases/assets/411311071"
checksum = "sha256:7d85ecf1af62b65fd6ea386057f63808b5a1e18bd1201851a24619dc5cf337b0"
url = "https://github.com/endevco/aube/releases/download/v1.9.0/aube-v1.9.0-aarch64-apple-darwin.tar.gz"
url_api = "https://api.github.com/repos/endevco/aube/releases/assets/412878487"
provenance = "github-attestations"
[tools.aube."platforms.windows-x64"]
checksum = "sha256:9d49bec5dbd480980fa835ad6abdb5d02c561dabc1424b80e71e69411bbb7bef"
url = "https://github.com/endevco/aube/releases/download/v1.8.0/aube-v1.8.0-x86_64-pc-windows-msvc.zip"
url_api = "https://api.github.com/repos/endevco/aube/releases/assets/411318019"
checksum = "sha256:79df31772c03cb22407dacdef59a3abed74d76fae20587c9f96f4b972a47eba4"
url = "https://github.com/endevco/aube/releases/download/v1.9.0/aube-v1.9.0-x86_64-pc-windows-msvc.zip"
url_api = "https://api.github.com/repos/endevco/aube/releases/assets/412888080"
provenance = "github-attestations"
[[tools."github:AJenbo/phpantom_lsp"]]
version = "0.7.0"
backend = "github:AJenbo/phpantom_lsp"
[tools."github:AJenbo/phpantom_lsp"."platforms.linux-arm64"]
checksum = "sha256:8a307b76c3743089fe3830ffc83040a03c3ce41399774731f51d3e754a492cf1"
url = "https://github.com/AJenbo/phpantom_lsp/releases/download/0.7.0/phpantom_lsp-aarch64-unknown-linux-gnu.tar.gz"
url_api = "https://api.github.com/repos/AJenbo/phpantom_lsp/releases/assets/391327569"
[tools."github:AJenbo/phpantom_lsp"."platforms.linux-arm64-musl"]
checksum = "sha256:8a307b76c3743089fe3830ffc83040a03c3ce41399774731f51d3e754a492cf1"
url = "https://github.com/AJenbo/phpantom_lsp/releases/download/0.7.0/phpantom_lsp-aarch64-unknown-linux-gnu.tar.gz"
url_api = "https://api.github.com/repos/AJenbo/phpantom_lsp/releases/assets/391327569"
[tools."github:AJenbo/phpantom_lsp"."platforms.linux-x64"]
checksum = "sha256:a593da7e62adcef3ec63ca273f855ae269d55f2eed1f5d01ea0e3347f1597a5c"
url = "https://github.com/AJenbo/phpantom_lsp/releases/download/0.7.0/phpantom_lsp-x86_64-unknown-linux-gnu.tar.gz"
url_api = "https://api.github.com/repos/AJenbo/phpantom_lsp/releases/assets/391327589"
[tools."github:AJenbo/phpantom_lsp"."platforms.linux-x64-musl"]
checksum = "sha256:a593da7e62adcef3ec63ca273f855ae269d55f2eed1f5d01ea0e3347f1597a5c"
url = "https://github.com/AJenbo/phpantom_lsp/releases/download/0.7.0/phpantom_lsp-x86_64-unknown-linux-gnu.tar.gz"
url_api = "https://api.github.com/repos/AJenbo/phpantom_lsp/releases/assets/391327589"
[tools."github:AJenbo/phpantom_lsp"."platforms.macos-arm64"]
checksum = "sha256:f70e3ecf174df0776fd9f0f98447dc2d735018603b71e1620929dc92967b9aa0"
url = "https://github.com/AJenbo/phpantom_lsp/releases/download/0.7.0/phpantom_lsp-aarch64-apple-darwin.tar.gz"
url_api = "https://api.github.com/repos/AJenbo/phpantom_lsp/releases/assets/391327560"
[tools."github:AJenbo/phpantom_lsp"."platforms.macos-x64"]
checksum = "sha256:c4c4da8db230c8f0bf0e489d149f1ace04062a169a61ca23b33674de0c69e3f6"
url = "https://github.com/AJenbo/phpantom_lsp/releases/download/0.7.0/phpantom_lsp-x86_64-apple-darwin.tar.gz"
url_api = "https://api.github.com/repos/AJenbo/phpantom_lsp/releases/assets/391327579"
[[tools.just]]
version = "1.50.0"
backend = "aqua:casey/just"
@ -205,36 +170,36 @@ url = "https://github.com/carthage-software/mago/releases/download/1.25.2/mago-1
provenance = "github-attestations"
[[tools.node]]
version = "25.9.0"
version = "26.0.0"
backend = "core:node"
[tools.node."platforms.linux-arm64"]
checksum = "sha256:8fb4283301b8c720fc9f18bffff0f659e72cc14d0cf207a3bb411808aaa73a57"
url = "https://nodejs.org/dist/v25.9.0/node-v25.9.0-linux-arm64.tar.gz"
checksum = "sha256:c802664b5770102999efacf5717854f7652797db522e8cc5727a6209afea824d"
url = "https://nodejs.org/dist/v26.0.0/node-v26.0.0-linux-arm64.tar.gz"
[tools.node."platforms.linux-arm64-musl"]
checksum = "sha256:97f6fe125faa51f84a7bb600d0cd7aefcfaaa0e75a5f49a7c61c3df91d12d535"
url = "https://unofficial-builds.nodejs.org/download/release/v25.9.0/node-v25.9.0-linux-arm64-musl.tar.gz"
checksum = "sha256:8c374da2f289493f346ed7d68143967e4e536a38cf7e5aa7d3933146253193b1"
url = "https://unofficial-builds.nodejs.org/download/release/v26.0.0/node-v26.0.0-linux-arm64-musl.tar.gz"
[tools.node."platforms.linux-x64"]
checksum = "sha256:134e55b2408448a219760fe04dc44d6851f9de8a79549021ffd870e9082d9e7b"
url = "https://nodejs.org/dist/v25.9.0/node-v25.9.0-linux-x64.tar.gz"
checksum = "sha256:42cee4d7ec80b7f7c89281cf00726b14840ac674462404dd4fd36f03964dc0af"
url = "https://nodejs.org/dist/v26.0.0/node-v26.0.0-linux-x64.tar.gz"
[tools.node."platforms.linux-x64-musl"]
checksum = "sha256:1ac44af012be6bc17f1e3723edbf12897c0baeae5d1dc75b9f97d71413e4c8f5"
url = "https://unofficial-builds.nodejs.org/download/release/v25.9.0/node-v25.9.0-linux-x64-musl.tar.gz"
checksum = "sha256:333c376e342e5e5c0505f19eaab4990cc03f47a15dd5628c30fe64c39048b995"
url = "https://unofficial-builds.nodejs.org/download/release/v26.0.0/node-v26.0.0-linux-x64-musl.tar.gz"
[tools.node."platforms.macos-arm64"]
checksum = "sha256:e479f3c469d3d9303a44f00a8ea37a3788395d171bb8059c48a4bbbd2e371b59"
url = "https://nodejs.org/dist/v25.9.0/node-v25.9.0-darwin-arm64.tar.gz"
checksum = "sha256:dcee8564c1a9342f9594dd5e52d533894dfef6b85aa771bbbb870baa3c403235"
url = "https://nodejs.org/dist/v26.0.0/node-v26.0.0-darwin-arm64.tar.gz"
[tools.node."platforms.macos-x64"]
checksum = "sha256:7d737b53ce191142bfa1c17cfa5b070d96e84eebf76b8dd06d84981cbdc3f7e3"
url = "https://nodejs.org/dist/v25.9.0/node-v25.9.0-darwin-x64.tar.gz"
checksum = "sha256:f488ab543fe202d8a2d56e661682117d3c56903a2bf64f2ec1ff7bd421cfd875"
url = "https://nodejs.org/dist/v26.0.0/node-v26.0.0-darwin-x64.tar.gz"
[tools.node."platforms.windows-x64"]
checksum = "sha256:929552b8305effac843ba7b4270c437aefb702fc3fbd73fcd1bffd35d4ac284e"
url = "https://nodejs.org/dist/v25.9.0/node-v25.9.0-win-x64.zip"
checksum = "sha256:d0418640a36096e00bddb57761aa0b1b98f91904ec4ed2b9dd75cbad723becd7"
url = "https://nodejs.org/dist/v26.0.0/node-v26.0.0-win-x64.zip"
[[tools.watchexec]]
version = "2.5.1"

View file

@ -4,9 +4,8 @@
mago = "latest"
node = "latest"
watchexec = "latest"
"aqua:numtide/treefmt" = "latest"
"github:AJenbo/phpantom_lsp" = "latest"
"aqua:blopker/codebook" = "latest"
"aqua:numtide/treefmt" = "latest"
[tasks.format]
alias = "f"

View file

@ -12,6 +12,7 @@
"prepare": "effect-tsgo patch"
},
"dependencies": {
"@effect/platform-browser": "^4.0.0-beta.60",
"@mobily/ts-belt": "v4.0.0-rc.5",
"@sentry/browser": "^10.51.0",
"a11y-dialog": "^8.1.5",
@ -36,19 +37,19 @@
"@vitejs/plugin-legacy": "^8.0.1",
"better-typescript-lib": "^2.12.0",
"browserslist": "^4.28.2",
"caniuse-lite": "^1.0.30001791",
"caniuse-lite": "^1.0.30001792",
"eslint": "^10.3.0",
"eslint-plugin-functional": "^9.0.4",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-oxlint": "^1.62.0",
"eslint-plugin-oxlint": "^1.63.0",
"eslint-plugin-perfectionist": "^5.9.0",
"fdir": "^6.5.0",
"globals": "17",
"jiti": "^2.6.1",
"jiti": "^2.7.0",
"knip": "^6.11.0",
"lightningcss": "^1.32.0",
"lightningcss-cli": "^1.32.0",
"oxlint": "^1.62.0",
"oxlint": "^1.63.0",
"oxlint-tsgolint": "^0.22.1",
"playwright": "^1.59.1",
"prettier": "^3.8.3",
@ -59,14 +60,14 @@
"prettier-plugin-sh": "^0.18.1",
"prettier-plugin-sort-json": "^4.2.0",
"sass-embedded": "^1.99.0",
"stylelint": "^17.10.0",
"stylelint": "^17.11.0",
"stylelint-config-clean-order": "^8.0.1",
"stylelint-config-sass-guidelines": "^13.0.0",
"stylelint-config-standard-scss": "^17.0.0",
"stylelint-declaration-block-no-ignored-properties": "^3.0.0",
"stylelint-plugin-logical-css": "^2.1.0",
"typescript": "^6.0.3",
"typescript-eslint": "^8.59.1",
"typescript-eslint": "^8.59.2",
"vite": "^8.0.10",
"vite-tsconfig-paths": "^6.1.1"
},

View file

@ -1,68 +0,0 @@
#!/usr/bin/fish
for jpg in **/*.{jpg,jpeg}
echo $jpg
set -f avif (path change-extension 'avif' "$jpg")
set -f jxl (path change-extension 'jxl' "$jpg")
set -f png (path change-extension 'png' "$jpg")
set -f dimensions (magick identify -format "%w-%h" $jpg)
set -f dimensions (string split "-" $dimensions)
if test $dimensions[1] -eq 1920 || test $dimensions[2] -eq 1920
set -f a_bonnes_dimensions true
else
set -f a_bonnes_dimensions false
end
if test -e $avif && test -e $jxl
echo -e "\tAll there."
continue
end
magick "$jpg" -resize 1920x1920\> "$png" >/dev/null
if ! test -e $jxl
if test $a_bonnes_dimensions = false
cjxl \
--allow_jpeg_reconstruction=1 \
--brotli_effort=11 \
--container=1 \
--effort=9 \
--lossless_jpeg=1 \
--num_threads=-1 \
--progressive \
$png $jxl &>/dev/null
djxl \
--num_threads=-1 \
$jxl $jpg &>/dev/null
end
cjxl \
--allow_jpeg_reconstruction=0 \
--brotli_effort=11 \
--container=1 \
--effort=10 \
--quality=70 \
--lossless_jpeg=0 \
--num_threads=-1 \
--progressive \
$png $jxl &>/dev/null
echo -e "\t$jxl"
set -f avif (path change-extension 'avif' "$jpg")
if ! test -e $avif
avifenc \
-q 70 \
-s 0 \
-c aom \
-y 420 \
"$png" "$avif" &>/dev/null
echo -e "\t$avif"
end
rm $png
end
end

View file

@ -1,12 +0,0 @@
#!/usr/bin/fish
set -f fichiers_toml (fd --glob "*.toml")
set -f fichiers_angie (fd --glob "*.conf" containers/conf/angie)
for toml in $fichiers_toml
tombi format "$toml"
end
for angie in $angie
nginxfmt "$angie"
end

View file

@ -1,6 +1,11 @@
#!/usr/bin/fish
set -f jpg $argv
if test -z "$argv[1]"
echo "Un chemin doit être passé en argument."
return 1
end
set -f jpg $argv[1]
echo $jpg
set -f avif (path change-extension 'avif' "$jpg")

View file

@ -1,5 +1,9 @@
#!/usr/bin/fish
if ! test $argv
set -f argv web/app/uploads
end
if type --query gm
else
echo -e "GraphicsMagick is missing."
@ -16,4 +20,4 @@ else
exit 1
end
fd --glob "**/*.{jpg,jpeg}" -x fish lol.fish
fd --glob "**/*.{jpg,jpeg}" $argv[1] -x fish "scripts/optimise-image.fish"

View file

@ -1,45 +0,0 @@
<?php
declare(strict_types=1);
require_once 'web/wp/wp-load.php';
ini_set('max_execution_time', 3_600);
set_time_limit(3_600);
$pdo = new PDO('mysql:dbname=haiku_atelier;host=localhost', 'haiku_utilisateur', 'spNFx5EAYwvF7o7XFMjiHpNPYJimDtmKWv');
// replace _wp_attached_file meta_key
global $wpdb;
$wp_postmeta = "{$wpdb->prefix}postmeta";
try {
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Error Handling
$sql = "UPDATE {$wp_postmeta} SET meta_value = REPLACE(meta_value,'-scaled.jpg','.jpg') WHERE meta_key='_wp_attached_file' AND meta_value LIKE '%-scaled.jpg%'";
$result = $pdo->exec($sql);
print_r($result);
} catch (PDOException $e) {
print_r($e->getMessage());
}
// replace _wp_attachment_metadata meta_key.
$image_metas = [];
try {
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Error Handling
$sql = "SELECT * FROM {$wp_postmeta} WHERE meta_value LIKE '%-scaled.jpg%' AND meta_key='_wp_attachment_metadata'";
$statement = $pdo->query($sql);
$image_metas = $statement->fetchAll();
foreach ($image_metas as $meta) {
$meta_value = unserialize($meta['meta_value']);
$file = $meta_value['file'];
$meta_value['file'] = str_replace('-scaled.jpg', '.jpg', $file);
update_post_meta($meta['post_id'], $meta['meta_key'], $meta_value);
$result = get_post_meta($meta['post_id'], $meta['meta_key']);
print_r($result);
}
} catch (PDOException $e) {
print_r($e->getMessage());
}

View file

@ -41,11 +41,6 @@ if ($raw_product === null || $raw_product === false) {
// Assemble les données d'intérêt pour la page au sein d'une Classe.
$product = Product::from_wc_product($raw_product);
// echo("<pre>");
// print_r($raw_product->get_data());
// echo("</pre>");
// exit;
/** @var int $maximum_price Le prix de la Variation la plus chère */
$maximum_price = collect($product->variations)->max('price');

View file

@ -10,8 +10,8 @@ const AppConfig = Config.all({
});
const Provider = ConfigProvider.fromUnknown({
WOOCOMMERCE_API_CONSUMER_KEY: "ck_329c944b248aa7cc837c7662d9c6e09d638802df",
WOOCOMMERCE_API_CONSUMER_SECRET: "cs_5687d0c694bd519b231145afa7177c0c987f7155",
WOOCOMMERCE_API_CONSUMER_KEY: "ck_d6f6db391ac2cdae45c9067e90abf7c913606954",
WOOCOMMERCE_API_CONSUMER_SECRET: "cs_e213979ea3d1490b275dd75c8d53d05c82853119",
});
export { AppConfig, Provider };

View file

@ -0,0 +1,24 @@
import { Console, Layer } from "effect";
import { FetchHttpClient } from "effect/unstable/http";
import { OtlpSerialization, OtlpTracer } from "effect/unstable/observability";
const OtlpTracingLayer = OtlpTracer.layer({
resource: {
attributes: {
"deployment.environment": "staging",
},
serviceName: "haiku-atelier",
serviceVersion: "1.0.0",
},
maxBatchSize: 1,
exportInterval: "1 seconds",
url: "https://jaeger-http.gcch.local/v1/traces",
});
const ObservabilityLayer = OtlpTracingLayer.pipe(
Layer.provide(OtlpSerialization.layerJson),
Layer.provide(FetchHttpClient.layer),
Layer.tapError(Console.error),
);
export { ObservabilityLayer };

View file

@ -30,10 +30,10 @@ class Product extends Schema.Class<Product>("Product")({
grouped_products: Schema.Unknown,
has_options: Schema.Boolean,
id: Schema.Int,
// NOTE: Non-standard, injecté dans la Réponse.
image_repos: Schema.String,
// NOTE: Non-standard, injecté dans la Réponse.
image_survol: Schema.String,
// NOTE: Non-standard, injecté dans la Réponse. Optionelle pour éviter une erreur si une image est absente.
image_repos: Schema.String.pipe(Schema.optional),
// NOTE: Non-standard, injecté dans la Réponse. Optionelle pour éviter une erreur si une image est absente.
image_survol: Schema.String.pipe(Schema.optional),
images: Schema.Unknown,
low_stock_amount: Schema.Union([Schema.Number, Schema.Null]),
menu_order: Schema.Int,

View file

@ -1,6 +1,7 @@
import { Console, Layer, ManagedRuntime, pipe } from "effect";
import { APIClient } from "../../scripts-effect/lib/api.ts";
import { ObservabilityLayer } from "../../scripts-effect/lib/observability.ts";
import ShopPageDOM from "./service-dom.ts";
import ShopPageElements from "./service-elements.ts";
import ShopPageMessages from "./service-messages.ts";
@ -11,6 +12,7 @@ const ShopPageRuntime = ManagedRuntime.make(
Layer.provideMerge(ShopPageMessages.Live),
Layer.provideMerge(ShopPageElements.Live),
Layer.provide(APIClient.Live),
Layer.provideMerge(ObservabilityLayer),
Layer.tapError(error => Console.error("ProductPageRuntime", "Impossible de créer le Layer :", error.message)),
),
);

View file

@ -1,18 +1,8 @@
import {
Array as FxArray,
Context,
Effect,
Layer,
Option,
pipe,
Ref,
Schema,
SchemaIssue,
Stream,
SubscriptionRef,
} from "effect";
import { Array as FxArray, Context, Effect, Layer, Option, pipe, Ref, Schema, SchemaIssue, Stream, SubscriptionRef } from "effect";
import { SchemaError } from "effect/Schema";
import html from "html-template-tag";
import { BrowserRuntime } from "@effect/platform-browser";
import { APIClient } from "../../scripts-effect/lib/api.ts";
import { setLoadingState } from "../../scripts-effect/lib/elements.ts";
import { GetProducts, Product } from "../../scripts-effect/schemas/api.ts";
@ -47,27 +37,24 @@ class InvalidShopPageStateError
class ShopPageDOM extends Context.Service<ShopPageDOM>()("haikuatelier.fr/Shop/ShopPageDOM", {
make: Effect.gen(function*() {
const { PageStatesRawJson, ProductsGrid, ShowMoreButton } = yield* ShopPageElements;
const { ShowMoreButtonText } = yield* ShopPageMessages;
const { ShowMoreButtonText, PageNumber } = yield* ShopPageMessages;
const API = yield* APIClient;
const { authString, nonce } = yield* pipe(
// Récupère la valeur de `Nonce` dans le DOM de la page.
const { nonce } = yield* pipe(
PageStatesRawJson.textContent,
(textContent: string) =>
Schema.decodeUnknownEffect(Schema.fromJsonString(PageStates))(textContent, { errors: "all" }),
Effect.mapError(InvalidShopPageStateError.fromSchemaError),
Effect.mapError(error => InvalidShopPageStateError.fromSchemaError(error)),
);
/** ID de la Catégorie des Produits de la Page, si la Page courante est une Archive. */
const ProductsCategoryId = yield* pipe(
ProductsGrid.getAttribute(ATTRIBUT_ID_CATEGORIE_PRODUITS),
Number,
Option.fromNullishOr,
Ref.make,
Option.fromNullishOr(ProductsGrid.getAttribute(ATTRIBUT_ID_CATEGORIE_PRODUITS)),
Option.map(categoryId => Number(categoryId)),
categoryId => Ref.make(categoryId),
);
// TODO: Créer une SubscriptionRef mettant à jour le DOM au changement de valeur.
const PageNumber = yield* Ref.make(1);
/**
* Créé le `DOM` d'une Carte de Produit sous forme de `<article>`.
*/
@ -118,7 +105,7 @@ class ShopPageDOM extends Context.Service<ShopPageDOM>()("haikuatelier.fr/Shop/S
const onMoreProductsWantedHandler = Effect.fn("onMoreProductsWantedHandler")(function*() {
/** Le numéro de page souhaitée. */
const newPageNumber = yield* Ref.updateAndGet(PageNumber, pageNumber => pageNumber + 1);
const newPageNumber = yield* SubscriptionRef.updateAndGet(PageNumber, pageNumber => pageNumber + 1);
/** L'ID de la Catégorie de Produits affichée dans la page si elle existe. */
const categoryId = pipe(yield* Ref.get(ProductsCategoryId), Option.getOrUndefined);
@ -133,6 +120,7 @@ class ShopPageDOM extends Context.Service<ShopPageDOM>()("haikuatelier.fr/Shop/S
yield* setLoadingState(ShowMoreButton, true);
yield* SubscriptionRef.set(ShowMoreButtonText, "Getting Products...");
// TODO: Faire une gestion des Erreurs.
const newProducts = yield* API.GetProducts(nonce, requestBody);
// Rétablis le texte du Bouton et réactive les interactions.
@ -146,12 +134,12 @@ class ShopPageDOM extends Context.Service<ShopPageDOM>()("haikuatelier.fr/Shop/S
const newProductsFragment = createNewPageDOM(newProducts);
ProductsGrid.append(newProductsFragment);
ProductsGrid.setAttribute(ATTRIBUT_PAGE, String(newPageNumber));
});
}, Effect.withSpan("lol"));
/**
* Initialise l'écouteur d'événements de clic sur le bouton de chargement d'une nouvelle page de Produits (« Show more »).
*/
const initMoreProductsOnButtonClick = Effect.fn("initMoreProductsOnButtonClick")(function*() {
const initLoadMoreProductsOnButtonClick = Effect.fn("initLoadMoreProductsOnButtonClick")(function*() {
return yield* pipe(
Stream.fromEventListener(ShowMoreButton, "click"),
Stream.tap(onMoreProductsWantedHandler),
@ -161,7 +149,7 @@ class ShopPageDOM extends Context.Service<ShopPageDOM>()("haikuatelier.fr/Shop/S
return {
ProductsCategoryId,
initMoreProductsOnButtonClick,
initLoadMoreProductsOnButtonClick,
};
}),
}) {

View file

@ -1,13 +1,15 @@
import { Context, Effect, Layer, pipe, Stream, SubscriptionRef } from "effect";
import { ATTRIBUT_PAGE } from "../constantes/dom.ts";
import ShopPageElements from "./service-elements.ts";
class ShopPageMessages extends Context.Service<ShopPageMessages>()("haikuatelier.fr/Shop/Messages", {
make: Effect.gen(function*() {
const { ShowMoreButton } = yield* ShopPageElements;
const { ShowMoreButton, ProductsGrid } = yield* ShopPageElements;
const ShowMoreButtonText = yield* SubscriptionRef.make("Show more");
// Const ShowMoreErrorText = yield* SubscriptionRef.make<Option.Option<string>>(Option.none());
const PageNumber = yield* SubscriptionRef.make(Number(ProductsGrid.getAttribute(ATTRIBUT_PAGE) ?? "1"));
const initShowMoreButtonUpdates = Effect.fn("initShowMoreButtonUpdates")(function*() {
return yield* pipe(
@ -20,7 +22,18 @@ class ShopPageMessages extends Context.Service<ShopPageMessages>()("haikuatelier
);
});
return { ShowMoreButtonText, initShowMoreButtonUpdates };
const initPageNumberUpdates = Effect.fn("initPageNumberUpdates")(function*() {
return yield* pipe(
SubscriptionRef.changes(PageNumber),
Stream.tap(newPageNumber => {
ProductsGrid.setAttribute(ATTRIBUT_PAGE, String(newPageNumber));
return Effect.succeed(newPageNumber);
}),
Stream.runDrain,
);
});
return { PageNumber, ShowMoreButtonText, initShowMoreButtonUpdates, initPageNumberUpdates };
}),
}) {
static readonly Live = Layer.effect(this, this.make);

View file

@ -1,6 +1,7 @@
import { Console, Layer, ManagedRuntime, pipe } from "effect";
import { APIClient } from "../../scripts-effect/lib/api.ts";
import { ObservabilityLayer } from "../../scripts-effect/lib/observability.ts";
import ProductPageDOM from "./service-dom.ts";
import ProductPageElements from "./service-elements.ts";
import ProductPageMessages from "./service-messages.ts";
@ -11,6 +12,7 @@ const ProductPageRuntime = ManagedRuntime.make(
Layer.provideMerge(ProductPageMessages.Live),
Layer.provideMerge(ProductPageElements.Live),
Layer.provide(APIClient.Live),
Layer.provideMerge(ObservabilityLayer),
Layer.tapError(error => Console.error("ProductPageRuntime", "Impossible de créer le Layer :", error)),
),
);

View file

@ -2,21 +2,32 @@
* Scripts pour les fonctionnalités de la page Boutique.
*/
import { Console, Effect } from "effect";
import { Console, Effect, pipe } from "effect";
import ShopPageRuntime from "./page-boutique/runtime.ts";
import ShopPageDOM from "./page-boutique/service-dom.ts";
import ShopPageElements from "./page-boutique/service-elements.ts";
import ShopPageMessages from "./page-boutique/service-messages.ts";
document.addEventListener("DOMContentLoaded", (): void => {
// initialisePageBoutique();
ShopPageRuntime.runFork(Effect.gen(function*() {
const Elements = yield* ShopPageElements;
const DOM = yield* ShopPageDOM;
const Messages = yield* ShopPageMessages;
// TODO: Implémenter l'Observabilité.
yield* Effect.all([DOM.initMoreProductsOnButtonClick(), Messages.initShowMoreButtonUpdates()], {
document.addEventListener("DOMContentLoaded", (): void => {
const program = Effect.gen(function*() {
const { initLoadMoreProductsOnButtonClick } = yield* ShopPageDOM;
const { initShowMoreButtonUpdates, initPageNumberUpdates } = yield* ShopPageMessages;
yield* pipe(
Effect.all([
// Initialise le chargement d'une nouvelle page de Produits au clic sur le bouton « Show more ».
initLoadMoreProductsOnButtonClick(),
// Initialise la mise à jour du texte du bouton « Show more » à la mise à jour de sa référence.
initShowMoreButtonUpdates(),
// Initialise la mise à jour du numéro de page dans le DOM à la mise à jour de sa référence.
initPageNumberUpdates(),
], {
concurrency: "unbounded",
}).pipe(Effect.tapCause(Console.error));
}));
}),
Effect.tapCause(Console.error),
);
});
ShopPageRuntime.runFork(program);
});

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB