From c386b5a8e10e4f92351a6fb8ad4c8ab007121709 Mon Sep 17 00:00:00 2001 From: Toby Bellwood Date: Wed, 24 Jul 2024 17:40:17 +1000 Subject: [PATCH 1/8] tests: initial drupal rework --- Jenkinsfile | 6 +- tests/files/drupal-base/.dockerignore | 3 + tests/files/drupal-base/.gitignore | 27 + tests/files/drupal-base/.lagoon.yml | 42 + tests/files/drupal-base/LICENSE | 339 + .../files/drupal-base/assets/all.settings.php | 29 + .../files/drupal-base/assets/lagoon.site.yml | 8 + tests/files/drupal-base/composer.json | 76 + tests/files/drupal-base/composer.lock | 11679 ++++++++++++++++ tests/files/drupal-base/config/sync/.gitkeep | 0 tests/files/drupal-base/config/sync/.htaccess | 24 + tests/files/drupal-base/docker-compose.yml | 63 + tests/files/drupal-base/lagoon/cli.dockerfile | 13 + .../drupal-base/lagoon/mariadb.dockerfile | 3 + .../lagoon}/nginx.dockerfile | 0 tests/files/drupal-base/lagoon/php.dockerfile | 8 + .../drupal9-mariadb-single/docker-compose.yml | 8 +- .../cli.dockerfile} | 0 .../{ => lagoon}/mariadb.dockerfile | 0 .../lagoon/nginx.dockerfile | 10 + .../{ => lagoon}/php.dockerfile | 0 tests/tests/drupal/drush-la.yaml | 6 +- tests/tests/drush.yaml | 32 +- 23 files changed, 12349 insertions(+), 27 deletions(-) create mode 100644 tests/files/drupal-base/.dockerignore create mode 100644 tests/files/drupal-base/.gitignore create mode 100644 tests/files/drupal-base/.lagoon.yml create mode 100644 tests/files/drupal-base/LICENSE create mode 100644 tests/files/drupal-base/assets/all.settings.php create mode 100644 tests/files/drupal-base/assets/lagoon.site.yml create mode 100644 tests/files/drupal-base/composer.json create mode 100644 tests/files/drupal-base/composer.lock create mode 100644 tests/files/drupal-base/config/sync/.gitkeep create mode 100644 tests/files/drupal-base/config/sync/.htaccess create mode 100644 tests/files/drupal-base/docker-compose.yml create mode 100644 tests/files/drupal-base/lagoon/cli.dockerfile create mode 100644 tests/files/drupal-base/lagoon/mariadb.dockerfile rename tests/files/{drupal9-mariadb-single => drupal-base/lagoon}/nginx.dockerfile (100%) create mode 100644 tests/files/drupal-base/lagoon/php.dockerfile rename tests/files/drupal9-mariadb-single/{builder.dockerfile => lagoon/cli.dockerfile} (100%) rename tests/files/drupal9-mariadb-single/{ => lagoon}/mariadb.dockerfile (100%) create mode 100644 tests/files/drupal9-mariadb-single/lagoon/nginx.dockerfile rename tests/files/drupal9-mariadb-single/{ => lagoon}/php.dockerfile (100%) diff --git a/Jenkinsfile b/Jenkinsfile index 0130585f0d..ffa5bb8802 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -90,8 +90,12 @@ pipeline { steps { sh script: "make -j$NPROC local-dev/k3d", label: "Configure k3d" sh script: "./local-dev/k3d cluster delete --all", label: "Delete any remnant clusters" - sh script: "make -j$NPROC k3d/test TESTS=[nginx] BRANCH_NAME=${SAFEBRANCH_NAME}", label: "Setup cluster and run nginx smoketest" + sh script: "make -j$NPROC k3d/test TESTS=[drush] BRANCH_NAME=${SAFEBRANCH_NAME}", label: "Setup cluster and run nginx smoketest" sh script: "pkill -f './local-dev/stern'", label: "Closing off test-suite-0 log after test completion" + script { + skipRemainingStages = true + echo "Drush only test, no further tests." + } } } stage ('collect logs') { diff --git a/tests/files/drupal-base/.dockerignore b/tests/files/drupal-base/.dockerignore new file mode 100644 index 0000000000..1972606e6e --- /dev/null +++ b/tests/files/drupal-base/.dockerignore @@ -0,0 +1,3 @@ +.git +vendor +web/sites/default/files diff --git a/tests/files/drupal-base/.gitignore b/tests/files/drupal-base/.gitignore new file mode 100644 index 0000000000..dee87a83af --- /dev/null +++ b/tests/files/drupal-base/.gitignore @@ -0,0 +1,27 @@ +# Ignore directories generated by Composer +/.drush-lock-update +/drush/Commands/contrib/ +/drush/sites/lagoon.site.yml +/vendor/ +/web + +# Ignore directories generated by yarn +/node_modules/ +/test/ +/yarn.lock +/package.json + +# Ignore Drupal's file directory +/web/sites/*/files/ + +# Ingore files that are only for the current local environment +web/sites/*/settings.local.php +web/sites/*/services.local.yml + +# Ignore SimpleTest multi-site environment. +web/sites/simpletest + +# Ignore files generated by PhpStorm +/.idea/ +/.editorconfig +/.gitattributes diff --git a/tests/files/drupal-base/.lagoon.yml b/tests/files/drupal-base/.lagoon.yml new file mode 100644 index 0000000000..8024760caa --- /dev/null +++ b/tests/files/drupal-base/.lagoon.yml @@ -0,0 +1,42 @@ +docker-compose-yaml: docker-compose.yml + +ssh: lagoon-core-ssh-token.lagoon-core.svc.cluster.local:2223 +api: http://lagoon-core-api.lagoon-core.svc:80/graphql + +environment_variables: + git_sha: 'true' + +tasks: + post-rollout: + - run: + name: env variables + command: env + service: cli + - run: + name: IF no Drupal installed, install Drupal + command: | + cd web + drush si -y minimal + # set the sitename to the current SHA and BRANCH + drush -y cset system.site name "LAGOON_GIT_SHA=$LAGOON_GIT_SHA LAGOON_GIT_BRANCH=$LAGOON_GIT_BRANCH" + service: cli + shell: bash + - run: + name: drush cr + command: cd web && drush -y cr + service: cli + +environments: + master: + routes: + - nginx: + - "domain.com": + tls-acme: 'true' + insecure: Allow + - www.domain.com + + cronjobs: + - name: drush cron + schedule: "1 * * * *" + command: drush cron + service: cli diff --git a/tests/files/drupal-base/LICENSE b/tests/files/drupal-base/LICENSE new file mode 100644 index 0000000000..23cb790338 --- /dev/null +++ b/tests/files/drupal-base/LICENSE @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {description} + Copyright (C) {year} {fullname} + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + {signature of Ty Coon}, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/tests/files/drupal-base/assets/all.settings.php b/tests/files/drupal-base/assets/all.settings.php new file mode 100644 index 0000000000..c688430b9c --- /dev/null +++ b/tests/files/drupal-base/assets/all.settings.php @@ -0,0 +1,29 @@ +=8.1.0", + "psr/event-dispatcher": "^1.0", + "psr/log": "^3.0", + "symfony/console": "^6.3", + "symfony/dependency-injection": "^6.3.2", + "symfony/filesystem": "^6.3", + "symfony/string": "^6.3", + "twig/twig": "^3.4" + }, + "conflict": { + "squizlabs/php_codesniffer": "<3.6" + }, + "require-dev": { + "chi-teck/drupal-coder-extension": "^2.0.0-beta3", + "drupal/coder": "8.3.23", + "drupal/core": "10.3.x-dev", + "ext-simplexml": "*", + "phpspec/prophecy-phpunit": "^2.2", + "phpunit/phpunit": "^9.6", + "squizlabs/php_codesniffer": "^3.9", + "symfony/var-dumper": "^6.4", + "symfony/yaml": "^6.3", + "vimeo/psalm": "^5.22.2" + }, + "bin": [ + "bin/dcg" + ], + "type": "library", + "autoload": { + "psr-4": { + "DrupalCodeGenerator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "description": "Drupal code generator", + "support": { + "issues": "https://github.com/Chi-teck/drupal-code-generator/issues", + "source": "https://github.com/Chi-teck/drupal-code-generator/tree/3.5.0" + }, + "time": "2024-04-11T11:23:44+00:00" + }, + { + "name": "composer/installers", + "version": "v2.3.0", + "source": { + "type": "git", + "url": "https://github.com/composer/installers.git", + "reference": "12fb2dfe5e16183de69e784a7b84046c43d97e8e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/installers/zipball/12fb2dfe5e16183de69e784a7b84046c43d97e8e", + "reference": "12fb2dfe5e16183de69e784a7b84046c43d97e8e", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "composer/composer": "^1.10.27 || ^2.7", + "composer/semver": "^1.7.2 || ^3.4.0", + "phpstan/phpstan": "^1.11", + "phpstan/phpstan-phpunit": "^1", + "symfony/phpunit-bridge": "^7.1.1", + "symfony/process": "^5 || ^6 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "Composer\\Installers\\Plugin", + "branch-alias": { + "dev-main": "2.x-dev" + }, + "plugin-modifies-install-path": true + }, + "autoload": { + "psr-4": { + "Composer\\Installers\\": "src/Composer/Installers" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kyle Robinson Young", + "email": "kyle@dontkry.com", + "homepage": "https://github.com/shama" + } + ], + "description": "A multi-framework Composer library installer", + "homepage": "https://composer.github.io/installers/", + "keywords": [ + "Dolibarr", + "Eliasis", + "Hurad", + "ImageCMS", + "Kanboard", + "Lan Management System", + "MODX Evo", + "MantisBT", + "Mautic", + "Maya", + "OXID", + "Plentymarkets", + "Porto", + "RadPHP", + "SMF", + "Starbug", + "Thelia", + "Whmcs", + "WolfCMS", + "agl", + "annotatecms", + "attogram", + "bitrix", + "cakephp", + "chef", + "cockpit", + "codeigniter", + "concrete5", + "concreteCMS", + "croogo", + "dokuwiki", + "drupal", + "eZ Platform", + "elgg", + "expressionengine", + "fuelphp", + "grav", + "installer", + "itop", + "known", + "kohana", + "laravel", + "lavalite", + "lithium", + "magento", + "majima", + "mako", + "matomo", + "mediawiki", + "miaoxing", + "modulework", + "modx", + "moodle", + "osclass", + "pantheon", + "phpbb", + "piwik", + "ppi", + "processwire", + "puppet", + "pxcms", + "reindex", + "roundcube", + "shopware", + "silverstripe", + "sydes", + "sylius", + "tastyigniter", + "wordpress", + "yawik", + "zend", + "zikula" + ], + "support": { + "issues": "https://github.com/composer/installers/issues", + "source": "https://github.com/composer/installers/tree/v2.3.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-06-24T20:46:46+00:00" + }, + { + "name": "composer/semver", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2023-08-31T09:50:34+00:00" + }, + { + "name": "consolidation/annotated-command", + "version": "4.10.0", + "source": { + "type": "git", + "url": "https://github.com/consolidation/annotated-command.git", + "reference": "1e830ba908c9ffb1ba7ca056203531b27188812c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/1e830ba908c9ffb1ba7ca056203531b27188812c", + "reference": "1e830ba908c9ffb1ba7ca056203531b27188812c", + "shasum": "" + }, + "require": { + "consolidation/output-formatters": "^4.3.1", + "php": ">=7.1.3", + "psr/log": "^1 || ^2 || ^3", + "symfony/console": "^4.4.8 || ^5 || ^6 || ^7", + "symfony/event-dispatcher": "^4.4.8 || ^5 || ^6 || ^7", + "symfony/finder": "^4.4.8 || ^5 || ^6 || ^7" + }, + "require-dev": { + "composer-runtime-api": "^2.0", + "phpunit/phpunit": "^7.5.20 || ^8 || ^9", + "squizlabs/php_codesniffer": "^3", + "yoast/phpunit-polyfills": "^0.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Consolidation\\AnnotatedCommand\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Initialize Symfony Console commands from annotated command class methods.", + "support": { + "issues": "https://github.com/consolidation/annotated-command/issues", + "source": "https://github.com/consolidation/annotated-command/tree/4.10.0" + }, + "time": "2024-04-05T21:05:39+00:00" + }, + { + "name": "consolidation/config", + "version": "2.1.2", + "source": { + "type": "git", + "url": "https://github.com/consolidation/config.git", + "reference": "597f8d7fbeef801736250ec10c3e190569b1b0ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/config/zipball/597f8d7fbeef801736250ec10c3e190569b1b0ae", + "reference": "597f8d7fbeef801736250ec10c3e190569b1b0ae", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^1.1.0 || ^2 || ^3", + "grasmash/expander": "^2.0.1 || ^3", + "php": ">=7.1.3", + "symfony/event-dispatcher": "^4 || ^5 || ^6" + }, + "require-dev": { + "ext-json": "*", + "phpunit/phpunit": ">=7.5.20", + "squizlabs/php_codesniffer": "^3", + "symfony/console": "^4 || ^5 || ^6", + "symfony/yaml": "^4 || ^5 || ^6", + "yoast/phpunit-polyfills": "^1" + }, + "suggest": { + "symfony/event-dispatcher": "Required to inject configuration into Command options", + "symfony/yaml": "Required to use Consolidation\\Config\\Loader\\YamlConfigLoader" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Consolidation\\Config\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Provide configuration services for a commandline tool.", + "support": { + "issues": "https://github.com/consolidation/config/issues", + "source": "https://github.com/consolidation/config/tree/2.1.2" + }, + "time": "2022-10-06T17:48:03+00:00" + }, + { + "name": "consolidation/filter-via-dot-access-data", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/consolidation/filter-via-dot-access-data.git", + "reference": "cb2eeba41f8e2e3c61698a5cf70ef048ff6c9d5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/filter-via-dot-access-data/zipball/cb2eeba41f8e2e3c61698a5cf70ef048ff6c9d5b", + "reference": "cb2eeba41f8e2e3c61698a5cf70ef048ff6c9d5b", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^1.1.0 || ^2.0.0 || ^3.0.0", + "php": ">=7.1.3" + }, + "require-dev": { + "phpunit/phpunit": "^7.5.20 || ^8 || ^9", + "squizlabs/php_codesniffer": "^3", + "yoast/phpunit-polyfills": "^0.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Consolidation\\Filter\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "This project uses dflydev/dot-access-data to provide simple output filtering for applications built with annotated-command / Robo.", + "support": { + "source": "https://github.com/consolidation/filter-via-dot-access-data/tree/2.0.2" + }, + "time": "2021-12-30T03:56:08+00:00" + }, + { + "name": "consolidation/log", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/consolidation/log.git", + "reference": "c27a3beb36137c141ccbce0d89f64befb243c015" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/log/zipball/c27a3beb36137c141ccbce0d89f64befb243c015", + "reference": "c27a3beb36137c141ccbce0d89f64befb243c015", + "shasum": "" + }, + "require": { + "php": ">=8.0.0", + "psr/log": "^3", + "symfony/console": "^5 || ^6 || ^7" + }, + "require-dev": { + "phpunit/phpunit": "^7.5.20 || ^8 || ^9", + "squizlabs/php_codesniffer": "^3", + "yoast/phpunit-polyfills": "^0.2.0" + }, + "type": "library", + "extra": { + "platform": { + "php": "8.2.17" + } + }, + "autoload": { + "psr-4": { + "Consolidation\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Improved Psr-3 / Psr\\Log logger based on Symfony Console components.", + "support": { + "issues": "https://github.com/consolidation/log/issues", + "source": "https://github.com/consolidation/log/tree/3.1.0" + }, + "time": "2024-04-04T23:50:25+00:00" + }, + { + "name": "consolidation/output-formatters", + "version": "4.5.0", + "source": { + "type": "git", + "url": "https://github.com/consolidation/output-formatters.git", + "reference": "7a611b01eb48eb19cd54672339fc08c0985bf540" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/7a611b01eb48eb19cd54672339fc08c0985bf540", + "reference": "7a611b01eb48eb19cd54672339fc08c0985bf540", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^1.1.0 || ^2 || ^3", + "php": ">=7.1.3", + "symfony/console": "^4 || ^5 || ^6 || ^7", + "symfony/finder": "^4 || ^5 || ^6 || ^7" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.4.2", + "phpunit/phpunit": "^7 || ^8 || ^9", + "squizlabs/php_codesniffer": "^3", + "symfony/var-dumper": "^4 || ^5 || ^6 || ^7", + "symfony/yaml": "^4 || ^5 || ^6 || ^7", + "yoast/phpunit-polyfills": "^1" + }, + "suggest": { + "symfony/var-dumper": "For using the var_dump formatter" + }, + "type": "library", + "autoload": { + "psr-4": { + "Consolidation\\OutputFormatters\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Format text by applying transformations provided by plug-in formatters.", + "support": { + "issues": "https://github.com/consolidation/output-formatters/issues", + "source": "https://github.com/consolidation/output-formatters/tree/4.5.0" + }, + "time": "2024-04-02T15:18:52+00:00" + }, + { + "name": "consolidation/robo", + "version": "4.0.6", + "source": { + "type": "git", + "url": "https://github.com/consolidation/robo.git", + "reference": "55a272370940607649e5c46eb173c5c54f7c166d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/robo/zipball/55a272370940607649e5c46eb173c5c54f7c166d", + "reference": "55a272370940607649e5c46eb173c5c54f7c166d", + "shasum": "" + }, + "require": { + "consolidation/annotated-command": "^4.8.1", + "consolidation/config": "^2.0.1", + "consolidation/log": "^2.0.2 || ^3", + "consolidation/output-formatters": "^4.1.2", + "consolidation/self-update": "^2.0", + "league/container": "^3.3.1 || ^4.0", + "php": ">=8.0", + "phpowermove/docblock": "^4.0", + "symfony/console": "^6", + "symfony/event-dispatcher": "^6", + "symfony/filesystem": "^6", + "symfony/finder": "^6", + "symfony/process": "^6", + "symfony/yaml": "^6" + }, + "conflict": { + "codegyre/robo": "*" + }, + "require-dev": { + "natxet/cssmin": "3.0.4", + "patchwork/jsqueeze": "^2", + "pear/archive_tar": "^1.4.4", + "phpunit/phpunit": "^7.5.20 || ^8", + "squizlabs/php_codesniffer": "^3.6", + "yoast/phpunit-polyfills": "^0.2.0" + }, + "suggest": { + "natxet/cssmin": "For minifying CSS files in taskMinify", + "patchwork/jsqueeze": "For minifying JS files in taskMinify", + "pear/archive_tar": "Allows tar archives to be created and extracted in taskPack and taskExtract, respectively.", + "totten/lurkerlite": "For monitoring filesystem changes in taskWatch" + }, + "bin": [ + "robo" + ], + "type": "library", + "autoload": { + "psr-4": { + "Robo\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Davert", + "email": "davert.php@resend.cc" + } + ], + "description": "Modern task runner", + "support": { + "issues": "https://github.com/consolidation/robo/issues", + "source": "https://github.com/consolidation/robo/tree/4.0.6" + }, + "time": "2023-04-30T21:49:04+00:00" + }, + { + "name": "consolidation/self-update", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/consolidation/self-update.git", + "reference": "972a1016761c9b63314e040836a12795dff6953a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/self-update/zipball/972a1016761c9b63314e040836a12795dff6953a", + "reference": "972a1016761c9b63314e040836a12795dff6953a", + "shasum": "" + }, + "require": { + "composer/semver": "^3.2", + "php": ">=5.5.0", + "symfony/console": "^2.8 || ^3 || ^4 || ^5 || ^6", + "symfony/filesystem": "^2.5 || ^3 || ^4 || ^5 || ^6" + }, + "bin": [ + "scripts/release" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "SelfUpdate\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alexander Menk", + "email": "menk@mestrona.net" + }, + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Provides a self:update command for Symfony Console applications.", + "support": { + "issues": "https://github.com/consolidation/self-update/issues", + "source": "https://github.com/consolidation/self-update/tree/2.2.0" + }, + "time": "2023-03-18T01:37:41+00:00" + }, + { + "name": "consolidation/site-alias", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/consolidation/site-alias.git", + "reference": "1056ceb93f6aafe6f7600d7bbe1b62b8488abccf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/site-alias/zipball/1056ceb93f6aafe6f7600d7bbe1b62b8488abccf", + "reference": "1056ceb93f6aafe6f7600d7bbe1b62b8488abccf", + "shasum": "" + }, + "require": { + "consolidation/config": "^1.2.1 || ^2 || ^3", + "php": ">=7.4", + "symfony/filesystem": "^5.4 || ^6 || ^7", + "symfony/finder": "^5 || ^6 || ^7" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.4.2", + "phpunit/phpunit": ">=7", + "squizlabs/php_codesniffer": "^3", + "symfony/var-dumper": "^4", + "yoast/phpunit-polyfills": "^0.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Consolidation\\SiteAlias\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + }, + { + "name": "Moshe Weitzman", + "email": "weitzman@tejasa.com" + } + ], + "description": "Manage alias records for local and remote sites.", + "support": { + "issues": "https://github.com/consolidation/site-alias/issues", + "source": "https://github.com/consolidation/site-alias/tree/4.1.0" + }, + "time": "2024-04-05T15:58:04+00:00" + }, + { + "name": "consolidation/site-process", + "version": "5.4.0", + "source": { + "type": "git", + "url": "https://github.com/consolidation/site-process.git", + "reference": "7ab3ffe4195a89b8dc334ea22e7881abe79ffd9a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/site-process/zipball/7ab3ffe4195a89b8dc334ea22e7881abe79ffd9a", + "reference": "7ab3ffe4195a89b8dc334ea22e7881abe79ffd9a", + "shasum": "" + }, + "require": { + "consolidation/config": "^2 || ^3", + "consolidation/site-alias": "^3 || ^4", + "php": ">=8.0.14", + "symfony/console": "^5.4 || ^6 || ^7", + "symfony/process": "^6 || ^7" + }, + "require-dev": { + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "Consolidation\\SiteProcess\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + }, + { + "name": "Moshe Weitzman", + "email": "weitzman@tejasa.com" + } + ], + "description": "A thin wrapper around the Symfony Process Component that allows applications to use the Site Alias library to specify the target for a remote call.", + "support": { + "issues": "https://github.com/consolidation/site-process/issues", + "source": "https://github.com/consolidation/site-process/tree/5.4.0" + }, + "time": "2024-04-06T00:00:28+00:00" + }, + { + "name": "cweagans/composer-patches", + "version": "1.7.3", + "source": { + "type": "git", + "url": "https://github.com/cweagans/composer-patches.git", + "reference": "e190d4466fe2b103a55467dfa83fc2fecfcaf2db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cweagans/composer-patches/zipball/e190d4466fe2b103a55467dfa83fc2fecfcaf2db", + "reference": "e190d4466fe2b103a55467dfa83fc2fecfcaf2db", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=5.3.0" + }, + "require-dev": { + "composer/composer": "~1.0 || ~2.0", + "phpunit/phpunit": "~4.6" + }, + "type": "composer-plugin", + "extra": { + "class": "cweagans\\Composer\\Patches" + }, + "autoload": { + "psr-4": { + "cweagans\\Composer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Cameron Eagans", + "email": "me@cweagans.net" + } + ], + "description": "Provides a way to patch Composer packages.", + "support": { + "issues": "https://github.com/cweagans/composer-patches/issues", + "source": "https://github.com/cweagans/composer-patches/tree/1.7.3" + }, + "time": "2022-12-20T22:53:13+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "f41715465d65213d644d3141a6a93081be5d3549" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", + "reference": "f41715465d65213d644d3141a6a93081be5d3549", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" + }, + "time": "2022-10-27T11:44:00+00:00" + }, + { + "name": "doctrine/annotations", + "version": "1.14.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", + "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1 || ^2", + "ext-tokenizer": "*", + "php": "^7.1 || ^8.0", + "psr/cache": "^1 || ^2 || ^3" + }, + "require-dev": { + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "symfony/cache": "^4.4 || ^5.4 || ^6", + "vimeo/psalm": "^4.10" + }, + "suggest": { + "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "https://www.doctrine-project.org/projects/annotations.html", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "support": { + "issues": "https://github.com/doctrine/annotations/issues", + "source": "https://github.com/doctrine/annotations/tree/1.14.3" + }, + "time": "2023-02-01T09:20:38+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.3" + }, + "time": "2024-01-30T19:34:25+00:00" + }, + { + "name": "doctrine/lexer", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6", + "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^12", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^4.11 || ^5.21" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/2.1.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2024-02-05T11:35:39+00:00" + }, + { + "name": "drupal/core", + "version": "10.3.1", + "source": { + "type": "git", + "url": "https://github.com/drupal/core.git", + "reference": "d137403a30d4154404e473785f48dfc889d77e23" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/drupal/core/zipball/d137403a30d4154404e473785f48dfc889d77e23", + "reference": "d137403a30d4154404e473785f48dfc889d77e23", + "shasum": "" + }, + "require": { + "asm89/stack-cors": "^2.1", + "composer-runtime-api": "^2.1", + "composer/semver": "^3.3", + "doctrine/annotations": "^1.14", + "egulias/email-validator": "^3.2.1|^4.0", + "ext-date": "*", + "ext-dom": "*", + "ext-filter": "*", + "ext-gd": "*", + "ext-hash": "*", + "ext-json": "*", + "ext-pcre": "*", + "ext-pdo": "*", + "ext-session": "*", + "ext-simplexml": "*", + "ext-spl": "*", + "ext-tokenizer": "*", + "ext-xml": "*", + "guzzlehttp/guzzle": "^7.5", + "guzzlehttp/psr7": "^2.4.5", + "masterminds/html5": "^2.7", + "mck89/peast": "^1.14", + "pear/archive_tar": "^1.4.14", + "php": ">=8.1.0", + "psr/log": "^3.0", + "sebastian/diff": "^4", + "symfony/console": "^6.4", + "symfony/dependency-injection": "^6.4", + "symfony/event-dispatcher": "^6.4", + "symfony/filesystem": "^6.4", + "symfony/finder": "^6.4", + "symfony/http-foundation": "^6.4", + "symfony/http-kernel": "^6.4", + "symfony/mailer": "^6.4", + "symfony/mime": "^6.4", + "symfony/polyfill-iconv": "^1.26", + "symfony/process": "^6.4", + "symfony/psr-http-message-bridge": "^2.1|^6.4", + "symfony/routing": "^6.4", + "symfony/serializer": "^6.4", + "symfony/validator": "^6.4", + "symfony/yaml": "^6.4", + "twig/twig": "^3.9.3" + }, + "conflict": { + "drush/drush": "<12.4.3" + }, + "replace": { + "drupal/core-annotation": "self.version", + "drupal/core-assertion": "self.version", + "drupal/core-class-finder": "self.version", + "drupal/core-datetime": "self.version", + "drupal/core-dependency-injection": "self.version", + "drupal/core-diff": "self.version", + "drupal/core-discovery": "self.version", + "drupal/core-event-dispatcher": "self.version", + "drupal/core-file-cache": "self.version", + "drupal/core-file-security": "self.version", + "drupal/core-filesystem": "self.version", + "drupal/core-front-matter": "self.version", + "drupal/core-gettext": "self.version", + "drupal/core-graph": "self.version", + "drupal/core-http-foundation": "self.version", + "drupal/core-php-storage": "self.version", + "drupal/core-plugin": "self.version", + "drupal/core-proxy-builder": "self.version", + "drupal/core-render": "self.version", + "drupal/core-serialization": "self.version", + "drupal/core-transliteration": "self.version", + "drupal/core-utility": "self.version", + "drupal/core-uuid": "self.version", + "drupal/core-version": "self.version" + }, + "suggest": { + "ext-zip": "Needed to extend the plugin.manager.archiver service capability with the handling of files in the ZIP format." + }, + "type": "drupal-core", + "extra": { + "drupal-scaffold": { + "file-mapping": { + "[project-root]/.editorconfig": "assets/scaffold/files/editorconfig", + "[project-root]/.gitattributes": "assets/scaffold/files/gitattributes", + "[web-root]/.csslintrc": "assets/scaffold/files/csslintrc", + "[web-root]/.eslintignore": "assets/scaffold/files/eslintignore", + "[web-root]/.eslintrc.json": "assets/scaffold/files/eslintrc.json", + "[web-root]/.ht.router.php": "assets/scaffold/files/ht.router.php", + "[web-root]/.htaccess": "assets/scaffold/files/htaccess", + "[web-root]/example.gitignore": "assets/scaffold/files/example.gitignore", + "[web-root]/index.php": "assets/scaffold/files/index.php", + "[web-root]/INSTALL.txt": "assets/scaffold/files/drupal.INSTALL.txt", + "[web-root]/README.md": "assets/scaffold/files/drupal.README.md", + "[web-root]/robots.txt": "assets/scaffold/files/robots.txt", + "[web-root]/update.php": "assets/scaffold/files/update.php", + "[web-root]/web.config": "assets/scaffold/files/web.config", + "[web-root]/sites/README.txt": "assets/scaffold/files/sites.README.txt", + "[web-root]/sites/development.services.yml": "assets/scaffold/files/development.services.yml", + "[web-root]/sites/example.settings.local.php": "assets/scaffold/files/example.settings.local.php", + "[web-root]/sites/example.sites.php": "assets/scaffold/files/example.sites.php", + "[web-root]/sites/default/default.services.yml": "assets/scaffold/files/default.services.yml", + "[web-root]/sites/default/default.settings.php": "assets/scaffold/files/default.settings.php", + "[web-root]/modules/README.txt": "assets/scaffold/files/modules.README.txt", + "[web-root]/profiles/README.txt": "assets/scaffold/files/profiles.README.txt", + "[web-root]/themes/README.txt": "assets/scaffold/files/themes.README.txt" + } + } + }, + "autoload": { + "files": [ + "includes/bootstrap.inc" + ], + "psr-4": { + "Drupal\\Core\\": "lib/Drupal/Core", + "Drupal\\Component\\": "lib/Drupal/Component" + }, + "classmap": [ + "lib/Drupal.php", + "lib/Drupal/Component/DependencyInjection/Container.php", + "lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php", + "lib/Drupal/Component/FileCache/FileCacheFactory.php", + "lib/Drupal/Component/Utility/Timer.php", + "lib/Drupal/Component/Utility/Unicode.php", + "lib/Drupal/Core/Cache/Cache.php", + "lib/Drupal/Core/Cache/CacheBackendInterface.php", + "lib/Drupal/Core/Cache/CacheTagsChecksumInterface.php", + "lib/Drupal/Core/Cache/CacheTagsChecksumTrait.php", + "lib/Drupal/Core/Cache/CacheTagsInvalidatorInterface.php", + "lib/Drupal/Core/Cache/DatabaseBackend.php", + "lib/Drupal/Core/Cache/DatabaseCacheTagsChecksum.php", + "lib/Drupal/Core/Database/Connection.php", + "lib/Drupal/Core/Database/Database.php", + "lib/Drupal/Core/Database/StatementInterface.php", + "lib/Drupal/Core/DependencyInjection/Container.php", + "lib/Drupal/Core/DrupalKernel.php", + "lib/Drupal/Core/DrupalKernelInterface.php", + "lib/Drupal/Core/Installer/InstallerRedirectTrait.php", + "lib/Drupal/Core/Site/Settings.php", + "lib/Drupal/Component/Datetime/Time.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "description": "Drupal is an open source content management platform powering millions of websites and applications.", + "support": { + "source": "https://github.com/drupal/core/tree/10.3.1" + }, + "time": "2024-07-04T11:33:45+00:00" + }, + { + "name": "drupal/core-composer-scaffold", + "version": "10.3.1", + "source": { + "type": "git", + "url": "https://github.com/drupal/core-composer-scaffold.git", + "reference": "a1a186caeb89899143e0c6912ccee9d3d7181dbe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/a1a186caeb89899143e0c6912ccee9d3d7181dbe", + "reference": "a1a186caeb89899143e0c6912ccee9d3d7181dbe", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2", + "php": ">=7.3.0" + }, + "conflict": { + "drupal-composer/drupal-scaffold": "*" + }, + "require-dev": { + "composer/composer": "^1.8@stable" + }, + "type": "composer-plugin", + "extra": { + "class": "Drupal\\Composer\\Plugin\\Scaffold\\Plugin", + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Drupal\\Composer\\Plugin\\Scaffold\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "description": "A flexible Composer project scaffold builder.", + "homepage": "https://www.drupal.org/project/drupal", + "keywords": [ + "drupal" + ], + "support": { + "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.1" + }, + "time": "2024-05-11T08:21:39+00:00" + }, + { + "name": "drupal/core-project-message", + "version": "10.3.1", + "source": { + "type": "git", + "url": "https://github.com/drupal/core-project-message.git", + "reference": "d1da83722735cb0f7ccabf9fef7b5607b442c3a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/drupal/core-project-message/zipball/d1da83722735cb0f7ccabf9fef7b5607b442c3a8", + "reference": "d1da83722735cb0f7ccabf9fef7b5607b442c3a8", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2", + "php": ">=7.3.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Drupal\\Composer\\Plugin\\ProjectMessage\\MessagePlugin" + }, + "autoload": { + "psr-4": { + "Drupal\\Composer\\Plugin\\ProjectMessage\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "description": "Adds a message after Composer installation.", + "homepage": "https://www.drupal.org/project/drupal", + "keywords": [ + "drupal" + ], + "support": { + "source": "https://github.com/drupal/core-project-message/tree/11.0.0-beta1" + }, + "time": "2023-07-24T07:55:25+00:00" + }, + { + "name": "drupal/core-recommended", + "version": "10.3.1", + "source": { + "type": "git", + "url": "https://github.com/drupal/core-recommended.git", + "reference": "a5183f2be315b7e5deec89fdeafe9fc9a2e54f57" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/drupal/core-recommended/zipball/a5183f2be315b7e5deec89fdeafe9fc9a2e54f57", + "reference": "a5183f2be315b7e5deec89fdeafe9fc9a2e54f57", + "shasum": "" + }, + "require": { + "asm89/stack-cors": "~v2.2.0", + "composer/semver": "~3.4.0", + "doctrine/annotations": "~1.14.3", + "doctrine/deprecations": "~1.1.3", + "doctrine/lexer": "~2.1.1", + "drupal/core": "10.3.1", + "egulias/email-validator": "~4.0.2", + "guzzlehttp/guzzle": "~7.8.1", + "guzzlehttp/promises": "~2.0.2", + "guzzlehttp/psr7": "~2.6.2", + "masterminds/html5": "~2.9.0", + "mck89/peast": "~v1.16.2", + "pear/archive_tar": "~1.5.0", + "pear/console_getopt": "~v1.4.3", + "pear/pear-core-minimal": "~v1.10.15", + "pear/pear_exception": "~v1.0.2", + "psr/cache": "~3.0.0", + "psr/container": "~2.0.2", + "psr/event-dispatcher": "~1.0.0", + "psr/http-client": "~1.0.3", + "psr/http-factory": "~1.1.0", + "psr/log": "~3.0.0", + "ralouphie/getallheaders": "~3.0.3", + "sebastian/diff": "~4.0.6", + "symfony/console": "~v6.4.8", + "symfony/dependency-injection": "~v6.4.7", + "symfony/deprecation-contracts": "~v3.5.0", + "symfony/error-handler": "~v6.4.7", + "symfony/event-dispatcher": "~v6.4.7", + "symfony/event-dispatcher-contracts": "~v3.5.0", + "symfony/filesystem": "~v6.4.8", + "symfony/finder": "~v6.4.8", + "symfony/http-foundation": "~v6.4.7", + "symfony/http-kernel": "~v6.4.7", + "symfony/mailer": "~v6.4.7", + "symfony/mime": "~v6.4.7", + "symfony/polyfill-ctype": "~v1.29.0", + "symfony/polyfill-iconv": "~v1.29.0", + "symfony/polyfill-intl-grapheme": "~v1.29.0", + "symfony/polyfill-intl-idn": "~v1.29.0", + "symfony/polyfill-intl-normalizer": "~v1.29.0", + "symfony/polyfill-mbstring": "~v1.29.0", + "symfony/polyfill-php83": "~v1.29.0", + "symfony/process": "~v6.4.8", + "symfony/psr-http-message-bridge": "~v6.4.7", + "symfony/routing": "~v6.4.7", + "symfony/serializer": "~v6.4.7", + "symfony/service-contracts": "~v3.5.0", + "symfony/string": "~v6.4.8", + "symfony/translation-contracts": "~v3.5.0", + "symfony/validator": "~v6.4.7", + "symfony/var-dumper": "~v6.4.7", + "symfony/var-exporter": "~v6.4.7", + "symfony/yaml": "~v6.4.7", + "twig/twig": "~v3.10.2" + }, + "conflict": { + "webflo/drupal-core-strict": "*" + }, + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "description": "Core and its dependencies with known-compatible minor versions. Require this project INSTEAD OF drupal/core.", + "support": { + "source": "https://github.com/drupal/core-recommended/tree/10.3.1" + }, + "time": "2024-07-04T11:33:45+00:00" + }, + { + "name": "drupal/lagoon_logs", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/lagoon_logs.git", + "reference": "3.0.1" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/lagoon_logs-3.0.1.zip", + "reference": "3.0.1", + "shasum": "3bec3d2833749510b3fb72898f0d555cfe79bb39" + }, + "require": { + "drupal/core": ">=10", + "monolog/monolog": "^3.0" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "3.0.1", + "datestamp": "1720402778", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Blaize Kaye", + "homepage": "https://www.drupal.org/u/bomoko", + "role": "Maintainer" + }, + { + "name": "rocketeerbkw", + "homepage": "https://www.drupal.org/user/615672" + }, + { + "name": "tobybellwood", + "homepage": "https://www.drupal.org/user/3529537" + } + ], + "description": "Simple monolog wrapper for Lagoon", + "homepage": "https://www.drupal.org/project/lagoon_logs", + "support": { + "source": "https://git.drupalcode.org/project/lagoon_logs" + } + }, + { + "name": "drush/drush", + "version": "12.5.2", + "source": { + "type": "git", + "url": "https://github.com/drush-ops/drush.git", + "reference": "4aebed85dc818ff762f2e24a85b023d2a52050df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/drush-ops/drush/zipball/4aebed85dc818ff762f2e24a85b023d2a52050df", + "reference": "4aebed85dc818ff762f2e24a85b023d2a52050df", + "shasum": "" + }, + "require": { + "chi-teck/drupal-code-generator": "^3.0", + "composer-runtime-api": "^2.2", + "composer/semver": "^1.4 || ^3", + "consolidation/annotated-command": "^4.9.2", + "consolidation/config": "^2.1.2", + "consolidation/filter-via-dot-access-data": "^2.0.2", + "consolidation/output-formatters": "^4.3.2", + "consolidation/robo": "^4.0.6", + "consolidation/site-alias": "^4", + "consolidation/site-process": "^5.2.0", + "ext-dom": "*", + "grasmash/yaml-cli": "^3.1", + "guzzlehttp/guzzle": "^7.0", + "league/container": "^4", + "php": ">=8.1", + "psy/psysh": "~0.11", + "symfony/event-dispatcher": "^6", + "symfony/filesystem": "^6.1", + "symfony/finder": "^6", + "symfony/var-dumper": "^6.0", + "symfony/yaml": "^6.0", + "webflo/drupal-finder": "^1.2" + }, + "conflict": { + "drupal/core": "< 10.0", + "drupal/migrate_run": "*", + "drupal/migrate_tools": "<= 5" + }, + "require-dev": { + "composer/installers": "^2", + "cweagans/composer-patches": "~1.0", + "drupal/core-recommended": "^10", + "drupal/semver_example": "2.3.0", + "phpunit/phpunit": "^9", + "rector/rector": "^0.12", + "squizlabs/php_codesniffer": "^3.7" + }, + "bin": [ + "drush" + ], + "type": "library", + "extra": { + "installer-paths": { + "sut/core": [ + "type:drupal-core" + ], + "sut/libraries/{$name}": [ + "type:drupal-library" + ], + "sut/modules/unish/{$name}": [ + "drupal/devel" + ], + "sut/themes/unish/{$name}": [ + "drupal/empty_theme" + ], + "sut/modules/contrib/{$name}": [ + "type:drupal-module" + ], + "sut/profiles/contrib/{$name}": [ + "type:drupal-profile" + ], + "sut/themes/contrib/{$name}": [ + "type:drupal-theme" + ], + "sut/drush/contrib/{$name}": [ + "type:drupal-drush" + ] + } + }, + "autoload": { + "psr-4": { + "Drush\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Moshe Weitzman", + "email": "weitzman@tejasa.com" + }, + { + "name": "Owen Barton", + "email": "drupal@owenbarton.com" + }, + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + }, + { + "name": "Jonathan Araña Cruz", + "email": "jonhattan@faita.net" + }, + { + "name": "Jonathan Hedstrom", + "email": "jhedstrom@gmail.com" + }, + { + "name": "Christopher Gervais", + "email": "chris@ergonlogic.com" + }, + { + "name": "Dave Reid", + "email": "dave@davereid.net" + }, + { + "name": "Damian Lee", + "email": "damiankloip@googlemail.com" + } + ], + "description": "Drush is a command line shell and scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those of us who spend some of our working hours hacking away at the command prompt.", + "homepage": "http://www.drush.org", + "support": { + "forum": "http://drupal.stackexchange.com/questions/tagged/drush", + "issues": "https://github.com/drush-ops/drush/issues", + "security": "https://github.com/drush-ops/drush/security/advisories", + "slack": "https://drupal.slack.com/messages/C62H9CWQM", + "source": "https://github.com/drush-ops/drush/tree/12.5.2" + }, + "funding": [ + { + "url": "https://github.com/weitzman", + "type": "github" + } + ], + "time": "2024-05-02T17:20:48+00:00" + }, + { + "name": "egulias/email-validator", + "version": "4.0.2", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^2.0 || ^3.0", + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.26" + }, + "require-dev": { + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2023-10-06T06:47:41+00:00" + }, + { + "name": "grasmash/expander", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/grasmash/expander.git", + "reference": "bb1c1a2430957945cf08c5a62f5d72a6aa6a2c82" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/grasmash/expander/zipball/bb1c1a2430957945cf08c5a62f5d72a6aa6a2c82", + "reference": "bb1c1a2430957945cf08c5a62f5d72a6aa6a2c82", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0.0", + "php": ">=8.0", + "psr/log": "^2 | ^3" + }, + "require-dev": { + "greg-1-anderson/composer-test-scenarios": "^1", + "php-coveralls/php-coveralls": "^2.5", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Grasmash\\Expander\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthew Grasmick" + } + ], + "description": "Expands internal property references in PHP arrays file.", + "support": { + "issues": "https://github.com/grasmash/expander/issues", + "source": "https://github.com/grasmash/expander/tree/3.0.0" + }, + "time": "2022-05-10T13:14:49+00:00" + }, + { + "name": "grasmash/yaml-cli", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/grasmash/yaml-cli.git", + "reference": "09a8860566958a1576cc54bbe910a03477e54971" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/grasmash/yaml-cli/zipball/09a8860566958a1576cc54bbe910a03477e54971", + "reference": "09a8860566958a1576cc54bbe910a03477e54971", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3", + "php": ">=8.0", + "symfony/console": "^6 || ^7", + "symfony/filesystem": "^6 || ^7", + "symfony/yaml": "^6 || ^7" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.0" + }, + "bin": [ + "bin/yaml-cli" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Grasmash\\YamlCli\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthew Grasmick" + } + ], + "description": "A command line tool for reading and manipulating yaml files.", + "support": { + "issues": "https://github.com/grasmash/yaml-cli/issues", + "source": "https://github.com/grasmash/yaml-cli/tree/3.2.1" + }, + "time": "2024-04-23T02:10:57+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.8.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5.3 || ^2.0.1", + "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.8.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2023-12-03T20:35:24+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2023-12-03T20:19:20+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.6.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.6.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2023-12-03T20:05:35+00:00" + }, + { + "name": "league/container", + "version": "4.2.2", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/container.git", + "reference": "ff346319ca1ff0e78277dc2311a42107cc1aab88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/container/zipball/ff346319ca1ff0e78277dc2311a42107cc1aab88", + "reference": "ff346319ca1ff0e78277dc2311a42107cc1aab88", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "psr/container": "^1.1 || ^2.0" + }, + "provide": { + "psr/container-implementation": "^1.0" + }, + "replace": { + "orno/di": "~2.0" + }, + "require-dev": { + "nette/php-generator": "^3.4", + "nikic/php-parser": "^4.10", + "phpstan/phpstan": "^0.12.47", + "phpunit/phpunit": "^8.5.17", + "roave/security-advisories": "dev-latest", + "scrutinizer/ocular": "^1.8", + "squizlabs/php_codesniffer": "^3.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev", + "dev-4.x": "4.x-dev", + "dev-3.x": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Container\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Phil Bennett", + "email": "mail@philbennett.co.uk", + "role": "Developer" + } + ], + "description": "A fast and intuitive dependency injection container.", + "homepage": "https://github.com/thephpleague/container", + "keywords": [ + "container", + "dependency", + "di", + "injection", + "league", + "provider", + "service" + ], + "support": { + "issues": "https://github.com/thephpleague/container/issues", + "source": "https://github.com/thephpleague/container/tree/4.2.2" + }, + "funding": [ + { + "url": "https://github.com/philipobenito", + "type": "github" + } + ], + "time": "2024-03-13T13:12:53+00:00" + }, + { + "name": "masterminds/html5", + "version": "2.9.0", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.9.0" + }, + "time": "2024-03-31T07:05:07+00:00" + }, + { + "name": "mck89/peast", + "version": "v1.16.2", + "source": { + "type": "git", + "url": "https://github.com/mck89/peast.git", + "reference": "2791b08ffcc1862fe18eef85675da3aa58c406fe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mck89/peast/zipball/2791b08ffcc1862fe18eef85675da3aa58c406fe", + "reference": "2791b08ffcc1862fe18eef85675da3aa58c406fe", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.16.2-dev" + } + }, + "autoload": { + "psr-4": { + "Peast\\": "lib/Peast/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Marco Marchiò", + "email": "marco.mm89@gmail.com" + } + ], + "description": "Peast is PHP library that generates AST for JavaScript code", + "support": { + "issues": "https://github.com/mck89/peast/issues", + "source": "https://github.com/mck89/peast/tree/v1.16.2" + }, + "time": "2024-03-05T09:16:03+00:00" + }, + { + "name": "monolog/monolog", + "version": "3.7.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f4393b648b78a5408747de94fca38beb5f7e9ef8", + "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "3.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", + "graylog2/gelf-php": "^1.4.2 || ^2.0", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/psr7": "^2.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-strict-rules": "^1.4", + "phpunit/phpunit": "^10.5.17", + "predis/predis": "^1.1 || ^2", + "ruflin/elastica": "^7", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/3.7.0" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2024-06-28T09:40:51+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v5.0.2", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", + "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" + }, + "time": "2024-03-05T20:51:40+00:00" + }, + { + "name": "pear/archive_tar", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/pear/Archive_Tar.git", + "reference": "b439c859564f5cbb0f64ad6002d0afe84a889602" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pear/Archive_Tar/zipball/b439c859564f5cbb0f64ad6002d0afe84a889602", + "reference": "b439c859564f5cbb0f64ad6002d0afe84a889602", + "shasum": "" + }, + "require": { + "pear/pear-core-minimal": "^1.10.0alpha2", + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "suggest": { + "ext-bz2": "Bz2 compression support.", + "ext-xz": "Lzma2 compression support.", + "ext-zlib": "Gzip compression support." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "Archive_Tar": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "./" + ], + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Vincent Blavet", + "email": "vincent@phpconcept.net" + }, + { + "name": "Greg Beaver", + "email": "greg@chiaraquartet.net" + }, + { + "name": "Michiel Rook", + "email": "mrook@php.net" + } + ], + "description": "Tar file management class with compression support (gzip, bzip2, lzma2)", + "homepage": "https://github.com/pear/Archive_Tar", + "keywords": [ + "archive", + "tar" + ], + "support": { + "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=Archive_Tar", + "source": "https://github.com/pear/Archive_Tar" + }, + "time": "2024-03-16T16:21:40+00:00" + }, + { + "name": "pear/console_getopt", + "version": "v1.4.3", + "source": { + "type": "git", + "url": "https://github.com/pear/Console_Getopt.git", + "reference": "a41f8d3e668987609178c7c4a9fe48fecac53fa0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pear/Console_Getopt/zipball/a41f8d3e668987609178c7c4a9fe48fecac53fa0", + "reference": "a41f8d3e668987609178c7c4a9fe48fecac53fa0", + "shasum": "" + }, + "type": "library", + "autoload": { + "psr-0": { + "Console": "./" + } + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "./" + ], + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Andrei Zmievski", + "email": "andrei@php.net", + "role": "Lead" + }, + { + "name": "Stig Bakken", + "email": "stig@php.net", + "role": "Developer" + }, + { + "name": "Greg Beaver", + "email": "cellog@php.net", + "role": "Helper" + } + ], + "description": "More info available on: http://pear.php.net/package/Console_Getopt", + "support": { + "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=Console_Getopt", + "source": "https://github.com/pear/Console_Getopt" + }, + "time": "2019-11-20T18:27:48+00:00" + }, + { + "name": "pear/pear-core-minimal", + "version": "v1.10.15", + "source": { + "type": "git", + "url": "https://github.com/pear/pear-core-minimal.git", + "reference": "ce0adade8b97561656ace07cdaac4751c271ea8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/ce0adade8b97561656ace07cdaac4751c271ea8c", + "reference": "ce0adade8b97561656ace07cdaac4751c271ea8c", + "shasum": "" + }, + "require": { + "pear/console_getopt": "~1.4", + "pear/pear_exception": "~1.0", + "php": ">=5.4" + }, + "replace": { + "rsky/pear-core-min": "self.version" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "src/" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Christian Weiske", + "email": "cweiske@php.net", + "role": "Lead" + } + ], + "description": "Minimal set of PEAR core files to be used as composer dependency", + "support": { + "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR", + "source": "https://github.com/pear/pear-core-minimal" + }, + "time": "2024-03-16T18:41:45+00:00" + }, + { + "name": "pear/pear_exception", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/pear/PEAR_Exception.git", + "reference": "b14fbe2ddb0b9f94f5b24cf08783d599f776fff0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pear/PEAR_Exception/zipball/b14fbe2ddb0b9f94f5b24cf08783d599f776fff0", + "reference": "b14fbe2ddb0b9f94f5b24cf08783d599f776fff0", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "<9" + }, + "type": "class", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "PEAR/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "." + ], + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Helgi Thormar", + "email": "dufuz@php.net" + }, + { + "name": "Greg Beaver", + "email": "cellog@php.net" + } + ], + "description": "The PEAR Exception base class.", + "homepage": "https://github.com/pear/PEAR_Exception", + "keywords": [ + "exception" + ], + "support": { + "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR_Exception", + "source": "https://github.com/pear/PEAR_Exception" + }, + "time": "2021-03-21T15:43:46+00:00" + }, + { + "name": "phootwork/collection", + "version": "v3.2.2", + "source": { + "type": "git", + "url": "https://github.com/phootwork/collection.git", + "reference": "46dde20420fba17766c89200bc3ff91d3e58eafa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phootwork/collection/zipball/46dde20420fba17766c89200bc3ff91d3e58eafa", + "reference": "46dde20420fba17766c89200bc3ff91d3e58eafa", + "shasum": "" + }, + "require": { + "phootwork/lang": "^3.0", + "php": ">=8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "phootwork\\collection\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Gossmann", + "homepage": "http://gos.si" + } + ], + "description": "The phootwork library fills gaps in the php language and provides better solutions than the existing ones php offers.", + "homepage": "https://phootwork.github.io/collection/", + "keywords": [ + "Array object", + "Text object", + "collection", + "collections", + "json", + "list", + "map", + "queue", + "set", + "stack", + "xml" + ], + "support": { + "issues": "https://github.com/phootwork/phootwork/issues", + "source": "https://github.com/phootwork/collection/tree/v3.2.2" + }, + "time": "2022-08-27T12:51:24+00:00" + }, + { + "name": "phootwork/lang", + "version": "v3.2.2", + "source": { + "type": "git", + "url": "https://github.com/phootwork/lang.git", + "reference": "baaf154ae7d521ebeee5e89105f5b12b0f234597" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phootwork/lang/zipball/baaf154ae7d521ebeee5e89105f5b12b0f234597", + "reference": "baaf154ae7d521ebeee5e89105f5b12b0f234597", + "shasum": "" + }, + "require": { + "php": ">=8.0", + "symfony/polyfill-mbstring": "^1.12", + "symfony/polyfill-php81": "^1.22" + }, + "type": "library", + "autoload": { + "psr-4": { + "phootwork\\lang\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Gossmann", + "homepage": "http://gos.si" + } + ], + "description": "Missing PHP language constructs", + "homepage": "https://phootwork.github.io/lang/", + "keywords": [ + "array", + "comparator", + "comparison", + "string" + ], + "support": { + "issues": "https://github.com/phootwork/phootwork/issues", + "source": "https://github.com/phootwork/lang/tree/v3.2.2" + }, + "time": "2023-05-26T05:37:59+00:00" + }, + { + "name": "phpowermove/docblock", + "version": "v4.0", + "source": { + "type": "git", + "url": "https://github.com/phpowermove/docblock.git", + "reference": "a73f6e17b7d4e1b92ca5378c248c952c9fae7826" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpowermove/docblock/zipball/a73f6e17b7d4e1b92ca5378c248c952c9fae7826", + "reference": "a73f6e17b7d4e1b92ca5378c248c952c9fae7826", + "shasum": "" + }, + "require": { + "phootwork/collection": "^3.0", + "phootwork/lang": "^3.0", + "php": ">=8.0" + }, + "require-dev": { + "phootwork/php-cs-fixer-config": "^0.4", + "phpunit/phpunit": "^9.0", + "psalm/phar": "^4.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "phpowermove\\docblock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Gossmann", + "homepage": "http://gos.si" + } + ], + "description": "PHP Docblock parser and generator. An API to read and write Docblocks.", + "keywords": [ + "docblock", + "generator", + "parser" + ], + "support": { + "issues": "https://github.com/phpowermove/docblock/issues", + "source": "https://github.com/phpowermove/docblock/tree/v4.0" + }, + "time": "2021-09-22T16:57:06+00:00" + }, + { + "name": "psr/cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "time": "2021-02-03T23:26:27+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/log", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "time": "2021-07-14T16:46:02+00:00" + }, + { + "name": "psy/psysh", + "version": "v0.12.3", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73", + "reference": "b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2" + }, + "suggest": { + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." + }, + "bin": [ + "bin/psysh" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.12.x-dev" + }, + "bamarni-bin": { + "bin-links": false, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Psy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "support": { + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.12.3" + }, + "time": "2024-04-02T15:57:53+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T06:30:58+00:00" + }, + { + "name": "symfony/console", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9", + "reference": "6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0|^7.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.4.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-28T09:49:33+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "a4df9dfe5da2d177af6643610c7bee2cb76a9f5e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/a4df9dfe5da2d177af6643610c7bee2cb76a9f5e", + "reference": "a4df9dfe5da2d177af6643610c7bee2cb76a9f5e", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/service-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.2.10|^7.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2", + "symfony/config": "<6.1", + "symfony/finder": "<5.4", + "symfony/proxy-manager-bridge": "<6.3", + "symfony/yaml": "<5.4" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "symfony/service-implementation": "1.1|2.0|3.0" + }, + "require-dev": { + "symfony/config": "^6.1|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/yaml": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "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/v6.4.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-19T10:45:28+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "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": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "c9b7cc075b3ab484239855622ca05cb0b99c13ec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/c9b7cc075b3ab484239855622ca05cb0b99c13ec", + "reference": "c9b7cc075b3ab484239855622ca05cb0b99c13ec", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "conflict": { + "symfony/deprecation-contracts": "<2.5", + "symfony/http-kernel": "<6.4" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/serializer": "^5.4|^6.0|^7.0" + }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v6.4.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-21T16:04:15+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8d7507f02b06e06815e56bb39aa0128e3806208b", + "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "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": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "b51ef8059159330b74a4d52f68e671033c0fe463" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/b51ef8059159330b74a4d52f68e671033c0fe463", + "reference": "b51ef8059159330b74a4d52f68e671033c0fe463", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { + "symfony/process": "^5.4|^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v6.4.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-28T09:49:33+00:00" + }, + { + "name": "symfony/finder", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "3ef977a43883215d560a2cecb82ec8e62131471c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/3ef977a43883215d560a2cecb82ec8e62131471c", + "reference": "3ef977a43883215d560a2cecb82ec8e62131471c", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/filesystem": "^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "27de8cc95e11db7a50b027e71caaab9024545947" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/27de8cc95e11db7a50b027e71caaab9024545947", + "reference": "27de8cc95e11db7a50b027e71caaab9024545947", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php83": "^1.27" + }, + "conflict": { + "symfony/cache": "<6.3" + }, + "require-dev": { + "doctrine/dbal": "^2.13.1|^3|^4", + "predis/predis": "^1.1|^2.0", + "symfony/cache": "^6.3|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", + "symfony/mime": "^5.4|^6.0|^7.0", + "symfony/rate-limiter": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "cc4a9bec6e1bdd2405f40277a68a6ed1bb393005" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/cc4a9bec6e1bdd2405f40277a68a6ed1bb393005", + "reference": "cc4a9bec6e1bdd2405f40277a68a6ed1bb393005", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.4|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/browser-kit": "<5.4", + "symfony/cache": "<5.4", + "symfony/config": "<6.1", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/translation-contracts": "<2.5", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<6.4", + "symfony/var-dumper": "<6.3", + "twig/twig": "<2.13" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^5.4|^6.0|^7.0", + "symfony/clock": "^6.2|^7.0", + "symfony/config": "^6.1|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/css-selector": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dom-crawler": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/http-client-contracts": "^2.5|^3", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/property-access": "^5.4.5|^6.0.5|^7.0", + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.4.4|^7.0.4", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/translation": "^5.4|^6.0|^7.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^5.4|^6.0|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^5.4|^6.4|^7.0", + "symfony/var-exporter": "^6.2|^7.0", + "twig/twig": "^2.13|^3.0.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v6.4.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-28T11:48:06+00:00" + }, + { + "name": "symfony/mailer", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45", + "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3|^4", + "php": ">=8.1", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/mime": "^6.2|^7.0", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4", + "symfony/messenger": "<6.2", + "symfony/mime": "<6.2", + "symfony/twig-bridge": "<6.2.1" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/messenger": "^6.2|^7.0", + "symfony/twig-bridge": "^6.2|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v6.4.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-28T07:59:05+00:00" + }, + { + "name": "symfony/mime", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "7d048964877324debdcb4e0549becfa064a20d43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/7d048964877324debdcb4e0549becfa064a20d43", + "reference": "7d048964877324debdcb4e0549becfa064a20d43", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<5.4", + "symfony/serializer": "<6.4.3|>7.0,<7.0.3" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1|^4", + "league/html-to-markdown": "^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.4|^7.0", + "symfony/property-access": "^5.4|^6.0|^7.0", + "symfony/property-info": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.4.3|^7.0.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v6.4.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-28T09:49:33+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-iconv", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-iconv.git", + "reference": "cd4226d140ecd3d0f13d32ed0a4a095ffe871d2f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/cd4226d140ecd3d0f13d32ed0a4a095ffe871d2f", + "reference": "cd4226d140ecd3d0f13d32ed0a4a095ffe871d2f", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-iconv": "*" + }, + "suggest": { + "ext-iconv": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Iconv\\": "" + } + }, + "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 for the Iconv extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "iconv", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "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 for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "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 for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "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 for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "10112722600777e02d2745716b70c5db4ca70442" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/10112722600777e02d2745716b70c5db4ca70442", + "reference": "10112722600777e02d2745716b70c5db4ca70442", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "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 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.30.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-19T12:30:46+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T15:07:36+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af", + "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "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.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-19T12:30:46+00:00" + }, + { + "name": "symfony/polyfill-php83", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-php80": "^1.14" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php83\\": "" + }, + "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.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/process", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/8d92dd79149f29e89ee0f480254db595f6a6a2c5", + "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/psr-http-message-bridge", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/psr-http-message-bridge.git", + "reference": "23a162bd446b93948a2c2f6909d80ad06195be10" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/23a162bd446b93948a2c2f6909d80ad06195be10", + "reference": "23a162bd446b93948a2c2f6909d80ad06195be10", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/http-message": "^1.0|^2.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0" + }, + "conflict": { + "php-http/discovery": "<1.15", + "symfony/http-kernel": "<6.2" + }, + "require-dev": { + "nyholm/psr7": "^1.1", + "php-http/discovery": "^1.15", + "psr/log": "^1.1.4|^2|^3", + "symfony/browser-kit": "^5.4|^6.0|^7.0", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/framework-bundle": "^6.2|^7.0", + "symfony/http-kernel": "^6.2|^7.0" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\PsrHttpMessage\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "PSR HTTP message bridge", + "homepage": "https://symfony.com", + "keywords": [ + "http", + "http-message", + "psr-17", + "psr-7" + ], + "support": { + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:51:39+00:00" + }, + { + "name": "symfony/routing", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", + "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "symfony/config": "<6.2", + "symfony/dependency-injection": "<5.4", + "symfony/yaml": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12|^2", + "psr/log": "^1|^2|^3", + "symfony/config": "^6.2|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/yaml": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/serializer", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/serializer.git", + "reference": "56ce31d19127e79647ac53387c7555bdcd5730ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/serializer/zipball/56ce31d19127e79647ac53387c7555bdcd5730ce", + "reference": "56ce31d19127e79647ac53387c7555bdcd5730ce", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/dependency-injection": "<5.4", + "symfony/property-access": "<5.4", + "symfony/property-info": "<5.4.24|>=6,<6.2.11", + "symfony/uid": "<5.4", + "symfony/validator": "<6.4", + "symfony/yaml": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12|^2", + "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", + "seld/jsonlint": "^1.10", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/filesystem": "^5.4|^6.0|^7.0", + "symfony/form": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/mime": "^5.4|^6.0|^7.0", + "symfony/property-access": "^5.4.26|^6.3|^7.0", + "symfony/property-info": "^5.4.24|^6.2.11|^7.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^5.4|^6.0|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0", + "symfony/var-exporter": "^5.4|^6.0|^7.0", + "symfony/yaml": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Serializer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/serializer/tree/v6.4.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-28T07:59:05+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "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": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/string", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "76792dbd99690a5ebef8050d9206c60c59e681d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/76792dbd99690a5ebef8050d9206c60c59e681d7", + "reference": "76792dbd99690a5ebef8050d9206c60c59e681d7", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/intl": "^6.2|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "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": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v6.4.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-28T09:25:38+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "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": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/validator", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/validator.git", + "reference": "ee0a4d6a327a963aee094f730da238f7ea18cb01" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/validator/zipball/ee0a4d6a327a963aee094f730da238f7ea18cb01", + "reference": "ee0a4d6a327a963aee094f730da238f7ea18cb01", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php83": "^1.27", + "symfony/translation-contracts": "^2.5|^3" + }, + "conflict": { + "doctrine/annotations": "<1.13", + "doctrine/lexer": "<1.1", + "symfony/dependency-injection": "<5.4", + "symfony/expression-language": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/intl": "<5.4", + "symfony/property-info": "<5.4", + "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3|>=7.0,<7.0.3", + "symfony/yaml": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.13|^2", + "egulias/email-validator": "^2.1.10|^3|^4", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/intl": "^5.4|^6.0|^7.0", + "symfony/mime": "^5.4|^6.0|^7.0", + "symfony/property-access": "^5.4|^6.0|^7.0", + "symfony/property-info": "^5.4|^6.0|^7.0", + "symfony/translation": "^5.4.35|~6.3.12|^6.4.3|^7.0.3", + "symfony/yaml": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Validator\\": "" + }, + "exclude-from-classmap": [ + "/Tests/", + "/Resources/bin/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to validate values", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/validator/tree/v6.4.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-22T07:42:41+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "c31566e4ca944271cc8d8ac6887cbf31b8c6a172" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c31566e4ca944271cc8d8ac6887cbf31b8c6a172", + "reference": "c31566e4ca944271cc8d8ac6887cbf31b8c6a172", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/console": "<5.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^6.3|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/uid": "^5.4|^6.0|^7.0", + "twig/twig": "^2.13|^3.0.4" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "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": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v6.4.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-27T13:23:14+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "f9a060622e0d93777b7f8687ec4860191e16802e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f9a060622e0d93777b7f8687ec4860191e16802e", + "reference": "f9a060622e0d93777b7f8687ec4860191e16802e", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "require-dev": { + "symfony/property-access": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "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": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "lazy-loading", + "proxy", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v6.4.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-24T15:53:56+00:00" + }, + { + "name": "symfony/yaml", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "52903de178d542850f6f341ba92995d3d63e60c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/52903de178d542850f6f341ba92995d3d63e60c9", + "reference": "52903de178d542850f6f341ba92995d3d63e60c9", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<5.4" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0|^7.0" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "twig/twig", + "version": "v3.10.3", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "67f29781ffafa520b0bbfbd8384674b42db04572" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/67f29781ffafa520b0bbfbd8384674b42db04572", + "reference": "67f29781ffafa520b0bbfbd8384674b42db04572", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php80": "^1.22" + }, + "require-dev": { + "psr/container": "^1.0|^2.0", + "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "src/Resources/core.php", + "src/Resources/debug.php", + "src/Resources/escaper.php", + "src/Resources/string_loader.php" + ], + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "support": { + "issues": "https://github.com/twigphp/Twig/issues", + "source": "https://github.com/twigphp/Twig/tree/v3.10.3" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2024-05-16T10:04:27+00:00" + }, + { + "name": "webflo/drupal-finder", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/webflo/drupal-finder.git", + "reference": "1fa65484857c7a2e4dcf0d9e0b47198fe0681b8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webflo/drupal-finder/zipball/1fa65484857c7a2e4dcf0d9e0b47198fe0681b8a", + "reference": "1fa65484857c7a2e4dcf0d9e0b47198fe0681b8a", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.2", + "php": ">=8.1" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "phpunit/phpunit": "^10.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "DrupalFinder\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Florian Weber", + "email": "florian@webflo.org" + } + ], + "description": "Helper class to locate a Drupal installation.", + "support": { + "issues": "https://github.com/webflo/drupal-finder/issues", + "source": "https://github.com/webflo/drupal-finder/tree/1.3.0" + }, + "time": "2024-05-08T21:22:39+00:00" + }, + { + "name": "zaporylie/composer-drupal-optimizations", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/zaporylie/composer-drupal-optimizations.git", + "reference": "a7f409a765164fd13ac0bd00e19109165c51b369" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zaporylie/composer-drupal-optimizations/zipball/a7f409a765164fd13ac0bd00e19109165c51b369", + "reference": "a7f409a765164fd13ac0bd00e19109165c51b369", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1 || ^2.0" + }, + "require-dev": { + "composer/composer": "^1.6", + "phpunit/phpunit": "^6" + }, + "type": "composer-plugin", + "extra": { + "class": "zaporylie\\ComposerDrupalOptimizations\\Plugin" + }, + "autoload": { + "psr-4": { + "zaporylie\\ComposerDrupalOptimizations\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Jakub Piasecki", + "email": "jakub@piaseccy.pl" + } + ], + "description": "Composer plugin to improve composer performance for Drupal projects", + "support": { + "issues": "https://github.com/zaporylie/composer-drupal-optimizations/issues", + "source": "https://github.com/zaporylie/composer-drupal-optimizations/tree/1.2.0" + }, + "time": "2020-10-22T13:26:00+00:00" + } + ], + "packages-dev": [ + { + "name": "behat/mink", + "version": "v1.11.0", + "source": { + "type": "git", + "url": "https://github.com/minkphp/Mink.git", + "reference": "d8527fdf8785aad38455fb426af457ab9937aece" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/Mink/zipball/d8527fdf8785aad38455fb426af457ab9937aece", + "reference": "d8527fdf8785aad38455fb426af457ab9937aece", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "symfony/css-selector": "^4.4 || ^5.0 || ^6.0 || ^7.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.10", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^8.5.22 || ^9.5.11", + "symfony/error-handler": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/phpunit-bridge": "^5.4 || ^6.0 || ^7.0" + }, + "suggest": { + "behat/mink-browserkit-driver": "fast headless driver for any app without JS emulation", + "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)", + "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)", + "dmore/chrome-mink-driver": "fast and JS-enabled driver for any app (requires chromium or google chrome)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Browser controller/emulator abstraction for PHP", + "homepage": "https://mink.behat.org/", + "keywords": [ + "browser", + "testing", + "web" + ], + "support": { + "issues": "https://github.com/minkphp/Mink/issues", + "source": "https://github.com/minkphp/Mink/tree/v1.11.0" + }, + "time": "2023-12-09T11:23:23+00:00" + }, + { + "name": "behat/mink-browserkit-driver", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/minkphp/MinkBrowserKitDriver.git", + "reference": "16d53476e42827ed3aafbfa4fde17a1743eafd50" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/16d53476e42827ed3aafbfa4fde17a1743eafd50", + "reference": "16d53476e42827ed3aafbfa4fde17a1743eafd50", + "shasum": "" + }, + "require": { + "behat/mink": "^1.11.0@dev", + "ext-dom": "*", + "php": ">=7.2", + "symfony/browser-kit": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/dom-crawler": "^4.4 || ^5.0 || ^6.0 || ^7.0" + }, + "require-dev": { + "mink/driver-testsuite": "dev-master", + "phpstan/phpstan": "^1.10", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "symfony/error-handler": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/http-client": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/http-kernel": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/mime": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "yoast/phpunit-polyfills": "^1.0" + }, + "type": "mink-driver", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\Driver\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Symfony2 BrowserKit driver for Mink framework", + "homepage": "https://mink.behat.org/", + "keywords": [ + "Mink", + "Symfony2", + "browser", + "testing" + ], + "support": { + "issues": "https://github.com/minkphp/MinkBrowserKitDriver/issues", + "source": "https://github.com/minkphp/MinkBrowserKitDriver/tree/v2.2.0" + }, + "time": "2023-12-09T11:30:50+00:00" + }, + { + "name": "colinodell/psr-testlogger", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/colinodell/psr-testlogger.git", + "reference": "291f5b70ea0d3139787d18f442365a8e2784a462" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/colinodell/psr-testlogger/zipball/291f5b70ea0d3139787d18f442365a8e2784a462", + "reference": "291f5b70ea0d3139787d18f442365a8e2784a462", + "shasum": "" + }, + "require": { + "php": "^8.0", + "psr/log": "^1.0 || ^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.9.2", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.30.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "ColinODell\\PsrTestLogger\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "PSR-3 compliant test logger based on psr/log v1's, but compatible with v2 and v3 too!", + "homepage": "https://github.com/colinodell/psr-testlogger", + "keywords": [ + "log", + "logger", + "logging", + "mock", + "phpunit", + "psr", + "test", + "unit" + ], + "support": { + "issues": "https://github.com/colinodell/psr-testlogger/issues", + "rss": "https://github.com/colinodell/psr-testlogger/releases.atom", + "source": "https://github.com/colinodell/psr-testlogger" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2023-11-29T23:03:34+00:00" + }, + { + "name": "composer/ca-bundle", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/0c5ccfcfea312b5c5a190a21ac5cef93f74baf99", + "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.10", + "psr/log": "^1.0", + "symfony/phpunit-bridge": "^4.2 || ^5", + "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/ca-bundle/issues", + "source": "https://github.com/composer/ca-bundle/tree/1.5.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-03-15T14:00:32+00:00" + }, + { + "name": "composer/class-map-generator", + "version": "1.3.4", + "source": { + "type": "git", + "url": "https://github.com/composer/class-map-generator.git", + "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3", + "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3", + "shasum": "" + }, + "require": { + "composer/pcre": "^2.1 || ^3.1", + "php": "^7.2 || ^8.0", + "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7" + }, + "require-dev": { + "phpstan/phpstan": "^1.6", + "phpstan/phpstan-deprecation-rules": "^1", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/filesystem": "^5.4 || ^6", + "symfony/phpunit-bridge": "^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\ClassMapGenerator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Utilities to scan PHP code and generate class maps.", + "keywords": [ + "classmap" + ], + "support": { + "issues": "https://github.com/composer/class-map-generator/issues", + "source": "https://github.com/composer/class-map-generator/tree/1.3.4" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-06-12T14:13:04+00:00" + }, + { + "name": "composer/composer", + "version": "2.7.7", + "source": { + "type": "git", + "url": "https://github.com/composer/composer.git", + "reference": "291942978f39435cf904d33739f98d7d4eca7b23" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/composer/zipball/291942978f39435cf904d33739f98d7d4eca7b23", + "reference": "291942978f39435cf904d33739f98d7d4eca7b23", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.0", + "composer/class-map-generator": "^1.3.3", + "composer/metadata-minifier": "^1.0", + "composer/pcre": "^2.1 || ^3.1", + "composer/semver": "^3.3", + "composer/spdx-licenses": "^1.5.7", + "composer/xdebug-handler": "^2.0.2 || ^3.0.3", + "justinrainbow/json-schema": "^5.2.11", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "react/promise": "^2.8 || ^3", + "seld/jsonlint": "^1.4", + "seld/phar-utils": "^1.2", + "seld/signal-handler": "^2.0", + "symfony/console": "^5.4.11 || ^6.0.11 || ^7", + "symfony/filesystem": "^5.4 || ^6.0 || ^7", + "symfony/finder": "^5.4 || ^6.0 || ^7", + "symfony/polyfill-php73": "^1.24", + "symfony/polyfill-php80": "^1.24", + "symfony/polyfill-php81": "^1.24", + "symfony/process": "^5.4 || ^6.0 || ^7" + }, + "require-dev": { + "phpstan/phpstan": "^1.11.0", + "phpstan/phpstan-deprecation-rules": "^1.2.0", + "phpstan/phpstan-phpunit": "^1.4.0", + "phpstan/phpstan-strict-rules": "^1.6.0", + "phpstan/phpstan-symfony": "^1.4.0", + "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1" + }, + "suggest": { + "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", + "ext-zip": "Enabling the zip extension allows you to unzip archives", + "ext-zlib": "Allow gzip compression of HTTP requests" + }, + "bin": [ + "bin/composer" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.7-dev" + }, + "phpstan": { + "includes": [ + "phpstan/rules.neon" + ] + } + }, + "autoload": { + "psr-4": { + "Composer\\": "src/Composer/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "https://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", + "homepage": "https://getcomposer.org/", + "keywords": [ + "autoload", + "dependency", + "package" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/composer/issues", + "security": "https://github.com/composer/composer/security/policy", + "source": "https://github.com/composer/composer/tree/2.7.7" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-06-10T20:11:12+00:00" + }, + { + "name": "composer/metadata-minifier", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/composer/metadata-minifier.git", + "reference": "c549d23829536f0d0e984aaabbf02af91f443207" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207", + "reference": "c549d23829536f0d0e984aaabbf02af91f443207", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "composer/composer": "^2", + "phpstan/phpstan": "^0.12.55", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\MetadataMinifier\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Small utility library that handles metadata minification and expansion.", + "keywords": [ + "composer", + "compression" + ], + "support": { + "issues": "https://github.com/composer/metadata-minifier/issues", + "source": "https://github.com/composer/metadata-minifier/tree/1.0.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2021-04-07T13:37:33+00:00" + }, + { + "name": "composer/pcre", + "version": "3.1.4", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "04229f163664973f68f38f6f73d917799168ef24" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/04229f163664973f68f38f6f73d917799168ef24", + "reference": "04229f163664973f68f38f6f73d917799168ef24", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.3", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.1.4" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-05-27T13:40:54+00:00" + }, + { + "name": "composer/spdx-licenses", + "version": "1.5.8", + "source": { + "type": "git", + "url": "https://github.com/composer/spdx-licenses.git", + "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a", + "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.55", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Spdx\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "SPDX licenses list and validation library.", + "keywords": [ + "license", + "spdx", + "validator" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/spdx-licenses/issues", + "source": "https://github.com/composer/spdx-licenses/tree/1.5.8" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2023-11-20T07:44:33+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "3.0.5", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", + "shasum": "" + }, + "require": { + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" + }, + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-05-06T16:37:16+00:00" + }, + { + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/composer-installer.git", + "reference": "4be43904336affa5c2f70744a348312336afd0da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", + "reference": "4be43904336affa5c2f70744a348312336afd0da", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=5.4", + "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + }, + "require-dev": { + "composer/composer": "*", + "ext-json": "*", + "ext-zip": "*", + "php-parallel-lint/php-parallel-lint": "^1.3.1", + "phpcompatibility/php-compatibility": "^9.0", + "yoast/phpunit-polyfills": "^1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + }, + "autoload": { + "psr-4": { + "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Franck Nijhof", + "email": "franck.nijhof@dealerdirect.com", + "homepage": "http://www.frenck.nl", + "role": "Developer / IT Manager" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "homepage": "http://www.dealerdirect.com", + "keywords": [ + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcbf", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "source": "https://github.com/PHPCSStandards/composer-installer" + }, + "time": "2023-01-05T11:28:13+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "doctrine/coding-standard": "^11", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^1.2", + "phpstan/phpstan": "^1.9.4", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5.27", + "vimeo/psalm": "^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/2.0.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-12-30T00:23:10+00:00" + }, + { + "name": "drupal/coder", + "version": "8.3.24", + "source": { + "type": "git", + "url": "https://github.com/pfrenssen/coder.git", + "reference": "1a59890f972db5da091354f0191dec1037f7c582" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pfrenssen/coder/zipball/1a59890f972db5da091354f0191dec1037f7c582", + "reference": "1a59890f972db5da091354f0191dec1037f7c582", + "shasum": "" + }, + "require": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.1 || ^1.0.0", + "ext-mbstring": "*", + "php": ">=7.2", + "sirbrillig/phpcs-variable-analysis": "^2.11.7", + "slevomat/coding-standard": "^8.11", + "squizlabs/php_codesniffer": "^3.9.1", + "symfony/yaml": ">=3.4.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.7.12", + "phpunit/phpunit": "^8.0" + }, + "type": "phpcodesniffer-standard", + "autoload": { + "psr-4": { + "Drupal\\": "coder_sniffer/Drupal/", + "DrupalPractice\\": "coder_sniffer/DrupalPractice/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "description": "Coder is a library to review Drupal code.", + "homepage": "https://www.drupal.org/project/coder", + "keywords": [ + "code review", + "phpcs", + "standards" + ], + "support": { + "issues": "https://www.drupal.org/project/issues/coder", + "source": "https://www.drupal.org/project/coder" + }, + "time": "2024-04-21T06:13:24+00:00" + }, + { + "name": "drupal/core-dev-pinned", + "version": "10.3.1", + "source": { + "type": "git", + "url": "https://github.com/drupal/core-dev-pinned.git", + "reference": "579bfea56e8208a7c4ecc0250f7d5371860724b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/drupal/core-dev-pinned/zipball/579bfea56e8208a7c4ecc0250f7d5371860724b3", + "reference": "579bfea56e8208a7c4ecc0250f7d5371860724b3", + "shasum": "" + }, + "require": { + "behat/mink": "v1.11.0", + "behat/mink-browserkit-driver": "v2.2.0", + "colinodell/psr-testlogger": "v1.3.0", + "composer/ca-bundle": "1.5.0", + "composer/class-map-generator": "1.3.4", + "composer/composer": "2.7.7", + "composer/metadata-minifier": "1.0.0", + "composer/pcre": "3.1.4", + "composer/spdx-licenses": "1.5.8", + "composer/xdebug-handler": "3.0.5", + "dealerdirect/phpcodesniffer-composer-installer": "v1.0.0", + "doctrine/instantiator": "2.0.0", + "drupal/coder": "8.3.24", + "drupal/core": "10.3.1", + "google/protobuf": "v3.25.3", + "justinrainbow/json-schema": "v5.2.13", + "lullabot/mink-selenium2-driver": "v1.7.2", + "lullabot/php-webdriver": "v2.0.4", + "mglaman/phpstan-drupal": "1.2.11", + "micheh/phpcs-gitlab": "1.1.0", + "mikey179/vfsstream": "v1.6.11", + "myclabs/deep-copy": "1.11.1", + "nikic/php-parser": "v5.0.2", + "open-telemetry/api": "1.0.3", + "open-telemetry/context": "1.0.2", + "open-telemetry/exporter-otlp": "1.0.4", + "open-telemetry/gen-otlp-protobuf": "1.1.0", + "open-telemetry/sdk": "1.0.8", + "open-telemetry/sem-conv": "1.25.0", + "phar-io/manifest": "2.0.4", + "phar-io/version": "3.2.1", + "php-http/discovery": "1.19.4", + "php-http/guzzle7-adapter": "1.0.0", + "php-http/httplug": "2.4.0", + "php-http/promise": "1.3.1", + "phpdocumentor/reflection-common": "2.2.0", + "phpdocumentor/reflection-docblock": "5.4.0", + "phpdocumentor/type-resolver": "1.8.2", + "phpspec/prophecy": "v1.19.0", + "phpspec/prophecy-phpunit": "v2.2.0", + "phpstan/extension-installer": "1.3.1", + "phpstan/phpdoc-parser": "1.29.0", + "phpstan/phpstan": "1.11.0", + "phpstan/phpstan-deprecation-rules": "1.2.0", + "phpstan/phpstan-phpunit": "1.4.0", + "phpunit/php-code-coverage": "9.2.31", + "phpunit/php-file-iterator": "3.0.6", + "phpunit/php-invoker": "3.1.1", + "phpunit/php-text-template": "2.0.4", + "phpunit/php-timer": "5.0.3", + "phpunit/phpunit": "9.6.19", + "react/promise": "v3.2.0", + "sebastian/cli-parser": "1.0.2", + "sebastian/code-unit": "1.0.8", + "sebastian/code-unit-reverse-lookup": "2.0.3", + "sebastian/comparator": "4.0.8", + "sebastian/complexity": "2.0.3", + "sebastian/environment": "5.1.5", + "sebastian/exporter": "4.0.6", + "sebastian/global-state": "5.0.7", + "sebastian/lines-of-code": "1.0.4", + "sebastian/object-enumerator": "4.0.4", + "sebastian/object-reflector": "2.0.4", + "sebastian/recursion-context": "4.0.5", + "sebastian/resource-operations": "3.0.4", + "sebastian/type": "3.2.1", + "sebastian/version": "3.0.2", + "seld/jsonlint": "1.10.2", + "seld/phar-utils": "1.2.1", + "seld/signal-handler": "2.0.2", + "sirbrillig/phpcs-variable-analysis": "v2.11.18", + "slevomat/coding-standard": "8.15.0", + "squizlabs/php_codesniffer": "3.9.2", + "symfony/browser-kit": "v6.4.7", + "symfony/css-selector": "v6.4.7", + "symfony/dom-crawler": "v6.4.7", + "symfony/lock": "v6.4.7", + "symfony/phpunit-bridge": "v6.4.7", + "symfony/polyfill-php82": "v1.29.0", + "theseer/tokenizer": "1.2.3", + "webflo/drupal-finder": "1.3.0", + "webmozart/assert": "1.11.0" + }, + "conflict": { + "webflo/drupal-core-require-dev": "*" + }, + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "description": "Pinned require-dev dependencies from drupal/drupal; use in addition to drupal/core-recommended to run tests from drupal/core.", + "support": { + "source": "https://github.com/drupal/core-dev-pinned/tree/10.3.1" + }, + "time": "2024-07-04T11:33:45+00:00" + }, + { + "name": "google/protobuf", + "version": "v3.25.3", + "source": { + "type": "git", + "url": "https://github.com/protocolbuffers/protobuf-php.git", + "reference": "983a87f4f8798a90ca3a25b0f300b8fda38df643" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/983a87f4f8798a90ca3a25b0f300b8fda38df643", + "reference": "983a87f4f8798a90ca3a25b0f300b8fda38df643", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": ">=5.0.0" + }, + "suggest": { + "ext-bcmath": "Need to support JSON deserialization" + }, + "type": "library", + "autoload": { + "psr-4": { + "Google\\Protobuf\\": "src/Google/Protobuf", + "GPBMetadata\\Google\\Protobuf\\": "src/GPBMetadata/Google/Protobuf" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "proto library for PHP", + "homepage": "https://developers.google.com/protocol-buffers/", + "keywords": [ + "proto" + ], + "support": { + "source": "https://github.com/protocolbuffers/protobuf-php/tree/v3.25.3" + }, + "time": "2024-02-15T21:11:49+00:00" + }, + { + "name": "justinrainbow/json-schema", + "version": "v5.2.13", + "source": { + "type": "git", + "url": "https://github.com/jsonrainbow/json-schema.git", + "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/fbbe7e5d79f618997bc3332a6f49246036c45793", + "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" + }, + "bin": [ + "bin/validate-json" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" + } + ], + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": [ + "json", + "schema" + ], + "support": { + "issues": "https://github.com/jsonrainbow/json-schema/issues", + "source": "https://github.com/jsonrainbow/json-schema/tree/v5.2.13" + }, + "time": "2023-09-26T02:20:38+00:00" + }, + { + "name": "lullabot/mink-selenium2-driver", + "version": "v1.7.2", + "source": { + "type": "git", + "url": "https://github.com/Lullabot/MinkSelenium2Driver.git", + "reference": "5f9ecc2dc329d87442843f6143a4307a62fc5f8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Lullabot/MinkSelenium2Driver/zipball/5f9ecc2dc329d87442843f6143a4307a62fc5f8c", + "reference": "5f9ecc2dc329d87442843f6143a4307a62fc5f8c", + "shasum": "" + }, + "require": { + "behat/mink": "^1.11@dev", + "ext-json": "*", + "lullabot/php-webdriver": "^2.0", + "php": ">=7.2" + }, + "replace": { + "behat/mink-selenium2-driver": "1.7.0" + }, + "require-dev": { + "mink/driver-testsuite": "dev-master", + "phpstan/phpstan": "^1.10", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^8.5.22 || ^9.5.11", + "symfony/error-handler": "^4.4 || ^5.0 || ^6.0 || ^7.0" + }, + "type": "mink-driver", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\Driver\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Pete Otaqui", + "email": "pete@otaqui.com", + "homepage": "https://github.com/pete-otaqui" + }, + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Selenium2 (WebDriver) driver for Mink framework", + "homepage": "https://mink.behat.org/", + "keywords": [ + "ajax", + "browser", + "javascript", + "selenium", + "testing", + "webdriver" + ], + "support": { + "source": "https://github.com/Lullabot/MinkSelenium2Driver/tree/v1.7.2" + }, + "time": "2024-02-12T10:40:39+00:00" + }, + { + "name": "lullabot/php-webdriver", + "version": "v2.0.4", + "source": { + "type": "git", + "url": "https://github.com/Lullabot/php-webdriver.git", + "reference": "55fb15bd92663c3f90f42b2c79ca3ee11f2d7925" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Lullabot/php-webdriver/zipball/55fb15bd92663c3f90f42b2c79ca3ee11f2d7925", + "reference": "55fb15bd92663c3f90f42b2c79ca3ee11f2d7925", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=8.0.0" + }, + "replace": { + "instaclick/php-webdriver": "1.4.16" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^9.5" + }, + "type": "library", + "autoload": { + "psr-0": { + "WebDriver": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "PHP WebDriver for Selenium 2", + "homepage": "https://www.lullabot.com/", + "keywords": [ + "browser", + "selenium", + "webdriver", + "webtest" + ], + "support": { + "source": "https://github.com/Lullabot/php-webdriver/tree/v2.0.4" + }, + "time": "2024-07-04T09:19:59+00:00" + }, + { + "name": "mglaman/phpstan-drupal", + "version": "1.2.11", + "source": { + "type": "git", + "url": "https://github.com/mglaman/phpstan-drupal.git", + "reference": "e624a4b64de5b91a0c56852635af2115e9a6e08c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/e624a4b64de5b91a0c56852635af2115e9a6e08c", + "reference": "e624a4b64de5b91a0c56852635af2115e9a6e08c", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "phpstan/phpstan": "^1.10.56", + "phpstan/phpstan-deprecation-rules": "^1.1.4", + "symfony/finder": "^4.2 || ^5.0 || ^6.0 || ^7.0", + "symfony/yaml": "^4.2|| ^5.0 || ^6.0 || ^7.0", + "webflo/drupal-finder": "^1.2" + }, + "require-dev": { + "behat/mink": "^1.8", + "composer/installers": "^1.9", + "drupal/core-recommended": "^10", + "drush/drush": "^10.0 || ^11 || ^12 || ^13@beta", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^8.5 || ^9 || ^10 || ^11", + "slevomat/coding-standard": "^7.1", + "squizlabs/php_codesniffer": "^3.3", + "symfony/phpunit-bridge": "^4.4 || ^5.4 || ^6.0 || ^7.0" + }, + "suggest": { + "jangregor/phpstan-prophecy": "Provides a prophecy/prophecy extension for phpstan/phpstan.", + "phpstan/phpstan-deprecation-rules": "For catching deprecations, especially in Drupal core.", + "phpstan/phpstan-phpunit": "PHPUnit extensions and rules for PHPStan." + }, + "type": "phpstan-extension", + "extra": { + "branch-alias": { + "dev-main": "1.0-dev" + }, + "installer-paths": { + "tests/fixtures/drupal/core": [ + "type:drupal-core" + ], + "tests/fixtures/drupal/libraries/{$name}": [ + "type:drupal-library" + ], + "tests/fixtures/drupal/modules/contrib/{$name}": [ + "type:drupal-module" + ], + "tests/fixtures/drupal/profiles/contrib/{$name}": [ + "type:drupal-profile" + ], + "tests/fixtures/drupal/themes/contrib/{$name}": [ + "type:drupal-theme" + ] + }, + "phpstan": { + "includes": [ + "extension.neon", + "rules.neon" + ] + } + }, + "autoload": { + "psr-4": { + "mglaman\\PHPStanDrupal\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Glaman", + "email": "nmd.matt@gmail.com" + } + ], + "description": "Drupal extension and rules for PHPStan", + "support": { + "issues": "https://github.com/mglaman/phpstan-drupal/issues", + "source": "https://github.com/mglaman/phpstan-drupal/tree/1.2.11" + }, + "funding": [ + { + "url": "https://github.com/mglaman", + "type": "github" + }, + { + "url": "https://opencollective.com/phpstan-drupal", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/mglaman/phpstan-drupal", + "type": "tidelift" + } + ], + "time": "2024-05-10T17:22:10+00:00" + }, + { + "name": "micheh/phpcs-gitlab", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/micheh/phpcs-gitlab.git", + "reference": "fd64e6579d9e30a82abba616fabcb9a2c837c7a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/micheh/phpcs-gitlab/zipball/fd64e6579d9e30a82abba616fabcb9a2c837c7a8", + "reference": "fd64e6579d9e30a82abba616fabcb9a2c837c7a8", + "shasum": "" + }, + "require": { + "ext-json": "*" + }, + "require-dev": { + "phpunit/phpunit": "^8.0 || ^9.0", + "squizlabs/php_codesniffer": "^3.3.1", + "vimeo/psalm": "^4.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Micheh\\PhpCodeSniffer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Michel Hunziker", + "email": "info@michelhunziker.com" + } + ], + "description": "Gitlab Report for PHP_CodeSniffer (display the violations in the Gitlab CI/CD Code Quality Report)", + "keywords": [ + "PHP_CodeSniffer", + "code quality", + "gitlab", + "phpcs", + "report" + ], + "support": { + "issues": "https://github.com/micheh/phpcs-gitlab/issues", + "source": "https://github.com/micheh/phpcs-gitlab/tree/1.1.0" + }, + "time": "2020-12-20T09:39:07+00:00" + }, + { + "name": "mikey179/vfsstream", + "version": "v1.6.11", + "source": { + "type": "git", + "url": "https://github.com/bovigo/vfsStream.git", + "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f", + "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.5|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-0": { + "org\\bovigo\\vfs\\": "src/main/php" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Frank Kleine", + "homepage": "http://frankkleine.de/", + "role": "Developer" + } + ], + "description": "Virtual file system to mock the real file system in unit tests.", + "homepage": "http://vfs.bovigo.org/", + "support": { + "issues": "https://github.com/bovigo/vfsStream/issues", + "source": "https://github.com/bovigo/vfsStream/tree/master", + "wiki": "https://github.com/bovigo/vfsStream/wiki" + }, + "time": "2022-02-23T02:02:42+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2023-03-08T13:26:56+00:00" + }, + { + "name": "open-telemetry/api", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/opentelemetry-php/api.git", + "reference": "87de95d926f46262885d0d390060c095af13e2e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/87de95d926f46262885d0d390060c095af13e2e5", + "reference": "87de95d926f46262885d0d390060c095af13e2e5", + "shasum": "" + }, + "require": { + "open-telemetry/context": "^1.0", + "php": "^7.4 || ^8.0", + "psr/log": "^1.1|^2.0|^3.0", + "symfony/polyfill-php80": "^1.26", + "symfony/polyfill-php81": "^1.26", + "symfony/polyfill-php82": "^1.26" + }, + "conflict": { + "open-telemetry/sdk": "<=1.0.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0.x-dev" + } + }, + "autoload": { + "files": [ + "Trace/functions.php" + ], + "psr-4": { + "OpenTelemetry\\API\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "opentelemetry-php contributors", + "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" + } + ], + "description": "API for OpenTelemetry PHP.", + "keywords": [ + "Metrics", + "api", + "apm", + "logging", + "opentelemetry", + "otel", + "tracing" + ], + "support": { + "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", + "docs": "https://opentelemetry.io/docs/php", + "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", + "source": "https://github.com/open-telemetry/opentelemetry-php" + }, + "time": "2024-02-06T01:32:25+00:00" + }, + { + "name": "open-telemetry/context", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/opentelemetry-php/context.git", + "reference": "e9d254a7c89885e63fd2fde54e31e81aaaf52b7c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opentelemetry-php/context/zipball/e9d254a7c89885e63fd2fde54e31e81aaaf52b7c", + "reference": "e9d254a7c89885e63fd2fde54e31e81aaaf52b7c", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "symfony/polyfill-php80": "^1.26", + "symfony/polyfill-php81": "^1.26", + "symfony/polyfill-php82": "^1.26" + }, + "suggest": { + "ext-ffi": "To allow context switching in Fibers" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0.x-dev" + } + }, + "autoload": { + "files": [ + "fiber/initialize_fiber_handler.php" + ], + "psr-4": { + "OpenTelemetry\\Context\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "opentelemetry-php contributors", + "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" + } + ], + "description": "Context implementation for OpenTelemetry PHP.", + "keywords": [ + "Context", + "opentelemetry", + "otel" + ], + "support": { + "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", + "docs": "https://opentelemetry.io/docs/php", + "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", + "source": "https://github.com/open-telemetry/opentelemetry-php" + }, + "time": "2024-01-13T05:50:44+00:00" + }, + { + "name": "open-telemetry/exporter-otlp", + "version": "1.0.4", + "source": { + "type": "git", + "url": "https://github.com/opentelemetry-php/exporter-otlp.git", + "reference": "342686bfce05867b56561a0af2fc8a4a8f27b3cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opentelemetry-php/exporter-otlp/zipball/342686bfce05867b56561a0af2fc8a4a8f27b3cc", + "reference": "342686bfce05867b56561a0af2fc8a4a8f27b3cc", + "shasum": "" + }, + "require": { + "open-telemetry/api": "^1.0", + "open-telemetry/gen-otlp-protobuf": "^1.1", + "open-telemetry/sdk": "^1.0", + "php": "^7.4 || ^8.0", + "php-http/discovery": "^1.14" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0.x-dev" + } + }, + "autoload": { + "files": [ + "_register.php" + ], + "psr-4": { + "OpenTelemetry\\Contrib\\Otlp\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "opentelemetry-php contributors", + "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" + } + ], + "description": "OTLP exporter for OpenTelemetry.", + "keywords": [ + "Metrics", + "exporter", + "gRPC", + "http", + "opentelemetry", + "otel", + "otlp", + "tracing" + ], + "support": { + "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", + "docs": "https://opentelemetry.io/docs/php", + "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", + "source": "https://github.com/open-telemetry/opentelemetry-php" + }, + "time": "2024-02-28T21:57:02+00:00" + }, + { + "name": "open-telemetry/gen-otlp-protobuf", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/opentelemetry-php/gen-otlp-protobuf.git", + "reference": "76e2a44357f8c3fdcabcb070ec8a59e52ae3e3c3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opentelemetry-php/gen-otlp-protobuf/zipball/76e2a44357f8c3fdcabcb070ec8a59e52ae3e3c3", + "reference": "76e2a44357f8c3fdcabcb070ec8a59e52ae3e3c3", + "shasum": "" + }, + "require": { + "google/protobuf": "^3.3.0", + "php": "^7.4 || ^8.0" + }, + "suggest": { + "ext-protobuf": "For better performance, when dealing with the protobuf format" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Opentelemetry\\Proto\\": "Opentelemetry/Proto/", + "GPBMetadata\\Opentelemetry\\": "GPBMetadata/Opentelemetry/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "opentelemetry-php contributors", + "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" + } + ], + "description": "PHP protobuf files for communication with OpenTelemetry OTLP collectors/servers.", + "keywords": [ + "Metrics", + "apm", + "gRPC", + "logging", + "opentelemetry", + "otel", + "otlp", + "protobuf", + "tracing" + ], + "support": { + "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", + "docs": "https://opentelemetry.io/docs/php", + "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", + "source": "https://github.com/open-telemetry/opentelemetry-php" + }, + "time": "2024-01-16T21:54:57+00:00" + }, + { + "name": "open-telemetry/sdk", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/opentelemetry-php/sdk.git", + "reference": "1da4c0ca4f1a3c0fe84b81729dadec16f464fa77" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opentelemetry-php/sdk/zipball/1da4c0ca4f1a3c0fe84b81729dadec16f464fa77", + "reference": "1da4c0ca4f1a3c0fe84b81729dadec16f464fa77", + "shasum": "" + }, + "require": { + "ext-json": "*", + "open-telemetry/api": "^1.0", + "open-telemetry/context": "^1.0", + "open-telemetry/sem-conv": "^1.0", + "php": "^7.4 || ^8.0", + "php-http/discovery": "^1.14", + "psr/http-client": "^1.0", + "psr/http-client-implementation": "^1.0", + "psr/http-factory-implementation": "^1.0", + "psr/http-message": "^1.0.1|^2.0", + "psr/log": "^1.1|^2.0|^3.0", + "symfony/polyfill-mbstring": "^1.23", + "symfony/polyfill-php80": "^1.26", + "symfony/polyfill-php81": "^1.26", + "symfony/polyfill-php82": "^1.26" + }, + "suggest": { + "ext-gmp": "To support unlimited number of synchronous metric readers", + "ext-mbstring": "To increase performance of string operations" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0.x-dev" + } + }, + "autoload": { + "files": [ + "Common/Util/functions.php", + "Logs/Exporter/_register.php", + "Metrics/MetricExporter/_register.php", + "Propagation/_register.php", + "Trace/SpanExporter/_register.php", + "Common/Dev/Compatibility/_load.php", + "_autoload.php" + ], + "psr-4": { + "OpenTelemetry\\SDK\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "opentelemetry-php contributors", + "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" + } + ], + "description": "SDK for OpenTelemetry PHP.", + "keywords": [ + "Metrics", + "apm", + "logging", + "opentelemetry", + "otel", + "sdk", + "tracing" + ], + "support": { + "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", + "docs": "https://opentelemetry.io/docs/php", + "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", + "source": "https://github.com/open-telemetry/opentelemetry-php" + }, + "time": "2024-02-02T03:42:40+00:00" + }, + { + "name": "open-telemetry/sem-conv", + "version": "1.25.0", + "source": { + "type": "git", + "url": "https://github.com/opentelemetry-php/sem-conv.git", + "reference": "23f457ba390847647a17068e0095d9ffe9a4824c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opentelemetry-php/sem-conv/zipball/23f457ba390847647a17068e0095d9ffe9a4824c", + "reference": "23f457ba390847647a17068e0095d9ffe9a4824c", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "OpenTelemetry\\SemConv\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "opentelemetry-php contributors", + "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" + } + ], + "description": "Semantic conventions for OpenTelemetry PHP.", + "keywords": [ + "Metrics", + "apm", + "logging", + "opentelemetry", + "otel", + "semantic conventions", + "semconv", + "tracing" + ], + "support": { + "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", + "docs": "https://opentelemetry.io/docs/php", + "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", + "source": "https://github.com/open-telemetry/opentelemetry-php" + }, + "time": "2024-04-09T23:31:35+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "54750ef60c58e43759730615a392c31c80e23176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "php-http/discovery", + "version": "1.19.4", + "source": { + "type": "git", + "url": "https://github.com/php-http/discovery.git", + "reference": "0700efda8d7526335132360167315fdab3aeb599" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/discovery/zipball/0700efda8d7526335132360167315fdab3aeb599", + "reference": "0700efda8d7526335132360167315fdab3aeb599", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": "^7.1 || ^8.0" + }, + "conflict": { + "nyholm/psr7": "<1.0", + "zendframework/zend-diactoros": "*" + }, + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "*", + "psr/http-factory-implementation": "*", + "psr/http-message-implementation": "*" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "graham-campbell/phpspec-skip-example-extension": "^5.0", + "php-http/httplug": "^1.0 || ^2.0", + "php-http/message-factory": "^1.0", + "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3", + "sebastian/comparator": "^3.0.5 || ^4.0.8", + "symfony/phpunit-bridge": "^6.4.4 || ^7.0.1" + }, + "type": "composer-plugin", + "extra": { + "class": "Http\\Discovery\\Composer\\Plugin", + "plugin-optional": true + }, + "autoload": { + "psr-4": { + "Http\\Discovery\\": "src/" + }, + "exclude-from-classmap": [ + "src/Composer/Plugin.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations", + "homepage": "http://php-http.org", + "keywords": [ + "adapter", + "client", + "discovery", + "factory", + "http", + "message", + "psr17", + "psr7" + ], + "support": { + "issues": "https://github.com/php-http/discovery/issues", + "source": "https://github.com/php-http/discovery/tree/1.19.4" + }, + "time": "2024-03-29T13:00:05+00:00" + }, + { + "name": "php-http/guzzle7-adapter", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/guzzle7-adapter.git", + "reference": "fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/guzzle7-adapter/zipball/fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01", + "reference": "fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^7.0", + "php": "^7.2 | ^8.0", + "php-http/httplug": "^2.0", + "psr/http-client": "^1.0" + }, + "provide": { + "php-http/async-client-implementation": "1.0", + "php-http/client-implementation": "1.0", + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.0|^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Http\\Adapter\\Guzzle7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com" + } + ], + "description": "Guzzle 7 HTTP Adapter", + "homepage": "http://httplug.io", + "keywords": [ + "Guzzle", + "http" + ], + "support": { + "issues": "https://github.com/php-http/guzzle7-adapter/issues", + "source": "https://github.com/php-http/guzzle7-adapter/tree/1.0.0" + }, + "time": "2021-03-09T07:35:15+00:00" + }, + { + "name": "php-http/httplug", + "version": "2.4.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/httplug.git", + "reference": "625ad742c360c8ac580fcc647a1541d29e257f67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/httplug/zipball/625ad742c360c8ac580fcc647a1541d29e257f67", + "reference": "625ad742c360c8ac580fcc647a1541d29e257f67", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "php-http/promise": "^1.1", + "psr/http-client": "^1.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "require-dev": { + "friends-of-phpspec/phpspec-code-coverage": "^4.1 || ^5.0 || ^6.0", + "phpspec/phpspec": "^5.1 || ^6.0 || ^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eric GELOEN", + "email": "geloen.eric@gmail.com" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "HTTPlug, the HTTP client abstraction for PHP", + "homepage": "http://httplug.io", + "keywords": [ + "client", + "http" + ], + "support": { + "issues": "https://github.com/php-http/httplug/issues", + "source": "https://github.com/php-http/httplug/tree/2.4.0" + }, + "time": "2023-04-14T15:10:03+00:00" + }, + { + "name": "php-http/promise", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/php-http/promise.git", + "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/promise/zipball/fc85b1fba37c169a69a07ef0d5a8075770cc1f83", + "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "friends-of-phpspec/phpspec-code-coverage": "^4.3.2 || ^6.3", + "phpspec/phpspec": "^5.1.2 || ^6.2 || ^7.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Http\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Joel Wurtz", + "email": "joel.wurtz@gmail.com" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Promise used for asynchronous HTTP requests", + "homepage": "http://httplug.io", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/php-http/promise/issues", + "source": "https://github.com/php-http/promise/tree/1.3.1" + }, + "time": "2024-03-15T13:55:21+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "298d2febfe79d03fe714eb871d5538da55205b1a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/298d2febfe79d03fe714eb871d5538da55205b1a", + "reference": "298d2febfe79d03fe714eb871d5538da55205b1a", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.1", + "ext-filter": "*", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.7", + "phpstan/phpdoc-parser": "^1.7", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.5", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.0" + }, + "time": "2024-04-09T21:13:58+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.8.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "153ae662783729388a584b4361f2545e4d841e3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c", + "reference": "153ae662783729388a584b4361f2545e4d841e3c", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.3 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.13" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2" + }, + "time": "2024-02-23T11:10:43+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "v1.19.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/67a759e7d8746d501c41536ba40cd9c0a07d6a87", + "reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2 || ^2.0", + "php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.*", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0 || ^5.0 || ^6.0", + "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0 || ^6.0" + }, + "require-dev": { + "phpspec/phpspec": "^6.0 || ^7.0", + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^8.0 || ^9.0 || ^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "dev", + "fake", + "mock", + "spy", + "stub" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/v1.19.0" + }, + "time": "2024-02-29T11:52:51+00:00" + }, + { + "name": "phpspec/prophecy-phpunit", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy-phpunit.git", + "reference": "16e1247e139434bce0bac09848bc5c8d882940fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy-phpunit/zipball/16e1247e139434bce0bac09848bc5c8d882940fc", + "reference": "16e1247e139434bce0bac09848bc5c8d882940fc", + "shasum": "" + }, + "require": { + "php": "^7.3 || ^8", + "phpspec/prophecy": "^1.18", + "phpunit/phpunit": "^9.1 || ^10.1 || ^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\PhpUnit\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + } + ], + "description": "Integrating the Prophecy mocking library in PHPUnit test cases", + "homepage": "http://phpspec.net", + "keywords": [ + "phpunit", + "prophecy" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy-phpunit/issues", + "source": "https://github.com/phpspec/prophecy-phpunit/tree/v2.2.0" + }, + "time": "2024-03-01T08:33:58+00:00" + }, + { + "name": "phpstan/extension-installer", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/phpstan/extension-installer.git", + "reference": "f45734bfb9984c6c56c4486b71230355f066a58a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/f45734bfb9984c6c56c4486b71230355f066a58a", + "reference": "f45734bfb9984c6c56c4486b71230355f066a58a", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0", + "php": "^7.2 || ^8.0", + "phpstan/phpstan": "^1.9.0" + }, + "require-dev": { + "composer/composer": "^2.0", + "php-parallel-lint/php-parallel-lint": "^1.2.0", + "phpstan/phpstan-strict-rules": "^0.11 || ^0.12 || ^1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PHPStan\\ExtensionInstaller\\Plugin" + }, + "autoload": { + "psr-4": { + "PHPStan\\ExtensionInstaller\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Composer plugin for automatic installation of PHPStan extensions", + "support": { + "issues": "https://github.com/phpstan/extension-installer/issues", + "source": "https://github.com/phpstan/extension-installer/tree/1.3.1" + }, + "time": "2023-05-24T08:59:17+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.29.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/536889f2b340489d328f5ffb7b02bb6b183ddedc", + "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.0" + }, + "time": "2024-05-06T12:04:23+00:00" + }, + { + "name": "phpstan/phpstan", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan.git", + "reference": "666cb1703742cea9cc80fee631f0940e1592fa6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/666cb1703742cea9cc80fee631f0940e1592fa6e", + "reference": "666cb1703742cea9cc80fee631f0940e1592fa6e", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0" + }, + "conflict": { + "phpstan/phpstan-shim": "*" + }, + "bin": [ + "phpstan", + "phpstan.phar" + ], + "type": "library", + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], + "support": { + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", + "issues": "https://github.com/phpstan/phpstan/issues", + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" + }, + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://github.com/phpstan", + "type": "github" + } + ], + "time": "2024-05-13T06:02:22+00:00" + }, + { + "name": "phpstan/phpstan-deprecation-rules", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan-deprecation-rules.git", + "reference": "fa8cce7720fa782899a0aa97b6a41225d1bb7b26" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/fa8cce7720fa782899a0aa97b6a41225d1bb7b26", + "reference": "fa8cce7720fa782899a0aa97b6a41225d1bb7b26", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "phpstan/phpstan": "^1.11" + }, + "require-dev": { + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5" + }, + "type": "phpstan-extension", + "extra": { + "phpstan": { + "includes": [ + "rules.neon" + ] + } + }, + "autoload": { + "psr-4": { + "PHPStan\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.", + "support": { + "issues": "https://github.com/phpstan/phpstan-deprecation-rules/issues", + "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.2.0" + }, + "time": "2024-04-20T06:39:48+00:00" + }, + { + "name": "phpstan/phpstan-phpunit", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan-phpunit.git", + "reference": "f3ea021866f4263f07ca3636bf22c64be9610c11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/f3ea021866f4263f07ca3636bf22c64be9610c11", + "reference": "f3ea021866f4263f07ca3636bf22c64be9610c11", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "phpstan/phpstan": "^1.11" + }, + "conflict": { + "phpunit/phpunit": "<7.0" + }, + "require-dev": { + "nikic/php-parser": "^4.13.0", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/phpstan-strict-rules": "^1.5.1", + "phpunit/phpunit": "^9.5" + }, + "type": "phpstan-extension", + "extra": { + "phpstan": { + "includes": [ + "extension.neon", + "rules.neon" + ] + } + }, + "autoload": { + "psr-4": { + "PHPStan\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPUnit extensions and rules for PHPStan", + "support": { + "issues": "https://github.com/phpstan/phpstan-phpunit/issues", + "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.4.0" + }, + "time": "2024-04-20T06:39:00+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.31", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/48c34b5d8d983006bd2adc2d0de92963b9155965", + "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.31" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T06:37:42+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.6.19", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a1a54a473501ef4cdeaae4e06891674114d79db8", + "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1 || ^2", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.28", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.6-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.19" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2024-04-05T04:35:58+00:00" + }, + { + "name": "react/promise", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/promise.git", + "reference": "8a164643313c71354582dc850b42b33fa12a4b63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63", + "reference": "8a164643313c71354582dc850b42b33fa12a4b63", + "shasum": "" + }, + "require": { + "php": ">=7.1.0" + }, + "require-dev": { + "phpstan/phpstan": "1.10.39 || 1.4.10", + "phpunit/phpunit": "^9.6 || ^7.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "A lightweight implementation of CommonJS Promises/A for PHP", + "keywords": [ + "promise", + "promises" + ], + "support": { + "issues": "https://github.com/reactphp/promise/issues", + "source": "https://github.com/reactphp/promise/tree/v3.2.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2024-05-24T10:39:05+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T06:27:43+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-22T06:19:30+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:03:51+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T06:33:00+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.7", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T06:35:11+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-22T06:20:34+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:07:39+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-14T16:00:52+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:13:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "seld/jsonlint", + "version": "1.10.2", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "9bb7db07b5d66d90f6ebf542f09fc67d800e5259" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9bb7db07b5d66d90f6ebf542f09fc67d800e5259", + "reference": "9bb7db07b5d66d90f6ebf542f09fc67d800e5259", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" + }, + "bin": [ + "bin/jsonlint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Seld\\JsonLint\\": "src/Seld/JsonLint/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], + "support": { + "issues": "https://github.com/Seldaek/jsonlint/issues", + "source": "https://github.com/Seldaek/jsonlint/tree/1.10.2" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "type": "tidelift" + } + ], + "time": "2024-02-07T12:57:50+00:00" + }, + { + "name": "seld/phar-utils", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/phar-utils.git", + "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", + "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\PharUtils\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "PHAR file format utilities, for when PHP phars you up", + "keywords": [ + "phar" + ], + "support": { + "issues": "https://github.com/Seldaek/phar-utils/issues", + "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1" + }, + "time": "2022-08-31T10:31:18+00:00" + }, + { + "name": "seld/signal-handler", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/signal-handler.git", + "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98", + "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "require-dev": { + "phpstan/phpstan": "^1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^7.5.20 || ^8.5.23", + "psr/log": "^1 || ^2 || ^3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\Signal\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development", + "keywords": [ + "posix", + "sigint", + "signal", + "sigterm", + "unix" + ], + "support": { + "issues": "https://github.com/Seldaek/signal-handler/issues", + "source": "https://github.com/Seldaek/signal-handler/tree/2.0.2" + }, + "time": "2023-09-03T09:24:00+00:00" + }, + { + "name": "sirbrillig/phpcs-variable-analysis", + "version": "v2.11.18", + "source": { + "type": "git", + "url": "https://github.com/sirbrillig/phpcs-variable-analysis.git", + "reference": "ca242a0b7309e0f9d1f73b236e04ecf4ca3248d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sirbrillig/phpcs-variable-analysis/zipball/ca242a0b7309e0f9d1f73b236e04ecf4ca3248d0", + "reference": "ca242a0b7309e0f9d1f73b236e04ecf4ca3248d0", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "squizlabs/php_codesniffer": "^3.5.6" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || ^1.0", + "phpcsstandards/phpcsdevcs": "^1.1", + "phpstan/phpstan": "^1.7", + "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.5 || ^7.0 || ^8.0 || ^9.0", + "sirbrillig/phpcs-import-detection": "^1.1", + "vimeo/psalm": "^0.2 || ^0.3 || ^1.1 || ^4.24 || ^5.0@beta" + }, + "type": "phpcodesniffer-standard", + "autoload": { + "psr-4": { + "VariableAnalysis\\": "VariableAnalysis/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Sam Graham", + "email": "php-codesniffer-variableanalysis@illusori.co.uk" + }, + { + "name": "Payton Swick", + "email": "payton@foolord.com" + } + ], + "description": "A PHPCS sniff to detect problems with variables.", + "keywords": [ + "phpcs", + "static analysis" + ], + "support": { + "issues": "https://github.com/sirbrillig/phpcs-variable-analysis/issues", + "source": "https://github.com/sirbrillig/phpcs-variable-analysis", + "wiki": "https://github.com/sirbrillig/phpcs-variable-analysis/wiki" + }, + "time": "2024-04-13T16:42:46+00:00" + }, + { + "name": "slevomat/coding-standard", + "version": "8.15.0", + "source": { + "type": "git", + "url": "https://github.com/slevomat/coding-standard.git", + "reference": "7d1d957421618a3803b593ec31ace470177d7817" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/7d1d957421618a3803b593ec31ace470177d7817", + "reference": "7d1d957421618a3803b593ec31ace470177d7817", + "shasum": "" + }, + "require": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0", + "php": "^7.2 || ^8.0", + "phpstan/phpdoc-parser": "^1.23.1", + "squizlabs/php_codesniffer": "^3.9.0" + }, + "require-dev": { + "phing/phing": "2.17.4", + "php-parallel-lint/php-parallel-lint": "1.3.2", + "phpstan/phpstan": "1.10.60", + "phpstan/phpstan-deprecation-rules": "1.1.4", + "phpstan/phpstan-phpunit": "1.3.16", + "phpstan/phpstan-strict-rules": "1.5.2", + "phpunit/phpunit": "8.5.21|9.6.8|10.5.11" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "autoload": { + "psr-4": { + "SlevomatCodingStandard\\": "SlevomatCodingStandard/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", + "keywords": [ + "dev", + "phpcs" + ], + "support": { + "issues": "https://github.com/slevomat/coding-standard/issues", + "source": "https://github.com/slevomat/coding-standard/tree/8.15.0" + }, + "funding": [ + { + "url": "https://github.com/kukulich", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard", + "type": "tidelift" + } + ], + "time": "2024-03-09T15:20:58+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.9.2", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "aac1f6f347a5c5ac6bc98ad395007df00990f480" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/aac1f6f347a5c5ac6bc98ad395007df00990f480", + "reference": "aac1f6f347a5c5ac6bc98ad395007df00990f480", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + }, + "bin": [ + "bin/phpcbf", + "bin/phpcs" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "Former lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + } + ], + "time": "2024-04-23T20:25:34+00:00" + }, + { + "name": "symfony/browser-kit", + "version": "v6.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/browser-kit.git", + "reference": "c276856598f70e96f75403fc04841cec1dc56e74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/c276856598f70e96f75403fc04841cec1dc56e74", + "reference": "c276856598f70e96f75403fc04841cec1dc56e74", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/dom-crawler": "^5.4|^6.0|^7.0" + }, + "require-dev": { + "symfony/css-selector": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/mime": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/browser-kit/tree/v6.4.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:22:46+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v6.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "1c5d5c2103c3762aff27a27e1e2409e30a79083b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/1c5d5c2103c3762aff27a27e1e2409e30a79083b", + "reference": "1c5d5c2103c3762aff27a27e1e2409e30a79083b", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v6.4.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:22:46+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v6.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "2088c5da700b1e7a8689fffc10dda6c1f643deea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/2088c5da700b1e7a8689fffc10dda6c1f643deea", + "reference": "2088c5da700b1e7a8689fffc10dda6c1f643deea", + "shasum": "" + }, + "require": { + "masterminds/html5": "^2.6", + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "require-dev": { + "symfony/css-selector": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases DOM navigation for HTML and XML documents", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dom-crawler/tree/v6.4.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:22:46+00:00" + }, + { + "name": "symfony/lock", + "version": "v6.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/lock.git", + "reference": "c6b3959c418a7c1115c060fab77927ca4bd2546a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/lock/zipball/c6b3959c418a7c1115c060fab77927ca4bd2546a", + "reference": "c6b3959c418a7c1115c060fab77927ca4bd2546a", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "doctrine/dbal": "<2.13", + "symfony/cache": "<6.2" + }, + "require-dev": { + "doctrine/dbal": "^2.13|^3|^4", + "predis/predis": "^1.1|^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Lock\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jérémy Derussé", + "email": "jeremy@derusse.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Creates and manages locks, a mechanism to provide exclusive access to a shared resource", + "homepage": "https://symfony.com", + "keywords": [ + "cas", + "flock", + "locking", + "mutex", + "redlock", + "semaphore" + ], + "support": { + "source": "https://github.com/symfony/lock/tree/v6.4.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:22:46+00:00" + }, + { + "name": "symfony/phpunit-bridge", + "version": "v6.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/phpunit-bridge.git", + "reference": "a33ca737283c76617c4089a8425c7785b344e283" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/a33ca737283c76617c4089a8425c7785b344e283", + "reference": "a33ca737283c76617c4089a8425c7785b344e283", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "conflict": { + "phpunit/phpunit": "<7.5|9.1.2" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.5|^3.0", + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/polyfill-php81": "^1.27" + }, + "bin": [ + "bin/simple-phpunit" + ], + "type": "symfony-bridge", + "extra": { + "thanks": { + "name": "phpunit/phpunit", + "url": "https://github.com/sebastianbergmann/phpunit" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Bridge\\PhpUnit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "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": "Provides utilities for PHPUnit, especially user deprecation notices management", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:22:46+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/ec444d3f3f6505bb28d11afa41e75faadebc10a1", + "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "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 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.30.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T15:07:36+00:00" + }, + { + "name": "symfony/polyfill-php82", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php82.git", + "reference": "559d488c38784112c78b9bf17c5ce8366a265643" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php82/zipball/559d488c38784112c78b9bf17c5ce8366a265643", + "reference": "559d488c38784112c78b9bf17c5ce8366a265643", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php82\\": "" + }, + "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.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php82/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:36:25+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "platform-overrides": { + "php": "8.1.12" + }, + "plugin-api-version": "2.6.0" +} diff --git a/tests/files/drupal-base/config/sync/.gitkeep b/tests/files/drupal-base/config/sync/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/files/drupal-base/config/sync/.htaccess b/tests/files/drupal-base/config/sync/.htaccess new file mode 100644 index 0000000000..25776a3139 --- /dev/null +++ b/tests/files/drupal-base/config/sync/.htaccess @@ -0,0 +1,24 @@ +# Deny all requests from Apache 2.4+. + + Require all denied + + +# Deny all requests from Apache 2.0-2.2. + + Deny from all + + +# Turn off all options we don't need. +Options -Indexes -ExecCGI -Includes -MultiViews + +# Set the catch-all handler to prevent scripts from being executed. +SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006 + + # Override the handler again if we're run later in the evaluation list. + SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003 + + +# If we know how to do it safely, disable the PHP engine entirely. + + php_flag engine off + \ No newline at end of file diff --git a/tests/files/drupal-base/docker-compose.yml b/tests/files/drupal-base/docker-compose.yml new file mode 100644 index 0000000000..1c910231aa --- /dev/null +++ b/tests/files/drupal-base/docker-compose.yml @@ -0,0 +1,63 @@ +services: + cli: + build: + context: . + dockerfile: lagoon/cli.dockerfile + image: builder + labels: + lagoon.type: cli-persistent + lagoon.persistent: /app/web/sites/default/files/ + lagoon.persistent.name: nginx + environment: + LAGOON_PROJECT: ci-drupal + LAGOON_ROUTE: drupal-mariadb.docker.amazee.io + volumes: + - .:/app:delegated + user: root + nginx: + networks: + - amazeeio-network + - default + build: + context: . + dockerfile: lagoon/nginx.dockerfile + args: + CLI_IMAGE: builder + labels: + lagoon.type: nginx-php-persistent + lagoon.persistent: /app/web/sites/default/files/ + lagoon.persistent.size: 1Gi + lagoon.name: nginx + lagoon.deployment.servicetype: nginx + volumes: + - .:/app:delegated + depends_on: + - cli + ports: + - "8080" + environment: + LAGOON_LOCALDEV_URL: drupal-mariadb.docker.amazee.io + php: + build: + context: . + dockerfile: lagoon/php.dockerfile + args: + CLI_IMAGE: builder + labels: + lagoon.type: nginx-php-persistent + lagoon.persistent: /app/web/sites/default/files/ + lagoon.name: nginx + lagoon.deployment.servicetype: php + volumes: + - .:/app:delegated + depends_on: + - cli + mariadb: + build: + context: . + dockerfile: lagoon/mariadb.dockerfile + labels: + lagoon.type: mariadb-single +networks: + amazeeio-network: + external: true diff --git a/tests/files/drupal-base/lagoon/cli.dockerfile b/tests/files/drupal-base/lagoon/cli.dockerfile new file mode 100644 index 0000000000..9cfb4e993a --- /dev/null +++ b/tests/files/drupal-base/lagoon/cli.dockerfile @@ -0,0 +1,13 @@ +ARG UPSTREAM_REPO +ARG UPSTREAM_TAG +FROM ${UPSTREAM_REPO:-testlagoon}/php-8.3-cli-drupal:${UPSTREAM_TAG:-latest} + + +COPY composer.* /app/ +COPY assets /app/assets +RUN composer install --prefer-dist --no-dev --ignore-platform-reqs --no-suggest --optimize-autoloader --apcu-autoloader +COPY . /app +RUN mkdir -p -v -m775 /app/web/sites/default/files + +# Define where the Drupal Root is located +ENV WEBROOT=web diff --git a/tests/files/drupal-base/lagoon/mariadb.dockerfile b/tests/files/drupal-base/lagoon/mariadb.dockerfile new file mode 100644 index 0000000000..380093a353 --- /dev/null +++ b/tests/files/drupal-base/lagoon/mariadb.dockerfile @@ -0,0 +1,3 @@ +ARG UPSTREAM_REPO +ARG UPSTREAM_TAG +FROM ${UPSTREAM_REPO:-testlagoon}/mariadb-10.11-drupal:${UPSTREAM_TAG:-latest} diff --git a/tests/files/drupal9-mariadb-single/nginx.dockerfile b/tests/files/drupal-base/lagoon/nginx.dockerfile similarity index 100% rename from tests/files/drupal9-mariadb-single/nginx.dockerfile rename to tests/files/drupal-base/lagoon/nginx.dockerfile diff --git a/tests/files/drupal-base/lagoon/php.dockerfile b/tests/files/drupal-base/lagoon/php.dockerfile new file mode 100644 index 0000000000..6b035b47a6 --- /dev/null +++ b/tests/files/drupal-base/lagoon/php.dockerfile @@ -0,0 +1,8 @@ +ARG CLI_IMAGE +ARG UPSTREAM_REPO +ARG UPSTREAM_TAG +FROM ${CLI_IMAGE:-builder} as builder + +FROM ${UPSTREAM_REPO:-testlagoon}/php-8.3-fpm:${UPSTREAM_TAG:-latest} + +COPY --from=builder /app /app diff --git a/tests/files/drupal9-mariadb-single/docker-compose.yml b/tests/files/drupal9-mariadb-single/docker-compose.yml index e26e51a921..25dfe97f1f 100644 --- a/tests/files/drupal9-mariadb-single/docker-compose.yml +++ b/tests/files/drupal9-mariadb-single/docker-compose.yml @@ -3,7 +3,7 @@ services: cli: build: context: . - dockerfile: builder.dockerfile + dockerfile: lagoon/cli.dockerfile image: builder labels: lagoon.type: cli-persistent @@ -20,7 +20,7 @@ services: - default build: context: . - dockerfile: nginx.dockerfile + dockerfile: lagoon/nginx.dockerfile labels: lagoon.type: nginx-php-persistent lagoon.persistent: /app/web/sites/default/files/ @@ -38,7 +38,7 @@ services: php: build: context: . - dockerfile: php.dockerfile + dockerfile: lagoon/php.dockerfile labels: lagoon.type: nginx-php-persistent lagoon.persistent: /app/web/sites/default/files/ @@ -51,7 +51,7 @@ services: mariadb: build: context: . - dockerfile: mariadb.dockerfile + dockerfile: lagoon/mariadb.dockerfile labels: lagoon.type: mariadb-single networks: diff --git a/tests/files/drupal9-mariadb-single/builder.dockerfile b/tests/files/drupal9-mariadb-single/lagoon/cli.dockerfile similarity index 100% rename from tests/files/drupal9-mariadb-single/builder.dockerfile rename to tests/files/drupal9-mariadb-single/lagoon/cli.dockerfile diff --git a/tests/files/drupal9-mariadb-single/mariadb.dockerfile b/tests/files/drupal9-mariadb-single/lagoon/mariadb.dockerfile similarity index 100% rename from tests/files/drupal9-mariadb-single/mariadb.dockerfile rename to tests/files/drupal9-mariadb-single/lagoon/mariadb.dockerfile diff --git a/tests/files/drupal9-mariadb-single/lagoon/nginx.dockerfile b/tests/files/drupal9-mariadb-single/lagoon/nginx.dockerfile new file mode 100644 index 0000000000..3edca76168 --- /dev/null +++ b/tests/files/drupal9-mariadb-single/lagoon/nginx.dockerfile @@ -0,0 +1,10 @@ +ARG CLI_IMAGE +ARG UPSTREAM_REPO +ARG UPSTREAM_TAG +FROM ${CLI_IMAGE:-builder} as builder + +FROM ${UPSTREAM_REPO:-testlagoon}/nginx-drupal:${UPSTREAM_TAG:-latest} + +COPY --from=builder /app /app + +ENV WEBROOT=web diff --git a/tests/files/drupal9-mariadb-single/php.dockerfile b/tests/files/drupal9-mariadb-single/lagoon/php.dockerfile similarity index 100% rename from tests/files/drupal9-mariadb-single/php.dockerfile rename to tests/files/drupal9-mariadb-single/lagoon/php.dockerfile diff --git a/tests/tests/drupal/drush-la.yaml b/tests/tests/drupal/drush-la.yaml index 0d8a22bebe..cdb7c203bb 100644 --- a/tests/tests/drupal/drush-la.yaml +++ b/tests/tests/drupal/drush-la.yaml @@ -2,7 +2,7 @@ hosts: localhost serial: 1 vars: - git_files: "drupal{{ drupal_version }}-{{ db }}/" + git_files: "drupal-base/" branch: "drush-first" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml @@ -24,7 +24,7 @@ hosts: localhost serial: 1 vars: - git_files: "drupal{{ drupal_version }}-{{ db }}/" + git_files: "drupal-base/" branch: "drush-second" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml @@ -194,7 +194,7 @@ hosts: localhost serial: 1 vars: - git_files: "drupal{{ drupal_version }}-{{ db }}/" + git_files: "drupal-base/" branch: "foo/bar" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml diff --git a/tests/tests/drush.yaml b/tests/tests/drush.yaml index 104aeda177..1b2cfce164 100644 --- a/tests/tests/drush.yaml +++ b/tests/tests/drush.yaml @@ -12,9 +12,6 @@ - ansible.builtin.import_playbook: drupal/drush-la.yaml vars: testname: "DRUSH integration {{ cluster_type|upper }}" - drupal_version: 9 - db: mariadb-single - php_version: 8.0 git_repo_name: drush.git project: ci-drush-la-{{ cluster_type }} @@ -22,21 +19,18 @@ vars: project: ci-drush-la-{{ cluster_type }} -- ansible.builtin.import_playbook: api/add-project.yaml - vars: - project: ci-drush-sa-{{ cluster_type }} - git_repo_name: drush-sa.git - git_url: "{{ localgit_url }}/{{ git_repo_name }}" +# - ansible.builtin.import_playbook: api/add-project.yaml +# vars: +# project: ci-drush-sa-{{ cluster_type }} +# git_repo_name: drush-sa.git +# git_url: "{{ localgit_url }}/{{ git_repo_name }}" -- ansible.builtin.import_playbook: drupal/drush-sa.yaml - vars: - testname: "DRUSH legacy {{ cluster_type|upper }}" - drupal_version: 8 - db: mariadb-single - php_version: 7.4 - git_repo_name: drush-sa.git - project: ci-drush-sa-{{ cluster_type }} +# - ansible.builtin.import_playbook: drupal/drush-sa.yaml +# vars: +# testname: "DRUSH legacy {{ cluster_type|upper }}" +# git_repo_name: drush-sa.git +# project: ci-drush-sa-{{ cluster_type }} -- ansible.builtin.import_playbook: api/delete-project.yaml - vars: - project: ci-drush-sa-{{ cluster_type }} +# - ansible.builtin.import_playbook: api/delete-project.yaml +# vars: +# project: ci-drush-sa-{{ cluster_type }} From a901cf82d7668a01ce1946a2f08ad98ac6c876c7 Mon Sep 17 00:00:00 2001 From: Toby Bellwood Date: Wed, 24 Jul 2024 18:23:57 +1000 Subject: [PATCH 2/8] tests: update drupal8 test --- .../.dockerignore | 0 .../.gitignore | 0 .../.lagoon.yml | 31 +- .../LICENSE | 0 .../README.md | 0 .../composer.json | 0 .../composer.lock | 0 .../config/sync/.gitkeep | 0 .../config/sync/.htaccess | 3 - .../docker-compose.yml | 5 +- .../drush/README.md | 0 .../drush/aliases.drushrc.php | 0 .../drush/drushrc.php | 0 .../drush/policy.drush.inc | 0 .../lagoon/cli.dockerfile} | 0 .../lagoon}/mariadb.dockerfile | 0 .../lagoon}/nginx.dockerfile | 0 .../lagoon}/php.dockerfile | 0 .../scripts/composer/ScriptHandler.php | 0 .../web/.csslintrc | 0 .../web/.editorconfig | 0 .../web/.eslintignore | 0 .../web/.eslintrc.json | 0 .../web/.gitattributes | 0 .../web/.ht.router.php | 0 .../web/.htaccess | 0 .../web/autoload.php | 0 .../web/index.php | 0 .../web/modules/.gitkeep | 0 .../web/profiles/.gitkeep | 0 .../web/robots.txt | 0 .../web/sites/default/all.services.yml | 0 .../web/sites/default/all.settings.php | 0 .../web/sites/default/default.services.yml | 0 .../web/sites/default/default.settings.php | 0 .../sites/default/development.services.yml | 0 .../sites/default/development.settings.php | 0 .../sites/default/example.settings.local.php | 0 .../web/sites/default/production.services.yml | 0 .../web/sites/default/production.settings.php | 0 .../web/sites/default/settings.php | 0 .../web/sites/example.sites.php | 0 .../web/themes/.gitkeep | 0 .../web/update.php | 0 .../web/web.config | 0 .../drupal8-mariadb-single/docker-compose.yml | 65 - .../drupal8-mariadb-single/drupal.sql.gz | Bin 153542 -> 0 bytes .../drupal8-mariadb-single/redis.dockerfile | 3 - .../drupal9-mariadb-single/.dockerignore | 3 - tests/files/drupal9-mariadb-single/.gitignore | 21 - .../files/drupal9-mariadb-single/.lagoon.yml | 59 - tests/files/drupal9-mariadb-single/LICENSE | 339 - .../drupal9-mariadb-single/assets/README.md | 28 - .../assets/all.settings.php | 132 - .../assets/lagoon.site.yml | 8 - .../assets/redis-unavailable.services.yml | 9 - .../drupal9-mariadb-single/composer.json | 73 - .../drupal9-mariadb-single/composer.lock | 10302 ---------------- .../config/sync/.gitkeep | 0 .../drupal9-mariadb-single/drupal.sql.gz | Bin 401771 -> 0 bytes .../lagoon/cli.dockerfile | 12 - .../lagoon/mariadb.dockerfile | 3 - .../lagoon/nginx.dockerfile | 10 - .../lagoon/php.dockerfile | 8 - tests/tests/drupal/drush-sa.yaml | 6 +- tests/tests/drush.yaml | 26 +- 66 files changed, 28 insertions(+), 11118 deletions(-) rename tests/files/{drupal8-mariadb-single => drupal8-base}/.dockerignore (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/.gitignore (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/.lagoon.yml (54%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/LICENSE (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/README.md (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/composer.json (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/composer.lock (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/config/sync/.gitkeep (100%) rename tests/files/{drupal9-mariadb-single => drupal8-base}/config/sync/.htaccess (92%) rename tests/files/{drupal9-mariadb-single => drupal8-base}/docker-compose.yml (90%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/drush/README.md (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/drush/aliases.drushrc.php (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/drush/drushrc.php (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/drush/policy.drush.inc (100%) rename tests/files/{drupal8-mariadb-single/builder.dockerfile => drupal8-base/lagoon/cli.dockerfile} (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base/lagoon}/mariadb.dockerfile (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base/lagoon}/nginx.dockerfile (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base/lagoon}/php.dockerfile (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/scripts/composer/ScriptHandler.php (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/.csslintrc (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/.editorconfig (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/.eslintignore (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/.eslintrc.json (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/.gitattributes (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/.ht.router.php (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/.htaccess (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/autoload.php (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/index.php (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/modules/.gitkeep (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/profiles/.gitkeep (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/robots.txt (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/sites/default/all.services.yml (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/sites/default/all.settings.php (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/sites/default/default.services.yml (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/sites/default/default.settings.php (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/sites/default/development.services.yml (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/sites/default/development.settings.php (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/sites/default/example.settings.local.php (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/sites/default/production.services.yml (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/sites/default/production.settings.php (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/sites/default/settings.php (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/sites/example.sites.php (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/themes/.gitkeep (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/update.php (100%) rename tests/files/{drupal8-mariadb-single => drupal8-base}/web/web.config (100%) delete mode 100644 tests/files/drupal8-mariadb-single/docker-compose.yml delete mode 100644 tests/files/drupal8-mariadb-single/drupal.sql.gz delete mode 100644 tests/files/drupal8-mariadb-single/redis.dockerfile delete mode 100644 tests/files/drupal9-mariadb-single/.dockerignore delete mode 100644 tests/files/drupal9-mariadb-single/.gitignore delete mode 100644 tests/files/drupal9-mariadb-single/.lagoon.yml delete mode 100644 tests/files/drupal9-mariadb-single/LICENSE delete mode 100644 tests/files/drupal9-mariadb-single/assets/README.md delete mode 100644 tests/files/drupal9-mariadb-single/assets/all.settings.php delete mode 100644 tests/files/drupal9-mariadb-single/assets/lagoon.site.yml delete mode 100644 tests/files/drupal9-mariadb-single/assets/redis-unavailable.services.yml delete mode 100644 tests/files/drupal9-mariadb-single/composer.json delete mode 100644 tests/files/drupal9-mariadb-single/composer.lock delete mode 100644 tests/files/drupal9-mariadb-single/config/sync/.gitkeep delete mode 100644 tests/files/drupal9-mariadb-single/drupal.sql.gz delete mode 100644 tests/files/drupal9-mariadb-single/lagoon/cli.dockerfile delete mode 100644 tests/files/drupal9-mariadb-single/lagoon/mariadb.dockerfile delete mode 100644 tests/files/drupal9-mariadb-single/lagoon/nginx.dockerfile delete mode 100644 tests/files/drupal9-mariadb-single/lagoon/php.dockerfile diff --git a/tests/files/drupal8-mariadb-single/.dockerignore b/tests/files/drupal8-base/.dockerignore similarity index 100% rename from tests/files/drupal8-mariadb-single/.dockerignore rename to tests/files/drupal8-base/.dockerignore diff --git a/tests/files/drupal8-mariadb-single/.gitignore b/tests/files/drupal8-base/.gitignore similarity index 100% rename from tests/files/drupal8-mariadb-single/.gitignore rename to tests/files/drupal8-base/.gitignore diff --git a/tests/files/drupal8-mariadb-single/.lagoon.yml b/tests/files/drupal8-base/.lagoon.yml similarity index 54% rename from tests/files/drupal8-mariadb-single/.lagoon.yml rename to tests/files/drupal8-base/.lagoon.yml index 51cc4dc07d..6b2906764b 100644 --- a/tests/files/drupal8-mariadb-single/.lagoon.yml +++ b/tests/files/drupal8-base/.lagoon.yml @@ -16,10 +16,7 @@ tasks: name: IF no Drupal installed, install Drupal command: | cd web - if tables=$(drush sqlq "show tables like \"node\";") && [ -z "$tables" ]; then - # no drupal installed, we install drupal from an db dump - zcat ../drupal.sql.gz | $(drush sql-connect) - fi + drush si -y minimal # set the sitename to the current SHA and BRANCH drush -y cset system.site name "LAGOON_GIT_SHA=$LAGOON_GIT_SHA LAGOON_GIT_BRANCH=$LAGOON_GIT_BRANCH" service: cli @@ -32,21 +29,13 @@ tasks: environments: master: routes: - - nginx: - - "domain.com": - tls-acme: 'true' - insecure: Allow - - www.domain.com - - cronjobs: - - name: drush cron - schedule: "1 * * * *" - command: drush cron - service: cli - - drupal8-php74-mariadb-single: + - nginx: + - "domain.com": + tls-acme: 'true' + insecure: Allow + - www.domain.com cronjobs: - - name: drush cron - schedule: "1 * * * *" - command: drush cron - service: cli + - name: drush cron + schedule: "1 * * * *" + command: drush cron + service: cli diff --git a/tests/files/drupal8-mariadb-single/LICENSE b/tests/files/drupal8-base/LICENSE similarity index 100% rename from tests/files/drupal8-mariadb-single/LICENSE rename to tests/files/drupal8-base/LICENSE diff --git a/tests/files/drupal8-mariadb-single/README.md b/tests/files/drupal8-base/README.md similarity index 100% rename from tests/files/drupal8-mariadb-single/README.md rename to tests/files/drupal8-base/README.md diff --git a/tests/files/drupal8-mariadb-single/composer.json b/tests/files/drupal8-base/composer.json similarity index 100% rename from tests/files/drupal8-mariadb-single/composer.json rename to tests/files/drupal8-base/composer.json diff --git a/tests/files/drupal8-mariadb-single/composer.lock b/tests/files/drupal8-base/composer.lock similarity index 100% rename from tests/files/drupal8-mariadb-single/composer.lock rename to tests/files/drupal8-base/composer.lock diff --git a/tests/files/drupal8-mariadb-single/config/sync/.gitkeep b/tests/files/drupal8-base/config/sync/.gitkeep similarity index 100% rename from tests/files/drupal8-mariadb-single/config/sync/.gitkeep rename to tests/files/drupal8-base/config/sync/.gitkeep diff --git a/tests/files/drupal9-mariadb-single/config/sync/.htaccess b/tests/files/drupal8-base/config/sync/.htaccess similarity index 92% rename from tests/files/drupal9-mariadb-single/config/sync/.htaccess rename to tests/files/drupal8-base/config/sync/.htaccess index c323d5461e..25776a3139 100644 --- a/tests/files/drupal9-mariadb-single/config/sync/.htaccess +++ b/tests/files/drupal8-base/config/sync/.htaccess @@ -19,9 +19,6 @@ SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006 # If we know how to do it safely, disable the PHP engine entirely. - - php_flag engine off - php_flag engine off \ No newline at end of file diff --git a/tests/files/drupal9-mariadb-single/docker-compose.yml b/tests/files/drupal8-base/docker-compose.yml similarity index 90% rename from tests/files/drupal9-mariadb-single/docker-compose.yml rename to tests/files/drupal8-base/docker-compose.yml index 25dfe97f1f..4d830400de 100644 --- a/tests/files/drupal9-mariadb-single/docker-compose.yml +++ b/tests/files/drupal8-base/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: cli: build: @@ -11,7 +10,7 @@ services: lagoon.persistent.name: nginx environment: LAGOON_PROJECT: ci-drupal - LAGOON_ROUTE: drupal9-mariadb.docker.amazee.io + LAGOON_ROUTE: drupal-mariadb.docker.amazee.io volumes: - .:/app:delegated nginx: @@ -34,7 +33,7 @@ services: ports: - "8080" environment: - LAGOON_LOCALDEV_URL: drupal9-mariadb.docker.amazee.io + LAGOON_LOCALDEV_URL: drupal-mariadb.docker.amazee.io php: build: context: . diff --git a/tests/files/drupal8-mariadb-single/drush/README.md b/tests/files/drupal8-base/drush/README.md similarity index 100% rename from tests/files/drupal8-mariadb-single/drush/README.md rename to tests/files/drupal8-base/drush/README.md diff --git a/tests/files/drupal8-mariadb-single/drush/aliases.drushrc.php b/tests/files/drupal8-base/drush/aliases.drushrc.php similarity index 100% rename from tests/files/drupal8-mariadb-single/drush/aliases.drushrc.php rename to tests/files/drupal8-base/drush/aliases.drushrc.php diff --git a/tests/files/drupal8-mariadb-single/drush/drushrc.php b/tests/files/drupal8-base/drush/drushrc.php similarity index 100% rename from tests/files/drupal8-mariadb-single/drush/drushrc.php rename to tests/files/drupal8-base/drush/drushrc.php diff --git a/tests/files/drupal8-mariadb-single/drush/policy.drush.inc b/tests/files/drupal8-base/drush/policy.drush.inc similarity index 100% rename from tests/files/drupal8-mariadb-single/drush/policy.drush.inc rename to tests/files/drupal8-base/drush/policy.drush.inc diff --git a/tests/files/drupal8-mariadb-single/builder.dockerfile b/tests/files/drupal8-base/lagoon/cli.dockerfile similarity index 100% rename from tests/files/drupal8-mariadb-single/builder.dockerfile rename to tests/files/drupal8-base/lagoon/cli.dockerfile diff --git a/tests/files/drupal8-mariadb-single/mariadb.dockerfile b/tests/files/drupal8-base/lagoon/mariadb.dockerfile similarity index 100% rename from tests/files/drupal8-mariadb-single/mariadb.dockerfile rename to tests/files/drupal8-base/lagoon/mariadb.dockerfile diff --git a/tests/files/drupal8-mariadb-single/nginx.dockerfile b/tests/files/drupal8-base/lagoon/nginx.dockerfile similarity index 100% rename from tests/files/drupal8-mariadb-single/nginx.dockerfile rename to tests/files/drupal8-base/lagoon/nginx.dockerfile diff --git a/tests/files/drupal8-mariadb-single/php.dockerfile b/tests/files/drupal8-base/lagoon/php.dockerfile similarity index 100% rename from tests/files/drupal8-mariadb-single/php.dockerfile rename to tests/files/drupal8-base/lagoon/php.dockerfile diff --git a/tests/files/drupal8-mariadb-single/scripts/composer/ScriptHandler.php b/tests/files/drupal8-base/scripts/composer/ScriptHandler.php similarity index 100% rename from tests/files/drupal8-mariadb-single/scripts/composer/ScriptHandler.php rename to tests/files/drupal8-base/scripts/composer/ScriptHandler.php diff --git a/tests/files/drupal8-mariadb-single/web/.csslintrc b/tests/files/drupal8-base/web/.csslintrc similarity index 100% rename from tests/files/drupal8-mariadb-single/web/.csslintrc rename to tests/files/drupal8-base/web/.csslintrc diff --git a/tests/files/drupal8-mariadb-single/web/.editorconfig b/tests/files/drupal8-base/web/.editorconfig similarity index 100% rename from tests/files/drupal8-mariadb-single/web/.editorconfig rename to tests/files/drupal8-base/web/.editorconfig diff --git a/tests/files/drupal8-mariadb-single/web/.eslintignore b/tests/files/drupal8-base/web/.eslintignore similarity index 100% rename from tests/files/drupal8-mariadb-single/web/.eslintignore rename to tests/files/drupal8-base/web/.eslintignore diff --git a/tests/files/drupal8-mariadb-single/web/.eslintrc.json b/tests/files/drupal8-base/web/.eslintrc.json similarity index 100% rename from tests/files/drupal8-mariadb-single/web/.eslintrc.json rename to tests/files/drupal8-base/web/.eslintrc.json diff --git a/tests/files/drupal8-mariadb-single/web/.gitattributes b/tests/files/drupal8-base/web/.gitattributes similarity index 100% rename from tests/files/drupal8-mariadb-single/web/.gitattributes rename to tests/files/drupal8-base/web/.gitattributes diff --git a/tests/files/drupal8-mariadb-single/web/.ht.router.php b/tests/files/drupal8-base/web/.ht.router.php similarity index 100% rename from tests/files/drupal8-mariadb-single/web/.ht.router.php rename to tests/files/drupal8-base/web/.ht.router.php diff --git a/tests/files/drupal8-mariadb-single/web/.htaccess b/tests/files/drupal8-base/web/.htaccess similarity index 100% rename from tests/files/drupal8-mariadb-single/web/.htaccess rename to tests/files/drupal8-base/web/.htaccess diff --git a/tests/files/drupal8-mariadb-single/web/autoload.php b/tests/files/drupal8-base/web/autoload.php similarity index 100% rename from tests/files/drupal8-mariadb-single/web/autoload.php rename to tests/files/drupal8-base/web/autoload.php diff --git a/tests/files/drupal8-mariadb-single/web/index.php b/tests/files/drupal8-base/web/index.php similarity index 100% rename from tests/files/drupal8-mariadb-single/web/index.php rename to tests/files/drupal8-base/web/index.php diff --git a/tests/files/drupal8-mariadb-single/web/modules/.gitkeep b/tests/files/drupal8-base/web/modules/.gitkeep similarity index 100% rename from tests/files/drupal8-mariadb-single/web/modules/.gitkeep rename to tests/files/drupal8-base/web/modules/.gitkeep diff --git a/tests/files/drupal8-mariadb-single/web/profiles/.gitkeep b/tests/files/drupal8-base/web/profiles/.gitkeep similarity index 100% rename from tests/files/drupal8-mariadb-single/web/profiles/.gitkeep rename to tests/files/drupal8-base/web/profiles/.gitkeep diff --git a/tests/files/drupal8-mariadb-single/web/robots.txt b/tests/files/drupal8-base/web/robots.txt similarity index 100% rename from tests/files/drupal8-mariadb-single/web/robots.txt rename to tests/files/drupal8-base/web/robots.txt diff --git a/tests/files/drupal8-mariadb-single/web/sites/default/all.services.yml b/tests/files/drupal8-base/web/sites/default/all.services.yml similarity index 100% rename from tests/files/drupal8-mariadb-single/web/sites/default/all.services.yml rename to tests/files/drupal8-base/web/sites/default/all.services.yml diff --git a/tests/files/drupal8-mariadb-single/web/sites/default/all.settings.php b/tests/files/drupal8-base/web/sites/default/all.settings.php similarity index 100% rename from tests/files/drupal8-mariadb-single/web/sites/default/all.settings.php rename to tests/files/drupal8-base/web/sites/default/all.settings.php diff --git a/tests/files/drupal8-mariadb-single/web/sites/default/default.services.yml b/tests/files/drupal8-base/web/sites/default/default.services.yml similarity index 100% rename from tests/files/drupal8-mariadb-single/web/sites/default/default.services.yml rename to tests/files/drupal8-base/web/sites/default/default.services.yml diff --git a/tests/files/drupal8-mariadb-single/web/sites/default/default.settings.php b/tests/files/drupal8-base/web/sites/default/default.settings.php similarity index 100% rename from tests/files/drupal8-mariadb-single/web/sites/default/default.settings.php rename to tests/files/drupal8-base/web/sites/default/default.settings.php diff --git a/tests/files/drupal8-mariadb-single/web/sites/default/development.services.yml b/tests/files/drupal8-base/web/sites/default/development.services.yml similarity index 100% rename from tests/files/drupal8-mariadb-single/web/sites/default/development.services.yml rename to tests/files/drupal8-base/web/sites/default/development.services.yml diff --git a/tests/files/drupal8-mariadb-single/web/sites/default/development.settings.php b/tests/files/drupal8-base/web/sites/default/development.settings.php similarity index 100% rename from tests/files/drupal8-mariadb-single/web/sites/default/development.settings.php rename to tests/files/drupal8-base/web/sites/default/development.settings.php diff --git a/tests/files/drupal8-mariadb-single/web/sites/default/example.settings.local.php b/tests/files/drupal8-base/web/sites/default/example.settings.local.php similarity index 100% rename from tests/files/drupal8-mariadb-single/web/sites/default/example.settings.local.php rename to tests/files/drupal8-base/web/sites/default/example.settings.local.php diff --git a/tests/files/drupal8-mariadb-single/web/sites/default/production.services.yml b/tests/files/drupal8-base/web/sites/default/production.services.yml similarity index 100% rename from tests/files/drupal8-mariadb-single/web/sites/default/production.services.yml rename to tests/files/drupal8-base/web/sites/default/production.services.yml diff --git a/tests/files/drupal8-mariadb-single/web/sites/default/production.settings.php b/tests/files/drupal8-base/web/sites/default/production.settings.php similarity index 100% rename from tests/files/drupal8-mariadb-single/web/sites/default/production.settings.php rename to tests/files/drupal8-base/web/sites/default/production.settings.php diff --git a/tests/files/drupal8-mariadb-single/web/sites/default/settings.php b/tests/files/drupal8-base/web/sites/default/settings.php similarity index 100% rename from tests/files/drupal8-mariadb-single/web/sites/default/settings.php rename to tests/files/drupal8-base/web/sites/default/settings.php diff --git a/tests/files/drupal8-mariadb-single/web/sites/example.sites.php b/tests/files/drupal8-base/web/sites/example.sites.php similarity index 100% rename from tests/files/drupal8-mariadb-single/web/sites/example.sites.php rename to tests/files/drupal8-base/web/sites/example.sites.php diff --git a/tests/files/drupal8-mariadb-single/web/themes/.gitkeep b/tests/files/drupal8-base/web/themes/.gitkeep similarity index 100% rename from tests/files/drupal8-mariadb-single/web/themes/.gitkeep rename to tests/files/drupal8-base/web/themes/.gitkeep diff --git a/tests/files/drupal8-mariadb-single/web/update.php b/tests/files/drupal8-base/web/update.php similarity index 100% rename from tests/files/drupal8-mariadb-single/web/update.php rename to tests/files/drupal8-base/web/update.php diff --git a/tests/files/drupal8-mariadb-single/web/web.config b/tests/files/drupal8-base/web/web.config similarity index 100% rename from tests/files/drupal8-mariadb-single/web/web.config rename to tests/files/drupal8-base/web/web.config diff --git a/tests/files/drupal8-mariadb-single/docker-compose.yml b/tests/files/drupal8-mariadb-single/docker-compose.yml deleted file mode 100644 index 176a792a45..0000000000 --- a/tests/files/drupal8-mariadb-single/docker-compose.yml +++ /dev/null @@ -1,65 +0,0 @@ -version: '2' -services: - cli: - build: - context: . - dockerfile: builder.dockerfile - image: builder - labels: - lagoon.type: cli-persistent - lagoon.persistent: /app/web/sites/default/files/ - lagoon.persistent.name: nginx - environment: - LAGOON_PROJECT: ci-drupal - LAGOON_ROUTE: drupal8-mariadb.docker.amazee.io - volumes: - - .:/app:delegated - nginx: - networks: - - amazeeio-network - - default - build: - context: . - dockerfile: nginx.dockerfile - labels: - lagoon.type: nginx-php-persistent - lagoon.persistent: /app/web/sites/default/files/ - lagoon.persistent.size: 1Gi - lagoon.name: nginx - lagoon.deployment.servicetype: nginx - volumes: - - .:/app:delegated - depends_on: - - cli - ports: - - "8080" - environment: - LAGOON_LOCALDEV_URL: drupal9-mariadb.docker.amazee.io - php: - build: - context: . - dockerfile: php.dockerfile - labels: - lagoon.type: nginx-php-persistent - lagoon.persistent: /app/web/sites/default/files/ - lagoon.name: nginx - lagoon.deployment.servicetype: php - volumes: - - .:/app:delegated - depends_on: - - cli - mariadb: - build: - context: . - dockerfile: mariadb.dockerfile - labels: - lagoon.type: mariadb-single - redis: - build: - context: . - dockerfile: redis.dockerfile - labels: - lagoon.type: redis -networks: - amazeeio-network: - external: true diff --git a/tests/files/drupal8-mariadb-single/drupal.sql.gz b/tests/files/drupal8-mariadb-single/drupal.sql.gz deleted file mode 100644 index 4f27c268ed64ef16880ae8c10ede2e109a43397f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153542 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�= 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 diff --git a/tests/files/drupal8-mariadb-single/redis.dockerfile b/tests/files/drupal8-mariadb-single/redis.dockerfile deleted file mode 100644 index 008aed821f..0000000000 --- a/tests/files/drupal8-mariadb-single/redis.dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -ARG UPSTREAM_REPO -ARG UPSTREAM_TAG -FROM ${UPSTREAM_REPO:-testlagoon}/redis-5:${UPSTREAM_TAG:-latest} \ No newline at end of file diff --git a/tests/files/drupal9-mariadb-single/.dockerignore b/tests/files/drupal9-mariadb-single/.dockerignore deleted file mode 100644 index eedf56217b..0000000000 --- a/tests/files/drupal9-mariadb-single/.dockerignore +++ /dev/null @@ -1,3 +0,0 @@ -.git -/vendor/ -/web diff --git a/tests/files/drupal9-mariadb-single/.gitignore b/tests/files/drupal9-mariadb-single/.gitignore deleted file mode 100644 index 323fdc7d89..0000000000 --- a/tests/files/drupal9-mariadb-single/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# Ignore directories generated by Composer -/.drush-lock-update -/drush/Commands/contrib/ -/drush/sites/lagoon.site.yml -/vendor/ -/web - -# Ignore Drupal's file directory -/web/sites/*/files/ - -# Ingore files that are only for the current local environment -web/sites/*/settings.local.php -web/sites/*/services.local.yml - -# Ignore SimpleTest multi-site environment. -web/sites/simpletest - -# Ignore files generated by PhpStorm -/.idea/ -/.editorconfig -/.gitattributes diff --git a/tests/files/drupal9-mariadb-single/.lagoon.yml b/tests/files/drupal9-mariadb-single/.lagoon.yml deleted file mode 100644 index 4d0db996d3..0000000000 --- a/tests/files/drupal9-mariadb-single/.lagoon.yml +++ /dev/null @@ -1,59 +0,0 @@ -docker-compose-yaml: docker-compose.yml - -ssh: lagoon-core-ssh-token.lagoon-core.svc.cluster.local:2223 -api: http://lagoon-core-api.lagoon-core.svc:80/graphql - -environment_variables: - git_sha: 'true' - -tasks: - post-rollout: - - run: - name: env variables - command: env - service: cli - - run: - name: IF no Drupal installed, install Drupal - command: | - cd web - if tables=$(drush sqlq "show tables like \"node\";") && [ -z "$tables" ]; then - # no drupal installed, we install drupal from an db dump - zcat ../drupal.sql.gz | $(drush sql-connect) - fi - # set the sitename to the current SHA and BRANCH - drush -y cset system.site name "LAGOON_GIT_SHA=$LAGOON_GIT_SHA LAGOON_GIT_BRANCH=$LAGOON_GIT_BRANCH" - service: cli - shell: bash - - run: - name: drush cr - command: cd web && drush -y cr - service: cli - -environments: - master: - routes: - - nginx: - - "domain.com": - tls-acme: 'true' - insecure: Allow - - www.domain.com - - cronjobs: - - name: drush cron - schedule: "1 * * * *" - command: drush cron - service: cli - - drupal9-php80-mariadb-dbaas: - cronjobs: - - name: drush cron - schedule: "1 * * * *" - command: drush cron - service: cli - - drupal9-php80-mariadb-single: - cronjobs: - - name: drush cron - schedule: "1 * * * *" - command: drush cron - service: cli diff --git a/tests/files/drupal9-mariadb-single/LICENSE b/tests/files/drupal9-mariadb-single/LICENSE deleted file mode 100644 index 23cb790338..0000000000 --- a/tests/files/drupal9-mariadb-single/LICENSE +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - {description} - Copyright (C) {year} {fullname} - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - {signature of Ty Coon}, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/tests/files/drupal9-mariadb-single/assets/README.md b/tests/files/drupal9-mariadb-single/assets/README.md deleted file mode 100644 index b785242cdf..0000000000 --- a/tests/files/drupal9-mariadb-single/assets/README.md +++ /dev/null @@ -1,28 +0,0 @@ -Place files in here that you want to add to your Drupal site. You will also need to add them to the extra/file-mapping section in composer.json. - -As per https://www.drupal.org/docs/develop/using-composer/using-drupals-composer-scaffold -e.g. -``` - "file-mapping": { - "[web-root]/sites/default/all.settings.php": "assets/all.settings.php" - }, -``` - - - -Settings files are loaded in this order: -* _Loaded by amazeeio/drupal-integrations_ - - settings.php - - settings.lagoon.php -* _For settings and services that should be applied to all environments (dev, prod, staging, docker, etc)._ - - all.settings.php - - all.services.yml -* _For settings and services that should be applied only for the production environment._ - - production.settings.php - - production.services.yml -* _For settings and services that should be applied only for the development (Lagoon and local) environments._ - - development.settings.php - - development.services.yml -* _For settings and services only for the local environment, these files will not be committed in Git!_ - - settings.local.php - - services.local.yml diff --git a/tests/files/drupal9-mariadb-single/assets/all.settings.php b/tests/files/drupal9-mariadb-single/assets/all.settings.php deleted file mode 100644 index 61af4a5fe1..0000000000 --- a/tests/files/drupal9-mariadb-single/assets/all.settings.php +++ /dev/null @@ -1,132 +0,0 @@ -connect($redis_host, $redis_port, 1) === FALSE) { - throw new \Exception('Redis server unreachable.'); - } - - $response = $redis->ping(); - if (strpos($response, 'PONG') === FALSE) { - throw new \Exception('Redis could be reached but is not responding correctly.'); - } - - $settings['redis.connection']['interface'] = 'PhpRedis'; - $settings['redis.connection']['host'] = $redis_host; - $settings['redis.connection']['port'] = $redis_port; - $settings['cache_prefix']['default'] = getenv('REDIS_CACHE_PREFIX') ?: getenv('LAGOON_PROJECT') . '_' . getenv('LAGOON_GIT_SAFE_BRANCH'); - - $settings['cache']['default'] = 'cache.backend.redis'; - - // Include the default example.services.yml from the module, which will - // replace all supported backend services (that currently includes the cache tags - // checksum service and the lock backends, check the file for the current list). - $settings['container_yamls'][] = 'modules/contrib/redis/example.services.yml'; - - // Allow the services to work before the Redis module itself is enabled. - $settings['container_yamls'][] = 'modules/contrib/redis/redis.services.yml'; - - // Manually add the classloader path, this is required for the container cache bin definition below - // and allows to use it without the redis module being enabled. - $class_loader->addPsr4('Drupal\\redis\\', 'modules/contrib/redis/src'); - - // Use redis for container cache. - // The container cache is used to load the container definition itself, and - // thus any configuration stored in the container itself is not available - // yet. These lines force the container cache to use Redis rather than the - // default SQL cache. - $settings['bootstrap_container_definition'] = [ - 'parameters' => [], - 'services' => [ - 'redis.factory' => [ - 'class' => 'Drupal\redis\ClientFactory', - ], - 'cache.backend.redis' => [ - 'class' => 'Drupal\redis\Cache\CacheBackendFactory', - 'arguments' => ['@redis.factory', '@cache_tags_provider.container', '@serialization.phpserialize'], - ], - 'cache.container' => [ - 'class' => '\Drupal\redis\Cache\PhpRedis', - 'factory' => ['@cache.backend.redis', 'get'], - 'arguments' => ['container'], - ], - 'cache_tags_provider.container' => [ - 'class' => 'Drupal\redis\Cache\RedisCacheTagsChecksum', - 'arguments' => ['@redis.factory'], - ], - 'serialization.phpserialize' => [ - 'class' => 'Drupal\Component\Serialization\PhpSerialize', - ], - ], - ]; - } - catch (\Exception $error) { - $settings['container_yamls'][] = 'sites/default/redis-unavailable.services.yml'; - $settings['cache']['default'] = 'cache.backend.null'; - } -} \ No newline at end of file diff --git a/tests/files/drupal9-mariadb-single/assets/lagoon.site.yml b/tests/files/drupal9-mariadb-single/assets/lagoon.site.yml deleted file mode 100644 index e1b9efb4b7..0000000000 --- a/tests/files/drupal9-mariadb-single/assets/lagoon.site.yml +++ /dev/null @@ -1,8 +0,0 @@ -'*': - host: lagoon-remote-ssh-portal.lagoon.svc - paths: - files: /app/web/sites/default/files - user: ${env-name} - ssh: - options: '-o StrictHostKeyChecking=accept-new -o LogLevel=FATAL -p 2222' - tty: false diff --git a/tests/files/drupal9-mariadb-single/assets/redis-unavailable.services.yml b/tests/files/drupal9-mariadb-single/assets/redis-unavailable.services.yml deleted file mode 100644 index 2657f20897..0000000000 --- a/tests/files/drupal9-mariadb-single/assets/redis-unavailable.services.yml +++ /dev/null @@ -1,9 +0,0 @@ -### Lagoon Drupal 8 redis unavailable services. -# -# This file will be added to the container in the event that redis is not -# available for a request. -# - -services: - cache.backend.null: - class: Drupal\Core\Cache\NullBackendFactory \ No newline at end of file diff --git a/tests/files/drupal9-mariadb-single/composer.json b/tests/files/drupal9-mariadb-single/composer.json deleted file mode 100644 index 515d1b9a74..0000000000 --- a/tests/files/drupal9-mariadb-single/composer.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "amazeeio/drupal-project", - "description": "Project template for Drupal 8 projects with composer hosted on amazee.io", - "type": "project", - "license": "GPL-2.0+", - "authors": [ - { - "name": "Michael Schmid michael@amazee.io", - "role": "CTO" - } - ], - "repositories": [ - { - "type": "composer", - "url": "https://packages.drupal.org/8" - } - ], - "require": { - "amazeeio/drupal_integrations": "~0.3", - "composer/installers": "~2.0", - "cweagans/composer-patches": "~1.7", - "drupal/core-project-message": "~9.4", - "drupal/core-recommended": "~9.4", - "drupal/lagoon_logs": "~1.0", - "drupal/redis": "~1.0", - "drush/drush": "~11.0", - "zaporylie/composer-drupal-optimizations": "~1.2" - }, - "require-dev": { - "drupal/core-dev-pinned": "~9.2" - }, - "conflict": { - "drupal/drupal": "*" - }, - "minimum-stability": "dev", - "prefer-stable": true, - "config":{ - "sort-packages": true, - "allow-plugins": { - "drupal/core-composer-scaffold": true, - "composer/installers": true, - "cweagans/composer-patches": true, - "drupal/core-project-message": true, - "zaporylie/composer-drupal-optimizations": true, - "dealerdirect/phpcodesniffer-composer-installer": true - } - }, - "extra": { - "installer-paths": { - "web/core": ["type:drupal-core"], - "web/libraries/{$name}": ["type:drupal-library"], - "web/modules/contrib/{$name}": ["type:drupal-module"], - "web/profiles/contrib/{$name}": ["type:drupal-profile"], - "web/themes/contrib/{$name}": ["type:drupal-theme"], - "drush/Commands/contrib/{$name}": ["type:drupal-drush"], - "web/modules/custom/{$name}": ["type:drupal-custom-module"], - "web/themes/custom/{$name}": ["type:drupal-custom-theme"] - }, - "drupal-scaffold": { - "allowed-packages": [ - "amazeeio/drupal_integrations" - ], - "file-mapping": { - "[web-root]/sites/default/all.settings.php": "assets/all.settings.php", - "[web-root]/sites/default/redis-unavailable.services.yml": "assets/redis-unavailable.services.yml", - "[project-root]/drush/sites/lagoon.site.yml": "assets/lagoon.site.yml" - }, - "locations": { - "web-root": "web/" - } - } - } -} diff --git a/tests/files/drupal9-mariadb-single/composer.lock b/tests/files/drupal9-mariadb-single/composer.lock deleted file mode 100644 index 364b722b70..0000000000 --- a/tests/files/drupal9-mariadb-single/composer.lock +++ /dev/null @@ -1,10302 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "cb5c962d7917a3b2ae8893612c400134", - "packages": [ - { - "name": "amazeeio/drupal_integrations", - "version": "0.3.7", - "source": { - "type": "git", - "url": "https://github.com/amazeeio/drupal-integrations.git", - "reference": "f5d4ddd9fbdb0e1ec4b7ab4c110189b6ddd6538d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/amazeeio/drupal-integrations/zipball/f5d4ddd9fbdb0e1ec4b7ab4c110189b6ddd6538d", - "reference": "f5d4ddd9fbdb0e1ec4b7ab4c110189b6ddd6538d", - "shasum": "" - }, - "require": { - "drupal/core-composer-scaffold": "*" - }, - "conflict": { - "drupal/core": "<8.5" - }, - "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", - "drupal/coder": "^8.3" - }, - "suggest": { - "drupal/lagoon_logs": "Zero configuration logging system for Drupal 7 and 8 sites running on amazee.io Lagoon" - }, - "type": "drupal-drush", - "extra": { - "drupal-scaffold": { - "file-mapping": { - "[project-root]/.drush-lock-update": "assets/drush-lock-update", - "[project-root]/drush/sites/lagoon.site.yml": "assets/lagoon.site.yml", - "[web-root]/sites/default/default.development.services.yml": "assets/default.development.services.yml", - "[web-root]/sites/default/settings.lagoon.php": "assets/settings.lagoon.php", - "[web-root]/sites/default/settings.php": { - "mode": "replace", - "path": "assets/initial.settings.php", - "overwrite": false - } - } - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Add this project to any Drupal distribution based on drupal/core-composer-scaffold to enable it for use on Lagoon.", - "support": { - "issues": "https://github.com/amazeeio/drupal-integrations/issues", - "source": "https://github.com/amazeeio/drupal-integrations/tree/0.3.7" - }, - "time": "2022-03-03T01:57:35+00:00" - }, - { - "name": "asm89/stack-cors", - "version": "1.3.0", - "source": { - "type": "git", - "url": "https://github.com/asm89/stack-cors.git", - "reference": "b9c31def6a83f84b4d4a40d35996d375755f0e08" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/asm89/stack-cors/zipball/b9c31def6a83f84b4d4a40d35996d375755f0e08", - "reference": "b9c31def6a83f84b4d4a40d35996d375755f0e08", - "shasum": "" - }, - "require": { - "php": ">=5.5.9", - "symfony/http-foundation": "~2.7|~3.0|~4.0|~5.0", - "symfony/http-kernel": "~2.7|~3.0|~4.0|~5.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.0 || ^4.8.10", - "squizlabs/php_codesniffer": "^2.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-dev" - } - }, - "autoload": { - "psr-4": { - "Asm89\\Stack\\": "src/Asm89/Stack/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Alexander", - "email": "iam.asm89@gmail.com" - } - ], - "description": "Cross-origin resource sharing library and stack middleware", - "homepage": "https://github.com/asm89/stack-cors", - "keywords": [ - "cors", - "stack" - ], - "support": { - "issues": "https://github.com/asm89/stack-cors/issues", - "source": "https://github.com/asm89/stack-cors/tree/1.3.0" - }, - "time": "2019-12-24T22:41:47+00:00" - }, - { - "name": "chi-teck/drupal-code-generator", - "version": "2.6.1", - "source": { - "type": "git", - "url": "https://github.com/Chi-teck/drupal-code-generator.git", - "reference": "3bffb204d29bd6136167f9f03b59f31cf5d5e6d2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Chi-teck/drupal-code-generator/zipball/3bffb204d29bd6136167f9f03b59f31cf5d5e6d2", - "reference": "3bffb204d29bd6136167f9f03b59f31cf5d5e6d2", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": ">=7.4", - "psr/log": "^1.1 || ^2.0 || ^3.0", - "symfony/console": "^4.4.15 || ^5.1 || ^6.0", - "symfony/filesystem": "^4.4 || ^5.1 || ^6", - "symfony/polyfill-php80": "^1.23", - "symfony/string": "^5.1 || ^6", - "twig/twig": "^2.14.11 || ^3.1" - }, - "conflict": { - "squizlabs/php_codesniffer": "<3.6" - }, - "require-dev": { - "chi-teck/drupal-coder-extension": "^1.2", - "drupal/coder": "^8.3.14", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.4", - "squizlabs/php_codesniffer": "^3.5", - "symfony/var-dumper": "^5.2 || ^6.0", - "symfony/yaml": "^5.2 || ^6.0" - }, - "bin": [ - "bin/dcg" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "DrupalCodeGenerator\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "description": "Drupal code generator", - "support": { - "issues": "https://github.com/Chi-teck/drupal-code-generator/issues", - "source": "https://github.com/Chi-teck/drupal-code-generator/tree/2.6.1" - }, - "time": "2022-09-15T09:13:57+00:00" - }, - { - "name": "composer/installers", - "version": "v2.2.0", - "source": { - "type": "git", - "url": "https://github.com/composer/installers.git", - "reference": "c29dc4b93137acb82734f672c37e029dfbd95b35" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/installers/zipball/c29dc4b93137acb82734f672c37e029dfbd95b35", - "reference": "c29dc4b93137acb82734f672c37e029dfbd95b35", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "composer/composer": "1.6.* || ^2.0", - "composer/semver": "^1 || ^3", - "phpstan/phpstan": "^0.12.55", - "phpstan/phpstan-phpunit": "^0.12.16", - "symfony/phpunit-bridge": "^5.3", - "symfony/process": "^5" - }, - "type": "composer-plugin", - "extra": { - "class": "Composer\\Installers\\Plugin", - "branch-alias": { - "dev-main": "2.x-dev" - }, - "plugin-modifies-install-path": true - }, - "autoload": { - "psr-4": { - "Composer\\Installers\\": "src/Composer/Installers" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kyle Robinson Young", - "email": "kyle@dontkry.com", - "homepage": "https://github.com/shama" - } - ], - "description": "A multi-framework Composer library installer", - "homepage": "https://composer.github.io/installers/", - "keywords": [ - "Dolibarr", - "Eliasis", - "Hurad", - "ImageCMS", - "Kanboard", - "Lan Management System", - "MODX Evo", - "MantisBT", - "Mautic", - "Maya", - "OXID", - "Plentymarkets", - "Porto", - "RadPHP", - "SMF", - "Starbug", - "Thelia", - "Whmcs", - "WolfCMS", - "agl", - "annotatecms", - "attogram", - "bitrix", - "cakephp", - "chef", - "cockpit", - "codeigniter", - "concrete5", - "croogo", - "dokuwiki", - "drupal", - "eZ Platform", - "elgg", - "expressionengine", - "fuelphp", - "grav", - "installer", - "itop", - "known", - "kohana", - "laravel", - "lavalite", - "lithium", - "magento", - "majima", - "mako", - "matomo", - "mediawiki", - "miaoxing", - "modulework", - "modx", - "moodle", - "osclass", - "pantheon", - "phpbb", - "piwik", - "ppi", - "processwire", - "puppet", - "pxcms", - "reindex", - "roundcube", - "shopware", - "silverstripe", - "sydes", - "sylius", - "tastyigniter", - "wordpress", - "yawik", - "zend", - "zikula" - ], - "support": { - "issues": "https://github.com/composer/installers/issues", - "source": "https://github.com/composer/installers/tree/v2.2.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-08-20T06:45:11+00:00" - }, - { - "name": "composer/semver", - "version": "3.3.2", - "source": { - "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Semver\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-04-01T19:23:25+00:00" - }, - { - "name": "consolidation/annotated-command", - "version": "4.7.0", - "source": { - "type": "git", - "url": "https://github.com/consolidation/annotated-command.git", - "reference": "423715c6c5156d007e6d3357f7793d9dad510cd4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/423715c6c5156d007e6d3357f7793d9dad510cd4", - "reference": "423715c6c5156d007e6d3357f7793d9dad510cd4", - "shasum": "" - }, - "require": { - "consolidation/output-formatters": "^4.1.1", - "php": ">=7.1.3", - "psr/log": "^1|^2|^3", - "symfony/console": "^4.4.8|^5|^6", - "symfony/event-dispatcher": "^4.4.8|^5|^6", - "symfony/finder": "^4.4.8|^5|^6" - }, - "require-dev": { - "composer-runtime-api": "^2.0", - "phpunit/phpunit": "^7.5.20 || ^8 || ^9", - "squizlabs/php_codesniffer": "^3", - "yoast/phpunit-polyfills": "^0.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\AnnotatedCommand\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "description": "Initialize Symfony Console commands from annotated command class methods.", - "support": { - "issues": "https://github.com/consolidation/annotated-command/issues", - "source": "https://github.com/consolidation/annotated-command/tree/4.7.0" - }, - "time": "2022-11-22T21:28:39+00:00" - }, - { - "name": "consolidation/config", - "version": "2.1.2", - "source": { - "type": "git", - "url": "https://github.com/consolidation/config.git", - "reference": "597f8d7fbeef801736250ec10c3e190569b1b0ae" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/config/zipball/597f8d7fbeef801736250ec10c3e190569b1b0ae", - "reference": "597f8d7fbeef801736250ec10c3e190569b1b0ae", - "shasum": "" - }, - "require": { - "dflydev/dot-access-data": "^1.1.0 || ^2 || ^3", - "grasmash/expander": "^2.0.1 || ^3", - "php": ">=7.1.3", - "symfony/event-dispatcher": "^4 || ^5 || ^6" - }, - "require-dev": { - "ext-json": "*", - "phpunit/phpunit": ">=7.5.20", - "squizlabs/php_codesniffer": "^3", - "symfony/console": "^4 || ^5 || ^6", - "symfony/yaml": "^4 || ^5 || ^6", - "yoast/phpunit-polyfills": "^1" - }, - "suggest": { - "symfony/event-dispatcher": "Required to inject configuration into Command options", - "symfony/yaml": "Required to use Consolidation\\Config\\Loader\\YamlConfigLoader" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\Config\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "description": "Provide configuration services for a commandline tool.", - "support": { - "issues": "https://github.com/consolidation/config/issues", - "source": "https://github.com/consolidation/config/tree/2.1.2" - }, - "time": "2022-10-06T17:48:03+00:00" - }, - { - "name": "consolidation/filter-via-dot-access-data", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/consolidation/filter-via-dot-access-data.git", - "reference": "cb2eeba41f8e2e3c61698a5cf70ef048ff6c9d5b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/filter-via-dot-access-data/zipball/cb2eeba41f8e2e3c61698a5cf70ef048ff6c9d5b", - "reference": "cb2eeba41f8e2e3c61698a5cf70ef048ff6c9d5b", - "shasum": "" - }, - "require": { - "dflydev/dot-access-data": "^1.1.0 || ^2.0.0 || ^3.0.0", - "php": ">=7.1.3" - }, - "require-dev": { - "phpunit/phpunit": "^7.5.20 || ^8 || ^9", - "squizlabs/php_codesniffer": "^3", - "yoast/phpunit-polyfills": "^0.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\Filter\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "description": "This project uses dflydev/dot-access-data to provide simple output filtering for applications built with annotated-command / Robo.", - "support": { - "source": "https://github.com/consolidation/filter-via-dot-access-data/tree/2.0.2" - }, - "time": "2021-12-30T03:56:08+00:00" - }, - { - "name": "consolidation/log", - "version": "2.1.1", - "source": { - "type": "git", - "url": "https://github.com/consolidation/log.git", - "reference": "3ad08dc57e8aff9400111bad36beb0ed387fe6a9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/log/zipball/3ad08dc57e8aff9400111bad36beb0ed387fe6a9", - "reference": "3ad08dc57e8aff9400111bad36beb0ed387fe6a9", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "psr/log": "^1 || ^2", - "symfony/console": "^4 || ^5 || ^6" - }, - "require-dev": { - "phpunit/phpunit": ">=7.5.20", - "squizlabs/php_codesniffer": "^3", - "yoast/phpunit-polyfills": "^0.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "description": "Improved Psr-3 / Psr\\Log logger based on Symfony Console components.", - "support": { - "issues": "https://github.com/consolidation/log/issues", - "source": "https://github.com/consolidation/log/tree/2.1.1" - }, - "time": "2022-02-24T04:27:32+00:00" - }, - { - "name": "consolidation/output-formatters", - "version": "4.2.3", - "source": { - "type": "git", - "url": "https://github.com/consolidation/output-formatters.git", - "reference": "cbb50cc86775f14972003f797b61e232788bee1f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/cbb50cc86775f14972003f797b61e232788bee1f", - "reference": "cbb50cc86775f14972003f797b61e232788bee1f", - "shasum": "" - }, - "require": { - "dflydev/dot-access-data": "^1.1.0 || ^2 || ^3", - "php": ">=7.1.3", - "symfony/console": "^4|^5|^6", - "symfony/finder": "^4|^5|^6" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.4.2", - "phpunit/phpunit": ">=7", - "squizlabs/php_codesniffer": "^3", - "symfony/var-dumper": "^4|^5|^6", - "symfony/yaml": "^4|^5|^6", - "yoast/phpunit-polyfills": "^0.2.0" - }, - "suggest": { - "symfony/var-dumper": "For using the var_dump formatter" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\OutputFormatters\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "description": "Format text by applying transformations provided by plug-in formatters.", - "support": { - "issues": "https://github.com/consolidation/output-formatters/issues", - "source": "https://github.com/consolidation/output-formatters/tree/4.2.3" - }, - "time": "2022-10-17T04:01:40+00:00" - }, - { - "name": "consolidation/robo", - "version": "3.0.10", - "source": { - "type": "git", - "url": "https://github.com/consolidation/robo.git", - "reference": "206bbe23b34081a36bfefc4de2abbc1abcd29ef4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/robo/zipball/206bbe23b34081a36bfefc4de2abbc1abcd29ef4", - "reference": "206bbe23b34081a36bfefc4de2abbc1abcd29ef4", - "shasum": "" - }, - "require": { - "consolidation/annotated-command": "^4.3", - "consolidation/config": "^1.2.1 || ^2.0.1", - "consolidation/log": "^1.1.1 || ^2.0.2", - "consolidation/output-formatters": "^4.1.2", - "consolidation/self-update": "^2.0", - "league/container": "^3.3.1 || ^4.0", - "php": ">=7.1.3", - "symfony/console": "^4.4.19 || ^5 || ^6", - "symfony/event-dispatcher": "^4.4.19 || ^5 || ^6", - "symfony/filesystem": "^4.4.9 || ^5 || ^6", - "symfony/finder": "^4.4.9 || ^5 || ^6", - "symfony/process": "^4.4.9 || ^5 || ^6", - "symfony/yaml": "^4.4 || ^5 || ^6" - }, - "conflict": { - "codegyre/robo": "*" - }, - "require-dev": { - "natxet/cssmin": "3.0.4", - "patchwork/jsqueeze": "^2", - "pear/archive_tar": "^1.4.4", - "phpunit/phpunit": "^7.5.20 || ^8", - "squizlabs/php_codesniffer": "^3.6", - "yoast/phpunit-polyfills": "^0.2.0" - }, - "suggest": { - "natxet/cssmin": "For minifying CSS files in taskMinify", - "patchwork/jsqueeze": "For minifying JS files in taskMinify", - "pear/archive_tar": "Allows tar archives to be created and extracted in taskPack and taskExtract, respectively.", - "totten/lurkerlite": "For monitoring filesystem changes in taskWatch" - }, - "bin": [ - "robo" - ], - "type": "library", - "extra": { - "scenarios": { - "symfony4": { - "require": { - "symfony/console": "^4.4.11", - "symfony/event-dispatcher": "^4.4.11", - "symfony/filesystem": "^4.4.11", - "symfony/finder": "^4.4.11", - "symfony/process": "^4.4.11", - "phpunit/phpunit": "^6", - "nikic/php-parser": "^2" - }, - "remove": [ - "codeception/phpunit-wrapper" - ], - "config": { - "platform": { - "php": "7.1.3" - } - } - } - }, - "branch-alias": { - "dev-master": "2.x-dev", - "dev-main": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Robo\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Davert", - "email": "davert.php@resend.cc" - } - ], - "description": "Modern task runner", - "support": { - "issues": "https://github.com/consolidation/robo/issues", - "source": "https://github.com/consolidation/robo/tree/3.0.10" - }, - "time": "2022-02-21T17:19:14+00:00" - }, - { - "name": "consolidation/self-update", - "version": "2.0.5", - "source": { - "type": "git", - "url": "https://github.com/consolidation/self-update.git", - "reference": "8a64bdd8daf5faa8e85f56534dd99caf928164b3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/self-update/zipball/8a64bdd8daf5faa8e85f56534dd99caf928164b3", - "reference": "8a64bdd8daf5faa8e85f56534dd99caf928164b3", - "shasum": "" - }, - "require": { - "composer/semver": "^3.2", - "php": ">=5.5.0", - "symfony/console": "^2.8 || ^3 || ^4 || ^5 || ^6", - "symfony/filesystem": "^2.5 || ^3 || ^4 || ^5 || ^6" - }, - "bin": [ - "scripts/release" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "SelfUpdate\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Alexander Menk", - "email": "menk@mestrona.net" - }, - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "description": "Provides a self:update command for Symfony Console applications.", - "support": { - "issues": "https://github.com/consolidation/self-update/issues", - "source": "https://github.com/consolidation/self-update/tree/2.0.5" - }, - "time": "2022-02-09T22:44:24+00:00" - }, - { - "name": "consolidation/site-alias", - "version": "3.1.7", - "source": { - "type": "git", - "url": "https://github.com/consolidation/site-alias.git", - "reference": "3b6519592c7e8557423f935806cd73adf69ed6c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/site-alias/zipball/3b6519592c7e8557423f935806cd73adf69ed6c7", - "reference": "3b6519592c7e8557423f935806cd73adf69ed6c7", - "shasum": "" - }, - "require": { - "consolidation/config": "^1.2.1 || ^2", - "php": ">=5.5.0", - "symfony/filesystem": "^4.4 || ^5.4 || ^6", - "symfony/finder": "~2.3 || ^3 || ^4.4 || ^5 || ^6", - "webmozart/path-util": "^2.3" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.4.2", - "phpunit/phpunit": ">=7", - "squizlabs/php_codesniffer": "^3", - "symfony/var-dumper": "^4", - "yoast/phpunit-polyfills": "^0.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\SiteAlias\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - }, - { - "name": "Moshe Weitzman", - "email": "weitzman@tejasa.com" - } - ], - "description": "Manage alias records for local and remote sites.", - "support": { - "issues": "https://github.com/consolidation/site-alias/issues", - "source": "https://github.com/consolidation/site-alias/tree/3.1.7" - }, - "time": "2022-10-15T01:21:09+00:00" - }, - { - "name": "consolidation/site-process", - "version": "4.2.1", - "source": { - "type": "git", - "url": "https://github.com/consolidation/site-process.git", - "reference": "ee3bf69001694b2117cc2f96c2ef70d8d45f1234" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/site-process/zipball/ee3bf69001694b2117cc2f96c2ef70d8d45f1234", - "reference": "ee3bf69001694b2117cc2f96c2ef70d8d45f1234", - "shasum": "" - }, - "require": { - "consolidation/config": "^1.2.1 || ^2", - "consolidation/site-alias": "^3 || ^4", - "php": ">=7.1.3", - "symfony/console": "^2.8.52 || ^3 || ^4.4 || ^5", - "symfony/process": "^4.3.4 || ^5" - }, - "require-dev": { - "phpunit/phpunit": "^7.5.20 || ^8.5.14", - "squizlabs/php_codesniffer": "^3", - "yoast/phpunit-polyfills": "^0.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\SiteProcess\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - }, - { - "name": "Moshe Weitzman", - "email": "weitzman@tejasa.com" - } - ], - "description": "A thin wrapper around the Symfony Process Component that allows applications to use the Site Alias library to specify the target for a remote call.", - "support": { - "issues": "https://github.com/consolidation/site-process/issues", - "source": "https://github.com/consolidation/site-process/tree/4.2.1" - }, - "time": "2022-10-18T13:19:35+00:00" - }, - { - "name": "cweagans/composer-patches", - "version": "1.7.2", - "source": { - "type": "git", - "url": "https://github.com/cweagans/composer-patches.git", - "reference": "e9969cfc0796e6dea9b4e52f77f18e1065212871" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cweagans/composer-patches/zipball/e9969cfc0796e6dea9b4e52f77f18e1065212871", - "reference": "e9969cfc0796e6dea9b4e52f77f18e1065212871", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=5.3.0" - }, - "require-dev": { - "composer/composer": "~1.0 || ~2.0", - "phpunit/phpunit": "~4.6" - }, - "type": "composer-plugin", - "extra": { - "class": "cweagans\\Composer\\Patches" - }, - "autoload": { - "psr-4": { - "cweagans\\Composer\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Cameron Eagans", - "email": "me@cweagans.net" - } - ], - "description": "Provides a way to patch Composer packages.", - "support": { - "issues": "https://github.com/cweagans/composer-patches/issues", - "source": "https://github.com/cweagans/composer-patches/tree/1.7.2" - }, - "time": "2022-01-25T19:21:20+00:00" - }, - { - "name": "dflydev/dot-access-data", - "version": "v3.0.2", - "source": { - "type": "git", - "url": "https://github.com/dflydev/dflydev-dot-access-data.git", - "reference": "f41715465d65213d644d3141a6a93081be5d3549" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", - "reference": "f41715465d65213d644d3141a6a93081be5d3549", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.42", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", - "scrutinizer/ocular": "1.6.0", - "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^4.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Dflydev\\DotAccessData\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Dragonfly Development Inc.", - "email": "info@dflydev.com", - "homepage": "http://dflydev.com" - }, - { - "name": "Beau Simensen", - "email": "beau@dflydev.com", - "homepage": "http://beausimensen.com" - }, - { - "name": "Carlos Frutos", - "email": "carlos@kiwing.it", - "homepage": "https://github.com/cfrutos" - }, - { - "name": "Colin O'Dell", - "email": "colinodell@gmail.com", - "homepage": "https://www.colinodell.com" - } - ], - "description": "Given a deep data structure, access data by dot notation.", - "homepage": "https://github.com/dflydev/dflydev-dot-access-data", - "keywords": [ - "access", - "data", - "dot", - "notation" - ], - "support": { - "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", - "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" - }, - "time": "2022-10-27T11:44:00+00:00" - }, - { - "name": "doctrine/annotations", - "version": "1.13.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "648b0343343565c4a056bfc8392201385e8d89f0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/648b0343343565c4a056bfc8392201385e8d89f0", - "reference": "648b0343343565c4a056bfc8392201385e8d89f0", - "shasum": "" - }, - "require": { - "doctrine/lexer": "1.*", - "ext-tokenizer": "*", - "php": "^7.1 || ^8.0", - "psr/cache": "^1 || ^2 || ^3" - }, - "require-dev": { - "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^1.4.10 || ^1.8.0", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", - "symfony/cache": "^4.4 || ^5.2", - "vimeo/psalm": "^4.10" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Docblock Annotations Parser", - "homepage": "https://www.doctrine-project.org/projects/annotations.html", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "support": { - "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.13.3" - }, - "time": "2022-07-02T10:48:51+00:00" - }, - { - "name": "doctrine/lexer", - "version": "1.2.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "^1.3", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.11" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "https://www.doctrine-project.org/projects/lexer.html", - "keywords": [ - "annotations", - "docblock", - "lexer", - "parser", - "php" - ], - "support": { - "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.3" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", - "type": "tidelift" - } - ], - "time": "2022-02-28T11:07:21+00:00" - }, - { - "name": "doctrine/reflection", - "version": "1.2.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/reflection.git", - "reference": "1034e5e71f89978b80f9c1570e7226f6c3b9b6fb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/reflection/zipball/1034e5e71f89978b80f9c1570e7226f6c3b9b6fb", - "reference": "1034e5e71f89978b80f9c1570e7226f6c3b9b6fb", - "shasum": "" - }, - "require": { - "doctrine/annotations": "^1.0", - "ext-tokenizer": "*", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": "<2.9" - }, - "require-dev": { - "doctrine/coding-standard": "^9", - "doctrine/common": "^3.3", - "phpstan/phpstan": "^1.4.10", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.", - "homepage": "https://www.doctrine-project.org/projects/reflection.html", - "keywords": [ - "reflection", - "static" - ], - "support": { - "issues": "https://github.com/doctrine/reflection/issues", - "source": "https://github.com/doctrine/reflection/tree/1.2.3" - }, - "abandoned": "roave/better-reflection", - "time": "2022-05-31T18:46:25+00:00" - }, - { - "name": "drupal/core", - "version": "9.4.8", - "source": { - "type": "git", - "url": "https://github.com/drupal/core.git", - "reference": "a627d1b2a00f2cef0572e37b94dea298800541f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/a627d1b2a00f2cef0572e37b94dea298800541f4", - "reference": "a627d1b2a00f2cef0572e37b94dea298800541f4", - "shasum": "" - }, - "require": { - "asm89/stack-cors": "^1.3", - "composer/semver": "^3.3", - "doctrine/annotations": "^1.13", - "doctrine/reflection": "^1.2", - "egulias/email-validator": "^2.1.22|^3.2", - "ext-date": "*", - "ext-dom": "*", - "ext-filter": "*", - "ext-gd": "*", - "ext-hash": "*", - "ext-json": "*", - "ext-pcre": "*", - "ext-pdo": "*", - "ext-session": "*", - "ext-simplexml": "*", - "ext-spl": "*", - "ext-tokenizer": "*", - "ext-xml": "*", - "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5", - "laminas/laminas-diactoros": "^2.11", - "laminas/laminas-feed": "^2.17", - "masterminds/html5": "^2.7", - "pear/archive_tar": "^1.4.14", - "php": ">=7.3.0", - "psr/log": "^1.1", - "stack/builder": "^1.0", - "symfony-cmf/routing": "^2.3", - "symfony/console": "^4.4", - "symfony/dependency-injection": "^4.4", - "symfony/event-dispatcher": "^4.4", - "symfony/http-foundation": "^4.4.7", - "symfony/http-kernel": "^4.4", - "symfony/mime": "^5.4", - "symfony/polyfill-iconv": "^1.25", - "symfony/polyfill-php80": "^1.25", - "symfony/process": "^4.4", - "symfony/psr-http-message-bridge": "^2.1", - "symfony/routing": "^4.4", - "symfony/serializer": "^4.4", - "symfony/translation": "^4.4", - "symfony/validator": "^4.4", - "symfony/yaml": "^4.4.19", - "twig/twig": "^2.15.3", - "typo3/phar-stream-wrapper": "^3.1.3" - }, - "conflict": { - "drush/drush": "<8.1.10", - "symfony/http-foundation": "4.4.42" - }, - "replace": { - "drupal/core-annotation": "self.version", - "drupal/core-assertion": "self.version", - "drupal/core-bridge": "self.version", - "drupal/core-class-finder": "self.version", - "drupal/core-datetime": "self.version", - "drupal/core-dependency-injection": "self.version", - "drupal/core-diff": "self.version", - "drupal/core-discovery": "self.version", - "drupal/core-event-dispatcher": "self.version", - "drupal/core-file-cache": "self.version", - "drupal/core-file-security": "self.version", - "drupal/core-filesystem": "self.version", - "drupal/core-front-matter": "self.version", - "drupal/core-gettext": "self.version", - "drupal/core-graph": "self.version", - "drupal/core-http-foundation": "self.version", - "drupal/core-php-storage": "self.version", - "drupal/core-plugin": "self.version", - "drupal/core-proxy-builder": "self.version", - "drupal/core-render": "self.version", - "drupal/core-serialization": "self.version", - "drupal/core-transliteration": "self.version", - "drupal/core-utility": "self.version", - "drupal/core-uuid": "self.version", - "drupal/core-version": "self.version" - }, - "type": "drupal-core", - "extra": { - "drupal-scaffold": { - "file-mapping": { - "[project-root]/.editorconfig": "assets/scaffold/files/editorconfig", - "[project-root]/.gitattributes": "assets/scaffold/files/gitattributes", - "[web-root]/.csslintrc": "assets/scaffold/files/csslintrc", - "[web-root]/.eslintignore": "assets/scaffold/files/eslintignore", - "[web-root]/.eslintrc.json": "assets/scaffold/files/eslintrc.json", - "[web-root]/.ht.router.php": "assets/scaffold/files/ht.router.php", - "[web-root]/.htaccess": "assets/scaffold/files/htaccess", - "[web-root]/example.gitignore": "assets/scaffold/files/example.gitignore", - "[web-root]/index.php": "assets/scaffold/files/index.php", - "[web-root]/INSTALL.txt": "assets/scaffold/files/drupal.INSTALL.txt", - "[web-root]/README.md": "assets/scaffold/files/drupal.README.md", - "[web-root]/robots.txt": "assets/scaffold/files/robots.txt", - "[web-root]/update.php": "assets/scaffold/files/update.php", - "[web-root]/web.config": "assets/scaffold/files/web.config", - "[web-root]/sites/README.txt": "assets/scaffold/files/sites.README.txt", - "[web-root]/sites/development.services.yml": "assets/scaffold/files/development.services.yml", - "[web-root]/sites/example.settings.local.php": "assets/scaffold/files/example.settings.local.php", - "[web-root]/sites/example.sites.php": "assets/scaffold/files/example.sites.php", - "[web-root]/sites/default/default.services.yml": "assets/scaffold/files/default.services.yml", - "[web-root]/sites/default/default.settings.php": "assets/scaffold/files/default.settings.php", - "[web-root]/modules/README.txt": "assets/scaffold/files/modules.README.txt", - "[web-root]/profiles/README.txt": "assets/scaffold/files/profiles.README.txt", - "[web-root]/themes/README.txt": "assets/scaffold/files/themes.README.txt" - } - } - }, - "autoload": { - "files": [ - "includes/bootstrap.inc", - "includes/guzzle_php81_shim.php" - ], - "psr-4": { - "Drupal\\Core\\": "lib/Drupal/Core", - "Drupal\\Driver\\": "../drivers/lib/Drupal/Driver", - "Drupal\\Component\\": "lib/Drupal/Component" - }, - "classmap": [ - "lib/Drupal.php", - "lib/Drupal/Component/DependencyInjection/Container.php", - "lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php", - "lib/Drupal/Component/FileCache/FileCacheFactory.php", - "lib/Drupal/Component/Utility/Timer.php", - "lib/Drupal/Component/Utility/Unicode.php", - "lib/Drupal/Core/Cache/Cache.php", - "lib/Drupal/Core/Cache/CacheBackendInterface.php", - "lib/Drupal/Core/Cache/CacheTagsChecksumInterface.php", - "lib/Drupal/Core/Cache/CacheTagsChecksumTrait.php", - "lib/Drupal/Core/Cache/CacheTagsInvalidatorInterface.php", - "lib/Drupal/Core/Cache/DatabaseBackend.php", - "lib/Drupal/Core/Cache/DatabaseCacheTagsChecksum.php", - "lib/Drupal/Core/Database/Connection.php", - "lib/Drupal/Core/Database/Database.php", - "lib/Drupal/Core/Database/Statement.php", - "lib/Drupal/Core/Database/StatementInterface.php", - "lib/Drupal/Core/DependencyInjection/Container.php", - "lib/Drupal/Core/DrupalKernel.php", - "lib/Drupal/Core/DrupalKernelInterface.php", - "lib/Drupal/Core/Http/InputBag.php", - "lib/Drupal/Core/Installer/InstallerRedirectTrait.php", - "lib/Drupal/Core/Site/Settings.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "description": "Drupal is an open source content management platform powering millions of websites and applications.", - "support": { - "source": "https://github.com/drupal/core/tree/9.4.8" - }, - "time": "2022-10-06T15:57:08+00:00" - }, - { - "name": "drupal/core-composer-scaffold", - "version": "9.4.8", - "source": { - "type": "git", - "url": "https://github.com/drupal/core-composer-scaffold.git", - "reference": "5f37a9e4008b34e3e4f6bb34ce0b3f7e5ec8984f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/5f37a9e4008b34e3e4f6bb34ce0b3f7e5ec8984f", - "reference": "5f37a9e4008b34e3e4f6bb34ce0b3f7e5ec8984f", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1 || ^2", - "php": ">=7.3.0" - }, - "conflict": { - "drupal-composer/drupal-scaffold": "*" - }, - "require-dev": { - "composer/composer": "^1.8@stable" - }, - "type": "composer-plugin", - "extra": { - "class": "Drupal\\Composer\\Plugin\\Scaffold\\Plugin", - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Drupal\\Composer\\Plugin\\Scaffold\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "description": "A flexible Composer project scaffold builder.", - "homepage": "https://www.drupal.org/project/drupal", - "keywords": [ - "drupal" - ], - "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/9.4.8" - }, - "time": "2022-06-19T16:14:23+00:00" - }, - { - "name": "drupal/core-project-message", - "version": "9.4.8", - "source": { - "type": "git", - "url": "https://github.com/drupal/core-project-message.git", - "reference": "5dfa0b75a057caf6542be67f61e7531c737db48c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drupal/core-project-message/zipball/5dfa0b75a057caf6542be67f61e7531c737db48c", - "reference": "5dfa0b75a057caf6542be67f61e7531c737db48c", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1 || ^2", - "php": ">=7.3.0" - }, - "type": "composer-plugin", - "extra": { - "class": "Drupal\\Composer\\Plugin\\ProjectMessage\\MessagePlugin" - }, - "autoload": { - "psr-4": { - "Drupal\\Composer\\Plugin\\ProjectMessage\\": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "description": "Adds a message after Composer installation.", - "homepage": "https://www.drupal.org/project/drupal", - "keywords": [ - "drupal" - ], - "support": { - "source": "https://github.com/drupal/core-project-message/tree/9.5.0-beta2" - }, - "time": "2022-02-24T17:40:53+00:00" - }, - { - "name": "drupal/core-recommended", - "version": "9.4.8", - "source": { - "type": "git", - "url": "https://github.com/drupal/core-recommended.git", - "reference": "684cc844f7b729286f5d62f1ee4b20ab12586502" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drupal/core-recommended/zipball/684cc844f7b729286f5d62f1ee4b20ab12586502", - "reference": "684cc844f7b729286f5d62f1ee4b20ab12586502", - "shasum": "" - }, - "require": { - "asm89/stack-cors": "~1.3.0", - "composer/semver": "~3.3.2", - "doctrine/annotations": "~1.13.2", - "doctrine/lexer": "~1.2.3", - "doctrine/reflection": "~1.2.3", - "drupal/core": "9.4.8", - "egulias/email-validator": "~3.2", - "guzzlehttp/guzzle": "~6.5.8", - "guzzlehttp/promises": "~1.5.1", - "guzzlehttp/psr7": "~1.9.0", - "laminas/laminas-diactoros": "~2.11.1", - "laminas/laminas-escaper": "~2.9.0", - "laminas/laminas-feed": "~2.17.0", - "laminas/laminas-stdlib": "~3.7.1", - "masterminds/html5": "~2.7.5", - "pear/archive_tar": "~1.4.14", - "pear/console_getopt": "~v1.4.3", - "pear/pear-core-minimal": "~v1.10.11", - "pear/pear_exception": "~v1.0.2", - "psr/cache": "~1.0.1", - "psr/container": "~1.1.1", - "psr/http-factory": "~1.0.1", - "psr/http-message": "~1.0.1", - "psr/log": "~1.1.4", - "ralouphie/getallheaders": "~3.0.3", - "stack/builder": "~v1.0.6", - "symfony-cmf/routing": "~2.3.4", - "symfony/console": "~v4.4.42", - "symfony/debug": "~v4.4.41", - "symfony/dependency-injection": "~v4.4.42", - "symfony/deprecation-contracts": "~v2.5.1", - "symfony/error-handler": "~v4.4.41", - "symfony/event-dispatcher": "~v4.4.42", - "symfony/event-dispatcher-contracts": "~v1.1.12", - "symfony/http-client-contracts": "~v2.5.1", - "symfony/http-foundation": "~v4.4.41", - "symfony/http-kernel": "~v4.4.42", - "symfony/mime": "~v5.4.9", - "symfony/polyfill-ctype": "~v1.25.0", - "symfony/polyfill-iconv": "~v1.25.0", - "symfony/polyfill-intl-idn": "~v1.25.0", - "symfony/polyfill-intl-normalizer": "~v1.25.0", - "symfony/polyfill-mbstring": "~v1.25.0", - "symfony/polyfill-php80": "~v1.25.0", - "symfony/process": "~v4.4.41", - "symfony/psr-http-message-bridge": "~v2.1.2", - "symfony/routing": "~v4.4.41", - "symfony/serializer": "~v4.4.42", - "symfony/service-contracts": "~v2.5.1", - "symfony/translation": "~v4.4.41", - "symfony/translation-contracts": "~v2.5.1", - "symfony/validator": "~v4.4.41", - "symfony/var-dumper": "~v5.4.9", - "symfony/yaml": "~v4.4.37", - "twig/twig": "~v2.15.3", - "typo3/phar-stream-wrapper": "~v3.1.7" - }, - "conflict": { - "webflo/drupal-core-strict": "*" - }, - "type": "metapackage", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "description": "Core and its dependencies with known-compatible minor versions. Require this project INSTEAD OF drupal/core.", - "support": { - "source": "https://github.com/drupal/core-recommended/tree/9.4.8" - }, - "time": "2022-10-06T15:57:08+00:00" - }, - { - "name": "drupal/lagoon_logs", - "version": "1.3.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/lagoon_logs.git", - "reference": "8.x-1.3" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/lagoon_logs-8.x-1.3.zip", - "reference": "8.x-1.3", - "shasum": "283b14b6e9c1e68878900d25823ab094c91d1d63" - }, - "require": { - "drupal/core": "^8 || ^9", - "monolog/monolog": "^1.24.0 || ^2.0" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.3", - "datestamp": "1643805457", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Blaize Kaye", - "homepage": "https://www.drupal.org/u/bomoko", - "role": "Maintainer" - }, - { - "name": "fjgarlin", - "homepage": "https://www.drupal.org/user/2495842" - }, - { - "name": "tim.clifford", - "homepage": "https://www.drupal.org/user/3460013" - }, - { - "name": "tobybellwood", - "homepage": "https://www.drupal.org/user/3529537" - } - ], - "description": "Lagoon_logs D8 is a convenience wrapper for monolog.", - "homepage": "https://www.drupal.org/project/lagoon_logs", - "support": { - "source": "https://git.drupalcode.org/project/lagoon_logs" - } - }, - { - "name": "drupal/redis", - "version": "1.6.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/redis.git", - "reference": "8.x-1.6" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/redis-8.x-1.6.zip", - "reference": "8.x-1.6", - "shasum": "9e21a03743030e09a8b98da49c4549bd4b83251a" - }, - "require": { - "drupal/core": "^9.3 || ^10" - }, - "suggest": { - "predis/predis": "^1.1.1" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.6", - "datestamp": "1667512839", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - } - }, - "autoload": { - "psr-4": { - "Drupal\\redis\\": "src" - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Berdir", - "homepage": "https://www.drupal.org/user/214652" - }, - { - "name": "greg.1.anderson", - "homepage": "https://www.drupal.org/user/438598" - }, - { - "name": "kporras07", - "homepage": "https://www.drupal.org/user/1349780" - }, - { - "name": "pounard", - "homepage": "https://www.drupal.org/user/240164" - } - ], - "description": "Integration of Drupal with the Redis key-value store.", - "homepage": "https://www.drupal.org/project/redis", - "support": { - "source": "https://git.drupalcode.org/project/redis" - } - }, - { - "name": "drush/drush", - "version": "11.3.2", - "source": { - "type": "git", - "url": "https://github.com/drush-ops/drush.git", - "reference": "57cd12235f0a8b3aaabc841fd6c82b64f3dffc02" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drush-ops/drush/zipball/57cd12235f0a8b3aaabc841fd6c82b64f3dffc02", - "reference": "57cd12235f0a8b3aaabc841fd6c82b64f3dffc02", - "shasum": "" - }, - "require": { - "chi-teck/drupal-code-generator": "^2.4", - "composer/semver": "^1.4 || ^3", - "consolidation/annotated-command": "^4.5.3", - "consolidation/config": "^2", - "consolidation/filter-via-dot-access-data": "^2", - "consolidation/robo": "^3.0.9 || ^4.0.1", - "consolidation/site-alias": "^3.1.6 || ^4", - "consolidation/site-process": "^4.1.3 || ^5", - "enlightn/security-checker": "^1", - "ext-dom": "*", - "guzzlehttp/guzzle": "^6.5 || ^7.0", - "league/container": "^3.4 || ^4", - "php": ">=7.4", - "psy/psysh": "~0.11", - "symfony/event-dispatcher": "^4.0 || ^5.0 || ^6.0", - "symfony/filesystem": "^4.4 || ^5.4 || ^6.1", - "symfony/finder": "^4.0 || ^5 || ^6", - "symfony/polyfill-php80": "^1.23", - "symfony/var-dumper": "^4.0 || ^5.0 || ^6.0", - "symfony/yaml": "^4.0 || ^5.0 || ^6.0", - "webflo/drupal-finder": "^1.2" - }, - "conflict": { - "drupal/core": "< 9.2", - "drupal/migrate_run": "*", - "drupal/migrate_tools": "<= 5" - }, - "require-dev": { - "composer/installers": "^1.7", - "cweagans/composer-patches": "~1.0", - "david-garcia/phpwhois": "4.3.0", - "drupal/core-recommended": "^9 || ^10", - "drupal/semver_example": "2.3.0", - "phpunit/phpunit": ">=7.5.20", - "rector/rector": "^0.12", - "squizlabs/php_codesniffer": "^3.6", - "vlucas/phpdotenv": "^2.4", - "yoast/phpunit-polyfills": "^0.2.0" - }, - "bin": [ - "drush" - ], - "type": "library", - "extra": { - "installer-paths": { - "sut/core": [ - "type:drupal-core" - ], - "sut/libraries/{$name}": [ - "type:drupal-library" - ], - "sut/modules/unish/{$name}": [ - "drupal/devel" - ], - "sut/themes/unish/{$name}": [ - "drupal/empty_theme" - ], - "sut/modules/contrib/{$name}": [ - "type:drupal-module" - ], - "sut/profiles/contrib/{$name}": [ - "type:drupal-profile" - ], - "sut/themes/contrib/{$name}": [ - "type:drupal-theme" - ], - "sut/drush/contrib/{$name}": [ - "type:drupal-drush" - ] - } - }, - "autoload": { - "psr-4": { - "Drush\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Moshe Weitzman", - "email": "weitzman@tejasa.com" - }, - { - "name": "Owen Barton", - "email": "drupal@owenbarton.com" - }, - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - }, - { - "name": "Jonathan Araña Cruz", - "email": "jonhattan@faita.net" - }, - { - "name": "Jonathan Hedstrom", - "email": "jhedstrom@gmail.com" - }, - { - "name": "Christopher Gervais", - "email": "chris@ergonlogic.com" - }, - { - "name": "Dave Reid", - "email": "dave@davereid.net" - }, - { - "name": "Damian Lee", - "email": "damiankloip@googlemail.com" - } - ], - "description": "Drush is a command line shell and scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those of us who spend some of our working hours hacking away at the command prompt.", - "homepage": "http://www.drush.org", - "support": { - "forum": "http://drupal.stackexchange.com/questions/tagged/drush", - "issues": "https://github.com/drush-ops/drush/issues", - "slack": "https://drupal.slack.com/messages/C62H9CWQM", - "source": "https://github.com/drush-ops/drush/tree/11.3.2" - }, - "funding": [ - { - "url": "https://github.com/weitzman", - "type": "github" - } - ], - "time": "2022-10-24T14:01:14+00:00" - }, - { - "name": "egulias/email-validator", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/egulias/EmailValidator.git", - "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/f88dcf4b14af14a98ad96b14b2b317969eab6715", - "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715", - "shasum": "" - }, - "require": { - "doctrine/lexer": "^1.2", - "php": ">=7.2", - "symfony/polyfill-intl-idn": "^1.15" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^8.5.8|^9.3.3", - "vimeo/psalm": "^4" - }, - "suggest": { - "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Egulias\\EmailValidator\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Eduardo Gulias Davis" - } - ], - "description": "A library for validating emails against several RFCs", - "homepage": "https://github.com/egulias/EmailValidator", - "keywords": [ - "email", - "emailvalidation", - "emailvalidator", - "validation", - "validator" - ], - "support": { - "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/3.2.1" - }, - "funding": [ - { - "url": "https://github.com/egulias", - "type": "github" - } - ], - "time": "2022-06-18T20:57:19+00:00" - }, - { - "name": "enlightn/security-checker", - "version": "v1.10.0", - "source": { - "type": "git", - "url": "https://github.com/enlightn/security-checker.git", - "reference": "196bacc76e7a72a63d0e1220926dbb190272db97" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/enlightn/security-checker/zipball/196bacc76e7a72a63d0e1220926dbb190272db97", - "reference": "196bacc76e7a72a63d0e1220926dbb190272db97", - "shasum": "" - }, - "require": { - "ext-json": "*", - "guzzlehttp/guzzle": "^6.3|^7.0", - "php": ">=5.6", - "symfony/console": "^3.4|^4|^5|^6", - "symfony/finder": "^3|^4|^5|^6", - "symfony/process": "^3.4|^4|^5|^6", - "symfony/yaml": "^3.4|^4|^5|^6" - }, - "require-dev": { - "ext-zip": "*", - "friendsofphp/php-cs-fixer": "^2.18|^3.0", - "phpunit/phpunit": "^5.5|^6|^7|^8|^9" - }, - "bin": [ - "security-checker" - ], - "type": "library", - "autoload": { - "psr-4": { - "Enlightn\\SecurityChecker\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paras Malhotra", - "email": "paras@laravel-enlightn.com" - }, - { - "name": "Miguel Piedrafita", - "email": "soy@miguelpiedrafita.com" - } - ], - "description": "A PHP dependency vulnerabilities scanner based on the Security Advisories Database.", - "keywords": [ - "package", - "php", - "scanner", - "security", - "security advisories", - "vulnerability scanner" - ], - "support": { - "issues": "https://github.com/enlightn/security-checker/issues", - "source": "https://github.com/enlightn/security-checker/tree/v1.10.0" - }, - "time": "2022-02-21T22:40:16+00:00" - }, - { - "name": "grasmash/expander", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/grasmash/expander.git", - "reference": "b7cbc1f2fdf9a9c0e253a424c2a4058316b7cb6e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/grasmash/expander/zipball/b7cbc1f2fdf9a9c0e253a424c2a4058316b7cb6e", - "reference": "b7cbc1f2fdf9a9c0e253a424c2a4058316b7cb6e", - "shasum": "" - }, - "require": { - "dflydev/dot-access-data": "^3.0.0", - "php": ">=7.1", - "psr/log": "^1 | ^2 | ^3" - }, - "require-dev": { - "greg-1-anderson/composer-test-scenarios": "^1", - "phpunit/phpunit": "^6.0 || ^8.0 || ^9", - "squizlabs/php_codesniffer": "^2.7 || ^3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Grasmash\\Expander\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Matthew Grasmick" - } - ], - "description": "Expands internal property references in PHP arrays file.", - "support": { - "issues": "https://github.com/grasmash/expander/issues", - "source": "https://github.com/grasmash/expander/tree/2.0.3" - }, - "time": "2022-04-25T22:17:46+00:00" - }, - { - "name": "guzzlehttp/guzzle", - "version": "6.5.8", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981", - "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981", - "shasum": "" - }, - "require": { - "ext-json": "*", - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.9", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.17" - }, - "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.1" - }, - "suggest": { - "psr/log": "Required for using the Log middleware" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.5-dev" - } - }, - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Jeremy Lindblom", - "email": "jeremeamia@gmail.com", - "homepage": "https://github.com/jeremeamia" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" - ], - "support": { - "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/6.5.8" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", - "type": "tidelift" - } - ], - "time": "2022-06-20T22:16:07+00:00" - }, - { - "name": "guzzlehttp/promises", - "version": "1.5.2", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "b94b2807d85443f9719887892882d0329d1e2598" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", - "reference": "b94b2807d85443f9719887892882d0329d1e2598", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.5-dev" - } - }, - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ], - "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.2" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", - "type": "tidelift" - } - ], - "time": "2022-08-28T14:55:35+00:00" - }, - { - "name": "guzzlehttp/psr7", - "version": "1.9.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", - "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", - "shasum": "" - }, - "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" - }, - "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": [ - "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" - ], - "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.9.0" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", - "type": "tidelift" - } - ], - "time": "2022-06-20T21:43:03+00:00" - }, - { - "name": "laminas/laminas-diactoros", - "version": "2.11.3", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-diactoros.git", - "reference": "1f97b0c52eafd108e09c76d6b29d83ef4a855f76" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/1f97b0c52eafd108e09c76d6b29d83ef4a855f76", - "reference": "1f97b0c52eafd108e09c76d6b29d83ef4a855f76", - "shasum": "" - }, - "require": { - "php": "^7.3 || ~8.0.0 || ~8.1.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.0" - }, - "conflict": { - "phpspec/prophecy": "<1.9.0", - "zendframework/zend-diactoros": "*" - }, - "provide": { - "psr/http-factory-implementation": "1.0", - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "ext-curl": "*", - "ext-dom": "*", - "ext-gd": "*", - "ext-libxml": "*", - "http-interop/http-factory-tests": "^0.8.0", - "laminas/laminas-coding-standard": "~1.0.0", - "php-http/psr7-integration-tests": "^1.1", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.1", - "psalm/plugin-phpunit": "^0.14.0", - "vimeo/psalm": "^4.3" - }, - "type": "library", - "extra": { - "laminas": { - "config-provider": "Laminas\\Diactoros\\ConfigProvider", - "module": "Laminas\\Diactoros" - } - }, - "autoload": { - "files": [ - "src/functions/create_uploaded_file.php", - "src/functions/marshal_headers_from_sapi.php", - "src/functions/marshal_method_from_sapi.php", - "src/functions/marshal_protocol_version_from_sapi.php", - "src/functions/marshal_uri_from_sapi.php", - "src/functions/normalize_server.php", - "src/functions/normalize_uploaded_files.php", - "src/functions/parse_cookie_header.php", - "src/functions/create_uploaded_file.legacy.php", - "src/functions/marshal_headers_from_sapi.legacy.php", - "src/functions/marshal_method_from_sapi.legacy.php", - "src/functions/marshal_protocol_version_from_sapi.legacy.php", - "src/functions/marshal_uri_from_sapi.legacy.php", - "src/functions/normalize_server.legacy.php", - "src/functions/normalize_uploaded_files.legacy.php", - "src/functions/parse_cookie_header.legacy.php" - ], - "psr-4": { - "Laminas\\Diactoros\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "PSR HTTP Message implementations", - "homepage": "https://laminas.dev", - "keywords": [ - "http", - "laminas", - "psr", - "psr-17", - "psr-7" - ], - "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-diactoros/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/laminas/laminas-diactoros/issues", - "rss": "https://github.com/laminas/laminas-diactoros/releases.atom", - "source": "https://github.com/laminas/laminas-diactoros" - }, - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2022-07-06T09:24:53+00:00" - }, - { - "name": "laminas/laminas-escaper", - "version": "2.9.0", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-escaper.git", - "reference": "891ad70986729e20ed2e86355fcf93c9dc238a5f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/891ad70986729e20ed2e86355fcf93c9dc238a5f", - "reference": "891ad70986729e20ed2e86355fcf93c9dc238a5f", - "shasum": "" - }, - "require": { - "php": "^7.3 || ~8.0.0 || ~8.1.0" - }, - "conflict": { - "zendframework/zend-escaper": "*" - }, - "require-dev": { - "laminas/laminas-coding-standard": "~2.3.0", - "phpunit/phpunit": "^9.3", - "psalm/plugin-phpunit": "^0.12.2", - "vimeo/psalm": "^3.16" - }, - "suggest": { - "ext-iconv": "*", - "ext-mbstring": "*" - }, - "type": "library", - "autoload": { - "psr-4": { - "Laminas\\Escaper\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs", - "homepage": "https://laminas.dev", - "keywords": [ - "escaper", - "laminas" - ], - "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-escaper/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/laminas/laminas-escaper/issues", - "rss": "https://github.com/laminas/laminas-escaper/releases.atom", - "source": "https://github.com/laminas/laminas-escaper" - }, - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2021-09-02T17:10:53+00:00" - }, - { - "name": "laminas/laminas-feed", - "version": "2.17.0", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-feed.git", - "reference": "1ccb024ea615606ed1d676ba0fa3f22a398f3ac0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-feed/zipball/1ccb024ea615606ed1d676ba0fa3f22a398f3ac0", - "reference": "1ccb024ea615606ed1d676ba0fa3f22a398f3ac0", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "laminas/laminas-escaper": "^2.9", - "laminas/laminas-stdlib": "^3.6", - "php": "^7.3 || ~8.0.0 || ~8.1.0" - }, - "conflict": { - "laminas/laminas-servicemanager": "<3.3", - "zendframework/zend-feed": "*" - }, - "require-dev": { - "laminas/laminas-cache": "^2.7.2", - "laminas/laminas-coding-standard": "~2.2.1", - "laminas/laminas-db": "^2.13.3", - "laminas/laminas-http": "^2.15", - "laminas/laminas-servicemanager": "^3.7", - "laminas/laminas-validator": "^2.15", - "phpunit/phpunit": "^9.5.5", - "psalm/plugin-phpunit": "^0.13.0", - "psr/http-message": "^1.0.1", - "vimeo/psalm": "^4.1" - }, - "suggest": { - "laminas/laminas-cache": "Laminas\\Cache component, for optionally caching feeds between requests", - "laminas/laminas-db": "Laminas\\Db component, for use with PubSubHubbub", - "laminas/laminas-http": "Laminas\\Http for PubSubHubbub, and optionally for use with Laminas\\Feed\\Reader", - "laminas/laminas-servicemanager": "Laminas\\ServiceManager component, for easily extending ExtensionManager implementations", - "laminas/laminas-validator": "Laminas\\Validator component, for validating email addresses used in Atom feeds and entries when using the Writer subcomponent", - "psr/http-message": "PSR-7 ^1.0.1, if you wish to use Laminas\\Feed\\Reader\\Http\\Psr7ResponseDecorator" - }, - "type": "library", - "autoload": { - "psr-4": { - "Laminas\\Feed\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "provides functionality for consuming RSS and Atom feeds", - "homepage": "https://laminas.dev", - "keywords": [ - "feed", - "laminas" - ], - "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-feed/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/laminas/laminas-feed/issues", - "rss": "https://github.com/laminas/laminas-feed/releases.atom", - "source": "https://github.com/laminas/laminas-feed" - }, - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2022-03-24T10:26:04+00:00" - }, - { - "name": "laminas/laminas-stdlib", - "version": "3.7.1", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-stdlib.git", - "reference": "bcd869e2fe88d567800057c1434f2380354fe325" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/bcd869e2fe88d567800057c1434f2380354fe325", - "reference": "bcd869e2fe88d567800057c1434f2380354fe325", - "shasum": "" - }, - "require": { - "php": "^7.3 || ~8.0.0 || ~8.1.0" - }, - "conflict": { - "zendframework/zend-stdlib": "*" - }, - "require-dev": { - "laminas/laminas-coding-standard": "~2.3.0", - "phpbench/phpbench": "^1.0", - "phpunit/phpunit": "^9.3.7", - "psalm/plugin-phpunit": "^0.16.0", - "vimeo/psalm": "^4.7" - }, - "type": "library", - "autoload": { - "psr-4": { - "Laminas\\Stdlib\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "SPL extensions, array utilities, error handlers, and more", - "homepage": "https://laminas.dev", - "keywords": [ - "laminas", - "stdlib" - ], - "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-stdlib/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/laminas/laminas-stdlib/issues", - "rss": "https://github.com/laminas/laminas-stdlib/releases.atom", - "source": "https://github.com/laminas/laminas-stdlib" - }, - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2022-01-21T15:50:46+00:00" - }, - { - "name": "league/container", - "version": "4.2.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/container.git", - "reference": "375d13cb828649599ef5d48a339c4af7a26cd0ab" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/container/zipball/375d13cb828649599ef5d48a339c4af7a26cd0ab", - "reference": "375d13cb828649599ef5d48a339c4af7a26cd0ab", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "psr/container": "^1.1 || ^2.0" - }, - "provide": { - "psr/container-implementation": "^1.0" - }, - "replace": { - "orno/di": "~2.0" - }, - "require-dev": { - "nette/php-generator": "^3.4", - "nikic/php-parser": "^4.10", - "phpstan/phpstan": "^0.12.47", - "phpunit/phpunit": "^8.5.17", - "roave/security-advisories": "dev-latest", - "scrutinizer/ocular": "^1.8", - "squizlabs/php_codesniffer": "^3.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev", - "dev-4.x": "4.x-dev", - "dev-3.x": "3.x-dev", - "dev-2.x": "2.x-dev", - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "League\\Container\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Phil Bennett", - "email": "mail@philbennett.co.uk", - "role": "Developer" - } - ], - "description": "A fast and intuitive dependency injection container.", - "homepage": "https://github.com/thephpleague/container", - "keywords": [ - "container", - "dependency", - "di", - "injection", - "league", - "provider", - "service" - ], - "support": { - "issues": "https://github.com/thephpleague/container/issues", - "source": "https://github.com/thephpleague/container/tree/4.2.0" - }, - "funding": [ - { - "url": "https://github.com/philipobenito", - "type": "github" - } - ], - "time": "2021-11-16T10:29:06+00:00" - }, - { - "name": "masterminds/html5", - "version": "2.7.6", - "source": { - "type": "git", - "url": "https://github.com/Masterminds/html5-php.git", - "reference": "897eb517a343a2281f11bc5556d6548db7d93947" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/897eb517a343a2281f11bc5556d6548db7d93947", - "reference": "897eb517a343a2281f11bc5556d6548db7d93947", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-dom": "*", - "ext-libxml": "*", - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7-dev" - } - }, - "autoload": { - "psr-4": { - "Masterminds\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Matt Butcher", - "email": "technosophos@gmail.com" - }, - { - "name": "Matt Farina", - "email": "matt@mattfarina.com" - }, - { - "name": "Asmir Mustafic", - "email": "goetas@gmail.com" - } - ], - "description": "An HTML5 parser and serializer.", - "homepage": "http://masterminds.github.io/html5-php", - "keywords": [ - "HTML5", - "dom", - "html", - "parser", - "querypath", - "serializer", - "xml" - ], - "support": { - "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.7.6" - }, - "time": "2022-08-18T16:18:26+00:00" - }, - { - "name": "monolog/monolog", - "version": "2.8.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "720488632c590286b88b80e62aa3d3d551ad4a50" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/720488632c590286b88b80e62aa3d3d551ad4a50", - "reference": "720488632c590286b88b80e62aa3d3d551ad4a50", - "shasum": "" - }, - "require": { - "php": ">=7.2", - "psr/log": "^1.0.1 || ^2.0 || ^3.0" - }, - "provide": { - "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" - }, - "require-dev": { - "aws/aws-sdk-php": "^2.4.9 || ^3.0", - "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^7 || ^8", - "ext-json": "*", - "graylog2/gelf-php": "^1.4.2", - "guzzlehttp/guzzle": "^7.4", - "guzzlehttp/psr7": "^2.2", - "mongodb/mongodb": "^1.8", - "php-amqplib/php-amqplib": "~2.4 || ^3", - "phpspec/prophecy": "^1.15", - "phpstan/phpstan": "^0.12.91", - "phpunit/phpunit": "^8.5.14", - "predis/predis": "^1.1 || ^2.0", - "rollbar/rollbar": "^1.3 || ^2 || ^3", - "ruflin/elastica": "^7", - "swiftmailer/swiftmailer": "^5.3|^6.0", - "symfony/mailer": "^5.4 || ^6", - "symfony/mime": "^5.4 || ^6" - }, - "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", - "ext-mbstring": "Allow to work properly with unicode symbols", - "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", - "ext-openssl": "Required to send log messages using SSL", - "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Monolog\\": "src/Monolog" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" - } - ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "https://github.com/Seldaek/monolog", - "keywords": [ - "log", - "logging", - "psr-3" - ], - "support": { - "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.8.0" - }, - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", - "type": "tidelift" - } - ], - "time": "2022-07-24T11:55:47+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v4.15.2", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", - "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.0" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2" - }, - "time": "2022-11-12T15:38:23+00:00" - }, - { - "name": "pear/archive_tar", - "version": "1.4.14", - "source": { - "type": "git", - "url": "https://github.com/pear/Archive_Tar.git", - "reference": "4d761c5334c790e45ef3245f0864b8955c562caa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/Archive_Tar/zipball/4d761c5334c790e45ef3245f0864b8955c562caa", - "reference": "4d761c5334c790e45ef3245f0864b8955c562caa", - "shasum": "" - }, - "require": { - "pear/pear-core-minimal": "^1.10.0alpha2", - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "*" - }, - "suggest": { - "ext-bz2": "Bz2 compression support.", - "ext-xz": "Lzma2 compression support.", - "ext-zlib": "Gzip compression support." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "psr-0": { - "Archive_Tar": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "./" - ], - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Vincent Blavet", - "email": "vincent@phpconcept.net" - }, - { - "name": "Greg Beaver", - "email": "greg@chiaraquartet.net" - }, - { - "name": "Michiel Rook", - "email": "mrook@php.net" - } - ], - "description": "Tar file management class with compression support (gzip, bzip2, lzma2)", - "homepage": "https://github.com/pear/Archive_Tar", - "keywords": [ - "archive", - "tar" - ], - "support": { - "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=Archive_Tar", - "source": "https://github.com/pear/Archive_Tar" - }, - "funding": [ - { - "url": "https://github.com/mrook", - "type": "github" - }, - { - "url": "https://www.patreon.com/michielrook", - "type": "patreon" - } - ], - "time": "2021-07-20T13:53:39+00:00" - }, - { - "name": "pear/console_getopt", - "version": "v1.4.3", - "source": { - "type": "git", - "url": "https://github.com/pear/Console_Getopt.git", - "reference": "a41f8d3e668987609178c7c4a9fe48fecac53fa0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/Console_Getopt/zipball/a41f8d3e668987609178c7c4a9fe48fecac53fa0", - "reference": "a41f8d3e668987609178c7c4a9fe48fecac53fa0", - "shasum": "" - }, - "type": "library", - "autoload": { - "psr-0": { - "Console": "./" - } - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "./" - ], - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Andrei Zmievski", - "email": "andrei@php.net", - "role": "Lead" - }, - { - "name": "Stig Bakken", - "email": "stig@php.net", - "role": "Developer" - }, - { - "name": "Greg Beaver", - "email": "cellog@php.net", - "role": "Helper" - } - ], - "description": "More info available on: http://pear.php.net/package/Console_Getopt", - "support": { - "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=Console_Getopt", - "source": "https://github.com/pear/Console_Getopt" - }, - "time": "2019-11-20T18:27:48+00:00" - }, - { - "name": "pear/pear-core-minimal", - "version": "v1.10.11", - "source": { - "type": "git", - "url": "https://github.com/pear/pear-core-minimal.git", - "reference": "68d0d32ada737153b7e93b8d3c710ebe70ac867d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/68d0d32ada737153b7e93b8d3c710ebe70ac867d", - "reference": "68d0d32ada737153b7e93b8d3c710ebe70ac867d", - "shasum": "" - }, - "require": { - "pear/console_getopt": "~1.4", - "pear/pear_exception": "~1.0" - }, - "replace": { - "rsky/pear-core-min": "self.version" - }, - "type": "library", - "autoload": { - "psr-0": { - "": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "src/" - ], - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Christian Weiske", - "email": "cweiske@php.net", - "role": "Lead" - } - ], - "description": "Minimal set of PEAR core files to be used as composer dependency", - "support": { - "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR", - "source": "https://github.com/pear/pear-core-minimal" - }, - "time": "2021-08-10T22:31:03+00:00" - }, - { - "name": "pear/pear_exception", - "version": "v1.0.2", - "source": { - "type": "git", - "url": "https://github.com/pear/PEAR_Exception.git", - "reference": "b14fbe2ddb0b9f94f5b24cf08783d599f776fff0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/PEAR_Exception/zipball/b14fbe2ddb0b9f94f5b24cf08783d599f776fff0", - "reference": "b14fbe2ddb0b9f94f5b24cf08783d599f776fff0", - "shasum": "" - }, - "require": { - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "<9" - }, - "type": "class", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "PEAR/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "." - ], - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Helgi Thormar", - "email": "dufuz@php.net" - }, - { - "name": "Greg Beaver", - "email": "cellog@php.net" - } - ], - "description": "The PEAR Exception base class.", - "homepage": "https://github.com/pear/PEAR_Exception", - "keywords": [ - "exception" - ], - "support": { - "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR_Exception", - "source": "https://github.com/pear/PEAR_Exception" - }, - "time": "2021-03-21T15:43:46+00:00" - }, - { - "name": "psr/cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "support": { - "source": "https://github.com/php-fig/cache/tree/master" - }, - "time": "2016-08-06T20:24:11+00:00" - }, - { - "name": "psr/container", - "version": "1.1.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" - }, - "time": "2021-11-05T16:50:12+00:00" - }, - { - "name": "psr/http-factory", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-factory.git", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", - "shasum": "" - }, - "require": { - "php": ">=7.0.0", - "psr/http-message": "^1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for PSR-7 HTTP message factories", - "keywords": [ - "factory", - "http", - "message", - "psr", - "psr-17", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-factory/tree/master" - }, - "time": "2019-04-30T12:38:16+00:00" - }, - { - "name": "psr/http-message", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-message/tree/master" - }, - "time": "2016-08-06T14:39:51+00:00" - }, - { - "name": "psr/log", - "version": "1.1.4", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" - }, - "time": "2021-05-03T11:20:27+00:00" - }, - { - "name": "psy/psysh", - "version": "v0.11.9", - "source": { - "type": "git", - "url": "https://github.com/bobthecow/psysh.git", - "reference": "1acec99d6684a54ff92f8b548a4e41b566963778" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/1acec99d6684a54ff92f8b548a4e41b566963778", - "reference": "1acec99d6684a54ff92f8b548a4e41b566963778", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-tokenizer": "*", - "nikic/php-parser": "^4.0 || ^3.1", - "php": "^8.0 || ^7.0.8", - "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4" - }, - "conflict": { - "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.2" - }, - "suggest": { - "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", - "ext-pdo-sqlite": "The doc command requires SQLite to work.", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." - }, - "bin": [ - "bin/psysh" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "0.11.x-dev" - } - }, - "autoload": { - "files": [ - "src/functions.php" - ], - "psr-4": { - "Psy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" - } - ], - "description": "An interactive shell for modern PHP.", - "homepage": "http://psysh.org", - "keywords": [ - "REPL", - "console", - "interactive", - "shell" - ], - "support": { - "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.9" - }, - "time": "2022-11-06T15:29:46+00:00" - }, - { - "name": "ralouphie/getallheaders", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" - }, - "type": "library", - "autoload": { - "files": [ - "src/getallheaders.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" - } - ], - "description": "A polyfill for getallheaders.", - "support": { - "issues": "https://github.com/ralouphie/getallheaders/issues", - "source": "https://github.com/ralouphie/getallheaders/tree/develop" - }, - "time": "2019-03-08T08:55:37+00:00" - }, - { - "name": "stack/builder", - "version": "v1.0.6", - "source": { - "type": "git", - "url": "https://github.com/stackphp/builder.git", - "reference": "a4faaa6f532c6086bc66c29e1bc6c29593e1ca7c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/stackphp/builder/zipball/a4faaa6f532c6086bc66c29e1bc6c29593e1ca7c", - "reference": "a4faaa6f532c6086bc66c29e1bc6c29593e1ca7c", - "shasum": "" - }, - "require": { - "php": ">=7.2.0", - "symfony/http-foundation": "~2.1|~3.0|~4.0|~5.0", - "symfony/http-kernel": "~2.1|~3.0|~4.0|~5.0" - }, - "require-dev": { - "phpunit/phpunit": "~8.0", - "symfony/routing": "^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-0": { - "Stack": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - } - ], - "description": "Builder for stack middleware based on HttpKernelInterface.", - "keywords": [ - "stack" - ], - "support": { - "issues": "https://github.com/stackphp/builder/issues", - "source": "https://github.com/stackphp/builder/tree/v1.0.6" - }, - "time": "2020-01-30T12:17:27+00:00" - }, - { - "name": "symfony-cmf/routing", - "version": "2.3.4", - "source": { - "type": "git", - "url": "https://github.com/symfony-cmf/Routing.git", - "reference": "bbcdf2f6301d740454ba9ebb8adaefd436c36a6b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony-cmf/Routing/zipball/bbcdf2f6301d740454ba9ebb8adaefd436c36a6b", - "reference": "bbcdf2f6301d740454ba9ebb8adaefd436c36a6b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "psr/log": "^1.0 || ^2.0 || ^3.0", - "symfony/http-kernel": "^4.4 || ^5.0", - "symfony/routing": "^4.4 || ^5.0" - }, - "require-dev": { - "symfony-cmf/testing": "^3@dev", - "symfony/config": "^4.4 || ^5.0", - "symfony/dependency-injection": "^4.4 || ^5.0", - "symfony/event-dispatcher": "^4.4 || ^5.0", - "symfony/phpunit-bridge": "^5.0" - }, - "suggest": { - "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version (^4.4 || ^5.0)" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Cmf\\Component\\Routing\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Symfony CMF Community", - "homepage": "https://github.com/symfony-cmf/Routing/contributors" - } - ], - "description": "Extends the Symfony routing component for dynamic routes and chaining several routers", - "homepage": "http://cmf.symfony.com", - "keywords": [ - "database", - "routing" - ], - "support": { - "issues": "https://github.com/symfony-cmf/Routing/issues", - "source": "https://github.com/symfony-cmf/Routing/tree/2.3.4" - }, - "time": "2021-11-08T16:33:10+00:00" - }, - { - "name": "symfony/console", - "version": "v4.4.49", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "33fa45ffc81fdcc1ca368d4946da859c8cdb58d9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/33fa45ffc81fdcc1ca368d4946da859c8cdb58d9", - "reference": "33fa45ffc81fdcc1ca368d4946da859c8cdb58d9", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", - "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1|^2" - }, - "conflict": { - "psr/log": ">=3", - "symfony/dependency-injection": "<3.4", - "symfony/event-dispatcher": "<4.3|>=5", - "symfony/lock": "<4.4", - "symfony/process": "<3.3" - }, - "provide": { - "psr/log-implementation": "1.0|2.0" - }, - "require-dev": { - "psr/log": "^1|^2", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/event-dispatcher": "^4.3", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^3.4|^4.0|^5.0", - "symfony/var-dumper": "^4.3|^5.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/console/tree/v4.4.49" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-05T17:10:16+00:00" - }, - { - "name": "symfony/debug", - "version": "v4.4.44", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "1a692492190773c5310bc7877cb590c04c2f05be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/1a692492190773c5310bc7877cb590c04c2f05be", - "reference": "1a692492190773c5310bc7877cb590c04c2f05be", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "psr/log": "^1|^2|^3" - }, - "conflict": { - "symfony/http-kernel": "<3.4" - }, - "require-dev": { - "symfony/http-kernel": "^3.4|^4.0|^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools to ease debugging PHP code", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/debug/tree/v4.4.44" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "abandoned": "symfony/error-handler", - "time": "2022-07-28T16:29:46+00:00" - }, - { - "name": "symfony/dependency-injection", - "version": "v4.4.49", - "source": { - "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "9065fe97dbd38a897e95ea254eb5ddfe1310f734" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/9065fe97dbd38a897e95ea254eb5ddfe1310f734", - "reference": "9065fe97dbd38a897e95ea254eb5ddfe1310f734", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "psr/container": "^1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1.6|^2" - }, - "conflict": { - "symfony/config": "<4.3|>=5.0", - "symfony/finder": "<3.4", - "symfony/proxy-manager-bridge": "<3.4", - "symfony/yaml": "<4.4.26" - }, - "provide": { - "psr/container-implementation": "1.0", - "symfony/service-implementation": "1.0|2.0" - }, - "require-dev": { - "symfony/config": "^4.3", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/yaml": "^4.4.26|^5.0" - }, - "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "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/v4.4.49" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-16T16:18:09+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v2.5.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "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": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-01-02T09:53:40+00:00" - }, - { - "name": "symfony/error-handler", - "version": "v4.4.44", - "source": { - "type": "git", - "url": "https://github.com/symfony/error-handler.git", - "reference": "be731658121ef2d8be88f3a1ec938148a9237291" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/be731658121ef2d8be88f3a1ec938148a9237291", - "reference": "be731658121ef2d8be88f3a1ec938148a9237291", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "psr/log": "^1|^2|^3", - "symfony/debug": "^4.4.5", - "symfony/var-dumper": "^4.4|^5.0" - }, - "require-dev": { - "symfony/http-kernel": "^4.4|^5.0", - "symfony/serializer": "^4.4|^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\ErrorHandler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools to manage errors and ease debugging PHP code", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/error-handler/tree/v4.4.44" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-07-28T16:29:46+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v4.4.44", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1e866e9e5c1b22168e0ce5f0b467f19bba61266a", - "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/event-dispatcher-contracts": "^1.1", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "symfony/dependency-injection": "<3.4" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "1.1" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/error-handler": "~3.4|~4.4", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.44" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-07-20T09:59:04+00:00" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.13", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e", - "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e", - "shasum": "" - }, - "require": { - "php": ">=7.1.3" - }, - "suggest": { - "psr/event-dispatcher": "", - "symfony/event-dispatcher-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.1-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "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": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.13" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-01-02T09:41:36+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v4.4.42", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/815412ee8971209bd4c1eecd5f4f481eacd44bf5", - "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php80": "^1.16" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/filesystem/tree/v4.4.42" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-05-20T08:49:14+00:00" - }, - { - "name": "symfony/finder", - "version": "v4.4.41", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "40790bdf293b462798882ef6da72bb49a4a6633a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/40790bdf293b462798882ef6da72bb49a4a6633a", - "reference": "40790bdf293b462798882ef6da72bb49a4a6633a", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/polyfill-php80": "^1.16" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/finder/tree/v4.4.41" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-04-14T15:36:10+00:00" - }, - { - "name": "symfony/http-client-contracts", - "version": "v2.5.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", - "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", - "shasum": "" - }, - "require": { - "php": ">=7.2.5" - }, - "suggest": { - "symfony/http-client-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\HttpClient\\": "" - } - }, - "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": "Generic abstractions related to HTTP clients", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-04-12T15:48:08+00:00" - }, - { - "name": "symfony/http-foundation", - "version": "v4.4.49", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "191413c7b832c015bb38eae963f2e57498c3c173" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/191413c7b832c015bb38eae963f2e57498c3c173", - "reference": "191413c7b832c015bb38eae963f2e57498c3c173", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/mime": "^4.3|^5.0", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.16" - }, - "require-dev": { - "predis/predis": "~1.0", - "symfony/expression-language": "^3.4|^4.0|^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Defines an object-oriented layer for the HTTP specification", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/http-foundation/tree/v4.4.49" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-04T16:17:57+00:00" - }, - { - "name": "symfony/http-kernel", - "version": "v4.4.49", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "4e36db8103062c62b3882b1bd297b02de6b021c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/4e36db8103062c62b3882b1bd297b02de6b021c4", - "reference": "4e36db8103062c62b3882b1bd297b02de6b021c4", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "psr/log": "^1|^2", - "symfony/error-handler": "^4.4", - "symfony/event-dispatcher": "^4.4", - "symfony/http-client-contracts": "^1.1|^2", - "symfony/http-foundation": "^4.4.30|^5.3.7", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "symfony/browser-kit": "<4.3", - "symfony/config": "<3.4", - "symfony/console": ">=5", - "symfony/dependency-injection": "<4.3", - "symfony/translation": "<4.2", - "twig/twig": "<1.43|<2.13,>=2" - }, - "provide": { - "psr/log-implementation": "1.0|2.0" - }, - "require-dev": { - "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^4.3|^5.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/console": "^3.4|^4.0", - "symfony/css-selector": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^4.3|^5.0", - "symfony/dom-crawler": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/finder": "^3.4|^4.0|^5.0", - "symfony/process": "^3.4|^4.0|^5.0", - "symfony/routing": "^3.4|^4.0|^5.0", - "symfony/stopwatch": "^3.4|^4.0|^5.0", - "symfony/templating": "^3.4|^4.0|^5.0", - "symfony/translation": "^4.2|^5.0", - "symfony/translation-contracts": "^1.1|^2", - "twig/twig": "^1.43|^2.13|^3.0.4" - }, - "suggest": { - "symfony/browser-kit": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpKernel\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides a structured process for converting a Request into a Response", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/http-kernel/tree/v4.4.49" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-28T17:58:43+00:00" - }, - { - "name": "symfony/mime", - "version": "v5.4.13", - "source": { - "type": "git", - "url": "https://github.com/symfony/mime.git", - "reference": "bb2ccf759e2b967dcd11bdee5bdf30dddd2290bd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/bb2ccf759e2b967dcd11bdee5bdf30dddd2290bd", - "reference": "bb2ccf759e2b967dcd11bdee5bdf30dddd2290bd", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "egulias/email-validator": "~3.0.0", - "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<4.4" - }, - "require-dev": { - "egulias/email-validator": "^2.1.10|^3.1", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/property-access": "^4.4|^5.1|^6.0", - "symfony/property-info": "^4.4|^5.1|^6.0", - "symfony/serializer": "^5.2|^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Mime\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Allows manipulating MIME messages", - "homepage": "https://symfony.com", - "keywords": [ - "mime", - "mime-type" - ], - "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.13" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-09-01T18:18:29+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.25.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "30885182c981ab175d4d034db0f6f469898070ab" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab", - "reference": "30885182c981ab175d4d034db0f6f469898070ab", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-10-20T20:35:02+00:00" - }, - { - "name": "symfony/polyfill-iconv", - "version": "v1.25.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "f1aed619e28cb077fc83fac8c4c0383578356e40" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/f1aed619e28cb077fc83fac8c4c0383578356e40", - "reference": "f1aed619e28cb077fc83fac8c4c0383578356e40", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-iconv": "*" - }, - "suggest": { - "ext-iconv": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - } - }, - "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 for the Iconv extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "iconv", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.25.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-01-04T09:04:05+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } - }, - "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 for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-intl-idn", - "version": "v1.25.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "749045c69efb97c70d25d7463abba812e91f3a44" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/749045c69efb97c70d25d7463abba812e91f3a44", - "reference": "749045c69efb97c70d25d7463abba812e91f3a44", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Laurent Bassin", - "email": "laurent@bassin.info" - }, - { - "name": "Trevor Rowbotham", - "email": "trevor.rowbotham@pm.me" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "idn", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.25.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-09-14T14:02:44+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.25.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "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 for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-02-19T12:13:01+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.25.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "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 for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-11-30T18:21:41+00:00" - }, - { - "name": "symfony/polyfill-php72", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - } - }, - "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 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-php73", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, - "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 7.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.25.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", - "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-03-04T08:16:47+00:00" - }, - { - "name": "symfony/process", - "version": "v4.4.44", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "5cee9cdc4f7805e2699d9fd66991a0e6df8252a2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/5cee9cdc4f7805e2699d9fd66991a0e6df8252a2", - "reference": "5cee9cdc4f7805e2699d9fd66991a0e6df8252a2", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/polyfill-php80": "^1.16" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v4.4.44" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-06-27T13:16:42+00:00" - }, - { - "name": "symfony/psr-http-message-bridge", - "version": "v2.1.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "a125b93ef378c492e274f217874906fb9babdebb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/a125b93ef378c492e274f217874906fb9babdebb", - "reference": "a125b93ef378c492e274f217874906fb9babdebb", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "psr/http-message": "^1.0", - "symfony/http-foundation": "^4.4 || ^5.0 || ^6.0" - }, - "require-dev": { - "nyholm/psr7": "^1.1", - "psr/log": "^1.1 || ^2 || ^3", - "symfony/browser-kit": "^4.4 || ^5.0 || ^6.0", - "symfony/config": "^4.4 || ^5.0 || ^6.0", - "symfony/event-dispatcher": "^4.4 || ^5.0 || ^6.0", - "symfony/framework-bundle": "^4.4 || ^5.0 || ^6.0", - "symfony/http-kernel": "^4.4 || ^5.0 || ^6.0", - "symfony/phpunit-bridge": "^5.4@dev || ^6.0" - }, - "suggest": { - "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" - }, - "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-main": "2.1-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Bridge\\PsrHttpMessage\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - } - ], - "description": "PSR HTTP message bridge", - "homepage": "http://symfony.com", - "keywords": [ - "http", - "http-message", - "psr-17", - "psr-7" - ], - "support": { - "issues": "https://github.com/symfony/psr-http-message-bridge/issues", - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.1.4" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-28T22:46:34+00:00" - }, - { - "name": "symfony/routing", - "version": "v4.4.44", - "source": { - "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/f7751fd8b60a07f3f349947a309b5bdfce22d6ae", - "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "symfony/config": "<4.2", - "symfony/dependency-injection": "<3.4", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "doctrine/annotations": "^1.10.4", - "psr/log": "^1|^2|^3", - "symfony/config": "^4.2|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation loader", - "symfony/config": "For using the all-in-one router or any loader", - "symfony/expression-language": "For using expression matching", - "symfony/http-foundation": "For using a Symfony Request object", - "symfony/yaml": "For using the YAML loader" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Routing\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Maps an HTTP request to a set of configuration variables", - "homepage": "https://symfony.com", - "keywords": [ - "router", - "routing", - "uri", - "url" - ], - "support": { - "source": "https://github.com/symfony/routing/tree/v4.4.44" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-07-20T09:59:04+00:00" - }, - { - "name": "symfony/serializer", - "version": "v4.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/serializer.git", - "reference": "6e01d63c55657930a6de03d6e36aae50af98888d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/6e01d63c55657930a6de03d6e36aae50af98888d", - "reference": "6e01d63c55657930a6de03d6e36aae50af98888d", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2", - "phpdocumentor/type-resolver": "<0.3.0|1.3.*", - "symfony/dependency-injection": "<3.4", - "symfony/property-access": "<3.4", - "symfony/property-info": "<3.4", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "doctrine/annotations": "^1.10.4", - "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", - "symfony/cache": "^3.4|^4.0|^5.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/error-handler": "^4.4|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", - "symfony/mime": "^4.4|^5.0", - "symfony/property-access": "^4.4.36|^5.3.13", - "symfony/property-info": "^3.4.13|~4.0|^5.0", - "symfony/validator": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation mapping.", - "psr/cache-implementation": "For using the metadata cache.", - "symfony/config": "For using the XML mapping loader.", - "symfony/http-foundation": "For using a MIME type guesser within the DataUriNormalizer.", - "symfony/property-access": "For using the ObjectNormalizer.", - "symfony/property-info": "To deserialize relations.", - "symfony/yaml": "For using the default YAML mapping loader." - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Serializer\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/serializer/tree/v4.4.47" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-09-19T08:38:33+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v2.5.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1|^3" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "suggest": { - "symfony/service-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - } - }, - "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": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-05-30T19:17:29+00:00" - }, - { - "name": "symfony/string", - "version": "v6.0.15", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "51ac0fa0ccf132a00519b87c97e8f775fa14e771" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/51ac0fa0ccf132a00519b87c97e8f775fa14e771", - "reference": "51ac0fa0ccf132a00519b87c97e8f775fa14e771", - "shasum": "" - }, - "require": { - "php": ">=8.0.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.0" - }, - "require-dev": { - "symfony/error-handler": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/translation-contracts": "^2.0|^3.0", - "symfony/var-exporter": "^5.4|^6.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "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": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v6.0.15" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-10-10T09:34:08+00:00" - }, - { - "name": "symfony/translation", - "version": "v4.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "45036b1d53accc48fe9bab71ccd86d57eba0dd94" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/45036b1d53accc48fe9bab71ccd86d57eba0dd94", - "reference": "45036b1d53accc48fe9bab71ccd86d57eba0dd94", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/translation-contracts": "^1.1.6|^2" - }, - "conflict": { - "symfony/config": "<3.4", - "symfony/dependency-injection": "<3.4", - "symfony/http-kernel": "<4.4", - "symfony/yaml": "<3.4" - }, - "provide": { - "symfony/translation-implementation": "1.0|2.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/console": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/finder": "~2.8|~3.0|~4.0|^5.0", - "symfony/http-kernel": "^4.4", - "symfony/intl": "^3.4|^4.0|^5.0", - "symfony/service-contracts": "^1.1.2|^2", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "suggest": { - "psr/log-implementation": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools to internationalize your application", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/translation/tree/v4.4.47" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-10-03T15:15:11+00:00" - }, - { - "name": "symfony/translation-contracts", - "version": "v2.5.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation-contracts.git", - "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe", - "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe", - "shasum": "" - }, - "require": { - "php": ">=7.2.5" - }, - "suggest": { - "symfony/translation-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Translation\\": "" - } - }, - "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": "Generic abstractions related to translation", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-06-27T16:58:25+00:00" - }, - { - "name": "symfony/validator", - "version": "v4.4.48", - "source": { - "type": "git", - "url": "https://github.com/symfony/validator.git", - "reference": "54781a4c41efbd283b779110bf8ae7f263737775" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/54781a4c41efbd283b779110bf8ae7f263737775", - "reference": "54781a4c41efbd283b779110bf8ae7f263737775", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/translation-contracts": "^1.1|^2" - }, - "conflict": { - "doctrine/lexer": "<1.1", - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/dependency-injection": "<3.4", - "symfony/http-kernel": "<4.4", - "symfony/intl": "<4.3", - "symfony/translation": ">=5.0", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "doctrine/annotations": "^1.10.4", - "doctrine/cache": "^1.0|^2.0", - "egulias/email-validator": "^2.1.10|^3", - "symfony/cache": "^3.4|^4.0|^5.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/http-client": "^4.3|^5.0", - "symfony/http-foundation": "^4.1|^5.0", - "symfony/http-kernel": "^4.4", - "symfony/intl": "^4.3|^5.0", - "symfony/mime": "^4.4|^5.0", - "symfony/property-access": "^3.4|^4.0|^5.0", - "symfony/property-info": "^3.4|^4.0|^5.0", - "symfony/translation": "^4.2", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", - "doctrine/cache": "For using the default cached annotation reader.", - "egulias/email-validator": "Strict (RFC compliant) email validation", - "psr/cache-implementation": "For using the mapping cache.", - "symfony/config": "", - "symfony/expression-language": "For using the Expression validator", - "symfony/http-foundation": "", - "symfony/intl": "", - "symfony/property-access": "For accessing properties within comparison constraints", - "symfony/property-info": "To automatically add NotNull and Type constraints", - "symfony/translation": "For translating validation errors.", - "symfony/yaml": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Validator\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools to validate values", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/validator/tree/v4.4.48" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-10-25T13:54:11+00:00" - }, - { - "name": "symfony/var-dumper", - "version": "v5.4.14", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "6894d06145fefebd9a4c7272baa026a1c394a430" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6894d06145fefebd9a4c7272baa026a1c394a430", - "reference": "6894d06145fefebd9a4c7272baa026a1c394a430", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "phpunit/phpunit": "<5.4.3", - "symfony/console": "<4.4" - }, - "require-dev": { - "ext-iconv": "*", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/uid": "^5.1|^6.0", - "twig/twig": "^2.13|^3.0.4" - }, - "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" - }, - "bin": [ - "Resources/bin/var-dump-server" - ], - "type": "library", - "autoload": { - "files": [ - "Resources/functions/dump.php" - ], - "psr-4": { - "Symfony\\Component\\VarDumper\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "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": "Provides mechanisms for walking through any arbitrary PHP variable", - "homepage": "https://symfony.com", - "keywords": [ - "debug", - "dump" - ], - "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.14" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-10-07T08:01:20+00:00" - }, - { - "name": "symfony/yaml", - "version": "v4.4.45", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", - "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/console": "<3.4" - }, - "require-dev": { - "symfony/console": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Loads and dumps YAML files", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/yaml/tree/v4.4.45" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-08-02T15:47:23+00:00" - }, - { - "name": "twig/twig", - "version": "v2.15.3", - "source": { - "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "ab402673db8746cb3a4c46f3869d6253699f614a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/ab402673db8746cb3a4c46f3869d6253699f614a", - "reference": "ab402673db8746cb3a4c46f3869d6253699f614a", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php72": "^1.8" - }, - "require-dev": { - "psr/container": "^1.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.15-dev" - } - }, - "autoload": { - "psr-0": { - "Twig_": "lib/" - }, - "psr-4": { - "Twig\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Twig Team", - "role": "Contributors" - }, - { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" - } - ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "https://twig.symfony.com", - "keywords": [ - "templating" - ], - "support": { - "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v2.15.3" - }, - "funding": [ - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/twig/twig", - "type": "tidelift" - } - ], - "time": "2022-09-28T08:40:08+00:00" - }, - { - "name": "typo3/phar-stream-wrapper", - "version": "v3.1.7", - "source": { - "type": "git", - "url": "https://github.com/TYPO3/phar-stream-wrapper.git", - "reference": "5cc2f04a4e2f5c7e9cc02a3bdf80fae0f3e11a8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/TYPO3/phar-stream-wrapper/zipball/5cc2f04a4e2f5c7e9cc02a3bdf80fae0f3e11a8c", - "reference": "5cc2f04a4e2f5c7e9cc02a3bdf80fae0f3e11a8c", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": "^7.0 || ^8.0" - }, - "require-dev": { - "ext-xdebug": "*", - "phpspec/prophecy": "^1.10", - "symfony/phpunit-bridge": "^5.1" - }, - "suggest": { - "ext-fileinfo": "For PHP builtin file type guessing, otherwise uses internal processing" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "v3.x-dev" - } - }, - "autoload": { - "psr-4": { - "TYPO3\\PharStreamWrapper\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Interceptors for PHP's native phar:// stream handling", - "homepage": "https://typo3.org/", - "keywords": [ - "phar", - "php", - "security", - "stream-wrapper" - ], - "support": { - "issues": "https://github.com/TYPO3/phar-stream-wrapper/issues", - "source": "https://github.com/TYPO3/phar-stream-wrapper/tree/v3.1.7" - }, - "time": "2021-09-20T19:19:13+00:00" - }, - { - "name": "webflo/drupal-finder", - "version": "1.2.2", - "source": { - "type": "git", - "url": "https://github.com/webflo/drupal-finder.git", - "reference": "c8e5dbe65caef285fec8057a4c718a0d4138d1ee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webflo/drupal-finder/zipball/c8e5dbe65caef285fec8057a4c718a0d4138d1ee", - "reference": "c8e5dbe65caef285fec8057a4c718a0d4138d1ee", - "shasum": "" - }, - "require": { - "ext-json": "*" - }, - "require-dev": { - "mikey179/vfsstream": "^1.6", - "phpunit/phpunit": "^4.8" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/DrupalFinder.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Florian Weber", - "email": "florian@webflo.org" - } - ], - "description": "Helper class to locate a Drupal installation from a given path.", - "support": { - "issues": "https://github.com/webflo/drupal-finder/issues", - "source": "https://github.com/webflo/drupal-finder/tree/1.2.2" - }, - "time": "2020-10-27T09:42:17+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.10.0", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.13" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.10.0" - }, - "time": "2021-03-09T10:59:23+00:00" - }, - { - "name": "webmozart/path-util", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/path-util.git", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "webmozart/assert": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\PathUtil\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", - "support": { - "issues": "https://github.com/webmozart/path-util/issues", - "source": "https://github.com/webmozart/path-util/tree/2.3.0" - }, - "abandoned": "symfony/filesystem", - "time": "2015-12-17T08:42:14+00:00" - }, - { - "name": "zaporylie/composer-drupal-optimizations", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/zaporylie/composer-drupal-optimizations.git", - "reference": "a7f409a765164fd13ac0bd00e19109165c51b369" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zaporylie/composer-drupal-optimizations/zipball/a7f409a765164fd13ac0bd00e19109165c51b369", - "reference": "a7f409a765164fd13ac0bd00e19109165c51b369", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1 || ^2.0" - }, - "require-dev": { - "composer/composer": "^1.6", - "phpunit/phpunit": "^6" - }, - "type": "composer-plugin", - "extra": { - "class": "zaporylie\\ComposerDrupalOptimizations\\Plugin" - }, - "autoload": { - "psr-4": { - "zaporylie\\ComposerDrupalOptimizations\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Jakub Piasecki", - "email": "jakub@piaseccy.pl" - } - ], - "description": "Composer plugin to improve composer performance for Drupal projects", - "support": { - "issues": "https://github.com/zaporylie/composer-drupal-optimizations/issues", - "source": "https://github.com/zaporylie/composer-drupal-optimizations/tree/1.2.0" - }, - "time": "2020-10-22T13:26:00+00:00" - } - ], - "packages-dev": [ - { - "name": "behat/mink", - "version": "v1.10.0", - "source": { - "type": "git", - "url": "https://github.com/minkphp/Mink.git", - "reference": "19e58905632e7cfdc5b2bafb9b950a3521af32c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/minkphp/Mink/zipball/19e58905632e7cfdc5b2bafb9b950a3521af32c5", - "reference": "19e58905632e7cfdc5b2bafb9b950a3521af32c5", - "shasum": "" - }, - "require": { - "php": ">=7.2", - "symfony/css-selector": "^4.4 || ^5.0 || ^6.0" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.22 || ^9.5.11", - "symfony/error-handler": "^4.4 || ^5.0 || ^6.0", - "symfony/phpunit-bridge": "^5.4 || ^6.0" - }, - "suggest": { - "behat/mink-browserkit-driver": "fast headless driver for any app without JS emulation", - "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)", - "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)", - "dmore/chrome-mink-driver": "fast and JS-enabled driver for any app (requires chromium or google chrome)" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Mink\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Browser controller/emulator abstraction for PHP", - "homepage": "https://mink.behat.org/", - "keywords": [ - "browser", - "testing", - "web" - ], - "support": { - "issues": "https://github.com/minkphp/Mink/issues", - "source": "https://github.com/minkphp/Mink/tree/v1.10.0" - }, - "time": "2022-03-28T14:22:43+00:00" - }, - { - "name": "behat/mink-selenium2-driver", - "version": "v1.6.0", - "source": { - "type": "git", - "url": "https://github.com/minkphp/MinkSelenium2Driver.git", - "reference": "e5f8421654930da725499fb92983e6948c6f973e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/e5f8421654930da725499fb92983e6948c6f973e", - "reference": "e5f8421654930da725499fb92983e6948c6f973e", - "shasum": "" - }, - "require": { - "behat/mink": "^1.9@dev", - "ext-json": "*", - "instaclick/php-webdriver": "^1.4", - "php": ">=7.2" - }, - "require-dev": { - "mink/driver-testsuite": "dev-master", - "phpunit/phpunit": "^8.5.22 || ^9.5.11", - "symfony/error-handler": "^4.4 || ^5.0" - }, - "type": "mink-driver", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Mink\\Driver\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Pete Otaqui", - "email": "pete@otaqui.com", - "homepage": "https://github.com/pete-otaqui" - }, - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Selenium2 (WebDriver) driver for Mink framework", - "homepage": "https://mink.behat.org/", - "keywords": [ - "ajax", - "browser", - "javascript", - "selenium", - "testing", - "webdriver" - ], - "support": { - "issues": "https://github.com/minkphp/MinkSelenium2Driver/issues", - "source": "https://github.com/minkphp/MinkSelenium2Driver/tree/v1.6.0" - }, - "time": "2022-03-28T14:55:17+00:00" - }, - { - "name": "composer/ca-bundle", - "version": "1.3.2", - "source": { - "type": "git", - "url": "https://github.com/composer/ca-bundle.git", - "reference": "fd5dd441932a7e10ca6e5b490e272d34c8430640" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/fd5dd441932a7e10ca6e5b490e272d34c8430640", - "reference": "fd5dd441932a7e10ca6e5b490e272d34c8430640", - "shasum": "" - }, - "require": { - "ext-openssl": "*", - "ext-pcre": "*", - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.55", - "psr/log": "^1.0", - "symfony/phpunit-bridge": "^4.2 || ^5", - "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\CaBundle\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", - "keywords": [ - "cabundle", - "cacert", - "certificate", - "ssl", - "tls" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.3.2" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-05-24T11:56:16+00:00" - }, - { - "name": "composer/composer", - "version": "2.2.14", - "source": { - "type": "git", - "url": "https://github.com/composer/composer.git", - "reference": "8c7a2d200bb0e66d6fafeff2f9c9a27188e52842" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/8c7a2d200bb0e66d6fafeff2f9c9a27188e52842", - "reference": "8c7a2d200bb0e66d6fafeff2f9c9a27188e52842", - "shasum": "" - }, - "require": { - "composer/ca-bundle": "^1.0", - "composer/metadata-minifier": "^1.0", - "composer/pcre": "^1.0", - "composer/semver": "^3.0", - "composer/spdx-licenses": "^1.2", - "composer/xdebug-handler": "^2.0 || ^3.0", - "justinrainbow/json-schema": "^5.2.11", - "php": "^5.3.2 || ^7.0 || ^8.0", - "psr/log": "^1.0 || ^2.0", - "react/promise": "^1.2 || ^2.7", - "seld/jsonlint": "^1.4", - "seld/phar-utils": "^1.0", - "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", - "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", - "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", - "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0" - }, - "require-dev": { - "phpspec/prophecy": "^1.10", - "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" - }, - "suggest": { - "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", - "ext-zip": "Enabling the zip extension allows you to unzip archives", - "ext-zlib": "Allow gzip compression of HTTP requests" - }, - "bin": [ - "bin/composer" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.2-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\": "src/Composer" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "https://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" - } - ], - "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", - "homepage": "https://getcomposer.org/", - "keywords": [ - "autoload", - "dependency", - "package" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/2.2.14" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-06-06T14:32:50+00:00" - }, - { - "name": "composer/metadata-minifier", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/composer/metadata-minifier.git", - "reference": "c549d23829536f0d0e984aaabbf02af91f443207" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207", - "reference": "c549d23829536f0d0e984aaabbf02af91f443207", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "composer/composer": "^2", - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\MetadataMinifier\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Small utility library that handles metadata minification and expansion.", - "keywords": [ - "composer", - "compression" - ], - "support": { - "issues": "https://github.com/composer/metadata-minifier/issues", - "source": "https://github.com/composer/metadata-minifier/tree/1.0.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2021-04-07T13:37:33+00:00" - }, - { - "name": "composer/pcre", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/67a32d7d6f9f560b726ab25a061b38ff3a80c560", - "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Pcre\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", - "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" - ], - "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/1.0.1" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-01-21T20:24:37+00:00" - }, - { - "name": "composer/spdx-licenses", - "version": "1.5.7", - "source": { - "type": "git", - "url": "https://github.com/composer/spdx-licenses.git", - "reference": "c848241796da2abf65837d51dce1fae55a960149" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/c848241796da2abf65837d51dce1fae55a960149", - "reference": "c848241796da2abf65837d51dce1fae55a960149", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Spdx\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "SPDX licenses list and validation library.", - "keywords": [ - "license", - "spdx", - "validator" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/spdx-licenses/issues", - "source": "https://github.com/composer/spdx-licenses/tree/1.5.7" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-05-23T07:37:50+00:00" - }, - { - "name": "composer/xdebug-handler", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", - "shasum": "" - }, - "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1 || ^2 || ^3" - }, - "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Composer\\XdebugHandler\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" - } - ], - "description": "Restarts a process without Xdebug.", - "keywords": [ - "Xdebug", - "performance" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-02-25T21:32:43+00:00" - }, - { - "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v0.7.2", - "source": { - "type": "git", - "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", - "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", - "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=5.3", - "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" - }, - "require-dev": { - "composer/composer": "*", - "php-parallel-lint/php-parallel-lint": "^1.3.1", - "phpcompatibility/php-compatibility": "^9.0" - }, - "type": "composer-plugin", - "extra": { - "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" - }, - "autoload": { - "psr-4": { - "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Franck Nijhof", - "email": "franck.nijhof@dealerdirect.com", - "homepage": "http://www.frenck.nl", - "role": "Developer / IT Manager" - }, - { - "name": "Contributors", - "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors" - } - ], - "description": "PHP_CodeSniffer Standards Composer Installer Plugin", - "homepage": "http://www.dealerdirect.com", - "keywords": [ - "PHPCodeSniffer", - "PHP_CodeSniffer", - "code quality", - "codesniffer", - "composer", - "installer", - "phpcbf", - "phpcs", - "plugin", - "qa", - "quality", - "standard", - "standards", - "style guide", - "stylecheck", - "tests" - ], - "support": { - "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", - "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" - }, - "time": "2022-02-04T12:51:07+00:00" - }, - { - "name": "doctrine/instantiator", - "version": "1.4.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.16 || ^1", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2022-03-03T08:28:38+00:00" - }, - { - "name": "drupal/coder", - "version": "8.3.15", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/coder.git", - "reference": "0cfad3a21f1168bdc3030ae73351c31f88abba74" - }, - "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.1", - "ext-mbstring": "*", - "php": ">=7.1", - "sirbrillig/phpcs-variable-analysis": "^2.10", - "slevomat/coding-standard": "^7.0", - "squizlabs/php_codesniffer": "^3.6.0", - "symfony/yaml": ">=2.0.5" - }, - "require-dev": { - "phpstan/phpstan": "^1.4.9", - "phpunit/phpunit": "^7.0 || ^8.0" - }, - "type": "phpcodesniffer-standard", - "autoload": { - "psr-4": { - "Drupal\\": "coder_sniffer/Drupal/", - "DrupalPractice\\": "coder_sniffer/DrupalPractice/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "description": "Coder is a library to review Drupal code.", - "homepage": "https://www.drupal.org/project/coder", - "keywords": [ - "code review", - "phpcs", - "standards" - ], - "support": { - "issues": "https://www.drupal.org/project/issues/coder", - "source": "https://www.drupal.org/project/coder" - }, - "time": "2022-04-02T17:56:30+00:00" - }, - { - "name": "drupal/core-dev-pinned", - "version": "9.4.8", - "source": { - "type": "git", - "url": "https://github.com/drupal/core-dev-pinned.git", - "reference": "2c92d7e5d48206201559fb0ea058642b7e38d3c6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drupal/core-dev-pinned/zipball/2c92d7e5d48206201559fb0ea058642b7e38d3c6", - "reference": "2c92d7e5d48206201559fb0ea058642b7e38d3c6", - "shasum": "" - }, - "require": { - "behat/mink": "v1.10.0", - "behat/mink-selenium2-driver": "v1.6.0", - "composer/ca-bundle": "1.3.2", - "composer/composer": "2.2.14", - "composer/metadata-minifier": "1.0.0", - "composer/pcre": "1.0.1", - "composer/spdx-licenses": "1.5.7", - "composer/xdebug-handler": "3.0.3", - "dealerdirect/phpcodesniffer-composer-installer": "v0.7.2", - "doctrine/instantiator": "1.4.1", - "drupal/coder": "8.3.15", - "drupal/core": "9.4.8", - "easyrdf/easyrdf": "1.1.1", - "friends-of-behat/mink-browserkit-driver": "v1.5.0", - "instaclick/php-webdriver": "1.4.14", - "justinrainbow/json-schema": "5.2.12", - "mikey179/vfsstream": "v1.6.10", - "myclabs/deep-copy": "1.11.0", - "phar-io/manifest": "2.0.3", - "phar-io/version": "3.2.1", - "phpdocumentor/reflection-common": "2.2.0", - "phpdocumentor/reflection-docblock": "5.3.0", - "phpdocumentor/type-resolver": "1.6.1", - "phpspec/prophecy": "v1.15.0", - "phpstan/phpdoc-parser": "1.5.1", - "phpunit/php-code-coverage": "7.0.15", - "phpunit/php-file-iterator": "2.0.5", - "phpunit/php-text-template": "1.2.1", - "phpunit/php-timer": "2.1.3", - "phpunit/php-token-stream": "4.0.4", - "phpunit/phpunit": "8.5.26", - "react/promise": "v2.9.0", - "sebastian/code-unit-reverse-lookup": "1.0.2", - "sebastian/comparator": "3.0.3", - "sebastian/diff": "3.0.3", - "sebastian/environment": "4.2.4", - "sebastian/exporter": "3.1.4", - "sebastian/global-state": "3.0.2", - "sebastian/object-enumerator": "3.0.4", - "sebastian/object-reflector": "1.1.2", - "sebastian/recursion-context": "3.0.1", - "sebastian/resource-operations": "2.0.2", - "sebastian/type": "1.1.4", - "sebastian/version": "2.0.1", - "seld/jsonlint": "1.9.0", - "seld/phar-utils": "1.2.0", - "sirbrillig/phpcs-variable-analysis": "v2.11.3", - "slevomat/coding-standard": "7.2.1", - "squizlabs/php_codesniffer": "3.6.2", - "symfony/browser-kit": "v4.4.37", - "symfony/css-selector": "v4.4.37", - "symfony/dom-crawler": "v4.4.42", - "symfony/filesystem": "v4.4.42", - "symfony/finder": "v4.4.41", - "symfony/lock": "v4.4.40", - "symfony/phpunit-bridge": "v5.4.8", - "theseer/tokenizer": "1.2.1", - "webmozart/assert": "1.10.0" - }, - "conflict": { - "webflo/drupal-core-require-dev": "*" - }, - "type": "metapackage", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "description": "Pinned require-dev dependencies from drupal/drupal; use in addition to drupal/core-recommended to run tests from drupal/core.", - "support": { - "source": "https://github.com/drupal/core-dev-pinned/tree/9.4.8" - }, - "time": "2022-10-06T15:57:08+00:00" - }, - { - "name": "easyrdf/easyrdf", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/easyrdf/easyrdf.git", - "reference": "c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/easyrdf/easyrdf/zipball/c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64", - "reference": "c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-mbstring": "*", - "ext-pcre": "*", - "ext-xmlreader": "*", - "lib-libxml": "*", - "php": ">=7.1.0" - }, - "require-dev": { - "code-lts/doctum": "^5", - "ml/json-ld": "~1.0", - "phpunit/phpunit": "^7", - "semsol/arc2": "^2.4", - "squizlabs/php_codesniffer": "3.*", - "zendframework/zend-http": "~2.3" - }, - "suggest": { - "ml/json-ld": "~1.0", - "semsol/arc2": "~2.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "EasyRdf\\": "lib" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nicholas Humfrey", - "email": "njh@aelius.com", - "homepage": "http://www.aelius.com/njh/", - "role": "Developer" - }, - { - "name": "Alexey Zakhlestin", - "email": "indeyets@gmail.com", - "homepage": "http://indeyets.ru/", - "role": "Developer" - } - ], - "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.", - "homepage": "http://www.easyrdf.org/", - "keywords": [ - "Linked Data", - "RDF", - "Semantic Web", - "Turtle", - "rdfa", - "sparql" - ], - "support": { - "forum": "http://groups.google.com/group/easyrdf/", - "issues": "http://github.com/easyrdf/easyrdf/issues", - "source": "https://github.com/easyrdf/easyrdf/tree/1.1.1" - }, - "time": "2020-12-02T08:47:31+00:00" - }, - { - "name": "friends-of-behat/mink-browserkit-driver", - "version": "v1.5.0", - "source": { - "type": "git", - "url": "https://github.com/FriendsOfBehat/MinkBrowserKitDriver.git", - "reference": "8110b99ed1ac2b50ad287280bfc20e08f58b6cc6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/FriendsOfBehat/MinkBrowserKitDriver/zipball/8110b99ed1ac2b50ad287280bfc20e08f58b6cc6", - "reference": "8110b99ed1ac2b50ad287280bfc20e08f58b6cc6", - "shasum": "" - }, - "require": { - "behat/mink": "^1.7", - "php": "^7.2|^8.0", - "symfony/browser-kit": "^4.4|^5.0", - "symfony/dom-crawler": "^4.4|^5.0" - }, - "replace": { - "behat/mink-browserkit-driver": "self.version" - }, - "require-dev": { - "friends-of-behat/mink-driver-testsuite": "dev-master", - "symfony/http-kernel": "^4.4|^5.0" - }, - "type": "mink-driver", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Mink\\Driver\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Symfony2 BrowserKit driver for Mink framework", - "homepage": "http://mink.behat.org/", - "keywords": [ - "Mink", - "Symfony2", - "browser", - "testing" - ], - "support": { - "source": "https://github.com/FriendsOfBehat/MinkBrowserKitDriver/tree/v1.5.0" - }, - "time": "2021-02-04T14:39:46+00:00" - }, - { - "name": "instaclick/php-webdriver", - "version": "1.4.14", - "source": { - "type": "git", - "url": "https://github.com/instaclick/php-webdriver.git", - "reference": "200b8df772b74d604bebf25ef42ad6f8ee6380a9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/200b8df772b74d604bebf25ef42ad6f8ee6380a9", - "reference": "200b8df772b74d604bebf25ef42ad6f8ee6380a9", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.5", - "satooshi/php-coveralls": "^1.0 || ^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "psr-0": { - "WebDriver": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Justin Bishop", - "email": "jubishop@gmail.com", - "role": "Developer" - }, - { - "name": "Anthon Pang", - "email": "apang@softwaredevelopment.ca", - "role": "Fork Maintainer" - } - ], - "description": "PHP WebDriver for Selenium 2", - "homepage": "http://instaclick.com/", - "keywords": [ - "browser", - "selenium", - "webdriver", - "webtest" - ], - "support": { - "issues": "https://github.com/instaclick/php-webdriver/issues", - "source": "https://github.com/instaclick/php-webdriver/tree/1.4.14" - }, - "time": "2022-04-19T02:06:59+00:00" - }, - { - "name": "justinrainbow/json-schema", - "version": "5.2.12", - "source": { - "type": "git", - "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", - "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", - "json-schema/json-schema-test-suite": "1.2.0", - "phpunit/phpunit": "^4.8.35" - }, - "bin": [ - "bin/validate-json" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "JsonSchema\\": "src/JsonSchema/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bruno Prieto Reis", - "email": "bruno.p.reis@gmail.com" - }, - { - "name": "Justin Rainbow", - "email": "justin.rainbow@gmail.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - }, - { - "name": "Robert Schönthal", - "email": "seroscho@googlemail.com" - } - ], - "description": "A library to validate a json schema.", - "homepage": "https://github.com/justinrainbow/json-schema", - "keywords": [ - "json", - "schema" - ], - "support": { - "issues": "https://github.com/justinrainbow/json-schema/issues", - "source": "https://github.com/justinrainbow/json-schema/tree/5.2.12" - }, - "time": "2022-04-13T08:02:27+00:00" - }, - { - "name": "mikey179/vfsstream", - "version": "v1.6.10", - "source": { - "type": "git", - "url": "https://github.com/bovigo/vfsStream.git", - "reference": "250c0825537d501e327df879fb3d4cd751933b85" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/250c0825537d501e327df879fb3d4cd751933b85", - "reference": "250c0825537d501e327df879fb3d4cd751933b85", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.5|^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.6.x-dev" - } - }, - "autoload": { - "psr-0": { - "org\\bovigo\\vfs\\": "src/main/php" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Frank Kleine", - "homepage": "http://frankkleine.de/", - "role": "Developer" - } - ], - "description": "Virtual file system to mock the real file system in unit tests.", - "homepage": "http://vfs.bovigo.org/", - "support": { - "issues": "https://github.com/bovigo/vfsStream/issues", - "source": "https://github.com/bovigo/vfsStream/tree/master", - "wiki": "https://github.com/bovigo/vfsStream/wiki" - }, - "time": "2021-09-25T08:05:01+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.11.0", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" - }, - "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" - }, - "type": "library", - "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2022-03-03T13:19:32+00:00" - }, - { - "name": "phar-io/manifest", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" - }, - "time": "2021-07-20T11:28:43+00:00" - }, - { - "name": "phar-io/version", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" - }, - "time": "2022-02-21T01:04:05+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" - }, - "time": "2021-10-19T17:43:47+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.6.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "77a32518733312af16a44300404e945338981de3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", - "reference": "77a32518733312af16a44300404e945338981de3", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "*", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1" - }, - "time": "2022-03-15T21:29:03+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "v1.15.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.2", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0 || ^7.0", - "phpunit/phpunit": "^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" - }, - "time": "2021-12-08T12:19:24+00:00" - }, - { - "name": "phpstan/phpdoc-parser", - "version": "1.5.1", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "981cc368a216c988e862a75e526b6076987d1b50" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/981cc368a216c988e862a75e526b6076987d1b50", - "reference": "981cc368a216c988e862a75e526b6076987d1b50", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.5", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", - "symfony/process": "^5.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPDoc parser with support for nullable, intersection and generic types", - "support": { - "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.5.1" - }, - "time": "2022-05-05T11:32:40+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "7.0.15", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "819f92bba8b001d4363065928088de22f25a3a48" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/819f92bba8b001d4363065928088de22f25a3a48", - "reference": "819f92bba8b001d4363065928088de22f25a3a48", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": ">=7.2", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.3 || ^4.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^4.2.2", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1.3" - }, - "require-dev": { - "phpunit/phpunit": "^8.2.2" - }, - "suggest": { - "ext-xdebug": "^2.7.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "7.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.15" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-07-26T12:20:09+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "2.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", - "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "^8.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-12-02T12:42:26+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" - }, - "time": "2015-06-21T13:50:34+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "2.1.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "^8.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-30T08:20:02+00:00" - }, - { - "name": "phpunit/php-token-stream", - "version": "4.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3", - "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": "^7.3 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", - "source": "https://github.com/sebastianbergmann/php-token-stream/tree/master" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "abandoned": true, - "time": "2020-08-04T08:28:15+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "8.5.26", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "ef117c59fc4c54a979021b26d08a3373e386606d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ef117c59fc4c54a979021b26d08a3373e386606d", - "reference": "ef117c59fc4c54a979021b26d08a3373e386606d", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.3.1", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.0", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", - "php": ">=7.2", - "phpspec/prophecy": "^1.10.3", - "phpunit/php-code-coverage": "^7.0.12", - "phpunit/php-file-iterator": "^2.0.4", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1.2", - "sebastian/comparator": "^3.0.2", - "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.3", - "sebastian/exporter": "^3.1.2", - "sebastian/global-state": "^3.0.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0.1", - "sebastian/type": "^1.1.3", - "sebastian/version": "^2.0.1" - }, - "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0.0" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "8.5-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.26" - }, - "funding": [ - { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-04-01T12:34:39+00:00" - }, - { - "name": "react/promise", - "version": "v2.9.0", - "source": { - "type": "git", - "url": "https://github.com/reactphp/promise.git", - "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/234f8fd1023c9158e2314fa9d7d0e6a83db42910", - "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910", - "shasum": "" - }, - "require": { - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36" - }, - "type": "library", - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "React\\Promise\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com", - "homepage": "https://sorgalla.com/" - }, - { - "name": "Christian Lück", - "email": "christian@clue.engineering", - "homepage": "https://clue.engineering/" - }, - { - "name": "Cees-Jan Kiewiet", - "email": "reactphp@ceesjankiewiet.nl", - "homepage": "https://wyrihaximus.net/" - }, - { - "name": "Chris Boden", - "email": "cboden@gmail.com", - "homepage": "https://cboden.dev/" - } - ], - "description": "A lightweight implementation of CommonJS Promises/A for PHP", - "keywords": [ - "promise", - "promises" - ], - "support": { - "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v2.9.0" - }, - "funding": [ - { - "url": "https://github.com/WyriHaximus", - "type": "github" - }, - { - "url": "https://github.com/clue", - "type": "github" - } - ], - "time": "2022-02-11T10:27:51+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "phpunit/phpunit": "^8.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-30T08:15:22+00:00" - }, - { - "name": "sebastian/comparator", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "1071dfcef776a57013124ff35e1fc41ccd294758" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758", - "reference": "1071dfcef776a57013124ff35e1fc41ccd294758", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" - }, - "require-dev": { - "phpunit/phpunit": "^8.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-30T08:04:30+00:00" - }, - { - "name": "sebastian/diff", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-30T07:59:04+00:00" - }, - { - "name": "sebastian/environment", - "version": "4.2.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.5" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-30T07:53:42+00:00" - }, - { - "name": "sebastian/exporter", - "version": "3.1.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "0c32ea2e40dbf59de29f3b49bf375176ce7dd8db" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0c32ea2e40dbf59de29f3b49bf375176ce7dd8db", - "reference": "0c32ea2e40dbf59de29f3b49bf375176ce7dd8db", - "shasum": "" - }, - "require": { - "php": ">=7.0", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^8.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-11-11T13:51:24+00:00" - }, - { - "name": "sebastian/global-state", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/de036ec91d55d2a9e0db2ba975b512cdb1c23921", - "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921", - "shasum": "" - }, - "require": { - "php": ">=7.2", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^8.0" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-02-10T06:55:38+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "3.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", - "shasum": "" - }, - "require": { - "php": ">=7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-30T07:40:27+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "1.1.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", - "shasum": "" - }, - "require": { - "php": ">=7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-30T07:37:18+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "3.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", - "shasum": "" - }, - "require": { - "php": ">=7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-30T07:34:24+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-30T07:30:19+00:00" - }, - { - "name": "sebastian/type", - "version": "1.1.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/1.1.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-30T07:25:11+00:00" - }, - { - "name": "sebastian/version", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/master" - }, - "time": "2016-10-03T07:35:21+00:00" - }, - { - "name": "seld/jsonlint", - "version": "1.9.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "4211420d25eba80712bff236a98960ef68b866b7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/4211420d25eba80712bff236a98960ef68b866b7", - "reference": "4211420d25eba80712bff236a98960ef68b866b7", - "shasum": "" - }, - "require": { - "php": "^5.3 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.5", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" - }, - "bin": [ - "bin/jsonlint" - ], - "type": "library", - "autoload": { - "psr-4": { - "Seld\\JsonLint\\": "src/Seld/JsonLint/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "JSON Linter", - "keywords": [ - "json", - "linter", - "parser", - "validator" - ], - "support": { - "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.9.0" - }, - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", - "type": "tidelift" - } - ], - "time": "2022-04-01T13:37:23+00:00" - }, - { - "name": "seld/phar-utils", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "9f3452c93ff423469c0d56450431562ca423dcee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/9f3452c93ff423469c0d56450431562ca423dcee", - "reference": "9f3452c93ff423469c0d56450431562ca423dcee", - "shasum": "" - }, - "require": { - "php": ">=5.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Seld\\PharUtils\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" - } - ], - "description": "PHAR file format utilities, for when PHP phars you up", - "keywords": [ - "phar" - ], - "support": { - "issues": "https://github.com/Seldaek/phar-utils/issues", - "source": "https://github.com/Seldaek/phar-utils/tree/1.2.0" - }, - "time": "2021-12-10T11:20:11+00:00" - }, - { - "name": "sirbrillig/phpcs-variable-analysis", - "version": "v2.11.3", - "source": { - "type": "git", - "url": "https://github.com/sirbrillig/phpcs-variable-analysis.git", - "reference": "c921498b474212fe4552928bbeb68d70250ce5e8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sirbrillig/phpcs-variable-analysis/zipball/c921498b474212fe4552928bbeb68d70250ce5e8", - "reference": "c921498b474212fe4552928bbeb68d70250ce5e8", - "shasum": "" - }, - "require": { - "php": ">=5.4.0", - "squizlabs/php_codesniffer": "^3.5" - }, - "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", - "limedeck/phpunit-detailed-printer": "^3.1 || ^4.0 || ^5.0", - "phpstan/phpstan": "^0.11.8", - "phpunit/phpunit": "^5.0 || ^6.5 || ^7.0 || ^8.0", - "sirbrillig/phpcs-import-detection": "^1.1" - }, - "type": "phpcodesniffer-standard", - "autoload": { - "psr-4": { - "VariableAnalysis\\": "VariableAnalysis/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Sam Graham", - "email": "php-codesniffer-variableanalysis@illusori.co.uk" - }, - { - "name": "Payton Swick", - "email": "payton@foolord.com" - } - ], - "description": "A PHPCS sniff to detect problems with variables.", - "support": { - "issues": "https://github.com/sirbrillig/phpcs-variable-analysis/issues", - "source": "https://github.com/sirbrillig/phpcs-variable-analysis", - "wiki": "https://github.com/sirbrillig/phpcs-variable-analysis/wiki" - }, - "time": "2022-02-21T17:01:13+00:00" - }, - { - "name": "slevomat/coding-standard", - "version": "7.2.1", - "source": { - "type": "git", - "url": "https://github.com/slevomat/coding-standard.git", - "reference": "aff06ae7a84e4534bf6f821dc982a93a5d477c90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/aff06ae7a84e4534bf6f821dc982a93a5d477c90", - "reference": "aff06ae7a84e4534bf6f821dc982a93a5d477c90", - "shasum": "" - }, - "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7", - "php": "^7.2 || ^8.0", - "phpstan/phpdoc-parser": "^1.5.1", - "squizlabs/php_codesniffer": "^3.6.2" - }, - "require-dev": { - "phing/phing": "2.17.3", - "php-parallel-lint/php-parallel-lint": "1.3.2", - "phpstan/phpstan": "1.4.10|1.7.1", - "phpstan/phpstan-deprecation-rules": "1.0.0", - "phpstan/phpstan-phpunit": "1.0.0|1.1.1", - "phpstan/phpstan-strict-rules": "1.2.3", - "phpunit/phpunit": "7.5.20|8.5.21|9.5.20" - }, - "type": "phpcodesniffer-standard", - "extra": { - "branch-alias": { - "dev-master": "7.x-dev" - } - }, - "autoload": { - "psr-4": { - "SlevomatCodingStandard\\": "SlevomatCodingStandard" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", - "support": { - "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/7.2.1" - }, - "funding": [ - { - "url": "https://github.com/kukulich", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard", - "type": "tidelift" - } - ], - "time": "2022-05-25T10:58:12+00:00" - }, - { - "name": "squizlabs/php_codesniffer", - "version": "3.6.2", - "source": { - "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a", - "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a", - "shasum": "" - }, - "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" - }, - "bin": [ - "bin/phpcs", - "bin/phpcbf" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Greg Sherwood", - "role": "lead" - } - ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", - "keywords": [ - "phpcs", - "standards" - ], - "support": { - "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", - "source": "https://github.com/squizlabs/PHP_CodeSniffer", - "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" - }, - "time": "2021-12-12T21:44:58+00:00" - }, - { - "name": "symfony/browser-kit", - "version": "v4.4.37", - "source": { - "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "6e81008cac62369871cb6b8de64576ed138e3998" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/6e81008cac62369871cb6b8de64576ed138e3998", - "reference": "6e81008cac62369871cb6b8de64576ed138e3998", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/dom-crawler": "^3.4|^4.0|^5.0", - "symfony/polyfill-php80": "^1.16" - }, - "require-dev": { - "symfony/css-selector": "^3.4|^4.0|^5.0", - "symfony/http-client": "^4.3|^5.0", - "symfony/mime": "^4.3|^5.0", - "symfony/process": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/process": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\BrowserKit\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/browser-kit/tree/v4.4.37" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-01-02T09:41:36+00:00" - }, - { - "name": "symfony/css-selector", - "version": "v4.4.37", - "source": { - "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "0628e6c6d7c92f1a7bae543959bdc17347be2436" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/0628e6c6d7c92f1a7bae543959bdc17347be2436", - "reference": "0628e6c6d7c92f1a7bae543959bdc17347be2436", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/polyfill-php80": "^1.16" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Converts CSS selectors to XPath expressions", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/css-selector/tree/v4.4.37" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-01-02T09:41:36+00:00" - }, - { - "name": "symfony/dom-crawler", - "version": "v4.4.42", - "source": { - "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "be5a04618e5d44e71d013f177df80d3ec4b192a0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/be5a04618e5d44e71d013f177df80d3ec4b192a0", - "reference": "be5a04618e5d44e71d013f177df80d3ec4b192a0", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "masterminds/html5": "<2.6" - }, - "require-dev": { - "masterminds/html5": "^2.6", - "symfony/css-selector": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/css-selector": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases DOM navigation for HTML and XML documents", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v4.4.42" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-04-30T18:34:00+00:00" - }, - { - "name": "symfony/lock", - "version": "v4.4.40", - "source": { - "type": "git", - "url": "https://github.com/symfony/lock.git", - "reference": "ec23fb51d9b531f7fcd2279afe5b474e624c2445" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/lock/zipball/ec23fb51d9b531f7fcd2279afe5b474e624c2445", - "reference": "ec23fb51d9b531f7fcd2279afe5b474e624c2445", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "psr/log": "^1|^2|^3", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "doctrine/dbal": "<2.6" - }, - "require-dev": { - "doctrine/dbal": "^2.6|^3.0", - "predis/predis": "~1.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Lock\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jérémy Derussé", - "email": "jeremy@derusse.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Creates and manages locks, a mechanism to provide exclusive access to a shared resource", - "homepage": "https://symfony.com", - "keywords": [ - "cas", - "flock", - "locking", - "mutex", - "redlock", - "semaphore" - ], - "support": { - "source": "https://github.com/symfony/lock/tree/v4.4.40" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-03-22T11:09:53+00:00" - }, - { - "name": "symfony/phpunit-bridge", - "version": "v5.4.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "cec05218b4fd847b87dce5b3560b288096c36950" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/cec05218b4fd847b87dce5b3560b288096c36950", - "reference": "cec05218b4fd847b87dce5b3560b288096c36950", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/deprecation-contracts": "^2.1|^3" - }, - "conflict": { - "phpunit/phpunit": "<7.5|9.1.2" - }, - "require-dev": { - "symfony/error-handler": "^4.4|^5.0|^6.0" - }, - "suggest": { - "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" - }, - "bin": [ - "bin/simple-phpunit" - ], - "type": "symfony-bridge", - "extra": { - "thanks": { - "name": "phpunit/phpunit", - "url": "https://github.com/sebastianbergmann/phpunit" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Bridge\\PhpUnit\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "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": "Provides utilities for PHPUnit, especially user deprecation notices management", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v5.4.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-04-12T15:48:08+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.1" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2021-07-28T10:34:58+00:00" - } - ], - "aliases": [], - "minimum-stability": "dev", - "stability-flags": [], - "prefer-stable": true, - "prefer-lowest": false, - "platform": [], - "platform-dev": [], - "plugin-api-version": "2.3.0" -} diff --git a/tests/files/drupal9-mariadb-single/config/sync/.gitkeep b/tests/files/drupal9-mariadb-single/config/sync/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/files/drupal9-mariadb-single/drupal.sql.gz b/tests/files/drupal9-mariadb-single/drupal.sql.gz deleted file mode 100644 index 6e6eef876d7c7051390d621918e558d0696879ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 401771 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

=$;;9qJCTBj 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�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%0D;JTpi;wqNlIm7OL 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

aoDD>%Tajw6iUmYtc8ahJRixC{|Mb;{@4~Bx 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 diff --git a/tests/files/drupal9-mariadb-single/lagoon/cli.dockerfile b/tests/files/drupal9-mariadb-single/lagoon/cli.dockerfile deleted file mode 100644 index b151924230..0000000000 --- a/tests/files/drupal9-mariadb-single/lagoon/cli.dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -ARG UPSTREAM_REPO -ARG UPSTREAM_TAG -FROM ${UPSTREAM_REPO:-testlagoon}/php-8.1-cli-drupal:${UPSTREAM_TAG:-latest} - -COPY composer.* /app/ -COPY assets /app/assets -RUN composer install --prefer-dist --no-dev --ignore-platform-reqs --no-suggest --optimize-autoloader --apcu-autoloader -COPY . /app -RUN mkdir -p -v -m775 /app/web/sites/default/files - -# Define where the Drupal Root is located -ENV WEBROOT=web diff --git a/tests/files/drupal9-mariadb-single/lagoon/mariadb.dockerfile b/tests/files/drupal9-mariadb-single/lagoon/mariadb.dockerfile deleted file mode 100644 index 8c7a464d59..0000000000 --- a/tests/files/drupal9-mariadb-single/lagoon/mariadb.dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -ARG UPSTREAM_REPO -ARG UPSTREAM_TAG -FROM ${UPSTREAM_REPO:-testlagoon}/mariadb-10.6-drupal:${UPSTREAM_TAG:-latest} diff --git a/tests/files/drupal9-mariadb-single/lagoon/nginx.dockerfile b/tests/files/drupal9-mariadb-single/lagoon/nginx.dockerfile deleted file mode 100644 index 3edca76168..0000000000 --- a/tests/files/drupal9-mariadb-single/lagoon/nginx.dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -ARG CLI_IMAGE -ARG UPSTREAM_REPO -ARG UPSTREAM_TAG -FROM ${CLI_IMAGE:-builder} as builder - -FROM ${UPSTREAM_REPO:-testlagoon}/nginx-drupal:${UPSTREAM_TAG:-latest} - -COPY --from=builder /app /app - -ENV WEBROOT=web diff --git a/tests/files/drupal9-mariadb-single/lagoon/php.dockerfile b/tests/files/drupal9-mariadb-single/lagoon/php.dockerfile deleted file mode 100644 index 0542c5def6..0000000000 --- a/tests/files/drupal9-mariadb-single/lagoon/php.dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -ARG CLI_IMAGE -ARG UPSTREAM_REPO -ARG UPSTREAM_TAG -FROM ${CLI_IMAGE:-builder} as builder - -FROM ${UPSTREAM_REPO:-testlagoon}/php-8.1-fpm:${UPSTREAM_TAG:-latest} - -COPY --from=builder /app /app diff --git a/tests/tests/drupal/drush-sa.yaml b/tests/tests/drupal/drush-sa.yaml index 8fa68c74a8..37c00fcbd8 100644 --- a/tests/tests/drupal/drush-sa.yaml +++ b/tests/tests/drupal/drush-sa.yaml @@ -2,7 +2,7 @@ hosts: localhost serial: 1 vars: - git_files: "drupal{{ drupal_version }}-{{ db }}/" + git_files: "drupal8-base/" branch: "drush-first" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml @@ -24,7 +24,7 @@ hosts: localhost serial: 1 vars: - git_files: "drupal{{ drupal_version }}-{{ db }}/" + git_files: "drupal8-base/" branch: "drush-second" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml @@ -186,7 +186,7 @@ hosts: localhost serial: 1 vars: - git_files: "drupal{{ drupal_version }}-{{ db }}/" + git_files: "drupal8-base/" branch: "foo/bar" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml diff --git a/tests/tests/drush.yaml b/tests/tests/drush.yaml index 1b2cfce164..a3ebf261b1 100644 --- a/tests/tests/drush.yaml +++ b/tests/tests/drush.yaml @@ -19,18 +19,18 @@ vars: project: ci-drush-la-{{ cluster_type }} -# - ansible.builtin.import_playbook: api/add-project.yaml -# vars: -# project: ci-drush-sa-{{ cluster_type }} -# git_repo_name: drush-sa.git -# git_url: "{{ localgit_url }}/{{ git_repo_name }}" +- ansible.builtin.import_playbook: api/add-project.yaml + vars: + project: ci-drush-sa-{{ cluster_type }} + git_repo_name: drush-sa.git + git_url: "{{ localgit_url }}/{{ git_repo_name }}" -# - ansible.builtin.import_playbook: drupal/drush-sa.yaml -# vars: -# testname: "DRUSH legacy {{ cluster_type|upper }}" -# git_repo_name: drush-sa.git -# project: ci-drush-sa-{{ cluster_type }} +- ansible.builtin.import_playbook: drupal/drush-sa.yaml + vars: + testname: "DRUSH legacy {{ cluster_type|upper }}" + git_repo_name: drush-sa.git + project: ci-drush-sa-{{ cluster_type }} -# - ansible.builtin.import_playbook: api/delete-project.yaml -# vars: -# project: ci-drush-sa-{{ cluster_type }} +- ansible.builtin.import_playbook: api/delete-project.yaml + vars: + project: ci-drush-sa-{{ cluster_type }} From ce68992eeb53b30ce1c4e1f96ddbf26c524aef81 Mon Sep 17 00:00:00 2001 From: Toby Bellwood Date: Thu, 25 Jul 2024 10:08:48 +1000 Subject: [PATCH 3/8] tests: deprecate d8/drush-sa tests --- tests/files/drupal8-base/.dockerignore | 2 - tests/files/drupal8-base/.gitignore | 21 - tests/files/drupal8-base/.lagoon.yml | 41 - tests/files/drupal8-base/LICENSE | 339 - tests/files/drupal8-base/README.md | 116 - tests/files/drupal8-base/composer.json | 77 - tests/files/drupal8-base/composer.lock | 7856 ----------------- tests/files/drupal8-base/config/sync/.gitkeep | 0 .../files/drupal8-base/config/sync/.htaccess | 24 - tests/files/drupal8-base/docker-compose.yml | 58 - tests/files/drupal8-base/drush/README.md | 1 - .../drupal8-base/drush/aliases.drushrc.php | 37 - tests/files/drupal8-base/drush/drushrc.php | 14 - .../files/drupal8-base/drush/policy.drush.inc | 38 - .../files/drupal8-base/lagoon/cli.dockerfile | 10 - .../drupal8-base/lagoon/mariadb.dockerfile | 3 - .../drupal8-base/lagoon/nginx.dockerfile | 10 - .../files/drupal8-base/lagoon/php.dockerfile | 8 - .../scripts/composer/ScriptHandler.php | 84 - tests/files/drupal8-base/web/.csslintrc | 40 - tests/files/drupal8-base/web/.editorconfig | 17 - tests/files/drupal8-base/web/.eslintignore | 8 - tests/files/drupal8-base/web/.eslintrc.json | 3 - tests/files/drupal8-base/web/.gitattributes | 61 - tests/files/drupal8-base/web/.ht.router.php | 65 - tests/files/drupal8-base/web/.htaccess | 182 - tests/files/drupal8-base/web/autoload.php | 17 - tests/files/drupal8-base/web/index.php | 22 - tests/files/drupal8-base/web/modules/.gitkeep | 0 .../files/drupal8-base/web/profiles/.gitkeep | 0 tests/files/drupal8-base/web/robots.txt | 61 - .../web/sites/default/all.services.yml | 4 - .../web/sites/default/all.settings.php | 15 - .../web/sites/default/default.services.yml | 174 - .../web/sites/default/default.settings.php | 757 -- .../sites/default/development.services.yml | 15 - .../sites/default/development.settings.php | 29 - .../sites/default/example.settings.local.php | 12 - .../web/sites/default/production.services.yml | 11 - .../web/sites/default/production.settings.php | 24 - .../web/sites/default/settings.php | 127 - .../drupal8-base/web/sites/example.sites.php | 57 - tests/files/drupal8-base/web/themes/.gitkeep | 0 tests/files/drupal8-base/web/update.php | 31 - tests/files/drupal8-base/web/web.config | 103 - tests/tests/drupal/drush-sa.yaml | 240 - tests/tests/drush.yaml | 16 - 47 files changed, 10830 deletions(-) delete mode 100644 tests/files/drupal8-base/.dockerignore delete mode 100644 tests/files/drupal8-base/.gitignore delete mode 100644 tests/files/drupal8-base/.lagoon.yml delete mode 100644 tests/files/drupal8-base/LICENSE delete mode 100644 tests/files/drupal8-base/README.md delete mode 100644 tests/files/drupal8-base/composer.json delete mode 100644 tests/files/drupal8-base/composer.lock delete mode 100644 tests/files/drupal8-base/config/sync/.gitkeep delete mode 100644 tests/files/drupal8-base/config/sync/.htaccess delete mode 100644 tests/files/drupal8-base/docker-compose.yml delete mode 100644 tests/files/drupal8-base/drush/README.md delete mode 100644 tests/files/drupal8-base/drush/aliases.drushrc.php delete mode 100644 tests/files/drupal8-base/drush/drushrc.php delete mode 100644 tests/files/drupal8-base/drush/policy.drush.inc delete mode 100644 tests/files/drupal8-base/lagoon/cli.dockerfile delete mode 100644 tests/files/drupal8-base/lagoon/mariadb.dockerfile delete mode 100644 tests/files/drupal8-base/lagoon/nginx.dockerfile delete mode 100644 tests/files/drupal8-base/lagoon/php.dockerfile delete mode 100644 tests/files/drupal8-base/scripts/composer/ScriptHandler.php delete mode 100644 tests/files/drupal8-base/web/.csslintrc delete mode 100644 tests/files/drupal8-base/web/.editorconfig delete mode 100644 tests/files/drupal8-base/web/.eslintignore delete mode 100644 tests/files/drupal8-base/web/.eslintrc.json delete mode 100644 tests/files/drupal8-base/web/.gitattributes delete mode 100644 tests/files/drupal8-base/web/.ht.router.php delete mode 100644 tests/files/drupal8-base/web/.htaccess delete mode 100644 tests/files/drupal8-base/web/autoload.php delete mode 100644 tests/files/drupal8-base/web/index.php delete mode 100644 tests/files/drupal8-base/web/modules/.gitkeep delete mode 100644 tests/files/drupal8-base/web/profiles/.gitkeep delete mode 100644 tests/files/drupal8-base/web/robots.txt delete mode 100644 tests/files/drupal8-base/web/sites/default/all.services.yml delete mode 100755 tests/files/drupal8-base/web/sites/default/all.settings.php delete mode 100644 tests/files/drupal8-base/web/sites/default/default.services.yml delete mode 100644 tests/files/drupal8-base/web/sites/default/default.settings.php delete mode 100644 tests/files/drupal8-base/web/sites/default/development.services.yml delete mode 100755 tests/files/drupal8-base/web/sites/default/development.settings.php delete mode 100644 tests/files/drupal8-base/web/sites/default/example.settings.local.php delete mode 100644 tests/files/drupal8-base/web/sites/default/production.services.yml delete mode 100644 tests/files/drupal8-base/web/sites/default/production.settings.php delete mode 100755 tests/files/drupal8-base/web/sites/default/settings.php delete mode 100644 tests/files/drupal8-base/web/sites/example.sites.php delete mode 100644 tests/files/drupal8-base/web/themes/.gitkeep delete mode 100644 tests/files/drupal8-base/web/update.php delete mode 100644 tests/files/drupal8-base/web/web.config delete mode 100644 tests/tests/drupal/drush-sa.yaml diff --git a/tests/files/drupal8-base/.dockerignore b/tests/files/drupal8-base/.dockerignore deleted file mode 100644 index 12fe6241b2..0000000000 --- a/tests/files/drupal8-base/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -.git -docker-compose.yml \ No newline at end of file diff --git a/tests/files/drupal8-base/.gitignore b/tests/files/drupal8-base/.gitignore deleted file mode 100644 index f34ab3e181..0000000000 --- a/tests/files/drupal8-base/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# Ignore directories generated by Composer -/drush/contrib/ -/vendor/ -/web/core/ -/web/modules/contrib/ -/web/themes/contrib/ -/web/profiles/contrib/ -/web/libraries/ - -# Ignore Drupal's file directory -/web/sites/*/files/ - -# Ingore files that are only for the current local environment -web/sites/*/local.settings.php -web/sites/*/local.services.yml - -# Ignore SimpleTest multi-site environment. -web/sites/simpletest - -# Ignore files generated by PhpStorm -/.idea/ diff --git a/tests/files/drupal8-base/.lagoon.yml b/tests/files/drupal8-base/.lagoon.yml deleted file mode 100644 index 6b2906764b..0000000000 --- a/tests/files/drupal8-base/.lagoon.yml +++ /dev/null @@ -1,41 +0,0 @@ -docker-compose-yaml: docker-compose.yml - -endpoint: lagoon-core-ssh-token.lagoon-core.svc.cluster.local:2223 -api: lagoon-core-api.lagoon-core.svc.cluster.local:80 - -environment_variables: - git_sha: 'true' - -tasks: - post-rollout: - - run: - name: env variables - command: env - service: cli - - run: - name: IF no Drupal installed, install Drupal - command: | - cd web - drush si -y minimal - # set the sitename to the current SHA and BRANCH - drush -y cset system.site name "LAGOON_GIT_SHA=$LAGOON_GIT_SHA LAGOON_GIT_BRANCH=$LAGOON_GIT_BRANCH" - service: cli - shell: bash - - run: - name: drush cr - command: cd web && drush -y cr - service: cli - -environments: - master: - routes: - - nginx: - - "domain.com": - tls-acme: 'true' - insecure: Allow - - www.domain.com - cronjobs: - - name: drush cron - schedule: "1 * * * *" - command: drush cron - service: cli diff --git a/tests/files/drupal8-base/LICENSE b/tests/files/drupal8-base/LICENSE deleted file mode 100644 index 23cb790338..0000000000 --- a/tests/files/drupal8-base/LICENSE +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - {description} - Copyright (C) {year} {fullname} - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - {signature of Ty Coon}, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/tests/files/drupal8-base/README.md b/tests/files/drupal8-base/README.md deleted file mode 100644 index 993a0062a2..0000000000 --- a/tests/files/drupal8-base/README.md +++ /dev/null @@ -1,116 +0,0 @@ -# Composer template for Drupal projects hosted on amazee.io - -This project template should provide a kickstart for managing your site -dependencies with [Composer](https://getcomposer.org/). It is based on the [original Drupal Composer Template](https://github.com/drupal-composer/drupal-project), but includes everything necessary to run on amazee.io (either the local development environment or on amazee.io servers.) - -## Usage - -First you need to [install composer](https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx). - -> Note: The instructions below refer to the [global composer installation](https://getcomposer.org/doc/00-intro.md#globally). -You might need to replace `composer` with `php composer.phar` (or similar) -for your setup. - -After that you can create the project: - -``` -composer create-project amazeeio/drupal-project:8.x-dev some-dir --stability dev --no-interaction -``` - -Now edit `.amazeeio.yml` and `docker-compose.yml` based on your needs. - -With `composer require ...` you can download new dependencies to your -installation. - -``` -cd some-dir -composer require drupal/devel:~1.0 -``` - -The `composer create-project` command passes ownership of all files to the -project that is created. You should create a new git repository, and commit -all files not excluded by the .gitignore file. - -## What does the template do? - -When installing the given `composer.json` some tasks are taken care of: - -* Drupal will be installed in the `web`-directory. -* Autoloader is implemented to use the generated composer autoloader in `vendor/autoload.php`, - instead of the one provided by Drupal (`web/vendor/autoload.php`). -* Modules (packages of type `drupal-module`) will be placed in `web/modules/contrib/` -* Themes (packages of type `drupal-theme`) will be placed in `web/themes/contrib/` -* Profiles (packages of type `drupal-profile`) will be placed in `web/profiles/contrib/` -* Creates the `web/sites/default/files`-directory. -* Latest version of drush is installed locally for use at `vendor/bin/drush`. -* Latest version of [Drupal Console](http://www.drupalconsole.com) is installed locally for use at `vendor/bin/drupal`. - -## Updating Drupal Core - -This project will attempt to keep all of your Drupal Core files up-to-date; the -project [drupal-composer/drupal-scaffold](https://github.com/drupal-composer/drupal-scaffold) -is used to ensure that your scaffold files are updated every time drupal/core is -updated. If you customize any of the "scaffolding" files (commonly .htaccess), -you may need to merge conflicts if any of your modified files are updated in a -new release of Drupal core. - -Follow the steps below to update your core files. - -1. Run `composer update drupal/core --with-dependencies` to update Drupal Core and its dependencies. -1. Run `git diff` to determine if any of the scaffolding files have changed. - Review the files for any changes and restore any customizations to - `.htaccess` or `robots.txt`. -1. Commit everything all together in a single commit, so `web` will remain in - sync with the `core` when checking out branches or running `git bisect`. -1. In the event that there are non-trivial conflicts in step 2, you may wish - to perform these steps on a separate branch, and use `git merge` to combine the - updated core files with your customized files. This facilitates the use - of a [three-way merge tool such as kdiff3](http://www.gitshah.com/2010/12/how-to-setup-kdiff-as-diff-tool-for-git.html). This setup is not necessary if your changes are simple; - keeping all of your modifications at the beginning or end of the file is a - good strategy to keep merges easy. - -## FAQ - -### Should I commit the contrib modules I download? - -Composer recommends **no**. They provide [argumentation against but also -workarounds if a project decides to do it anyway](https://getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md). - -### Should I commit the scaffolding files? - -The [drupal-scaffold](https://github.com/drupal-composer/drupal-scaffold) plugin can download the scaffold files (like -index.php, update.php, …) to the web/ directory of your project. If you have not customized those files you could choose -to not check them into your version control system (e.g. git). If that is the case for your project it might be -convenient to automatically run the drupal-scaffold plugin after every install or update of your project. You can -achieve that by registering `@drupal-scaffold` as a post-install and post-update command in your composer.json: - -```json -"scripts": { - "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold", - "post-install-cmd": [ - "@drupal-scaffold", - "..." - ], - "post-update-cmd": [ - "@drupal-scaffold", - "..." - ] -}, -``` -### How can I apply patches to downloaded modules? - -If you need to apply patches (depending on the project being modified, a pull -request is often a better solution), you can do so with the -[composer-patches](https://github.com/cweagans/composer-patches) plugin. - -To add a patch to drupal module foobar insert the patches section in the extra -section of composer.json: -```json -"extra": { - "patches": { - "drupal/foobar": { - "Patch description": "URL to patch" - } - } -} -``` diff --git a/tests/files/drupal8-base/composer.json b/tests/files/drupal8-base/composer.json deleted file mode 100644 index fe077022a1..0000000000 --- a/tests/files/drupal8-base/composer.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "name": "amazeeio/drupal-project", - "description": "Project template for Drupal 8 projects with composer hosted on amazee.io", - "type": "project", - "license": "GPL-2.0+", - "authors": [ - { - "name": "Michael Schmid michael@amazee.io", - "role": "CTO" - } - ], - "repositories": [ - { - "type": "composer", - "url": "https://packages.drupal.org/8" - } - ], - "require": { - "composer/installers": "^1.2", - "drupal-composer/drupal-scaffold": "^2.2", - "cweagans/composer-patches": "~1.0", - "drupal/core": "~8.0", - "drush/drush": "8.4.8", - "drupal/console": "~1.0", - "drupal/redis": "^1.0" - }, - "require-dev": { - "behat/mink": "~1.7", - "behat/mink-goutte-driver": "~1.2", - "jcalderonzumba/gastonjs": "~1.0.2", - "jcalderonzumba/mink-phantomjs-driver": "~0.3.1", - "mikey179/vfsstream": "~1.2", - "phpunit/phpunit": "~4.8", - "symfony/css-selector": "~2.8" - }, - "conflict": { - "drupal/drupal": "*" - }, - "minimum-stability": "dev", - "prefer-stable": true, - "autoload": { - "classmap": [ - "scripts/composer/ScriptHandler.php" - ] - }, - "scripts": { - "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold", - "pre-install-cmd": [ - "DrupalProject\\composer\\ScriptHandler::checkComposerVersion" - ], - "pre-update-cmd": [ - "DrupalProject\\composer\\ScriptHandler::checkComposerVersion" - ], - "post-install-cmd": [ - "DrupalProject\\composer\\ScriptHandler::createRequiredFiles" - ], - "post-update-cmd": [ - "DrupalProject\\composer\\ScriptHandler::createRequiredFiles" - ] - }, - "extra": { - "installer-paths": { - "web/core": ["type:drupal-core"], - "web/libraries/{$name}": ["type:drupal-library"], - "web/modules/contrib/{$name}": ["type:drupal-module"], - "web/profiles/contrib/{$name}": ["type:drupal-profile"], - "web/themes/contrib/{$name}": ["type:drupal-theme"], - "drush/contrib/{$name}": ["type:drupal-drush"] - }, - "drupal-scaffold": { - "excludes": [ - "sites/development.services.yml", - "sites/example.settings.local.php" - ] - } - } -} diff --git a/tests/files/drupal8-base/composer.lock b/tests/files/drupal8-base/composer.lock deleted file mode 100644 index ce7b657828..0000000000 --- a/tests/files/drupal8-base/composer.lock +++ /dev/null @@ -1,7856 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "ecf920e8b0ad7ace9efe8552c10f9622", - "packages": [ - { - "name": "alchemy/zippy", - "version": "0.4.9", - "source": { - "type": "git", - "url": "https://github.com/alchemy-fr/Zippy.git", - "reference": "59fbeefb9a249122867ef25e53addfcce31850d7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/alchemy-fr/Zippy/zipball/59fbeefb9a249122867ef25e53addfcce31850d7", - "reference": "59fbeefb9a249122867ef25e53addfcce31850d7", - "shasum": "" - }, - "require": { - "doctrine/collections": "~1.0", - "php": ">=5.5", - "symfony/filesystem": "^2.0.5 || ^3.0 || ^4.0", - "symfony/polyfill-mbstring": "^1.3", - "symfony/process": "^2.1 || ^3.0 || ^4.0" - }, - "require-dev": { - "ext-zip": "*", - "guzzle/guzzle": "~3.0", - "guzzlehttp/guzzle": "^6.0", - "phpunit/phpunit": "^4.0 || ^5.0", - "symfony/finder": "^2.0.5 || ^3.0 || ^4.0" - }, - "suggest": { - "ext-zip": "To use the ZipExtensionAdapter", - "guzzle/guzzle": "To use the GuzzleTeleporter with Guzzle 3", - "guzzlehttp/guzzle": "To use the GuzzleTeleporter with Guzzle 6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.4.x-dev" - } - }, - "autoload": { - "psr-4": { - "Alchemy\\Zippy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Alchemy", - "email": "dev.team@alchemy.fr", - "homepage": "http://www.alchemy.fr/" - } - ], - "description": "Zippy, the archive manager companion", - "keywords": [ - "bzip", - "compression", - "tar", - "zip" - ], - "time": "2018-02-22T13:58:36+00:00" - }, - { - "name": "asm89/stack-cors", - "version": "1.3.0", - "source": { - "type": "git", - "url": "https://github.com/asm89/stack-cors.git", - "reference": "b9c31def6a83f84b4d4a40d35996d375755f0e08" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/asm89/stack-cors/zipball/b9c31def6a83f84b4d4a40d35996d375755f0e08", - "reference": "b9c31def6a83f84b4d4a40d35996d375755f0e08", - "shasum": "" - }, - "require": { - "php": ">=5.5.9", - "symfony/http-foundation": "~2.7|~3.0|~4.0|~5.0", - "symfony/http-kernel": "~2.7|~3.0|~4.0|~5.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.0 || ^4.8.10", - "squizlabs/php_codesniffer": "^2.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-dev" - } - }, - "autoload": { - "psr-4": { - "Asm89\\Stack\\": "src/Asm89/Stack/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Alexander", - "email": "iam.asm89@gmail.com" - } - ], - "description": "Cross-origin resource sharing library and stack middleware", - "homepage": "https://github.com/asm89/stack-cors", - "keywords": [ - "cors", - "stack" - ], - "time": "2019-12-24T22:41:47+00:00" - }, - { - "name": "composer/installers", - "version": "v1.12.0", - "source": { - "type": "git", - "url": "https://github.com/composer/installers.git", - "reference": "d20a64ed3c94748397ff5973488761b22f6d3f19" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/installers/zipball/d20a64ed3c94748397ff5973488761b22f6d3f19", - "reference": "d20a64ed3c94748397ff5973488761b22f6d3f19", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0" - }, - "replace": { - "roundcube/plugin-installer": "*", - "shama/baton": "*" - }, - "require-dev": { - "composer/composer": "1.6.* || ^2.0", - "composer/semver": "^1 || ^3", - "phpstan/phpstan": "^0.12.55", - "phpstan/phpstan-phpunit": "^0.12.16", - "symfony/phpunit-bridge": "^4.2 || ^5", - "symfony/process": "^2.3" - }, - "type": "composer-plugin", - "extra": { - "class": "Composer\\Installers\\Plugin", - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Installers\\": "src/Composer/Installers" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kyle Robinson Young", - "email": "kyle@dontkry.com", - "homepage": "https://github.com/shama" - } - ], - "description": "A multi-framework Composer library installer", - "homepage": "https://composer.github.io/installers/", - "keywords": [ - "Craft", - "Dolibarr", - "Eliasis", - "Hurad", - "ImageCMS", - "Kanboard", - "Lan Management System", - "MODX Evo", - "MantisBT", - "Mautic", - "Maya", - "OXID", - "Plentymarkets", - "Porto", - "RadPHP", - "SMF", - "Starbug", - "Thelia", - "Whmcs", - "WolfCMS", - "agl", - "aimeos", - "annotatecms", - "attogram", - "bitrix", - "cakephp", - "chef", - "cockpit", - "codeigniter", - "concrete5", - "croogo", - "dokuwiki", - "drupal", - "eZ Platform", - "elgg", - "expressionengine", - "fuelphp", - "grav", - "installer", - "itop", - "joomla", - "known", - "kohana", - "laravel", - "lavalite", - "lithium", - "magento", - "majima", - "mako", - "mediawiki", - "miaoxing", - "modulework", - "modx", - "moodle", - "osclass", - "pantheon", - "phpbb", - "piwik", - "ppi", - "processwire", - "puppet", - "pxcms", - "reindex", - "roundcube", - "shopware", - "silverstripe", - "sydes", - "sylius", - "symfony", - "tastyigniter", - "typo3", - "wordpress", - "yawik", - "zend", - "zikula" - ], - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2021-09-13T08:19:44+00:00" - }, - { - "name": "composer/semver", - "version": "1.7.2", - "source": { - "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/647490bbcaf7fc4891c58f47b825eb99d19c377a", - "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.5 || ^5.0.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Semver\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2020-12-03T15:47:16+00:00" - }, - { - "name": "consolidation/annotated-command", - "version": "2.12.2", - "source": { - "type": "git", - "url": "https://github.com/consolidation/annotated-command.git", - "reference": "2472a23610cba1d86dcb783a81a21259473b059e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/2472a23610cba1d86dcb783a81a21259473b059e", - "reference": "2472a23610cba1d86dcb783a81a21259473b059e", - "shasum": "" - }, - "require": { - "consolidation/output-formatters": "^3.5.1", - "php": ">=5.4.5", - "psr/log": "^1", - "symfony/console": "^2.8|^3|^4", - "symfony/event-dispatcher": "^2.5|^3|^4", - "symfony/finder": "^2.5|^3|^4|^5" - }, - "require-dev": { - "g1a/composer-test-scenarios": "^3", - "php-coveralls/php-coveralls": "^1", - "phpunit/phpunit": "^6", - "squizlabs/php_codesniffer": "^2.7" - }, - "type": "library", - "extra": { - "scenarios": { - "finder5": { - "require": { - "symfony/finder": "^5" - }, - "config": { - "platform": { - "php": "7.2.5" - } - } - }, - "symfony4": { - "require": { - "symfony/console": "^4.0" - }, - "config": { - "platform": { - "php": "7.1.3" - } - } - }, - "symfony2": { - "require": { - "symfony/console": "^2.8" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36" - }, - "remove": [ - "php-coveralls/php-coveralls" - ], - "config": { - "platform": { - "php": "5.4.8" - } - }, - "scenario-options": { - "create-lockfile": "false" - } - }, - "phpunit4": { - "require-dev": { - "phpunit/phpunit": "^4.8.36" - }, - "remove": [ - "php-coveralls/php-coveralls" - ], - "config": { - "platform": { - "php": "5.4.8" - } - } - } - }, - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\AnnotatedCommand\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "description": "Initialize Symfony Console commands from annotated command class methods.", - "time": "2022-01-03T00:23:44+00:00" - }, - { - "name": "consolidation/output-formatters", - "version": "3.5.1", - "source": { - "type": "git", - "url": "https://github.com/consolidation/output-formatters.git", - "reference": "0d38f13051ef05c223a2bb8e962d668e24785196" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/0d38f13051ef05c223a2bb8e962d668e24785196", - "reference": "0d38f13051ef05c223a2bb8e962d668e24785196", - "shasum": "" - }, - "require": { - "dflydev/dot-access-data": "^1.1.0", - "php": ">=5.4.0", - "symfony/console": "^2.8|^3|^4", - "symfony/finder": "^2.5|^3|^4|^5" - }, - "require-dev": { - "g1a/composer-test-scenarios": "^3", - "php-coveralls/php-coveralls": "^1", - "phpunit/phpunit": "^5.7.27", - "squizlabs/php_codesniffer": "^2.7", - "symfony/var-dumper": "^2.8|^3|^4", - "victorjonsson/markdowndocs": "^1.3" - }, - "suggest": { - "symfony/var-dumper": "For using the var_dump formatter" - }, - "type": "library", - "extra": { - "scenarios": { - "finder5": { - "require": { - "symfony/finder": "^5" - }, - "config": { - "platform": { - "php": "7.2.5" - } - } - }, - "symfony4": { - "require": { - "symfony/console": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^6" - }, - "config": { - "platform": { - "php": "7.1.3" - } - } - }, - "symfony3": { - "require": { - "symfony/console": "^3.4", - "symfony/finder": "^3.4", - "symfony/var-dumper": "^3.4" - }, - "config": { - "platform": { - "php": "5.6.32" - } - } - }, - "symfony2": { - "require": { - "symfony/console": "^2.8" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36" - }, - "remove": [ - "php-coveralls/php-coveralls" - ], - "config": { - "platform": { - "php": "5.4.8" - } - }, - "scenario-options": { - "create-lockfile": "false" - } - } - }, - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\OutputFormatters\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "description": "Format text by applying transformations provided by plug-in formatters.", - "time": "2020-10-11T04:15:32+00:00" - }, - { - "name": "cweagans/composer-patches", - "version": "1.7.2", - "source": { - "type": "git", - "url": "https://github.com/cweagans/composer-patches.git", - "reference": "e9969cfc0796e6dea9b4e52f77f18e1065212871" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cweagans/composer-patches/zipball/e9969cfc0796e6dea9b4e52f77f18e1065212871", - "reference": "e9969cfc0796e6dea9b4e52f77f18e1065212871", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=5.3.0" - }, - "require-dev": { - "composer/composer": "~1.0 || ~2.0", - "phpunit/phpunit": "~4.6" - }, - "type": "composer-plugin", - "extra": { - "class": "cweagans\\Composer\\Patches" - }, - "autoload": { - "psr-4": { - "cweagans\\Composer\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Cameron Eagans", - "email": "me@cweagans.net" - } - ], - "description": "Provides a way to patch Composer packages.", - "time": "2022-01-25T19:21:20+00:00" - }, - { - "name": "dflydev/dot-access-configuration", - "version": "v1.0.3", - "source": { - "type": "git", - "url": "https://github.com/dflydev/dflydev-dot-access-configuration.git", - "reference": "2e6eb0c8b8830b26bb23defcfc38d4276508fc49" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-configuration/zipball/2e6eb0c8b8830b26bb23defcfc38d4276508fc49", - "reference": "2e6eb0c8b8830b26bb23defcfc38d4276508fc49", - "shasum": "" - }, - "require": { - "dflydev/dot-access-data": "1.*", - "dflydev/placeholder-resolver": "1.*", - "php": ">=5.3.2" - }, - "require-dev": { - "symfony/yaml": "~2.1" - }, - "suggest": { - "symfony/yaml": "Required for using the YAML Configuration Builders" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-0": { - "Dflydev\\DotAccessConfiguration": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Dragonfly Development Inc.", - "email": "info@dflydev.com", - "homepage": "http://dflydev.com" - }, - { - "name": "Beau Simensen", - "email": "beau@dflydev.com", - "homepage": "http://beausimensen.com" - } - ], - "description": "Given a deep data structure representing a configuration, access configuration by dot notation.", - "homepage": "https://github.com/dflydev/dflydev-dot-access-configuration", - "keywords": [ - "config", - "configuration" - ], - "time": "2018-09-08T23:00:17+00:00" - }, - { - "name": "dflydev/dot-access-data", - "version": "v1.1.0", - "source": { - "type": "git", - "url": "https://github.com/dflydev/dflydev-dot-access-data.git", - "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/3fbd874921ab2c041e899d044585a2ab9795df8a", - "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-0": { - "Dflydev\\DotAccessData": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Dragonfly Development Inc.", - "email": "info@dflydev.com", - "homepage": "http://dflydev.com" - }, - { - "name": "Beau Simensen", - "email": "beau@dflydev.com", - "homepage": "http://beausimensen.com" - }, - { - "name": "Carlos Frutos", - "email": "carlos@kiwing.it", - "homepage": "https://github.com/cfrutos" - } - ], - "description": "Given a deep data structure, access data by dot notation.", - "homepage": "https://github.com/dflydev/dflydev-dot-access-data", - "keywords": [ - "access", - "data", - "dot", - "notation" - ], - "time": "2017-01-20T21:14:22+00:00" - }, - { - "name": "dflydev/placeholder-resolver", - "version": "v1.0.3", - "source": { - "type": "git", - "url": "https://github.com/dflydev/dflydev-placeholder-resolver.git", - "reference": "d0161b4be1e15838327b01b21d0149f382d69906" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-placeholder-resolver/zipball/d0161b4be1e15838327b01b21d0149f382d69906", - "reference": "d0161b4be1e15838327b01b21d0149f382d69906", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-0": { - "Dflydev\\PlaceholderResolver": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Dragonfly Development Inc.", - "email": "info@dflydev.com", - "homepage": "http://dflydev.com" - }, - { - "name": "Beau Simensen", - "email": "beau@dflydev.com", - "homepage": "http://beausimensen.com" - } - ], - "description": "Given a data source representing key => value pairs, resolve placeholders like ${foo.bar} to the value associated with the 'foo.bar' key in the data source.", - "homepage": "https://github.com/dflydev/dflydev-placeholder-resolver", - "keywords": [ - "placeholder", - "resolver" - ], - "time": "2021-12-03T16:48:58+00:00" - }, - { - "name": "doctrine/annotations", - "version": "1.13.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "648b0343343565c4a056bfc8392201385e8d89f0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/648b0343343565c4a056bfc8392201385e8d89f0", - "reference": "648b0343343565c4a056bfc8392201385e8d89f0", - "shasum": "" - }, - "require": { - "doctrine/lexer": "1.*", - "ext-tokenizer": "*", - "php": "^7.1 || ^8.0", - "psr/cache": "^1 || ^2 || ^3" - }, - "require-dev": { - "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^1.4.10 || ^1.8.0", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", - "symfony/cache": "^4.4 || ^5.2", - "vimeo/psalm": "^4.10" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Docblock Annotations Parser", - "homepage": "https://www.doctrine-project.org/projects/annotations.html", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "time": "2022-07-02T10:48:51+00:00" - }, - { - "name": "doctrine/cache", - "version": "1.13.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "56cd022adb5514472cb144c087393c1821911d09" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/56cd022adb5514472cb144c087393c1821911d09", - "reference": "56cd022adb5514472cb144c087393c1821911d09", - "shasum": "" - }, - "require": { - "php": "~7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": ">2.2,<2.4" - }, - "require-dev": { - "alcaeus/mongo-php-adapter": "^1.1", - "cache/integration-tests": "dev-master", - "doctrine/coding-standard": "^9", - "mongodb/mongodb": "^1.1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "predis/predis": "~1.0", - "psr/cache": "^1.0 || ^2.0 || ^3.0", - "symfony/cache": "^4.4 || ^5.4 || ^6", - "symfony/var-exporter": "^4.4 || ^5.4 || ^6" - }, - "suggest": { - "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", - "homepage": "https://www.doctrine-project.org/projects/cache.html", - "keywords": [ - "abstraction", - "apcu", - "cache", - "caching", - "couchdb", - "memcached", - "php", - "redis", - "xcache" - ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", - "type": "tidelift" - } - ], - "time": "2022-05-20T20:06:54+00:00" - }, - { - "name": "doctrine/collections", - "version": "1.8.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/collections.git", - "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e", - "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^0.5.3 || ^1", - "php": "^7.1.3 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9.0 || ^10.0", - "phpstan/phpstan": "^1.4.8", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5", - "vimeo/psalm": "^4.22" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", - "homepage": "https://www.doctrine-project.org/projects/collections.html", - "keywords": [ - "array", - "collections", - "iterators", - "php" - ], - "time": "2022-09-01T20:12:10+00:00" - }, - { - "name": "doctrine/common", - "version": "2.13.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/common.git", - "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/f3812c026e557892c34ef37f6ab808a6b567da7f", - "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f", - "shasum": "" - }, - "require": { - "doctrine/annotations": "^1.0", - "doctrine/cache": "^1.0", - "doctrine/collections": "^1.0", - "doctrine/event-manager": "^1.0", - "doctrine/inflector": "^1.0", - "doctrine/lexer": "^1.0", - "doctrine/persistence": "^1.3.3", - "doctrine/reflection": "^1.0", - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^1.0", - "phpstan/phpstan": "^0.11", - "phpstan/phpstan-phpunit": "^0.11", - "phpunit/phpunit": "^7.0", - "squizlabs/php_codesniffer": "^3.0", - "symfony/phpunit-bridge": "^4.0.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.11.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.", - "homepage": "https://www.doctrine-project.org/projects/common.html", - "keywords": [ - "common", - "doctrine", - "php" - ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon", - "type": "tidelift" - } - ], - "time": "2020-06-05T16:46:05+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "v1.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", - "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", - "shasum": "" - }, - "require": { - "php": "^7.1|^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9", - "phpunit/phpunit": "^7.5|^8.5|^9.5", - "psr/log": "^1|^2|^3" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "time": "2022-05-02T15:47:09+00:00" - }, - { - "name": "doctrine/event-manager", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/event-manager.git", - "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520", - "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^0.5.3 || ^1", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": "<2.9" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^10", - "phpstan/phpstan": "~1.4.10 || ^1.8.8", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.24" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", - "homepage": "https://www.doctrine-project.org/projects/event-manager.html", - "keywords": [ - "event", - "event dispatcher", - "event manager", - "event system", - "events" - ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", - "type": "tidelift" - } - ], - "time": "2022-10-12T20:51:15+00:00" - }, - { - "name": "doctrine/inflector", - "version": "1.4.4", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", - "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^8.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector", - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", - "homepage": "https://www.doctrine-project.org/projects/inflector.html", - "keywords": [ - "inflection", - "inflector", - "lowercase", - "manipulation", - "php", - "plural", - "singular", - "strings", - "uppercase", - "words" - ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", - "type": "tidelift" - } - ], - "time": "2021-04-16T17:34:40+00:00" - }, - { - "name": "doctrine/lexer", - "version": "1.2.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "^1.3", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.11" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "https://www.doctrine-project.org/projects/lexer.html", - "keywords": [ - "annotations", - "docblock", - "lexer", - "parser", - "php" - ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", - "type": "tidelift" - } - ], - "time": "2022-02-28T11:07:21+00:00" - }, - { - "name": "doctrine/persistence", - "version": "1.3.8", - "source": { - "type": "git", - "url": "https://github.com/doctrine/persistence.git", - "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/7a6eac9fb6f61bba91328f15aa7547f4806ca288", - "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288", - "shasum": "" - }, - "require": { - "doctrine/annotations": "^1.0", - "doctrine/cache": "^1.0", - "doctrine/collections": "^1.0", - "doctrine/event-manager": "^1.0", - "doctrine/reflection": "^1.2", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": "<2.10@dev" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "vimeo/psalm": "^3.11" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common", - "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", - "homepage": "https://doctrine-project.org/projects/persistence.html", - "keywords": [ - "mapper", - "object", - "odm", - "orm", - "persistence" - ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fpersistence", - "type": "tidelift" - } - ], - "time": "2020-06-20T12:56:16+00:00" - }, - { - "name": "doctrine/reflection", - "version": "1.2.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/reflection.git", - "reference": "1034e5e71f89978b80f9c1570e7226f6c3b9b6fb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/reflection/zipball/1034e5e71f89978b80f9c1570e7226f6c3b9b6fb", - "reference": "1034e5e71f89978b80f9c1570e7226f6c3b9b6fb", - "shasum": "" - }, - "require": { - "doctrine/annotations": "^1.0", - "ext-tokenizer": "*", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": "<2.9" - }, - "require-dev": { - "doctrine/coding-standard": "^9", - "doctrine/common": "^3.3", - "phpstan/phpstan": "^1.4.10", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.", - "homepage": "https://www.doctrine-project.org/projects/reflection.html", - "keywords": [ - "reflection", - "static" - ], - "abandoned": "roave/better-reflection", - "time": "2022-05-31T18:46:25+00:00" - }, - { - "name": "drupal-composer/drupal-scaffold", - "version": "2.6.1", - "source": { - "type": "git", - "url": "https://github.com/drupal-composer/drupal-scaffold.git", - "reference": "13c1ffc7dd4925cb03707759128b85c0cd6276f8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drupal-composer/drupal-scaffold/zipball/13c1ffc7dd4925cb03707759128b85c0cd6276f8", - "reference": "13c1ffc7dd4925cb03707759128b85c0cd6276f8", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0.0", - "composer/semver": "^1.4", - "php": "^5.5.9|>=7.0.8" - }, - "require-dev": { - "composer/composer": "dev-master", - "g1a/composer-test-scenarios": "^2.1.0", - "phpunit/phpunit": "^6", - "squizlabs/php_codesniffer": "^2.8" - }, - "type": "composer-plugin", - "extra": { - "class": "DrupalComposer\\DrupalScaffold\\Plugin", - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "DrupalComposer\\DrupalScaffold\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "description": "Composer Plugin for updating the Drupal scaffold files when using drupal/core", - "abandoned": "drupal/core-composer-scaffold", - "time": "2019-03-30T10:41:38+00:00" - }, - { - "name": "drupal/console", - "version": "1.9.4", - "source": { - "type": "git", - "url": "https://github.com/hechoendrupal/drupal-console.git", - "reference": "04522b687b2149dc1f808599e716421a20d50a5b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hechoendrupal/drupal-console/zipball/04522b687b2149dc1f808599e716421a20d50a5b", - "reference": "04522b687b2149dc1f808599e716421a20d50a5b", - "shasum": "" - }, - "require": { - "alchemy/zippy": "~0.4", - "composer/installers": "~1.0", - "doctrine/annotations": "^1.2", - "doctrine/collections": "^1.3", - "drupal/console-core": "1.9.4", - "drupal/console-extend-plugin": "~0", - "php": "^5.5.9 || ^7.0", - "psy/psysh": "0.6.* || ~0.8", - "symfony/css-selector": "~2.8|~3.0", - "symfony/dom-crawler": "~2.8|~3.0", - "symfony/http-foundation": "~2.8|~3.0" - }, - "suggest": { - "symfony/thanks": "Thank your favorite PHP projects on GitHub using the CLI", - "vlucas/phpdotenv": "Loads environment variables from .env to getenv(), $_ENV and $_SERVER automagically" - }, - "bin": [ - "bin/drupal" - ], - "type": "library", - "autoload": { - "psr-4": { - "Drupal\\Console\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "David Flores", - "email": "dmousex@gmail.com", - "homepage": "http://dmouse.net" - }, - { - "name": "Jesus Manuel Olivas", - "email": "jesus.olivas@gmail.com", - "homepage": "http://jmolivas.com" - }, - { - "name": "Eduardo Garcia", - "email": "enzo@enzolutions.com", - "homepage": "http://enzolutions.com/" - }, - { - "name": "Omar Aguirre", - "email": "omersguchigu@gmail.com" - }, - { - "name": "Drupal Console Contributors", - "homepage": "https://github.com/hechoendrupal/drupal-console/graphs/contributors" - } - ], - "description": "The Drupal CLI. A tool to generate boilerplate code, interact with and debug Drupal.", - "homepage": "http://drupalconsole.com/", - "keywords": [ - "console", - "development", - "drupal", - "symfony" - ], - "time": "2019-11-11T19:35:01+00:00" - }, - { - "name": "drupal/console-core", - "version": "1.9.4", - "source": { - "type": "git", - "url": "https://github.com/hechoendrupal/drupal-console-core.git", - "reference": "cc6f50c6ac8199140224347c862df75fd2d2f5ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hechoendrupal/drupal-console-core/zipball/cc6f50c6ac8199140224347c862df75fd2d2f5ed", - "reference": "cc6f50c6ac8199140224347c862df75fd2d2f5ed", - "shasum": "" - }, - "require": { - "dflydev/dot-access-configuration": "^1.0", - "drupal/console-en": "1.9.4", - "guzzlehttp/guzzle": "~6.1", - "php": "^5.5.9 || ^7.0", - "stecman/symfony-console-completion": "~0.7", - "symfony/config": "~2.8|~3.0", - "symfony/console": "~2.8|~3.0", - "symfony/debug": "~2.8|~3.0", - "symfony/dependency-injection": "~2.8|~3.0", - "symfony/event-dispatcher": "~2.8|~3.0", - "symfony/filesystem": "~2.8|~3.0", - "symfony/finder": "~2.8|~3.0", - "symfony/process": "~2.8|~3.0", - "symfony/translation": "~2.8|~3.0", - "symfony/yaml": "~2.8|~3.0", - "twig/twig": "^1.23.1", - "webflo/drupal-finder": "^1.0", - "webmozart/path-util": "^2.3" - }, - "type": "library", - "autoload": { - "files": [ - "src/functions.php" - ], - "psr-4": { - "Drupal\\Console\\Core\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "David Flores", - "email": "dmousex@gmail.com", - "homepage": "http://dmouse.net" - }, - { - "name": "Jesus Manuel Olivas", - "email": "jesus.olivas@gmail.com", - "homepage": "http://jmolivas.com" - }, - { - "name": "Eduardo Garcia", - "email": "enzo@enzolutions.com", - "homepage": "http://enzolutions.com/" - }, - { - "name": "Omar Aguirre", - "email": "omersguchigu@gmail.com" - }, - { - "name": "Drupal Console Contributors", - "homepage": "https://github.com/hechoendrupal/DrupalConsole/graphs/contributors" - } - ], - "description": "Drupal Console Core", - "homepage": "http://drupalconsole.com/", - "keywords": [ - "console", - "development", - "drupal", - "symfony" - ], - "time": "2019-11-11T19:26:28+00:00" - }, - { - "name": "drupal/console-en", - "version": "1.9.4", - "source": { - "type": "git", - "url": "https://github.com/hechoendrupal/drupal-console-en.git", - "reference": "30813a832fdb1244e84cbcc012cd103d5e9d673d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hechoendrupal/drupal-console-en/zipball/30813a832fdb1244e84cbcc012cd103d5e9d673d", - "reference": "30813a832fdb1244e84cbcc012cd103d5e9d673d", - "shasum": "" - }, - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "David Flores", - "email": "dmousex@gmail.com", - "homepage": "http://dmouse.net" - }, - { - "name": "Jesus Manuel Olivas", - "email": "jesus.olivas@gmail.com", - "homepage": "http://jmolivas.com" - }, - { - "name": "Eduardo Garcia", - "email": "enzo@enzolutions.com", - "homepage": "http://enzolutions.com/" - }, - { - "name": "Omar Aguirre", - "email": "omersguchigu@gmail.com" - }, - { - "name": "Drupal Console Contributors", - "homepage": "https://github.com/hechoendrupal/DrupalConsole/graphs/contributors" - } - ], - "description": "Drupal Console English Language", - "homepage": "http://drupalconsole.com/", - "keywords": [ - "console", - "development", - "drupal", - "symfony" - ], - "time": "2019-10-07T23:45:30+00:00" - }, - { - "name": "drupal/console-extend-plugin", - "version": "0.9.5", - "source": { - "type": "git", - "url": "https://github.com/hechoendrupal/drupal-console-extend-plugin.git", - "reference": "eff6da99cfb5fe1fc60990672d2667c402eb3585" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hechoendrupal/drupal-console-extend-plugin/zipball/eff6da99cfb5fe1fc60990672d2667c402eb3585", - "reference": "eff6da99cfb5fe1fc60990672d2667c402eb3585", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "composer/installers": "^1.2", - "symfony/finder": "~3.0|^4.4", - "symfony/yaml": "~3.0|^4.4" - }, - "type": "composer-plugin", - "extra": { - "class": "Drupal\\Console\\Composer\\Plugin\\Extender" - }, - "autoload": { - "psr-4": { - "Drupal\\Console\\Composer\\Plugin\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0+" - ], - "authors": [ - { - "name": "Jesus Manuel Olivas", - "email": "jesus.olivas@gmail.com" - } - ], - "description": "Drupal Console Extend Plugin", - "time": "2020-11-18T00:15:28+00:00" - }, - { - "name": "drupal/core", - "version": "8.9.20", - "source": { - "type": "git", - "url": "https://github.com/drupal/core.git", - "reference": "39e2e1c32498338921923af66a90cb4a23a5b389" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/39e2e1c32498338921923af66a90cb4a23a5b389", - "reference": "39e2e1c32498338921923af66a90cb4a23a5b389", - "shasum": "" - }, - "require": { - "asm89/stack-cors": "^1.1", - "composer/semver": "^1.0", - "doctrine/annotations": "^1.4", - "doctrine/common": "^2.7", - "easyrdf/easyrdf": "^0.9", - "egulias/email-validator": "^2.0", - "ext-date": "*", - "ext-dom": "*", - "ext-filter": "*", - "ext-gd": "*", - "ext-hash": "*", - "ext-json": "*", - "ext-pcre": "*", - "ext-pdo": "*", - "ext-session": "*", - "ext-simplexml": "*", - "ext-spl": "*", - "ext-tokenizer": "*", - "ext-xml": "*", - "guzzlehttp/guzzle": "^6.3", - "laminas/laminas-diactoros": "^1.8", - "laminas/laminas-feed": "^2.12", - "masterminds/html5": "^2.1", - "pear/archive_tar": "^1.4.14", - "php": "^7.0.8", - "psr/log": "^1.0", - "stack/builder": "^1.0", - "symfony-cmf/routing": "^1.4", - "symfony/class-loader": "~3.4.0", - "symfony/console": "~3.4.0", - "symfony/dependency-injection": "~3.4.26", - "symfony/event-dispatcher": "~3.4.0", - "symfony/http-foundation": "~3.4.35", - "symfony/http-kernel": "~3.4.14", - "symfony/polyfill-iconv": "^1.0", - "symfony/process": "~3.4.0", - "symfony/psr-http-message-bridge": "^1.1.2", - "symfony/routing": "~3.4.0", - "symfony/serializer": "~3.4.0", - "symfony/translation": "~3.4.0", - "symfony/validator": "~3.4.0", - "symfony/yaml": "~3.4.5", - "twig/twig": "^1.38.2", - "typo3/phar-stream-wrapper": "^3.1.3" - }, - "conflict": { - "drupal/pathauto": "<1.6", - "drush/drush": "<8.1.10" - }, - "replace": { - "drupal/action": "self.version", - "drupal/aggregator": "self.version", - "drupal/automated_cron": "self.version", - "drupal/ban": "self.version", - "drupal/bartik": "self.version", - "drupal/basic_auth": "self.version", - "drupal/big_pipe": "self.version", - "drupal/block": "self.version", - "drupal/block_content": "self.version", - "drupal/block_place": "self.version", - "drupal/book": "self.version", - "drupal/breakpoint": "self.version", - "drupal/ckeditor": "self.version", - "drupal/claro": "self.version", - "drupal/classy": "self.version", - "drupal/color": "self.version", - "drupal/comment": "self.version", - "drupal/config": "self.version", - "drupal/config_translation": "self.version", - "drupal/contact": "self.version", - "drupal/content_moderation": "self.version", - "drupal/content_translation": "self.version", - "drupal/contextual": "self.version", - "drupal/core-annotation": "self.version", - "drupal/core-assertion": "self.version", - "drupal/core-bridge": "self.version", - "drupal/core-class-finder": "self.version", - "drupal/core-datetime": "self.version", - "drupal/core-dependency-injection": "self.version", - "drupal/core-diff": "self.version", - "drupal/core-discovery": "self.version", - "drupal/core-event-dispatcher": "self.version", - "drupal/core-file-cache": "self.version", - "drupal/core-file-security": "self.version", - "drupal/core-filesystem": "self.version", - "drupal/core-gettext": "self.version", - "drupal/core-graph": "self.version", - "drupal/core-http-foundation": "self.version", - "drupal/core-php-storage": "self.version", - "drupal/core-plugin": "self.version", - "drupal/core-proxy-builder": "self.version", - "drupal/core-render": "self.version", - "drupal/core-serialization": "self.version", - "drupal/core-transliteration": "self.version", - "drupal/core-utility": "self.version", - "drupal/core-uuid": "self.version", - "drupal/core-version": "self.version", - "drupal/datetime": "self.version", - "drupal/datetime_range": "self.version", - "drupal/dblog": "self.version", - "drupal/dynamic_page_cache": "self.version", - "drupal/editor": "self.version", - "drupal/entity_reference": "self.version", - "drupal/field": "self.version", - "drupal/field_layout": "self.version", - "drupal/field_ui": "self.version", - "drupal/file": "self.version", - "drupal/filter": "self.version", - "drupal/forum": "self.version", - "drupal/hal": "self.version", - "drupal/help": "self.version", - "drupal/help_topics": "self.version", - "drupal/history": "self.version", - "drupal/image": "self.version", - "drupal/inline_form_errors": "self.version", - "drupal/jsonapi": "self.version", - "drupal/language": "self.version", - "drupal/layout_builder": "self.version", - "drupal/layout_discovery": "self.version", - "drupal/link": "self.version", - "drupal/locale": "self.version", - "drupal/media": "self.version", - "drupal/media_library": "self.version", - "drupal/menu_link_content": "self.version", - "drupal/menu_ui": "self.version", - "drupal/migrate": "self.version", - "drupal/migrate_drupal": "self.version", - "drupal/migrate_drupal_multilingual": "self.version", - "drupal/migrate_drupal_ui": "self.version", - "drupal/minimal": "self.version", - "drupal/node": "self.version", - "drupal/options": "self.version", - "drupal/page_cache": "self.version", - "drupal/path": "self.version", - "drupal/path_alias": "self.version", - "drupal/quickedit": "self.version", - "drupal/rdf": "self.version", - "drupal/responsive_image": "self.version", - "drupal/rest": "self.version", - "drupal/search": "self.version", - "drupal/serialization": "self.version", - "drupal/settings_tray": "self.version", - "drupal/seven": "self.version", - "drupal/shortcut": "self.version", - "drupal/simpletest": "self.version", - "drupal/standard": "self.version", - "drupal/stark": "self.version", - "drupal/statistics": "self.version", - "drupal/syslog": "self.version", - "drupal/system": "self.version", - "drupal/taxonomy": "self.version", - "drupal/telephone": "self.version", - "drupal/text": "self.version", - "drupal/toolbar": "self.version", - "drupal/tour": "self.version", - "drupal/tracker": "self.version", - "drupal/update": "self.version", - "drupal/user": "self.version", - "drupal/views": "self.version", - "drupal/views_ui": "self.version", - "drupal/workflows": "self.version", - "drupal/workspaces": "self.version" - }, - "type": "drupal-core", - "extra": { - "drupal-scaffold": { - "file-mapping": { - "[project-root]/.editorconfig": "assets/scaffold/files/editorconfig", - "[project-root]/.gitattributes": "assets/scaffold/files/gitattributes", - "[web-root]/.csslintrc": "assets/scaffold/files/csslintrc", - "[web-root]/.eslintignore": "assets/scaffold/files/eslintignore", - "[web-root]/.eslintrc.json": "assets/scaffold/files/eslintrc.json", - "[web-root]/.ht.router.php": "assets/scaffold/files/ht.router.php", - "[web-root]/.htaccess": "assets/scaffold/files/htaccess", - "[web-root]/example.gitignore": "assets/scaffold/files/example.gitignore", - "[web-root]/index.php": "assets/scaffold/files/index.php", - "[web-root]/INSTALL.txt": "assets/scaffold/files/drupal.INSTALL.txt", - "[web-root]/README.txt": "assets/scaffold/files/drupal.README.txt", - "[web-root]/robots.txt": "assets/scaffold/files/robots.txt", - "[web-root]/update.php": "assets/scaffold/files/update.php", - "[web-root]/web.config": "assets/scaffold/files/web.config", - "[web-root]/sites/README.txt": "assets/scaffold/files/sites.README.txt", - "[web-root]/sites/development.services.yml": "assets/scaffold/files/development.services.yml", - "[web-root]/sites/example.settings.local.php": "assets/scaffold/files/example.settings.local.php", - "[web-root]/sites/example.sites.php": "assets/scaffold/files/example.sites.php", - "[web-root]/sites/default/default.services.yml": "assets/scaffold/files/default.services.yml", - "[web-root]/sites/default/default.settings.php": "assets/scaffold/files/default.settings.php", - "[web-root]/modules/README.txt": "assets/scaffold/files/modules.README.txt", - "[web-root]/profiles/README.txt": "assets/scaffold/files/profiles.README.txt", - "[web-root]/themes/README.txt": "assets/scaffold/files/themes.README.txt" - } - } - }, - "autoload": { - "psr-4": { - "Drupal\\Core\\": "lib/Drupal/Core", - "Drupal\\Component\\": "lib/Drupal/Component", - "Drupal\\Driver\\": "../drivers/lib/Drupal/Driver" - }, - "classmap": [ - "lib/Drupal.php", - "lib/Drupal/Component/Utility/Timer.php", - "lib/Drupal/Component/Utility/Unicode.php", - "lib/Drupal/Core/Database/Database.php", - "lib/Drupal/Core/DrupalKernel.php", - "lib/Drupal/Core/DrupalKernelInterface.php", - "lib/Drupal/Core/Site/Settings.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "description": "Drupal is an open source content management platform powering millions of websites and applications.", - "time": "2021-11-17T21:24:28+00:00" - }, - { - "name": "drupal/redis", - "version": "1.5.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/redis.git", - "reference": "8.x-1.5" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/redis-8.x-1.5.zip", - "reference": "8.x-1.5", - "shasum": "4283333dc2bf405045765b83ca662acc409a6543" - }, - "require": { - "drupal/core": "^8.8 || ^9" - }, - "suggest": { - "predis/predis": "^1.1.1" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.5", - "datestamp": "1609972488", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - } - }, - "autoload": { - "psr-4": { - "Drupal\\redis\\": "src" - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Berdir", - "homepage": "https://www.drupal.org/user/214652" - }, - { - "name": "pounard", - "homepage": "https://www.drupal.org/user/240164" - } - ], - "description": "Integration of Drupal with the Redis key-value store.", - "homepage": "https://www.drupal.org/project/redis", - "support": { - "source": "https://git.drupalcode.org/project/redis" - } - }, - { - "name": "drush/drush", - "version": "8.4.8", - "source": { - "type": "git", - "url": "https://github.com/drush-ops/drush.git", - "reference": "b377b1896e344085d06bdbf671a465950a164d1e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drush-ops/drush/zipball/b377b1896e344085d06bdbf671a465950a164d1e", - "reference": "b377b1896e344085d06bdbf671a465950a164d1e", - "shasum": "" - }, - "require": { - "consolidation/annotated-command": "^2.12.0", - "consolidation/output-formatters": "~3", - "pear/console_table": "~1.3.1", - "php": ">=5.4.5", - "psr/log": "~1.0", - "psy/psysh": "~0.6", - "symfony/console": "~2.7|^3|^4.4", - "symfony/event-dispatcher": "~2.7|^3|^4.4", - "symfony/finder": "~2.7|^3|^4.4", - "symfony/process": "~2.7|^3|^4.4", - "symfony/var-dumper": "~2.7|^3|^4.4|^5", - "symfony/yaml": "~2.3|^3|^4.4", - "webflo/drupal-finder": "^1.1.0", - "webmozart/path-util": "~2" - }, - "require-dev": { - "phpunit/phpunit": "4.*", - "symfony/console": "~2.7", - "symfony/event-dispatcher": "~2.7", - "symfony/finder": "~2.7", - "symfony/process": "2.7.*", - "symfony/var-dumper": "~2.7", - "symfony/yaml": "~2.3" - }, - "suggest": { - "drush/config-extra": "Provides configuration workflow commands, such as config-merge.", - "ext-pcntl": "*" - }, - "bin": [ - "drush", - "drush.launcher", - "drush.php", - "drush.complete.sh" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "8.3.x-dev" - } - }, - "autoload": { - "psr-0": { - "Drush\\": "lib/", - "Consolidation\\": "lib/" - }, - "psr-4": { - "Drush\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Moshe Weitzman", - "email": "weitzman@tejasa.com" - }, - { - "name": "Owen Barton", - "email": "drupal@owenbarton.com" - }, - { - "name": "Mark Sonnabaum", - "email": "marksonnabaum@gmail.com" - }, - { - "name": "Antoine Beaupré", - "email": "anarcat@koumbit.org" - }, - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - }, - { - "name": "Jonathan Araña Cruz", - "email": "jonhattan@faita.net" - }, - { - "name": "Jonathan Hedstrom", - "email": "jhedstrom@gmail.com" - }, - { - "name": "Christopher Gervais", - "email": "chris@ergonlogic.com" - }, - { - "name": "Dave Reid", - "email": "dave@davereid.net" - }, - { - "name": "Damian Lee", - "email": "damiankloip@googlemail.com" - } - ], - "description": "Drush is a command line shell and scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those of us who spend some of our working hours hacking away at the command prompt.", - "homepage": "http://www.drush.org", - "funding": [ - { - "url": "https://github.com/weitzman", - "type": "github" - } - ], - "time": "2021-03-22T15:27:55+00:00" - }, - { - "name": "easyrdf/easyrdf", - "version": "0.9.1", - "source": { - "type": "git", - "url": "https://github.com/easyrdf/easyrdf.git", - "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/easyrdf/easyrdf/zipball/acd09dfe0555fbcfa254291e433c45fdd4652566", - "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "ext-pcre": "*", - "php": ">=5.2.8" - }, - "require-dev": { - "phpunit/phpunit": "~3.5", - "sami/sami": "~1.4", - "squizlabs/php_codesniffer": "~1.4.3" - }, - "suggest": { - "ml/json-ld": "~1.0" - }, - "type": "library", - "autoload": { - "psr-0": { - "EasyRdf_": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nicholas Humfrey", - "email": "njh@aelius.com", - "homepage": "http://www.aelius.com/njh/", - "role": "Developer" - }, - { - "name": "Alexey Zakhlestin", - "email": "indeyets@gmail.com", - "role": "Developer" - } - ], - "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.", - "homepage": "http://www.easyrdf.org/", - "keywords": [ - "Linked Data", - "RDF", - "Semantic Web", - "Turtle", - "rdfa", - "sparql" - ], - "time": "2015-02-27T09:45:49+00:00" - }, - { - "name": "egulias/email-validator", - "version": "2.1.25", - "source": { - "type": "git", - "url": "https://github.com/egulias/EmailValidator.git", - "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4", - "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4", - "shasum": "" - }, - "require": { - "doctrine/lexer": "^1.0.1", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.10" - }, - "require-dev": { - "dominicsayers/isemail": "^3.0.7", - "phpunit/phpunit": "^4.8.36|^7.5.15", - "satooshi/php-coveralls": "^1.0.1" - }, - "suggest": { - "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Egulias\\EmailValidator\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Eduardo Gulias Davis" - } - ], - "description": "A library for validating emails against several RFCs", - "homepage": "https://github.com/egulias/EmailValidator", - "keywords": [ - "email", - "emailvalidation", - "emailvalidator", - "validation", - "validator" - ], - "funding": [ - { - "url": "https://github.com/egulias", - "type": "github" - } - ], - "time": "2020-12-29T14:50:06+00:00" - }, - { - "name": "guzzlehttp/guzzle", - "version": "6.5.8", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981", - "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981", - "shasum": "" - }, - "require": { - "ext-json": "*", - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.9", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.17" - }, - "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.1" - }, - "suggest": { - "psr/log": "Required for using the Log middleware" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.5-dev" - } - }, - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Jeremy Lindblom", - "email": "jeremeamia@gmail.com", - "homepage": "https://github.com/jeremeamia" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" - ], - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", - "type": "tidelift" - } - ], - "time": "2022-06-20T22:16:07+00:00" - }, - { - "name": "guzzlehttp/promises", - "version": "1.5.2", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "b94b2807d85443f9719887892882d0329d1e2598" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", - "reference": "b94b2807d85443f9719887892882d0329d1e2598", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.5-dev" - } - }, - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ], - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", - "type": "tidelift" - } - ], - "time": "2022-08-28T14:55:35+00:00" - }, - { - "name": "guzzlehttp/psr7", - "version": "1.9.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", - "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", - "shasum": "" - }, - "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" - }, - "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": [ - "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" - ], - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", - "type": "tidelift" - } - ], - "time": "2022-06-20T21:43:03+00:00" - }, - { - "name": "laminas/laminas-diactoros", - "version": "1.8.7p2", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-diactoros.git", - "reference": "6991c1af7c8d2c8efee81b22ba97024781824aaa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/6991c1af7c8d2c8efee81b22ba97024781824aaa", - "reference": "6991c1af7c8d2c8efee81b22ba97024781824aaa", - "shasum": "" - }, - "require": { - "laminas/laminas-zendframework-bridge": "^1.0", - "php": "^5.6 || ^7.0", - "psr/http-message": "^1.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "replace": { - "zendframework/zend-diactoros": "~1.8.7.0" - }, - "require-dev": { - "ext-dom": "*", - "ext-libxml": "*", - "laminas/laminas-coding-standard": "~1.0", - "php-http/psr7-integration-tests": "dev-master", - "phpunit/phpunit": "^5.7.16 || ^6.0.8 || ^7.2.7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-release-1.8": "1.8.x-dev" - } - }, - "autoload": { - "files": [ - "src/functions/create_uploaded_file.php", - "src/functions/marshal_headers_from_sapi.php", - "src/functions/marshal_method_from_sapi.php", - "src/functions/marshal_protocol_version_from_sapi.php", - "src/functions/marshal_uri_from_sapi.php", - "src/functions/normalize_server.php", - "src/functions/normalize_uploaded_files.php", - "src/functions/parse_cookie_header.php", - "src/functions/create_uploaded_file.legacy.php", - "src/functions/marshal_headers_from_sapi.legacy.php", - "src/functions/marshal_method_from_sapi.legacy.php", - "src/functions/marshal_protocol_version_from_sapi.legacy.php", - "src/functions/marshal_uri_from_sapi.legacy.php", - "src/functions/normalize_server.legacy.php", - "src/functions/normalize_uploaded_files.legacy.php", - "src/functions/parse_cookie_header.legacy.php" - ], - "psr-4": { - "Laminas\\Diactoros\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "PSR HTTP Message implementations", - "homepage": "https://laminas.dev", - "keywords": [ - "http", - "laminas", - "psr", - "psr-7" - ], - "time": "2020-03-23T15:28:28+00:00" - }, - { - "name": "laminas/laminas-escaper", - "version": "2.12.0", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-escaper.git", - "reference": "ee7a4c37bf3d0e8c03635d5bddb5bb3184ead490" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/ee7a4c37bf3d0e8c03635d5bddb5bb3184ead490", - "reference": "ee7a4c37bf3d0e8c03635d5bddb5bb3184ead490", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-mbstring": "*", - "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0" - }, - "conflict": { - "zendframework/zend-escaper": "*" - }, - "require-dev": { - "infection/infection": "^0.26.6", - "laminas/laminas-coding-standard": "~2.4.0", - "maglnet/composer-require-checker": "^3.8.0", - "phpunit/phpunit": "^9.5.18", - "psalm/plugin-phpunit": "^0.17.0", - "vimeo/psalm": "^4.22.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Laminas\\Escaper\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs", - "homepage": "https://laminas.dev", - "keywords": [ - "escaper", - "laminas" - ], - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2022-10-10T10:11:09+00:00" - }, - { - "name": "laminas/laminas-feed", - "version": "2.18.2", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-feed.git", - "reference": "a57fdb9df42950d5b7f052509fbdab0d081c6b6d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-feed/zipball/a57fdb9df42950d5b7f052509fbdab0d081c6b6d", - "reference": "a57fdb9df42950d5b7f052509fbdab0d081c6b6d", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "laminas/laminas-escaper": "^2.9", - "laminas/laminas-servicemanager": "^3.14.0", - "laminas/laminas-stdlib": "^3.6", - "php": "^7.4 || ~8.0.0 || ~8.1.0" - }, - "conflict": { - "laminas/laminas-servicemanager": "<3.3", - "zendframework/zend-feed": "*" - }, - "require-dev": { - "laminas/laminas-cache": "^2.13.2 || ^3.1.3", - "laminas/laminas-cache-storage-adapter-memory": "^1.1.0 || ^2.0.0", - "laminas/laminas-coding-standard": "~2.3.0", - "laminas/laminas-db": "^2.13.3", - "laminas/laminas-http": "^2.15", - "laminas/laminas-validator": "^2.15", - "phpunit/phpunit": "^9.5.5", - "psalm/plugin-phpunit": "^0.17.0", - "psr/http-message": "^1.0.1", - "vimeo/psalm": "^4.24.0" - }, - "suggest": { - "laminas/laminas-cache": "Laminas\\Cache component, for optionally caching feeds between requests", - "laminas/laminas-db": "Laminas\\Db component, for use with PubSubHubbub", - "laminas/laminas-http": "Laminas\\Http for PubSubHubbub, and optionally for use with Laminas\\Feed\\Reader", - "laminas/laminas-servicemanager": "Laminas\\ServiceManager component, for easily extending ExtensionManager implementations", - "laminas/laminas-validator": "Laminas\\Validator component, for validating email addresses used in Atom feeds and entries when using the Writer subcomponent", - "psr/http-message": "PSR-7 ^1.0.1, if you wish to use Laminas\\Feed\\Reader\\Http\\Psr7ResponseDecorator" - }, - "type": "library", - "autoload": { - "psr-4": { - "Laminas\\Feed\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "provides functionality for creating and consuming RSS and Atom feeds", - "homepage": "https://laminas.dev", - "keywords": [ - "atom", - "feed", - "laminas", - "rss" - ], - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2022-08-08T17:02:35+00:00" - }, - { - "name": "laminas/laminas-servicemanager", - "version": "3.17.0", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-servicemanager.git", - "reference": "360be5f16955dd1edbcce1cfaa98ed82a17f02ec" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/360be5f16955dd1edbcce1cfaa98ed82a17f02ec", - "reference": "360be5f16955dd1edbcce1cfaa98ed82a17f02ec", - "shasum": "" - }, - "require": { - "laminas/laminas-stdlib": "^3.2.1", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0", - "psr/container": "^1.0" - }, - "conflict": { - "ext-psr": "*", - "laminas/laminas-code": "<3.3.1", - "zendframework/zend-code": "<3.3.1", - "zendframework/zend-servicemanager": "*" - }, - "provide": { - "psr/container-implementation": "^1.0" - }, - "replace": { - "container-interop/container-interop": "^1.2.0" - }, - "require-dev": { - "composer/package-versions-deprecated": "^1.0", - "laminas/laminas-coding-standard": "~2.4.0", - "laminas/laminas-container-config-test": "^0.7", - "laminas/laminas-dependency-plugin": "^2.1.2", - "mikey179/vfsstream": "^1.6.10@alpha", - "ocramius/proxy-manager": "^2.11", - "phpbench/phpbench": "^1.1", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.5.5", - "psalm/plugin-phpunit": "^0.17.0", - "vimeo/psalm": "^4.8" - }, - "suggest": { - "ocramius/proxy-manager": "ProxyManager ^2.1.1 to handle lazy initialization of services" - }, - "bin": [ - "bin/generate-deps-for-config-factory", - "bin/generate-factory-for-class" - ], - "type": "library", - "autoload": { - "files": [ - "src/autoload.php" - ], - "psr-4": { - "Laminas\\ServiceManager\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Factory-Driven Dependency Injection Container", - "homepage": "https://laminas.dev", - "keywords": [ - "PSR-11", - "dependency-injection", - "di", - "dic", - "laminas", - "service-manager", - "servicemanager" - ], - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2022-09-22T11:33:46+00:00" - }, - { - "name": "laminas/laminas-stdlib", - "version": "3.13.0", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-stdlib.git", - "reference": "66a6d03c381f6c9f1dd988bf8244f9afb9380d76" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/66a6d03c381f6c9f1dd988bf8244f9afb9380d76", - "reference": "66a6d03c381f6c9f1dd988bf8244f9afb9380d76", - "shasum": "" - }, - "require": { - "php": "^7.4 || ~8.0.0 || ~8.1.0" - }, - "conflict": { - "zendframework/zend-stdlib": "*" - }, - "require-dev": { - "laminas/laminas-coding-standard": "~2.3.0", - "phpbench/phpbench": "^1.2.6", - "phpstan/phpdoc-parser": "^0.5.4", - "phpunit/phpunit": "^9.5.23", - "psalm/plugin-phpunit": "^0.17.0", - "vimeo/psalm": "^4.26" - }, - "type": "library", - "autoload": { - "psr-4": { - "Laminas\\Stdlib\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "SPL extensions, array utilities, error handlers, and more", - "homepage": "https://laminas.dev", - "keywords": [ - "laminas", - "stdlib" - ], - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2022-08-24T13:56:50+00:00" - }, - { - "name": "laminas/laminas-zendframework-bridge", - "version": "1.6.1", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-zendframework-bridge.git", - "reference": "e112dd2c099f4f6142c16fc65fda89a638e06885" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/e112dd2c099f4f6142c16fc65fda89a638e06885", - "reference": "e112dd2c099f4f6142c16fc65fda89a638e06885", - "shasum": "" - }, - "require": { - "php": ">=7.4, <8.2" - }, - "require-dev": { - "phpunit/phpunit": "^9.5.14", - "psalm/plugin-phpunit": "^0.15.2", - "squizlabs/php_codesniffer": "^3.6.2", - "vimeo/psalm": "^4.21.0" - }, - "type": "library", - "extra": { - "laminas": { - "module": "Laminas\\ZendFrameworkBridge" - } - }, - "autoload": { - "files": [ - "src/autoload.php" - ], - "psr-4": { - "Laminas\\ZendFrameworkBridge\\": "src//" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Alias legacy ZF class names to Laminas Project equivalents.", - "keywords": [ - "ZendFramework", - "autoloading", - "laminas", - "zf" - ], - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2022-07-29T13:28:29+00:00" - }, - { - "name": "masterminds/html5", - "version": "2.7.6", - "source": { - "type": "git", - "url": "https://github.com/Masterminds/html5-php.git", - "reference": "897eb517a343a2281f11bc5556d6548db7d93947" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/897eb517a343a2281f11bc5556d6548db7d93947", - "reference": "897eb517a343a2281f11bc5556d6548db7d93947", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-dom": "*", - "ext-libxml": "*", - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7-dev" - } - }, - "autoload": { - "psr-4": { - "Masterminds\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Matt Butcher", - "email": "technosophos@gmail.com" - }, - { - "name": "Matt Farina", - "email": "matt@mattfarina.com" - }, - { - "name": "Asmir Mustafic", - "email": "goetas@gmail.com" - } - ], - "description": "An HTML5 parser and serializer.", - "homepage": "http://masterminds.github.io/html5-php", - "keywords": [ - "HTML5", - "dom", - "html", - "parser", - "querypath", - "serializer", - "xml" - ], - "time": "2022-08-18T16:18:26+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v4.15.2", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", - "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.0" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "time": "2022-11-12T15:38:23+00:00" - }, - { - "name": "pear/archive_tar", - "version": "1.4.14", - "source": { - "type": "git", - "url": "https://github.com/pear/Archive_Tar.git", - "reference": "4d761c5334c790e45ef3245f0864b8955c562caa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/Archive_Tar/zipball/4d761c5334c790e45ef3245f0864b8955c562caa", - "reference": "4d761c5334c790e45ef3245f0864b8955c562caa", - "shasum": "" - }, - "require": { - "pear/pear-core-minimal": "^1.10.0alpha2", - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "*" - }, - "suggest": { - "ext-bz2": "Bz2 compression support.", - "ext-xz": "Lzma2 compression support.", - "ext-zlib": "Gzip compression support." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "psr-0": { - "Archive_Tar": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "./" - ], - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Vincent Blavet", - "email": "vincent@phpconcept.net" - }, - { - "name": "Greg Beaver", - "email": "greg@chiaraquartet.net" - }, - { - "name": "Michiel Rook", - "email": "mrook@php.net" - } - ], - "description": "Tar file management class with compression support (gzip, bzip2, lzma2)", - "homepage": "https://github.com/pear/Archive_Tar", - "keywords": [ - "archive", - "tar" - ], - "funding": [ - { - "url": "https://github.com/mrook", - "type": "github" - }, - { - "url": "https://www.patreon.com/michielrook", - "type": "patreon" - } - ], - "time": "2021-07-20T13:53:39+00:00" - }, - { - "name": "pear/console_getopt", - "version": "v1.4.3", - "source": { - "type": "git", - "url": "https://github.com/pear/Console_Getopt.git", - "reference": "a41f8d3e668987609178c7c4a9fe48fecac53fa0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/Console_Getopt/zipball/a41f8d3e668987609178c7c4a9fe48fecac53fa0", - "reference": "a41f8d3e668987609178c7c4a9fe48fecac53fa0", - "shasum": "" - }, - "type": "library", - "autoload": { - "psr-0": { - "Console": "./" - } - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "./" - ], - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Andrei Zmievski", - "email": "andrei@php.net", - "role": "Lead" - }, - { - "name": "Stig Bakken", - "email": "stig@php.net", - "role": "Developer" - }, - { - "name": "Greg Beaver", - "email": "cellog@php.net", - "role": "Helper" - } - ], - "description": "More info available on: http://pear.php.net/package/Console_Getopt", - "time": "2019-11-20T18:27:48+00:00" - }, - { - "name": "pear/console_table", - "version": "v1.3.1", - "source": { - "type": "git", - "url": "https://github.com/pear/Console_Table.git", - "reference": "1930c11897ca61fd24b95f2f785e99e0f36dcdea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/Console_Table/zipball/1930c11897ca61fd24b95f2f785e99e0f36dcdea", - "reference": "1930c11897ca61fd24b95f2f785e99e0f36dcdea", - "shasum": "" - }, - "require": { - "php": ">=5.2.0" - }, - "suggest": { - "pear/Console_Color2": ">=0.1.2" - }, - "type": "library", - "autoload": { - "classmap": [ - "Table.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Jan Schneider", - "homepage": "http://pear.php.net/user/yunosh" - }, - { - "name": "Tal Peer", - "homepage": "http://pear.php.net/user/tal" - }, - { - "name": "Xavier Noguer", - "homepage": "http://pear.php.net/user/xnoguer" - }, - { - "name": "Richard Heyes", - "homepage": "http://pear.php.net/user/richard" - } - ], - "description": "Library that makes it easy to build console style tables.", - "homepage": "http://pear.php.net/package/Console_Table/", - "keywords": [ - "console" - ], - "time": "2018-01-25T20:47:17+00:00" - }, - { - "name": "pear/pear-core-minimal", - "version": "v1.10.11", - "source": { - "type": "git", - "url": "https://github.com/pear/pear-core-minimal.git", - "reference": "68d0d32ada737153b7e93b8d3c710ebe70ac867d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/68d0d32ada737153b7e93b8d3c710ebe70ac867d", - "reference": "68d0d32ada737153b7e93b8d3c710ebe70ac867d", - "shasum": "" - }, - "require": { - "pear/console_getopt": "~1.4", - "pear/pear_exception": "~1.0" - }, - "replace": { - "rsky/pear-core-min": "self.version" - }, - "type": "library", - "autoload": { - "psr-0": { - "": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "src/" - ], - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Christian Weiske", - "email": "cweiske@php.net", - "role": "Lead" - } - ], - "description": "Minimal set of PEAR core files to be used as composer dependency", - "time": "2021-08-10T22:31:03+00:00" - }, - { - "name": "pear/pear_exception", - "version": "v1.0.2", - "source": { - "type": "git", - "url": "https://github.com/pear/PEAR_Exception.git", - "reference": "b14fbe2ddb0b9f94f5b24cf08783d599f776fff0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/PEAR_Exception/zipball/b14fbe2ddb0b9f94f5b24cf08783d599f776fff0", - "reference": "b14fbe2ddb0b9f94f5b24cf08783d599f776fff0", - "shasum": "" - }, - "require": { - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "<9" - }, - "type": "class", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "PEAR/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "." - ], - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Helgi Thormar", - "email": "dufuz@php.net" - }, - { - "name": "Greg Beaver", - "email": "cellog@php.net" - } - ], - "description": "The PEAR Exception base class.", - "homepage": "https://github.com/pear/PEAR_Exception", - "keywords": [ - "exception" - ], - "time": "2021-03-21T15:43:46+00:00" - }, - { - "name": "psr/cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "time": "2016-08-06T20:24:11+00:00" - }, - { - "name": "psr/container", - "version": "1.1.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "time": "2021-11-05T16:50:12+00:00" - }, - { - "name": "psr/http-message", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "time": "2016-08-06T14:39:51+00:00" - }, - { - "name": "psr/log", - "version": "1.1.4", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2021-05-03T11:20:27+00:00" - }, - { - "name": "psy/psysh", - "version": "v0.11.9", - "source": { - "type": "git", - "url": "https://github.com/bobthecow/psysh.git", - "reference": "1acec99d6684a54ff92f8b548a4e41b566963778" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/1acec99d6684a54ff92f8b548a4e41b566963778", - "reference": "1acec99d6684a54ff92f8b548a4e41b566963778", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-tokenizer": "*", - "nikic/php-parser": "^4.0 || ^3.1", - "php": "^8.0 || ^7.0.8", - "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4" - }, - "conflict": { - "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.2" - }, - "suggest": { - "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", - "ext-pdo-sqlite": "The doc command requires SQLite to work.", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." - }, - "bin": [ - "bin/psysh" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "0.11.x-dev" - } - }, - "autoload": { - "files": [ - "src/functions.php" - ], - "psr-4": { - "Psy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" - } - ], - "description": "An interactive shell for modern PHP.", - "homepage": "http://psysh.org", - "keywords": [ - "REPL", - "console", - "interactive", - "shell" - ], - "time": "2022-11-06T15:29:46+00:00" - }, - { - "name": "ralouphie/getallheaders", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" - }, - "type": "library", - "autoload": { - "files": [ - "src/getallheaders.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" - } - ], - "description": "A polyfill for getallheaders.", - "time": "2019-03-08T08:55:37+00:00" - }, - { - "name": "stack/builder", - "version": "v1.0.6", - "source": { - "type": "git", - "url": "https://github.com/stackphp/builder.git", - "reference": "a4faaa6f532c6086bc66c29e1bc6c29593e1ca7c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/stackphp/builder/zipball/a4faaa6f532c6086bc66c29e1bc6c29593e1ca7c", - "reference": "a4faaa6f532c6086bc66c29e1bc6c29593e1ca7c", - "shasum": "" - }, - "require": { - "php": ">=7.2.0", - "symfony/http-foundation": "~2.1|~3.0|~4.0|~5.0", - "symfony/http-kernel": "~2.1|~3.0|~4.0|~5.0" - }, - "require-dev": { - "phpunit/phpunit": "~8.0", - "symfony/routing": "^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-0": { - "Stack": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - } - ], - "description": "Builder for stack middleware based on HttpKernelInterface.", - "keywords": [ - "stack" - ], - "time": "2020-01-30T12:17:27+00:00" - }, - { - "name": "stecman/symfony-console-completion", - "version": "0.11.0", - "source": { - "type": "git", - "url": "https://github.com/stecman/symfony-console-completion.git", - "reference": "a9502dab59405e275a9f264536c4e1cb61fc3518" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/stecman/symfony-console-completion/zipball/a9502dab59405e275a9f264536c4e1cb61fc3518", - "reference": "a9502dab59405e275a9f264536c4e1cb61fc3518", - "shasum": "" - }, - "require": { - "php": ">=5.3.2", - "symfony/console": "~2.3 || ~3.0 || ~4.0 || ~5.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.8.36 || ~5.7 || ~6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.10.x-dev" - } - }, - "autoload": { - "psr-4": { - "Stecman\\Component\\Symfony\\Console\\BashCompletion\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Stephen Holdaway", - "email": "stephen@stecman.co.nz" - } - ], - "description": "Automatic BASH completion for Symfony Console Component based applications.", - "time": "2019-11-24T17:03:06+00:00" - }, - { - "name": "symfony-cmf/routing", - "version": "1.4.1", - "source": { - "type": "git", - "url": "https://github.com/symfony-cmf/routing.git", - "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony-cmf/routing/zipball/fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", - "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", - "shasum": "" - }, - "require": { - "php": "^5.3.9|^7.0", - "psr/log": "1.*", - "symfony/http-kernel": "^2.2|3.*", - "symfony/routing": "^2.2|3.*" - }, - "require-dev": { - "friendsofsymfony/jsrouting-bundle": "^1.1", - "symfony-cmf/testing": "^1.3", - "symfony/config": "^2.2|3.*", - "symfony/dependency-injection": "^2.0.5|3.*", - "symfony/event-dispatcher": "^2.1|3.*" - }, - "suggest": { - "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version (~2.1)" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Cmf\\Component\\Routing\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Symfony CMF Community", - "homepage": "https://github.com/symfony-cmf/Routing/contributors" - } - ], - "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers", - "homepage": "http://cmf.symfony.com", - "keywords": [ - "database", - "routing" - ], - "time": "2017-05-09T08:10:41+00:00" - }, - { - "name": "symfony/class-loader", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/class-loader.git", - "reference": "a22265a9f3511c0212bf79f54910ca5a77c0e92c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/a22265a9f3511c0212bf79f54910ca5a77c0e92c", - "reference": "a22265a9f3511c0212bf79f54910ca5a77c0e92c", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "require-dev": { - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/polyfill-apcu": "~1.1" - }, - "suggest": { - "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\ClassLoader\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony ClassLoader Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "symfony/config", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "bc6b3fd3930d4b53a60b42fe2ed6fc466b75f03f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/bc6b3fd3930d4b53a60b42fe2ed6fc466b75f03f", - "reference": "bc6b3fd3930d4b53a60b42fe2ed6fc466b75f03f", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/filesystem": "~2.8|~3.0|~4.0", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/dependency-injection": "<3.3", - "symfony/finder": "<3.3" - }, - "require-dev": { - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/event-dispatcher": "~3.3|~4.0", - "symfony/finder": "~3.3|~4.0", - "symfony/yaml": "~3.0|~4.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Config Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "symfony/console", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "a10b1da6fc93080c180bba7219b5ff5b7518fe81" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a10b1da6fc93080c180bba7219b5ff5b7518fe81", - "reference": "a10b1da6fc93080c180bba7219b5ff5b7518fe81", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/process": "<3.3" - }, - "provide": { - "psr/log-implementation": "1.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~3.3|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/lock": "~3.4|~4.0", - "symfony/process": "~3.3|~4.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "symfony/css-selector", - "version": "v2.8.52", - "source": { - "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "7b1692e418d7ccac24c373528453bc90e42797de" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/7b1692e418d7ccac24c373528453bc90e42797de", - "reference": "7b1692e418d7ccac24c373528453bc90e42797de", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony CssSelector Component", - "homepage": "https://symfony.com", - "time": "2018-11-11T11:18:13+00:00" - }, - { - "name": "symfony/debug", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "ab42889de57fdfcfcc0759ab102e2fd4ea72dcae" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/ab42889de57fdfcfcc0759ab102e2fd4ea72dcae", - "reference": "ab42889de57fdfcfcc0759ab102e2fd4ea72dcae", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" - }, - "require-dev": { - "symfony/http-kernel": "~2.8|~3.0|~4.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "abandoned": "symfony/error-handler", - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "symfony/dependency-injection", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "51d2a2708c6ceadad84393f8581df1dcf9e5e84b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/51d2a2708c6ceadad84393f8581df1dcf9e5e84b", - "reference": "51d2a2708c6ceadad84393f8581df1dcf9e5e84b", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "psr/container": "^1.0" - }, - "conflict": { - "symfony/config": "<3.3.7", - "symfony/finder": "<3.3", - "symfony/proxy-manager-bridge": "<3.4", - "symfony/yaml": "<3.4" - }, - "provide": { - "psr/container-implementation": "1.0" - }, - "require-dev": { - "symfony/config": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony DependencyInjection Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "symfony/dom-crawler", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "ef97bcfbae5b384b4ca6c8d57b617722f15241a6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/ef97bcfbae5b384b4ca6c8d57b617722f15241a6", - "reference": "ef97bcfbae5b384b4ca6c8d57b617722f15241a6", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "require-dev": { - "symfony/css-selector": "~2.8|~3.0|~4.0" - }, - "suggest": { - "symfony/css-selector": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony DomCrawler Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "31fde73757b6bad247c54597beef974919ec6860" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/31fde73757b6bad247c54597beef974919ec6860", - "reference": "31fde73757b6bad247c54597beef974919ec6860", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "conflict": { - "symfony/dependency-injection": "<3.3" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/debug": "~3.4|~4.4", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "e58d7841cddfed6e846829040dca2cca0ebbbbb3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/e58d7841cddfed6e846829040dca2cca0ebbbbb3", - "reference": "e58d7841cddfed6e846829040dca2cca0ebbbbb3", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-ctype": "~1.8" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "symfony/finder", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "b6b6ad3db3edb1b4b1c1896b1975fb684994de6e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/b6b6ad3db3edb1b4b1c1896b1975fb684994de6e", - "reference": "b6b6ad3db3edb1b4b1c1896b1975fb684994de6e", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Finder Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-11-16T17:02:08+00:00" - }, - { - "name": "symfony/http-foundation", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "b9885fcce6fe494201da4f70a9309770e9d13dc8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/b9885fcce6fe494201da4f70a9309770e9d13dc8", - "reference": "b9885fcce6fe494201da4f70a9309770e9d13dc8", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php70": "~1.6" - }, - "require-dev": { - "symfony/expression-language": "~2.8|~3.0|~4.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony HttpFoundation Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "symfony/http-kernel", - "version": "v3.4.49", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "5aa72405f5bd5583c36ed6e756acb17d3f98ac40" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/5aa72405f5bd5583c36ed6e756acb17d3f98ac40", - "reference": "5aa72405f5bd5583c36ed6e756acb17d3f98ac40", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "psr/log": "~1.0", - "symfony/debug": "^3.3.3|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~3.4.12|~4.0.12|^4.1.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php56": "~1.8" - }, - "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.4.10|<4.0.10,>=4", - "symfony/var-dumper": "<3.3", - "twig/twig": "<1.34|<2.4,>=2" - }, - "provide": { - "psr/log-implementation": "1.0" - }, - "require-dev": { - "psr/cache": "~1.0", - "symfony/browser-kit": "~2.8|~3.0|~4.0", - "symfony/class-loader": "~2.8|~3.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/console": "~2.8|~3.0|~4.0", - "symfony/css-selector": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "^3.4.10|^4.0.10", - "symfony/dom-crawler": "~2.8|~3.0|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/process": "~2.8|~3.0|~4.0", - "symfony/routing": "~3.4|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0", - "symfony/templating": "~2.8|~3.0|~4.0", - "symfony/translation": "~2.8|~3.0|~4.0", - "symfony/var-dumper": "~3.3|~4.0" - }, - "suggest": { - "symfony/browser-kit": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "", - "symfony/finder": "", - "symfony/var-dumper": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpKernel\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony HttpKernel Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-05-19T12:06:59+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-iconv", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "927013f3aac555983a5059aada98e1907d842695" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/927013f3aac555983a5059aada98e1907d842695", - "reference": "927013f3aac555983a5059aada98e1907d842695", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-iconv": "*" - }, - "suggest": { - "ext-iconv": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - } - }, - "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 for the Iconv extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "iconv", - "polyfill", - "portable", - "shim" - ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-intl-idn", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Laurent Bassin", - "email": "laurent@bassin.info" - }, - { - "name": "Trevor Rowbotham", - "email": "trevor.rowbotham@pm.me" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "idn", - "intl", - "polyfill", - "portable", - "shim" - ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "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 for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "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 for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-php56", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675", - "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "metapackage", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "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 5.6+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-23T14:02:19+00:00" - }, - { - "name": "symfony/polyfill-php70", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "metapackage", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "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 7.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-23T14:02:19+00:00" - }, - { - "name": "symfony/polyfill-php72", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - } - }, - "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 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/process", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "b8648cf1d5af12a44a51d07ef9bf980921f15fca" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/b8648cf1d5af12a44a51d07ef9bf980921f15fca", - "reference": "b8648cf1d5af12a44a51d07ef9bf980921f15fca", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Process Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "symfony/psr-http-message-bridge", - "version": "v1.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "9ab9d71f97d5c7d35a121a7fb69f74fee95cd0ad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/9ab9d71f97d5c7d35a121a7fb69f74fee95cd0ad", - "reference": "9ab9d71f97d5c7d35a121a7fb69f74fee95cd0ad", - "shasum": "" - }, - "require": { - "php": "^7.1", - "psr/http-message": "^1.0", - "symfony/http-foundation": "^3.4 || ^4.0" - }, - "require-dev": { - "nyholm/psr7": "^1.1", - "symfony/phpunit-bridge": "^3.4.20 || ^4.0", - "zendframework/zend-diactoros": "^1.4.1 || ^2.0" - }, - "suggest": { - "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" - }, - "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-master": "1.2-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Bridge\\PsrHttpMessage\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "PSR HTTP message bridge", - "homepage": "http://symfony.com", - "keywords": [ - "http", - "http-message", - "psr-17", - "psr-7" - ], - "time": "2019-03-11T18:22:33+00:00" - }, - { - "name": "symfony/routing", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "3e522ac69cadffd8131cc2b22157fa7662331a6c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/3e522ac69cadffd8131cc2b22157fa7662331a6c", - "reference": "3e522ac69cadffd8131cc2b22157fa7662331a6c", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "conflict": { - "symfony/config": "<3.3.1", - "symfony/dependency-injection": "<3.3", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "doctrine/annotations": "~1.0", - "psr/log": "~1.0", - "symfony/config": "^3.3.1|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~2.8|~3.0|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation loader", - "symfony/config": "For using the all-in-one router or any loader", - "symfony/expression-language": "For using expression matching", - "symfony/http-foundation": "For using a Symfony Request object", - "symfony/yaml": "For using the YAML loader" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Routing\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Routing Component", - "homepage": "https://symfony.com", - "keywords": [ - "router", - "routing", - "uri", - "url" - ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "symfony/serializer", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/serializer.git", - "reference": "6d69ccc1dcfb64c1e9c9444588643e98718d1849" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/6d69ccc1dcfb64c1e9c9444588643e98718d1849", - "reference": "6d69ccc1dcfb64c1e9c9444588643e98718d1849", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "phpdocumentor/type-resolver": "<0.2.1", - "symfony/dependency-injection": "<3.2", - "symfony/property-access": ">=3.0,<3.0.4|>=2.8,<2.8.4", - "symfony/property-info": "<3.1", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "doctrine/annotations": "~1.0", - "doctrine/cache": "~1.0", - "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "symfony/cache": "~3.1|~4.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.2|~4.0", - "symfony/http-foundation": "~2.8|~3.0|~4.0", - "symfony/property-access": "~2.8|~3.0|~4.0", - "symfony/property-info": "^3.4.13|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", - "doctrine/cache": "For using the default cached annotation reader and metadata cache.", - "psr/cache-implementation": "For using the metadata cache.", - "symfony/config": "For using the XML mapping loader.", - "symfony/http-foundation": "For using a MIME type guesser within the DataUriNormalizer.", - "symfony/property-access": "For using the ObjectNormalizer.", - "symfony/property-info": "To deserialize relations.", - "symfony/yaml": "For using the default YAML mapping loader." - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Serializer\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Serializer Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "symfony/translation", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "be83ee6c065cb32becdb306ba61160d598b1ce88" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/be83ee6c065cb32becdb306ba61160d598b1ce88", - "reference": "be83ee6c065cb32becdb306ba61160d598b1ce88", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.4", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/http-kernel": "~3.4|~4.0", - "symfony/intl": "^2.8.18|^3.2.5|~4.0", - "symfony/var-dumper": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "psr/log-implementation": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Translation Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "symfony/validator", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/validator.git", - "reference": "d25ceea5c99022aecf37adf157c76c31fc5dcbed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/d25ceea5c99022aecf37adf157c76c31fc5dcbed", - "reference": "d25ceea5c99022aecf37adf157c76c31fc5dcbed", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/translation": "~2.8|~3.0|~4.0" - }, - "conflict": { - "doctrine/lexer": "<1.0.2", - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/dependency-injection": "<3.3", - "symfony/http-kernel": "<3.3.5", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "doctrine/annotations": "~1.7", - "doctrine/cache": "~1.0", - "egulias/email-validator": "^2.1.10", - "symfony/cache": "~3.1|~4.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~2.8|~3.0|~4.0", - "symfony/http-kernel": "^3.3.5|~4.0", - "symfony/intl": "^2.8.18|^3.2.5|~4.0", - "symfony/property-access": "~2.8|~3.0|~4.0", - "symfony/var-dumper": "~3.3|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", - "doctrine/cache": "For using the default cached annotation reader and metadata cache.", - "egulias/email-validator": "Strict (RFC compliant) email validation", - "psr/cache-implementation": "For using the metadata cache.", - "symfony/config": "", - "symfony/expression-language": "For using the Expression validator", - "symfony/http-foundation": "", - "symfony/intl": "", - "symfony/property-access": "For accessing properties within comparison constraints", - "symfony/yaml": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Validator\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Validator Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-28T05:23:51+00:00" - }, - { - "name": "symfony/var-dumper", - "version": "v4.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "1069c7a3fca74578022fab6f81643248d02f8e63" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63", - "reference": "1069c7a3fca74578022fab6f81643248d02f8e63", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php72": "~1.5", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/console": "<3.4" - }, - "require-dev": { - "ext-iconv": "*", - "symfony/console": "^3.4|^4.0|^5.0", - "symfony/process": "^4.4|^5.0", - "twig/twig": "^1.43|^2.13|^3.0.4" - }, - "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" - }, - "bin": [ - "Resources/bin/var-dump-server" - ], - "type": "library", - "autoload": { - "files": [ - "Resources/functions/dump.php" - ], - "psr-4": { - "Symfony\\Component\\VarDumper\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "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": "Provides mechanisms for walking through any arbitrary PHP variable", - "homepage": "https://symfony.com", - "keywords": [ - "debug", - "dump" - ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-10-03T15:15:11+00:00" - }, - { - "name": "symfony/yaml", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "88289caa3c166321883f67fe5130188ebbb47094" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/88289caa3c166321883f67fe5130188ebbb47094", - "reference": "88289caa3c166321883f67fe5130188ebbb47094", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/console": "<3.4" - }, - "require-dev": { - "symfony/console": "~3.4|~4.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "twig/twig", - "version": "v1.44.7", - "source": { - "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "0887422319889e442458e48e2f3d9add1a172ad5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/0887422319889e442458e48e2f3d9add1a172ad5", - "reference": "0887422319889e442458e48e2f3d9add1a172ad5", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "^1.8" - }, - "require-dev": { - "psr/container": "^1.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.44-dev" - } - }, - "autoload": { - "psr-0": { - "Twig_": "lib/" - }, - "psr-4": { - "Twig\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Twig Team", - "role": "Contributors" - }, - { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" - } - ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "https://twig.symfony.com", - "keywords": [ - "templating" - ], - "funding": [ - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/twig/twig", - "type": "tidelift" - } - ], - "time": "2022-09-28T08:38:36+00:00" - }, - { - "name": "typo3/phar-stream-wrapper", - "version": "v3.1.7", - "source": { - "type": "git", - "url": "https://github.com/TYPO3/phar-stream-wrapper.git", - "reference": "5cc2f04a4e2f5c7e9cc02a3bdf80fae0f3e11a8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/TYPO3/phar-stream-wrapper/zipball/5cc2f04a4e2f5c7e9cc02a3bdf80fae0f3e11a8c", - "reference": "5cc2f04a4e2f5c7e9cc02a3bdf80fae0f3e11a8c", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": "^7.0 || ^8.0" - }, - "require-dev": { - "ext-xdebug": "*", - "phpspec/prophecy": "^1.10", - "symfony/phpunit-bridge": "^5.1" - }, - "suggest": { - "ext-fileinfo": "For PHP builtin file type guessing, otherwise uses internal processing" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "v3.x-dev" - } - }, - "autoload": { - "psr-4": { - "TYPO3\\PharStreamWrapper\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Interceptors for PHP's native phar:// stream handling", - "homepage": "https://typo3.org/", - "keywords": [ - "phar", - "php", - "security", - "stream-wrapper" - ], - "time": "2021-09-20T19:19:13+00:00" - }, - { - "name": "webflo/drupal-finder", - "version": "1.2.2", - "source": { - "type": "git", - "url": "https://github.com/webflo/drupal-finder.git", - "reference": "c8e5dbe65caef285fec8057a4c718a0d4138d1ee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webflo/drupal-finder/zipball/c8e5dbe65caef285fec8057a4c718a0d4138d1ee", - "reference": "c8e5dbe65caef285fec8057a4c718a0d4138d1ee", - "shasum": "" - }, - "require": { - "ext-json": "*" - }, - "require-dev": { - "mikey179/vfsstream": "^1.6", - "phpunit/phpunit": "^4.8" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/DrupalFinder.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Florian Weber", - "email": "florian@webflo.org" - } - ], - "description": "Helper class to locate a Drupal installation from a given path.", - "time": "2020-10-27T09:42:17+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.11.0", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "php": "^7.2 || ^8.0" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.13" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "time": "2022-06-03T18:03:27+00:00" - }, - { - "name": "webmozart/path-util", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/path-util.git", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "webmozart/assert": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\PathUtil\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", - "abandoned": "symfony/filesystem", - "time": "2015-12-17T08:42:14+00:00" - } - ], - "packages-dev": [ - { - "name": "behat/mink", - "version": "v1.9.0", - "source": { - "type": "git", - "url": "https://github.com/minkphp/Mink.git", - "reference": "e35f4695de8800fc776af34ebf665ad58ebdd996" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/minkphp/Mink/zipball/e35f4695de8800fc776af34ebf665ad58ebdd996", - "reference": "e35f4695de8800fc776af34ebf665ad58ebdd996", - "shasum": "" - }, - "require": { - "php": ">=5.4", - "symfony/css-selector": "^2.7|^3.0|^4.0|^5.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5 || ^9.5", - "symfony/debug": "^2.7|^3.0|^4.0|^5.0", - "symfony/phpunit-bridge": "^3.4.38 || ^4.4 || ^5.0.5", - "yoast/phpunit-polyfills": "^1.0" - }, - "suggest": { - "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)", - "behat/mink-goutte-driver": "fast headless driver for any app without JS emulation", - "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)", - "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)", - "dmore/chrome-mink-driver": "fast and JS-enabled driver for any app (requires chromium or google chrome)" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Mink\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Browser controller/emulator abstraction for PHP", - "homepage": "https://mink.behat.org/", - "keywords": [ - "browser", - "testing", - "web" - ], - "time": "2021-10-11T11:58:47+00:00" - }, - { - "name": "behat/mink-browserkit-driver", - "version": "v1.4.1", - "source": { - "type": "git", - "url": "https://github.com/minkphp/MinkBrowserKitDriver.git", - "reference": "057926c9da452bac5bfcffb92eb4f3e1ce74dae9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/057926c9da452bac5bfcffb92eb4f3e1ce74dae9", - "reference": "057926c9da452bac5bfcffb92eb4f3e1ce74dae9", - "shasum": "" - }, - "require": { - "behat/mink": "^1.7.1@dev", - "php": ">=5.4", - "symfony/browser-kit": "~2.3|~3.0|~4.0", - "symfony/dom-crawler": "~2.3|~3.0|~4.0" - }, - "require-dev": { - "mink/driver-testsuite": "dev-master", - "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.18 || ^8.5 || ^9.5", - "symfony/debug": "^2.7|^3.0|^4.0", - "symfony/http-kernel": "~2.3|~3.0|~4.0", - "yoast/phpunit-polyfills": "^1.0" - }, - "type": "mink-driver", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Mink\\Driver\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Symfony2 BrowserKit driver for Mink framework", - "homepage": "https://mink.behat.org/", - "keywords": [ - "Mink", - "Symfony2", - "browser", - "testing" - ], - "time": "2021-12-10T14:17:06+00:00" - }, - { - "name": "behat/mink-goutte-driver", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/minkphp/MinkGoutteDriver.git", - "reference": "8139f520f417c81bf9d2f9a171fff400f6adc9ea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/8139f520f417c81bf9d2f9a171fff400f6adc9ea", - "reference": "8139f520f417c81bf9d2f9a171fff400f6adc9ea", - "shasum": "" - }, - "require": { - "behat/mink-browserkit-driver": "~1.2@dev", - "fabpot/goutte": "~1.0.4|~2.0|~3.1", - "php": ">=5.4" - }, - "require-dev": { - "mink/driver-testsuite": "dev-master" - }, - "type": "mink-driver", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Mink\\Driver\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Goutte driver for Mink framework", - "homepage": "https://mink.behat.org/", - "keywords": [ - "browser", - "goutte", - "headless", - "testing" - ], - "time": "2021-10-12T11:35:46+00:00" - }, - { - "name": "doctrine/instantiator", - "version": "1.4.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.16 || ^1", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2022-03-03T08:28:38+00:00" - }, - { - "name": "fabpot/goutte", - "version": "v3.2.3", - "source": { - "type": "git", - "url": "https://github.com/FriendsOfPHP/Goutte.git", - "reference": "3f0eaf0a40181359470651f1565b3e07e3dd31b8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/3f0eaf0a40181359470651f1565b3e07e3dd31b8", - "reference": "3f0eaf0a40181359470651f1565b3e07e3dd31b8", - "shasum": "" - }, - "require": { - "guzzlehttp/guzzle": "^6.0", - "php": ">=5.5.0", - "symfony/browser-kit": "~2.1|~3.0|~4.0", - "symfony/css-selector": "~2.1|~3.0|~4.0", - "symfony/dom-crawler": "~2.1|~3.0|~4.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "^3.3 || ^4" - }, - "type": "application", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, - "autoload": { - "psr-4": { - "Goutte\\": "Goutte" - }, - "exclude-from-classmap": [ - "Goutte/Tests" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "A simple PHP Web Scraper", - "homepage": "https://github.com/FriendsOfPHP/Goutte", - "keywords": [ - "scraper" - ], - "time": "2018-06-29T15:13:57+00:00" - }, - { - "name": "jcalderonzumba/gastonjs", - "version": "v1.0.3", - "source": { - "type": "git", - "url": "https://github.com/jcalderonzumba/gastonjs.git", - "reference": "4ff4a788d4995ae0d4b45fdcb1b76650e2eec72a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/jcalderonzumba/gastonjs/zipball/4ff4a788d4995ae0d4b45fdcb1b76650e2eec72a", - "reference": "4ff4a788d4995ae0d4b45fdcb1b76650e2eec72a", - "shasum": "" - }, - "require": { - "guzzlehttp/guzzle": "~5.0|~6.0", - "php": ">=5.4" - }, - "require-dev": { - "phpunit/phpunit": "~4.6", - "silex/silex": "~1.2", - "symfony/phpunit-bridge": "~2.7", - "symfony/process": "~2.1" - }, - "type": "phantomjs-api", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zumba\\GastonJS\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Juan Francisco Calderón Zumba", - "email": "juanfcz@gmail.com", - "homepage": "http://github.com/jcalderonzumba" - } - ], - "description": "PhantomJS API based server for webpage automation", - "homepage": "https://github.com/jcalderonzumba/gastonjs", - "keywords": [ - "api", - "automation", - "browser", - "headless", - "phantomjs" - ], - "time": "2016-05-04T16:27:07+00:00" - }, - { - "name": "jcalderonzumba/mink-phantomjs-driver", - "version": "v0.3.3", - "source": { - "type": "git", - "url": "https://github.com/jcalderonzumba/MinkPhantomJSDriver.git", - "reference": "008f43670e94acd39273d15add1e7348eb23848d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/jcalderonzumba/MinkPhantomJSDriver/zipball/008f43670e94acd39273d15add1e7348eb23848d", - "reference": "008f43670e94acd39273d15add1e7348eb23848d", - "shasum": "" - }, - "require": { - "behat/mink": "~1.7", - "jcalderonzumba/gastonjs": "~1.0", - "php": ">=5.4", - "twig/twig": "~1.20|~2.0" - }, - "require-dev": { - "mink/driver-testsuite": "dev-master", - "phpunit/phpunit": "~4.6" - }, - "type": "mink-driver", - "extra": { - "branch-alias": { - "dev-master": "0.4.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zumba\\Mink\\Driver\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Juan Francisco Calderón Zumba", - "email": "juanfcz@gmail.com", - "homepage": "http://github.com/jcalderonzumba" - } - ], - "description": "PhantomJS driver for Mink framework", - "homepage": "http://mink.behat.org/", - "keywords": [ - "ajax", - "browser", - "headless", - "javascript", - "phantomjs", - "testing" - ], - "time": "2016-12-01T10:57:30+00:00" - }, - { - "name": "mikey179/vfsstream", - "version": "v1.6.11", - "source": { - "type": "git", - "url": "https://github.com/bovigo/vfsStream.git", - "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f", - "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.5|^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.6.x-dev" - } - }, - "autoload": { - "psr-0": { - "org\\bovigo\\vfs\\": "src/main/php" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Frank Kleine", - "homepage": "http://frankkleine.de/", - "role": "Developer" - } - ], - "description": "Virtual file system to mock the real file system in unit tests.", - "homepage": "http://vfs.bovigo.org/", - "time": "2022-02-23T02:02:42+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2021-10-19T17:43:47+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.6.2", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d", - "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "*", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^9.5", - "rector/rector": "^0.13.9", - "vimeo/psalm": "^4.25" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2022-10-14T12:47:21+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "v1.10.3", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "451c3cd1418cf640de218914901e51b064abb093" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", - "reference": "451c3cd1418cf640de218914901e51b064abb093", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^2.5 || ^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2020-03-05T15:02:03+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "2.2.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", - "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "phpunit/php-file-iterator": "~1.3", - "phpunit/php-text-template": "~1.2", - "phpunit/php-token-stream": "~1.3", - "sebastian/environment": "^1.3.2", - "sebastian/version": "~1.0" - }, - "require-dev": { - "ext-xdebug": ">=2.1.4", - "phpunit/phpunit": "~4" - }, - "suggest": { - "ext-dom": "*", - "ext-xdebug": ">=2.2.1", - "ext-xmlwriter": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "time": "2015-10-06T15:47:00+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "1.4.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "time": "2017-11-27T13:52:08+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "time": "2015-06-21T13:50:34+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "1.0.9", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "time": "2017-02-26T11:10:40+00:00" - }, - { - "name": "phpunit/php-token-stream", - "version": "1.4.12", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "abandoned": true, - "time": "2017-12-04T08:55:13+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "4.8.36", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "46023de9a91eec7dfb06cc56cb4e260017298517" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517", - "reference": "46023de9a91eec7dfb06cc56cb4e260017298517", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=5.3.3", - "phpspec/prophecy": "^1.3.1", - "phpunit/php-code-coverage": "~2.1", - "phpunit/php-file-iterator": "~1.4", - "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": "^1.0.6", - "phpunit/phpunit-mock-objects": "~2.3", - "sebastian/comparator": "~1.2.2", - "sebastian/diff": "~1.2", - "sebastian/environment": "~1.3", - "sebastian/exporter": "~1.2", - "sebastian/global-state": "~1.0", - "sebastian/version": "~1.0", - "symfony/yaml": "~2.1|~3.0" - }, - "suggest": { - "phpunit/php-invoker": "~1.1" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.8.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "time": "2017-06-21T08:07:12+00:00" - }, - { - "name": "phpunit/phpunit-mock-objects", - "version": "2.3.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", - "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": ">=5.3.3", - "phpunit/php-text-template": "~1.2", - "sebastian/exporter": "~1.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "suggest": { - "ext-soap": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" - ], - "abandoned": true, - "time": "2015-10-02T06:51:40+00:00" - }, - { - "name": "sebastian/comparator", - "version": "1.2.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2 || ~2.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "http://www.github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "time": "2017-01-29T09:50:25+00:00" - }, - { - "name": "sebastian/diff", - "version": "1.4.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff" - ], - "time": "2017-05-22T07:24:03+00:00" - }, - { - "name": "sebastian/environment", - "version": "1.3.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea", - "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "time": "2016-08-18T05:49:44+00:00" - }, - { - "name": "sebastian/exporter", - "version": "1.2.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", - "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "sebastian/recursion-context": "~1.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "time": "2016-06-17T09:04:28+00:00" - }, - { - "name": "sebastian/global-state", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.2" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "time": "2015-10-12T03:26:01+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "1.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7", - "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2016-10-03T07:41:43+00:00" - }, - { - "name": "sebastian/version", - "version": "1.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", - "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", - "shasum": "" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2015-06-21T13:59:46+00:00" - }, - { - "name": "symfony/browser-kit", - "version": "v4.4.44", - "source": { - "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb", - "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/dom-crawler": "^3.4|^4.0|^5.0", - "symfony/polyfill-php80": "^1.16" - }, - "require-dev": { - "symfony/css-selector": "^3.4|^4.0|^5.0", - "symfony/http-client": "^4.3|^5.0", - "symfony/mime": "^4.3|^5.0", - "symfony/process": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/process": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\BrowserKit\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-07-25T12:56:14+00:00" - } - ], - "aliases": [], - "minimum-stability": "dev", - "stability-flags": [], - "prefer-stable": true, - "prefer-lowest": false, - "platform": [], - "platform-dev": [], - "plugin-api-version": "1.1.0" -} diff --git a/tests/files/drupal8-base/config/sync/.gitkeep b/tests/files/drupal8-base/config/sync/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/files/drupal8-base/config/sync/.htaccess b/tests/files/drupal8-base/config/sync/.htaccess deleted file mode 100644 index 25776a3139..0000000000 --- a/tests/files/drupal8-base/config/sync/.htaccess +++ /dev/null @@ -1,24 +0,0 @@ -# Deny all requests from Apache 2.4+. - - Require all denied - - -# Deny all requests from Apache 2.0-2.2. - - Deny from all - - -# Turn off all options we don't need. -Options -Indexes -ExecCGI -Includes -MultiViews - -# Set the catch-all handler to prevent scripts from being executed. -SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006 - - # Override the handler again if we're run later in the evaluation list. - SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003 - - -# If we know how to do it safely, disable the PHP engine entirely. - - php_flag engine off - \ No newline at end of file diff --git a/tests/files/drupal8-base/docker-compose.yml b/tests/files/drupal8-base/docker-compose.yml deleted file mode 100644 index 4d830400de..0000000000 --- a/tests/files/drupal8-base/docker-compose.yml +++ /dev/null @@ -1,58 +0,0 @@ -services: - cli: - build: - context: . - dockerfile: lagoon/cli.dockerfile - image: builder - labels: - lagoon.type: cli-persistent - lagoon.persistent: /app/web/sites/default/files/ - lagoon.persistent.name: nginx - environment: - LAGOON_PROJECT: ci-drupal - LAGOON_ROUTE: drupal-mariadb.docker.amazee.io - volumes: - - .:/app:delegated - nginx: - networks: - - amazeeio-network - - default - build: - context: . - dockerfile: lagoon/nginx.dockerfile - labels: - lagoon.type: nginx-php-persistent - lagoon.persistent: /app/web/sites/default/files/ - lagoon.persistent.size: 1Gi - lagoon.name: nginx - lagoon.deployment.servicetype: nginx - volumes: - - .:/app:delegated - depends_on: - - cli - ports: - - "8080" - environment: - LAGOON_LOCALDEV_URL: drupal-mariadb.docker.amazee.io - php: - build: - context: . - dockerfile: lagoon/php.dockerfile - labels: - lagoon.type: nginx-php-persistent - lagoon.persistent: /app/web/sites/default/files/ - lagoon.name: nginx - lagoon.deployment.servicetype: php - volumes: - - .:/app:delegated - depends_on: - - cli - mariadb: - build: - context: . - dockerfile: lagoon/mariadb.dockerfile - labels: - lagoon.type: mariadb-single -networks: - amazeeio-network: - external: true diff --git a/tests/files/drupal8-base/drush/README.md b/tests/files/drupal8-base/drush/README.md deleted file mode 100644 index 9d7bd397ad..0000000000 --- a/tests/files/drupal8-base/drush/README.md +++ /dev/null @@ -1 +0,0 @@ -This directory contains commands, configuration and site aliases for Drush. See https://packagist.org/search/?type=drupal-drush for a directory of Drush commands installable via Composer. diff --git a/tests/files/drupal8-base/drush/aliases.drushrc.php b/tests/files/drupal8-base/drush/aliases.drushrc.php deleted file mode 100644 index e71b467dbd..0000000000 --- a/tests/files/drupal8-base/drush/aliases.drushrc.php +++ /dev/null @@ -1,37 +0,0 @@ - 'cache,cache_*,history,sessions,watchdog,feeds_log'); -$command_specific['sql-dump'] = array('structure-tables-list' => 'cache,cache_*,history,sessions,watchdog,feeds_log'); diff --git a/tests/files/drupal8-base/drush/policy.drush.inc b/tests/files/drupal8-base/drush/policy.drush.inc deleted file mode 100644 index 64cd62d0f6..0000000000 --- a/tests/files/drupal8-base/drush/policy.drush.inc +++ /dev/null @@ -1,38 +0,0 @@ -exists($root . '/'. $dir)) { - $fs->mkdir($root . '/'. $dir); - $fs->touch($root . '/'. $dir . '/.gitkeep'); - } - } - - // Create the files directory with chmod 0777 - if (!$fs->exists($root . '/sites/default/files')) { - $oldmask = umask(0); - $fs->mkdir($root . '/sites/default/files', 0777); - umask($oldmask); - $event->getIO()->write("Create a sites/default/files directory with chmod 0777"); - } - } - - /** - * Checks if the installed version of Composer is compatible. - * - * Composer 1.0.0 and higher consider a `composer install` without having a - * lock file present as equal to `composer update`. We do not ship with a lock - * file to avoid merge conflicts downstream, meaning that if a project is - * installed with an older version of Composer the scaffolding of Drupal will - * not be triggered. We check this here instead of in drupal-scaffold to be - * able to give immediate feedback to the end user, rather than failing the - * installation after going through the lengthy process of compiling and - * downloading the Composer dependencies. - * - * @see https://github.com/composer/composer/pull/5035 - */ - public static function checkComposerVersion(Event $event) { - $composer = $event->getComposer(); - $io = $event->getIO(); - - $version = $composer::VERSION; - - // The dev-channel of composer uses the git revision as version number, - // try to the branch alias instead. - if (preg_match('/^[0-9a-f]{40}$/i', $version)) { - $version = $composer::BRANCH_ALIAS_VERSION; - } - - // If Composer is installed through git we have no easy way to determine if - // it is new enough, just display a warning. - if ($version === '@package_version@' || $version === '@package_branch_alias_version@') { - $io->writeError('You are running a development version of Composer. If you experience problems, please update Composer to the latest stable version.'); - } - elseif (Comparator::lessThan($version, '1.0.0')) { - $io->writeError('Drupal-project requires Composer version 1.0.0 or higher. Please update your Composer before continuing.'); - exit(1); - } - } - -} diff --git a/tests/files/drupal8-base/web/.csslintrc b/tests/files/drupal8-base/web/.csslintrc deleted file mode 100644 index 177e4fcc7e..0000000000 --- a/tests/files/drupal8-base/web/.csslintrc +++ /dev/null @@ -1,40 +0,0 @@ ---errors=box-model, - display-property-grouping, - duplicate-background-images, - duplicate-properties, - empty-rules, - ids, - import, - important, - known-properties, - outline-none, - overqualified-elements, - qualified-headings, - shorthand, - star-property-hack, - text-indent, - underscore-property-hack, - unique-headings, - unqualified-attributes, - vendor-prefix, - zero-units ---ignore=adjoining-classes, - box-sizing, - bulletproof-font-face, - compatible-vendor-prefixes, - errors, - fallback-colors, - floats, - font-faces, - font-sizes, - gradients, - import-ie-limit, - order-alphabetical, - regex-selectors, - rules-count, - selector-max, - selector-max-approaching, - selector-newline, - universal-selector ---exclude-list=core/assets, - vendor diff --git a/tests/files/drupal8-base/web/.editorconfig b/tests/files/drupal8-base/web/.editorconfig deleted file mode 100644 index 686c443cec..0000000000 --- a/tests/files/drupal8-base/web/.editorconfig +++ /dev/null @@ -1,17 +0,0 @@ -# Drupal editor configuration normalization -# @see http://editorconfig.org/ - -# This is the top-most .editorconfig file; do not search in parent directories. -root = true - -# All files. -[*] -end_of_line = LF -indent_style = space -indent_size = 2 -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[composer.{json,lock}] -indent_size = 4 diff --git a/tests/files/drupal8-base/web/.eslintignore b/tests/files/drupal8-base/web/.eslintignore deleted file mode 100644 index 9c134873d4..0000000000 --- a/tests/files/drupal8-base/web/.eslintignore +++ /dev/null @@ -1,8 +0,0 @@ -core/**/* -vendor/**/* -sites/**/files/**/* -libraries/**/* -sites/**/libraries/**/* -profiles/**/libraries/**/* -**/js_test_files/**/* -**/node_modules/**/* diff --git a/tests/files/drupal8-base/web/.eslintrc.json b/tests/files/drupal8-base/web/.eslintrc.json deleted file mode 100644 index d4bbc92052..0000000000 --- a/tests/files/drupal8-base/web/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./core/.eslintrc.json" -} diff --git a/tests/files/drupal8-base/web/.gitattributes b/tests/files/drupal8-base/web/.gitattributes deleted file mode 100644 index a37894e8e4..0000000000 --- a/tests/files/drupal8-base/web/.gitattributes +++ /dev/null @@ -1,61 +0,0 @@ -# Drupal git normalization -# @see https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html -# @see https://www.drupal.org/node/1542048 - -# Normally these settings would be done with macro attributes for improved -# readability and easier maintenance. However macros can only be defined at the -# repository root directory. Drupal avoids making any assumptions about where it -# is installed. - -# Define text file attributes. -# - Treat them as text. -# - Ensure no CRLF line-endings, neither on checkout nor on checkin. -# - Detect whitespace errors. -# - Exposed by default in `git diff --color` on the CLI. -# - Validate with `git diff --check`. -# - Deny applying with `git apply --whitespace=error-all`. -# - Fix automatically with `git apply --whitespace=fix`. - -*.config text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.css text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.dist text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.engine text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php -*.html text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=html -*.inc text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php -*.install text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php -*.js text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.json text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.lock text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.map text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.md text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.module text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php -*.php text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php -*.po text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.profile text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php -*.script text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.sh text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php -*.sql text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.svg text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.theme text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php -*.twig text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.txt text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.xml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 -*.yml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 - -# Define binary file attributes. -# - Do not treat them as text. -# - Include binary diff in patches instead of "binary files differ." -*.eot -text diff -*.exe -text diff -*.gif -text diff -*.gz -text diff -*.ico -text diff -*.jpeg -text diff -*.jpg -text diff -*.otf -text diff -*.phar -text diff -*.png -text diff -*.svgz -text diff -*.ttf -text diff -*.woff -text diff -*.woff2 -text diff diff --git a/tests/files/drupal8-base/web/.ht.router.php b/tests/files/drupal8-base/web/.ht.router.php deleted file mode 100644 index 054f7119b0..0000000000 --- a/tests/files/drupal8-base/web/.ht.router.php +++ /dev/null @@ -1,65 +0,0 @@ - - - Require all denied - - - Order allow,deny - - - -# Don't show directory listings for URLs which map to a directory. -Options -Indexes - -# Set the default handler. -DirectoryIndex index.php index.html index.htm - -# Add correct encoding for SVGZ. -AddType image/svg+xml svg svgz -AddEncoding gzip svgz - -# Most of the following PHP settings cannot be changed at runtime. See -# sites/default/default.settings.php and -# Drupal\Core\DrupalKernel::bootEnvironment() for settings that can be -# changed at runtime. - -# PHP 7, Apache 1 and 2. - - php_value assert.active 0 - - -# Requires mod_expires to be enabled. - - # Enable expirations. - ExpiresActive On - - # Cache all files for 2 weeks after access (A). - ExpiresDefault A1209600 - - - # Do not allow PHP scripts to be cached unless they explicitly send cache - # headers themselves. Otherwise all scripts would have to overwrite the - # headers set by mod_expires if they want another caching behavior. This may - # fail if an error occurs early in the bootstrap process, and it may cause - # problems if a non-Drupal PHP file is installed in a subdirectory. - ExpiresActive Off - - - -# Set a fallback resource if mod_rewrite is not enabled. This allows Drupal to -# work without clean URLs. This requires Apache version >= 2.2.16. If Drupal is -# not accessed by the top level URL (i.e.: http://example.com/drupal/ instead of -# http://example.com/), the path to index.php will need to be adjusted. - - FallbackResource /index.php - - -# Various rewrite rules. - - RewriteEngine on - - # Set "protossl" to "s" if we were accessed via https://. This is used later - # if you enable "www." stripping or enforcement, in order to ensure that - # you don't bounce between http and https. - RewriteRule ^ - [E=protossl] - RewriteCond %{HTTPS} on - RewriteRule ^ - [E=protossl:s] - - # Make sure Authorization HTTP header is available to PHP - # even when running as CGI or FastCGI. - RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] - - # Block access to "hidden" directories whose names begin with a period. This - # includes directories used by version control systems such as Subversion or - # Git to store control files. Files whose names begin with a period, as well - # as the control files used by CVS, are protected by the FilesMatch directive - # above. - # - # NOTE: This only works when mod_rewrite is loaded. Without mod_rewrite, it is - # not possible to block access to entire directories from .htaccess because - # is not allowed here. - # - # If you do not have mod_rewrite installed, you should remove these - # directories from your webroot or otherwise protect them from being - # downloaded. - RewriteRule "/\.|^\.(?!well-known/)" - [F] - - # If your site can be accessed both with and without the 'www.' prefix, you - # can use one of the following settings to redirect users to your preferred - # URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option: - # - # To redirect all users to access the site WITH the 'www.' prefix, - # (http://example.com/foo will be redirected to http://www.example.com/foo) - # uncomment the following: - # RewriteCond %{HTTP_HOST} . - # RewriteCond %{HTTP_HOST} !^www\. [NC] - # RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] - # - # To redirect all users to access the site WITHOUT the 'www.' prefix, - # (http://www.example.com/foo will be redirected to http://example.com/foo) - # uncomment the following: - # RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] - # RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301] - - # Modify the RewriteBase if you are using Drupal in a subdirectory or in a - # VirtualDocumentRoot and the rewrite rules are not working properly. - # For example if your site is at http://example.com/drupal uncomment and - # modify the following line: - # RewriteBase /drupal - # - # If your site is running in a VirtualDocumentRoot at http://example.com/, - # uncomment the following line: - # RewriteBase / - - # Redirect common PHP files to their new locations. - RewriteCond %{REQUEST_URI} ^(.*)?/(install.php) [OR] - RewriteCond %{REQUEST_URI} ^(.*)?/(rebuild.php) - RewriteCond %{REQUEST_URI} !core - RewriteRule ^ %1/core/%2 [L,QSA,R=301] - - # Rewrite install.php during installation to see if mod_rewrite is working - RewriteRule ^core/install.php core/install.php?rewrite=ok [QSA,L] - - # Pass all requests not referring directly to files in the filesystem to - # index.php. - RewriteCond %{REQUEST_FILENAME} !-f - RewriteCond %{REQUEST_FILENAME} !-d - RewriteCond %{REQUEST_URI} !=/favicon.ico - RewriteRule ^ index.php [L] - - # For security reasons, deny access to other PHP files on public sites. - # Note: The following URI conditions are not anchored at the start (^), - # because Drupal may be located in a subdirectory. To further improve - # security, you can replace '!/' with '!^/'. - # Allow access to PHP files in /core (like authorize.php or install.php): - RewriteCond %{REQUEST_URI} !/core/[^/]*\.php$ - # Allow access to test-specific PHP files: - RewriteCond %{REQUEST_URI} !/core/modules/system/tests/https?.php - # Allow access to Statistics module's custom front controller. - # Copy and adapt this rule to directly execute PHP files in contributed or - # custom modules or to run another PHP application in the same directory. - RewriteCond %{REQUEST_URI} !/core/modules/statistics/statistics.php$ - # Deny access to any other PHP files that do not match the rules above. - # Specifically, disallow autoload.php from being served directly. - RewriteRule "^(.+/.*|autoload)\.php($|/)" - [F] - - # Rules to correctly serve gzip compressed CSS and JS files. - # Requires both mod_rewrite and mod_headers to be enabled. - - # Serve gzip compressed CSS files if they exist and the client accepts gzip. - RewriteCond %{HTTP:Accept-encoding} gzip - RewriteCond %{REQUEST_FILENAME}\.gz -s - RewriteRule ^(.*)\.css $1\.css\.gz [QSA] - - # Serve gzip compressed JS files if they exist and the client accepts gzip. - RewriteCond %{HTTP:Accept-encoding} gzip - RewriteCond %{REQUEST_FILENAME}\.gz -s - RewriteRule ^(.*)\.js $1\.js\.gz [QSA] - - # Serve correct content types, and prevent double compression. - RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1,E=no-brotli:1] - RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1,E=no-brotli:1] - - - # Serve correct encoding type. - Header set Content-Encoding gzip - # Force proxies to cache gzipped & non-gzipped css/js files separately. - Header append Vary Accept-Encoding - - - - -# Various header fixes. - - # Disable content sniffing, since it's an attack vector. - Header always set X-Content-Type-Options nosniff - # Disable Proxy header, since it's an attack vector. - RequestHeader unset Proxy - diff --git a/tests/files/drupal8-base/web/autoload.php b/tests/files/drupal8-base/web/autoload.php deleted file mode 100644 index 4722f6c9e0..0000000000 --- a/tests/files/drupal8-base/web/autoload.php +++ /dev/null @@ -1,17 +0,0 @@ -handle($request); -$response->send(); - -$kernel->terminate($request, $response); diff --git a/tests/files/drupal8-base/web/modules/.gitkeep b/tests/files/drupal8-base/web/modules/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/files/drupal8-base/web/profiles/.gitkeep b/tests/files/drupal8-base/web/profiles/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/files/drupal8-base/web/robots.txt b/tests/files/drupal8-base/web/robots.txt deleted file mode 100644 index 54da16277a..0000000000 --- a/tests/files/drupal8-base/web/robots.txt +++ /dev/null @@ -1,61 +0,0 @@ -# -# robots.txt -# -# This file is to prevent the crawling and indexing of certain parts -# of your site by web crawlers and spiders run by sites like Yahoo! -# and Google. By telling these "robots" where not to go on your site, -# you save bandwidth and server resources. -# -# This file will be ignored unless it is at the root of your host: -# Used: http://example.com/robots.txt -# Ignored: http://example.com/site/robots.txt -# -# For more information about the robots.txt standard, see: -# http://www.robotstxt.org/robotstxt.html - -User-agent: * -# CSS, JS, Images -Allow: /core/*.css$ -Allow: /core/*.css? -Allow: /core/*.js$ -Allow: /core/*.js? -Allow: /core/*.gif -Allow: /core/*.jpg -Allow: /core/*.jpeg -Allow: /core/*.png -Allow: /core/*.svg -Allow: /profiles/*.css$ -Allow: /profiles/*.css? -Allow: /profiles/*.js$ -Allow: /profiles/*.js? -Allow: /profiles/*.gif -Allow: /profiles/*.jpg -Allow: /profiles/*.jpeg -Allow: /profiles/*.png -Allow: /profiles/*.svg -# Directories -Disallow: /core/ -Disallow: /profiles/ -# Files -Disallow: /README.txt -Disallow: /web.config -# Paths (clean URLs) -Disallow: /admin/ -Disallow: /comment/reply/ -Disallow: /filter/tips -Disallow: /node/add/ -Disallow: /search/ -Disallow: /user/register/ -Disallow: /user/password/ -Disallow: /user/login/ -Disallow: /user/logout/ -# Paths (no clean URLs) -Disallow: /index.php/admin/ -Disallow: /index.php/comment/reply/ -Disallow: /index.php/filter/tips -Disallow: /index.php/node/add/ -Disallow: /index.php/search/ -Disallow: /index.php/user/password/ -Disallow: /index.php/user/register/ -Disallow: /index.php/user/login/ -Disallow: /index.php/user/logout/ diff --git a/tests/files/drupal8-base/web/sites/default/all.services.yml b/tests/files/drupal8-base/web/sites/default/all.services.yml deleted file mode 100644 index d167f7e611..0000000000 --- a/tests/files/drupal8-base/web/sites/default/all.services.yml +++ /dev/null @@ -1,4 +0,0 @@ -### amazee.io Drupal 8 all environment services file. -# -# This file should contain service definitions that are needed on all environments -# diff --git a/tests/files/drupal8-base/web/sites/default/all.settings.php b/tests/files/drupal8-base/web/sites/default/all.settings.php deleted file mode 100755 index 64c43d5b41..0000000000 --- a/tests/files/drupal8-base/web/sites/default/all.settings.php +++ /dev/null @@ -1,15 +0,0 @@ - 'databasename', - * 'username' => 'sqlusername', - * 'password' => 'sqlpassword', - * 'host' => 'localhost', - * 'port' => '3306', - * 'driver' => 'mysql', - * 'prefix' => '', - * 'collation' => 'utf8mb4_general_ci', - * ]; - * @endcode - */ -$databases = []; - -/** - * Customizing database settings. - * - * Many of the values of the $databases array can be customized for your - * particular database system. Refer to the sample in the section above as a - * starting point. - * - * The "driver" property indicates what Drupal database driver the - * connection should use. This is usually the same as the name of the - * database type, such as mysql or sqlite, but not always. The other - * properties will vary depending on the driver. For SQLite, you must - * specify a database file name in a directory that is writable by the - * webserver. For most other drivers, you must specify a - * username, password, host, and database name. - * - * Transaction support is enabled by default for all drivers that support it, - * including MySQL. To explicitly disable it, set the 'transactions' key to - * FALSE. - * Note that some configurations of MySQL, such as the MyISAM engine, don't - * support it and will proceed silently even if enabled. If you experience - * transaction related crashes with such configuration, set the 'transactions' - * key to FALSE. - * - * For each database, you may optionally specify multiple "target" databases. - * A target database allows Drupal to try to send certain queries to a - * different database if it can but fall back to the default connection if not. - * That is useful for primary/replica replication, as Drupal may try to connect - * to a replica server when appropriate and if one is not available will simply - * fall back to the single primary server (The terms primary/replica are - * traditionally referred to as master/slave in database server documentation). - * - * The general format for the $databases array is as follows: - * @code - * $databases['default']['default'] = $info_array; - * $databases['default']['replica'][] = $info_array; - * $databases['default']['replica'][] = $info_array; - * $databases['extra']['default'] = $info_array; - * @endcode - * - * In the above example, $info_array is an array of settings described above. - * The first line sets a "default" database that has one primary database - * (the second level default). The second and third lines create an array - * of potential replica databases. Drupal will select one at random for a given - * request as needed. The fourth line creates a new database with a name of - * "extra". - * - * You can optionally set prefixes for some or all database table names - * by using the 'prefix' setting. If a prefix is specified, the table - * name will be prepended with its value. Be sure to use valid database - * characters only, usually alphanumeric and underscore. If no prefixes - * are desired, leave it as an empty string ''. - * - * To have all database names prefixed, set 'prefix' as a string: - * @code - * 'prefix' => 'main_', - * @endcode - * - * Per-table prefixes are deprecated as of Drupal 8.2, and will be removed in - * Drupal 9.0. After that, only a single prefix for all tables will be - * supported. - * - * To provide prefixes for specific tables, set 'prefix' as an array. - * The array's keys are the table names and the values are the prefixes. - * The 'default' element is mandatory and holds the prefix for any tables - * not specified elsewhere in the array. Example: - * @code - * 'prefix' => [ - * 'default' => 'main_', - * 'users' => 'shared_', - * 'sessions' => 'shared_', - * 'role' => 'shared_', - * 'authmap' => 'shared_', - * ], - * @endcode - * You can also use a reference to a schema/database as a prefix. This may be - * useful if your Drupal installation exists in a schema that is not the default - * or you want to access several databases from the same code base at the same - * time. - * Example: - * @code - * 'prefix' => [ - * 'default' => 'main.', - * 'users' => 'shared.', - * 'sessions' => 'shared.', - * 'role' => 'shared.', - * 'authmap' => 'shared.', - * ]; - * @endcode - * NOTE: MySQL and SQLite's definition of a schema is a database. - * - * Advanced users can add or override initial commands to execute when - * connecting to the database server, as well as PDO connection settings. For - * example, to enable MySQL SELECT queries to exceed the max_join_size system - * variable, and to reduce the database connection timeout to 5 seconds: - * @code - * $databases['default']['default'] = [ - * 'init_commands' => [ - * 'big_selects' => 'SET SQL_BIG_SELECTS=1', - * ], - * 'pdo' => [ - * PDO::ATTR_TIMEOUT => 5, - * ], - * ]; - * @endcode - * - * WARNING: The above defaults are designed for database portability. Changing - * them may cause unexpected behavior, including potential data loss. See - * https://www.drupal.org/developing/api/database/configuration for more - * information on these defaults and the potential issues. - * - * More details can be found in the constructor methods for each driver: - * - \Drupal\Core\Database\Driver\mysql\Connection::__construct() - * - \Drupal\Core\Database\Driver\pgsql\Connection::__construct() - * - \Drupal\Core\Database\Driver\sqlite\Connection::__construct() - * - * Sample Database configuration format for PostgreSQL (pgsql): - * @code - * $databases['default']['default'] = [ - * 'driver' => 'pgsql', - * 'database' => 'databasename', - * 'username' => 'sqlusername', - * 'password' => 'sqlpassword', - * 'host' => 'localhost', - * 'prefix' => '', - * ]; - * @endcode - * - * Sample Database configuration format for SQLite (sqlite): - * @code - * $databases['default']['default'] = [ - * 'driver' => 'sqlite', - * 'database' => '/path/to/databasefilename', - * ]; - * @endcode - */ - -/** - * Location of the site configuration files. - * - * The $settings['config_sync_directory'] specifies the location of file system - * directory used for syncing configuration data. On install, the directory is - * created. This is used for configuration imports. - * - * The default location for this directory is inside a randomly-named - * directory in the public files path. The setting below allows you to set - * its location. - */ -# $settings['config_sync_directory'] = '/directory/outside/webroot'; - -/** - * Settings: - * - * $settings contains environment-specific configuration, such as the files - * directory and reverse proxy address, and temporary configuration, such as - * security overrides. - * - * @see \Drupal\Core\Site\Settings::get() - */ - -/** - * Salt for one-time login links, cancel links, form tokens, etc. - * - * This variable will be set to a random value by the installer. All one-time - * login links will be invalidated if the value is changed. Note that if your - * site is deployed on a cluster of web servers, you must ensure that this - * variable has the same value on each server. - * - * For enhanced security, you may set this variable to the contents of a file - * outside your document root; you should also ensure that this file is not - * stored with backups of your database. - * - * Example: - * @code - * $settings['hash_salt'] = file_get_contents('/home/example/salt.txt'); - * @endcode - */ -$settings['hash_salt'] = ''; - -/** - * Deployment identifier. - * - * Drupal's dependency injection container will be automatically invalidated and - * rebuilt when the Drupal core version changes. When updating contributed or - * custom code that changes the container, changing this identifier will also - * allow the container to be invalidated as soon as code is deployed. - */ -# $settings['deployment_identifier'] = \Drupal::VERSION; - -/** - * Access control for update.php script. - * - * If you are updating your Drupal installation using the update.php script but - * are not logged in using either an account with the "Administer software - * updates" permission or the site maintenance account (the account that was - * created during installation), you will need to modify the access check - * statement below. Change the FALSE to a TRUE to disable the access check. - * After finishing the upgrade, be sure to open this file again and change the - * TRUE back to a FALSE! - */ -$settings['update_free_access'] = FALSE; - -/** - * External access proxy settings: - * - * If your site must access the Internet via a web proxy then you can enter the - * proxy settings here. Set the full URL of the proxy, including the port, in - * variables: - * - $settings['http_client_config']['proxy']['http']: The proxy URL for HTTP - * requests. - * - $settings['http_client_config']['proxy']['https']: The proxy URL for HTTPS - * requests. - * You can pass in the user name and password for basic authentication in the - * URLs in these settings. - * - * You can also define an array of host names that can be accessed directly, - * bypassing the proxy, in $settings['http_client_config']['proxy']['no']. - */ -# $settings['http_client_config']['proxy']['http'] = 'http://proxy_user:proxy_pass@example.com:8080'; -# $settings['http_client_config']['proxy']['https'] = 'http://proxy_user:proxy_pass@example.com:8080'; -# $settings['http_client_config']['proxy']['no'] = ['127.0.0.1', 'localhost']; - -/** - * Reverse Proxy Configuration: - * - * Reverse proxy servers are often used to enhance the performance - * of heavily visited sites and may also provide other site caching, - * security, or encryption benefits. In an environment where Drupal - * is behind a reverse proxy, the real IP address of the client should - * be determined such that the correct client IP address is available - * to Drupal's logging, statistics, and access management systems. In - * the most simple scenario, the proxy server will add an - * X-Forwarded-For header to the request that contains the client IP - * address. However, HTTP headers are vulnerable to spoofing, where a - * malicious client could bypass restrictions by setting the - * X-Forwarded-For header directly. Therefore, Drupal's proxy - * configuration requires the IP addresses of all remote proxies to be - * specified in $settings['reverse_proxy_addresses'] to work correctly. - * - * Enable this setting to get Drupal to determine the client IP from the - * X-Forwarded-For header. If you are unsure about this setting, do not have a - * reverse proxy, or Drupal operates in a shared hosting environment, this - * setting should remain commented out. - * - * In order for this setting to be used you must specify every possible - * reverse proxy IP address in $settings['reverse_proxy_addresses']. - * If a complete list of reverse proxies is not available in your - * environment (for example, if you use a CDN) you may set the - * $_SERVER['REMOTE_ADDR'] variable directly in settings.php. - * Be aware, however, that it is likely that this would allow IP - * address spoofing unless more advanced precautions are taken. - */ -# $settings['reverse_proxy'] = TRUE; - -/** - * Specify every reverse proxy IP address in your environment. - * This setting is required if $settings['reverse_proxy'] is TRUE. - */ -# $settings['reverse_proxy_addresses'] = ['a.b.c.d', ...]; - -/** - * Reverse proxy trusted headers. - * - * Sets which headers to trust from your reverse proxy. - * - * Common values are: - * - \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_ALL - * - \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED - * - * Note the default value of - * @code - * \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_ALL | \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED - * @endcode - * is not secure by default. The value should be set to only the specific - * headers the reverse proxy uses. For example: - * @code - * \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_ALL - * @endcode - * This would trust the following headers: - * - X_FORWARDED_FOR - * - X_FORWARDED_HOST - * - X_FORWARDED_PROTO - * - X_FORWARDED_PORT - * - * @see \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_ALL - * @see \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED - * @see \Symfony\Component\HttpFoundation\Request::setTrustedProxies - */ -# $settings['reverse_proxy_trusted_headers'] = \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_ALL | \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED; - - -/** - * Page caching: - * - * By default, Drupal sends a "Vary: Cookie" HTTP header for anonymous page - * views. This tells a HTTP proxy that it may return a page from its local - * cache without contacting the web server, if the user sends the same Cookie - * header as the user who originally requested the cached page. Without "Vary: - * Cookie", authenticated users would also be served the anonymous page from - * the cache. If the site has mostly anonymous users except a few known - * editors/administrators, the Vary header can be omitted. This allows for - * better caching in HTTP proxies (including reverse proxies), i.e. even if - * clients send different cookies, they still get content served from the cache. - * However, authenticated users should access the site directly (i.e. not use an - * HTTP proxy, and bypass the reverse proxy if one is used) in order to avoid - * getting cached pages from the proxy. - */ -# $settings['omit_vary_cookie'] = TRUE; - - -/** - * Cache TTL for client error (4xx) responses. - * - * Items cached per-URL tend to result in a large number of cache items, and - * this can be problematic on 404 pages which by their nature are unbounded. A - * fixed TTL can be set for these items, defaulting to one hour, so that cache - * backends which do not support LRU can purge older entries. To disable caching - * of client error responses set the value to 0. Currently applies only to - * page_cache module. - */ -# $settings['cache_ttl_4xx'] = 3600; - -/** - * Expiration of cached forms. - * - * Drupal's Form API stores details of forms in a cache and these entries are - * kept for at least 6 hours by default. Expired entries are cleared by cron. - * - * @see \Drupal\Core\Form\FormCache::setCache() - */ -# $settings['form_cache_expiration'] = 21600; - -/** - * Class Loader. - * - * If the APC extension is detected, the Symfony APC class loader is used for - * performance reasons. Detection can be prevented by setting - * class_loader_auto_detect to false, as in the example below. - */ -# $settings['class_loader_auto_detect'] = FALSE; - -/* - * If the APC extension is not detected, either because APC is missing or - * because auto-detection has been disabled, auto-loading falls back to - * Composer's ClassLoader, which is good for development as it does not break - * when code is moved in the file system. You can also decorate the base class - * loader with another cached solution than the Symfony APC class loader, as - * all production sites should have a cached class loader of some sort enabled. - * - * To do so, you may decorate and replace the local $class_loader variable. For - * example, to use Symfony's APC class loader without automatic detection, - * uncomment the code below. - */ -/* -if ($settings['hash_salt']) { - $prefix = 'drupal.' . hash('sha256', 'drupal.' . $settings['hash_salt']); - $apc_loader = new \Symfony\Component\ClassLoader\ApcClassLoader($prefix, $class_loader); - unset($prefix); - $class_loader->unregister(); - $apc_loader->register(); - $class_loader = $apc_loader; -} -*/ - -/** - * Authorized file system operations: - * - * The Update Manager module included with Drupal provides a mechanism for - * site administrators to securely install missing updates for the site - * directly through the web user interface. On securely-configured servers, - * the Update manager will require the administrator to provide SSH or FTP - * credentials before allowing the installation to proceed; this allows the - * site to update the new files as the user who owns all the Drupal files, - * instead of as the user the webserver is running as. On servers where the - * webserver user is itself the owner of the Drupal files, the administrator - * will not be prompted for SSH or FTP credentials (note that these server - * setups are common on shared hosting, but are inherently insecure). - * - * Some sites might wish to disable the above functionality, and only update - * the code directly via SSH or FTP themselves. This setting completely - * disables all functionality related to these authorized file operations. - * - * @see https://www.drupal.org/node/244924 - * - * Remove the leading hash signs to disable. - */ -# $settings['allow_authorize_operations'] = FALSE; - -/** - * Default mode for directories and files written by Drupal. - * - * Value should be in PHP Octal Notation, with leading zero. - */ -# $settings['file_chmod_directory'] = 0775; -# $settings['file_chmod_file'] = 0664; - -/** - * Public file base URL: - * - * An alternative base URL to be used for serving public files. This must - * include any leading directory path. - * - * A different value from the domain used by Drupal to be used for accessing - * public files. This can be used for a simple CDN integration, or to improve - * security by serving user-uploaded files from a different domain or subdomain - * pointing to the same server. Do not include a trailing slash. - */ -# $settings['file_public_base_url'] = 'http://downloads.example.com/files'; - -/** - * Public file path: - * - * A local file system path where public files will be stored. This directory - * must exist and be writable by Drupal. This directory must be relative to - * the Drupal installation directory and be accessible over the web. - */ -# $settings['file_public_path'] = 'sites/default/files'; - -/** - * Private file path: - * - * A local file system path where private files will be stored. This directory - * must be absolute, outside of the Drupal installation directory and not - * accessible over the web. - * - * Note: Caches need to be cleared when this value is changed to make the - * private:// stream wrapper available to the system. - * - * See https://www.drupal.org/documentation/modules/file for more information - * about securing private files. - */ -# $settings['file_private_path'] = ''; - -/** - * Temporary file path: - * - * A local file system path where temporary files will be stored. This directory - * must be absolute, outside of the Drupal installation directory and not - * accessible over the web. - * - * If this is not set, the default for the operating system will be used. - * - * @see \Drupal\Component\FileSystem\FileSystem::getOsTemporaryDirectory() - */ -# $settings['file_temp_path'] = '/tmp'; - -/** - * Session write interval: - * - * Set the minimum interval between each session write to database. - * For performance reasons it defaults to 180. - */ -# $settings['session_write_interval'] = 180; - -/** - * String overrides: - * - * To override specific strings on your site with or without enabling the Locale - * module, add an entry to this list. This functionality allows you to change - * a small number of your site's default English language interface strings. - * - * Remove the leading hash signs to enable. - * - * The "en" part of the variable name, is dynamic and can be any langcode of - * any added language. (eg locale_custom_strings_de for german). - */ -# $settings['locale_custom_strings_en'][''] = [ -# 'forum' => 'Discussion board', -# '@count min' => '@count minutes', -# ]; - -/** - * A custom theme for the offline page: - * - * This applies when the site is explicitly set to maintenance mode through the - * administration page or when the database is inactive due to an error. - * The template file should also be copied into the theme. It is located inside - * 'core/modules/system/templates/maintenance-page.html.twig'. - * - * Note: This setting does not apply to installation and update pages. - */ -# $settings['maintenance_theme'] = 'bartik'; - -/** - * PHP settings: - * - * To see what PHP settings are possible, including whether they can be set at - * runtime (by using ini_set()), read the PHP documentation: - * http://php.net/manual/ini.list.php - * See \Drupal\Core\DrupalKernel::bootEnvironment() for required runtime - * settings and the .htaccess file for non-runtime settings. - * Settings defined there should not be duplicated here so as to avoid conflict - * issues. - */ - -/** - * If you encounter a situation where users post a large amount of text, and - * the result is stripped out upon viewing but can still be edited, Drupal's - * output filter may not have sufficient memory to process it. If you - * experience this issue, you may wish to uncomment the following two lines - * and increase the limits of these variables. For more information, see - * http://php.net/manual/pcre.configuration.php. - */ -# ini_set('pcre.backtrack_limit', 200000); -# ini_set('pcre.recursion_limit', 200000); - -/** - * Configuration overrides. - * - * To globally override specific configuration values for this site, - * set them here. You usually don't need to use this feature. This is - * useful in a configuration file for a vhost or directory, rather than - * the default settings.php. - * - * Note that any values you provide in these variable overrides will not be - * viewable from the Drupal administration interface. The administration - * interface displays the values stored in configuration so that you can stage - * changes to other environments that don't have the overrides. - * - * There are particular configuration values that are risky to override. For - * example, overriding the list of installed modules in 'core.extension' is not - * supported as module install or uninstall has not occurred. Other examples - * include field storage configuration, because it has effects on database - * structure, and 'core.menu.static_menu_link_overrides' since this is cached in - * a way that is not config override aware. Also, note that changing - * configuration values in settings.php will not fire any of the configuration - * change events. - */ -# $config['system.site']['name'] = 'My Drupal site'; -# $config['user.settings']['anonymous'] = 'Visitor'; - -/** - * Fast 404 pages: - * - * Drupal can generate fully themed 404 pages. However, some of these responses - * are for images or other resource files that are not displayed to the user. - * This can waste bandwidth, and also generate server load. - * - * The options below return a simple, fast 404 page for URLs matching a - * specific pattern: - * - $config['system.performance']['fast_404']['exclude_paths']: A regular - * expression to match paths to exclude, such as images generated by image - * styles, or dynamically-resized images. The default pattern provided below - * also excludes the private file system. If you need to add more paths, you - * can add '|path' to the expression. - * - $config['system.performance']['fast_404']['paths']: A regular expression to - * match paths that should return a simple 404 page, rather than the fully - * themed 404 page. If you don't have any aliases ending in htm or html you - * can add '|s?html?' to the expression. - * - $config['system.performance']['fast_404']['html']: The html to return for - * simple 404 pages. - * - * Remove the leading hash signs if you would like to alter this functionality. - */ -# $config['system.performance']['fast_404']['exclude_paths'] = '/\/(?:styles)|(?:system\/files)\//'; -# $config['system.performance']['fast_404']['paths'] = '/\.(?:txt|png|gif|jpe?g|css|js|ico|swf|flv|cgi|bat|pl|dll|exe|asp)$/i'; -# $config['system.performance']['fast_404']['html'] = '404 Not Found

Not Found

The requested URL "@path" was not found on this server.

'; - -/** - * Load services definition file. - */ -$settings['container_yamls'][] = $app_root . '/' . $site_path . '/services.yml'; - -/** - * Override the default service container class. - * - * This is useful for example to trace the service container for performance - * tracking purposes, for testing a service container with an error condition or - * to test a service container that throws an exception. - */ -# $settings['container_base_class'] = '\Drupal\Core\DependencyInjection\Container'; - -/** - * Override the default yaml parser class. - * - * Provide a fully qualified class name here if you would like to provide an - * alternate implementation YAML parser. The class must implement the - * \Drupal\Component\Serialization\SerializationInterface interface. - */ -# $settings['yaml_parser_class'] = NULL; - -/** - * Trusted host configuration. - * - * Drupal core can use the Symfony trusted host mechanism to prevent HTTP Host - * header spoofing. - * - * To enable the trusted host mechanism, you enable your allowable hosts - * in $settings['trusted_host_patterns']. This should be an array of regular - * expression patterns, without delimiters, representing the hosts you would - * like to allow. - * - * For example: - * @code - * $settings['trusted_host_patterns'] = [ - * '^www\.example\.com$', - * ]; - * @endcode - * will allow the site to only run from www.example.com. - * - * If you are running multisite, or if you are running your site from - * different domain names (eg, you don't redirect http://www.example.com to - * http://example.com), you should specify all of the host patterns that are - * allowed by your site. - * - * For example: - * @code - * $settings['trusted_host_patterns'] = [ - * '^example\.com$', - * '^.+\.example\.com$', - * '^example\.org$', - * '^.+\.example\.org$', - * ]; - * @endcode - * will allow the site to run off of all variants of example.com and - * example.org, with all subdomains included. - */ - -/** - * The default list of directories that will be ignored by Drupal's file API. - * - * By default ignore node_modules and bower_components folders to avoid issues - * with common frontend tools and recursive scanning of directories looking for - * extensions. - * - * @see \Drupal\Core\File\FileSystemInterface::scanDirectory() - * @see \Drupal\Core\Extension\ExtensionDiscovery::scanDirectory() - */ -$settings['file_scan_ignore_directories'] = [ - 'node_modules', - 'bower_components', -]; - -/** - * The default number of entities to update in a batch process. - * - * This is used by update and post-update functions that need to go through and - * change all the entities on a site, so it is useful to increase this number - * if your hosting configuration (i.e. RAM allocation, CPU speed) allows for a - * larger number of entities to be processed in a single batch run. - */ -$settings['entity_update_batch_size'] = 50; - -/** - * Entity update backup. - * - * This is used to inform the entity storage handler that the backup tables as - * well as the original entity type and field storage definitions should be - * retained after a successful entity update process. - */ -$settings['entity_update_backup'] = TRUE; - -/** - * Load local development override configuration, if available. - * - * Use settings.local.php to override variables on secondary (staging, - * development, etc) installations of this site. Typically used to disable - * caching, JavaScript/CSS compression, re-routing of outgoing emails, and - * other things that should not happen on development and testing sites. - * - * Keep this code block at the end of this file to take full effect. - */ -# -# if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) { -# include $app_root . '/' . $site_path . '/settings.local.php'; -# } diff --git a/tests/files/drupal8-base/web/sites/default/development.services.yml b/tests/files/drupal8-base/web/sites/default/development.services.yml deleted file mode 100644 index 1f36d8ae4c..0000000000 --- a/tests/files/drupal8-base/web/sites/default/development.services.yml +++ /dev/null @@ -1,15 +0,0 @@ -### amazee.io Drupal 8 development environment services file. -# -# This file should contain service definitions that are needed on development environments -# -# It contains some defaults that the amazee.io team suggests, please edit them as required. -# -parameters: - twig.config: - debug: true # displays twig debug messages, developers like them :) - auto_reload: true # reloads the twig files on every request, so no drush cache clear is required - cache: false # No twig internal cache, important: check the example.settings.loca.php to fully fully disable the twig cache - -services: - cache.backend.null: # Defines a Cache Backend Factory which is just empty, it is not used by default - class: Drupal\Core\Cache\NullBackendFactory diff --git a/tests/files/drupal8-base/web/sites/default/development.settings.php b/tests/files/drupal8-base/web/sites/default/development.settings.php deleted file mode 100755 index 6a5c56ac54..0000000000 --- a/tests/files/drupal8-base/web/sites/default/development.settings.php +++ /dev/null @@ -1,29 +0,0 @@ - 'mysql', - 'database' => getenv('MARIADB_DATABASE') ?: 'drupal', - 'username' => getenv('MARIADB_USERNAME') ?: 'drupal', - 'password' => getenv('MARIADB_PASSWORD') ?: 'drupal', - 'host' => getenv('MARIADB_HOST') ?: 'mariadb', - 'port' => 3306, - 'prefix' => '', - ); -} - -### Lagoon Solr connection -// WARNING: you have to create a search_api server having "solr" machine name at -// /admin/config/search/search-api/add-server to make this work. -if (getenv('LAGOON')) { - $config['search_api.server.solr']['backend_config']['connector_config']['host'] = getenv('SOLR_HOST') ?: 'solr'; - $config['search_api.server.solr']['backend_config']['connector_config']['path'] = '/solr/'; - $config['search_api.server.solr']['backend_config']['connector_config']['core'] = getenv('SOLR_CORE') ?: 'drupal'; - $config['search_api.server.solr']['backend_config']['connector_config']['port'] = getenv('SOLR_PORT') ?: '8983'; - $config['search_api.server.solr']['backend_config']['connector_config']['http_user'] = (getenv('SOLR_USER') ?: ''); - $config['search_api.server.solr']['backend_config']['connector_config']['http']['http_user'] = (getenv('SOLR_USER') ?: ''); - $config['search_api.server.solr']['backend_config']['connector_config']['http_pass'] = (getenv('SOLR_PASSWORD') ?: ''); - $config['search_api.server.solr']['backend_config']['connector_config']['http']['http_pass'] = (getenv('SOLR_PASSWORD') ?: ''); - $config['search_api.server.solr']['name'] = 'Lagoon Solr - Environment: ' . getenv('LAGOON_PROJECT'); -} - -### Lagoon Redis connection -if (getenv('LAGOON')){ - $settings['redis.connection']['interface'] = 'PhpRedis'; - $settings['redis.connection']['host'] = getenv('REDIS_HOST') ?: 'redis'; - $settings['redis.connection']['port'] = getenv('REDIS_SERVICE_PORT') ?: '6379'; - - // # Do not set the cache during installations of Drupal - // if (!drupal_installation_attempted()) { - // $settings['cache']['default'] = 'cache.backend.redis'; - // } -} - -### Lagoon Varnish & Reverse proxy settings -if (getenv('LAGOON')) { - $settings['reverse_proxy'] = TRUE; - - $varnish_hosts = explode(',', getenv('VARNISH_HOSTS') ?: 'varnish'); - array_walk($varnish_hosts, function(&$value, $key) { $value .= ':6082'; }); - - $config['varnish.settings']['varnish_control_terminal'] = implode(" ", $varnish_hosts); - $config['varnish.settings']['varnish_control_key'] = getenv('VARNISH_SECRET') ?: 'lagoon_default_secret'; - $config['varnish.settings']['varnish_version'] = 4; -} - -### Trusted Host Patterns, see https://www.drupal.org/node/2410395 for more information. -### If your site runs on multiple domains, you need to add these domains here -if (getenv('LAGOON_ROUTES')) { - $settings['trusted_host_patterns'] = array( - '^' . str_replace(['.', 'https://', 'http://', ','], ['\.', '', '', '|'], getenv('LAGOON_ROUTES')) . '$', // escape dots, remove schema, use commas as regex separator - ); -} - -### Temp directory -if (getenv('TMP')) { - $config['system.file']['path']['temporary'] = getenv('TMP'); -} - -### Hash Salt -if (getenv('LAGOON')) { - $settings['hash_salt'] = hash('sha256', getenv('LAGOON_PROJECT')); -} - -// Settings for all environments -if (file_exists(__DIR__ . '/all.settings.php')) { - include __DIR__ . '/all.settings.php'; -} - -// Services for all environments -if (file_exists(__DIR__ . '/all.services.yml')) { - $settings['container_yamls'][] = __DIR__ . '/all.services.yml'; -} - -if(getenv('LAGOON_ENVIRONMENT_TYPE')){ - // Environment specific settings files. - if (file_exists(__DIR__ . '/' . getenv('LAGOON_ENVIRONMENT_TYPE') . '.settings.php')) { - include __DIR__ . '/' . getenv('LAGOON_ENVIRONMENT_TYPE') . '.settings.php'; - } - - // Environment specific services files. - if (file_exists(__DIR__ . '/' . getenv('LAGOON_ENVIRONMENT_TYPE') . '.services.yml')) { - $settings['container_yamls'][] = __DIR__ . '/' . getenv('LAGOON_ENVIRONMENT_TYPE') . '.services.yml'; - } -} - -// Last: this servers specific settings files. -if (file_exists(__DIR__ . '/settings.local.php')) { - include __DIR__ . '/settings.local.php'; -} -// Last: This server specific services file. -if (file_exists(__DIR__ . '/services.local.yml')) { - $settings['container_yamls'][] = __DIR__ . '/services.local.yml'; -} diff --git a/tests/files/drupal8-base/web/sites/example.sites.php b/tests/files/drupal8-base/web/sites/example.sites.php deleted file mode 100644 index daaf68272a..0000000000 --- a/tests/files/drupal8-base/web/sites/example.sites.php +++ /dev/null @@ -1,57 +0,0 @@ -..' => 'directory'. As an - * example, to map https://www.drupal.org:8080/mysite/test to the configuration - * directory sites/example.com, the array should be defined as: - * @code - * $sites = [ - * '8080.www.drupal.org.mysite.test' => 'example.com', - * ]; - * @endcode - * The URL, https://www.drupal.org:8080/mysite/test/, could be a symbolic link - * or an Apache Alias directive that points to the Drupal root containing - * index.php. An alias could also be created for a subdomain. See the - * @link https://www.drupal.org/documentation/install online Drupal installation guide @endlink - * for more information on setting up domains, subdomains, and subdirectories. - * - * The following examples look for a site configuration in sites/example.com: - * @code - * URL: http://dev.drupal.org - * $sites['dev.drupal.org'] = 'example.com'; - * - * URL: http://localhost/example - * $sites['localhost.example'] = 'example.com'; - * - * URL: http://localhost:8080/example - * $sites['8080.localhost.example'] = 'example.com'; - * - * URL: https://www.drupal.org:8080/mysite/test/ - * $sites['8080.www.drupal.org.mysite.test'] = 'example.com'; - * @endcode - * - * @see default.settings.php - * @see \Drupal\Core\DrupalKernel::getSitePath() - * @see https://www.drupal.org/documentation/install/multi-site - */ diff --git a/tests/files/drupal8-base/web/themes/.gitkeep b/tests/files/drupal8-base/web/themes/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/files/drupal8-base/web/update.php b/tests/files/drupal8-base/web/update.php deleted file mode 100644 index 59e808ed24..0000000000 --- a/tests/files/drupal8-base/web/update.php +++ /dev/null @@ -1,31 +0,0 @@ -handle($request); -$response->send(); - -$kernel->terminate($request, $response); diff --git a/tests/files/drupal8-base/web/web.config b/tests/files/drupal8-base/web/web.config deleted file mode 100644 index 8dff0b27e2..0000000000 --- a/tests/files/drupal8-base/web/web.config +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/tests/drupal/drush-sa.yaml b/tests/tests/drupal/drush-sa.yaml deleted file mode 100644 index 37c00fcbd8..0000000000 --- a/tests/tests/drupal/drush-sa.yaml +++ /dev/null @@ -1,240 +0,0 @@ -- name: "{{ testname }} FIRST - init git, add files, commit, git push" - hosts: localhost - serial: 1 - vars: - git_files: "drupal8-base/" - branch: "drush-first" - tasks: - - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml - - set_fact: - current_head_first: "{{ current_head }}" - -- name: "{{ testname }} FIRST - api deployEnvironmentBranch on {{ project }}, which should deploy the first commit" - hosts: localhost - serial: 1 - vars: - branch: "drush-first" - project: "{{ project }}" - namespace: "{{ project | regex_replace('_', '-') }}-drush-first" - tasks: - - ansible.builtin.include_tasks: ../../tasks/api/deploy-no-sha.yaml - -- name: "{{ testname }} SECOND - init git, add files, commit, git push" - hosts: localhost - serial: 1 - vars: - git_files: "drupal8-base/" - branch: "drush-second" - tasks: - - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml - - set_fact: - current_head_second: "{{ current_head }}" - -- name: "{{ testname }} SECOND - api deployEnvironmentBranch on {{ project }}, which should deploy the first commit" - hosts: localhost - serial: 1 - vars: - branch: "drush-second" - project: "{{ project }}" - namespace: "{{ project | regex_replace('_', '-') }}-drush-second" - tasks: - - ansible.builtin.include_tasks: ../../tasks/api/deploy-no-sha.yaml - -- ansible.builtin.import_playbook: check-deployed.yaml - vars: - expected_head: "{{ current_head_first }}" - expected_branch: "drush-first" - branch: "drush-first" - project: "{{ project }}" - -- ansible.builtin.import_playbook: check-deployed.yaml - vars: - expected_head: "{{ current_head_second }}" - expected_branch: "drush-second" - branch: "drush-second" - project: "{{ project }}" - -- name: "{{ testname }} - check if we can connect via oc project user and no service" - hosts: localhost - serial: 1 - vars: - username: "{{ project }}-drush-first" - command: env - expected_content: LAGOON=cli-drupal - tasks: - - ansible.builtin.include_tasks: ../../tasks/ssh/ssh-command.yaml - -- name: "{{ testname }} - check if we can connect via oc project user defining service and container" - hosts: localhost - serial: 1 - vars: - username: "{{ project }}-drush-first" - command: service=nginx container=php env - expected_content: LAGOON=php - tasks: - - ansible.builtin.include_tasks: ../../tasks/ssh/ssh-command.yaml - -- name: "{{ testname }} - check if drush site alias shows up @drush-second" - hosts: localhost - serial: 1 - vars: - username: "{{ project }}-drush-first" - command: drush sa - expected_content: "@drush-second" - tasks: - - ansible.builtin.include_tasks: ../../tasks/ssh/ssh-command.yaml - -- name: "{{ testname }} - set remote drupal site 'drush-second' name with random number" - hosts: localhost - serial: 1 - vars: - username: "{{ project }}-drush-first" - command: drush @drush-second -y cset system.site name "CHANGED-{{ random_number }}" - expected_content: "" - tasks: - - set_fact: - random_number: "{{ 99999999 | random }}" - - ansible.builtin.include_tasks: ../../tasks/ssh/ssh-command.yaml - -- name: "{{ testname }} - check if site name set on remote drupal 'drush-second' has worked" - hosts: localhost - serial: 1 - vars: - username: "{{ project }}-drush-first" - command: drush @drush-second -y cget system.site name - expected_content: "CHANGED-{{ random_number }}" - tasks: - - ansible.builtin.include_tasks: ../../tasks/ssh/ssh-command.yaml - -- name: "{{ testname }} - check if {{ project }} is deployed with searching for the hash, nginx route" - hosts: localhost - serial: 1 - vars: - url: "http://nginx.{{ project | regex_replace('_', '-') }}.drush-second.{{ route_suffix }}" - expected_content: "CHANGED-{{ random_number }}" - tasks: - - ansible.builtin.include_tasks: ../../checks/check-url-content.yaml - -- name: "{{ testname }} - drush sql-sync from remote drupal site 'drush-second' to local" - hosts: localhost - serial: 1 - vars: - username: "{{ project }}-drush-first" - command: drush -y sql-sync @drush-second @self - expected_content: "" - tasks: - - ansible.builtin.include_tasks: ../../tasks/ssh/ssh-command.yaml - -- name: "{{ testname }} - check if random number now appears on own drupal" - hosts: localhost - serial: 1 - vars: - username: "{{ project }}-drush-first" - command: drush -y cget system.site name - expected_content: "CHANGED-{{ random_number }}" - tasks: - - ansible.builtin.include_tasks: ../../tasks/ssh/ssh-command.yaml - -- name: "{{ testname }} - check if {{ project }} is deployed with searching for the hash, nginx route" - hosts: localhost - serial: 1 - vars: - url: "http://nginx.{{ project | regex_replace('_', '-') }}.drush-first.{{ route_suffix }}" - expected_content: "CHANGED-{{ random_number }}" - tasks: - - ansible.builtin.include_tasks: ../../checks/check-url-content.yaml - -- name: "{{ testname }} - api deleteEnvironment on {{ project }}, which should remove all resources" - hosts: localhost - serial: 1 - vars: - project: "{{ project }}" - branch: "drush-first" - tasks: - - ansible.builtin.include_tasks: ../../tasks/api/delete-environment.yaml - -- name: "{{ testname }} - api deleteEnvironment on {{ project }}, which should remove all resources" - hosts: localhost - serial: 1 - vars: - project: "{{ project }}" - branch: "drush-second" - tasks: - - ansible.builtin.include_tasks: ../../tasks/api/delete-environment.yaml - -- name: "{{ testname }} - check if site for {{ project }} does not exist anymore" - hosts: localhost - serial: 1 - vars: - url: "http://nginx.{{ project | regex_replace('_', '-') }}.drush-first.{{ route_suffix }}" - expected_returncode: "{{ del_status_code }}" - tasks: - - ansible.builtin.include_tasks: ../../checks/check-url-returncode.yaml - -- name: "{{ testname }} - check if site for {{ project }} does not exist anymore" - hosts: localhost - serial: 1 - vars: - url: "http://nginx.{{ project | regex_replace('_', '-') }}.drush-second.{{ route_suffix }}" - expected_returncode: "{{ del_status_code }}" - tasks: - - ansible.builtin.include_tasks: ../../checks/check-url-returncode.yaml - -- name: "{{ testname }} third - init git, add files, commit, git push" - hosts: localhost - serial: 1 - vars: - git_files: "drupal8-base/" - branch: "foo/bar" - tasks: - - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml - - set_fact: - current_head_third: "{{ current_head }}" - -- name: "{{ testname }} third - api deployEnvironmentBranch on {{ project }}, which should deploy the first commit" - hosts: localhost - serial: 1 - vars: - branch: "foo/bar" - project: "{{ project }}" - namespace: "{{ project | regex_replace('_', '-') }}-foo-bar" - tasks: - - ansible.builtin.include_tasks: ../../tasks/api/deploy-no-sha.yaml - -- ansible.builtin.import_playbook: check-deployed.yaml - vars: - expected_head: "{{ current_head_third }}" - expected_branch: "foo/bar" - branch: "foo/bar" - project: "{{ project }}" - -- name: "{{ testname }} - does ssh work" - hosts: localhost - serial: 1 - vars: - username: "{{ project }}-foo-bar" - command: drush @foo-bar ssh echo zzyzx - expected_content: "zzyzx" - tasks: - - ansible.builtin.include_tasks: ../../tasks/ssh/ssh-command.yaml - -- name: "{{ testname }} - api deleteEnvironment on {{ project }}, which should remove all resources" - hosts: localhost - serial: 1 - vars: - project: "{{ project }}" - branch: "foo/bar" - tasks: - - ansible.builtin.include_tasks: ../../tasks/api/delete-environment.yaml - -- name: "{{ testname }} - check if site for {{ project }} does not exist anymore" - hosts: localhost - serial: 1 - vars: - url: "http://nginx.{{ project | regex_replace('_', '-') }}.foo-bar.{{ route_suffix }}" - expected_returncode: "{{ del_status_code }}" - tasks: - - ansible.builtin.include_tasks: ../../checks/check-url-returncode.yaml diff --git a/tests/tests/drush.yaml b/tests/tests/drush.yaml index a3ebf261b1..52de8768f2 100644 --- a/tests/tests/drush.yaml +++ b/tests/tests/drush.yaml @@ -18,19 +18,3 @@ - ansible.builtin.import_playbook: api/delete-project.yaml vars: project: ci-drush-la-{{ cluster_type }} - -- ansible.builtin.import_playbook: api/add-project.yaml - vars: - project: ci-drush-sa-{{ cluster_type }} - git_repo_name: drush-sa.git - git_url: "{{ localgit_url }}/{{ git_repo_name }}" - -- ansible.builtin.import_playbook: drupal/drush-sa.yaml - vars: - testname: "DRUSH legacy {{ cluster_type|upper }}" - git_repo_name: drush-sa.git - project: ci-drush-sa-{{ cluster_type }} - -- ansible.builtin.import_playbook: api/delete-project.yaml - vars: - project: ci-drush-sa-{{ cluster_type }} From b3b989e8fb7f9f2bdc3501be07cd7315ce64f4b9 Mon Sep 17 00:00:00 2001 From: Toby Bellwood Date: Thu, 25 Jul 2024 10:21:28 +1000 Subject: [PATCH 4/8] tests: update node version to 22 --- .../Dockerfile | 4 +- .../package.json | 2 +- .../yarn.lock | 212 +++++---- .../Dockerfile | 4 +- .../package.json | 2 +- .../features-disable-inject-git-sha/yarn.lock | 212 +++++---- .../features-lagoon-type-override/Dockerfile | 4 +- .../package.json | 2 +- .../features-lagoon-type-override/yarn.lock | 212 +++++---- .../subfolder2/subfolder3/Dockerfile | 4 +- .../subfolder2/subfolder3/package.json | 2 +- .../subfolder2/subfolder3/yarn.lock | 212 +++++---- tests/files/features/Dockerfile | 4 +- tests/files/features/package.json | 2 +- tests/files/features/yarn.lock | 212 +++++---- tests/files/image-cache/Dockerfile | 4 +- tests/files/image-cache/package.json | 2 +- tests/files/image-cache/yarn.lock | 178 +++++--- tests/files/{node14 => node}/.dockerignore | 0 tests/files/{node14 => node}/.lagoon.yml | 0 tests/files/{node14 => node}/Dockerfile | 4 +- .../files/{node14 => node}/docker-compose.yml | 0 tests/files/{node14 => node}/index.js | 0 tests/files/{node16 => node}/package.json | 2 +- tests/files/{node16 => node}/yarn.lock | 212 +++++---- tests/files/node14/package.json | 12 - tests/files/node14/yarn.lock | 417 ------------------ tests/files/node16/.dockerignore | 1 - tests/files/node16/.lagoon.yml | 4 - tests/files/node16/Dockerfile | 37 -- tests/files/node16/docker-compose.yml | 18 - tests/files/node16/index.js | 32 -- tests/files/tasks/Dockerfile | 4 +- tests/files/tasks/package.json | 2 +- tests/files/tasks/yarn.lock | 178 +++++--- tests/tests/node.yaml | 14 +- 36 files changed, 1046 insertions(+), 1165 deletions(-) rename tests/files/{node14 => node}/.dockerignore (100%) rename tests/files/{node14 => node}/.lagoon.yml (100%) rename tests/files/{node14 => node}/Dockerfile (86%) rename tests/files/{node14 => node}/docker-compose.yml (100%) rename tests/files/{node14 => node}/index.js (100%) rename tests/files/{node16 => node}/package.json (86%) rename tests/files/{node16 => node}/yarn.lock (66%) delete mode 100644 tests/files/node14/package.json delete mode 100644 tests/files/node14/yarn.lock delete mode 100644 tests/files/node16/.dockerignore delete mode 100644 tests/files/node16/.lagoon.yml delete mode 100644 tests/files/node16/Dockerfile delete mode 100644 tests/files/node16/docker-compose.yml delete mode 100644 tests/files/node16/index.js diff --git a/tests/files/features-autogenerated-routes-disabled/Dockerfile b/tests/files/features-autogenerated-routes-disabled/Dockerfile index 8c8bbfcd9c..d53d4e88e2 100644 --- a/tests/files/features-autogenerated-routes-disabled/Dockerfile +++ b/tests/files/features-autogenerated-routes-disabled/Dockerfile @@ -1,10 +1,10 @@ ARG UPSTREAM_REPO ARG UPSTREAM_TAG -FROM ${UPSTREAM_REPO:-testlagoon}/node-16-builder:${UPSTREAM_TAG:-latest} as builder +FROM ${UPSTREAM_REPO:-testlagoon}/node-22-builder:${UPSTREAM_TAG:-latest} AS builder COPY package.json yarn.lock /app/ RUN yarn install -FROM ${UPSTREAM_REPO:-testlagoon}/node-16:${UPSTREAM_TAG:-latest} +FROM ${UPSTREAM_REPO:-testlagoon}/node-22:${UPSTREAM_TAG:-latest} COPY --from=builder /app/node_modules /app/node_modules COPY . /app/ diff --git a/tests/files/features-autogenerated-routes-disabled/package.json b/tests/files/features-autogenerated-routes-disabled/package.json index b577e5e022..6171c0e6e8 100644 --- a/tests/files/features-autogenerated-routes-disabled/package.json +++ b/tests/files/features-autogenerated-routes-disabled/package.json @@ -4,7 +4,7 @@ "main": "index.js", "license": "MIT", "dependencies": { - "express": "^4.15.3" + "express": "^4.19.0" }, "scripts": { "start": "node index.js" diff --git a/tests/files/features-autogenerated-routes-disabled/yarn.lock b/tests/files/features-autogenerated-routes-disabled/yarn.lock index 113b25961b..b3cf65ae7c 100644 --- a/tests/files/features-autogenerated-routes-disabled/yarn.lock +++ b/tests/files/features-autogenerated-routes-disabled/yarn.lock @@ -13,15 +13,15 @@ accepts@~1.3.8: array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -29,7 +29,7 @@ body-parser@1.20.1: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.1" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" @@ -38,13 +38,16 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" content-disposition@0.5.4: version "0.5.4" @@ -53,20 +56,20 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== debug@2.6.9: version "2.6.9" @@ -75,6 +78,15 @@ debug@2.6.9: dependencies: ms "2.0.0" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -88,34 +100,46 @@ destroy@1.2.0: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -express@^4.15.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== +express@^4.19.0: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.1" + body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -163,33 +187,54 @@ forwarded@0.2.0: fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" http-errors@2.0.0: version "2.0.0" @@ -222,36 +267,24 @@ ipaddr.js@1.9.1: media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -mime-db@1.47.0: - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@~2.1.24: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== - dependencies: - mime-db "1.47.0" - -mime-types@~2.1.34: +mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -266,7 +299,7 @@ mime@1.6.0: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.3: version "2.1.3" @@ -278,10 +311,10 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== on-finished@2.4.1: version "2.4.1" @@ -298,7 +331,7 @@ parseurl@~1.3.3: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== proxy-addr@~2.0.7: version "2.0.7" @@ -320,10 +353,10 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" @@ -369,19 +402,32 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" statuses@2.0.1: version "2.0.1" @@ -404,14 +450,14 @@ type-is@~1.6.18: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== diff --git a/tests/files/features-disable-inject-git-sha/Dockerfile b/tests/files/features-disable-inject-git-sha/Dockerfile index 8c8bbfcd9c..d53d4e88e2 100644 --- a/tests/files/features-disable-inject-git-sha/Dockerfile +++ b/tests/files/features-disable-inject-git-sha/Dockerfile @@ -1,10 +1,10 @@ ARG UPSTREAM_REPO ARG UPSTREAM_TAG -FROM ${UPSTREAM_REPO:-testlagoon}/node-16-builder:${UPSTREAM_TAG:-latest} as builder +FROM ${UPSTREAM_REPO:-testlagoon}/node-22-builder:${UPSTREAM_TAG:-latest} AS builder COPY package.json yarn.lock /app/ RUN yarn install -FROM ${UPSTREAM_REPO:-testlagoon}/node-16:${UPSTREAM_TAG:-latest} +FROM ${UPSTREAM_REPO:-testlagoon}/node-22:${UPSTREAM_TAG:-latest} COPY --from=builder /app/node_modules /app/node_modules COPY . /app/ diff --git a/tests/files/features-disable-inject-git-sha/package.json b/tests/files/features-disable-inject-git-sha/package.json index b577e5e022..6171c0e6e8 100644 --- a/tests/files/features-disable-inject-git-sha/package.json +++ b/tests/files/features-disable-inject-git-sha/package.json @@ -4,7 +4,7 @@ "main": "index.js", "license": "MIT", "dependencies": { - "express": "^4.15.3" + "express": "^4.19.0" }, "scripts": { "start": "node index.js" diff --git a/tests/files/features-disable-inject-git-sha/yarn.lock b/tests/files/features-disable-inject-git-sha/yarn.lock index 113b25961b..b3cf65ae7c 100644 --- a/tests/files/features-disable-inject-git-sha/yarn.lock +++ b/tests/files/features-disable-inject-git-sha/yarn.lock @@ -13,15 +13,15 @@ accepts@~1.3.8: array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -29,7 +29,7 @@ body-parser@1.20.1: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.1" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" @@ -38,13 +38,16 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" content-disposition@0.5.4: version "0.5.4" @@ -53,20 +56,20 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== debug@2.6.9: version "2.6.9" @@ -75,6 +78,15 @@ debug@2.6.9: dependencies: ms "2.0.0" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -88,34 +100,46 @@ destroy@1.2.0: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -express@^4.15.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== +express@^4.19.0: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.1" + body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -163,33 +187,54 @@ forwarded@0.2.0: fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" http-errors@2.0.0: version "2.0.0" @@ -222,36 +267,24 @@ ipaddr.js@1.9.1: media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -mime-db@1.47.0: - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@~2.1.24: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== - dependencies: - mime-db "1.47.0" - -mime-types@~2.1.34: +mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -266,7 +299,7 @@ mime@1.6.0: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.3: version "2.1.3" @@ -278,10 +311,10 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== on-finished@2.4.1: version "2.4.1" @@ -298,7 +331,7 @@ parseurl@~1.3.3: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== proxy-addr@~2.0.7: version "2.0.7" @@ -320,10 +353,10 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" @@ -369,19 +402,32 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" statuses@2.0.1: version "2.0.1" @@ -404,14 +450,14 @@ type-is@~1.6.18: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== diff --git a/tests/files/features-lagoon-type-override/Dockerfile b/tests/files/features-lagoon-type-override/Dockerfile index 8c8bbfcd9c..d53d4e88e2 100644 --- a/tests/files/features-lagoon-type-override/Dockerfile +++ b/tests/files/features-lagoon-type-override/Dockerfile @@ -1,10 +1,10 @@ ARG UPSTREAM_REPO ARG UPSTREAM_TAG -FROM ${UPSTREAM_REPO:-testlagoon}/node-16-builder:${UPSTREAM_TAG:-latest} as builder +FROM ${UPSTREAM_REPO:-testlagoon}/node-22-builder:${UPSTREAM_TAG:-latest} AS builder COPY package.json yarn.lock /app/ RUN yarn install -FROM ${UPSTREAM_REPO:-testlagoon}/node-16:${UPSTREAM_TAG:-latest} +FROM ${UPSTREAM_REPO:-testlagoon}/node-22:${UPSTREAM_TAG:-latest} COPY --from=builder /app/node_modules /app/node_modules COPY . /app/ diff --git a/tests/files/features-lagoon-type-override/package.json b/tests/files/features-lagoon-type-override/package.json index b577e5e022..6171c0e6e8 100644 --- a/tests/files/features-lagoon-type-override/package.json +++ b/tests/files/features-lagoon-type-override/package.json @@ -4,7 +4,7 @@ "main": "index.js", "license": "MIT", "dependencies": { - "express": "^4.15.3" + "express": "^4.19.0" }, "scripts": { "start": "node index.js" diff --git a/tests/files/features-lagoon-type-override/yarn.lock b/tests/files/features-lagoon-type-override/yarn.lock index 113b25961b..b3cf65ae7c 100644 --- a/tests/files/features-lagoon-type-override/yarn.lock +++ b/tests/files/features-lagoon-type-override/yarn.lock @@ -13,15 +13,15 @@ accepts@~1.3.8: array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -29,7 +29,7 @@ body-parser@1.20.1: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.1" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" @@ -38,13 +38,16 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" content-disposition@0.5.4: version "0.5.4" @@ -53,20 +56,20 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== debug@2.6.9: version "2.6.9" @@ -75,6 +78,15 @@ debug@2.6.9: dependencies: ms "2.0.0" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -88,34 +100,46 @@ destroy@1.2.0: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -express@^4.15.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== +express@^4.19.0: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.1" + body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -163,33 +187,54 @@ forwarded@0.2.0: fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" http-errors@2.0.0: version "2.0.0" @@ -222,36 +267,24 @@ ipaddr.js@1.9.1: media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -mime-db@1.47.0: - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@~2.1.24: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== - dependencies: - mime-db "1.47.0" - -mime-types@~2.1.34: +mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -266,7 +299,7 @@ mime@1.6.0: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.3: version "2.1.3" @@ -278,10 +311,10 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== on-finished@2.4.1: version "2.4.1" @@ -298,7 +331,7 @@ parseurl@~1.3.3: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== proxy-addr@~2.0.7: version "2.0.7" @@ -320,10 +353,10 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" @@ -369,19 +402,32 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" statuses@2.0.1: version "2.0.1" @@ -404,14 +450,14 @@ type-is@~1.6.18: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== diff --git a/tests/files/features-subfolder/subfolder1/subfolder2/subfolder3/Dockerfile b/tests/files/features-subfolder/subfolder1/subfolder2/subfolder3/Dockerfile index 8c8bbfcd9c..d53d4e88e2 100644 --- a/tests/files/features-subfolder/subfolder1/subfolder2/subfolder3/Dockerfile +++ b/tests/files/features-subfolder/subfolder1/subfolder2/subfolder3/Dockerfile @@ -1,10 +1,10 @@ ARG UPSTREAM_REPO ARG UPSTREAM_TAG -FROM ${UPSTREAM_REPO:-testlagoon}/node-16-builder:${UPSTREAM_TAG:-latest} as builder +FROM ${UPSTREAM_REPO:-testlagoon}/node-22-builder:${UPSTREAM_TAG:-latest} AS builder COPY package.json yarn.lock /app/ RUN yarn install -FROM ${UPSTREAM_REPO:-testlagoon}/node-16:${UPSTREAM_TAG:-latest} +FROM ${UPSTREAM_REPO:-testlagoon}/node-22:${UPSTREAM_TAG:-latest} COPY --from=builder /app/node_modules /app/node_modules COPY . /app/ diff --git a/tests/files/features-subfolder/subfolder1/subfolder2/subfolder3/package.json b/tests/files/features-subfolder/subfolder1/subfolder2/subfolder3/package.json index b577e5e022..6171c0e6e8 100644 --- a/tests/files/features-subfolder/subfolder1/subfolder2/subfolder3/package.json +++ b/tests/files/features-subfolder/subfolder1/subfolder2/subfolder3/package.json @@ -4,7 +4,7 @@ "main": "index.js", "license": "MIT", "dependencies": { - "express": "^4.15.3" + "express": "^4.19.0" }, "scripts": { "start": "node index.js" diff --git a/tests/files/features-subfolder/subfolder1/subfolder2/subfolder3/yarn.lock b/tests/files/features-subfolder/subfolder1/subfolder2/subfolder3/yarn.lock index 113b25961b..b3cf65ae7c 100644 --- a/tests/files/features-subfolder/subfolder1/subfolder2/subfolder3/yarn.lock +++ b/tests/files/features-subfolder/subfolder1/subfolder2/subfolder3/yarn.lock @@ -13,15 +13,15 @@ accepts@~1.3.8: array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -29,7 +29,7 @@ body-parser@1.20.1: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.1" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" @@ -38,13 +38,16 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" content-disposition@0.5.4: version "0.5.4" @@ -53,20 +56,20 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== debug@2.6.9: version "2.6.9" @@ -75,6 +78,15 @@ debug@2.6.9: dependencies: ms "2.0.0" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -88,34 +100,46 @@ destroy@1.2.0: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -express@^4.15.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== +express@^4.19.0: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.1" + body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -163,33 +187,54 @@ forwarded@0.2.0: fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" http-errors@2.0.0: version "2.0.0" @@ -222,36 +267,24 @@ ipaddr.js@1.9.1: media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -mime-db@1.47.0: - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@~2.1.24: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== - dependencies: - mime-db "1.47.0" - -mime-types@~2.1.34: +mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -266,7 +299,7 @@ mime@1.6.0: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.3: version "2.1.3" @@ -278,10 +311,10 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== on-finished@2.4.1: version "2.4.1" @@ -298,7 +331,7 @@ parseurl@~1.3.3: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== proxy-addr@~2.0.7: version "2.0.7" @@ -320,10 +353,10 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" @@ -369,19 +402,32 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" statuses@2.0.1: version "2.0.1" @@ -404,14 +450,14 @@ type-is@~1.6.18: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== diff --git a/tests/files/features/Dockerfile b/tests/files/features/Dockerfile index 684f1cbc25..89fc7ffccf 100644 --- a/tests/files/features/Dockerfile +++ b/tests/files/features/Dockerfile @@ -1,10 +1,10 @@ ARG UPSTREAM_REPO ARG UPSTREAM_TAG -FROM ${UPSTREAM_REPO:-testlagoon}/node-16-builder:${UPSTREAM_TAG:-latest} as builder +FROM ${UPSTREAM_REPO:-testlagoon}/node-22-builder:${UPSTREAM_TAG:-latest} AS builder COPY package.json yarn.lock /app/ RUN yarn install -FROM ${UPSTREAM_REPO:-testlagoon}/node-16:${UPSTREAM_TAG:-latest} +FROM ${UPSTREAM_REPO:-testlagoon}/node-22:${UPSTREAM_TAG:-latest} COPY --from=builder /app/node_modules /app/node_modules COPY . /app/ diff --git a/tests/files/features/package.json b/tests/files/features/package.json index b577e5e022..6171c0e6e8 100644 --- a/tests/files/features/package.json +++ b/tests/files/features/package.json @@ -4,7 +4,7 @@ "main": "index.js", "license": "MIT", "dependencies": { - "express": "^4.15.3" + "express": "^4.19.0" }, "scripts": { "start": "node index.js" diff --git a/tests/files/features/yarn.lock b/tests/files/features/yarn.lock index 1d0f88b4c0..b3cf65ae7c 100644 --- a/tests/files/features/yarn.lock +++ b/tests/files/features/yarn.lock @@ -13,15 +13,15 @@ accepts@~1.3.8: array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -29,7 +29,7 @@ body-parser@1.20.1: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.1" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" @@ -38,13 +38,16 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" content-disposition@0.5.4: version "0.5.4" @@ -53,20 +56,20 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== debug@2.6.9: version "2.6.9" @@ -75,6 +78,15 @@ debug@2.6.9: dependencies: ms "2.0.0" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -88,34 +100,46 @@ destroy@1.2.0: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -express@^4.15.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== +express@^4.19.0: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.1" + body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -163,33 +187,54 @@ forwarded@0.2.0: fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" http-errors@2.0.0: version "2.0.0" @@ -222,36 +267,24 @@ ipaddr.js@1.9.1: media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -mime-db@1.47.0: - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@~2.1.24: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== - dependencies: - mime-db "1.47.0" - -mime-types@~2.1.34: +mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -266,7 +299,7 @@ mime@1.6.0: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.3: version "2.1.3" @@ -278,10 +311,10 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity "sha1-umLf/WfuJWyMCG365p4BbNHxmLk= sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== on-finished@2.4.1: version "2.4.1" @@ -298,7 +331,7 @@ parseurl@~1.3.3: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== proxy-addr@~2.0.7: version "2.0.7" @@ -320,10 +353,10 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" @@ -369,19 +402,32 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" statuses@2.0.1: version "2.0.1" @@ -404,14 +450,14 @@ type-is@~1.6.18: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== diff --git a/tests/files/image-cache/Dockerfile b/tests/files/image-cache/Dockerfile index 34f28ce61a..57b9f64677 100644 --- a/tests/files/image-cache/Dockerfile +++ b/tests/files/image-cache/Dockerfile @@ -5,11 +5,11 @@ COPY ./testoutput.dummy /cache/testoutput.dummy ARG UPSTREAM_REPO ARG UPSTREAM_TAG -FROM ${UPSTREAM_REPO:-testlagoon}/node-14-builder:${UPSTREAM_TAG:-latest} as builder +FROM ${UPSTREAM_REPO:-testlagoon}/node-22-builder:${UPSTREAM_TAG:-latest} AS builder COPY package.json yarn.lock /app/ RUN yarn install -FROM ${UPSTREAM_REPO:-testlagoon}/node-14:${UPSTREAM_TAG:-latest} +FROM ${UPSTREAM_REPO:-testlagoon}/node-22:${UPSTREAM_TAG:-latest} COPY --from=builder /app/node_modules /app/node_modules COPY . /app/ diff --git a/tests/files/image-cache/package.json b/tests/files/image-cache/package.json index b577e5e022..6171c0e6e8 100644 --- a/tests/files/image-cache/package.json +++ b/tests/files/image-cache/package.json @@ -4,7 +4,7 @@ "main": "index.js", "license": "MIT", "dependencies": { - "express": "^4.15.3" + "express": "^4.19.0" }, "scripts": { "start": "node index.js" diff --git a/tests/files/image-cache/yarn.lock b/tests/files/image-cache/yarn.lock index 8264e7ca56..b3cf65ae7c 100644 --- a/tests/files/image-cache/yarn.lock +++ b/tests/files/image-cache/yarn.lock @@ -13,14 +13,15 @@ accepts@~1.3.8: array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -28,7 +29,7 @@ body-parser@1.20.1: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.1" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" @@ -37,13 +38,16 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" content-disposition@0.5.4: version "0.5.4" @@ -52,19 +56,20 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== debug@2.6.9: version "2.6.9" @@ -73,6 +78,15 @@ debug@2.6.9: dependencies: ms "2.0.0" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -86,32 +100,46 @@ destroy@1.2.0: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -express@^4.15.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== +express@^4.19.0: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.1" + body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -161,31 +189,52 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" http-errors@2.0.0: version "2.0.0" @@ -218,14 +267,17 @@ ipaddr.js@1.9.1: media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== mime-db@1.52.0: version "1.52.0" @@ -247,6 +299,7 @@ mime@1.6.0: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.3: version "2.1.3" @@ -258,10 +311,10 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== on-finished@2.4.1: version "2.4.1" @@ -278,6 +331,7 @@ parseurl@~1.3.3: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== proxy-addr@~2.0.7: version "2.0.7" @@ -299,10 +353,10 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" @@ -348,19 +402,32 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" statuses@2.0.1: version "2.0.1" @@ -383,6 +450,7 @@ type-is@~1.6.18: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== utils-merge@1.0.1: version "1.0.1" diff --git a/tests/files/node14/.dockerignore b/tests/files/node/.dockerignore similarity index 100% rename from tests/files/node14/.dockerignore rename to tests/files/node/.dockerignore diff --git a/tests/files/node14/.lagoon.yml b/tests/files/node/.lagoon.yml similarity index 100% rename from tests/files/node14/.lagoon.yml rename to tests/files/node/.lagoon.yml diff --git a/tests/files/node14/Dockerfile b/tests/files/node/Dockerfile similarity index 86% rename from tests/files/node14/Dockerfile rename to tests/files/node/Dockerfile index 76f4f7310c..e64b7821b8 100644 --- a/tests/files/node14/Dockerfile +++ b/tests/files/node/Dockerfile @@ -1,10 +1,10 @@ ARG UPSTREAM_REPO ARG UPSTREAM_TAG -FROM ${UPSTREAM_REPO:-testlagoon}/node-14-builder:${UPSTREAM_TAG:-latest} as builder +FROM ${UPSTREAM_REPO:-testlagoon}/node-22-builder:${UPSTREAM_TAG:-latest} AS builder COPY package.json yarn.lock /app/ RUN yarn install -FROM ${UPSTREAM_REPO:-testlagoon}/node-14:${UPSTREAM_TAG:-latest} +FROM ${UPSTREAM_REPO:-testlagoon}/node-22:${UPSTREAM_TAG:-latest} COPY --from=builder /app/node_modules /app/node_modules COPY . /app/ diff --git a/tests/files/node14/docker-compose.yml b/tests/files/node/docker-compose.yml similarity index 100% rename from tests/files/node14/docker-compose.yml rename to tests/files/node/docker-compose.yml diff --git a/tests/files/node14/index.js b/tests/files/node/index.js similarity index 100% rename from tests/files/node14/index.js rename to tests/files/node/index.js diff --git a/tests/files/node16/package.json b/tests/files/node/package.json similarity index 86% rename from tests/files/node16/package.json rename to tests/files/node/package.json index b577e5e022..6171c0e6e8 100644 --- a/tests/files/node16/package.json +++ b/tests/files/node/package.json @@ -4,7 +4,7 @@ "main": "index.js", "license": "MIT", "dependencies": { - "express": "^4.15.3" + "express": "^4.19.0" }, "scripts": { "start": "node index.js" diff --git a/tests/files/node16/yarn.lock b/tests/files/node/yarn.lock similarity index 66% rename from tests/files/node16/yarn.lock rename to tests/files/node/yarn.lock index 113b25961b..b3cf65ae7c 100644 --- a/tests/files/node16/yarn.lock +++ b/tests/files/node/yarn.lock @@ -13,15 +13,15 @@ accepts@~1.3.8: array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -29,7 +29,7 @@ body-parser@1.20.1: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.1" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" @@ -38,13 +38,16 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" content-disposition@0.5.4: version "0.5.4" @@ -53,20 +56,20 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== debug@2.6.9: version "2.6.9" @@ -75,6 +78,15 @@ debug@2.6.9: dependencies: ms "2.0.0" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -88,34 +100,46 @@ destroy@1.2.0: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -express@^4.15.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== +express@^4.19.0: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.1" + body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -163,33 +187,54 @@ forwarded@0.2.0: fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" http-errors@2.0.0: version "2.0.0" @@ -222,36 +267,24 @@ ipaddr.js@1.9.1: media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -mime-db@1.47.0: - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@~2.1.24: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== - dependencies: - mime-db "1.47.0" - -mime-types@~2.1.34: +mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -266,7 +299,7 @@ mime@1.6.0: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.3: version "2.1.3" @@ -278,10 +311,10 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== on-finished@2.4.1: version "2.4.1" @@ -298,7 +331,7 @@ parseurl@~1.3.3: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== proxy-addr@~2.0.7: version "2.0.7" @@ -320,10 +353,10 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" @@ -369,19 +402,32 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" statuses@2.0.1: version "2.0.1" @@ -404,14 +450,14 @@ type-is@~1.6.18: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== diff --git a/tests/files/node14/package.json b/tests/files/node14/package.json deleted file mode 100644 index b577e5e022..0000000000 --- a/tests/files/node14/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "node", - "version": "1.0.0", - "main": "index.js", - "license": "MIT", - "dependencies": { - "express": "^4.15.3" - }, - "scripts": { - "start": "node index.js" - } -} diff --git a/tests/files/node14/yarn.lock b/tests/files/node14/yarn.lock deleted file mode 100644 index 113b25961b..0000000000 --- a/tests/files/node14/yarn.lock +++ /dev/null @@ -1,417 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -express@^4.15.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -inherits@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -mime-db@1.47.0: - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@~2.1.24: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== - dependencies: - mime-db "1.47.0" - -mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -safe-buffer@5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= diff --git a/tests/files/node16/.dockerignore b/tests/files/node16/.dockerignore deleted file mode 100644 index b512c09d47..0000000000 --- a/tests/files/node16/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/tests/files/node16/.lagoon.yml b/tests/files/node16/.lagoon.yml deleted file mode 100644 index f0ad2b8a73..0000000000 --- a/tests/files/node16/.lagoon.yml +++ /dev/null @@ -1,4 +0,0 @@ -docker-compose-yaml: docker-compose.yml - -environment_variables: - git_sha: 'true' diff --git a/tests/files/node16/Dockerfile b/tests/files/node16/Dockerfile deleted file mode 100644 index a66390c8aa..0000000000 --- a/tests/files/node16/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -ARG UPSTREAM_REPO -ARG UPSTREAM_TAG -FROM ${UPSTREAM_REPO:-testlagoon}/node-16-builder:${UPSTREAM_TAG:-latest} as builder -COPY package.json yarn.lock /app/ -RUN yarn install - -FROM ${UPSTREAM_REPO:-testlagoon}/node-16:${UPSTREAM_TAG:-latest} -COPY --from=builder /app/node_modules /app/node_modules -COPY . /app/ - -ARG LAGOON_GIT_SHA=0000000000000000000000000000000000000000 -ENV LAGOON_GIT_SHA_BUILDTIME ${LAGOON_GIT_SHA} - -ARG LAGOON_GIT_BRANCH=undefined -ENV LAGOON_GIT_BRANCH_BUILDTIME ${LAGOON_GIT_BRANCH} - -ARG LAGOON_BUILD_TYPE=undefined -ENV LAGOON_BUILD_TYPE_BUILDTIME ${LAGOON_BUILD_TYPE} - -ARG LAGOON_PR_HEAD_BRANCH=undefined -ENV LAGOON_PR_HEAD_BRANCH_BUILDTIME ${LAGOON_PR_HEAD_BRANCH} - -ARG LAGOON_PR_HEAD_SHA=undefined -ENV LAGOON_PR_HEAD_SHA_BUILDTIME ${LAGOON_PR_HEAD_SHA} - -ARG LAGOON_PR_BASE_BRANCH=undefined -ENV LAGOON_PR_BASE_BRANCH_BUILDTIME ${LAGOON_PR_BASE_BRANCH} - -ARG LAGOON_PR_BASE_SHA=undefined -ENV LAGOON_PR_BASE_SHA_BUILDTIME ${LAGOON_PR_BASE_SHA} - -ARG LAGOON_PR_TITLE=undefined -ENV LAGOON_PR_TITLE_BUILDTIME ${LAGOON_PR_TITLE} - -EXPOSE 3000 - -CMD ["node", "index.js"] diff --git a/tests/files/node16/docker-compose.yml b/tests/files/node16/docker-compose.yml deleted file mode 100644 index 44d26bacba..0000000000 --- a/tests/files/node16/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: '2' -services: - node: - networks: - - amazeeio-network - - default - build: - context: . - dockerfile: Dockerfile - labels: - lagoon.type: node - ports: - - "3000:3000" - environment: - - AMAZEEIO_URL=node.docker.amazee.io -networks: - amazeeio-network: - external: true \ No newline at end of file diff --git a/tests/files/node16/index.js b/tests/files/node16/index.js deleted file mode 100644 index abe11e090c..0000000000 --- a/tests/files/node16/index.js +++ /dev/null @@ -1,32 +0,0 @@ -const express = require('express') -const app = express() - -// Adds a 1 sec delay for all requests -app.use((req, res, next) => setTimeout(next, 1000)) - -app.get('/', function (req, res) { - let result = [] - Object.keys(process.env).map(key => { - result.push(`${key}=${process.env[key]}`) - }) - Object.keys(req.headers).map(key => { - result.push(`${key}=${req.headers[key]}`) - }) - result.sort() - - res.send(result.join("
")) -}) - -const server = app.listen(3000, function () { - console.log('Example app listening on port 3000!') -}) - -const startGracefulShutdown = () => { - console.log('Starting shutdown of express...'); - server.close(function () { - console.log('Express shut down.'); - }); -} - -process.on('SIGTERM', startGracefulShutdown); -process.on('SIGINT', startGracefulShutdown); diff --git a/tests/files/tasks/Dockerfile b/tests/files/tasks/Dockerfile index 76f4f7310c..e64b7821b8 100644 --- a/tests/files/tasks/Dockerfile +++ b/tests/files/tasks/Dockerfile @@ -1,10 +1,10 @@ ARG UPSTREAM_REPO ARG UPSTREAM_TAG -FROM ${UPSTREAM_REPO:-testlagoon}/node-14-builder:${UPSTREAM_TAG:-latest} as builder +FROM ${UPSTREAM_REPO:-testlagoon}/node-22-builder:${UPSTREAM_TAG:-latest} AS builder COPY package.json yarn.lock /app/ RUN yarn install -FROM ${UPSTREAM_REPO:-testlagoon}/node-14:${UPSTREAM_TAG:-latest} +FROM ${UPSTREAM_REPO:-testlagoon}/node-22:${UPSTREAM_TAG:-latest} COPY --from=builder /app/node_modules /app/node_modules COPY . /app/ diff --git a/tests/files/tasks/package.json b/tests/files/tasks/package.json index b577e5e022..6171c0e6e8 100644 --- a/tests/files/tasks/package.json +++ b/tests/files/tasks/package.json @@ -4,7 +4,7 @@ "main": "index.js", "license": "MIT", "dependencies": { - "express": "^4.15.3" + "express": "^4.19.0" }, "scripts": { "start": "node index.js" diff --git a/tests/files/tasks/yarn.lock b/tests/files/tasks/yarn.lock index 8264e7ca56..b3cf65ae7c 100644 --- a/tests/files/tasks/yarn.lock +++ b/tests/files/tasks/yarn.lock @@ -13,14 +13,15 @@ accepts@~1.3.8: array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -28,7 +29,7 @@ body-parser@1.20.1: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.1" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" @@ -37,13 +38,16 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" content-disposition@0.5.4: version "0.5.4" @@ -52,19 +56,20 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== debug@2.6.9: version "2.6.9" @@ -73,6 +78,15 @@ debug@2.6.9: dependencies: ms "2.0.0" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -86,32 +100,46 @@ destroy@1.2.0: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -express@^4.15.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== +express@^4.19.0: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.1" + body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -161,31 +189,52 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" http-errors@2.0.0: version "2.0.0" @@ -218,14 +267,17 @@ ipaddr.js@1.9.1: media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== mime-db@1.52.0: version "1.52.0" @@ -247,6 +299,7 @@ mime@1.6.0: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.3: version "2.1.3" @@ -258,10 +311,10 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== on-finished@2.4.1: version "2.4.1" @@ -278,6 +331,7 @@ parseurl@~1.3.3: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== proxy-addr@~2.0.7: version "2.0.7" @@ -299,10 +353,10 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" @@ -348,19 +402,32 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" statuses@2.0.1: version "2.0.1" @@ -383,6 +450,7 @@ type-is@~1.6.18: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== utils-merge@1.0.1: version "1.0.1" diff --git a/tests/tests/node.yaml b/tests/tests/node.yaml index c8bac69fa1..5225889b58 100644 --- a/tests/tests/node.yaml +++ b/tests/tests/node.yaml @@ -11,20 +11,10 @@ - ansible.builtin.import_playbook: api/deploy-branch.yaml vars: - testname: "NODE 16 {{ cluster_type|upper }}" - node_version: 16 + testname: "NODE {{ cluster_type|upper }}" git_repo_name: node.git project: ci-node-{{ cluster_type }} - branch: node16 - check_url: "http://node.{{ project | regex_replace('_', '-') }}.{{ branch | regex_replace('/', '-') }}.{{ route_suffix }}" - -- ansible.builtin.import_playbook: api/deploy-branch.yaml - vars: - testname: "NODE 14 {{ cluster_type|upper }}" - node_version: 14 - git_repo_name: node.git - project: ci-node-{{ cluster_type }} - branch: node14 + branch: node check_url: "http://node.{{ project | regex_replace('_', '-') }}.{{ branch | regex_replace('/', '-') }}.{{ route_suffix }}" - ansible.builtin.import_playbook: api/delete-project.yaml From c3d2bda3d6f98fd1047a03e3fcd1d2f61698c2d7 Mon Sep 17 00:00:00 2001 From: Toby Bellwood Date: Thu, 25 Jul 2024 10:23:03 +1000 Subject: [PATCH 5/8] tests: update docker syntax --- tests/files/active-standby/first/docker-compose.yml | 3 +-- tests/files/active-standby/second/docker-compose.yml | 3 +-- tests/files/bulk/bulk1/docker-compose.yml | 3 +-- tests/files/bulk/bulk2/docker-compose.yml | 3 +-- tests/files/bulk/bulk3/docker-compose.yml | 3 +-- tests/files/bulk/bulk4/docker-compose.yml | 3 +-- tests/files/bulk/bulk5/docker-compose.yml | 3 +-- tests/files/bulk/bulk6/docker-compose.yml | 3 +-- tests/files/drupal-base/lagoon/nginx.dockerfile | 2 +- tests/files/drupal-base/lagoon/php.dockerfile | 2 +- .../features-autogenerated-routes-disabled/docker-compose.yml | 3 +-- tests/files/features-disable-inject-git-sha/docker-compose.yml | 3 +-- tests/files/features-lagoon-type-override/docker-compose.yml | 3 +-- .../subfolder1/subfolder2/docker-compose.yml | 3 +-- tests/files/features/docker-compose.yml | 3 +-- tests/files/image-cache/docker-compose.yml | 3 +-- tests/files/nginx/first/docker-compose.yml | 3 +-- tests/files/node/docker-compose.yml | 3 +-- tests/files/python3.9/docker-compose.yml | 3 +-- tests/files/tasks/docker-compose.yml | 3 +-- 20 files changed, 20 insertions(+), 38 deletions(-) diff --git a/tests/files/active-standby/first/docker-compose.yml b/tests/files/active-standby/first/docker-compose.yml index 8f522b712e..89f447efae 100644 --- a/tests/files/active-standby/first/docker-compose.yml +++ b/tests/files/active-standby/first/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: nginx: networks: @@ -18,4 +17,4 @@ services: - AMAZEEIO_URL=nginx.docker.amazee.io networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/active-standby/second/docker-compose.yml b/tests/files/active-standby/second/docker-compose.yml index 8f522b712e..89f447efae 100644 --- a/tests/files/active-standby/second/docker-compose.yml +++ b/tests/files/active-standby/second/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: nginx: networks: @@ -18,4 +17,4 @@ services: - AMAZEEIO_URL=nginx.docker.amazee.io networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/bulk/bulk1/docker-compose.yml b/tests/files/bulk/bulk1/docker-compose.yml index 8f522b712e..89f447efae 100644 --- a/tests/files/bulk/bulk1/docker-compose.yml +++ b/tests/files/bulk/bulk1/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: nginx: networks: @@ -18,4 +17,4 @@ services: - AMAZEEIO_URL=nginx.docker.amazee.io networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/bulk/bulk2/docker-compose.yml b/tests/files/bulk/bulk2/docker-compose.yml index 8f522b712e..89f447efae 100644 --- a/tests/files/bulk/bulk2/docker-compose.yml +++ b/tests/files/bulk/bulk2/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: nginx: networks: @@ -18,4 +17,4 @@ services: - AMAZEEIO_URL=nginx.docker.amazee.io networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/bulk/bulk3/docker-compose.yml b/tests/files/bulk/bulk3/docker-compose.yml index 8f522b712e..89f447efae 100644 --- a/tests/files/bulk/bulk3/docker-compose.yml +++ b/tests/files/bulk/bulk3/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: nginx: networks: @@ -18,4 +17,4 @@ services: - AMAZEEIO_URL=nginx.docker.amazee.io networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/bulk/bulk4/docker-compose.yml b/tests/files/bulk/bulk4/docker-compose.yml index 8f522b712e..89f447efae 100644 --- a/tests/files/bulk/bulk4/docker-compose.yml +++ b/tests/files/bulk/bulk4/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: nginx: networks: @@ -18,4 +17,4 @@ services: - AMAZEEIO_URL=nginx.docker.amazee.io networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/bulk/bulk5/docker-compose.yml b/tests/files/bulk/bulk5/docker-compose.yml index 8f522b712e..89f447efae 100644 --- a/tests/files/bulk/bulk5/docker-compose.yml +++ b/tests/files/bulk/bulk5/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: nginx: networks: @@ -18,4 +17,4 @@ services: - AMAZEEIO_URL=nginx.docker.amazee.io networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/bulk/bulk6/docker-compose.yml b/tests/files/bulk/bulk6/docker-compose.yml index 8f522b712e..89f447efae 100644 --- a/tests/files/bulk/bulk6/docker-compose.yml +++ b/tests/files/bulk/bulk6/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: nginx: networks: @@ -18,4 +17,4 @@ services: - AMAZEEIO_URL=nginx.docker.amazee.io networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/drupal-base/lagoon/nginx.dockerfile b/tests/files/drupal-base/lagoon/nginx.dockerfile index 3edca76168..a25868f09c 100644 --- a/tests/files/drupal-base/lagoon/nginx.dockerfile +++ b/tests/files/drupal-base/lagoon/nginx.dockerfile @@ -1,7 +1,7 @@ ARG CLI_IMAGE ARG UPSTREAM_REPO ARG UPSTREAM_TAG -FROM ${CLI_IMAGE:-builder} as builder +FROM ${CLI_IMAGE:-builder} AS builder FROM ${UPSTREAM_REPO:-testlagoon}/nginx-drupal:${UPSTREAM_TAG:-latest} diff --git a/tests/files/drupal-base/lagoon/php.dockerfile b/tests/files/drupal-base/lagoon/php.dockerfile index 6b035b47a6..160039e5c6 100644 --- a/tests/files/drupal-base/lagoon/php.dockerfile +++ b/tests/files/drupal-base/lagoon/php.dockerfile @@ -1,7 +1,7 @@ ARG CLI_IMAGE ARG UPSTREAM_REPO ARG UPSTREAM_TAG -FROM ${CLI_IMAGE:-builder} as builder +FROM ${CLI_IMAGE:-builder} AS builder FROM ${UPSTREAM_REPO:-testlagoon}/php-8.3-fpm:${UPSTREAM_TAG:-latest} diff --git a/tests/files/features-autogenerated-routes-disabled/docker-compose.yml b/tests/files/features-autogenerated-routes-disabled/docker-compose.yml index 0e60e7efaa..dceb977775 100644 --- a/tests/files/features-autogenerated-routes-disabled/docker-compose.yml +++ b/tests/files/features-autogenerated-routes-disabled/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: node: networks: @@ -21,4 +20,4 @@ services: - AMAZEEIO_HTTP_PORT=3000 networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/features-disable-inject-git-sha/docker-compose.yml b/tests/files/features-disable-inject-git-sha/docker-compose.yml index 0e60e7efaa..dceb977775 100644 --- a/tests/files/features-disable-inject-git-sha/docker-compose.yml +++ b/tests/files/features-disable-inject-git-sha/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: node: networks: @@ -21,4 +20,4 @@ services: - AMAZEEIO_HTTP_PORT=3000 networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/features-lagoon-type-override/docker-compose.yml b/tests/files/features-lagoon-type-override/docker-compose.yml index f629d1acf1..d88da47a4f 100644 --- a/tests/files/features-lagoon-type-override/docker-compose.yml +++ b/tests/files/features-lagoon-type-override/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: node: networks: @@ -21,4 +20,4 @@ services: - AMAZEEIO_HTTP_PORT=3000 networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/features-subfolder/subfolder1/subfolder2/docker-compose.yml b/tests/files/features-subfolder/subfolder1/subfolder2/docker-compose.yml index d8b873c6df..04ba8c7f0f 100644 --- a/tests/files/features-subfolder/subfolder1/subfolder2/docker-compose.yml +++ b/tests/files/features-subfolder/subfolder1/subfolder2/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: node: networks: @@ -21,4 +20,4 @@ services: - AMAZEEIO_HTTP_PORT=3000 networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/features/docker-compose.yml b/tests/files/features/docker-compose.yml index 61b9a46d20..971c732995 100644 --- a/tests/files/features/docker-compose.yml +++ b/tests/files/features/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: node: networks: @@ -22,4 +21,4 @@ services: - AMAZEEIO_HTTP_PORT=3000 networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/image-cache/docker-compose.yml b/tests/files/image-cache/docker-compose.yml index 0cd5e15fdf..37e84e0a13 100644 --- a/tests/files/image-cache/docker-compose.yml +++ b/tests/files/image-cache/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: node: networks: @@ -17,4 +16,4 @@ services: - AMAZEEIO_URL=node.docker.amazee.io networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/nginx/first/docker-compose.yml b/tests/files/nginx/first/docker-compose.yml index f2f578f2b8..184dfc5527 100644 --- a/tests/files/nginx/first/docker-compose.yml +++ b/tests/files/nginx/first/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: nginx: networks: @@ -48,4 +47,4 @@ services: - AMAZEEIO_URL=nginx-basic-auth-disable.docker.amazee.io networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/node/docker-compose.yml b/tests/files/node/docker-compose.yml index 44d26bacba..05b0fed74d 100644 --- a/tests/files/node/docker-compose.yml +++ b/tests/files/node/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: node: networks: @@ -15,4 +14,4 @@ services: - AMAZEEIO_URL=node.docker.amazee.io networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/python3.9/docker-compose.yml b/tests/files/python3.9/docker-compose.yml index fdae4c1de9..3ace40a623 100644 --- a/tests/files/python3.9/docker-compose.yml +++ b/tests/files/python3.9/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: python: networks: @@ -15,4 +14,4 @@ services: - AMAZEEIO_URL=python.docker.amazee.io networks: amazeeio-network: - external: true \ No newline at end of file + external: true diff --git a/tests/files/tasks/docker-compose.yml b/tests/files/tasks/docker-compose.yml index 0cd5e15fdf..37e84e0a13 100644 --- a/tests/files/tasks/docker-compose.yml +++ b/tests/files/tasks/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: node: networks: @@ -17,4 +16,4 @@ services: - AMAZEEIO_URL=node.docker.amazee.io networks: amazeeio-network: - external: true \ No newline at end of file + external: true From b05b54f63454edbac22bd89cfebe2a0bfdee466c Mon Sep 17 00:00:00 2001 From: Toby Bellwood Date: Thu, 25 Jul 2024 10:25:15 +1000 Subject: [PATCH 6/8] tests: fixup python tests --- local-dev/git/Dockerfile | 1 - tests/files/{python3.9 => python}/.lagoon.yml | 0 tests/files/{python3.9 => python}/Dockerfile | 6 +++--- tests/files/{python3.9 => python}/app.py | 0 tests/files/{python3.9 => python}/docker-compose.yml | 0 tests/tests/python.yaml | 5 ++--- 6 files changed, 5 insertions(+), 7 deletions(-) rename tests/files/{python3.9 => python}/.lagoon.yml (100%) rename tests/files/{python3.9 => python}/Dockerfile (87%) rename tests/files/{python3.9 => python}/app.py (100%) rename tests/files/{python3.9 => python}/docker-compose.yml (100%) diff --git a/local-dev/git/Dockerfile b/local-dev/git/Dockerfile index 0f1e99b5de..f3e1118486 100644 --- a/local-dev/git/Dockerfile +++ b/local-dev/git/Dockerfile @@ -32,7 +32,6 @@ RUN mkdir -m 700 /git/.ssh && \ git --bare init /git/multiproject.git && \ git --bare init /git/node.git && \ git --bare init /git/drush.git && \ - git --bare init /git/drush-sa.git && \ git --bare init /git/nginx.git && \ git --bare init /git/features.git && \ git --bare init /git/features-cronjobs.git && \ diff --git a/tests/files/python3.9/.lagoon.yml b/tests/files/python/.lagoon.yml similarity index 100% rename from tests/files/python3.9/.lagoon.yml rename to tests/files/python/.lagoon.yml diff --git a/tests/files/python3.9/Dockerfile b/tests/files/python/Dockerfile similarity index 87% rename from tests/files/python3.9/Dockerfile rename to tests/files/python/Dockerfile index 1dc2215379..f68a4d320c 100644 --- a/tests/files/python3.9/Dockerfile +++ b/tests/files/python/Dockerfile @@ -1,10 +1,10 @@ -FROM ${UPSTREAM_REPO:-testlagoon}/python-3.9:${UPSTREAM_TAG:-latest} +FROM ${UPSTREAM_REPO:-testlagoon}/python-3.12:${UPSTREAM_TAG:-latest} WORKDIR /code ENV FLASK_APP=app.py ENV FLASK_RUN_HOST=0.0.0.0 ENV FLASK_RUN_PORT=8800 -RUN pip install flask +RUN pip3 install flask COPY . . ARG LAGOON_GIT_SHA=0000000000000000000000000000000000000000 @@ -31,4 +31,4 @@ ENV LAGOON_PR_BASE_SHA_BUILDTIME ${LAGOON_PR_BASE_SHA} ARG LAGOON_PR_TITLE=undefined ENV LAGOON_PR_TITLE_BUILDTIME ${LAGOON_PR_TITLE} -CMD ["flask", "run"] \ No newline at end of file +CMD ["flask", "run"] diff --git a/tests/files/python3.9/app.py b/tests/files/python/app.py similarity index 100% rename from tests/files/python3.9/app.py rename to tests/files/python/app.py diff --git a/tests/files/python3.9/docker-compose.yml b/tests/files/python/docker-compose.yml similarity index 100% rename from tests/files/python3.9/docker-compose.yml rename to tests/files/python/docker-compose.yml diff --git a/tests/tests/python.yaml b/tests/tests/python.yaml index 8748c12f56..722d2eb665 100644 --- a/tests/tests/python.yaml +++ b/tests/tests/python.yaml @@ -11,11 +11,10 @@ - ansible.builtin.import_playbook: python/deploy-branch.yaml vars: - testname: "PYTHON 3.9 {{ cluster_type|upper }}" - python_version: 3.9 + testname: "PYTHON {{ cluster_type|upper }}" git_repo_name: python.git project: ci-python-{{ cluster_type }} - branch: python39 + branch: python check_url: "http://python.{{ project | regex_replace('_', '-') }}.{{ branch | regex_replace('/', '-') }}.{{ route_suffix }}" - ansible.builtin.import_playbook: api/delete-project.yaml From e4f829c3fc09337799ce3f8abf7cc2f9dd75d6ae Mon Sep 17 00:00:00 2001 From: Toby Bellwood Date: Thu, 25 Jul 2024 10:30:07 +1000 Subject: [PATCH 7/8] tests: reinstate test order --- Jenkinsfile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ffa5bb8802..dce95f47df 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -90,12 +90,12 @@ pipeline { steps { sh script: "make -j$NPROC local-dev/k3d", label: "Configure k3d" sh script: "./local-dev/k3d cluster delete --all", label: "Delete any remnant clusters" - sh script: "make -j$NPROC k3d/test TESTS=[drush] BRANCH_NAME=${SAFEBRANCH_NAME}", label: "Setup cluster and run nginx smoketest" + sh script: "make -j$NPROC k3d/test TESTS=[nginx] BRANCH_NAME=${SAFEBRANCH_NAME}", label: "Setup cluster and run nginx smoketest" sh script: "pkill -f './local-dev/stern'", label: "Closing off test-suite-0 log after test completion" - script { - skipRemainingStages = true - echo "Drush only test, no further tests." - } + // script { + // skipRemainingStages = true + // echo "single test only, no further tests." + // } } } stage ('collect logs') { @@ -183,7 +183,7 @@ pipeline { stage ('3: run third test suite') { steps { catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { - sh script: "make -j$NPROC k3d/retest TESTS=[gitlab,github,bitbucket,drush] BRANCH_NAME=${SAFEBRANCH_NAME}", label: "Running third test suite on k3d cluster" + sh script: "make -j$NPROC k3d/retest TESTS=[gitlab,github,bitbucket,python,drush] BRANCH_NAME=${SAFEBRANCH_NAME}", label: "Running third test suite on k3d cluster" } sh script: "pkill -f './local-dev/stern'", label: "Closing off test-suite-3 log after test completion" } From c2929cddb279e71a64578cb67fb83ef7c52a183e Mon Sep 17 00:00:00 2001 From: Toby Bellwood Date: Thu, 25 Jul 2024 11:24:16 +1000 Subject: [PATCH 8/8] tests: remove versions from branches --- tests/tests/api.yaml | 6 ------ tests/tests/api/deploy-branch-once.yaml | 2 +- tests/tests/api/deploy-branch.yaml | 2 +- tests/tests/api/deploy-pullrequest.yaml | 2 +- tests/tests/api/promote.yaml | 2 +- tests/tests/api/push.yaml | 2 +- tests/tests/bitbucket.yaml | 3 --- tests/tests/bitbucket/branch.yaml | 2 +- tests/tests/bitbucket/pullrequest.yaml | 2 +- tests/tests/bitbucket/skip-deployment.yaml | 2 +- tests/tests/features-kubernetes.yaml | 2 -- tests/tests/features/limits.yaml | 3 --- tests/tests/features/remote-shell.yaml | 2 +- tests/tests/features/remote-ssh-legacy.yaml | 2 +- tests/tests/github.yaml | 4 ---- tests/tests/github/branch-picky.yaml | 2 +- tests/tests/github/branch.yaml | 2 +- tests/tests/github/pullrequest.yaml | 2 +- tests/tests/github/skip-deployment.yaml | 2 +- tests/tests/gitlab.yaml | 3 --- tests/tests/gitlab/branch.yaml | 2 +- tests/tests/gitlab/pullrequest.yaml | 2 +- tests/tests/gitlab/skip-deployment.yaml | 2 +- tests/tests/python/deploy-branch.yaml | 2 +- tests/tests/python/deploy-pullrequest.yaml | 2 +- tests/tests/python/push.yaml | 2 +- tests/tests/ssh-legacy.yaml | 1 - 27 files changed, 20 insertions(+), 42 deletions(-) diff --git a/tests/tests/api.yaml b/tests/tests/api.yaml index c93baec00a..4a1aeb5222 100644 --- a/tests/tests/api.yaml +++ b/tests/tests/api.yaml @@ -12,7 +12,6 @@ - ansible.builtin.import_playbook: api/deploy-pullrequest.yaml vars: testname: "API {{ cluster_type|upper }} - deploy pullrequest" - node_version: 16 git_repo_name: api.git project: ci-api-{{ cluster_type }} check_url: "http://node.{{ project | regex_replace('_', '-') }}.pr-1.{{ route_suffix }}" @@ -20,7 +19,6 @@ - ansible.builtin.import_playbook: api/deploy-branch.yaml vars: testname: "API {{ cluster_type|upper }} - deploy regular branch api/slash/branch" - node_version: 16 git_repo_name: api.git project: ci-api-{{ cluster_type }} branch: api/slash/branch @@ -29,7 +27,6 @@ # - ansible.builtin.import_playbook: api/deploy-branch-once.yaml # vars: # testname: "API {{ cluster_type|upper }} - deploy regular branch, name ends with -" -# node_version: 16 # git_repo_name: api.git # project: ci-api-{{ cluster_type }} # branch: some-branch-name- @@ -38,7 +35,6 @@ # - ansible.builtin.import_playbook: api/deploy-branch-once.yaml # vars: # testname: "API {{ cluster_type|upper }} - deploy regular branch, name contains only numbers" -# node_version: 16 # git_repo_name: api.git # project: ci-api-{{ cluster_type }} # branch: 1234567890 @@ -47,7 +43,6 @@ # - ansible.builtin.import_playbook: api/deploy-branch-once.yaml # vars: # testname: "API {{ cluster_type|upper }} - deploy regular branch, name contains --" -# node_version: 16 # git_repo_name: api.git # project: ci-api-{{ cluster_type }} # branch: api--branch @@ -56,7 +51,6 @@ - ansible.builtin.import_playbook: api/promote.yaml vars: testname: "API {{ cluster_type|upper }} - promote branch" - node_version: 16 git_repo_name: api.git project: ci-api-{{ cluster_type }} source_environment: source diff --git a/tests/tests/api/deploy-branch-once.yaml b/tests/tests/api/deploy-branch-once.yaml index 8144eac734..7dfd3afb75 100644 --- a/tests/tests/api/deploy-branch-once.yaml +++ b/tests/tests/api/deploy-branch-once.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml diff --git a/tests/tests/api/deploy-branch.yaml b/tests/tests/api/deploy-branch.yaml index cd1f564c8f..bc8a5b4b5e 100644 --- a/tests/tests/api/deploy-branch.yaml +++ b/tests/tests/api/deploy-branch.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml diff --git a/tests/tests/api/deploy-pullrequest.yaml b/tests/tests/api/deploy-pullrequest.yaml index 14b3522e4a..a50b687ea4 100644 --- a/tests/tests/api/deploy-pullrequest.yaml +++ b/tests/tests/api/deploy-pullrequest.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" branch: "pullrequest_base" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml diff --git a/tests/tests/api/promote.yaml b/tests/tests/api/promote.yaml index 6e066f5efb..33d8f04747 100644 --- a/tests/tests/api/promote.yaml +++ b/tests/tests/api/promote.yaml @@ -2,7 +2,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" branch: "{{ source_environment }}" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml diff --git a/tests/tests/api/push.yaml b/tests/tests/api/push.yaml index 37ba1b4b5f..9ab4af8cd2 100644 --- a/tests/tests/api/push.yaml +++ b/tests/tests/api/push.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml diff --git a/tests/tests/bitbucket.yaml b/tests/tests/bitbucket.yaml index 7cd53ffe07..c2f0552da2 100644 --- a/tests/tests/bitbucket.yaml +++ b/tests/tests/bitbucket.yaml @@ -8,7 +8,6 @@ - ansible.builtin.import_playbook: bitbucket/branch.yaml vars: testname: "BITBUCKET {{ cluster_type|upper }} - slash branch" - node_version: 16 git_repo_name: bitbucket.git git_repo_full_name: git/bitbucket git_repo_url: "http://{{ lookup('env','GIT_HOST') }}:{{ lookup('env','GIT_PORT') }}/git/bitbucket" @@ -20,7 +19,6 @@ - ansible.builtin.import_playbook: github/skip-deployment.yaml vars: testname: "BITBUCKET {{ cluster_type|upper }} - skip deployment" - node_version: 16 git_repo_name: bitbucket.git git_repo_full_name: git/bitbucket git_repo_url: "http://{{ lookup('env','GIT_HOST') }}:{{ lookup('env','GIT_PORT') }}/git/bitbucket" @@ -32,7 +30,6 @@ - ansible.builtin.import_playbook: bitbucket/pullrequest.yaml vars: testname: "BITBUCKET {{ cluster_type|upper }} - PULLREQUEST" - node_version: 16 git_repo_name: bitbucket.git git_repo_full_name: git/bitbucket git_repo_url: "http://{{ lookup('env','GIT_HOST') }}:{{ lookup('env','GIT_PORT') }}/git/bitbucket" diff --git a/tests/tests/bitbucket/branch.yaml b/tests/tests/bitbucket/branch.yaml index c125736b2a..95999bbc52 100644 --- a/tests/tests/bitbucket/branch.yaml +++ b/tests/tests/bitbucket/branch.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml diff --git a/tests/tests/bitbucket/pullrequest.yaml b/tests/tests/bitbucket/pullrequest.yaml index 0e639dc7f7..734dfc449e 100644 --- a/tests/tests/bitbucket/pullrequest.yaml +++ b/tests/tests/bitbucket/pullrequest.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" branch: "pullrequest_base" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml diff --git a/tests/tests/bitbucket/skip-deployment.yaml b/tests/tests/bitbucket/skip-deployment.yaml index 4180ed5a2f..c54e6a847c 100644 --- a/tests/tests/bitbucket/skip-deployment.yaml +++ b/tests/tests/bitbucket/skip-deployment.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml diff --git a/tests/tests/features-kubernetes.yaml b/tests/tests/features-kubernetes.yaml index ed20d6b220..b5d9899f97 100644 --- a/tests/tests/features-kubernetes.yaml +++ b/tests/tests/features-kubernetes.yaml @@ -54,7 +54,6 @@ - ansible.builtin.import_playbook: features/remote-shell.yaml vars: testname: "REMOTE SHELL {{ cluster_type|upper }}" - node_version: 16 git_repo_name: features.git project: ci-features-{{ cluster_type }} branch: remoteshell @@ -73,7 +72,6 @@ # - ansible.builtin.import_playbook: features/openshift-limit.yaml # vars: # testname: "openshift-character-limit {{ cluster_type|upper }}" -# node_version: 16 # git_repo_name: features.git # project: ci-features-{{ cluster_type }} # branch: very-long-branch-name-what-would-otherwise-overflow-the-sixty-three-limit diff --git a/tests/tests/features/limits.yaml b/tests/tests/features/limits.yaml index ac2142a903..789d8dfcb6 100644 --- a/tests/tests/features/limits.yaml +++ b/tests/tests/features/limits.yaml @@ -2,7 +2,6 @@ - ansible.builtin.import_playbook: ../api/push.yaml vars: testname: "environment limits - allow production" - node_version: 16 git_repo_name: node.git project: ci-env-limit branch: master @@ -12,7 +11,6 @@ - ansible.builtin.import_playbook: ../api/push.yaml vars: testname: "environment limits - allow deployment of existing branch" - node_version: 16 git_repo_name: node.git project: ci-env-limit branch: stage @@ -22,7 +20,6 @@ - ansible.builtin.import_playbook: ../api/push.yaml vars: testname: "environment limits - prevent deployment of new branch" - node_version: 16 git_repo_name: node.git project: ci-env-limit branch: will-not-deploy diff --git a/tests/tests/features/remote-shell.yaml b/tests/tests/features/remote-shell.yaml index ecc08c02a3..0e2de85993 100644 --- a/tests/tests/features/remote-shell.yaml +++ b/tests/tests/features/remote-shell.yaml @@ -2,7 +2,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml diff --git a/tests/tests/features/remote-ssh-legacy.yaml b/tests/tests/features/remote-ssh-legacy.yaml index 552c5b9c7b..55778fed06 100644 --- a/tests/tests/features/remote-ssh-legacy.yaml +++ b/tests/tests/features/remote-ssh-legacy.yaml @@ -2,7 +2,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml diff --git a/tests/tests/github.yaml b/tests/tests/github.yaml index f69e8e370a..8f401a8921 100644 --- a/tests/tests/github.yaml +++ b/tests/tests/github.yaml @@ -8,7 +8,6 @@ - ansible.builtin.import_playbook: github/branch.yaml vars: testname: "GITHUB {{ cluster_type|upper }} - slash branch" - node_version: 16 git_repo_name: github.git project: ci-github-{{ cluster_type }} branch: github/slash/branch @@ -18,7 +17,6 @@ - ansible.builtin.import_playbook: github/branch-picky.yaml vars: testname: "GITHUB {{ cluster_type|upper }} - picky branch" - node_version: 16 git_repo_name: github.git project: ci-github-{{ cluster_type }} branch: github/slash/banana @@ -27,7 +25,6 @@ - ansible.builtin.import_playbook: github/pullrequest.yaml vars: testname: "GITHUB {{ cluster_type|upper }} - PULLREQUEST" - node_version: 16 git_repo_name: github.git project: ci-github-{{ cluster_type }} check_url: "http://node.{{ project | regex_replace('_', '-') }}.pr-1.{{ route_suffix }}" @@ -36,7 +33,6 @@ vars: testname: "GITHUB {{ cluster_type|upper }} - skip deployment" branch: skip - node_version: 16 git_repo_name: github.git project: ci-github-{{ cluster_type }} check_url: "http://node.{{ project | regex_replace('_', '-') }}.skip.{{ route_suffix }}" diff --git a/tests/tests/github/branch-picky.yaml b/tests/tests/github/branch-picky.yaml index 22bab7971f..65a70bc2e2 100644 --- a/tests/tests/github/branch-picky.yaml +++ b/tests/tests/github/branch-picky.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml diff --git a/tests/tests/github/branch.yaml b/tests/tests/github/branch.yaml index 0358af44f8..d7914ee1ad 100644 --- a/tests/tests/github/branch.yaml +++ b/tests/tests/github/branch.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml diff --git a/tests/tests/github/pullrequest.yaml b/tests/tests/github/pullrequest.yaml index 5c84f5743d..9bd99ce8fc 100644 --- a/tests/tests/github/pullrequest.yaml +++ b/tests/tests/github/pullrequest.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" branch: "pullrequest_base" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml diff --git a/tests/tests/github/skip-deployment.yaml b/tests/tests/github/skip-deployment.yaml index 1946ae8ed5..9a16d346a2 100644 --- a/tests/tests/github/skip-deployment.yaml +++ b/tests/tests/github/skip-deployment.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml diff --git a/tests/tests/gitlab.yaml b/tests/tests/gitlab.yaml index 4c07809633..939443ba51 100644 --- a/tests/tests/gitlab.yaml +++ b/tests/tests/gitlab.yaml @@ -8,7 +8,6 @@ - ansible.builtin.import_playbook: gitlab/skip-deployment.yaml vars: testname: "GITLAB {{ cluster_type|upper }} - skip deployment" - node_version: 16 git_repo_name: gitlab.git project: ci-gitlab-{{ cluster_type }} branch: skip @@ -17,7 +16,6 @@ - ansible.builtin.import_playbook: gitlab/branch.yaml vars: testname: "GITLAB {{ cluster_type|upper }} - slash branch" - node_version: 16 git_repo_name: gitlab.git project: ci-gitlab-{{ cluster_type }} branch: gitlab/slash/branch @@ -26,7 +24,6 @@ - ansible.builtin.import_playbook: gitlab/pullrequest.yaml vars: testname: "GITLAB {{ cluster_type|upper }} - PULLREQUEST" - node_version: 16 git_repo_name: gitlab.git project: ci-gitlab-{{ cluster_type }} check_url: "http://node.{{ project | regex_replace('_', '-') }}.pr-1.{{ route_suffix }}" diff --git a/tests/tests/gitlab/branch.yaml b/tests/tests/gitlab/branch.yaml index c81b127879..cc4d61ebe0 100644 --- a/tests/tests/gitlab/branch.yaml +++ b/tests/tests/gitlab/branch.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml diff --git a/tests/tests/gitlab/pullrequest.yaml b/tests/tests/gitlab/pullrequest.yaml index 48a5f77bf2..a7c18b182b 100644 --- a/tests/tests/gitlab/pullrequest.yaml +++ b/tests/tests/gitlab/pullrequest.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" branch: "pullrequest_base" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml diff --git a/tests/tests/gitlab/skip-deployment.yaml b/tests/tests/gitlab/skip-deployment.yaml index bfd8c7be3a..2c316c632b 100644 --- a/tests/tests/gitlab/skip-deployment.yaml +++ b/tests/tests/gitlab/skip-deployment.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "node{{ node_version }}/" + git_files: "node/" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml diff --git a/tests/tests/python/deploy-branch.yaml b/tests/tests/python/deploy-branch.yaml index ad6cdbfcf6..ada03b5585 100644 --- a/tests/tests/python/deploy-branch.yaml +++ b/tests/tests/python/deploy-branch.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "python{{ python_version }}/" + git_files: "python/" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml diff --git a/tests/tests/python/deploy-pullrequest.yaml b/tests/tests/python/deploy-pullrequest.yaml index 7b8ef32929..2cbcf4b619 100644 --- a/tests/tests/python/deploy-pullrequest.yaml +++ b/tests/tests/python/deploy-pullrequest.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "python{{ python_version }}/" + git_files: "python/" branch: "pullrequest_base" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml diff --git a/tests/tests/python/push.yaml b/tests/tests/python/push.yaml index 995c6baa8d..b5178da3f1 100644 --- a/tests/tests/python/push.yaml +++ b/tests/tests/python/push.yaml @@ -3,7 +3,7 @@ hosts: localhost serial: 1 vars: - git_files: "python{{ python_version }}/" + git_files: "python/" tasks: - ansible.builtin.include_tasks: ../../tasks/git-init.yaml - ansible.builtin.include_tasks: ../../tasks/git-add-commit-push.yaml diff --git a/tests/tests/ssh-legacy.yaml b/tests/tests/ssh-legacy.yaml index 7467ded012..66a96e70b4 100644 --- a/tests/tests/ssh-legacy.yaml +++ b/tests/tests/ssh-legacy.yaml @@ -12,7 +12,6 @@ - ansible.builtin.import_playbook: features/remote-ssh-legacy.yaml vars: testname: "REMOTE SSH LEGACY {{ cluster_type|upper }}" - node_version: 16 git_repo_name: features.git project: ci-ssh-legacy-{{ cluster_type }} branch: remoteshell

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