diff --git a/Gemini/.gitignore b/Gemini/.gitignore
deleted file mode 100644
index 8e11490f..00000000
--- a/Gemini/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/phpunit.xml
-/vendor
-/build
-.idea
-
diff --git a/Gemini/README.md b/Gemini/README.md
deleted file mode 100644
index 721782c3..00000000
--- a/Gemini/README.md
+++ /dev/null
@@ -1,206 +0,0 @@
-#  Gemini
-[![Contribution Guidelines][2]](./CONTRIBUTING.md)
-[![LICENSE][3]](./LICENSE)
-
-## Introduction
-
-A path mapping service for Islandora 8. Gemini is what links content created in Drupal to data stored in Fedora. It has a very simple API and is built on top of a relational database using Doctrine's [database abstraction layer][4].
-
-## Installation
-
-- Install the database of your choice that is [compatible with Doctrine's DBAL][5].
-- Clone this repository.
-- Install `composer`. [Install instructions here.][6]
-- `$ cd /path/to/Gemini` and run `$ composer install`
-- Then either
- - For production, configure your web server appropriately (e.g. add a VirtualHost for Gemini in Apache) OR
- - For development, run the PHP built-in web server `$ php -S localhost:8888 -t src` from Gemini root.
-
-Gemini runs on its own database, and requires one table. You'll need to set that up manually. For example, using MySQL:
-```mysql
-create database gemini;
-CREATE TABLE gemini.Gemini (
- id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
- drupal VARCHAR(2048) NOT NULL UNIQUE,
- fedora VARCHAR(2048) NOT NULL UNIQUE
-) ENGINE=InnoDB;
-```
-
-## Configuration
-
-Gemini accepts [configuration for Doctrine's DBAL](http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html) as the `db.options` array in [its config file](./cfg/config.example.yaml) file. Other settings such as the location of Gemini's log file and the base URL of your Fedora server are also in this configuration file. Reasonable defaults provided. Do not commit the configuration file with your MySQL credentials into Git!
-
-## Usage
-
-Gemini associates URL paths between resources in Drupal and Fedora. To link the Drupal and Fedora URIs of a resource, a client must mint a new Fedora URI (using a POST) based on the UUID of the node or file in Drupal, and then persist the Gemini record linking the two URIs (using a PUT).
-
-#### POST /
-
-Mints a new Fedora URI:
-
-`curl -v -H "Authorization: Bearer islandora" -H "Content-Type: application/json" -d 'ab70127a-8579-4c17-af07-b3b1eceebb17' http://localhost:8000/gemini/`
-
-Returns for example:
-
-```
-< HTTP/1.1 200 OK
-< Date: Mon, 29 Oct 2018 19:03:36 GMT
-< Server: Apache/2.4.18 (Ubuntu)
-< X-Powered-By: PHP/7.0.32-0ubuntu0.16.04.1
-< Cache-Control: no-cache, private
-< Vary: Accept-Encoding
-< Content-Length: 82
-< Content-Type: text/html; charset=UTF-8
-```
-
-`http://localhost:8080/fcrepo/rest/ab/70/12/7a/ab70127a-8579-4c17-af07-b3b1eceebb17`
-
-#### PUT /{UUID}
-
-Updates the entry corresponding to the UUID with the Drupal URL:
-
-`curl -v -H "Authorization: Bearer islandora" -X PUT -H "Content-Type: application/json" -d '{"drupal" : "http://localhost:8000/node/0001", "fedora" : "http://localhost:8080/fcrepo/rest/ab/70/12/7a/ab70127a-8579-4c17-af07-b3b1eceebb17"}' http://localhost:8000/gemini/ab70127a-8579-4c17-af07-b3b1eceebb17`
-
-
-If successful, returns for example:
-
-```
-HTTP/1.1 201 Created
-< Date: Mon, 29 Oct 2018 19:17:41 GMT
-< Server: Apache/2.4.18 (Ubuntu)
-< X-Powered-By: PHP/7.0.32-0ubuntu0.16.04.1
-< Cache-Control: no-cache, private
-< Location: http://localhost:8000/gemini/ab70127a-8579-4c17-af07-b3b1eceebb17
-< Content-Length: 0
-< Content-Type: text/html; charset=UTF-8
-```
-
-resulting in the creation of a new record in the Gemini database:
-
-```
-mysql> select * from Gemini where uuid = 'ab70127a-8579-4c17-af07-b3b1eceebb17'\G
-*************************** 1. row ***************************
-fedora_hash: 868afb07dbe25dc0539ba91ce4f0d9e5e2cebdc1124935590544abe14b54466ecf925113bcf057c3b1bbb9056e03e918dd60b50ad2047b9ecf44b60db8fb1a91
-drupal_hash: 1cd9033dc7a45e4034bfba5b832f772b2b8a694ece2ac0c16bcc22a3563ee331a90adc843e3657e491ac550776eaff0ec2db521891da2a3a55609d817598b5da
- uuid: ab70127a-8579-4c17-af07-b3b1eceebb17
- drupal_uri: http://localhost:8000/node/0001
- fedora_uri: http://localhost:8080/fcrepo/rest/ab/70/12/7a/ab70127a-8579-4c17-af07-b3b1eceebb17
-dateCreated: 2018-10-29 14:17:42
-dateUpdated: 2018-10-29 14:17:42
-1 row in set (0.00 sec)
-```
-
-#### GET /{UUID}
-
-Fetches the Drupal/Fedora URIs corresponding to a UUID:
-
-`curl -H "Authorization: Bearer islandora" http://localhost:8000/gemini/ab70127a-8579-4c17-af07-b3b1eceebb17`
-
-This request returns, for example:
-
-```
-< HTTP/1.1 200 OK
-< Date: Mon, 29 Oct 2018 20:31:25 GMT
-< Server: Apache/2.4.18 (Ubuntu)
-< X-Powered-By: PHP/7.0.32-0ubuntu0.16.04.1
-< Cache-Control: no-cache, private
-< Content-Length: 163
-< Content-Type: application/json
-```
-
-```javascript
-{
- "drupal":"http:\/\/localhost:8000\/node\/0001",
- "fedora":"http:\/\/localhost:8080\/fcrepo\/rest\/ab\/70\/12\/7a\/ab70127a-8579-4c17-af07-b3b1eceebb17"
-}
-```
-
-#### GET /by_uri
-
-Fetches the alternate URI from Gemini for the one provided in a `X-Islandora-URI` header and returns:
-* 200 OK and the URI in a Location header, if it exists in Gemini.
-* 404 Not Found, if it doesn't exist in Gemini.
-
-`curl -i -H"Authorization: Bearer islandora" -H"X-Islandora-URI: http://localhost:8000/node/2" http://localhost:8000/gemini/by_uri`
-
-This request returns:
-```
-HTTP/1.1 200 OK
-Date: Thu, 23 May 2019 19:23:15 GMT
-Server: Apache/2.4.18 (Ubuntu)
-X-Powered-By: PHP/7.2.18-1+ubuntu16.04.1+deb.sury.org+1
-Location: http://localhost:8080/fcrepo/rest/cf/5d/46/74/cf5d4674-282b-499c-9ebc-4c4815d4f9ac
-Cache-Control: no-cache, private
-Content-Length: 0
-Content-Type: text/html; charset=UTF-8
-```
-
-Requesting with the URI from this `Location:` header should return the original URI.
-
-`curl -i -H"Authorization: Bearer islandora" -H"X-Islandora-URI: http://localhost:8080/fcrepo/rest/cf/5d/46/74/cf5d4674-282b-499c-9ebc-4c4815d4f9ac" http://localhost:8000/gemini/by_uri`
-
-```
-HTTP/1.1 200 OK
-Date: Thu, 23 May 2019 19:25:27 GMT
-Server: Apache/2.4.18 (Ubuntu)
-X-Powered-By: PHP/7.2.18-1+ubuntu16.04.1+deb.sury.org+1
-Location: http://localhost:8000/node/2
-Cache-Control: no-cache, private
-Content-Length: 0
-Content-Type: text/html; charset=UTF-8
-```
-
-If a mapping cannot be found then a 404 response is returned.
-
-`curl -i -H"Authorization: Bearer islandora" -H"X-Islandora-URI: http://localhost:8000/node/99" http://localhost:8000/gemini/by_uri`
-
-```
-HTTP/1.1 404 Not Found
-Date: Thu, 23 May 2019 19:26:36 GMT
-Server: Apache/2.4.18 (Ubuntu)
-X-Powered-By: PHP/7.2.18-1+ubuntu16.04.1+deb.sury.org+1
-Cache-Control: no-cache, private
-Content-Length: 0
-Content-Type: text/html; charset=UTF-8
-```
-
-#### DELETE /{UUID}
-
-Purges the entry corresponding to the UUID from Gemini's database:
-
-curl -v -X DELETE -H "Authorization: Bearer islandora" http://localhost:8000/gemini/ab70127a-8579-4c17-af07-b3b1eceebb17
-
-If successful, this request returns, for example:
-
-```
-< HTTP/1.1 204 No Content
-< Date: Mon, 29 Oct 2018 19:51:39 GMT
-< Server: Apache/2.4.18 (Ubuntu)
-< X-Powered-By: PHP/7.0.32-0ubuntu0.16.04.1
-< Cache-Control: no-cache, private
-< Content-Type: text/html; charset=UTF-8
-```
-
-## Maintainers
-
-Current maintainers:
-
-* [Daniel Lamb](https://github.com/dannylamb)
-
-## Development
-
-If you would like to contribute, please get involved by attending our weekly [Tech Call](https://github.com/Islandora/docuentation/wiki). We love to hear from you!
-
-If you would like to contribute code to the project, you need to be covered by an Islandora Foundation [Contributor License Agreement](http://islandora.ca/sites/default/files/islandora_cla.pdf) or [Corporate Contributor License Agreement](http://islandora.ca/sites/default/files/islandora_ccla.pdf). Please see the [Contributors](http://islandora.ca/resources/contributors) pages on Islandora.ca for more information.
-
-We recommend using the [islandora-playbook](https://github.com/Islandora-Devops/islandora-playbook) to get started.
-
-## License
-
-[MIT](https://opensource.org/licenses/MIT)
-
-[2]: http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg
-[3]: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square
-[4]: http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/
-[5]: http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/introduction.html
-[6]: https://getcomposer.org/download/
diff --git a/Gemini/bin/console b/Gemini/bin/console
deleted file mode 100644
index 7365b6e7..00000000
--- a/Gemini/bin/console
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env php
-getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev');
-
-$app = require __DIR__.'/../src/app.php';
-$console = require __DIR__.'/../src/console.php';
-
-$app->register(
- new \Kurl\Silex\Provider\DoctrineMigrationsProvider($console),
- array(
- 'migrations.directory' => __DIR__ . '/../src/Migrations',
- 'migrations.namespace' => 'Islandora\Gemini\Migrations',
- 'migrations.name' => 'Gemini Migrations',
- 'migrations.table_name' => 'gemini_migrations',
- )
-);
-
-$console->setHelperSet($app['migrations.em_helper_set']);
-$console->addCommands($app['migrations.commands']);
-
-$console->run();
diff --git a/Gemini/cfg/config.example.yaml b/Gemini/cfg/config.example.yaml
deleted file mode 100644
index 732cda88..00000000
--- a/Gemini/cfg/config.example.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
-
-debug: false
-
-# Leave these blank unless you know what you're doing. If you're moving
-# data from one server to another and the domain changes, set these
-# to your new domain.
-fedora_domain:
-drupal_domain:
-
-db.options:
- driver: pdo_mysql
- host: 127.0.0.1
- port: 3306
- dbname: gemini
- user: changeme
- password: changeme
-
-log:
- # Valid log levels are:
- # DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY, NONE
- # log level none won't open logfile
- level: NONE
- file: ../gemini.log
-
-syn:
- # toggles JWT security for service
- enable: false
- # Path to the syn config file for authentication.
- # example can be found here:
- # https://github.com/Islandora/Syn/blob/main/conf/syn-settings.example.xml
- config: ../syn-settings.xml
diff --git a/Gemini/composer.json b/Gemini/composer.json
deleted file mode 100644
index aba33bf9..00000000
--- a/Gemini/composer.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "name": "islandora/gemini",
- "description": "Path mapping Service between Fedora and Drupal",
- "require": {
- "silex/silex": "^2.0",
- "islandora/crayfish-commons": "dev-dev",
- "doctrine/migrations": "^1.7",
- "kurl/silex-doctrine-migrations-provider": "^0.3.1",
- "php": "^7.3 || ^7.4"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.0",
- "squizlabs/php_codesniffer": "^3.0",
- "sebastian/phpcpd": "^6.0"
- },
- "minimum-stability": "dev",
- "prefer-stable": true,
- "autoload": {
- "psr-4": {
- "Islandora\\Gemini\\": "src/"
- }
- },
- "scripts": {
- "check": [
- "vendor/bin/phpcs --standard=PSR2 src tests",
- "vendor/bin/phpcpd --suffix *.php src"
- ],
- "test": [
- "@check",
- "vendor/bin/phpunit"
- ]
- },
- "config": {
- "sort-packages": true
- },
- "license": "MIT",
- "authors": [
- {
- "name": "Islandora Foundation",
- "email": "community@islandora.ca",
- "role": "Owner"
- },
- {
- "name": "Daniel Lamb",
- "email": "dlamb@islandora.ca",
- "role": "Maintainer"
- }
- ]
-}
diff --git a/Gemini/composer.lock b/Gemini/composer.lock
deleted file mode 100644
index a95e40c0..00000000
--- a/Gemini/composer.lock
+++ /dev/null
@@ -1,5422 +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": "613449030e774cc95052c96b667187da",
- "packages": [
- {
- "name": "doctrine/cache",
- "version": "1.10.2",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/cache.git",
- "reference": "13e3381b25847283a91948d04640543941309727"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/cache/zipball/13e3381b25847283a91948d04640543941309727",
- "reference": "13e3381b25847283a91948d04640543941309727",
- "shasum": ""
- },
- "require": {
- "php": "~7.1 || ^8.0"
- },
- "conflict": {
- "doctrine/common": ">2.2,<2.4"
- },
- "require-dev": {
- "alcaeus/mongo-php-adapter": "^1.1",
- "doctrine/coding-standard": "^6.0",
- "mongodb/mongodb": "^1.1",
- "phpunit/phpunit": "^7.0",
- "predis/predis": "~1.0"
- },
- "suggest": {
- "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.9.x-dev"
- }
- },
- "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"
- ],
- "support": {
- "issues": "https://github.com/doctrine/cache/issues",
- "source": "https://github.com/doctrine/cache/tree/1.10.x"
- },
- "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": "2020-07-07T18:54:01+00:00"
- },
- {
- "name": "doctrine/dbal",
- "version": "2.12.1",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/dbal.git",
- "reference": "adce7a954a1c2f14f85e94aed90c8489af204086"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/adce7a954a1c2f14f85e94aed90c8489af204086",
- "reference": "adce7a954a1c2f14f85e94aed90c8489af204086",
- "shasum": ""
- },
- "require": {
- "doctrine/cache": "^1.0",
- "doctrine/event-manager": "^1.0",
- "ext-pdo": "*",
- "php": "^7.3 || ^8"
- },
- "require-dev": {
- "doctrine/coding-standard": "^8.1",
- "jetbrains/phpstorm-stubs": "^2019.1",
- "phpstan/phpstan": "^0.12.40",
- "phpunit/phpunit": "^9.4",
- "psalm/plugin-phpunit": "^0.10.0",
- "symfony/console": "^2.0.5|^3.0|^4.0|^5.0",
- "vimeo/psalm": "^3.17.2"
- },
- "suggest": {
- "symfony/console": "For helpful console commands such as SQL execution and import of files."
- },
- "bin": [
- "bin/doctrine-dbal"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Doctrine\\DBAL\\": "lib/Doctrine/DBAL"
- }
- },
- "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"
- }
- ],
- "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
- "homepage": "https://www.doctrine-project.org/projects/dbal.html",
- "keywords": [
- "abstraction",
- "database",
- "db2",
- "dbal",
- "mariadb",
- "mssql",
- "mysql",
- "oci8",
- "oracle",
- "pdo",
- "pgsql",
- "postgresql",
- "queryobject",
- "sasql",
- "sql",
- "sqlanywhere",
- "sqlite",
- "sqlserver",
- "sqlsrv"
- ],
- "support": {
- "issues": "https://github.com/doctrine/dbal/issues",
- "source": "https://github.com/doctrine/dbal/tree/2.12.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%2Fdbal",
- "type": "tidelift"
- }
- ],
- "time": "2020-11-14T20:26:58+00:00"
- },
- {
- "name": "doctrine/event-manager",
- "version": "1.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/event-manager.git",
- "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f",
- "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "conflict": {
- "doctrine/common": "<2.9@dev"
- },
- "require-dev": {
- "doctrine/coding-standard": "^6.0",
- "phpunit/phpunit": "^7.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.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": "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"
- ],
- "support": {
- "issues": "https://github.com/doctrine/event-manager/issues",
- "source": "https://github.com/doctrine/event-manager/tree/1.1.x"
- },
- "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": "2020-05-29T18:28:51+00:00"
- },
- {
- "name": "doctrine/migrations",
- "version": "v1.8.1",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/migrations.git",
- "reference": "215438c0eef3e5f9b7da7d09c6b90756071b43e6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/migrations/zipball/215438c0eef3e5f9b7da7d09c6b90756071b43e6",
- "reference": "215438c0eef3e5f9b7da7d09c6b90756071b43e6",
- "shasum": ""
- },
- "require": {
- "doctrine/dbal": "~2.6",
- "ocramius/proxy-manager": "^1.0|^2.0",
- "php": "^7.1",
- "symfony/console": "~3.3|^4.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^1.0",
- "doctrine/orm": "~2.5",
- "jdorn/sql-formatter": "~1.1",
- "mikey179/vfsstream": "^1.6",
- "phpunit/phpunit": "~7.0",
- "squizlabs/php_codesniffer": "^3.0",
- "symfony/yaml": "~3.3|^4.0"
- },
- "suggest": {
- "jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command.",
- "symfony/yaml": "Allows the use of yaml for migration configuration files."
- },
- "bin": [
- "bin/doctrine-migrations"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "v1.8.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Doctrine\\DBAL\\Migrations\\": "lib/Doctrine/DBAL/Migrations",
- "Doctrine\\Migrations\\": "lib/Doctrine/Migrations"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Michael Simonson",
- "email": "contact@mikesimonson.com"
- }
- ],
- "description": "Database Schema migrations using Doctrine DBAL",
- "homepage": "https://www.doctrine-project.org/projects/migrations.html",
- "keywords": [
- "database",
- "migrations"
- ],
- "support": {
- "issues": "https://github.com/doctrine/migrations/issues",
- "source": "https://github.com/doctrine/migrations/tree/1.8"
- },
- "time": "2018-06-06T21:00:30+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": "guzzlehttp/guzzle",
- "version": "6.5.5",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/guzzle.git",
- "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
- "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "guzzlehttp/promises": "^1.0",
- "guzzlehttp/psr7": "^1.6.1",
- "php": ">=5.5",
- "symfony/polyfill-intl-idn": "^1.17.0"
- },
- "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": {
- "psr-4": {
- "GuzzleHttp\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "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"
- },
- "time": "2020-06-16T21:01:06+00:00"
- },
- {
- "name": "guzzlehttp/promises",
- "version": "1.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/promises.git",
- "reference": "60d379c243457e073cff02bc323a2a86cb355631"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631",
- "reference": "60d379c243457e073cff02bc323a2a86cb355631",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5"
- },
- "require-dev": {
- "symfony/phpunit-bridge": "^4.4 || ^5.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\Promise\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "description": "Guzzle promises library",
- "keywords": [
- "promise"
- ],
- "support": {
- "issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/1.4.0"
- },
- "time": "2020-09-30T07:37:28+00:00"
- },
- {
- "name": "guzzlehttp/psr7",
- "version": "1.7.0",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/psr7.git",
- "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3",
- "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3",
- "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.7-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\Psr7\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- },
- {
- "name": "Tobias Schultze",
- "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.7.0"
- },
- "time": "2020-09-30T07:37:11+00:00"
- },
- {
- "name": "islandora/chullo",
- "version": "dev-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/Islandora/chullo.git",
- "reference": "6a5454e2bcdb2b24bf481b842692d4d1de6a0287"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Islandora/chullo/zipball/6a5454e2bcdb2b24bf481b842692d4d1de6a0287",
- "reference": "6a5454e2bcdb2b24bf481b842692d4d1de6a0287",
- "shasum": ""
- },
- "require": {
- "easyrdf/easyrdf": "^0.9 || ^1",
- "guzzlehttp/guzzle": "^6.1.0",
- "ml/json-ld": "^1.0.4",
- "php": "^7.3 || ^7.4"
- },
- "require-dev": {
- "mockery/mockery": "^0.9",
- "phpunit/phpunit": "^9.0",
- "sebastian/phpcpd": "^6.0",
- "squizlabs/php_codesniffer": "^3.0"
- },
- "default-branch": true,
- "type": "library",
- "autoload": {
- "psr-4": {
- "Islandora\\Chullo\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Islandora Foundation",
- "email": "community@islandora.ca",
- "role": "Owner"
- },
- {
- "name": "Daniel Lamb",
- "email": "dlamb@islandora.ca",
- "role": "Maintainer"
- },
- {
- "name": "Nick Ruest",
- "email": "ruestn@gmail.com",
- "role": "Maintainer"
- }
- ],
- "description": "A PHP client for interacting with a Fedora 4 server.",
- "homepage": "https://github.com/Islandora/chullo",
- "support": {
- "issues": "https://github.com/Islandora/documentation/issues",
- "source": "https://github.com/Islandora/chullo/tree/dev"
- },
- "time": "2020-12-11T21:38:08+00:00"
- },
- {
- "name": "islandora/crayfish-commons",
- "version": "dev-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/Islandora/Crayfish-Commons.git",
- "reference": "d7c0044723c2089f7757fb5c9dd523397938a8e9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Islandora/Crayfish-Commons/zipball/d7c0044723c2089f7757fb5c9dd523397938a8e9",
- "reference": "d7c0044723c2089f7757fb5c9dd523397938a8e9",
- "shasum": ""
- },
- "require": {
- "doctrine/dbal": "~2.2",
- "islandora/chullo": "dev-dev",
- "monolog/monolog": "^1.22",
- "namshi/jose": "^7.2",
- "pimple/pimple": "~3.0",
- "psr/log": "^1.0.1",
- "silex/silex": "^2.0",
- "symfony/http-foundation": "^3.2.6",
- "symfony/security": "^3.2",
- "symfony/yaml": "^3.2"
- },
- "require-dev": {
- "mikey179/vfsstream": "^1.6",
- "phpunit/phpunit": "^5.0",
- "sebastian/phpcpd": "^3.0",
- "squizlabs/php_codesniffer": "^2.0"
- },
- "default-branch": true,
- "type": "library",
- "autoload": {
- "psr-4": {
- "Islandora\\Crayfish\\Commons\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Islandora Foundation",
- "email": "community@islandora.ca",
- "role": "Owner"
- },
- {
- "name": "Daniel Lamb",
- "email": "dlamb@islandora.ca",
- "role": "Maintainer"
- }
- ],
- "description": "Shared code amongst Islandora Crayfish microservices",
- "homepage": "https://github.com/Islandora/Crayfish-Commons",
- "support": {
- "issues": "https://github.com/Islandora/documentation/issues",
- "source": "https://github.com/Islandora/Crayfish-Commons/tree/dev"
- },
- "time": "2020-11-12T23:33:17+00:00"
- },
- {
- "name": "kurl/silex-doctrine-migrations-provider",
- "version": "0.3.2",
- "source": {
- "type": "git",
- "url": "https://github.com/breenie/silex-doctrine-migrations-provider.git",
- "reference": "d2b9508b180adc3ce2283b9f04798ad353bdfcf6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/breenie/silex-doctrine-migrations-provider/zipball/d2b9508b180adc3ce2283b9f04798ad353bdfcf6",
- "reference": "d2b9508b180adc3ce2283b9f04798ad353bdfcf6",
- "shasum": ""
- },
- "require": {
- "doctrine/dbal": "^2.2",
- "doctrine/migrations": "^1.5",
- "php": "^5.6|^7.0",
- "pimple/pimple": "^3.0",
- "silex/api": "^2.0",
- "symfony/console": "^2.3 | ^3.0",
- "symfony/http-foundation": "3.4.35"
- },
- "require-dev": {
- "doctrine/orm": "^2.2",
- "phpunit/phpunit": "^5.7",
- "silex/silex": "^2.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Kurl\\Silex\\Provider\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "A doctrine migrations provider for silex",
- "support": {
- "issues": "https://github.com/breenie/silex-doctrine-migrations-provider/issues",
- "source": "https://github.com/breenie/silex-doctrine-migrations-provider/tree/0.3.2"
- },
- "time": "2020-03-23T11:51:42+00:00"
- },
- {
- "name": "ml/iri",
- "version": "1.1.4",
- "target-dir": "ML/IRI",
- "source": {
- "type": "git",
- "url": "https://github.com/lanthaler/IRI.git",
- "reference": "cbd44fa913e00ea624241b38cefaa99da8d71341"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/lanthaler/IRI/zipball/cbd44fa913e00ea624241b38cefaa99da8d71341",
- "reference": "cbd44fa913e00ea624241b38cefaa99da8d71341",
- "shasum": ""
- },
- "require": {
- "lib-pcre": ">=4.0",
- "php": ">=5.3.0"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "ML\\IRI": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Markus Lanthaler",
- "email": "mail@markus-lanthaler.com",
- "homepage": "http://www.markus-lanthaler.com",
- "role": "Developer"
- }
- ],
- "description": "IRI handling for PHP",
- "homepage": "http://www.markus-lanthaler.com",
- "keywords": [
- "URN",
- "iri",
- "uri",
- "url"
- ],
- "support": {
- "issues": "https://github.com/lanthaler/IRI/issues",
- "source": "https://github.com/lanthaler/IRI/tree/master"
- },
- "time": "2014-01-21T13:43:39+00:00"
- },
- {
- "name": "ml/json-ld",
- "version": "1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/lanthaler/JsonLD.git",
- "reference": "c74a1aed5979ed1cfb1be35a55a305fd30e30b93"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/lanthaler/JsonLD/zipball/c74a1aed5979ed1cfb1be35a55a305fd30e30b93",
- "reference": "c74a1aed5979ed1cfb1be35a55a305fd30e30b93",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "ml/iri": "^1.1.1",
- "php": ">=5.3.0"
- },
- "require-dev": {
- "json-ld/tests": "1.0",
- "phpunit/phpunit": "^4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "ML\\JsonLD\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Markus Lanthaler",
- "email": "mail@markus-lanthaler.com",
- "homepage": "http://www.markus-lanthaler.com",
- "role": "Developer"
- }
- ],
- "description": "JSON-LD Processor for PHP",
- "homepage": "http://www.markus-lanthaler.com",
- "keywords": [
- "JSON-LD",
- "jsonld"
- ],
- "support": {
- "issues": "https://github.com/lanthaler/JsonLD/issues",
- "source": "https://github.com/lanthaler/JsonLD/tree/1.2.0"
- },
- "time": "2020-06-16T17:45:06+00:00"
- },
- {
- "name": "monolog/monolog",
- "version": "1.25.5",
- "source": {
- "type": "git",
- "url": "https://github.com/Seldaek/monolog.git",
- "reference": "1817faadd1846cd08be9a49e905dc68823bc38c0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1817faadd1846cd08be9a49e905dc68823bc38c0",
- "reference": "1817faadd1846cd08be9a49e905dc68823bc38c0",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0",
- "psr/log": "~1.0"
- },
- "provide": {
- "psr/log-implementation": "1.0.0"
- },
- "require-dev": {
- "aws/aws-sdk-php": "^2.4.9 || ^3.0",
- "doctrine/couchdb": "~1.0@dev",
- "graylog2/gelf-php": "~1.0",
- "php-amqplib/php-amqplib": "~2.4",
- "php-console/php-console": "^3.1.3",
- "php-parallel-lint/php-parallel-lint": "^1.0",
- "phpunit/phpunit": "~4.5",
- "ruflin/elastica": ">=0.90 <3.0",
- "sentry/sentry": "^0.13",
- "swiftmailer/swiftmailer": "^5.3|^6.0"
- },
- "suggest": {
- "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
- "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
- "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
- "ext-mongo": "Allow sending log messages to a MongoDB server",
- "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
- "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
- "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
- "php-console/php-console": "Allow sending log messages to Google Chrome",
- "rollbar/rollbar": "Allow sending log messages to Rollbar",
- "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
- "sentry/sentry": "Allow sending log messages to a Sentry server"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.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": "http://seld.be"
- }
- ],
- "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
- "homepage": "http://github.com/Seldaek/monolog",
- "keywords": [
- "log",
- "logging",
- "psr-3"
- ],
- "support": {
- "issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/1.25.5"
- },
- "funding": [
- {
- "url": "https://github.com/Seldaek",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
- "type": "tidelift"
- }
- ],
- "time": "2020-07-23T08:35:51+00:00"
- },
- {
- "name": "namshi/jose",
- "version": "7.2.3",
- "source": {
- "type": "git",
- "url": "https://github.com/namshi/jose.git",
- "reference": "89a24d7eb3040e285dd5925fcad992378b82bcff"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/namshi/jose/zipball/89a24d7eb3040e285dd5925fcad992378b82bcff",
- "reference": "89a24d7eb3040e285dd5925fcad992378b82bcff",
- "shasum": ""
- },
- "require": {
- "ext-date": "*",
- "ext-hash": "*",
- "ext-json": "*",
- "ext-pcre": "*",
- "ext-spl": "*",
- "php": ">=5.5",
- "symfony/polyfill-php56": "^1.0"
- },
- "require-dev": {
- "phpseclib/phpseclib": "^2.0",
- "phpunit/phpunit": "^4.5|^5.0",
- "satooshi/php-coveralls": "^1.0"
- },
- "suggest": {
- "ext-openssl": "Allows to use OpenSSL as crypto engine.",
- "phpseclib/phpseclib": "Allows to use Phpseclib as crypto engine, use version ^2.0."
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Namshi\\JOSE\\": "src/Namshi/JOSE/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Alessandro Nadalin",
- "email": "alessandro.nadalin@gmail.com"
- },
- {
- "name": "Alessandro Cinelli (cirpo)",
- "email": "alessandro.cinelli@gmail.com"
- }
- ],
- "description": "JSON Object Signing and Encryption library for PHP.",
- "keywords": [
- "JSON Web Signature",
- "JSON Web Token",
- "JWS",
- "json",
- "jwt",
- "token"
- ],
- "support": {
- "issues": "https://github.com/namshi/jose/issues",
- "source": "https://github.com/namshi/jose/tree/master"
- },
- "time": "2016-12-05T07:27:31+00:00"
- },
- {
- "name": "ocramius/proxy-manager",
- "version": "1.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/Ocramius/ProxyManager.git",
- "reference": "57e9272ec0e8deccf09421596e0e2252df440e11"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/57e9272ec0e8deccf09421596e0e2252df440e11",
- "reference": "57e9272ec0e8deccf09421596e0e2252df440e11",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "zendframework/zend-code": ">2.2.5,<3.0"
- },
- "require-dev": {
- "ext-phar": "*",
- "phpunit/phpunit": "~4.0",
- "squizlabs/php_codesniffer": "1.5.*"
- },
- "suggest": {
- "ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects",
- "zendframework/zend-json": "To have the JsonRpc adapter (Remote Object feature)",
- "zendframework/zend-soap": "To have the Soap adapter (Remote Object feature)",
- "zendframework/zend-stdlib": "To use the hydrator proxy",
- "zendframework/zend-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "ProxyManager\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "http://ocramius.github.com/"
- }
- ],
- "description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies",
- "homepage": "https://github.com/Ocramius/ProxyManager",
- "keywords": [
- "aop",
- "lazy loading",
- "proxy",
- "proxy pattern",
- "service proxies"
- ],
- "support": {
- "issues": "https://github.com/Ocramius/ProxyManager/issues",
- "source": "https://github.com/Ocramius/ProxyManager/tree/1.0.x"
- },
- "time": "2015-08-09T04:28:19+00:00"
- },
- {
- "name": "pimple/pimple",
- "version": "v3.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/silexphp/Pimple.git",
- "reference": "21e45061c3429b1e06233475cc0e1f6fc774d5b0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/silexphp/Pimple/zipball/21e45061c3429b1e06233475cc0e1f6fc774d5b0",
- "reference": "21e45061c3429b1e06233475cc0e1f6fc774d5b0",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/container": "^1.0"
- },
- "require-dev": {
- "symfony/phpunit-bridge": "^5.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.3.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Pimple": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- }
- ],
- "description": "Pimple, a simple Dependency Injection Container",
- "homepage": "https://pimple.symfony.com",
- "keywords": [
- "container",
- "dependency injection"
- ],
- "support": {
- "source": "https://github.com/silexphp/Pimple/tree/v3.3.1"
- },
- "time": "2020-11-24T20:35:42+00:00"
- },
- {
- "name": "psr/container",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/container.git",
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Container\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://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/master"
- },
- "time": "2017-02-14T16:28:37+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.3",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/log.git",
- "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
- "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
- "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": "http://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.3"
- },
- "time": "2020-03-23T09:12:05+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": "silex/silex",
- "version": "v2.2.4",
- "source": {
- "type": "git",
- "url": "https://github.com/silexphp/Silex.git",
- "reference": "d2531e5b8099c429b752ad2154e85999c3689057"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/silexphp/Silex/zipball/d2531e5b8099c429b752ad2154e85999c3689057",
- "reference": "d2531e5b8099c429b752ad2154e85999c3689057",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5.9",
- "pimple/pimple": "~3.0",
- "symfony/event-dispatcher": "~2.8|^3.0",
- "symfony/http-foundation": "~2.8|^3.0",
- "symfony/http-kernel": "~2.8|^3.0",
- "symfony/routing": "~2.8|^3.0"
- },
- "conflict": {
- "phpunit/phpunit": "<4.8.35 || >= 5.0, <5.4.3"
- },
- "replace": {
- "silex/api": "self.version",
- "silex/providers": "self.version"
- },
- "require-dev": {
- "doctrine/dbal": "~2.2",
- "monolog/monolog": "^1.4.1",
- "swiftmailer/swiftmailer": "~5",
- "symfony/asset": "~2.8|^3.0",
- "symfony/browser-kit": "~2.8|^3.0",
- "symfony/config": "~2.8|^3.0",
- "symfony/css-selector": "~2.8|^3.0",
- "symfony/debug": "~2.8|^3.0",
- "symfony/doctrine-bridge": "~2.8|^3.0",
- "symfony/dom-crawler": "~2.8|^3.0",
- "symfony/expression-language": "~2.8|^3.0",
- "symfony/finder": "~2.8|^3.0",
- "symfony/form": "~2.8|^3.0",
- "symfony/intl": "~2.8|^3.0",
- "symfony/monolog-bridge": "~2.8|^3.0",
- "symfony/options-resolver": "~2.8|^3.0",
- "symfony/phpunit-bridge": "^3.2",
- "symfony/process": "~2.8|^3.0",
- "symfony/security": "~2.8|^3.0",
- "symfony/serializer": "~2.8|^3.0",
- "symfony/translation": "~2.8|^3.0",
- "symfony/twig-bridge": "~2.8|^3.0",
- "symfony/validator": "~2.8|^3.0",
- "symfony/var-dumper": "~2.8|^3.0",
- "symfony/web-link": "^3.3",
- "twig/twig": "~1.28|~2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Silex\\": "src/Silex"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Igor Wiedler",
- "email": "igor@wiedler.ch"
- }
- ],
- "description": "The PHP micro-framework based on the Symfony Components",
- "homepage": "http://silex.sensiolabs.org",
- "keywords": [
- "microframework"
- ],
- "support": {
- "issues": "https://github.com/silexphp/Silex/issues",
- "source": "https://github.com/silexphp/Silex/tree/v2.2.4"
- },
- "abandoned": "symfony/flex",
- "time": "2018-03-16T23:34:20+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",
- "support": {
- "source": "https://github.com/symfony/console/tree/v3.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": "2020-10-24T10:57:07+00:00"
- },
- {
- "name": "symfony/debug",
- "version": "v4.4.17",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/debug.git",
- "reference": "65fe7b49868378319b82da3035fb30801b931c47"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/debug/zipball/65fe7b49868378319b82da3035fb30801b931c47",
- "reference": "65fe7b49868378319b82da3035fb30801b931c47",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1.3",
- "psr/log": "~1.0",
- "symfony/polyfill-php80": "^1.15"
- },
- "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": "Symfony Debug Component",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/debug/tree/v4.4.17"
- },
- "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-28T20:42:29+00:00"
- },
- {
- "name": "symfony/deprecation-contracts",
- "version": "v2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665",
- "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.2-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/master"
- },
- "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-09-07T11:33:47+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",
- "support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v3.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": "2020-10-24T10:57:07+00:00"
- },
- {
- "name": "symfony/http-foundation",
- "version": "v3.4.35",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/http-foundation.git",
- "reference": "9e4b3ac8fa3348b4811674d23de32d201de225ce"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9e4b3ac8fa3348b4811674d23de32d201de225ce",
- "reference": "9e4b3ac8fa3348b4811674d23de32d201de225ce",
- "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",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4-dev"
- }
- },
- "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",
- "support": {
- "source": "https://github.com/symfony/http-foundation/tree/3.4"
- },
- "time": "2019-11-11T12:53:10+00:00"
- },
- {
- "name": "symfony/http-kernel",
- "version": "v3.4.47",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/http-kernel.git",
- "reference": "a98a4c30089e6a2d52a9fa236f718159b539f6f5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a98a4c30089e6a2d52a9fa236f718159b539f6f5",
- "reference": "a98a4c30089e6a2d52a9fa236f718159b539f6f5",
- "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",
- "support": {
- "source": "https://github.com/symfony/http-kernel/tree/v3.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": "2020-11-27T08:42:42+00:00"
- },
- {
- "name": "symfony/inflector",
- "version": "v5.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/inflector.git",
- "reference": "ba33a08d608c5b26ef768b6652876098dd3ace36"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/inflector/zipball/ba33a08d608c5b26ef768b6652876098dd3ace36",
- "reference": "ba33a08d608c5b26ef768b6652876098dd3ace36",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
- "symfony/string": "^5.1"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Inflector\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Inflector Component",
- "homepage": "https://symfony.com",
- "keywords": [
- "inflection",
- "pluralize",
- "singularize",
- "string",
- "symfony",
- "words"
- ],
- "support": {
- "source": "https://github.com/symfony/inflector/tree/v5.2.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": "2020-10-24T12:01:57+00:00"
- },
- {
- "name": "symfony/polyfill-ctype",
- "version": "v1.20.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41",
- "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "suggest": {
- "ext-ctype": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
- },
- "files": [
- "bootstrap.php"
- ]
- },
- "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.20.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": "2020-10-23T14:02:19+00:00"
- },
- {
- "name": "symfony/polyfill-intl-grapheme",
- "version": "v1.20.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c",
- "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
- },
- "files": [
- "bootstrap.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": "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.20.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": "2020-10-23T14:02:19+00:00"
- },
- {
- "name": "symfony/polyfill-intl-idn",
- "version": "v1.20.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3b75acd829741c768bc8b1f84eb33265e7cc5117",
- "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117",
- "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.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Idn\\": ""
- },
- "files": [
- "bootstrap.php"
- ]
- },
- "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.20.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": "2020-10-23T14:02:19+00:00"
- },
- {
- "name": "symfony/polyfill-intl-normalizer",
- "version": "v1.20.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "727d1096295d807c309fb01a851577302394c897"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/727d1096295d807c309fb01a851577302394c897",
- "reference": "727d1096295d807c309fb01a851577302394c897",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
- },
- "files": [
- "bootstrap.php"
- ],
- "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.20.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": "2020-10-23T14:02:19+00:00"
- },
- {
- "name": "symfony/polyfill-mbstring",
- "version": "v1.20.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "39d483bdf39be819deabf04ec872eb0b2410b531"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531",
- "reference": "39d483bdf39be819deabf04ec872eb0b2410b531",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "suggest": {
- "ext-mbstring": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Mbstring\\": ""
- },
- "files": [
- "bootstrap.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": "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.20.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": "2020-10-23T14:02:19+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"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php56/tree/v1.20.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": "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"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php70/tree/v1.20.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": "2020-10-23T14:02:19+00:00"
- },
- {
- "name": "symfony/polyfill-php72",
- "version": "v1.20.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930",
- "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Php72\\": ""
- },
- "files": [
- "bootstrap.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": "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.20.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": "2020-10-23T14:02:19+00:00"
- },
- {
- "name": "symfony/polyfill-php80",
- "version": "v1.20.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de",
- "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
- },
- "files": [
- "bootstrap.php"
- ],
- "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.20.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": "2020-10-23T14:02:19+00:00"
- },
- {
- "name": "symfony/property-access",
- "version": "v4.4.17",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/property-access.git",
- "reference": "ab8184f093095b40c3e7688bc4eb1d0484da327c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/property-access/zipball/ab8184f093095b40c3e7688bc4eb1d0484da327c",
- "reference": "ab8184f093095b40c3e7688bc4eb1d0484da327c",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1.3",
- "symfony/inflector": "^3.4|^4.0|^5.0"
- },
- "require-dev": {
- "symfony/cache": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "psr/cache-implementation": "To cache access methods."
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\PropertyAccess\\": ""
- },
- "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 PropertyAccess Component",
- "homepage": "https://symfony.com",
- "keywords": [
- "access",
- "array",
- "extraction",
- "index",
- "injection",
- "object",
- "property",
- "property path",
- "reflection"
- ],
- "support": {
- "source": "https://github.com/symfony/property-access/tree/v4.4.17"
- },
- "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-31T22:44:29+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"
- ],
- "support": {
- "source": "https://github.com/symfony/routing/tree/v3.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": "2020-10-24T10:57:07+00:00"
- },
- {
- "name": "symfony/security",
- "version": "v3.4.39",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/security.git",
- "reference": "fde88ec93c864cd7ad0b8953485ed8bd000f8985"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/security/zipball/fde88ec93c864cd7ad0b8953485ed8bd000f8985",
- "reference": "fde88ec93c864cd7ad0b8953485ed8bd000f8985",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9|>=7.0.8",
- "symfony/event-dispatcher": "~2.8|~3.0|~4.0",
- "symfony/http-foundation": "^2.8.31|~3.3.13|~3.4|~4.0",
- "symfony/http-kernel": "~3.3|~4.0",
- "symfony/polyfill-php56": "~1.0",
- "symfony/polyfill-php70": "~1.0",
- "symfony/property-access": "~2.8|~3.0|~4.0"
- },
- "replace": {
- "symfony/security-core": "self.version",
- "symfony/security-csrf": "self.version",
- "symfony/security-guard": "self.version",
- "symfony/security-http": "self.version"
- },
- "require-dev": {
- "psr/container": "^1.0",
- "psr/log": "~1.0",
- "symfony/expression-language": "~2.8|~3.0|~4.0",
- "symfony/finder": "~2.8|~3.0|~4.0",
- "symfony/ldap": "~3.1|~4.0",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-intl-icu": "~1.0",
- "symfony/routing": "~2.8|~3.0|~4.0",
- "symfony/validator": "^3.2.5|~4.0"
- },
- "suggest": {
- "psr/container-implementation": "To instantiate the Security class",
- "symfony/expression-language": "For using the expression voter",
- "symfony/form": "",
- "symfony/ldap": "For using the LDAP user and authentication providers",
- "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs",
- "symfony/validator": "For using the user password constraint"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Security\\": ""
- },
- "exclude-from-classmap": [
- "/Core/Tests/",
- "/Csrf/Tests/",
- "/Guard/Tests/",
- "/Http/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 Security Component",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/security/tree/3.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": "2020-03-25T12:02:26+00:00"
- },
- {
- "name": "symfony/string",
- "version": "v5.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/string.git",
- "reference": "40e975edadd4e32cd16f3753b3bad65d9ac48242"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/40e975edadd4e32cd16f3753b3bad65d9ac48242",
- "reference": "40e975edadd4e32cd16f3753b3bad65d9ac48242",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-intl-grapheme": "~1.0",
- "symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "~1.15"
- },
- "require-dev": {
- "symfony/error-handler": "^4.4|^5.0",
- "symfony/http-client": "^4.4|^5.0",
- "symfony/translation-contracts": "^1.1|^2",
- "symfony/var-exporter": "^4.4|^5.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\String\\": ""
- },
- "files": [
- "Resources/functions.php"
- ],
- "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": "Symfony String component",
- "homepage": "https://symfony.com",
- "keywords": [
- "grapheme",
- "i18n",
- "string",
- "unicode",
- "utf-8",
- "utf8"
- ],
- "support": {
- "source": "https://github.com/symfony/string/tree/v5.2.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": "2020-10-24T12:08:07+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",
- "support": {
- "source": "https://github.com/symfony/yaml/tree/v3.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": "2020-10-24T10:57:07+00:00"
- },
- {
- "name": "zendframework/zend-code",
- "version": "2.6.3",
- "source": {
- "type": "git",
- "url": "https://github.com/zendframework/zend-code.git",
- "reference": "95033f061b083e16cdee60530ec260d7d628b887"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-code/zipball/95033f061b083e16cdee60530ec260d7d628b887",
- "reference": "95033f061b083e16cdee60530ec260d7d628b887",
- "shasum": ""
- },
- "require": {
- "php": "^5.5 || 7.0.0 - 7.0.4 || ^7.0.6",
- "zendframework/zend-eventmanager": "^2.6 || ^3.0"
- },
- "require-dev": {
- "doctrine/annotations": "~1.0",
- "fabpot/php-cs-fixer": "1.7.*",
- "phpunit/phpunit": "^4.8.21",
- "zendframework/zend-stdlib": "^2.7 || ^3.0"
- },
- "suggest": {
- "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features",
- "zendframework/zend-stdlib": "Zend\\Stdlib component"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.6-dev",
- "dev-develop": "2.7-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Zend\\Code\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "description": "provides facilities to generate arbitrary code using an object oriented interface",
- "homepage": "https://github.com/zendframework/zend-code",
- "keywords": [
- "code",
- "zf2"
- ],
- "support": {
- "issues": "https://github.com/zendframework/zend-code/issues",
- "source": "https://github.com/zendframework/zend-code/tree/release-2.6"
- },
- "abandoned": "laminas/laminas-code",
- "time": "2016-04-20T17:26:42+00:00"
- },
- {
- "name": "zendframework/zend-eventmanager",
- "version": "3.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/zendframework/zend-eventmanager.git",
- "reference": "a5e2583a211f73604691586b8406ff7296a946dd"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd",
- "reference": "a5e2583a211f73604691586b8406ff7296a946dd",
- "shasum": ""
- },
- "require": {
- "php": "^5.6 || ^7.0"
- },
- "require-dev": {
- "athletic/athletic": "^0.1",
- "container-interop/container-interop": "^1.1.0",
- "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2",
- "zendframework/zend-coding-standard": "~1.0.0",
- "zendframework/zend-stdlib": "^2.7.3 || ^3.0"
- },
- "suggest": {
- "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature",
- "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.2-dev",
- "dev-develop": "3.3-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Zend\\EventManager\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "description": "Trigger and listen to events within a PHP application",
- "homepage": "https://github.com/zendframework/zend-eventmanager",
- "keywords": [
- "event",
- "eventmanager",
- "events",
- "zf2"
- ],
- "support": {
- "issues": "https://github.com/zendframework/zend-eventmanager/issues",
- "source": "https://github.com/zendframework/zend-eventmanager/tree/master"
- },
- "abandoned": "laminas/laminas-eventmanager",
- "time": "2018-04-25T15:33:34+00:00"
- }
- ],
- "packages-dev": [
- {
- "name": "doctrine/instantiator",
- "version": "1.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
- "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^8.0",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
- },
- "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.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": "2020-11-10T18:47:58+00:00"
- },
- {
- "name": "myclabs/deep-copy",
- "version": "1.10.2",
- "source": {
- "type": "git",
- "url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
- "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "replace": {
- "myclabs/deep-copy": "self.version"
- },
- "require-dev": {
- "doctrine/collections": "^1.0",
- "doctrine/common": "^2.6",
- "phpunit/phpunit": "^7.1"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "DeepCopy\\": "src/DeepCopy/"
- },
- "files": [
- "src/DeepCopy/deep_copy.php"
- ]
- },
- "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.10.2"
- },
- "funding": [
- {
- "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
- "type": "tidelift"
- }
- ],
- "time": "2020-11-13T09:40:50+00:00"
- },
- {
- "name": "nikic/php-parser",
- "version": "v4.10.3",
- "source": {
- "type": "git",
- "url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "dbe56d23de8fcb157bbc0cfb3ad7c7de0cfb0984"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dbe56d23de8fcb157bbc0cfb3ad7c7de0cfb0984",
- "reference": "dbe56d23de8fcb157bbc0cfb3ad7c7de0cfb0984",
- "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.10.3"
- },
- "time": "2020-12-03T17:45:45+00:00"
- },
- {
- "name": "phar-io/manifest",
- "version": "2.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phar-io/manifest.git",
- "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
- "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
- "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/master"
- },
- "time": "2020-06-27T14:33:11+00:00"
- },
- {
- "name": "phar-io/version",
- "version": "3.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/phar-io/version.git",
- "reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phar-io/version/zipball/726c026815142e4f8677b7cb7f2249c9ffb7ecae",
- "reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae",
- "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.0.3"
- },
- "time": "2020-11-30T09:21: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.2.2",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556",
- "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556",
- "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"
- },
- "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/master"
- },
- "time": "2020-09-03T19:13:55+00:00"
- },
- {
- "name": "phpdocumentor/type-resolver",
- "version": "1.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
- "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0",
- "phpdocumentor/reflection-common": "^2.0"
- },
- "require-dev": {
- "ext-tokenizer": "*"
- },
- "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.4.0"
- },
- "time": "2020-09-17T18:55:26+00:00"
- },
- {
- "name": "phpspec/prophecy",
- "version": "1.12.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phpspec/prophecy.git",
- "reference": "8ce87516be71aae9b956f81906aaf0338e0d8a2d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/8ce87516be71aae9b956f81906aaf0338e0d8a2d",
- "reference": "8ce87516be71aae9b956f81906aaf0338e0d8a2d",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.2",
- "php": "^7.2 || ~8.0, <8.1",
- "phpdocumentor/reflection-docblock": "^5.2",
- "sebastian/comparator": "^3.0 || ^4.0",
- "sebastian/recursion-context": "^3.0 || ^4.0"
- },
- "require-dev": {
- "phpspec/phpspec": "^6.0",
- "phpunit/phpunit": "^8.0 || ^9.0 <9.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.11.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/1.12.1"
- },
- "time": "2020-09-29T09:10:42+00:00"
- },
- {
- "name": "phpunit/php-code-coverage",
- "version": "9.2.5",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f3e026641cc91909d421802dd3ac7827ebfd97e1",
- "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-libxml": "*",
- "ext-xmlwriter": "*",
- "nikic/php-parser": "^4.10.2",
- "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": "*",
- "ext-xdebug": "*"
- },
- "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",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.5"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-11-28T06:44:49+00:00"
- },
- {
- "name": "phpunit/php-file-iterator",
- "version": "3.0.5",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8",
- "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8",
- "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.5"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-09-28T05:57:25+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.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e16c225d57c3d6808014df6b1dd7598d0a5bbbe",
- "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.3.1",
- "ext-dom": "*",
- "ext-json": "*",
- "ext-libxml": "*",
- "ext-mbstring": "*",
- "ext-xml": "*",
- "ext-xmlwriter": "*",
- "myclabs/deep-copy": "^1.10.1",
- "phar-io/manifest": "^2.0.1",
- "phar-io/version": "^3.0.2",
- "php": ">=7.3",
- "phpspec/prophecy": "^1.12.1",
- "phpunit/php-code-coverage": "^9.2.3",
- "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.5",
- "sebastian/diff": "^4.0.3",
- "sebastian/environment": "^5.1.3",
- "sebastian/exporter": "^4.0.3",
- "sebastian/global-state": "^5.0.1",
- "sebastian/object-enumerator": "^4.0.3",
- "sebastian/resource-operations": "^3.0.3",
- "sebastian/type": "^2.3",
- "sebastian/version": "^3.0.2"
- },
- "require-dev": {
- "ext-pdo": "*",
- "phpspec/prophecy-phpunit": "^2.0.1"
- },
- "suggest": {
- "ext-soap": "*",
- "ext-xdebug": "*"
- },
- "bin": [
- "phpunit"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "9.5-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ],
- "files": [
- "src/Framework/Assert/Functions.php"
- ]
- },
- "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/9.5.0"
- },
- "funding": [
- {
- "url": "https://phpunit.de/donate.html",
- "type": "custom"
- },
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-12-04T05:05:53+00:00"
- },
- {
- "name": "sebastian/cli-parser",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
- "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.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-09-28T06:08:49+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.6",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "55f4261989e546dc112258c7a75935a81a7ce382"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
- "reference": "55f4261989e546dc112258c7a75935a81a7ce382",
- "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.6"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-10-26T15:49:45+00:00"
- },
- {
- "name": "sebastian/complexity",
- "version": "2.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
- "shasum": ""
- },
- "require": {
- "nikic/php-parser": "^4.7",
- "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.2"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-10-26T15:52:27+00:00"
- },
- {
- "name": "sebastian/diff",
- "version": "4.0.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
- "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.4"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-10-26T13:10:38+00:00"
- },
- {
- "name": "sebastian/environment",
- "version": "5.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "388b6ced16caa751030f6a69e588299fa09200ac"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac",
- "reference": "388b6ced16caa751030f6a69e588299fa09200ac",
- "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.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-09-28T05:52:38+00:00"
- },
- {
- "name": "sebastian/exporter",
- "version": "4.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65",
- "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65",
- "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": "http://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.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-09-28T05:24:23+00:00"
- },
- {
- "name": "sebastian/global-state",
- "version": "5.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "a90ccbddffa067b51f574dea6eb25d5680839455"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455",
- "reference": "a90ccbddffa067b51f574dea6eb25d5680839455",
- "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.2"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-10-26T15:55:19+00:00"
- },
- {
- "name": "sebastian/lines-of-code",
- "version": "1.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
- "shasum": ""
- },
- "require": {
- "nikic/php-parser": "^4.6",
- "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.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-11-28T06:42:11+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/phpcpd",
- "version": "6.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phpcpd.git",
- "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/f3683aa0db2e8e09287c2bb33a595b2873ea9176",
- "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "php": ">=7.3",
- "phpunit/php-file-iterator": "^3.0",
- "phpunit/php-timer": "^5.0",
- "sebastian/cli-parser": "^1.0",
- "sebastian/version": "^3.0"
- },
- "bin": [
- "phpcpd"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.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": "Copy/Paste Detector (CPD) for PHP code.",
- "homepage": "https://github.com/sebastianbergmann/phpcpd",
- "support": {
- "issues": "https://github.com/sebastianbergmann/phpcpd/issues",
- "source": "https://github.com/sebastianbergmann/phpcpd/tree/6.0.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-12-07T05:39:23+00:00"
- },
- {
- "name": "sebastian/recursion-context",
- "version": "4.0.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
- "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
- "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": "http://www.github.com/sebastianbergmann/recursion-context",
- "support": {
- "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-10-26T13:17:30+00:00"
- },
- {
- "name": "sebastian/resource-operations",
- "version": "3.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "shasum": ""
- },
- "require": {
- "php": ">=7.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.0"
- },
- "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": "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/3.0.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-09-28T06:45:17+00:00"
- },
- {
- "name": "sebastian/type",
- "version": "2.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/type.git",
- "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
- "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
- "shasum": ""
- },
- "require": {
- "php": ">=7.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.3-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/2.3.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-10-26T13:18:59+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": "squizlabs/php_codesniffer",
- "version": "3.5.8",
- "source": {
- "type": "git",
- "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
- "reference": "9d583721a7157ee997f235f327de038e7ea6dac4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4",
- "reference": "9d583721a7157ee997f235f327de038e7ea6dac4",
- "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": "2020-10-23T02:01:07+00:00"
- },
- {
- "name": "theseer/tokenizer",
- "version": "1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/theseer/tokenizer.git",
- "reference": "75a63c33a8577608444246075ea0af0d052e452a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a",
- "reference": "75a63c33a8577608444246075ea0af0d052e452a",
- "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/master"
- },
- "funding": [
- {
- "url": "https://github.com/theseer",
- "type": "github"
- }
- ],
- "time": "2020-07-12T23:59:07+00:00"
- },
- {
- "name": "webmozart/assert",
- "version": "1.9.1",
- "source": {
- "type": "git",
- "url": "https://github.com/webmozart/assert.git",
- "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389",
- "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389",
- "shasum": ""
- },
- "require": {
- "php": "^5.3.3 || ^7.0 || ^8.0",
- "symfony/polyfill-ctype": "^1.8"
- },
- "conflict": {
- "phpstan/phpstan": "<0.12.20",
- "vimeo/psalm": "<3.9.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.36 || ^7.5.13"
- },
- "type": "library",
- "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/webmozart/assert/issues",
- "source": "https://github.com/webmozart/assert/tree/master"
- },
- "time": "2020-07-08T17:02:28+00:00"
- }
- ],
- "aliases": [],
- "minimum-stability": "dev",
- "stability-flags": {
- "islandora/crayfish-commons": 20
- },
- "prefer-stable": true,
- "prefer-lowest": false,
- "platform": {
- "php": "^7.3 || ^7.4"
- },
- "platform-dev": [],
- "plugin-api-version": "2.0.0"
-}
diff --git a/Gemini/phpunit.xml.dist b/Gemini/phpunit.xml.dist
deleted file mode 100644
index 42ef5b47..00000000
--- a/Gemini/phpunit.xml.dist
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- ./src
-
-
- ./src/index.php
- ./src/app.php
- ./src/console.php
- ./src/Migrations
-
-
-
-
-
-
-
- ./tests/
-
-
-
-
diff --git a/Gemini/src/Controller/GeminiController.php b/Gemini/src/Controller/GeminiController.php
deleted file mode 100644
index 7f9f32a0..00000000
--- a/Gemini/src/Controller/GeminiController.php
+++ /dev/null
@@ -1,174 +0,0 @@
-urlMapper = $urlMapper;
- $this->urlMinter = $urlMinter;
- $this->urlGenerator = $urlGenerator;
- }
-
- /**
- * @param string $uuid
- * @return \Symfony\Component\HttpFoundation\Response
- */
- public function get($uuid)
- {
- $result = $this->urlMapper->getUrls($uuid);
- if (empty($result)) {
- return new Response("Could not locate URL pair for $uuid", 404);
- }
- return new JsonResponse($result, 200);
- }
-
- /**
- * @param \Symfony\Component\HttpFoundation\Request $request
- * @return \Symfony\Component\HttpFoundation\Response
- */
- public function post(Request $request)
- {
- // Request contents are a UUID.
- $uuid = $request->getContent();
-
- if (empty($uuid)) {
- return new Response(
- "Requests to mint new URLS must contain a UUID in the request body",
- 400
- );
- }
-
- $islandora_fedora_endpoint = $request->headers->get('X-Islandora-Fedora-Endpoint', '');
-
- try {
- return new Response(
- $this->urlMinter->mint($uuid, $islandora_fedora_endpoint),
- 200
- );
- } catch (\InvalidArgumentException $e) {
- return new Response(
- $e->getMessage(),
- $e->getCode()
- );
- }
- }
-
- /**
- * @param string $uuid
- * @param \Symfony\Component\HttpFoundation\Request $request
- * @return \Symfony\Component\HttpFoundation\Response
- */
- public function put($uuid, Request $request)
- {
- // Reject non json requests.
- if (0 !== strpos($request->headers->get('Content-Type'), 'application/json')) {
- return new Response("Invalid Content-Type. Expecting application/json", 400);
- }
-
- // Parse request and reject malformed bodies.
- $urls = json_decode($request->getContent(), true);
-
- if (!isset($urls['drupal'])) {
- return new Response("Missing 'drupal' entry in request body.", 400);
- }
-
- if (!isset($urls['fedora'])) {
- return new Response("Missing 'fedora' entry in request body.", 400);
- }
-
- // Save URL pair.
- $is_new = $this->urlMapper->saveUrls(
- $uuid,
- $urls['drupal'],
- $urls['fedora']
- );
-
- // Return 201 or 204 depending on if a new record was created.
- $response = new Response(null, $is_new ? 201 : 204);
- if ($is_new) {
- // Add a Location header if a new record was created.
- $url = $this->urlGenerator->generate(
- 'GET_uuid',
- ['uuid' => $uuid],
- UrlGenerator::ABSOLUTE_URL
- );
- $response->headers->add(['Location' => $url]);
- }
- return $response;
- }
-
- /**
- * @param string $uuid
- * @return \Symfony\Component\HttpFoundation\Response
- */
- public function delete($uuid)
- {
- $deleted = $this->urlMapper->deleteUrls($uuid);
- return new Response(null, $deleted ? 204 : 404);
- }
-
- /**
- * Find the opposite URI for the on provided in X-Islandora-URI.
- *
- * @param \Symfony\Component\HttpFoundation\Request $request
- * The incoming request.
- *
- * @return \Symfony\Component\HttpFoundation\Response
- * A response 200 with Location or 404.
- */
- public function getByUri(Request $request)
- {
- if (!$request->headers->has('X-Islandora-URI')) {
- return new Response('Require the X-Islandora-URI header', 400);
- }
- $uri = $request->headers->get('X-Islandora-URI');
- if (is_array($uri)) {
- // Can only return one Location header.
- $uri = reset($uri);
- }
- $uri = $this->urlMapper->findUrls($uri);
- $headers = [];
- if ($uri) {
- $headers['Location'] = $uri;
- }
- return new Response(null, ($uri ? 200 : 404), $headers);
- }
-}
diff --git a/Gemini/src/Migrations/Version20180530031926.php b/Gemini/src/Migrations/Version20180530031926.php
deleted file mode 100644
index edf488b0..00000000
--- a/Gemini/src/Migrations/Version20180530031926.php
+++ /dev/null
@@ -1,57 +0,0 @@
-addSql(
- 'DROP TABLE IF EXISTS Gemini;'
- );
-
- if ('mysql' == $this->connection->getDatabasePlatform()->getName()) {
- $this->addSql(
- 'CREATE TABLE Gemini (fedora_hash VARCHAR(128) NOT NULL,
- drupal_hash VARCHAR(128) NOT NULL, uuid VARCHAR(36) NOT NULL,
- drupal_uri LONGTEXT NOT NULL, fedora_uri LONGTEXT NOT NULL,
- dateCreated DATETIME NOT NULL, dateUpdated DATETIME NOT NULL,
- UNIQUE KEY(fedora_hash, drupal_hash), PRIMARY KEY(uuid))
- DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB'
- );
- } elseif ('postgresql' == $this->connection->getDatabasePlatform()->getName()) {
- $this->addSql(
- 'CREATE TABLE Gemini (
- fedora_hash VARCHAR(128) NOT NULL,
- drupal_hash VARCHAR(128) NOT NULL,
- uuid VARCHAR(36) PRIMARY KEY,
- drupal_uri TEXT NOT NULL,
- fedora_uri TEXT NOT NULL,
- dateCreated TIMESTAMP NOT NULL,
- dateUpdated TIMESTAMP NOT NULL
- );'
- );
- $this->addSql(
- 'CREATE UNIQUE INDEX fedora_drupal_hash ON Gemini (fedora_hash, drupal_hash);'
- );
- } else {
- $this->abortIf(true, "Only MySQL/MariaDB and PostgreSQL are supported.");
- }
- }
-
- public function down(Schema $schema)
- {
- // this down() migration is auto-generated, please modify it to your needs
- $this->abortIf(
- $this->connection->getDatabasePlatform()->getName() !== 'mysql',
- 'Migration can only be executed safely on \'mysql\'.'
- );
- $this->addSql('DROP TABLE Gemini');
- }
-}
diff --git a/Gemini/src/UrlMapper/UrlMapper.php b/Gemini/src/UrlMapper/UrlMapper.php
deleted file mode 100644
index c71614a9..00000000
--- a/Gemini/src/UrlMapper/UrlMapper.php
+++ /dev/null
@@ -1,174 +0,0 @@
-connection = $connection;
- $this->drupalDomain = $drupalDomain;
- $this->fedoraDomain = $fedoraDomain;
- }
-
- /**
- * {@inheritDoc}
- */
- public function getUrls($uuid)
- {
- $sql = 'SELECT drupal_uri as drupal, fedora_uri as fedora FROM Gemini WHERE uuid = :uuid';
- $result = $this->connection->fetchAssoc(
- $sql,
- ['uuid' => $uuid]
- );
-
- if (!empty($this->drupalDomain) && isset($result['drupal'])) {
- $result['drupal'] = $this->replaceDomain($result['drupal'], $this->drupalDomain);
- }
-
- if (!empty($this->fedoraDomain) && isset($result['fedora'])) {
- $result['fedora'] = $this->replaceDomain($result['fedora'], $this->fedoraDomain);
- }
-
- return $result;
- }
-
- protected function replaceDomain($url, $domain)
- {
- $parts = parse_url($url);
- return "$parts[scheme]://$domain$parts[path]";
- }
-
- /**
- * {@inheritDoc}
- */
- public function saveUrls(
- $uuid,
- $drupal_uri,
- $fedora_uri
- ) {
- $this->connection->beginTransaction();
- // Hash incomming URIs
- $fedora_hash = hash('sha512', $fedora_uri);
- $drupal_hash = hash('sha512', $drupal_uri);
- $now = date("Y-m-d H:i:s", time());
- $db_data = [
- 'uuid' => $uuid,
- 'drupal_uri' => $drupal_uri,
- 'fedora_uri' => $fedora_uri,
- 'drupal_hash' => $drupal_hash,
- 'fedora_hash' => $fedora_hash,
- 'dateCreated' => $now,
- 'dateUpdated' => $now,
- ];
-
- try {
- // Try to insert first, and if the record already exists, update it.
- try {
- $this->connection->insert('Gemini', $db_data);
- $this->connection->commit();
- return true;
- } catch (UniqueConstraintViolationException $e) {
- // We want to maintain the creation UNIX Timestamp
- unset($db_data['dateCreated']);
- unset($db_data['uuid']);
- $this->connection->update('Gemini', $db_data, ['uuid' => $uuid]);
- $this->connection->commit();
- return false;
- }
- } catch (\Exception $e) {
- $this->connection->rollBack();
- throw $e;
- }
- }
-
- /**
- * {@inheritDoc}
- */
- public function deleteUrls($uuid)
- {
- $this->connection->beginTransaction();
-
- try {
- $count = $this->connection->delete(
- 'Gemini',
- ['uuid' => $uuid]
- );
-
- $this->connection->commit();
-
- return $count > 0;
- } catch (\Exception $e) {
- $this->connection->rollBack();
- throw $e;
- }
- }
-
- /**
- * {@inheritdoc}
- */
- public function findUrls($uri)
- {
- $parts = parse_url($uri);
- $path = $parts['path'];
-
- $query =
- 'SELECT fedora_uri FROM Gemini WHERE drupal_uri LIKE :path union
- SELECT drupal_uri FROM Gemini WHERE fedora_uri LIKE :path';
-
- $result = $this->connection->fetchAssoc(
- $query,
- ['path' => "%$path"]
- );
-
- if (isset($result['fedora_uri'])) {
- if (!empty($this->fedoraDomain)) {
- $result['fedora_uri'] = $this->replaceDomain($result['fedora_uri'], $this->fedoraDomain);
- }
- $result['uri'] = $result['fedora_uri'];
- unset($result['fedora_uri']);
- }
-
- if (isset($result['drupal_uri'])) {
- if (!empty($this->drupalDomain)) {
- $result['drupal_uri'] = $this->replaceDomain($result['drupal_uri'], $this->drupalDomain);
- }
- $result['uri'] = $result['drupal_uri'];
- unset($result['drupal_uri']);
- }
-
- return $result;
- }
-}
diff --git a/Gemini/src/UrlMapper/UrlMapperInterface.php b/Gemini/src/UrlMapper/UrlMapperInterface.php
deleted file mode 100644
index 72901c1f..00000000
--- a/Gemini/src/UrlMapper/UrlMapperInterface.php
+++ /dev/null
@@ -1,63 +0,0 @@
-register(new IslandoraServiceProvider());
-$app->register(new YamlConfigServiceProvider(__DIR__ . '/../cfg/config.yaml'));
-$app['debug'] = $app['crayfish.debug'];
-$app['gemini.mapper'] = function ($app) {
- return new UrlMapper(
- $app['db'],
- $app['crayfish.drupal_domain'],
- $app['crayfish.fedora_domain']
- );
-};
-$app['gemini.minter'] = function ($app) {
- return new UrlMinter();
-};
-$app['gemini.controller'] = function ($app) {
- return new GeminiController(
- $app['gemini.mapper'],
- $app['gemini.minter'],
- $app['url_generator']
- );
-};
-
-$app->get('/by_uri', "gemini.controller:getByUri");
-
-$app->get('/{uuid}', "gemini.controller:get");
-
-$app->post('/', "gemini.controller:post");
-
-$app->put('/{uuid}', "gemini.controller:put");
-
-$app->delete('/{uuid}', "gemini.controller:delete");
-
-return $app;
diff --git a/Gemini/src/console.php b/Gemini/src/console.php
deleted file mode 100644
index c286d60b..00000000
--- a/Gemini/src/console.php
+++ /dev/null
@@ -1,14 +0,0 @@
-getDefinition()
- ->addOption(new InputOption('--env', '-e', InputOption::VALUE_REQUIRED, 'The Environment name.', 'dev'));
-$console->setDispatcher($app['dispatcher']);
-
-return $console;
diff --git a/Gemini/src/index.php b/Gemini/src/index.php
deleted file mode 100644
index 3e23d477..00000000
--- a/Gemini/src/index.php
+++ /dev/null
@@ -1,4 +0,0 @@
-run();
diff --git a/Gemini/tests/Islandora/Gemini/Tests/DeleteTest.php b/Gemini/tests/Islandora/Gemini/Tests/DeleteTest.php
deleted file mode 100644
index af18a309..00000000
--- a/Gemini/tests/Islandora/Gemini/Tests/DeleteTest.php
+++ /dev/null
@@ -1,76 +0,0 @@
-prophesize(UrlMapperInterface::class);
- $mapper->deleteUrls(Argument::any())
- ->willReturn(0);
- $mapper = $mapper->reveal();
-
- $minter = $this->prophesize(UrlMinterInterface::class)->reveal();
-
- $generator = $this->prophesize(UrlGenerator::class)->reveal();
-
- $controller = new GeminiController(
- $mapper,
- $minter,
- $generator
- );
-
- $response = $controller->delete("abc");
-
- $this->assertTrue(
- $response->getStatusCode() == 404,
- "Response must be 404 when not found"
- );
- }
-
- /**
- * @covers ::__construct
- * @covers ::delete
- */
- public function testReturns204WhenDeleted()
- {
- $mapper = $this->prophesize(UrlMapperInterface::class);
- $mapper->deleteUrls(Argument::any())
- ->willReturn(1);
- $mapper = $mapper->reveal();
-
- $minter = $this->prophesize(UrlMinterInterface::class)->reveal();
-
- $generator = $this->prophesize(UrlGenerator::class)->reveal();
-
- $controller = new GeminiController(
- $mapper,
- $minter,
- $generator
- );
-
- $response = $controller->delete("abc");
-
- $this->assertTrue(
- $response->getStatusCode() == 204,
- "Response must be 204 when deleted"
- );
- }
-}
diff --git a/Gemini/tests/Islandora/Gemini/Tests/GetByUriTest.php b/Gemini/tests/Islandora/Gemini/Tests/GetByUriTest.php
deleted file mode 100644
index 5134edff..00000000
--- a/Gemini/tests/Islandora/Gemini/Tests/GetByUriTest.php
+++ /dev/null
@@ -1,163 +0,0 @@
-prophesize(UrlMapperInterface::class);
- $mapper->findUrls(Argument::any())
- ->willReturn(['uri' => 'abc']);
- $mapper = $mapper->reveal();
-
- $minter = $this->prophesize(UrlMinterInterface::class)->reveal();
-
- $generator = $this->prophesize(UrlGenerator::class)->reveal();
-
- $request = new Request();
- $request->headers->add(['X-Islandora-URI' => 'blah']);
-
- $controller = new GeminiController(
- $mapper,
- $minter,
- $generator
- );
-
- $response = $controller->getByUri($request);
-
- $this->assertEquals(
- 200,
- $response->getStatusCode(),
- "Response must be 200 on success"
- );
- $this->assertTrue(
- $response->headers->has('Location'),
- "Response must have Location header"
- );
- $this->assertEquals(
- 'abc',
- $response->headers->get('Location'),
- "Location header should be 'abc'"
- );
- }
-
- /**
- * @covers ::getByUri
- */
- public function testGetByUriFailed()
- {
- $mapper = $this->prophesize(UrlMapperInterface::class);
- $mapper->findUrls(Argument::any())
- ->willReturn([]);
- $mapper = $mapper->reveal();
-
- $minter = $this->prophesize(UrlMinterInterface::class)->reveal();
-
- $generator = $this->prophesize(UrlGenerator::class)->reveal();
-
- $request = new Request();
- $request->headers->add(['X-Islandora-URI' => 'blah']);
-
- $controller = new GeminiController(
- $mapper,
- $minter,
- $generator
- );
-
- $response = $controller->getByUri($request);
-
- $this->assertEquals(
- 404,
- $response->getStatusCode(),
- "Response must be 200 on success"
- );
- }
-
- /**
- * @covers ::getByUri
- */
- public function testGetByUriMultiple()
- {
- $mapper = $this->prophesize(UrlMapperInterface::class);
- $mapper->findUrls('foo')
- ->willReturn(['uri' => 'abc']);
- $mapper->findUrls('bar')
- ->willReturn(['uri' => 'oops']);
- $mapper = $mapper->reveal();
-
- $minter = $this->prophesize(UrlMinterInterface::class)->reveal();
-
- $generator = $this->prophesize(UrlGenerator::class)->reveal();
-
- $request = new Request();
- $request->headers->add(['X-Islandora-URI' => ['foo', 'bar']]);
-
- $controller = new GeminiController(
- $mapper,
- $minter,
- $generator
- );
-
- $response = $controller->getByUri($request);
-
- $this->assertEquals(
- 200,
- $response->getStatusCode(),
- "Response must be 200 on success"
- );
- $this->assertTrue(
- $response->headers->has('Location'),
- "Response must have Location header"
- );
- $this->assertEquals(
- 'abc',
- $response->headers->get('Location'),
- "Location header should be 'abc'"
- );
- }
-
- /**
- * @covers ::getByUri
- */
- public function testGetByUriNoToken()
- {
- $mapper = $this->prophesize(UrlMapperInterface::class)->reveal();
- $minter = $this->prophesize(UrlMinterInterface::class)->reveal();
- $generator = $this->prophesize(UrlGenerator::class)->reveal();
-
- $request = new Request();
-
- $controller = new GeminiController(
- $mapper,
- $minter,
- $generator
- );
-
- $response = $controller->getByUri($request);
-
- $this->assertEquals(
- 400,
- $response->getStatusCode(),
- "Response must be 400 with no X-Islandora-URI header"
- );
- }
-}
diff --git a/Gemini/tests/Islandora/Gemini/Tests/GetTest.php b/Gemini/tests/Islandora/Gemini/Tests/GetTest.php
deleted file mode 100644
index 8ea67256..00000000
--- a/Gemini/tests/Islandora/Gemini/Tests/GetTest.php
+++ /dev/null
@@ -1,76 +0,0 @@
-prophesize(UrlMapperInterface::class);
- $mapper->getUrls(Argument::any())
- ->willReturn([]);
- $mapper = $mapper->reveal();
-
- $minter = $this->prophesize(UrlMinterInterface::class)->reveal();
-
- $generator = $this->prophesize(UrlGenerator::class)->reveal();
-
- $controller = new GeminiController(
- $mapper,
- $minter,
- $generator
- );
-
- $response = $controller->get("abc");
-
- $this->assertTrue(
- $response->getStatusCode() == 404,
- "Response must be 404 when not found"
- );
- }
-
- /**
- * @covers ::__construct
- * @covers ::get
- */
- public function testReturns200WhenFound()
- {
- $mapper = $this->prophesize(UrlMapperInterface::class);
- $mapper->getUrls(Argument::any())
- ->willReturn(['drupal' => 'foo', 'fedora' => 'bar']);
- $mapper = $mapper->reveal();
-
- $minter = $this->prophesize(UrlMinterInterface::class)->reveal();
-
- $generator = $this->prophesize(UrlGenerator::class)->reveal();
-
- $controller = new GeminiController(
- $mapper,
- $minter,
- $generator
- );
-
- $response = $controller->get("abc");
-
- $this->assertTrue(
- $response->getStatusCode() == 200,
- "Response must be 200 when found"
- );
- }
-}
diff --git a/Gemini/tests/Islandora/Gemini/Tests/PostTest.php b/Gemini/tests/Islandora/Gemini/Tests/PostTest.php
deleted file mode 100644
index 71821df6..00000000
--- a/Gemini/tests/Islandora/Gemini/Tests/PostTest.php
+++ /dev/null
@@ -1,107 +0,0 @@
-prophesize(UrlMapperInterface::class)->reveal();
-
- $minter = new UrlMinter("http://localhost:8080/fcrepo/rest");
-
- $generator = $this->prophesize(UrlGenerator::class)->reveal();
-
- $controller = new GeminiController(
- $mapper,
- $minter,
- $generator
- );
-
- $request = Request::create(
- "/",
- "POST",
- [],
- [],
- [],
- ['CONTENT_TYPE' => 'text/plain'],
- ''
- );
-
- $response = $controller->post($request);
-
- $this->assertTrue(
- $response->getStatusCode() == 400,
- "Response must be 400 on empty request"
- );
-
- $request = Request::create(
- "/",
- "POST",
- [],
- [],
- [],
- ['CONTENT_TYPE' => 'text/plain'],
- 'abc'
- );
-
- $response = $controller->post($request);
-
- $this->assertTrue(
- $response->getStatusCode() == 400,
- "Response must be 400 on request with UUID of length < 8"
- );
- }
-
- /**
- * @covers ::__construct
- * @covers ::post
- */
- public function testReturns200OnSuccess()
- {
- $mapper = $this->prophesize(UrlMapperInterface::class)->reveal();
-
- $minter = new UrlMinter("http://localhost:8080/fcrepo/rest");
-
- $generator = $this->prophesize(UrlGenerator::class)->reveal();
-
- $controller = new GeminiController(
- $mapper,
- $minter,
- $generator
- );
-
- $request = Request::create(
- "/",
- "POST",
- [],
- [],
- [],
- ['CONTENT_TYPE' => 'text/plain'],
- '5d150b3a-9d1b-437f-87a9-104b8cf15859'
- );
-
- $response = $controller->post($request);
-
- $this->assertTrue(
- $response->getStatusCode() == 200,
- "Response must be 200 when given a proper UUID"
- );
- }
-}
diff --git a/Gemini/tests/Islandora/Gemini/Tests/PutTest.php b/Gemini/tests/Islandora/Gemini/Tests/PutTest.php
deleted file mode 100644
index b0f953dc..00000000
--- a/Gemini/tests/Islandora/Gemini/Tests/PutTest.php
+++ /dev/null
@@ -1,184 +0,0 @@
-prophesize(UrlMapperInterface::class);
- $mapper->saveUrls(Argument::any(), Argument::any(), Argument::any())
- ->willReturn(false);
- $mapper = $mapper->reveal();
-
- $minter = $this->prophesize(UrlMinterInterface::class)->reveal();
-
- $generator = $this->prophesize(UrlGenerator::class)->reveal();
-
- $controller = new GeminiController(
- $mapper,
- $minter,
- $generator
- );
-
- $json_str = '{"drupal" : "http://localhost:8000/node/1?_format=jsonld", "fedora" : ' .
- '"http://localhost:8080/fcrepo/rest/5d/15/0b/3a/5d150b3a-9d1b-437f-87a9-104b8cf15859"}';
-
- $request = Request::create(
- "/5d150b3a-9d1b-437f-87a9-104b8cf15859",
- "PUT",
- [],
- [],
- [],
- ['CONTENT_TYPE' => 'application/json'],
- $json_str
- );
-
- $response = $controller->put("5d150b3a-9d1b-437f-87a9-104b8cf15859", $request);
-
- $this->assertTrue(
- $response->getStatusCode() == 204,
- "Response must be 204 on update"
- );
- }
-
- /**
- * @covers ::__construct
- * @covers ::put
- */
- public function testReturns201OnCreation()
- {
- $mapper = $this->prophesize(UrlMapperInterface::class);
- $mapper->saveUrls(Argument::any(), Argument::any(), Argument::any())
- ->willReturn(true);
- $mapper = $mapper->reveal();
-
- $minter = $this->prophesize(UrlMinterInterface::class)->reveal();
-
- $generator = $this->prophesize(UrlGenerator::class);
- $generator->generate(Argument::any(), Argument::any(), Argument::any())
- ->willReturn("http://localhost:8000/gemini/5d150b3a-9d1b-437f-87a9-104b8cf15859");
- $generator = $generator->reveal();
-
- $controller = new GeminiController(
- $mapper,
- $minter,
- $generator
- );
-
- $json_str = '{"drupal" : "http://localhost:8000/node/1?_format=jsonld", "fedora" : ' .
- '"http://localhost:8080/fcrepo/rest/5d/15/0b/3a/5d150b3a-9d1b-437f-87a9-104b8cf15859"}';
-
- $request = Request::create(
- "/5d150b3a-9d1b-437f-87a9-104b8cf15859",
- "PUT",
- [],
- [],
- [],
- ['CONTENT_TYPE' => 'application/json'],
- $json_str
- );
-
- $response = $controller->put("5d150b3a-9d1b-437f-87a9-104b8cf15859", $request);
-
- $this->assertTrue(
- $response->getStatusCode() == 201,
- "Response must be 201 on create"
- );
-
- $this->assertTrue(
- $response->headers->has("Location"),
- "201 response must contain Location header."
- );
- }
-
- /**
- * @covers ::__construct
- * @covers ::put
- */
- public function testReturns400OnMalformedRequest()
- {
- $mapper = $this->prophesize(UrlMapperInterface::class)->reveal();
-
- $minter = $this->prophesize(UrlMinterInterface::class)->reveal();
-
- $generator = $this->prophesize(UrlGenerator::class)->reveal();
-
- $controller = new GeminiController(
- $mapper,
- $minter,
- $generator
- );
-
- // Test non-JSON
- $request = Request::create(
- "/5d150b3a-9d1b-437f-87a9-104b8cf15859",
- "PUT",
- [],
- [],
- [],
- ['CONTENT_TYPE' => 'text/plain'],
- 'some garbage'
- );
-
- $response = $controller->put("5d150b3a-9d1b-437f-87a9-104b8cf15859", $request);
-
- $this->assertTrue(
- $response->getStatusCode() == 400,
- "Response must be 400 on non JSON requests"
- );
-
- // Test missing 'drupal'
- $request = Request::create(
- "/5d150b3a-9d1b-437f-87a9-104b8cf15859",
- "PUT",
- [],
- [],
- [],
- ['CONTENT_TYPE' => 'application/json'],
- '{"fedora" : "http://localhost:8080/fcrepo/rest/5d/15/0b/3a/5d150b3a-9d1b-437f-87a9-104b8cf15859"}'
- );
-
- $response = $controller->put("5d150b3a-9d1b-437f-87a9-104b8cf15859", $request);
-
- $this->assertTrue(
- $response->getStatusCode() == 400,
- "Response must be 400 when 'drupal' entry is missing in request body"
- );
-
- // Test missing 'fedora'
- $request = Request::create(
- "/5d150b3a-9d1b-437f-87a9-104b8cf15859",
- "PUT",
- [],
- [],
- [],
- ['CONTENT_TYPE' => 'application/json'],
- '{"drupal" : "http://localhost:8000/node/1?_format=jsonld"}'
- );
-
- $response = $controller->put("5d150b3a-9d1b-437f-87a9-104b8cf15859", $request);
-
- $this->assertTrue(
- $response->getStatusCode() == 400,
- "Response must be 400 when 'fedora' entry is missing in request body"
- );
- }
-}
diff --git a/Gemini/tests/Islandora/Gemini/Tests/UrlMapperTest.php b/Gemini/tests/Islandora/Gemini/Tests/UrlMapperTest.php
deleted file mode 100644
index 66f2be50..00000000
--- a/Gemini/tests/Islandora/Gemini/Tests/UrlMapperTest.php
+++ /dev/null
@@ -1,303 +0,0 @@
-prophesize(Connection::class);
- $connection->fetchAssoc(Argument::any(), Argument::any())
- ->willReturn(['fedora' => 'foo', 'drupal' => 'bar']);
- $connection = $connection->reveal();
-
- $mapper = new UrlMapper($connection);
-
- $results = $mapper->getUrls("abc");
-
- $this->assertTrue(
- $results['fedora'] == 'foo',
- "getUrls() modified connection results. Actual: ${results['fedora']}. Expected: foo"
- );
- $this->assertTrue(
- $results['drupal'] == 'bar',
- "getUrls() modified connection results. Actual: ${results['drupal']}. Expected: bar"
- );
-
- // Simulate when no record is found.
- $connection = $this->prophesize(Connection::class);
- $connection->fetchAssoc(Argument::any(), Argument::any())
- ->willReturn([]);
- $connection = $connection->reveal();
-
- $mapper = new UrlMapper($connection);
-
- $results = $mapper->getUrls("abc");
-
- $this->assertTrue(
- empty($results),
- "getUrls() modified connection results. Expected empty array, received " . json_encode($results)
- );
- }
-
- /**
- * @covers ::__construct
- * @covers ::getUrls
- */
- public function testGetUrlsReturnsModifiedResultsIfConfigured()
- {
- // Simulate a record being returned.
- $connection = $this->prophesize(Connection::class);
- $connection->fetchAssoc(Argument::any(), Argument::any())
- ->willReturn(['fedora' => 'http://exapmle.org/foo', 'drupal' => 'http://example.org/bar']);
- $connection = $connection->reveal();
-
- $mapper = new UrlMapper($connection, 'drupal.example.org', 'fcrepo.example.org');
-
- $results = $mapper->getUrls("abc");
-
- $this->assertTrue(
- $results['fedora'] == 'http://fcrepo.example.org/foo',
- "getUrls() disobeyed configuration. Actual: ${results['fedora']}. Expected: " .
- "http://fcrepo.example.org/foo"
- );
- $this->assertTrue(
- $results['drupal'] == 'http://drupal.example.org/bar',
- "getUrls() modified connection results. Actual: ${results['drupal']}. Expected: " .
- "http://drupal.example.org/bar"
- );
-
- // Simulate when no record is found.
- $connection = $this->prophesize(Connection::class);
- $connection->fetchAssoc(Argument::any(), Argument::any())
- ->willReturn([]);
- $connection = $connection->reveal();
-
- $mapper = new UrlMapper($connection);
-
- $results = $mapper->getUrls("abc");
-
- $this->assertTrue(
- empty($results),
- "getUrls() modified connection results. Expected empty array, received " . json_encode($results)
- );
- }
-
- /**
- * @covers ::__construct
- * @covers ::saveUrls
- */
- public function testSaveUrlsReturnsTrueOnCreation()
- {
- // Simulate a record being created.
- $connection = $this->prophesize(Connection::class);
- $connection->beginTransaction()->shouldBeCalled();
- $connection->insert(Argument::any(), Argument::any())
- ->willReturn(1);
- $connection->commit()->shouldBeCalled();
- $connection->rollBack()->shouldNotBeCalled();
- $connection = $connection->reveal();
-
- $mapper = new UrlMapper($connection);
-
- $this->assertTrue(
- $mapper->saveUrls("foo", "bar", "baz"),
- "saveUrls() must return true when a new record is created"
- );
- }
-
- /**
- * @covers ::__construct
- * @covers ::saveUrls
- */
- public function testSaveUrlsReturnsFalseOnUpdate()
- {
- // Simulate a record being updated.
- $exception = $this->prophesize(UniqueConstraintViolationException::class)->reveal();
-
- $connection = $this->prophesize(Connection::class);
- $connection->beginTransaction()->shouldBeCalled();
- $connection->insert(Argument::any(), Argument::any())
- ->willThrow($exception);
- $connection->update(Argument::any(), Argument::any(), Argument::any())
- ->willReturn(1);
- $connection->commit()->shouldBeCalled();
- $connection->rollBack()->shouldNotBeCalled();
- $connection = $connection->reveal();
-
- $mapper = new UrlMapper($connection);
-
- $this->assertFalse(
- $mapper->saveUrls("foo", "bar", "baz"),
- "saveUrls() must return false when an existing record is updated"
- );
- }
-
- /**
- * @covers ::__construct
- * @covers ::saveUrls
- */
- public function testSaveUrlsRollsBackOnException()
- {
- $connection = $this->prophesize(Connection::class);
- $connection->beginTransaction()->shouldBeCalled();
- $connection->insert(Argument::any(), Argument::any())
- ->willThrow(new \Exception(""));
- $connection->rollBack()->shouldBeCalled();
- $connection = $connection->reveal();
-
- $mapper = new UrlMapper($connection);
- $this->expectException(\Exception::class);
- $mapper->saveUrls("foo", "bar", "baz");
- }
-
- /**
- * @covers ::__construct
- * @covers ::deleteUrls
- */
- public function testDeleteUrlsReturnsTrueIfFound()
- {
- $connection = $this->prophesize(Connection::class);
- $connection->beginTransaction()->shouldBeCalled();
- $connection->delete(Argument::any(), Argument::any())
- ->willReturn(1);
- $connection->commit()->shouldBeCalled();
- $connection = $connection->reveal();
-
- $mapper = new UrlMapper($connection);
-
- $this->assertTrue(
- $mapper->deleteUrls("foo"),
- "deleteUrls() must return true when an existing record is deleted"
- );
- }
-
- /**
- * @covers ::__construct
- * @covers ::deleteUrls
- */
- public function testDeleteUrlsReturnsFalseIfNotFound()
- {
- $connection = $this->prophesize(Connection::class);
- $connection->beginTransaction()->shouldBeCalled();
- $connection->delete(Argument::any(), Argument::any())
- ->willReturn(0);
- $connection->commit()->shouldBeCalled();
- $connection = $connection->reveal();
-
- $mapper = new UrlMapper($connection);
-
- $this->assertFalse(
- $mapper->deleteUrls("foo"),
- "deleteUrls() must return false when no record is found."
- );
- }
-
- /**
- * @covers ::__construct
- * @covers ::deleteUrls
- */
- public function testDeleteUrlsRollsBackOnException()
- {
- $connection = $this->prophesize(Connection::class);
- $connection->beginTransaction()->shouldBeCalled();
- $connection->delete(Argument::any(), Argument::any())
- ->willThrow(new \Exception(""));
- $connection->rollBack()->shouldBeCalled();
- $connection = $connection->reveal();
-
- $mapper = new UrlMapper($connection);
- $this->expectException(\Exception::class);
- $mapper->deleteUrls("foo");
- }
-
- /**
- * @covers ::findUrls
- */
- public function testFindUrlsReturnsUnmodifiedIfNotConfigured()
- {
- // Simulate a record being returned.
- $connection = $this->prophesize(Connection::class);
- $connection->fetchAssoc(Argument::any(), Argument::any())
- ->willReturn(['uri' => 'foo']);
- $connection = $connection->reveal();
- $mapper = new UrlMapper($connection);
- $results = $mapper->findUrls("abc");
- $this->assertTrue(
- $results['uri'] == 'foo',
- "getUrls() modified connection results. Actual: ${results['uri']}. Expected: foo"
- );
- // Simulate when no record is found.
- $connection = $this->prophesize(Connection::class);
- $connection->fetchAssoc(Argument::any(), Argument::any())
- ->willReturn([]);
- $connection = $connection->reveal();
- $mapper = new UrlMapper($connection);
- $results = $mapper->findUrls("abc");
- $this->assertTrue(
- empty($results),
- "getUrls() modified connection results. Expected empty array, received " . json_encode($results)
- );
- }
-
- /**
- * @covers ::findUrls
- */
- public function testFindUrlsReturnsModifiedIfConfigured()
- {
- // Simulate a record being returned for Fedora.
- $connection = $this->prophesize(Connection::class);
- $connection->fetchAssoc(Argument::any(), Argument::any())
- ->willReturn(['fedora_uri' => 'http://example.org/foo']);
- $connection = $connection->reveal();
- $mapper = new UrlMapper($connection, 'drupal.example.org', 'fcrepo.example.org');
- $results = $mapper->findUrls("abc");
- $this->assertTrue(
- $results['uri'] == 'http://fcrepo.example.org/foo',
- "getUrls() did not modify connection results. Actual: ${results['uri']}. Expected: " .
- "http://fcrepo.example.org/foo"
- );
-
- // Simulate a record being returned for Drupal.
- $connection = $this->prophesize(Connection::class);
- $connection->fetchAssoc(Argument::any(), Argument::any())
- ->willReturn(['drupal_uri' => 'http://example.org/bar']);
- $connection = $connection->reveal();
- $mapper = new UrlMapper($connection, 'drupal.example.org', 'fcrepo.example.org');
- $results = $mapper->findUrls("abc");
- $this->assertTrue(
- $results['uri'] == 'http://drupal.example.org/bar',
- "getUrls() did not modify connection results. Actual: ${results['uri']}. Expected: " .
- "http://drupal.example.org/bar"
- );
-
- // Simulate when no record is found.
- $connection = $this->prophesize(Connection::class);
- $connection->fetchAssoc(Argument::any(), Argument::any())
- ->willReturn([]);
- $connection = $connection->reveal();
- $mapper = new UrlMapper($connection, 'drupal.example.org', 'fcrepo.example.org');
- $results = $mapper->findUrls("abc");
- $this->assertTrue(
- empty($results),
- "getUrls() modified connection results. Expected empty array, received " . json_encode($results)
- );
- }
-}
diff --git a/Gemini/tests/Islandora/Gemini/Tests/UrlMinterTest.php b/Gemini/tests/Islandora/Gemini/Tests/UrlMinterTest.php
deleted file mode 100644
index c8e02ec2..00000000
--- a/Gemini/tests/Islandora/Gemini/Tests/UrlMinterTest.php
+++ /dev/null
@@ -1,70 +0,0 @@
-expectException(\InvalidArgumentException::class, null, 400);
- $minter->mint("", "");
- }
-
- /**
- * @covers ::__construct
- * @covers ::mint
- */
- public function testThrowsExceptionOnShortUUID()
- {
- $minter = new UrlMinter("http://localhost:8080/fcrepo/rest");
- $this->expectException(\InvalidArgumentException::class, null, 400);
- $minter->mint("abcd", "http://localhost:8080/fcrepo/rest/");
- }
-
- /**
- * @covers ::__construct
- * @covers ::mint
- */
- public function testHandlesMissingTrailingSlashInBaseUrl()
- {
- $missing_slash = new UrlMinter("http://localhost:8080/fcrepo/rest");
- $first = $missing_slash->mint("5d150b3a-9d1b-437f-87a9-104b8cf15859", "http://localhost:8080/fcrepo/rest/");
-
- $with_slash = new UrlMinter("http://localhost:8080/fcrepo/rest/");
- $second = $with_slash->mint("5d150b3a-9d1b-437f-87a9-104b8cf15859", "http://localhost:8080/fcrepo/rest/");
-
- $this->assertTrue(
- strcmp($first, $second) == 0,
- "Minted URLs must be the same whether or not a trailing slash is in the base url."
- );
- }
-
- /**
- * @covers ::__construct
- * @covers ::mint
- */
- public function testMintsUrlWithPairTrees()
- {
- $minter = new UrlMinter("http://localhost:8080/fcrepo/rest");
- $expected = "http://localhost:8080/fcrepo/rest/5d/15/0b/3a/5d150b3a-9d1b-437f-87a9-104b8cf15859";
- $actual = $minter->mint("5d150b3a-9d1b-437f-87a9-104b8cf15859", "http://localhost:8080/fcrepo/rest/");
-
- $this->assertTrue(
- strcmp($actual, $expected) == 0,
- "Generated URL was not of he correct format. Actual: $actual. Expected: $expected"
- );
- }
-}
diff --git a/Milliner/cfg/config.example.yaml b/Milliner/cfg/config.example.yaml
index 89133ac3..20ceb36d 100644
--- a/Milliner/cfg/config.example.yaml
+++ b/Milliner/cfg/config.example.yaml
@@ -4,7 +4,6 @@ fedora_base_url: http://localhost:8080/fcrepo/rest
# if drupal_base_url contains a path, be sure to include trailing slash
# or relative paths will not resolve correctly.
drupal_base_url: http://localhost:8000
-gemini_base_url: http://localhost:8000/gemini
modified_date_predicate: http://schema.org/dateModified
@@ -12,14 +11,6 @@ strip_format_jsonld: true
debug: false
-db.options:
- driver: pdo_mysql
- host: 127.0.0.1
- port: 3306
- dbname: gemini
- user: changeme
- password: changeme
-
log:
# Valid log levels are:
# DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY, NONE
diff --git a/Milliner/composer.json b/Milliner/composer.json
index 877e9d31..d1906325 100644
--- a/Milliner/composer.json
+++ b/Milliner/composer.json
@@ -44,6 +44,7 @@
"symfony/css-selector": "^3.0",
"squizlabs/php_codesniffer": "^3.0",
"sebastian/phpcpd": "^6.0",
- "phpunit/phpunit": "^9.0"
+ "phpunit/phpunit": "^9.0",
+ "phpspec/prophecy-phpunit": "^2.0"
}
}
diff --git a/Milliner/composer.lock b/Milliner/composer.lock
index e9ff0d8e..7613376e 100644
--- a/Milliner/composer.lock
+++ b/Milliner/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "8317f2132a61f0f74df3da3aa07466d1",
+ "content-hash": "c8a35b28c6c91a2f29401eb874997e63",
"packages": [
{
"name": "doctrine/cache",
@@ -459,16 +459,16 @@
},
{
"name": "guzzlehttp/promises",
- "version": "1.4.0",
+ "version": "1.4.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "60d379c243457e073cff02bc323a2a86cb355631"
+ "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631",
- "reference": "60d379c243457e073cff02bc323a2a86cb355631",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d",
+ "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d",
"shasum": ""
},
"require": {
@@ -508,9 +508,9 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/1.4.0"
+ "source": "https://github.com/guzzle/promises/tree/1.4.1"
},
- "time": "2020-09-30T07:37:28+00:00"
+ "time": "2021-03-07T09:25:29+00:00"
},
{
"name": "guzzlehttp/psr7",
@@ -593,12 +593,12 @@
"source": {
"type": "git",
"url": "https://github.com/Islandora/chullo.git",
- "reference": "6a5454e2bcdb2b24bf481b842692d4d1de6a0287"
+ "reference": "7f7df8847844ab478f65de8377c5678d037cb5e3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Islandora/chullo/zipball/6a5454e2bcdb2b24bf481b842692d4d1de6a0287",
- "reference": "6a5454e2bcdb2b24bf481b842692d4d1de6a0287",
+ "url": "https://api.github.com/repos/Islandora/chullo/zipball/7f7df8847844ab478f65de8377c5678d037cb5e3",
+ "reference": "7f7df8847844ab478f65de8377c5678d037cb5e3",
"shasum": ""
},
"require": {
@@ -647,7 +647,7 @@
"issues": "https://github.com/Islandora/documentation/issues",
"source": "https://github.com/Islandora/chullo/tree/dev"
},
- "time": "2020-12-11T21:38:08+00:00"
+ "time": "2021-02-16T15:51:00+00:00"
},
{
"name": "islandora/crayfish-commons",
@@ -655,12 +655,12 @@
"source": {
"type": "git",
"url": "https://github.com/Islandora/Crayfish-Commons.git",
- "reference": "d7c0044723c2089f7757fb5c9dd523397938a8e9"
+ "reference": "748c59cd1ddce9ddc9a05e25594cc6a9b230f9c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Islandora/Crayfish-Commons/zipball/d7c0044723c2089f7757fb5c9dd523397938a8e9",
- "reference": "d7c0044723c2089f7757fb5c9dd523397938a8e9",
+ "url": "https://api.github.com/repos/Islandora/Crayfish-Commons/zipball/748c59cd1ddce9ddc9a05e25594cc6a9b230f9c1",
+ "reference": "748c59cd1ddce9ddc9a05e25594cc6a9b230f9c1",
"shasum": ""
},
"require": {
@@ -671,15 +671,16 @@
"pimple/pimple": "~3.0",
"psr/log": "^1.0.1",
"silex/silex": "^2.0",
- "symfony/http-foundation": "^3.2.6",
- "symfony/security": "^3.2",
- "symfony/yaml": "^3.2"
+ "symfony/http-foundation": "^3.4 || ^4.4",
+ "symfony/security": "^3.4 || ^4.4",
+ "symfony/yaml": "^3.4 || ^4.4"
},
"require-dev": {
"mikey179/vfsstream": "^1.6",
- "phpunit/phpunit": "^5.0",
- "sebastian/phpcpd": "^3.0",
- "squizlabs/php_codesniffer": "^2.0"
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpunit/phpunit": "^9.0",
+ "sebastian/phpcpd": "^6.0",
+ "squizlabs/php_codesniffer": "^3.0"
},
"default-branch": true,
"type": "library",
@@ -710,7 +711,7 @@
"issues": "https://github.com/Islandora/documentation/issues",
"source": "https://github.com/Islandora/Crayfish-Commons/tree/dev"
},
- "time": "2020-11-12T23:33:17+00:00"
+ "time": "2021-03-12T18:49:29+00:00"
},
{
"name": "ml/iri",
@@ -818,16 +819,16 @@
},
{
"name": "monolog/monolog",
- "version": "1.25.5",
+ "version": "1.26.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "1817faadd1846cd08be9a49e905dc68823bc38c0"
+ "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1817faadd1846cd08be9a49e905dc68823bc38c0",
- "reference": "1817faadd1846cd08be9a49e905dc68823bc38c0",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/2209ddd84e7ef1256b7af205d0717fb62cfc9c33",
+ "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33",
"shasum": ""
},
"require": {
@@ -843,7 +844,7 @@
"graylog2/gelf-php": "~1.0",
"php-amqplib/php-amqplib": "~2.4",
"php-console/php-console": "^3.1.3",
- "php-parallel-lint/php-parallel-lint": "^1.0",
+ "phpstan/phpstan": "^0.12.59",
"phpunit/phpunit": "~4.5",
"ruflin/elastica": ">=0.90 <3.0",
"sentry/sentry": "^0.13",
@@ -863,11 +864,6 @@
"sentry/sentry": "Allow sending log messages to a Sentry server"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
"autoload": {
"psr-4": {
"Monolog\\": "src/Monolog"
@@ -893,7 +889,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/1.25.5"
+ "source": "https://github.com/Seldaek/monolog/tree/1.26.0"
},
"funding": [
{
@@ -905,7 +901,7 @@
"type": "tidelift"
}
],
- "time": "2020-07-23T08:35:51+00:00"
+ "time": "2020-12-14T12:56:38+00:00"
},
{
"name": "namshi/jose",
@@ -976,21 +972,21 @@
},
{
"name": "pimple/pimple",
- "version": "v3.3.1",
+ "version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/silexphp/Pimple.git",
- "reference": "21e45061c3429b1e06233475cc0e1f6fc774d5b0"
+ "reference": "86406047271859ffc13424a048541f4531f53601"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/silexphp/Pimple/zipball/21e45061c3429b1e06233475cc0e1f6fc774d5b0",
- "reference": "21e45061c3429b1e06233475cc0e1f6fc774d5b0",
+ "url": "https://api.github.com/repos/silexphp/Pimple/zipball/86406047271859ffc13424a048541f4531f53601",
+ "reference": "86406047271859ffc13424a048541f4531f53601",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "psr/container": "^1.0"
+ "psr/container": "^1.1"
},
"require-dev": {
"symfony/phpunit-bridge": "^5.0"
@@ -998,7 +994,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.3.x-dev"
+ "dev-master": "3.4.x-dev"
}
},
"autoload": {
@@ -1023,33 +1019,28 @@
"dependency injection"
],
"support": {
- "source": "https://github.com/silexphp/Pimple/tree/v3.3.1"
+ "source": "https://github.com/silexphp/Pimple/tree/v3.4.0"
},
- "time": "2020-11-24T20:35:42+00:00"
+ "time": "2021-03-06T08:28:00+00:00"
},
{
"name": "psr/container",
- "version": "1.0.0",
+ "version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=7.2.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
@@ -1062,7 +1053,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common Container Interface (PHP FIG PSR-11)",
@@ -1076,9 +1067,9 @@
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/master"
+ "source": "https://github.com/php-fig/container/tree/1.1.1"
},
- "time": "2017-02-14T16:28:37+00:00"
+ "time": "2021-03-05T17:36:06+00:00"
},
{
"name": "psr/http-message",
@@ -1229,65 +1220,62 @@
},
{
"name": "silex/silex",
- "version": "v2.2.4",
+ "version": "v2.3.0",
"source": {
"type": "git",
"url": "https://github.com/silexphp/Silex.git",
- "reference": "d2531e5b8099c429b752ad2154e85999c3689057"
+ "reference": "6bc31c1b8c4ef614a7115320fd2d3b958032f131"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/silexphp/Silex/zipball/d2531e5b8099c429b752ad2154e85999c3689057",
- "reference": "d2531e5b8099c429b752ad2154e85999c3689057",
+ "url": "https://api.github.com/repos/silexphp/Silex/zipball/6bc31c1b8c4ef614a7115320fd2d3b958032f131",
+ "reference": "6bc31c1b8c4ef614a7115320fd2d3b958032f131",
"shasum": ""
},
"require": {
- "php": ">=5.5.9",
- "pimple/pimple": "~3.0",
- "symfony/event-dispatcher": "~2.8|^3.0",
- "symfony/http-foundation": "~2.8|^3.0",
- "symfony/http-kernel": "~2.8|^3.0",
- "symfony/routing": "~2.8|^3.0"
- },
- "conflict": {
- "phpunit/phpunit": "<4.8.35 || >= 5.0, <5.4.3"
+ "php": ">=7.1.3",
+ "pimple/pimple": "^3.0",
+ "symfony/event-dispatcher": "^4.0",
+ "symfony/http-foundation": "^4.0",
+ "symfony/http-kernel": "^4.0",
+ "symfony/routing": "^4.0"
},
"replace": {
"silex/api": "self.version",
"silex/providers": "self.version"
},
"require-dev": {
- "doctrine/dbal": "~2.2",
+ "doctrine/dbal": "^2.2",
"monolog/monolog": "^1.4.1",
- "swiftmailer/swiftmailer": "~5",
- "symfony/asset": "~2.8|^3.0",
- "symfony/browser-kit": "~2.8|^3.0",
- "symfony/config": "~2.8|^3.0",
- "symfony/css-selector": "~2.8|^3.0",
- "symfony/debug": "~2.8|^3.0",
- "symfony/doctrine-bridge": "~2.8|^3.0",
- "symfony/dom-crawler": "~2.8|^3.0",
- "symfony/expression-language": "~2.8|^3.0",
- "symfony/finder": "~2.8|^3.0",
- "symfony/form": "~2.8|^3.0",
- "symfony/intl": "~2.8|^3.0",
- "symfony/monolog-bridge": "~2.8|^3.0",
- "symfony/options-resolver": "~2.8|^3.0",
+ "swiftmailer/swiftmailer": "^5",
+ "symfony/asset": "^4.0",
+ "symfony/browser-kit": "^4.0",
+ "symfony/config": "^4.0",
+ "symfony/css-selector": "^4.0",
+ "symfony/debug": "^4.0",
+ "symfony/doctrine-bridge": "^4.0",
+ "symfony/dom-crawler": "^4.0",
+ "symfony/expression-language": "^4.0",
+ "symfony/finder": "^4.0",
+ "symfony/form": "^4.0",
+ "symfony/intl": "^4.0",
+ "symfony/monolog-bridge": "^4.0",
+ "symfony/options-resolver": "^4.0",
"symfony/phpunit-bridge": "^3.2",
- "symfony/process": "~2.8|^3.0",
- "symfony/security": "~2.8|^3.0",
- "symfony/serializer": "~2.8|^3.0",
- "symfony/translation": "~2.8|^3.0",
- "symfony/twig-bridge": "~2.8|^3.0",
- "symfony/validator": "~2.8|^3.0",
- "symfony/var-dumper": "~2.8|^3.0",
- "symfony/web-link": "^3.3",
- "twig/twig": "~1.28|~2.0"
+ "symfony/process": "^4.0",
+ "symfony/security": "^4.0",
+ "symfony/serializer": "^4.0",
+ "symfony/translation": "^4.0",
+ "symfony/twig-bridge": "^4.0",
+ "symfony/validator": "^4.0",
+ "symfony/var-dumper": "^4.0",
+ "symfony/web-link": "^4.0",
+ "twig/twig": "^2.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.2.x-dev"
+ "dev-master": "2.3.x-dev"
}
},
"autoload": {
@@ -1316,23 +1304,97 @@
],
"support": {
"issues": "https://github.com/silexphp/Silex/issues",
- "source": "https://github.com/silexphp/Silex/tree/v2.2.4"
+ "source": "https://github.com/silexphp/Silex/tree/v2.3.0"
},
"abandoned": "symfony/flex",
- "time": "2018-03-16T23:34:20+00:00"
+ "time": "2018-04-20T05:17:01+00:00"
+ },
+ {
+ "name": "symfony/contracts",
+ "version": "v1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/contracts.git",
+ "reference": "d3636025e8253c6144358ec0a62773cae588395b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/contracts/zipball/d3636025e8253c6144358ec0a62773cae588395b",
+ "reference": "d3636025e8253c6144358ec0a62773cae588395b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3"
+ },
+ "require-dev": {
+ "psr/cache": "^1.0",
+ "psr/container": "^1.0",
+ "symfony/polyfill-intl-idn": "^1.10"
+ },
+ "suggest": {
+ "psr/cache": "When using the Cache contracts",
+ "psr/container": "When using the Service contracts",
+ "symfony/cache-contracts-implementation": "",
+ "symfony/event-dispatcher-implementation": "",
+ "symfony/http-client-contracts-implementation": "",
+ "symfony/service-contracts-implementation": "",
+ "symfony/translation-contracts-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\": ""
+ },
+ "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": "A set of abstractions extracted out of the Symfony components",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/contracts/tree/master"
+ },
+ "time": "2019-04-27T14:29:50+00:00"
},
{
"name": "symfony/debug",
- "version": "v4.4.17",
+ "version": "v4.4.20",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug.git",
- "reference": "65fe7b49868378319b82da3035fb30801b931c47"
+ "reference": "157bbec4fd773bae53c5483c50951a5530a2cc16"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/debug/zipball/65fe7b49868378319b82da3035fb30801b931c47",
- "reference": "65fe7b49868378319b82da3035fb30801b931c47",
+ "url": "https://api.github.com/repos/symfony/debug/zipball/157bbec4fd773bae53c5483c50951a5530a2cc16",
+ "reference": "157bbec4fd773bae53c5483c50951a5530a2cc16",
"shasum": ""
},
"require": {
@@ -1369,10 +1431,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Debug Component",
+ "description": "Provides tools to ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/debug/tree/v4.4.17"
+ "source": "https://github.com/symfony/debug/tree/v4.4.20"
},
"funding": [
{
@@ -1388,7 +1450,7 @@
"type": "tidelift"
}
],
- "time": "2020-10-28T20:42:29+00:00"
+ "time": "2021-01-28T16:54:48+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -1459,31 +1521,38 @@
},
{
"name": "symfony/event-dispatcher",
- "version": "v3.4.47",
+ "version": "v4.4.20",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "31fde73757b6bad247c54597beef974919ec6860"
+ "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/31fde73757b6bad247c54597beef974919ec6860",
- "reference": "31fde73757b6bad247c54597beef974919ec6860",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c352647244bd376bf7d31efbd5401f13f50dad0c",
+ "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c",
"shasum": ""
},
"require": {
- "php": "^5.5.9|>=7.0.8"
+ "php": ">=7.1.3",
+ "symfony/event-dispatcher-contracts": "^1.1"
},
"conflict": {
- "symfony/dependency-injection": "<3.3"
+ "symfony/dependency-injection": "<3.4"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "1.1"
},
"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"
+ "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": "",
@@ -1512,10 +1581,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony EventDispatcher Component",
+ "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/v3.4.47"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.20"
},
"funding": [
{
@@ -1531,29 +1600,110 @@
"type": "tidelift"
}
],
- "time": "2020-10-24T10:57:07+00:00"
+ "time": "2021-01-27T09:09:26+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v1.1.9",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7",
+ "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3"
+ },
+ "suggest": {
+ "psr/event-dispatcher": "",
+ "symfony/event-dispatcher-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "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.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": "2020-07-06T13:19:58+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v3.4.47",
+ "version": "v4.4.20",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "b9885fcce6fe494201da4f70a9309770e9d13dc8"
+ "reference": "02d968647fe61b2f419a8dc70c468a9d30a48d3a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/b9885fcce6fe494201da4f70a9309770e9d13dc8",
- "reference": "b9885fcce6fe494201da4f70a9309770e9d13dc8",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/02d968647fe61b2f419a8dc70c468a9d30a48d3a",
+ "reference": "02d968647fe61b2f419a8dc70c468a9d30a48d3a",
"shasum": ""
},
"require": {
- "php": "^5.5.9|>=7.0.8",
+ "php": ">=7.1.3",
+ "symfony/mime": "^4.3|^5.0",
"symfony/polyfill-mbstring": "~1.1",
- "symfony/polyfill-php70": "~1.6"
+ "symfony/polyfill-php80": "^1.15"
},
"require-dev": {
- "symfony/expression-language": "~2.8|~3.0|~4.0"
+ "predis/predis": "~1.0",
+ "symfony/expression-language": "^3.4|^4.0|^5.0"
},
"type": "library",
"autoload": {
@@ -1578,10 +1728,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony HttpFoundation Component",
+ "description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v3.4.47"
+ "source": "https://github.com/symfony/http-foundation/tree/v4.4.20"
},
"funding": [
{
@@ -1597,35 +1747,37 @@
"type": "tidelift"
}
],
- "time": "2020-10-24T10:57:07+00:00"
+ "time": "2021-02-25T17:11:33+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v3.4.47",
+ "version": "v4.2.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "a98a4c30089e6a2d52a9fa236f718159b539f6f5"
+ "reference": "8a7c5ef599466af6e972c705507f815df9c490ae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a98a4c30089e6a2d52a9fa236f718159b539f6f5",
- "reference": "a98a4c30089e6a2d52a9fa236f718159b539f6f5",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8a7c5ef599466af6e972c705507f815df9c490ae",
+ "reference": "8a7c5ef599466af6e972c705507f815df9c490ae",
"shasum": ""
},
"require": {
- "php": "^5.5.9|>=7.0.8",
+ "php": "^7.1.3",
"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/contracts": "^1.0.2",
+ "symfony/debug": "~3.4|~4.0",
+ "symfony/event-dispatcher": "~4.1",
+ "symfony/http-foundation": "^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",
+ "symfony/config": "<3.4",
+ "symfony/dependency-injection": "<4.2",
+ "symfony/translation": "<4.2",
+ "symfony/var-dumper": "<4.1.1",
"twig/twig": "<1.34|<2.4,>=2"
},
"provide": {
@@ -1633,31 +1785,34 @@
},
"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/browser-kit": "~3.4|~4.0",
+ "symfony/config": "~3.4|~4.0",
+ "symfony/console": "~3.4|~4.0",
+ "symfony/css-selector": "~3.4|~4.0",
+ "symfony/dependency-injection": "^4.2",
+ "symfony/dom-crawler": "~3.4|~4.0",
+ "symfony/expression-language": "~3.4|~4.0",
+ "symfony/finder": "~3.4|~4.0",
+ "symfony/process": "~3.4|~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"
+ "symfony/stopwatch": "~3.4|~4.0",
+ "symfony/templating": "~3.4|~4.0",
+ "symfony/translation": "~4.2",
+ "symfony/var-dumper": "^4.1.1"
},
"suggest": {
"symfony/browser-kit": "",
"symfony/config": "",
"symfony/console": "",
"symfony/dependency-injection": "",
- "symfony/finder": "",
"symfony/var-dumper": ""
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.2-dev"
+ }
+ },
"autoload": {
"psr-4": {
"Symfony\\Component\\HttpKernel\\": ""
@@ -1683,7 +1838,64 @@
"description": "Symfony HttpKernel Component",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v3.4.47"
+ "source": "https://github.com/symfony/http-kernel/tree/v4.2.12"
+ },
+ "time": "2019-11-13T08:51:34+00:00"
+ },
+ {
+ "name": "symfony/inflector",
+ "version": "v5.2.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/inflector.git",
+ "reference": "4c285002228d0e27480e5eee871f4e3f0a05a4eb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/inflector/zipball/4c285002228d0e27480e5eee871f4e3f0a05a4eb",
+ "reference": "4c285002228d0e27480e5eee871f4e3f0a05a4eb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1",
+ "symfony/string": "~5.1.10|^5.2.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Inflector\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Converts words between their singular and plural forms (English only)",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "inflection",
+ "pluralize",
+ "singularize",
+ "string",
+ "symfony",
+ "words"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/inflector/tree/v5.2.4"
},
"funding": [
{
@@ -1699,31 +1911,47 @@
"type": "tidelift"
}
],
- "time": "2020-11-27T08:42:42+00:00"
+ "time": "2021-01-10T16:29:19+00:00"
},
{
- "name": "symfony/inflector",
- "version": "v5.2.0",
+ "name": "symfony/mime",
+ "version": "v5.2.5",
"source": {
"type": "git",
- "url": "https://github.com/symfony/inflector.git",
- "reference": "ba33a08d608c5b26ef768b6652876098dd3ace36"
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "554ba128f1955038b45db5e1fa7e93bfc683b139"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/inflector/zipball/ba33a08d608c5b26ef768b6652876098dd3ace36",
- "reference": "ba33a08d608c5b26ef768b6652876098dd3ace36",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/554ba128f1955038b45db5e1fa7e93bfc683b139",
+ "reference": "554ba128f1955038b45db5e1fa7e93bfc683b139",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"symfony/deprecation-contracts": "^2.1",
- "symfony/string": "^5.1"
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "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",
+ "symfony/property-access": "^4.4|^5.1",
+ "symfony/property-info": "^4.4|^5.1",
+ "symfony/serializer": "^5.2"
},
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\Inflector\\": ""
+ "Symfony\\Component\\Mime\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -1735,26 +1963,22 @@
],
"authors": [
{
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Inflector Component",
+ "description": "Allows manipulating MIME messages",
"homepage": "https://symfony.com",
"keywords": [
- "inflection",
- "pluralize",
- "singularize",
- "string",
- "symfony",
- "words"
+ "mime",
+ "mime-type"
],
"support": {
- "source": "https://github.com/symfony/inflector/tree/v5.2.0"
+ "source": "https://github.com/symfony/mime/tree/v5.2.5"
},
"funding": [
{
@@ -1770,20 +1994,20 @@
"type": "tidelift"
}
],
- "time": "2020-10-24T12:01:57+00:00"
+ "time": "2021-03-07T16:08:20+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.20.0",
+ "version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41"
+ "reference": "c6c942b1ac76c82448322025e084cadc56048b4e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41",
- "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e",
+ "reference": "c6c942b1ac76c82448322025e084cadc56048b4e",
"shasum": ""
},
"require": {
@@ -1795,7 +2019,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
+ "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -1833,7 +2057,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.20.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1"
},
"funding": [
{
@@ -1849,20 +2073,20 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2021-01-07T16:49:33+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.20.0",
+ "version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c"
+ "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c",
- "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170",
+ "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170",
"shasum": ""
},
"require": {
@@ -1874,7 +2098,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
+ "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -1914,7 +2138,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.20.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1"
},
"funding": [
{
@@ -1930,20 +2154,20 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2021-01-22T09:19:47+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.20.0",
+ "version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117"
+ "reference": "2d63434d922daf7da8dd863e7907e67ee3031483"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3b75acd829741c768bc8b1f84eb33265e7cc5117",
- "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/2d63434d922daf7da8dd863e7907e67ee3031483",
+ "reference": "2d63434d922daf7da8dd863e7907e67ee3031483",
"shasum": ""
},
"require": {
@@ -1957,7 +2181,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
+ "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -2001,7 +2225,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.20.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.1"
},
"funding": [
{
@@ -2017,20 +2241,20 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2021-01-22T09:19:47+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.20.0",
+ "version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "727d1096295d807c309fb01a851577302394c897"
+ "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/727d1096295d807c309fb01a851577302394c897",
- "reference": "727d1096295d807c309fb01a851577302394c897",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248",
+ "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248",
"shasum": ""
},
"require": {
@@ -2042,7 +2266,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
+ "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -2085,7 +2309,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.20.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1"
},
"funding": [
{
@@ -2101,20 +2325,20 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2021-01-22T09:19:47+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.20.0",
+ "version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "39d483bdf39be819deabf04ec872eb0b2410b531"
+ "reference": "5232de97ee3b75b0360528dae24e73db49566ab1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531",
- "reference": "39d483bdf39be819deabf04ec872eb0b2410b531",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1",
+ "reference": "5232de97ee3b75b0360528dae24e73db49566ab1",
"shasum": ""
},
"require": {
@@ -2126,7 +2350,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
+ "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -2165,7 +2389,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1"
},
"funding": [
{
@@ -2181,7 +2405,7 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2021-01-22T09:19:47+00:00"
},
{
"name": "symfony/polyfill-php56",
@@ -2321,16 +2545,16 @@
},
{
"name": "symfony/polyfill-php72",
- "version": "v1.20.0",
+ "version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930"
+ "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930",
- "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
+ "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
"shasum": ""
},
"require": {
@@ -2339,7 +2563,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
+ "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -2377,7 +2601,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.20.0"
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1"
},
"funding": [
{
@@ -2393,20 +2617,20 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2021-01-07T16:49:33+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.20.0",
+ "version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de"
+ "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de",
- "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91",
+ "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91",
"shasum": ""
},
"require": {
@@ -2415,7 +2639,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
+ "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -2460,7 +2684,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1"
},
"funding": [
{
@@ -2476,20 +2700,20 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2021-01-07T16:49:33+00:00"
},
{
"name": "symfony/property-access",
- "version": "v4.4.17",
+ "version": "v4.4.20",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-access.git",
- "reference": "ab8184f093095b40c3e7688bc4eb1d0484da327c"
+ "reference": "94a1d9837396c71a0d8c31686c16693a15651622"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-access/zipball/ab8184f093095b40c3e7688bc4eb1d0484da327c",
- "reference": "ab8184f093095b40c3e7688bc4eb1d0484da327c",
+ "url": "https://api.github.com/repos/symfony/property-access/zipball/94a1d9837396c71a0d8c31686c16693a15651622",
+ "reference": "94a1d9837396c71a0d8c31686c16693a15651622",
"shasum": ""
},
"require": {
@@ -2525,7 +2749,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony PropertyAccess Component",
+ "description": "Provides functions to read and write from/to an object or array using a simple string notation",
"homepage": "https://symfony.com",
"keywords": [
"access",
@@ -2539,7 +2763,7 @@
"reflection"
],
"support": {
- "source": "https://github.com/symfony/property-access/tree/v4.4.17"
+ "source": "https://github.com/symfony/property-access/tree/v4.4.20"
},
"funding": [
{
@@ -2555,38 +2779,38 @@
"type": "tidelift"
}
],
- "time": "2020-10-31T22:44:29+00:00"
+ "time": "2021-01-27T09:09:26+00:00"
},
{
"name": "symfony/routing",
- "version": "v3.4.47",
+ "version": "v4.4.20",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "3e522ac69cadffd8131cc2b22157fa7662331a6c"
+ "reference": "69919991c845b34626664ddc9b3aef9d09d2a5df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/3e522ac69cadffd8131cc2b22157fa7662331a6c",
- "reference": "3e522ac69cadffd8131cc2b22157fa7662331a6c",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/69919991c845b34626664ddc9b3aef9d09d2a5df",
+ "reference": "69919991c845b34626664ddc9b3aef9d09d2a5df",
"shasum": ""
},
"require": {
- "php": "^5.5.9|>=7.0.8"
+ "php": ">=7.1.3"
},
"conflict": {
- "symfony/config": "<3.3.1",
- "symfony/dependency-injection": "<3.3",
+ "symfony/config": "<4.2",
+ "symfony/dependency-injection": "<3.4",
"symfony/yaml": "<3.4"
},
"require-dev": {
- "doctrine/annotations": "~1.0",
+ "doctrine/annotations": "^1.10.4",
"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"
+ "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",
@@ -2618,7 +2842,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Routing Component",
+ "description": "Maps an HTTP request to a set of configuration variables",
"homepage": "https://symfony.com",
"keywords": [
"router",
@@ -2627,7 +2851,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v3.4.47"
+ "source": "https://github.com/symfony/routing/tree/v4.4.20"
},
"funding": [
{
@@ -2643,7 +2867,7 @@
"type": "tidelift"
}
],
- "time": "2020-10-24T10:57:07+00:00"
+ "time": "2021-02-22T15:37:04+00:00"
},
{
"name": "symfony/security",
@@ -2742,16 +2966,16 @@
},
{
"name": "symfony/string",
- "version": "v5.2.0",
+ "version": "v5.2.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "40e975edadd4e32cd16f3753b3bad65d9ac48242"
+ "reference": "4e78d7d47061fa183639927ec40d607973699609"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/40e975edadd4e32cd16f3753b3bad65d9ac48242",
- "reference": "40e975edadd4e32cd16f3753b3bad65d9ac48242",
+ "url": "https://api.github.com/repos/symfony/string/zipball/4e78d7d47061fa183639927ec40d607973699609",
+ "reference": "4e78d7d47061fa183639927ec40d607973699609",
"shasum": ""
},
"require": {
@@ -2794,7 +3018,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony String component",
+ "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",
@@ -2805,7 +3029,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v5.2.0"
+ "source": "https://github.com/symfony/string/tree/v5.2.4"
},
"funding": [
{
@@ -2821,31 +3045,31 @@
"type": "tidelift"
}
],
- "time": "2020-10-24T12:08:07+00:00"
+ "time": "2021-02-16T10:20:28+00:00"
},
{
"name": "symfony/yaml",
- "version": "v3.4.47",
+ "version": "v4.4.20",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "88289caa3c166321883f67fe5130188ebbb47094"
+ "reference": "29e61305e1c79d25f71060903982ead8f533e267"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/88289caa3c166321883f67fe5130188ebbb47094",
- "reference": "88289caa3c166321883f67fe5130188ebbb47094",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/29e61305e1c79d25f71060903982ead8f533e267",
+ "reference": "29e61305e1c79d25f71060903982ead8f533e267",
"shasum": ""
},
"require": {
- "php": "^5.5.9|>=7.0.8",
+ "php": ">=7.1.3",
"symfony/polyfill-ctype": "~1.8"
},
"conflict": {
"symfony/console": "<3.4"
},
"require-dev": {
- "symfony/console": "~3.4|~4.0"
+ "symfony/console": "^3.4|^4.0|^5.0"
},
"suggest": {
"symfony/console": "For validating YAML files using the lint command"
@@ -2873,10 +3097,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Yaml Component",
+ "description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v3.4.47"
+ "source": "https://github.com/symfony/yaml/tree/v4.4.20"
},
"funding": [
{
@@ -2892,7 +3116,7 @@
"type": "tidelift"
}
],
- "time": "2020-10-24T10:57:07+00:00"
+ "time": "2021-02-22T15:36:50+00:00"
}
],
"packages-dev": [
@@ -3025,16 +3249,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.10.3",
+ "version": "v4.10.4",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "dbe56d23de8fcb157bbc0cfb3ad7c7de0cfb0984"
+ "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dbe56d23de8fcb157bbc0cfb3ad7c7de0cfb0984",
- "reference": "dbe56d23de8fcb157bbc0cfb3ad7c7de0cfb0984",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e",
+ "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e",
"shasum": ""
},
"require": {
@@ -3075,9 +3299,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.3"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4"
},
- "time": "2020-12-03T17:45:45+00:00"
+ "time": "2020-12-20T10:01:03+00:00"
},
{
"name": "phar-io/manifest",
@@ -3141,16 +3365,16 @@
},
{
"name": "phar-io/version",
- "version": "3.0.3",
+ "version": "3.1.0",
"source": {
"type": "git",
"url": "https://github.com/phar-io/version.git",
- "reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae"
+ "reference": "bae7c545bef187884426f042434e561ab1ddb182"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/version/zipball/726c026815142e4f8677b7cb7f2249c9ffb7ecae",
- "reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182",
+ "reference": "bae7c545bef187884426f042434e561ab1ddb182",
"shasum": ""
},
"require": {
@@ -3186,9 +3410,9 @@
"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.0.3"
+ "source": "https://github.com/phar-io/version/tree/3.1.0"
},
- "time": "2020-11-30T09:21:21+00:00"
+ "time": "2021-02-23T14:00:09+00:00"
},
{
"name": "phpdocumentor/reflection-common",
@@ -3350,16 +3574,16 @@
},
{
"name": "phpspec/prophecy",
- "version": "1.12.1",
+ "version": "1.12.2",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
- "reference": "8ce87516be71aae9b956f81906aaf0338e0d8a2d"
+ "reference": "245710e971a030f42e08f4912863805570f23d39"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/8ce87516be71aae9b956f81906aaf0338e0d8a2d",
- "reference": "8ce87516be71aae9b956f81906aaf0338e0d8a2d",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39",
+ "reference": "245710e971a030f42e08f4912863805570f23d39",
"shasum": ""
},
"require": {
@@ -3371,7 +3595,7 @@
},
"require-dev": {
"phpspec/phpspec": "^6.0",
- "phpunit/phpunit": "^8.0 || ^9.0 <9.3"
+ "phpunit/phpunit": "^8.0 || ^9.0"
},
"type": "library",
"extra": {
@@ -3411,9 +3635,61 @@
],
"support": {
"issues": "https://github.com/phpspec/prophecy/issues",
- "source": "https://github.com/phpspec/prophecy/tree/1.12.1"
+ "source": "https://github.com/phpspec/prophecy/tree/1.12.2"
},
- "time": "2020-09-29T09:10:42+00:00"
+ "time": "2020-12-19T10:15:11+00:00"
+ },
+ {
+ "name": "phpspec/prophecy-phpunit",
+ "version": "v2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpspec/prophecy-phpunit.git",
+ "reference": "2d7a9df55f257d2cba9b1d0c0963a54960657177"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpspec/prophecy-phpunit/zipball/2d7a9df55f257d2cba9b1d0c0963a54960657177",
+ "reference": "2d7a9df55f257d2cba9b1d0c0963a54960657177",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3 || ^8",
+ "phpspec/prophecy": "^1.3",
+ "phpunit/phpunit": "^9.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-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.0.1"
+ },
+ "time": "2020-07-09T08:33:42+00:00"
},
{
"name": "phpunit/php-code-coverage",
@@ -3735,16 +4011,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.5.0",
+ "version": "9.5.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe"
+ "reference": "f661659747f2f87f9e72095bb207bceb0f151cb4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e16c225d57c3d6808014df6b1dd7598d0a5bbbe",
- "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f661659747f2f87f9e72095bb207bceb0f151cb4",
+ "reference": "f661659747f2f87f9e72095bb207bceb0f151cb4",
"shasum": ""
},
"require": {
@@ -3822,7 +4098,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.0"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.2"
},
"funding": [
{
@@ -3834,7 +4110,7 @@
"type": "github"
}
],
- "time": "2020-12-04T05:05:53+00:00"
+ "time": "2021-02-02T14:45:58+00:00"
},
{
"name": "sebastian/cli-parser",
@@ -5053,16 +5329,16 @@
},
{
"name": "symfony/dom-crawler",
- "version": "v4.4.17",
+ "version": "v4.4.20",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "30ad9ac96a01913195bf0328d48e29d54fa53e6e"
+ "reference": "be133557f1b0e6672367325b508e65da5513a311"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/30ad9ac96a01913195bf0328d48e29d54fa53e6e",
- "reference": "30ad9ac96a01913195bf0328d48e29d54fa53e6e",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/be133557f1b0e6672367325b508e65da5513a311",
+ "reference": "be133557f1b0e6672367325b508e65da5513a311",
"shasum": ""
},
"require": {
@@ -5103,10 +5379,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony DomCrawler Component",
+ "description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dom-crawler/tree/v4.4.17"
+ "source": "https://github.com/symfony/dom-crawler/tree/v4.4.20"
},
"funding": [
{
@@ -5122,7 +5398,7 @@
"type": "tidelift"
}
],
- "time": "2020-10-24T11:50:19+00:00"
+ "time": "2021-02-14T12:29:41+00:00"
},
{
"name": "theseer/tokenizer",
@@ -5176,30 +5452,35 @@
},
{
"name": "webmozart/assert",
- "version": "1.9.1",
+ "version": "1.10.0",
"source": {
"type": "git",
- "url": "https://github.com/webmozart/assert.git",
- "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389"
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389",
- "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25",
+ "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25",
"shasum": ""
},
"require": {
- "php": "^5.3.3 || ^7.0 || ^8.0",
+ "php": "^7.2 || ^8.0",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
"phpstan/phpstan": "<0.12.20",
- "vimeo/psalm": "<3.9.1"
+ "vimeo/psalm": "<4.6.1 || 4.6.2"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.36 || ^7.5.13"
+ "phpunit/phpunit": "^8.5.13"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10-dev"
+ }
+ },
"autoload": {
"psr-4": {
"Webmozart\\Assert\\": "src/"
@@ -5222,10 +5503,10 @@
"validate"
],
"support": {
- "issues": "https://github.com/webmozart/assert/issues",
- "source": "https://github.com/webmozart/assert/tree/master"
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.10.0"
},
- "time": "2020-07-08T17:02:28+00:00"
+ "time": "2021-03-09T10:59:23+00:00"
}
],
"aliases": [],
diff --git a/Milliner/src/Controller/MillinerController.php b/Milliner/src/Controller/MillinerController.php
index 14d2be03..f5babe21 100644
--- a/Milliner/src/Controller/MillinerController.php
+++ b/Milliner/src/Controller/MillinerController.php
@@ -50,6 +50,8 @@ public function saveNode($uuid, Request $request)
return new Response("Expected JSONLD url in Content-Location header", 400);
}
+ $this->log->debug("JSONLD URL: $jsonld_url");
+ $this->log->debug("FEDORA ENDPOINT: $islandora_fedora_endpoint");
try {
$response = $this->milliner->saveNode(
$uuid,
@@ -77,10 +79,12 @@ public function saveNode($uuid, Request $request)
public function deleteNode($uuid, Request $request)
{
$token = $request->headers->get("Authorization", null);
+ $islandora_fedora_endpoint = $request->headers->get("X-Islandora-Fedora-Endpoint");
try {
$response = $this->milliner->deleteNode(
$uuid,
+ $islandora_fedora_endpoint,
$token
);
@@ -104,6 +108,7 @@ public function saveMedia($source_field, Request $request)
{
$token = $request->headers->get("Authorization", null);
$json_url = $request->headers->get("Content-Location");
+ $islandora_fedora_endpoint = $request->headers->get("X-Islandora-Fedora-Endpoint");
if (empty($json_url)) {
return new Response("Expected JSON url in Content-Location header", 400);
@@ -113,6 +118,7 @@ public function saveMedia($source_field, Request $request)
$response = $this->milliner->saveMedia(
$source_field,
$json_url,
+ $islandora_fedora_endpoint,
$token
);
@@ -169,21 +175,18 @@ public function saveExternal($uuid, Request $request)
public function createNodeVersion($uuid, Request $request)
{
$token = $request->headers->get("Authorization", null);
+ $islandora_fedora_endpoint = $request->headers->get("X-Islandora-Fedora-Endpoint");
+
try {
- $urls = $this->milliner->getGeminiUrls($uuid, $token);
- if (!empty($urls)) {
- $fedora_url = $urls['fedora'];
- $response = $this->milliner->createVersion(
- $fedora_url,
- $token
- );
- return new Response(
- $response->getBody(),
- $response->getStatusCode()
- );
- } else {
- return new Response(404);
- }
+ $response = $this->milliner->createVersion(
+ $uuid,
+ $islandora_fedora_endpoint,
+ $token
+ );
+ return new Response(
+ $response->getBody(),
+ $response->getStatusCode()
+ );
} catch (\Exception $e) {
$this->log->error("", ['Exception' => $e]);
$code = $e->getCode() == 0 ? 500 : $e->getCode();
@@ -200,16 +203,13 @@ public function createMediaVersion($source_field, Request $request)
{
$token = $request->headers->get("Authorization", null);
$json_url = $request->headers->get("Content-Location");
+ $islandora_fedora_endpoint = $request->headers->get("X-Islandora-Fedora-Endpoint");
- if (empty($json_url)) {
- $this->log->error("json url is EMPTY");
- return new Response("Expected JSON url in Content-Location header", 400);
- }
try {
- $urls = $this->milliner->getFileFromMedia($source_field, $json_url, $token);
- $fedora_file_url = $urls['fedora'];
- $response = $this->milliner->createVersion(
- $fedora_file_url,
+ $response = $this->milliner->createMediaVersion(
+ $source_field,
+ $json_url,
+ $islandora_fedora_endpoint,
$token
);
return new Response(
diff --git a/Milliner/src/Service/MillinerService.php b/Milliner/src/Service/MillinerService.php
index 1de11fb1..58590a60 100644
--- a/Milliner/src/Service/MillinerService.php
+++ b/Milliner/src/Service/MillinerService.php
@@ -3,10 +3,11 @@
namespace Islandora\Milliner\Service;
use GuzzleHttp\Client;
+use GuzzleHttp\Exception\ClientException;
use GuzzleHttp\Psr7;
use GuzzleHttp\Psr7\Response;
use Islandora\Chullo\IFedoraApi;
-use Islandora\Crayfish\Commons\Client\GeminiClient;
+use Islandora\Crayfish\Commons\EntityMapper\EntityMapperInterface;
use Psr\Log\LoggerInterface;
use \DateTime;
@@ -26,9 +27,9 @@ class MillinerService implements MillinerServiceInterface
protected $drupal;
/**
- * @var \Islandora\Crayfish\Commons\Client\GeminiClient
+ * @var \Islandora\Crayfish\Commons\EntityMapper\EntityMapperInterface
*/
- protected $gemini;
+ protected $mapper;
/**
* @var \Psr\Log\LoggerInterface
@@ -45,12 +46,17 @@ class MillinerService implements MillinerServiceInterface
*/
protected $stripFormatJsonld;
+ /**
+ * @var bool
+ */
+ protected $fedora6;
+
/**
* MillinerService constructor.
*
* @param \Islandora\Chullo\IFedoraApi $fedora
* @param \GuzzleHttp\Client
- * @param \Islandora\Crayfish\Commons\Client\GeminiClient
+ * @param \Islandora\Crayfish\Commons\EntityMapper\EntityMapperInterface
* @param \Psr\Log\LoggerInterface $log
* @param string $modifiedDatePredicate
* @param string $stripFormatJsonld
@@ -58,17 +64,19 @@ class MillinerService implements MillinerServiceInterface
public function __construct(
IFedoraApi $fedora,
Client $drupal,
- GeminiClient $gemini,
+ EntityMapperInterface $mapper,
LoggerInterface $log,
$modifiedDatePredicate,
- $stripFormatJsonld
+ $stripFormatJsonld,
+ $fedora6
) {
$this->fedora = $fedora;
$this->drupal = $drupal;
- $this->gemini = $gemini;
+ $this->mapper = $mapper;
$this->log = $log;
$this->modifiedDatePredicate = $modifiedDatePredicate;
$this->stripFormatJsonld = $stripFormatJsonld;
+ $this->fedora6 = $fedora6;
}
/**
@@ -80,21 +88,23 @@ public function saveNode(
$islandora_fedora_endpoint,
$token = null
) {
- $urls = $this->gemini->getUrls($uuid, $token);
+ $path = $this->mapper->getFedoraPath($uuid);
+ $islandora_fedora_endpoint = rtrim($islandora_fedora_endpoint, "/");
+ $fedora_url = "$islandora_fedora_endpoint/$path";
- if (empty($urls)) {
+ $response = $this->fedora->getResourceHeaders($fedora_url);
+ if ($response->getStatusCode() == "404") {
+ $this->log->debug("GOT A 404");
return $this->createNode(
- $uuid,
- rtrim($jsonld_url, '?_format=jsonld'),
$jsonld_url,
- $islandora_fedora_endpoint,
+ $fedora_url,
$token
);
} else {
+ $this->log->debug("DID NOT GET 404");
return $this->updateNode(
- $urls['drupal'],
$jsonld_url,
- $urls['fedora'],
+ $fedora_url,
$token
);
}
@@ -103,10 +113,8 @@ public function saveNode(
/**
* Creates a new LDP-RS in Fedora from a Node.
*
- * @param string $uuid
- * @param string $entity_url
* @param string $jsonld_url
- * @param string $islandora_fedora_endpoint
+ * @param string $fedora_url
* @param string $token
*
* @return \GuzzleHttp\Psr7\Response
@@ -115,15 +123,10 @@ public function saveNode(
* @throws \GuzzleHttp\Exception\RequestException
*/
protected function createNode(
- $uuid,
- $entity_url,
$jsonld_url,
- $islandora_fedora_endpoint,
+ $fedora_url,
$token = null
) {
- // Mint a new Fedora URL.
- $fedora_url = $this->gemini->mintFedoraUrl($uuid, $token, $islandora_fedora_endpoint);
-
// Get the jsonld from Drupal.
$headers = empty($token) ? [] : ['Authorization' => $token];
$drupal_response = $this->drupal->get(
@@ -136,7 +139,7 @@ protected function createNode(
true
);
- $subject_url = $this->stripFormatJsonld ? $entity_url : $jsonld_url;
+ $subject_url = $this->stripFormatJsonld ? rtrim($jsonld_url, '?_format=jsonld') : $jsonld_url;
// Mash it into the shape Fedora accepts.
$jsonld = $this->processJsonld(
@@ -148,6 +151,8 @@ protected function createNode(
// Save it in Fedora.
$headers['Content-Type'] = 'application/ld+json';
$headers['Prefer'] = 'return=minimal; handling=lenient';
+ $this->log->debug("HEADERS " . json_encode($headers));
+ $this->log->debug("FEDORA URL " . $fedora_url);
$response = $this->fedora->saveResource(
$fedora_url,
json_encode($jsonld),
@@ -163,14 +168,6 @@ protected function createNode(
);
}
- // Map the URLS.
- $this->gemini->saveUrls(
- $uuid,
- $subject_url,
- $fedora_url,
- $token
- );
-
// Return the response from Fedora.
return $response;
}
@@ -178,7 +175,6 @@ protected function createNode(
/**
* Updates an existing LDP-RS in Fedora from a Node.
*
- * @param string $entity_url
* @param string $jsonld_url
* @param string $fedora_url
* @param string $token
@@ -189,15 +185,17 @@ protected function createNode(
* @throws \GuzzleHttp\Exception\RequestException
*/
protected function updateNode(
- $entity_url,
$jsonld_url,
$fedora_url,
$token = null
) {
-
// Get the RDF from Fedora.
$headers = empty($token) ? [] : ['Authorization' => $token];
$headers['Accept'] = 'application/ld+json';
+ if ($this->fedora6) {
+ $prefer = 'return=representation; omit="http://fedora.info/definitions/v4/repository#ServerManaged"';
+ $headers['Prefer'] = $prefer;
+ }
$fedora_response = $this->fedora->getResource(
$fedora_url,
$headers
@@ -214,8 +212,10 @@ protected function updateNode(
}
// Strip off the W/ prefix to make the ETag strong.
- $etags = $fedora_response->getHeader("ETag");
- $etag = ltrim(reset($etags), "W/");
+ $state_tokens = $fedora_response->getHeader("X-State-Token");
+ $state_token = '"' . ltrim(reset($state_tokens)) . '"';
+
+ $this->log->debug("FEDORA State Token: $state_token");
// Get the modified date from the RDF.
$fedora_jsonld = json_decode(
@@ -245,7 +245,10 @@ protected function updateNode(
);
// Mash it into the shape Fedora accepts.
- $subject_url = $this->stripFormatJsonld ? $entity_url : $jsonld_url;
+ $subject_url = $this->getLinkHeader($drupal_response, "describes");
+ if (empty($subject_url)) {
+ $subject_url = $this->stripFormatJsonld ? rtrim($jsonld_url, '?_format=jsonld') : $jsonld_url;
+ }
$drupal_jsonld = $this->processJsonld(
$drupal_jsonld,
$subject_url,
@@ -267,8 +270,11 @@ protected function updateNode(
// Conditionally save it in Fedora.
$headers['Content-Type'] = 'application/ld+json';
- $headers['Prefer'] = 'return=minimal; handling=lenient';
- $headers['If-Match'] = $etag;
+ $headers['Prefer'] = 'handling=lenient';
+ if (!$this->fedora6) {
+ $headers['Prefer'] .= ';received=minimal';
+ }
+ $headers['X-If-State-Match'] = $state_token;
$response = $this->fedora->saveResource(
$fedora_url,
json_encode($drupal_jsonld),
@@ -299,17 +305,27 @@ protected function updateNode(
*/
protected function processJsonld(array $jsonld, $drupal_url, $fedora_url)
{
+ $this->log->debug("DRUPAL URL: $drupal_url");
+ $this->log->debug("FEDORA URL: $fedora_url");
+ $this->log->debug("BEFORE: " . json_encode($jsonld));
// Strip out everything other than the resource in question.
+ // Ignore http/https.
+ $parts = parse_url($drupal_url);
+ $subject_url = $parts['host'] . $parts['path'];
$resource = array_filter(
$jsonld['@graph'],
- function (array $elem) use ($drupal_url) {
- return $elem['@id'] == $drupal_url;
+ function (array $elem) use ($subject_url) {
+ $parts = parse_url($elem['@id']);
+ $other_url = $parts['host'] . $parts['path'];
+ return $other_url == $subject_url;
}
);
// Put in an fedora url for the resource.
$resource[0]['@id'] = $fedora_url;
+
+ $this->log->debug("AFTER: " . json_encode($resource));
return $resource;
}
@@ -374,43 +390,13 @@ protected function getModifiedTimestamp(array $jsonld)
public function saveMedia(
$source_field,
$json_url,
+ $islandora_fedora_endpoint,
$token = null
) {
- $headers = empty($token) ? [] : ['Authorization' => $token];
- $urls = $this->getFileFromMedia($source_field, $json_url, $token);
- $fedora_file_url = $urls['fedora'];
- $jsonld_url = $urls['jsonld'];
-
- // Now look for the 'describedby' link header on the file in Fedora.
- // I'm using the drupal http client because I have the full
- // URI and need to squash redirects in case of external content.
- $fedora_response = $this->drupal->head(
- $fedora_file_url,
- ['allow_redirects' => false, 'headers' => $headers]
- );
- $status = $fedora_response->getStatusCode();
-
- if ($status != 200 && $status != 307) {
- $reason = $fedora_response->getReasonPhrase();
- throw new \RuntimeException(
- "Client error: `HEAD $fedora_file_url` resulted in a `$status $reason` response: " .
- $fedora_response->getBody(),
- $status
- );
- }
-
- $fedora_url = $this->getLinkHeader($fedora_response, "describedby");
- if (empty($fedora_url)) {
- throw new \RuntimeException(
- "Cannot parse 'describedby' link header from response to `HEAD $fedora_file_url`",
- 500
- );
- }
-
+ $urls = $this->getMediaUrls($source_field, $json_url, $islandora_fedora_endpoint, $token);
return $this->updateNode(
- $urls['drupal'],
- $jsonld_url,
- $fedora_url,
+ $urls['jsonld'],
+ $urls['fedora'],
$token
);
}
@@ -441,36 +427,30 @@ protected function getLinkHeader($response, $rel_name, $type = null)
*/
public function deleteNode(
$uuid,
+ $islandora_fedora_endpoint,
$token = null
) {
- $urls = $this->gemini->getUrls($uuid, $token);
-
- if (!empty($urls)) {
- $fedora_url = $urls['fedora'];
- $headers = empty($token) ? [] : ['Authorization' => $token];
- $response = $this->fedora->deleteResource(
- $fedora_url,
- $headers
- );
-
- $status = $response->getStatusCode();
- if (!in_array($status, [204, 410, 404])) {
- $reason = $response->getReasonPhrase();
- throw new \RuntimeException(
- "Client error: `DELETE $fedora_url` resulted in a `$status $reason` response: " .
- $response->getBody(),
- $status
- );
- }
- }
+ $path = $this->mapper->getFedoraPath($uuid);
+ $islandora_fedora_endpoint = rtrim($islandora_fedora_endpoint, "/");
+ $fedora_url = "$islandora_fedora_endpoint/$path";
- $gemini_success = $this->gemini->deleteUrls($uuid, $token);
+ $headers = empty($token) ? [] : ['Authorization' => $token];
+ $response = $this->fedora->deleteResource(
+ $fedora_url,
+ $headers
+ );
- if ($gemini_success) {
- return new Response(204);
+ $status = $response->getStatusCode();
+ if (!in_array($status, [204, 410, 404])) {
+ $reason = $response->getReasonPhrase();
+ throw new \RuntimeException(
+ "Client error: `DELETE $fedora_url` resulted in a `$status $reason` response: " .
+ $response->getBody(),
+ $status
+ );
}
- return new Response(isset($status) ? $status : 404);
+ return new Response($status);
}
/**
@@ -482,14 +462,25 @@ public function saveExternal(
$islandora_fedora_endpoint,
$token = null
) {
- // Mint a new Fedora URL.
- $fedora_url = $this->gemini->mintFedoraUrl($uuid, $token, $islandora_fedora_endpoint);
+ $path = $this->mapper->getFedoraPath($uuid);
+ $islandora_fedora_endpoint = rtrim($islandora_fedora_endpoint, "/");
+ $fedora_url = "$islandora_fedora_endpoint/$path";
$headers = empty($token) ? [] : ['Authorization' => $token];
- $mimetype = $this->drupal->head(
- $external_url,
- ['headers' => $headers]
- )->getHeader('Content-Type')[0];
+ // Try it with an without auth b/c files can be public or private.
+ try {
+ $drupal_response = $this->drupal->head(
+ $external_url,
+ ['headers' => $headers]
+ );
+ } catch (ClientException $e) {
+ $this->log->debug("GOT {$e->getCode()}, TRYING WIHTOUT AUTH HEADER");
+ $drupal_response = $this->drupal->head(
+ $external_url,
+ ['headers' => []]
+ );
+ }
+ $mimetype = $drupal_response->getHeader('Content-Type')[0];
// Save it in Fedora as external content.
$external_rel = "http://fedora.info/definitions/fcrepo#ExternalContent";
@@ -510,26 +501,22 @@ public function saveExternal(
);
}
- // Map the URLS.
- $this->gemini->saveUrls(
- $uuid,
- $external_url,
- $fedora_url,
- $token
- );
-
// Return the response from Fedora.
return $response;
}
/**
- * Creates a new LDP-RS in Fedora from a Node.
* {@inheritDoc}
*/
public function createVersion(
- $fedora_url,
+ $uuid,
+ $islandora_fedora_endpoint,
$token = null
) {
+ $path = $this->mapper->getFedoraPath($uuid);
+ $islandora_fedora_endpoint = rtrim($islandora_fedora_endpoint, "/");
+ $fedora_url = "$islandora_fedora_endpoint/$path";
+
$headers = empty($token) ? [] : ['Authorization' => $token];
$date = new DateTime();
$timestamp = $date->format("D, d M Y H:i:s O");
@@ -560,12 +547,44 @@ public function createVersion(
/**
* {@inheritDoc}
*/
- public function getFileFromMedia(
+ public function createMediaVersion(
$source_field,
$json_url,
+ $islandora_fedora_endpoint,
$token = null
) {
- // First get the media json from Drupal.
+ $urls = $this->getMediaUrls($source_field, $json_url, $islandora_fedora_endpoint, $token);
+ $fedora_url = $urls['fedora'];
+
+ $date = new DateTime();
+ $timestamp = $date->format("D, d M Y H:i:s O");
+ // create version in Fedora.
+ try {
+ $response = $this->fedora->createVersion(
+ $fedora_url,
+ $timestamp,
+ null,
+ $headers
+ );
+ $status = $response->getStatusCode();
+ if (!in_array($status, [201])) {
+ $reason = $response->getReasonPhrase();
+ throw new \RuntimeException(
+ "Client error: `POST $fedora_url` resulted in `$status $reason` response: " .
+ $response->getBody(),
+ $status
+ );
+ }
+ // Return the response from Fedora.
+ return $response;
+ } catch (Exception $e) {
+ $this->log->error('Caught exception when creating version: ', $e->getMessage(), "\n");
+ }
+ }
+
+ protected function getMediaUrls($source_field, $json_url, $islandora_fedora_endpoint, $token = null)
+ {
+ // GET request for link headers and file UUID.
$headers = empty($token) ? [] : ['Authorization' => $token];
$drupal_response = $this->drupal->get(
$json_url,
@@ -573,6 +592,21 @@ public function getFileFromMedia(
);
$jsonld_url = $this->getLinkHeader($drupal_response, "alternate", "application/ld+json");
+ if (empty($jsonld_url)) {
+ throw new \RuntimeException(
+ "Cannot parse 'alternate' link header from response to `HEAD $json_url`",
+ 500
+ );
+ }
+
+ $drupal_url = $this->getLinkHeader($drupal_response, "describes");
+ if (empty($drupal_url)) {
+ throw new \RuntimeException(
+ "Cannot parse 'describes' link header from response to `HEAD $json_url`",
+ 500
+ );
+ }
+
$media_json = json_decode(
$drupal_response->getBody(),
true
@@ -586,26 +620,43 @@ public function getFileFromMedia(
}
$file_uuid = $media_json[$source_field][0]['target_uuid'];
- // Get the file's LDP-NR counterpart in Fedora.
- $urls = $this->gemini->getUrls($file_uuid, $token);
- if (empty($urls)) {
- $file_url = $media_json[$source_field][0]['url'];
+ // Construct the fedora url.
+ // Try to handle flysystem files first.
+ $islandora_fedora_endpoint = rtrim($islandora_fedora_endpoint, "/");
+ $pieces = explode("_flysystem/fedora/", $drupal_url);
+ if (count($pieces) > 1) {
+ $fedora_file_path = end($pieces);
+ } else {
+ $fedora_file_path = $this->mapper->getFedoraPath($file_uuid);
+ }
+ $fedora_file_url = "$islandora_fedora_endpoint/$fedora_file_path";
+
+ // Now look for the 'describedby' link header on the file in Fedora.
+ // I'm using the drupal http client because I have the full
+ // URI and need to squash redirects in case of external content.
+ $fedora_response = $this->drupal->head(
+ $fedora_file_url,
+ ['allow_redirects' => false, 'headers' => $headers]
+ );
+ $status = $fedora_response->getStatusCode();
+
+ if ($status != 200 && $status != 307) {
+ $reason = $fedora_response->getReasonPhrase();
throw new \RuntimeException(
- "$file_url has not been mapped in Gemini with uuid $file_uuid",
- 404
+ "Client error: `HEAD $fedora_file_url` resulted in a `$status $reason` response: " .
+ $fedora_response->getBody(),
+ $status
);
}
- return ['fedora'=>$urls['fedora'], 'jsonld' =>$jsonld_url, 'drupal'=>$urls['drupal']];
- }
- /**
- * {@inheritDoc}
- */
- public function getGeminiUrls(
- $uuid,
- $token = null
- ) {
- $urls = $this->gemini->getUrls($uuid, $token);
- return $urls;
+ $fedora_url = $this->getLinkHeader($fedora_response, "describedby");
+ if (empty($fedora_url)) {
+ throw new \RuntimeException(
+ "Cannot parse 'describedby' link header from response to `HEAD $fedora_file_url`",
+ 500
+ );
+ }
+
+ return ['drupal' => $drupal_url, 'fedora' => $fedora_url, 'jsonld' => $jsonld_url];
}
}
diff --git a/Milliner/src/Service/MillinerServiceInterface.php b/Milliner/src/Service/MillinerServiceInterface.php
index 403eb083..a02b405f 100644
--- a/Milliner/src/Service/MillinerServiceInterface.php
+++ b/Milliner/src/Service/MillinerServiceInterface.php
@@ -26,8 +26,9 @@ public function saveNode(
);
/**
+ * @param $source_field
* @param $json_url
- * @param $jsonld_url
+ * @param $islandora_fedora_endpoint
* @param $token
*
* @throws \Exception
@@ -37,11 +38,13 @@ public function saveNode(
public function saveMedia(
$source_field,
$json_url,
+ $islandora_fedora_endpoint,
$token = null
);
/**
* @param $uuid
+ * @param $islandora_fedora_endpoint
* @param $token
*
* @throws \Exception
@@ -50,6 +53,7 @@ public function saveMedia(
*/
public function deleteNode(
$uuid,
+ $islandora_fedora_endpoint,
$token = null
);
@@ -71,7 +75,8 @@ public function saveExternal(
);
/**
- * @param $fedora_url
+ * @param $uuid
+ * @param $islandora_fedora_endpoint
* @param $token
*
* @throws \Exception
@@ -79,35 +84,25 @@ public function saveExternal(
* @return \GuzzleHttp\Psr7\Response
*/
public function createVersion(
- $fedora_url,
+ $uuid,
+ $islandora_fedora_endpoint,
$token = null
);
/**
+ * @param $source_field
* @param $json_url
- * @param $jsonld_url
+ * @param $islandora_fedora_endpoint
* @param $token
*
* @throws \Exception
*
* @return array
*/
- public function getFileFromMedia(
+ public function createMediaVersion(
$source_field,
$json_url,
- $token = null
- );
-
- /**
- * @param $uuid
- * @param $token
- *
- * @throws \Exception
- *
- * @return array
- */
- public function getGeminiUrls(
- $uuid,
+ $islandora_fedora_endpoint,
$token = null
);
}
diff --git a/Milliner/src/app.php b/Milliner/src/app.php
index ca7c4550..b0a138ae 100644
--- a/Milliner/src/app.php
+++ b/Milliner/src/app.php
@@ -4,9 +4,9 @@
use GuzzleHttp\Client;
use Islandora\Chullo\FedoraApi;
+use Islandora\Crayfish\Commons\EntityMapper\EntityMapper;
use Islandora\Crayfish\Commons\Provider\IslandoraServiceProvider;
use Islandora\Crayfish\Commons\Provider\YamlConfigServiceProvider;
-use Islandora\Crayfish\Commons\Client\GeminiClient;
use Islandora\Milliner\Controller\MillinerController;
use Islandora\Milliner\Service\MillinerService;
use Pimple\Exception\UnknownIdentifierException;
@@ -29,17 +29,24 @@
$strip_format_jsonld = false;
}
+ try {
+ $fedora6 = filter_var(
+ $app['crayfish.fedora6'],
+ FILTER_VALIDATE_BOOLEAN
+ );
+ } catch (UnknownIdentifierException $e) {
+ $fedora6 = false;
+ }
+
return new MillinerController(
new MillinerService(
FedoraApi::create($app['crayfish.fedora_base_url']),
new Client(),
- GeminiClient::create(
- $app['crayfish.gemini_base_url'],
- $app['monolog']
- ),
+ new EntityMapper(),
$app['monolog'],
$app['crayfish.modified_date_predicate'],
- $strip_format_jsonld
+ $strip_format_jsonld,
+ $fedora6
),
$app['monolog']
);
diff --git a/Milliner/static/Media.jsonld b/Milliner/static/Media.jsonld
index 6cd98535..76ee6194 100644
--- a/Milliner/static/Media.jsonld
+++ b/Milliner/static/Media.jsonld
@@ -1,7 +1,7 @@
{
"@graph":[
{
- "@id":"http:\/\/localhost:8000\/media\/6?_format=jsonld",
+ "@id":"http:\/\/localhost:8000\/media\/6",
"@type":[
"http:\/\/pcdm.org\/use#ServiceFile"
],
@@ -56,4 +56,4 @@
"value":"http:\/\/localhost:8000\/sites\/default\/files\/2017-07\/sample_0.jpeg"
}
]
-}
\ No newline at end of file
+}
diff --git a/Milliner/tests.patch b/Milliner/tests.patch
new file mode 100644
index 00000000..52a5c59f
--- /dev/null
+++ b/Milliner/tests.patch
@@ -0,0 +1,43 @@
+diff --git a/Milliner/tests/Islandora/Milliner/Tests/MillinerControllerTest.php b/Milliner/tests/Islandora/Milliner/Tests/MillinerControllerTest.php
+index 09b9e74..e28e5f9 100644
+--- a/Milliner/tests/Islandora/Milliner/Tests/MillinerControllerTest.php
++++ b/Milliner/tests/Islandora/Milliner/Tests/MillinerControllerTest.php
+@@ -48,12 +48,16 @@ class MillinerControllerTest extends TestCase
+ $milliner = $this->prophesize(MillinerServiceInterface::class);
+ $milliner->saveNode(Argument::any(), Argument::any(), Argument::any(), Argument::any())
+ ->willThrow(new \Exception("Forbidden", 403));
++ $milliner->getFileFromMedia(Argument::any(), Argument::any(), Argument::any())
++ ->willThrow(new \Exception("Forbidden", 403));
+ $milliner->saveMedia(Argument::any(), Argument::any(), Argument::any())
+ ->willThrow(new \Exception("Forbidden", 403));
+ $milliner->deleteNode(Argument::any(), Argument::any())
+ ->willThrow(new \Exception("Forbidden", 403));
+ $milliner->saveExternal(Argument::any(), Argument::any(), Argument::any(), Argument::any())
+ ->willThrow(new \Exception("Forbidden", 403));
++ $milliner->getGeminiUrls(Argument::any(), Argument::any())
++ ->willThrow(new \Exception("Forbidden", 403));
+ $milliner->createVersion(Argument::any(), Argument::any())
+ ->willThrow(new \Exception("Forbidden", 403));
+ $milliner = $milliner->reveal();
+@@ -473,7 +477,9 @@ class MillinerControllerTest extends TestCase
+ public function testCreateNodeVersionReturnsSuccessOnSuccess()
+ {
+ $milliner = $this->prophesize(MillinerServiceInterface::class);
+- $milliner->createVersion(Argument::any(), Argument::any(), Argument::any(), Argument::any())
++ $milliner->getGeminiUrls(Argument::any(), Argument::any())
++ ->willReturn(['fedora' => "http://example.org/fcrepo/abc123", "drupal" => "http://example.org/node/1"]);
++ $milliner->createVersion(Argument::any(), Argument::any())
+ ->willReturn(new Response(201));
+ $milliner = $milliner->reveal();
+ $controller = new MillinerController($milliner, $this->logger);
+@@ -499,7 +505,9 @@ class MillinerControllerTest extends TestCase
+ );
+
+ $milliner = $this->prophesize(MillinerServiceInterface::class);
+- $milliner->createVersion(Argument::any(), Argument::any(), Argument::any(), Argument::any())
++ $milliner->getGeminiUrls(Argument::any(), Argument::any())
++ ->willReturn(['fedora' => "http://example.org/fcrepo/abc123", "drupal" => "http://example.org/node/1"]);
++ $milliner->createVersion(Argument::any(), Argument::any())
+ ->willReturn(new Response(204));
+ $milliner = $milliner->reveal();
+ $controller = new MillinerController($milliner, $this->logger);
diff --git a/Milliner/tests/Islandora/Milliner/Tests/CreateVersionTest.php b/Milliner/tests/Islandora/Milliner/Tests/CreateVersionTest.php
index d81a1419..cca0e91c 100644
--- a/Milliner/tests/Islandora/Milliner/Tests/CreateVersionTest.php
+++ b/Milliner/tests/Islandora/Milliner/Tests/CreateVersionTest.php
@@ -7,12 +7,13 @@
use GuzzleHttp\Psr7\Request;
use GuzzleHttp\Exception\RequestException;
use Islandora\Chullo\IFedoraApi;
-use Islandora\Crayfish\Commons\Client\GeminiClient;
+use Islandora\Crayfish\Commons\EntityMapper\EntityMapperInterface;
use Islandora\Milliner\Service\MillinerService;
use Monolog\Handler\NullHandler;
use Monolog\Logger;
use PHPUnit\Framework\TestCase;
use Prophecy\Argument;
+use Prophecy\PhpUnit\ProphecyTrait;
/**
* Class MillinerServiceTest
@@ -21,6 +22,8 @@
*/
class CreateVersionTest extends TestCase
{
+ use ProphecyTrait;
+
/**
* @var LoggerInterface
*/
@@ -31,6 +34,26 @@ class CreateVersionTest extends TestCase
*/
protected $modifiedDatePredicate;
+ /**
+ * @var string
+ */
+ protected $uuid;
+
+ /**
+ * @var string
+ */
+ protected $fedoraBaseUrl;
+
+ /**
+ * @var Islandora\Crayfish\Commons\EntityMapper\EntityMapper
+ */
+ protected $mapper;
+
+ /**
+ * @var Islandora\Crayfish\Commons\EntityMapper\EntityMapper
+ */
+ protected $drupal;
+
/**
* {@inheritdoc}
*/
@@ -42,6 +65,17 @@ protected function setUp(): void
$this->logger->pushHandler(new NullHandler());
$this->modifiedDatePredicate = "http://schema.org/dateModified";
+
+ $this->uuid = '9541c0c1-5bee-4973-a9d0-e55c1658bc8';
+ $this->fedoraBaseUrl = 'http://localhost:8080/fcrepo/rest';
+
+ $this->mapper = $this->prophesize(EntityMapperInterface::class);
+ $this->mapper->getFedoraPath($this->uuid)
+ ->willReturn("{$this->fedoraBaseUrl}/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8");
+ $this->mapper = $this->mapper->reveal();
+
+ $this->drupal = $this->prophesize(Client::class);
+ $this->drupal = $this->drupal->reveal();
}
@@ -51,27 +85,6 @@ protected function setUp(): void
*/
public function testCreateVersionReturnsFedora201()
{
- $mapping = [
- 'drupal' => '"http://localhost:8000/node/1?_format=jsonld"',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8'
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini->saveUrls(Argument::any(), Argument::any(), Argument::any(), Argument::any())
- ->willReturn(true);
- $gemini = $gemini->reveal();
-
- $drupal_response = new Response(
- 200,
- ['Content-Type' => 'application/ld+json'],
- file_get_contents(__DIR__ . '/../../../../static/Content.jsonld')
- );
- $drupal = $this->prophesize(Client::class);
- $drupal->get(Argument::any(), Argument::any())
- ->willReturn($drupal_response);
- $drupal = $drupal->reveal();
-
$fedora_response = new Response(201);
$fedora = $this->prophesize(IFedoraApi::class);
$fedora->createVersion(Argument::any(), Argument::any(), Argument::any(), Argument::any())
@@ -80,15 +93,17 @@ public function testCreateVersionReturnsFedora201()
$milliner = new MillinerService(
$fedora,
- $drupal,
- $gemini,
+ $this->drupal,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$response = $milliner->createVersion(
- $mapping['fedora'],
+ $this->uuid,
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
@@ -106,27 +121,6 @@ public function testCreateVersionReturnsFedora201()
public function testCreateVersionReturnsFedora404()
{
- $mapping = [
- 'drupal' => '"http://localhost:8000/node/1?_format=jsonld"',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-9998'
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini->saveUrls(Argument::any(), Argument::any(), Argument::any(), Argument::any())
- ->willReturn(true);
- $gemini = $gemini->reveal();
-
- $drupal_response = new Response(
- 200,
- ['Content-Type' => 'application/ld+json'],
- file_get_contents(__DIR__ . '/../../../../static/Content.jsonld')
- );
- $drupal = $this->prophesize(Client::class);
- $drupal->get(Argument::any(), Argument::any())
- ->willReturn($drupal_response);
- $drupal = $drupal->reveal();
-
$fedora_response = new Response(404);
$fedora = $this->prophesize(IFedoraApi::class);
$fedora->createVersion(Argument::any(), Argument::any(), Argument::any(), Argument::any())
@@ -137,15 +131,17 @@ public function testCreateVersionReturnsFedora404()
$milliner = new MillinerService(
$fedora,
- $drupal,
- $gemini,
+ $this->drupal,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$response = $milliner->createVersion(
- $mapping['fedora'],
+ $this->uuid,
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
@@ -163,25 +159,6 @@ public function testCreateVersionReturnsFedora404()
*/
public function testcreateVersionThrowsOnFedoraSaveError()
{
- $mapping = [
- 'drupal' => '"http://localhost:8000/node/1?_format=jsonld"',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8'
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini = $gemini->reveal();
-
- $drupal_response = new Response(
- 200,
- ['Content-Type' => 'application/ld+json'],
- file_get_contents(__DIR__ . '/../../../../static/Content.jsonld')
- );
- $drupal = $this->prophesize(Client::class);
- $drupal->get(Argument::any(), Argument::any())
- ->willReturn($drupal_response);
- $drupal = $drupal->reveal();
-
$fedora_get_response = new Response(
200,
['Content-Type' => 'application/ld+json'],
@@ -197,15 +174,17 @@ public function testcreateVersionThrowsOnFedoraSaveError()
$milliner = new MillinerService(
$fedora,
- $drupal,
- $gemini,
+ $this->drupal,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$response = $milliner->createVersion(
- $mapping['fedora'],
+ $this->uuid,
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
diff --git a/Milliner/tests/Islandora/Milliner/Tests/DeleteTest.php b/Milliner/tests/Islandora/Milliner/Tests/DeleteTest.php
index e42b12ff..08152451 100644
--- a/Milliner/tests/Islandora/Milliner/Tests/DeleteTest.php
+++ b/Milliner/tests/Islandora/Milliner/Tests/DeleteTest.php
@@ -5,13 +5,14 @@
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Response;
use Islandora\Chullo\IFedoraApi;
-use Islandora\Crayfish\Commons\Client\GeminiClient;
+use Islandora\Crayfish\Commons\EntityMapper\EntityMapperInterface;
use Islandora\Milliner\Service\MillinerService;
use Monolog\Handler\NullHandler;
use Monolog\Logger;
use Prophecy\Argument;
use Psr\Log\LoggerInterface;
use PHPUnit\Framework\TestCase;
+use Prophecy\PhpUnit\ProphecyTrait;
/**
* Class MillinerServiceTest
@@ -20,6 +21,8 @@
*/
class DeleteTest extends TestCase
{
+ use ProphecyTrait;
+
/**
* @var LoggerInterface
*/
@@ -30,6 +33,26 @@ class DeleteTest extends TestCase
*/
protected $modifiedDatePredicate;
+ /**
+ * @var string
+ */
+ protected $uuid;
+
+ /**
+ * @var string
+ */
+ protected $fedoraBaseUrl;
+
+ /**
+ * @var Islandora\Crayfish\Commons\EntityMapper\EntityMapper
+ */
+ protected $mapper;
+
+ /**
+ * @var Islandora\Crayfish\Commons\EntityMapper\EntityMapper
+ */
+ protected $drupal;
+
/**
* {@inheritdoc}
*/
@@ -41,154 +64,115 @@ protected function setUp(): void
$this->logger->pushHandler(new NullHandler());
$this->modifiedDatePredicate = "http://schema.org/dateModified";
+
+ $this->uuid = '9541c0c1-5bee-4973-a9d0-e55c1658bc8';
+ $this->fedoraBaseUrl = 'http://localhost:8080/fcrepo/rest';
+
+ $this->mapper = $this->prophesize(EntityMapperInterface::class);
+ $this->mapper->getFedoraPath($this->uuid)
+ ->willReturn("{$this->fedoraBaseUrl}/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8");
+ $this->mapper = $this->mapper->reveal();
+
+ $this->drupal = $this->prophesize(Client::class);
+ $this->drupal = $this->drupal->reveal();
}
/**
* @covers ::__construct
* @covers ::deleteNode
*/
- public function testDeleteReturnsFedoraError()
+ public function testDeleteThrowsFedoraError()
{
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn(['drupal' => 'foo', 'fedora' => 'bar']);
- $gemini = $gemini->reveal();
-
$fedora = $this->prophesize(IFedoraApi::class);
$fedora->deleteResource(Argument::any(), Argument::any())
->willReturn(new Response(403));
$fedora = $fedora->reveal();
- $drupal = $this->prophesize(Client::class)->reveal();
-
$milliner = new MillinerService(
$fedora,
- $drupal,
- $gemini,
+ $this->drupal,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$this->expectException(\RuntimeException::class, null, 403);
- $milliner->deleteNode("abc123", "Bearer islandora");
+ $milliner->deleteNode($this->uuid, $this->fedoraBaseUrl, "Bearer islandora");
}
/**
* @covers ::__construct
* @covers ::deleteNode
*/
- public function testDeleteReturns204OnGeminiSuccess()
+ public function testDeleteReturnsFedoraResult()
{
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls("first", Argument::any())
- ->willReturn(['drupal' => 'foo', 'fedora' => 'bar']);
- $gemini->getUrls("second", Argument::any())
- ->willReturn([]);
- $gemini->deleteUrls(Argument::any(), Argument::any())
- ->willReturn(true);
- $gemini = $gemini->reveal();
-
$fedora = $this->prophesize(IFedoraApi::class);
$fedora->deleteResource(Argument::any(), Argument::any())
- ->willReturn(new Response(404));
+ ->willReturn(new Response(204));
$fedora = $fedora->reveal();
- $drupal = $this->prophesize(Client::class)->reveal();
-
$milliner = new MillinerService(
$fedora,
- $drupal,
- $gemini,
+ $this->drupal,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
- $response = $milliner->deleteNode("first", "Bearer islandora");
- $status = $response->getStatusCode();
- $this->assertTrue(
- $status == 204,
- "Milliner must return 204 when Gemini returns success. Received: $status"
- );
-
- $response = $milliner->deleteNode("second", "Bearer islandora");
+ $response = $milliner->deleteNode($this->uuid, $this->fedoraBaseUrl, "Bearer islandora");
$status = $response->getStatusCode();
$this->assertTrue(
$status == 204,
- "Milliner must return 204 when Gemini returns success. Received: $status"
+ "Milliner must return 204 when Fedora returns 204. Received: $status"
);
- }
-
- /**
- * @covers ::__construct
- * @covers ::deleteNode
- */
- public function testDeleteReturns404IfNotMappedAndGeminiFails()
- {
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn([]);
- $gemini->deleteUrls(Argument::any(), Argument::any())
- ->willReturn(false);
- $gemini = $gemini->reveal();
-
- $fedora = $this->prophesize(IFedoraApi::class)->reveal();
- $drupal = $this->prophesize(Client::class)->reveal();
+ $fedora = $this->prophesize(IFedoraApi::class);
+ $fedora->deleteResource(Argument::any(), Argument::any())
+ ->willReturn(new Response(404));
+ $fedora = $fedora->reveal();
$milliner = new MillinerService(
$fedora,
- $drupal,
- $gemini,
+ $this->drupal,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
- $response = $milliner->deleteNode("abc123", "Bearer islandora");
+ $response = $milliner->deleteNode($this->uuid, $this->fedoraBaseUrl, "Bearer islandora");
$status = $response->getStatusCode();
$this->assertTrue(
$status == 404,
- "Milliner must return 404 when Gemini returns fail and resource was not mapped. Received: $status"
+ "Milliner must return 404 when Fedora returns 404. Received: $status"
);
- }
-
- /**
- * @covers ::__construct
- * @covers ::deleteNode
- */
- public function testDeleteReturnsFedoraErrorIfMappedButGeminiFails()
- {
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn(['drupal' => 'foo', 'fedora' => 'bar']);
- $gemini->deleteUrls(Argument::any(), Argument::any())
- ->willReturn(false);
- $gemini = $gemini->reveal();
$fedora = $this->prophesize(IFedoraApi::class);
$fedora->deleteResource(Argument::any(), Argument::any())
->willReturn(new Response(410));
$fedora = $fedora->reveal();
- $drupal = $this->prophesize(Client::class)->reveal();
-
$milliner = new MillinerService(
$fedora,
- $drupal,
- $gemini,
+ $this->drupal,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
- $response = $milliner->deleteNode("abc123", "Bearer islandora");
+ $response = $milliner->deleteNode($this->uuid, $this->fedoraBaseUrl, "Bearer islandora");
$status = $response->getStatusCode();
$this->assertTrue(
$status == 410,
- "Milliner must return Fedora response when mapped but Gemini fails. Expected 410, Received: $status"
+ "Milliner must return 410 when Fedora returns 410. Received: $status"
);
}
}
diff --git a/Milliner/tests/Islandora/Milliner/Tests/MillinerControllerTest.php b/Milliner/tests/Islandora/Milliner/Tests/MillinerControllerTest.php
index 2f749e1e..981b5e9f 100644
--- a/Milliner/tests/Islandora/Milliner/Tests/MillinerControllerTest.php
+++ b/Milliner/tests/Islandora/Milliner/Tests/MillinerControllerTest.php
@@ -7,6 +7,7 @@
use Monolog\Handler\NullHandler;
use Monolog\Logger;
use Prophecy\Argument;
+use Prophecy\PhpUnit\ProphecyTrait;
use Psr\Log\LoggerInterface;
use Symfony\Component\HttpFoundation\Request;
use GuzzleHttp\Psr7\Response;
@@ -19,6 +20,8 @@
*/
class MillinerControllerTest extends TestCase
{
+ use ProphecyTrait;
+
/**
* @var LoggerInterface
*/
@@ -48,24 +51,22 @@ public function testMethodsReturnMillinerErrors()
$milliner = $this->prophesize(MillinerServiceInterface::class);
$milliner->saveNode(Argument::any(), Argument::any(), Argument::any(), Argument::any())
->willThrow(new \Exception("Forbidden", 403));
- $milliner->getFileFromMedia(Argument::any(), Argument::any(), Argument::any())
- ->willThrow(new \Exception("Forbidden", 403));
- $milliner->saveMedia(Argument::any(), Argument::any(), Argument::any())
+ $milliner->saveMedia(Argument::any(), Argument::any(), Argument::any(), Argument::any())
->willThrow(new \Exception("Forbidden", 403));
- $milliner->deleteNode(Argument::any(), Argument::any())
+ $milliner->deleteNode(Argument::any(), Argument::any(), Argument::any())
->willThrow(new \Exception("Forbidden", 403));
$milliner->saveExternal(Argument::any(), Argument::any(), Argument::any(), Argument::any())
->willThrow(new \Exception("Forbidden", 403));
- $milliner->getGeminiUrls(Argument::any(), Argument::any())
+ $milliner->createVersion(Argument::any(), Argument::any(), Argument::any())
->willThrow(new \Exception("Forbidden", 403));
- $milliner->createVersion(Argument::any(), Argument::any())
+ $milliner->createMediaVersion(Argument::any(), Argument::any(), Argument::any(), Argument::any())
->willThrow(new \Exception("Forbidden", 403));
$milliner = $milliner->reveal();
$controller = new MillinerController($milliner, $this->logger);
// Route parameters.
- $uuid = 'abc123';
+ $uuid = '630e0c1d-1a38-4e3b-84f9-68d519bdc026';
$source_field = 'field_image';
// Nodes.
@@ -189,7 +190,7 @@ public function testSaveNodeReturns400WithoutContentLocation()
$milliner = $this->prophesize(MillinerServiceInterface::class)->reveal();
$controller = new MillinerController($milliner, $this->logger);
- $uuid = "abc123";
+ $uuid = '630e0c1d-1a38-4e3b-84f9-68d519bdc026';
$request = Request::create(
"http://localhost:8000/milliner/node/$uuid",
"POST",
@@ -246,7 +247,7 @@ public function testSaveExternalReturns400WithoutContentLocation()
$milliner = $this->prophesize(MillinerServiceInterface::class)->reveal();
$controller = new MillinerController($milliner, $this->logger);
- $uuid = "abc123";
+ $uuid = '630e0c1d-1a38-4e3b-84f9-68d519bdc026';
$request = Request::create(
"http://localhost:8000/milliner/external/$uuid",
"POST",
@@ -279,7 +280,7 @@ public function testSaveNodeReturnsSuccessOnSuccess()
$controller = new MillinerController($milliner, $this->logger);
// Nodes.
- $uuid = "abc123";
+ $uuid = '630e0c1d-1a38-4e3b-84f9-68d519bdc026';
$request = Request::create(
"http://localhost:8000/milliner/node/$uuid",
"POST",
@@ -332,7 +333,7 @@ public function testSaveNodeReturnsSuccessOnSuccess()
public function testSaveMediaReturnsSuccessOnSuccess()
{
$milliner = $this->prophesize(MillinerServiceInterface::class);
- $milliner->saveMedia(Argument::any(), Argument::any(), Argument::any())
+ $milliner->saveMedia(Argument::any(), Argument::any(), Argument::any(), Argument::any())
->willReturn(new Response(201));
$milliner = $milliner->reveal();
$controller = new MillinerController($milliner, $this->logger);
@@ -346,6 +347,7 @@ public function testSaveMediaReturnsSuccessOnSuccess()
[],
[
'HTTP_AUTHORIZATION' => 'Bearer islandora',
+ 'X-Islandora-Fedora-Endpoint' => 'http://localhost:8080/fcrepo/rest/',
'HTTP_CONTENT_LOCATION' => 'http://localhost:8000/media/6?_format=json',
]
);
@@ -357,7 +359,7 @@ public function testSaveMediaReturnsSuccessOnSuccess()
);
$milliner = $this->prophesize(MillinerServiceInterface::class);
- $milliner->saveMedia(Argument::any(), Argument::any(), Argument::any())
+ $milliner->saveMedia(Argument::any(), Argument::any(), Argument::any(), Argument::any())
->willReturn(new Response(204));
$milliner = $milliner->reveal();
$controller = new MillinerController($milliner, $this->logger);
@@ -370,6 +372,7 @@ public function testSaveMediaReturnsSuccessOnSuccess()
[],
[
'HTTP_AUTHORIZATION' => 'Bearer islandora',
+ 'X-Islandora-Fedora-Endpoint' => 'http://localhost:8080/fcrepo/rest/',
'HTTP_CONTENT_LOCATION' => 'http://localhost:8000/media/6?_format=json',
]
);
@@ -394,7 +397,7 @@ public function testSaveExternalReturnsSuccessOnSuccess()
$controller = new MillinerController($milliner, $this->logger);
// Nodes.
- $uuid = "abc123";
+ $uuid = '630e0c1d-1a38-4e3b-84f9-68d519bdc026';
$request = Request::create(
"http://localhost:8000/milliner/external/$uuid",
"POST",
@@ -447,12 +450,12 @@ public function testSaveExternalReturnsSuccessOnSuccess()
public function testDeleteReturnsSuccessOnSuccess()
{
$milliner = $this->prophesize(MillinerServiceInterface::class);
- $milliner->deleteNode(Argument::any(), Argument::any())
+ $milliner->deleteNode(Argument::any(), Argument::any(), Argument::any())
->willReturn(new Response(204));
$milliner = $milliner->reveal();
$controller = new MillinerController($milliner, $this->logger);
- $uuid = "abc123";
+ $uuid = '630e0c1d-1a38-4e3b-84f9-68d519bdc026';
$request = Request::create(
"http://localhost:8000/milliner/resource/$uuid",
"DELETE",
@@ -477,15 +480,13 @@ public function testDeleteReturnsSuccessOnSuccess()
public function testCreateNodeVersionReturnsSuccessOnSuccess()
{
$milliner = $this->prophesize(MillinerServiceInterface::class);
- $milliner->getGeminiUrls(Argument::any(), Argument::any())
- ->willReturn(['fedora' => "http://example.org/fcrepo/abc123", "drupal" => "http://example.org/node/1"]);
$milliner->createVersion(Argument::any(), Argument::any(), Argument::any(), Argument::any())
->willReturn(new Response(201));
$milliner = $milliner->reveal();
$controller = new MillinerController($milliner, $this->logger);
// Nodes.
- $uuid = "abc123";
+ $uuid = '630e0c1d-1a38-4e3b-84f9-68d519bdc026';
$request = Request::create(
"http://localhost:8000/milliner/node/$uuid/version",
"POST",
@@ -505,8 +506,6 @@ public function testCreateNodeVersionReturnsSuccessOnSuccess()
);
$milliner = $this->prophesize(MillinerServiceInterface::class);
- $milliner->getGeminiUrls(Argument::any(), Argument::any())
- ->willReturn(['fedora' => "http://example.org/fcrepo/abc123", "drupal" => "http://example.org/node/1"]);
$milliner->createVersion(Argument::any(), Argument::any(), Argument::any(), Argument::any())
->willReturn(new Response(204));
$milliner = $milliner->reveal();
@@ -538,15 +537,13 @@ public function testCreateNodeVersionReturnsSuccessOnSuccess()
public function testCreateMediaVersionReturnsSuccessOnSuccess()
{
$milliner = $this->prophesize(MillinerServiceInterface::class);
- $milliner->createVersion(Argument::any(), Argument::any(), Argument::any(), Argument::any())
+ $milliner->createMediaVersion(Argument::any(), Argument::any(), Argument::any(), Argument::any())
->willReturn(new Response(201));
- $milliner->getFileFromMedia(Argument::any(), Argument::any(), Argument::any())
- ->willReturn(array('fedora'=>'', 'drupal'=>'', 'jsonld'=>''));
$milliner = $milliner->reveal();
$controller = new MillinerController($milliner, $this->logger);
// Nodes.
- $uuid = "abc123";
+ $uuid = '630e0c1d-1a38-4e3b-84f9-68d519bdc026';
$source_field = 'field_image';
$request = Request::create(
"http://localhost:8000/milliner/media/$source_field/version",
@@ -567,10 +564,8 @@ public function testCreateMediaVersionReturnsSuccessOnSuccess()
);
$milliner = $this->prophesize(MillinerServiceInterface::class);
- $milliner->createVersion(Argument::any(), Argument::any(), Argument::any(), Argument::any())
+ $milliner->createMediaVersion(Argument::any(), Argument::any(), Argument::any(), Argument::any())
->willReturn(new Response(204));
- $milliner->getFileFromMedia(Argument::any(), Argument::any(), Argument::any())
- ->willReturn(array('fedora'=>'', 'drupal'=>'', 'jsonld'=>''));
$milliner = $milliner->reveal();
$controller = new MillinerController($milliner, $this->logger);
diff --git a/Milliner/tests/Islandora/Milliner/Tests/SaveExternalTest.php b/Milliner/tests/Islandora/Milliner/Tests/SaveExternalTest.php
index 3b891e95..d98f314d 100644
--- a/Milliner/tests/Islandora/Milliner/Tests/SaveExternalTest.php
+++ b/Milliner/tests/Islandora/Milliner/Tests/SaveExternalTest.php
@@ -7,12 +7,13 @@
use GuzzleHttp\Psr7\Request;
use GuzzleHttp\Psr7\Response;
use Islandora\Chullo\IFedoraApi;
-use Islandora\Crayfish\Commons\Client\GeminiClient;
+use Islandora\Crayfish\Commons\EntityMapper\EntityMapperInterface;
use Islandora\Milliner\Service\MillinerService;
use Monolog\Handler\NullHandler;
use Monolog\Logger;
use PHPUnit\Framework\TestCase;
use Prophecy\Argument;
+use Prophecy\PhpUnit\ProphecyTrait;
/**
* Class SaveExternalTest
@@ -21,6 +22,8 @@
*/
class SaveExternalTest extends TestCase
{
+ use ProphecyTrait;
+
/**
* @var LoggerInterface
*/
@@ -31,6 +34,21 @@ class SaveExternalTest extends TestCase
*/
protected $modifiedDatePredicate;
+ /**
+ * @var string
+ */
+ protected $uuid;
+
+ /**
+ * @var string
+ */
+ protected $fedoraBaseUrl;
+
+ /**
+ * @var Islandora\Crayfish\Commons\EntityMapper\EntityMapper
+ */
+ protected $mapper;
+
/**
* {@inheritdoc}
*/
@@ -42,48 +60,14 @@ protected function setUp(): void
$this->logger->pushHandler(new NullHandler());
$this->modifiedDatePredicate = "http://schema.org/dateModified";
- }
- /**
- * @covers ::__construct
- * @covers ::saveExternal
- */
- public function testSaveExternalThrowsOnMintError()
- {
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->mintFedoraUrl(Argument::any(), Argument::any(), Argument::any())
- ->willThrow(
- new RequestException(
- "Unauthorized",
- new Request('POST', 'http://localhost:8000/gemini'),
- new Response(403, [], "Unauthorized")
- )
- );
- $gemini = $gemini->reveal();
-
- $drupal = $this->prophesize(Client::class);
- $drupal = $drupal->reveal();
-
- $fedora = $this->prophesize(IFedoraApi::class);
- $fedora = $fedora->reveal();
-
- $milliner = new MillinerService(
- $fedora,
- $drupal,
- $gemini,
- $this->logger,
- $this->modifiedDatePredicate,
- false
- );
-
- $this->expectException(\GuzzleHttp\Exception\RequestException::class, null, 403);
+ $this->uuid = '9541c0c1-5bee-4973-a9d0-e55c1658bc8';
+ $this->fedoraBaseUrl = 'http://localhost:8080/fcrepo/rest';
- $milliner->saveExternal(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
- 'http://localhost:8000/sites/default/files/2017-07/sample_0.jpeg',
- "http://localhost:8080/fcrepo/rest/",
- "Bearer islandora"
- );
+ $this->mapper = $this->prophesize(EntityMapperInterface::class);
+ $this->mapper->getFedoraPath($this->uuid)
+ ->willReturn("{$this->fedoraBaseUrl}/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8");
+ $this->mapper = $this->mapper->reveal();
}
/**
@@ -92,12 +76,6 @@ public function testSaveExternalThrowsOnMintError()
*/
public function testSaveExternalThrowsOnHeadError()
{
- $url = "http://localhost:8080/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc81";
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->mintFedoraUrl(Argument::any(), Argument::any(), Argument::any())
- ->willReturn($url);
- $gemini = $gemini->reveal();
-
$drupal = $this->prophesize(Client::class);
$drupal->head(Argument::any(), Argument::any())
->willThrow(
@@ -115,18 +93,19 @@ public function testSaveExternalThrowsOnHeadError()
$milliner = new MillinerService(
$fedora,
$drupal,
- $gemini,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$this->expectException(\GuzzleHttp\Exception\RequestException::class, null, 403);
$milliner->saveExternal(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
+ $this->uuid,
'http://localhost:8000/sites/default/files/2017-07/sample_0.jpeg',
- "http://localhost:8080/fcrepo/rest/",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
}
@@ -137,12 +116,6 @@ public function testSaveExternalThrowsOnHeadError()
*/
public function testSaveExternalThrowsOnPutError()
{
- $url = "http://localhost:8080/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc81";
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->mintFedoraUrl(Argument::any(), Argument::any(), Argument::any())
- ->willReturn($url);
- $gemini = $gemini->reveal();
-
$drupal = $this->prophesize(Client::class);
$drupal->head(Argument::any(), Argument::any())
->willReturn(new Response(200, ['Content-Type' => 'image/jpeg']));
@@ -156,67 +129,19 @@ public function testSaveExternalThrowsOnPutError()
$milliner = new MillinerService(
$fedora,
$drupal,
- $gemini,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$this->expectException(\RuntimeException::class, null, 403);
$milliner->saveExternal(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
- 'http://localhost:8000/sites/default/files/2017-07/sample_0.jpeg',
- "http://localhost:8080/fcrepo/rest/",
- "Bearer islandora"
- );
- }
-
- /**
- * @covers ::__construct
- * @covers ::saveExternal
- */
- public function testSaveExternalThrowsOnGeminiError()
- {
- $url = "http://localhost:8080/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc81";
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->mintFedoraUrl(Argument::any(), Argument::any(), Argument::any())
- ->willReturn($url);
- $gemini->saveUrls(Argument::any(), Argument::any(), Argument::any(), Argument::any())
- ->willThrow(
- new RequestException(
- "Unauthorized",
- new Request('PUT', 'http://localhost:8000/gemini/9541c0c1-5bee-4973-a9d0-e55c1658bc81'),
- new Response(403, [], "Unauthorized")
- )
- );
- $gemini = $gemini->reveal();
-
- $drupal = $this->prophesize(Client::class);
- $drupal->head(Argument::any(), Argument::any())
- ->willReturn(new Response(200, ['Content-Type' => 'image/jpeg']));
- $drupal = $drupal->reveal();
-
- $fedora = $this->prophesize(IFedoraApi::class);
- $fedora->saveResource(Argument::any(), Argument::any(), Argument::any())
- ->willReturn(new Response(201));
- $fedora = $fedora->reveal();
-
- $this->expectException(\GuzzleHttp\Exception\RequestException::class, null, 403);
-
- $milliner = new MillinerService(
- $fedora,
- $drupal,
- $gemini,
- $this->logger,
- $this->modifiedDatePredicate,
- false
- );
-
- $milliner->saveExternal(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
+ $this->uuid,
'http://localhost:8000/sites/default/files/2017-07/sample_0.jpeg',
- "http://localhost:8080/fcrepo/rest/",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
}
diff --git a/Milliner/tests/Islandora/Milliner/Tests/SaveMediaTest.php b/Milliner/tests/Islandora/Milliner/Tests/SaveMediaTest.php
index 6a610396..364c6ffa 100644
--- a/Milliner/tests/Islandora/Milliner/Tests/SaveMediaTest.php
+++ b/Milliner/tests/Islandora/Milliner/Tests/SaveMediaTest.php
@@ -5,12 +5,13 @@
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Response;
use Islandora\Chullo\IFedoraApi;
-use Islandora\Crayfish\Commons\Client\GeminiClient;
+use Islandora\Crayfish\Commons\EntityMapper\EntityMapperInterface;
use Islandora\Milliner\Service\MillinerService;
use Monolog\Handler\NullHandler;
use Monolog\Logger;
use Prophecy\Argument;
use PHPUnit\Framework\TestCase;
+use Prophecy\PhpUnit\ProphecyTrait;
/**
* Class MillinerServiceTest
@@ -19,6 +20,8 @@
*/
class SaveMediaTest extends TestCase
{
+ use ProphecyTrait;
+
/**
* @var LoggerInterface
*/
@@ -29,6 +32,21 @@ class SaveMediaTest extends TestCase
*/
protected $modifiedDatePredicate;
+ /**
+ * @var string
+ */
+ protected $uuid;
+
+ /**
+ * @var string
+ */
+ protected $fedoraBaseUrl;
+
+ /**
+ * @var Islandora\Crayfish\Commons\EntityMapper\EntityMapper
+ */
+ protected $mapper;
+
/**
* {@inheritdoc}
*/
@@ -40,6 +58,14 @@ protected function setUp(): void
$this->logger->pushHandler(new NullHandler());
$this->modifiedDatePredicate = "http://schema.org/dateModified";
+
+ $this->uuid = 'ffb15b4f-54db-44ce-ad0b-3588889a3c9b';
+ $this->fedoraBaseUrl = 'http://localhost:8080/fcrepo/rest';
+
+ $this->mapper = $this->prophesize(EntityMapperInterface::class);
+ $this->mapper->getFedoraPath($this->uuid)
+ ->willReturn("{$this->fedoraBaseUrl}/ff/b1/5b/4f/ffb15b4f-54db-44ce-ad0b-3588889a3c9b");
+ $this->mapper = $this->mapper->reveal();
}
/**
@@ -64,14 +90,13 @@ public function testSaveMediaThrows500WithNoFileField()
$fedora = $this->prophesize(IFedoraApi::class)->reveal();
- $gemini = $this->prophesize(GeminiClient::class)->reveal();
-
$milliner = new MillinerService(
$fedora,
$drupal,
- $gemini,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
@@ -80,6 +105,7 @@ public function testSaveMediaThrows500WithNoFileField()
$milliner->saveMedia(
"field_image",
"http://localhost:8000/media/6?_format=json",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
}
@@ -106,14 +132,13 @@ public function testSaveMediaThrows500WithEmptyFileField()
$fedora = $this->prophesize(IFedoraApi::class)->reveal();
- $gemini = $this->prophesize(GeminiClient::class)->reveal();
-
$milliner = new MillinerService(
$fedora,
$drupal,
- $gemini,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
@@ -122,6 +147,7 @@ public function testSaveMediaThrows500WithEmptyFileField()
$milliner->saveMedia(
"field_image",
"http://localhost:8000/media/6?_format=json",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
}
@@ -148,17 +174,13 @@ public function testSaveMediaThrows404WhenFileIsNotInGemini()
$fedora = $this->prophesize(IFedoraApi::class)->reveal();
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn([]);
- $gemini = $gemini->reveal();
-
$milliner = new MillinerService(
$fedora,
$drupal,
- $gemini,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
@@ -167,6 +189,7 @@ public function testSaveMediaThrows404WhenFileIsNotInGemini()
$milliner->saveMedia(
"field_image",
"http://localhost:8000/media/6?_format=json",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
}
@@ -198,29 +221,22 @@ public function testSaveMediaThrowsFedoraHeadError()
$fedora = $this->prophesize(IFedoraApi::class);
$fedora = $fedora->reveal();
- $mapping = [
- 'drupal' => 'http://localhost:8000/sites/default/files/2017-07/sample_0.jpeg',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/ff/b1/5b/4f/ffb15b4f-54db-44ce-ad0b-3588889a3c9b',
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini = $gemini->reveal();
-
$this->expectException(\RuntimeException::class, null, 404);
$milliner = new MillinerService(
$fedora,
$drupal,
- $gemini,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$milliner->saveMedia(
"field_image",
"http://localhost:8000/media/6?_format=json",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
}
@@ -252,21 +268,13 @@ public function testSaveMediaThrows500WhenNoDescribedbyHeader()
$fedora = $this->prophesize(IFedoraApi::class);
$fedora = $fedora->reveal();
- $mapping = [
- 'drupal' => 'http://localhost:8000/sites/default/files/2017-07/sample_0.jpeg',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/ff/b1/5b/4f/ffb15b4f-54db-44ce-ad0b-3588889a3c9b',
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini = $gemini->reveal();
-
$milliner = new MillinerService(
$fedora,
$drupal,
- $gemini,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
@@ -275,6 +283,7 @@ public function testSaveMediaThrows500WhenNoDescribedbyHeader()
$milliner->saveMedia(
"field_image",
"http://localhost:8000/media/6?_format=json",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
}
@@ -316,21 +325,13 @@ public function testSaveMediaThrowsFedoraGetError()
->willReturn($fedora_get_response);
$fedora = $fedora->reveal();
- $mapping = [
- 'drupal' => 'http://localhost:8000/sites/default/files/2017-07/sample_0.jpeg',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/ff/b1/5b/4f/ffb15b4f-54db-44ce-ad0b-3588889a3c9b',
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini = $gemini->reveal();
-
$milliner = new MillinerService(
$fedora,
$drupal,
- $gemini,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
@@ -339,6 +340,7 @@ public function testSaveMediaThrowsFedoraGetError()
$milliner->saveMedia(
"field_image",
"http://localhost:8000/media/6?_format=json",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
}
@@ -392,21 +394,13 @@ public function testSaveMediaThrows412OnStaleData()
->willReturn($fedora_get_response);
$fedora = $fedora->reveal();
- $mapping = [
- 'drupal' => 'http://localhost:8000/sites/default/files/2017-07/sample_0.jpeg',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/ff/b1/5b/4f/ffb15b4f-54db-44ce-ad0b-3588889a3c9b',
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini = $gemini->reveal();
-
$milliner = new MillinerService(
$fedora,
$drupal,
- $gemini,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
@@ -415,6 +409,7 @@ public function testSaveMediaThrows412OnStaleData()
$milliner->saveMedia(
"field_image",
"http://localhost:8000/media/6?_format=json",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
}
@@ -473,21 +468,13 @@ public function testSaveMediaThrowsFedoraPutError()
->willReturn($fedora_put_response);
$fedora = $fedora->reveal();
- $mapping = [
- 'drupal' => 'http://localhost:8000/sites/default/files/2017-07/sample_0.jpeg',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/ff/b1/5b/4f/ffb15b4f-54db-44ce-ad0b-3588889a3c9b',
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini = $gemini->reveal();
-
$milliner = new MillinerService(
$fedora,
$drupal,
- $gemini,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
@@ -496,6 +483,7 @@ public function testSaveMediaThrowsFedoraPutError()
$milliner->saveMedia(
"field_image",
"http://localhost:8000/media/6?_format=json",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
}
@@ -510,17 +498,21 @@ public function testSaveMediaThrowsFedoraPutError()
*/
public function testSaveMediaReturnsFedoraSuccess()
{
+ $link = '; rel="alternate"; type="application/ld+json"';
+ $link .= ',; rel="describes"';
$drupal_json_response = new Response(
200,
[
'Content-Type' => 'application/json',
- "Link" => '; rel="alternate"; type="application/ld+json"',
+ "Link" => $link,
],
file_get_contents(__DIR__ . '/../../../../static/Media.json')
);
$drupal_jsonld_response = new Response(
200,
- ['Content-Type' => 'application/ld+json'],
+ [
+ 'Content-Type' => 'application/ld+json',
+ ],
file_get_contents(__DIR__ . '/../../../../static/Media.jsonld')
);
$drupal = $this->prophesize(Client::class);
@@ -554,27 +546,25 @@ public function testSaveMediaReturnsFedoraSuccess()
->willReturn($fedora_put_response);
$fedora = $fedora->reveal();
- $mapping = [
- 'drupal' => 'http://localhost:8000/sites/default/files/2017-07/sample_0.jpeg',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/ff/b1/5b/4f/ffb15b4f-54db-44ce-ad0b-3588889a3c9b',
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini = $gemini->reveal();
+ $this->mapper = $this->prophesize(EntityMapperInterface::class);
+ $this->mapper->getFedoraPath('f0fd71b3-1fab-45e1-a5e9-78d50e0d7174')
+ ->willReturn("{$this->fedoraBaseUrl}/f0/fd/71/b3/f0fd71b3-1fab-45e1-a5e9-78d50e0d7174");
+ $this->mapper = $this->mapper->reveal();
$milliner = new MillinerService(
$fedora,
$drupal,
- $gemini,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$response = $milliner->saveMedia(
"field_image",
"http://localhost:8000/media/6?_format=json",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
@@ -595,17 +585,21 @@ public function testSaveMediaReturnsFedoraSuccess()
*/
public function testSaveMediaReturnsNoModifiedDate()
{
+ $link = '; rel="alternate"; type="application/ld+json"';
+ $link .= ',; rel="describes"';
$drupal_json_response = new Response(
200,
[
'Content-Type' => 'application/json',
- "Link" => '; rel="alternate"; type="application/ld+json"',
+ "Link" => $link,
],
file_get_contents(__DIR__ . '/../../../../static/Media.json')
);
$drupal_jsonld_response = new Response(
200,
- ['Content-Type' => 'application/ld+json'],
+ [
+ 'Content-Type' => 'application/ld+json',
+ ],
file_get_contents(__DIR__ . '/../../../../static/Media.jsonld')
);
$drupal = $this->prophesize(Client::class);
@@ -622,7 +616,6 @@ public function testSaveMediaReturnsNoModifiedDate()
);
$drupal->head(Argument::any(), Argument::any())
->willReturn($head_response);
-
$drupal = $drupal->reveal();
$fedora_get_response = new Response(
@@ -640,27 +633,25 @@ public function testSaveMediaReturnsNoModifiedDate()
->willReturn($fedora_put_response);
$fedora = $fedora->reveal();
- $mapping = [
- 'drupal' => 'http://localhost:8000/sites/default/files/2017-07/sample_0.jpeg',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/ff/b1/5b/4f/ffb15b4f-54db-44ce-ad0b-3588889a3c9b',
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini = $gemini->reveal();
+ $this->mapper = $this->prophesize(EntityMapperInterface::class);
+ $this->mapper->getFedoraPath('f0fd71b3-1fab-45e1-a5e9-78d50e0d7174')
+ ->willReturn("{$this->fedoraBaseUrl}/f0/fd/71/b3/f0fd71b3-1fab-45e1-a5e9-78d50e0d7174");
+ $this->mapper = $this->mapper->reveal();
$milliner = new MillinerService(
$fedora,
$drupal,
- $gemini,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$response = $milliner->saveMedia(
"field_image",
"http://localhost:8000/media/6?_format=json",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
diff --git a/Milliner/tests/Islandora/Milliner/Tests/SaveNodeTest.php b/Milliner/tests/Islandora/Milliner/Tests/SaveNodeTest.php
index 451fa94c..0a5c0646 100644
--- a/Milliner/tests/Islandora/Milliner/Tests/SaveNodeTest.php
+++ b/Milliner/tests/Islandora/Milliner/Tests/SaveNodeTest.php
@@ -7,12 +7,13 @@
use GuzzleHttp\Psr7\Request;
use GuzzleHttp\Exception\RequestException;
use Islandora\Chullo\IFedoraApi;
-use Islandora\Crayfish\Commons\Client\GeminiClient;
+use Islandora\Crayfish\Commons\EntityMapper\EntityMapperInterface;
use Islandora\Milliner\Service\MillinerService;
use Monolog\Handler\NullHandler;
use Monolog\Logger;
use PHPUnit\Framework\TestCase;
use Prophecy\Argument;
+use Prophecy\PhpUnit\ProphecyTrait;
/**
* Class MillinerServiceTest
@@ -21,6 +22,8 @@
*/
class SaveNodeTest extends TestCase
{
+ use ProphecyTrait;
+
/**
* @var LoggerInterface
*/
@@ -31,6 +34,26 @@ class SaveNodeTest extends TestCase
*/
protected $modifiedDatePredicate;
+ /**
+ * @var string
+ */
+ protected $uuid;
+
+ /**
+ * @var string
+ */
+ protected $fedoraBaseUrl;
+
+ /**
+ * @var Islandora\Crayfish\Commons\EntityMapper\EntityMapper
+ */
+ protected $mapper;
+
+ /**
+ * @var Islandora\Crayfish\Commons\EntityMapper\EntityMapper
+ */
+ protected $drupal;
+
/**
* {@inheritdoc}
*/
@@ -42,156 +65,59 @@ protected function setUp(): void
$this->logger->pushHandler(new NullHandler());
$this->modifiedDatePredicate = "http://schema.org/dateModified";
- }
-
- /**
- * @covers ::__construct
- * @covers ::saveNode
- */
- public function testCreateNodeThrowsOnMintError()
- {
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn([]);
- $gemini->mintFedoraUrl(Argument::any(), Argument::any(), Argument::any())
- ->willThrow(
- new RequestException(
- "Unauthorized",
- new Request('POST', 'http://localhost:8000/gemini'),
- new Response(403, [], "Unauthorized")
- )
- );
- $gemini = $gemini->reveal();
-
- $drupal = $this->prophesize(Client::class);
- $drupal = $drupal->reveal();
-
- $fedora = $this->prophesize(IFedoraApi::class);
- $fedora = $fedora->reveal();
- $milliner = new MillinerService(
- $fedora,
- $drupal,
- $gemini,
- $this->logger,
- $this->modifiedDatePredicate,
- false
- );
-
- $this->expectException(\GuzzleHttp\Exception\RequestException::class, null, 403);
-
- $milliner->saveNode(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
- "http://localhost:8000/node/1?_format=jsonld",
- "http://localhost:8080/fcrepo/rest/",
- "Bearer islandora"
- );
- }
+ $this->uuid = '9541c0c1-5bee-4973-a9d0-e55c1658bc8';
+ $this->fedoraBaseUrl = 'http://localhost:8080/fcrepo/rest';
- /**
- * @covers ::__construct
- * @covers ::saveNode
- * @covers ::processJsonld
- */
- public function testCreateNodeThrowsOnFedoraError()
- {
- $url = "http://localhost:8080/fcrepo/rest/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8";
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn([]);
- $gemini->mintFedoraUrl(Argument::any(), Argument::any(), Argument::any())
- ->willReturn($url);
- $gemini = $gemini->reveal();
+ $this->mapper = $this->prophesize(EntityMapperInterface::class);
+ $this->mapper->getFedoraPath($this->uuid)
+ ->willReturn("{$this->fedoraBaseUrl}/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8");
+ $this->mapper = $this->mapper->reveal();
$drupal_response = new Response(
200,
['Content-Type' => 'application/ld+json'],
file_get_contents(__DIR__ . '/../../../../static/Content.jsonld')
);
- $drupal = $this->prophesize(Client::class);
- $drupal->get(Argument::any(), Argument::any())
+ $this->drupal = $this->prophesize(Client::class);
+ $this->drupal->get(Argument::any(), Argument::any())
->willReturn($drupal_response);
- $drupal = $drupal->reveal();
-
- $fedora_response = new Response(403, [], null, '1.1', 'UNAUTHORIZED');
- $fedora = $this->prophesize(IFedoraApi::class);
- $fedora->saveResource(Argument::any(), Argument::any(), Argument::any())
- ->willReturn($fedora_response);
- $fedora = $fedora->reveal();
-
- $milliner = new MillinerService(
- $fedora,
- $drupal,
- $gemini,
- $this->logger,
- $this->modifiedDatePredicate,
- false
- );
-
- $this->expectException(\RuntimeException::class, null, 403);
-
- $milliner->saveNode(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
- "http://localhost:8000/node/1?_format=jsonld",
- "http://localhost:8080/fcrepo/rest/",
- "Bearer islandora"
- );
+ $this->drupal = $this->drupal->reveal();
}
/**
* @covers ::__construct
* @covers ::saveNode
- * @covers ::createNode
* @covers ::processJsonld
*/
- public function testCreateNodeThrowsOnFedoraSaveError()
+ public function testCreateNodeThrowsOnFedoraError()
{
- $url = "http://localhost:8080/fcrepo/rest/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8";
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn([]);
- $gemini->mintFedoraUrl(Argument::any(), Argument::any(), Argument::any())
- ->willReturn($url);
- $gemini = $gemini->reveal();
-
- $drupal_response = new Response(
- 200,
- ['Content-Type' => 'application/ld+json'],
- file_get_contents(__DIR__ . '/../../../../static/Content.jsonld')
- );
- $drupal = $this->prophesize(Client::class);
- $drupal->get(Argument::any(), Argument::any())
- ->willReturn($drupal_response);
- $drupal = $drupal->reveal();
-
- $fedora_get_response = new Response(
- 200,
- ['Content-Type' => 'application/ld+json'],
- file_get_contents(__DIR__ . '/../../../../static/ContentLDP-RS.jsonld')
- );
+ $fedora_head_response = new Response(404);
$fedora_save_response = new Response(403, [], null, '1.1', 'UNAUTHORIZED');
$fedora = $this->prophesize(IFedoraApi::class);
- $fedora->getResource(Argument::any(), Argument::any(), Argument::any())
- ->willReturn($fedora_get_response);
+ $fedora->getResourceHeaders(Argument::any(), Argument::any(), Argument::any())
+ ->willReturn($fedora_head_response);
$fedora->saveResource(Argument::any(), Argument::any(), Argument::any())
->willReturn($fedora_save_response);
$fedora = $fedora->reveal();
$milliner = new MillinerService(
$fedora,
- $drupal,
- $gemini,
+ $this->drupal,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$this->expectException(\RuntimeException::class, null, 403);
$milliner->saveNode(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
+ $this->uuid,
"http://localhost:8000/node/1?_format=jsonld",
- $token = "Bearer islandora"
+ $this->fedoraBaseUrl,
+ "Bearer islandora"
);
}
@@ -203,45 +129,29 @@ public function testCreateNodeThrowsOnFedoraSaveError()
*/
public function testCreateNodeReturnsFedora201()
{
- $url = "http://localhost:8080/fcrepo/rest/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8";
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn([]);
- $gemini->mintFedoraUrl(Argument::any(), Argument::any(), Argument::any())
- ->willReturn($url);
- $gemini->saveUrls(Argument::any(), Argument::any(), Argument::any(), Argument::any())
- ->willReturn(true);
- $gemini = $gemini->reveal();
-
- $drupal_response = new Response(
- 200,
- ['Content-Type' => 'application/ld+json'],
- file_get_contents(__DIR__ . '/../../../../static/Content.jsonld')
- );
- $drupal = $this->prophesize(Client::class);
- $drupal->get(Argument::any(), Argument::any())
- ->willReturn($drupal_response);
- $drupal = $drupal->reveal();
-
- $fedora_response = new Response(201);
+ $fedora_head_response = new Response(404);
+ $fedora_save_response = new Response(201);
$fedora = $this->prophesize(IFedoraApi::class);
+ $fedora->getResourceHeaders(Argument::any(), Argument::any(), Argument::any())
+ ->willReturn($fedora_head_response);
$fedora->saveResource(Argument::any(), Argument::any(), Argument::any())
- ->willReturn($fedora_response);
+ ->willReturn($fedora_save_response);
$fedora = $fedora->reveal();
$milliner = new MillinerService(
$fedora,
- $drupal,
- $gemini,
+ $this->drupal,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$response = $milliner->saveNode(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
+ $this->uuid,
"http://localhost:8000/node/1?_format=jsonld",
- "http://localhost:8080/fcrepo/rest/",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
@@ -260,45 +170,29 @@ public function testCreateNodeReturnsFedora201()
*/
public function testCreateNodeReturnsFedora204()
{
- $url = "http://localhost:8080/fcrepo/rest/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8";
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn([]);
- $gemini->mintFedoraUrl(Argument::any(), Argument::any(), Argument::any())
- ->willReturn($url);
- $gemini->saveUrls(Argument::any(), Argument::any(), Argument::any(), Argument::any())
- ->willReturn(true);
- $gemini = $gemini->reveal();
-
- $drupal_response = new Response(
- 200,
- ['Content-Type' => 'application/ld+json'],
- file_get_contents(__DIR__ . '/../../../../static/Content.jsonld')
- );
- $drupal = $this->prophesize(Client::class);
- $drupal->get(Argument::any(), Argument::any())
- ->willReturn($drupal_response);
- $drupal = $drupal->reveal();
-
- $fedora_response = new Response(204);
+ $fedora_head_response = new Response(404);
+ $fedora_save_response = new Response(204);
$fedora = $this->prophesize(IFedoraApi::class);
+ $fedora->getResourceHeaders(Argument::any(), Argument::any(), Argument::any())
+ ->willReturn($fedora_head_response);
$fedora->saveResource(Argument::any(), Argument::any(), Argument::any())
- ->willReturn($fedora_response);
+ ->willReturn($fedora_save_response);
$fedora = $fedora->reveal();
$milliner = new MillinerService(
$fedora,
- $drupal,
- $gemini,
+ $this->drupal,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$response = $milliner->saveNode(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
+ $this->uuid,
"http://localhost:8000/node/1?_format=jsonld",
- "http://localhost:8080/fcrepo/rest/",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
@@ -317,40 +211,40 @@ public function testCreateNodeReturnsFedora204()
* @covers ::getModifiedTimestamp
* @covers ::getFirstPredicate
*/
- public function testUpdateNodeThrowsOnFedoraGetError()
+ public function testUpdateNodeThrowsOnFedoraError()
{
- $mapping = [
- 'drupal' => '"http://localhost:8000/node/1?_format=jsonld"',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8'
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini = $gemini->reveal();
-
- $drupal = $this->prophesize(Client::class)->reveal();
-
- $fedora_response = new Response(403, [], null, '1.1', 'UNAUTHORIZED');
+ $fedora_head_response = new Response(200);
+ $fedora_get_response = new Response(
+ 200,
+ ['Content-Type' => 'application/ld+json'],
+ file_get_contents(__DIR__ . '/../../../../static/ContentLDP-RS.jsonld')
+ );
+ $fedora_save_response = new Response(403, [], null, '1.1', 'UNAUTHORIZED');
$fedora = $this->prophesize(IFedoraApi::class);
+ $fedora->getResourceHeaders(Argument::any())
+ ->willReturn($fedora_head_response);
$fedora->getResource(Argument::any(), Argument::any(), Argument::any())
- ->willReturn($fedora_response);
+ ->willReturn($fedora_get_response);
+ $fedora->saveResource(Argument::any(), Argument::any(), Argument::any())
+ ->willReturn($fedora_save_response);
$fedora = $fedora->reveal();
$milliner = new MillinerService(
$fedora,
- $drupal,
- $gemini,
+ $this->drupal,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$this->expectException(\RuntimeException::class, null, 403);
$milliner->saveNode(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
+ $this->uuid,
"http://localhost:8000/node/1?_format=jsonld",
- "http://localhost:8080/fcrepo/rest/",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
}
@@ -365,15 +259,6 @@ public function testUpdateNodeThrowsOnFedoraGetError()
*/
public function testUpdateNodeThrows500OnBadDatePredicate()
{
- $mapping = [
- 'drupal' => '"http://localhost:8000/node/1?_format=jsonld"',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8'
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini = $gemini->reveal();
-
$drupal_response = new Response(
200,
['Content-Type' => 'application/ld+json'],
@@ -384,12 +269,15 @@ public function testUpdateNodeThrows500OnBadDatePredicate()
->willReturn($drupal_response);
$drupal = $drupal->reveal();
+ $fedora_head_response = new Response(200);
$fedora_get_response = new Response(
200,
['Content-Type' => 'application/ld+json'],
file_get_contents(__DIR__ . '/../../../../static/ContentLDP-RS.jsonld')
);
$fedora = $this->prophesize(IFedoraApi::class);
+ $fedora->getResourceHeaders(Argument::any())
+ ->willReturn($fedora_head_response);
$fedora->getResource(Argument::any(), Argument::any(), Argument::any())
->willReturn($fedora_get_response);
$fedora = $fedora->reveal();
@@ -399,16 +287,17 @@ public function testUpdateNodeThrows500OnBadDatePredicate()
$milliner = new MillinerService(
$fedora,
$drupal,
- $gemini,
+ $this->mapper,
$this->logger,
- "total garbage",
+ $this->modifiedDatePredicate,
+ false,
false
);
$milliner->saveNode(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
+ $this->uuid,
"http://localhost:8000/node/1?_format=jsonld",
- "http://localhost:8080/fcrepo/rest/",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
}
@@ -423,15 +312,6 @@ public function testUpdateNodeThrows500OnBadDatePredicate()
*/
public function testUpdateNodeThrows412OnStaleContent()
{
- $mapping = [
- 'drupal' => '"http://localhost:8000/node/1?_format=jsonld"',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8'
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini = $gemini->reveal();
-
$drupal_response = new Response(
200,
['Content-Type' => 'application/ld+json'],
@@ -442,12 +322,15 @@ public function testUpdateNodeThrows412OnStaleContent()
->willReturn($drupal_response);
$drupal = $drupal->reveal();
+ $fedora_head_response = new Response(200);
$fedora_get_response = new Response(
200,
['Content-Type' => 'application/ld+json'],
file_get_contents(__DIR__ . '/../../../../static/ContentLDP-RS.jsonld')
);
$fedora = $this->prophesize(IFedoraApi::class);
+ $fedora->getResourceHeaders(Argument::any())
+ ->willReturn($fedora_head_response);
$fedora->getResource(Argument::any(), Argument::any(), Argument::any())
->willReturn($fedora_get_response);
$fedora = $fedora->reveal();
@@ -455,79 +338,19 @@ public function testUpdateNodeThrows412OnStaleContent()
$milliner = new MillinerService(
$fedora,
$drupal,
- $gemini,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$this->expectException(\RuntimeException::class, null, 412);
$milliner->saveNode(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
+ $this->uuid,
"http://localhost:8000/node/1?_format=jsonld",
- "http://localhost:8080/fcrepo/rest/",
- "Bearer islandora"
- );
- }
-
- /**
- * @covers ::__construct
- * @covers ::saveNode
- * @covers ::updateNode
- * @covers ::processJsonld
- * @covers ::getModifiedTimestamp
- * @covers ::getFirstPredicate
- */
- public function testUpdateNodeThrowsOnFedoraSaveError()
- {
- $mapping = [
- 'drupal' => '"http://localhost:8000/node/1?_format=jsonld"',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8'
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini = $gemini->reveal();
-
- $drupal_response = new Response(
- 200,
- ['Content-Type' => 'application/ld+json'],
- file_get_contents(__DIR__ . '/../../../../static/Content.jsonld')
- );
- $drupal = $this->prophesize(Client::class);
- $drupal->get(Argument::any(), Argument::any())
- ->willReturn($drupal_response);
- $drupal = $drupal->reveal();
-
- $fedora_get_response = new Response(
- 200,
- ['Content-Type' => 'application/ld+json'],
- file_get_contents(__DIR__ . '/../../../../static/ContentLDP-RS.jsonld')
- );
- $fedora_save_response = new Response(403, [], null, '1.1', 'UNAUTHORIZED');
- $fedora = $this->prophesize(IFedoraApi::class);
- $fedora->getResource(Argument::any(), Argument::any(), Argument::any())
- ->willReturn($fedora_get_response);
- $fedora->saveResource(Argument::any(), Argument::any(), Argument::any())
- ->willReturn($fedora_save_response);
- $fedora = $fedora->reveal();
-
- $milliner = new MillinerService(
- $fedora,
- $drupal,
- $gemini,
- $this->logger,
- $this->modifiedDatePredicate,
- false
- );
-
- $this->expectException(\RuntimeException::class, null, 403);
-
- $milliner->saveNode(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
- "http://localhost:8000/node/1?_format=jsonld",
- "http://localhost:8080/fcrepo/rest/",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
}
@@ -542,27 +365,7 @@ public function testUpdateNodeThrowsOnFedoraSaveError()
*/
public function testUpdateNodeReturnsFedora201()
{
- $mapping = [
- 'drupal' => '"http://localhost:8000/node/1?_format=jsonld"',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8'
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini->saveUrls(Argument::any(), Argument::any(), Argument::any(), Argument::any())
- ->willReturn(true);
- $gemini = $gemini->reveal();
-
- $drupal_response = new Response(
- 200,
- ['Content-Type' => 'application/ld+json'],
- file_get_contents(__DIR__ . '/../../../../static/Content.jsonld')
- );
- $drupal = $this->prophesize(Client::class);
- $drupal->get(Argument::any(), Argument::any())
- ->willReturn($drupal_response);
- $drupal = $drupal->reveal();
-
+ $fedora_head_response = new Response(200);
$fedora_get_response = new Response(
200,
['Content-Type' => 'application/ld+json'],
@@ -570,6 +373,8 @@ public function testUpdateNodeReturnsFedora201()
);
$fedora_save_response = new Response(201);
$fedora = $this->prophesize(IFedoraApi::class);
+ $fedora->getResourceHeaders(Argument::any())
+ ->willReturn($fedora_head_response);
$fedora->getResource(Argument::any(), Argument::any(), Argument::any())
->willReturn($fedora_get_response);
$fedora->saveResource(Argument::any(), Argument::any(), Argument::any())
@@ -578,17 +383,18 @@ public function testUpdateNodeReturnsFedora201()
$milliner = new MillinerService(
$fedora,
- $drupal,
- $gemini,
+ $this->drupal,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$response = $milliner->saveNode(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
+ $this->uuid,
"http://localhost:8000/node/1?_format=jsonld",
- "http://localhost:8080/fcrepo/rest/",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
@@ -609,27 +415,7 @@ public function testUpdateNodeReturnsFedora201()
*/
public function testUpdateNodeReturnsFedora204()
{
- $mapping = [
- 'drupal' => '"http://localhost:8000/node/1?_format=jsonld"',
- 'fedora' => 'http://localhost:8080/fcrepo/rest/95/41/c0/c1/9541c0c1-5bee-4973-a9d0-e55c1658bc8'
- ];
- $gemini = $this->prophesize(GeminiClient::class);
- $gemini->getUrls(Argument::any(), Argument::any())
- ->willReturn($mapping);
- $gemini->saveUrls(Argument::any(), Argument::any(), Argument::any(), Argument::any())
- ->willReturn(true);
- $gemini = $gemini->reveal();
-
- $drupal_response = new Response(
- 200,
- ['Content-Type' => 'application/ld+json'],
- file_get_contents(__DIR__ . '/../../../../static/Content.jsonld')
- );
- $drupal = $this->prophesize(Client::class);
- $drupal->get(Argument::any(), Argument::any())
- ->willReturn($drupal_response);
- $drupal = $drupal->reveal();
-
+ $fedora_head_response = new Response(200);
$fedora_get_response = new Response(
200,
['Content-Type' => 'application/ld+json', 'ETag' => 'W\abc123'],
@@ -637,6 +423,8 @@ public function testUpdateNodeReturnsFedora204()
);
$fedora_save_response = new Response(204);
$fedora = $this->prophesize(IFedoraApi::class);
+ $fedora->getResourceHeaders(Argument::any())
+ ->willReturn($fedora_head_response);
$fedora->getResource(Argument::any(), Argument::any(), Argument::any())
->willReturn($fedora_get_response);
$fedora->saveResource(Argument::any(), Argument::any(), Argument::any())
@@ -645,17 +433,18 @@ public function testUpdateNodeReturnsFedora204()
$milliner = new MillinerService(
$fedora,
- $drupal,
- $gemini,
+ $this->drupal,
+ $this->mapper,
$this->logger,
$this->modifiedDatePredicate,
+ false,
false
);
$response = $milliner->saveNode(
- "9541c0c1-5bee-4973-a9d0-e55c1658bc81",
+ $this->uuid,
"http://localhost:8000/node/1?_format=jsonld",
- "http://localhost:8080/fcrepo/rest/",
+ $this->fedoraBaseUrl,
"Bearer islandora"
);
diff --git a/Recast/composer.json b/Recast/composer.json
index 690a8b67..46724f04 100644
--- a/Recast/composer.json
+++ b/Recast/composer.json
@@ -3,10 +3,11 @@
"description": "Microservice rewrites Drupal URIs to Fedora URIs",
"type": "project",
"require": {
- "silex/silex": "^2.0",
- "islandora/crayfish-commons": "dev-dev",
+ "php": "^7.3 || ^7.4",
"easyrdf/easyrdf": "^0.9 || ^1",
- "php": "^7.3 || ^7.4"
+ "islandora/crayfish-commons": "dev-dev",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "silex/silex": "^2.0"
},
"minimum-stability": "dev",
"prefer-stable": true,
@@ -40,7 +41,7 @@
],
"test": [
"@check",
- "vendor/bin/phpunit"
+ "vendor/bin/phpunit --verbose"
]
},
"config": {
diff --git a/Recast/composer.lock b/Recast/composer.lock
index 4e6e9f7f..fd14a36a 100644
--- a/Recast/composer.lock
+++ b/Recast/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "4821fa896f6e9d2e7b54f19499e7b8e5",
+ "content-hash": "c26f100c263d064483d95be7de4693d6",
"packages": [
{
"name": "doctrine/cache",
@@ -311,6 +311,75 @@
],
"time": "2020-05-29T18:28:51+00:00"
},
+ {
+ "name": "doctrine/instantiator",
+ "version": "1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
+ "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^8.0",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ },
+ "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.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": "2020-11-10T18:47:58+00:00"
+ },
{
"name": "easyrdf/easyrdf",
"version": "1.1.1",
@@ -459,16 +528,16 @@
},
{
"name": "guzzlehttp/promises",
- "version": "1.4.0",
+ "version": "1.4.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "60d379c243457e073cff02bc323a2a86cb355631"
+ "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631",
- "reference": "60d379c243457e073cff02bc323a2a86cb355631",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d",
+ "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d",
"shasum": ""
},
"require": {
@@ -508,9 +577,9 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/1.4.0"
+ "source": "https://github.com/guzzle/promises/tree/1.4.1"
},
- "time": "2020-09-30T07:37:28+00:00"
+ "time": "2021-03-07T09:25:29+00:00"
},
{
"name": "guzzlehttp/psr7",
@@ -593,12 +662,12 @@
"source": {
"type": "git",
"url": "https://github.com/Islandora/chullo.git",
- "reference": "6a5454e2bcdb2b24bf481b842692d4d1de6a0287"
+ "reference": "7f7df8847844ab478f65de8377c5678d037cb5e3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Islandora/chullo/zipball/6a5454e2bcdb2b24bf481b842692d4d1de6a0287",
- "reference": "6a5454e2bcdb2b24bf481b842692d4d1de6a0287",
+ "url": "https://api.github.com/repos/Islandora/chullo/zipball/7f7df8847844ab478f65de8377c5678d037cb5e3",
+ "reference": "7f7df8847844ab478f65de8377c5678d037cb5e3",
"shasum": ""
},
"require": {
@@ -647,7 +716,7 @@
"issues": "https://github.com/Islandora/documentation/issues",
"source": "https://github.com/Islandora/chullo/tree/dev"
},
- "time": "2020-12-11T21:38:08+00:00"
+ "time": "2021-02-16T15:51:00+00:00"
},
{
"name": "islandora/crayfish-commons",
@@ -655,12 +724,12 @@
"source": {
"type": "git",
"url": "https://github.com/Islandora/Crayfish-Commons.git",
- "reference": "d7c0044723c2089f7757fb5c9dd523397938a8e9"
+ "reference": "748c59cd1ddce9ddc9a05e25594cc6a9b230f9c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Islandora/Crayfish-Commons/zipball/d7c0044723c2089f7757fb5c9dd523397938a8e9",
- "reference": "d7c0044723c2089f7757fb5c9dd523397938a8e9",
+ "url": "https://api.github.com/repos/Islandora/Crayfish-Commons/zipball/748c59cd1ddce9ddc9a05e25594cc6a9b230f9c1",
+ "reference": "748c59cd1ddce9ddc9a05e25594cc6a9b230f9c1",
"shasum": ""
},
"require": {
@@ -671,15 +740,16 @@
"pimple/pimple": "~3.0",
"psr/log": "^1.0.1",
"silex/silex": "^2.0",
- "symfony/http-foundation": "^3.2.6",
- "symfony/security": "^3.2",
- "symfony/yaml": "^3.2"
+ "symfony/http-foundation": "^3.4 || ^4.4",
+ "symfony/security": "^3.4 || ^4.4",
+ "symfony/yaml": "^3.4 || ^4.4"
},
"require-dev": {
"mikey179/vfsstream": "^1.6",
- "phpunit/phpunit": "^5.0",
- "sebastian/phpcpd": "^3.0",
- "squizlabs/php_codesniffer": "^2.0"
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpunit/phpunit": "^9.0",
+ "sebastian/phpcpd": "^6.0",
+ "squizlabs/php_codesniffer": "^3.0"
},
"default-branch": true,
"type": "library",
@@ -710,7 +780,7 @@
"issues": "https://github.com/Islandora/documentation/issues",
"source": "https://github.com/Islandora/Crayfish-Commons/tree/dev"
},
- "time": "2020-11-12T23:33:17+00:00"
+ "time": "2021-03-12T18:49:29+00:00"
},
{
"name": "ml/iri",
@@ -818,16 +888,16 @@
},
{
"name": "monolog/monolog",
- "version": "1.25.5",
+ "version": "1.26.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "1817faadd1846cd08be9a49e905dc68823bc38c0"
+ "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1817faadd1846cd08be9a49e905dc68823bc38c0",
- "reference": "1817faadd1846cd08be9a49e905dc68823bc38c0",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/2209ddd84e7ef1256b7af205d0717fb62cfc9c33",
+ "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33",
"shasum": ""
},
"require": {
@@ -843,7 +913,7 @@
"graylog2/gelf-php": "~1.0",
"php-amqplib/php-amqplib": "~2.4",
"php-console/php-console": "^3.1.3",
- "php-parallel-lint/php-parallel-lint": "^1.0",
+ "phpstan/phpstan": "^0.12.59",
"phpunit/phpunit": "~4.5",
"ruflin/elastica": ">=0.90 <3.0",
"sentry/sentry": "^0.13",
@@ -863,11 +933,6 @@
"sentry/sentry": "Allow sending log messages to a Sentry server"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
"autoload": {
"psr-4": {
"Monolog\\": "src/Monolog"
@@ -893,7 +958,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/1.25.5"
+ "source": "https://github.com/Seldaek/monolog/tree/1.26.0"
},
"funding": [
{
@@ -905,7 +970,65 @@
"type": "tidelift"
}
],
- "time": "2020-07-23T08:35:51+00:00"
+ "time": "2020-12-14T12:56:38+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.10.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
+ "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "replace": {
+ "myclabs/deep-copy": "self.version"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.0",
+ "doctrine/common": "^2.6",
+ "phpunit/phpunit": "^7.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ },
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ]
+ },
+ "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.10.2"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-11-13T09:40:50+00:00"
},
{
"name": "namshi/jose",
@@ -975,190 +1098,198 @@
"time": "2016-12-05T07:27:31+00:00"
},
{
- "name": "pimple/pimple",
- "version": "v3.3.1",
+ "name": "nikic/php-parser",
+ "version": "v4.10.4",
"source": {
"type": "git",
- "url": "https://github.com/silexphp/Pimple.git",
- "reference": "21e45061c3429b1e06233475cc0e1f6fc774d5b0"
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/silexphp/Pimple/zipball/21e45061c3429b1e06233475cc0e1f6fc774d5b0",
- "reference": "21e45061c3429b1e06233475cc0e1f6fc774d5b0",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e",
+ "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/container": "^1.0"
+ "ext-tokenizer": "*",
+ "php": ">=7.0"
},
"require-dev": {
- "symfony/phpunit-bridge": "^5.0"
+ "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": "3.3.x-dev"
+ "dev-master": "4.9-dev"
}
},
"autoload": {
- "psr-0": {
- "Pimple": "src/"
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Nikita Popov"
}
],
- "description": "Pimple, a simple Dependency Injection Container",
- "homepage": "https://pimple.symfony.com",
+ "description": "A PHP parser written in PHP",
"keywords": [
- "container",
- "dependency injection"
+ "parser",
+ "php"
],
"support": {
- "source": "https://github.com/silexphp/Pimple/tree/v3.3.1"
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4"
},
- "time": "2020-11-24T20:35:42+00:00"
+ "time": "2020-12-20T10:01:03+00:00"
},
{
- "name": "psr/container",
- "version": "1.0.0",
+ "name": "phar-io/manifest",
+ "version": "2.0.1",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/container.git",
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
+ "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "ext-dom": "*",
+ "ext-phar": "*",
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "2.0.x-dev"
}
},
"autoload": {
- "psr-4": {
- "Psr\\Container\\": "src/"
- }
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "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": "Common Container Interface (PHP FIG PSR-11)",
- "homepage": "https://github.com/php-fig/container",
- "keywords": [
- "PSR-11",
- "container",
- "container-interface",
- "container-interop",
- "psr"
- ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
"support": {
- "issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/master"
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/master"
},
- "time": "2017-02-14T16:28:37+00:00"
+ "time": "2020-06-27T14:33:11+00:00"
},
{
- "name": "psr/http-message",
- "version": "1.0.1",
+ "name": "phar-io/version",
+ "version": "3.1.0",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/http-message.git",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "bae7c545bef187884426f042434e561ab1ddb182"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182",
+ "reference": "bae7c545bef187884426f042434e561ab1ddb182",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": "^7.2 || ^8.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
"autoload": {
- "psr-4": {
- "Psr\\Http\\Message\\": "src/"
- }
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"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"
+ "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": {
- "source": "https://github.com/php-fig/http-message/tree/master"
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.1.0"
},
- "time": "2016-08-06T14:39:51+00:00"
+ "time": "2021-02-23T14:00:09+00:00"
},
{
- "name": "psr/log",
- "version": "1.1.3",
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.2.0",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/log.git",
- "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
- "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": "^7.2 || ^8.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-2.x": "2.x-dev"
}
},
"autoload": {
"psr-4": {
- "Psr\\Log\\": "Psr/Log/"
+ "phpDocumentor\\Reflection\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1167,48 +1298,59 @@
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
}
],
- "description": "Common interface for logging libraries",
- "homepage": "https://github.com/php-fig/log",
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
"keywords": [
- "log",
- "psr",
- "psr-3"
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
],
"support": {
- "source": "https://github.com/php-fig/log/tree/1.1.3"
+ "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
},
- "time": "2020-03-23T09:12:05+00:00"
+ "time": "2020-06-27T09:03:43+00:00"
},
{
- "name": "ralouphie/getallheaders",
- "version": "3.0.3",
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "5.2.2",
"source": {
"type": "git",
- "url": "https://github.com/ralouphie/getallheaders.git",
- "reference": "120b605dfeb996808c31b6477290a714d356e822"
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
- "reference": "120b605dfeb996808c31b6477290a714d356e822",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556",
+ "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556",
"shasum": ""
},
"require": {
- "php": ">=5.6"
+ "ext-filter": "*",
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.2",
+ "phpdocumentor/type-resolver": "^1.3",
+ "webmozart/assert": "^1.9.1"
},
"require-dev": {
- "php-coveralls/php-coveralls": "^2.1",
- "phpunit/phpunit": "^5 || ^6.5"
+ "mockery/mockery": "~1.3.2"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
"autoload": {
- "files": [
- "src/getallheaders.php"
- ]
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1216,83 +1358,51 @@
],
"authors": [
{
- "name": "Ralph Khattar",
- "email": "ralph.khattar@gmail.com"
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ },
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "account@ijaap.nl"
}
],
- "description": "A polyfill for getallheaders.",
+ "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/ralouphie/getallheaders/issues",
- "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master"
},
- "time": "2019-03-08T08:55:37+00:00"
+ "time": "2020-09-03T19:13:55+00:00"
},
{
- "name": "silex/silex",
- "version": "v2.2.4",
+ "name": "phpdocumentor/type-resolver",
+ "version": "1.4.0",
"source": {
"type": "git",
- "url": "https://github.com/silexphp/Silex.git",
- "reference": "d2531e5b8099c429b752ad2154e85999c3689057"
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/silexphp/Silex/zipball/d2531e5b8099c429b752ad2154e85999c3689057",
- "reference": "d2531e5b8099c429b752ad2154e85999c3689057",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
+ "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
"shasum": ""
},
"require": {
- "php": ">=5.5.9",
- "pimple/pimple": "~3.0",
- "symfony/event-dispatcher": "~2.8|^3.0",
- "symfony/http-foundation": "~2.8|^3.0",
- "symfony/http-kernel": "~2.8|^3.0",
- "symfony/routing": "~2.8|^3.0"
- },
- "conflict": {
- "phpunit/phpunit": "<4.8.35 || >= 5.0, <5.4.3"
- },
- "replace": {
- "silex/api": "self.version",
- "silex/providers": "self.version"
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.0"
},
"require-dev": {
- "doctrine/dbal": "~2.2",
- "monolog/monolog": "^1.4.1",
- "swiftmailer/swiftmailer": "~5",
- "symfony/asset": "~2.8|^3.0",
- "symfony/browser-kit": "~2.8|^3.0",
- "symfony/config": "~2.8|^3.0",
- "symfony/css-selector": "~2.8|^3.0",
- "symfony/debug": "~2.8|^3.0",
- "symfony/doctrine-bridge": "~2.8|^3.0",
- "symfony/dom-crawler": "~2.8|^3.0",
- "symfony/expression-language": "~2.8|^3.0",
- "symfony/finder": "~2.8|^3.0",
- "symfony/form": "~2.8|^3.0",
- "symfony/intl": "~2.8|^3.0",
- "symfony/monolog-bridge": "~2.8|^3.0",
- "symfony/options-resolver": "~2.8|^3.0",
- "symfony/phpunit-bridge": "^3.2",
- "symfony/process": "~2.8|^3.0",
- "symfony/security": "~2.8|^3.0",
- "symfony/serializer": "~2.8|^3.0",
- "symfony/translation": "~2.8|^3.0",
- "symfony/twig-bridge": "~2.8|^3.0",
- "symfony/validator": "~2.8|^3.0",
- "symfony/var-dumper": "~2.8|^3.0",
- "symfony/web-link": "^3.3",
- "twig/twig": "~1.28|~2.0"
+ "ext-tokenizer": "*"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.2.x-dev"
+ "dev-1.x": "1.x-dev"
}
},
"autoload": {
"psr-4": {
- "Silex\\": "src/Silex"
+ "phpDocumentor\\Reflection\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1301,59 +1411,52 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Igor Wiedler",
- "email": "igor@wiedler.ch"
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
}
],
- "description": "The PHP micro-framework based on the Symfony Components",
- "homepage": "http://silex.sensiolabs.org",
- "keywords": [
- "microframework"
- ],
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": {
- "issues": "https://github.com/silexphp/Silex/issues",
- "source": "https://github.com/silexphp/Silex/tree/v2.2.4"
+ "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0"
},
- "abandoned": "symfony/flex",
- "time": "2018-03-16T23:34:20+00:00"
+ "time": "2020-09-17T18:55:26+00:00"
},
{
- "name": "symfony/debug",
- "version": "v4.4.17",
+ "name": "phpspec/prophecy",
+ "version": "1.12.2",
"source": {
"type": "git",
- "url": "https://github.com/symfony/debug.git",
- "reference": "65fe7b49868378319b82da3035fb30801b931c47"
+ "url": "https://github.com/phpspec/prophecy.git",
+ "reference": "245710e971a030f42e08f4912863805570f23d39"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/debug/zipball/65fe7b49868378319b82da3035fb30801b931c47",
- "reference": "65fe7b49868378319b82da3035fb30801b931c47",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39",
+ "reference": "245710e971a030f42e08f4912863805570f23d39",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "psr/log": "~1.0",
- "symfony/polyfill-php80": "^1.15"
- },
- "conflict": {
- "symfony/http-kernel": "<3.4"
+ "doctrine/instantiator": "^1.2",
+ "php": "^7.2 || ~8.0, <8.1",
+ "phpdocumentor/reflection-docblock": "^5.2",
+ "sebastian/comparator": "^3.0 || ^4.0",
+ "sebastian/recursion-context": "^3.0 || ^4.0"
},
"require-dev": {
- "symfony/http-kernel": "^3.4|^4.0|^5.0"
+ "phpspec/phpspec": "^6.0",
+ "phpunit/phpunit": "^8.0 || ^9.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.11.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "Symfony\\Component\\Debug\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
+ "Prophecy\\": "src/Prophecy"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1361,66 +1464,60 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Konstantin Kudryashov",
+ "email": "ever.zet@gmail.com",
+ "homepage": "http://everzet.com"
},
{
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Marcello Duarte",
+ "email": "marcello.duarte@gmail.com"
}
],
- "description": "Symfony Debug Component",
- "homepage": "https://symfony.com",
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
+ "homepage": "https://github.com/phpspec/prophecy",
+ "keywords": [
+ "Double",
+ "Dummy",
+ "fake",
+ "mock",
+ "spy",
+ "stub"
+ ],
"support": {
- "source": "https://github.com/symfony/debug/tree/v4.4.17"
+ "issues": "https://github.com/phpspec/prophecy/issues",
+ "source": "https://github.com/phpspec/prophecy/tree/1.12.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": "2020-10-28T20:42:29+00:00"
+ "time": "2020-12-19T10:15:11+00:00"
},
{
- "name": "symfony/deprecation-contracts",
- "version": "v2.2.0",
+ "name": "phpspec/prophecy-phpunit",
+ "version": "v2.0.1",
"source": {
"type": "git",
- "url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665"
+ "url": "https://github.com/phpspec/prophecy-phpunit.git",
+ "reference": "2d7a9df55f257d2cba9b1d0c0963a54960657177"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665",
- "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665",
+ "url": "https://api.github.com/repos/phpspec/prophecy-phpunit/zipball/2d7a9df55f257d2cba9b1d0c0963a54960657177",
+ "reference": "2d7a9df55f257d2cba9b1d0c0963a54960657177",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": "^7.3 || ^8",
+ "phpspec/prophecy": "^1.3",
+ "phpunit/phpunit": "^9.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.2-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
- "files": [
- "function.php"
- ]
+ "psr-4": {
+ "Prophecy\\PhpUnit\\": "src"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1428,549 +1525,474 @@
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Christophe Coevoet",
+ "email": "stof@notk.org"
}
],
- "description": "A generic function and convention to trigger deprecation notices",
- "homepage": "https://symfony.com",
+ "description": "Integrating the Prophecy mocking library in PHPUnit test cases",
+ "homepage": "http://phpspec.net",
+ "keywords": [
+ "phpunit",
+ "prophecy"
+ ],
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/master"
+ "issues": "https://github.com/phpspec/prophecy-phpunit/issues",
+ "source": "https://github.com/phpspec/prophecy-phpunit/tree/v2.0.1"
},
- "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-09-07T11:33:47+00:00"
+ "time": "2020-07-09T08:33:42+00:00"
},
{
- "name": "symfony/event-dispatcher",
- "version": "v3.4.47",
+ "name": "phpunit/php-code-coverage",
+ "version": "9.2.5",
"source": {
"type": "git",
- "url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "31fde73757b6bad247c54597beef974919ec6860"
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/31fde73757b6bad247c54597beef974919ec6860",
- "reference": "31fde73757b6bad247c54597beef974919ec6860",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f3e026641cc91909d421802dd3ac7827ebfd97e1",
+ "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1",
"shasum": ""
},
"require": {
- "php": "^5.5.9|>=7.0.8"
- },
- "conflict": {
- "symfony/dependency-injection": "<3.3"
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-xmlwriter": "*",
+ "nikic/php-parser": "^4.10.2",
+ "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": {
- "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"
+ "phpunit/phpunit": "^9.3"
},
"suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
+ "ext-pcov": "*",
+ "ext-xdebug": "*"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.2-dev"
+ }
+ },
"autoload": {
- "psr-4": {
- "Symfony\\Component\\EventDispatcher\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
+ "classmap": [
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Symfony EventDispatcher Component",
- "homepage": "https://symfony.com",
+ "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": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v3.4.47"
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.5"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-10-24T10:57:07+00:00"
+ "time": "2020-11-28T06:44:49+00:00"
},
{
- "name": "symfony/http-foundation",
- "version": "v3.4.47",
+ "name": "phpunit/php-file-iterator",
+ "version": "3.0.5",
"source": {
"type": "git",
- "url": "https://github.com/symfony/http-foundation.git",
- "reference": "b9885fcce6fe494201da4f70a9309770e9d13dc8"
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/b9885fcce6fe494201da4f70a9309770e9d13dc8",
- "reference": "b9885fcce6fe494201da4f70a9309770e9d13dc8",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8",
+ "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8",
"shasum": ""
},
"require": {
- "php": "^5.5.9|>=7.0.8",
- "symfony/polyfill-mbstring": "~1.1",
- "symfony/polyfill-php70": "~1.6"
+ "php": ">=7.3"
},
"require-dev": {
- "symfony/expression-language": "~2.8|~3.0|~4.0"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
"autoload": {
- "psr-4": {
- "Symfony\\Component\\HttpFoundation\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
+ "classmap": [
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Symfony HttpFoundation Component",
- "homepage": "https://symfony.com",
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v3.4.47"
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-10-24T10:57:07+00:00"
+ "time": "2020-09-28T05:57:25+00:00"
},
{
- "name": "symfony/http-kernel",
- "version": "v3.4.47",
+ "name": "phpunit/php-invoker",
+ "version": "3.1.1",
"source": {
"type": "git",
- "url": "https://github.com/symfony/http-kernel.git",
- "reference": "a98a4c30089e6a2d52a9fa236f718159b539f6f5"
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a98a4c30089e6a2d52a9fa236f718159b539f6f5",
- "reference": "a98a4c30089e6a2d52a9fa236f718159b539f6f5",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
"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"
+ "php": ">=7.3"
},
"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"
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^9.3"
},
"suggest": {
- "symfony/browser-kit": "",
- "symfony/config": "",
- "symfony/console": "",
- "symfony/dependency-injection": "",
- "symfony/finder": "",
- "symfony/var-dumper": ""
+ "ext-pcntl": "*"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
"autoload": {
- "psr-4": {
- "Symfony\\Component\\HttpKernel\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
+ "classmap": [
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Symfony HttpKernel Component",
- "homepage": "https://symfony.com",
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "keywords": [
+ "process"
+ ],
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v3.4.47"
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-11-27T08:42:42+00:00"
+ "time": "2020-09-28T05:58:55+00:00"
},
{
- "name": "symfony/inflector",
- "version": "v5.2.0",
+ "name": "phpunit/php-text-template",
+ "version": "2.0.4",
"source": {
"type": "git",
- "url": "https://github.com/symfony/inflector.git",
- "reference": "ba33a08d608c5b26ef768b6652876098dd3ace36"
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/inflector/zipball/ba33a08d608c5b26ef768b6652876098dd3ace36",
- "reference": "ba33a08d608c5b26ef768b6652876098dd3ace36",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
- "symfony/string": "^5.1"
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
"autoload": {
- "psr-4": {
- "Symfony\\Component\\Inflector\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
+ "classmap": [
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Symfony Inflector Component",
- "homepage": "https://symfony.com",
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
"keywords": [
- "inflection",
- "pluralize",
- "singularize",
- "string",
- "symfony",
- "words"
+ "template"
],
"support": {
- "source": "https://github.com/symfony/inflector/tree/v5.2.0"
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-10-24T12:01:57+00:00"
+ "time": "2020-10-26T05:33:50+00:00"
},
{
- "name": "symfony/polyfill-ctype",
- "version": "v1.20.0",
+ "name": "phpunit/php-timer",
+ "version": "5.0.3",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41"
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41",
- "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.3"
},
- "suggest": {
- "ext-ctype": "For best performance"
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
- },
- "files": [
- "bootstrap.php"
+ "classmap": [
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Symfony polyfill for ctype functions",
- "homepage": "https://symfony.com",
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
"keywords": [
- "compatibility",
- "ctype",
- "polyfill",
- "portable"
+ "timer"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.20.0"
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2020-10-26T13:16:10+00:00"
},
{
- "name": "symfony/polyfill-intl-grapheme",
- "version": "v1.20.0",
+ "name": "phpunit/phpunit",
+ "version": "9.5.2",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c"
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "f661659747f2f87f9e72095bb207bceb0f151cb4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c",
- "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f661659747f2f87f9e72095bb207bceb0f151cb4",
+ "reference": "f661659747f2f87f9e72095bb207bceb0f151cb4",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "doctrine/instantiator": "^1.3.1",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.10.1",
+ "phar-io/manifest": "^2.0.1",
+ "phar-io/version": "^3.0.2",
+ "php": ">=7.3",
+ "phpspec/prophecy": "^1.12.1",
+ "phpunit/php-code-coverage": "^9.2.3",
+ "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.5",
+ "sebastian/diff": "^4.0.3",
+ "sebastian/environment": "^5.1.3",
+ "sebastian/exporter": "^4.0.3",
+ "sebastian/global-state": "^5.0.1",
+ "sebastian/object-enumerator": "^4.0.3",
+ "sebastian/resource-operations": "^3.0.3",
+ "sebastian/type": "^2.3",
+ "sebastian/version": "^3.0.2"
+ },
+ "require-dev": {
+ "ext-pdo": "*",
+ "phpspec/prophecy-phpunit": "^2.0.1"
},
"suggest": {
- "ext-intl": "For best performance"
+ "ext-soap": "*",
+ "ext-xdebug": "*"
},
+ "bin": [
+ "phpunit"
+ ],
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "dev-master": "9.5-dev"
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
- },
+ "classmap": [
+ "src/"
+ ],
"files": [
- "bootstrap.php"
+ "src/Framework/Assert/Functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Symfony polyfill for intl's grapheme_* functions",
- "homepage": "https://symfony.com",
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
"keywords": [
- "compatibility",
- "grapheme",
- "intl",
- "polyfill",
- "portable",
- "shim"
+ "phpunit",
+ "testing",
+ "xunit"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.20.0"
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.2"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
+ "url": "https://phpunit.de/donate.html",
"type": "custom"
},
{
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2021-02-02T14:45:58+00:00"
},
{
- "name": "symfony/polyfill-intl-idn",
- "version": "v1.20.0",
+ "name": "pimple/pimple",
+ "version": "v3.4.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117"
+ "url": "https://github.com/silexphp/Pimple.git",
+ "reference": "86406047271859ffc13424a048541f4531f53601"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3b75acd829741c768bc8b1f84eb33265e7cc5117",
- "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117",
+ "url": "https://api.github.com/repos/silexphp/Pimple/zipball/86406047271859ffc13424a048541f4531f53601",
+ "reference": "86406047271859ffc13424a048541f4531f53601",
"shasum": ""
},
"require": {
- "php": ">=7.1",
- "symfony/polyfill-intl-normalizer": "^1.10",
- "symfony/polyfill-php72": "^1.10"
+ "php": ">=7.2.5",
+ "psr/container": "^1.1"
},
- "suggest": {
- "ext-intl": "For best performance"
+ "require-dev": {
+ "symfony/phpunit-bridge": "^5.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "dev-master": "3.4.x-dev"
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Idn\\": ""
- },
- "files": [
- "bootstrap.php"
- ]
+ "psr-0": {
+ "Pimple": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1978,87 +2000,43 @@
],
"authors": [
{
- "name": "Laurent Bassin",
- "email": "laurent@bassin.info"
- },
- {
- "name": "Trevor Rowbotham",
- "email": "trevor.rowbotham@pm.me"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
}
],
- "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
- "homepage": "https://symfony.com",
+ "description": "Pimple, a simple Dependency Injection Container",
+ "homepage": "https://pimple.symfony.com",
"keywords": [
- "compatibility",
- "idn",
- "intl",
- "polyfill",
- "portable",
- "shim"
+ "container",
+ "dependency injection"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.20.0"
+ "source": "https://github.com/silexphp/Pimple/tree/v3.4.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": "2020-10-23T14:02:19+00:00"
+ "time": "2021-03-06T08:28:00+00:00"
},
{
- "name": "symfony/polyfill-intl-normalizer",
- "version": "v1.20.0",
+ "name": "psr/container",
+ "version": "1.1.1",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "727d1096295d807c309fb01a851577302394c897"
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/727d1096295d807c309fb01a851577302394c897",
- "reference": "727d1096295d807c309fb01a851577302394c897",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
"shasum": ""
},
"require": {
- "php": ">=7.1"
- },
- "suggest": {
- "ext-intl": "For best performance"
+ "php": ">=7.2.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
"autoload": {
"psr-4": {
- "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
- },
- "files": [
- "bootstrap.php"
- ],
- "classmap": [
- "Resources/stubs"
- ]
+ "Psr\\Container\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -2066,79 +2044,153 @@
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
}
],
- "description": "Symfony polyfill for intl's Normalizer class and related functions",
- "homepage": "https://symfony.com",
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
"keywords": [
- "compatibility",
- "intl",
- "normalizer",
- "polyfill",
- "portable",
- "shim"
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.20.0"
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/1.1.1"
},
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
+ "time": "2021-03-05T17:36:06+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": [
{
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "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": "symfony/polyfill-mbstring",
- "version": "v1.20.0",
+ "name": "psr/log",
+ "version": "1.1.3",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "39d483bdf39be819deabf04ec872eb0b2410b531"
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531",
- "reference": "39d483bdf39be819deabf04ec872eb0b2410b531",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
"shasum": ""
},
"require": {
- "php": ">=7.1"
- },
- "suggest": {
- "ext-mbstring": "For best performance"
+ "php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "dev-master": "1.1.x-dev"
}
},
"autoload": {
"psr-4": {
- "Symfony\\Polyfill\\Mbstring\\": ""
- },
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://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.3"
+ },
+ "time": "2020-03-23T09:12:05+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": [
- "bootstrap.php"
+ "src/getallheaders.php"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -2147,917 +2199,847 @@
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Ralph Khattar",
+ "email": "ralph.khattar@gmail.com"
}
],
- "description": "Symfony polyfill for the Mbstring extension",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "mbstring",
- "polyfill",
- "portable",
- "shim"
+ "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/cli-parser",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "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": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0"
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2020-09-28T06:08:49+00:00"
},
{
- "name": "symfony/polyfill-php56",
- "version": "v1.20.0",
+ "name": "sebastian/code-unit",
+ "version": "1.0.8",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php56.git",
- "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675"
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675",
- "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.3"
},
- "type": "metapackage",
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "dev-master": "1.0-dev"
}
},
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
+ "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": [
{
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
}
],
- "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
+ "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": {
- "source": "https://github.com/symfony/polyfill-php56/tree/v1.20.0"
+ "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://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2020-09-28T05:30:19+00:00"
},
{
- "name": "symfony/polyfill-php70",
- "version": "v1.20.0",
+ "name": "sebastian/comparator",
+ "version": "4.0.6",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php70.git",
- "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644"
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "55f4261989e546dc112258c7a75935a81a7ce382"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644",
- "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
+ "reference": "55f4261989e546dc112258c7a75935a81a7ce382",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.3",
+ "sebastian/diff": "^4.0",
+ "sebastian/exporter": "^4.0"
},
- "type": "metapackage",
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "dev-master": "4.0-dev"
}
},
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
},
{
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
}
],
- "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
- "homepage": "https://symfony.com",
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
"keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
+ "comparator",
+ "compare",
+ "equality"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php70/tree/v1.20.0"
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6"
},
"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"
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2020-10-26T15:49:45+00:00"
},
{
- "name": "symfony/polyfill-php72",
- "version": "v1.20.0",
+ "name": "sebastian/complexity",
+ "version": "2.0.2",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930"
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930",
- "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
+ "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "nikic/php-parser": "^4.7",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Php72\\": ""
- },
- "files": [
- "bootstrap.php"
+ "classmap": [
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
"support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.20.0"
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2020-10-26T15:52:27+00:00"
},
{
- "name": "symfony/polyfill-php80",
- "version": "v1.20.0",
+ "name": "sebastian/diff",
+ "version": "4.0.4",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de"
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de",
- "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
+ "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3",
+ "symfony/process": "^4.2 || ^5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "dev-master": "4.0-dev"
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
- },
- "files": [
- "bootstrap.php"
- ],
"classmap": [
- "Resources/stubs"
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
},
{
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
}
],
- "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
- "homepage": "https://symfony.com",
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
"keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0"
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2020-10-26T13:10:38+00:00"
},
{
- "name": "symfony/property-access",
- "version": "v4.4.17",
+ "name": "sebastian/environment",
+ "version": "5.1.3",
"source": {
"type": "git",
- "url": "https://github.com/symfony/property-access.git",
- "reference": "ab8184f093095b40c3e7688bc4eb1d0484da327c"
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "388b6ced16caa751030f6a69e588299fa09200ac"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-access/zipball/ab8184f093095b40c3e7688bc4eb1d0484da327c",
- "reference": "ab8184f093095b40c3e7688bc4eb1d0484da327c",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac",
+ "reference": "388b6ced16caa751030f6a69e588299fa09200ac",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/inflector": "^3.4|^4.0|^5.0"
+ "php": ">=7.3"
},
"require-dev": {
- "symfony/cache": "^3.4|^4.0|^5.0"
+ "phpunit/phpunit": "^9.3"
},
"suggest": {
- "psr/cache-implementation": "To cache access methods."
+ "ext-posix": "*"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.1-dev"
+ }
+ },
"autoload": {
- "psr-4": {
- "Symfony\\Component\\PropertyAccess\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
+ "classmap": [
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
}
],
- "description": "Symfony PropertyAccess Component",
- "homepage": "https://symfony.com",
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
"keywords": [
- "access",
- "array",
- "extraction",
- "index",
- "injection",
- "object",
- "property",
- "property path",
- "reflection"
+ "Xdebug",
+ "environment",
+ "hhvm"
],
"support": {
- "source": "https://github.com/symfony/property-access/tree/v4.4.17"
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-10-31T22:44:29+00:00"
+ "time": "2020-09-28T05:52:38+00:00"
},
{
- "name": "symfony/routing",
- "version": "v3.4.47",
+ "name": "sebastian/exporter",
+ "version": "4.0.3",
"source": {
"type": "git",
- "url": "https://github.com/symfony/routing.git",
- "reference": "3e522ac69cadffd8131cc2b22157fa7662331a6c"
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/3e522ac69cadffd8131cc2b22157fa7662331a6c",
- "reference": "3e522ac69cadffd8131cc2b22157fa7662331a6c",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65",
+ "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65",
"shasum": ""
},
"require": {
- "php": "^5.5.9|>=7.0.8"
- },
- "conflict": {
- "symfony/config": "<3.3.1",
- "symfony/dependency-injection": "<3.3",
- "symfony/yaml": "<3.4"
+ "php": ">=7.3",
+ "sebastian/recursion-context": "^4.0"
},
"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"
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
"autoload": {
- "psr-4": {
- "Symfony\\Component\\Routing\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
+ "classmap": [
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "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": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
}
],
- "description": "Symfony Routing Component",
- "homepage": "https://symfony.com",
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
"keywords": [
- "router",
- "routing",
- "uri",
- "url"
+ "export",
+ "exporter"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v3.4.47"
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-10-24T10:57:07+00:00"
+ "time": "2020-09-28T05:24:23+00:00"
},
{
- "name": "symfony/security",
- "version": "v3.4.47",
+ "name": "sebastian/global-state",
+ "version": "5.0.2",
"source": {
"type": "git",
- "url": "https://github.com/symfony/security.git",
- "reference": "7f924370b6fc5927d7561ce2b6fb2b4ceccba63e"
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "a90ccbddffa067b51f574dea6eb25d5680839455"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security/zipball/7f924370b6fc5927d7561ce2b6fb2b4ceccba63e",
- "reference": "7f924370b6fc5927d7561ce2b6fb2b4ceccba63e",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455",
+ "reference": "a90ccbddffa067b51f574dea6eb25d5680839455",
"shasum": ""
},
"require": {
- "php": "^5.5.9|>=7.0.8",
- "symfony/event-dispatcher": "~2.8|~3.0|~4.0",
- "symfony/http-foundation": "~3.4.40|^4.4.7",
- "symfony/http-kernel": "~3.3|~4.0",
- "symfony/polyfill-php56": "~1.0",
- "symfony/polyfill-php70": "~1.0",
- "symfony/property-access": "~2.8|~3.0|~4.0"
- },
- "replace": {
- "symfony/security-core": "self.version",
- "symfony/security-csrf": "self.version",
- "symfony/security-guard": "self.version",
- "symfony/security-http": "self.version"
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
},
"require-dev": {
- "psr/container": "^1.0",
- "psr/log": "~1.0",
- "symfony/expression-language": "~2.8|~3.0|~4.0",
- "symfony/finder": "~2.8|~3.0|~4.0",
- "symfony/ldap": "~3.1|~4.0",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-intl-icu": "~1.0",
- "symfony/routing": "~2.8|~3.0|~4.0",
- "symfony/validator": "^3.2.5|~4.0"
+ "ext-dom": "*",
+ "phpunit/phpunit": "^9.3"
},
"suggest": {
- "psr/container-implementation": "To instantiate the Security class",
- "symfony/expression-language": "For using the expression voter",
- "symfony/form": "",
- "symfony/ldap": "For using the LDAP user and authentication providers",
- "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs",
- "symfony/validator": "For using the user password constraint"
+ "ext-uopz": "*"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
"autoload": {
- "psr-4": {
- "Symfony\\Component\\Security\\": ""
- },
- "exclude-from-classmap": [
- "/Core/Tests/",
- "/Csrf/Tests/",
- "/Guard/Tests/",
- "/Http/Tests/"
+ "classmap": [
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
}
],
- "description": "Symfony Security Component",
- "homepage": "https://symfony.com",
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
"support": {
- "source": "https://github.com/symfony/security/tree/v3.4.47"
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-10-28T05:23:51+00:00"
+ "time": "2020-10-26T15:55:19+00:00"
},
{
- "name": "symfony/string",
- "version": "v5.2.0",
+ "name": "sebastian/lines-of-code",
+ "version": "1.0.3",
"source": {
"type": "git",
- "url": "https://github.com/symfony/string.git",
- "reference": "40e975edadd4e32cd16f3753b3bad65d9ac48242"
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/40e975edadd4e32cd16f3753b3bad65d9ac48242",
- "reference": "40e975edadd4e32cd16f3753b3bad65d9ac48242",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-intl-grapheme": "~1.0",
- "symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "~1.15"
+ "nikic/php-parser": "^4.6",
+ "php": ">=7.3"
},
"require-dev": {
- "symfony/error-handler": "^4.4|^5.0",
- "symfony/http-client": "^4.4|^5.0",
- "symfony/translation-contracts": "^1.1|^2",
- "symfony/var-exporter": "^4.4|^5.0"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
"autoload": {
- "psr-4": {
- "Symfony\\Component\\String\\": ""
- },
- "files": [
- "Resources/functions.php"
- ],
- "exclude-from-classmap": [
- "/Tests/"
+ "classmap": [
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Symfony String component",
- "homepage": "https://symfony.com",
- "keywords": [
- "grapheme",
- "i18n",
- "string",
- "unicode",
- "utf-8",
- "utf8"
- ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
"support": {
- "source": "https://github.com/symfony/string/tree/v5.2.0"
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-10-24T12:08:07+00:00"
+ "time": "2020-11-28T06:42:11+00:00"
},
{
- "name": "symfony/yaml",
- "version": "v3.4.47",
+ "name": "sebastian/object-enumerator",
+ "version": "4.0.4",
"source": {
"type": "git",
- "url": "https://github.com/symfony/yaml.git",
- "reference": "88289caa3c166321883f67fe5130188ebbb47094"
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/88289caa3c166321883f67fe5130188ebbb47094",
- "reference": "88289caa3c166321883f67fe5130188ebbb47094",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
"shasum": ""
},
"require": {
- "php": "^5.5.9|>=7.0.8",
- "symfony/polyfill-ctype": "~1.8"
- },
- "conflict": {
- "symfony/console": "<3.4"
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
},
"require-dev": {
- "symfony/console": "~3.4|~4.0"
- },
- "suggest": {
- "symfony/console": "For validating YAML files using the lint command"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
"autoload": {
- "psr-4": {
- "Symfony\\Component\\Yaml\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
+ "classmap": [
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
}
],
- "description": "Symfony Yaml Component",
- "homepage": "https://symfony.com",
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v3.4.47"
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2020-10-24T10:57:07+00:00"
- }
- ],
- "packages-dev": [
+ "time": "2020-10-26T13:12:34+00:00"
+ },
{
- "name": "doctrine/instantiator",
- "version": "1.4.0",
+ "name": "sebastian/object-reflector",
+ "version": "2.0.4",
"source": {
"type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
- "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": ">=7.3"
},
"require-dev": {
- "doctrine/coding-standard": "^8.0",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
}
},
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "https://ocramius.github.io/"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
}
],
- "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"
- ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
"support": {
- "issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/1.4.0"
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
},
"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"
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
}
],
- "time": "2020-11-10T18:47:58+00:00"
+ "time": "2020-10-26T13:14:26+00:00"
},
{
- "name": "myclabs/deep-copy",
- "version": "1.10.2",
+ "name": "sebastian/recursion-context",
+ "version": "4.0.4",
"source": {
"type": "git",
- "url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220"
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
- "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
+ "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
- },
- "replace": {
- "myclabs/deep-copy": "self.version"
+ "php": ">=7.3"
},
"require-dev": {
- "doctrine/collections": "^1.0",
- "doctrine/common": "^2.6",
- "phpunit/phpunit": "^7.1"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
"autoload": {
- "psr-4": {
- "DeepCopy\\": "src/DeepCopy/"
- },
- "files": [
- "src/DeepCopy/deep_copy.php"
+ "classmap": [
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
- "description": "Create deep copies (clones) of your objects",
- "keywords": [
- "clone",
- "copy",
- "duplicate",
- "object",
- "object graph"
+ "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/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2"
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
},
"funding": [
{
- "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
- "type": "tidelift"
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
}
],
- "time": "2020-11-13T09:40:50+00:00"
+ "time": "2020-10-26T13:17:30+00:00"
},
{
- "name": "nikic/php-parser",
- "version": "v4.10.3",
+ "name": "sebastian/resource-operations",
+ "version": "3.0.3",
"source": {
"type": "git",
- "url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "dbe56d23de8fcb157bbc0cfb3ad7c7de0cfb0984"
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dbe56d23de8fcb157bbc0cfb3ad7c7de0cfb0984",
- "reference": "dbe56d23de8fcb157bbc0cfb3ad7c7de0cfb0984",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
"shasum": ""
},
"require": {
- "ext-tokenizer": "*",
- "php": ">=7.0"
+ "php": ">=7.3"
},
"require-dev": {
- "ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ "phpunit/phpunit": "^9.0"
},
- "bin": [
- "bin/php-parse"
- ],
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.9-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
- "psr-4": {
- "PhpParser\\": "lib/PhpParser"
- }
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -3065,45 +3047,48 @@
],
"authors": [
{
- "name": "Nikita Popov"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
}
],
- "description": "A PHP parser written in PHP",
- "keywords": [
- "parser",
- "php"
- ],
+ "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/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.3"
+ "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
},
- "time": "2020-12-03T17:45:45+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:45:17+00:00"
},
{
- "name": "phar-io/manifest",
- "version": "2.0.1",
+ "name": "sebastian/type",
+ "version": "2.3.1",
"source": {
"type": "git",
- "url": "https://github.com/phar-io/manifest.git",
- "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133"
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
- "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
+ "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
"shasum": ""
},
"require": {
- "ext-dom": "*",
- "ext-phar": "*",
- "ext-xmlwriter": "*",
- "phar-io/version": "^3.0.1",
- "php": "^7.2 || ^8.0"
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "2.3-dev"
}
},
"autoload": {
@@ -3116,47 +3101,49 @@
"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"
+ "role": "lead"
}
],
- "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "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/phar-io/manifest/issues",
- "source": "https://github.com/phar-io/manifest/tree/master"
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "source": "https://github.com/sebastianbergmann/type/tree/2.3.1"
},
- "time": "2020-06-27T14:33:11+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:18:59+00:00"
},
{
- "name": "phar-io/version",
- "version": "3.0.3",
+ "name": "sebastian/version",
+ "version": "3.0.2",
"source": {
"type": "git",
- "url": "https://github.com/phar-io/version.git",
- "reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae"
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/version/zipball/726c026815142e4f8677b7cb7f2249c9ffb7ecae",
- "reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0"
+ "php": ">=7.3"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
"autoload": {
"classmap": [
"src/"
@@ -3167,55 +3154,89 @@
"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"
+ "role": "lead"
}
],
- "description": "Library for handling version information and constraints",
+ "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/phar-io/version/issues",
- "source": "https://github.com/phar-io/version/tree/3.0.3"
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
},
- "time": "2020-11-30T09:21:21+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:39:44+00:00"
},
{
- "name": "phpdocumentor/reflection-common",
- "version": "2.2.0",
+ "name": "silex/silex",
+ "version": "v2.3.0",
"source": {
"type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
+ "url": "https://github.com/silexphp/Silex.git",
+ "reference": "6bc31c1b8c4ef614a7115320fd2d3b958032f131"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "url": "https://api.github.com/repos/silexphp/Silex/zipball/6bc31c1b8c4ef614a7115320fd2d3b958032f131",
+ "reference": "6bc31c1b8c4ef614a7115320fd2d3b958032f131",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0"
+ "php": ">=7.1.3",
+ "pimple/pimple": "^3.0",
+ "symfony/event-dispatcher": "^4.0",
+ "symfony/http-foundation": "^4.0",
+ "symfony/http-kernel": "^4.0",
+ "symfony/routing": "^4.0"
+ },
+ "replace": {
+ "silex/api": "self.version",
+ "silex/providers": "self.version"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^2.2",
+ "monolog/monolog": "^1.4.1",
+ "swiftmailer/swiftmailer": "^5",
+ "symfony/asset": "^4.0",
+ "symfony/browser-kit": "^4.0",
+ "symfony/config": "^4.0",
+ "symfony/css-selector": "^4.0",
+ "symfony/debug": "^4.0",
+ "symfony/doctrine-bridge": "^4.0",
+ "symfony/dom-crawler": "^4.0",
+ "symfony/expression-language": "^4.0",
+ "symfony/finder": "^4.0",
+ "symfony/form": "^4.0",
+ "symfony/intl": "^4.0",
+ "symfony/monolog-bridge": "^4.0",
+ "symfony/options-resolver": "^4.0",
+ "symfony/phpunit-bridge": "^3.2",
+ "symfony/process": "^4.0",
+ "symfony/security": "^4.0",
+ "symfony/serializer": "^4.0",
+ "symfony/translation": "^4.0",
+ "symfony/twig-bridge": "^4.0",
+ "symfony/validator": "^4.0",
+ "symfony/var-dumper": "^4.0",
+ "symfony/web-link": "^4.0",
+ "twig/twig": "^2.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-2.x": "2.x-dev"
+ "dev-master": "2.3.x-dev"
}
},
"autoload": {
"psr-4": {
- "phpDocumentor\\Reflection\\": "src/"
+ "Silex\\": "src/Silex"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -3224,59 +3245,70 @@
],
"authors": [
{
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
}
],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
+ "description": "The PHP micro-framework based on the Symfony Components",
+ "homepage": "http://silex.sensiolabs.org",
"keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
+ "microframework"
],
"support": {
- "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
- "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
+ "issues": "https://github.com/silexphp/Silex/issues",
+ "source": "https://github.com/silexphp/Silex/tree/v2.3.0"
},
- "time": "2020-06-27T09:03:43+00:00"
+ "abandoned": "symfony/flex",
+ "time": "2018-04-20T05:17:01+00:00"
},
{
- "name": "phpdocumentor/reflection-docblock",
- "version": "5.2.2",
+ "name": "symfony/contracts",
+ "version": "v1.1.0",
"source": {
"type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556"
+ "url": "https://github.com/symfony/contracts.git",
+ "reference": "d3636025e8253c6144358ec0a62773cae588395b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556",
- "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556",
+ "url": "https://api.github.com/repos/symfony/contracts/zipball/d3636025e8253c6144358ec0a62773cae588395b",
+ "reference": "d3636025e8253c6144358ec0a62773cae588395b",
"shasum": ""
},
"require": {
- "ext-filter": "*",
- "php": "^7.2 || ^8.0",
- "phpdocumentor/reflection-common": "^2.2",
- "phpdocumentor/type-resolver": "^1.3",
- "webmozart/assert": "^1.9.1"
+ "php": "^7.1.3"
},
"require-dev": {
- "mockery/mockery": "~1.3.2"
+ "psr/cache": "^1.0",
+ "psr/container": "^1.0",
+ "symfony/polyfill-intl-idn": "^1.10"
+ },
+ "suggest": {
+ "psr/cache": "When using the Cache contracts",
+ "psr/container": "When using the Service contracts",
+ "symfony/cache-contracts-implementation": "",
+ "symfony/event-dispatcher-implementation": "",
+ "symfony/http-client-contracts-implementation": "",
+ "symfony/service-contracts-implementation": "",
+ "symfony/translation-contracts-implementation": ""
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.x-dev"
+ "dev-master": "1.1-dev"
}
},
"autoload": {
"psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
+ "Symfony\\Contracts\\": ""
+ },
+ "exclude-from-classmap": [
+ "**/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -3284,52 +3316,62 @@
],
"authors": [
{
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
- "name": "Jaap van Otterdijk",
- "email": "account@ijaap.nl"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "description": "A set of abstractions extracted out of the Symfony components",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
"support": {
- "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master"
+ "source": "https://github.com/symfony/contracts/tree/master"
},
- "time": "2020-09-03T19:13:55+00:00"
+ "time": "2019-04-27T14:29:50+00:00"
},
{
- "name": "phpdocumentor/type-resolver",
- "version": "1.4.0",
+ "name": "symfony/debug",
+ "version": "v4.4.20",
"source": {
"type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0"
+ "url": "https://github.com/symfony/debug.git",
+ "reference": "157bbec4fd773bae53c5483c50951a5530a2cc16"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
- "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
+ "url": "https://api.github.com/repos/symfony/debug/zipball/157bbec4fd773bae53c5483c50951a5530a2cc16",
+ "reference": "157bbec4fd773bae53c5483c50951a5530a2cc16",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0",
- "phpdocumentor/reflection-common": "^2.0"
+ "php": ">=7.1.3",
+ "psr/log": "~1.0",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "conflict": {
+ "symfony/http-kernel": "<3.4"
},
"require-dev": {
- "ext-tokenizer": "*"
+ "symfony/http-kernel": "^3.4|^4.0|^5.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-1.x": "1.x-dev"
- }
- },
"autoload": {
"psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
+ "Symfony\\Component\\Debug\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -3337,52 +3379,66 @@
],
"authors": [
{
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
+ "description": "Provides tools to ease debugging PHP code",
+ "homepage": "https://symfony.com",
"support": {
- "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
- "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0"
+ "source": "https://github.com/symfony/debug/tree/v4.4.20"
},
- "time": "2020-09-17T18:55:26+00:00"
+ "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-01-28T16:54:48+00:00"
},
{
- "name": "phpspec/prophecy",
- "version": "1.12.1",
+ "name": "symfony/deprecation-contracts",
+ "version": "v2.2.0",
"source": {
"type": "git",
- "url": "https://github.com/phpspec/prophecy.git",
- "reference": "8ce87516be71aae9b956f81906aaf0338e0d8a2d"
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/8ce87516be71aae9b956f81906aaf0338e0d8a2d",
- "reference": "8ce87516be71aae9b956f81906aaf0338e0d8a2d",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665",
+ "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.2",
- "php": "^7.2 || ~8.0, <8.1",
- "phpdocumentor/reflection-docblock": "^5.2",
- "sebastian/comparator": "^3.0 || ^4.0",
- "sebastian/recursion-context": "^3.0 || ^4.0"
- },
- "require-dev": {
- "phpspec/phpspec": "^6.0",
- "phpunit/phpunit": "^8.0 || ^9.0 <9.3"
+ "php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.11.x-dev"
+ "dev-master": "2.2-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
- "psr-4": {
- "Prophecy\\": "src/Prophecy"
- }
+ "files": [
+ "function.php"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -3390,1339 +3446,1655 @@
],
"authors": [
{
- "name": "Konstantin Kudryashov",
- "email": "ever.zet@gmail.com",
- "homepage": "http://everzet.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
- "name": "Marcello Duarte",
- "email": "marcello.duarte@gmail.com"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Highly opinionated mocking framework for PHP 5.3+",
- "homepage": "https://github.com/phpspec/prophecy",
- "keywords": [
- "Double",
- "Dummy",
- "fake",
- "mock",
- "spy",
- "stub"
- ],
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
"support": {
- "issues": "https://github.com/phpspec/prophecy/issues",
- "source": "https://github.com/phpspec/prophecy/tree/1.12.1"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/master"
},
- "time": "2020-09-29T09:10:42+00:00"
+ "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-09-07T11:33:47+00:00"
},
{
- "name": "phpunit/php-code-coverage",
- "version": "9.2.5",
+ "name": "symfony/event-dispatcher",
+ "version": "v4.4.20",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1"
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f3e026641cc91909d421802dd3ac7827ebfd97e1",
- "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c352647244bd376bf7d31efbd5401f13f50dad0c",
+ "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c",
"shasum": ""
},
"require": {
- "ext-dom": "*",
- "ext-libxml": "*",
- "ext-xmlwriter": "*",
- "nikic/php-parser": "^4.10.2",
- "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"
+ "php": ">=7.1.3",
+ "symfony/event-dispatcher-contracts": "^1.1"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<3.4"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "1.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "psr/log": "~1.0",
+ "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": {
- "ext-pcov": "*",
- "ext-xdebug": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "9.2-dev"
- }
+ "symfony/dependency-injection": "",
+ "symfony/http-kernel": ""
},
+ "type": "library",
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\EventDispatcher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "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"
- ],
+ "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": {
- "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.5"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.20"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-28T06:44:49+00:00"
+ "time": "2021-01-27T09:09:26+00:00"
},
{
- "name": "phpunit/php-file-iterator",
- "version": "3.0.5",
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v1.1.9",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8"
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8",
- "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7",
+ "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=7.1.3"
},
- "require-dev": {
- "phpunit/phpunit": "^9.3"
+ "suggest": {
+ "psr/event-dispatcher": "",
+ "symfony/event-dispatcher-implementation": ""
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-master": "1.1-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "Symfony\\Contracts\\EventDispatcher\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "FilterIterator implementation that filters files based on a list of suffixes.",
- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "description": "Generic abstractions related to dispatching event",
+ "homepage": "https://symfony.com",
"keywords": [
- "filesystem",
- "iterator"
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.9"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-09-28T05:57:25+00:00"
+ "time": "2020-07-06T13:19:58+00:00"
},
{
- "name": "phpunit/php-invoker",
- "version": "3.1.1",
+ "name": "symfony/http-foundation",
+ "version": "v4.4.20",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ "url": "https://github.com/symfony/http-foundation.git",
+ "reference": "02d968647fe61b2f419a8dc70c468a9d30a48d3a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
- "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/02d968647fe61b2f419a8dc70c468a9d30a48d3a",
+ "reference": "02d968647fe61b2f419a8dc70c468a9d30a48d3a",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=7.1.3",
+ "symfony/mime": "^4.3|^5.0",
+ "symfony/polyfill-mbstring": "~1.1",
+ "symfony/polyfill-php80": "^1.15"
},
"require-dev": {
- "ext-pcntl": "*",
- "phpunit/phpunit": "^9.3"
- },
- "suggest": {
- "ext-pcntl": "*"
+ "predis/predis": "~1.0",
+ "symfony/expression-language": "^3.4|^4.0|^5.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.1-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\HttpFoundation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Invoke callables with a timeout",
- "homepage": "https://github.com/sebastianbergmann/php-invoker/",
- "keywords": [
- "process"
- ],
+ "description": "Defines an object-oriented layer for the HTTP specification",
+ "homepage": "https://symfony.com",
"support": {
- "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
- "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ "source": "https://github.com/symfony/http-foundation/tree/v4.4.20"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-09-28T05:58:55+00:00"
+ "time": "2021-02-25T17:11:33+00:00"
},
{
- "name": "phpunit/php-text-template",
- "version": "2.0.4",
+ "name": "symfony/http-kernel",
+ "version": "v4.2.12",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ "url": "https://github.com/symfony/http-kernel.git",
+ "reference": "8a7c5ef599466af6e972c705507f815df9c490ae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
- "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8a7c5ef599466af6e972c705507f815df9c490ae",
+ "reference": "8a7c5ef599466af6e972c705507f815df9c490ae",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": "^7.1.3",
+ "psr/log": "~1.0",
+ "symfony/contracts": "^1.0.2",
+ "symfony/debug": "~3.4|~4.0",
+ "symfony/event-dispatcher": "~4.1",
+ "symfony/http-foundation": "^4.1.1",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-php56": "~1.8"
+ },
+ "conflict": {
+ "symfony/config": "<3.4",
+ "symfony/dependency-injection": "<4.2",
+ "symfony/translation": "<4.2",
+ "symfony/var-dumper": "<4.1.1",
+ "twig/twig": "<1.34|<2.4,>=2"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "psr/cache": "~1.0",
+ "symfony/browser-kit": "~3.4|~4.0",
+ "symfony/config": "~3.4|~4.0",
+ "symfony/console": "~3.4|~4.0",
+ "symfony/css-selector": "~3.4|~4.0",
+ "symfony/dependency-injection": "^4.2",
+ "symfony/dom-crawler": "~3.4|~4.0",
+ "symfony/expression-language": "~3.4|~4.0",
+ "symfony/finder": "~3.4|~4.0",
+ "symfony/process": "~3.4|~4.0",
+ "symfony/routing": "~3.4|~4.0",
+ "symfony/stopwatch": "~3.4|~4.0",
+ "symfony/templating": "~3.4|~4.0",
+ "symfony/translation": "~4.2",
+ "symfony/var-dumper": "^4.1.1"
+ },
+ "suggest": {
+ "symfony/browser-kit": "",
+ "symfony/config": "",
+ "symfony/console": "",
+ "symfony/dependency-injection": "",
+ "symfony/var-dumper": ""
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-master": "4.2-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\HttpKernel\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Simple template engine.",
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
- "keywords": [
- "template"
- ],
+ "description": "Symfony HttpKernel Component",
+ "homepage": "https://symfony.com",
"support": {
- "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
- "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ "source": "https://github.com/symfony/http-kernel/tree/v4.2.12"
},
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-10-26T05:33:50+00:00"
+ "time": "2019-11-13T08:51:34+00:00"
},
{
- "name": "phpunit/php-timer",
- "version": "5.0.3",
+ "name": "symfony/inflector",
+ "version": "v5.2.4",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ "url": "https://github.com/symfony/inflector.git",
+ "reference": "4c285002228d0e27480e5eee871f4e3f0a05a4eb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
- "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "url": "https://api.github.com/repos/symfony/inflector/zipball/4c285002228d0e27480e5eee871f4e3f0a05a4eb",
+ "reference": "4c285002228d0e27480e5eee871f4e3f0a05a4eb",
"shasum": ""
},
"require": {
- "php": ">=7.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.3"
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1",
+ "symfony/string": "~5.1.10|^5.2.1"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.0-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\Inflector\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Utility class for timing",
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "description": "Converts words between their singular and plural forms (English only)",
+ "homepage": "https://symfony.com",
"keywords": [
- "timer"
+ "inflection",
+ "pluralize",
+ "singularize",
+ "string",
+ "symfony",
+ "words"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/php-timer/issues",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ "source": "https://github.com/symfony/inflector/tree/v5.2.4"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-26T13:16:10+00:00"
+ "time": "2021-01-10T16:29:19+00:00"
},
{
- "name": "phpunit/phpunit",
- "version": "9.5.0",
+ "name": "symfony/mime",
+ "version": "v5.2.5",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe"
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "554ba128f1955038b45db5e1fa7e93bfc683b139"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e16c225d57c3d6808014df6b1dd7598d0a5bbbe",
- "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/554ba128f1955038b45db5e1fa7e93bfc683b139",
+ "reference": "554ba128f1955038b45db5e1fa7e93bfc683b139",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.3.1",
- "ext-dom": "*",
- "ext-json": "*",
- "ext-libxml": "*",
- "ext-mbstring": "*",
- "ext-xml": "*",
- "ext-xmlwriter": "*",
- "myclabs/deep-copy": "^1.10.1",
- "phar-io/manifest": "^2.0.1",
- "phar-io/version": "^3.0.2",
- "php": ">=7.3",
- "phpspec/prophecy": "^1.12.1",
- "phpunit/php-code-coverage": "^9.2.3",
- "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.5",
- "sebastian/diff": "^4.0.3",
- "sebastian/environment": "^5.1.3",
- "sebastian/exporter": "^4.0.3",
- "sebastian/global-state": "^5.0.1",
- "sebastian/object-enumerator": "^4.0.3",
- "sebastian/resource-operations": "^3.0.3",
- "sebastian/type": "^2.3",
- "sebastian/version": "^3.0.2"
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1",
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0",
+ "symfony/polyfill-php80": "^1.15"
},
- "require-dev": {
- "ext-pdo": "*",
- "phpspec/prophecy-phpunit": "^2.0.1"
+ "conflict": {
+ "egulias/email-validator": "~3.0.0",
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/mailer": "<4.4"
},
- "suggest": {
- "ext-soap": "*",
- "ext-xdebug": "*"
+ "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",
+ "symfony/property-access": "^4.4|^5.1",
+ "symfony/property-info": "^4.4|^5.1",
+ "symfony/serializer": "^5.2"
},
- "bin": [
- "phpunit"
- ],
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "9.5-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
- ],
- "files": [
- "src/Framework/Assert/Functions.php"
+ "psr-4": {
+ "Symfony\\Component\\Mime\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "The PHP Unit Testing framework.",
- "homepage": "https://phpunit.de/",
+ "description": "Allows manipulating MIME messages",
+ "homepage": "https://symfony.com",
"keywords": [
- "phpunit",
- "testing",
- "xunit"
+ "mime",
+ "mime-type"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.0"
+ "source": "https://github.com/symfony/mime/tree/v5.2.5"
},
"funding": [
{
- "url": "https://phpunit.de/donate.html",
+ "url": "https://symfony.com/sponsor",
"type": "custom"
},
{
- "url": "https://github.com/sebastianbergmann",
+ "url": "https://github.com/fabpot",
"type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
}
],
- "time": "2020-12-04T05:05:53+00:00"
+ "time": "2021-03-07T16:08:20+00:00"
},
{
- "name": "sebastian/cli-parser",
- "version": "1.0.1",
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.22.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "c6c942b1ac76c82448322025e084cadc56048b4e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e",
+ "reference": "c6c942b1ac76c82448322025e084cadc56048b4e",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=7.1"
},
- "require-dev": {
- "phpunit/phpunit": "^9.3"
+ "suggest": {
+ "ext-ctype": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ },
+ "files": [
+ "bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Library for parsing CLI options",
- "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
"support": {
- "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-09-28T06:08:49+00:00"
+ "time": "2021-01-07T16:49:33+00:00"
},
{
- "name": "sebastian/code-unit",
- "version": "1.0.8",
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.22.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/code-unit.git",
- "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
- "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170",
+ "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=7.1"
},
- "require-dev": {
- "phpunit/phpunit": "^9.3"
+ "suggest": {
+ "ext-intl": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ },
+ "files": [
+ "bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Collection of value objects that represent the PHP code units",
- "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "description": "Symfony polyfill for intl's grapheme_* functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
"support": {
- "issues": "https://github.com/sebastianbergmann/code-unit/issues",
- "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-26T13:08:54+00:00"
+ "time": "2021-01-22T09:19:47+00:00"
},
{
- "name": "sebastian/code-unit-reverse-lookup",
- "version": "2.0.3",
+ "name": "symfony/polyfill-intl-idn",
+ "version": "v1.22.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ "url": "https://github.com/symfony/polyfill-intl-idn.git",
+ "reference": "2d63434d922daf7da8dd863e7907e67ee3031483"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
- "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/2d63434d922daf7da8dd863e7907e67ee3031483",
+ "reference": "2d63434d922daf7da8dd863e7907e67ee3031483",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=7.1",
+ "symfony/polyfill-intl-normalizer": "^1.10",
+ "symfony/polyfill-php72": "^1.10"
},
- "require-dev": {
- "phpunit/phpunit": "^9.3"
+ "suggest": {
+ "ext-intl": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Idn\\": ""
+ },
+ "files": [
+ "bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Laurent Bassin",
+ "email": "laurent@bassin.info"
+ },
+ {
+ "name": "Trevor Rowbotham",
+ "email": "trevor.rowbotham@pm.me"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Looks up which function or method a line of code belongs to",
- "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "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": {
- "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
- "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.1"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-09-28T05:30:19+00:00"
+ "time": "2021-01-22T09:19:47+00:00"
},
{
- "name": "sebastian/comparator",
- "version": "4.0.6",
+ "name": "symfony/polyfill-intl-normalizer",
+ "version": "v1.22.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "55f4261989e546dc112258c7a75935a81a7ce382"
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
- "reference": "55f4261989e546dc112258c7a75935a81a7ce382",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248",
+ "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/diff": "^4.0",
- "sebastian/exporter": "^4.0"
+ "php": ">=7.1"
},
- "require-dev": {
- "phpunit/phpunit": "^9.3"
+ "suggest": {
+ "ext-intl": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
"classmap": [
- "src/"
+ "Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides the functionality to compare PHP values for equality",
- "homepage": "https://github.com/sebastianbergmann/comparator",
+ "description": "Symfony polyfill for intl's Normalizer class and related functions",
+ "homepage": "https://symfony.com",
"keywords": [
- "comparator",
- "compare",
- "equality"
+ "compatibility",
+ "intl",
+ "normalizer",
+ "polyfill",
+ "portable",
+ "shim"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/comparator/issues",
- "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-26T15:49:45+00:00"
+ "time": "2021-01-22T09:19:47+00:00"
},
{
- "name": "sebastian/complexity",
- "version": "2.0.2",
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.22.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "5232de97ee3b75b0360528dae24e73db49566ab1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1",
+ "reference": "5232de97ee3b75b0360528dae24e73db49566ab1",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.7",
- "php": ">=7.3"
+ "php": ">=7.1"
},
- "require-dev": {
- "phpunit/phpunit": "^9.3"
+ "suggest": {
+ "ext-mbstring": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ },
+ "files": [
+ "bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Library for calculating the complexity of PHP code units",
- "homepage": "https://github.com/sebastianbergmann/complexity",
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
"support": {
- "issues": "https://github.com/sebastianbergmann/complexity/issues",
- "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-26T15:52:27+00:00"
+ "time": "2021-01-22T09:19:47+00:00"
},
{
- "name": "sebastian/diff",
- "version": "4.0.4",
+ "name": "symfony/polyfill-php56",
+ "version": "v1.20.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
+ "url": "https://github.com/symfony/polyfill-php56.git",
+ "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
+ "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675",
+ "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675",
"shasum": ""
},
"require": {
- "php": ">=7.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.3",
- "symfony/process": "^4.2 || ^5"
+ "php": ">=7.1"
},
- "type": "library",
+ "type": "metapackage",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "1.20-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
}
},
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
- "name": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Diff implementation",
- "homepage": "https://github.com/sebastianbergmann/diff",
+ "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
"keywords": [
- "diff",
- "udiff",
- "unidiff",
- "unified diff"
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
+ "source": "https://github.com/symfony/polyfill-php56/tree/v1.20.0"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-26T13:10:38+00:00"
+ "time": "2020-10-23T14:02:19+00:00"
},
{
- "name": "sebastian/environment",
- "version": "5.1.3",
+ "name": "symfony/polyfill-php70",
+ "version": "v1.20.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "388b6ced16caa751030f6a69e588299fa09200ac"
+ "url": "https://github.com/symfony/polyfill-php70.git",
+ "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac",
- "reference": "388b6ced16caa751030f6a69e588299fa09200ac",
+ "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644",
+ "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644",
"shasum": ""
},
- "require": {
- "php": ">=7.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.3"
- },
- "suggest": {
- "ext-posix": "*"
+ "require": {
+ "php": ">=7.1"
},
- "type": "library",
+ "type": "metapackage",
"extra": {
"branch-alias": {
- "dev-master": "5.1-dev"
+ "dev-main": "1.20-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
}
},
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
"keywords": [
- "Xdebug",
- "environment",
- "hhvm"
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/environment/issues",
- "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3"
+ "source": "https://github.com/symfony/polyfill-php70/tree/v1.20.0"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-09-28T05:52:38+00:00"
+ "time": "2020-10-23T14:02:19+00:00"
},
{
- "name": "sebastian/exporter",
- "version": "4.0.3",
+ "name": "symfony/polyfill-php72",
+ "version": "v1.22.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65"
+ "url": "https://github.com/symfony/polyfill-php72.git",
+ "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65",
- "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
+ "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/recursion-context": "^4.0"
- },
- "require-dev": {
- "ext-mbstring": "*",
- "phpunit/phpunit": "^9.3"
+ "php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Polyfill\\Php72\\": ""
+ },
+ "files": [
+ "bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"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": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides the functionality to export PHP variables for visualization",
- "homepage": "http://www.github.com/sebastianbergmann/exporter",
+ "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
"keywords": [
- "export",
- "exporter"
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3"
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-09-28T05:24:23+00:00"
+ "time": "2021-01-07T16:49:33+00:00"
},
{
- "name": "sebastian/global-state",
- "version": "5.0.2",
+ "name": "symfony/polyfill-php80",
+ "version": "v1.22.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "a90ccbddffa067b51f574dea6eb25d5680839455"
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455",
- "reference": "a90ccbddffa067b51f574dea6eb25d5680839455",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91",
+ "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91",
"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": "*"
+ "php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0-dev"
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
"classmap": [
- "src/"
+ "Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Snapshotting of global state",
- "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
"keywords": [
- "global state"
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-26T15:55:19+00:00"
+ "time": "2021-01-07T16:49:33+00:00"
},
{
- "name": "sebastian/lines-of-code",
- "version": "1.0.3",
+ "name": "symfony/property-access",
+ "version": "v4.4.20",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
+ "url": "https://github.com/symfony/property-access.git",
+ "reference": "94a1d9837396c71a0d8c31686c16693a15651622"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "url": "https://api.github.com/repos/symfony/property-access/zipball/94a1d9837396c71a0d8c31686c16693a15651622",
+ "reference": "94a1d9837396c71a0d8c31686c16693a15651622",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.6",
- "php": ">=7.3"
+ "php": ">=7.1.3",
+ "symfony/inflector": "^3.4|^4.0|^5.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "symfony/cache": "^3.4|^4.0|^5.0"
},
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
+ "suggest": {
+ "psr/cache-implementation": "To cache access methods."
},
+ "type": "library",
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\PropertyAccess\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Library for counting the lines of code in PHP source code",
- "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+ "description": "Provides functions to read and write from/to an object or array using a simple string notation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "access",
+ "array",
+ "extraction",
+ "index",
+ "injection",
+ "object",
+ "property",
+ "property path",
+ "reflection"
+ ],
"support": {
- "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
- "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3"
+ "source": "https://github.com/symfony/property-access/tree/v4.4.20"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-28T06:42:11+00:00"
+ "time": "2021-01-27T09:09:26+00:00"
},
{
- "name": "sebastian/object-enumerator",
- "version": "4.0.4",
+ "name": "symfony/routing",
+ "version": "v4.4.20",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ "url": "https://github.com/symfony/routing.git",
+ "reference": "69919991c845b34626664ddc9b3aef9d09d2a5df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
- "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/69919991c845b34626664ddc9b3aef9d09d2a5df",
+ "reference": "69919991c845b34626664ddc9b3aef9d09d2a5df",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/object-reflector": "^2.0",
- "sebastian/recursion-context": "^4.0"
+ "php": ">=7.1.3"
+ },
+ "conflict": {
+ "symfony/config": "<4.2",
+ "symfony/dependency-injection": "<3.4",
+ "symfony/yaml": "<3.4"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "doctrine/annotations": "^1.10.4",
+ "psr/log": "~1.0",
+ "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"
},
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.0-dev"
- }
+ "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": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\Routing\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Traverses array structures and object graphs to enumerate all referenced objects",
- "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "description": "Maps an HTTP request to a set of configuration variables",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "router",
+ "routing",
+ "uri",
+ "url"
+ ],
"support": {
- "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
- "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
+ "source": "https://github.com/symfony/routing/tree/v4.4.20"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-26T13:12:34+00:00"
+ "time": "2021-02-22T15:37:04+00:00"
},
{
- "name": "sebastian/object-reflector",
- "version": "2.0.4",
+ "name": "symfony/security",
+ "version": "v3.4.47",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ "url": "https://github.com/symfony/security.git",
+ "reference": "7f924370b6fc5927d7561ce2b6fb2b4ceccba63e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
- "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "url": "https://api.github.com/repos/symfony/security/zipball/7f924370b6fc5927d7561ce2b6fb2b4ceccba63e",
+ "reference": "7f924370b6fc5927d7561ce2b6fb2b4ceccba63e",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": "^5.5.9|>=7.0.8",
+ "symfony/event-dispatcher": "~2.8|~3.0|~4.0",
+ "symfony/http-foundation": "~3.4.40|^4.4.7",
+ "symfony/http-kernel": "~3.3|~4.0",
+ "symfony/polyfill-php56": "~1.0",
+ "symfony/polyfill-php70": "~1.0",
+ "symfony/property-access": "~2.8|~3.0|~4.0"
+ },
+ "replace": {
+ "symfony/security-core": "self.version",
+ "symfony/security-csrf": "self.version",
+ "symfony/security-guard": "self.version",
+ "symfony/security-http": "self.version"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "psr/container": "^1.0",
+ "psr/log": "~1.0",
+ "symfony/expression-language": "~2.8|~3.0|~4.0",
+ "symfony/finder": "~2.8|~3.0|~4.0",
+ "symfony/ldap": "~3.1|~4.0",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-icu": "~1.0",
+ "symfony/routing": "~2.8|~3.0|~4.0",
+ "symfony/validator": "^3.2.5|~4.0"
},
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0-dev"
- }
+ "suggest": {
+ "psr/container-implementation": "To instantiate the Security class",
+ "symfony/expression-language": "For using the expression voter",
+ "symfony/form": "",
+ "symfony/ldap": "For using the LDAP user and authentication providers",
+ "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs",
+ "symfony/validator": "For using the user password constraint"
},
+ "type": "library",
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\Security\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Core/Tests/",
+ "/Csrf/Tests/",
+ "/Guard/Tests/",
+ "/Http/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Allows reflection of object attributes, including inherited and non-public ones",
- "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "description": "Symfony Security Component",
+ "homepage": "https://symfony.com",
"support": {
- "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
- "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
+ "source": "https://github.com/symfony/security/tree/v3.4.47"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-26T13:14:26+00:00"
+ "time": "2020-10-28T05:23:51+00:00"
},
{
- "name": "sebastian/phpcpd",
- "version": "6.0.3",
+ "name": "symfony/string",
+ "version": "v5.2.4",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/phpcpd.git",
- "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176"
+ "url": "https://github.com/symfony/string.git",
+ "reference": "4e78d7d47061fa183639927ec40d607973699609"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/f3683aa0db2e8e09287c2bb33a595b2873ea9176",
- "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176",
+ "url": "https://api.github.com/repos/symfony/string/zipball/4e78d7d47061fa183639927ec40d607973699609",
+ "reference": "4e78d7d47061fa183639927ec40d607973699609",
"shasum": ""
},
"require": {
- "ext-dom": "*",
- "php": ">=7.3",
- "phpunit/php-file-iterator": "^3.0",
- "phpunit/php-timer": "^5.0",
- "sebastian/cli-parser": "^1.0",
- "sebastian/version": "^3.0"
+ "php": ">=7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "~1.15"
},
- "bin": [
- "phpcpd"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.0-dev"
- }
+ "require-dev": {
+ "symfony/error-handler": "^4.4|^5.0",
+ "symfony/http-client": "^4.4|^5.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.4|^5.0"
},
+ "type": "library",
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "files": [
+ "Resources/functions.php"
+ ],
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Copy/Paste Detector (CPD) for PHP code.",
- "homepage": "https://github.com/sebastianbergmann/phpcpd",
+ "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": {
- "issues": "https://github.com/sebastianbergmann/phpcpd/issues",
- "source": "https://github.com/sebastianbergmann/phpcpd/tree/6.0.3"
+ "source": "https://github.com/symfony/string/tree/v5.2.4"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-12-07T05:39:23+00:00"
+ "time": "2021-02-16T10:20:28+00:00"
},
{
- "name": "sebastian/recursion-context",
- "version": "4.0.4",
+ "name": "symfony/yaml",
+ "version": "v4.4.20",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "29e61305e1c79d25f71060903982ead8f533e267"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
- "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/29e61305e1c79d25f71060903982ead8f533e267",
+ "reference": "29e61305e1c79d25f71060903982ead8f533e267",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=7.1.3",
+ "symfony/polyfill-ctype": "~1.8"
+ },
+ "conflict": {
+ "symfony/console": "<3.4"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "symfony/console": "^3.4|^4.0|^5.0"
},
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.0-dev"
- }
+ "suggest": {
+ "symfony/console": "For validating YAML files using the lint command"
},
+ "type": "library",
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides functionality to recursively process PHP variables",
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "description": "Loads and dumps YAML files",
+ "homepage": "https://symfony.com",
"support": {
- "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
+ "source": "https://github.com/symfony/yaml/tree/v4.4.20"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "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-26T13:17:30+00:00"
+ "time": "2021-02-22T15:36:50+00:00"
},
{
- "name": "sebastian/resource-operations",
- "version": "3.0.3",
+ "name": "theseer/tokenizer",
+ "version": "1.2.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "75a63c33a8577608444246075ea0af0d052e452a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a",
+ "reference": "75a63c33a8577608444246075ea0af0d052e452a",
"shasum": ""
},
"require": {
- "php": ">=7.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.0"
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2 || ^8.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- }
- },
"autoload": {
"classmap": [
"src/"
@@ -4734,101 +5106,113 @@
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
}
],
- "description": "Provides a list of PHP built-in functions that operate on resources",
- "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": {
- "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
- "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
+ "issues": "https://github.com/theseer/tokenizer/issues",
+ "source": "https://github.com/theseer/tokenizer/tree/master"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "url": "https://github.com/theseer",
"type": "github"
}
],
- "time": "2020-09-28T06:45:17+00:00"
+ "time": "2020-07-12T23:59:07+00:00"
},
{
- "name": "sebastian/type",
- "version": "2.3.1",
+ "name": "webmozart/assert",
+ "version": "1.10.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/type.git",
- "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2"
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
- "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25",
+ "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "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": "^9.3"
+ "phpunit/phpunit": "^8.5.13"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.3-dev"
+ "dev-master": "1.10-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
}
],
- "description": "Collection of value objects that represent the types of the PHP type system",
- "homepage": "https://github.com/sebastianbergmann/type",
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
"support": {
- "issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/2.3.1"
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.10.0"
},
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-10-26T13:18:59+00:00"
- },
+ "time": "2021-03-09T10:59:23+00:00"
+ }
+ ],
+ "packages-dev": [
{
- "name": "sebastian/version",
- "version": "3.0.2",
+ "name": "sebastian/phpcpd",
+ "version": "6.0.3",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/version.git",
- "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ "url": "https://github.com/sebastianbergmann/phpcpd.git",
+ "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
- "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/f3683aa0db2e8e09287c2bb33a595b2873ea9176",
+ "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "ext-dom": "*",
+ "php": ">=7.3",
+ "phpunit/php-file-iterator": "^3.0",
+ "phpunit/php-timer": "^5.0",
+ "sebastian/cli-parser": "^1.0",
+ "sebastian/version": "^3.0"
},
+ "bin": [
+ "phpcpd"
+ ],
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-master": "6.0-dev"
}
},
"autoload": {
@@ -4847,11 +5231,11 @@
"role": "lead"
}
],
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
- "homepage": "https://github.com/sebastianbergmann/version",
+ "description": "Copy/Paste Detector (CPD) for PHP code.",
+ "homepage": "https://github.com/sebastianbergmann/phpcpd",
"support": {
- "issues": "https://github.com/sebastianbergmann/version/issues",
- "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ "issues": "https://github.com/sebastianbergmann/phpcpd/issues",
+ "source": "https://github.com/sebastianbergmann/phpcpd/tree/6.0.3"
},
"funding": [
{
@@ -4859,7 +5243,7 @@
"type": "github"
}
],
- "time": "2020-09-28T06:39:44+00:00"
+ "time": "2020-12-07T05:39:23+00:00"
},
{
"name": "squizlabs/php_codesniffer",
@@ -5053,16 +5437,16 @@
},
{
"name": "symfony/dom-crawler",
- "version": "v4.4.17",
+ "version": "v4.4.20",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "30ad9ac96a01913195bf0328d48e29d54fa53e6e"
+ "reference": "be133557f1b0e6672367325b508e65da5513a311"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/30ad9ac96a01913195bf0328d48e29d54fa53e6e",
- "reference": "30ad9ac96a01913195bf0328d48e29d54fa53e6e",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/be133557f1b0e6672367325b508e65da5513a311",
+ "reference": "be133557f1b0e6672367325b508e65da5513a311",
"shasum": ""
},
"require": {
@@ -5103,10 +5487,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony DomCrawler Component",
+ "description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dom-crawler/tree/v4.4.17"
+ "source": "https://github.com/symfony/dom-crawler/tree/v4.4.20"
},
"funding": [
{
@@ -5122,110 +5506,7 @@
"type": "tidelift"
}
],
- "time": "2020-10-24T11:50:19+00:00"
- },
- {
- "name": "theseer/tokenizer",
- "version": "1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/theseer/tokenizer.git",
- "reference": "75a63c33a8577608444246075ea0af0d052e452a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a",
- "reference": "75a63c33a8577608444246075ea0af0d052e452a",
- "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/master"
- },
- "funding": [
- {
- "url": "https://github.com/theseer",
- "type": "github"
- }
- ],
- "time": "2020-07-12T23:59:07+00:00"
- },
- {
- "name": "webmozart/assert",
- "version": "1.9.1",
- "source": {
- "type": "git",
- "url": "https://github.com/webmozart/assert.git",
- "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389",
- "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389",
- "shasum": ""
- },
- "require": {
- "php": "^5.3.3 || ^7.0 || ^8.0",
- "symfony/polyfill-ctype": "^1.8"
- },
- "conflict": {
- "phpstan/phpstan": "<0.12.20",
- "vimeo/psalm": "<3.9.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.36 || ^7.5.13"
- },
- "type": "library",
- "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/webmozart/assert/issues",
- "source": "https://github.com/webmozart/assert/tree/master"
- },
- "time": "2020-07-08T17:02:28+00:00"
+ "time": "2021-02-14T12:29:41+00:00"
}
],
"aliases": [],
diff --git a/Recast/src/Controller/RecastController.php b/Recast/src/Controller/RecastController.php
index f9d3b728..95662b7f 100644
--- a/Recast/src/Controller/RecastController.php
+++ b/Recast/src/Controller/RecastController.php
@@ -2,12 +2,14 @@
namespace Islandora\Recast\Controller;
-use Islandora\Crayfish\Commons\Client\GeminiClient;
+use Islandora\Crayfish\Commons\EntityMapper\EntityMapperInterface;
use Psr\Log\LoggerInterface;
use Silex\Application;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
+use GuzzleHttp\Client;
+use GuzzleHttp\Exception\RequestException;
// phpcs:disable
if (class_exists('\EasyRdf_Graph')) {
@@ -36,9 +38,14 @@ class RecastController
private $log;
/**
- * @var \Islandora\Crayfish\Commons\Client\GeminiClient
+ * @var \Islandora\Crayfish\Commons\EntityMapper\EntityMapperInterface
*/
- private $geminiClient;
+ private $entityMapper;
+
+ /**
+ * @var \GuzzleHttp\Client
+ */
+ private $http;
/**
* @var array
@@ -51,14 +58,17 @@ class RecastController
/**
* RecastController constructor.
*
- * @param \Islandora\Crayfish\Commons\Client\GeminiClient $geminiClient
+ * @param \Islandora\Crayfish\Commons\EntityMapper\EntityMapperInterface $entityMapper
+ * @param \GuzzleHttp\Client $http
* @param \Psr\Log\LoggerInterface $log
*/
public function __construct(
- GeminiClient $geminiClient,
+ EntityMapperInterface $entityMapper,
+ Client $http,
LoggerInterface $log
) {
- $this->geminiClient = $geminiClient;
+ $this->entityMapper = $entityMapper;
+ $this->http = $http;
$this->log = $log;
}
@@ -144,15 +154,29 @@ public function recast(Request $request, Application $app, $operation)
$resources = $graph->resources();
foreach ($resources as $uri => $data) {
- if (strpos($uri, $app['crayfish.drupal_base_url']) === 0) {
- $this->log->debug("Checking resource ", [
- 'uri' => $uri,
- ]);
- $reverse_uri = $this->geminiClient->findByUri($uri, $token);
- if (!is_null($reverse_uri)) {
- if (is_array($reverse_uri)) {
- $reverse_uri = reset($reverse_uri);
- }
+ // Ignore http vs https
+ $exploded = explode('://', $uri);
+ if (count($exploded) > 1) {
+ $protocol = $exploded[0];
+ $without_protocol = $exploded[1];
+ }
+
+ // Check for Drupal urls, making sure to ignore Fedora urls.
+ // They may share a domain so false positives can happen.
+ $drupal_base_url = $app['crayfish.drupal_base_url'];
+ $fcrepo_base_url = $app['crayfish.fedora_resource.base_url'];
+ $is_drupal_url = strpos($without_protocol, $drupal_base_url) === 0 &&
+ strpos($without_protocol, $fcrepo_base_url) !== 0;
+
+ $this->log->debug("Looking for reverse URI for: $uri");
+ $this->log->debug("$uri ". $is_drupal_url ? 'is a Drupal URL' : 'is not a Drupal URL');
+
+ if ($is_drupal_url) {
+ $reverse_uri = $this->getFedoraUrl($uri, $fcrepo_base_url, $token);
+
+ if (!empty($reverse_uri)) {
+ // Add the protocol back in.
+ $reverse_uri = "http://$reverse_uri";
// Don't rewrite the current URI (in-case of sameAs)
if ($reverse_uri !== $fedora_uri) {
$predicate = $this->findPredicateForObject($graph, $uri);
@@ -234,6 +258,54 @@ function ($item) use ($fedora_uri) {
return new Response($new_body, 200, $headers);
}
+ private function getFedoraUrl($drupal_url, $fcrepo_base_url, $token)
+ {
+ try {
+ // Strip off any query params and force the json format.
+ $exploded = explode('?', $drupal_url);
+ $drupal_url = $exploded[0] . '?_format=json';
+
+ $response = $this->http->get($drupal_url, ['Authorization' => $token]);
+ $json_str = $response->getBody();
+ $json = json_decode($json_str, true);
+ $this->log->debug("GOT THIS JSON: $json_str");
+
+ $is_media = isset($json['bundle']) &&
+ !empty($json['bundle']) &&
+ $json['bundle'][0]['target_type'] == 'media_type';
+
+ if ($is_media) {
+ $link_headers = $response->getHeader('Link');
+ $describes = $this->describeUri($link_headers);
+ $this->log->debug("DESCRIBES $describes");
+ foreach ($json as $field => $value) {
+ $is_file = $field != "thumbnail" &&
+ !empty($json[$field]) &&
+ isset($json[$field][0]["url"]) &&
+ $json[$field][0]["url"] == $describes;
+
+ if ($is_file) {
+ $exploded = explode("_flysystem/fedora", $json[$field][0]["url"]);
+ $in_fedora = count($exploded) > 1;
+ if ($in_fedora) {
+ return rtrim($fcrepo_base_url, '/') . $exploded[1] . "/fcr:metadata";
+ } else {
+ $uuid = $json[$field][0]['target_uuid'];
+ return rtrim($fcrepo_base_url, '/') .
+ "/{$this->entityMapper->getFedoraPath($uuid)}/fcr:metadata";
+ }
+ }
+ }
+ } else {
+ $uuid = $json['uuid'][0]['value'];
+ return rtrim($fcrepo_base_url, '/') . '/' . $this->entityMapper->getFedoraPath($uuid);
+ }
+ } catch (RequestException $e) {
+ $this->log->warn($e->getMessage());
+ return null;
+ }
+ }
+
/**
* Locate the predicate for an object in a graph.
*
diff --git a/Recast/src/app.php b/Recast/src/app.php
index 473d351f..a1823feb 100644
--- a/Recast/src/app.php
+++ b/Recast/src/app.php
@@ -2,9 +2,10 @@
require_once __DIR__.'/../vendor/autoload.php';
+use GuzzleHttp\Client;
use Islandora\Crayfish\Commons\Provider\IslandoraServiceProvider;
use Islandora\Crayfish\Commons\Provider\YamlConfigServiceProvider;
-use Islandora\Crayfish\Commons\Client\GeminiClient;
+use Islandora\Crayfish\Commons\EntityMapper\EntityMapper;
use Islandora\Recast\Controller\RecastController;
use Silex\Application;
use Symfony\Component\HttpFoundation\Request;
@@ -14,13 +15,9 @@
$app->register(new IslandoraServiceProvider());
$app->register(new YamlConfigServiceProvider(__DIR__ . '/../cfg/config.yaml'));
-$gc = GeminiClient::create(
- $app['crayfish.gemini_base_url'],
- $app['monolog']
-);
-
$test = new RecastController(
- $gc,
+ new EntityMapper(),
+ new Client(),
$app['monolog']
);
diff --git a/Recast/tests/RecastControllerTests.php b/Recast/tests/RecastControllerTests.php
index 5a744f63..8d5f3e8d 100644
--- a/Recast/tests/RecastControllerTests.php
+++ b/Recast/tests/RecastControllerTests.php
@@ -2,11 +2,14 @@
namespace Islandora\Recast\Tests;
-use Islandora\Crayfish\Commons\Client\GeminiClient;
+use Islandora\Crayfish\Commons\EntityMapper\EntityMapper;
+use GuzzleHttp\Client;
+use GuzzleHttp\Exception\RequestException;
use Islandora\Recast\Controller\RecastController;
use Monolog\Logger;
use PHPUnit\Framework\TestCase;
use Prophecy\Argument;
+use Prophecy\PhpUnit\ProphecyTrait;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\StreamInterface;
use Silex\Application;
@@ -26,8 +29,9 @@ class_alias('\EasyRdf_Graph', ' \EasyRdf\Graph');
*/
class RecastControllerTest extends TestCase
{
+ use ProphecyTrait;
- private $gemini_prophecy;
+ private $http_prophecy;
private $logger_prophecy;
@@ -43,7 +47,7 @@ class RecastControllerTest extends TestCase
*/
public function setUp(): void
{
- $this->gemini_prophecy = $this->prophesize(GeminiClient::class);
+ $this->http_prophecy = $this->prophesize(Client::class);
$this->logger_prophecy = $this->prophesize(Logger::class);
}
@@ -53,7 +57,8 @@ public function setUp(): void
public function testOptions()
{
$controller = new RecastController(
- $this->gemini_prophecy->reveal(),
+ new EntityMapper(),
+ $this->http_prophecy->reveal(),
$this->logger_prophecy->reveal()
);
@@ -75,21 +80,32 @@ public function testImageAdd()
$output_add = realpath(__DIR__ . '/resources/drupal_image_add.json');
$output_replace = realpath(__DIR__ . '/resources/drupal_image_replace.json');
-
- $this->gemini_prophecy->findByUri('http://localhost:8000/user/1?_format=jsonld', Argument::any())
- ->willReturn(null);
- $this->gemini_prophecy->findByUri('http://localhost:8000/media/1?_format=jsonld', Argument::any())
- ->willReturn(null);
- $this->gemini_prophecy->findByUri('http://localhost:8000/node/1?_format=jsonld', Argument::any())
- ->willReturn('http://localhost:8080/fcrepo/rest/collection1');
+ $node_1 = realpath(__DIR__ . '/resources/node1.json');
+
+ $this->http_prophecy->get('http://localhost:8000/user/1?_format=json', Argument::any())
+ ->willThrow(
+ new RequestException(
+ "NOT FOUND",
+ new \GuzzleHttp\Psr7\Request('GET', 'http://localhost:8000/user/1?_format=json')
+ )
+ );
+ $this->http_prophecy->get('http://localhost:8000/media/1?_format=json', Argument::any())
+ ->willThrow(new RequestException(
+ "NOT FOUND",
+ new \GuzzleHttp\Psr7\Request('GET', 'http://localhost:8000/media/1?_format=json')
+ ));
+ $this->http_prophecy->get('http://localhost:8000/node/1?_format=json', Argument::any())
+ ->willReturn(new \GuzzleHttp\Psr7\Response(200, [], file_get_contents($node_1)));
$mock_silex_app = new Application();
- $mock_silex_app['crayfish.drupal_base_url'] = 'http://localhost:8000';
+ $mock_silex_app['crayfish.drupal_base_url'] = 'localhost:8000';
+ $mock_silex_app['crayfish.fedora_resource.base_url'] = 'localhost:8080/fcrepo/rest';
$mock_fedora_response = $this->getMockFedoraStream();
$controller = new RecastController(
- $this->gemini_prophecy->reveal(),
+ new EntityMapper(),
+ $this->http_prophecy->reveal(),
$this->logger_prophecy->reveal()
);
@@ -129,7 +145,8 @@ public function testInvalidType()
$mock_silex_app['crayfish.drupal_base_url'] = 'http://localhost:8000';
$controller = new RecastController(
- $this->gemini_prophecy->reveal(),
+ new EntityMapper(),
+ $this->http_prophecy->reveal(),
$this->logger_prophecy->reveal()
);
@@ -156,13 +173,21 @@ public function testPrefixes()
{
$resource_id = 'http://localhost:8080/fcrepo/rest/object1';
- $this->gemini_prophecy->findByUri('http://localhost:8000/user/1?_format=jsonld', Argument::any())
- ->willReturn(null);
- $this->gemini_prophecy->findByUri('http://localhost:8000/node/1?_format=jsonld', Argument::any())
- ->willReturn('http://localhost:8080/fcrepo/rest/collection99');
+ $node_1 = realpath(__DIR__ . '/resources/node1.json');
+
+ $this->http_prophecy->get('http://localhost:8000/user/1?_format=json', Argument::any())
+ ->willThrow(
+ new RequestException(
+ "NOT FOUND",
+ new \GuzzleHttp\Psr7\Request('GET', 'http://localhost:8000/user/1?_format=json')
+ )
+ );
+ $this->http_prophecy->get('http://localhost:8000/node/1?_format=json', Argument::any())
+ ->willReturn(new \GuzzleHttp\Psr7\Response(200, [], file_get_contents($node_1)));
$mock_silex_app = new Application();
- $mock_silex_app['crayfish.drupal_base_url'] = 'http://localhost:8000';
+ $mock_silex_app['crayfish.drupal_base_url'] = 'localhost:8000';
+ $mock_silex_app['crayfish.fedora_resource.base_url'] = 'localhost:8080/fcrepo/rest';
$mock_silex_app['crayfish.namespaces'] = $this->namespaces;
$mock_fedora_response = $this->getMockFedoraStream(
@@ -171,7 +196,8 @@ public function testPrefixes()
);
$controller = new RecastController(
- $this->gemini_prophecy->reveal(),
+ new EntityMapper(),
+ $this->http_prophecy->reveal(),
$this->logger_prophecy->reveal()
);
diff --git a/Recast/tests/resources/drupal_image_add.json b/Recast/tests/resources/drupal_image_add.json
index 972fdeb0..6bbd7f10 100644
--- a/Recast/tests/resources/drupal_image_add.json
+++ b/Recast/tests/resources/drupal_image_add.json
@@ -73,7 +73,7 @@
"@id": "http://localhost:8000/node/1?_format=jsonld"
},
{
- "@id": "http://localhost:8080/fcrepo/rest/collection1"
+ "@id": "http://localhost:8080/fcrepo/rest/b5/5d/ce/b8/b55dceb8-d070-49ce-b37f-f64b1aadb871"
}
]
}
diff --git a/Recast/tests/resources/drupal_image_replace.json b/Recast/tests/resources/drupal_image_replace.json
index 4aa76f2c..c1b3392b 100644
--- a/Recast/tests/resources/drupal_image_replace.json
+++ b/Recast/tests/resources/drupal_image_replace.json
@@ -70,7 +70,7 @@
],
"http://pcdm.org/models#memberOf": [
{
- "@id": "http://localhost:8080/fcrepo/rest/collection1"
+ "@id": "http://localhost:8080/fcrepo/rest/b5/5d/ce/b8/b55dceb8-d070-49ce-b37f-f64b1aadb871"
}
]
}
diff --git a/Recast/tests/resources/node1.json b/Recast/tests/resources/node1.json
new file mode 100644
index 00000000..21ef5e67
--- /dev/null
+++ b/Recast/tests/resources/node1.json
@@ -0,0 +1,185 @@
+{
+ "nid": [
+ {
+ "value": 1
+ }
+ ],
+ "uuid": [
+ {
+ "value": "b55dceb8-d070-49ce-b37f-f64b1aadb871"
+ }
+ ],
+ "vid": [
+ {
+ "value": 48
+ }
+ ],
+ "langcode": [
+ {
+ "value": "en"
+ }
+ ],
+ "type": [
+ {
+ "target_id": "islandora_object",
+ "target_type": "node_type",
+ "target_uuid": "4d81109d-ded5-4e96-8143-18f6534ea270"
+ }
+ ],
+ "revision_timestamp": [
+ {
+ "value": "2019-06-05T04:05:52+00:00",
+ "format": "Y-m-d\\TH:i:sP"
+ }
+ ],
+ "revision_uid": [
+ {
+ "target_id": 3,
+ "target_type": "user",
+ "target_uuid": "f86dc23f-9850-49ad-8d9c-bafb6e93c8bf",
+ "url": "/user/3"
+ }
+ ],
+ "revision_log": [],
+ "status": [
+ {
+ "value": true
+ }
+ ],
+ "uid": [
+ {
+ "target_id": 1,
+ "target_type": "user",
+ "target_uuid": "f77beca6-3b12-4f61-ae83-947bd848b28a",
+ "url": "/user/1"
+ }
+ ],
+ "title": [
+ {
+ "value": "Grey and White Tabby Kitten"
+ }
+ ],
+ "created": [
+ {
+ "value": "2019-06-04T14:46:17+00:00",
+ "format": "Y-m-d\\TH:i:sP"
+ }
+ ],
+ "changed": [
+ {
+ "value": "2019-06-05T04:05:52+00:00",
+ "format": "Y-m-d\\TH:i:sP"
+ }
+ ],
+ "promote": [
+ {
+ "value": true
+ }
+ ],
+ "sticky": [
+ {
+ "value": false
+ }
+ ],
+ "default_langcode": [
+ {
+ "value": true
+ }
+ ],
+ "revision_translation_affected": [
+ {
+ "value": true
+ }
+ ],
+ "content_translation_source": [
+ {
+ "value": "und"
+ }
+ ],
+ "content_translation_outdated": [
+ {
+ "value": false
+ }
+ ],
+ "field_alternative_title": [],
+ "field_classification": [],
+ "field_coordinates": [],
+ "field_coordinates_text": [],
+ "field_description": [
+ {
+ "value": "A worried-looking kitten. "
+ }
+ ],
+ "field_dewey_classification": [],
+ "field_display_hints": [
+ {
+ "target_id": 1,
+ "target_type": "taxonomy_term",
+ "target_uuid": "7638c297-e3c3-46c5-ad5d-fb56ee2d915b",
+ "url": "/taxonomy/term/1"
+ }
+ ],
+ "field_edition": [],
+ "field_edtf_date": [],
+ "field_edtf_date_created": [
+ {
+ "value": "2019-04-19"
+ }
+ ],
+ "field_edtf_date_issued": [],
+ "field_extent": [
+ {
+ "value": "1 item"
+ }
+ ],
+ "field_genre": [],
+ "field_geographic_subject": [],
+ "field_identifier": [],
+ "field_isbn": [],
+ "field_language": [],
+ "field_lcc_classification": [],
+ "field_linked_agent": [],
+ "field_local_identifier": [],
+ "field_member_of": [
+ {
+ "target_id": 7,
+ "target_type": "node",
+ "target_uuid": "c0bdeca7-7ecc-4745-9e62-224d889d6b74",
+ "url": "/node/7"
+ }
+ ],
+ "field_model": [
+ {
+ "target_id": 24,
+ "target_type": "taxonomy_term",
+ "target_uuid": "d1d40b4e-b608-4604-a4a4-e4fec9e88c38",
+ "url": "/taxonomy/term/24"
+ }
+ ],
+ "field_note": [],
+ "field_oclc_number": [],
+ "field_physical_form": [],
+ "field_pid": [],
+ "field_place_published": [],
+ "field_resource_type": [
+ {
+ "target_id": 5,
+ "target_type": "taxonomy_term",
+ "target_uuid": "c785e833-f0f9-489a-b024-a5e7c9258826",
+ "url": "/taxonomy/term/5"
+ }
+ ],
+ "field_rights": [],
+ "field_subject": [
+ {
+ "target_id": 27,
+ "target_type": "taxonomy_term",
+ "target_uuid": "6f645854-a0ec-4690-a7da-70f7df7bf195",
+ "url": "/cats"
+ }
+ ],
+ "field_subjects_name": [],
+ "field_table_of_contents": [],
+ "field_temporal_subject": [],
+ "field_weight": []
+}
diff --git a/composer.phar b/composer.phar
new file mode 100755
index 00000000..1574d12f
Binary files /dev/null and b/composer.phar differ