diff --git a/README.md b/README.md index f073158..8b8012d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Swiss QR Invoice for Dolibarr This repository is a set of files to add Swiss QR invoice to Dolibarr ERP/CRM. +The model supports QR-IBAN or classic IBAN. ## Requirement @@ -9,7 +10,8 @@ This set of files is actually tested on Dolibarr 16.0.1 with PHP 7.4.29 ## Installation 1. Copy each files with the same name in the same directory of the Dolibarr installation. -2. Activated invoice templates in the Setup -> Modules/Apllications -> Invoices +2. Activated invoice templates in the Setup -> Modules/Apllications -> Invoices. +3. In case of QR-IBAN add the variable SI_SWISSQR_REF in Configuration->Other Setup. You receive this number from your bank (BESR-ID). ## Baed on @@ -18,7 +20,8 @@ This set of files is actually tested on Dolibarr 16.0.1 with PHP 7.4.29 # QR facture suisse pour Dolibarr -Ce dépôt est un ensemble de fichiers pour ajouter la facture QR suisse à l'ERP/CRM Dolibarr +Ce dépôt est un ensemble de fichiers pour ajouter la facture QR suisse à l'ERP/CRM Dolibarr. +Le modèle supporte le QR-IBAN ou l'IBAN classic. ## Prérequis @@ -27,11 +30,13 @@ Ces fichiers sont actuellement testés avec Dolibarr 16.0.1 et PHP 7.4.29 ## Installation 1. Copier l'ensemble des fichiers dans les mêmes répertoires de votre installation Dolibarr. -2. Activer le modèle de facture dans Configuration->Modules/Applications -> Factures +2. Activer le modèle de facture dans Configuration->Modules/Applications -> Factures. +3. Dans le cas du QR-IBAN ajouter la variable SI_SWISSQR_REF dans Configuration->Divers. Vous recevez ce numéro de votre banque (BESR-ID). # Swiss QR Invoice für Dolibarr Dieses Repository enthält eine Reihe von Dateien, um die Schweizer QR-Rechnung zu Dolibarr ERP/CRM hinzuzufügen. +Die Vorlage unterstützt QR-IBAN oder IBAN classic. ## Anforderung @@ -40,17 +45,20 @@ Dieser Satz von Dateien ist auf Dolibarr 16.0.1 mit PHP 7.4.29 getestet. ## Installation 1. Kopieren Sie alle Dateien mit dem gleichen Namen in das gleiche Verzeichnis der Dolibarr-Installation. -2. Aktivieren Sie die Rechnungsvorlagen im Setup -> Module/Applikationen -> Rechnungen +2. Aktivieren Sie die Rechnungsvorlagen im Setup -> Module/Applikationen -> Rechnungen. +3. Im Fall von QR-IBAN fügen Sie die Variable SI_SWISSQR_REF in Konfiguration->Diverses hinzu. Sie erhalten diese Nummer von Ihrer Bank (BESR-ID). # Fattura QR svizzera per Dolibarr Questo repository è un insieme di file per aggiungere la fattura Swiss QR all'ERP/CRM Dolibarr. +Il modello supporta QR-IBAN o IBAN classico. ## Requisiti -Questo set di file è stato testato su Dolibarr 16.0.1 con PHP 7.4.29. +Questo set di file è stato testato su Dolibarr 16.0.1 con PHP 7.4.29 ## Installazione 1. Copiare i file con lo stesso nome nella stessa directory dell'installazione di Dolibarr. -2. Attivare i modelli di fattura in Impostazione -> Moduli/Allegati -> Fatture. \ No newline at end of file +2. Attivare i modelli di fattura in Impostazione -> Moduli/Allegati -> Fatture. +3. In caso di QR-IBAN, aggiungere la variabile SI_SWISSQR_REF in Configurazione->Varie. Questo numero viene fornito dalla banca (BESR-ID). \ No newline at end of file diff --git a/htdocs/core/modules/facture/doc/vendor/composer/installed.json b/htdocs/core/modules/facture/doc/vendor/composer/installed.json index 6aef6f1..abe9930 100644 --- a/htdocs/core/modules/facture/doc/vendor/composer/installed.json +++ b/htdocs/core/modules/facture/doc/vendor/composer/installed.json @@ -59,24 +59,27 @@ }, { "name": "dasprid/enum", - "version": "1.0.3", - "version_normalized": "1.0.3.0", + "version": "1.0.4", + "version_normalized": "1.0.4.0", "source": { "type": "git", "url": "https://github.com/DASPRiD/Enum.git", - "reference": "5abf82f213618696dda8e3bf6f64dd042d8542b2" + "reference": "8e6b6ea76eabbf19ea2bf5b67b98e1860474012f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/5abf82f213618696dda8e3bf6f64dd042d8542b2", - "reference": "5abf82f213618696dda8e3bf6f64dd042d8542b2", + "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/8e6b6ea76eabbf19ea2bf5b67b98e1860474012f", + "reference": "8e6b6ea76eabbf19ea2bf5b67b98e1860474012f", "shasum": "" }, + "require": { + "php": ">=7.1 <9.0" + }, "require-dev": { "phpunit/phpunit": "^7 | ^8 | ^9", - "squizlabs/php_codesniffer": "^3.4" + "squizlabs/php_codesniffer": "*" }, - "time": "2020-10-02T16:03:48+00:00", + "time": "2023-03-01T18:44:03+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -103,7 +106,7 @@ ], "support": { "issues": "https://github.com/DASPRiD/Enum/issues", - "source": "https://github.com/DASPRiD/Enum/tree/1.0.3" + "source": "https://github.com/DASPRiD/Enum/tree/1.0.4" }, "install-path": "../dasprid/enum" }, @@ -500,17 +503,17 @@ }, { "name": "symfony/intl", - "version": "v5.4.15", - "version_normalized": "5.4.15.0", + "version": "v5.4.21", + "version_normalized": "5.4.21.0", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "2cb39da7f6e7b7344d7d5317dbee8db9d12cc714" + "reference": "32c2d958b88f5c7f0b080774d7d15d4c87769bc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/2cb39da7f6e7b7344d7d5317dbee8db9d12cc714", - "reference": "2cb39da7f6e7b7344d7d5317dbee8db9d12cc714", + "url": "https://api.github.com/repos/symfony/intl/zipball/32c2d958b88f5c7f0b080774d7d15d4c87769bc8", + "reference": "32c2d958b88f5c7f0b080774d7d15d4c87769bc8", "shasum": "" }, "require": { @@ -521,7 +524,7 @@ "require-dev": { "symfony/filesystem": "^4.4|^5.0|^6.0" }, - "time": "2022-10-19T14:28:49+00:00", + "time": "2023-02-17T21:35:35+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -571,7 +574,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v5.4.15" + "source": "https://github.com/symfony/intl/tree/v5.4.21" }, "funding": [ { @@ -591,17 +594,17 @@ }, { "name": "symfony/options-resolver", - "version": "v5.4.11", - "version_normalized": "5.4.11.0", + "version": "v5.4.21", + "version_normalized": "5.4.21.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "54f14e36aa73cb8f7261d7686691fd4d75ea2690" + "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/54f14e36aa73cb8f7261d7686691fd4d75ea2690", - "reference": "54f14e36aa73cb8f7261d7686691fd4d75ea2690", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", + "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", "shasum": "" }, "require": { @@ -610,7 +613,7 @@ "symfony/polyfill-php73": "~1.0", "symfony/polyfill-php80": "^1.16" }, - "time": "2022-07-20T13:00:38+00:00", + "time": "2023-02-14T08:03:56+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -643,7 +646,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v5.4.11" + "source": "https://github.com/symfony/options-resolver/tree/v5.4.21" }, "funding": [ { @@ -1345,17 +1348,17 @@ }, { "name": "symfony/property-access", - "version": "v5.4.15", - "version_normalized": "5.4.15.0", + "version": "v5.4.21", + "version_normalized": "5.4.21.0", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "0f3e8f40a1d3da90f674b3dd772e4777ccde4273" + "reference": "bbd4442bfbdf3992550772539ba743d6d834534f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/0f3e8f40a1d3da90f674b3dd772e4777ccde4273", - "reference": "0f3e8f40a1d3da90f674b3dd772e4777ccde4273", + "url": "https://api.github.com/repos/symfony/property-access/zipball/bbd4442bfbdf3992550772539ba743d6d834534f", + "reference": "bbd4442bfbdf3992550772539ba743d6d834534f", "shasum": "" }, "require": { @@ -1370,7 +1373,7 @@ "suggest": { "psr/cache-implementation": "To cache access methods." }, - "time": "2022-10-27T07:55:40+00:00", + "time": "2023-02-16T09:33:00+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1409,7 +1412,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v5.4.15" + "source": "https://github.com/symfony/property-access/tree/v5.4.21" }, "funding": [ { @@ -1429,17 +1432,17 @@ }, { "name": "symfony/property-info", - "version": "v5.4.17", - "version_normalized": "5.4.17.0", + "version": "v5.4.21", + "version_normalized": "5.4.21.0", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "12e1f7b3d73b1f3690aa524b92b5de9937507361" + "reference": "722737086d76b4edabfc2d50a48cebd4b8cd5546" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/12e1f7b3d73b1f3690aa524b92b5de9937507361", - "reference": "12e1f7b3d73b1f3690aa524b92b5de9937507361", + "url": "https://api.github.com/repos/symfony/property-info/zipball/722737086d76b4edabfc2d50a48cebd4b8cd5546", + "reference": "722737086d76b4edabfc2d50a48cebd4b8cd5546", "shasum": "" }, "require": { @@ -1467,7 +1470,7 @@ "symfony/doctrine-bridge": "To use Doctrine metadata", "symfony/serializer": "To use Serializer metadata" }, - "time": "2022-12-20T11:10:57+00:00", + "time": "2023-02-16T09:33:00+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1503,7 +1506,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v5.4.17" + "source": "https://github.com/symfony/property-info/tree/v5.4.21" }, "funding": [ { @@ -1523,17 +1526,17 @@ }, { "name": "symfony/string", - "version": "v5.4.17", - "version_normalized": "5.4.17.0", + "version": "v5.4.21", + "version_normalized": "5.4.21.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "55733a8664b8853b003e70251c58bc8cb2d82a6b" + "reference": "edac10d167b78b1d90f46a80320d632de0bd9f2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/55733a8664b8853b003e70251c58bc8cb2d82a6b", - "reference": "55733a8664b8853b003e70251c58bc8cb2d82a6b", + "url": "https://api.github.com/repos/symfony/string/zipball/edac10d167b78b1d90f46a80320d632de0bd9f2f", + "reference": "edac10d167b78b1d90f46a80320d632de0bd9f2f", "shasum": "" }, "require": { @@ -1553,7 +1556,7 @@ "symfony/translation-contracts": "^1.1|^2", "symfony/var-exporter": "^4.4|^5.0|^6.0" }, - "time": "2022-12-12T15:54:21+00:00", + "time": "2023-02-22T08:00:55+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1592,7 +1595,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.17" + "source": "https://github.com/symfony/string/tree/v5.4.21" }, "funding": [ { @@ -1693,17 +1696,17 @@ }, { "name": "symfony/validator", - "version": "v5.4.17", - "version_normalized": "5.4.17.0", + "version": "v5.4.21", + "version_normalized": "5.4.21.0", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "621b820204a238d754f7f60241fcbdb1687641ea" + "reference": "0ba987d705962a4f6571d31a8e1aed18ad2c9f55" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/621b820204a238d754f7f60241fcbdb1687641ea", - "reference": "621b820204a238d754f7f60241fcbdb1687641ea", + "url": "https://api.github.com/repos/symfony/validator/zipball/0ba987d705962a4f6571d31a8e1aed18ad2c9f55", + "reference": "0ba987d705962a4f6571d31a8e1aed18ad2c9f55", "shasum": "" }, "require": { @@ -1732,7 +1735,7 @@ "require-dev": { "doctrine/annotations": "^1.13|^2", "doctrine/cache": "^1.11|^2.0", - "egulias/email-validator": "^2.1.10|^3", + "egulias/email-validator": "^2.1.10|^3|^4", "symfony/cache": "^4.4|^5.0|^6.0", "symfony/config": "^4.4|^5.0|^6.0", "symfony/console": "^4.4|^5.0|^6.0", @@ -1761,7 +1764,7 @@ "symfony/translation": "For translating validation errors.", "symfony/yaml": "" }, - "time": "2022-12-21T19:20:17+00:00", + "time": "2023-02-22T19:16:45+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1789,7 +1792,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v5.4.17" + "source": "https://github.com/symfony/validator/tree/v5.4.21" }, "funding": [ { diff --git a/htdocs/core/modules/facture/doc/vendor/composer/installed.php b/htdocs/core/modules/facture/doc/vendor/composer/installed.php index 88f4c29..554b127 100644 --- a/htdocs/core/modules/facture/doc/vendor/composer/installed.php +++ b/htdocs/core/modules/facture/doc/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => '__root__', 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '4f030b05af2d8e0e4875c40d35686b88e7924979', + 'reference' => '0b5bf953d7af542abca30ebb41f2db12add3f214', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -13,7 +13,7 @@ '__root__' => array( 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '4f030b05af2d8e0e4875c40d35686b88e7924979', + 'reference' => '0b5bf953d7af542abca30ebb41f2db12add3f214', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -29,9 +29,9 @@ 'dev_requirement' => false, ), 'dasprid/enum' => array( - 'pretty_version' => '1.0.3', - 'version' => '1.0.3.0', - 'reference' => '5abf82f213618696dda8e3bf6f64dd042d8542b2', + 'pretty_version' => '1.0.4', + 'version' => '1.0.4.0', + 'reference' => '8e6b6ea76eabbf19ea2bf5b67b98e1860474012f', 'type' => 'library', 'install_path' => __DIR__ . '/../dasprid/enum', 'aliases' => array(), @@ -92,18 +92,18 @@ 'dev_requirement' => false, ), 'symfony/intl' => array( - 'pretty_version' => 'v5.4.15', - 'version' => '5.4.15.0', - 'reference' => '2cb39da7f6e7b7344d7d5317dbee8db9d12cc714', + 'pretty_version' => 'v5.4.21', + 'version' => '5.4.21.0', + 'reference' => '32c2d958b88f5c7f0b080774d7d15d4c87769bc8', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/intl', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/options-resolver' => array( - 'pretty_version' => 'v5.4.11', - 'version' => '5.4.11.0', - 'reference' => '54f14e36aa73cb8f7261d7686691fd4d75ea2690', + 'pretty_version' => 'v5.4.21', + 'version' => '5.4.21.0', + 'reference' => '4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/options-resolver', 'aliases' => array(), @@ -182,27 +182,27 @@ 'dev_requirement' => false, ), 'symfony/property-access' => array( - 'pretty_version' => 'v5.4.15', - 'version' => '5.4.15.0', - 'reference' => '0f3e8f40a1d3da90f674b3dd772e4777ccde4273', + 'pretty_version' => 'v5.4.21', + 'version' => '5.4.21.0', + 'reference' => 'bbd4442bfbdf3992550772539ba743d6d834534f', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/property-access', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/property-info' => array( - 'pretty_version' => 'v5.4.17', - 'version' => '5.4.17.0', - 'reference' => '12e1f7b3d73b1f3690aa524b92b5de9937507361', + 'pretty_version' => 'v5.4.21', + 'version' => '5.4.21.0', + 'reference' => '722737086d76b4edabfc2d50a48cebd4b8cd5546', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/property-info', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/string' => array( - 'pretty_version' => 'v5.4.17', - 'version' => '5.4.17.0', - 'reference' => '55733a8664b8853b003e70251c58bc8cb2d82a6b', + 'pretty_version' => 'v5.4.21', + 'version' => '5.4.21.0', + 'reference' => 'edac10d167b78b1d90f46a80320d632de0bd9f2f', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), @@ -218,9 +218,9 @@ 'dev_requirement' => false, ), 'symfony/validator' => array( - 'pretty_version' => 'v5.4.17', - 'version' => '5.4.17.0', - 'reference' => '621b820204a238d754f7f60241fcbdb1687641ea', + 'pretty_version' => 'v5.4.21', + 'version' => '5.4.21.0', + 'reference' => '0ba987d705962a4f6571d31a8e1aed18ad2c9f55', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/validator', 'aliases' => array(), diff --git a/htdocs/core/modules/facture/doc/vendor/dasprid/enum/.github/workflows/tests.yml b/htdocs/core/modules/facture/doc/vendor/dasprid/enum/.github/workflows/tests.yml new file mode 100644 index 0000000..94b2562 --- /dev/null +++ b/htdocs/core/modules/facture/doc/vendor/dasprid/enum/.github/workflows/tests.yml @@ -0,0 +1,47 @@ +name: Tests + +on: [push, pull_request] + +jobs: + php-tests: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: true + matrix: + php: [8.2, 8.1, 8.0, 7.4, 7.3, 7.2, 7.1] + dependency-version: [prefer-stable] + os: [ubuntu-latest, windows-latest] + + name: ${{ matrix.os }} - PHP${{ matrix.php }} - ${{ matrix.dependency-version }} + + steps: + - name: Set git to use LF + run: | + git config --global core.autocrlf false + git config --global core.eol lf + + - name: Checkout code + uses: actions/checkout@v3 + + - name: Cache dependencies + uses: actions/cache@v3 + with: + path: ~/.composer/cache/files + key: dependencies-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }} + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + coverage: none + + - name: Install dependencies + run: | + composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction + + - name: Execute tests + run: vendor/bin/phpunit + + - name: Code Sniffer + run: vendor/bin/phpcs + diff --git a/htdocs/core/modules/facture/doc/vendor/dasprid/enum/README.md b/htdocs/core/modules/facture/doc/vendor/dasprid/enum/README.md index 9e9ca12..da37045 100644 --- a/htdocs/core/modules/facture/doc/vendor/dasprid/enum/README.md +++ b/htdocs/core/modules/facture/doc/vendor/dasprid/enum/README.md @@ -1,6 +1,6 @@ # PHP 7.1 enums -[![Build Status](https://travis-ci.org/DASPRiD/Enum.svg?branch=master)](https://travis-ci.org/DASPRiD/Enum) +[![Build Status](https://github.com/DASPRiD/Enum/actions/workflows/tests.yml/badge.svg)](https://github.com/DASPRiD/Enum/actions?query=workflow%3Atests) [![Coverage Status](https://coveralls.io/repos/github/DASPRiD/Enum/badge.svg?branch=master)](https://coveralls.io/github/DASPRiD/Enum?branch=master) [![Latest Stable Version](https://poser.pugx.org/dasprid/enum/v/stable)](https://packagist.org/packages/dasprid/enum) [![Total Downloads](https://poser.pugx.org/dasprid/enum/downloads)](https://packagist.org/packages/dasprid/enum) @@ -41,7 +41,7 @@ final class WeekDay extends AbstractEnum protected const SATURDAY = null; protected const SUNDAY = null; } -``` +``` If you need to provide constants for either internal use or public use, you can mark them as either private or public, in which case they will be ignored by the enum, which only considers protected constants as valid values. As you can @@ -56,16 +56,16 @@ function tellItLikeItIs(WeekDay $weekDay) case WeekDay::MONDAY(): echo 'Mondays are bad.'; break; - + case WeekDay::FRIDAY(): echo 'Fridays are better.'; break; - + case WeekDay::SATURDAY(): case WeekDay::SUNDAY(): echo 'Weekends are best.'; break; - + default: echo 'Midweek days are so-so.'; } @@ -107,14 +107,14 @@ final class Planet extends AbstractEnum protected const SATURN = [5.688e+26, 6.0268e7]; protected const URANUS = [8.686e+25, 2.5559e7]; protected const NEPTUNE = [1.024e+26, 2.4746e7]; - + /** * Universal gravitational constant. * * @var float */ private const G = 6.67300E-11; - + /** * Mass in kilograms. * @@ -124,32 +124,32 @@ final class Planet extends AbstractEnum /** * Radius in meters. - * + * * @var float - */ + */ private $radius; - + protected function __construct(float $mass, float $radius) { $this->mass = $mass; $this->radius = $radius; } - + public function mass() : float { return $this->mass; } - + public function radius() : float { - return $this->radius; + return $this->radius; } - + public function surfaceGravity() : float { return self::G * $this->mass / ($this->radius * $this->radius); } - + public function surfaceWeight(float $otherMass) : float { return $otherMass * $this->surfaceGravity(); diff --git a/htdocs/core/modules/facture/doc/vendor/dasprid/enum/composer.json b/htdocs/core/modules/facture/doc/vendor/dasprid/enum/composer.json index b3d745a..133e279 100644 --- a/htdocs/core/modules/facture/doc/vendor/dasprid/enum/composer.json +++ b/htdocs/core/modules/facture/doc/vendor/dasprid/enum/composer.json @@ -14,9 +14,12 @@ "enum", "map" ], + "require": { + "php": ">=7.1 <9.0" + }, "require-dev": { "phpunit/phpunit": "^7 | ^8 | ^9", - "squizlabs/php_codesniffer": "^3.4" + "squizlabs/php_codesniffer": "*" }, "autoload": { "psr-4": { diff --git a/htdocs/core/modules/facture/doc/vendor/dasprid/enum/src/EnumMap.php b/htdocs/core/modules/facture/doc/vendor/dasprid/enum/src/EnumMap.php index 77c5f35..95b8856 100644 --- a/htdocs/core/modules/facture/doc/vendor/dasprid/enum/src/EnumMap.php +++ b/htdocs/core/modules/facture/doc/vendor/dasprid/enum/src/EnumMap.php @@ -88,6 +88,31 @@ final class EnumMap implements Serializable, IteratorAggregate $this->values = array_fill(0, count($this->keyUniverse), null); } + public function __serialize(): array + { + $values = []; + + foreach ($this->values as $ordinal => $value) { + if (null === $value) { + continue; + } + + $values[$ordinal] = $this->unmaskNull($value); + } + + return [ + 'keyType' => $this->keyType, + 'valueType' => $this->valueType, + 'allowNullValues' => $this->allowNullValues, + 'values' => $values, + ]; + } + + public function __unserialize(array $data): void + { + $this->unserialize(serialize($data)); + } + /** * Checks whether the map types match the supplied ones. * @@ -261,22 +286,7 @@ final class EnumMap implements Serializable, IteratorAggregate public function serialize() : string { - $values = []; - - foreach ($this->values as $ordinal => $value) { - if (null === $value) { - continue; - } - - $values[$ordinal] = $this->unmaskNull($value); - } - - return serialize([ - 'keyType' => $this->keyType, - 'valueType' => $this->valueType, - 'allowNullValues' => $this->allowNullValues, - 'values' => $values, - ]); + return serialize($this->__serialize()); } public function unserialize($serialized) : void diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/intl/DateFormatter/DateFormat/HourTransformer.php b/htdocs/core/modules/facture/doc/vendor/symfony/intl/DateFormatter/DateFormat/HourTransformer.php index 54dcbfe..a9734ac 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/intl/DateFormatter/DateFormat/HourTransformer.php +++ b/htdocs/core/modules/facture/doc/vendor/symfony/intl/DateFormatter/DateFormat/HourTransformer.php @@ -25,8 +25,8 @@ abstract class HourTransformer extends Transformer /** * Returns a normalized hour value suitable for the hour transformer type. * - * @param int $hour The hour value - * @param string $marker An optional AM/PM marker + * @param int $hour The hour value + * @param string|null $marker An optional AM/PM marker * * @return int The normalized hour value */ diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/intl/DateFormatter/DateFormat/QuarterTransformer.php b/htdocs/core/modules/facture/doc/vendor/symfony/intl/DateFormatter/DateFormat/QuarterTransformer.php index 71b95c8..83d8400 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/intl/DateFormatter/DateFormat/QuarterTransformer.php +++ b/htdocs/core/modules/facture/doc/vendor/symfony/intl/DateFormatter/DateFormat/QuarterTransformer.php @@ -35,10 +35,18 @@ class QuarterTransformer extends Transformer return $this->padLeft($quarter, $length); case 3: return 'Q'.$quarter; - default: + case 4: $map = [1 => '1st quarter', 2 => '2nd quarter', 3 => '3rd quarter', 4 => '4th quarter']; return $map[$quarter]; + default: + if (\defined('INTL_ICU_VERSION') && version_compare(\INTL_ICU_VERSION, '70.1', '<')) { + $map = [1 => '1st quarter', 2 => '2nd quarter', 3 => '3rd quarter', 4 => '4th quarter']; + + return $map[$quarter]; + } else { + return $quarter; + } } } diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/intl/DateFormatter/IntlDateFormatter.php b/htdocs/core/modules/facture/doc/vendor/symfony/intl/DateFormatter/IntlDateFormatter.php index 5b683c4..8625789 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/intl/DateFormatter/IntlDateFormatter.php +++ b/htdocs/core/modules/facture/doc/vendor/symfony/intl/DateFormatter/IntlDateFormatter.php @@ -124,7 +124,7 @@ abstract class IntlDateFormatter * @param int|null $datetype Type of date formatting, one of the format type constants * @param int|null $timetype Type of time formatting, one of the format type constants * @param \IntlTimeZone|\DateTimeZone|string|null $timezone Timezone identifier - * @param int $calendar Calendar to use for formatting or parsing. The only currently + * @param int|null $calendar Calendar to use for formatting or parsing. The only currently * supported value is IntlDateFormatter::GREGORIAN (or null using the default calendar, i.e. "GREGORIAN") * @param string|null $pattern Optional pattern to use when formatting * @@ -418,11 +418,11 @@ abstract class IntlDateFormatter /** * Parse string to a timestamp value. * - * @param string $value String to convert to a time value - * @param int $position Not supported. Position at which to start the parsing in $value (zero-based) - * If no error occurs before $value is consumed, $parse_pos will - * contain -1 otherwise it will contain the position at which parsing - * ended. If $parse_pos > strlen($value), the parse fails immediately. + * @param string $value String to convert to a time value + * @param int|null $position Not supported. Position at which to start the parsing in $value (zero-based) + * If no error occurs before $value is consumed, $parse_pos will + * contain -1 otherwise it will contain the position at which parsing + * ended. If $parse_pos > strlen($value), the parse fails immediately. * * @return int|false Parsed value as a timestamp * @@ -494,7 +494,7 @@ abstract class IntlDateFormatter /** * Set the formatter's pattern. * - * @param string $pattern A pattern string in conformance with the ICU IntlDateFormatter documentation + * @param string|null $pattern A pattern string in conformance with the ICU IntlDateFormatter documentation * * @return bool true on success or false on failure * diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/intl/LICENSE b/htdocs/core/modules/facture/doc/vendor/symfony/intl/LICENSE index 88bf75b..0138f8f 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/intl/LICENSE +++ b/htdocs/core/modules/facture/doc/vendor/symfony/intl/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2022 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/intl/Locale/Locale.php b/htdocs/core/modules/facture/doc/vendor/symfony/intl/Locale/Locale.php index 79d2f07..d806671 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/intl/Locale/Locale.php +++ b/htdocs/core/modules/facture/doc/vendor/symfony/intl/Locale/Locale.php @@ -152,8 +152,8 @@ abstract class Locale /** * Not supported. Returns the localized display name for the locale language. * - * @param string $locale The locale code to return the display language from - * @param string $inLocale Optional format locale code to use to display the language name + * @param string $locale The locale code to return the display language from + * @param string|null $inLocale Optional format locale code to use to display the language name * * @return string * @@ -169,8 +169,8 @@ abstract class Locale /** * Not supported. Returns the localized display name for the locale. * - * @param string $locale The locale code to return the display locale name from - * @param string $inLocale Optional format locale code to use to display the locale name + * @param string $locale The locale code to return the display locale name from + * @param string|null $inLocale Optional format locale code to use to display the locale name * * @return string * @@ -186,8 +186,8 @@ abstract class Locale /** * Not supported. Returns the localized display name for the locale region. * - * @param string $locale The locale code to return the display region from - * @param string $inLocale Optional format locale code to use to display the region name + * @param string $locale The locale code to return the display region from + * @param string|null $inLocale Optional format locale code to use to display the region name * * @return string * @@ -203,8 +203,8 @@ abstract class Locale /** * Not supported. Returns the localized display name for the locale script. * - * @param string $locale The locale code to return the display script from - * @param string $inLocale Optional format locale code to use to display the script name + * @param string $locale The locale code to return the display script from + * @param string|null $inLocale Optional format locale code to use to display the script name * * @return string * @@ -220,8 +220,8 @@ abstract class Locale /** * Not supported. Returns the localized display name for the locale variant. * - * @param string $locale The locale code to return the display variant from - * @param string $inLocale Optional format locale code to use to display the variant name + * @param string $locale The locale code to return the display variant from + * @param string|null $inLocale Optional format locale code to use to display the variant name * * @return string * @@ -301,10 +301,10 @@ abstract class Locale /** * Not supported. Returns the closest language tag for the locale. * - * @param array $langtag A list of the language tags to compare to locale - * @param string $locale The locale to use as the language range when matching - * @param bool $canonicalize If true, the arguments will be converted to canonical form before matching - * @param string $default The locale to use if no match is found + * @param array $langtag A list of the language tags to compare to locale + * @param string $locale The locale to use as the language range when matching + * @param bool $canonicalize If true, the arguments will be converted to canonical form before matching + * @param string|null $default The locale to use if no match is found * * @see https://php.net/locale.lookup * diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/intl/NumberFormatter/NumberFormatter.php b/htdocs/core/modules/facture/doc/vendor/symfony/intl/NumberFormatter/NumberFormatter.php index 2a369c2..b573f63 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/intl/NumberFormatter/NumberFormatter.php +++ b/htdocs/core/modules/facture/doc/vendor/symfony/intl/NumberFormatter/NumberFormatter.php @@ -244,10 +244,10 @@ abstract class NumberFormatter /** * @param string|null $locale The locale code. The only currently supported locale is "en" (or null using the default locale, i.e. "en") - * @param int $style Style of the formatting, one of the format style constants. + * @param int|null $style Style of the formatting, one of the format style constants. * The only supported styles are NumberFormatter::DECIMAL * and NumberFormatter::CURRENCY. - * @param string $pattern Not supported. A pattern string in case $style is NumberFormat::PATTERN_DECIMAL or + * @param string|null $pattern Not supported. A pattern string in case $style is NumberFormat::PATTERN_DECIMAL or * NumberFormat::PATTERN_RULEBASED. It must conform to the syntax * described in the ICU DecimalFormat or ICU RuleBasedNumberFormat documentation * @@ -281,10 +281,10 @@ abstract class NumberFormatter * Static constructor. * * @param string|null $locale The locale code. The only supported locale is "en" (or null using the default locale, i.e. "en") - * @param int $style Style of the formatting, one of the format style constants. + * @param int|null $style Style of the formatting, one of the format style constants. * The only currently supported styles are NumberFormatter::DECIMAL * and NumberFormatter::CURRENCY. - * @param string $pattern Not supported. A pattern string in case $style is NumberFormat::PATTERN_DECIMAL or + * @param string|null $pattern Not supported. A pattern string in case $style is NumberFormat::PATTERN_DECIMAL or * NumberFormat::PATTERN_RULEBASED. It must conform to the syntax * described in the ICU DecimalFormat or ICU RuleBasedNumberFormat documentation * @@ -485,9 +485,9 @@ abstract class NumberFormatter /** * Not supported. Parse a currency number. * - * @param string $value The value to parse - * @param string $currency Parameter to receive the currency name (reference) - * @param int $position Offset to begin the parsing on return this value will hold the offset at which the parsing ended + * @param string $value The value to parse + * @param string $currency Parameter to receive the currency name (reference) + * @param int|null $position Offset to begin the parsing on return this value will hold the offset at which the parsing ended * * @return float|false The parsed numeric value or false on error * diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/intl/ResourceBundle.php b/htdocs/core/modules/facture/doc/vendor/symfony/intl/ResourceBundle.php index 4f2ee32..c0ef5d1 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/intl/ResourceBundle.php +++ b/htdocs/core/modules/facture/doc/vendor/symfony/intl/ResourceBundle.php @@ -32,13 +32,13 @@ abstract class ResourceBundle * * @see BundleEntryReaderInterface::readEntry() * - * @param string[] $indices The indices to read from the bundle - * @param string $locale The locale to read - * @param bool $fallback Whether to merge the value with the value from - * the fallback locale (e.g. "en" for "en_GB"). - * Only applicable if the result is multivalued - * (i.e. array or \ArrayAccess) or cannot be found - * in the requested locale. + * @param string[] $indices The indices to read from the bundle + * @param string|null $locale The locale to read + * @param bool $fallback Whether to merge the value with the value from + * the fallback locale (e.g. "en" for "en_GB"). + * Only applicable if the result is multivalued + * (i.e. array or \ArrayAccess) or cannot be found + * in the requested locale. * * @return mixed returns an array or {@link \ArrayAccess} instance for * complex data and a scalar value for simple data diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/options-resolver/LICENSE b/htdocs/core/modules/facture/doc/vendor/symfony/options-resolver/LICENSE index 88bf75b..0138f8f 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/options-resolver/LICENSE +++ b/htdocs/core/modules/facture/doc/vendor/symfony/options-resolver/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2022 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/property-access/LICENSE b/htdocs/core/modules/facture/doc/vendor/symfony/property-access/LICENSE index 88bf75b..0138f8f 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/property-access/LICENSE +++ b/htdocs/core/modules/facture/doc/vendor/symfony/property-access/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2022 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/property-info/Extractor/PhpDocExtractor.php b/htdocs/core/modules/facture/doc/vendor/symfony/property-info/Extractor/PhpDocExtractor.php index 0f2fba5..2cecfcf 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/property-info/Extractor/PhpDocExtractor.php +++ b/htdocs/core/modules/facture/doc/vendor/symfony/property-info/Extractor/PhpDocExtractor.php @@ -60,7 +60,7 @@ class PhpDocExtractor implements PropertyDescriptionExtractorInterface, Property public function __construct(DocBlockFactoryInterface $docBlockFactory = null, array $mutatorPrefixes = null, array $accessorPrefixes = null, array $arrayMutatorPrefixes = null) { if (!class_exists(DocBlockFactory::class)) { - throw new \LogicException(sprintf('Unable to use the "%s" class as the "phpdocumentor/reflection-docblock" package is not installed.', __CLASS__)); + throw new \LogicException(sprintf('Unable to use the "%s" class as the "phpdocumentor/reflection-docblock" package is not installed. Try running composer require "phpdocumentor/reflection-docblock".', __CLASS__)); } $this->docBlockFactory = $docBlockFactory ?: DocBlockFactory::createInstance(); @@ -200,7 +200,7 @@ class PhpDocExtractor implements PropertyDescriptionExtractorInterface, Property } } - if (!isset($types[0])) { + if (!isset($types[0]) || [] === $types[0]) { return null; } diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/property-info/Extractor/PhpStanExtractor.php b/htdocs/core/modules/facture/doc/vendor/symfony/property-info/Extractor/PhpStanExtractor.php index f833731..52a43d1 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/property-info/Extractor/PhpStanExtractor.php +++ b/htdocs/core/modules/facture/doc/vendor/symfony/property-info/Extractor/PhpStanExtractor.php @@ -11,6 +11,7 @@ namespace Symfony\Component\PropertyInfo\Extractor; +use phpDocumentor\Reflection\Types\ContextFactory; use PHPStan\PhpDocParser\Ast\PhpDoc\InvalidTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocNode; @@ -59,6 +60,14 @@ final class PhpStanExtractor implements PropertyTypeExtractorInterface, Construc */ public function __construct(array $mutatorPrefixes = null, array $accessorPrefixes = null, array $arrayMutatorPrefixes = null) { + if (!class_exists(ContextFactory::class)) { + throw new \LogicException(sprintf('Unable to use the "%s" class as the "phpdocumentor/type-resolver" package is not installed. Try running composer require "phpdocumentor/type-resolver".', __CLASS__)); + } + + if (!class_exists(PhpDocParser::class)) { + throw new \LogicException(sprintf('Unable to use the "%s" class as the "phpstan/phpdoc-parser" package is not installed. Try running composer require "phpstan/phpdoc-parser".', __CLASS__)); + } + $this->phpStanTypeHelper = new PhpStanTypeHelper(); $this->mutatorPrefixes = $mutatorPrefixes ?? ReflectionExtractor::$defaultMutatorPrefixes; $this->accessorPrefixes = $accessorPrefixes ?? ReflectionExtractor::$defaultAccessorPrefixes; diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/property-info/LICENSE b/htdocs/core/modules/facture/doc/vendor/symfony/property-info/LICENSE index 4e90b1b..6e3afce 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/property-info/LICENSE +++ b/htdocs/core/modules/facture/doc/vendor/symfony/property-info/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2022 Fabien Potencier +Copyright (c) 2015-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/property-info/Util/PhpDocTypeHelper.php b/htdocs/core/modules/facture/doc/vendor/symfony/property-info/Util/PhpDocTypeHelper.php index c4a2edb..2c858c3 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/property-info/Util/PhpDocTypeHelper.php +++ b/htdocs/core/modules/facture/doc/vendor/symfony/property-info/Util/PhpDocTypeHelper.php @@ -173,7 +173,7 @@ final class PhpDocTypeHelper case 'boolean': return 'bool'; - // real is not part of the PHPDoc standard, so we ignore it + // real is not part of the PHPDoc standard, so we ignore it case 'double': return 'float'; diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/string/AbstractUnicodeString.php b/htdocs/core/modules/facture/doc/vendor/symfony/string/AbstractUnicodeString.php index 1bc6f88..80b8326 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/string/AbstractUnicodeString.php +++ b/htdocs/core/modules/facture/doc/vendor/symfony/string/AbstractUnicodeString.php @@ -37,8 +37,8 @@ abstract class AbstractUnicodeString extends AbstractString private const ASCII = "\x20\x65\x69\x61\x73\x6E\x74\x72\x6F\x6C\x75\x64\x5D\x5B\x63\x6D\x70\x27\x0A\x67\x7C\x68\x76\x2E\x66\x62\x2C\x3A\x3D\x2D\x71\x31\x30\x43\x32\x2A\x79\x78\x29\x28\x4C\x39\x41\x53\x2F\x50\x22\x45\x6A\x4D\x49\x6B\x33\x3E\x35\x54\x3C\x44\x34\x7D\x42\x7B\x38\x46\x77\x52\x36\x37\x55\x47\x4E\x3B\x4A\x7A\x56\x23\x48\x4F\x57\x5F\x26\x21\x4B\x3F\x58\x51\x25\x59\x5C\x09\x5A\x2B\x7E\x5E\x24\x40\x60\x7F\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F"; // the subset of folded case mappings that is not in lower case mappings - private const FOLD_FROM = ['İ', 'µ', 'ſ', "\xCD\x85", 'ς', 'ϐ', 'ϑ', 'ϕ', 'ϖ', 'ϰ', 'ϱ', 'ϵ', 'ẛ', "\xE1\xBE\xBE", 'ß', 'İ', 'ʼn', 'ǰ', 'ΐ', 'ΰ', 'և', 'ẖ', 'ẗ', 'ẘ', 'ẙ', 'ẚ', 'ẞ', 'ὐ', 'ὒ', 'ὔ', 'ὖ', 'ᾀ', 'ᾁ', 'ᾂ', 'ᾃ', 'ᾄ', 'ᾅ', 'ᾆ', 'ᾇ', 'ᾈ', 'ᾉ', 'ᾊ', 'ᾋ', 'ᾌ', 'ᾍ', 'ᾎ', 'ᾏ', 'ᾐ', 'ᾑ', 'ᾒ', 'ᾓ', 'ᾔ', 'ᾕ', 'ᾖ', 'ᾗ', 'ᾘ', 'ᾙ', 'ᾚ', 'ᾛ', 'ᾜ', 'ᾝ', 'ᾞ', 'ᾟ', 'ᾠ', 'ᾡ', 'ᾢ', 'ᾣ', 'ᾤ', 'ᾥ', 'ᾦ', 'ᾧ', 'ᾨ', 'ᾩ', 'ᾪ', 'ᾫ', 'ᾬ', 'ᾭ', 'ᾮ', 'ᾯ', 'ᾲ', 'ᾳ', 'ᾴ', 'ᾶ', 'ᾷ', 'ᾼ', 'ῂ', 'ῃ', 'ῄ', 'ῆ', 'ῇ', 'ῌ', 'ῒ', 'ΐ', 'ῖ', 'ῗ', 'ῢ', 'ΰ', 'ῤ', 'ῦ', 'ῧ', 'ῲ', 'ῳ', 'ῴ', 'ῶ', 'ῷ', 'ῼ', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'ſt', 'st', 'ﬓ', 'ﬔ', 'ﬕ', 'ﬖ', 'ﬗ']; - private const FOLD_TO = ['i̇', 'μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', 'ṡ', 'ι', 'ss', 'i̇', 'ʼn', 'ǰ', 'ΐ', 'ΰ', 'եւ', 'ẖ', 'ẗ', 'ẘ', 'ẙ', 'aʾ', 'ss', 'ὐ', 'ὒ', 'ὔ', 'ὖ', 'ἀι', 'ἁι', 'ἂι', 'ἃι', 'ἄι', 'ἅι', 'ἆι', 'ἇι', 'ἀι', 'ἁι', 'ἂι', 'ἃι', 'ἄι', 'ἅι', 'ἆι', 'ἇι', 'ἠι', 'ἡι', 'ἢι', 'ἣι', 'ἤι', 'ἥι', 'ἦι', 'ἧι', 'ἠι', 'ἡι', 'ἢι', 'ἣι', 'ἤι', 'ἥι', 'ἦι', 'ἧι', 'ὠι', 'ὡι', 'ὢι', 'ὣι', 'ὤι', 'ὥι', 'ὦι', 'ὧι', 'ὠι', 'ὡι', 'ὢι', 'ὣι', 'ὤι', 'ὥι', 'ὦι', 'ὧι', 'ὰι', 'αι', 'άι', 'ᾶ', 'ᾶι', 'αι', 'ὴι', 'ηι', 'ήι', 'ῆ', 'ῆι', 'ηι', 'ῒ', 'ΐ', 'ῖ', 'ῗ', 'ῢ', 'ΰ', 'ῤ', 'ῦ', 'ῧ', 'ὼι', 'ωι', 'ώι', 'ῶ', 'ῶι', 'ωι', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'st', 'st', 'մն', 'մե', 'մի', 'վն', 'մխ']; + private const FOLD_FROM = ['İ', 'µ', 'ſ', "\xCD\x85", 'ς', 'ϐ', 'ϑ', 'ϕ', 'ϖ', 'ϰ', 'ϱ', 'ϵ', 'ẛ', "\xE1\xBE\xBE", 'ß', 'ʼn', 'ǰ', 'ΐ', 'ΰ', 'և', 'ẖ', 'ẗ', 'ẘ', 'ẙ', 'ẚ', 'ẞ', 'ὐ', 'ὒ', 'ὔ', 'ὖ', 'ᾀ', 'ᾁ', 'ᾂ', 'ᾃ', 'ᾄ', 'ᾅ', 'ᾆ', 'ᾇ', 'ᾈ', 'ᾉ', 'ᾊ', 'ᾋ', 'ᾌ', 'ᾍ', 'ᾎ', 'ᾏ', 'ᾐ', 'ᾑ', 'ᾒ', 'ᾓ', 'ᾔ', 'ᾕ', 'ᾖ', 'ᾗ', 'ᾘ', 'ᾙ', 'ᾚ', 'ᾛ', 'ᾜ', 'ᾝ', 'ᾞ', 'ᾟ', 'ᾠ', 'ᾡ', 'ᾢ', 'ᾣ', 'ᾤ', 'ᾥ', 'ᾦ', 'ᾧ', 'ᾨ', 'ᾩ', 'ᾪ', 'ᾫ', 'ᾬ', 'ᾭ', 'ᾮ', 'ᾯ', 'ᾲ', 'ᾳ', 'ᾴ', 'ᾶ', 'ᾷ', 'ᾼ', 'ῂ', 'ῃ', 'ῄ', 'ῆ', 'ῇ', 'ῌ', 'ῒ', 'ῖ', 'ῗ', 'ῢ', 'ῤ', 'ῦ', 'ῧ', 'ῲ', 'ῳ', 'ῴ', 'ῶ', 'ῷ', 'ῼ', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'ſt', 'st', 'ﬓ', 'ﬔ', 'ﬕ', 'ﬖ', 'ﬗ']; + private const FOLD_TO = ['i̇', 'μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', 'ṡ', 'ι', 'ss', 'ʼn', 'ǰ', 'ΐ', 'ΰ', 'եւ', 'ẖ', 'ẗ', 'ẘ', 'ẙ', 'aʾ', 'ss', 'ὐ', 'ὒ', 'ὔ', 'ὖ', 'ἀι', 'ἁι', 'ἂι', 'ἃι', 'ἄι', 'ἅι', 'ἆι', 'ἇι', 'ἀι', 'ἁι', 'ἂι', 'ἃι', 'ἄι', 'ἅι', 'ἆι', 'ἇι', 'ἠι', 'ἡι', 'ἢι', 'ἣι', 'ἤι', 'ἥι', 'ἦι', 'ἧι', 'ἠι', 'ἡι', 'ἢι', 'ἣι', 'ἤι', 'ἥι', 'ἦι', 'ἧι', 'ὠι', 'ὡι', 'ὢι', 'ὣι', 'ὤι', 'ὥι', 'ὦι', 'ὧι', 'ὠι', 'ὡι', 'ὢι', 'ὣι', 'ὤι', 'ὥι', 'ὦι', 'ὧι', 'ὰι', 'αι', 'άι', 'ᾶ', 'ᾶι', 'αι', 'ὴι', 'ηι', 'ήι', 'ῆ', 'ῆι', 'ηι', 'ῒ', 'ῖ', 'ῗ', 'ῢ', 'ῤ', 'ῦ', 'ῧ', 'ὼι', 'ωι', 'ώι', 'ῶ', 'ῶι', 'ωι', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'st', 'st', 'մն', 'մե', 'մի', 'վն', 'մխ']; // the subset of upper case mappings that map one code point to many code points private const UPPER_FROM = ['ß', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'ſt', 'st', 'և', 'ﬓ', 'ﬔ', 'ﬕ', 'ﬖ', 'ﬗ', 'ʼn', 'ΐ', 'ΰ', 'ǰ', 'ẖ', 'ẗ', 'ẘ', 'ẙ', 'ẚ', 'ὐ', 'ὒ', 'ὔ', 'ὖ', 'ᾶ', 'ῆ', 'ῒ', 'ΐ', 'ῖ', 'ῗ', 'ῢ', 'ΰ', 'ῤ', 'ῦ', 'ῧ', 'ῶ']; diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/string/LICENSE b/htdocs/core/modules/facture/doc/vendor/symfony/string/LICENSE index 9c907a4..f37c76b 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/string/LICENSE +++ b/htdocs/core/modules/facture/doc/vendor/symfony/string/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2019-2022 Fabien Potencier +Copyright (c) 2019-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/validator/Constraints/AtLeastOneOfValidator.php b/htdocs/core/modules/facture/doc/vendor/symfony/validator/Constraints/AtLeastOneOfValidator.php index 888f583..692b117 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/validator/Constraints/AtLeastOneOfValidator.php +++ b/htdocs/core/modules/facture/doc/vendor/symfony/validator/Constraints/AtLeastOneOfValidator.php @@ -31,7 +31,11 @@ class AtLeastOneOfValidator extends ConstraintValidator $validator = $this->context->getValidator(); - $messages = [$constraint->message]; + // Build a first violation to have the base message of the constraint translated + $baseMessageContext = clone $this->context; + $baseMessageContext->buildViolation($constraint->message)->addViolation(); + $baseViolations = $baseMessageContext->getViolations(); + $messages = [(string) $baseViolations->get(\count($baseViolations) - 1)->getMessage()]; foreach ($constraint->constraints as $key => $item) { if (!\in_array($this->context->getGroup(), $item->groups, true)) { diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/validator/Constraints/EmailValidator.php b/htdocs/core/modules/facture/doc/vendor/symfony/validator/Constraints/EmailValidator.php index ee78024..11fc7be 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/validator/Constraints/EmailValidator.php +++ b/htdocs/core/modules/facture/doc/vendor/symfony/validator/Constraints/EmailValidator.php @@ -16,6 +16,7 @@ use Egulias\EmailValidator\Validation\EmailValidation; use Egulias\EmailValidator\Validation\NoRFCWarningsValidation; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; +use Symfony\Component\Validator\Exception\LogicException; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; @@ -71,7 +72,7 @@ class EmailValidator extends ConstraintValidator if (null === $constraint->mode) { if (Email::VALIDATION_MODE_STRICT === $this->defaultMode && !class_exists(EguliasEmailValidator::class)) { - throw new LogicException(sprintf('The "egulias/email-validator" component is required to make the "%s" constraint default to strict mode.', EguliasEmailValidator::class)); + throw new LogicException(sprintf('The "egulias/email-validator" component is required to make the "%s" constraint default to strict mode.', Email::class)); } $constraint->mode = $this->defaultMode; diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/validator/Constraints/IbanValidator.php b/htdocs/core/modules/facture/doc/vendor/symfony/validator/Constraints/IbanValidator.php index 215eb16..173cb66 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/validator/Constraints/IbanValidator.php +++ b/htdocs/core/modules/facture/doc/vendor/symfony/validator/Constraints/IbanValidator.php @@ -20,8 +20,6 @@ use Symfony\Component\Validator\Exception\UnexpectedValueException; * @author Manuel Reinhard * @author Michael Schummel * @author Bernhard Schussek - * - * @see http://www.michael-schummel.de/2007/10/05/iban-prufung-mit-php/ */ class IbanValidator extends ConstraintValidator { @@ -34,107 +32,135 @@ class IbanValidator extends ConstraintValidator * a BBAN (Basic Bank Account Number) which has a fixed length per country and, * included within it, a bank identifier with a fixed position and a fixed length per country * - * @see https://www.swift.com/sites/default/files/resources/iban_registry.pdf + * @see Resources/bin/sync-iban-formats.php + * @see https://www.swift.com/swift-resource/11971/download?language=en + * @see https://en.wikipedia.org/wiki/International_Bank_Account_Number */ private const FORMATS = [ + // auto-generated 'AD' => 'AD\d{2}\d{4}\d{4}[\dA-Z]{12}', // Andorra - 'AE' => 'AE\d{2}\d{3}\d{16}', // United Arab Emirates + 'AE' => 'AE\d{2}\d{3}\d{16}', // United Arab Emirates (The) 'AL' => 'AL\d{2}\d{8}[\dA-Z]{16}', // Albania 'AO' => 'AO\d{2}\d{21}', // Angola 'AT' => 'AT\d{2}\d{5}\d{11}', // Austria - 'AX' => 'FI\d{2}\d{6}\d{7}\d{1}', // Aland Islands + 'AX' => 'FI\d{2}\d{3}\d{11}', // Finland 'AZ' => 'AZ\d{2}[A-Z]{4}[\dA-Z]{20}', // Azerbaijan 'BA' => 'BA\d{2}\d{3}\d{3}\d{8}\d{2}', // Bosnia and Herzegovina 'BE' => 'BE\d{2}\d{3}\d{7}\d{2}', // Belgium - 'BF' => 'BF\d{2}\d{23}', // Burkina Faso + 'BF' => 'BF\d{2}[\dA-Z]{2}\d{22}', // Burkina Faso 'BG' => 'BG\d{2}[A-Z]{4}\d{4}\d{2}[\dA-Z]{8}', // Bulgaria 'BH' => 'BH\d{2}[A-Z]{4}[\dA-Z]{14}', // Bahrain - 'BI' => 'BI\d{2}\d{12}', // Burundi - 'BJ' => 'BJ\d{2}[A-Z]{1}\d{23}', // Benin - 'BY' => 'BY\d{2}[\dA-Z]{4}\d{4}[\dA-Z]{16}', // Belarus - https://bank.codes/iban/structure/belarus/ - 'BL' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // Saint Barthelemy - 'BR' => 'BR\d{2}\d{8}\d{5}\d{10}[A-Z][\dA-Z]', // Brazil - 'CG' => 'CG\d{2}\d{23}', // Congo + 'BI' => 'BI\d{2}\d{5}\d{5}\d{11}\d{2}', // Burundi + 'BJ' => 'BJ\d{2}[\dA-Z]{2}\d{22}', // Benin + 'BL' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France + 'BR' => 'BR\d{2}\d{8}\d{5}\d{10}[A-Z]{1}[\dA-Z]{1}', // Brazil + 'BY' => 'BY\d{2}[\dA-Z]{4}\d{4}[\dA-Z]{16}', // Republic of Belarus + 'CF' => 'CF\d{2}\d{23}', // Central African Republic + 'CG' => 'CG\d{2}\d{23}', // Congo, Republic of the 'CH' => 'CH\d{2}\d{5}[\dA-Z]{12}', // Switzerland - 'CI' => 'CI\d{2}[A-Z]{1}\d{23}', // Ivory Coast - 'CM' => 'CM\d{2}\d{23}', // Cameron - 'CR' => 'CR\d{2}0\d{3}\d{14}', // Costa Rica - 'CV' => 'CV\d{2}\d{21}', // Cape Verde + 'CI' => 'CI\d{2}[A-Z]{1}\d{23}', // Côte d'Ivoire + 'CM' => 'CM\d{2}\d{23}', // Cameroon + 'CR' => 'CR\d{2}\d{4}\d{14}', // Costa Rica + 'CV' => 'CV\d{2}\d{21}', // Cabo Verde 'CY' => 'CY\d{2}\d{3}\d{5}[\dA-Z]{16}', // Cyprus - 'CZ' => 'CZ\d{2}\d{20}', // Czech Republic + 'CZ' => 'CZ\d{2}\d{4}\d{6}\d{10}', // Czechia 'DE' => 'DE\d{2}\d{8}\d{10}', // Germany + 'DJ' => 'DJ\d{2}\d{5}\d{5}\d{11}\d{2}', // Djibouti + 'DK' => 'DK\d{2}\d{4}\d{9}\d{1}', // Denmark 'DO' => 'DO\d{2}[\dA-Z]{4}\d{20}', // Dominican Republic - 'DK' => 'DK\d{2}\d{4}\d{10}', // Denmark - 'DZ' => 'DZ\d{2}\d{20}', // Algeria + 'DZ' => 'DZ\d{2}\d{22}', // Algeria 'EE' => 'EE\d{2}\d{2}\d{2}\d{11}\d{1}', // Estonia - 'ES' => 'ES\d{2}\d{4}\d{4}\d{1}\d{1}\d{10}', // Spain (also includes Canary Islands, Ceuta and Melilla) - 'FI' => 'FI\d{2}\d{6}\d{7}\d{1}', // Finland + 'EG' => 'EG\d{2}\d{4}\d{4}\d{17}', // Egypt + 'ES' => 'ES\d{2}\d{4}\d{4}\d{1}\d{1}\d{10}', // Spain + 'FI' => 'FI\d{2}\d{3}\d{11}', // Finland 'FO' => 'FO\d{2}\d{4}\d{9}\d{1}', // Faroe Islands 'FR' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France - 'GF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // French Guyana - 'GB' => 'GB\d{2}[A-Z]{4}\d{6}\d{8}', // United Kingdom of Great Britain and Northern Ireland + 'GA' => 'GA\d{2}\d{23}', // Gabon + 'GB' => 'GB\d{2}[A-Z]{4}\d{6}\d{8}', // United Kingdom 'GE' => 'GE\d{2}[A-Z]{2}\d{16}', // Georgia + 'GF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France + 'GG' => 'GB\d{2}[A-Z]{4}\d{6}\d{8}', // United Kingdom 'GI' => 'GI\d{2}[A-Z]{4}[\dA-Z]{15}', // Gibraltar 'GL' => 'GL\d{2}\d{4}\d{9}\d{1}', // Greenland - 'GP' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // Guadeloupe + 'GP' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France + 'GQ' => 'GQ\d{2}\d{23}', // Equatorial Guinea 'GR' => 'GR\d{2}\d{3}\d{4}[\dA-Z]{16}', // Greece 'GT' => 'GT\d{2}[\dA-Z]{4}[\dA-Z]{20}', // Guatemala + 'GW' => 'GW\d{2}[\dA-Z]{2}\d{19}', // Guinea-Bissau + 'HN' => 'HN\d{2}[A-Z]{4}\d{20}', // Honduras 'HR' => 'HR\d{2}\d{7}\d{10}', // Croatia 'HU' => 'HU\d{2}\d{3}\d{4}\d{1}\d{15}\d{1}', // Hungary 'IE' => 'IE\d{2}[A-Z]{4}\d{6}\d{8}', // Ireland 'IL' => 'IL\d{2}\d{3}\d{3}\d{13}', // Israel + 'IM' => 'GB\d{2}[A-Z]{4}\d{6}\d{8}', // United Kingdom + 'IQ' => 'IQ\d{2}[A-Z]{4}\d{3}\d{12}', // Iraq 'IR' => 'IR\d{2}\d{22}', // Iran 'IS' => 'IS\d{2}\d{4}\d{2}\d{6}\d{10}', // Iceland 'IT' => 'IT\d{2}[A-Z]{1}\d{5}\d{5}[\dA-Z]{12}', // Italy + 'JE' => 'GB\d{2}[A-Z]{4}\d{6}\d{8}', // United Kingdom 'JO' => 'JO\d{2}[A-Z]{4}\d{4}[\dA-Z]{18}', // Jordan - 'KW' => 'KW\d{2}[A-Z]{4}\d{22}', // KUWAIT + 'KM' => 'KM\d{2}\d{23}', // Comoros + 'KW' => 'KW\d{2}[A-Z]{4}[\dA-Z]{22}', // Kuwait 'KZ' => 'KZ\d{2}\d{3}[\dA-Z]{13}', // Kazakhstan - 'LB' => 'LB\d{2}\d{4}[\dA-Z]{20}', // LEBANON - 'LI' => 'LI\d{2}\d{5}[\dA-Z]{12}', // Liechtenstein (Principality of) + 'LB' => 'LB\d{2}\d{4}[\dA-Z]{20}', // Lebanon + 'LC' => 'LC\d{2}[A-Z]{4}[\dA-Z]{24}', // Saint Lucia + 'LI' => 'LI\d{2}\d{5}[\dA-Z]{12}', // Liechtenstein 'LT' => 'LT\d{2}\d{5}\d{11}', // Lithuania 'LU' => 'LU\d{2}\d{3}[\dA-Z]{13}', // Luxembourg 'LV' => 'LV\d{2}[A-Z]{4}[\dA-Z]{13}', // Latvia + 'LY' => 'LY\d{2}\d{3}\d{3}\d{15}', // Libya + 'MA' => 'MA\d{2}\d{24}', // Morocco 'MC' => 'MC\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // Monaco 'MD' => 'MD\d{2}[\dA-Z]{2}[\dA-Z]{18}', // Moldova 'ME' => 'ME\d{2}\d{3}\d{13}\d{2}', // Montenegro - 'MF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // Saint Martin (French part) + 'MF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'MG' => 'MG\d{2}\d{23}', // Madagascar - 'MK' => 'MK\d{2}\d{3}[\dA-Z]{10}\d{2}', // Macedonia, Former Yugoslav Republic of - 'ML' => 'ML\d{2}[A-Z]{1}\d{23}', // Mali - 'MQ' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // Martinique + 'MK' => 'MK\d{2}\d{3}[\dA-Z]{10}\d{2}', // Macedonia + 'ML' => 'ML\d{2}[\dA-Z]{2}\d{22}', // Mali + 'MQ' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'MR' => 'MR\d{2}\d{5}\d{5}\d{11}\d{2}', // Mauritania 'MT' => 'MT\d{2}[A-Z]{4}\d{5}[\dA-Z]{18}', // Malta 'MU' => 'MU\d{2}[A-Z]{4}\d{2}\d{2}\d{12}\d{3}[A-Z]{3}', // Mauritius 'MZ' => 'MZ\d{2}\d{21}', // Mozambique - 'NC' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // New Caledonia - 'NL' => 'NL\d{2}[A-Z]{4}\d{10}', // The Netherlands + 'NC' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France + 'NE' => 'NE\d{2}[A-Z]{2}\d{22}', // Niger + 'NI' => 'NI\d{2}[A-Z]{4}\d{24}', // Nicaragua + 'NL' => 'NL\d{2}[A-Z]{4}\d{10}', // Netherlands (The) 'NO' => 'NO\d{2}\d{4}\d{6}\d{1}', // Norway - 'PF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // French Polynesia + 'PF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'PK' => 'PK\d{2}[A-Z]{4}[\dA-Z]{16}', // Pakistan 'PL' => 'PL\d{2}\d{8}\d{16}', // Poland - 'PM' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // Saint Pierre et Miquelon + 'PM' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'PS' => 'PS\d{2}[A-Z]{4}[\dA-Z]{21}', // Palestine, State of - 'PT' => 'PT\d{2}\d{4}\d{4}\d{11}\d{2}', // Portugal (plus Azores and Madeira) + 'PT' => 'PT\d{2}\d{4}\d{4}\d{11}\d{2}', // Portugal 'QA' => 'QA\d{2}[A-Z]{4}[\dA-Z]{21}', // Qatar - 'RE' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // Reunion + 'RE' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France 'RO' => 'RO\d{2}[A-Z]{4}[\dA-Z]{16}', // Romania 'RS' => 'RS\d{2}\d{3}\d{13}\d{2}', // Serbia + 'RU' => 'RU\d{2}\d{9}\d{5}[\dA-Z]{15}', // Russia 'SA' => 'SA\d{2}\d{2}[\dA-Z]{18}', // Saudi Arabia + 'SC' => 'SC\d{2}[A-Z]{4}\d{2}\d{2}\d{16}[A-Z]{3}', // Seychelles + 'SD' => 'SD\d{2}\d{2}\d{12}', // Sudan 'SE' => 'SE\d{2}\d{3}\d{16}\d{1}', // Sweden 'SI' => 'SI\d{2}\d{5}\d{8}\d{2}', // Slovenia - 'SK' => 'SK\d{2}\d{4}\d{6}\d{10}', // Slovak Republic + 'SK' => 'SK\d{2}\d{4}\d{6}\d{10}', // Slovakia 'SM' => 'SM\d{2}[A-Z]{1}\d{5}\d{5}[\dA-Z]{12}', // San Marino - 'SN' => 'SN\d{2}[A-Z]{1}\d{23}', // Senegal - 'TF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // French Southern Territories + 'SN' => 'SN\d{2}[A-Z]{2}\d{22}', // Senegal + 'SO' => 'SO\d{2}\d{4}\d{3}\d{12}', // Somalia + 'ST' => 'ST\d{2}\d{4}\d{4}\d{11}\d{2}', // Sao Tome and Principe + 'SV' => 'SV\d{2}[A-Z]{4}\d{20}', // El Salvador + 'TD' => 'TD\d{2}\d{23}', // Chad + 'TF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France + 'TG' => 'TG\d{2}[A-Z]{2}\d{22}', // Togo 'TL' => 'TL\d{2}\d{3}\d{14}\d{2}', // Timor-Leste 'TN' => 'TN\d{2}\d{2}\d{3}\d{13}\d{2}', // Tunisia - 'TR' => 'TR\d{2}\d{5}[\dA-Z]{1}[\dA-Z]{16}', // Turkey + 'TR' => 'TR\d{2}\d{5}\d{1}[\dA-Z]{16}', // Turkey 'UA' => 'UA\d{2}\d{6}[\dA-Z]{19}', // Ukraine 'VA' => 'VA\d{2}\d{3}\d{15}', // Vatican City State - 'VG' => 'VG\d{2}[A-Z]{4}\d{16}', // Virgin Islands, British - 'WF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // Wallis and Futuna Islands - 'XK' => 'XK\d{2}\d{4}\d{10}\d{2}', // Republic of Kosovo - 'YT' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // Mayotte + 'VG' => 'VG\d{2}[A-Z]{4}\d{16}', // Virgin Islands + 'WF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France + 'XK' => 'XK\d{2}\d{4}\d{10}\d{2}', // Kosovo + 'YT' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // France ]; /** diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/validator/LICENSE b/htdocs/core/modules/facture/doc/vendor/symfony/validator/LICENSE index 88bf75b..0138f8f 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/validator/LICENSE +++ b/htdocs/core/modules/facture/doc/vendor/symfony/validator/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2022 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/validator/Test/ConstraintValidatorTestCase.php b/htdocs/core/modules/facture/doc/vendor/symfony/validator/Test/ConstraintValidatorTestCase.php index bee4639..073dd17 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/validator/Test/ConstraintValidatorTestCase.php +++ b/htdocs/core/modules/facture/doc/vendor/symfony/validator/Test/ConstraintValidatorTestCase.php @@ -130,16 +130,22 @@ abstract class ConstraintValidatorTestCase extends TestCase $context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath); $context->setConstraint($this->constraint); - $contextualValidator = $this->getMockBuilder(AssertingContextualValidator::class) - ->setConstructorArgs([$context]) - ->setMethods([ - 'atPath', - 'validate', - 'validateProperty', - 'validatePropertyValue', - 'getViolations', - ]) - ->getMock(); + $contextualValidatorMockBuilder = $this->getMockBuilder(AssertingContextualValidator::class) + ->setConstructorArgs([$context]); + $contextualValidatorMethods = [ + 'atPath', + 'validate', + 'validateProperty', + 'validatePropertyValue', + 'getViolations', + ]; + // PHPUnit 10 removed MockBuilder::setMethods() + if (method_exists($contextualValidatorMockBuilder, 'onlyMethods')) { + $contextualValidatorMockBuilder->onlyMethods($contextualValidatorMethods); + } else { + $contextualValidatorMockBuilder->setMethods($contextualValidatorMethods); + } + $contextualValidator = $contextualValidatorMockBuilder->getMock(); $contextualValidator->expects($this->any()) ->method('atPath') ->willReturnCallback(function ($path) use ($contextualValidator) { diff --git a/htdocs/core/modules/facture/doc/vendor/symfony/validator/composer.json b/htdocs/core/modules/facture/doc/vendor/symfony/validator/composer.json index 4799c7b..019a46f 100644 --- a/htdocs/core/modules/facture/doc/vendor/symfony/validator/composer.json +++ b/htdocs/core/modules/facture/doc/vendor/symfony/validator/composer.json @@ -43,7 +43,7 @@ "symfony/translation": "^4.4|^5.0|^6.0", "doctrine/annotations": "^1.13|^2", "doctrine/cache": "^1.11|^2.0", - "egulias/email-validator": "^2.1.10|^3" + "egulias/email-validator": "^2.1.10|^3|^4" }, "conflict": { "doctrine/annotations": "<1.13",