diff --git a/Dockerfile b/Dockerfile
index 6a1f70288..bd040c3fa 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -4,8 +4,8 @@ ENV DEB_RELEASE=bookworm
ENV DEBIAN_FRONTEND=noninteractive
ENV PHP_VER=8.4
ENV NODE_VERSION=20
-# commit of composer 2.8.6
-ENV COMPOSER_COMMIT=51c25eb405dc44528575cb36aea4aeec31c4bf15
+# commit of composer 2.8.8
+ENV COMPOSER_COMMIT=f3108f64b4e1c1ce6eb462b159956461592b3e3e
# Uncomment to skip the chromium download when installing puppeteer. If you do,
# you'll need to launch puppeteer with:
@@ -98,6 +98,13 @@ RUN apt-get update \
libnss3 \
lsb-release \
xdg-utils \
+ # cypress
+ # all below is needed until running cypress headless/electron-less is fixed: https://github.com/cypress-io/cypress/issues/23636
+ libgbm-dev \
+ libgtk2.0-0 \
+ libnotify-dev \
+ procps \
+ xvfb \
&& apt-get autoremove \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
diff --git a/composer.json b/composer.json
index dd3b4d85b..4416a39a1 100644
--- a/composer.json
+++ b/composer.json
@@ -44,6 +44,6 @@
"phpunit/php-code-coverage": "^11",
"phpunit/phpunit": "^11",
"rector/rector": "^1.2",
- "squizlabs/php_codesniffer": "^3.11"
+ "squizlabs/php_codesniffer": "^3.12"
}
}
diff --git a/composer.lock b/composer.lock
index d483722fd..e73dac16c 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "8d317a9cdc51f5861dd39e0e29b348b2",
+ "content-hash": "e7c11d90bb725a79b986f803f04aff15",
"packages": [
{
"name": "bacon/bacon-qr-code",
@@ -167,20 +167,20 @@
},
{
"name": "cakephp/core",
- "version": "5.1.6",
+ "version": "5.2.0",
"source": {
"type": "git",
"url": "https://github.com/cakephp/core.git",
- "reference": "a444d4e993b40da3bc53fccb669b3937b11911be"
+ "reference": "3c363b20b52af996e535bf24b85fee77c110a50d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/cakephp/core/zipball/a444d4e993b40da3bc53fccb669b3937b11911be",
- "reference": "a444d4e993b40da3bc53fccb669b3937b11911be",
+ "url": "https://api.github.com/repos/cakephp/core/zipball/3c363b20b52af996e535bf24b85fee77c110a50d",
+ "reference": "3c363b20b52af996e535bf24b85fee77c110a50d",
"shasum": ""
},
"require": {
- "cakephp/utility": "^5.1",
+ "cakephp/utility": "5.2.*@dev",
"league/container": "^4.2",
"php": ">=8.1",
"psr/container": "^1.1 || ^2.0"
@@ -194,6 +194,11 @@
"league/container": "To use Container and ServiceProvider classes"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-5.next": "5.2.x-dev"
+ }
+ },
"autoload": {
"files": [
"functions.php"
@@ -225,38 +230,43 @@
"issues": "https://github.com/cakephp/cakephp/issues",
"source": "https://github.com/cakephp/core"
},
- "time": "2025-01-30T19:58:11+00:00"
+ "time": "2025-01-31T16:36:33+00:00"
},
{
"name": "cakephp/database",
- "version": "5.1.6",
+ "version": "5.2.0",
"source": {
"type": "git",
"url": "https://github.com/cakephp/database.git",
- "reference": "004d1050f6017809cc83fe7c7aad833303a48327"
+ "reference": "b06cfc843898525ae8a1b17a3963d12d9cff8046"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/cakephp/database/zipball/004d1050f6017809cc83fe7c7aad833303a48327",
- "reference": "004d1050f6017809cc83fe7c7aad833303a48327",
+ "url": "https://api.github.com/repos/cakephp/database/zipball/b06cfc843898525ae8a1b17a3963d12d9cff8046",
+ "reference": "b06cfc843898525ae8a1b17a3963d12d9cff8046",
"shasum": ""
},
"require": {
"cakephp/chronos": "^3.1",
- "cakephp/core": "^5.1",
- "cakephp/datasource": "^5.1",
+ "cakephp/core": "5.2.*@dev",
+ "cakephp/datasource": "5.2.*@dev",
"php": ">=8.1",
"psr/log": "^3.0"
},
"require-dev": {
- "cakephp/i18n": "^5.1",
- "cakephp/log": "^5.1"
+ "cakephp/i18n": "5.2.*@dev",
+ "cakephp/log": "5.2.*@dev"
},
"suggest": {
"cakephp/i18n": "If you are using locale-aware datetime formats.",
"cakephp/log": "If you want to use query logging without providing a logger yourself."
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-5.next": "5.2.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
"Cake\\Database\\": "."
@@ -287,31 +297,31 @@
"issues": "https://github.com/cakephp/cakephp/issues",
"source": "https://github.com/cakephp/database"
},
- "time": "2025-02-09T07:12:20+00:00"
+ "time": "2025-03-25T02:26:39+00:00"
},
{
"name": "cakephp/datasource",
- "version": "5.1.6",
+ "version": "5.2.0",
"source": {
"type": "git",
"url": "https://github.com/cakephp/datasource.git",
- "reference": "49c4e6864213b00ea3ce21874c6a5cfbfb3c8556"
+ "reference": "fcba5eccaa045a55b01d6481ce7d563ebda9e567"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/cakephp/datasource/zipball/49c4e6864213b00ea3ce21874c6a5cfbfb3c8556",
- "reference": "49c4e6864213b00ea3ce21874c6a5cfbfb3c8556",
+ "url": "https://api.github.com/repos/cakephp/datasource/zipball/fcba5eccaa045a55b01d6481ce7d563ebda9e567",
+ "reference": "fcba5eccaa045a55b01d6481ce7d563ebda9e567",
"shasum": ""
},
"require": {
- "cakephp/core": "^5.1",
+ "cakephp/core": "5.2.*@dev",
"php": ">=8.1",
"psr/simple-cache": "^2.0 || ^3.0"
},
"require-dev": {
- "cakephp/cache": "^5.1",
- "cakephp/collection": "^5.1",
- "cakephp/utility": "^5.1"
+ "cakephp/cache": "5.2.*@dev",
+ "cakephp/collection": "5.2.*@dev",
+ "cakephp/utility": "5.2.*@dev"
},
"suggest": {
"cakephp/cache": "If you decide to use Query caching.",
@@ -319,6 +329,11 @@
"cakephp/utility": "If you decide to use EntityTrait."
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-5.next": "5.2.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
"Cake\\Datasource\\": "."
@@ -349,24 +364,24 @@
"issues": "https://github.com/cakephp/cakephp/issues",
"source": "https://github.com/cakephp/datasource"
},
- "time": "2025-02-04T02:45:22+00:00"
+ "time": "2025-03-21T17:20:29+00:00"
},
{
"name": "cakephp/utility",
- "version": "5.1.6",
+ "version": "5.2.0",
"source": {
"type": "git",
"url": "https://github.com/cakephp/utility.git",
- "reference": "7fd683a85971f7d0b39d446b7265c301050f91c1"
+ "reference": "23914ff52d70671d696b019c34fe82503231dcf5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/cakephp/utility/zipball/7fd683a85971f7d0b39d446b7265c301050f91c1",
- "reference": "7fd683a85971f7d0b39d446b7265c301050f91c1",
+ "url": "https://api.github.com/repos/cakephp/utility/zipball/23914ff52d70671d696b019c34fe82503231dcf5",
+ "reference": "23914ff52d70671d696b019c34fe82503231dcf5",
"shasum": ""
},
"require": {
- "cakephp/core": "^5.1",
+ "cakephp/core": "5.2.*@dev",
"php": ">=8.1"
},
"suggest": {
@@ -374,6 +389,11 @@
"lib-ICU": "To use Text::transliterate() or Text::slug()"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-5.next": "5.2.x-dev"
+ }
+ },
"autoload": {
"files": [
"bootstrap.php"
@@ -408,7 +428,7 @@
"issues": "https://github.com/cakephp/cakephp/issues",
"source": "https://github.com/cakephp/utility"
},
- "time": "2025-01-11T17:40:02+00:00"
+ "time": "2025-03-21T17:20:29+00:00"
},
{
"name": "composer/semver",
@@ -1969,16 +1989,16 @@
},
{
"name": "symfony/console",
- "version": "v7.2.1",
+ "version": "v7.2.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3"
+ "reference": "e51498ea18570c062e7df29d05a7003585b19b88"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/fefcc18c0f5d0efe3ab3152f15857298868dc2c3",
- "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3",
+ "url": "https://api.github.com/repos/symfony/console/zipball/e51498ea18570c062e7df29d05a7003585b19b88",
+ "reference": "e51498ea18570c062e7df29d05a7003585b19b88",
"shasum": ""
},
"require": {
@@ -2042,7 +2062,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v7.2.1"
+ "source": "https://github.com/symfony/console/tree/v7.2.5"
},
"funding": [
{
@@ -2058,7 +2078,7 @@
"type": "tidelift"
}
],
- "time": "2024-12-11T03:49:26+00:00"
+ "time": "2025-03-12T08:11:12+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -2513,16 +2533,16 @@
},
{
"name": "symfony/process",
- "version": "v7.2.4",
+ "version": "v7.2.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf"
+ "reference": "87b7c93e57df9d8e39a093d32587702380ff045d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf",
- "reference": "d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf",
+ "url": "https://api.github.com/repos/symfony/process/zipball/87b7c93e57df9d8e39a093d32587702380ff045d",
+ "reference": "87b7c93e57df9d8e39a093d32587702380ff045d",
"shasum": ""
},
"require": {
@@ -2554,7 +2574,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v7.2.4"
+ "source": "https://github.com/symfony/process/tree/v7.2.5"
},
"funding": [
{
@@ -2570,7 +2590,7 @@
"type": "tidelift"
}
],
- "time": "2025-02-05T08:33:46+00:00"
+ "time": "2025-03-13T12:21:46+00:00"
},
{
"name": "symfony/service-contracts",
@@ -2744,16 +2764,16 @@
},
{
"name": "symfony/yaml",
- "version": "v7.2.3",
+ "version": "v7.2.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "ac238f173df0c9c1120f862d0f599e17535a87ec"
+ "reference": "4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/ac238f173df0c9c1120f862d0f599e17535a87ec",
- "reference": "ac238f173df0c9c1120f862d0f599e17535a87ec",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912",
+ "reference": "4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912",
"shasum": ""
},
"require": {
@@ -2796,7 +2816,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v7.2.3"
+ "source": "https://github.com/symfony/yaml/tree/v7.2.5"
},
"funding": [
{
@@ -2812,7 +2832,7 @@
"type": "tidelift"
}
],
- "time": "2025-01-07T12:55:42+00:00"
+ "time": "2025-03-03T07:12:39+00:00"
},
{
"name": "twig/twig",
@@ -3487,16 +3507,16 @@
},
{
"name": "phpstan/phpstan",
- "version": "1.12.21",
+ "version": "1.12.23",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "14276fdef70575106a3392a4ed553c06a984df28"
+ "reference": "29201e7a743a6ab36f91394eab51889a82631428"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/14276fdef70575106a3392a4ed553c06a984df28",
- "reference": "14276fdef70575106a3392a4ed553c06a984df28",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/29201e7a743a6ab36f91394eab51889a82631428",
+ "reference": "29201e7a743a6ab36f91394eab51889a82631428",
"shasum": ""
},
"require": {
@@ -3541,7 +3561,7 @@
"type": "github"
}
],
- "time": "2025-03-09T09:24:50+00:00"
+ "time": "2025-03-23T14:57:32+00:00"
},
{
"name": "phpunit/php-code-coverage",
@@ -3930,16 +3950,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "11.5.12",
+ "version": "11.5.15",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "d42785840519401ed2113292263795eb4c0f95da"
+ "reference": "4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d42785840519401ed2113292263795eb4c0f95da",
- "reference": "d42785840519401ed2113292263795eb4c0f95da",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c",
+ "reference": "4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c",
"shasum": ""
},
"require": {
@@ -3959,14 +3979,14 @@
"phpunit/php-text-template": "^4.0.1",
"phpunit/php-timer": "^7.0.1",
"sebastian/cli-parser": "^3.0.2",
- "sebastian/code-unit": "^3.0.2",
+ "sebastian/code-unit": "^3.0.3",
"sebastian/comparator": "^6.3.1",
"sebastian/diff": "^6.0.2",
"sebastian/environment": "^7.2.0",
"sebastian/exporter": "^6.3.0",
"sebastian/global-state": "^7.0.2",
"sebastian/object-enumerator": "^6.0.1",
- "sebastian/type": "^5.1.0",
+ "sebastian/type": "^5.1.2",
"sebastian/version": "^5.0.2",
"staabm/side-effects-detector": "^1.0.5"
},
@@ -4011,7 +4031,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.12"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.15"
},
"funding": [
{
@@ -4027,7 +4047,7 @@
"type": "tidelift"
}
],
- "time": "2025-03-07T07:31:03+00:00"
+ "time": "2025-03-23T16:02:11+00:00"
},
{
"name": "rector/rector",
@@ -4147,16 +4167,16 @@
},
{
"name": "sebastian/code-unit",
- "version": "3.0.2",
+ "version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit.git",
- "reference": "ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca"
+ "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca",
- "reference": "ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64",
+ "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64",
"shasum": ""
},
"require": {
@@ -4192,7 +4212,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit/issues",
"security": "https://github.com/sebastianbergmann/code-unit/security/policy",
- "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.2"
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3"
},
"funding": [
{
@@ -4200,7 +4220,7 @@
"type": "github"
}
],
- "time": "2024-12-12T09:59:06+00:00"
+ "time": "2025-03-19T07:56:08+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
@@ -4905,16 +4925,16 @@
},
{
"name": "sebastian/type",
- "version": "5.1.0",
+ "version": "5.1.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "461b9c5da241511a2a0e8f240814fb23ce5c0aac"
+ "reference": "a8a7e30534b0eb0c77cd9d07e82de1a114389f5e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/461b9c5da241511a2a0e8f240814fb23ce5c0aac",
- "reference": "461b9c5da241511a2a0e8f240814fb23ce5c0aac",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/a8a7e30534b0eb0c77cd9d07e82de1a114389f5e",
+ "reference": "a8a7e30534b0eb0c77cd9d07e82de1a114389f5e",
"shasum": ""
},
"require": {
@@ -4950,7 +4970,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
"security": "https://github.com/sebastianbergmann/type/security/policy",
- "source": "https://github.com/sebastianbergmann/type/tree/5.1.0"
+ "source": "https://github.com/sebastianbergmann/type/tree/5.1.2"
},
"funding": [
{
@@ -4958,7 +4978,7 @@
"type": "github"
}
],
- "time": "2024-09-17T13:12:04+00:00"
+ "time": "2025-03-18T13:35:50+00:00"
},
{
"name": "sebastian/version",
@@ -5016,16 +5036,16 @@
},
{
"name": "squizlabs/php_codesniffer",
- "version": "3.11.3",
+ "version": "3.12.1",
"source": {
"type": "git",
"url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
- "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10"
+ "reference": "ea16a1f3719783345febd3aab41beb55c8c84bfd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10",
- "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ea16a1f3719783345febd3aab41beb55c8c84bfd",
+ "reference": "ea16a1f3719783345febd3aab41beb55c8c84bfd",
"shasum": ""
},
"require": {
@@ -5092,11 +5112,11 @@
"type": "open_collective"
},
{
- "url": "https://thanks.dev/phpcsstandards",
+ "url": "https://thanks.dev/u/gh/phpcsstandards",
"type": "thanks_dev"
}
],
- "time": "2025-01-23T17:04:15+00:00"
+ "time": "2025-04-04T12:57:55+00:00"
},
{
"name": "staabm/side-effects-detector",
@@ -5152,16 +5172,16 @@
},
{
"name": "symfony/dependency-injection",
- "version": "v7.2.4",
+ "version": "v7.2.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "f0a1614cccb4b8431a97076f9debc08ddca321ca"
+ "reference": "58ab71379f14a741755717cece2868bf41ed45d8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f0a1614cccb4b8431a97076f9debc08ddca321ca",
- "reference": "f0a1614cccb4b8431a97076f9debc08ddca321ca",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/58ab71379f14a741755717cece2868bf41ed45d8",
+ "reference": "58ab71379f14a741755717cece2868bf41ed45d8",
"shasum": ""
},
"require": {
@@ -5169,7 +5189,7 @@
"psr/container": "^1.1|^2.0",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/service-contracts": "^3.5",
- "symfony/var-exporter": "^6.4|^7.0"
+ "symfony/var-exporter": "^6.4.20|^7.2.5"
},
"conflict": {
"ext-psr": "<1.1|>=2",
@@ -5212,7 +5232,7 @@
"description": "Allows you to standardize and centralize the way objects are constructed in your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dependency-injection/tree/v7.2.4"
+ "source": "https://github.com/symfony/dependency-injection/tree/v7.2.5"
},
"funding": [
{
@@ -5228,20 +5248,20 @@
"type": "tidelift"
}
],
- "time": "2025-02-21T09:47:16+00:00"
+ "time": "2025-03-13T12:21:46+00:00"
},
{
"name": "symfony/var-exporter",
- "version": "v7.2.4",
+ "version": "v7.2.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-exporter.git",
- "reference": "4ede73aa7a73d81506002d2caadbbdad1ef5b69a"
+ "reference": "c37b301818bd7288715d40de634f05781b686ace"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/4ede73aa7a73d81506002d2caadbbdad1ef5b69a",
- "reference": "4ede73aa7a73d81506002d2caadbbdad1ef5b69a",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/c37b301818bd7288715d40de634f05781b686ace",
+ "reference": "c37b301818bd7288715d40de634f05781b686ace",
"shasum": ""
},
"require": {
@@ -5288,7 +5308,7 @@
"serialize"
],
"support": {
- "source": "https://github.com/symfony/var-exporter/tree/v7.2.4"
+ "source": "https://github.com/symfony/var-exporter/tree/v7.2.5"
},
"funding": [
{
@@ -5304,7 +5324,7 @@
"type": "tidelift"
}
],
- "time": "2025-02-13T10:27:23+00:00"
+ "time": "2025-03-13T12:21:46+00:00"
},
{
"name": "theseer/tokenizer",
diff --git a/misc/docker/web/bootstrap-npm.sh b/misc/docker/web/bootstrap-npm.sh
index 028485b0f..55482f060 100755
--- a/misc/docker/web/bootstrap-npm.sh
+++ b/misc/docker/web/bootstrap-npm.sh
@@ -7,7 +7,8 @@ export npm_config_cache
bin/config-css /tmp/config-css.js
-npm install
+npm install -g npm@11.2.0
+npm install sass
npx update-browserslist-db@latest
npx puppeteer browsers install chrome
npm run build
diff --git a/misc/docker/web/entrypoint.sh b/misc/docker/web/entrypoint.sh
index 6b36c05e4..a7bd81c9e 100644
--- a/misc/docker/web/entrypoint.sh
+++ b/misc/docker/web/entrypoint.sh
@@ -14,7 +14,8 @@ if [ ! -e .docker-init-done ] ; then
bin/local-patch
echo "Installing node, go grab a coffee"
bin/config-css /tmp/config-css.js
- npm install
+ npm install -g npm@11.2.0
+ npm install cypress
npx update-browserslist-db@latest
npx puppeteer browsers install chrome
bin/config-css /tmp/config-css.js
diff --git a/misc/docker/web/xdebug.ini b/misc/docker/web/xdebug.ini
index a4a5c615d..c7402beb7 100644
--- a/misc/docker/web/xdebug.ini
+++ b/misc/docker/web/xdebug.ini
@@ -4,6 +4,6 @@ xdebug.remote_handler="dbgp"
xdebug.mode=develop
xdebug.discover_client_host=On
xdebug.log=/var/log/xdebug.log
-xdebug.force_display_errors=1
-xdebug.show_error_trace=1
-xdebug.show_exception_trace=1
+xdebug.force_display_errors=0
+xdebug.show_error_trace=0
+xdebug.show_exception_trace=0
diff --git a/misc/gitlab.Dockerfile b/misc/gitlab.Dockerfile
index 25561a4b2..d3d1dcf1c 100644
--- a/misc/gitlab.Dockerfile
+++ b/misc/gitlab.Dockerfile
@@ -1,19 +1,19 @@
FROM debian:bookworm-slim
-WORKDIR /var/www
-
ENV DEB_RELEASE=bookworm
ENV DEBIAN_FRONTEND=noninteractive
ENV PHP_VER=8.4
ENV NODE_VERSION=20
-# commit of composer 2.8.6
-ENV COMPOSER_COMMIT=51c25eb405dc44528575cb36aea4aeec31c4bf15
+# commit of composer 2.8.8
+ENV COMPOSER_COMMIT=f3108f64b4e1c1ce6eb462b159956461592b3e3e
# Uncomment to skip the chromium download when installing puppeteer. If you do,
# you'll need to launch puppeteer with:
# browser.launch({executablePath: 'google-chrome-unstable'})
# ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
+WORKDIR /var/www
+
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
apt-transport-https \
@@ -57,6 +57,7 @@ RUN apt-get update \
unzip \
zlib1g-dev \
# This installs the necessary packages to run the bundled version of chromium for puppeteer
+ fonts-liberation \
gconf-service \
libasound2 \
libatk1.0-0 \
@@ -72,6 +73,7 @@ RUN apt-get update \
libglib2.0-0 \
libgtk-3-0 \
libnspr4 \
+ libnss3 \
libpango-1.0-0 \
libpangocairo-1.0-0 \
libstdc++6 \
@@ -88,8 +90,6 @@ RUN apt-get update \
libxrender1 \
libxss1 \
libxtst6 \
- fonts-liberation \
- libnss3 \
lsb-release \
xdg-utils \
&& apt-get autoremove \
@@ -108,20 +108,14 @@ RUN apt-get update \
RUN echo "deb http://deb.debian.org/debian ${DEB_RELEASE}-backports main" > /etc/apt/sources.list.d/backports.list \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
- postgresql-client \
default-mysql-client \
libmemcached-tools \
+ postgresql-client \
sphinxsearch \
# all below is needed until running cypress headless/electron-less is fixed: https://github.com/cypress-io/cypress/issues/23636
libgtk2.0-0 \
- libgtk-3-0 \
libnotify-dev \
- libgconf-2-4 \
libgbm-dev \
- libnss3 \
- libxss1 \
- libasound2 \
- libxtst6 \
procps \
xvfb \
&& apt-get autoremove \
diff --git a/misc/phpstan.neon b/misc/phpstan.neon
index 4a5803807..40af073a6 100644
--- a/misc/phpstan.neon
+++ b/misc/phpstan.neon
@@ -22,8 +22,6 @@ parameters:
reportStaticMethodSignatures: true
reportWrongPhpDocTypeInVarTag: true
errorFormat: table
- stubFiles:
- - ../lib/stub/memcached.stub
bootstrapFiles:
- ../lib/config.php
scanFiles:
diff --git a/misc/phpunit.xml b/misc/phpunit.xml
index 29e8034f1..51194e7ad 100644
--- a/misc/phpunit.xml
+++ b/misc/phpunit.xml
@@ -22,9 +22,4 @@
-
-
-
-
-
diff --git a/misc/pre-commit.example b/misc/pre-commit.example
deleted file mode 100755
index a38e6c891..000000000
--- a/misc/pre-commit.example
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-bin/lint-staged
diff --git a/package-lock.json b/package-lock.json
index 8584ee5a5..2f1f74fa7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -17,7 +17,7 @@
"devDependencies": {
"@eslint/js": "^9.14",
"@stylistic/eslint-plugin-js": "^2.10",
- "cypress": "^13.15",
+ "cypress": "^13.17.0",
"cypress-terminal-report": "^7.0.4",
"eslint": "^9.14",
"globals": "^15.12",
@@ -1469,9 +1469,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001701",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001701.tgz",
- "integrity": "sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw==",
+ "version": "1.0.30001712",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001712.tgz",
+ "integrity": "sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==",
"dev": true,
"funding": [
{
@@ -1841,9 +1841,9 @@
}
},
"node_modules/cypress": {
- "version": "13.15.2",
- "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.15.2.tgz",
- "integrity": "sha512-ARbnUorjcCM3XiPwgHKuqsyr5W9Qn+pIIBPaoilnoBkLdSC2oLQjV1BUpnmc7KR+b7Avah3Ly2RMFnfxr96E/A==",
+ "version": "13.17.0",
+ "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.17.0.tgz",
+ "integrity": "sha512-5xWkaPurwkIljojFidhw8lFScyxhtiFHl/i/3zov+1Z5CmY4t9tjIdvSXfu82Y3w7wt0uR9KkucbhkVvJZLQSA==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
diff --git a/package.json b/package.json
index 868a0ded3..f6556e24e 100644
--- a/package.json
+++ b/package.json
@@ -12,24 +12,24 @@
},
"license": "Unlicense",
"devDependencies": {
- "@eslint/js": "^9.14",
- "@stylistic/eslint-plugin-js": "^2.10",
- "cypress": "^13.15",
- "cypress-terminal-report": "^7.0.4",
- "eslint": "^9.14",
+ "@eslint/js": "^9.24",
+ "@stylistic/eslint-plugin-js": "^4.2",
+ "cypress": "^13.17",
+ "cypress-terminal-report": "^7.1.0",
+ "eslint": "^9.24",
"globals": "^15.12",
- "stylelint": "^16.9",
+ "stylelint": "^16.18",
"stylelint-checkstyle-formatter": "^0.1.2",
"stylelint-config-recommended": "^14.0.1",
"stylelint-config-standard": "^36.0.1",
- "stylelint-scss": "^6.9",
- "update-browserslist-db": "1.1.1"
+ "stylelint-scss": "^6.11.1",
+ "update-browserslist-db": "1.1"
},
"dependencies": {
"cross-env": "^7.0",
- "puppeteer": "^23.8",
- "sass": "^1.80.7",
- "sharp": "^0.33.5"
+ "puppeteer": "^24.6",
+ "sass": "^1.86",
+ "sharp": "^0.34"
},
"browserslist": [
"last 3 versions",
diff --git a/tests/cypress/support/commands.js b/tests/cypress/support/commands.js
index 7eb145b35..19863c556 100644
--- a/tests/cypress/support/commands.js
+++ b/tests/cypress/support/commands.js
@@ -24,6 +24,8 @@
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
+/* global Cypress, cy */
+
const date = new Date();
const footer = `Site and design © ${date.getFullYear()} Gazelle`;
@@ -38,6 +40,9 @@ Cypress.Commands.add('login', (username, password) => {
})
})
+// When running Cypress tests locally, change the following login calls
+// to users that exist in your environment.
+
Cypress.Commands.add('loginAdmin', () => {
cy.login('admin', 'password');
})